(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024065787
(43)【公開日】2024-05-15
(54)【発明の名称】画像処理装置、学習方法及び推論方法
(51)【国際特許分類】
G06T 5/70 20240101AFI20240508BHJP
G06T 1/40 20060101ALI20240508BHJP
【FI】
G06T5/00 705
G06T1/40
【審査請求】未請求
【請求項の数】13
【出願形態】OL
(21)【出願番号】P 2022174815
(22)【出願日】2022-10-31
(71)【出願人】
【識別番号】517048278
【氏名又は名称】LeapMind株式会社
(74)【代理人】
【識別番号】100161207
【弁理士】
【氏名又は名称】西澤 和純
(74)【代理人】
【識別番号】100161506
【弁理士】
【氏名又は名称】川渕 健一
(74)【代理人】
【識別番号】100139686
【弁理士】
【氏名又は名称】鈴木 史朗
(74)【代理人】
【識別番号】100207789
【弁理士】
【氏名又は名称】石田 良平
(72)【発明者】
【氏名】徳永 拓之
【テーマコード(参考)】
5B057
【Fターム(参考)】
5B057CB08
5B057CE02
5B057CE11
5B057CH20
(57)【要約】
【課題】機械学習を用いて低品質画像を高品質画像に画像処理する際における精度及び効率を向上させる。
【解決手段】画像処理装置は、入力された入力画像の画素値を、非線形性を有する所定の関数を用いて前記画素値のビット数より低いビット数に変換する前処理部と、前記前処理部により変換されたデータを入力とし、畳み込み演算を行うネットワーク部とを備える。
【選択図】
図2
【特許請求の範囲】
【請求項1】
入力された入力画像の画素値を、非線形性を有する所定の関数を用いて前記画素値のビット数より低いビット数に変換する前処理部と、
前記前処理部により変換されたデータを入力とし、畳み込み演算を行うネットワーク部と
を備える画像処理装置。
【請求項2】
前記ネットワーク部は、畳み込み演算が行われた結果をプーリング処理するプーリング層と、前記プーリング層と対象構造を有し畳み込み演算が行われた結果をアップサンプリングするアップサンプリング層とを含み、スキップコネクションで接続されたU-Net構造を有する
請求項1に記載の画像処理装置。
【請求項3】
前記ネットワーク部により畳み込み演算が行われた結果と、前記前処理部に入力された画像に基づき、前記前処理部に入力された画像より高画質な画像を生成する後処理部を更に備える
請求項1又は請求項2に記載の画像処理装置。
【請求項4】
前記前処理部が変換に用いる非線形性を有する所定の関数の代わりとして、線形性を有する複数の関数で近似するように構成される
請求項1又は請求項2に記載の画像処理装置。
【請求項5】
前記前処理部がビット数の変換に用いる所定の関数は、前記入力画像のガンマ処理に用いられるガンマ関数に応じて決定される
請求項1又は請求項2に記載の画像処理装置。
【請求項6】
前記ネットワーク部は、データ分布の正規化を行うバッチノーマライゼーション処理を行い、活性化関数の演算を行い、所定の関数を乗じるスケール処理を行った後、畳み込み演算を行う
請求項1又は請求項2に記載の画像処理装置。
【請求項7】
前記ネットワーク部は、畳み込み演算を行った結果として16ビット以上のデータに変換し、畳み込み演算を行った結果として得られた16ビット以上のデータを8ビット以下に量子化する
請求項1又は請求項2に記載の画像処理装置。
【請求項8】
前記ネットワーク部は、複数閾値との比較、又は所定の関数を用いた変換のいずれかの方法により、畳み込み演算を行った結果として得られた16ビット以上のデータを8ビット以下に量子化する
請求項7に記載の画像処理装置。
【請求項9】
前記前処理部は、前記画素値を8ビットのデータに変換し、
前記ネットワーク部は、前記前処理部により変換された8ビットのデータを入力とし、畳み込み演算を行う
請求項1又は請求項2に記載の画像処理装置。
【請求項10】
教師データに含まれる一対の高画質画像及び低画質画像それぞれの画素値を、非線形性を有する所定の関数を用いて前記画素値のビット数より低いビット数に変換する前処理工程と、
前記前処理工程により変換されたデータを入力とし、前記低画質画像に重畳されたノイズ成分の抽出についての学習を行う学習工程と
を有する学習方法。
【請求項11】
入力された入力画像の画素値を、非線形性を有する所定の関数を用いて前記画素値のビット数より低いビット数に変換する前処理工程と、
前記前処理工程により変換されたデータを入力とし、ノイズ成分の抽出についての推論を行う推論工程と、
推論された前記ノイズ成分について前記非線形性を有する所定の関数の逆関数を用いて非線形性を解消する処理を行い、非線形性が解消された前記ノイズ成分を前記入力画像から減算することにより前記入力画像より高画質な出力画像を生成する後処理工程と
を有する推論方法。
【請求項12】
教師データに含まれる一対の高画質画像及び低画質画像それぞれの画素値を、非線形性を有する所定の関数を用いて前記画素値のビット数より低いビット数に変換する前処理工程と、
前記前処理工程により変換されたデータを入力とし、前記低画質画像に重畳されたノイズ成分の抽出と、前記非線形性を有する所定の関数の逆関数を用いた変換についての学習を行う学習工程と
を有する学習方法。
【請求項13】
入力された入力画像の画素値を、非線形性を有する所定の関数を用いて前記画素値のビット数より低いビット数に変換する前処理工程と、
前記前処理工程により変換されたデータを入力とし、ノイズ成分の抽出及び前記非線形性を有する所定の関数の逆関数を用いた変換についての推論を行う推論工程と、
前記入力画像から推論された前記ノイズ成分を減算することにより前記入力画像より高画質な出力画像を生成する後処理工程と
を有する推論方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置、学習方法及び推論方法に関する。
【背景技術】
【0002】
撮像装置により画像を撮像する際、周囲の光量が十分でない場合や、シャッタースピード、絞り又はISO感度等の撮像装置の設定により、低品質画像となってしまう場合がある。既に撮像された低品質画像を、画像処理により高品質画像に変換する技術があった。例えば、機械学習を用いて低品質画像を高品質画像に画像処理する技術が知られている(例えば、特許文献1を参照)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
上述したような従来技術をエッジデバイスに適用する場合、モデルサイズの小型化が要求される。しかしながら、モデルサイズを小型化し過ぎると、十分な高品質画像が得られなくなってしまう場合がある。すなわち、モデルサイズの小型化をする場合における課題の一つとして、精度の低下が挙げられる。したがって、エッジデバイスにおいて低品質画像を高品質画像に画像処理する場合、モデルサイズと精度とのバランスをとることが重要となる。
【0005】
そこで本発明は、機械学習を用いて低品質画像を高品質画像に画像処理する際における精度及び効率を向上させることが可能な技術の提供を目的とする。
【課題を解決するための手段】
【0006】
[1]上記の課題を解決するため、本発明の一態様は、入力された入力画像の画素値を、非線形性を有する所定の関数を用いて前記画素値のビット数より低いビット数に変換する前処理部と、前記前処理部により変換されたデータを入力とし、畳み込み演算を行うネットワーク部とを備える画像処理装置である。
【0007】
[2]また、本発明の一態様は、上記[1]に記載の画像処理装置において、前記ネットワーク部は、畳み込み演算が行われた結果をプーリング処理するプーリング層と、前記プーリング層と対象構造を有し畳み込み演算が行われた結果をアップサンプリングするアップサンプリング層とを含み、スキップコネクションで接続されたU-Net構造を有するものである。
【0008】
[3]また、本発明の一態様は、上記[1]又は[2]に記載の画像処理装置において、前記ネットワーク部により畳み込み演算が行われた結果と、前記前処理部に入力された画像に基づき、前記前処理部に入力された画像より高画質な画像を生成する後処理部を更に備えるものである。
【0009】
[4]また、本発明の一態様は、上記[1]から[3]のいずれかに記載の画像処理装置において、前記前処理部が変換に用いる非線形性を有する所定の関数の代わりとして、線形性を有する複数の関数で近似するように構成されるものである。
【0010】
[5]また、本発明の一態様は、上記[1]から[4]のいずれかに記載の画像処理装置において、前記前処理部がビット数の変換に用いる所定の関数は、前記入力画像のガンマ処理に用いられるガンマ関数に応じて決定されるものである。
【0011】
[6]また、本発明の一態様は、上記[1]から[5]のいずれかに記載の画像処理装置において、前記ネットワーク部は、データ分布の正規化を行うバッチノーマライゼーション処理を行い、活性化関数の演算を行い、所定の関数を乗じるスケール処理を行った後、畳み込み演算を行うものである。
【0012】
[7]また、本発明の一態様は、上記[1]から[6]のいずれかに記載の画像処理装置において、前記ネットワーク部は、畳み込み演算を行った結果として16ビット以上のデータに変換し、畳み込み演算を行った結果として得られた16ビット以上のデータを8ビット以下に量子化するものである。
【0013】
[8]また、本発明の一態様は、上記[7]に記載の画像処理装置において、前記ネットワーク部は、複数閾値との比較、又は所定の関数を用いた変換のいずれかの方法により、畳み込み演算を行った結果として得られた16ビット以上のデータを8ビット以下に量子化するものである。
【0014】
[9]また、本発明の一態様は、上記[1]から[8]のいずれかに記載の画像処理装置において、前記前処理部は、前記画素値を8ビットのデータに変換し、前記ネットワーク部は、前記前処理部により変換された8ビットのデータを入力とし、畳み込み演算を行うものである。
【0015】
[10]また、本発明の一態様は、教師データに含まれる一対の高画質画像及び低画質画像それぞれの画素値を、非線形性を有する所定の関数を用いて前記画素値のビット数より低いビット数に変換する前処理工程と、前記前処理工程により変換されたデータを入力とし、前記低画質画像に重畳されたノイズ成分の抽出についての学習を行う学習工程とを有する学習方法である。
【0016】
[11]また、本発明の一態様は、入力された入力画像の画素値を、非線形性を有する所定の関数を用いて前記画素値のビット数より低いビット数に変換する前処理工程と、前記前処理工程により変換されたデータを入力とし、ノイズ成分の抽出についての推論を行う推論工程と、推論された前記ノイズ成分について前記非線形性を有する所定の関数の逆関数を用いて非線形性を解消する処理を行い、非線形性が解消された前記ノイズ成分を前記入力画像から減算することにより前記入力画像より高画質な出力画像を生成する後処理工程とを有する推論方法である。
【0017】
[12]また、本発明の一態様は、教師データに含まれる一対の高画質画像及び低画質画像それぞれの画素値を、非線形性を有する所定の関数を用いて前記画素値のビット数より低いビット数に変換する前処理工程と、前記前処理工程により変換されたデータを入力とし、前記低画質画像に重畳されたノイズ成分の抽出と、前記非線形性を有する所定の関数の逆関数を用いた変換についての学習を行う学習工程とを有する学習方法である。
【0018】
[13]また、本発明の一態様は、入力された入力画像の画素値を、非線形性を有する所定の関数を用いて前記画素値のビット数より低いビット数に変換する前処理工程と、前記前処理工程により変換されたデータを入力とし、ノイズ成分の抽出及び前記非線形性を有する所定の関数の逆関数を用いた変換についての推論を行う推論工程と、前記入力画像から推論された前記ノイズ成分を減算することにより前記入力画像より高画質な出力画像を生成する後処理工程とを有する推論方法である。
【発明の効果】
【0019】
本発明によれば、機械学習を用いて低品質画像を高品質画像に画像処理する際における精度及び効率を向上させることができる。
【図面の簡単な説明】
【0020】
【
図1】実施形態に係る画像処理システムの機能構成の一例を示すブロック図である。
【
図2】実施形態に係る処理部の機能ブロックについて説明するための図である。
【
図3】実施形態に係る前処理部に入力されるデータと前処理部が出力するデータの一例を示す図である。
【
図4】実施形態に係る前処理部が変換に用いる関数の第1の例を示す図である。
【
図5】実施形態に係る前処理部が変換に用いる関数の第2の例を示す図である。
【
図6】実施形態に係るネットワーク部が有するスキップコネクションについて説明するための図である。
【
図7】実施形態に係るネットワーク部が有する演算ブロックの機能構成の一例を示すブロック図である。
【
図8】実施形態に係る活性化関数の一例を示す図である。
【
図9】実施形態に係る学習段階における処理の第1の例を示すフローチャートである。
【
図10】実施形態に係る推論段階における処理の第1の例を示すフローチャートである。
【
図11】実施形態に係る学習段階における処理の第2の例を示すフローチャートである。
【
図12】実施形態に係る推論段階における処理の第2の例を示すフローチャートである。
【
図13】実施形態に係る画像処理装置、学習装置及び推論装置の内部構成の一例を示すブロック図である。
【発明を実施するための形態】
【0021】
[実施形態]
以下、本発明の態様に係る画像処理装置、学習方法及び推論方法について、好適な実施の形態を掲げ、添付の図面を参照しながら詳細に説明する。なお、本発明の態様は、これらの実施の形態に限定されるものではなく、多様な変更または改良を加えたものも含まれる。つまり、以下に記載した構成要素には、当業者が容易に想定できるもの、実質的に同一のものが含まれ、以下に記載した構成要素は適宜組み合わせることが可能である。また、本発明の要旨を逸脱しない範囲で構成要素の種々の省略、置換または変更を行うことができる。また、以下の図面においては、各構成をわかりやすくするために、各構造における縮尺および数等を、実際の構造における縮尺および数等と異ならせる場合がある。
【0022】
まず、本実施形態の前提となる事項について説明する。本実施形態に係る画像処理装置、学習方法及び推論方法は、IoT(Internet of Things)機器等の組み込み機器に用いられる。IoT機器の一例としては、画像又は動画像を撮像するエッジデバイスであるカメラを例示することができる。本実施形態に係る画像処理装置、学習方法及び推論方法は、エッジデバイスに適用されるため、処理の軽量化及び高速化が求められる。カメラ等のエッジデバイスは、画像認識や物体検知等の機能を有していてもよい。なお、本実施形態はこの一例に限定されず、ネットワークを介して接続された複数の装置により実現されてもよい。
【0023】
本実施形態に係る画像処理装置、学習方法及び推論方法を用いて高品質化された画像は、鑑賞用に用いられてもよい。また、本実施形態に係る画像処理装置、学習方法及び推論方法を用いて高品質化された画像に基づき物体検知が行われてもよい。この場合、低品質画像に基づき物体検知を行う場合と比べ、より精度よく物体検知を行うことができる。
【0024】
図1は、実施形態に係る画像処理システムの機能構成の一例を示すブロック図である。同図を参照しながら、画像処理システム1の機能構成の一例について説明する。画像処理システム1は、イメージセンサ10と、処理部20と、ISP30と、メモリ40とを備える。
【0025】
イメージセンサ10は、入射する光の強度に応じた電気信号を画素単位で出力する。すなわちイメージセンサ10は、光学系によって結像された被写体の像を光電変換する。イメージセンサ10は、具体的には、CCDイメージセンサやCMOSイメージセンサ等を含んで構成される。イメージセンサ10は、撮像された被写体の像を示す第1画像51を出力する。第1画像51とは、具体的にはRAW形式のデジタル画像信号(以下、RAW画像データと記載する。)であってもよい。イメージセンサ10により出力されるRAW画像データは、例えば各画素の画素値が12[bit(ビット)]又は14[bit]で表されたデータであってもよい。本実施形態における画素値においてビットで表現される場合、データに含まれる有効な情報量をビット値で表した場合を含んでもよい。つまり、本来として12[bit]又は14[bit]で表されたデータを、一部の演算においてビットシフト等の処理を行うことで16[bit(ビット)]とした場合であっても、本実施形態においては12[bit]又は14[bit]と表すようにしてもよい。
【0026】
処理部20は、イメージセンサ10から出力された第1画像51を取得する。処理部20は、第1画像51に対して所定の処理を行う。処理部20により行われる処理とは、具体的には低品質画像を高品質画像へ変換する処理(ノイズ低減処理)であってもよい。処理部20は、処理を行った結果として得られた第2画像52を出力する。第2画像52とは、すなわちイメージセンサ10により撮像された画像からノイズが除去された高品質画像である。
【0027】
ISP(Image Signal Processor)30は、処理部20から出力された第2画像52を取得する。ISP30は、第2画像52に対して所定の処理を行う。ISP30により行われる所定の処理とは、例えば黒レベル調整、HDR(High Dynamic Range)合成、露光調整、画素欠陥補正、シェーディング補正、デモザイク、ホワイトバランス調整、色補正、ガンマ補正等であってもよい。ISP30は、処理を行った結果として得られた第3画像53を出力する。第3画像53とは、すなわち第2画像52に対して更に高品質化処理が行われた高品質画像である。
【0028】
メモリ40は、不揮発性のROM(Read only memory)又は揮発性のRAM(Random access memory)等の記憶装置を含む。メモリ40は、ISP30から出力された第3画像53を取得する。メモリ40は、取得した第3画像53を記憶する。メモリ40により記憶された第3画像53は、不図示のCPU(Central Processing Unit)等により所定の処理が行われる。所定の処理とは、表示部への表示や、外部機器への出力等であってもよい。
【0029】
図2は、実施形態に係る処理部の機能ブロックについて説明するための図である。同図を参照しながら、処理部20が備える各機能ブロックの詳細について説明する。以降の説明において、処理部20が備える構成を有する装置について、画像処理装置と記載する場合がある。処理部20は、前処理部21と、ネットワーク部22と、後処理部23とを備える。前処理部21と、ネットワーク部22と、後処理部23とは、直列に接続される。前処理部21には、イメージセンサ10から出力された第1画像51が入力される。また、前処理部21に入力される第1画像51は、後処理部23にも入力される。イメージセンサ10から出力された第1画像51が前処理部21及びネットワーク部22を飛ばして(スキップして)後処理部23に入力されるパスをグローバルスキップコネクションGSCとして図示する。
【0030】
図3は、実施形態に係る前処理部に入力されるデータと前処理部が出力するデータの一例を示す図である。同図を参照しながら、前処理部21の入出力データについて説明する。前処理部21には、イメージセンサ10から出力された第1画像51が入力される。図示するように、第1画像51は、それぞれの画素値が12[bit]又は14[bit]で表されたデータである。前処理部21は、それぞれの画素値を8[bit]に変換する処理を行う。図示するように、前処理部21は、変換した結果である8[bit]のデータを後段に出力する。前処理部21は、8[bit]のデータに変換する際、所定の関数を用いて変換することが好適である。なお、本実施形態においては、前処理部21における画素値の変換として8[bit]である場合を例示しているが、これに限られるものではなく、例えば4[bit]や2[bit]などより小さいビット値へ変換するようにしてもよい。
【0031】
図4は、実施形態に係る前処理部が変換に用いる関数の第1の例を示す図である。同図を参照しながら、前処理部21が変換に用いる関数の第1の例について説明する。同図の横軸は変換前の画素値(14[bit])を示し、縦軸は変換後の画素値(8[bit])を示す。前処理部21は、各画素値について図示するような関数を適用することにより変換を行う。具体的には、前処理部21は、変換前の画素値が、x1である場合y1に変換し、x2である場合y2に変換し、x3である場合y3に変換する。
【0032】
横軸(変換前の画素値)をx、縦軸(変換後の画素値)の初期値をy0とすると、図示する関数は、具体的にはy=x^γ―y0(γ<1)により表される。図示するように、前処理部21が変換に用いる関数は、非線形性を有することが好適である。すなわち、前処理部21は、入力された入力画像(第1画像51)の画素値を、非線形性を有する所定の関数を用いて入力画像の画素値のビット数より低いビット数に変換するということもできる。図示するように、前処理部21が変換に用いる関数によれば、入力の信号値が低い領域(すなわち、画像として暗い領域)において、変換後に多くのビット値が割り当てられる。この関数はISP30が行うガンマ処理において用いられる非線形処理に相当する。
【0033】
図示する一例において、縦軸の範囲は-128から+127を示している。しかしながら本実施形態に係る関数はこの一例に限定されず、縦軸の範囲を任意に変更することができる。また、図示する一例では、入力された1つの画素値と所定の関数に基づき1つの画素値に変換しているが、複数の関数に基づき複数の画素値に変換してもよい。当該複数の画素値は、ベクトルの形で表現される。すなわち前処理部21は、入力された画像と複数の関数に基づき、ベクトル化された出力値を生成してもよい。
【0034】
また、前処理部21がビット数の変換に用いる所定の関数は、予め決定されていてもよいし、複数の関数の候補のうち選択により切り替え可能なよう構成されていてもよい。関数の切り替えは、例えばISP30がガンマ処理に用いるガンマ関数(ガンマカーブ)を切り替えるタイミングで行われてもよい。すなわち、前処理部21がビット数の変換に用いる所定の関数は、ISP30により行われる入力画像のガンマ処理に用いられるガンマ関数に応じて決定されてもよい。
【0035】
図5は、実施形態に係る前処理部が変換に用いる関数の第2の例を示す図である。同図を参照しながら、前処理部21が変換に用いる関数の第2の例について説明する。同図の横軸は変換前の画素値(14[bit])を示し、縦軸は変換後の画素値(8[bit])を示す。第2の例における関数は、第1の例における関数を、複数の線形関数(図示する一例では直線L1、直線L2及び直線L3)により近似したものである。すなわち、前処理部21が変換に用いる関数は、線形性を有する複数の関数から構成される区分線形関数であるということもできる。換言すれば、前処理部21が変換に用いる非線形性を有する所定の関数の代わりとして、線形性を有する複数の関数で近似するように構成されるということもできる。
【0036】
第2の例における関数についても、第1の例における関数と同様に、14[bit]のデータを8[bit]に変換するものである。また、第2の例における関数についても、第1の例における関数と同様に、入力の信号値が低い領域(すなわち、画像として暗い領域)において、変換後に多くのビット値が割り当てられるものである。なお、図示する一例では、第2の例における関数が線形性を有する3つの関数から構成される区分線形関数である場合の一例について説明したが、当該関数は3つ以上の関数から構成されるものであってもよいし、非線形関数が組み合わされたものであってもよい。
【0037】
図2に戻り、ネットワーク部22の詳細について説明する。ネットワーク部22は、前処理部21により変換された8[bit]のデータを入力とし、畳み込み演算を行う。ネットワーク部22は、複数の演算ブロック220を有するニューラルネットワーク(CNN:Convolutional Neural Network)である。図示する一例では、ネットワーク部22は、演算ブロック220-1乃至演算ブロック220-7を有する。演算ブロック220-1乃至演算ブロック220-7は、互いに連結される。演算ブロック220は、それぞれ、入力層、畳み込み層、プーリング層、サンプリング層及び出力層等を備える。演算ブロック220は、少なくとも畳み込み層を含む。それぞれの演算ブロック220では、畳み込み演算(又は逆畳み込み演算)を行った後の演算結果のデータを16[bit]のデータとし、量子化演算を行うことにより16[bit]のデータを8[bit]のデータに変換する。
【0038】
ネットワーク部22は、具体的にはU-Net構造を有する。U-Netによれば、図示するように、左右対称のエンコーダ(Encoder)-デコーダ(Decoder)構造を有している。図中左側から中央下側に向かう複数の演算ブロック220は、畳み込み演算が行われた結果をプーリング処理するプーリング層を少なくとも含むエンコーダであり、ダウンサンプリングを行う。中央下側から図中右側に向かう複数の演算ブロック220は、畳み込み演算が行われた結果をアップサンプリングするアップサンプリング層を少なくとも含むデコーダであり、アップサンプリングを行う。エンコーダとデコーダとは対象構造を有するということもできるし、プーリング層とアップサンプリング層とは対象構造を有するということもできる。U-Netによれば、エンコーダにより生成された特徴マップを、デコーダの特徴マップに連結又は加算等させる。具体的には、エンコーダにより生成された特徴マップは、複製され(Copy)、切り出され(Crop)、デコーダの特徴マップに連結される(Concatenate)。デコーダの特徴マップへの連結は、単純加算であってもよい。エンコーダにより生成された特徴マップがデコーダの特徴マップに連結されるパスを、スキップコネクションSCとして図示する。換言すれば、エンコーダを構成する演算ブロック220と、デコーダを構成する演算ブロック220とは、スキップコネクションSCにより接続される。なお、ネットワーク部22はU-NET構造以外の構造を備えてもよい。異なる例として、Visual Transformer構造を備えてもよい。
【0039】
図6は、実施形態に係るネットワーク部が有するスキップコネクションについて説明するための図である。同図を参照しながら、一般化されたスキップコネクションについて説明する。図示するように、入力(x)は、出力まで演算をスキップし、各レイヤの演算結果(図示する一例では、F(x))と足しこまれる。各レイヤ間にこのようなスキップコネクションSCを追加することにより、勾配消失に強いという特徴を得ることができる。
【0040】
図7は、実施形態に係るネットワーク部が有する演算ブロックの機能構成の一例を示すブロック図である。同図を参照しながら、ネットワーク部22が有する演算ブロック220の機能構成の一例について説明する。なお、同図に示す機能構成は一例であり、ネットワーク部22が有する複数の演算ブロック220毎に異なっていてもよい。演算ブロック220は、BN層221と、PReLU層222と、Scale層223と、量子化層224と、畳み込み層225と、プーリング層/アップサンプリング層226とを備える。BN層221には前段の演算ブロック220の出力データが入力され、プーリング層/アップサンプリング層226から出力されたデータは後段に入力される。また、前処理部21からの入力は、畳み込み層225に入力される。
【0041】
BN(Batch Normalization)層221には、16[bit]のデータが入力される。BN層221は、入力されたデータに対してデータ分布の正規化を行う。正規化処理には、所定の数式が用いられてもよい。BN層221は、例えばバッチ内における各要素の値の平均が0になり、各要素の値の分散が1になるように、要素毎に定数の加算(add)及び定数の乗算(multiply)を行う。図示する一例では、定数を加算した後に乗算しているが、加算と乗算の順序を逆にしてもよい(すなわち乗算した後に加算してもよい)。加算に用いられる定数及び乗算に用いられる定数は、それぞれ浮動小数点型の32[bit]又は16[bit]の値であってもよい。BN層221は、浮動小数点型の32[bit]又は16[bit]のデータを後段に出力する。
【0042】
PReLU層222には、浮動小数点型の32[bit]又は16[bit]のデータが入力される。PReLU層222は、入力されたデータに対して活性化関数の演算を行う。
【0043】
図8は、実施形態に係る活性化関数の一例を示す図である。同図を参照しながら、活性化関数の一例について説明する。横軸は入力(x)を示し、縦軸は出力(y)を示す。図示する一例では、x<0の範囲においてy=px、x>0の範囲においてy=pxである。なお、活性化関数をPReLU(Parametric Rectified Linear Unit)としているが、活性化関数は、ReLU(Rectified Linear Unit)又はIdentity(素通し)であってもよい。PReLUにおいてslope(p)を0にするとReLUになり、slope(p)を1にするとIdentityになる。slope(p)の範囲は、0から1の実数値(浮動小数点型の32[bit]又は16[bit])であってもよい。
【0044】
なお、ネットワーク部22がFPGA(Field Programmable Gate Array)やASIC(Application Specific Integrated Circuit)等のハードウェアに実装される場合、活性化関数(すなわちPReLU層222)は、BN層221を含むものであってもよい。また、活性化関数(すなわちPReLU層222)は、更に量子化処理を含むものであってもよい。
【0045】
図7に戻りScale層223には、浮動小数点型の32[bit]又は16[bit]のデータが入力される。Scale層223は、スケール処理を行う。スケール処理とは、正規化されたデータを元に戻す処理(Batch Normalizationの逆の処理)である。Scale層223は、BN層221と同様に定数の加算(add)及び定数の乗算(multiply)を行う。図示する一例では、定数を加算した後に乗算しているが、加算と乗算の順序を逆にしてもよい(すなわち乗算した後に加算してもよい)。加算に用いられる定数及び乗算に用いられる定数は、それぞれ浮動小数点型の32[bit]又は16[bit]の値であってもよい。Scale層223は、浮動小数点型の32[bit]又は16[bit]のデータを後段に出力する。
【0046】
本実施形態に係る演算ブロック220によれば、PReLU層222の前にはBN層221が存在し、PReLU層222の後にはScale層223が存在する。換言すれば、活性化関数の演算が行われる前にデータ分布の正規化処理(エンコード)が行われ、活性化関数の演算が行われた後に所定の関数を用いて元に戻す処理(デコード)が行われる。これらの処理が行われた後、後述する畳み込み演算が行われる。すなわち本実施形態に係るネットワーク部22は、データ分布の正規化を行うバッチノーマライゼーション処理を行い、活性化関数の演算を行い、所定の関数を乗じるスケール処理を行った後、畳み込み演算を行う。
【0047】
量子化層224には、浮動小数点型の32[bit]又は16[bit]のデータが入力される。量子化層224は、入力された16[bit]以上のデータを、低ビット(例えば8[bit]以下)に量子化する。ここで、前処理部21からの出力は畳み込み層225に入力されるため、量子化層224に入力されるデータは、少なくとも1度畳み込み演算が行われた結果であるということができる。すなわち、量子化層224は、畳み込み演算を行った結果として得られた16[bit]以上のデータを低ビット(例えば8[bit]以下)に量子化するということができる。量子化層224により行われる量子化処理は、(1)複数閾値との比較、又は(2)所定の関数を用いた変換のいずれかの方法により行われてもよい。なお、本実施形態に係る量子化処理は、この一例に限定されるものではなく、その他の量子化方法により量子化されてもよい。量子化層224は、量子化処理を行った結果、整数型の8[bit]のデータを後段に出力する。
【0048】
畳み込み層225には、整数型の8[bit]のデータが入力される。畳み込み層225は、入力されたデータについての畳み込み演算を行う。具体的には、畳み込み層225は、入力されたデータに対して重みを用いた畳み込み演算を行う。具体的には、畳み込み層225は、入力データと重みとを入力とする積和演算を行う。畳み込み層225の重み(フィルタ、カーネル)は、学習可能なパラメータである要素を有する多次元データであってもよい。畳み込み層225の重みは、低ビット(例えば、1ビットの符号付き整数(すなわち-1、1)であってもよい)であってもよい。畳み込み層225は、畳み込み演算を行った結果、整数型の16[bit]のデータを後段に出力する。
【0049】
プーリング層/アップサンプリング層226には、整数型の16[bit]のデータが入力される。プーリング層/アップサンプリング層226は、プーリング(ダウンサンプリング)又はアップサンプリング(アップコンボリューション又はデコンボリューション)を行う。プーリング層/アップサンプリング層226は、エンコーダにおいてプーリング層であり、デコーダにおいてアップサンプリング層である。プーリング層/アップサンプリング層226は、プーリング処理(又はアップサンプリング処理)を行った結果、整数型の16[bit]のデータを後段に出力する。なお、畳み込み層225及びプーリング層/アップサンプリング層226の演算またはこれら出力は整数型の16[bit]ではなくてもよく、例えば固定少数点でもよい。
【0050】
図2に戻り、後処理部23の詳細について説明する。後処理部23には、ネットワーク部22により畳み込み演算が行われた結果と、前処理部に入力された画像(第1画像51)とが入力される。ネットワーク部22により畳み込み演算が行われた結果とは、すなわち、第1画像51に含まれるノイズ成分についての情報が含まれる。言い換えれば、ネットワーク部22は第1画像51に含まれるノイズ成分を抽出するように事前に学習されている。後処理部23は、第1画像51からノイズ成分を減算することにより高画質な画像を生成する。すなわち後処理部23は、ネットワーク部22により畳み込み演算が行われた結果と、前処理部21に入力された画像に基づき、前処理部21に入力された画像より高画質な画像を生成する。
【0051】
ここで、ネットワーク部22は、前処理部21により非線形性を有する所定の関数を用いて低ビットに変換された値に基づいて、処理を行う。後処理部23は、第1画像51からノイズ成分を減算する処理の前に、ネットワーク部22の出力を非線形値から線形値に変形する処理を行ってもよい。当該変換処理には、
図4又は
図5に示した関数の逆関数が用いられてもよい。
【0052】
なお、ネットワーク部22は、当該変換処理を含めて学習及び推論を行ってもよい。この場合、後処理部23による非線形値から線形値に変換する処理を省略することが可能である。
【0053】
次に、
図9から
図12を参照しながら、本実施形態に係る画像処理システム1の学習段階及び推論段階における一連の動作の一例について説明する。まず、
図9及び
図10を参照しながら、第1の例について説明する。第1の例では、後処理において非線形値から線形値への変換処理を前提として学習を行う。そのため第1の例では、後処理において非線形値から線形値への変換処理を要する。
【0054】
図9は、実施形態に係る学習段階における処理の第1の例を示すフローチャートである。同図を参照しながら、画像処理システム1の学習段階における処理の第1の例について説明する。
【0055】
(ステップS11)まず、前処理部21は、教師データとなる画像であって、イメージセンサ10から出力されたRAW画像について前処理を行う。教師データは、一対の高品質画像と低品質画像とを含む。一対の高品質画像と低品質画像とは、同一の対象が撮像された画像であり、低品質画像にはノイズが重畳されている。低品質画像は、高品質画像と同一の被写体を異なる設定により撮像したものであってもよく、高品質画像を画像処理することにより生成されたものであってもよい。教師データに含まれる高品質画像及び低品質画像は、いずれも12[bit]又は14[bit]のRAW画像である。前処理部21は、具体的には、教師データに含まれる一対の高画質画像及び低画質画像それぞれの画素値を、非線形性を有する所定の関数を用いて、低ビットのデータに変換する。教師データに含まれる画像の画素値が12[bit]又は14[bit]であるとすると、前処理部21は、教師データに含まれる画像の画素値のビット数より低いビット数である8[bit]のデータに変換する。前処理部21により行われる工程を前処理工程と記載する場合もある。
【0056】
(ステップS13)次に、前処理工程により変換されたデータは、ネットワーク部22に入力される。ネットワーク部22は、前処理工程により変換されたデータに基づき、学習を行う。ネットワーク部22により学習が行われる工程を学習工程と記載する場合がある。学習工程では、前処理工程により変換されたデータを入力とし、低画質画像に重畳されたノイズ成分の抽出についての学習を行う。ここで、第1の例による学習工程では、前処理工程において非線形性を有する所定の関数を用いた変換が行われたデータに基づき学習が行われている。すなわち、第1の例による推論段階では、ネットワーク部22による推論の後、非線形性を解消するための変換を行うことを要する。非線形性を解消するための変換とは、具体的には、前処理工程において用いられた非線形性を有する所定の関数の逆関数を用いた変換であってもよい。なお、第1の例における学習工程において、前処理工程も学習の対象として含んでもよい。一例として、前処理工程における非線形性を有する所定の関数の係数や定数等のパラメータを学習するようにしてもよい。
【0057】
図10は、実施形態に係る推論段階における処理の第1の例を示すフローチャートである。同図を参照しながら、画像処理システム1の推論段階における処理の第1の例について説明する。
【0058】
(ステップS21)まず、前処理部21は、画像処理の対象となる画像であって、イメージセンサ10から出力されたRAW画像について前処理を行う。画像処理の対象となる画像は、ノイズが重畳された低品質画像であることが好適である。画像処理の対象となる画像は、12[bit]又は14[bit]のRAW画像である。前処理部21は、具体的には、画像処理の対象となる画像の画素値を、非線形性を有する所定の関数を用いて、低ビットのデータに変換する。画像処理の対象となる画像の画素値が12[bit]又は14[bit]であるとすると、前処理部21は、画像処理の対象となる画像の画素値のビット数より低いビット数である8[bit]のデータに変換する。
【0059】
(ステップS23)次に、前処理工程により変換されたデータを入力とし、ステップS13において生成された学習モデルを用いて、ノイズ成分の推論を行う。ノイズ成分の推論を行う工程を、推論工程と記載する場合がある。前処理工程により変換されたデータは、ネットワーク部22に入力され、ネットワーク部22は、ノイズ成分の推論結果を後処理部23に出力する。
【0060】
(ステップS25)次に、後処理部23は、推論工程により推論されたノイズ成分について、非線形性を有する所定の関数の逆関数を用いて非線形性を解消する処理を行う。非線形性を有する所定の関数の逆関数とは、すなわちステップS21において用いられた関数の逆関数であってもよい。
【0061】
(ステップS27)次に、画像処理の対象となる入力画像は、グローバルスキップコネクションGSCにより、後処理部23に入力される。後処理部23は、非線形性が解消されたノイズ成分を、画像処理の対象となる入力画像(すなわちノイズが重畳された低品質画像)から減算することにより、低品質画像からノイズを除去し、入力画像より高品質(高画質)な出力画像を生成する。なお、ステップS25及びステップS27により行われる工程を、後処理工程と記載する場合がある。
【0062】
次に、
図11及び
図12を参照しながら、第2の例について説明する。第2の例では、非線形値から線形値への変換処理を含めた学習を行う。そのため第2の例では、後処理において非線形値から線形値への変換処理を要しない。
【0063】
図11は、実施形態に係る学習段階における処理の第2の例を示すフローチャートである。同図を参照しながら、画像処理システム1の学習段階における処理の第2の例について説明する。
【0064】
(ステップS31)まず、前処理部21は、教師データとなる画像であって、イメージセンサ10から出力されたRAW画像について前処理を行う。教師データは、一対の高品質画像と低品質画像とを含む。一対の高品質画像と低品質画像とは、同一の対象が撮像された画像であり、低品質画像にはノイズが重畳されている。低品質画像は、高品質画像と同一の被写体を異なる設定により撮像したものであってもよく、高品質画像を画像処理することにより生成されたものであってもよい。教師データに含まれる高品質画像及び低品質画像は、いずれも12[bit]又は14[bit]のRAW画像である。前処理部21は、具体的には、教師データに含まれる一対の高画質画像及び低画質画像それぞれの画素値を、非線形性を有する所定の関数を用いて、低ビットのデータに変換する。教師データに含まれる画像の画素値が12[bit]又は14[bit]であるとすると、前処理部21は、教師データに含まれる画像の画素値のビット数より低いビット数である8[bit]のデータに変換する。
【0065】
(ステップS33)次に、前処理工程により変換されたデータは、ネットワーク部22に入力され、学習工程が行われる。学習工程では、前処理工程により変換されたデータを入力とし、低画質画像に重畳されたノイズ成分の抽出についての学習を行う。また、第2の例における学習工程では、更に非線形性を有する所定の関数の逆関数を用いた変換についての学習を行う。すなわち、第2の例による推論段階では、非線形性を解消するための変換についても含んで学習を行うため、後処理工程における非線形性の解消処理を要しない。なお、第2の例における学習工程において、前処理工程も学習の対象として含んでもよい。一例として、前処理工程における非線形性を有する所定の関数の係数や定数等のパラメータを学習するようにしてもよい。
【0066】
図12は、実施形態に係る推論段階における処理の第2の例を示すフローチャートである。同図を参照しながら、画像処理システム1の推論段階における処理の第2の例について説明する。
【0067】
(ステップS41)まず、前処理部21は、画像処理の対象となる画像であって、イメージセンサ10から出力されたRAW画像について前処理を行う。画像処理の対象となる画像は、ノイズが重畳された低品質画像であることが好適である。画像処理の対象となる画像は、12[bit]又は14[bit]のRAW画像である。前処理部21は、具体的には、画像処理の対象となる画像の画素値を、非線形性を有する所定の関数を用いて、低ビットのデータに変換する。画像処理の対象となる画像の画素値が12[bit]又は14[bit]であるとすると、前処理部21は、画像処理の対象となる画像の画素値のビット数より低いビット数である8[bit]のデータに変換する。
【0068】
(ステップS43)次に、前処理工程により変換されたデータを入力とし、ステップS33において生成された学習モデルを用いて、ノイズ成分の推論を行う。ステップS33において生成された学習モデルは、非線形性を解消するための変換についても含んで学習が行われているため、第2の例における推論工程において出力される推論結果は、既に非線形性を解消するための変換が行われた後のものであるということができる。前処理工程により変換されたデータは、ネットワーク部22に入力され、ネットワーク部22は、ノイズ成分の推論結果を後処理部23に出力する。
【0069】
(ステップS45)次に、画像処理の対象となる入力画像は、グローバルスキップコネクションGSCにより、後処理部23に入力される。後処理部23は、ネットワーク部22から出力されたノイズ成分の推論結果を、画像処理の対象となる入力画像(すなわちノイズが重畳された低品質画像)から減算することにより、低品質画像からノイズを除去し、入力画像より高品質(高画質)な出力画像を生成する。なお、第2の例においては、ステップS45が後処理工程に該当する。
【0070】
図13は、本実施形態に係る画像処理装置、学習装置及び推論装置の内部構成の一例を示すブロック図である。画像処理装置、学習装置及び推論装置の少なくとも一部の機能は、コンピュータを用いて実現され得る。図示するように、そのコンピュータは、中央処理装置901と、RAM902と、入出力ポート903と、入出力デバイス904や905等と、バス906と、を含んで構成される。コンピュータ自体は、既存技術を用いて実現可能である。中央処理装置901は、RAM902等から読み込んだプログラムに含まれる命令を実行する。中央処理装置901は、各命令にしたがって、RAM902にデータを書き込んだり、RAM902からデータを読み出したり、算術演算や論理演算を行ったりする。RAM902は、データやプログラムを記憶する。RAM902に含まれる各要素は、アドレスを持ち、アドレスを用いてアクセスされ得るものである。入出力ポート903は、中央処理装置901が外部の入出力デバイス等とデータのやり取りを行うためのポートである。入出力デバイス904や905は、入出力デバイスである。入出力デバイス904や905は、入出力ポート903を介して中央処理装置901との間でデータをやりとりする。バス906は、コンピュータ内部で使用される共通の通信路である。例えば、中央処理装置901は、バス906を介してRAM902のデータを読んだり書いたりする。また、例えば、中央処理装置901は、バス906を介して入出力ポートにアクセスする。画像処理装置、学習装置及び推論装置が備える各機能部の全てまたは一部は、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)又はFPGA(Field-Programmable Gate Array)等のハードウェアを用いて実現されてもよい。
【0071】
[本実施形態のまとめ]
以上説明した実施形態によれば、画像処理装置は、前処理部21を備えることにより、入力された入力画像の画素値を、非線形性を有する所定の関数を用いて、入力画像の画素値のビット数より低いビット数に変換する。また、画像処理装置は、ネットワーク部22を備えることにより、前処理部21により変換されたデータを入力とし、畳み込み演算を行う。すなわち、本実施形態に係る画像処理装置によれば、入力画像を非線形に変換してネットワークに入力する。ここで、CMOSセンサ等のイメージセンサ10により取得された画像データは、入力(光量)に対して線形な特性を有する。画像処理装置は、非線形性を有する所定の関数を用いた変換を行うことにより、入力の信号値が低い領域(すなわち、画像として暗い領域)において、多くのビット値を割り当てることができる。画像として暗い領域では、ノイズが発生しやすく、より精度の良い処理が求められる。本実施形態に係る画像処理装置によれば、非線形性を有する所定の関数を用いた変換を行うことにより、画像として暗い領域において多くのビット値を割り当てるため、精度よくノイズ成分を抽出することができる。また、本実施形態に係る画像処理装置によれば、ネットワークの前段における前処理において低ビットに変換するため、効率よく処理を行うことができる。したがって、本実施形態に係る画像処理装置がエッジデバイスに組み込まれた場合であっても、効率よく動作させることができる。よって、本実施形態に係る画像処理装置によれば、機械学習を用いて低品質画像を高品質画像に画像処理する際における精度及び効率を向上させることが可能となる。
【0072】
また、以上説明した実施形態によれば、ネットワーク部22は、畳み込み演算が行われた結果をプーリング処理するプーリング層と、プーリング層と対象構造を有し畳み込み演算が行われた結果をアップサンプリングするアップサンプリング層とを含み、スキップコネクションで接続されたU-Net構造を有する。本実施形態に係る画像処理装置によれば、U-Net構造を採用するため、勾配消失に強く、効率よく学習及び推論を行うことができる。
【0073】
また、以上説明した実施形態によれば、画像処理装置は、前処理部21とグローバルスキップコネクションGSCにより接続された後処理部23を更に備える。画像処理装置は、後処理部23を更に備えることにより、ネットワーク部22により畳み込み演算が行われた結果と、前処理部21に入力された画像とに基づき、前処理部21に入力された画像より高画質な画像を生成する。したがって、本実施形態に係る画像処理装置によれば、抽出したノイズ成分を、元の入力画像から減算することにより、容易に高画質な画像を生成することができる。
【0074】
また、以上説明した実施形態によれば、前処理部21が変換に用いる非線形性を有する所定の関数は、線形性を有する複数の関数から構成される。すなわち、変換に用いる関数は、複数の直線の組み合わせであるということができる。したがって、本実施形態に係る画像処理装置によれば、演算処理を軽量化することができる。よって、本実施形態に係る画像処理装置によれば、機械学習を用いて低品質画像を高品質画像に画像処理する際における効率を向上させることが可能となる。
【0075】
また、以上説明した実施形態によれば、前処理部21がビット数の変換に用いる所定の関数は、ISP30において入力画像のガンマ処理に用いられるガンマ関数に応じて決定される(切り替わる)。すなわち、本実施形態に係る画像処理装置によれば、ISP30において入力画像のガンマ処理に用いられるガンマ関数に応じた関数を用いて前処理を行うことにより、ガンマ処理を考慮してノイズ成分を抽出する。したがって、本実施形態に係る画像処理装置によれば、精度よくノイズ成分を抽出することができる。よって、本実施形態に係る画像処理装置によれば、機械学習を用いて低品質画像を高品質画像に画像処理する際における精度を向上させることが可能となる。
【0076】
また、以上説明した実施形態によれば、ネットワーク部22は、データ分布の正規化を行うバッチノーマライゼーション処理を行い、活性化関数の演算を行い、所定の関数を乗じるスケール処理を行った後、畳み込み演算を行う。換言すれば、ネットワーク部22が行う活性化関数の演算の前後において、バッチノーマライゼーション処理とスケール処理とが行われる。本実施形態に係る画像処理装置によれば、正規化が行われたデータに基づいて活性化関数の演算を行うことにより、ノイズ成分の抽出についての精度を上げることができる。よって、本実施形態に係る画像処理装置によれば、機械学習を用いて低品質画像を高品質画像に画像処理する際における精度を向上させることが可能となる。
【0077】
また、以上説明した実施形態によれば、ネットワーク部22は、畳み込み演算を行った結果として16ビット以上のデータに変換し、畳み込み演算を行った結果として得られた16ビット以上のデータを8ビット以下に量子化する。すなわち、ネットワーク部22は、畳み込み演算と量子化を繰り返すことによりノイズ成分を抽出する。よって、本実施形態に係る画像処理装置によれば、機械学習を用いて低品質画像を高品質画像に画像処理する際における精度及び効率を向上させることが可能となる。
【0078】
また、以上説明した実施形態によれば、ネットワーク部22は、(1)複数閾値との比較、又は(2)所定の関数を用いた変換のいずれかの方法により、畳み込み演算を行った結果として得られた16ビット以上のデータを8ビット以下に量子化する。したがって、本実施形態に係る画像処理装置によれば、容易に量子化を行うことができる。よって、本実施形態に係る画像処理装置によれば、機械学習を用いて低品質画像を高品質画像に画像処理する際における効率を向上させることが可能となる。
【0079】
また、以上説明した実施形態によれば、前処理部21は、画素値を8ビットのデータに変換し、ネットワーク部22は、前処理部21により変換された8ビットのデータを入力とし、畳み込み演算を行う。すなわち、本実施形態に係る画像処理装置によれば、ネットワーク部22には、入力画像より低ビットのデータが入力される。したがって、本実施形態に係る画像処理装置によれば、ネットワーク部22を軽量化することができる。よって、本実施形態に係る画像処理装置によれば、機械学習を用いて低品質画像を高品質画像に画像処理する際における効率を向上させることが可能となる。
【0080】
また、以上説明した実施形態によれば、本実施形態に係る学習方法は、前処理工程を有することにより、教師データに含まれる一対の高画質画像及び低画質画像それぞれの画素値を、非線形性を有する所定の関数を用いて教師データに含まれる画像の画素値のビット数より低いビット数に変換する。また、本実施形態に係る学習方法は、学習工程を有することにより、前処理工程により変換されたデータを入力とし、低画質画像に重畳されたノイズ成分の抽出についての学習を行う。すなわち、本実施形態に係る学習方法によれば、後処理工程における非線形性の解消処理を前提として学習を行う。したがって、本実施形態に係る学習方法によれば、ネットワーク部22の処理を軽量化することができる。よって、本実施形態に係る学習方法によれば、機械学習を用いて低品質画像を高品質画像に画像処理する際における効率を向上させることが可能となる。
【0081】
また、以上説明した実施形態によれば、本実施形態に係る推論方法は、前処理工程を有することにより、入力された入力画像の画素値を、非線形性を有する所定の関数を用いて、入力画像の画素値のビット数より低いビット数に変換する。また、本実施形態に係る推論方法は、推論工程を有することにより、前処理工程により変換されたデータを入力とし、ノイズ成分の抽出についての推論を行う。また、本実施形態に係る推論方法は、後処理工程を有することにより、推論されたノイズ成分について非線形性を有する所定の関数の逆関数を用いて非線形性を解消する処理を行い、非線形性が解消されたノイズ成分を入力画像から減算することにより入力画像より高画質な出力画像を生成する。すなわち、本実施形態に係る学習方法によれば、後処理工程における非線形性の解消処理を前提として推論を行う。したがって、本実施形態に係る推論方法によれば、ネットワーク部22の処理を軽量化することができる。よって、本実施形態に係る推論方法によれば、機械学習を用いて低品質画像を高品質画像に画像処理する際における効率を向上させることが可能となる。
【0082】
また、以上説明した実施形態によれば、本実施形態に係る学習方法は、前処理工程を有することにより、教師データに含まれる一対の高画質画像及び低画質画像それぞれの画素値を、非線形性を有する所定の関数を用いて、教師データに含まれる画像の画素値のビット数より低いビット数に変換する。また、本実施形態に係る学習方法は、学習工程を有することにより、前処理工程により変換されたデータを入力とし、低画質画像に重畳されたノイズ成分の抽出と、非線形性を有する所定の関数の逆関数を用いた変換についての学習を行う。すなわち本実施形態に係る学習方法によれば、非線形性を有する所定の関数の逆関数を用いた変換処理についても含めて学習を行う。したがって、本実施形態に係る学習方法によれば、後処理部23の処理を軽量化することができる。よって、本実施形態に係る学習方法によれば、機械学習を用いて低品質画像を高品質画像に画像処理する際における効率を向上させることが可能となる。
【0083】
また、以上説明した実施形態によれば、本実施形態に係る推論方法は、前処理工程を有することにより、入力された入力画像の画素値を、非線形性を有する所定の関数を用いて入力画像の画素値のビット数より低いビット数に変換する。また、本実施形態に係る推論方法は、推論工程を有することにより、前処理工程により変換されたデータを入力とし、ノイズ成分の抽出及び非線形性を有する所定の関数の逆関数を用いた変換についての推論を行う。また、本実施形態に係る推論方法は、後処理工程を有することにより、入力画像から推論されたノイズ成分を減算することにより入力画像より高画質な出力画像を生成する。すなわち、本実施形態に係る推論方法によれば、非線形性を有する所定の関数の逆関数を用いた変換処理についても含めて学習が行われた学習モデルを用いた推論を行う。したがって、本実施形態に係る推論方法によれば、後処理部23の処理を軽量化することができる。よって、本実施形態に係る推論方法によれば、機械学習を用いて低品質画像を高品質画像に画像処理する際における効率を向上させることが可能となる。
【0084】
なお、本実施形態に係る画像処理装置、学習装置及び推論装置の学習対象は、重み、量子化パラメータ、Batch Normalization処理、Scale処理等であってもよい。
【0085】
なお、上述した実施形態に係る画像処理装置、学習装置及び推論装置が備える各部の機能全体あるいはその一部は、これらの機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現しても良い。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。
【0086】
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD-ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶部のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでも良い。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
【0087】
以上、本発明を実施するための形態について実施形態を用いて説明したが、本発明はこうした実施形態に何ら限定されるものではなく、本発明の趣旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
【符号の説明】
【0088】
1…画像処理システム、10…イメージセンサ、20…処理部、21…前処理部、22…ネットワーク部、220…演算ブロック、221…BN層、222…PReLU層、223…Scale層、224…量子化層、225…畳み込み層、226…プーリング層/アップサンプリング層、23…後処理部、30…ISP、40…メモリ、51…第1画像、52…第2画像、53…第3画像、SC…スキップコネクション、GSC…グローバルスキップコネクション