(57)【要約】【課題】ドットデータを用いて印刷される画像の画質を向上させる。【解決手段】画像処理装置は、対象画像のうちの一部である第１入力範囲に対応する第１部分画像データと、入力パラメータである第１値と、を機械学習モデルに入力することによって、第１出力範囲内のドットの形成状態を示す第１部分ドットデータを機械学習モデルに出力させ、第１入力範囲とは異なる部分である第２入力範囲に対応する第２部分画像データと、入力パラメータである第２値と、を機械学習モデルに入力することによって、第２出力範囲内のドットの形成状態を示す第２部分ドットデータを機械学習モデルに出力させる。機械学習モデルは、第２部分画像データが第１部分画像データと同一のデータである場合であっても、入力パラメータが異なることに基づいて、第１部分ドットデータとは異なる第２部分ドットデータを出力する。【選択図】  図６
2020127081.tif 000002
【特許請求の範囲】
【請求項１】
印刷材を用いて印刷媒体上にドットを形成する印刷実行部のための画像処理装置であって、
複数個の画素を含む対象画像を示す対象画像データを取得する画像取得部と、
前記対象画像データを用いて、前記対象画像に対応する印刷画像の複数個の画素のそれぞれについて前記ドットの形成状態を示すドットデータを生成するドットデータ生成部と、
を備え、
前記ドットデータ生成部は、
前記対象画像データのうち、前記対象画像のうちの一部である第１入力範囲に対応する第１部分画像データと、入力パラメータである第１値と、を機械学習モデルに入力することによって、前記印刷画像のうち、前記第１入力範囲に対応する範囲を含む第１出力範囲内の前記ドットの形成状態を示す第１部分ドットデータを前記機械学習モデルに出力させ、
前記対象画像データのうち、前記対象画像のうちの前記第１入力範囲とは異なる部分である第２入力範囲に対応する第２部分画像データと、前記入力パラメータとしての第２値であって前記第１値とは異なる前記第２値と、を前記機械学習モデルに入力することによって、前記印刷画像のうち、前記第２入力範囲に対応する範囲を含む第２出力範囲内の前記ドットの形成状態を示す第２部分ドットデータを前記機械学習モデルに出力させ、
前記第１部分ドットデータと前記第２部分ドットデータとを用いて、前記ドットデータを生成し、
前記機械学習モデルは、前記第２部分画像データが前記第１部分画像データと同一のデータである場合であっても、前記入力パラメータが異なることに基づいて、前記第１部分ドットデータとは異なる前記第２部分ドットデータを出力する、画像処理装置。
【請求項２】
請求項１に記載の画像処理装置であって、
前記第２入力範囲は、前記対象画像のうちの前記第１入力範囲に隣接する一部であり、
前記第１出力範囲は、前記印刷画像のうち、前記第１入力範囲に対応する範囲と、前記第２入力範囲の一部に対応する範囲と、を含み、
前記第２出力範囲は、前記印刷画像のうち、前記第２入力範囲に対応する範囲と、前記第１入力範囲の一部に対応する範囲と、を含み、
前記第１出力範囲と前記第２出力範囲とは、前記第１入力範囲と前記第２入力範囲との境界に対応する部分において互いに重複している、画像処理装置。
【請求項３】
印刷材を用いて印刷媒体上にドットを形成する印刷実行部のための画像処理装置であって、
複数個の画素を含む対象画像を示す対象画像データを取得する画像取得部と、
前記対象画像データを用いて、前記対象画像に対応する印刷画像の複数個の画素のそれぞれについて前記ドットの形成状態を示すドットデータを生成するドットデータ生成部と、
を備え、
前記ドットデータ生成部は、
前記対象画像データのうち、前記対象画像のうちの一部である第１入力範囲に対応する第１部分画像データを機械学習モデルに入力することによって、第１出力範囲内の前記ドットの形成状態を示す第１部分ドットデータを前記機械学習モデルに出力させ、
前記対象画像データのうち、前記対象画像のうちの前記第１入力範囲に隣接する一部である第２入力範囲に対応する第２部分画像データを前記機械学習モデルに入力することによって、第２出力範囲内の前記ドットの形成状態を示す第２部分ドットデータを前記機械学習モデルに出力させ、
前記第１部分ドットデータと前記第２部分ドットデータとを用いて、前記ドットデータを生成し、
前記第１出力範囲は、前記印刷画像のうち、前記第１入力範囲に対応する範囲と、前記第２入力範囲の一部に対応する範囲と、を含み、
前記第２出力範囲は、前記印刷画像のうち、前記第２入力範囲に対応する範囲と、前記第１入力範囲の一部に対応する範囲と、を含み、
前記第１出力範囲と前記第２出力範囲とは、前記第１入力範囲と前記第２入力範囲との境界に対応する部分において互いに重複している、画像処理装置。
【請求項４】
請求項２または３のいずれかに記載の画像処理装置であって、
前記ドットデータ生成部は、前記ドットデータのうち、前記第１出力範囲と前記第２出力範囲とが重複する重複範囲内の第１の画素の値を、前記第１部分ドットデータのうちの対応する画素の値とし、前記重複範囲内の第２の画素の値を前記第２部分ドットデータのうちの対応する画素の値とすることによって、前記ドットデータを生成する、画像処理装置。
【請求項５】
請求項４に記載の画像処理装置であって、
前記第１の画素と前記第２の画素とは、前記重複領域内の複数個の画素の中からランダムに選択される、画像処理装置。
【請求項６】
請求項１〜５のいずれかに記載の画像処理装置であって、さらに、
前記対象画像において、写真を含む第１種の領域と、前記写真とは異なる画像を含む第２種の領域と、を特定する領域特定部を備え、
前記ドットデータ生成部は、
前記第１種の領域に対応する前記第１部分ドットデータと前記第２部分ドットデータと、を前記機械学習モデルに出力させ、
前記ドットデータのうち、前記第１種の領域に対応するデータを、前記第１部分ドットデータと前記第２部分ドットデータとを用いて生成し、
前記対象画像データのうち、前記第２種の領域に対応するデータに対して、前記機械学習モデルを用いることなく、特定のハーフトーン処理を実行することによって、前記ドットデータのうち、前記第２種の領域に対応するデータを生成する、画像処理装置。
【請求項７】
対象画像のうちの一部である入力範囲に対応する部分画像データが入力され、前記対象画像に基づく印刷画像のうち、前記入力範囲に対応する範囲を含む出力範囲内のドットの形成状態を示す部分ドットデータを出力する機械学習モデルをトレーニングする方法であって、
複数組のデータセットを取得する取得ステップであって、前記複数組のデータセットのそれぞれは、前記部分画像データのサンプルである入力画像データと、複数の特定値の中から選択される１つの値である入力パラメータと、を含む、前記取得ステップと、
前記複数組のデータセットを入力として前記機械学習モデルに入力して、前記複数組のデータセットに対応する複数個の前記部分ドットデータを出力させる入出力ステップと、
前記入出力ステップにて出力される前記複数個の部分ドットデータを用いて、前記機械学習モデルによる演算に用いられる複数個の演算パラメータを調整する調整ステップと、
を備え、
前記調整ステップにおいて、前記複数個の演算パラメータは、特定の前記入力画像データと前記入力パラメータとしての第１値とを含む第１の前記データセットに対応する第１の前記部分ドットデータと、前記特定の入力画像データと前記入力パラメータとしての第２値であって前記第１値とは異なる前記第２値とを含む第２の前記データセットに対応する第２の前記部分ドットデータと、が異なるデータになるように調整される、方法。
【請求項８】
請求項７に記載の方法であって、
前記調整ステップにおいて、前記複数個の演算パラメータは、前記入出力ステップにて出力される前記複数個の部分ドットデータを用いて、特定の損失関数に基づいて算出される指標値が小さくなるように調整され、
前記特定の損失関数は、前記第１の部分ドットデータと前記第２の部分ドットデータとの差異が大きいほど小さくなる第１の項を含む、方法。
【請求項９】
請求項７または８に記載の方法であって、
前記印刷画像は、複数種の印刷材を用いて印刷される画像であり、
前記部分ドットデータは、前記複数種の印刷材に対応する複数種の前記ドットの形成状態を画素毎に示すデータであり、
前記調整ステップにおいて、前記複数個の演算パラメータは、前記入出力ステップにて出力される前記複数個の部分ドットデータを用いて、特定の損失関数に基づいて算出される指標値が小さくなるように調整され、
前記特定の損失関数は、前記部分ドットデータにおいて、２種以上の前記ドットの形成を示す画素データの個数が多いほど大きくなる第２の項を含む、方法。
【請求項１０】
請求項７〜９のいずれかに記載の方法であって、
前記調整ステップにおいて、前記複数個の演算パラメータは、前記入出力ステップにて出力される前記複数個の部分ドットデータを用いて、特定の損失関数に基づいて算出される指標値が小さくなるように調整され、
前記特定の損失関数は、前記部分ドットデータによって示される画像の粒状度が大きいほど大きくなる第３の項を含む、方法。
【請求項１１】
請求項７〜１０のいずれかに記載の方法であって、
前記調整ステップにおいて、前記複数個の演算パラメータは、前記入出力ステップにて出力される前記複数個の部分ドットデータを用いて、特定の損失関数に基づいて算出される指標値が小さくなるように調整され、
前記特定の損失関数は、前記部分ドットデータによって示される画像の濃度が、対応する前記データセットに含まれる前記入力画像データによって示される画像の濃度に近いほど小さくなる第４の項を含む、方法。
【請求項１２】
印刷材を用いて印刷媒体上にドットを形成する印刷実行部のためのコンピュータプログラムであって、
複数個の画素を含む対象画像を示す対象画像データを取得する画像取得機能と、
前記対象画像データを用いて、前記対象画像に対応する印刷画像の複数個の画素のそれぞれについて前記ドットの形成状態を示すドットデータを生成するドットデータ生成機能と、
をコンピュータに実現させ、
前記ドットデータ生成機能は、
前記対象画像データのうち、前記対象画像のうちの一部である第１入力範囲に対応する第１部分画像データと、入力パラメータである第１値と、を機械学習モデルに入力することによって、前記印刷画像のうち、前記第１入力範囲に対応する範囲を含む第１出力範囲内の前記ドットの形成状態を示す第１部分ドットデータを前記機械学習モデルに出力させ、
前記対象画像データのうち、前記対象画像のうちの前記第１入力範囲とは異なる部分である第２入力範囲に対応する第２部分画像データと、前記入力パラメータとしての第２値であって前記第１値とは異なる前記第２値と、を前記機械学習モデルに入力することによって、前記印刷画像のうち、前記第２入力範囲に対応する範囲を含む第２出力範囲内の前記ドットの形成状態を示す第２部分ドットデータを前記機械学習モデルに出力させ、
前記第１部分ドットデータと前記第２部分ドットデータとを用いて、前記ドットデータを生成し、
前記機械学習モデルは、前記第２部分画像データが前記第１部分画像データと同一のデータである場合であっても、前記入力パラメータが異なることに基づいて、前記第１部分ドットデータとは異なる前記第２部分ドットデータを出力する、コンピュータプログラム。
【請求項１３】
印刷材を用いて印刷媒体上にドットを形成する印刷実行部のためのコンピュータプログラムであって、
複数個の画素を含む対象画像を示す対象画像データを取得する画像取得機能と、
前記対象画像データを用いて、前記対象画像に対応する印刷画像の複数個の画素のそれぞれについて前記ドットの形成状態を示すドットデータを生成するドットデータ生成機能と、
をコンピュータに実現させ、
前記ドットデータ生成機能は、
前記対象画像データのうち、前記対象画像のうちの一部である第１入力範囲に対応する第１部分画像データを機械学習モデルに入力することによって、第１出力範囲内の前記ドットの形成状態を示す第１部分ドットデータを前記機械学習モデルに出力させ、
前記対象画像データのうち、前記対象画像のうちの前記第１入力範囲に隣接する一部である第２入力範囲に対応する第２部分画像データを前記機械学習モデルに入力することによって、第２出力範囲内の前記ドットの形成状態を示す第２部分ドットデータを前記機械学習モデルに出力させ、
前記第１部分ドットデータと前記第２部分ドットデータとを用いて、前記ドットデータを生成し、
前記第１出力範囲は、前記印刷画像のうち、前記第１入力範囲に対応する範囲と、前記第２入力範囲の一部に対応する範囲と、を含み、
前記第２出力範囲は、前記印刷画像のうち、前記第２入力範囲に対応する範囲と、前記第１入力範囲の一部に対応する範囲と、を含み、
前記第１出力範囲と前記第２出力範囲とは、前記第１入力範囲と前記第２入力範囲との境界に対応する部分において互いに重複している、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書は、印刷媒体上にドットを形成する印刷実行部のための画像処理に関する。
【背景技術】
【０００２】
特許文献１に開示された画像処理装置は、レーザ複写機などの画像形成装置に適用される。この画像処理装置は、多値の原画像に対して設定された８画素×８画素のマトリクスの各画素の階調値をニューラルネットワークに入力する。画像処理装置は、ニューラルネットワークによる二値化演算を実行して、４画素×４画素のマトリクスの各画素の二値データを出力する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１１−５５５０７号公報
【特許文献２】特開平４−４７４７３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記技術では、二値データを用いて印刷される画像に表れ得る周期性や疑似輪郭などの画質を低下させる要素を低減させる工夫が十分に成されているとは言えなかった。このために、印刷される画像の画質が低下する可能性があった。
【０００５】
本明細書は、ドットデータを用いて印刷される画像の画質を向上できる技術を開示する。
【課題を解決するための手段】
【０００６】
本明細書に開示された技術は、上述の課題の少なくとも一部を解決するためになされたものであり、以下の適用例として実現することが可能である。
【０００７】
［適用例１］印刷材を用いて印刷媒体上にドットを形成する印刷実行部のための画像処理装置であって、複数個の画素を含む対象画像を示す対象画像データを取得する画像取得部と、前記対象画像データを用いて、前記対象画像に対応する印刷画像の複数個の画素のそれぞれについて前記ドットの形成状態を示すドットデータを生成するドットデータ生成部と、を備え、前記ドットデータ生成部は、前記対象画像データのうち、前記対象画像のうちの一部である第１入力範囲に対応する第１部分画像データと、入力パラメータである第１値と、を機械学習モデルに入力することによって、前記印刷画像のうち、前記第１入力範囲に対応する範囲を含む第１出力範囲内の前記ドットの形成状態を示す第１部分ドットデータを前記機械学習モデルに出力させ、前記対象画像データのうち、前記対象画像のうちの前記第１入力範囲とは異なる部分である第２入力範囲に対応する第２部分画像データと、前記入力パラメータとしての第２値であって前記第１値とは異なる前記第２値と、を前記機械学習モデルに入力することによって、前記印刷画像のうち、前記第２入力範囲に対応する範囲を含む第２出力範囲内の前記ドットの形成状態を示す第２部分ドットデータを前記機械学習モデルに出力させ、前記第１部分ドットデータと前記第２部分ドットデータとを用いて、前記ドットデータを生成し、前記機械学習モデルは、前記第２部分画像データが前記第１部分画像データと同一のデータである場合であっても、前記入力パラメータが異なることに基づいて、前記第１部分ドットデータとは異なる前記第２部分ドットデータを出力する、画像処理装置。
【０００８】
上記構成によれば、第２部分画像データが第１部分画像データと同一のデータである場合であっても、入力パラメータが異なることに基づいて、第１部分ドットデータとは異なる第２部分ドットデータが出力される。この結果、ドットデータによって示される画像に、対象画像には存在しない周期性が表れることを抑制できる。したがって、ドットデータを用いて印刷される画像の画質を向上できる。
【０００９】
［適用例２］印刷材を用いて印刷媒体上にドットを形成する印刷実行部のための画像処理装置であって、複数個の画素を含む対象画像を示す対象画像データを取得する画像取得部と、前記対象画像データを用いて、前記対象画像に対応する印刷画像の複数個の画素のそれぞれについて前記ドットの形成状態を示すドットデータを生成するドットデータ生成部と、を備え、前記ドットデータ生成部は、前記対象画像データのうち、前記対象画像のうちの一部である第１入力範囲に対応する第１部分画像データを機械学習モデルに入力することによって、第１出力範囲内の前記ドットの形成状態を示す第１部分ドットデータを前記機械学習モデルに出力させ、前記対象画像データのうち、前記対象画像のうちの前記第１入力範囲に隣接する一部である第２入力範囲に対応する第２部分画像データを前記機械学習モデルに入力することによって、第２出力範囲内の前記ドットの形成状態を示す第２部分ドットデータを前記機械学習モデルに出力させ、前記第１部分ドットデータと前記第２部分ドットデータとを用いて、前記ドットデータを生成し、前記第１出力範囲は、前記印刷画像のうち、前記第１入力範囲に対応する範囲と、前記第２入力範囲の一部に対応する範囲と、を含み、前記第２出力範囲は、前記印刷画像のうち、前記第２入力範囲に対応する範囲と、前記第１入力範囲の一部に対応する範囲と、を含み、前記第１出力範囲と前記第２出力範囲とは、前記第１入力範囲と前記第２入力範囲との境界に対応する部分において互いに重複している、画像処理装置。
【００１０】
上記構成によれば、互いに重複する出力範囲内のドットの形成状態を示す第１部分ドットデータと第２部分ドットデータとを用いて、ドットデータが生成される。この結果、ドットデータによって示される画像において、第１入力範囲と第２入力範囲との境界に対応する部分に疑似輪郭が表れることを抑制できる。したがって、ドットデータを用いて印刷される画像の画質を向上できる。
【００１１】
［適用例３］対象画像のうちの一部である入力範囲に対応する部分画像データが入力され、前記対象画像に基づく印刷画像のうち、前記入力範囲に対応する範囲を含む出力範囲内のドットの形成状態を示す部分ドットデータを出力する機械学習モデルをトレーニングする方法であって、複数組のデータセットを取得する取得ステップであって、前記複数組のデータセットのそれぞれは、前記部分画像データのサンプルである入力画像データと、複数の特定値の中から選択される１つの値である入力パラメータと、を含む、前記取得ステップと、前記複数組のデータセットを入力として前記機械学習モデルに入力して、前記複数組のデータセットに対応する複数個の前記部分ドットデータを出力させる入出力ステップと、前記入出力ステップにて出力される前記複数個の部分ドットデータを用いて、前記機械学習モデルによる演算に用いられる複数個の演算パラメータを調整する調整ステップと、
を備え、前記調整ステップにおいて、前記複数個の演算パラメータは、特定の前記入力画像データと前記入力パラメータとしての第１値とを含む第１の前記データセットに対応する第１の前記部分ドットデータと、前記特定の入力画像データと前記入力パラメータとしての第２値であって前記第１値とは異なる前記第２値とを含む第２の前記データセットに対応する第２の前記部分ドットデータと、が異なるデータになるように調整される、方法。
【００１２】
上記方法によってトレーニングされた機械学習モデルは、入力される複数個のデータセットに含まれる部分画像データが互いに同一であっても入力パラメータが互いに異なる場合には、互いに異なる部分ドットデータを出力できる。この結果、上記方法によってトレーニングされた機械学習モデルを用いて生成されるドットデータによって示される画像に意図しない周期性が表れることを抑制できる。したがって、上記方法によってトレーニングされた機械学習モデルを用いて生成されるドットデータを用いて印刷される画像の画質を向上できる。
【００１３】
なお、本明細書に開示される技術は、種々の形態で実現することが可能であり、例えば、印刷装置、印刷方法、画像処理方法、これら装置の機能または上記方法を実現するためのコンピュータプログラム、そのコンピュータプログラムを記録した記録媒体、等の形態で実現することができる。
【図面の簡単な説明】
【００１４】
【図１】実施例の印刷システム１０００の構成を示すブロック図である。
【図２】画像処理のフローチャートである。
【図３】対象画像データによって表される対象画像ＯＩの一例を示す図である。
【図４】機械学習モデルＭＭの説明図である。
【図５】変換前の値と変換後の値との対応を示すグラフである。
【図６】機械学習モデルＭＭを用いるハーフトーン処理のフローチャートである。
【図７】対象領域ＰＩと対応領域ＤＩとの一例を示す図である。
【図８】ドットデータの生成の説明図である。
【図９】学習処理を実行する計算機３００の構成図である。
【図１０】学習処理のフローチャートである。
【発明を実施するための形態】
【００１５】
Ａ．実施例
Ａ−１．画像処理装置の構成
次に、実施の形態を実施例に基づき説明する。図１は、実施例の印刷システム１０００の構成を示すブロック図である。
【００１６】
印刷システム１０００は、印刷実行部としてのプリンタ１００と、本実施例の画像処理装置としての端末装置２００と、を含んでいる。プリンタ１００と、端末装置２００と、は、有線または無線のネットワークＮＷを介して、通信可能に接続されている。
【００１７】
端末装置２００は、パーソナルコンピュータやスマートフォンなどの計算機である。端末装置２００は、端末装置２００のコントローラとしてのＣＰＵ２１０と、ＲＡＭなどの揮発性記憶装置２２０と、ハードディスクドライブやフラッシュメモリなどの不揮発性記憶装置２３０と、液晶ディスプレイなどの表示部２４０と、キーボードやマウスなどの操作部２５０と、通信インタフェース（ＩＦ）２７０と、を備えている。通信インタフェース２７０は、ネットワークＮＷに接続するための有線または無線のインタフェースを含む。
【００１８】
揮発性記憶装置２２０は、ＣＰＵ２１０が処理を行う際に生成される種々の中間データを一時的に格納するバッファ領域を提供する。不揮発性記憶装置２３０には、コンピュータプログラムＰＧが格納されている。揮発性記憶装置２２０や不揮発性記憶装置２３０は、端末装置２００の内部メモリである。
【００１９】
コンピュータプログラムＰＧは、本実施例では、プリンタ１００を制御するためのプリンタドライバプログラムであり、例えば、プリンタ１００の製造者が運用するサーバからダウンロードされる形態で提供される。これに代えて、コンピュータプログラムＰＧは、ＤＶＤ−ＲＯＭなどに格納される形態で提供されてもよい。ＣＰＵ２１０は、コンピュータプログラムＰＧを実行することにより、後述する画像処理を実行する。
【００２０】
プリンタ１００は、インクジェット方式の印刷装置であり、印刷材としての複数種類のインク（本実施例では、ＣＭＹＫの４種類のインク）を用いて用紙などの印刷媒体上にドットを形成することによって画像を印刷する印刷装置である。
【００２１】
Ａ−２：画像処理
図２は、画像処理のフローチャートである。この画像処理は、例えば、端末装置２００において、コンピュータプログラムＰＧが実行されて、プリンタドライバが起動されているときに、ユーザの開始指示に基づいて開始される。
【００２２】
Ｓ１０では、ＣＰＵ２１０は、印刷すべき画像を表す画像データを取得する。この画像データは、例えば、不揮発性記憶装置２３０に格納された複数個の画像データの中から、ユーザの指定に基づいて選択された１個の画像データである。Ｓ２０では、ＣＰＵ２１０は、取得された画像データに対してラスタライズ処理を実行して、対象画像データを生成する。本実施例の対象画像データは、複数個の画素を含む画像を示すビットマップデータであり、具体的には、ＲＧＢ値によって画素ごとの色を表すＲＧＢ画像データである。ＲＧＢ値は、３個の色成分の階調値（以下、成分値とも呼ぶ）、すなわち、Ｒ値、Ｇ値、Ｂ値を含むＲＧＢ表色系の色値である。Ｒ値、Ｇ値、Ｂ値は、例えば、２５６階調の階調値である。
【００２３】
図３は、対象画像データによって表される対象画像ＯＩの一例を示す図である。対象画像ＯＩは、Ｘ方向（図３の横方向）とＹ方向（図３の縦方向）とに沿ってマトリクス状に並んだ複数個の画素によって構成されている。図３の対象画像ＯＩは、３個のオブジェクトＯｂ１〜Ｏｂ３と、背景ＢＧと、を含んでいる。オブジェクトＯｂ１は、人物ＨＮを含む写真を表している。オブジェクトＯｂ２は、文字ＴＸを含む表を表している。オブジェクトＯｂ３は、描画、具体的には、円グラフを表している。
【００２４】
Ｓ３０では、ＣＰＵ２１０は、対象画像データに対して領域特定処理を実行する。領域処理は、対象画像ＯＩにおいて、複数個のオブジェクトＯｂ１〜Ｏｂ３が配置される領域（オブジェクト領域とも呼ぶ）を特定するとともに、各オブジェクト領域内のオブジェクトの属性を特定する処理である。オブジェクトの属性は、本実施例では、写真、テキスト、グラフィックのいずれかである。
【００２５】
領域特定処理では、例えば、ＣＰＵ２１０は、公知のエッジ検出フィルタを対象画像データに適用して、対象画像ＯＩ内のエッジを抽出して、エッジ量が基準より多い領域をオブジェクト領域として特定する。ＣＰＵ２１０は、特定された１以上のオブジェクト領域のうち、テキストとしての特徴を有する領域をテキスト領域として特定し、写真としての特徴を有する領域を写真領域として特定する。ＣＰＵ２１０は、１以上のオブジェクト領域のうち、テキストとしての特徴と写真としての特徴とのいずれも有しない領域をグラフィック領域として特定する。テキストとしての特徴は、例えば、色数が閾値ＴＨ１より少なく、かつ、背景色とは異なる色を有するオブジェクト画素の割合が閾値ＴＨ２より小さいことである。写真としての特徴は、例えば、色数が閾値ＴＨ２より多く、かつ、背景色とは異なる色を有するオブジェクト画素の割合が閾値ＴＨ２より大きいことである。なお、オブジェクト特定処理は、例えば、様々な公知の手法を採用することができ、公知の手法は、例えば、特開２０１３−０３００９０号公報、特開平５−２２５３７８号公報、特開２００２−２８８５８９号公報に開示されている。
【００２６】
図３の例では、オブジェクトＯｂ１が配置される領域が写真領域として特定され、オブジェクトＯｂ２が配置される領域が文字領域として特定され、オブジェクトＯｂ３が配置される領域がグラフィック領域として特定される。
【００２７】
Ｓ４０では、ＣＰＵ２１０は、対象画像データに対して色変換処理を実行する。これによって、対象画像データの各画素のＲＧＢ値は、印刷に用いられる複数個の色材に対応する複数個の成分値を含む色値に変換される。本実施例では、ＲＧＢ値は、ＣＭＹＫ値に変換される。ＣＭＹＫ値は、Ｃ（シアン）、Ｍ（マゼンタ）、Ｙ（イエロ）、Ｋ（ブラック）の４個の成分値（Ｃ値、Ｍ値、Ｙ値、Ｋ値）を含むＣＭＹＫ表色系の色値である。Ｃ値、Ｍ値、Ｙ値、Ｋ値は、例えば、２５６階調の階調値である。色変換処理は、不揮発性記憶装置２３０に予め格納された色変換プロファイル（図示省略）を参照して実行される。色変換プロファイルは、ＲＧＢ値とＣＭＹＫ値との対応関係を規定する情報であり、具体的には、ルックアップテーブルである。
【００２８】
Ｓ５０、Ｓ６０では、ＣＰＵ２１０は、色変換処理後の対象画像データに対してハーフトーン処理を実行して、ドットの形成状態を画素ごと、かつ、色材ごとに示すドットデータを生成する。ドットデータに含まれる各画素の値は、例えば、「大ドット」、「中ドット」、「小ドット」、「ドット無し」の４個のドットの形成状態のいずれかを示す。これに代えて、ドットデータに含まれる各画素の値は、「ドット有り」、「ドット無し」の２つのドットの形成状態のいずれかを示しても良い。本実施例では、色変換処理後の対象画像データのうち、Ｓ３０にて特定された対象画像ＯＩ内の写真領域に対応するデータと、写真領域とは異なる領域（本実施例では、文字領域とグラフィック領域と背景領域）に対応するデータと、で互いに異なるハーフトーン処理が実行される。ドットデータは、プリンタ１００によって印刷すべき印刷画像を示すデータである。
【００２９】
Ｓ５０では、ＣＰＵ２１０は、色変換処理後の対象画像データのうち、写真領域に対応するデータに対して、機械学習モデルＭＭを用いるハーフトーン処理を実行する。これによって、写真領域に対応するデータに対応するドットデータが生成される。機械学習モデルＭＭを用いるハーフトーン処理については後述する。
【００３０】
Ｓ６０では、色変換処理後の対象画像データのうち、写真領域とは異なる領域に対応するデータに対して、ディザマトリクスを用いるディザ法に従うハーフトーン処理を実行する。これによって、写真領域とは異なる領域に対応するデータに対応するドットデータが生成される。なお、変形例では、ディザ法に代えて、機械学習モデルＭＭを用いない他の方法、例えば、公知の誤差拡散法に従うハーフトーン処理が採用されても良い。
【００３１】
Ｓ７０では、ＣＰＵ２１０は、ドットデータを用いて印刷ジョブを生成する。例えば、ＣＰＵ２１０は、ドットデータを、プリンタ１００にて印刷を行う際に用いられる順番に並べ替える処理と、ドットデータにプリンタ制御コードやデータ識別コードを付加する処理と、を実行する。この結果、プリンタ１００によって解釈可能な印刷ジョブが生成される。Ｓ８０では、ＣＰＵ２１０は、生成された印刷ジョブを、プリンタ１００に送信する。プリンタ１００は、印刷ジョブを受信すると、該印刷ジョブに基づいて画像を印刷する。
【００３２】
Ａ−３．機械学習モデル
図１に示すようにコンピュータプログラムＰＧは、機械学習モデルＭＭをモジュールとして含んでいる。図４は、機械学習モデルＭＭの説明図である。この機械学習モデルＭＭは、図２のＳ６０のハーフトーン処理に用いられる。機械学習モデルＭＭは、ニューラルネットワーク（Neural Network）を用いたモデルである。
【００３３】
機械学習モデルＭＭの入力は、入力画像データＩＩと、入力パラメータｒと、から成るデータセットＤＳである。入力画像データＩＩは、本実施例では、縦ｎ１画素×横ｎ２画素のサイズのＣＭＹＫ画像データである。ｎ１、ｎ２は、２以上の自然数であり、例えば、ｎ１＝ｎ２＝１６である。図４では、図の煩雑を避けるために、ｎ１＝ｎ２＝６の例が図示されている。入力画像データＩＩの各画素の値は上述したＣＭＹＫ値であるので、４個の成分値を含む。すなわち、入力画像データＩＩは、Ｃ、Ｍ、Ｙ、Ｋの４個のレイヤーを含んでいるので、（ｎ１×ｎ２×４）個の値を含んでいる（図４（Ａ）、図４（Ｂ））。入力パラメータｒは、０以上ｚ以下の整数のいずれかの値を取る。ｚは、例えば、１０である。このように、１つのデータセットＤＳは、｛（ｎ１×ｎ２×４）＋１｝個の値を含んでいる。
【００３４】
ここで、入力画像データＩＩのｎ個（ｎ＝（ｎ１×ｎ２））の画素のＣＭＹＫ値を（Ｐｌ＿Ｃ、Ｐｌ＿Ｍ、Ｐｌ＿Ｙ、Ｐｌ＿Ｋ）とする。（Ｐｌ＿Ｃ、Ｐｌ＿Ｍ、Ｐｌ＿Ｙ、Ｐｌ＿Ｋ）の各値は、０〜１の値に正規化されている。ｌは、ｎ個の画素の識別子であり、１〜ｎの整数を取る。
【００３５】
図４（Ａ）のデータセットＤＳａは、特定の入力画像データＩＩ１と、入力パラメータｒとしての値「１」と、を含む。図４（Ｂ）のデータセットＤＳｂは、特定の入力画像データＩＩ１と、入力パラメータｒとしての値「２」と、を含む。このように、データセットＤＳａとデータセットＤＳｂとは、共通の入力画像データＩＩ１と、互いに異なる入力パラメータｒと、を含む。
【００３６】
機械学習モデルＭＭの出力は、縦ｍ１画素×横ｍ２画素のサイズの部分ドットデータＯＤである。出力される各画素の値は、Ｃ、Ｍ、Ｙ、Ｋの４個の成分値を含む。すなわち、部分ドットデータＯＤは、Ｃ、Ｍ、Ｙ、Ｋの４個のレイヤーを含んでいるので、（ｍ１×ｍ２×４）個の値を含んでいる（図４（Ａ）、図４（Ｂ））。各成分値は、「大ドット」、「中ドット」、「小ドット」、「ドット無し」の４個のドットの形成状態を示す値である。例えば、「大ドット」、「中ドット」、「小ドット」、「ドット無し」を示す値は、それぞれ、１、０．３、０．１、０である。これらの値は、大ドットの濃度を１として、対応する各ドットの濃度を示す値（相対濃度値）である。
【００３７】
ここで、部分ドットデータＯＤによって示される出力画像の縦方向の画素数ｍ１および横方向の画素数ｍ２は、入力画像データＩＩによって示される入力画像の縦方向の画素数ｎ１および横方向の画素数ｎ２よりも大きい（ｍ１＞ｎ１、ｍ２＞ｎ２）。本実施例では、出力画像の縦方向の画素数ｍ１および横方向の画素数ｍ２は、入力画像の縦方向の画素数ｎ１および横方向の画素数ｎ２よりも２ずつ大きい（ｍ１＝ｎ１＋２、ｍ２＝ｎ２＋２）。
【００３８】
部分ドットデータＯＤのｍ個（ｍ＝（ｍ１×ｍ２））の画素のＣＭＹＫの各値を（Ｑｋ＿Ｃ（ｒ）、Ｑｋ＿Ｍ（ｒ）、Ｑｋ＿Ｙ（ｒ）、Ｑｋ＿Ｋ（ｒ））とする。（Ｑｋ＿Ｃ（ｒ）、Ｑｋ＿Ｍ（ｒ）、Ｑｋ＿Ｙ（ｒ）、Ｑｋ＿Ｋ（ｒ））は、０〜１の値に正規化されている。ｋは、ｍ個の画素の識別子であり、１〜ｍの整数を取る。ｒは、入力パラメータｒであり、０〜ｚの整数を取る。
【００３９】
このように、機械学習モデルＭＭは、入力画像データＩＩを部分ドットデータＯＤに変換することができる。ここで、機械学習モデルＭＭは、２つのデータセットＤＳに含まれる入力画像データＩＩが互いに同一のデータであっても、入力パラメータｒが異なることに基づいて、互いに異なる部分ドットデータＯＤを出力する。例えば、図４の例では、図４（Ａ）のデータセットＤＳａと図４（Ｂ）のデータセットＤＳｂとは、同一の入力画像データＩＩ１を含み、互いに異なる入力パラメータｒを含む。データセットＤＳａが入力された場合に出力される部分ドットデータＯＤａと、データセットＤＳｂが入力された部分ドットデータＯＤｂとは、互いに異なる。例えば、部分ドットデータＯＤａによって示される画像の全体の濃度と、部分ドットデータＯＤｂによって示される画像の全体の濃度とは、同等であるが、ドットが配置される位置は、互いに異なる。
【００４０】
図４（Ｃ）を参照して、機械学習モデルＭＭの具体的な構成例を説明する。機械学習モデルＭＭは、入力層ＩＬと、中間層ＭＬと、出力層ＯＬと、を備える階層型のニューラルネットワークＮＮと、出力変換部ＯＣと、を備える。入力層ＩＬには、上述したデータセットＤＳの｛（ｎ１×ｎ２×４）＋１｝個の値が入力値として入力される。このために、Ｎ＝｛（ｎ１×ｎ２×４）＋１｝とすると、入力層ＩＬは、Ｎ個のニューロンを備える。中間層ＭＬは、Ｌ個（Ｌは２以上の整数、例えば、Ｌは１０００〜１００００）のニューロンを備える。出力層ＯＬは、上述した部分ドットデータＯＤの（ｍ１×ｍ２×４）個の値に対応する出力値を出力する。このために、Ｍ＝（ｍ１×ｍ２×４）とすると、出力層ＯＬは、Ｍ個のニューロンを備える。
【００４１】
中間層ＭＬのＬ個のニューロンのそれぞれは、入力層ＩＬの全てのニューロンと結合されており、各結合には重みが設定されている。したがって、入力層ＩＬに入力されたＮ個の入力値から成るベクトルとＮ個の重みから成るベクトルとの内積に、バイアスを加えた値（内積＋バイアス）が、中間層ＭＬの１個のニューロンに対する入力値となる。該入力値を活性化関数に入力して得られる値が、中間層ＭＬの１個のニューロンの出力値となる。同様にして、出力層ＯＬのＭ個のニューロンのそれぞれは、中間層ＭＬの全てのニューロンと結合されており、各結合には重みが設定されている。したがって、中間層ＭＬから出力されたＬ個の出力値から成るベクトルとＬ個の重みから成るベクトルとの内積に、バイアスを加えた値（内積＋バイアス）が、出力層ＯＬの１個のニューロンに対する入力値となる。該入力値を活性化関数に入力して得られる値が、出力層ＯＬの１個のニューロンの出力値となる。各出力値は、０〜１の値となる。これによって、出力層ＯＬからＭ個の出力値が出力される。以上の演算に用いられる｛（Ｎ×Ｌ）＋（Ｌ×Ｍ）｝個の重みと（Ｌ＋Ｍ）個のバイアスとは、後述する学習処理によって調整済みの演算パラメータである。このようなニューラルネットワークＮＮとその学習アルゴリズムとは、例えば、「Rumelhart，D.E.，Hinton，G.E. and Williams，R.J.: Learning representations by back-propagating errors，Nature，Vol. 323，No.9，pp.533・536(1986)」に開示されている。
【００４２】
出力変換部ＯＣは、出力層ＯＬのＭ個のニューロンから出力される０〜１の出力値を、上述した「大ドット」、「中ドット」、「小ドット」、「ドット無し」を示す値（１、０．３、０．１、０）のいずれかに変換する。図５は、変換前の値と変換後の値との対応を示すグラフである。出力変換部ＯＣは、図５に示すように、０〜０．０５の範囲内の出力値を、「ドット無し」に対応する値「０」に変換し、０．０５〜０．２の範囲内の出力値を、「小ドット」に対応する値「０．１」に変換する。出力変換部ＯＣは、０．２〜０．７の範囲内の出力値を、「中ドット」に対応する値「０．３」に変換し、０．７〜１．０の範囲内の出力値を、「大ドット」に対応する値「１」に変換する。この結果、上述した部分ドットデータＯＤの各値が出力される。
【００４３】
Ａ−４．機械学習モデルＭＭを用いるハーフトーン処理
図２のＳ６０のハーフトーン処理について説明する。図６は、図２のＳ６０の機械学習モデルＭＭを用いるハーフトーン処理のフローチャートである。図７は、対象領域ＰＩと、対応領域ＤＩと、の一例を示す図である。
【００４４】
図７（Ａ）の対象領域ＰＩは、対象画像ＯＩのうち、Ｓ６０のハーフトーン処理の対象となる領域（本実施例では写真領域）である。図７（Ｂ）の対応領域ＤＩは、Ｓ５０、Ｓ６０のハーフトーン処理にて生成されるドットデータによって示されるドット画像（図示省略）のうち、対象領域ＰＩに対応する領域である。対応領域ＤＩは、対象領域ＰＩと同じサイズ（縦方向および横方向の画素数）を有している。対象領域ＰＩ、対応領域ＤＩに含まれる複数個の矩形は、それぞれ、１個の画素を示す。なお、対象領域ＰＩ、対応領域ＤＩは、それぞれ、ＣＭＹＫの４個のレイヤーを含むが、図７では、１個のレイヤーについてのみ図示されている。ハーフトーン処理は、４個のレイヤーについて、それぞれ、実行されるが、各レイヤーの処理は独立しており、それぞれ、同様の処理である。このために、１個のレイヤー（例えば、シアンのレイヤー）に注目して説明する。
【００４５】
Ｓ１００では、ＣＰＵ２１０は、対象領域ＰＩ（本実施例では写真領域）内に設定される複数個の入力範囲から１個の注目入力範囲を選択する。ＣＰＵ２１０は、対象領域ＰＩを複数個の入力範囲ＩＡに分割して、対象領域ＰＩに複数個の入力範囲ＩＡを設定する。ＣＰＵ２１０は、複数個の入力範囲ＩＡの中から１個の注目入力範囲を順次に選択する。図７（Ａ）の例では、対象領域ＰＩには、６個の入力範囲ＩＡ１〜ＩＡ６が設定されている。例えば、６個の入力範囲ＩＡ１〜ＩＡ６は、符号の末尾の数の順番で注目入力範囲として選択される。各入力範囲ＩＡのサイズは、上述した機械学習モデルＭＭの入力画像データＩＩのサイズ、すなわち、縦ｎ１画素×横ｎ２画素（図７の例ではｎ１＝ｎ２＝６）のサイズである。
【００４６】
Ｓ１１０では、ＣＰＵ２１０は、色変換処理後の対象画像データ（ＣＭＹＫ画像データ）のうちの注目入力範囲内の画像データを、入力画像データＩＩとして取得する。Ｓ１２０では、ＣＰＵ２１０は、入力パラメータｒとして、０〜ｚの整数値からランダムで１個の値を取得する。
【００４７】
Ｓ１３０では、ＣＰＵ２１０は、Ｓ１１０にて取得した入力画像データＩＩと、Ｓ１２０にて取得した入力パラメータｒと、から成るデータセットＤＳを、機械学習モデルＭＭに入力する。これによって、ＣＰＵ２１０は、機械学習モデルＭＭに、部分ドットデータＯＤを出力させる。以下では、図７（Ａ）の６個の入力範囲ＩＡｓ（ｓは、１〜６の整数）内の画像データを入力画像データＩＩとして含むデータセットＤＳが入力される場合に、機械学習モデルＭＭから出力される部分ドットデータＯＤを、部分ドットデータＯＤｓとも呼ぶ。
【００４８】
Ｓ１４０、Ｓ１５０では、ＣＰＵ２１０は、部分ドットデータＯＤを用いて、生成すべきドットデータのうち、注目出力範囲内のドットデータを生成する。注目入力範囲が図７（Ａ）の入力範囲ＩＡｓ（ｓは、１〜６の整数）である場合の注目出力範囲を出力範囲ＯＡｓとも呼ぶ。図７（Ｂ）には、出力範囲ＯＡ１〜ＯＡ６が図示されている。各出力範囲ＯＡｓは、部分ドットデータＯＤｓに対応するサイズを有するので、上述したように入力範囲ＩＡｓよりも縦方向に２画素分、横方向に２画素分だけ大きい。このために、出力範囲ＯＡｓは、入力範囲ＩＡｓに対応する中央範囲ＣＡｓと、中央範囲ＣＡｓの外側に隣接する外縁範囲ＥＡｓと、を含んでいる。図７（Ｂ）には、図の煩雑を避けるために、出力範囲ＯＡ１の中央範囲ＣＡ１と外縁範囲ＥＡ１と、出力範囲ＯＡ２の中央範囲ＣＡ２と外縁範囲ＥＡ２と、だけが図示されている。
【００４９】
外縁範囲ＥＡｓの一部は、入力範囲ＩＡｓに隣接する別の入力範囲に対応している。例えば、図７（Ｂ）の外縁範囲ＥＡ１の右側の部分は、入力範囲ＩＡ１に隣接する入力範囲ＩＡ２（図７（Ａ））の左側の部分に対応している。このために、図７（Ｂ）に示すように、対応領域ＤＩにおける出力範囲ＯＡ１〜ＯＡ６は、対象領域ＰＩにおける入力範囲ＩＡ１〜ＩＡ２の境界に対応する部分において、互いに重複している。そして、出力範囲ＯＡ１〜ＯＡ６は、入力範囲ＩＡ１〜ＩＡ２のそれぞれの中心部分に対応する部分において、互いに重複していない。したがって、対応領域ＤＩ上は、２以上の出力範囲ＯＡｓ（例えば、出力範囲ＯＡ１と出力範囲ＯＡ２）が重複する重複領域ＯＬＡと、２以上の出力範囲ＯＡｓが重複しない非重複領域ＮＯＡと、を含む。図７（Ｂ）において、ハッチングされた領域は、重複領域ＯＬＡであり、ハッチングされていない領域は、非重複領域ＮＯＡである。
【００５０】
Ｓ１４０では、ＣＰＵ２１０は、注目出力範囲のうち、非重複領域ＮＯＡに位置する部分のドットデータを生成する。図８は、ドットデータの生成の説明図である。図８（Ａ）〜（Ｃ）において、各画素内の整数が「ｓ」（ｓは、１〜６の整数）であることは、当該画素の値が、部分ドットデータＯＤｓの値であることを意味する。図８（Ａ）、（Ｂ）には、それぞれ、注目出力範囲が出力範囲ＯＡ１、ＯＡ２である場合の例が示されている。図８（Ｃ）には、対応領域ＤＩの全てのドットデータが生成された状態が示されている。図８（Ａ）〜（Ｃ）に示すように、注目出力範囲が出力範囲ＯＡｓである場合には、出力範囲ＯＡｓのうち、非重複領域ＮＯＡに位置する部分の各画素の値は、部分ドットデータＯＤｓの対応する画素の値とされる。例えば、出力範囲ＯＡ１のうち、非重複領域ＮＯＡに位置する部分に含まれる複数個の画素の値には、部分ドットデータＯＤ１の値が採用され、出力範囲ＯＡ２のうち、非重複領域ＮＯＡに位置する部分に含まれる複数個の画素の値には、部分ドットデータＯＤ２の値が採用される。
【００５１】
Ｓ１５０では、ＣＰＵ２１０は、注目出力範囲のうち、重複領域ＯＬＡに位置する部分のドットデータを生成する。具体的には、注目出力範囲が出力範囲ＯＡｓである場合には、重複領域ＯＬＡに位置する部分のうち、この時点までに生成済みのドットデータがない部分の各画素の値は、部分ドットデータＯＤｓの対応する画素の値とされる。そして、この時点までに生成済みのドットデータがある部分の一部の画素の値は、この時点までに生成済みの値のまま維持され、残りの一部の画素の値は、部分ドットデータＯＤｓの対応する画素の値に置換される。維持される画素と置換される画素とは、例えば、（１／２）の確率でランダムに選択される。
【００５２】
例えば、図８（Ａ）の時点では、出力範囲ＯＡ１のうちの重複領域ＯＬＡに位置する部分には、生成済みのドットデータがないために、当該部分に含まれる複数個の画素の値は、部分ドットデータＯＤ１の値とされる。図８（Ｂ）の時点では、出力範囲ＯＡ２のうち、重複領域ＯＬＡに位置する右側部分ＲＡには、生成済みのドットデータがなく、左側部分ＬＡには、生成済みのドットデータがある。このために、右側部分ＲＡの各画素の値は、部分ドットデータＯＤ２の値とされる。左側部分ＬＡに含まれる一部の画素の値は、部分ドットデータＯＤ１の値のまま維持される。左側部分ＬＡに含まれる残りの一部の値は、部分ドットデータＯＤ２の値に置換される。
【００５３】
Ｓ１６０では、ＣＰＵ２１０は、対象領域ＰＩの全ての入力範囲ＩＡ１〜ＩＡ６を注目入力範囲として処理したか否かを判断する。全ての入力範囲が処理された場合には（Ｓ１６０：ＹＥＳ）、機械学習モデルＭＭを用いるハーフトーン処理は終了される。未処理の入力範囲がある場合には（Ｓ１６０：ＮＯ）、ＣＰＵ２１０は、Ｓ１００に処理を戻す。
【００５４】
以上説明した画像処理（図２）によれば、画像取得部としてのＣＰＵ２１０は、対象画像としてのＲＧＢ画像データを取得する（図２のＳ１０、Ｓ２０）。ドットデータ生成部としてのＣＰＵ２１０は、ＲＧＢ画像データを用いてドットデータを生成する（図２のＳ４０〜Ｓ６０）。ドットデータ生成部としてのＣＰＵ２１０は、入力範囲ＩＡ１に対応する部分画像データと、入力パラメータｒである第１値（例えば、１）と、を機械学習モデルＭＭに入力することによって、入力範囲ＩＡ１（図７（Ａ））に対応する中央範囲ＣＡ１を含む出力範囲ＯＡ１（図７（Ｂ））内のドットの形成状態を示す部分ドットデータＯＤ１を機械学習モデルＭＭに出力させる（図６のＳ１３０）。ドットデータ生成部としてのＣＰＵ２１０は、入力範囲ＩＡ１とは異なる部分である入力範囲ＩＡ２（図７（Ａ））に対応する部分画像データと、入力パラメータｒとしての第２値（例えば、２）と、を機械学習モデルＭＭに入力することによって、入力範囲ＩＡ２に対応する中央範囲ＣＡ２を含む出力範囲ＯＡ２（図７（Ｂ））のドットの形成状態を示す部分ドットデータＯＤ２を機械学習モデルに出力させる（図６のＳ１３０）。ドットデータ生成部としてのＣＰＵ２１０は、部分ドットデータＯＤ１と部分ドットデータＯＤ２とを用いて、ドットデータを生成する（図６のＳ１４０、Ｓ１５０、図８）。機械学習モデルＭＭは、図４を参照して説明したように、入力範囲ＩＡ１に対応する部分画像データが入力範囲ＩＡ２に対応する部分画像データと同一のデータである場合であっても、入力パラメータｒが異なることに基づいて、部分ドットデータＯＤ１とは異なる部分ドットデータＯＤ２を出力する。この結果、ドットデータによって示される画像（例えば、図８（Ｃ）の対応領域ＤＩ）に、対象画像（例えば、図７（Ａ）の対象領域ＰＩ）には存在しない周期性が表れることを抑制できる。したがって、ドットデータを用いて印刷される画像の画質を向上できる。
【００５５】
仮に、対象領域ＰＩ（図７（Ａ））において入力範囲ＩＡ１に対応する部分画像データが入力範囲ＩＡ２に対応する部分画像データである場合に、機械学習モデルＭＭが、部分ドットデータＯＤ１と同一の部分ドットデータＯＤ２を出力するとする。この場合には、対応領域ＤＩ（図８（Ｂ））において、同じドットパターンが繰り返されることになるので、対応領域ＤＩには、対象領域ＰＩには存在しない周期性が表れる。このような周期性に起因して、例えば、モアレ（干渉縞）と呼ばれる周期的な模様が対象領域ＰＩに表れる不具合が発生し得る。本実施例の画像処理によれば、このような不具合の発生を抑制することができる。
【００５６】
さらに、上記画像処理によれば、入力範囲ＩＡ２は、対象領域ＰＩのうち、入力範囲ＩＡ１に隣接する一部である。出力範囲ＯＡ１は、対応領域ＤＩのうち、入力範囲ＩＡ１に対応する中央範囲ＣＡ１と、入力範囲ＩＡ２の一部に対応する範囲（外縁範囲ＥＡ１の一部の範囲）と、を含む（図７（Ｂ））。出力範囲ＯＡ２は、入力範囲ＩＡ２に対応する中央範囲ＣＡ２と、入力範囲ＩＡ１の一部に対応する範囲（外縁範囲ＥＡ２の一部の範囲）と、を含む（図７（Ｂ））。出力範囲ＯＡ１と出力範囲ＯＡ２とは、入力範囲ＩＡ１と入力範囲ＩＡ２との境界に対応する部分において互いに重複している（図７（Ｂ））。そして、互いに重複する出力範囲ＯＡ１、ＯＡ２内のドットの形成状態を示す部分ドットデータＯＤ１、ＯＤ２を用いて、ドットデータが生成される。この結果、ドットデータによって示される画像（例えば、対応領域ＤＩ）において、入力範囲ＩＡ１と入力範囲ＩＡ２との境界に対応する部分に疑似輪郭（例えば、ブロックノイズ）が表れることを抑制できる。したがって、ドットデータを用いて印刷される画像の画質を向上できる。仮に、出力範囲ＯＡ１と出力範囲ＯＡ２とが重複する範囲を設けない場合には、部分ドットデータＯＤ１によって示される画像と、部分ドットデータＯＤ２によって示される画像と、の境界が１本の線になるために、本実施例の画像処理と比較すると、当該線が疑似輪郭として表れる不具合が生じやすい。
【００５７】
さらに、上記画像処理によれば、ドットデータ生成部としてＣＰＵ２１０は、ドットデータのうち、出力範囲ＯＡ１と出力範囲ＯＡ２とが重複する重複範囲（図８（Ｂ）の左側部分ＬＡ）内の第１の画素の値を、部分ドットデータＯＤ１のうちの対応する画素の値とし、第２の画素の値を部分ドットデータＯＤ２のうちの対応する画素の値とすることによって、ドットデータを生成する（図８（Ｂ）、図６のＳ１５０）。上記構成によれば、重複範囲内のドットデータを、部分ドットデータＯＤ１の画素の値と、部分ドットデータＯＤ２の画素の値と、を用いて生成するので、入力範囲ＩＡ１と入力範囲ＩＡ２との境界に対応する部分に疑似輪郭が表れることを適切に抑制できる。
【００５８】
さらに、上記画像処理によれば、部分ドットデータＯＤ１の値が採用される上述した第１の画素と、部分ドットデータＯＤ２の値が採用される上述した第２の画素とは、重複領域（例えば、左側部分ＬＡ）内の複数個の画素の中からランダムに選択される。この結果、重複範囲内に疑似輪郭が表れることを効果的に抑制できる。仮に、第１の画素と第２の画素とが、規則的あるいは周期的なパターンで選択される場合には、該規則性や周期性が対応領域ＤＩに表れ得るが、上記実施例によれば、このような不具合の発生を抑制できる。
【００５９】
さらに、上記画像処理によれば、領域特定部としてのＣＰＵ２１０は、写真を含む写真領域と、写真とは異なる文字やグラフィックを含む領域と、を特定する（図２のＳ３０）。ドットデータ生成部としてのＣＰＵ２１０は、写真領域に対応するデータに対して、図６のハーフトーン処理を実行する（図２のＳ５０）。すなわち、ＣＰＵ２１０は、写真領域に対応する部分ドットデータＯＤ１および部分ドットデータＯＤ２を機械学習モデルＭＭに出力させ、写真領域に対応するドットデータを、部分ドットデータＯＤ１および部分ドットデータＯＤ２を用いて生成する。そして、領域特定部としてのＣＰＵ２１０は、対象画像データのうち、写真とは異なる文字やグラフィックを含む領域に対応するデータに対して、機械学習モデルＭＭを用いることなく、ディザ法に従うハーフトーン処理を実行することによって、当該領域に対応するドットデータを生成する（図２のＳ６０）。疑似輪郭や周期性は、比較的な均一な領域で目立ちやすく、比較的不均一な領域（例えば、強いエッジを含む領域）で目立ち難い。このために、疑似輪郭や周期性は、文字やグラフィックの領域よりも写真領域において目立ちやすい。さらに、機械学習モデルＭＭを用いるハーフトーン処理では、印刷画像において、文字やグラフィックのエッジが弱くなり、文字やグラフィックの見栄えが低下する可能性がある。上記実施例によれば、疑似輪郭や周期性が目立ちがちな写真領域の画質を向上しつつ、疑似輪郭や周期性が目立ちがたい領域の画質が低下することを適切に抑制することができる。
【００６０】
Ａ−５．機械学習モデルＭＭの学習処理
次に、機械学習モデルＭＭの学習処理について説明する。学習処理は、機械学習モデルＭＭの上述した複数個の演算パラメータ（重みおよびバイアス）を調整することで、機械学習モデルＭＭが適切な部分ドットデータＯＤを出力できるようにトレーニングする処理である。上述した不揮発性記憶装置２３０に格納されたコンピュータプログラムＰＧに組み込まれた機械学習モデルＭＭは、本学習処理によってトレーニングされた学習済みモデルである。
【００６１】
図９は、学習処理を実行する計算機３００の構成図である。計算機３００は、例えば、プリンタ１００（図１）を製造する事業者が使用するパーソナルコンピュータやサーバである。計算機３００は、計算機３００のコントローラとしてのＣＰＵ３１０と、ＲＡＭなどの揮発性記憶装置３２０と、ハードディスクドライブやフラッシュメモリなどの不揮発性記憶装置３３０と、液晶ディスプレイなどの表示部３４０と、キーボードやマウスなどの操作部３５０と、通信インタフェース（ＩＦ）３７０と、を備えている。
【００６２】
揮発性記憶装置３２０は、ＣＰＵ３１０が処理を行う際に生成される種々の中間データを一時的に格納するバッファ領域を提供する。不揮発性記憶装置３３０には、コンピュータプログラムＰＧ２が格納されている。
【００６３】
コンピュータプログラムＰＧ２は、例えば、プリンタ１００の製造者が運用するサーバからダウンロードされる形態で提供される。これに代えて、コンピュータプログラムＰＧ２は、ＤＶＤ−ＲＯＭなどに格納される形態で提供されてもよい。ＣＰＵ３１０は、コンピュータプログラムＰＧ２を実行することにより、学習処理を実行する。コンピュータプログラムＰＧ２は、複数個の演算パラメータ（重みおよびバイアス）が初期値に設定されたトレーニング前の機械学習モデルＭＭを、モジュールとして含んでいる。
【００６４】
図１０は、学習処理のフローチャートである。学習処理に先立って、作業者は、複数個の学習用の入力画像データＩＩを含む入力画像データ群ＩＧを準備する。学習用の入力画像データＩＩは、上述した図２の画像処理で入力画像データＩＩとして用いられる部分画像データのサンプルである、と言うことができる。入力画像データ群ＩＧは、ｎ個の画素のＣＭＹＫ値が取り得る全てのパターンに対応する学習用の入力画像データＩＩを含む。入力画像データＩＩのサイズ（画素数ｎ）や、ＣＭＹＫ値の各成分の階調数（例えば、２５６階調）によっては、全てのパターンに対応する学習用の入力画像データＩＩの個数が膨大になり、これらの全ての学習用の入力画像データＩＩを用いて学習処理を行うことが現実的でない場合もある。このような場合には、例えば、入力画像データ群ＩＧは、これらの全てのパターンに対応する入力画像データＩＩから選択された一部の画像データを含んでも良い。準備された入力画像データ群ＩＧは、不揮発性記憶装置３３０に格納される（図１）。
【００６５】
Ｓ２００では、ＣＰＵ３１０は、不揮発性記憶装置３３０に格納された入力画像データ群ＩＧから、１個の注目画像データを取得する。取得された注目画像データは、揮発性記憶装置３２０のバッファ領域に格納される。注目画像データのｎ個の画素のＣＭＹＫ値を（Ｐｌ＿Ｃ、Ｐｌ＿Ｍ、Ｐｌ＿Ｙ、Ｐｌ＿Ｋ）とする。ｌは、ｎ個の画素の識別子であり、１〜ｎの整数を取る。
【００６６】
Ｓ２０５では、ＣＰＵ３１０は、入力パラメータｒを初期化する、本実施例では、入力パラメータｒを１にする。
【００６７】
Ｓ２１０では、ＣＰＵ３１０は、注目画像データと、パラメータｒと、から成るデータセットＤＳを機械学習モデルＭＭに入力する。これによって、ＣＰＵ３１０は、機械学習モデルＭＭに、部分ドットデータＯＤ（ｒ）を出力させる。出力された部分ドットデータＯＤ（ｒ）は、揮発性記憶装置３２０に格納される。
【００６８】
Ｓ２１５では、ＣＰＵ３１０は、入力パラメータｒをインクリメントする、すなわち、入力パラメータｒに１を加算する。Ｓ２２０では、ＣＰＵ３１０は、入力パラメータｒは、入力パラメータｒの上限値より大きいか否かを判断する。入力パラメータｒは、１〜ｚの整数のいずれかを取るので、上限値は、ｚである。
【００６９】
入力パラメータｒが上限値以下である場合には（Ｓ２２０：ＮＯ）、ＣＰＵ３１０は、Ｓ２１０に処理を戻す。入力パラメータｒが上限値より大きい場合には（Ｓ２２０：ＹＥＳ）、ＣＰＵ３１０は、Ｓ２２５に処理を進める。Ｓ２２５に処理が進められた時点で、揮発性記憶装置３２０には、１〜ｚまでのｚ個の入力パラメータｒに対応するｚ個の部分ドットデータＯＤ（ｒ）が格納されている。１個の部分ドットデータＯＤ（ｒ）のｍ個の画素のＣＭＹＫの各値を（Ｑｋ＿Ｃ（ｒ）、Ｑｋ＿Ｍ（ｒ）、Ｑｋ＿Ｙ（ｒ）、Ｑｋ＿Ｋ（ｒ））とする。ｋは、ｍ個の画素の識別子であり、１〜ｍの整数を取る。
【００７０】
Ｓ２２５では、ＣＰＵ３１０は、ｚ個の部分ドットデータＯＤ（ｒ）のそれぞれについて、重複評価値Ｌｃｏｒ（ｒ）を算出する。重複評価値Ｌｃｏｒ（ｒ）は、以下の式（１）を用いて算出される。
【００７１】
【数１】
2020127081.tif 000003
【００７２】
ここで、ＯＱ（ｋ）は、１個の部分ドットデータＯＤ（ｒ）のｋ番目の画素において、ＣＭＹＫのうちの２色以上のドットが形成される場合には「１」を取り、ＣＭＹＫのうちの１色のドットが形成される場合およびいずれのドットも形成されない場合には「０」を取る。すなわち、ｋ番目の画素のＣＭＹＫ値（Ｑｋ＿Ｃ（ｒ）、Ｑｋ＿Ｍ（ｒ）、Ｑｋ＿Ｙ（ｒ）、Ｑｋ＿Ｋ（ｒ））が、２色以上のドットの形成を示す場合には、ＯＱ（ｋ）＝１である。ｋ番目の画素のＣＭＹＫ値が、１色のドットだけの形成を示す場合およびいずれのドットの形成も示さない場合には、ＯＱ（ｋ）＝０である。すなわち、ＯＱ（ｋ）が「１」であることは、ｋ番目の画素において２個以上のドットが重なることを意味し、ＯＱ（ｋ）が「０」であることは、ｋ番目の画素においてドットが重ならないことを意味する。
【００７３】
以上の説明および式（１）から解るように、重複評価値Ｌｃｏｒ（ｒ）は、２個以上のドットの重なる画素の割合を、０〜１の範囲の値で示す評価値である。
【００７４】
Ｓ２３０では、ＣＰＵ３１０は、ｚ個の部分ドットデータＯＤ（ｒ）のそれぞれについて、粒状性評価値Ｌｇｓ（ｒ）を算出する。粒状性評価値Ｌｇｓ（ｒ）は、以下の式（２）を用いて算出される。
【００７５】
【数２】
2020127081.tif 000004
【００７６】
ここで、Ｇ｛ＯＤ（ｒ）｝は、部分ドットデータＯＤ（ｒ）によって示される画像の粒状度を示す評価値である。Ｇ｛ＯＤ（ｒ）｝には、粒状度を算出する公知の関数が用いられる。例えば、Ｇ｛ＯＤ（ｒ）｝は、画像の濃度（各画素の値）のバラツキを、二乗平均平方根（ＲＭＳ）を用いて示すＲＭＳ粒状度を算出する関数である。あるいは、Ｇ｛ＯＤ（ｒ）｝は、ウイナースペクトラムとＶＴＦ(Visual Transfer Function)を用いたＤｏｏｌｙとＳｈａｗの評価式である。ＶＴＦは、視覚の空間周波数特性を示す関数である。Ａは、Ｇ｛ＯＤ（ｒ）｝を、０〜１の範囲の値に正規化するための係数である。以上の説明および式（２）から解るように、粒状性評価値Ｌｇｓ（ｒ）は、粒状度を０〜１の範囲の値で示す評価値である。
【００７７】
Ｓ２３５では、ＣＰＵ３１０は、ｚ個の部分ドットデータＯＤ（ｒ）のそれぞれについて、濃度評価値Ｌｄｅｎ（ｒ）を算出する。濃度評価値Ｌｄｅｎ（ｒ）は、以下の式（３）を用いて算出される。
【００７８】
【数３】
2020127081.tif 000005
【００７９】
ここで、ＡＶｅＣは、注目画像データ（学習用の入力画像データＩＩ）のｎ個の画素のＣ成分値（Ｐｌ＿Ｃ）の平均値である。ＳＱＲＴ［Ｖ］は、Ｖの平方根を意味する。同様に、ＡｖｅＭ、ＡｖｅＹ、ＡｖｅＫは、それぞれ、注目画像データのｎ個の画素のＭ成分値（Ｐｌ＿Ｍ）、Ｙ成分値（Ｐｌ＿Ｙ）、Ｋ成分値（Ｐｌ＿Ｋ）の平均値である。濃度評価値Ｌｄｅｎ（ｒ）は、部分ドットデータＯＤ（ｒ）によって示される画像の濃度と、注目画像データによって示される画像の濃度と、の差異を、０〜１の範囲の値で示す評価値である。
【００８０】
Ｓ２４０では、ＣＰＵ３１０は、ｚ個の部分ドットデータＯＤ（ｒ）について、１つの差異評価値Ｌｒｓを算出する。差異評価値Ｌｒｓは、以下の式（４）、（５）を用いて算出される。
【００８１】
【数４】
2020127081.tif 000006
【００８２】
ここで、ｉとｊとの組合せは、１〜ｚのいずれかの値を取る２個の入力パラメータｒの組合せを示す。Ｄ｛ＯＤ（ｉ）、ＯＤ（ｊ）｝は、部分ドットデータＯＤ（ｉ）の各画素のＣＭＹＫ値と、部分ドットデータＯＤ（ｊ）の対応する画素のＣＭＹＫ値と、差分の平均値を、０〜１の範囲の値で示す評価値である。
【００８３】
Ｓ２４５では、ＣＰＵ３１０は、ｚ個の部分ドットデータＯＤ（ｒ）について、１つの最終的な評価値として、損失値Ｌａｌｌを算出する。損失値Ｌａｌｌは、Ｓ２２５〜Ｓ２４０にて算出された重複評価値Ｌｃｏｒ（ｒ）、粒状性評価値Ｌｇｓ（ｒ）、濃度評価値Ｌｄｅｎ（ｒ）、差異評価値Ｌｒｓを用いて、以下の式（６）を用いて算出される。式（６）の式で示される関数を損失関数とも呼ぶ。
【００８４】
【数５】
2020127081.tif 000007
【００８５】
Ｓ２５５では、ＣＰＵ３１０は、パラメータ調整処理を実行する。パラメータ調整処理は、機械学習モデルＭＭにて用いられる上述した演算パラメータ（重みとバイアス）を調整する処理である。具体的には、ＣＰＵ３１０は、Ｌａｌｌが小さくなるように、所定のアルゴリズムに従って演算パラメータを調整する。所定のアルゴリズムには、例えば、誤差逆伝播法と勾配降下法とを用いたアルゴリズムが用いられる。
【００８６】
Ｓ２６０では、ＣＰＵ３１０は、入力画像データ群ＩＧに含まれる全ての学習用の入力画像データＩＩを、注目画像データとして処理したか否かを判断する。全ての学習用の入力画像データＩＩが処理された場合には（Ｓ２６０：ＹＥＳ）、ＣＰＵ２１０は、学習処理を終了する。未処理の学習用の入力画像データＩＩがある場合には（Ｓ２６０：ＮＯ）、ＣＰＵ２１０は、Ｓ２０５に処理を戻す。なお、１回の学習処理では、十分に適切な部分ドットデータＯＤが出力されない場合には、さらに、所定回数の学習処理が繰り返されてもよい。
【００８７】
以上説明した学習処理が終了した時点で、機械学習モデルＭＭは、演算パラメータが調整された学習済みモデルになっている。したがって、学習処理は、学習済みモデルを生成（製造）する処理である、と言うことができる。
【００８８】
以上説明した学習処理によれば、ＣＰＵ３１０は、学習用の入力画像データＩＩと、１〜ｚの整数値の中から選択される１つの値である入力パラメータｒと、を含むｚ組のデータセットＤＳを取得する（図１０のＳ２００、Ｓ２０５、Ｓ２１５）。ＣＰＵ３１０は、ｚ組のデータセットＤＳを入力として機械学習モデルＭＭに入力して、ｚ組のデータセットＤＳに対応するｚ個の部分ドットデータＯＤ（ｒ）を出力させる（図１０のＳ２１０）。ＣＰＵ３１０は、ｚ個の部分ドットデータＯＤ（ｒ）を用いて、機械学習モデルＭＭによる演算に用いられる複数個の演算パラメータを調整する（図１０のＳ２５５）。
【００８９】
ここで、Ｓ２５５において、複数個の演算パラメータは、例えば、特定の入力画像データＩＩと入力パラメータｒとしての「１」とを含むデータセットＤＳに対応する部分ドットデータＯＤ（１）と、特定の入力画像データＩＩと入力パラメータｒとしての「２」とを含むデータセットＤＳに対応する部分ドットデータＯＤ（２）と、が異なるデータになるように調整される。この結果、上記学習処理によってトレーニングされた学習済みモデル（機械学習モデルＭＭ）は、入力される複数個のデータセットＤＳに含まれる画像データが互いに同一であっても入力パラメータｒが互いに異なる場合には、互いに異なる部分ドットデータを出力できる。この結果、当該学習済みモデルを用いて、上記画像処理によって生成されるドットデータによって示される画像に、対象画像ＯＩには存在しない周期性が表れることを抑制できる。したがって、学習済みモデルを用いて生成されるドットデータを用いて印刷される画像の画質を向上できる。
【００９０】
より具体的には、Ｓ２５５において、複数個の演算パラメータは、ｚ個の部分ドットデータＯＤ（ｒ）を用いて、式（６）の損失関数に基づいて算出される損失値Ｌａｌｌが小さくなるように調整される。式（６）の損失関数は、ｚ個の部分ドットデータＯＤ（ｒ）のうちの２個の部分ドットデータ間の差異、例えば、部分ドットデータＯＤ（１）と部分ドットデータＯＤ（２）との差異が大きいほど小さくなる第１の項（１−Ｌｒｓ）を含む。この結果、部分ドットデータＯＤ（１）と部分ドットデータＯＤ（２）との差異が大きくなるように、複数個の演算パラメータが調整される。この結果、学習済みモデルを用いて生成されるドットデータによって示される画像に、対象画像ＯＩには存在しない周期性が表れる不具合をさらに抑制できる。したがって、上記学習処理によってトレーニングされた学習済みモデルを用いてドットデータを生成すれば、印刷画像において、このような不具合を抑制できる。
【００９１】
さらに、上記学習処理によれば、式（６）の損失関数は、部分ドットデータＯＤ（ｒ）において、２種以上のドット（２色以上のドット）の形成を示すＣＭＹＫ値（画素データ）の個数が多いほど大きくなる第２の項、すなわち、式（６）における重複評価値Ｌｃｏｒ（ｒ）を含む２番目の項を含む。この結果、出力される部分ドットデータＯＤ（ｒ）において、ＣＭＹＫのレイヤー間でドットが重なることを抑制することができる。ＣＭＹＫのレイヤー間でドットが重なる画素が過度に多い場合には、部分ドットデータＯＤ（ｒ）によって示される画像の色が、入力画像データＩＩによって示される画像の色と異なる色となる不具合が生じ得る。上記学習処理によってトレーニングされた学習済みモデルを用いてドットデータを生成すれば、印刷画像において、このような不具合を抑制できる。
【００９２】
さらに、上記学習処理によれば、式（６）の損失関数は、部分ドットデータＯＤ（ｒ）によって示される画像の粒状度が大きいほど大きくなる第３の項、すなわち、式（６）における粒状性評価値Ｌｇｓ（ｒ）を含む３番目の項を含む。この結果、部分ドットデータＯＤ（ｒ）によって示される画像の粒状度が高くなることを抑制することができる。画像の粒状度が過度に高くなると、画像の見栄えが低下する不具合が生じ得る。上記学習処理によってトレーニングされた学習済みモデルを用いてドットデータを生成すれば、印刷画像において、このような不具合を抑制できる。
【００９３】
さらに、上記学習処理によれば、式（６）の損失関数は、部分ドットデータＯＤ（ｒ）によって示される画像の濃度が、対応するデータセットＤＳに含まれる入力画像データＩＩによって示される画像の濃度に近いほど小さくなる第４の項、すなわち、式（６）における濃度評価値Ｌｄｅｎ（ｒ）を含む４番目の項を含む。この結果、入力画像データＩＩによって示される画像の濃度を適切に表現することができるような部分ドットデータＯＤ（ｒ）を学習済みモデルに出力させることができる。
【００９４】
Ｂ．変形例：
（１）上記実施例の図６のハーフトーン処理では、印刷画像の画質を向上させるために、以下の２つの工夫を行っている。一つ目は、入力範囲ＩＡよりも出力範囲ＯＡを大きくして２以上の出力範囲ＯＡが互いに重複する部分を含むようにすることであり、２つ目は、入力パラメータｒを機械学習モデルＭＭの入力に追加して同じ入力画像データに対して複数個の異なる部分ドットデータＯＤを出力させることである。変形例としては、これらの２つの工夫のうち、いずれか一方だけを行い、他方を行わなくても良い。
【００９５】
（２）上記実施例の図６のハーフトーン処理では、出力範囲ＯＡ１と出力範囲ＯＡ２とが重複する部分（図７（Ｂ）の左側部分ＬＡ）の一部の画素の値を、部分ドットデータＯＤ１の値とし、他の一部の画素の値を、部分ドットデータＯＤ２の値としている。これに限らず、該重複する部分の画素の値は、部分ドットデータＯＤ１と部分ドットデータＯＤ２とを用いる他の手法で生成されても良い。例えば、ＣＰＵ２１０は、該重複する部分の画素の値のうち、Ｃ、Ｍレイヤーの値には部分ドットデータＯＤ１の値を採用し、Ｙ、Ｋレイヤーの値には、部分ドットデータＯＤ２の値を採用してもよい。
【００９６】
（３）また、出力範囲ＯＡ１と出力範囲ＯＡ２との重複する部分において、部分ドットデータＯＤ１の値が採用される画素と、部分ドットデータＯＤ２の値が採用される画素とは、ランダムに選択されているが、例えば、予め定められた複数個の選択パターンの１つに従って、選択されても良い。
【００９７】
（４）上記実施例では、写真領域に対して図６のハーフトーン処理が実行され、文字やグラフィックの領域に対してディザ法に従うハーフトーン処理が実行されている。これに代えて、例えば、白とは異なる色の背景領域（例えば、文字や図表の有色の背景）に対して図６のハーフトーン処理が実行され、該背景領域とは異なる領域に対してディザ法を用いるハーフトーン処理が実行されても良い。また、対象画像ＯＩの全体に対して図６のハーフトーン処理が実行されても良い。
【００９８】
また、特定の階調値のパターンを有する入力画像データには、図６のハーフトーン処理とは異なるハーフトーン処理を実行し、他の入力画像データには、図６のハーフトーン処理を実行しても良い。例えば、全ての画素が白色である入力画像データは、全ての画素にドットを形成しないことを示す部分ドットデータに変換されるべきであり、入力パラメータｒに応じたｚ種類の異なる部分ドットデータに変換されるべきでない場合がある。このように、一部の入力画像データは、図６のハーフトーン処理の対象から除かれても良い。
【００９９】
（５）上記実施例の図１０の学習処理で用いられる損失値Ｌａｌｌを算出する損失関数は一例であり、これに限られない。例えば、式（６）の４つの項のうち、重複評価値Ｌｃｏｒを含む第２の項、および、粒状性評価値Ｌｇｓを含む第３の項の一方または両方は、省略されても良い。
【０１００】
（６）機械学習モデルＭＭの具体的な構成は、図４（Ｃ）に示す構成に代えて、他の様々な構成であっても良い。例えば、ニューラルネットワークＮＮは、２以上の中間層ＭＬを備えても良い。また、ニューラルネットワークＮＮは、畳込層とプーリング層とを含むＣＮＮ（Convolutional Neural Network）であっても良い。
【０１０１】
（７）実施例では、プリンタ１００は、ＣＭＹＫのインクを用いてカラー画像を印刷する印刷装置を備える。これに代えて、プリンタ１００は、１色のインク（例えば、ブラック（Ｋ））を用いてモノクロ画像を印刷する印刷装置であっても良い。
【０１０２】
（８）上記各実施例では、プリンタ１００は、インクジェット式の印刷装置である。これに代えて、プリンタ１００は、トナーを印刷材として用いて用紙上にドットを形成することによって画像を印刷する電子写真式（例えば、レーザ式）の印刷装置であっても良い。
【０１０３】
（９）上記実施例では、図２の画像処理を実行する装置は、プリンタ１００である。これに代えて、プリンタ１００のＣＰＵが画像処理装置として、図２の画像処理を実行しても良い。この場合には、画像処理装置として機能するプリンタ１００のＣＰＵは、図２のＳ８０において、印刷ジョブを、プリンタ１００が備える所定のメモリ領域に出力する。プリンタ１００が備える印刷機構は、該メモリ領域に出力された印刷ジョブに従って印刷を実行する。
【０１０４】
以上の説明から解るように、上記実施例では、端末装置２００が画像処理装置の例であり、プリンタ１００が印刷実行部の例である。本変形例では、プリンタ１００のＣＰＵが画像処理装置の例であり、プリンタ１００が備える印刷機構（図示省略）が印刷実行部の例である。
【０１０５】
（１０）図２の画像処理を実行する装置は、例えば、プリンタや端末装置から画像データを取得して該画像データを用いて印刷ジョブを生成するサーバであっても良い。このようなサーバは、ネットワークを介して互いに通信可能な複数個の計算機であっても良い。この場合には、ネットワークを介して互いに通信可能な複数個の計算機の全体が、画像処理装置の例である。
【０１０６】
（１１）上記各実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部あるいは全部をハードウェアに置き換えるようにしてもよい。例えば、機械学習モデルＭＭは、プログラムモジュールに代えて、ASIC（Application Specific Integrated Circuit）等のハードウェア回路によって実現されてよい。
【０１０７】
以上、実施例、変形例に基づき本発明について説明してきたが、上記した発明の実施の形態は、本発明の理解を容易にするためのものであり、本発明を限定するものではない。本発明は、その趣旨並びに特許請求の範囲を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物が含まれる。
【符号の説明】
【０１０８】
１００…プリンタ、２００…端末装置、２１０…ＣＰＵ、２２０…揮発性記憶装置、２３０…不揮発性記憶装置、２４０…表示部、２５０…操作部、２７０…通信インタフェース、３００…計算機、３１０…ＣＰＵ、３２０…揮発性記憶装置、３３０…不揮発性記憶装置、３４０…表示部、３５０…操作部、１０００…印刷システム、ｒ…入力パラメータ、ｒ…パラメータ、ｍ１…画素数、ＩＡ…入力範囲、ＯＡ…出力範囲、ＯＣ…出力変換部、ＯＤ…部分ドットデータ、ＩＧ…入力画像データ群、ＰＧ、ＰＧ２…コンピュータプログラム、ＢＧ…背景、ＯＩ…対象画像、ＩＩ…入力画像データ、ＯＬ…出力層、ＩＬ…入力層、ＭＬ…中間層、ＭＭ…機械学習モデル、ＮＮ…ニューラルネットワーク、ＤＳ…データセット、ＮＷ…ネットワーク、Ｌｇｓ…粒状性評価値、Ｌｒｓ…差異評価値、Ｌｃｏｒ…重複評価値、Ｌｄｅｎ…濃度評価値、Ｌａｌｌ…損失値
【図１】
2020127081.tif 000008
【図２】
2020127081.tif 000009
【図３】
2020127081.tif 000010
【図４】
2020127081.tif 000011
【図５】
2020127081.tif 000012
【図６】
2020127081.tif 000013
【図７】
2020127081.tif 000014
【図８】
2020127081.tif 000015
【図９】
2020127081.tif 000016
【図１０】
2020127081.tif 000017