(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-03-15
(45)【発行日】2024-03-26
(54)【発明の名称】画像処理装置、画像処理方法、学習装置、学習方法、プログラムおよびシステム
(51)【国際特許分類】
G06T 5/00 20240101AFI20240318BHJP
G06T 7/00 20170101ALI20240318BHJP
【FI】
G06T5/00 700
G06T7/00 350C
(21)【出願番号】P 2019234704
(22)【出願日】2019-12-25
【審査請求日】2022-12-09
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】100125254
【氏名又は名称】別役 重尚
(72)【発明者】
【氏名】大浦 颯人
【審査官】中田 剛史
(56)【参考文献】
【文献】特開平04-302272(JP,A)
【文献】特開平11-149559(JP,A)
【文献】特開2003-339645(JP,A)
【文献】MI ZHANG et al.,Unsupervised SeismicRandom Noise Attenuation Based on Deep Convolutional Neural Network,IEEEAccess(Volume:7),IEEE,2019年12月13日,p.179810-179822,https://ieeexplore.ieee.org/document/8932397
(58)【調査した分野】(Int.Cl.,DB名)
G06T 5/00
G06T 7/00
(57)【特許請求の範囲】
【請求項1】
符号化された画像を復号した復号画像の画素値を所定の値で減算して加工画像を生成する減算手段と、
前記加工画像の回復の推論を行う学習モデルを用いて、前記加工画像を入力とした推論処理を行う推論手段と、
前記推論処理が行われた加工画像に、前記所定の値を加算する加算手段と、を備え
、
前記学習モデルは、符号化されていない学習用画像の画素値から前記所定の値を減算した画像を教師画像とし、符号化された学習用画像を復号した画像の画素値を前記所定の値で減算した学習用の加工画像を入力として学習されることを特徴とする画像処理装置。
【請求項2】
前記所定の値は、前記復号画像と前記教師画像とのうち最小の画素値であるか、または前記復号画像の最小値であることを特徴とする請求項
1に記載の画像処理装置。
【請求項3】
前記最小の画素値は、前記復号画像とともにファイル情報として保持されることを特徴とする請求項
2に記載の画像処理装置。
【請求項4】
前記所定の値は、前記復号画像の画素平均値であることを特徴とする請求項
1に記載の画像処理装置。
【請求項5】
前記所定の値は、画素フルスケールの半分の値から前記復号画像の画素平均値を減算した値であることを特徴とする請求項
1に記載の画像処理装置。
【請求項6】
前記推論手段は、前記復号画像を分割した複数の画像ブロックのそれぞれに対応する学習モデルを用いて推論処理を行うことを特徴とする請求項1乃至
5のうち何れか1項に記載の画像処理装置。
【請求項7】
前記画像ブロックのサイズに応じて、複数の学習モデルのうち、推論される学習モデルが切り替えられることを特徴とする請求項
6に記載の画像処理装置。
【請求項8】
符号化された画像を復号した復号画像の画素値を所定の値で減算して加工画像を生成する減算手段と、
符号化されていない画像の画素値から前記所定の値を減算した画像を教師画像とし、前記加工画像を入力とした、前記復号画像の回復に用いられる学習モデルの学習を行う学習手段と、
を備えることを特徴とする学習装置。
【請求項9】
前記復号画像を分割した複数の画像ブロックのそれぞれに対応して、前記学習モデルの学習が行われることを特徴とする請求項
8に記載の学習装置。
【請求項10】
前記復号画像の画素平均値が第1の閾値以上であるかに基づいて、前記復号画像を分割するかの判定が行われることを特徴とする請求項
9に記載の学習装置。
【請求項11】
前記復号画像の画素最大値と画素最小値との差が第2の閾値以上であるかに基づいて、前記復号画像を分割するかの判定が行われることを特徴とする請求項
9に記載の学習装置。
【請求項12】
前記復号画像が分割される場合、前記復号画像を分割した複数の画像ブロックのそれぞれのサイズに応じて、学習を行う学習モデルが切り替えられることを特徴とする請求項10
または11に記載の学習装置。
【請求項13】
前記復号画像の画素値が第3の閾値以下であるかに基づいて、前記所定の値を減算
して前記加工画像を生成する処理を行うかの判定が行われることを特徴とする請求項
8乃至
12のうち何れか1項に記載の学習装置。
【請求項14】
前記所定の値は、前記復号画像と前記教師画像とのうち最小の画素値であることを特徴とする請求項
8乃至
13のうち何れか1項に記載の学習装置。
【請求項15】
前記所定の値は、前記復号画像の画素平均値であることを特徴とする請求項
8乃至
13のうち何れか1項に記載の学習装置。
【請求項16】
前記所定の値は、画素フルスケールの半分の値から前記復号画像の画素平均値を減算した値であることを特徴とする請求項
8乃至
13のうち何れか1項に記載の学習装置。
【請求項17】
符号化された画像を復号した復号画像の画素値を所定の値で減算して加工画像を生成する工程と、
前記加工画像の回復の推論を行う学習モデルを用いて、前記加工画像を入力とした推論処理を行う工程と、
前記推論処理が行われた加工画像に、前記所定の値を加算する工程と、を備え
、
前記学習モデルは、符号化されていない学習用画像の画素値から前記所定の値を減算した画像を教師画像とし、符号化された学習用画像を復号した画像の画素値を前記所定の値で減算した学習用の加工画像を入力として学習されることを特徴とする画像処理方法。
【請求項18】
符号化された画像を復号した復号画像の画素値を所定の値で減算して加工画像を生成する工程と、
符号化されていない画像の画素値から前記所定の値を減算した画像を教師画像とし、前記加工画像を入力とした、前記復号画像の回復に用いられる学習モデルの学習を行う工程と、
を備えることを特徴とする学習方法。
【請求項19】
請求項1乃至
7のうち何れか1項に記載の画像処理装置の各手段をコンピュータに実行させるためのプログラム。
【請求項20】
請求項
8乃至
16のうち何れか1項に記載の学習装置の各手段をコンピュータに実行させるためのプログラム。
【請求項21】
機器と画像処理装置とが相互に通信可能なシステムであって、
前記機器は、
画像を符号化する符号化手段、を備え、
前記画像処理装置は、
符号化された画像を復号した復号画像の画素値を所定の値で減算して加工画像を生成する減算手段と、
前記加工画像の回復の推論を行う学習モデルを用いて、前記加工画像を入力とした推論処理を行う推論手段と、
前記推論処理が行われた加工画像に、前記所定の値を加算する加算手段と、を備え
、
前記学習モデルは、符号化されていない学習用画像の画素値から前記所定の値を減算した画像を教師画像とし、符号化された学習用画像を復号した画像の画素値を前記所定の値で減算した学習用の加工画像を入力として学習されることを特徴とするシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置、画像処理方法、学習装置、学習方法、プログラムおよびシステムに関する。
【背景技術】
【0002】
近年、ニューラルネットワーク等を用いた機械学習により画像処理を行う技術が用いられている。ここで、ニューラルネットワークの学習が行われるときに用いられる画像のパターンが多くなると、ニューラルネットワークを大規模にする必要がある。従って、ニューラルネットワークの規模によっては、十分な画像処理性能を得ることができなくなることがある。関連する技術として、推定値を生成するときに、メモリの容量、ハードウェアの規模を小さくして、推定値の精度を向上させることを目的とした技術が特許文献1に提案されている。特許文献1の技術では、学習によって、予め予測値を作成するときに、ダイナミックレンジで正規化された値を代表値として用いるとともに、ダイナミックレンジが小さいブロックを学習対象から除外している。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1の技術では、入力データを正規化する処理が必要になり、処理が煩雑化する。また、特許文献1の技術では、ダイナミックレンジが小さいブロックが学習対象から除外されているため、多様なパターンの画像が機械学習されておらず、学習モデルを用いた画像処理の精度は低下する。
【0005】
本発明は、学習モデルの規模が大きくなることを抑制しつつ、画像処理の性能を向上させることを目的とする。
【課題を解決するための手段】
【0006】
上記目的を達成するために、本発明の画像処理装置は、符号化された画像を復号した復号画像の画素値を所定の値で減算して加工画像を生成する減算手段と、前記加工画像の回復の推論を行う学習モデルを用いて、前記加工画像を入力とした推論処理を行う推論手段と、前記推論処理が行われた加工画像に、前記所定の値を加算する加算手段と、を備え、前記学習モデルは、符号化されていない学習用画像の画素値から前記所定の値を減算した画像を教師画像とし、符号化された学習用画像を復号した画像の画素値を前記所定の値で減算した学習用の加工画像を入力として学習されることを特徴とする。
【発明の効果】
【0007】
本発明によれば、学習モデルの規模が大きくなることを抑制しつつ、画像処理の性能を向上させることができる。
【図面の簡単な説明】
【0008】
【
図2】第1実施形態における加工処理の流れを示すフローチャートである。
【
図4】第1実施形態における画像加工方法を示す図である。
【
図5】第1実施形態の学習処理の流れを示すフローチャートである。
【
図7】ニューラルネットワーク処理部の機能ブロック図である。
【
図8】第1実施形態の画像加工処理、推論処理および画像回復処理の流れを示す図である。
【
図9】第1実施形態の推論処理の流れを示すフローチャートである。
【
図10】第2実施形態における画像加工方法を示す図である。
【
図11】第2実施形態の画像加工処理、推論処理および画像回復処理の流れを示す図である。
【
図12】第3実施形態における画像加工方法を示す図である。
【
図13】第3実施形態の画像加工処理、推論処理および画像回復処理の流れを示す図である。
【
図14】第4実施形態の学習処理の流れを示すフローチャートである。
【発明を実施するための形態】
【0009】
以下、本発明の各実施の形態について図面を参照しながら詳細に説明する。しかしながら、以下の各実施の形態に記載されている構成はあくまで例示に過ぎず、本発明の範囲は各実施の形態に記載されている構成によって限定されることはない。
【0010】
<第1実施形態>
以下、図面を参照して、第1実施形態について説明する。
図1は、コンピュータ10の機能ブロック図である。コンピュータ10は、学習装置に対応する。例えば、コンピュータ10は、クラウドサーバやエッジコンピュータ等であってよい。コンピュータ10は、CPU11、メモリ12、記憶装置13、通信部14および内部バス15を有する。CPU11は、記憶装置13に記憶されているコンピュータプログラムを実行することによって、内部バス15を介してコンピュータ10の各部(各機能ブロック)の動作を制御する。また、CPU11の動作を補助するGPU(Graphics Processing Unit)が、コンピュータプログラムの演算を行ってもよい。また、CPU11が行う処理は、GPUが行ってもよい。CPU11は、減算手段および学習手段に対応する。
【0011】
メモリ12は、書き換え可能な揮発性メモリである。メモリ12は、コンピュータ10の各部の動作を制御するためのコンピュータプログラムやコンピュータ10の各動作に関する情報、CPU11が実行する処理の前後の情報等を一時的に記憶する。メモリ12は、各情報を一時的に記憶するために十分な記憶容量を備えている。メモリ12は、ニューラルネットワークの処理内容を記述したコンピュータプログラムや学習済み係数パラメータ等を記憶する。学習済み係数パラメータは、ニューラルネットワークの重み係数やバイアス値等である。重み係数は、ニューラルネットワークにおけるノード間の接続の強さを示す値である。バイアスは、重み係数と入力データの積算値に対してオフセットを与えるための値である。
【0012】
記憶装置13は、電気的に消去および記憶が可能なメモリである。記憶装置13としては、例えばハードディスクやSSD(Solid State Drive)等が用いられる。記憶装置13は、コンピュータ10の各部を制御するコンピュータプログラムやメモリ12に一時保存された処理結果等の情報を記憶する。通信部14は、有線通信または無線通信により、後述する画像処理装置100と通信を行う。また、通信部14は、外部機器や周辺機器等と通信を行ってもよい。通信部14は、記憶装置13に記憶された情報を、外部機器や記録媒体等の周辺機器と送受信する。通信部14は、USB(Universal Serial Bus)規格に準拠した通信を行ってもよいし、IEEE802.11等のような無線通信規格に準拠した通信を行ってもよい。CPU11、メモリ12、記憶装置13および通信部14は、内部バス15を介して相互にアクセス可能に構成されている。
【0013】
次に、コンピュータ10が行う学習(機械学習)について説明する。コンピュータ10は、ニューラルネットワークの学習を行う。ニューラルネットワークは、例えば、CNN(Convolutional Neural Network)であってもよいし、全結合層で構成されるニューラルネットワークであってもよい。コンピュータ10は、ニューラルネットワークの学習以外の機械学習手法を用いて、学習モデルを生成してもよい。例えば、コンピュータ10は、サポートベクター回帰や決定木等の任意の機械学習手法を用いて、学習モデルの学習を行ってもよい。ニューラルネットワークの学習は、コンピュータ10が行ってもよいし、後述する画像処理装置100等の任意の装置が行ってもよい。機械学習が行われることにより、目的となる処理結果に対し、ニューラルネットワークの重み係数やバイアス値等の係数パラメータが調整されて、適切な値に近づいていく。
【0014】
各実施形態では、コンピュータ10は、ニューラルネットワークを用いた画像回復のための学習を行う。学習に用いられる学習データとしては、非圧縮画像(符号化処理および複合処理がされていない画像)、および非圧縮画像を符号化処理して複合処理した復号画像が用いられる。復号画像は、符号化処理および複合処理が施されているため、非圧縮画像と比べて画質が劣る。コンピュータ10は、復号画像に対して所定の加工を施した加工画像を入力として、ニューラルネットワークの学習を行う。これにより、ニューラルネットワークの係数パラメータによる演算処理が行われる。演算処理が繰り返されることで、演算結果として出力される画像と非圧縮画像との画素値の誤差が小さくなるような学習が行われる。上述したニューラルネットワークを用いることで、画質が劣る復号画像の画素値を、画質が劣化していない非圧縮画像の画素値に近づけることができる。これにより、復号画像の画質が改善され、画像回復が実現される。
【0015】
次に、学習処理を行うための学習用画像を加工する処理(加工処理)について説明する。加工処理は、学習用画像(学習データ)が、ニューラルネットワークに入力される前に行われる前処理である。
図2は、第1実施形態における加工処理の流れを示すフローチャートである。
図2に示されるフローチャートの各処理は、記憶装置13に記憶されているコンピュータプログラムがメモリ12に展開され、CPU11がメモリ12のコンピュータプログラムを実行することにより実現されてもよい。S201において、CPU11は、画像分割を行って、所定サイズの画像ブロックを生成するかを判定する。加工処理の対象となる画像(学習データ)は、復号画像または非圧縮画像である。
【0016】
例えば、CPU11は、入力された復号画像の画素平均値Pavgが第1の閾値以上である場合に、画像分割を行うと判定してもよい。この場合、入力された復号画像の明るさが明るい場合に画像分割が行われる。明るい画像は画素値の振幅が大きくなる傾向にあるため、復号画像の分割が行われることが好ましい。これにより、画像全体と比べて、分割された画像ブロック内の振幅を小さくできる。また、CPU11は、入力された復号画像の画素最大値Pmaxと最小値Pminの差Pmax-Pminが第2の閾値以上である場合に、画像分割を行うと判定してもよい。つまり、入力された復号画像の画素間の差が大きい場合に、画像分割が行われる。復号画像の画素間の差が大きい場合、復号画像の分割が行われることが好ましい。これにより、画像全体と比べて、分割された画像ブロック内の振幅を小さくできる。第1の閾値および第2の閾値は、任意の値に設定されてもよい。CPU11が、画像分割を行うかの判定を行う基準となる値は、復号画像の画素の分散値や、画素中央値、画素最大値、画素最小値等の任意の値であってよい。
【0017】
図3は、学習データを所定の画像サイズに分割した際の、画像ブロックの一例を示す図である。分割前の画像データが画像21である。CPU11は、画像21を分割することで、破線部で囲まれる画像ブロック22を生成する。画像ブロックの分割サイズは、予め任意のサイズに設定されてもよい。また、画像ブロックの分割方法は、
図3に示す方法に限定するものではない。
図2に示されるように、S201において、CPU11は、画像分割を行うと判定した場合、処理をS202に進める。一方、S201において、CPU11は、画像分割を行わないと判定した場合、処理をS203に進める。この場合、S202の処理は実行されない。なお、画像分割の判定基準となる値は、複数入力される復号画像から決定されてもよいし、画像分割が行われないような値に設定されてもよい。
【0018】
S202において、CPU11は、分割する対象の学習データの画像分割を実施する。CPU11は、画像分割を実施することで、学習される画像のサイズを小さくできる。これにより、画像全体の画素の振幅が大きくても、分割された画像ブロックでは画素の振幅を小さくできる。CPU11は、画像サイズを変更する所定の判定基準を下回るような画像サイズとなるように、画像ブロックを生成してもよい。画像サイズを変更する判定基準を下回れない場合、CPU11は、画像ブロックの最小サイズを予め決定しておき、最小サイズを基準として画像分割を行う。そして、CPU11は、処理をS203に進める。S203において、CPU11は、画像加工を行うかを判定する。CPU11は、入力された復号画像の画素最大値Pmaxと最小値Pminとの差Pmax-Pminが、第3の閾値以下であると判定した場合、画像加工を行わないと判定してもよい。第3の閾値は、第2の閾値と異なっていてもよいし、同じであってもよい。差Pmax-Pminが小さい画像または画像ブロックは、画素の振幅が小さい。画素の振幅が小さい画像または画像ブロックは、画像加工を行うことにより得られる効果が少ない。このため、画像加工の処理が省略されることで、CPU11の処理負荷の軽減が図られる。
【0019】
CPU11は、画像加工を行うと判定した場合、処理をS204に進める。一方、CPU11は、画像加工を行わないと判定した場合、処理を終了させる。この場合、S204の処理は実行されない。なお、判定基準となる第1の閾値、第2の閾値および第3の閾値は、事前に決定されてもよいし、複数入力される復号画像から設定されてもよい。S204において、CPU11は、加工すると判定した画像を、画像加工する。CPU11は、S204が実行された後、処理を終了させる。
【0020】
図4は、第1実施形態における画像加工方法を示す図である。
図4における学習データ31は、加工すると判定した学習データである。学習データは、非圧縮画像32および非圧縮画像32に対して符号化処理および復号処理を施すことで画質が劣化した復号画像33を含む。画素最小値計算部34は、非圧縮画像32と復号画像33とのそれぞれについて、順に全画素を読み込み、最も小さな画素値を更新していく。これにより、各画像の画素最小値が算出される。最小値比較部35は、算出された2つの画素最小値の比較結果に基づいて、より小さな値を画像加工に用いる加工値とする。つまり、非圧縮画像32の各画素と復号画像33の各画素とのうち、最小値の画素が所定の値となる。減算部36では、非圧縮画像32と復号画像33とのそれぞれの各画素を加工値(画素最小値)で減算する。加工値で減算された非圧縮画像32は、加工非圧縮画像37となる。また、加工値で減算された復号画像33は、加工復号画像38となる。加工復号画像38は、教師画像に対応する。加工復号画像38は、学習用復号画像に対応する。加工非圧縮画像37および加工復号画像38はセットとなり、加工済み学習データ39となる。
【0021】
次に、ニューラルネットワークの学習処理の流れについて説明する。
図5は、第1実施形態の学習処理の流れを示すフローチャートである。上述したように、学習データは、加工される場合と加工されない場合とがある。CPU11は、加工済み学習データ39、または非加工学習データ(画像の加工がされていない学習データ31)を用いて、ニューラルネットワークの学習を行う。また、CPU11は、ニューラルネットワークの学習を、加工済み学習データ39と非加工学習データとを別で行い、且つ画像ブロックのサイズごとに行う。つまり、CPU11は、加工済み学習データ39を用いて学習されたニューラルネットワークと非加工学習データを用いて学習されたニューラルネットワークとを個別的に生成する。また、CPU11は、画像ブロックごとに、加工済み学習データ39または非加工学習データを用いて学習されたニューラルネットワークを個別的に生成する。従って、CPU11は、複数のニューラルネットワークを生成する。
【0022】
S501において、CPU11は、メモリ12に展開されている、または記憶装置13に格納されている加工済み学習データ39もしくは非加工学習データを、加工済みグループと非加工グループに分ける。そして、CPU11は、それぞれのグループにおいて、画像ブロックのサイズごとに分けた画像セットを生成する。その後、CPU11は、処理をS502に進める。S502において、CPU11は、入力した復号画像を用いて、画像セットごとに、ニューラルネットワークの学習を行う。このとき、CPU11は、ニューラルネットワークの係数パラメータを調整する演算処理を行う。CPU11は、演算結果として出力される画像と教師画像との画素値の差が小さくなるように学習をする。CPU11は、画像セットごとにニューラルネットワークの学習を行うため、複数のニューラルネットワークの学習が行われる。その後、CPU11は、処理をS503に進める。ニューラルネットワークの学習は、予め決められた回数まで行われる。S503において、CPU11は、ニューラルネットワークの学習が、予め決められた回数に達したかを判定する。CPU11は、S503でYesと判定した場合、処理をS502に戻る。一方、CPU11は、S503でNoと判定した場合、処理を終了させる。予め決められた回数は、任意に設定可能である。
【0023】
次に、画像処理装置100について説明する。
図6は、画像処理装置100の機能ブロック図である。
図6に示すように、画像処理装置100は、CPU101、メモリ102、不揮発性メモリ103、操作部104およびニューラルネットワーク処理部105を有する。また、画像処理装置100は、撮像部112、画像処理部113、符号化処理部114、復号処理部115、表示制御部116および表示部117を有する。さらに、画像処理装置100は、通信制御部118、通信部119、記録媒体制御部120および内部バス130を有する。画像処理装置100は、撮影レンズ111を用いて被写体の光学像を撮像部112の画素アレイに結像する。撮影レンズ111は、画像処理装置100のボディ(筐体、本体)から、着脱不能であってもよいし、着脱可能であってもよい。また、画像処理装置100は、記録媒体制御部120を介して画像データの書き込みおよび読み出しを記録媒体121に対して行う。記録媒体121は、画像処理装置100に着脱可能であってもよいし、着脱不能であってもよい。画像処理装置100は、撮像装置に対応する。
【0024】
CPU101は、不揮発性メモリ103に記憶されているコンピュータプログラムを実行することによって、内部バス130を介して画像処理装置100の各部(各機能ブロック)の動作を制御する。メモリ102は、書き換え可能な揮発性メモリである。メモリ102は、画像処理装置100の各部の動作を制御するためのコンピュータプログラムや画像処理装置100の各部の動作に関するパラメータ等の情報、通信制御部118によって受信される情報等を一時的に記憶する。また、メモリ102は、撮像部112が取得する画像や画像処理部113、符号化処理部114、復号処理部115等が処理した画像および情報を一時的に記憶する。メモリ102は、処理された画像や情報を一時的に記憶するために十分な記憶容量を備えている。また、メモリ102は、ニューラルネットワーク処理部105で使用するニューラルネットワークの処理内容を記述したコンピュータプログラム、重み係数やバイアス値等の学習済み係数パラメータを記憶する。
【0025】
不揮発性メモリ103は、電気的に消去および記憶が可能なメモリであり、例えばEEPROMやハードディスク等が用いられる。不揮発性メモリ103は、画像処理装置100の各部の動作を制御するコンピュータプログラムおよび画像処理装置100の各部の動作に関するパラメータ等の情報を記憶する。該コンピュータプログラムにより、画像処理装置100によって行われる各種動作が実現される。なお、不揮発性メモリ103に、上述したニューラルネットワーク処理部105で使用するニューラルネットワークの処理内容を記述したコンピュータプログラムおよび学習済み係数パラメータ(重み係数やバイアス値等)が記憶されてもよい。
【0026】
操作部104は、画像処理装置100を操作するためのユーザインターフェースを提供する。操作部104は、電源ボタンやメニューボタン、撮影用のレリーズボタン、動画録画ボタン、キャンセルボタン等の各種ボタンを含んでいる。操作部104は、各種ボタンはスイッチやタッチパネル等により構成され得る。CPU101は、操作部104を介して入力されたユーザーの指示に従って画像処理装置100を制御する。なお、画像処理装置100の制御は、操作部104を介して入力される操作に基づいて行われてもよいが、他の手法で行われてもよい。例えば、所定のリモートコントローラや所定の携帯端末等から通信部119を介して入力される要求に基づいて、CPU101が画像処理装置100を制御してもよい。ニューラルネットワーク処理部105の詳細な説明については後述する。
【0027】
撮影レンズ111(レンズユニット)は、ズームレンズやフォーカスレンズ等を含むレンズ群やレンズ制御部、絞り等により構成される。撮影レンズ111は、画角を変更するズーム手段として機能し得る。レンズ制御部は、CPU101から送信される制御信号により、焦点の調整および絞り値(F値)の制御を行う。撮像部112は、動画像を構成する複数の画像を順次取得する取得手段として機能し得る。撮像部112としては、例えば、例えばCCD(電荷結合素子)やCMOS(相補型金属酸化膜半導体)素子等でのエリアイメージセンサが用いられる。撮像部112は、被写体の光学像を電気信号に変換する光電変換部が行列状、すなわち、2次元的に配列された画素アレイを有している。該画素アレイには、被写体の光学像が撮影レンズ111によって結像される。撮像部112は、撮像した画像を画像処理部113またはメモリ102に出力する。撮像部112は、静止画像を取得することも可能である。
【0028】
画像処理部113は、撮像部112が出力する画像データ、またはメモリ102から読み出された画像データに対して、所定の画像処理を施す。該画像処理の例としては、ダイナミックレンジ変換処理や補間処理、縮小処理(リサイズ処理)、色変換処理等が挙げられる。また、画像処理部113は、撮像部112が取得した画像データを用いて、露光制御や測距制御等のための所定の演算処理を行う。CPU101は、画像処理部113が行う演算処理によって得られた演算結果に基づいて、露光制御や測距制御等を行う。具体的には、CPU101は、AE(自動露出)処理やAWB(オートホワイトバランス)処理、AF(オートフォーカス)処理等を行う。
【0029】
符号化処理部114は、画像データに対してフレーム内予測符号化(画面内予測符号化)やフレーム間予測符号化(画面間予測符号化)等を行う。符号化処理部114は、符号化手段に対応する。これにより、画像データのサイズが圧縮される。符号化処理部114は、例えば、半導体素子等により構成された符号化装置である。符号化処理部114は、画像処理装置100の外部に設けられた符号化装置であってもよい。復号処理部115は、符号化処理部114が符号化処理した圧縮データを復号することで、復号画像を生成する。
【0030】
表示制御部116は、表示部117を制御する。表示部117には、表示画面が設けられる。表示制御部116は、表示部117に設けられる表示画面に表示可能な画像を生成し、生成された画像(画像信号)を表示部117に出力する。また、表示制御部116は表示部117に画像データを出力するだけでなく、通信制御部118を介して外部機器250に画像データを出力することも可能である。表示制御部116は、GPUにより実現されてもよい。この場合、ニューラルネットワーク処理部105の処理の一部または全部は、表示制御部116により実現されてもよい。
【0031】
表示部117は、表示制御部116から送られてくる画像信号に基づいて、表示画面に画像を表示する。表示部117は、表示画面にメニュー等の設定画面を表示する機能であるOSD(On Screen Display)機能を有している。表示制御部116は、画像信号にOSD画像を重畳して表示部117に画像信号を出力し得る。表示部117は、液晶ディスプレイや有機ELディスプレイ等により構成されており、表示制御部116から送られてきた画像信号を表示する。表示部117は、例えばタッチパネルディスプレイであってもよい。表示部117がタッチパネルディスプレイである場合、表示部117は、操作部104としても機能し得る。
【0032】
通信制御部118は、CPU101により制御される。通信制御部118は、通信部119を用いた通信制御を行う。通信部119は、有線通信または無線通信により、外部機器250と通信を行う。また、通信部119は、コンピュータ10と通信を行い、コンピュータ10により学習されたニューラルネットワークを取得する。通信制御部118は、HDMI(登録商標)(High Definition Multimedia Interface)やSDI(Serial Digital Interface)等の通信規格に準拠した映像信号を送るために、通信部119を制御してもよい。
【0033】
記録媒体制御部120は、記録媒体121を制御する。記録媒体制御部120は、CPU101からの要求に基づいて、記録媒体121を制御するための制御信号を記録媒体121に出力する。記録媒体121としては、例えば不揮発性メモリや磁気ディスク等が用いられる。記録媒体121は、上述したように、着脱可能であってもよいし、着脱不能であってもよい。記録媒体121は、符号化された画像データ等を記録する。記録媒体121のファイルシステムに適合した形式で画像データ等がファイルとして保存される。各機能ブロック101~105、112~116、118および120は、内部バス130を介して相互にアクセス可能である。
【0034】
次に、ニューラルネットワーク処理部105について説明する。ニューラルネットワーク処理部105は、GPUや推論処理に特化したプログラミング回路等により実現されてもよい。
図7は、ニューラルネットワーク処理部105の機能ブロック図である。ニューラルネットワーク処理部105は、予めコンピュータ10によって学習された学習済みの係数パラメータを用いてニューラルネットワークの処理を実行する。また、ニューラルネットワーク処理部105は、ニューラルコア140を有する。ニューラルコア140は、CPU141、積和演算回路142、DMA143および内部メモリ144を含む。ニューラルコア140は、例えば、GPUや推論処理に特化したプログラミング回路等により実現されてもよい。CPU141は、内部バス130を介してメモリ102または不揮発性メモリ103に記憶されているニューラルネットワークの処理内容を実行する。ニューラルネットワークの処理内容は、内部メモリ144に記憶されていてもよい。また、CPU141は積和演算回路142およびDMA143の制御も行う。ニューラルネットワーク処理部105は、推論手段に対応する。
【0035】
積和演算回路142は、ニューラルネットワークにおける積和演算を行う回路である。積和演算回路142は、複数の積和演算回路を有し、各積和演算回路は並列に演算処理を実行することが可能である。DMA143は、CPU141を介さずにデータ転送に特化した回路であり、内部バス130を介してメモリ102または不揮発性メモリ103と内部メモリ144間のデータ転送を行う。また、DMA143は、積和演算回路142と内部メモリ144との間のデータ転送制御も行う。DMA143が転送するデータとしては、ニューラルネットワークの処理内容を記述したコンピュータプログラムや、学習済み係数パラメータ、積和演算回路142で算出した中間データ等である。内部メモリ144は、ニューラルネットワークの処理内容を記述したコンピュータプログラムや、学習済み係数パラメータ、積和演算回路142で算出した中間データ等を記憶する。また、内部メモリ144は複数のバンクを有してもよく、動的にバンクが切り替えられてもよい。
【0036】
次に、推論処理について説明する。推論処理は、上述した学習方法により学習されたニューラルネットワークを用いて、復号画像の劣化を回復する処理である。画像処理装置100は、復号処理部115が復号した復号画像の推論処理を実行する。推論処理を行う主体は、画像処理装置100には限定されない。例えば、コンピュータ10や、クラウドに代表されるネットワークを利用した外部機器が、推論処理を行ってもよい。また、符号化処理部114において、非圧縮画像の画素最小値がファイル情報として保持されてもよい。ファイル情報は、画像1枚ごとに保持されてもよいし、画像ブロックごとに保持されてもよいし、複数の画像ごとに保持されてもよい。
【0037】
CPU101は、推論において、
図2の学習における画像加工処理と一部の処理を除き、同様の処理を実行する。推論と学習では、
図2のS204の画像加工処理の内容が異なる。
図8(A)および(B)は、第1実施形態の画像加工処理、推論処理および画像回復処理の流れを示す図である。
図8における各部のうち推論処理部157以外の各部は、CPU101により実現される。例えば、CPU101が所定のプログラムを実行することにより、推論処理部157以外の各部の処理が行われる。
図8(A)は、符号化処理部114において、1つの復号画像152および非圧縮画像の画素最小値151がファイル情報として保持されている例を示す。このファイル情報は、メモリ102や不揮発性メモリ103、記録媒体121等に保持される。なお、以下、各値および各画像は、所定の記憶部に記憶されてもよい。
【0038】
画素最小値計算部153は、復号画像152の画素最小値を算出する。比較部154は、求められた復号画像152の画素最小値と符号化の時点でファイル情報として保存された非圧縮画像の画素最小値151とを比較する。比較部154は、比較結果に基づいて、2つの画素最小値のうち小さい方の画素最小値を加工値として、減算部155に出力する。つまり、加工値(所定の値)は、復号画像152の画素値と非圧縮画像の画素値とのうち最小となる画素値である。減算部155は、復号画像の各画素から上記加工値を減算する減算手段である。減算部155は、加工値が減算された復号画像を加工復号画像156として生成する。上述したファイル情報が、非圧縮画像の画素最小値を保持していない場合、
図8(B)に示されるように、加工値は、復号画像152の画素最小値となる。この場合、減算部155は、復号画像152の各画素から、復号画像152の画素最小値を減算して、加工復号画像156として出力する。加工復号画像156は、加工画像に対応する。
【0039】
加工復号画像156は、推論処理部157に入力される。推論処理部157は、
図7のニューラルネットワーク処理部105に対応する。従って、加工復号画像156は、ニューラルネットワーク処理部105に入力されて、学習済みのニューラルネットワークを用いた推論処理が行われる。ニューラルネットワーク処理部105は、復号画像の回復処理を、ニューラルネットワークを用いた推論処理により行う。従って、推論処理部157は、推論結果として、推論による回復処理を行った加工回復画像158を出力する。加算部159は、比較部154が減算部155に出力した画素最小値を取得し、取得した画素最小値を加工回復画像158に加算する加算手段である。これにより、符号化処理部114の処理前の非圧縮画像に近い、回復画像160が得られる。
【0040】
次に、ニューラルネットワーク処理部105を用いた推論処理について説明する。
図9は、第1実施形態の推論処理の流れを示すフローチャートである。S901において、CPU101は、画像分割を行うかを判定する。CPU101は、
図2のS201と同様の手法で、画像分割を行うかを判定してもよい。CPU101は、画像分割を行うと判定した場合、処理をS904に進める。一方、CPU101は、画像分割を行わないと判定した場合、処理をS904に進める。S902において、CPU101は、
図2のS202と同様の手法で、画像分割を行う。これにより、複数の画像ブロックが生成される。
【0041】
S903において、CPU101は、ニューラルネットワーク処理部105に、ニューラルネットワークの切り替えを実行させる。このとき、CPU101は、画像ブロックのサイズごとに対応するニューラルネットワークの処理内容へ変更するため、ニューラルネットワーク処理部105のCPU141に対して処理の命令を実行させる。CPU141は、CPU101からの命令に基づいて、メモリ102、不揮発性メモリ103または内部メモリ144から、実行対象のニューラルネットワークの処理内容を記述したコンピュータプログラムを取得して、切り替えを行う。そして、CPU101は、処理をS904に進める。
【0042】
S904において、CPU101は、推論処理を行う。このとき、CPU141で処理するためのプログラムを読み込み、CPU141を起動させる。起動したCPU141は、実行対象のニューラルネットワークの処理内容を記述したコンピュータプログラムを実行する。内部メモリ144には加工復号画像156が展開されており、ニューラルネットワーク処理部105は、積和演算回路142による積和演算等を行うことにより、ニューラルネットワークを用いた推論処理を行う。そして、CPU101は、処理を終了させる。
【0043】
上述したように、本実施形態では、コンピュータ10は、復号画像の各画素から画素最小値を減算して加工し、加工復号画像を入力としたニューラルネットワークの学習を行う。これにより、ニューラルネットワークを用いた学習を行うための画像の情報量を削減できるとともに、ニューラルネットワークによる演算パターンを少なくすることができる。その結果、ニューラルネットワークの規模が大きくなることを抑制しつつ、効率的なニューラルネットワークの学習を実現できる。また、画像処理装置100は、復号画像の各画素から画素最小値を減算して加工し、加工復号画像を入力としたニューラルネットワーク処理部105による推論処理を行う。そして、画像処理装置100は、推論された加工回復画像の各画素に画素最小値を加算する。これにより、ニューラルネットワークの規模を抑制しつつ、画像回復処理の性能を向上させることができる。また、推論処理の処理量が低減するため、推論処理の処理時間も短縮される。
【0044】
上述したように、学習を行う対象は、ニューラルネットワーク以外の学習モデルであってもよい。この場合でも、学習モデルの規模を抑制しつつ効率的な学習を行うことができるとともに、画像回復処理の性能を向上させることができる。また、コンピュータ10および画像処理装置100は、画素最小値ではなく、所定の値を、復号画像から減算してもよい。所定の値は、任意に設定されてもよい。
【0045】
<第2実施形態>
次に、第2実施形態について説明する。第1実施形態では、画素最小値が用いられたが、第2実施形態では、画素平均値が用いられる。第1実施形態と重複する部分については、説明を省略する。
図10は、第2実施形態における画像加工方法を示す図である。
図10の画像加工方法は、CPU11が行う。第1実施形態と同様、学習データ171は加工すると判定された学習データである。学習データ171は、非圧縮画像172および復号画像173を含む。復号画像173は、非圧縮画像172を符号化処理および復号処理することで画質が劣化する画像である。画素平均値計算部174は、非圧縮画像172と復号画像173との各画像について、順に全画素を読み込み、画素値の総和から画素数で除算をする。これにより、各画像の画素平均値Pavgが算出される。CPU11は、画素平均値Pavgを画像加工に用いる加工値とする。減算部175は、非圧縮画像172と復号画像173とのそれぞれの各画素から加工値(画素平均値Pavg)を減算する。減算された結果が、加工非圧縮画像176および加工復号画像177となる。加工済み学習データ178は、加工非圧縮画像176および加工復号画像177を含む。加工非圧縮画像176は、教師画像となる。
【0046】
画像処理装置100は、学習済みのニューラルネットワークを用いて、復号処理部115で復号された復号画像の推論を行う。
図11は、第2実施形態の画像加工処理、推論処理および画像回復処理の流れを示す図である。画素平均値計算部182は、復号画像181から算出される画素平均値を算出する。上述したように、画素平均値は加工値である。減算部183では、復号画像の各画素から加工値を減算し、加工復号画像184を出力する。推論処理部185は、ニューラルネットワーク処理部105において、第1実施形態と同様の推論処理を行う。つまり、ニューラルネットワーク処理部105に対して、加工復号画像184が入力されると、ニューラルネットワーク処理部105は、加工回復画像186を出力する。加算部187は、加工回復画像186の各画素に対して、加工値である画素平均値Pavgを加算する。これにより、符号化処理部114の処理前の非圧縮画像に近い、回復画像188が得られる。第2実施形態では、加工値として画素平均値が用いられるが、第1実施形態と同様の効果を得ることができる。
【0047】
<第3実施形態>
次に、第3実施形態について説明する。第3実施形態では、画素フルスケールの半分の値から画素平均値を減算した値が加工値として用いられる。第1実施形態と重複する部分については、説明を省略する。
図12は、第3実施形態における画像加工方法を示す図である。学習データ191は、加工すると判定された非圧縮画像192および復号画像193を含む。復号画像193は、非圧縮画像192を符号化処理および復号処理することで画質が劣化した画像である。画素平均値計算部194は、復号画像193の画素平均値Pavgを算出する。
【0048】
半分値195は、画素フルスケールの半分の値であり、予め算出されている。例えば、画素フルスケールの半分の値は、14bitの画像であれば、「2」の「14乗」から「2」で除算した値「8192」となる。減算部196は、画素フルスケールの半分の値Pmidから画素平均値Pavgを減算し、差Pmid-Pavgを求める。本実施形態では、差Pmid-Pavgは、負の値となる。減算部196が減算した結果は、画像加工に用いる加工値である。つまり、加工値は負の値になる。加算部197は、非圧縮画像と復号画像とのそれぞれの各画素について加工値を加算する。上述したように、加工値は負の値になるため、加算部197は、実質的には、減算部として機能する。これにより、加工非圧縮画像198および加工復号画像199を含む加工済み学習データ200が得られる。加工非圧縮画像198は、教師画像となる。
【0049】
次に、学習されたニューラルネットワークを用いた推論について説明を行う。画像処理装置100は、復号処理部115が復号した復号画像の推論を実施する。
図13は、第3実施形態の画像加工処理、推論処理および画像回復処理の流れを示す図である。画素平均値計算部212は、復号画像211の画素平均値を算出する。減算部214は、画素フルスケールの半分の値213から画素平均値を減算する。減算された値は加工値である。加算部215は、復号画像に加工値を加算する。加工値は負の値であるため、加工復号画像216の各画素の画素値は、復号画像211の各画素の画素値から減算される。
【0050】
推論処理部217は、ニューラルネットワーク処理部105であり、第1実施形態と同様の推論処理が行われる。これにより、加工復号画像216の回復処理が行われる。減算部219は、推論処理部217により回復処理がされた加工回復画像218に対して、加工値を減算する。加工値は負の値であるため、減算部219は、加算処理を行う。これにより、符号化処理部114による符号化処理前の非圧縮画像に近い回復画像220が得られる。
【0051】
<第4実施形態>
次に、第4実施形態について説明する。第1実施形態では、コンピュータ10は、
図2のS203の判定結果により、画像は加工されるか、または加工されない。また、第1実施形態では、コンピュータ10は、
図5のS501で、画像ブロックのサイズごとに分けた、画像セットを生成する。第4実施形態では、画像セットの生成は行われることなく、ニューラルネットワークの切り替えが行われる。
【0052】
図14は、第4実施形態の学習処理の流れを示すフローチャートである。CPU11は、加工済み学習データ39または、画像の加工がなされなかった非加工学習データを用いて、学習を行う。第1実施形態と同様、加工済み学習データ39を用いた学習と非加工学習データを用いた学習とは別で行われる。S1401において、CPU11は、画像分割が実施済みであるかを判定する。CPU11は、例えば、メモリ12に展開されている画像のサイズ、または記憶装置13に格納されている画像のサイズを計算し、計算結果に基づいて、画像分割が実施済みであるかを判定してもよい。
【0053】
CPU11は、画像分割が実施済みであると判定した場合、処理をS1402に進める。一方、CPU11は、画像分割が実施済みでないと判定した場合、処理をS1403に進める。S1402において、CPU11は、画像サイズごとに対応するニューラルネットワークで構成される学習モデルを生成するため、学習モデルを切り替える。CPU11は、学習モデルを切り替えることで、画像サイズごとに異なる学習モデルを用いて学習を行う。そして、CPU11は、処理をS1403に進める。
【0054】
S1403において、CPU11は、入力した復号画像を用いて、ニューラルネットワークの学習を行う。CPU11は、ニューラルネットワークの係数パラメータを調整する演算処理を行う。CPU11は、演算結果として出力される画像と教師画像(加工非圧縮画像37)との画素値の差が小さくなるように学習をする。そして、CPU11は、処理をS1404に進める。S1404において、CPU11は、各ニューラルネットワークの学習が、予め決められた回数に達したかを判定する。CPU11は、予め決められた回数に達していないと判定した場合、処理をS1401に戻す。一方、CPU11は、予め決められた回数に達したと判定した場合、処理を終了させる。
【0055】
第4実施形態では、学習セットの生成は行われることなく第1実施形態と同様の学習結果を得ることができる。従って、学習セットの生成という処理を省略でき、且つ第1実施形態と同様の効果を得ることができる。
【0056】
<第5実施形態>
次に、第5実施形態について説明する。上述した各実施形態では、画像処理装置100が、ニューラルネットワーク処理部105および符号化処理部114を有している例を説明した。第5実施形態では、ニューラルネットワーク処理部105の機能と符号化処理部114の機能とは異なる機器により実現される。
図15は、画像処理装置100と外部機器250とがネットワークを介して通信可能に接続されているシステムを示す図である。画像処理装置100は、符号化処理部114を有している。外部機器250は、推論処理を行うサーバ等である。
【0057】
外部機器250は、画像回復部260、記憶部270、復号部280、画像加工部290および加算部295を有する機器である。画像回復部260は、ニューラルネットワークを用いて推論処理を行う。記憶部270は、所定の情報を記憶するストレージデバイス等である。復号部280は、符号化処理部114により符号化された符号化画像を復号して、復号画像を得る。画像加工部290は、復号画像の加工を行う。画像処理装置100は、符号化処理部114が符号化し圧縮した符号化画像を、ネットワーク通信により外部機器250に送信する。外部機器250は、受信した符号化画像を記憶部270に記憶する。復号部280は、記憶部270に記憶された符号化画像を復号し、復号画像を得る。
【0058】
画像加工部290は、第1実施形態での画像処理装置100と同様の画像の加工を行う。つまり、画像加工部290は、復号画像の各画素の画素値から画素最小値や画素平均値等の所定の値を減算する減算部としての機能を有する。画像回復部260は、ニューラルネットワーク処理部105と同様の処理を行う。つまり、画像回復部260は、加工された復号画像を入力として、ニューラルネットワークを用いた推論を行い、加工回復画像を得る。加算部295は、画像加工部290が減算に用いた所定の値を加算する。これにより、回復画像が生成される。生成された回復画像は記憶部270に記憶される。画像処理装置100は、記憶部270に記憶されている回復画像を、ネットワーク通信を用いて、取得できる。
【0059】
以上のように、第5実施形態では、画像の回復や復号、加工等の処理は、画像処理装置100とは異なる機器で行われる。画像処理装置100と外部機器250との間では、画像以外の情報を相互に通知することも可能である。画像処理装置100は、ネットワーク通信を介して、画像のファイル情報を独立ファイルとしてサーバに送信することも可能である。以上の説明のように、符号化処理部114と画像回復部260とが異なる機器であっても、第1実施形態と同様の効果を得ることができる。
【0060】
以上、本発明の好ましい実施の形態について説明したが、本発明は上述した各実施の形態に限定されず、その要旨の範囲内で種々の変形および変更が可能である。本発明は、上述の各実施の形態の1以上の機能を実現するプログラムを、ネットワークや記憶媒体を介してシステムや装置に供給し、そのシステム又は装置のコンピュータの1つ以上のプロセッサーがプログラムを読み出して実行する処理でも実現可能である。また、本発明は、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
【符号の説明】
【0061】
10 コンピュータ
11 CPU
34 画素最小値計算部
36 減算部
100 画像処理装置
101 CPU
105 ニューラルネットワーク処理部
114 符号化処理部
115 復号処理部
159 加算部
250 外部機器