(57)【要約】【課題】印刷対象の画像データを取得してから、少ない演算量で、その取得した画像データの印刷結果を推定すること。【解決手段】入力画像データをプリンタで印刷した印刷結果を推定する画像処理装置であって、前記入力画像データを取得する取得手段と、前記入力画像データに基づき前記印刷結果を推定する推定手段とを備え、前記推定手段は、任意の画像データを前記プリンタで印刷した印刷結果をスキャナで読み取ったスキャン画像データを正解データとして学習されたことを特徴とする画像処理装置である。【選択図】図２
2020190897.tif 000002
【特許請求の範囲】
【請求項１】
入力画像データをプリンタで印刷した印刷結果を推定する画像処理装置であって、
前記入力画像データを取得する取得手段と、
前記入力画像データに基づき前記印刷結果を推定する推定手段と
を備え、
前記推定手段は、任意の画像データを前記プリンタで印刷した印刷結果をスキャナで読み取ったスキャン画像データを正解データとして学習された
ことを特徴とする画像処理装置。
【請求項２】
前記推定手段は、
前記入力画像データに基づき中間データを推定する第１の推定部と、
前記第１の推定部の推定結果に基づき前記印刷結果を推定する第２の推定部と、
を含むことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記中間データは、前記第２の推定部の推定結果として出力される推定画像データより階調が低い画像データである
ことを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記中間データは、前記印刷結果において色材が所定の密度以上で塗布された領域を示す画像データである
ことを特徴とする請求項２又は３に記載の画像処理装置。
【請求項５】
前記中間データは、１画素１ビットで表現される２値画像データである
ことを特徴とする請求項４に記載の画像処理装置。
【請求項６】
前記第１の推定部及び前記第２の推定部は、ニューラルネットワークを含むことを特徴とする請求項２乃至５のいずれか１項に記載の画像処理装置。
【請求項７】
前記推定手段が前記印刷結果の推定結果として出力する推定画像データを表示する表示部
をさらに備えたことを特徴とする請求項１乃至６のいずれか１項に記載の画像処理装置。
【請求項８】
前記入力画像データ及び前記任意の画像データは、２値画像データであることを特徴とする請求項１乃至７のいずれか１項に記載の画像処理装置。
【請求項９】
前記任意の画像データは、複数の多階調画像データをそれぞれハーフトーン処理して得られた複数の２値画像データであり、
前記複数の多階調画像データは、階調数の異なる画像データを含むことを特徴とする請求項１乃至８のいずれか１項に記載の画像処理装置。
【請求項１０】
学習用の入力画像データを取得する第１の取得手段と、
前記学習用の入力画像データをプリンタで印刷した印刷結果をスキャナで読み取ったスキャン画像データを取得する第２の取得手段と、
入力画像データを前記プリンタで印刷した印刷結果を、前記入力画像データに基づき推定する推定手段の学習を、前記学習用の入力画像データと前記スキャン画像データとの組を用いて行う学習手段と、
を備えたことを特徴とする学習装置。
【請求項１１】
前記スキャン画像データから生成された中間データを取得する中間データ取得部
をさらに備え、
前記学習手段は、
前記入力画像データと、前記入力画像データに対応付けられた前記中間データとの組を用いて、前記推定手段に含まれる第１の推定部を学習する第１の学習部と、
前記中間データと、前記中間データと対応付けられた前記スキャン画像データとの組を用いて、前記推定手段に含まれる前記第１の推定部とは異なる第２の推定部を学習する第２の学習部と、
を含むことを特徴とする請求項１０に記載の学習装置。
【請求項１２】
前記中間データは、前記スキャン画像データを、前記スキャン画像データより階調が低い画像データに変換したものであることを特徴とする請求項１１に記載の学習装置。
【請求項１３】
前記学習用の入力画像データ及び前記入力画像データは、２値画像データであることを特徴とする請求項１０乃至１２のいずれか１項に記載の学習装置。
【請求項１４】
前記学習用の入力画像データは、複数の多階調画像データをそれぞれハーフトーン処理して得られた複数の２値画像データであり、
前記複数の多階調画像データは、階調数の異なる画像データを含む
ことを特徴とする請求項１０乃至１３のいずれか１項に記載の学習装置。
【請求項１５】
請求項１０乃至１４のいずれか１項に記載の学習装置と、
前記入力画像データを取得する第３の取得手段と、
前記学習装置により学習し、前記入力画像データに対して前記スキャン画像データを推定した推定画像データを出力する推定手段と
を備えたことを特徴とする画像処理装置。
【請求項１６】
入力画像データをプリンタで印刷した印刷結果を推定する画像処理方法であって、
前記入力画像データを取得する取得ステップと、
前記入力画像データに基づき前記印刷結果を推定する推定ステップと
を有し、
前記推定ステップは、任意の画像データを前記プリンタで印刷した印刷結果をスキャナで読み取ったスキャン画像データを正解データとして学習された
ことを特徴とする画像処理方法。
【請求項１７】
学習用の入力画像データを取得する第１の取得ステップと、
前記学習用の入力画像データをプリンタで印刷した印刷結果をスキャナで読み取ったスキャン画像データを取得する第２の取得ステップと、
入力画像データから前記スキャン画像データを推定する推定手段の学習を、前記学習用の入力画像データと前記スキャン画像データとの組を用いて行う学習ステップと、
を有することを特徴とする学習方法。
【請求項１８】
請求項１７に記載の学習方法と、
前記入力画像データを取得する第３の取得ステップと、
前記学習方法により学習し、前記入力画像データに対して前記スキャン画像データを推定した推定画像データを出力する推定ステップと
を有することを特徴とする画像処理方法。
【請求項１９】
コンピュータに、
入力画像データをプリンタで印刷した印刷結果を推定する画像処理方法を実行させるためのプログラムであって、
前記入力画像データを取得する取得ステップと、
前記入力画像データに基づき前記印刷結果を推定する推定ステップと
を実行させ、
前記推定ステップは、任意の画像データを前記プリンタで印刷した印刷結果をスキャナで読み取ったスキャン画像データを正解データとして学習された
ことを特徴とするプログラム。
【請求項２０】
コンピュータに、
学習用の入力画像データを取得する第１の取得ステップと、
前記学習用の入力画像データをプリンタで印刷した印刷結果をスキャナで読み取ったスキャン画像データを取得する第２の取得ステップと、
入力画像データから前記スキャン画像データを推定する推定手段の学習を、前記学習用の入力画像データと前記スキャン画像データとの組を用いて行う学習ステップと、
を実行させることを特徴とするプログラム。
【請求項２１】
コンピュータに、
請求項１７に記載の学習方法と、
前記入力画像データを取得する第３の取得ステップと、
前記学習方法により学習し、前記入力画像データに対して前記スキャン画像データを推定した推定画像データを出力する推定ステップと
を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示の技術は、プリンタで印刷した印刷結果を推定する技術に関する。
【背景技術】
【０００２】
近年、実際の印刷を行わずに印刷画質を推定するシミュレーション技術が広く開発されている。印刷物上に印刷された印刷画像全体を画像データとしてシミュレーションする技術も開発されており、特許文献１では、電子写真の印刷プロセスを詳細な物理モデルに基づいてシミュレーションし、印刷画像の推定を行っている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−２５９３９３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、印刷プロセスの物理シミュレーションに基づく印刷結果の推定では、膨大な演算が必要であるという課題があった。このため、演算リソースが限られた環境においては、物理シミュレーションに時間がかかり、例えば印刷前にユーザに印刷画質を提示するなどの、リアルタイム性を求められるアプリケーションを実現することが困難である。
【０００５】
そこで本開示の技術は、印刷対象の画像データを取得してから、少ない演算量で、その取得した画像データの印刷結果を推定することを目的とする。
【課題を解決するための手段】
【０００６】
本開示の技術は、入力画像データをプリンタで印刷した印刷結果を推定する画像処理装置であって、前記入力画像データを取得する取得手段と、前記入力画像データに基づき前記印刷結果を推定する推定手段とを備え、前記推定手段は、任意の画像データを前記プリンタで印刷した印刷結果をスキャナで読み取ったスキャン画像データを正解データとして学習されたことを特徴とする画像処理装置である。
【発明の効果】
【０００７】
本開示の技術では、印刷対象の画像データを取得してから、少ない演算量で、その取得した画像データの印刷結果を推定することができる。
【図面の簡単な説明】
【０００８】
【図１】本開示における画像処理装置を含むシステムの構成を示す模式図である。
【図２】本開示における画像処理装置の動作を示すブロック図である。
【図３】入力データ、スキャンデータ及び中間データを表す模式図である。
【図４】第１の推定部の構成を表す模式図である。
【図５】第１の学習部の動作を表す模式図である。
【図６】第１の判定部を表す模式図である。
【図７】第１の学習部による学習処理の動作を表すフローチャートである。
【図８】第２の学習部の動作を表す模式図である。
【図９】実施形態２における画像処理装置の動作を表すブロック図である。
【図１０】実施形態２における画像推定処理部の構成を表す模式図である。
【図１１】実施形態２における学習装置の動作を表す模式図である。
【図１２】実施形態２における判定部の構成を表す模式図である。
【図１３】実施形態３における画像処理装置の動作を示すブロック図である。
【図１４】実施形態４における画像処理装置の動作を示すブロック図である。
【図１５】実施形態４における画像表示部の表示するアプリケーションウィンドウである。
【発明を実施するための形態】
【実施形態１】
【０００９】
本実施形態では、２つのニューラルネットワークを用いた推定部によりモデル化するプリンタ及び記録媒体で印刷した印刷結果の推定を行う画像処理装置について説明する。なお、本開示において印刷結果とは、記録媒体上に印刷された画像である。
【００１０】
一般に、プリンタにより記録媒体上に印刷された画像、すなわち印刷結果には、プリンタの機種及び紙種に応じたトナーやインクなどの色材のランダムな飛び散りや滲みが発生する。その結果、印刷結果には、それら色材のランダムな飛び散りや滲みに起因するエッジのがたつきやボケが生じる。そのような印刷結果のスキャン画像データについて単体のニューラルネットワークでシミュレーションを行うと、実際のスキャン画像データよりもボケの強い推定画像データが出力される。
【００１１】
そこで、本実施形態では、印刷結果の推定を、異なる２つの推定部を直列に接続して実現する。前段の推定部は、色材が紙面上に所定の密度以上で塗布された領域を示し、色材の飛び散りや滲みを再現する画像データである中間データを出力する。後段の推定部は、前段の推定部から出力された中間データに対してエッジ付近の色材の粗密による階調、すなわちボケを再現することで印刷結果を推定した推定画像データを出力する。これにより、印刷結果を推定した推定画像データを、より高精度で高速に出力できる。
【００１２】
＜画像処理装置の構成＞
図１は、本開示の技術における画像処理装置の構成を示すブロック図である。ＣＰＵ１０１は、ＲＡＭ１０３をワークメモリとして、ＲＯＭ１０２およびハードディスクドライブ（ＨＤＤ）等の記憶装置１０５に格納されたオペレーティングシステム（ＯＳ）や各種プログラムを実行する。そして、ＰＣＩ（ｐｅｒｉｐｈｅｒａｌ  ｃｏｍｐｏｎｅｎｔ  ｉｎｔｅｒｃｏｎｎｅｃｔ）バスなどのシステムバス１１３を介して各構成を制御する。さらに、後述する奥行き情報処理プログラム、メディアリーダードライバを含む各種プログラムを実行する。
【００１３】
ＣＰＵ１０１は、システムバス１１３および記憶装置インタフェイス１０４を介して記憶装置１０５にアクセスすることができる。記憶装置インタフェイス（Ｉ／Ｆ）１０４は、記憶装置１０５や光ディスクドライブなどの２次記憶装置を接続する、例えばシリアルＡＴＡ（ＳＡＴＡ）等のインタフェイスである。ＣＰＵ１０１は、記憶装置Ｉ／Ｆ１０４を介して、記憶装置１０５からのデータ読み出し、および記憶装置１０５へのデータ書き込みが可能である。また、ＣＰＵ１０１は、後述する処理のユーザインタフェースや処理結果を、グラフィックアクセラレータ１１１を介してディスプレイ１１２に表示する。さらに、ＣＰＵ１０１は、ユーザからの指示をＵＳＢインタフェイス（Ｉ／Ｆ）１０８に接続されたキーボード１０９、マウス１１０などの入力装置を介して入力する。
【００１４】
＜画像処理装置の動作＞
図２は、本実施形態の動作を示すブロック図である。まず、画像入力部２０１にて、入力画像データを取得する。画像推定処理部２０２は、画像入力部２０１から入力された入力画像データから、モデル化する特定のプリンタ及び記録媒体で印刷した印刷結果のスキャン画像データを推定する。画像推定処理部２０２に入力される入力画像データは、多階調画像データをハーフトーン処理した１ビットのモノクロ画像データである。ここで多階調画像データとは、２値画像データよりも階調数が多い画像データである。また、画像推定処理部２０２から出力される推定結果としての推定画像データは、プリンタで印刷された印刷結果をスキャナで読み取って生成されるスキャン画像データに相当する、８ビットのモノクロ画像データである。
【００１５】
本実施形態では、画像推定処理部２０２は、内部に第１の推定部２０３及び第２の推定部２０４を備えている。第１の推定部２０３は、１画素１ビットの入力画像データが入力され、中間データを出力する。ここで、第１の推定部２０３から出力される中間データは、入力画像データと同じ１画素１ビットの画像データであり、プリンタで印刷した際の色材の飛び散り又は滲みの具合が再現された２値画像データである。中間データの詳細については後述する。また、第２の推定部２０４は、１画素１ビットの中間データから、１画素８ビットの推定画像データを出力する。これら第１の推定部２０３及び第２の推定部２０４の内部パラメータは、学習部２０５にて学習される。
【００１６】
なお、本実施形態では、入力画像データの階調を１ビット、中間データの階調を１ビット、推定画像データの階調を８ビットとしたが、本開示の技術はそれに限定されない。例えば、入力画像データを２ビット、中間データの階調を２ビット、推定画像データの階調を１６ビットとしてもよい。
【００１７】
学習部２０５は、第１の学習器２０６、第２の学習器２０７、及び中間データ取得部２０８を備えている。第１の学習部２０６は、第１の推定部２０３に対して、その内部パラメータであるニューラルネットワークの各層の重みを学習させる。同様に第２の学習部２０７は、第２の推定部に対して、その内部パラメータであるニューラルネットワークの各層の重みを学習させる。
【００１８】
学習用入力データ取得部２０９は、学習用入力画像データ群をデータベースから取得する。正解データ取得部２１０は、学習用入力画像データ群をモデル化するプリンタで印刷し、印刷結果をスキャナで読み取ったスキャン画像データ群をデータベースから取得する。なお、学習部２０５で用いる学習用入力画像データ群及びスキャン画像データ群は、学習用入力画像データと、それを用いて生成されたスキャン画像データとを対応付けてデータベースに予め格納されている。学習用入力画像データとそれに対応するスキャン画像データとの対応付け方としては、例えば、それらのメタデータに共通の識別情報を書き込んでおき、その識別情報に基づき対応付けしてもよい。なお、学習用入力画像データ群は、複数の任意の多階調画像データをそれぞれハーフトーン処理した複数の２値画像データであり、複数の任意の画像データには、階調数の異なる画像データが含まれていることが望ましい。学習用入力画像データとして、例えば自然画像データをハーフトーン処理したものを用いてもよい。
【００１９】
学習用中間データ取得部２０８は、正解データ取得部２１０で取得したスキャン画像データ群から、学習用中間データ群を生成する。第１の学習部２０６は、学習用入力データ取得部２０９で得られた学習用入力画像データ群と、学習用中間データ取得部２０８で得られた学習用中間データ群とを用いてパラメータの学習を行う。第２の学習部２０７は、学習用中間データ取得部２０８で得られた学習用中間データ群と、正解データ取得部２１０で得られたスキャン画像データ群とを用いてパラメータの学習を行う。
【００２０】
なお、画像推定処理部２０２と学習部２０５とは、一体の装置として動作してもよいし、別々の装置として動作してもよい。例えば、学習部２０５で予め画像推定処理部２０２の内部パラメータを学習しておき、画像推定時には画像推定処理部２０２のみを用いるというように、別々の装置とし構成してもよい。また、学習用入力データ取得部２０９の出力は、学習部２０５を通って第１の推定部２０３に入力されているが、学習部２０５を通らずに第１の推定部２０３に直接入力する構成としてもよい。
【００２１】
図３は、入力画像データ、中間データ、及びスキャン画像データの関係を表す模式図である。図３（ａ）は白及び黒のみから構成された２値画像データである入力画像データを示す図であり、図３（ｂ）は図３（ａ）に示す入力画像データを印刷し、スキャナで読み取ったスキャン画像データである。図３（ｂ）では、プリンタの印刷プロセスにより色材が飛び散ったり滲んだりして、線のエッジががたついている。また、図３（ａ）の入力画像データは２値画像であるため白及び黒の画素のみから構成されているが、図３（ｂ）のスキャン画像データは２５６階調の画像データであるためグレーの画素が存在し、線のエッジ周辺にボケが発生している。図３（ｃ）は、図３（ｂ）のスキャン画像データを２値化して作成した中間データである。図３（ｂ）と図３（ｃ）とでは、黒の画素領域の輪郭の形状は一致しており、図３（ｃ）は、図３（ｂ）のスキャン画像データから所定値以上の画素値を有する画素の位置情報のみを抽出し、色材の濃淡情報を省いたデータとなっている。
【００２２】
図３（ａ）の入力画像データから図３（ｂ）のスキャン画像データを直接推定するモデルを構築すると、出力される推定画像データは実物のスキャン画像データよりもボケた画像データとなってしまう。これは、図３（ｂ）のエッジのがたつきが、色材の飛び散りや滲みに起因し、ランダムに発生するからである。このようなランダムなエッジのがたつきの推定結果を多階調画像データとして出力するように学習させると、エッジのがたつきのランダム成分が平均化された値は、グレー値として画像データに書き出されることになる。そのため、エッジのがたつきの推定とボケの推定とを１つの推定部に学習させると、エッジのがたつきに由来するボケを含んだ、スキャン画像データよりもボケた画像データを出力するモデルが学習される。
【００２３】
本実施形態では、エッジのがたつきの推定とエッジのボケの推定とを２つの別々の推定部を用いて行ってスキャン画像データの推定を行うことで、学習コストを抑えながら推定精度の向上を実現している。
【００２４】
第１の推定部２０３は、図３（ａ）に示すような入力画像データを入力とし、図３（ｃ）に示すような中間データを出力とするモデルを学習している。図３（ａ）に示す１画素１ビットの入力画像データから図３（ｃ）の１画素１ビットの中間データに変化するモデルには、色材の飛び散りや滲みに起因するエッジのランダムな変化が含まれている。一方、第１の推定部２０３から出力される中間データが２値画像データであり、色材の濃淡を表現する階調を有さないため、第１の推定部２０３の推定には色材の濃淡に起因する画像のボケ推定は含まないと言える。
【００２５】
第２の推定部２０４は、図３（ｃ）に示すような中間データを入力とし、図３（ｂ）に示すような１画素８ビットの階調を有する印刷結果のスキャン画像データを推定するモデルを学習している。図３（ｂ）と図３（ｃ）とでは、画素値が最小（黒）の画素群の輪郭は一致しており、エッジは変化していない。すなわち、第２の推定部２０４の推定には、色材の飛び散りや滲みに起因するエッジのランダムな変化の推定はほとんど含まない。これにより、実物と同等のボケを再現する、２値中間データから多値スキャン画像への画像変換が実現できる。
【００２６】
＜第１の推定部２０３の構成＞
以下では、第１の推定部２０３の構成について説明する。図４に、第１の推定部２０３におけるニューラルネットワークの構成例を示す。以下では、本実施形態の動作を図４に示すニューラルネットワークに基づき説明するが、本開示の技術はこれに限定されない。例えば、より層の深いニューラルネットワークであってもよいし、Ｕ−ｎｅｔの形式をとっていてもよい。また、本実施形態では、２５６画素×２５６画素のモノクロ画像データを入力とするが、本開示の技術はこれに限定されない。ＣＭＹＫ画像データを入力とした場合については、実施形態２にて詳述する。
【００２７】
まず、第１の推定部２０３に入力された入力画像データは、Ｃｏｎｖｏｌｕｔｉｏｎ  Ｌａｙｅｒ４０１において畳み込み演算が行われる。入力画像データの（ｘ，ｙ）位置の画素値をＩ（ｘ，ｙ）とすると、Ｃｏｎｖｏｌｕｔｉｏｎ  Ｌａｙｅｒ４０１の出力画像データＩG1（ｘ，ｙ，ｐ）は、以下の式で算出される。
【００２８】
【数１】
2020190897.tif 000003
【００２９】
ここで、ｐは出力プレーン数であり、本実施形態ではｐ＝２とした。また、
【００３０】
【数２】
2020190897.tif 000004
【００３１】
はニューラルネットワークが保持しているＣｏｎｖｏｌｕｔｉｏｎ  Ｌａｙｅｒ４０１における重みであり、ｓ、ｔ、ｐの組み合わせごとに異なる値を有している。なお、上記式中のＩ（ｘ＋ｓ，ｘ＋ｔ）であるが、参照位置が入力画像データの有する画素位置外（例えば、Ｉ（−１，−１）など）の場合は、画素値を０として演算を行う。以上の演算により、Ｃｏｎｖｏｌｕｔｉｏｎ  Ｌａｙｅｒ４０１の出力は、２５６ｘ２５６ｘ２の画像データとなる。
【００３２】
次に、Ａｃｔｉｖａｔｉｏｎ  Ｌａｙｅｒ４０２では、Ｃｏｎｖｏｌｕｔｉｏｎ  Ｌａｙｅｒ４０１の出力画像データＩG1（ｘ，ｙ，ｐ）に対して、非線形関数を適用する。具体的には、Ａｃｔｉｖａｔｉｏｎ  Ｌａｙｅｒ４０２の出力画像データＩG2（ｘ，ｙ，ｐ）は、ランプ関数を用いて以下の式で計算される。
【００３３】
【数３】
2020190897.tif 000005
【００３４】
なお、当該処理で適用される非線形関数は、これに限定されない。例えば、双曲線正接関数（ｈｙｐｅｒｂｏｌｉｃ  ｔａｎｇｅｎｔ）などを用いてもよい。以上の演算により、Ａｃｔｉｖａｔｉｏｎ  Ｌａｙｅｒ４０２の出力画像データＩG2（ｘ，ｙ，ｐ）は、２５６×２５６×２の画像データ、すなわち２５６×２５６の画像データが２プレーンの画像データとなる。
【００３５】
次に、Ｐｏｏｌｉｎｇ  Ｌａｙｅｒ４０３にて、情報の圧縮が行われる。ここでは、２×２のｍａｘ  ｐｏｏｌｉｎｇを行うことで、出力画像データＩG2（ｘ，ｙ，ｐ）の縮小を行う。具体的には、Ｐｏｏｌｉｎｇ  Ｌａｙｅｒ  ４０３の出力画像データＩG3（ｕ，ｖ，ｐ）は、以下の式で計算される。
【００３６】
【数４】
2020190897.tif 000006
【００３７】
なお、ｕ及びｖの範囲は、０≦ｕ≦１２７、０≦ｖ≦１２７である。以上の演算により、Ｐｏｏｌｉｎｇ  Ｌａｙｅｒ４０３の出力画像データＩG3（ｕ，ｖ，ｐ）は、１２８×１２８×２の画像データとなる。
【００３８】
次に、Ｄｃｏｍｖｏｌｕｔｉｏｎ  Ｌａｙｅｒ４０４にて、出力画像データＩG3（ｕ，ｖ，ｐ）の拡大が行われる。当該処理では、Ｐｏｏｌｉｎｇ  Ｌａｙｅｒ４０３の出力画像データＩG3（ｕ，ｖ，ｐ）を一度拡大したのち、プレーンをまたいだ畳み込み演算を実施する。まず、Ｐｏｏｌｉｎｇ  Ｌａｙｅｒ４０３の出力画像データＩG3（ｕ，ｖ，ｐ）の拡大は、下記手順によって行われる。
【００３９】
【数５】
2020190897.tif 000007
【００４０】
次に、Ｄｃｏｍｖｏｌｕｔｉｏｎ  Ｌａｙｅｒ４０４にて、当該拡大処理により得られたＩT（ｘ，ｙ，ｐ）を入力として、畳み込み演算を以下の式で実施する。
【００４１】
【数６】
2020190897.tif 000008
【００４２】
ここで、
【００４３】
【数７】
2020190897.tif 000009
【００４４】
は当該ニューラルネットワークが保持しているＤｃｏｍｖｏｌｕｔｉｏｎ  Ｌａｙｅｒ４０４における重みであり、Ｃｏｎｖｏｌｕｔｉｏｎ  Ｌａｙｅｒ４０１で用いた重みとは異なる。なお、上記式中のＩT（ｘ＋ｓ，ｙ＋ｔ，ｐ）であるが、参照位置が画像外（例えば、ＩT（−１，−１，１）など）の場合は、画素値を０として演算を行う。以上の演算により、Ｄｅｃｏｎｖｏｌｕｔｉｏｎ  Ｌａｙｅｒ４０４の出力画像データＩG4（ｘ，ｙ）は、２５６ｘ２５６の画像データとなる。
【００４５】
Ａｃｔｉｖａｔｉｏｎ  Ｌａｙｅｒ４０５では、Ｄｅｃｏｎｖｏｌｕｔｉｏｎ  Ｌａｙｅｒ４０４の出力に対して、非線形関数を適用する。当該処理における動作はＡｃｔｉｖａｔｉｏｎ  Ｌａｙｅｒ４０２と同様であるが、非線形関数はＡｃｔｉｖａｔｉｏｎ  ｌａｙｅｒ４０２と同じとは限らない。
【００４６】
＜第２の推定部２０４の動作＞
以下では、第２の推定部２０４の動作について説明する。第２の推定部２０４は、ニューラルネットワークにて構成されており、その動作は第１の推定部２０３と同様である。ただし、そのニューラルネットワークのネットワーク構成や重みは第１の推定部２０３と必ずしも同じである必要はない。
【００４７】
＜第１の学習部２０６の構成及び動作＞
本実施形態では、第１の学習部２０６は、第１の推定部２０３にＧＡＮ（Ｇｅｎｅｒａｔｉｖｅ  Ａｄｖｅｒｓａｒｉａｌ  Ｎｅｔｗｏｒｋ）のフレームワークを用いて学習させる。本実施形態では、学習用入力データ及び正解データの組を入力とし、第１の推定部２０３の出力画像誤差、すなわち学習用入力画像データと正解データとの差が最小となるように、モデルを学習する。ここで、学習用入力データは、学習用に予めデータベース化しておいた、多階調画像データをハーフトーン処理した２値画像データ群である。また、正解データは、学習用入力画像データ群をモデル化するプリンタ及び記録媒体で印刷し、その印刷結果をスキャンしたスキャン画像データ群に基づき算出した、学習用中間データを用いる。学習用中間データは、スキャン画像データを２値化したものであり、色材の飛び散り又は滲みの具合に関する情報を含むボケの無い画像データである。学習用中間データの具体的な算出方法は後述する。
【００４８】
図５に、第１の学習部２０６の構成例を示す。学習対象である第１の推定部２０３は、入力画像データに対して中間データを計算する。
【００４９】
第１の判定部５０１は、第１の学習部２０６に入力された画像データが正解データであるか、第１の推定部２０３が出力した中間データであるかを判定する。第１の判定部５０１は、第１の推定部２０３のパラメータを学習するための判定器であり、ニューラルネットワークにて構成されている。第１の判定部５０１は、入力された画像データを正解データと判定した場合は１を、第１の推定部２０３が出力した中間データと判定した場合は０を返す。第１の判定部５０１の構成は後述する。
【００５０】
誤差算出部５０２は、第１の学習部２０６に入力された画像データに対する第１の判定部５０１の判定結果に基づき、第１の推定部２０３が出力した中間データと正解データとの誤差を算出する。
【００５１】
パラメータ更新部５０３は、誤差算出部５０２が算出した誤差に基づき、第１の推定部２０３及び第１の判定部５０１のパラメータを更新する。
【００５２】
＜第１の判定部５０１の構成＞
以下では、第１の判定部５０１の構成について説明する。図６に、第１の判定部５０１におけるニューラルネットワークの構成例を示す。以下では、本実施形態の動作を図６に示すニューラルネットワークに基づき説明するが、本開示の技術はこれに限定されない。例えば、より層の深いニューラルネットワークであってもよいし、Ｕ−ｎｅｔの形式をとっていてもよい。また、本実施形態では、２５６×２５６のモノクロ画像データを入力とするが、本開示の技術はこれに限定されない。
【００５３】
まず、入力された画像データは、Ｃｏｎｖｏｌｕｔｉｏｎ  Ｌａｙｅｒ６０１にて畳み込み演算が行われる。当該処理の動作はＣｏｎｖｏｌｕｔｉｏｎ  Ｌａｙｅｒ４０１と同様であり、Ｃｏｎｖｏｌｕｔｉｏｎ  Ｌａｙｅｒ６０１が出力する出力画像データＩD1（ｘ，ｙ，ｐ）は、以下の式で算出される。
【００５４】
【数８】
2020190897.tif 000010
【００５５】
次に、Ａｃｔｉｖａｔｉｏｎ  Ｌａｙｅｒ６０２が、Ｃｏｎｖｏｌｕｔｉｏｎ  Ｌａｙｅｒ６０１の出力画像データＩD1（ｘ，ｙ，ｐ）に対して非線形関数を適用することで出力画像データＩD2（ｘ，ｙ，ｐ）を出力する。当該処理の動作は、Ａｃｔｉｖａｔｉｏｎ  Ｌａｙｅｒ４０２と同様である。
【００５６】
次に、Ｐｏｏｌｉｎｇ  Ｌａｙｅｒ６０３が、情報の圧縮を行い、出力画像データＩD3（ｘ，ｙ，ｐ）を出力する。当該処理の動作はＰｏｏｌｉｎｇ  Ｌａｙｅｒ４０３と同様である。
【００５７】
次に、Ｆｕｌｌ  Ｃｏｎｎｅｃｔｅｄ  Ｌａｙｅｒ６０４が、Ｐｏｏｌｉｎｇ  Ｌａｙｅｒ６０３の出力画像データＩD3（ｘ，ｙ，ｐ）から１つの数値であるｖ値を算出する。Ｆｕｌｌ  Ｃｏｎｎｅｃｔｅｄ  Ｌａｙｅｒ６０４が出力するｖ値は、以下の式で計算される。
【００５８】
【数９】
2020190897.tif 000011
【００５９】
ここで、
【００６０】
【数１０】
2020190897.tif 000012
【００６１】
は当該ニューラルネットワークが保持している重みである。
【００６２】
最後に、Ａｃｔｉｖａｔｉｏｎ  Ｌａｙｅｒ６０５が、ｖ値に非線形処理を施して判定結果としてＯ値を出力する。ここでは、シグモイド関数を適用することで、ｖ値を値域［０，１］のＯ値に変換する。
【００６３】
＜第１の学習部２０６の動作＞
第１の学習部２０６の具体的な動作を、図７のフローチャートを用いて説明する。
【００６４】
ステップＳ７０１では、第１の判定部５０１のパラメータを初期化する。本実施形態では、正規分布に従う乱数でパラメータの初期値を決定する。
【００６５】
ステップＳ７０２では、第１の推定部２０３のパラメータを初期化する。本実施形態では、正規分布に従う乱数でパラメータの初期値を決定する。
【００６６】
ステップＳ７０３では、学習用入力画像データ全てに対して、第１の推定部２０３を用いて推定した中間データを取得する。ここで得られる中間データをＥｓｔm（１≦ｍ≦Ｍ）とする。ここで、Ｍは入力データの数である。
【００６７】
ステップＳ７０４では、中間データＥｓｔm及び正解データＲｅｆm（１≦ｍ≦Ｍ）に対して、第１の判定部５０１を用いて判定を行う。中間データＥｓｔmに対する判定結果を
【００６８】
【数１１】
2020190897.tif 000013
【００６９】
とし、正解データＲｅｆmに対する判定結果を
【００７０】
【数１２】
2020190897.tif 000014
【００７１】
とする。
【００７２】
ステップＳ７０５では、Ｓ７０４での判定結果と中間データ及び正解データとに基づき、誤差ｅを算出する。本実施形態では、誤差ｅを以下の式で定義する。
【００７３】
【数１３】
2020190897.tif 000015
【００７４】
ここで、｜｜Ｒｅｆm−Ｅｓｔm｜｜1は中間データと正解データとのＬ１ノルムである。また、λは正規化項の係数であり、本実施形態ではλ＝０．１とした。
【００７５】
ステップＳ７０６では、誤差が閾値以内であるかを判定する。否であればステップＳ７０７に進み、そうでなければ処理を終了する。
【００７６】
ステップＳ７０７では、第１の判定部５０１のパラメータを更新する。更新は勾配法により行われる。第１の判定部５０１のパラメータ、すなわちＣｏｎｖｏｌｕｔｉｏｎ  Ｌａｙｅｒ６０１の重みと、Ｆｕｌｌ  Ｃｏｎｎｅｃｔｅｄ  Ｌａｙｅｒ６０４の重みとを
【００７７】
【数１４】
2020190897.tif 000016
【００７８】
とすると、パラメータの更新は以下の式で行われる。
【００７９】
【数１５】
2020190897.tif 000017
【００８０】
ここで、γは学習係数であり、本実施形態ではγ＝０．０１とした。また、
【００８１】
【数１６】
2020190897.tif 000018
【００８２】
は誤差ｅの各パラメータにおける偏微分値であり、自動微分により計算してもよい。
【００８３】
ステップＳ７０８では、第１の推定部２０３のパラメータを更新する。更新は勾配法により行われる。第１の推定部２０３のパラメータ、すなわちＣｏｎｖｏｌｕｔｉｏｎ  Ｌａｙｅｒ４０１の重みと、Ｄｅｃｏｎｖｏｌｕｔｉｏｎ  Ｌａｙｅｒ４０４の重みとを
【００８４】
【数１７】
2020190897.tif 000019
【００８５】
とすると、パラメータの更新は以下の式で行われる。
【００８６】
【数１８】
2020190897.tif 000020
【００８７】
としてパラメータを更新する。ここで、δは学習係数であり、本実施形態ではδ＝０．０１とした。また、
【００８８】
【数１９】
2020190897.tif 000021
【００８９】
は誤差ｅの各パラメータにおける偏微分値であり、自動微分により計算してもよい。ステップＳ７０８で第１の推定部２０３のパラメータを更新した後は、ステップＳ７０３に戻る。
【００９０】
このようにして、誤差ｅが所定の閾値以内に収まるまで、第１の判定部５０１及び第１の推定部２０３のパラメータの更新を繰り返す。
【００９１】
＜学習用中間データ取得部２０８の動作＞
第１の学習部２０６では、正解データとしてスキャン画像データより算出した学習用中間データを用いていた。学習用中間データとは、スキャン画像データを２値化したものであり、色材の飛び散り又は滲みの具合を表すボケの無い画像データである。本実施形態では、閾値ｔｈを用いてスキャン画像データを２値化する。具体的には、入力されたスキャン画像データＩ（ｘ，ｙ）とすると、２値化画像データＢ（ｘ，ｙ）は、以下の式で計算できる。
【００９２】
【数２０】
2020190897.tif 000022
【００９３】
なお、閾値ｔｈは、例えば大津法を用いて決定してもよい。
【００９４】
＜第２の学習部２０７の構成及び動作＞
本実施形態では、第２の学習部２０７は、第２の推定部２０４にＧＡＮのフレームワークを用いて学習させる。本実施形態では、学習用入力画像データ及び正解データの組を入力とし、第２の推定部２０４の出力画像誤差、すなわち学習用入力画像データと正解データとの差が最小となるようにモデルを学習する。ここで、学習用入力画像データは、学習用中間データ取得部２０８で算出された学習用中間データである。また、正解データには、学習用入力画像データ群をモデル化するプリンタ及び記録媒体で印刷し、その印刷結果をスキャンしたスキャン画像データ群を用いる。
【００９５】
図８に、第２の学習部２０７の構成例を示す。学習対象である第２の推定部２０４は、入力された中間データに対して推定画像データを計算する。
【００９６】
第２の判定部８０１は、入力された画像が正解データであるスキャン画像データであるか、第２の推定部２０４が出力した推定画像データであるかを判定する判定器である。第２の判定部８０１は、第２の推定部２０４のパラメータを学習するための判定器であり、ニューラルネットワークにて構成されている。第２の判定部８０１は、入力された画像データを正解データと判定した場合は１を、第２の推定部２０４が出力した推定画像データと判定された場合は０を返す。第２の判定部８０１の構成及び動作は、第１の判定部５０１と同様である。
【００９７】
誤差算出部５０２は、第２の推定部２０４が出力した推定画像データ及び正解データに対する第２の判定部８０１の判定結果に基づき、誤差を算出する。
【００９８】
パラメータ更新部８０３は、誤差算出部８０２が算出した誤差に基づき、第２の推定部２０４及び第２の判定部８０１のパラメータを更新する。なお、第２の学習部２０７の動作は、第１の学習部２０６と同様である。
【００９９】
以上、本実施形態では、ニューラルネットワークを用いて印刷後の画像を推定する方法について述べた。本実施形態では、学習には比較的大きな演算量がかかるものの、推定時にはフィルタ演算等の少ない演算量で画像推定が可能である。また、画像推定には２つの独立したニューラルネットワークを用いることで、実物に忠実な高精度の画像推定が可能である。
【実施形態２】
【０１００】
実施形態１では、２つのニューラルネットワーク、すなわち第１の推定部２０３及び第２の推定部２０４を用いて、高精度に印刷結果のスキャン画像データを推定する方法について述べた。しかしながら、ニューラルネットワークを２つ学習する必要があるため、学習時の演算工数が多くなる。そこで本実施形態では、画像推定処理部２０２を簡略化し、１つのニューラルネットワークで印刷結果のスキャン画像データを推定する方法について述べる。本実施形態は、色材の飛び散り又は滲みが少ない、安定したプリンタをモデル化するのに適している。また、実施形態１では１プレーンの１ビット画像データを入力画像データとしていたが、本実施形態では入力画像データを、多階調画像データをハーフトーン処理したＣＭＹＫ画像データに対応する４プレーンの１ビット画像データとする。また、推定画像データをＲＧＢ画像データに対応した３プレーンの８ビット画像データとした場合の実施形態について述べる。なお、以下では、実施形態１からの差分についてのみ説明する。
【０１０１】
＜画像処理装置の動作＞
図９は、本実施形態の動作を示すブロック図である。画像入力部９０１は、入力画像を取得する。画像推定処理部９０２は、画像入力部９０１から入力された入力画像データから、モデル化するプリンタ及び記録媒体で印刷した印刷結果を推定する。画像推定処理部９０２に入力される画像データは、多階調画像データをハーフトーン処理したＣＭＹＫ画像データに対応する４プレーンの１ビット画像データである。また、画像推定処理部９０２から出力される推定画像データは、プリンタで印刷された印刷結果をスキャナで読み取ったスキャン画像データに相当し、ＲＧＢ画像データに対応する３プレーンの８ビット画像データである。また、画像推定処理部９０２の内部パラメータは、学習部９０３にて学習される。
【０１０２】
学習部９０３は、学習用入力データ取得部９０４により得られた入力画像データ群と、正解データ取得部９０５により得られたスキャン画像データ群を用いて、画像推定処理部９０２に対して、その内部パラメータを学習させる。
【０１０３】
なお、画像推定処理部９０２と学習部９０３は別々の装置として動作してもよい。例えば、学習部９０３で予め画像推定処理部９０２の内部パラメータを学習しておき、画像推定時には画像推定処理部９０２のみを用いてもよい。
【０１０４】
＜画像推定処理部９０２の構成＞
以下では、本実施形態における画像推定処理部９０２の構成について説明する。実施形態１と異なり、画像推定処理部９０２は単一のニューラルネットワークにて構成されている。図１０に、画像推定処理部９０２におけるニューラルネットワークの構成例を示す。以下では、本実施形態の動作を図１０に示すニューラルネットワークに基づき説明するが、本開示の技術はこれに限定されない。
【０１０５】
まず、２５６×２５６×４の入力画像データは、Ｃｏｎｖｏｌｕｔｉｏｎ  Ｌａｙｅｒ１００１にて畳み込み演算を行われる。入力画像データのｐプレーンの（ｘ，ｙ）位置の画素値をＩ（ｘ，ｙ，ｐ１）とすると、Ｃｏｎｖｏｌｕｔｉｏｎ  Ｌａｙｅｒ１００１の出力画像データＩG1（ｘ，ｙ，ｐ２）は、以下の式で計算できる。
【０１０６】
【数２１】
2020190897.tif 000023
【０１０７】
ここで、ｐ１は入力画像のプレーン番号を表し、１≦ｐ１≦４である。また、ｐ２はＩG1のプレーン番号であり、１≦ｐ２≦８である。また、
【０１０８】
【数２２】
2020190897.tif 000024
【０１０９】
は当該ニューラルネットワークが保持している重みである。なお、上記式中のＩ（ｘ＋ｓ，ｙ＋ｔ，ｐ１）であるが、参照位置が画像外（例えば、Ｉ（−１，−１，１）など）の場合は、画素値を０として演算を行う。以上の演算により、Ｃｏｎｖｏｌｕｔｉｏｎ  Ｌａｙｅｒ１００１の出力は、２５６ｘ２５６ｘ８の画像データとなる。
【０１１０】
Ａｃｔｉｖａｔｉｏｎ  Ｌａｙｅｒ１００２の動作は、Ａｃｔｉｖａｔｉｏｎ  Ｌａｙｅｒ４０２と同等である。
【０１１１】
Ｐｏｏｌｉｎｇ  Ｌａｙｅｒ１００３では、情報の圧縮が行われる。ここでは、２×２のｍａｘ  ｐｏｏｌｉｎｇを行うことで、画像を縮小する。具体的には、Ｐｏｏｌｉｎｇ  Ｌａｙｅｒ１００３の出力画像データＩG3（ｕ，ｖ，ｐ２）は、
【０１１２】
【数２３】
2020190897.tif 000025
【０１１３】
として計算される。なお、ｕ及びｖの範囲は、０≦ｕ≦１２７、０≦ｖ≦１２７である。以上の演算により、Ｐｏｏｌｉｎｇ  Ｌａｙｅｒ１００３の出力は、１２８×１２８×８の画像データとなる。
【０１１４】
次に、Ｄｅｃｏｎｖｏｌｕｔｉｏｎ  Ｌａｙｅｒ１００４にて、画像の拡大が行われる。当該処理では、Ｐｏｏｌｉｎｇ  Ｌａｙｅｒ１００３の出力画像を一度拡大したのち、プレーンをまたいだ畳み込み演算を実施する。まず、Ｐｏｏｌｉｎｇ  Ｌａｙｅｒ１００３の出力画像データＩG3（ｕ，ｖ，ｐ２）の拡大は、下記手順によって行われる。
【０１１５】
【数２４】
2020190897.tif 000026
【０１１６】
次に、Ｄｅｃｏｎｖｏｌｕｔｉｏｎ  Ｌａｙｅｒ１００４にて、当該拡大処理により得られたＩTを入力として、畳み込み演算を以下の式で実施する。
【０１１７】
【数２５】
2020190897.tif 000027
【０１１８】
ここで、
【０１１９】
【数２６】
2020190897.tif 000028
【０１２０】
は当該ニューラルネットワークが保持している重みであり、Ｃｏｎｖｏｌｕｔｉｏｎ  Ｌａｙｅｒ１００１で用いた重みとは異なる。また、ｐ３はＩG4のプレーン番号であり、１≦ｐ３≦３である。なお、上記式中のＩT（ｘ+ｓ，ｙ+ｔ，ｐ２）であるが、参照位置が画像外（例えば、ＩT（−１，−１，１）など）の場合は、画素値を０として演算を行う。以上の演算により、Ｄｅｃｏｎｖｏｌｕｔｉｏｎ  Ｌａｙｅｒ１００４では、２５６ｘ２５６×３の画像が出力される。
【０１２１】
Ａｃｔｉｖａｔｉｏｎ  Ｌａｙｅｒ１００５の動作は、Ａｃｔｉｖａｔｉｏｎ  Ｌａｙｅｒ４０５と同様である。
【０１２２】
以上の処理により、２５６×２５６×４のＣＭＹＫ入力画像は、２５６×２５６×３のＲＧＢ画像に変換される。
【０１２３】
＜学習装置９０３の構成＞
以下では、画像推定処理部９０２の内部パラメータの学習を行う学習装置９０３について説明する。本実施形態では、実施形態１と同様に、学習装置９０３は、ＧＡＮのフレームワークを用いて画像推定処理部９０２の内部パラメータを学習する。入力データは、学習用に予めデータベース化しておいた、多階調画像データをハーフトーン処理したＣＭＹＫ画像データに対応する４プレーンの１ビット画像データからなる学習用入力画像データ群である。また、正解データは、学習用入力画像データ群をモデル化するプリンタ及び記録媒体で印刷し、その印刷結果をスキャナで読み取ったＲＧＢ画像データに対応する８ビット画像データからなるスキャン画像データ群である。本実施形態では、実施形態１とは異なり、中間データを学習に用いていない。すなわち、本実施形態の画像推定処理部９０２では、入力画像データからのスキャン画像データの推定を、単一のニューラルネットワークで直接学習している。
【０１２４】
図１１は、学習装置９０３の構成例を示している。学習対象である画像推定処理部９０２は、入力画像データに対してスキャン画像データを推定した推定画像を計算する。
【０１２５】
判定部１１０１は、入力された画像データが正解データであるか、画像推定処理部９０２の出力する推定画像データであるかを判定する。判定部１１０１は、入力された画像データが、正解データと判定された場合は１を、画像推定処理部９０２が出力した推定画像データと判定された場合は０を返す。第１の判定部１１０１の構成は後述する。
【０１２６】
誤差算出部１１０２は、推定画像及び正解画像に対す判定部１１０１の判定結果に基づき、誤差を算出する。パラメータ更新部１１０３は、誤差算出部１１０２の誤差に基づき、画像推定処理部９０２及び判定部９０１のパラメータを更新する。なお、本実施形態において、学習部９０２の動作は、実施形態１における第１の学習部２０１と同様である。
【０１２７】
＜判定部１１０１の構成＞
以下では、判定部１１０１の構成について説明する。図１２に、判定部１１０１におけるニューラルネットワークの構成例を示す。以下では、本実施形態の動作を図１２に示すニューラルネットワークに基づき説明するが、本開示の技術はこれに限定されない。
【０１２８】
まず、Ｃｏｎｖｏｌｕｔｉｏｎ  Ｌａｙｅｒ１２０１が、入力された３プレーンの画像データに対して畳み込み演算を行い、出力画像データＩD1（ｘ，ｙ，ｐ4）を出力する。ここでｐ４はＩD1のプレーン番号であり、１≦ｐ４≦６である。次に、Ａｃｔｉｖａｔｉｏｎ  Ｌａｙｅｒ１２０２が、出力画像データＩD1（ｘ，ｙ，ｐ4）に対して非線形処理を施して出力画像データＩD2（ｘ，ｙ，ｐ4）を出力する。その後、Ｐｏｏｌｉｎｇ  Ｌａｙｅｒ１２０３が出力画像データＩD2（ｘ，ｙ，ｐ4）に対して情報の圧縮を行い、出力画像データＩD3（ｘ，ｙ，ｐ4）を出力する。当該処理は、Ｃｏｎｖｏｌｕｔｉｏｎ  Ｌａｙｅｒ１００１、Ａｃｔｉｖａｔｉｏｎ  Ｌａｙｅｒ１００２、Ｐｏｏｌｉｎｇ  Ｌａｙｅｒ１００３と同様である。
【０１２９】
次に、Ｆｕｌｌ  Ｃｏｎｎｅｃｔｅｄ  Ｌａｙｅｒ１２０４にて、Ｐｏｏｌｉｎｇ  Ｌａｙｅｒ１２０３の出力画像データＩD3（ｘ，ｙ，ｐ4）から１つの数値であるｖ値を算出する。Ｆｕｌｌ  Ｃｏｎｎｅｃｔｅｄ  Ｌａｙｅｒ１２０４が出力するｖ値は、以下の式で計算される。
【０１３０】
【数２７】
2020190897.tif 000029
【０１３１】
ここで、
【０１３２】
【数２８】
2020190897.tif 000030
【０１３３】
は当該ニューラルネットワークが保持している重みである。
【０１３４】
最後に、Ａｃｔｉｖａｔｉｏｎ  Ｌａｙｅｒ１２０５が、ｖ値に非線形処理を施して判定結果としてＯ値を出力する。当該処理は、Ａｃｔｉｖａｔｉｏｎ  Ｌａｙｅｒ６０５と同様である。
【０１３５】
以上の実施形態では、１つのニューラルネットワークを用いて、推定画像を取得する方法について述べた。本実施形態によれば、学習時の演算工数を少なくすることが可能である。
【実施形態３】
【０１３６】
実施形態１では、色材の飛び散りや滲みを再現する第１の推定部と、色材の飛び散り・滲み情報から印刷結果を推定する第２の推定部の２つの推定部を用いていた。しかしながら、例えばプリンタの安定性を推定する場合など、色材の飛び散り・滲み情報のみを知りたいケースもある。そこで本実施形態では、第１の推定部のみを用いて、中間データのみを出力する実施形態について説明する。以下では、実施形態１からの差分についてのみ説明する。
【０１３７】
＜画像処理装置の動作＞
図１３は、本実施形態の動作を示すブロック図である。画像入力部１３０１は、入力画像データを取得する。
【０１３８】
画像推定処理部１３０２は、入力画像データに対して、当該画像データをモデル化するプリンタ及び記録媒体で印刷した場合の色材の飛び散り・滲み情報を推定する。画像推定処理部１３０２の入力は、多階調画像データをハーフトーン処理した１ビットモノクロ画像データである。画像推定処理部１３０２の出力は、印刷結果のスキャン画像データに相当する、８ビットモノクロ画像データである。
【０１３９】
また、画像推定処理部１３０２の内部パラメータは、学習部１３０３にて学習される。なお、画像推定処理部１３０２と学習部１３０３は別々の装置として動作してもよい。例えば、学習部１３０３で予め画像推定処理部１３０２の内部パラメータを学習しておき、画像推定時には画像推定処理部１３０２のみを用いてもよい。
【０１４０】
画像推定処理部１３０２の構成は、実施形態１の第１の推定部２０３と同様である。また、学習部１３０３の構成は、実施形態１の第１の学習部２０６と同様である。
【０１４１】
本実施形態では、印刷結果を推定するのではなく、色材の飛び散りや滲みの度合を推定する方法について述べた。本実施形態によれば、少ない学習演算量で、色材の飛び散りや滲みの度合を高精度に推定できる。
【実施形態４】
【０１４２】
これまでの実施形態１〜３では、入力の画像データに対して、印刷後の推定画像データを算出する。これに対し本実施形態では、さらに表示部を備え、推定画像データを印刷前にユーザに表示する実施形態について述べる。以下では、実施形態２からの差分について述べる。
【０１４３】
＜画像処理装置の動作＞
図１４は、本実施形態の動作を示すブロック図である。画像入力部１４０１は、入力画像データを取得する。画像推定処理部１４０２は、入力画像データに基づき、モデル化するプリンタ及び記録媒体で印刷した印刷結果を推定する。画像推定処理部１４０２の入力は、多階調画像データをハーフトーン処理したＣＭＹＫ画像データに対応した４プレーンの１ビット画像データである。また、画像推定処理部１４０２の出力は、印刷結果のスキャン画像データに相当する、ＲＧＢ画像データに対応した３プレーンの８ビット画像データである。さらに、当該推定画像データは画像表示部１４０３にてユーザに提示される。なお、画像推定処理部１４０２の構成は実施形態２と同様である。
【０１４４】
＜画像表示部１４０３の動作＞
画像表示部１４０３では、画像推定処理部１４０１の出力である推定画像データを受け取る。次に当該推定画像データを、グラフィックアクセラレータ１１１を通して、印刷前にディスプレイ１１２に表示する。
【０１４５】
図１５は、画像表示部１４０３により表示されるアプリケーションウィンドウの一例である。入力画像表示ウィンドウ１５０１には入力画像データが表示されている。推定画像表示ウィンドウ１５０２には、画像推定処理部１４０２の出力である推定画像データが表示されている。また、ユーザはボタン１５０３を押下することで、印刷をとりやめることができる。一方、ボタン１５０４を押下すれば、当該入力画像データの印刷処理に移る。なお、図１５に記載されていなが、記録媒体を選択するボタンを表示し、記録媒体ごとに推定画像データを切り替えるようにしてもよい。
【０１４６】
本実施形態では、印刷結果のシミュレーションを印刷前に行い、ユーザに提示する方法について述べた。本実施形態によれば、ユーザは、印刷前に、表示装置に印刷結果の推定画像データが表示されることで、印刷画質を確認できる。
【０１４７】
なお、実施形態１〜４では、モデル化する対象をプリンタ及び記録媒体としたが、プリンタのみ、又は記録媒体のみをモデル化対象としてもよい。また、プリンタのモデル化は、機種ごとに行っても良いし、個々のプリンタごとに行っても良い。
【０１４８】
（その他の実施例）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【図１】
2020190897.tif 000031
【図２】
2020190897.tif 000032
【図３】
2020190897.tif 000033
【図４】
2020190897.tif 000034
【図５】
2020190897.tif 000035
【図６】
2020190897.tif 000036
【図７】
2020190897.tif 000037
【図８】
2020190897.tif 000038
【図９】
2020190897.tif 000039
【図１０】
2020190897.tif 000040
【図１１】
2020190897.tif 000041
【図１２】
2020190897.tif 000042
【図１３】
2020190897.tif 000043
【図１４】
2020190897.tif 000044
【図１５】
2020190897.tif 000045