IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ グーグル インコーポレイテッドの特許一覧

特表2023-550352画像におけるボケを除去するためのシステム、装置、および方法
<>
  • 特表-画像におけるボケを除去するためのシステム、装置、および方法 図1
  • 特表-画像におけるボケを除去するためのシステム、装置、および方法 図2
  • 特表-画像におけるボケを除去するためのシステム、装置、および方法 図3
  • 特表-画像におけるボケを除去するためのシステム、装置、および方法 図4
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-12-01
(54)【発明の名称】画像におけるボケを除去するためのシステム、装置、および方法
(51)【国際特許分類】
   G06T 5/00 20060101AFI20231124BHJP
【FI】
G06T5/00 710
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023528735
(86)(22)【出願日】2021-11-15
(85)【翻訳文提出日】2023-07-11
(86)【国際出願番号】 US2021059321
(87)【国際公開番号】W WO2022104180
(87)【国際公開日】2022-05-19
(31)【優先権主張番号】63/114,314
(32)【優先日】2020-11-16
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】100108453
【弁理士】
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【弁理士】
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【弁理士】
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】マウリシオ・デルブラシオ
(72)【発明者】
【氏名】ペイマン・ミランファー
【テーマコード(参考)】
5B057
【Fターム(参考)】
5B057CA08
5B057CA12
5B057CA16
5B057CB08
5B057CB12
5B057CB16
5B057CE02
5B057CE03
5B057CE06
5B057CH09
5B057CH20
5B057DA16
5B057DB02
5B057DB09
(57)【要約】
画像のボケ補正のためのシステム、装置、および方法が提示される。1つの方法は、画像を受け取るステップと、その画像に対するボケを推定するステップとを含む。この方法はまた、画像にボケ補正フィルタを適用するステップと、画像からハローを低減させるステップとを含む。
【特許請求の範囲】
【請求項1】
処理デバイスによって、画像を受け取るステップと、
前記処理デバイスによって、前記画像に対するボケを推定するステップと、
前記画像にボケ補正フィルタを適用するステップと、
前記画像からハローを低減させるステップと
を含む方法。
【請求項2】
前記画像からノイズを除去するステップをさらに含む、請求項1に記載の方法。
【請求項3】
前記ボケを推定するステップが、ボケ関数を決定するステップをさらに含む、請求項1に記載の方法。
【請求項4】
前記ボケがガウス関数の少なくとも1つのパラメータに基づいて推定される、請求項1に記載の方法。
【請求項5】
前記ガウス関数が等方性ガウス関数を含む、請求項4に記載の方法。
【請求項6】
前記画像を正規化するステップをさらに含む、請求項1に記載の方法。
【請求項7】
前記画像の勾配特徴を計算するステップをさらに含む、請求項1に記載の方法。
【請求項8】
前記勾配特徴に基づき、ある区間にわたり複数の角度で方向導関数を計算するステップをさらに含む、請求項7に記載の方法。
【請求項9】
前記複数の角度のそれぞれに対する前記方向導関数の最大の大きさを計算するステップをさらに含む、請求項8に記載の方法。
【請求項10】
前記方向導関数の前記最大の大きさから最小値を選択するステップをさらに含む、請求項9に記載の方法。
【請求項11】
前記画像に対するボケスコアを推定するステップをさらに含み、前記ボケスコアが前記画像の不明瞭さの程度を示す、請求項1に記載の方法。
【請求項12】
前記ボケスコアを閾値と比較するステップをさらに含む、請求項10に記載の方法。
【請求項13】
前記ボケの逆数を推定するために、前記ボケの複数の反復を組み合わせるステップをさらに含む、請求項1に記載の方法。
【請求項14】
ボケカーネルに基づき、多項式を用いて前記ボケの逆数を推定するステップをさらに含む、請求項1に記載の方法。
【請求項15】
前記ボケ補正フィルタが多項式フィルタを含む、請求項1に記載の方法。
【請求項16】
前記多項式フィルタが前記推定されたボケの逆数に基づく、請求項1に記載の方法。
【請求項17】
前記ボケ補正フィルタが、前記推定されたボケから構築された線形復元フィルタを含む、請求項1に記載の方法。
【請求項18】
前記画像におけるハローを低減させるステップをさらに含む、請求項1に記載の方法。
【請求項19】
メモリと、
1つまたは複数のプロセッサと
を備える装置であって、前記1つまたは複数のプロセッサは、
画像を受け取り、
前記画像に対するボケを推定し、
前記画像にボケ補正フィルタを適用し、
前記画像からハローを低減させるように構成されている、装置。
【請求項20】
命令を記憶している非一時的コンピュータ可読媒体であって、
前記命令が、
画像を受け取ることと、
前記画像に対するボケを推定することと、
前記画像にボケ補正フィルタを適用することと、
前記画像からハローを低減させることと
を含む機能を行うように、1つまたは複数のプロセッサによって実行可能である、非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願
本出願は、その内容全体が参照により本明細書に組み込まれる、2020年11月16日に出願された米国仮特許出願第63/114,314号の優先権を主張するものである。
【背景技術】
【0002】
本明細書に別段に指定されていない限り、このセクションに記載されている材料は、本出願における特許請求の範囲に対する従来技術ではなく、このセクションに含まれることによって従来技術であるとは認められない。
【0003】
画像キャプチャ技術における最近の発展は、カメラデバイスの拡散をもたらし、それにより、ユーザによって作成されるデジタル写真の数を大幅に増加させている。しかし、携帯電話およびスマートフォンにおけるカメラなど、多くのカメラは、高度な機械的または電子的な合焦および安定化機構を有していない場合がある。その結果として、キャプチャされた画像の多くはボケており、それらの画像に対するユーザの満足度を低下させる場合がある。
【0004】
画像からボケを除去することは、画像処理およびコンピュテーショナルフォトグラフィにおける長年の課題であった。ボケは、カメラの焦点が正しく調整されていない(たとえば、焦点が合っていない)、被写体が異なる深度で現れている、またはカメラとシーンとの間の相対運動が生じているときなど、数々の要因によって生じ得る。完璧な条件においてさえも、ボケを生じさせる不可避的な物理的制約が存在する場合がある。たとえば、限定されたレンズ開口に起因する光の回折、センサにおける光の集積、および他の生じる可能性があるレンズの収差がボケを生じさせ、細部の損失に至ることがある。さらに、モザイク除去やノイズ除去など、画像処理パイプライン自体の他のコンポーネントが、ボケを生じさせる場合がある。
【0005】
画像のボケは、一般に、鮮明な潜像に作用する線形演算子としてモデル化され得る。線形演算子がシフト不変である場合には、ボケの動作は、ボケカーネルとのたたみ込みとなる。キャプチャされた画像はボケの上に加法的なノイズを有することになると仮定されることが多い。これは、
v=k*u+n
を意味し、ここで、vはキャプチャされた画像、uは基礎となる鮮明な画像、kは未知のボケカーネルとのたたみ込み、nは加法的なノイズである。
【0006】
画像のボケ補正は従来、ブラインドデコンボリューションのアプローチによって対処されてきている。ほとんどのブラインドデコンボリューション法は、2段階のステッププロセスを含む。第1のステップでは、ボケカーネルが推定される。これは、変分の枠組みを用いて、鮮明な画像モデルを仮定することによって行われ得る。第2のステップでは、ノンブラインドデコンボリューションのアルゴリズムが適用される。画像のノイズは、両方のステップを深刻に妨げ得る。よって、ブラインドデコンボリューションによるアプローチの著しい課題は、ボケカーネルが完璧に知られ得る場合でさえ、ノイズの存在とモデルのミスマッチとがアーティファクトを生じさせ得るということである。
【発明の概要】
【課題を解決するための手段】
【0007】
本開示の実施形態は、画像におけるボケを除去するためのシステム、方法、および装置を提供する。本開示のシステム、方法、および装置は、数々の方法で実装可能であるということが理解されるべきである。本開示のいくつかの実施形態が以下で説明される。
【0008】
1つの態様では、画像のボケ補正のための方法が説明される。この方法は、画像を受け取るステップと、画像に対するボケを推定するステップとを含む。この方法はまた、ボケ補正フィルタを画像に適用するステップと、画像からハローを低減させるステップとを含む。
【0009】
別の態様では、本出願は、メモリと、1つまたは複数のプロセッサとを備える装置を説明している。1つまたは複数のプロセッサは、画像を受け取り、画像に対するボケを推定するように構成され得る。1つまたは複数のプロセッサはまた、ボケ補正フィルタを画像に適用し、画像からハローを低減させるように構成され得る。
【0010】
さらに別の態様では、命令を記憶する非一時的コンピュータ可読媒体が開示されており、命令が1つまたは複数のプロセッサによって実行されるとき、1つまたは複数のプロセッサに動作を実行させる。これらの動作は、画像を受け取ることと、画像に対するボケを推定することとを含み得る。これらの動作はまた、ボケ補正フィルタを画像に適用することと、画像からハローを低減させることとを含む。
【0011】
これらの態様と他の態様、利点、および代替物が、適切な場合に添付の図面を参照しながら、以下の詳細な説明を読むことにより、当業者には明らかになる。さらに、この概要と本明細書において提供されている他の説明および図面は、単に例として実施形態を例証するように意図されたものであり、したがって、多数の改変が可能であることが理解されるべきである。たとえば、構造要素およびプロセスのステップは、特許請求されている実施形態の範囲内にありながら、再配置、組合せ、分散、消去、またはそれ以外の変更が可能である。
【0012】
次に、添付の図面と流れ図とが参照されるが、それらの図面と流れ図とは、必ずしも縮尺通りには描かれていない。
【図面の簡単な説明】
【0013】
図1】ある例示的な実施形態によるコンピューティングデバイスの例証を示す図である。
図2】ある例示的な実施形態による画像処理システムの簡略化されたブロック図である。
図3】ある例示的な実施形態による例示的な方法の例証的な流れ図である。
図4】ある例示的な実装形態によるコンピュータプログラムの概略図である。
【発明を実施するための形態】
【0014】
例示的な方法、デバイス、およびシステムが、本明細書に記載されている。本明細書では、「例」および「例示的」という用語は、「例、実例、または例証として機能する」ことを意味するように用いられると理解されるべきである。「例」、「例示的」、および/または「例証」であると本明細書に記載されている任意の実施形態または特徴は、そのように明記されていない限り、必ずしも他の実施形態または特徴より好適であるまたは有利であると解釈されるものではない。よって、本明細書に提示される主題の範囲から逸脱することなく、他の実施形態を利用することが可能であり、他の変更を行うことが可能である。
【0015】
したがって、本明細書に記載された例示的な実施形態は、限定することを意味するものではない。本明細書で一般的に説明され、図面において図解されている本開示の態様は、多種多様な異なる構成において配置、置換、結合、分離、および設計されることが可能であると容易に理解される。
【0016】
さらに、そうではないと文脈が示唆しない限り、図面の各々に図解されている特徴は、相互に組み合わせて用いられ得る。よって、図面は、一般的に、図解されている全ての特徴が各実施形態のために必要であるとは限らないことを理解しながら、1つまたは複数の全体的な実施形態のコンポーネントの態様としてみなされるべきである。
【0017】
追加すると、本明細書または特許請求の範囲における要素、ブロック、またはステップのどの列挙も、明確にするという目的のためのものである。よって、そのような列挙は、これらの要素、ブロック、もしくはステップが特定の配置に限られる、または特定の順序で実行されることを、要求または暗示するものとして解釈されるべきではない。特に明記されていない限り、図面は一定の縮尺では描かれていない。
【0018】
以下の実施形態は、画像におけるボケを除去するためのシステム、装置、および方法を説明している。ここで図面を参照すると、図1は、ある例示的な実装形態に従い画像におけるボケを除去するためのコンピューティングデバイス100の図解を示す。コンピューティングデバイス100は、カメラ、モバイルデバイス、パーソナルコンピュータシステム、デスクトップコンピュータ、ラップトップ、ノートブック、ネットブックコンピュータ、メインフレームコンピュータシステム、ハンドヘルドコンピュータ、ワークステーション、ネットワークコンピュータ、セットトップボックス、携帯電話、ビデオゲームコンソール、ハンドヘルドビデオゲームデバイス、アプリケーションサーバ、ストレージデバイス、ウェアラブルコンピューティングデバイス(たとえば、カメラ付きメガネ、ヘッドマウントディスプレイ、および/もしくは拡張現実ディスプレイ)、スイッチ、モデム、ルータまたは一般的に任意のタイプのコンピューティングもしくは電子デバイス、などであり得る。図1に示されているように、コンピューティングデバイス100は、通信インターフェース102、ユーザインターフェース104、プロセッサ106、データストレージ108を含み得るが、これらは全て、システムバス、ネットワーク、または他の接続メカニズム110によって、相互に通信可能にリンクまたは結合され得る。
【0019】
コンピューティングデバイス100の通信インターフェース102は、コンピューティングデバイス100が、アナログまたはデジタル変調を用いて、他のデバイス、アクセスネットワーク、および/またはトランスポートネットワークと通信することを可能にするように機能し得る。よって、通信インターフェース102は、POTS通信および/またはIPもしくは他のパケット化された通信など、回線交換および/またはパケット交換通信を容易にすることができる。たとえば、通信インターフェース102は、無線アクセスネットワークまたはアクセスポイントとのワイヤレス通信のために配置されたチップセットおよびアンテナを含み得る。また、通信インターフェース102は、イーサネット、トークンリング、またはUBSポートなど、ワイヤラインインターフェースの形態をとり得る。通信インターフェース102はまた、Wifi、BLUETOOTH(登録商標)、全地球測位システム(GPS)、または広域無線インターフェース(たとえば、WiMAXもしくはLTE)など、ワイヤレスインターフェースの形態をとる場合もある。しかし、他の形態の物理層インターフェースおよび他のタイプの標準またはプロプライエタリ通信プロトコルが、通信インターフェース102を介して用いられ得る。さらに、通信インターフェース102は、複数の物理通信インターフェース(たとえば、Wifiインターフェース、BLUETOOTH(登録商標)インターフェース、および広域無線インターフェース)を備え得る。
【0020】
コンピューティングデバイス100のユーザインターフェース104は、コンピューティングデバイス100が、ユーザから入力を受け取り、ユーザに出力を提供するなど、人間または人間以外のユーザと対話することを可能にするように機能し得る。ユーザインターフェース104は、キーパッド、キーボード、接触感知式または存在感知式パネル、コンピュータマウス、トラックボール、ジョイスティック、マイクロフォン、スチルカメラ、および/またはビデオカメラなどの入力コンポーネントを含み得る。ユーザインターフェース104はまた、(たとえば、接触感知式パネルと組み合わせることができる)ディスプレイ画面、CRT、LCD、LED、DLP技術を用いたディスプレイ、プリンタ、電球、および/または、現在知られているもしくは後に開発される他の類似技術など、1つまたは複数の出力コンポーネントを含み得る。ユーザインターフェース104はまた、スピーカ、スピーカジャック、オーディオ出力ポート、オーディオ出力デバイス、イヤホン、および/または現在知られているもしくは後に開発される他の類似のデバイスを介して、可聴出力を生成するように構成され得る。いくつかの実施形態では、ユーザインターフェース104は、入力/出力デバイスを介して、外部ユーザにデータを送信する、および/または外部ユーザからデータを受信することができるソフトウェア、回路構成、または別の形態のロジックを含み得る。追加的または代替的に、コンピューティングデバイス100は、通信インターフェース102を介して、または別の物理インターフェース(図示せず)を介して、別のデバイスからのリモートアクセスをサポートすることができる。
【0021】
いくつかの例では、ユーザインターフェース104はまた、コンピューティングデバイス100によってサポートされるスチルカメラおよび/またはビデオカメラ機能のためのビューファインダとして機能し得る。さらに、ユーザインターフェース104は、カメラ機能の構成および合焦と画像のキャプチャとを容易にする1つまたは複数のボタン、スイッチ、ノブ、および/またはダイヤルを含み得る。いくつかの実装形態では、これらのボタン、スイッチ、ノブ、および/またはダイヤルの一部または全部が、タッチまたは近接センサ式パネル上の機能として実装されている。
【0022】
コンピューティングデバイス100のプロセッサ106は、1つもしくは複数の汎用プロセッサ(たとえば、マイクロプロセッサ)および/または1つもしくは複数の専用プロセッサ(たとえば、デジタル信号プロセッサ(DSP)、グラフィックス処理ユニット(GPU)、浮動小数点ユニット(FPU)、ネットワークプロセッサ、もしくは特定用途向け集積回路(ASIC))を備え得る。プロセッサ106は、本明細書で説明されている様々な機能を実行するために、データストレージ108に記憶されているプログラム命令118(たとえば、コンパイルされたもしくはコンパイルされていないプログラムロジックおよび/またはマシンコード)を実行することが可能な場合がある。
【0023】
コンピューティングデバイス100のデータストレージ108は、磁気、光学、フラッシュ、または有機ストレージなど、1つもしくは複数の揮発性および/または不揮発性のストレージコンポーネントを含むことができ、プロセッサ106と全体または一部が一体化されている場合がある。データストレージ108は、取り外し可能および/または取り外し可能でないコンポーネントを含むことがある。さらに、データストレージ108は、その上にプログラム命令が記憶されている非一時的コンピュータ可読媒体を含むことがあり、このプログラム命令は、コンピューティングデバイス100によって実行されると、本明細書および/または添付の図面に開示されている方法、プロセス、技術、および/または機能のうちのいずれかをコンピューティングデバイス100に実行させる。プロセッサ106によるプログラム命令118の実行の結果として、プロセッサ106がデータ112を用いることになる。
【0024】
例として、プログラム命令118は、オペレーティングシステム122(たとえば、オペレーティングシステムカーネル、デバイスドライバ、および/または他のモジュール)と、コンピューティングデバイス100にインストールされた1つまたは複数のアプリケーションプログラム120(たとえば、アドレス帳、電子メール、ウェブブラウジング、ソーシャルネットワーキング、および/またはゲームアプリケーション)とを含み得る。同様に、データ112は、アプリケーションデータ114と、オペレーティングシステムデータ116とを含み得る。オペレーティングシステムデータ116は、主に、オペレーティングシステム122にアクセス可能であり得、アプリケーションデータ114は、主に、アプリケーションプログラム120の1つまたは複数にアクセス可能であり得る。アプリケーションデータ114は、コンピューティングデバイス100のユーザに見えるかまたはユーザから隠されているファイルシステムに配置され得る。
【0025】
アプリケーションプログラム120は、1つまたは複数のアプリケーションプログラミングインターフェース(API)を介して、オペレーティングシステム122と通信し得る。これらのAPIは、たとえば、アプリケーションプログラム120がアプリケーションデータ114を読むこと、および/または書くこと、通信インターフェース102を介して情報を送信または受信すること、ユーザインターフェース104上で情報を受信または表示することなどを容易にすることができる。
【0026】
場合によっては、アプリケーションプログラム120は、略して、「アプリ」と呼ばれ得る。さらに、アプリケーションプログラム120は、1つまたは複数のオンラインアプリケーションストアまたはアプリケーション市場を通じて、コンピューティングデバイス100にダウンロード可能な場合がある。しかし、アプリケーションプログラム120はまた、他の方法、たとえば、ウェブブラウザを介して、またはコンピューティングデバイス100上の物理インターフェース(たとえば、USBポート)を通じて、コンピューティングデバイス100上にインストールすることが可能である。
【0027】
コンピューティングデバイス100はまた、カメラコンポーネント(図示せず)を含むことがある。カメラコンポーネントは、これらに限定されることはないが、開口部、シャッタ、記録面(たとえば、写真フィルムおよび/もしくは画像センサ)、レンズ、ならびに/またはシャッタボタンを含み得る。カメラコンポーネントは、プロセッサ106により実行されるソフトウェアによって、少なくとも部分的に制御され得る。さらに、カメラコンポーネントは、複数のカメラシステムを含むことができ、これは、それぞれが、開口部、シャッタ、記録面レンズ、画像センサ、プロセッサ、および/またはシャッタボタンを含む。
【0028】
図2は、一実施形態による、ボケ除去プロセスを実行するための画像処理システムまたはエンジン202の例示的で簡略化されたブロック図の図解である。この画像処理システム202は、カメラ、モバイルデバイス、パーソナルコンピュータシステム、デスクトップコンピュータ、ラップトップ、ノートブック、ネットブックコンピュータ、メインフレームコンピュータシステム、ハンドヘルドコンピュータ、ワークステーション、ネットワークコンピュータ、セットトップボックス、携帯電話、ビデオゲームコンソール、ハンドヘルドビデオゲームデバイス、アプリケーションサーバ、ストレージデバイス、ウェアラブルコンピューティングデバイス(たとえば、カメラ付きメガネ、ヘッドマウントディスプレイ、および/または拡張現実ディスプレイ)、スイッチ、モデム、ルータまたは一般的に任意のタイプのコンピューティングもしくは電子デバイスなどの周辺デバイス等によって実装され得る、あるいはそれらと一体化され得る。画像処理システム202は、前置フィルタまたは前置処理モジュール204(たとえば、ノイズ除去エンジン)とボケ除去モジュール206とを含む、様々なコンポーネントを含み得る。前置フィルタモジュール204は、(破線のアウトラインによって示されているように)任意選択のコンポーネントであり得る。たとえば、前置フィルタモジュール204(たとえば、ノイズ除去エンジン)は、いくつかの場合には、画像処理システム202の中に含まれるか、または画像処理システム202によって用いられることがあり、他の場合には、画像処理システム202から除外されるか、または画像処理システムによって用いられないことがある。
【0029】
画像処理システム202のコンポーネントは、電子回路もしくは他の電子ハードウェアを含むことがある、および/または電子回路もしくは他の電子ハードウェアを用いて実装されることがあり、これらの電子回路もしくは他の電子ハードウェアは、1つまたは複数のプログラマブル電子回路(たとえば、マイクロプロセッサ、グラフィックス処理ユニット(GPU)、デジタル信号プロセッサ(DSP)、中央処理装置(CPU)、および/または他の適切な電子回路)を含み得る、ならびに/あるいは、画像処理システム202のコンポーネントは、本明細書において説明されている様々な動作を実行するための、コンピュータソフトウェア、ファームウェア、もしくはそれらのいずれかの組合せを含み得る、および/またはそれらを用いて実装され得る。たとえば、前置フィルタモジュール204とボケ除去モジュール206とは、コンピュータ可読記憶媒体に記憶され、本明細書において説明されている機能を遂行するようにコンピュータシステムのプロセッサによって実行され得る。画像処理システム202は特定のコンポーネントを含むように示されているが、当業者であれば、画像処理システム202が図2に示されているコンポーネントより、多数または少数のコンポーネントを含む場合もある、ということを理解するであろう。たとえば、画像処理システム202は、いくつかの場合には、図2に示されていない1つもしくは複数のメモリデバイス(たとえば、RAM、ROM、キャッシュ、バッファ、および/もしくは同等のもの)、ならびに/または処理デバイスを含むこともあり得る。
【0030】
画像処理システム202は、入力画像を受け取り得る。入力画像は、画像からノイズを低減させるまたは除去するように、前置フィルタモジュール204によって処理され得る。たとえば、前置フィルタモジュール204は、ノイズが低減された画像を生成するために、入力画像のノイズ除去を行うことができる。前置フィルタモジュール204は、入力画像からノイズを低減させるまたは除去するために、非ローカルな平均フィルタリングを含み得る。他の実施形態では、前置フィルタモジュール204は、入力画像からノイズを除去するまたは低減させるために、ノイズ除去ニューラルネットワーク(たとえば、従来型のニューラルネットワーク、または他の適切なニューラルネットワーク)を用いることがある。そのような場合には、ノイズ除去ニューラルネットワークを、いくつかの画像のノイズを含む複数のバージョンを同じ画像のクリーンバージョンと共に入力することによって、訓練することが可能である。既知の入力(ノイズを含む画像)と既知の出力(クリーンな画像)とを用いると、ノイズ除去ニューラルネットワークは、そのニューラルネットワークに入力されるノイズを含む画像からクリーンな画像(ノイズが低減された画像)を出力できるように、そのパラメータ(たとえば、ウェイト、バイアスなど)をチューニングすることが可能である。結果として得られるノイズが低減された画像は、ノイズをまったく有しないことがある、または幾分かのノイズを依然として有することもあるが、ノイズ除去ニューラルネットワークによって、ノイズを大幅に低減させることができる。
【0031】
いくつかの実施形態では、前置フィルタモジュール204は、ノイズが低減された画像を生成するために、他のノイズ除去技術を用いることもできる。いくつかの例では、このノイズ除去技術は、AIMエンジンによるノイズ除去-アップスケール-ダウンスケール、メディアンフィルタリング、非等方拡散、幾何平均フィルタリング、ローカルな平均フィルタリング、バイラテラルフィルタリング、ブロックマッチングおよび3次元(3D)フィルタリング、ローカルピクセルグルーピング、ウィーナーフィルタを用いたフィルタリング、いずれかの他の適切なノイズフィルタリング技術、および/またはこれらの任意の組合せを含み得る。
【0032】
さらに、前置フィルタモジュール204は、画像を正規化して画像のダイナミックレンジを決定するための動作を実行し得る。たとえば、前置フィルタモジュール204は、処理された画像が予め定義されたコントラストおよび標準偏差の値を有するように、入力画像の輝度を正規化し得る。前置フィルタモジュール204はさらに、画像におけるダイナミックレンジとノイズとに基づき、ボケ検出処理を実行すべきかどうかを判断し得る。画像が、多すぎるノイズまたは低すぎるダイナミックレンジを有する場合には、前置フィルタモジュール204は、その画像を廃棄するように構成され得る。ボケ検出処理が実行され得ると前置フィルタモジュールが判断する場合には、画像からボケを除去するために、さらなる処理ステップが、ボケ除去モジュール206によって実行され得る。
【0033】
画像処理システム202のボケ除去モジュール206は、画像のボケを推定し、入力画像のボケを除去して、ハローを低減させる。ボケ除去モジュール206は、ボケ除去モジュール206のボケ推定モジュール208と、ボケ補正モジュール210と、ハロー除去モジュール212とを含み得る。ボケ推定モジュール208は、画像のボケを推定するように構成され得る。ボケ推定モジュール208は、入力画像を受け取ることがあり、または前置フィルタモジュール204からノイズが低減された画像を受け取ることがある。ボケ推定モジュール208は、不明瞭さの程度を判断するために、受け取られた画像を解析することができる。受け取られた画像があまりに多くのボケを有する場合には、ボケ推定モジュール208は、さらに後述されるように、受け取られた画像を廃棄することがある。しかし、受け取られた画像が軽度のボケを有する(たとえば、ボケが閾値未満である)場合には、ボケ推定モジュール208は、ボケを推定するために、受け取られた画像に対して動作を実行し得る。
【0034】
一実施形態では、ボケ推定モジュール208は、ガウス関数のパラメータに基づいて、受け取られた画像のボケをモデル化することができる。画像のボケが画像の全体にわたって一様であり、画像のボケは、線形モデルv=k*u+nによってモデル化可能であると仮定され得、ここで、vはキャプチャされた画像、uは基礎となる鮮明な画像、kは未知のボケカーネルとのたたみ込み、nは加法的ノイズである。ボケ推定モジュール208は、ボケカーネルが小さいことが期待され、ボケカーネルのためにパラメトリックモデルを用いることができる場合には、軽度のボケ(たとえば、閾値未満のボケ)を処理するように設計され得る。そのため、一実装形態では、ボケカーネルは、3つのパラメータを用いて特定される異方性ガウス関数を用いてモデル化され得、ここで3つのパラメータとは、主軸(main axis)の標準偏差であるσ0、主要軸(principal axis)と直交軸とにおける標準偏差間の比であるρ、および長軸(major axis)と(水平の)x軸との間の角度であるθである。よって、ピクセル(x,y)におけるガウスボケカーネルは、次の方程式によって計算され得る。
【0035】
【数1】
【0036】
ここで、
【0037】
【数2】
【0038】
および、Zは、その面積が1に等しくなるようにする正規化因子である。このように、ボケを推定することは、3つのパラメータ(σ0、ρ、およびθ)を推定することに帰することになる。
【0039】
ボケカーネルモデルを用いて特定の画像のためのボケカーネルを推定するため、画像の画像勾配分布に関して、以下の仮定がなされ得る。たとえば、鮮明な自然画像の任意の方向における画像勾配の最大値は、実質的に一定であり得、画像とは独立であり得ると仮定できる。また、鮮明な画像がガウスボケ(Gaussian blur)によって影響される場合には、主要(直交)軸の方向でのボケレベルは、その(直交)方向における最大画像勾配の逆数と線形な関係であり得るとも仮定できる。これらの仮定に基づくと、画像導関数の最大の大きさを、全ての可能な向きにおいて推定することができ、それらの中で最小値が決定され得る。これにより、次の方程式が得られる。
【0040】
【数3】
【0041】
ここで、f(x)は、任意の入力画像である。そして、
【0042】
【数4】
【0043】
であるが、ここで、cは勾配特徴とボケのレベルとの間での仮定される線形関係を制御する係数である。
【0044】
任意の与えられた画像ピクセルにおいても、画像勾配の推定は、追加的なボケを生じ得る(何らかの種類の補間が必要とされ得るからである)。これは、画像に既に含まれている画像ボケへの追加であり得る。ボケ推定がσbの等方性ガウスボケを生じさせると仮定すると、画像の全体的なボケは、ほぼ、
【0045】
【数5】
【0046】
となる(ガウス関数の半群性(semigroup property)による)。これにより、次が得られる。
【0047】
【数6】
【0048】
ここで、cおよびσbは、較正されることを必要とする2つのパラメータである。
【0049】
一実装形態では、パラメータcおよびσbは、以下のように較正され得る。すなわち、鮮明な高画質の画像の組が与えられると、ボケ空間と画像との組をランダムにサンプリングすることによって、いくつかのガウスボケ画像(たとえば、K=1000)がシミュレートされ得る。ガウスボケカーネルは、[0.3,4]に属するσ0と[0.15,1]に属するρとに対してランダムな値をサンプリングすることによって生成され得る。σn=3.0の加法的ガウスホワイトノイズが、それぞれのシミュレートされたボケを含む画像に加えられ得る。ボケを含む画像のそれぞれに対し、上記の方程式(9)に従って、勾配特徴と最大および最小値とがサンプリングされ得る。パラメータcおよびσbは、上記の方程式(10)によって、推定され得る。他の実施形態では、他の適合方式が用いられることがある(たとえば、ロバストL1適合、フーバー(Hubber)損失、加重最小2乗法など)。
【0050】
一例では、ボケ推定モジュール204は、ガウスボケ推定手順を実行するために、以下のようなアルゴリズムを用いて実装され得る。すなわち、画像u、q分位、n個の角、(a,b)、(σmaxmin)、(ρmaxmin)を入力として、パラメータ(σ0,ρ,θ)を出力とする。
1.入力画像を正規化する。
u=(u-umin)/(umax-umin)であり、ここで、umaxおよびuminは、分位q=0.0001および1-qを取るロバストな最大値および最小値として計算される。
2.勾配特徴を計算する。
画像勾配(ux,uy)を計算し、次に、[0,π)を一様に被覆するnangles(6)における方向導関数を計算する。これは、uψ= uxcos(ψ)-uysin(ψ)を計算することによってなされ得る。それぞれのuψ(x,y)に対して、fψ=max|uψ|を計算する。
3.勾配特徴を補間する。
スーパー解像度グリッド(n個のサンプル)において、(fψ11),...,(fψnn)をキュービック補間し、最小値とそれぞれの角度とを推定する。(f00)を最小値に設定し、(f10⊥)を直交方向θ0⊥における特徴値への向きθ0⊥とする。
4.回帰モデル(たとえば、方程式(10))を用いて、σ0およびσ1を推定する。
5.パラメータを有効化する。
a.σ0=clamp(σ0minmax)およびσ1=clamp(σ1minmax)
b.ρ=σ10と定義する。
c.ρ=clamp(ρ,ρminmax)
6.(σ0,ρ,θ0)を戻す。
【0051】
さらに、ボケ推定モジュール208が、受け取られた画像に対して不明瞭さの程度を示すボケスコア(blur score)を計算し得る。たとえば、ボケ推定モジュール208によって受け取られた画像を解析することができ、ボケスコアが計算される。ボケスコアがより高い場合には、画像におけるボケの程度が大きいことが示され得る。推定されたガウスボケパラメータが与えられると、ボケスコアが、いくつかの方法で推定または計算され得る。一例では、ボケスコアは、推定されたガウスと同じ共分散行列の行列式を有する等方性ガウスボケ(Gaussian blur)の標準偏差を計算することによって決定され得る。これは、σ0およびσ1によって決定される楕円と同じ面積を有する円の半径を、ボケスコアとして定義することになる。すなわち、次の通りである。
【0052】
【数7】
【0053】
ボケスコアは、所定の閾値と比較され得る。ボケスコアが所定の閾値未満である場合には、画像は、良好/受け入れ可能な画質であり、ボケ補正モジュール210によってさらに処理されてもよいと判断され得る。他方で、ボケスコアが閾値よりも大きい場合には、画像は廃棄されてもよいと判断される。
【0054】
依然として図2を参照すると、画像処理システム202のボケ補正モジュール210は、ボケ推定モジュール208から画像を受け取り、画像のボケ補正を行う。ボケ補正モジュール210は、ボケを低減させるため、画像にボケ補正フィルタ(たとえば、線形復元フィルタ)を適用し得る。ボケ補正フィルタは、ボケ推定モジュール208によって推定されたボケの逆数に基づいて構築され得る。ボケを含む画像においてボケカーネルの異なる反復を組み合わせることによって、ボケの逆数が、以下のようにして近似され得る。Kをボケカーネルkとのたたみ込み演算子とすると、何らかの行列ノルムの下で||I-K||<1である場合には、Kの逆行列であるK-1が存在し、
【0055】
【数8】
【0056】
上記の方程式の幾何級数は、たたみ込みのための円形の境界条件を仮定すると、収束し得るので、行列Kの固有ベクトルはフーリエモードである。これにより、(I-K)i=FH(I-D)iFが得られるが、ここで、Fはフーリエ基底であり、FHはFのエルミート転置であり、DはKの固有値を用いた対角行列である。よって、この級数は、Kの固有値がD={z∈C:|z-1|<1}の中にある場合には収束する。しかし、ボケが可逆ではない場合、すなわち固有値がゼロである場合には、このべき級数は、Kの疑似逆行列に収束し得る。全体的な明度(luminosity)を保存するボケフィルタの場合には、合理的な仮定は、k(x)≧0および
【0057】
【数9】
【0058】
である。この結果として、次が得られる。
【0059】
【数10】
【0060】
一例では、逆行列は、ボケカーネルを基底として用いる多項式フィルタにより近似され得る。たとえば、次数3のべき級数を打ち切る場合には、Kの多項式近似による逆行列は次のように表され得る。
【0061】
【数11】
【0062】
さらに、次の方程式のような一般的な多項式が用いられ得る。
【0063】
【数12】
【0064】
ここで、次数dおよび係数(a0,..., ad)は、ボケが特定の成分にどう影響しているかに応じて異なるように、増幅または減衰するように設計され得る。
【0065】
ボケフィルタk(x)が対称である、すなわちk(x)=k(-x)であり、非負のフーリエ係数を有すると仮定すると、フィルタkのフーリエ係数である
【0066】
【数13】
【0067】
は、[0,1]の中にあり得る。多項式フィルタのフーリエ係数は、同じ多項式を通じて、ベースフィルタからのフーリエ係数と関係を有し得る、すなわち、下記の通りである。
【0068】
【数14】
【0069】
多項式フィルタは、フーリエ領域において、解析されることが可能である。多項式によって写像された区間I=[0,1]に基づき、減衰されたフーリエ成分が、多項式フィルタによって、どのように増幅、または減衰され得るのかが決定され得る。多項式フィルタが、その多項式フィルタに用いられたのと同じベースボケkによって影響を受けた画像vに適用される場合には、方程式は次のようになる。
p(K)v=p(K)Ku+p(K)n (6)
ここで、ボケを反転すること、すなわちp(K)K≒Idと、ノイズのn倍の増幅、すなわちp(K)n≒0を回避することとの間にはトレードオフが存在することが明らかになり得る。よって、多項式は、(i)著しく減衰されていない周波数においてボケの効果を反転させ、(ii)ボケによって著しく影響を受けた周波数の増幅を回避するように設計され得る。
【0070】
一例では、多項式フィルタは、Kが単位行列に近い場合には、p(K)K≒Idに基づいて、またはx≒1の場合には多項式p(x)≒1/xとして構築され得る。x=1における1/xの次数dのテイラー展開は、多項式フィルタを方程式(2)を次数dまでで打ち切ることになる、ということに留意されたい。このようにして、この多項式は、逆行列を実質的に近似するが、特に最も減衰された成分において、ノイズを著しく増幅する。逆行列を近似してノイズの増幅を制御するために、次数dの多項式が設計され得る、すなわち、d+1個の係数が定義され得る。逆行列は、多項式がx=1における逆関数の導関数と等しい導関数を有するように強制することによって近似され得る。これは、次数d-2まで、すなわち、
p(i)(x=1)=(-1)ii! (7)
であり、i=1,...,d-2であって、p(x=1)=1である追加的な制約条件に基づく。残りの2つの自由度は、設計パラメータとして残すことができる。中間周波数は、p(d-1)(x=1)=αを制御することによって増幅させることができ、ノイズは、ボケによって完全に減衰されている周波数においてp(x=0)=bを制御することによって増幅させることができる。d+1個の線形方程式というこの例は、多項式の(閉じた形式である)族であるpol-d-α-bに至る。αおよびbの値は、打ち切られたべき級数によって与えられたものに近い範囲内で変動するはずであり、すなわち、α=(-1)dd!およびb=d+1である。多項式フィルタの族は、次のように、次数d=3として提示され得る。
p3,α,b(x)=(α/2-b+2)x3+(3b-α-6)x2+(5-3b+α/2)x+b (8)
【0071】
上述の解析は、ボケフィルタk(x)が対称であり、さらに、負のフーリエ係数を有することができないと仮定する。これを回避する1つの方法は、全フィルタがh=ck*kとなるがhが所望の性質(フーリエ係数が非負である)を有するように、画像に補正フィルタck(x)を適用することによることであり得る。
【0072】
一例では、フリップされたカーネル、すなわちck(x)=k(-x)が用いられ得、これにより、実際の非負フーリエ係数
【0073】
【数15】
【0074】
を有するh(x)をもたらす。しかし、補正フィルタが画像に追加的なボケを生じさせる場合があり、ボケ補正という課題がさらに困難になる。代替的なアプローチとして、位相を補償するが、スペクトルにどのような追加的な減衰も生じさせないように、補正フィルタを設計することがあり得る。これは、純粋な位相フィルタ
【0075】
【数16】
【0076】
によって行われ得る。かくして、以下のようにして、手順が実装され得る。すなわち、kとボケを含む画像vとが与えられた場合に、vc=ck*vおよびh=ck*kが計算され得る。そして、ベースフィルタhと共に多項式フィルタを用いて、ボケを含む画像vcがボケ補正され得る。
【0077】
再び図2を参照すると、ハロー除去モジュール212は、ボケ補正モジュール210からボケが補正された画像を受け取り、その画像におけるハロー(たとえば、ハローアーティファクト)を低減させ得る。ハローは、ボケの誤推定に起因して、または一般的にモデルのミスマッチに起因して生成され得る。ハローは、ボケを含む画像と復元された画像とが反対の勾配(勾配の反転)を有するピクセルにおいて生じ得る。
【0078】
一例では、v(x)をボケが含まれる画像とし、v-(x)をボケが補正された画像とする。勾配反転を有するピクセルとは、
【0079】
【数17】
【0080】
が正であるピクセルである。入力画像v(x)とボケが補正された画像v-(x)とのピクセルごとの凸結合として形成され得る新たな画像u(x)は、方程式
【0081】
【数18】
【0082】
によって、計算され得る。
【0083】
さらに、この例は、最終画像u(x)におけるハローを回避するが、ボケが補正された
【0084】
【数19】
【0085】
を可能な限り多く保持するように設計され得る。z(x)が高速に変化しすぎる場合には、次が得られる。
【0086】
【数20】
【0087】
最終画像におけるハローを回避するためには、
【0088】
【数21】
であることが要求され得る。次に、M(x)>0であるピクセルに対しては、方程式
【0089】
【数22】
【0090】
が、ボケ補正ステップにおいて生じた任意の勾配反転ハローを有し得ない新たな画像をもたらすことになる。ボケ補正された画像(すなわち、z(x)を可能な限り多く保つためには、∈ [0, 1]が可能な限り小さくあるべきである。すると、最終画像は、方程式(12)によって与えられた凸結合において、
【0091】
【数23】
【0092】
を採用することによって生成される。
【0093】
ハローが画像から低減または除去され得る後で、214において、ノイズが画像に追加されることがある。たとえば、前置フィルタ204によって除去されたノイズは、出力画像を生成するために、ハロー除去の出力と組み合わせられることがある。出力画像は、ボケ補正された画像であり得る。
【0094】
一実装形態では、図2の画像処理システム202は、モバイルデバイスに一体化されることがあり、本明細書において説明されている技術を用いて、ほぼ1秒の何分の1かの間に、12MPの画像のボケ補正を行うことができる。たとえば、画像処理システム202は、Halideというプログラミング言語を用いて、X86およびARMアーキテクチャのために設計され得る。Halideは、ローカルなもののためのfuseパイプライン段がより容易に融合されることを可能にし、単一命令ストリーム多重データストリーム(SIMD)コンピュータアーキテクチャおよびスレッド並列を利用するために、アルゴリズムの実装をその実行スケジュール(すなわち、ループネスティング、並列化など)から分離し得る。このアルゴリズムは、並列に動作することができ、並列の実装が、任意の適切なGPUの並列処理能力を完全に利用することができる。
【0095】
この実装形態では、ノイズライクな構造を画像の残りから分離する前置フィルタのステップが適用され得る。入力画像が非常に多くのノイズを含むか、または圧縮アーティファクトを有する場合には、この前置フィルタのステップが、画像に存在しているアーティファクトを増幅させるために、ボケ除去プロセスを回避することになる。残留画像が最後に追加されるので、このステップは、最新のノイズ除去機構によって実行される必要がないことがある。
【0096】
画像処理システム202は、画像のボケを推定することができる。第1に、画像は、外れ値に対してロバストであるために、分位(q=0:0001および1-q)を用いて正規化される。画像勾配(ux;uy)から、[0,q]を一様に被覆するn個の角度(通常は、nangles=6)において、方向導関数が計算され得る。それぞれの角度に対する大きさの最大の方向が見つけられ得る。nangles個の最大値の中で、スーパー解像度のグリッドにおける(f1;1);:::;(f n;n)(n個のサンプル)のバイキュービックな補間を通じて、最小値と角度(f0;_0)とを見つけることができる。方程式(10)を用いると、σ0およびσ1が計算され得、ρが計算され得る。
【0097】
この場合には、勾配特徴を、異なる角度間だけではなく、それぞれの異なるピクセル間でも、効率的に、並列的に計算することができる。最大値を計算することは、共有されるメモリおよびタイリングを用いて最適化が可能な集約動作として表すことが可能である。パイプラインの内部で、これは計算の約40~53%を表すが、その理由は、最大の大きさがnangles回計算され得るからである。
【0098】
さらに、画像処理システム202のボケ補正フィルタは、推定されたボケと上述した方程式(8)の多項式の係数とによって与えられた閉じた形式を有し得る。3次の多項式フィルタの場合には、復元フィルタのサポートは、推定されたベースボケのサポートのおおよそ3倍である。大きなボケカーネルの場合には、たたみ込みを、フーリエ領域において効率的に計算することが可能である。ガウスボケが分離可能な場合には、たたみ込みを空間において効率的に計算することが可能である。この場合には、多項式フィルタは計算され得ない。むしろ、ガウスボケの反復的な適用が直接的に行われ得るのであって、次のように累積され得る。
v0=a0u, vi=k*vi-1+aiu (11)
【0099】
分離可能でないガウスフィルタリングはまた、非直交軸における2つの1Dガウスフィルタによって、効率的に計算することが可能である。
【0100】
図面を再び参照すると、図3は、画像からボケを除去するための方法300の例示的な態様を図解している。方法300は、1つまたは複数のブロック302~308によって示されている1つまたは複数の動作を含み得る例示的な方法を表しており、これらのブロックのそれぞれは、他の可能な実施形態の中で図1および図2に示されている実施形態のうちのいずれかによって実行され得る。ある例示的な実装形態では、コンピューティングデバイスまたは画像処理システム(たとえば、図1のコンピューティングデバイス100または図2の画像処理システム202)が、図解されている動作を実行するが、他の実装形態では、1つまたは複数の他のシステムが、これらの動作の一部または全てを実行する場合もある。
【0101】
当業者であれば、本明細書に記載されている流れ図またはフローチャートが、本開示の特定の実装形態の機能および動作を図解していることを理解するだろう。この点で、流れ図のそれぞれのブロックは、モジュール、セグメント、またはプログラムコードの一部を表し得、特定の論理的機能またはプロセスにおけるステップを実装するための1つまたは複数のプロセッサによって実行可能な、1つまたは複数の命令を含む。プログラムコードは、たとえば、ディスクまたはハードドライブを含むストレージデバイスなど、任意のタイプのコンピュータ可読媒体上に記憶され得る。
【0102】
さらに、それぞれのブロックは、プロセスにおける特定の論理的機能を実行するように配線がなされた回路構成を表し得る。本出願の例示的な実施形態の範囲内には、代替的な実装形態が含まれ、その場合、当業者であれば理解するだろうが、関与する機能に応じて、実質的に同時に、または逆の順序を含む、示されているまたは論じられている順序とは異なる順序で機能が実行されることがある。例の中には、いずれかのシステムが、別のシステムに、後述される動作のうちの1つまたは複数(もしくは、動作の一部)を実行させる場合もある。
【0103】
次に図3を参照すると、方法300は、カメラなどの画像キャプチャデバイスから受け取られた画像を改善するのに用いられ得る。たとえば、方法300は、ある画像に対するボケを推定し、その画像からボケを除去するためのボケ除去プロセスを実行する。一例では、図2に図解されている画像処理システムなどの画像処理システムが、図3に図解されているボケ除去プロセスを実行するために用いられ得る。この画像処理システムは、カメラ、モバイルデバイス、パーソナルコンピュータシステム、デスクトップコンピュータ、ラップトップ、ノートブック、ネットブックコンピュータ、メインフレームコンピュータシステム、ハンドヘルドコンピュータ、ワークステーション、ネットワークコンピュータ、セットトップボックス、携帯電話、ビデオゲームコンソール、ハンドヘルドビデオゲームデバイス、アプリケーションサーバ、ストレージデバイス、ウェアラブルコンピューティングデバイス(たとえば、カメラ付きメガネ、ヘッドマウントディスプレイ、および/または拡張現実ディスプレイ)、スイッチ、モデム、ルータもしくは一般的に任意のタイプのコンピューティングもしくは電子デバイスなどの周辺デバイスなどによって実装、またはそれらと一体化され得る。
【0104】
ブロック302では、画像が画像処理システムによって受け取られ得る。入力画像は、任意選択として、前処理される場合がある。前処理は、画像輝度の正規化と、ダイナミックレンジおよびノイズ推定の決定とを含み得る。高度のノイズを有する画像は、拒絶されることがある。いくつかの例では、入力画像が、その画像におけるノイズを低減させるためにフィルタ(たとえば、非ローカルな平均フィルタ)を通過させられる。他の実施形態では、画像処理システムが、ノイズが低減された画像を生成するために、他のノイズ除去技術を用いることができる。いくつかの例では、このノイズ除去技術は、AIMエンジンによるノイズ除去-アップスケール-ダウンスケール、ニューラルネットワーク、メディアンフィルタリング、非等方拡散、幾何平均フィルタリング、ローカルな平均フィルタリング、バイラテラルフィルタリング、ブロックマッチングおよび3次元(3D)フィルタリング、ローカルピクセルグルーピング、ウィーナーフィルタを用いたフィルタリング、これらのいずれかの組合せ、および/または任意の他の適切なノイズフィルタリング技術を含み得る。
【0105】
さらに、画像処理システムは、画像を正規化して画像のダイナミックレンジを決定するための動作を実行し得る。たとえば、画像処理システムは、処理された画像が予め定義されたコントラストおよび標準偏差の値を有するように、入力画像の輝度を正規化し得る。画像処理システムはさらに、画像におけるダイナミックレンジとノイズとに基づき、ボケ検出処理を実行すべきかどうかを判断し得る。画像が、多すぎるノイズまたは低すぎるダイナミックレンジを有する場合には、画像処理システムは、その画像を廃棄するように構成され得る。ボケ検出処理が実行され得ると画像処理システムが判断する場合には、画像からボケを除去するために、さらなる処理ステップが実行され得る。
【0106】
ブロック304では、画像処理システムが、画像のボケを推定し得る。一例では、画像処理システムが、入力画像を正規化し、画像勾配の特徴を計算し、勾配の特徴を補間し、上述されたように、回帰モデルを用いて、ガウス関数のパラメータ(たとえば、σ0およびσ1)を推定することができる。さらに、画像処理システムは、不明瞭さの程度を示す画像のボケスコアを計算し得る。このボケスコアは、所定の閾値と比較され得る。ボケスコアが所定の閾値未満である場合には、その画像は良好な/受け入れ可能な画質を有すると判断することができ、画像処理システムはその画像の処理を継続し得る。他方で、ボケスコアが閾値よりも大きいと判断される場合には、画像は廃棄され得る。
【0107】
ブロック306では、画像処理システムが、推定されたボケに基づいて、画像のボケ補正を行い得る。画像処理システムは、ボケを低減させるために、画像に対して、ボケ補正フィルタ(たとえば、線形復元フィルタ)を適用し得る。ボケ補正フィルタは、画像処理システムによって推定されるボケの逆数に基づいて構築され得る。一例では、この逆数は、上述されたように、ボケカーネルをベースとして用いる多項式フィルタにより、近似され得る。
【0108】
ブロック308では、画像処理システムが、画像からハローを低減させ得る。画像処理システムは、上述の方程式(14)を用いることによって、ハローを低減させることができる。画像からハローが低減または除去された後では、214において、ノイズが画像に追加され得る。たとえば、前置フィルタステップによって除去されたノイズは、出力画像を生成するために、ハロー除去ステップの出力と合成され得る。出力画像は、ボケ補正された画像であり得る。
【0109】
図3に示されているステップは、例示的な実施形態による方法を図解するように意図されているということが理解される。かくして、全体として所望の動作を依然として達成しながら、様々なステップが改変または修正され得、特定のステップの順序が変更され得、追加的なステップが追加され得る。この方法は、クライアントデバイスもしくはサーバによって、またはクライアントデバイスとサーバとの組合せによって実行されることが可能である。この方法は、任意の適切なコンピューティングデバイスによって実行されることが可能である。
【0110】
本明細書において、例証的な実施形態が、例として説明された。しかし、実施形態が向けられており、特許請求の範囲によって定義されている要素、製品、および方法の真の範囲および精神から逸脱することなく、変更および修正がこの実施形態に対して行われ得るということを、当業者であれば理解するであろう。
【0111】
図4は、例示的な実装形態によるコンピュータプログラムの概略図である。いくつかの実装形態では、開示されている方法は、機械可読フォーマットにおいて、非一時的コンピュータ可読記憶媒体上で、または他の非一時的媒体もしくは製造品上において符号化されたコンピュータプログラム命令として実装され得る。
【0112】
ある例示的な実装形態では、コンピュータプログラム製品400は、信号担持媒体402を用いて提供され、この信号担持媒体402は、1つまたは複数のプロセッサによって実行されるとき、図1図3に関して上述された機能または機能の一部を提供し得る1つまたは複数のプログラミング命令404を含み得る。いくつかの例では、信号担持媒体402は、これらに限定されることはないが、ハードディスクドライブ、CD、DVD、デジタルテープ、メモリ、遠隔的に記憶するコンポーネント(たとえば、クラウド上に)など、非一時的コンピュータ可読媒体406を包含し得る。いくつかの実装形態では、信号担持媒体402は、これらに限定されることはないが、メモリ、リード/ライト(R/W)CD、R/W DVDなど、コンピュータ記録可能媒体408を包含し得る。いくつかの実装形態では、信号担持媒体402は、これらに限定されることはないが、デジタルおよび/またはアナログ通信媒体(たとえば、光ファイバケーブル、導波路、有線通信リンク、ワイヤレス通信リンク、その他)など、通信媒体410を包含し得る。同様に、信号担持媒体402は、リモートストレージ(たとえば、クラウド)に対応し得る。コンピューティングシステムは、情報を送信または受信することを含めて、クラウドと情報を共有し得る。たとえば、コンピューティングシステムは、センサまたは他のエンティティから取得された情報を増加させるため、追加的な情報をクラウドから受け取る場合がある。よって、たとえば、信号担持媒体402は、通信媒体410という無線の形式で運ばれることがある。1つまたは複数のプログラミング命令404は、たとえば、コンピュータ実行可能なおよび/または論理実装された命令であり得る。いくつかの例では、図1のコンピューティングデバイス100および図2の画像処理システム202などのコンピューティングデバイスは、コンピュータ可読媒体406、コンピュータ記録可能媒体408、および/もしくは通信媒体410のうちの1つまたは複数によってそのコンピューティングデバイスに運ばれたプログラミング命令404に応答して、様々な動作、機能、または作用を提供するように構成され得る。
【0113】
非一時的コンピュータ可読媒体はまた、相互に離れて位置することがある複数のデータ記憶要素および/またはクラウドの間で、(たとえば、離れて)分散させることもできる。記憶された命令の一部または全て実行するコンピューティングデバイスは、サーバなど、別のコンピューティングデバイスでもあり得る。
【0114】
本明細書では、例示的な方法、システム、および装置が、画像のボケ補正と関連する1つまたは複数の態様に従って説明されている。一般に、本明細書で説明されているコンポーネント、モジュール、方法、および動作のうちのいずれも、ソフトウェア、ファームウェア、ハードウェア(たとえば、固定された論理回路構成)、マニュアル処理、またはそれらの任意の組合せを用いて実装され得る。例示的な方法のいくつかの動作が、コンピュータ処理システムに対してローカルおよび/またはリモートであるコンピュータ可読ストレージメモリ上に記憶された実行可能命令の一般的な文脈において説明されている場合があり、実装形態は、ソフトウェアアプリケーション、プログラム、関数などを含むことがある。代替的に、または追加的に、本明細書で説明されている機能のいずれも、限定はしないが、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、特定用途向け標準製品(ASSP)、システムオンチップシステム(SoC)、コンプレックスプログラマブルロジックデバイス(CPLD)など、1つまたは複数のハードウェアロジックコンポーネントによって、少なくとも部分的に、実行可能である。
【0115】
さらに、上記の詳細な記載は、開示されたシステム、装置、および方法の様々な特徴および動作を、添付の図面を参照して説明している。本明細書において様々な態様および実施形態が開示されてきたが、他の態様および実施形態も明らかでる。本明細書に開示されている様々な態様および実施形態は、例証のためであって、限定は意図されておらず、真の範囲は以下の特許請求の範囲によって示されている。
【符号の説明】
【0116】
100 コンピューティングデバイス
102 通信インターフェース
104 ユーザインターフェース
106 プロセッサ
108 データストレージ
110 接続メカニズム
112 データ
114 アプリケーションデータ
116 オペレーティングシステムデータ
118 プログラム命令
120 アプリケーションプログラム
122 オペレーティングシステム
202 画像処理システム
204 前置フィルタモジュール
206 ボケ除去モジュール
208 ボケ推定モジュール
210 ボケ補正モジュール
212 ハロー除去モジュール
400 コンピュータプログラム製品
402 信号担持媒体
404 プログラミング命令
406 コンピュータ可読媒体
408 コンピュータ記録可能媒体
410 通信媒体
図1
図2
図3
図4
【手続補正書】
【提出日】2023-07-11
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
コンピュータによって実行される方法であって、
処理デバイスによって、画像を受け取るステップと、
前記処理デバイスによって、前記画像に対するボケを推定するステップと、
前記画像にボケ補正フィルタを適用するステップと、
前記画像からハローを低減させるステップと
を含む方法。
【請求項2】
前記画像からノイズを除去するステップをさらに含む、請求項1に記載の方法。
【請求項3】
前記ボケを推定するステップが、ボケ関数を決定するステップをさらに含む、請求項1に記載の方法。
【請求項4】
前記ボケがガウス関数の少なくとも1つのパラメータに基づいて推定される、請求項1に記載の方法。
【請求項5】
前記ガウス関数が等方性ガウス関数を含む、請求項4に記載の方法。
【請求項6】
前記画像を正規化するステップをさらに含む、請求項1に記載の方法。
【請求項7】
前記画像の勾配特徴を計算するステップをさらに含む、請求項1に記載の方法。
【請求項8】
前記勾配特徴に基づき、ある区間にわたり複数の角度で方向導関数を計算するステップをさらに含む、請求項7に記載の方法。
【請求項9】
前記複数の角度のそれぞれに対する前記方向導関数の最大の大きさを計算するステップをさらに含む、請求項8に記載の方法。
【請求項10】
前記方向導関数の前記最大の大きさから最小値を選択するステップをさらに含む、請求項9に記載の方法。
【請求項11】
前記画像に対するボケスコアを推定するステップをさらに含み、前記ボケスコアが前記画像の不明瞭さの程度を示す、請求項1に記載の方法。
【請求項12】
前記ボケスコアを閾値と比較するステップをさらに含む、請求項11に記載の方法。
【請求項13】
前記ボケの逆数を推定するために、前記ボケの複数の反復を組み合わせるステップをさらに含む、請求項1に記載の方法。
【請求項14】
ボケカーネルに基づき、多項式を用いて前記ボケの逆数を推定するステップをさらに含む、請求項1に記載の方法。
【請求項15】
前記ボケ補正フィルタが多項式フィルタを含む、請求項1に記載の方法。
【請求項16】
前記多項式フィルタが前記推定されたボケの逆数に基づく、請求項15に記載の方法。
【請求項17】
前記ボケ補正フィルタが、前記推定されたボケから構築された線形復元フィルタを含む、請求項1に記載の方法。
【請求項18】
メモリと、
1つまたは複数のプロセッサと
を備える装置であって、前記1つまたは複数のプロセッサは、
画像を受け取り、
前記画像に対するボケを推定し、
前記画像にボケ補正フィルタを適用し、
前記画像からハローを低減させるように構成されている、装置。
【請求項19】
命令を記憶しているコンピュータ可読記憶媒体であって、
前記命令が、
画像を受け取ることと、
前記画像に対するボケを推定することと、
前記画像にボケ補正フィルタを適用することと、
前記画像からハローを低減させることと
を含む機能を行うように、1つまたは複数のプロセッサによって実行可能である、コンピュータ可読記憶媒体。
【国際調査報告】