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

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

▶ キヤノン株式会社の特許一覧

特許7439145画像処理方法、画像処理装置、画像処理システム、学習済みウエイトの生成方法、および、プログラム
<>
  • 特許-画像処理方法、画像処理装置、画像処理システム、学習済みウエイトの生成方法、および、プログラム 図1
  • 特許-画像処理方法、画像処理装置、画像処理システム、学習済みウエイトの生成方法、および、プログラム 図2
  • 特許-画像処理方法、画像処理装置、画像処理システム、学習済みウエイトの生成方法、および、プログラム 図3
  • 特許-画像処理方法、画像処理装置、画像処理システム、学習済みウエイトの生成方法、および、プログラム 図4
  • 特許-画像処理方法、画像処理装置、画像処理システム、学習済みウエイトの生成方法、および、プログラム 図5
  • 特許-画像処理方法、画像処理装置、画像処理システム、学習済みウエイトの生成方法、および、プログラム 図6
  • 特許-画像処理方法、画像処理装置、画像処理システム、学習済みウエイトの生成方法、および、プログラム 図7
  • 特許-画像処理方法、画像処理装置、画像処理システム、学習済みウエイトの生成方法、および、プログラム 図8
  • 特許-画像処理方法、画像処理装置、画像処理システム、学習済みウエイトの生成方法、および、プログラム 図9
  • 特許-画像処理方法、画像処理装置、画像処理システム、学習済みウエイトの生成方法、および、プログラム 図10
  • 特許-画像処理方法、画像処理装置、画像処理システム、学習済みウエイトの生成方法、および、プログラム 図11
  • 特許-画像処理方法、画像処理装置、画像処理システム、学習済みウエイトの生成方法、および、プログラム 図12
  • 特許-画像処理方法、画像処理装置、画像処理システム、学習済みウエイトの生成方法、および、プログラム 図13
  • 特許-画像処理方法、画像処理装置、画像処理システム、学習済みウエイトの生成方法、および、プログラム 図14
  • 特許-画像処理方法、画像処理装置、画像処理システム、学習済みウエイトの生成方法、および、プログラム 図15
  • 特許-画像処理方法、画像処理装置、画像処理システム、学習済みウエイトの生成方法、および、プログラム 図16
  • 特許-画像処理方法、画像処理装置、画像処理システム、学習済みウエイトの生成方法、および、プログラム 図17
  • 特許-画像処理方法、画像処理装置、画像処理システム、学習済みウエイトの生成方法、および、プログラム 図18
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-02-16
(45)【発行日】2024-02-27
(54)【発明の名称】画像処理方法、画像処理装置、画像処理システム、学習済みウエイトの生成方法、および、プログラム
(51)【国際特許分類】
   G06T 1/40 20060101AFI20240219BHJP
   G06T 5/60 20240101ALI20240219BHJP
   G06T 5/73 20240101ALI20240219BHJP
   H04N 23/60 20230101ALI20240219BHJP
