(57)【要約】【課題】画像の学習として予め定められた画像容量を超える画像が入力された場合であっても、画像の学習を可能とする。【解決手段】画像入力部（２）で受け付けた入力画像の画像容量が、実行処理部（３）に予め定められた画像処理可能な第１画像容量を超える場合、画像分割部（３５）で第２画像容量の画像が第１画像容量以下のブロック単位画像に分割され、ブロック単位画像毎に、ブロック単位修復部（３６）で、ブロック単位で学習済みのブロック単位画像修復学習モデル（３７）を用いて修復され、修復されたブロック単位の画像が画像統合部（３８）で統合され、画像出力部（３４）で出力される。【選択図】図１
2020154605.tif 000002
【特許請求の範囲】
【請求項１】
画像処理部によって画像処理可能な予め定めた画像容量を超える画像容量の特定画像を、予め定めた画像容量以下の画像容量の複数のブロック画像に分割する画像分割部と、
前記複数のブロック画像毎に、前記画像処理部によって実行される予め定めた画像処理の学習を行う学習部と、
を備えた画像処理装置。
【請求項２】
前記学習部は、前記複数のブロック画像の各々について、前記特定画像におけるブロック位置に対応付けて学習を行う
請求項１に記載の画像処理装置。
【請求項３】
前記学習部は、敵対的生成ネットワークを用いて前記予め定めた画像処理を学習させることで生成された学習モデルを含む
請求項１又は請求項２に記載の画像処理装置。
【請求項４】
入力画像を、予め定めた画像容量以下の画像容量の複数のブロック画像に分割する入力画像分割部と、
請求項１から請求項３の何れか１項に記載の前記学習部によって、前記複数のブロック画像毎に、前記予め定めた画像処理を行うことを学習した学習モデルを用いて、前記入力画像について、前記複数のブロック画像単位で前記予め定めた画像処理を行ってブロック単位の画像を生成する画像生成部と、
を備えた画像処理装置。
【請求項５】
前記画像生成部によって生成された前記ブロック単位の画像の各々を統合する画像統合部、
を含む請求項４に記載の画像処理装置。
【請求項６】
前記画像統合部は、前記画像生成部によって生成された前記ブロック単位の画像の各々を、前記入力画像分割部によって分割された前記複数のブロック画像の順序に従って連結する
請求項５に記載の画像処理装置。
【請求項７】
前記入力画像分割部は、前記入力画像を、一部が重複するように複数のブロック画像に分割し、
前記画像統合部は、一部が重複した重複領域を、予め定めた重複領域処理を行って統合する
請求項５に記載の画像処理装置。
【請求項８】
前記予め定めた重複領域処理は、重複する画像の平均化処理である
請求項７に記載の画像処理装置。
【請求項９】
前記特定画像は、埋め込みコード画像である
請求項１から請求項８の何れか１項に記載の画像処理装置。
【請求項１０】
入力された入力画像の画像容量が、画像処理部によって画像処理可能な第１画像容量を超える第２画像容量である場合、前記第２画像容量の入力画像を、前記第１画像容量以下の画像容量の複数のブロック画像に分割する入力画像分割部と、
前記第１画像容量を超える画像容量の画像を、前記第１画像容量以下の複数のブロック画像毎に、前記画像処理部によって画像処理することを学習した学習モデルによって、前記入力画像について、前記複数のブロック画像単位で前記画像処理を行ってブロック単位の画像を生成するブロック画像生成部と、
前記ブロック画像生成部によって生成された前記ブロック単位の画像の各々を統合するブロック画像統合部と、
を備えた画像処理装置。
【請求項１１】
コンピュータを
画像処理部によって画像処理可能な予め定めた画像容量を超える画像容量の特定画像を、前記画像処理可能な予め定めた画像容量以下の画像容量の複数のブロック画像に分割する画像分割部、および、
前記複数のブロック画像毎に、前記画像処理部によって実行される予め定めた画像処理の学習を行う学習部、
として機能させるためのプログラム。
【請求項１２】
コンピュータを
入力された入力画像の画像容量が、画像処理部によって画像処理可能な第１画像容量を超える第２画像容量である場合、前記第２画像容量の入力画像を、前記第１画像容量以下の画像容量の複数のブロック画像に分割する入力画像分割部、
前記第１画像容量を超える画像容量の画像を、前記第１画像容量以下の複数のブロック画像毎に、前記画像処理部によって画像処理することを学習した学習モデルによって、前記入力画像について、前記複数のブロック画像単位で前記画像処理を行ってブロック単位の画像を生成するブロック画像生成部、および、
前記ブロック画像生成部によって生成された前記ブロック単位の画像の各々を統合するブロック画像統合部、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置及びプログラムに関する。
【背景技術】
【０００２】
従来より、劣化の生じている画像を修復する画像処理装置が知られている。劣化の生じている画像を修復する技術として、劣化の生じている入力画像を複数のブロックに分割し、ブロック化されたデータを複数のクラスに分類してその分類に対応するクラスコードを出力し、クラスコードに応じて入力画像に対応する劣化の無い画像のデータを出力することで、劣化した画像を復元する画像復元装置が開示されている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平７−６７０２８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、画像は高解像度化が進んでおり、高解像度の画像は画像容量が大容量になってきている。大容量の画像に対しても、高速に画像処理する要求が高まっており、高速処理可能なＧＰＵ（Graphics Processing Unit）が注目されている。このＧＰＵを用いて、より高度な画像処理、例えば、ＧＰＵを用いた画像処理部において劣化画像を修復する画像処理を行う場合、劣化画像を修復するように学習された画像処理部で劣化画像を修復する。しかし、ＧＰＵは処理可能な画像容量（例えば、画像サイズ）が定められており、画像処理可能な画像サイズを超える画像を画像処理することが困難である。
【０００５】
本発明は、画像の学習として予め定められた画像容量を超える画像が入力された場合であっても、画像の学習を可能とする画像処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、第１態様は、画像処理部によって画像処理可能な予め定めた画像容量を超える画像容量の特定画像を、前記画像処理可能な予め定めた画像容量以下の画像容量の複数のブロック画像に分割する画像分割部と、前記複数のブロック画像毎に、前記画像処理部によって実行される予め定めた画像処理の学習を行う学習部と、を備えた画像処理装置である。
【０００７】
第２態様は、第１態様の画像処理装置において、前記学習部は、前記複数のブロック画像の各々について、前記特定画像におけるブロック位置に対応付けて学習を行う。
【０００８】
第３態様は、第１態様又は第２態様の画像処理装置において、前記学習部は、敵対的生成ネットワークを用いて前記予め定めた画像処理を学習させることで生成された学習モデルを含む。
【０００９】
第４態様は、入力画像を、予め定めた画像容量以下の画像容量の複数のブロック画像に分割する入力画像分割部と、請求項１から請求項３の何れか１項に記載の前記学習部によって、前記複数のブロック画像毎に、前記予め定めた画像処理を行うことを学習した学習モデルを用いて、前記入力画像について、前記複数のブロック画像単位で前記予め定めた画像処理を行ってブロック単位の画像を生成する画像生成部と、を備えた画像処理装置である。
【００１０】
第５態様は、第４態様の画像処理装置において、前記画像生成部によって生成された前記ブロック単位の画像の各々を統合する画像統合
部、を含む。
【００１１】
第６態様は、第５態様の画像処理装置において、前記画像統合部は、前記画像生成部によって生成された前記ブロック単位の画像の各々を、前記入力画像分割部によって分割された前記複数のブロック画像の順序に従って連結する。
【００１２】
第７態様は、第５態様の画像処理装置において、前記入力画像分割部は、前記入力画像を、一部が重複するように複数のブロック画像に分割し、前記画像統合部は、一部が重複した重複領域を、予め定めた重複領域処理を行って統合する。
【００１３】
第８態様は、第７態様の画像処理装置において、前記予め定めた重複領域処理は、重複する画像の平均化処理である。
【００１４】
第９態様は、第１態様から第９態様の何れが１態様の画像処理装置において、前記特定画像は、埋め込みコード画像である。
【００１５】
第１０態様は、入力された入力画像の画像容量が、画像処理部によって画像処理可能な第１画像容量を超える第２画像容量である場合、前記第２画像容量の入力画像を、前記第１画像容量以下の画像容量の複数のブロック画像に分割する入力画像分割部と、前記第１画像容量を超える画像容量の画像を、前記第１画像容量以下の複数のブロック画像毎に、前記画像処理部によって画像処理することを学習した学習モデルによって、前記入力画像について、前記複数のブロック画像単位で前記画像処理を行ってブロック単位の画像を生成するブロック画像生成部と、前記ブロック画像生成部によって生成された前記ブロック単位の画像の各々を統合するブロック画像統合部と、を備えた画像処理装置である。
【００１６】
第１１態様は、コンピュータを画像処理部によって画像処理可能な予め定めた画像容量を超える画像容量の特定画像を、前記画像処理可能な予め定めた画像容量以下の画像容量の複数のブロック画像に分割する画像分割部、および、前記複数のブロック画像毎に、前記画像処理部によって実行される予め定めた画像処理の学習を行う学習部、として機能させるためのプログラムである。
【００１７】
第１２態様は、コンピュータを入力された入力画像の画像容量が、画像処理部によって画像処理可能な第１画像容量を超える第２画像容量である場合、前記第２画像容量の入力画像を、前記第１画像容量以下の画像容量の複数のブロック画像に分割する入力画像分割部、前記第１画像容量を超える画像容量の画像を、前記第１画像容量以下の複数のブロック画像毎に、前記画像処理部によって画像処理することを学習した学習モデルによって、前記入力画像について、前記複数のブロック画像単位で前記画像処理を行ってブロック単位の画像を生成するブロック画像生成部、および、前記ブロック画像生成部によって生成された前記ブロック単位の画像の各々を統合するブロック画像統合部、として機能させるためのプログラムである。
【発明の効果】
【００１８】
第１態様から第３態様及び第１１態様によれば、画像の学習として予め定められた画像容量を超える画像が入力された場合であっても、画像の学習を可能とする画像処理装置を提供することができる、という効果を有する。
第４態様から第１０態様及び第１２態様によれば、画像処理可能な予め定められた画像容量を超える画像が入力された場合であっても、入力された画像の画像処理を可能とする画像処理装置を提供することができる、という効果を有する。
【図面の簡単な説明】
【００１９】
【図１】第１実施形態に係る画像処理装置の機能構成の一例を示すブロック図である。
【図２】画像修復学習モデルを学習する学習処理の説明図である。
【図３】ブロック単位画像修復学習モデルを学習する学習処理の説明図である。
【図４】学習処理部をＧＡＮとして構成した場合の一例を示すブロック図である。
【図５】入力画像の一例を示すイメージ図である。
【図６】ブロック単位学習処理の過程の一例を示すイメージ図である。
【図７】画像処理装置をコンピュータを含んで構成した場合の一例を示すブロック図である。
【図８】第１実施形態に係る画像処理の流れの一例を示すフローチャートである。
【図９】ブロック走査によって学習する学習処理の説明図である。
【図１０】ブロックの構成の一例を示すイメージ図である。
【図１１】ブロックを重複させて走査することの説明図である。
【図１２】第２実施形態に係る画像処理装置において隣接するブロックを重複させて走査するこことの説明図である。
【図１３】調和平均の説明図である。
【図１４】ブロック内の画素位置に関する説明図である。
【図１５】異なる大きさのブロックに関する説明図である。
【発明を実施するための形態】
【００２０】
以下、図面を参照して本開示の技術を実現する実施形態を詳細に説明する。なお、作用、機能が同じ働きを担う構成要素及び処理には、全図面を通して同じ符合を付与し、重複する説明を適宜省略する場合がある。
【００２１】
（第１実施形態）
図１を参照して、第１実施形態に係る画像処理装置の一例の機能構成を説明する。
【００２２】
第１実施形態に係る画像処理装置は、入力画像を修復する画像処理を行う。例えば、入力画像にバーコード等の画像コードが含まれる場合、画像コードが表すコード内容を復号（認識）する画像認識処理が行われる。ところが、複写やファクシミリ送信、地紋、手書き等によるゆがみ、欠損、汚れ、ノイズ等により劣化した画像コードは、標準的な復号部（デコーダ）では画質劣化により復号できない場合がある。そこで、本実施形態の画像処理装置は、劣化した画像コードを修復して修復画像を劣化前の画像コードとして出力する機能を有する。
【００２３】
以下では、画像コードの一例としてＱＲコード（登録商標）を認識するために画像を修復する場合の一例を説明する。ただし、ＱＲコード（登録商標）を対象とするのはあくまで一例に過ぎず、本実施形態に係る画像処理装置における画像処理はＱＲコード（登録商標）以外の画像コードの修復処理にも適用可能である。また、本実施形態に係る画像処理装置における画像処理は画像コードの修復処理に限定されるものでもなく、多色画像における劣化を修復する修復処理、及び一部が欠落した欠落画像の修復処理等の画像修復処理にも適用可能である。さらに、本実施形態に係る画像処理装置における画像処理は、３次元画像と２次元画像と相互の変換処理、単色画像と多色画像との相互の変換処理等の画像変換処理にも適用可能である。
【００２４】
ところで、１画像は高解像度化が進んでおり、高解像度の１画像は大容量の画像容量になってきている。一方、画像処理を実行する実行デバイスの一例として高速に画像処理可能なＧＰＵが知られているが、このＧＰＵは画像処理可能な画像容量（例えば、画像サイズ）が予め定められており、予め定められた画像容量を超える画像を画像処理することが困難である。そこで、本実施形態では、ＧＰＵ等の限られた画像容量で画像処理可能な画像処理装置において、予め定められた画像容量を超える画像が入力された場合であっても、入力された画像について画像処理を可能とする画像処理装置を提供する。
【００２５】
なお、本実施形態における画像容量は、画像の大きさをいう。
画像の大きさは、物理的な大きさに解像度を乗算して計算可能である。多色画像における画像容量の計算例を、次式に示す。
｛画像容量｝＝Ａ・Ｂ・Ｃ・Ｄ・Ｅ・Ｆ
ここで、Ａは、縦のサイズ(インチ)を表す。Ｂは、縦の解像度(dpi) を表す。Ｃは、横のサイズ(インチ) を表す。Ｄは、横の解像度(dpi) を表す。Ｅは、画素のビット数｛例えば、バイト数に変換する場合は、（色のビット数／８)で表す。｝を表す。Ｆは、圧縮率を表す。
【００２６】
図１に示す画像処理装置１において、画像修復学習モデル３３は、入力画像（劣化したＱＲコード（登録商標））から劣化前の正常なＱＲコード（登録商標）の画像を生成する学習を済ませたモデルである。画像修復学習モデル３３は、例えば学習済みのニューラルネットワークを規定するモデルであり、例えばニューラルネットワークを構成するノード（ニューロン）同士の間の結合の重み（強度）の情報の集合として表現される。
【００２７】
画像修復学習モデル３３は、学習処理部３３０（図２）の学習処理により生成される。学習処理部３３０は、背景等のノイズやゆがみ等で劣化したＱＲコード（登録商標）を含んだ入力画像と、その入力画像に対応する劣化前のＱＲコード（登録商標）を示す正解画像と、のペアを大量に用いて学習処理を行う。学習処理部３３０が行う学習処理については、後で詳しく説明する。
【００２８】
また、ブロック単位画像修復学習モデル３７は、入力画像（劣化したＱＲコード（登録商標））をブロック単位で分割したブロック単位画像の各々から劣化前の正常なＱＲコード（登録商標）におけるブロック単位画像の各々を生成する学習を済ませたモデルである。ブロック単位画像修復学習モデル３７は、例えば学習済みのニューラルネットワークを規定するモデルであり、例えばニューラルネットワークを構成するノード（ニューロン）同士の間の結合の重み（強度）の情報の集合として表現される。
【００２９】
ブロック単位画像修復学習モデル３７は、ブロック単位学習処理部３７０（図３）の学習処理により生成される。ブロック単位学習処理部３７０は、背景等のノイズやゆがみ等で劣化したＱＲコード（登録商標）を含んだ入力画像と、その入力画像に対応する劣化前のＱＲコード（登録商標）を示す正解画像と、のペアを大量に用いてブロック単位で学習処理を行う。ブロック単位学習処理部３７０が行う学習処理については、後で詳しく説明する。
【００３０】
図１に示す画像入力部２は、１以上のＱＲコード（登録商標）を含んだ入力画像の入力を受け付ける。
【００３１】
実行処理部３は、画像入力部２で受け付けた入力画像を修復処理して、修復された画像を出力画像として出力する。
【００３２】
実行処理部３は、判別部３１、修復部３２、画像修復学習モデル３３、画像出力部３４、画像分割部３５、ブロック単位修復部３６、ブロック単位画像修復学習モデル３７、及び画像統合部３８を含んでいる。
【００３３】
判別部３１は、入力画像に含まれる処理対象の画像（以下、処理画像という。）、すなわち、ＱＲコード（登録商標）について、画像容量が、実行処理部３に予め定められた画像処理可能な画像容量（以下、第１画像容量という。）を超えるかを判別する。また、第１画像容量を超えた画像容量は第２画像容量という。第１画像容量の処理画像は、修復部３２へ送られる。
【００３４】
修復部３２は、第１画像容量の処理画像（すなわち、入力画像内の劣化後の第１画像容量のＱＲコード（登録商標））を、学習済みの画像修復学習モデル３３を用いて修復する。すなわち劣化前のＱＲコード（登録商標）の画像を生成あるいは推定する。
【００３５】
画像出力部３４は、修復部３２により修復されたＱＲコード（登録商標）画像を出力する。なお、画像出力部３４は、修復されたＱＲコード（登録商標）画像に対して、公知のＱＲコード（登録商標）認識処理を実行することで、そのＱＲコード（登録商標）画像を復号する復号部を含むようにしてもよい。
【００３６】
一方、第２画像容量の処理画像（すなわち、入力画像内の劣化後の第２画像容量のＱＲコード（登録商標））は、画像分割部３５へ送られる。画像分割部３５は、第２画像容量の処理画像を、第１画像容量以下のブロック単位画像に分割する。
【００３７】
ブロック単位修復部３６は、第２画像容量の処理画像を、ブロック単位で学習済みのブロック単位画像修復学習モデル３７を用いて修復する。すなわちブロック単位で劣化前のＱＲコード（登録商標）の一部画像を生成あるいは推定する。
【００３８】
画像統合部３８は、ブロック単位修復部３６により修復されたブロック単位のＱＲコード（登録商標）の一部画像を統合し、統合された画像（ＱＲコード（登録商標）画像）を画像出力部３４へ出力する。画像統合部３８の統合処理の一例は、ブロック単位修復部３６により修復されたブロック単位のＱＲコード（登録商標）の一部画像を分割した順序に従って並べて連結する処理が挙げられる。
【００３９】
次に、図４を参照して、学習処理部３３０について説明する。学習処理部３３０は、ＧＡＮ（Generative adversarial networks：敵対的生成ネットワーク）を構成する生成器（ジェネレータ）３３２と識別器（ディスクリミネータ）３３４とを含む。
【００４０】
また、学習処理部３３０は、学習用データとして、入力画像２００と正解画像２０２のペアを多数保持している。入力画像２００は、図５に示すように、ゆがみ、欠損、汚れ、ノイズ等の、画質劣化が生じているＱＲコード（登録商標）の画像である。図５に例示する入力画像２００では、ファクシミリ送信時の画像のゆがみや二値化の誤差等によってＱＲコード（登録商標）の画像にゆがみやノイズが現れている。この程度のまで劣化したＱＲコード（登録商標）は、標準的な復号部では復号できない。これに対して正解画像２０２は、そのような画質劣化が生じる前のそのＱＲコード（登録商標）の画像である。正解画像２０２は、標準的な復号部で正しく復号できる。
【００４１】
図４に示す生成器３３２は、入力画像２００から生成画像２０４を生成するニューラルネットワークである。生成画像２０４は、入力画像２００に対応する正解画像２０２を推定した画像である。すなわち、生成器３３２は、劣化したＱＲコード（登録商標）の画像である入力画像２００を修復し、正解画像２０２に近い生成画像２０４を生成する。生成器３３２は、多数の入力画像２００を用いて学習することで、より正解画像２０２に近い生成画像２０４を生成できるようになる。
【００４２】
識別器３３４は、入力された画像が、入力画像２００に対応する正解画像２０２、及び入力画像２００から生成器３３２が生成した生成画像２０４、のうちのいずれであるかを識別するニューラルネットワークである。学習処理部３３０は、正解画像２０２（とこれに対応する入力画像２００）又は生成画像２０４（とこれに対応する入力画像２００）を識別器３３４に入力する。これに応じて、識別器３３４は、入力された画像が正解画像２０２（正解:true）又は生成画像２０４（偽物:false）のいずれであるかを識別し、その識別結果を示す信号を出力する。
【００４３】
学習処理部３３０は、識別器３３４に入力した画像が正解、偽物のいずれであるかと、その識別器３３４からの出力信号とを比較し、その比較結果に基づく損失信号を生成器３３２及び識別器３３４の各々のニューラルネットワークのノード間の結合の重みパラメータにフィードバックする。これにより、生成器３３２と識別器３３４が学習を行う。
【００４４】
ＧＡＮを構成する生成器３３２及び識別器３３４は、前者が教師データ（正解画像２０２）になるべく近い偽物（生成画像２０４）を生成しようとし、後者がその偽物を正しく識別しようとするという形で、いわば互いに切磋琢磨しながら学習を進める。
【００４５】
学習処理部３３０には、例えば「pix2pix」というアルゴリズム（Phillip Iso1a他による論文「Image-to-Image Translation with Conditional Adversarial Networks」、Berkeley AI Research (BAIR) Laboratory, UC Berkeley参照）と同様の方式を用いてもよい。この場合、生成器３３２の学習のために、識別器３３４の損失信号に加え、正解画像２０２と生成画像２０４との差もフィードバックする。
【００４６】
また、他の例として、Ｃｙｃｌｅ  ＧＡＮと呼ばれるＧＡＮを学習処理部３３０に用いてもよい。Ｃｙｃｌｅ  ＧＡＮを用いた場合、入力画像のすべてに正解画像が用意されていない場合でも学習が可能である。
【００４７】
そして、本実施形態の画像処理装置では、以上に例示した手法により生成した学習済みの生成器３３２を画像修復学習モデル３３として用いる。修復部１６は、この画像修復学習モデル３３を用いて、入力画像２００が表す劣化したＱＲコード（登録商標）を修復する。
【００４８】
十分に学習した画像修復学習モデル３３を用いれば、第１画像容量以下の画像容量であって、ゆがみ、ノイズ、部分的欠損がある程度激しい劣化したＱＲコード（登録商標）を、復号可能な状態に修復することも不可能ではない。
【００４９】
次に、ブロック単位学習処理部３７０について説明する。ブロック単位学習処理部３７０は、学習処理部３３０と同様に、ＧＡＮを構成する生成器３３２と識別器３３４とを含む。
【００５０】
ブロック単位学習処理部３７０は、学習用データとして、入力画像２００と正解画像２０２のペアを多数保持している。また、ブロック単位学習処理部３７０では、入力画像２００及び正解画像２０２を、第２画像容量の画像を第１画像容量以下のブロック単位の画像に分割する共通のフォーマットで分割したブロック単位画像を用いて、学習を行う。例えば、図６に示すように、１０２４×１０２４画素を２５６×２５６画素／１ブロックで分割する場合、入力画像２００及び正解画像２０２の各々が、４ブロック×４ブロックに分割される。そして、入力画像２００及び正解画像２０２各々の位置に対応するブロック単位で、学習が行われる。すなわち、劣化したＱＲ画像と正解画像との対応するブロック間で、ブロック単位画像における学習（画像修復学習）が実施される。なお、ブロック単位画像での学習（画像修復学習）は、学習処理部３３０で行われる学習処理と同様のため、詳細な説明を省略する。
【００５１】
そして、多数の入力画像２００と正解画像２０２のペアによりブロック単位で学習して生成された学習済みの生成器３３２をブロック単位画像修復学習モデル３７として用いる。ブロック単位修復部３６は、このブロック単位画像修復学習モデル３７を用いて、入力画像２００が表す劣化したＱＲコード（登録商標）をブロック単位で修復する。
【００５２】
ブロック単位で学習して生成された学習済みの生成器３３２によるブロック単位の学習モデルは、分割された画像上のブロック位置に対応して異なるモデルとして、ブロック単位画像修復学習モデル３７に格納すればよい。
【００５３】
なお、処理画像の一例であるＱＲコード（登録商標）では、劣化する状態に位置に関する依存性が低いと考えられる。すなわち、ＱＲコード（登録商標）の何れの位置についても同様に劣化する場合があると考えられる。このため、１つのブロックについて学習して生成された学習済みの生成器３３２によるブロック単位の学習モデルを、他の位置のブロックについての学習モデルとして共通に利用することが可能である。このようにすることで、第１画像容量を超える第２画像容量の画像であっても、共通のフォーマットで分割したブロック単位で複数回学習することに代えて、１回の学習処理でブロック単位の学習を完了することが可能となる。すなわち、ブロック単位の学習モデルは、分割された画像上の１つのブロックについて学習したモデルを、ブロック単位画像修復学習モデル３７に格納すればよい。
【００５４】
なお、ブロック単位学習処理部３７０において実行される入力画像２００及び正解画像２０２をブロック単位の画像に分割する処理は、本開示の画像分割部の処理の一例である。また、ブロック単位学習処理部３７０は、本開示の学習部の一例である。
【００５５】
以上に例示した画像処理装置１は、例えば、コンピュータに上述の各機能を表すプログラムを実行させることにより実現可能である。
【００５６】
図７に、画像処理装置１の各種機能を実現する処理を実行する実行装置としてコンピュータを含んで構成した場合の一例を示す。
【００５７】
図７に示す画像処理装置１として機能するコンピュータは、コンピュータ本体１００を備えている。コンピュータ本体１００は、ＣＰＵ１０２、揮発性メモリ等のＲＡＭ１０４、ＲＯＭ１０６、ハードディスク装置（ＨＤＤ）等の補助記憶装置１０８、及び入出力インターフェース（Ｉ／Ｏ）１１０を備えている。これらのＣＰＵ１０２、ＲＡＭ１０４、ＲＯＭ１０６、補助記憶装置１０８、及び入出力Ｉ／Ｏ１１０は、相互にデータ及びコマンドを授受可能にバス１１２を介して接続された構成である。また、入出力Ｉ／Ｏ１１０には、画像入力部２、通信インタフェース（Ｉ／Ｆ）１１４、及びディスプレイやキーボード等の操作表示部１１６が接続されている。
【００５８】
補助記憶装置１０８には、コンピュータ本体１００を本開示の画像処理装置として機能させるための制御プログラム１０８Ｐが記憶される。ＣＰＵ１０２は、制御プログラム１０８Ｐを補助記憶装置１０８から読み出してＲＡＭ１０４に展開して処理を実行する。これにより、制御プログラム１０８Ｐを実行したコンピュータ本体１００は、本開示の情報処理装置として動作する。
【００５９】
なお、補助記憶装置１０８には、画像修復学習モデル３３とブロック単位画像修復学習モデル３７とを含む学習モデル１０８Ｍ、及び入力画像２００と正解画像２０２のペアの画像データを含むデータ１０８Ｄが記憶される。制御プログラム１０８Ｐは、ＣＤ−ＲＯＭ等の記録媒体により提供するようにしても良い。
【００６０】
次に、コンピュータにより実現された画像処理装置における画像処理について説明する。
【００６１】
図８に、コンピュータ本体１００において、実行される制御プログラム１０８Ｐによる画像処理の流れの一例を示す。
図８に示す画像処理は、コンピュータ本体１００に電源投入されると、ＣＰＵ１０２により実行される。
【００６２】
まず、ＣＰＵ１０２は、ステップＳ１００で、画像入力部２から劣化したＱＲコード（登録商標）（処理画像）を含む入力画像２００を取得し、次のステップＳ１０４で、入力画像２００に含まれるＱＲコード（登録商標）（処理画像）が第１画像容量を超える画像容量か否かを判断する。ＱＲコード（登録商標）が第１画像容量以下の場合、ＱＲコード（登録商標）を分割することなく画像処理が可能であるため、ステップＳ１０４で否定され、ステップＳ１０４で、劣化したＱＲコード（登録商標）を画像修復学習モデルを用いて修復する画像処理を行って、本処理ルーチンを終了する。
【００６３】
一方、入力画像２００が第１画像容量を超える場合、ステップＳ１０２で肯定され、ステップＳ１０６において、入力画像２００に含まれるＱＲコード（登録商標）（処理画像）を、複数ブロックに分割する。次のステップＳ１０８では、ステップＳ１０６で分割されたブロック単位で、ブロック単位画像修復学習モデル３７を用いて、劣化したＱＲコード（登録商標）をブロック単位で修復する画像処理を行う。次のステップＳ１１０では、修復されたブロック単位のＱＲコード（登録商標）の一部画像を、分割した順序に従って並べて連結する統合処理を行い、統合されたＱＲコード（登録商標）を出力して本処理ルーチンを終了する。
【００６４】
なお、図８に示す画像処理は、本開示の画像処理装置で実行される処理の一例である。
【００６５】
（第２実施形態）
次に、第２実施形態を説明する。第２実施形態は、分割された画像を統合する場合に隣接するブロックの境界部分を考慮したものである。なお、第２実施形態は第１実施形態と略同様の構成のため、同一部分には同一符号を付して詳細な説明を省略する。
【００６６】
第１実施形態では、劣化した処理画像（ＱＲコード（登録商標））をブロック分割して、ブロック単位で修復した複数の画像を統合した。この場合、画像の劣化度合いによって、隣接するブロックの境界付近でノイズが生じることがある。これは、各ブロック毎の修復度合いが一様ではないためと考えられる。また、ブロック単位による修復処理のため、解像度が低下してためとも考えられる。そこで、本実施形態では、隣接するブロックの境界付近に生じるノイズを抑制する処理を実行する。
【００６７】
図９及び図１０を参照して、本実施形態に係るブロック単位学習処理部３７０における学習処理について説明する。ブロック単位学習処理部３７０は、画像上で所定の大きさのウィンドウ領域（ブロック）を走査しながら走査位置におけるブロック単位で学習を行う点が第１実施形態と異なっている。すなわち、第１実施形態では、入力画像２００及び正解画像２０２を共通のフォーマットで（第１画像容量以下の画像に）分割したブロック単位画像を用いて学習を行ったが、第２実施形態は、共通のフォーマットを、第１画像容量以下の画像の大きさをブロックとして、隣接するブロックの一部が重複するように走査し、各走査位置においてブロック単位で学習を行う。
【００６８】
具体的には、図９に示すように、入力画像２００及び正解画像２０２に対して、第１画像容量以下の画像となるＭ×Ｎ画素領域のブロック４０を設定する。そして、隣接するブロック４０の一部が重複するように走査（図９の例では実線と点線で示す位置にブロック４０が移動）する。走査の単位は予め設定しておけばよい。例えば、図１０に示すように、１×１画素単位からＰ×Ｑ画素単位（１≦Ｐ≦Ｍ、１≦Ｑ≦Ｎ）の何れかを走査の単位とすればよい。具体的には、２５６×２５６画素領域のブロックを２×２画素単位で走査する場合が考えられる。なお、Ｐ＝Ｍ、Ｑ＝Ｎの場合は、第１実施形態におけるブロック分割と同様である。
【００６９】
次に、入力画像２００及び正解画像２０２に対して、相互に対応する位置に該当するブロック４０の領域を一部画像として切りだし、入力画像２００の一部画像と、正解画像２０２の一部画像とを用いて学習（例えば、画像修復学習）を行う。すなわち、劣化した入力画像２００の一部画像と正解画像２０２の一部画像との各々について、ブロックの位置を同期させながら走査して、同期された位置の各々で学習を行う。
【００７０】
走査位置におけるブロック単位で切り出した領域について学習して生成された学習済みの生成器３３２によるブロック単位の学習モデルが、走査位置に対応してブロック単位画像修復学習モデル３７に格納する。
【００７１】
なお、例えば、白背景画像や黒背景画像のように、ブロック４０の走査位置において切り出した入力画像２００の一部画像と、正解画像２０２の一部画像との濃度が一致する場合、学習処理から除外することが好ましい。これにより、学習するブロック画像（入力画像２００の一部画像と、正解画像２０２の一部画像）の枚数を減少することが可能になる。
【００７２】
次に、本実施形態に係るブロック単位修復部３６を説明する。ブロック単位修復部３６は、第２画像容量の処理画像を、上記走査位置に応じたブロック単位で学習済みのブロック単位画像修復学習モデル３７を用いて修復する。すなわち、本実施形態に係るブロック単位修復部３６は、学習処理で用いたブロック４０を走査してブロック単位で劣化前のＱＲコード（登録商標）の一部画像を生成あるいは推定する。
【００７３】
なお、本実施形態では、画像分割部３５は、画像を分割することに代えて、ブロック４０の設定（Ｍ×Ｎ画素領域のブロック４０を設定と、走査の単位の設定と）を行う。すなわち、本実施形態における画像分割部３５は、入力画像（又は処理画像）の画像全体を分割することに代えて、一部の画像を切り出す（分割する）ための設定部として機能する。
【００７４】
ブロック単位修復部３６では、ブロック単位学習処理部３７０における学習処理と同様に、Ｍ×Ｎ画素領域のブロック４０を、Ｐ×Ｑ画素の走査単位で走査して、走査単位ごとに、入力画像２００から、ブロック単位の一部画像を抽出する。そして、抽出された一部画像について、走査位置に対応する、ブロック単位画像修復学習モデル３７を用いて、ブロック単位で劣化前のＱＲコード（登録商標）の一部画像を生成あるいは推定する。
【００７５】
次に、本実施形態に係る画像統合部３８を説明する。画像統合部３８は、ブロック単位で生成あるいは推定された劣化前のＱＲコード（登録商標）の一部画像を用いて複数の一部画像を統合する。すなわち、走査単位毎に後述する推論処理（画像修復処理）結果を出力することによって、複数の一部画像を統合する。
【００７６】
具体的には、画像統合部３８は、Ｐ×Ｑ画素単位の走査毎に推論処理（画像修復処理）を行い、全ての結果を統合する。結果、処理対象画像全面を修復処理したことになる。
【００７７】
ここで、走査単位毎に行う推論処理について説明する。
まず、ブロック単位の一部画像における画素値を用いる第１の推論処理を説明する。なお、第１の推論処理の説明を簡単にするため、図１１に示すように、Ｍ×Ｎ画素領域のブロック４０を半分ずつ重ねながら、走査する場合を説明する。すなわち、Ｐ×Ｑ＝（１／２×Ｍ）×（１／２×Ｎ）の場合を説明する。
【００７８】
まず、画像統合部３８は、第１工程として、一部が重複するように走査単位分だけブロック４０を移動する。
【００７９】
次に、第２工程として、前回走査のブロック４０−１内の入力画素値を用いて、学習モデルによって、推論処理を行う。この場合、推論処理後の新しい画素値は、前回の走査位置におけるブロック４０−１内に含まれる画素値から求まる。
【００８０】
次に、第３工程として、第１工程で求めたＭ×Ｎ画素領域内の推論画素値に対して、ブロック４０の走査単位であるＰ×Ｑ領域内の推論画素値のみを出力する。すなわち、Ｐ×Ｑ領域以外の推論画素値は消去する。
【００８１】
次に、第４工程として、第１工程から第３工程の処理を、次の走査位置（次の走査のブロック４０−２の位置）で同様に行うことを繰り返す。
【００８２】
次に、第５工程では、すべての走査が終わった段階で、全ての推論処理結果（緑枠推論出力）を統合して、元の１枚の画像を出力する。
【００８３】
第１の推論処理では、走査単位の大きさを小さくすれば、推論出力の解像度が向上し、ブロック境界のノイズや劣化は抑制される。図１１に示す例では、推論出力解像度は２倍に向上する。従って、走査単位Ｐ×Ｑを１×１画素単位とすれば、元の画像の解像度のまま推論処理することが可能となる。これにより、学習時と同じ広い参照領域（Ｍ×Ｎ）を用いた推論処理を実施することで精度を高め、出力時には解像度を高めて演算することで（Ｐ×Ｑ）、ノイズを抑制するこが可能になる。
【００８４】
次に、第２の推論処理を説明する。
【００８５】
まず、画像統合部３８は、第１工程として、一部が重複するように走査単位分だけ主走査方向にブロック４０を走査する。
【００８６】
第２工程では、前回走査のブロック４０−１内の入力画素値を用いて、学習モデルによって、推論処理を行う。また、次の走査のブロック４０−２内の入力画素値を用いて、学習モデルによって、推論処理を行う。そして、ブロック４０−１とブロック４０−２との重複領域（図１２（Ａ）に斜線で示す領域）の各画素ごとの推論値を求める。この重複部分の各画素ごとの推論画素値ＩｎＦを導出する一例を次式に示す。
【００８７】
ＩｎＦ＝（ＩｎＦＡ＋ＩｎＦＢ）／２
ただし、ＩｎＦＡは、ブロック４０−１内における画素の推論値であり、ＩｎＦＢは、ブロック４０−２内における画素の推論値である。
【００８８】
第３工程では、主走査方向（横方向）の処理を画像の横幅分完了した後、副走査方向（縦方向）の処理を行う。副走査方向（縦方向）の処理は、主走査方向（横方向）の処理の結果に対して処理する。すなわち、副走査方向（縦方向）に重複した領域（図１２（Ｂ）に斜線で示す領域）は、主走査方向（横方向）の計算で得られた結果に対して、平均値を求めて出力する。
【００８９】
第２の推論処理では、走査した場合における重複部分は前回の推論値と次の推論値の平均値となる。両者の推論値が平滑化され、ノイズを低減することが可能になる。
【００９０】
なお、第２の推論処理では、重複部分における推論値の平均値を用いた場合を説明したが、推論値の単純な平均値に限定されるものではなく、他の推論処理として、図１３に示すように、調和平均値を用いることが可能である。図１３に示す例では、重複した領域（図１３に斜線で示す領域）Ｇを複数に分割し（図１３に領域Ｇａ，Ｇｂ，Ｇｃで示す領域）、領域Ｇａ，Ｇｂ，Ｇｃの各々に、重みを付与した調和平均値を求める。この場合、付与する重みは、領域の周囲に向うに従って重みが低くなるように設定することが好ましい。例えば、領域Ｇａの重みとして、前回の推論値に対する重み（例えば、０．６）を、次の推論値に対する重みより小さくした重み（例えば、０．４）すること等が挙げられる。
【００９１】
次に、第３の推論処理を説明する。第３の推論処理は、走査単位で移動するブロック内の画素位置に応じて変化する重複領域（画素位置）に対する距離Ｌに応じて推論するものである。
【００９２】
第３の推論処理は、図１４に示すように、ブロック４０として、３×２の推論枠を考える。走査単位を１ピクセル（pixel）とすると、中心位置（図１４に星印で示した位置）で、６回（３×２回）の走査において推論枠が重複する。この６回の走査毎に、各走査位置における推論枠の中心と、中心位置（図１４に星印で示した位置）との距離に応じた、各走査位置における推論枠について中心位置（図１４に星印で示した位置）に対する重さを計算する。計算された重み（４０−１〜４０−６各々の重み）を各走査位置における推論枠における推論値に各々付して、総和を、中心位置（図１４に星印で示した位置）の推論値とする。
【００９３】
なお、第３の推論処理では、走査単位で移動するブロック内の画素位置に応じて変化する重複領域（画素位置）に対する距離に応じて推論したが、複数の異なる大きさのブロック４０に対しても適用可能である。複数の異なる大きさのブロック４０に対しては、ブロック４０各々の面積に応じて重みを変更すればよい。
【００９４】
例えば、図１５に示すように、異なる大きさの推論枠４０−Ａ，４０−Ｂ，４０−Ｃを重ね合わせた場合、各々の中心位置（図１５に四角形で示した位置）と、重ね合された中心位置（図１５に星印で示した位置）との距離は同等である。しかし、推論枠４０−Ａ，４０−Ｂ，４０−Ｃの各々は、大きさが異なるので、面積の大小に応じて重さを変更する。すなわち、面積が大きい推論枠（例えば、ピクセル数が多い推論枠）の方が、面積が小さい推論枠（例えば、ピクセル数が少ない推論枠）より、推論値の信用度が高いため、面積が大きくなるのに従って重さを大きい値とすればよい。
【００９５】
なお、以上説明した推論処理は、単体で推論処理してもよいし、複数の推論処理を組み合わせて推論処理してもよい。
【００９６】
以上、各実施の形態を用いて説明したが、本開示の技術的範囲は上記実施形態に記載の範囲には限定されない。要旨を逸脱しない範囲で上記実施形態に多様な変更または改良を加えることができ、当該変更または改良を加えた形態も本開示の技術的範囲に含まれる。
【００９７】
また、上記実施形態では、検査処理を、フローチャートを用いた処理によるソフトウエア構成によって実現した場合について説明したが、これに限定されるものではなく、例えば各処理をハードウェア構成により実現する形態としてもよい。
【００９８】
また、画像処理装置の一部、例えば学習モデル等のニューラルネットワークを、ハードウエア回路として構成してもよい。
【符号の説明】
【００９９】
１     画像処理装置
２     画像入力部
３     実行処理部
１６   修復部
３１   判別部
３２   修復部
３３   画像修復学習モデル
３４   画像出力部
３５   画像分割部
３６   ブロック単位修復部
３７   ブロック単位画像修復学習モデル
３８   画像統合部
４０   ブロック
１０８Ｐ      制御プログラム
２００ 入力画像
２０２ 正解画像
２０４ 生成画像
３３０ 学習処理部
３３２ 生成器
３３４ 識別器
３７０ ブロック単位学習処理部
【図１】
2020154605.tif 000003
【図２】
2020154605.tif 000004
【図３】
2020154605.tif 000005
【図４】
2020154605.tif 000006
【図５】
2020154605.tif 000007
【図６】
2020154605.tif 000008
【図７】
2020154605.tif 000009
【図８】
2020154605.tif 000010
【図９】
2020154605.tif 000011
【図１０】
2020154605.tif 000012
【図１１】
2020154605.tif 000013
【図１２】
2020154605.tif 000014
【図１３】
2020154605.tif 000015
【図１４】
2020154605.tif 000016
【図１５】
2020154605.tif 000017