(57)【要約】【課題】コード画像が持つ誤り訂正情報を用いて劣化したコード画像を修復する方式よりも、劣化したコード画像を修復できる可能性が高い手法を提供する。【解決手段】復号部１４は、入力画像中の画像コードを復号する。修復部１６は、ＧＡＮで劣化した画像コードの修復を学習した学習済モデル１０を用いて、入力画像中の画像コードを修復する。復号部１８は、修復された画像コードを復号する。選択部２０は、復号部１４と１８の両方が復号に成功した場合は復号部１４の復号データを、一方のみが復号に成功した場合はその成功した復号部１４又は１８の復号データを、装置の最終的な復号結果として選択する。【選択図】図１
2020046751.tif 000002
【特許請求の範囲】
【請求項１】
コード画像を復号する第１復号手段と、
前記コード画像を修復する修復手段と、
前記修復手段により修復された修復後コード画像を復号する第２復号手段と、
前記第１復号手段の復号結果と前記第２復号手段の復号結果とに基づき、前記コード画像に対応する復号データを決定する決定手段と、
を含む画像処理装置。
【請求項２】
前記決定手段は、前記第１復号手段と前記第２復号手段とが共に復号に成功した場合に、前記第１復号手段の復号結果が示す復号データを前記コード画像に対応する復号データに決定する、請求項１に記載の画像処理装置。
【請求項３】
前記修復手段は、劣化したコード画像と、これに対応する前記劣化前のコード画像と、の組合せにより、劣化した入力コード画像からその劣化が修復された修復後コード画像を生成するよう学習した修復用学習済モデル、を用いて前記コード画像を修復する、請求項１又は２に記載の画像処理装置。
【請求項４】
互いに異なる修復方法で前記コード画像を修復する複数の前記修復手段を含み、
前記第２復号手段は、それら複数の修復手段のそれぞれにより修復された修復後コード画像をそれぞれ復号し、
前記決定手段は、前記第１復号手段の復号結果と、複数の前記修復手段のそれぞれによる前記修復後コード画像についての前記第２復号手段による各復号結果と、に基づいて、前記に対応する復号データを決定する、
請求項１に記載の画像処理装置。
【請求項５】
複数の前記修復手段のうちの少なくとも１つは、劣化したコード画像と、これに対応する前記劣化前のコード画像と、の組合せにより、劣化したコード画像からその劣化が修復された修復後コード画像を生成するよう学習した修復用学習済モデル、を用いて前記コード画像を修復する、請求項４に記載の画像処理装置。
【請求項６】
前記修復用学習済みモデルは、ＧＡＮ（敵対性生成ネットワーク）を学習させることで生成されたものである、請求項３又は５に記載の画像処理装置。
【請求項７】
前記修復用学習済みモデルは、前記ＧＡＮ内の生成器に対して劣化したコード画像を入力し、これに応じて当該生成器が生成した修復後コード画像と、当該劣化したコード画像に対応する劣化前のコード画像と、を前記ＧＡＮ内の識別器に入力して両者を識別させることにより、学習を済ませた前記ＧＡＮの前記生成器である、請求項６に記載の画像処理装置。
【請求項８】
複数の前記修復手段は、それぞれ、ＧＡＮをそれぞれ異なる学習パラメータを用いて学習させることで生成された前記修復用学習済モデルを用いて前記コード画像を修復する、請求項５に記載の画像処理装置。
【請求項９】
コンピュータを、
コード画像を復号する第１復号手段、
前記コード画像を修復する修復手段、
前記修復手段により修復された修復後コード画像を復号する第２復号手段、
前記第１復号手段の復号結果と前記第２復号手段の復号結果とに基づき、前記コード画像に対応する復号データを決定する決定手段、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置及びプログラムに関する。
【背景技術】
【０００２】
バーコード等の１次元画像コードやＱＲコード（登録商標）等の２次元画像コードといった画像コードが広く用いられている。画像コードを認識する装置の中には、撮影された画像内の未知の位置にある画像コードを検出し、認識する機能を持つものもある。
【０００３】
特許文献１に開示された方法では、最初に検出された２つのファインダパターンの特性に基づいてパターンマッチングテンプレートを形成し、検出されたファインダパターンに近接する少なくとも１つの候補領域を判定する。この候補領域のコンテンツをパターンマッチングテンプレートと相関することにより少なくとも１つの候補領域においてＱＲコードの先に検出されなかった第３のファインダパターンを検出する。ＱＲコードの復号化は、識別された第３のファインダパターン及び最初に検出された２つのファインダパターンの各々を使用して実行する。
【０００４】
特許文献２に開示された仕組みでは、２次元コード抽出手段は、入力画像データを２値化した２値化画像に所定のぼかし処理を施し、暗画素が所定の割合以上に分布している画素集合を検出し、２次元コード候補とする。さらに、２値画像を用いて２次元コード候補が２次元コードの特徴を満たすかどうかを判定し、２次元コードを特定する。２次元コード認識手段は、２次元コードに対応する２値画像から基準画像パタンを検出する。基準画像パタンに基づく仮モジュールを２値化した２次元コードの画像に割り当て、デコード処理を行う。
【０００５】
特許文献３に開示された装置は、スキャンした二次元コードに欠損があるかどうかを判別し、欠損がある場合は、その二次元コードに含まれる誤り訂正符号を用いて欠けたデータを補完し、補完後のデータを二次元コードに変換して印刷する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１０−１７０５３９号公報
【特許文献２】特許第５５０７１３４号明細書（特開２０１１−１４０１２号公報）
【特許文献３】特開２００７−２０６９０４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
例えばＦＡＸ送信やコピー等の繰り返し、筆記具等による記入の重なり、透かしやステガノグラフィ等の地紋の重なり、あるいはそれらの混合等により、コード画像が激しく劣化する場合がある。激しく劣化したコード画像の中には誤り訂正が不可能なものもあり、そのようなコード画像は復号ができない。
【０００８】
本発明は、コード画像が持つ誤り訂正情報を用いて劣化したコード画像を修復する方式よりも、劣化したコード画像を修復できる可能性が高い手法を提供する。
【課題を解決するための手段】
【０００９】
請求項１に係る発明は、コード画像を復号する第１復号手段と、前記コード画像を修復する修復手段と、前記修復手段により修復された修復後コード画像を復号する第２復号手段と、前記第１復号手段の復号結果と前記第２復号手段の復号結果とに基づき、前記コード画像に対応する復号データを決定する決定手段と、を含む画像処理装置である。
【００１０】
請求項２に係る発明は、前記決定手段は、前記第１復号手段と前記第２復号手段とが共に復号に成功した場合に、前記第１復号手段の復号結果が示す復号データを前記コード画像に対応する復号データに決定する、請求項１に記載の画像処理装置である。
【００１１】
請求項３に係る発明は、前記修復手段は、劣化したコード画像と、これに対応する前記劣化前のコード画像と、の組合せにより、劣化した入力コード画像からその劣化が修復された修復後コード画像を生成するよう学習した修復用学習済モデル、を用いて前記コード画像を修復する、請求項１又は２に記載の画像処理装置である。
【００１２】
請求項４に係る発明は、互いに異なる修復方法で前記コード画像を修復する複数の前記修復手段を含み、前記第２復号手段は、それら複数の修復手段のそれぞれにより修復された修復後コード画像をそれぞれ復号し、前記決定手段は、前記第１復号手段の復号結果と、複数の前記修復手段のそれぞれによる前記修復後コード画像についての前記第２復号手段による各復号結果と、に基づいて、前記に対応する復号データを決定する、請求項１に記載の画像処理装置である。
【００１３】
請求項５に係る発明は、複数の前記修復手段のうちの少なくとも１つは、劣化したコード画像と、これに対応する前記劣化前のコード画像と、の組合せにより、劣化したコード画像からその劣化が修復された修復後コード画像を生成するよう学習した修復用学習済モデル、を用いて前記コード画像を修復する、請求項４に記載の画像処理装置である。
【００１４】
請求項６に係る発明は、前記修復用学習済みモデルは、ＧＡＮ（敵対性生成ネットワーク）を学習させることで生成されたものである、請求項３又は５に記載の画像処理装置である。
【００１５】
請求項７に係る発明は、前記修復用学習済みモデルは、前記ＧＡＮ内の生成器に対して劣化したコード画像を入力し、これに応じて当該生成器が生成した修復後コード画像と、当該劣化したコード画像に対応する劣化前のコード画像と、を前記ＧＡＮ内の識別器に入力して両者を識別させることにより、学習を済ませた前記ＧＡＮの前記生成器である、請求項６に記載の画像処理装置である。
【００１６】
請求項８に係る発明は、複数の前記修復手段は、それぞれ、ＧＡＮをそれぞれ異なる学習パラメータを用いて学習させることで生成された前記修復用学習済モデルを用いて前記コード画像を修復する、請求項５に記載の画像処理装置である。
【００１７】
請求項９に係る発明は、コンピュータを、コード画像を復号する第１復号手段、前記コード画像を修復する修復手段、前記修復手段により修復された修復後コード画像を復号する第２復号手段、前記第１復号手段の復号結果と前記第２復号手段の復号結果とに基づき、前記コード画像に対応する復号データを決定する決定手段、として機能させるためのプログラムである。
【発明の効果】
【００１８】
請求項１、２、３又は９に係る発明によれば、コード画像が持つ誤り訂正情報を用いて劣化したコード画像を修復する方式よりも、劣化したコード画像を修復できる可能性が高い手法を提供できる。
【００１９】
請求項４又は５に係る発明によれば、単一の修復手段を用いる場合と比べて、劣化したコード画像を修復できる可能性が高い手法を提供できる。
【００２０】
請求項６、７又は８に係る発明によれば、ＧＡＮを用いない方式よりも、コード画像の領域をより正確に求めることができる。
【図面の簡単な説明】
【００２１】
【図１】画像処理装置の一実施形態の機能構成を示す図である。
【図２】図１の画像処理装置の学習処理部をＧＡＮとして構成した場合の例を示す図である。
【図３】劣化したＱＲコードの例を示す図である。
【図４】選択部が用いる選択ルールの例を示す図である。
【図５】画像処理装置の変形例の構成を例示する図である。
【発明を実施するための形態】
【００２２】
図１を参照して、画像処理装置の一実施形態の機能構成を説明する。
【００２３】
この画像処理装置は、入力画像に含まれるバーコード等の画像コードが表すコード内容を復号（認識）する。ここで、複写やファクシミリ送信、地紋、手書き等によるゆがみ、欠損、汚れ、ノイズ等により劣化した画像コードは、標準的な復号部（デコーダ）では画質劣化により復号できない場合がある。そこで、本実施形態の画像処理装置は、劣化した画像コードを修復して復号する機能を有する。
【００２４】
以下では、画像コードの一例としてＱＲコード（登録商標）を認識する場合の例を説明する。ただし、ＱＲコードを対象とするのはあくまで一例に過ぎず、本実施形態の手法はＱＲコード以外の画像コードの認識処理にも適用可能である。
【００２５】
図１に示す画像処理装置において、学習済モデル１０は、入力画像（劣化したＱＲコード）から劣化前の正常なＱＲコードの画像を生成する学習を済ませたモデルである。学習済モデル１０は、例えば学習済みのニューラルネットワークを規定するモデルであり、例えばニューラルネットワークを構成するノード（ニューロン）同士の間の結合の重み（強度）の情報の集合として表現される。
【００２６】
学習済モデル１０は、学習処理部３０の学習処理により生成される。学習処理部３０は、背景等のノイズやゆがみ等で劣化したＱＲコードを含んだ入力画像と、その入力画像に対応する劣化前のＱＲコードを示す正解画像と、のペアを大量に用いて学習処理を行う。学習処理部３０が行う学習処理については、後で詳しく説明する。
【００２７】
画像入力部１２は、１以上のＱＲコードを含んだ入力画像の入力を受け付ける。
【００２８】
復号部１４は、その入力画像を復号して復号データ（復号データＡと呼ぶ）を出力する。すなわち復号部１４は、修復を経ない（未修復）生の入力画像内のＱＲコードを復号する。
【００２９】
修復部１６は、その入力画像内の劣化後のＱＲコードを、学習済モデル１０を用いて修復する。すなわち劣化前のＱＲコードの画像を生成あるいは推定する。
【００３０】
復号部１８は、修復部１６により修復されたＱＲコード画像に対して、公知のＱＲコード認識処理を実行することで、そのＱＲコード画像を復号する。復号部１８の復号結果を復号データＢと呼ぶこととする。
【００３１】
復号部１４及び１８は、別々の復号部として存在してもよい。また別の例として、１つの復号部を、未修復の入力画像の復号（復号部１４の機能）と、修復済みの入力画像の復号（復号部１８の機能）との両方に兼用してもよい。
【００３２】
選択部２０は、復号部１４が出力した未修復の入力画像に由来する復号データＡと、復号部１８が出力した修復済みの入力画像に由来する復号データＢから、画像処理装置として最終的に出力する復号データを選択する。選択部２０の選択処理については後で詳しく説明する。
【００３３】
次に、図２を参照して、学習処理部３０について説明する。学習処理部３０は、ＧＡＮ（Generative adversarial networks：敵対的生成ネットワーク）を構成する生成器（ジェネレータ）３０２と識別器（ディスクリミネータ）３０４とを含む。
【００３４】
また、学習処理部３０は、学習用データとして、入力画像１０１０と正解画像１０２０のペアを多数保持している。入力画像１０１０は、図３に示すように、ゆがみ、欠損、汚れ、ノイズ等の、画質劣化が生じているＱＲコードの画像である。図３に例示する入力画像１０１０では、ファクシミリ送信時の画像のゆがみや二値化の誤差等によってＱＲコードの画像にゆがみやノイズが現れている。この程度まで劣化したＱＲコードは、標準的な復号部では復号できない。これに対して正解画像１０２０は、そのような画質劣化が生じる前のそのＱＲコードの画像である。正解画像１０２０は、標準的な復号部で正しく復号できる。
【００３５】
図２の説明に戻ると、生成器３０２は、入力画像１０１０から生成画像１０３０を生成するニューラルネットワークである。生成画像１０３０は、入力画像１０１０に対応する正解画像１０２０を推定した画像である。すなわち、生成器３０２は、劣化したＱＲコードの画像である入力画像１０１０を修復し、正解画像１０２０に近い生成画像１０３０を生成する。生成器３０２は、多数の入力画像１０１０を用いて学習することで、より正解画像１０２０に近い生成画像１０３０を生成できるようになる。
【００３６】
識別器３０４は、入力された画像が、入力画像１０１０に対応する正解画像１０２０、及び入力画像１０１０から生成器３０２が生成した生成画像１０３０、のうちのいずれであるかを識別するニューラルネットワークである。学習処理部３０は、正解画像１０２０（とこれに対応する入力画像１０１０）又は生成画像１０３０（とこれに対応する入力画像１０１０）を識別器３０４に入力する。これに応じて、識別器３０４は、入力された画像が正解画像１０２０（正解:true）又は生成画像１０３０（偽物:false）のいずれであるかを識別し、その識別結果を示す信号を出力する。
【００３７】
学習処理部３０は、識別器３０４に入力した画像が正解、偽物のいずれであるかと、その識別器３０４からの出力信号とを比較し、その比較結果に基づく損失信号を生成器３０２及び識別器３０４の各々のニューラルネットワークのノード間の結合の重みパラメータにフィードバックする。これにより、生成器３０２と識別器３０４が学習を行う。
【００３８】
ＧＡＮを構成する生成器３０２及び識別器３０４は、前者が教師データ（正解画像１０２０）になるべく近い偽物（生成画像１０３０）を生成しようとし、後者がその偽物を正しく識別しようとするという形で、いわば互いに切磋琢磨しながら学習を進める。
【００３９】
学習処理部３０には、例えば「pix2pix」というアルゴリズム（Phillip Iso1a他による論文「Image-to-Image Translation with Conditional Adversarial Networks」、Berkeley AI Research (BAIR) Laboratory, UC Berkeley参照）と同様の方式を用いてもよい。この場合、生成器３０２の学習のために、識別器３０４の損失信号に加え、正解画像１０２０と生成画像１０３０との差もフィードバックする。
【００４０】
また、他の例として、Ｃｙｃｌｅ  ＧＡＮと呼ばれるＧＡＮを学習処理部３０に用いてもよい。Ｃｙｃｌｅ  ＧＡＮを用いた場合、入力画像のすべてに正解画像が用意されていない場合でも学習が可能である。
【００４１】
そして、本実施形態の画像処理装置では、以上に例示した手法により生成した学習済みの生成器３０２を学習済モデル１０として用いる。修復部１６は、この学習済モデル１０を用いて、入力画像１０１０が表す劣化したＱＲコードを修復する。
【００４２】
十分に学習した学習済モデル１０を用いれば、かなりゆがみ、ノイズ、部分的欠損がある程度激しい劣化ＱＲコードを、復号可能な状態に修復することも不可能ではない。
【００４３】
次に、選択部２０の選択処理について説明する。選択部２０は、図４に示す選択ルールに従って、復号部１４（未修復コードを復号）の復号データＡと、復号部１８（修復済コードを復号）の復号データＢから、画像処理装置として最終的に出力する復号データを選択する。
【００４４】
図４に例示するルールでは、復号部１４と復号部１８のそれぞれが復号できた（読み取りＯＫ）か復号できなかった（読み取りＮＧ）かの組合せで、どちらの復号結果を採用するかを決定する。すなわち、このルールでは、復号部１４及び１８の両方が読み取りＯＫの場合は、復号部１４の出力である復号データＡを最終的な出力とする。修復後のＱＲコードの復号結果は、修復による改変の影響を受けている可能性がないとはいえないので、修復しないＱＲコードが復号できた場合はこちらの復号結果を採用するのである。これに対し、復号部１４及び１８のうちの一方が読み取りＯＫで他方が読み取りＮＧの場合、読み取りＯＫの方の復号部１４又は１８の出力を画像処理装置の最終的な出力とする。そして、復号部１４及び１８の両方が読み取りＮＧの場合は、修復してもしなくても復号できなかったので、読み取り不能を示すデータを出力する。
【００４５】
次に、図５を参照して、変形例を説明する。図５に示す画像処理装置は、それぞれ異なる修復処理により入力画像を修復するＮ個（Ｎは２以上の整数）の修復部１６−１、１６−２、・・・１６−Ｎ（以下、区別の必要がない場合は修復部１６と総称する）を含む。そのうち例えば修復部１６−１は、図１の構成の修復部１６と同様、学習済のＧＡＮの生成器３０２である学習済モデル１０を用いて修復を行うものであってもよい。
【００４６】
またＮ個の修復部１６には、例えば、同じ構成のＧＡＮを、学習用データ（入力画像と正解画像のペア）の異なる集合で学習させたもの（のうちの生成器３０２）を用いてもよい。例えば、修復部１６−１は、集合ａに属する学習用データを用いて学習したＧＡＮの生成器３０２を学習済モデル１０として用い、修復部１６−２は、集合ａとは異なる集合ｂ（含んでいる学習用データのうちの少なくとも一部が集合ａとは異なる）に属する学習用データを用いて学習したＧＡＮの生成器３０２を学習済モデルとして用いる、といった具合である。
【００４７】
またＮ個の修復部１６には、例えば、同じ構成のＧＡＮを、それぞれ異なるパラメータで学習させたもの（のうちの生成器３０２）を用いてもよい（学習用データの集合は共通）。例えば、pix2pixアルゴリズムではＧＡＮの生成器３０２に畳み込みフィルタが用いられるが、パラメータとしてこの畳み込みフィルタのサイズを異ならせたＮ個のＧＡＮをそれぞれ学習させることで、Ｎ個の修復部１６を構成する。pix2pixのデフォルト設定では畳み込みフィルタのサイズは４×４画素であるが、サイズを２×２画素、６×６画素等と設定変更してＧＡＮを学習させることで、異なる修復部１６を構成する。ＱＲコードの劣化の仕方（例えばスキュー等のゆがみが主体なのか、地紋が主体なのか等）によって、修復に好適なフィルタサイズが異なる。このため、異なるフィルタサイズで学習した修復部１６を複数用意することで、修復により復号が可能になる可能性が高くなる。
【００４８】
また、ＧＡＮ間で異ならせるパラメータの別の例として、生成器３０２にフィードバックする２つの信号の学習への影響の比率がある。前述のようにpix2pixアルゴリズムでは、生成器３０２は、識別器３０４からの損失信号と、正解画像１０２０と生成画像１０３０との差の信号と、の２つに基づいて学習を行う。pix2pixアルゴリズムのデフォルト設定では、前者：後者の比率は１：１００であるが、これを様々に異ならせたＧＡＮを複数用意して学習させることで、複数の修復部１６を構成する。
【００４９】
また、異なる複数の学習用データ集合と異なる複数のパラメータを用意し、前者と後者の組合せを異ならせて複数のＧＡＮを学習させることで、複数の修復部１６を構成してもよい。
【００５０】
なお、複数の修復部１６の中には、ＧＡＮ以外のニューラルネットワークを学習させたものや、ニューラルネットワークを用いないもの等が含まれていてもよい。
【００５１】
復号部１８−１、１８−２、・・・１８−Ｎ（以下、区別の必要がない場合は復号部１８と総称する）は、それぞれ、修復部１６−１、１６−２、・・・１６−Ｎで修復されたＱＲコードを復号する。１つの復号部を、未修復のＱＲコードの復号と、それらＮ個の修復部１６の出力の復号とに兼用してもよい。
【００５２】
選択部２０Ａは、復号部１４、１８−１〜１８−Ｎの復号データから、画像処理装置の最終的な出力とする復号データを選択する。選択部２０Ａは、復号部１４、１８−１〜１８−Ｎのうち復号に成功（読み取りＯＫ）したものが１つしかない場合は、その成功した復号部の復号データを最終的に出力に選択する。また、復号に成功した復号部が複数ある場合は、それら復号部の復号データから多数決で画像処理装置の最終的な出力とする復号データを決定してもよい。またこの多数決において、未修復のＱＲコードを復号する復号部１４の復号データの重みを、修復済みのＱＲコードを復号する復号部１８の復号データの重みよりも重くしてもよい。例えば、多数決において最大数の復号データが２つあり、そのうちの一方が復号部１４の復号データである場合は、この復号データを画像処理装置の最終的な復号出力に決定する。
【００５３】
以上に例示した画像処理装置は、例えば、コンピュータに上述の各機能を表すプログラムを実行させることにより実現される。ここで、コンピュータは、例えば、ハードウエアとして、ＣＰＵ等のマイクロプロセッサ、ランダムアクセスメモリ（ＲＡＭ）およびリードオンリメモリ（ＲＯＭ）等のメモリ（一次記憶）、フラッシュメモリやＳＳＤ（ソリッドステートドライブ）、ＨＤＤ（ハードディスクドライブ）や等の固定記憶装置を制御するコントローラ、各種Ｉ／Ｏ（入出力）インタフェース、ローカルエリアネットワークなどのネットワークとの接続のための制御を行うネットワークインタフェース等が、たとえばバス等を介して接続された回路構成を有する。それら各機能の処理内容が記述されたプログラムがネットワーク等の経由でフラッシュメモリ等の固定記憶装置に保存され、コンピュータにインストールされる。固定記憶装置に記憶されたプログラムがＲＡＭに読み出されＣＰＵ等のマイクロプロセッサにより実行されることにより、上に例示した機能モジュール群が実現される。
【００５４】
また、画像処理装置の一部、例えば学習済モデル１０等のニューラルネットワークを、ハードウエア回路として構成してもよい。
【符号の説明】
【００５５】
１０  学習済モデル、１２  画像入力部、１４  復号部、１６  修復部、１８  復号部、２０，２０Ａ  選択部、３０  学習処理部、３０２  生成器、３０４  識別器。
【図１】
2020046751.tif 000003
【図２】
2020046751.tif 000004
【図３】
2020046751.tif 000005
【図４】
2020046751.tif 000006
【図５】
2020046751.tif 000007