【FI】
G06T1/40
G06T5/60
G06T5/73
H04N23/60 500
【請求項の数】 40
(21)【出願番号】P 2022006888
(22)【出願日】2022-01-20
(62)【分割の表示】P 2019105850の分割
【原出願日】2019-06-06
(65)【公開番号】P2022048221
(43)【公開日】2022-03-25
【審査請求日】2022-06-01
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】100110412
【弁理士】
【氏名又は名称】藤元 亮輔
(74)【代理人】
【識別番号】100104628
【弁理士】
【氏名又は名称】水本 敦也
(74)【代理人】
【識別番号】100121614
【弁理士】
【氏名又は名称】平山 倫也
(72)【発明者】
【氏名】日浅 法人
【審査官】中田 剛史
(56)【参考文献】
【文献】国際公開第2018/037521(WO,A1)
【文献】国際公開第2018/102302(WO,A1)
【文献】Parikshit et al.,Defocus Magnification using Conditional Adversarial Networks,2019 IEEE Winter Conference on Applications of Computer Vision,IEEE,2019年05月07日,p.1337-1346,https://ieeexplore.ieee.org/document/8658982
(58)【調査した分野】(Int.Cl.,DB名)
G06T 1/40
G06T 5/60
G06T 5/73
H04N 23/60
(57)【特許請求の範囲】
【請求項1】
撮像画像と、該撮像画像の撮像に用いられた光学系の該撮像時の状態に関する第1の情報とを含む入力データを取得する第1の工程と、
前記入力データを機械学習モデルに入力し、前記撮像画像の鮮鋭化または前記撮像画像に含まれるぼけの整形を行うことで推定画像を生成する第2の工程とを有し、
前記状態は、前記光学系のズーム、絞り、フォーカス距離の少なくともいずれかを含むことを特徴とする画像処理方法。
【請求項2】
前記第2の工程において、前記光学系の第1の状態での撮像により得られた第1の撮像画像と、前記光学系の前記第1の状態とは異なる第2の状態での撮像により得られた第2の撮像画像とに対して、同一のウエイトの前記機械学習モデルを用いることを特徴とする請求項1に記載の画像処理方法。
【請求項3】
前記第1の情報は、前記光学系のズーム、絞り、フォーカス距離の少なくともいずれかを示す数値を含み、
前記数値は、ズーム、絞り、フォーカス距離の少なくともいずれかに関して前記光学系の取り得る範囲に基づいて正規化されていることを特徴とする請求項1または2に記載の画像処理方法。
【請求項4】
撮像画像と、該撮像画像の撮像に用いられた光学系の該撮像時の状態に関する第1の情報とを含む入力データを取得する第1の工程と、
前記入力データを機械学習モデルに入力し、前記撮像画像の鮮鋭化または前記撮像画像に含まれるぼけの整形を行うことで推定画像を生成する第2の工程とを有し、
前記第1の情報は、前記光学系のズーム、絞り、フォーカス距離の少なくともいずれかを示す数値を含み、
前記数値は、ズーム、絞り、フォーカス距離の少なくともいずれかに関して前記光学系の取り得る範囲に基づいて正規化されていることを特徴とする画像処理方法。
【請求項5】
前記入力データは、前記光学系の状態を示すステートマップを含み、
前記ステートマップは、前記撮像画像の画素数と、前記第1の情報とに基づいて生成されることを特徴とする請求項1乃至4のいずれか一項に記載の画像処理方法。
【請求項6】
前記ステートマップは、前記光学系のズーム、絞り、フォーカス距離の少なくともいずれかを示す数値を要素として有することを特徴とする請求項5に記載の画像処理方法。
【請求項7】
撮像画像と、該撮像画像の撮像に用いられた光学系の該撮像時の状態に関する第1の情報とを含む入力データを取得する第1の工程と、
前記入力データを機械学習モデルに入力し、前記撮像画像の鮮鋭化または前記撮像画像に含まれるぼけの整形を行うことで推定画像を生成する第2の工程とを有し、
前記入力データは、前記光学系の状態を示すステートマップを含み、
前記ステートマップは、前記撮像画像の画素数と、前記第1の情報とに基づいて生成され、かつ前記光学系のズーム、絞り、フォーカス距離の少なくともいずれかを示す数値を要素として有することを特徴とする画像処理方法。
【請求項8】
前記ステートマップは、前記光学系のズーム、絞り、フォーカス距離の少なくとも2つを示す数値をそれぞれ異なるチャンネルの要素として有することを特徴とする請求項5乃至7のいずれか一項に記載の画像処理方法。
【請求項9】
撮像画像と、該撮像画像の撮像に用いられた光学系の該撮像時の状態に関する第1の情報とを含む入力データを取得する第1の工程と、
前記入力データを機械学習モデルに入力し、前記撮像画像の鮮鋭化または前記撮像画像に含まれるぼけの整形を行うことで推定画像を生成する第2の工程とを有し、
前記入力データは、前記光学系の状態を示すステートマップを含み、
前記ステートマップは、前記撮像画像の画素数と、前記第1の情報とに基づいて生成され、かつ前記光学系のズーム、絞り、フォーカス距離の少なくとも2つを示す数値をそれぞれ異なるチャンネルの要素として有することを特徴とする画像処理方法。
【請求項10】
前記ステートマップにおける同一のチャンネルに含まれる各要素は、互いに同一の数値であることを特徴とする請求項5乃至のいずれか一項に記載の画像処理方法。
【請求項11】
撮像画像と、該撮像画像の撮像に用いられた光学系の該撮像時の状態に関する第1の情報とを含む入力データを取得する第1の工程と、
前記入力データを機械学習モデルに入力し、前記撮像画像の鮮鋭化または前記撮像画像に含まれるぼけの整形を行うことで推定画像を生成する第2の工程とを有し、
前記入力データは、前記光学系の状態を示すステートマップを含み、
前記ステートマップは、前記撮像画像の画素数と、前記第1の情報とに基づいて生成され、
前記ステートマップにおける同一のチャンネルに含まれる各要素は、互いに同一の数値であることを特徴とする画像処理方法。
【請求項12】
前記撮像画像または前記撮像画像に基づく特徴マップと、前記ステートマップとをチャンネル方向に連結することを特徴とする請求項5乃至11のいずれか一項に記載の画像処理方法。
【請求項13】
撮像画像と、該撮像画像の撮像に用いられた光学系の該撮像時の状態に関する第1の情報とを含む入力データを取得する第1の工程と、
前記入力データを機械学習モデルに入力し、前記撮像画像の鮮鋭化または前記撮像画像に含まれるぼけの整形を行うことで推定画像を生成する第2の工程とを有し、
前記入力データは、前記光学系の状態を示すステートマップを含み、
前記ステートマップは、前記撮像画像の画素数と、前記第1の情報とに基づいて生成され、
前記撮像画像または前記撮像画像に基づく特徴マップと、前記ステートマップとをチャンネル方向に連結することを特徴とする画像処理方法。
【請求項14】
前記入力データは、前記撮像画像の各画素の位置に関する第2の情報を含むことを特徴とする請求項1乃至13のいずれか一項に記載の画像処理方法。
【請求項15】
撮像画像と、該撮像画像の撮像に用いられた光学系の該撮像時の状態に関する第1の情報とを含む入力データを取得する第1の工程と、
前記入力データを機械学習モデルに入力し、前記撮像画像の鮮鋭化または前記撮像画像に含まれるぼけの整形を行うことで推定画像を生成する第2の工程とを有し、
前記入力データは、前記撮像画像の各画素の位置に関する第2の情報を含むことを特徴とする画像処理方法。
【請求項16】
前記第2の情報は、前記光学系のイメージサークルに基づく長さによって正規化された数値を含むことを特徴とする請求項14または15に記載の画像処理方法。
【請求項17】
前記第1の情報は、前記光学系の種類に関する情報を含むことを特徴する請求項1乃至1のいずれか一項に記載の画像処理方法。
【請求項18】
撮像画像と、該撮像画像の撮像に用いられた光学系の該撮像時の状態に関する第1の情報とを含む入力データを取得する第1の工程と、
前記入力データを機械学習モデルに入力し、前記撮像画像の鮮鋭化または前記撮像画像に含まれるぼけの整形を行うことで推定画像を生成する第2の工程とを有し、
前記第1の情報は、前記光学系の種類に関する情報を含むことを特徴とする画像処理方法。
【請求項19】
前記第1の情報は、光学ローパスフィルタの有無、または光学ローパスフィルタの種類に関する情報を含むことを特徴する請求項1乃至1のいずれか一項に記載の画像処理方法。
【請求項20】
撮像画像と、該撮像画像の撮像に用いられた光学系の該撮像時の状態に関する第1の情報とを含む入力データを取得する第1の工程と、
前記入力データを機械学習モデルに入力し、前記撮像画像の鮮鋭化または前記撮像画像に含まれるぼけの整形を行うことで推定画像を生成する第2の工程とを有し、
前記第1の情報は、光学ローパスフィルタの有無、または光学ローパスフィルタの種類に関する情報を含むことを特徴とする画像処理方法。
【請求項21】
前記状態は、前記光学系のアクセサリの有無、またはアクセサリの種類に関する情報を含むことを特徴する請求項1乃至20のいずれか一項に記載の画像処理方法。
【請求項22】
撮像画像と、該撮像画像の撮像に用いられた光学系の該撮像時の状態に関する第1の情報とを含む入力データを取得する第1の工程と、
前記入力データを機械学習モデルに入力し、前記撮像画像の鮮鋭化または前記撮像画像に含まれるぼけの整形を行うことで推定画像を生成する第2の工程とを有し、
前記状態は、前記光学系のアクセサリの有無、またはアクセサリの種類に関する情報を含むことを特徴とする画像処理方法。
【請求項23】
前記第1の情報は、前記光学系の製造ばらつきに関する情報を含むことを特徴する請求項1乃至22のいずれか一項に記載の画像処理方法。
【請求項24】
撮像画像と、該撮像画像の撮像に用いられた光学系の該撮像時の状態に関する第1の情報とを含む入力データを取得する第1の工程と、
前記入力データを機械学習モデルに入力し、前記撮像画像の鮮鋭化または前記撮像画像に含まれるぼけの整形を行うことで推定画像を生成する第2の工程とを有し、
前記第1の情報は、前記光学系の製造ばらつきに関する情報を含むことを特徴とする画像処理方法。
【請求項25】
前記入力データは、前記撮像時における被写体空間の距離の分布に関する情報を含むことを特徴とする請求項1乃至24のいずれか一項に記載の画像処理方法。
【請求項26】
撮像画像と、該撮像画像の撮像に用いられた光学系の該撮像時の状態に関する第1の情報とを含む入力データを取得する第1の工程と、
前記入力データを機械学習モデルに入力し、前記撮像画像の鮮鋭化または前記撮像画像に含まれるぼけの整形を行うことで推定画像を生成する第2の工程とを有し、
前記入力データは、前記撮像時における被写体空間の距離の分布に関する情報を含むことを特徴とする画像処理方法。
【請求項27】
前記入力データは、前記撮像に用いられた撮像素子の画素ピッチまたはカラーフィルタアレイに関する情報を含むことを特徴とする請求項1乃至6のいずれか一項に記載の画像処理方法。
【請求項28】
撮像画像と、該撮像画像の撮像に用いられた光学系の該撮像時の状態に関する第1の情報とを含む入力データを取得する第1の工程と、
前記入力データを機械学習モデルに入力し、前記撮像画像の鮮鋭化または前記撮像画像に含まれるぼけの整形を行うことで推定画像を生成する第2の工程とを有し、
前記入力データは、前記撮像に用いられた撮像素子の画素ピッチまたはカラーフィルタアレイに関する情報を含むことを特徴とする画像処理方法。
【請求項29】
前記第2の工程において、前記光学系の第1の状態での撮像により得られた第1の撮像画像と、前記光学系の前記第1の状態とは異なる第2の状態での撮像により得られた第2の撮像画像とに対して、同一のウエイトの前記機械学習モデルを用いることを特徴とする請求項4、7、9、11、13、15、18、20、22、24、26、28のいずれか一項に記載の画像処理方法。
【請求項30】
前記第2の工程は、前記入力データを前記機械学習モデルに入力することで実行される処理により前記推定画像を生成することで行われることを特徴とする請求項1乃至29のいずれか一項に記載の画像処理方法。
【請求項31】
前記機械学習モデルは、前記入力データから、前記推定画像を出力するように予め学習されていることを特徴とする請求項1乃至30のいずれか一項に記載の画像処理方法。
【請求項32】
前記第1の工程では前記入力データと前記機械学習モデルのウエイト情報とを取得し、前記第2の工程では前記入力データを前記ウエイト情報を含む前記機械学習モデルに入力することを特徴とする請求項1乃至30のいずれか一項に記載の画像処理方法。
【請求項33】
前記ウエイト情報は、訓練画像と該訓練画像に対応する光学系の状態に関する情報とを含む訓練用入力データを用いて、前記第1の情報に応じて異なる処理を行うように予め学習されていることを特徴とする請求項32に記載の画像処理方法。
【請求項34】
請求項1乃至33のいずれか一項に記載の画像処理方法をコンピュータに実行させることを特徴とするプログラム。
【請求項35】
撮像画像と、該撮像画像の撮像に用いられた光学系の該撮像時の状態に関する第1の情報とを含む入力データを取得する取得手段と、
前記入力データを機械学習モデルに入力し、前記撮像画像の鮮鋭化または前記撮像画像に含まれるぼけの整形を行うことで推定画像を生成する生成手段とを有し、
前記状態は、前記光学系のズーム、絞り、フォーカス距離の少なくともいずれかを含むことを特徴とする画像処理装置。
【請求項36】
第1の装置と第2の装置を有する画像処理システムであって、
前記第1の装置は、撮像画像に対する処理の実行に関する要求を前記第2の装置へ送信する送信手段を有し、
前記第2の装置は、
前記要求を受信する受信手段と、
前記撮像画像と、該撮像画像の撮像に用いられた光学系の該撮像時の状態に関する第1の情報とを含む入力データを取得する取得手段と、
前記要求に基づいて、前記入力データを機械学習モデルに入力し、前記撮像画像の鮮鋭化または前記撮像画像に含まれるぼけの整形を行うことで推定画像を生成する生成手段とを有し、
前記状態は、前記光学系のズーム、絞り、フォーカス距離の少なくともいずれかを含むことを特徴とする画像処理システム。
【請求項37】
訓練画像と、該訓練画像の撮像に用いられた光学系の該撮像時の状態に関する第1の情報と、を含む入力データを取得する第1の工程と、
前記入力データを機械学習モデルに入力し、前記訓練画像の鮮鋭化または前記訓練画像に含まれるぼけの整形を行うことで出力画像を生成する第2の工程と、
前記出力画像と正解画像に基づいて、前記機械学習モデルのウエイトを更新する第3の工程とを有し、
前記状態は、前記光学系のズーム、絞り、フォーカス距離の少なくともいずれかを含むことを特徴とする画像処理方法。
【請求項38】
請求項37に記載の画像処理方法をコンピュータに実行させることを特徴とするプログラム。
【請求項39】
訓練画像と、該訓練画像の撮像に用いられた光学系の該撮像時の状態に関する第1の情報とを含む入力データを取得する第1の工程と、
前記入力データを機械学習モデルに入力し、前記訓練画像の鮮鋭化または前記訓練画像に含まれるぼけの整形を行うことで出力画像を生成する第2の工程と、
前記出力画像と正解画像に基づいて、前記機械学習モデルのウエイトを更新する第3の工程とを有し、
前記状態は、前記光学系のズーム、絞り、フォーカス距離の少なくともいずれかを含むことを特徴とする学習済みウエイトの生成方法。
【請求項40】
訓練画像と、該訓練画像の撮像に用いられた光学系の該撮像時の状態に関する第1の情報とを含む入力データを取得する取得手段と、
前記入力データを機械学習モデルに入力し、前記訓練画像の鮮鋭化または前記訓練画像に含まれるぼけの整形を行うことで出力画像を生成する生成手段と、
前記出力画像と正解画像に基づいて、前記機械学習モデルのウエイトを更新する更新手段とを有し、
前記状態は、前記光学系のズーム、絞り、フォーカス距離の少なくともいずれかを含むことを特徴とする画像処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、光学系を用いて撮像された撮像画像から、光学系に起因するぼけを鮮鋭化または整形する画像処理方法に関する。
【背景技術】
【0002】
特許文献1には、ウィナーフィルタに基づく処理によって、撮像画像から収差によるぼけを補正し、鮮鋭化された画像を得る方法が開示されている。特許文献2には、畳み込みニューラルネットワーク(CNN)を用いて、撮像画像のフォーカスずれ(デフォーカス)によるぼけを補正する方法が開示されている。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2011-123589号公報
【文献】特開2017-199235号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかし、特許文献1に開示された方法は、ウィナーフィルタに基づく処理(線型処理)を用いるため、高精度なぼけの鮮鋭化を行うことができない。例えば、ぼけによって空間周波数スペクトルがゼロ、またはノイズと同程度の強度まで低下した被写体の情報を、復元することができない。また、異なる収差に対しては、各々異なるウィナーフィルタを用いる必要があるため、様々な収差が発生する光学系において、鮮鋭化のための保持データ量(複数のウィナーフィルタを示すデータの容量)が大きくなる。
【0005】
一方、特許文献2に開示されたCNNは非線形処理のため、ゼロ近傍まで低下した被写体の空間周波数スペクトルを推定することができる。しかし、様々な収差が発生する光学系で撮像した撮像画像を鮮鋭化する場合、鮮鋭化の精度低下、或いは学習負荷と保持データ量の増大を招く。CNNでぼけ鮮鋭化を行う場合、学習していないぼけは正しく鮮鋭化されない。光学系はズーム、絞り、フォーカス距離などによって発生するぼけが変化するため、これらのぼけを全て鮮鋭化できるようにするには、以下の2つの方法が考えられる。
【0006】
第一の方法は、光学系で発生し得るぼけ全てを含む学習データで、CNNを学習する方法である。しかしこの場合、CNNは学習データに含まれる全てのぼけを平均的に鮮鋭化するように学習されるため、異なる形状のぼけ各々に対する鮮鋭化の精度は低下する。第二の方法は、光学系で発生し得るぼけを各々、類似する複数のグループに分け、各グループの学習データで個別にCNNを学習する方法である。しかしこの場合、高倍率なズームレンズなどの様々な収差が発生する光学系では、グループ数が膨大になり、学習負荷と保持データ量(学習したCNNのウエイトを示すデータの容量)が増大する。このため、ぼけの鮮鋭化の精度と、学習負荷および保持データ量とを両立することが困難である。
【0007】
そこで本発明は、機械学習モデルの学習負荷と保持データ量を抑制し、撮像画像のぼけを高精度に鮮鋭化または整形する画像処理方法、画像処理装置、画像処理システム、学習済みウエイトの製造方法、および、プログラムを提供することを目的とする。
【課題を解決するための手段】
【0008】
本発明の一側面としての画像処理方法は、撮像画像と、該撮像画像の撮像に用いられた光学系の該撮像時の状態に関する第1の情報とを含む入力データを取得する第1の工程と、前記入力データを機械学習モデルに入力し、前記撮像画像の鮮鋭化または前記撮像画像に含まれるぼけの整形を行うことで推定画像を生成する第2の工程とを有し、前記状態は、前記光学系のズーム、絞り、フォーカス距離の少なくともいずれかを含むことを特徴とする
本発明の他の側面としての画像処理方法は、撮像画像と、該撮像画像の撮像に用いられた光学系の該撮像時の状態に関する第1の情報とを含む入力データを取得する第1の工程と、前記入力データを機械学習モデルに入力し、前記撮像画像の鮮鋭化または前記撮像画像に含まれるぼけの整形を行うことで推定画像を生成する第2の工程とを有し、前記第1の情報は、前記光学系のズーム、絞り、フォーカス距離の少なくともいずれかを示す数値を含み、前記数値は、ズーム、絞り、フォーカス距離の少なくともいずれかに関して前記光学系の取り得る範囲に基づいて正規化されていることを特徴とする。
本発明の他の側面としての画像処理方法は、撮像画像と、該撮像画像の撮像に用いられた光学系の該撮像時の状態に関する第1の情報とを含む入力データを取得する第1の工程と、前記入力データを機械学習モデルに入力し、前記撮像画像の鮮鋭化または前記撮像画像に含まれるぼけの整形を行うことで推定画像を生成する第2の工程とを有し、前記入力データは、前記光学系の状態を示すステートマップを含み、前記ステートマップは、前記撮像画像の画素数と、前記第1の情報とに基づいて生成され、かつ前記光学系のズーム、絞り、フォーカス距離の少なくとも2つを示す数値をそれぞれ異なるチャンネルの要素として有することを特徴とする。
本発明の他の側面としての画像処理方法は、撮像画像と、該撮像画像の撮像に用いられた光学系の該撮像時の状態に関する第1の情報とを含む入力データを取得する第1の工程と、前記入力データを機械学習モデルに入力し、前記撮像画像の鮮鋭化または前記撮像画像に含まれるぼけの整形を行うことで推定画像を生成する第2の工程とを有し、前記入力データは、前記光学系の状態を示すステートマップを含み、前記ステートマップは、前記撮像画像の画素数と、前記第1の情報とに基づいて生成され、前記ステートマップにおける同一のチャンネルに含まれる各要素は、互いに同一の数値であることを特徴とする。
本発明の他の側面としての画像処理方法は、撮像画像と、該撮像画像の撮像に用いられた光学系の該撮像時の状態に関する第1の情報とを含む入力データを取得する第1の工程と、前記入力データを機械学習モデルに入力し、前記撮像画像の鮮鋭化または前記撮像画像に含まれるぼけの整形を行うことで推定画像を生成する第2の工程とを有し、前記入力データは、前記光学系の状態を示すステートマップを含み、前記ステートマップは、前記撮像画像の画素数と、前記第1の情報とに基づいて生成され、前記撮像画像または前記撮像画像に基づく特徴マップと、前記ステートマップとをチャンネル方向に連結することを特徴とする。
本発明の他の側面としての画像処理方法は、撮像画像と、該撮像画像の撮像に用いられた光学系の該撮像時の状態に関する第1の情報とを含む入力データを取得する第1の工程と、前記入力データを機械学習モデルに入力し、前記撮像画像の鮮鋭化または前記撮像画像に含まれるぼけの整形を行うことで推定画像を生成する第2の工程とを有し、前記入力データは、前記撮像画像の各画素の位置に関する第2の情報を含むことを特徴とする。
本発明の他の側面としての画像処理方法は、撮像画像と、該撮像画像の撮像に用いられた光学系の該撮像時の状態に関する第1の情報とを含む入力データを取得する第1の工程と、前記入力データを機械学習モデルに入力し、前記撮像画像の鮮鋭化または前記撮像画像に含まれるぼけの整形を行うことで推定画像を生成する第2の工程とを有し、前記第1の情報は、前記光学系の種類に関する情報を含むことを特徴とする。
本発明の他の側面としての画像処理方法は、撮像画像と、該撮像画像の撮像に用いられた光学系の該撮像時の状態に関する第1の情報とを含む入力データを取得する第1の工程と、前記入力データを機械学習モデルに入力し、前記撮像画像の鮮鋭化または前記撮像画像に含まれるぼけの整形を行うことで推定画像を生成する第2の工程とを有し、前記第1の情報は、光学ローパスフィルタの有無、または光学ローパスフィルタの種類に関する情報を含むことを特徴とする。
本発明の他の側面としての画像処理方法は、撮像画像と、該撮像画像の撮像に用いられた光学系の該撮像時の状態に関する第1の情報とを含む入力データを取得する第1の工程と、前記入力データを機械学習モデルに入力し、前記撮像画像の鮮鋭化または前記撮像画像に含まれるぼけの整形を行うことで推定画像を生成する第2の工程とを有し、前記第1の情報は、前記光学系の製造ばらつきに関する情報を含むことを特徴とする。
本発明の他の側面としての画像処理方法は、撮像画像と、該撮像画像の撮像に用いられた光学系の該撮像時の状態に関する第1の情報とを含む入力データを取得する第1の工程と、前記入力データを機械学習モデルに入力し、前記撮像画像の鮮鋭化または前記撮像画像に含まれるぼけの整形を行うことで推定画像を生成する第2の工程とを有し、前記入力データは、前記撮像時における被写体空間の距離の分布に関する情報を含むことを特徴とする。
本発明の他の側面としての画像処理方法は、撮像画像と、該撮像画像の撮像に用いられた光学系の該撮像時の状態に関する第1の情報とを含む入力データを取得する第1の工程と、前記入力データを機械学習モデルに入力し、前記撮像画像の鮮鋭化または前記撮像画像に含まれるぼけの整形を行うことで推定画像を生成する第2の工程とを有し、前記入力データは、前記撮像に用いられた撮像素子の画素ピッチまたはカラーフィルタアレイに関する情報を含むことを特徴とする。
【0009】
本発明の他の側面としての画像処理装置は、撮像画像と、該撮像画像の撮像に用いられた光学系の該撮像時の状態に関する第1の情報とを含む入力データを取得する取得手段と、前記入力データを機械学習モデルに入力し、前記撮像画像の鮮鋭化または前記撮像画像に含まれるぼけの整形を行うことで推定画像を生成する生成手段とを有し、前記状態は、前記光学系のズーム、絞り、フォーカス距離の少なくともいずれかを含むことを特徴とする
【0010】
本発明の他の側面としての画像処理システムは、第1の装置と第2の装置を有する画像処理システムであって、前記第1の装置は、撮像画像に対する処理の実行に関する要求を前記第2の装置へ送信する送信手段を有し、前記第2の装置は、前記要求を受信する受信手段と、前記撮像画像と、該撮像画像の撮像に用いられた光学系の該撮像時の状態に関する第1の情報とを含む入力データを取得する取得手段と、前記要求に基づいて、前記入力データを機械学習モデルに入力し、前記撮像画像の鮮鋭化または前記撮像画像に含まれるぼけの整形を行うことで推定画像を生成する生成手段とを有し、前記状態は、前記光学系のズーム、絞り、フォーカス距離の少なくともいずれかを含むことを特徴とする
【0011】
本発明の他の側面としての画像処理方法は、訓練画像と、該訓練画像の撮像に用いられた光学系の該撮像時の状態に関する第1の情報と、を含む入力データを取得する第1の工程と、前記入力データを機械学習モデルに入力し、前記訓練画像の鮮鋭化または前記訓練画像に含まれるぼけの整形を行うことで出力画像を生成する第2の工程と、前記出力画像と正解画像に基づいて、前記機械学習モデルのウエイトを更新する第3の工程とを有し、前記状態は、前記光学系のズーム、絞り、フォーカス距離の少なくともいずれかを含むことを特徴とする
【0012】
本発明の他の側面としての学習済みウエイトの生成方法は、訓練画像と、該訓練画像の撮像に用いられた光学系の該撮像時の状態に関する第1の情報とを含む入力データを取得する第1の工程と、前記入力データを機械学習モデルに入力し、前記訓練画像の鮮鋭化または前記訓練画像に含まれるぼけの整形を行うことで出力画像を生成する第2の工程と、前記出力画像と正解画像に基づいて、前記機械学習モデルのウエイトを更新する第3の工程とを有し、前記状態は、前記光学系のズーム、絞り、フォーカス距離の少なくともいずれかを含むことを特徴とする
【0013】
本発明の他の側面としての画像処理装置は、訓練画像と、該訓練画像の撮像に用いられた光学系の該撮像時の状態に関する第1の情報とを含む入力データを取得する取得手段と、前記入力データを機械学習モデルに入力し、前記訓練画像の鮮鋭化または前記訓練画像に含まれるぼけの整形を行うことで出力画像を生成する生成手段と、前記出力画像と正解画像に基づいて、前記機械学習モデルのウエイトを更新する更新手段とを有し、前記状態は、前記光学系のズーム、絞り、フォーカス距離の少なくともいずれかを含むことを特徴とする
【0014】
本発明の他の側面としてのプログラムは、前記画像処理方法をコンピュータに実行させる。
【0015】
本発明の他の目的及び特徴は、以下の実施例において説明される。
【発明の効果】
【0016】
本発明によれば、機械学習モデルの学習負荷と保持データ量を抑制して、撮像画像のぼけを高精度に鮮鋭化または整形する画像処理方法、画像処理装置、画像処理システム、学習済みウエイトの製造方法、および、プログラムを提供することができる。
【図面の簡単な説明】
【0017】
図1】実施例1における機械学習モデルの構成図である。
図2】実施例1における画像処理システムのブロック図である。
図3】実施例1における画像処理システムの外観図である。
図4】実施例1、2におけるウエイトの学習に関するフローチャートである。
図5】実施例1における推定画像の生成に関するフローチャートである。
図6】実施例2における画像処理システムのブロック図である。
図7】実施例2における画像処理システムの外観図である。
図8】実施例2における機械学習モデルの構成図である。
図9】実施例2における撮像素子と光学系のイメージサークルとの関係を示す図である。
図10】実施例2における位置マップの例を示す図である。
図11】実施例2における推定画像の生成に関するフローチャートである。
図12】実施例2における鮮鋭化の効果を示す図である。
図13】実施例2における製造ばらつきマップの例を示す図である。
図14】実施例3における画像処理システムのブロック図である。
図15】実施例3における画像処理システムの外観図である。
図16】実施例3におけるウエイトの学習に関するフローチャートである。
図17】実施例3における機械学習モデルの構成図である。
図18】実施例3における推定画像の生成に関するフローチャートである。
【発明を実施するための形態】
【0018】
以下、本発明の実施例について、図面を参照しながら詳細に説明する。各図において、同一の部材については同一の参照符号を付し、重複する説明は省略する。
【0019】
各実施例の具体的な説明を行う前に、本発明の要旨を説明する。本発明は、光学系を用いて撮像された撮像画像から、光学系に起因する(光学系で発生する)ぼけを、機械学習モデルを用いて鮮鋭化または整形する。ここでいう「光学系」とは、撮像に関する光学的作用を及ぼすものを指す。すなわち、「光学系」は結像光学系のみでなく、例えば光学ローパスフィルタ、撮像素子のマイクロレンズアレイも含む。したがって、光学系に起因するぼけとは、収差、回折、デフォーカスによるぼけや、光学ローパスフィルタによる作用、撮像素子の画素開口劣化などを含む。
【0020】
機械学習モデルは、例えば、ニューラルネットワーク、遺伝的プログラミング、ベイジアンネットワークなどを含む。ニューラルネットワークは、CNN(Convolutional Neural Network)、GAN(Generative Adversarial Network)、RNN(Recurrent Neural Network)などを含む。
【0021】
ぼけの鮮鋭化とは、ぼけによって低下または消失した被写体の周波数成分を復元する処理を指す。ぼけの整形とは、周波数成分の復元を伴わない、ぼけの形状の変換を指す。例えば、二線ぼけからガウシアンやディスク(フラットな円形分布)への変換、ヴィネッティングによって欠けたデフォーカスぼけから円形のデフォーカスぼけへの変換などが含まれる。
【0022】
機械学習モデルに入力される入力データは、撮像画像と、撮像画像を撮像した際の光学系の状態に関する情報を含む。光学系の状態は、撮像に関する光学的作用に変化を及ぼし得る装置の状態を指す。光学系の状態には、例えば、光学系のズーム、絞り、フォーカス距離などが含まれる。このほか、光学系の状態に関する情報として、光学ローパスフィルタの有無(または光学ローパスフィルタの種類)や、光学系に取り付けられるアクセサリ(例えばコンバータレンズ)の有無(または種類)に関する情報を含んで良い。
【0023】
機械学習モデルの学習と学習後の推定において光学系の状態に関する情報を入力することで、機械学習モデルは撮像画像に作用しているぼけが光学系のどの状態で発生したものか特定することができる。これにより、機械学習モデルは、学習に様々な形状のぼけが含まれていても、それらのぼけを平均的に鮮鋭化(または整形)するようなウエイトでなく、光学系の状態ごとに異なる鮮鋭化(または整形)を行うウエイトを学習する。
【0024】
このため、各ぼけに対して高精度な鮮鋭化(または整形)が可能となる。従って、鮮鋭化(または整形)の精度低下を抑制して、様々な形状のぼけを含む学習データを一括で学習することができる。その結果、学習負荷と保持データ量を抑制して、撮像画像の光学系に起因するぼけを高精度に鮮鋭化または整形することができる。本発明の効果に関しては、実施例2において定量的に示す。なお、以降の説明では、機械学習モデルのウエイトを学習する段階を学習フェーズとし、学習済みのウエイトを用いた機械学習モデルでぼけの鮮鋭化または整形を行う段階を推定フェーズとする。
【実施例1】
【0025】
まず、本発明の実施例1における画像処理システムに関して説明する。本実施例は、ぼけの鮮鋭化を実行するが、ぼけの整形に関しても同様に適用可能である。また本実施例において、鮮鋭化する対象は収差と回折によるぼけであるが、デフォーカスによるぼけに対しても適用可能である。
【0026】
図2は、本実施例における画像処理システム100のブロック図である。図3は、画像処理システム100の外観図である。画像処理システム100は、学習装置(画像処理装置)101、撮像装置102、および、ネットワーク103を有する。学習装置101と撮像装置102とは、有線または無線であるネットワーク103を介して接続されている。学習装置101は、記憶部111、取得部(取得手段)112、演算部(生成手段)113、および、更新部(更新手段)114を有し、機械学習モデルでぼけの鮮鋭化を行うためのウエイトを学習する。撮像装置102は、被写体空間を撮像して撮像画像を取得し、撮像後または予め読み出したウエイトの情報を用いて、撮像画像のぼけを鮮鋭化する。なお、学習装置101で実行されるウエイトの学習、および、撮像装置102で実行されるぼけ鮮鋭化に関する詳細については後述する。
【0027】
撮像装置102は、光学系(結像光学系)121と撮像素子122を有する。光学系121は、被写体空間から撮像装置102へ入射した光を集光する。撮像素子122は、光学系121を介して形成された光学像(被写体像)を受光して(光電変換して)撮像画像を生成する。撮像素子122は、例えばCCD(Charge Coupled Device)センサや、CMOS(Complementary Metal-Oxide Semiconductor)センサなどである。
【0028】
画像処理部(画像処理装置)123は、取得部(取得手段)123aおよび鮮鋭化部(生成手段)123bを有し、撮像画像からぼけの鮮鋭化された推定画像(鮮鋭化画像)を生成する。推定画像の生成には、学習装置101で学習された学習済みのウエイトの情報が用いられる。ウエイトの情報は、事前に有線または無線のネットワーク103を介して学習装置101から読み込んで、記憶部124に記憶されている。記憶されるウエイトの情報は、ウエイトの数値そのものでもよいし、符号化された形式でもよい。記録媒体125は、推定画像を保存する。或いは、記録媒体125に撮像画像を保存し、画像処理部123が撮像画像を読み込んで推定画像を生成してもよい。表示部126は、ユーザの指示に従って、記録媒体125に保存された推定画像を表示する。システムコントローラ127は、前述の一連の動作を制御する。
【0029】
次に、図4を参照して、本実施例における学習装置101で実行されるウエイトの学習(学習フェーズ、学習済みモデルの製造方法)に関して説明する。図4は、ウエイトの学習に関するフローチャートである。図4の各ステップは、主に、学習装置101の取得部112、演算部113、または、更新部114により実行される。なお本実施例では、機械学習モデルとしてCNNを使用するが、他のモデルについても同様に適用可能である。
【0030】
まずステップS101において、取得部112は、記憶部111から1組以上の正解画像と訓練入力データとを取得する。訓練入力データは、CNNの学習フェーズにおける入力データである。訓練入力データは、訓練画像と、訓練画像に対応する光学系の状態に関する情報を含む。訓練画像と正解画像は、同一の被写体が存在し、ぼけの有無の異なる画像のペアである。正解画像がぼけのない画像であり、訓練画像がぼけのある画像である。ぼけは、光学系121で発生する収差および回折と、撮像素子122の画素開口劣化を合わせたぼけである。1枚の訓練画像には、特定のズーム、絞り、フォーカス距離における光学系121で発生する収差と回折、および画素開口劣化を合わせたぼけが作用している。訓練画像に対応する光学系の状態に関する情報とは、特定のズーム、絞り、フォーカス距離の少なくともいずれかを示す情報である。換言すると、光学系の状態に関する情報とは、訓練画像に作用しているぼけを特定する情報である。本実施例において、光学系の状態に関する情報は、ズーム、絞り、および、フォーカス距離の全てを含む。訓練画像は、撮像画像に限定されるものではなく、CGなどで生成した画像であってもよい。
【0031】
記憶部111に記憶されている、正解画像と訓練入力データの生成方法に関して、以下に例を示す。第一の生成方法は、原画像を被写体として、撮像シミュレーションを行う方法である。原画像は、実写画像やCG(Computer Graphics)画像などである。様々な被写体に対して正しく鮮鋭化が行えるように、原画像は、様々な強度と方向を有するエッジや、テクスチャ、グラデーション、平坦部などを有する画像であることが望ましい。原画像は、1枚でも複数枚でもよい。正解画像は、原画像にぼけを作用させずに撮像シミュレーションを行った画像である。訓練画像は、鮮鋭化の対象とするぼけを原画像に作用させて撮像シミュレーションを行った画像である。
【0032】
本実施例では、光学系121の状態(Z,F,D)で発生する収差と回折、および画素開口劣化によるぼけを作用させる。ここで、Zはズーム、Fは絞り、Dはフォーカス距離の状態を示す。撮像素子122が複数の色成分を取得する場合、各色成分のぼけを原画像に作用させる。ぼけの作用は、原画像に対してPSF(Point Spread Function)を畳み込むか、または原画像の周波数特性とOTF(Optical Transfer Function)の積をとることで実行できる。(Z,F,D)で指定されるぼけを作用させた訓練画像に対応する光学系の状態に関する情報は、(Z,F,D)を特定する情報である。正解画像と訓練画像は、未現像のRAW画像でも現像後の画像でもよい。1枚以上の原画像に対し、複数の異なる(Z,F,D)のぼけを作用させ、複数組の正解画像と訓練画像を生成する。
【0033】
本実施例では、光学系121で発生するぼけ全てに対する補正を、一括で学習する。故に、(Z,F,D)を光学系121が取り得る範囲で変化させ、複数組の正解画像と訓練画像を生成する。また、同一の(Z,F,D)においても、像高とアジムスに依存して複数のぼけが存在するため、異なる像高とアジムスごとにも正解画像と訓練画像の組を生成する。
【0034】
好ましくは、原画像は、撮像素子122の輝度飽和値よりも高い信号値を有しているとよい。これは、実際の被写体においても、特定の露出条件で撮像装置102により撮像を行った際、輝度飽和値に収まらない被写体が存在するためである。正解画像は、原画像を撮像素子122の輝度飽和値で信号をクリップすることによって生成する。訓練画像は、ぼけを作用させた後、輝度飽和値によってクリップすることで生成する。
【0035】
また、正解画像と訓練画像の生成時に、原画像の縮小処理を実行してもよい。原画像として実写画像を使用する場合、既に収差や回折によってぼけが発生しているため、縮小することでぼけの影響を小さくし、高解像な正解画像を生成することができる。この場合、正解画像とスケールを合わせるために、訓練画像も同様に縮小する。縮小とぼけの作用の順序は、どちらが先でもよい。ぼけの作用を先に行う場合、縮小を考慮して、ぼけのサンプリングレートを細かくする必要がある。PSFならば空間のサンプリング点を細かくし、OTFならば最大周波数を大きくすればよい。なお、原画像に高周波成分が充分に含まれている場合、高精度な鮮鋭化が可能となるため、縮小は行わなくてもよい。
【0036】
また、訓練画像の生成で作用させるぼけには、歪曲収差を含めない。歪曲収差が大きいと、被写体の位置が変化し、正解画像と訓練画像それぞれの画像内に収まった被写体が異なる可能性があるためである。このため、本実施例で学習するCNNは、歪曲収差を補正しない。推定フェーズにおいて、歪曲収差はバイリニア補間やバイキュービック補間などを用いて、ぼけ鮮鋭化後に補正する。同様に、訓練画像の生成で作用させるぼけには、倍率色収差を含めない。推定フェーズにおいて、倍率色収差は各色成分のシフトなどを用いて、ぼけ鮮鋭化の前に補正する。
【0037】
正解画像と訓練入力データの第二の生成方法は、光学系121と撮像素子122による実写画像を使用する方法である。光学系121が(Z,F,D)の状態で撮像し、訓練画像を得る。訓練画像に対応する光学系の状態に関する情報は、(Z,F,D)を特定する情報である。正解画像は、例えば、光学系121よりも高性能な光学系を用いて、訓練画像と同一の被写体を撮像することで得られる。なお、前述の2つの方法で生成した訓練画像と正解画像から、既定の画素数の部分領域を抽出して学習に用いてもよい。
【0038】
続いて、図4のステップS102において、演算部113は、訓練入力データをCNNへ入力し、出力画像を生成する。図1を参照して、本実施例における出力画像の生成に関して説明する。図1は、本実施例における機械学習モデルの構成図である。
【0039】
訓練入力データは、訓練画像201と光学系の状態に関する情報(z,f,d)202を含む。訓練画像201は、グレースケールでも、複数のチャンネル成分を有していてもよい。正解画像も同様である。(z,f,d)は正規化された(Z,F,D)である。正規化は、ズーム、絞り、フォーカス距離それぞれに関して、光学系121の取り得る範囲に基づいて行われる。例えば、Zを焦点距離、Fを絞り値、Dを撮像装置102からフォーカス被写体までの距離の絶対値の逆数とする。光学系121の焦点距離の最小値と最大値をZminとZmax、絞り値の最小値と最大値をFminとFmax、フォーカス可能な距離の絶対値の逆数の最小値と最大値をDminとDmaxとする。ここで、フォーカス可能な距離が無限遠の場合、Dmin=1/|∞|=0である。正規化された(z,f,d)は、以下の式(1)で求められる。
【0040】
【数1】
【0041】
式(1)において、xは(z,f,d)のいずれか、Xは(Z,F,D)のいずれかを示すダミー変数である。なお、Xmin=Xmaxの場合、xは定数とする。または、そのxには自由度がないため、光学系の状態に関する情報から除外する。ここで、一般にフォーカス距離が近くなるほど、光学系121の性能変化は大きくなるため、Dを距離の逆数とした。
【0042】
本実施例において、CNN211は、第1のサブネットワーク221と第2のサブネットワーク223を有する。第1のサブネットワーク221は、1層以上の畳み込み層またはフルコネクション層を有する。第2のサブネットワーク223は、1層以上の畳み込み層を有する。学習の初回において、CNN211のウエイト(フィルタの各要素とバイアスの値)は、乱数によって生成する。第1のサブネットワーク221は、光学系の状態に関する情報(z,f,d)202を入力とし、特徴マップに変換したステートマップ203を生成する。ステートマップ203は、光学系の状態を示すマップであり、訓練画像201の1つのチャンネル成分と同じ要素数(画素数)である。連結層(concatenation layer)222は、訓練画像201とステートマップ203をチャンネル方向に規定の順番で連結する。なお、訓練画像201とステートマップ203の間に他のデータを連結しても構わない。第2のサブネットワーク223は、連結した訓練画像201とステートマップ203を入力とし、出力画像204を生成する。図4のステップS101にて複数組の訓練入力データを取得している場合、それぞれに対して出力画像204を生成する。また、訓練画像201を第3のサブネットワークによって特徴マップへ変換し、特徴マップとステートマップ203とを連結層222で連結する構成としてもよい。
【0043】
続いて、図4のステップS103において、更新部114は、出力画像と正解画像の誤差から、CNNのウエイトを更新する。本実施例では、出力画像と正解画像における信号値の差のユークリッドノルムをロス関数とする。ただし、ロス関数はこれに限定されない。ステップS101にて複数組の訓練入力データと正解画像を取得している場合、各組に対してロス関数の値を算出する。算出されたロス関数の値から、誤差逆伝播法(Backpropagation)などによってウエイトの更新を行う。
【0044】
続いてステップS104において、更新部114は、ウエイトの学習が完了したかを判定する。完了は、学習(ウエイトの更新)の反復回数が規定の回数に達したかや、更新時のウエイトの変化量が規定値より小さいかなどによって、判定することができる。ステップS104にてウエイトの学習が完了していないと判定された場合、ステップS101へ戻り、取得部112は、1組以上の新たな訓練入力データと正解画像を取得する。一方、ウエイトの学習が完了した判定された場合、更新部114は学習を終了し、ウエイトの情報を記憶部111に保存する。
【0045】
次に、図5を参照して、本実施例における画像処理部123で実行される撮像画像のぼけ鮮鋭化(推定フェーズ)に関して説明する。図5は、本実施例におけるぼけ鮮鋭化(推定画像の生成)に関するフローチャートである。図5の各ステップは、主に、画像処理部123の取得部123aまたは鮮鋭化部123bにより実行される。
【0046】
まずステップS201において、取得部123aは、入力データとウエイトの情報を取得する。入力データは、撮像画像と、撮像画像を撮像した際の光学系121の状態に関する情報を含む。取得する撮像画像は、撮像画像全体の一部分でもよい。光学系の情報に関する情報は、光学系121のズーム、絞り、フォーカス距離の状態を示す(z,f,d)である。ウエイトの情報は、記憶部124から読み出して取得される。
【0047】
続いてステップS202において、鮮鋭化部123bは、入力データをCNNに入力し、推定画像を生成する。推定画像は、撮像画像に対して、光学系121の収差と回折、および、撮像素子122の画素開口劣化に起因するぼけが鮮鋭化された画像である。学習時と同様に、図1に示されるCNNを用いて推定画像を生成する。CNNには、取得された学習済みのウエイトが使用される。本実施例では、光学系121の取り得る全ての(z,f,d)に対して、一括でぼけ鮮鋭化のウエイトを学習している。このため、全ての(z,f,d)の撮像画像に対して、同一のウエイトを用いたCNNでぼけ鮮鋭化が実行される。
【0048】
なお本実施例において、撮像画像を鮮鋭化する鮮鋭化部123bに代えて、撮像画像に含まれるぼけを整形する整形部を設けてもよい。この点は、後述の実施例2でも同様である。本実施例において、画像処理装置(画像処理部123)は、取得手段(取得部123a)および生成手段(鮮鋭化部123bまたは整形部)を有する。取得手段は、撮像画像と、撮像画像の撮像に用いた光学系の状態に関する情報とを含む入力データを取得する。生成手段は、入力データを機械学習モデルに入力し、撮像画像を鮮鋭化した推定画像、または、撮像画像に含まれるぼけを整形した推定画像を生成する。また本実施例において画像処理装置(学習装置101)は、取得手段(取得部112)、生成手段(演算部113)、および、更新手段(更新部114)を有する。取得手段は、訓練画像と、訓練画像に対応する光学系の状態に関する情報とを含む入力データを取得する。生成手段は、入力データを機械学習モデルに入力し、訓練画像を鮮鋭化した出力画像、または、訓練画像に含まれるぼけを整形した出力画像を生成する。更新手段は、出力画像と正解画像に基づいて、機械学習モデルのウエイトを更新する。
【0049】
本実施例によれば、機械学習モデルの学習負荷と保持データ量を抑制して、撮像画像の光学系に起因するぼけを高精度に鮮鋭化することが可能な画像処理装置および画像処理システムを実現することができる。
【実施例2】
【0050】
次に、本発明の実施例2における画像処理システムに関して説明する。本実施例は、ぼけの鮮鋭化処理を実行するが、ぼけの整形処理に関しても同様に適用可能である。
【0051】
図6は、本実施例における画像処理システム300のブロック図である。図7は、画像処理システム300の外観図である。画像処理システム300は、学習装置(画像処理装置)301、レンズ装置302、撮像装置303、画像推定装置304、表示装置305、記録媒体306、出力装置307、および、ネットワーク308を有する。学習装置301は、記憶部301a、取得部(取得手段)301b、演算部(生成手段)301c、および、更新部(更新手段)301dを有し、ぼけ鮮鋭化に用いる機械学習モデルのウエイトを学習する。なお、ウエイトの学習、およびウエイトを用いたぼけ鮮鋭化処理に関する詳細は後述する。
【0052】
レンズ装置302と撮像装置303とは着脱可能であり、互いに異なる種類のレンズ装置302または撮像装置303に接続可能である。レンズ装置302は、種類によって取り得る焦点距離、絞り、フォーカス距離が異なる。また、種類によってレンズの構成も異なるため、収差や回折によるぼけの形状も異なる。撮像装置303は撮像素子303aを有し、種類によって光学ローパスフィルタの有無や種類(分離方式やカットオフ周波数など)、画素ピッチ(画素開口も含む)、カラーフィルタアレイなどが異なる。
【0053】
画像推定装置304は、記憶部304a、取得部(取得手段)304b、および、鮮鋭化部(生成手段)304cを有する。画像推定装置304は、撮像装置303で撮像された撮像画像(またはその少なくとも一部)に対して、光学系に起因するぼけを鮮鋭化した推定画像を生成する。画像推定装置304には、複数種類の組み合わせのレンズ装置302と撮像装置303が接続され得る。ぼけ鮮鋭化には、学習装置301で学習済みのウエイトを用いた機械学習モデルを使用する。学習装置301と画像推定装置304はネットワーク308によって接続されており、画像推定装置304はぼけ鮮鋭化時または事前に、学習済みのウエイトの情報を学習装置301から読み出す。推定画像は、表示装置305、記録媒体306、または、出力装置307の少なくとも一つに出力される。表示装置305は、例えば液晶ディスプレイやプロジェクタである。ユーザは、表示装置305を介して、処理途中の画像を確認しながら編集作業などを行うことができる。記録媒体306は、例えば、半導体メモリ、ハードディスク、または、ネットワーク上のサーバである。出力装置307は、例えばプリンタである。
【0054】
次に、図4を参照して、学習装置301で行うウエイトの学習(学習フェーズ)に関して説明する。本実施例では、機械学習モデルとしてCNNを使用するが、他のモデルについても同様に適用可能である。なお、実施例1と同様の説明は省略する。
【0055】
まずステップS101において、取得部301bは、1組以上の正解画像と訓練入力データを記憶部301aから取得する。記憶部301aには、レンズ装置302と撮像装置303の複数種類の組み合わせに対して、訓練画像が保存されている。本実施例では、ぼけ鮮鋭化のウエイトの学習を、レンズ装置302の種類ごとに一括で行う。このため、まずウエイトを学習するレンズ装置302の種類を決定し、それに対応する訓練画像の集合から、訓練画像を取得する。ある種類のレンズ装置302に対応する訓練画像の集合はそれぞれ、ズーム、絞り、フォーカス距離、像高とアジムス、光学ローパスフィルタ、画素ピッチ、カラーフィルタアレイなどが異なるぼけの作用した画像の集合である。
【0056】
本実施例は、図8に示されるCNNの構成で学習を行う。図8は、本実施例における機械学習モデルの構成図である。訓練入力データ404は、訓練画像401、ステートマップ402、および、位置マップ403を含む。ステートマップ402と位置マップ403の生成は、本ステップで行われる。ステートマップ402と位置マップ403はそれぞれ、取得した訓練画像に作用しているぼけに対応する(Z,F,D)と(X,Y)を示すマップである。(X,Y)は、図9に示される像面の座標(水平方向と垂直方向)であり、極座標表示で像高とアジムスに対応する。
【0057】
本実施例において、座標(X,Y)は、レンズ装置302の光軸を原点とする。図9は、レンズ装置(光学系)302のイメージサークル501と、撮像素子303aの第1の有効画素領域502および第2の有効画素領域503と、座標(X,Y)との関係を示している。撮像装置303の種類によって異なるサイズの撮像素子303aを有するため、撮像装置303は、第1の有効画素領域502を有する種類と、第2の有効画素領域503を有する種類が存在する。レンズ装置302に接続可能な撮像装置303のうち、最大サイズの撮像素子303aを有する撮像装置303は、第1の有効画素領域502を有する。
【0058】
位置マップ403は、座標(X,Y)を正規化した(x,y)に基づいて生成される。正規化は、レンズ装置302のイメージサークル501に基づく長さ(イメージサークルの半径)511で、(X,Y)を除することによって行われる。または、Xを原点から第1の有効画素領域の水平方向の長さ512で、Yを原点から第1の有効画素領域の垂直方向の長さ513で、それぞれ除して正規化してもよい。仮に、撮像画像の端が常に1となるように(X,Y)を正規化すると、異なるサイズの撮像素子303aで撮像した画像によって、(x,y)が同じ値でも示す位置(X,Y)が異なり、(x,y)とぼけの対応が一意に決まらない。これにより、ぼけの鮮鋭化精度の低下を招く。位置マップ403は、(x,y)の値をそれぞれチャンネル成分に有する2チャンネルのマップである。なお、位置マップ403に極座標を用いてもよく、原点の取り方も図9に限定されるものではない。
【0059】
ステートマップ402は、正規化された(z,f,d)の値をそれぞれチャンネル成分に有する3チャンネルのマップである。訓練画像401、ステートマップ402、位置マップ403それぞれの1チャンネルあたりの要素数(画素数)は等しい。なお、位置マップ403とステートマップ402の構成はこれに限定されるものではない。例えば、位置マップの例を示す図10のように、第1の有効画素領域502を複数の部分領域に分割し、各部分領域に数値を割り当てることで、位置マップを1チャンネルで表現してもよい。なお、部分領域の分割数や数値の振り分け方法は、図10に限定されるものではない。また、(Z,F,D)も同様に、それぞれを軸とした3次元空間で複数の部分領域に分割して数値を割り当て、ステートマップを1チャンネルで表現してもよい。訓練画像401、ステートマップ402、位置マップ403は、図8の連結層411でチャンネル方向に規定の順番で連結され、訓練入力データ404が生成される。
【0060】
続いて、図4のステップS102において、演算部301cは、訓練入力データ404をCNN412へ入力し、出力画像405を生成する。続いてステップS103において、更新部301dは、出力画像と正解画像の誤差から、CNNのウエイトを更新する。続いてステップS104において、更新部301dは、学習が完了したか否かを判定する。学習済みのウエイトの情報は、記憶部301aに記憶される。
【0061】
次に、図11を参照して、画像推定装置304で実行される撮像画像のぼけ鮮鋭化(推定フェーズ)に関して説明する。図11は、ぼけ鮮鋭化(推定画像の生成)に関するフローチャートである。図11の各ステップは、主に、画像推定装置304の取得部304bまたは鮮鋭化部304cにより実行される。
【0062】
まずステップS301において、取得部304bは、撮像画像(またはその少なくとも一部)を取得する。続いてステップS302において、取得部304bは、撮像画像に対応するウエイトの情報を取得する。本実施例2では、レンズ装置302の種類ごとのウエイトの情報が、予め記憶部301aから読み出され、記憶部304aに記憶されている。このため取得部304bは、撮像画像の撮像に用いたレンズ装置302の種類に対応するウエイトの情報を記憶部304aから取得する。撮像に用いたレンズ装置302の種類は、例えば、撮像画像のファイル内のメタデータなどから特定される。
【0063】
続いてステップS303において、取得部304bは、撮像画像に対応するステートマップおよび位置マップを生成し、入力データを生成する。ステートマップは、撮像画像の画素数と、撮像画像を撮像した際のレンズ装置302の状態(Z,F,D)の情報とに基づいて生成される。撮像画像とステートマップの1チャンネルあたりの要素数(画素数)は、等しい。(Z,F,D)は、例えば、撮像画像のメタデータなどから特定される。位置マップは、撮像画像の画素数と、撮像画像の各画素に関する位置の情報とに基づいて生成される。撮像画像と位置マップの1チャンネルあたりの要素数(画素数)は、等しい。撮像画像のメタデータなどから、撮像画像の撮像に用いた撮像素子303aの有効画素領域の大きさを特定し、例えば同様に特定したレンズ装置302のイメージサークルの長さを用いて、正規化された位置マップを生成する。入力データは、図8と同様に、撮像画像、ステートマップ、位置マップをチャンネル方向に規定の順序で連結して生成される。なお本実施例において、ステップS302とステップS303の順序は問わない。また、撮像画像の撮像時にステートマップと位置マップを生成し、撮像画像と合わせて保存しておいても構わない。
【0064】
続いてステップS304において、鮮鋭化部304cは、図8と同様に入力データをCNNに入力し、推定画像を生成する。図12は、鮮鋭化の効果を示す図であり、あるズームレンズの特定の(Z,F,D)における像高9割での鮮鋭化効果を示す。図12において、横軸は空間周波数、縦軸はSFR(Spatial Frequency Response)の計測値をそれぞれ示す。SFRは、ある断面でのMTF(Modulation Transfer Function)に対応する。撮像に用いた撮像素子のNyquist周波数は、76[lp/mm]である。実線601は撮像画像であり、破線602、一点鎖線603、二点鎖線604は撮像画像をCNNによってぼけ鮮鋭化した結果である。破線602、一点鎖線603、二点鎖線604は、前記ズームレンズで発生する収差と回折のぼけ全てを混合した学習データを用いて、ぼけ鮮鋭化を学習したCNNを使用している。
【0065】
推定フェーズ(または学習フェーズ)における破線602の入力データは、撮像画像(または訓練画像)のみである。一点鎖線603の入力データは、撮像画像(または訓練画像)と位置マップである。二点鎖線604の入力データは、撮像画像(または訓練画像)、位置マップ、ステートマップであり、本実施例の構成に該当する。破線602、一点鎖線603、二点鎖線604それぞれに用いたCNNは、第1層のフィルタのチャンネル数のみ異なり(入力データのチャンネル数が異なるため)、それ以外のフィルタサイズ、フィルタの数、層数などは共通である。このため、破線602、一点鎖線603、二点鎖線604それぞれの学習負荷と保持データ量(CNNのウエイトの情報のデータ容量)は、略同一である。一方、本実施例の構成を採用した二点鎖線604は、図12に示されるように高い鮮鋭化効果を有する。
【0066】
本実施例によれば、機械学習モデルの学習負荷と保持データ量を抑制して、撮像画像の光学系に起因するぼけを高精度に鮮鋭化することが可能な画像処理装置および画像処理システムを実現することができる。
【0067】
次に、本実施例の効果を高める好ましい条件に関して、説明する。
【0068】
入力データはさらに、撮像画像の撮像に用いた撮像装置303の光学ローパスフィルタの有無や種類を示す情報を含むことが望ましい。これにより、ぼけの鮮鋭化効果が向上する。種類とは、分離方式(垂直2点分離、水平2点分離、4点分離など)やカットオフ周波数を指す。有無と種類を特定し得る数値を要素とするマップを、撮像画像の画素数に基づいて生成し、入力データに含めてもよい。
【0069】
入力データはさらに、撮像画像の撮像に用いたレンズ装置302の製造ばらつきに関する情報を含むことが望ましい。これによって、製造ばらつきも含めた高精度なぼけ鮮鋭化が可能となる。学習フェーズにおいて、製造ばらつきを含めたぼけを原画像に作用させて訓練画像を生成し、訓練入力データに製造ばらつきを示す情報を含めて機械学習モデルを学習する。製造ばらつきを示す情報は例えば、設計性能に対する製造ばらつきを含めた実性能の度合いを示す数値などを使用する。例えば、実性能と設計性能が等しい場合に数値を0とし、実性能が設計性能より劣るほどに負方向へ、実性能が設計性能より優るほどに正方向へ動くようにする。推定フェーズでは、図13に示されるように、撮像画像の複数の部分領域に対して(各画素に対してでもよい)、設計性能に対する実性能の度合いを示す数値を有するマップを入力データに含める。図13は、製造ばらつきマップの例を示す図である。このマップは、撮像画像の画素数に基づいて生成される。レンズ装置302の製造誤差を含めた実性能は、製造時などに計測しておくことで、前記マップを取得することができる。また、画像全体の性能劣化(球面収差の悪化)やアジムスによる性能のばらつき(片ぼけ)など、製造ばらつきを幾つかのカテゴリーに分けておき、そのカテゴリーを示す数値で製造ばらつきを示してもよい。
【0070】
入力データはさらに、撮像画像の撮像時おける被写体空間の距離に関する分布の情報を含むことが望ましい。これによって、デフォーカスによる性能変化も含めた高精度なぼけ鮮鋭化が可能となる。軸上色収差や像面湾曲により、デフォーカスした被写体面の方がフォーカス面よりも光学性能が向上する場合がある。これを考慮せず、フォーカス面でのぼけのみで学習した機械学習モデルでぼけ鮮鋭化を行うと、解像感が過剰になり、不自然な画像となる。これを解決するためには、まず学習フェーズにおいて、原画像にデフォーカスしたぼけを作用させた訓練画像を用いて学習を行う。この際、訓練入力データにデフォーカス量(被写体空間の距離に相当)を示す数値も含める。例えば、フォーカス面を0とし、撮像装置から離れる方向を負、近づく方向を正とすればよい。推定フェーズでは、視差画像の撮像やDFD(Depth from Defocus)などを利用して撮像画像のデフォーカスマップ(被写体空間の距離に関する分布の情報)を取得し、入力データに含める。デフォーカスマップは、撮像画像の画素数に基づいて生成される。
【0071】
入力データはさらに、撮像画像の撮像に用いた撮像素子303aの画素ピッチまたはカラーフィルタアレイに関する情報も含むことが望ましい。これによって、撮像素子303aの種類に依らず、高精度なぼけ鮮鋭化が可能となる。画素ピッチによって、画素開口劣化の強さや、画素に対するぼけの大きさが変化する。また、カラーフィルタアレイを構成する色成分によって、ぼけの形状が変化する。色成分は、例えば、RGB(Red,Green,Blue)や補色のCMY(Cyan,Magenta,Yellow)などである。また、訓練画像や撮像画像が未現像のBayer画像などの場合、カラーフィルタアレイの配列順によって、同一位置の画素でもぼけの形状が異なる。学習フェーズにおいて、訓練画像に対応する画素ピッチやカラーフィルタアレイを特定する情報を、訓練入力データに含ませる。例えば、正規化された画素ピッチの数値を要素とするマップを含む。正規化には、複数種類の撮像装置303のうち最大の画素ピッチを除数とするとよい。また、カラーフィルタアレイの色成分を示す数値を要素とするマップを含めてもよい。推定フェーズでも同様のマップを入力データに含めることで、鮮鋭化の精度を向上できる。前記マップは、撮像画像の画素数に基づいて生成される。
【0072】
入力データはさらに、レンズ装置302のアクセサリの有無と種類を示す情報も含むことが望ましい。アクセサリとは、ワイドコンバータやテレコンバータ、クローズアップレンズ、波長カットフィルタなどである。アクセサリの種類によって、ぼけの形状が変化するため、アクセサリの有無と種類に関する情報を入力することで、それらの影響も含めて鮮鋭化することができる。学習フェーズにおいて、訓練画像に作用させるぼけにアクセサリの影響を含め、訓練入力データにアクセサリを特定する情報を含める。例えば、アクセサリの有無と種類を示す数値を要素とするマップを使用する。推定フェーズでも同様の情報(マップ)を入力データに含めればよい。このマップは、撮像画像の画素数に基づいて生成される。
【実施例3】
【0073】
次に、本発明の実施例3における画像処理システムに関して説明する。本実施例は、ぼけの整形処理を実行するが、ぼけの鮮鋭化処理に関しても同様に適用可能である。
【0074】
図14は、画像処理システム700のブロック図である。図15は、画像処理システム700の外観図である。画像処理システム700は、学習装置701、レンズ装置(光学系)702、撮像装置703、制御装置(第1の装置)704、画像推定装置(第2の装置)705、および、ネットワーク706、707を有する。学習装置701および画像推定装置705は、例えばサーバである。制御装置704は、パーソナルコンピュータやモバイル端末などのユーザが操作する機器である。学習装置701は、記憶部701a、取得部(取得手段)701b、演算部(生成手段)701c、および更新部(更新手段)701dを有し、レンズ装置702と撮像装置703を用いて撮像された撮像画像のぼけを整形する機械学習モデルのウエイトを学習する。なお、学習に関する詳細については、後述する。本実施例で整形するぼけは、デフォーカスによるぼけであるが、収差や回折などに関しても同様に適用可能である。
【0075】
撮像装置703は、撮像素子703aを有する。撮像素子703aは、レンズ装置702により形成された光学像を光電変換して撮像画像を取得する。レンズ装置702と撮像装置703は着脱可能であり、互いに複数種類と組み合わることが可能である。制御装置704は、通信部704a、記憶部704b、および、表示部704cを有し、有線または無線で接続された撮像装置703から取得した撮像画像に対して、実行する処理をユーザの操作に従って制御する。または制御装置704は、撮像装置703で撮像した撮像画像を予め記憶部704bに記憶しておき、撮像画像を読み出してもよい。
【0076】
画像推定装置705は、通信部705a、記憶部705b、取得部(取得手段)705c、および、整形部(生成手段)705dを有する。画像推定装置705は、ネットワーク707を介して接続された制御装置704の要求によって、撮像画像のぼけ整形処理を実行する。画像推定装置705は、ネットワーク706を介して接続された学習装置701から、学習済みのウエイトの情報をぼけ整形時または予め取得し、撮像画像のぼけ整形に用いる。ぼけ整形後の推定画像は、再び制御装置704へ伝送されて、記憶部704bに記憶され、表示部704cに表示される。
【0077】
次に、図16を参照して、本実施例における学習装置701で実行されるウエイトの学習(学習フェーズ、学習済みモデルの製造方法)に関して説明する。図16は、ウエイトの学習に関するフローチャートである。図16の各ステップは、主に、学習装置701の取得部701b、演算部701c、または、更新部701dにより実行される。なお本実施例では、機械学習モデルとしてGANを使用するが、他のモデルについても同様に適用可能である。GANでは、デフォーカスぼけの整形された出力画像を生成する生成器と、正解画像か生成器によって生成された出力画像かを識別する識別器が存在する。学習では、まず実施例1と同様に生成器のみを用いる第1の学習を行い、生成器のウエイトがある程度収束した段階で、生成器と識別器を用いる第2の学習を行う。以下、実施例1と同様の箇所の説明については省略する。
【0078】
まずステップS401において、取得部701bは、1組以上の正解画像と訓練入力データを記憶部701aから取得する。本実施例において、正解画像と訓練画像は、デフォーカスぼけの形状が異なる画像のペアである。訓練画像は、整形したい対象のデフォーカスぼけが作用した画像である。整形の対象として、二線ぼけ、ヴィネッティングによるぼけの欠け、カタディオプトリックレンズなどの瞳遮蔽によるリング状のぼけ、非球面レンズの金型の削りムラに起因するぼけの輪帯模様などが挙げられる。正解画像は、整形後のデフォーカスぼけが作用した画像である。整形後のデフォーカスぼけの形状は、ガウシアンやディスク(強度がフラットな円形分布)など、ユーザの好みに合わせて決定するとよい。実施例3では、原画像に対してぼけを作用させて生成された複数の訓練画像と正解画像が記憶部701aに記憶されている。複数の訓練画像と正解画像を生成する際は、様々なデフォーカス量にも整形精度が確保できるように、様々なデフォーカス量に対応するぼけを作用させる。また、フォーカス面では、ぼけ整形の前後で画像は変化しないことが望ましいので、デフォーカス量がゼロの訓練画像と正解画像も生成する。
【0079】
本実施例では、複数の種類のレンズ装置702に対して、ぼけ整形を変換するためのウエイトを一括で学習する。このため、光学系の状態に関する情報は、レンズ装置702の種類を特定する情報を含む。一括学習する種類のレンズ装置702に対応するぼけの訓練画像を記憶部701aから取得する。光学系の状態に関する情報は、さらに、訓練画像に作用しているぼけに対応するレンズ装置702のズーム、絞り、フォーカス距離を特定する情報を含む。
【0080】
図17は、機械学習モデル(GAN)の構成図である。レンズ装置702の種類、ズーム、絞り、フォーカス距離を特定する数値(L,z,f,d)をそれぞれチャンネル成分とするレンズステートマップ802を、訓練画像801の画素数に基づいて生成する。連結層811は、訓練画像801とレンズステートマップ802をチャンネル方向に既定の順序で連結し、訓練入力データ803を生成する。
【0081】
続いて、図16のステップS402において、演算部701cは、訓練入力データ803を生成器812に入力して、出力画像804を生成する。生成器812は、例えばCNNである。続いてステップS403において、更新部701dは、出力画像804と正解画像805との誤差から、生成器812のウエイトを更新する。ロス関数には、各画素における差分のユークリッドノルムを使用する。
【0082】
続いてステップS404において、更新部701dは、第1の学習が完了したか否かを判定する。第1の学習が完了していない場合、ステップS401へ戻る。一方、第1の学習が完了した場合、ステップS405へ進み、更新部701dは第2の学習を実行する。
【0083】
ステップS405において、取得部701bは、ステップS401と同様に、1組以上の正解画像805と訓練入力データ803を記憶部701aから取得する。続いてステップS406において、演算部701cは、ステップS402と同様に、訓練入力データ803を生成器812に入力して、出力画像804を生成する。続いてステップS407において、更新部701dは、出力画像804と正解画像805から識別器813のウエイトを更新する。識別器813は、入力された画像が生成器812によって生成されたフェイク画像か、正解画像805であるリアル画像かを識別する。出力画像804または正解画像805を識別器813に入力し、識別ラベル(フェイクかリアルか)を生成する。識別ラベルと正解ラベル(出力画像804はフェイク、正解画像805がリアル)の誤差に基づいて、更新部701dは、識別器813のウエイトを更新する。ロス関数にはsigmoid cross entropyを使用するが、その他のロス関数を用いてもよい。
【0084】
続いてステップS408において、更新部701dは、出力画像804と正解画像805から生成器812のウエイトを更新する。ロス関数は、ステップS403のユークリッドノルムと、以下の2項の重み付き和とする。第1項目はContent Lossと呼ばれる、出力画像804と正解画像805を特徴マップに変換し、その要素毎の差分のユークリッドノルムをとった項である。特徴マップでの差分をロス関数に加えることで、出力画像804のより抽象的な性質を正解画像805へ近づけることができる。第2項目はAdversarial Lossと呼ばれる、出力画像804を識別器813へ入力して得られた識別ラベルのsigmoid cross entropyである。識別器813が、リアルと識別するように学習することで、より主観的に正解画像805らしく見える出力画像804が得られる。
【0085】
続いてステップS409において、更新部701dは、第2の学習が完了したか否かを判定する。ステップS404と同様に、第2の学習が完了していない場合、ステップS405へ戻る。一方、第2の学習が完了した場合、更新部701dは、学習済みの生成器812のウエイトの情報を記憶部701aに記憶する。
【0086】
次に、図18を参照して、制御装置704および画像推定装置705で実行されるぼけ整形(推定フェーズ)に関して説明する。図18は、ぼけ整形(推定画像の生成)に関するフローチャートである。図18の各ステップは、主に、制御装置704または画像推定装置705の各部により実行される。
【0087】
まずステップS501において、制御装置704の通信部704aは、画像推定装置705へ撮像画像とぼけ整形処理の実行に関する要求を送信する。続いてステップS601において、画像推定装置705の通信部705aは、制御装置704から送信された撮像画像と処理の要求を受信し、取得する。続いてステップS602において、画像推定装置705の取得部705cは、撮像画像に対応する学習済みのウエイトの情報を記憶部705bから取得する。ウエイトの情報は、予め記憶部701aから読み出され、記憶部705bに記憶されている。
【0088】
続いてステップS603において、取得部705cは、撮像画像に対応する光学系の状態に関する情報を取得して、入力データを生成する。撮像画像のメタデータから、撮像画像を撮像した際のレンズ装置(光学系)702の種類、ズーム、絞り、フォーカス距離を特定する情報を取得し、図17と同様にレンズステートマップを生成する。入力データは、撮像画像とレンズステートマップをチャンネル方向に既定の順序で連結して生成される。本実施例において、撮像画像または撮像画像に基づく特徴マップと、ステートマップとを機械学習モデルの入力前または途中でチャンネル方向に連結することができる。
【0089】
続いてステップS604において、整形部705dは、入力データを生成器に入力し、ぼけ整形された推定画像を生成する。生成器には、ウエイトの情報が使用される。続いてステップS605において、通信部705aは、推定画像を制御装置704へ送信する。続いてステップS502において、制御装置704の通信部704aは、画像推定装置705から送信された推定画像を取得する。
【0090】
なお本実施例において、撮像画像に含まれるぼけを整形する整形部705dに代えて、撮像画像を鮮鋭化する鮮鋭化部を設けてもよい。本実施例において、画像処理システム700は、互いに通信可能な第1の装置(制御装置704)と第2の装置(画像推定装置705)とを有する。第1の装置は、撮像画像に対する処理の実行に関する要求を第2の装置へ送信する送信手段(通信部704a)を有する。第2の装置は、受信手段(通信部705a)、取得手段(取得部705c)、および、生成手段(整形部705dまたは鮮鋭化部)を有する。受信手段は、前記要求を受信する。取得手段は、撮像画像と、撮像画像の撮像に用いた光学系の状態に関する情報とを含む入力データを取得する。生成手段は、前記要求に基づいて、入力データを機械学習モデルに入力し、撮像画像を鮮鋭化した推定画像、または、撮像画像に含まれるぼけを整形した推定画像を生成する。
【0091】
本実施例によれば、機械学習モデルの学習負荷と保持データ量を抑制して、撮像画像の光学系に起因するぼけを高精度に整形することが可能な画像処理装置および画像処理システムを実現することができる。
【0092】
なお、本実施例では、ステップS501制において制御装置704の通信部704aは、画像推定装置705へ撮像画像に対する処理の要求と共に撮像画像を送信した例について述べたが、制御装置704による撮像画像の送信は必須ではない。例えば、制御装置は撮像画像の処理に対する要求のみを画像推定装置705に送信し、該要求を受信した画像推定装置705は他の画像保存サーバ等から要求に対応する撮像画像を取得するように構成しても良い。
【0093】
(その他の実施例)
本発明は、上述の実施例の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
【0094】
各実施例によれば、機械学習モデルの学習負荷と保持データ量を抑制して、撮像画像のぼけを高精度に鮮鋭化または整形する画像処理方法、画像処理装置、画像処理システム、学習済みウエイトの製造方法、および、プログラムを提供することができる。
【0095】
以上、本発明の好ましい実施形態について説明したが、本発明はこれらの実施形態に限定されず、その要旨の範囲内で種々の変形及び変更が可能である。
【符号の説明】
【0096】
123 画像処理部(画像処理装置)
123a 取得部(取得手段)
123b 鮮鋭化部(生成手段)
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18