IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ブラザー工業株式会社の特許一覧

特許7528645印刷材の種類を特定する方法、印刷材の種類の特定装置、および、コンピュータプログラム
<>
  • 特許-印刷材の種類を特定する方法、印刷材の種類の特定装置、および、コンピュータプログラム 図1
  • 特許-印刷材の種類を特定する方法、印刷材の種類の特定装置、および、コンピュータプログラム 図2
  • 特許-印刷材の種類を特定する方法、印刷材の種類の特定装置、および、コンピュータプログラム 図3
  • 特許-印刷材の種類を特定する方法、印刷材の種類の特定装置、および、コンピュータプログラム 図4
  • 特許-印刷材の種類を特定する方法、印刷材の種類の特定装置、および、コンピュータプログラム 図5
  • 特許-印刷材の種類を特定する方法、印刷材の種類の特定装置、および、コンピュータプログラム 図6
  • 特許-印刷材の種類を特定する方法、印刷材の種類の特定装置、および、コンピュータプログラム 図7
  • 特許-印刷材の種類を特定する方法、印刷材の種類の特定装置、および、コンピュータプログラム 図8
  • 特許-印刷材の種類を特定する方法、印刷材の種類の特定装置、および、コンピュータプログラム 図9
  • 特許-印刷材の種類を特定する方法、印刷材の種類の特定装置、および、コンピュータプログラム 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-29
(45)【発行日】2024-08-06
(54)【発明の名称】印刷材の種類を特定する方法、印刷材の種類の特定装置、および、コンピュータプログラム
(51)【国際特許分類】
   B41J 2/01 20060101AFI20240730BHJP
   B41J 29/393 20060101ALI20240730BHJP
   G03G 21/00 20060101ALI20240730BHJP
   G06T 7/00 20170101ALI20240730BHJP
   G06T 7/90 20170101ALI20240730BHJP
【FI】
B41J2/01 301
B41J2/01 451
B41J2/01 501
B41J29/393 101
G03G21/00
G03G21/00 388
G06T7/00 350C
G06T7/90 Z
【請求項の数】 10
(21)【出願番号】P 2020146204
(22)【出願日】2020-08-31
(65)【公開番号】P2022041154
(43)【公開日】2022-03-11
【審査請求日】2023-07-11
(73)【特許権者】
【識別番号】000005267
【氏名又は名称】ブラザー工業株式会社
(74)【代理人】
【識別番号】110001058
【氏名又は名称】鳳国際弁理士法人
(72)【発明者】
【氏名】竹内 雅英
【審査官】高松 大治
(56)【参考文献】
【文献】特開2006-137186(JP,A)
【文献】特開2018-190332(JP,A)
【文献】再公表特許第2014/142099(JP,A1)
【文献】特開2008-290287(JP,A)
【文献】特開2004-127238(JP,A)
【文献】米国特許出願公開第2020/0143204(US,A1)
【文献】中国特許出願公開第109285168(CN,A)
(58)【調査した分野】(Int.Cl.,DB名)
B41J 2/01-2/215
B41J 29/393
G06T 7/00
G06T 7/90
G03G 21/00
(57)【特許請求の範囲】
【請求項1】
印刷装置による印刷に用いられる印刷材の種類を特定する方法であって、
特定すべき前記印刷材を対象物に付着させる付着工程と、
イメージセンサを用いて前記印刷材が付着した前記対象物を示す対象画像データを生成する生成工程と、
前記対象画像データに基づくM個(Mは2以上の整数)の入力画像データを取得する取得工程であって、前記M個の入力画像データによって示されるM個の入力画像のそれぞれは、前記対象物に付着した前記印刷材を示す、前記取得工程と、
前記M個の入力画像データを機械学習モデルに入力して、前記機械学習モデルに前記M個の入力画像データに対応するM個の出力データを出力させる出力工程であって、前記M個の出力データのそれぞれは、前記印刷材の種類を示す、前記出力工程と、
前記M個の出力データのうち、第1種の印刷材を示すデータの個数が特定閾値N(NはM未満の整数)以上である場合に、特定すべき前記印刷材は前記第1種の印刷材であると特定し、前記M個の出力データのうち、前記第1種の印刷材を示すデータの個数が前記特定閾値N未満である場合に、特定すべき前記印刷材は前記第1種の印刷材とは異なる第2種の印刷材であると特定する特定工程と、
を備える、方法。
【請求項2】
請求項1に記載の方法であって、
前記印刷装置は、第1色と第2色とを含む複数色の印刷材を用いて印刷を実行し、
特定すべき前記印刷材が前記第1色の印刷材である場合には、前記特定閾値Nとして、第1閾値N1を用いて、前記特定工程を実行し、
特定すべき前記印刷材が前記第2色の印刷材である場合には、前記特定閾値Nとして、第2閾値N2を用いて、前記特定工程を実行する、方法。
【請求項3】
請求項1または2に記載の方法であって、
前記印刷装置は、第1色と第2色とを含む複数色の印刷材を用いて印刷を実行し、
特定すべき前記印刷材が前記第1色の印刷材である場合には、前記機械学習モデルとして、第1モデルを用いて、前記出力工程を実行し、
特定すべき前記印刷材が前記第2色の印刷材である場合には、前記機械学習モデルとして、第2モデルを用いて、前記出力工程を実行する、方法。
【請求項4】
請求項1~3のいずれかに記載の方法であって、
前記特定閾値Nは、モデル誤判定率に基づいて、前記特定工程において、特定すべき前記印刷材が前記第2種の印刷材であるにも関わらず、特定すべき前記印刷材は前記第1種の印刷材であると特定される確率である誤特定率が、所定の目標率より小さくなるように、決定され、
前記モデル誤判定率は、前記機械学習モデルに前記第2種の印刷材を示す前記入力画像データが入力された場合に、前記機械学習モデルが前記第1種の印刷材を示す前記出力データを出力する確率である、方法。
【請求項5】
請求項4に記載の方法であって、
前記特定閾値Nは、前記誤特定率が前記所定の目標率よりも小さくなる2以上の候補値のうちの最小値である、方法。
【請求項6】
請求項1~3のいずれかに記載の方法であって、
前記入力画像データの個数Mは、3以上の整数であり、
前記特定閾値Nは、(2/M)<Nを満たす候補値のうちの最小値である、方法。
【請求項7】
請求項1~6のいずれかに記載の方法であって、
前記M個の入力画像のそれぞれは、前記対象物に付着した前記印刷材と、前記対象物のうちの前記印刷材が付着していない露出部分と、の間の境界部分を示す境界画像を含む、方法。
【請求項8】
請求項1~7のいずれかに記載の方法であって、
前記印刷装置は、インクを用いて印刷媒体上にドットを形成するインクジェットプリンタであり、
前記印刷材は、前記インクジェットプリンタのためのインクである、方法。
【請求項9】
印刷装置による印刷に用いられる印刷材の種類の特定装置であって、
イメージセンサを用いて生成される対象画像データに基づくM個(Mは2以上の整数)の入力画像データを取得する取得部であって、前記対象画像データは、特定すべき前記印刷材が付着した対象物を示す画像データであり、前記M個の入力画像データによって示されるM個の入力画像のそれぞれは、前記対象物に付着した前記印刷材を示す、前記取得部と、
前記M個の入力画像データを機械学習モデルに入力して、前記機械学習モデルに前記M個の入力画像データに対応するM個の出力データを出力させる出力部であって、前記M個の出力データのそれぞれは、前記印刷材の種類を示す、前記出力部と、
前記M個の出力データのうち、第1種の印刷材を示すデータの個数が特定閾値N(NはM未満の整数)以上である場合に、特定すべき前記印刷材は前記第1種の印刷材であると特定し、前記M個の出力データのうち、前記第1種の印刷材を示すデータの個数が前記特定閾値N未満である場合に、特定すべき前記印刷材は前記第1種の印刷材とは異なる第2種の印刷材であると特定する特定部と、
を備える、特定装置。
【請求項10】
印刷装置による印刷に用いられる印刷材の種類を特定するためのコンピュータプログラムであって、
イメージセンサを用いて生成される対象画像データに基づくM個(Mは2以上の整数)の入力画像データを取得する取得機能であって、前記対象画像データは、特定すべき前記印刷材が付着した対象物を示す画像データであり、前記M個の入力画像データによって示されるM個の入力画像のそれぞれは、前記対象物に付着した前記印刷材を示す、前記取得機能と、
前記M個の入力画像データを機械学習モデルに入力して、前記機械学習モデルに前記M個の入力画像データに対応するM個の出力データを出力させる出力機能であって、前記M個の出力データのそれぞれは、前記印刷材の種類を示す、前記出力機能と、
前記M個の出力データのうち、第1種の印刷材を示すデータの個数が特定閾値N(NはM未満の整数)以上である場合に、特定すべき前記印刷材は前記第1種の印刷材であると特定し、前記M個の出力データのうち、前記第1種の印刷材を示すデータの個数が前記特定閾値N未満である場合に、特定すべき前記印刷材は前記第1種の印刷材とは異なる第2種の印刷材であると特定する特定機能と、
をコンピュータに実現させる、コンピュータプログラム。

【発明の詳細な説明】
【技術分野】
【0001】
本明細書は、印刷装置による印刷に用いられる印刷材の種類を特定するための技術に関する。
【背景技術】
【0002】
インクやトナーなどの印刷材を用いて画像を印刷する印刷装置において、使用される印刷材の種類を特定したい場合がある。例えば、特許文献1に記載された画像形成装置は、トナーのカートリッジに搭載されたメモリに格納されているデータを読み出し、読み出したデータを用いてトナーが純正品であるか非純正品であるかを特定している。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2009-300694号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上記技術では、印刷材の種類を適切に特定することができない可能性があった。
【0005】
本明細書は、印刷材の種類を適切に特定することができる新たな技術を開示する。
【課題を解決するための手段】
【0006】
本明細書に開示された技術は、以下の適用例として実現することが可能である。
【0007】
[適用例1]印刷装置による印刷に用いられる印刷材の種類を特定する方法であって、
特定すべき前記印刷材を対象物に付着させる付着工程と、イメージセンサを用いて前記印刷材が付着した前記対象物を示す対象画像データを生成する生成工程と、前記対象画像データに基づくM個(Mは2以上の整数)の入力画像データを取得する取得工程であって、前記M個の入力画像データによって示されるM個の入力画像のそれぞれは、前記対象物に付着した前記印刷材を示す、前記取得工程と、前記M個の入力画像データを機械学習モデルに入力して、前記機械学習モデルに前記M個の入力画像データに対応するM個の出力データを出力させる出力工程であって、前記M個の出力データのそれぞれは、前記印刷材の種類を示す、前記出力工程と、前記M個の出力データのうち、第1種の印刷材を示すデータの個数が特定閾値N(NはM未満の整数)以上である場合に、特定すべき前記印刷材は前記第1種の印刷材であると特定し、前記M個の出力データのうち、前記第1種の印刷材を示すデータの個数が前記特定閾値N未満である場合に、特定すべき前記印刷材は前記第1種の印刷材とは異なる第2種の印刷材であると特定する特定工程と、を備える、方法。
【0008】
機械学習モデルは、特定すべき印刷材が第2種の印刷材であるにも関わらずに誤って第1種の印刷材を示す出力データを出力する可能性がある。上記構成によれば、M個の出力データのうち、第1種の印刷材を示すデータの個数が特定閾値N以上である場合にのみ、特定すべき印刷材は前記第1種の印刷材であると特定するので、特定すべき印刷材が第2種の印刷材であるにも関わらずに、特定すべき印刷材は第1種の印刷材であると誤って特定されることを抑制することができる。したがって、印刷材の種類を適切に特定することができる。
【0009】
なお、本明細書に開示された技術は、種々の形態で実現可能であり、例えば、印刷材の種類を特定する特定装置、これらの方法、および、装置の機能を実現するためのコンピュータプログラム、そのコンピュータプログラムを記録した記録媒体、等の形態で実現することができる。
【図面の簡単な説明】
【0010】
図1】本実施例のインク特定システム1000の構成を示すブロック図。
図2】機械学習モデルDNの構成を示すブロック図。
図3】インクの種類の特定の工程を示すフローチャート。
図4】綿棒を用いたドットDTの形成の説明図。
図5】実施例のインク種特定処理のフローチャート。
図6】入力画像の一例を示す図。
図7】特定閾値Nの決定処理のフローチャート。
図8】機械学習モデルDNのトレーニングの工程を示すフローチャート。
図9】変形例のインク種特定処理のフローチャート。
図10】変形例のドットDTの形成の説明図。
【発明を実施するための形態】
【0011】
A.実施例
A-1.インク特定システム1000の構成
次に、実施の形態を実施例に基づき説明する。図1は、本実施例のインク特定システム1000の構成を示すブロック図である。インク特定システム1000は、データ処理装置100と、スキャナ200と、を備えている。
【0012】
データ処理装置100は、パーソナルコンピュータやスマートフォンなどの計算機である。データ処理装置100は、データ処理装置100のコントローラとしてのCPU110と、RAMなどの揮発性記憶装置120と、ハードディスクドライブやフラッシュメモリなどの不揮発性記憶装置130と、操作部140と、表示部150と、通信インタフェース(IF)170と、を備えている。操作部140は、ユーザの操作を受け取る装置であり、例えば、キーボードやマウスである。表示部150は、画像を表示する装置であり、例えば、液晶ディスプレイである。通信インタフェース170は、外部機器、例えば、スキャナ200と接続するためのインタフェースである。
【0013】
揮発性記憶装置120は、CPU110が処理を行う際に生成される種々の中間データを一時的に格納するバッファ領域を提供する。不揮発性記憶装置130には、コンピュータプログラムPGが格納されている。
【0014】
コンピュータプログラムPGは、例えば、プリンタ400の製造者によって提供され、データ処理装置100にインストールされる。CPU110は、コンピュータプログラムPGを実行することにより、スキャナ200と協働して、後述するインクの種類の特定や、機械学習モデルのトレーニング処理を実行する。
【0015】
コンピュータプログラムPGは、後述する機械学習モデルDNc、DNm、DNy、DNkの機能をCPU110に実現させるコンピュータプログラムをモジュールとして含んでいる。
【0016】
スキャナ200は、イメージセンサを用いて、原稿を光学的に読み取ることによって、該原稿を含むスキャン画像を示すスキャンデータを生成する。イメージセンサは、例えば、CCDやCMOSなどの複数個の光電変換素子が一列に並んで配置された構造を備える一次元イメージセンサである。スキャンデータは、例えば、RGB値で画素ごとの色を表すRGB画像データである。RGB値は、3個の色成分の階調値(以下、成分値とも呼ぶ)、すなわち、R値、G値、B値を含むRGB表色系の色値である。R値、G値、B値は、例えば、所定の階調数(例えば、256)の階調値である。スキャナ200は、データ処理装置100と通信可能に接続されている。
【0017】
インク特定システム1000は、プリンタ400による印刷に用いられる印刷材であるインクの種類を特定するシステムである。プリンタ400は、シアンC、マゼンタM、イエロY、ブラックKの4色のインクを用いてカラー画像を印刷可能なインクジェットプリンタである。プリンタ400は、CMYKのインクカートリッジ420C、420M、420Y、420Kが装着されるように構成されている。インクカートリッジ420C、420M、420Y、420Kは、それぞれ、シアンC、マゼンタM、イエロY、ブラックKのインクを収容したカートリッジである。プリンタ400には、これらのインクカートリッジ420C、420M、420Y、420Kからインクが供給される。
【0018】
用いられるインクの種類として、本実施例では、純正インクと、非純正インクと、の2種類が想定されている。純正インクは、例えば、プリンタ400の製造者によって製造されるインクであり、プリンタ400で用いられるために最適化されたインクである。非純正インクは、例えば、プリンタ400の製造者とは異なる事業者によって製造されるインクである。純正インクと非純正インクとでは、粘性などの特性や成分が互いに異なっている。非純正インクは、純正インクと比較して、プリンタ400の故障(例えば、印刷ヘッドのノズルの詰まり)を引き起こす可能性がある。このために、例えば、プリンタ400の故障の原因を調べる際には、プリンタ400で用いられたインクが純正インクであるか非純正インクであるかを特定することが好ましい。本実施例のインク特定システム1000は、例えば、このような用途で用いられる。なお、例えば、純正インクのインクカートリッジが空になった後に、該インクカートリッジに非純正インクを収容すること(いわゆるインクの詰め替え)が行われる場合がある。このために、インクカートリッジの外観やインクカートリッジの品番を参照する方法では、インクの種類を適切に特定できない場合がある。このような場合にも、インク特定システム1000を用いる方法は有効である。
【0019】
A-2.機械学習モデルの構成
機械学習モデルDNcは、後述するインク種特定処理において、Cのインクの種類を特定する際に用いられる。機械学習モデルDNm、DNy、Dkは、同様に、M、Y、Kのインクの種類を特定する際に、それぞれ、用いられる。機械学習モデルDNc、DNm、DNy、DNkは、後述するトレーニング処理によってトレーニングされた学習済みのモデルである。機械学習モデルDNc、DNm、DNy、DNkは、CPU110がコンピュータプログラムPGを実行することによって実現される。
【0020】
図2は、機械学習モデルDNの構成を示すブロック図である。4個の機械学習モデルDNc、DNm、DNy、DNkは、それぞれ、図2に機械学習モデルDNとして示す構成を有している。機械学習モデルDNc、DNm、DNy、DNkは、トレーニングに用いられる画像データ群が互いに異なる。例えば、Cインク用の機械学習モデルDNcは、Cインクを用いて形成されたドットを示す画像データを用いてトレーニングされている。Mインク用の機械学習モデルDNmは、Mインクを用いて形成されたドットを示す画像データを用いてトレーニングされている。このために、学習済みの機械学習モデルDNc、DNm、DNy、DNkでは、機械学習モデルにて用いられる複数個の演算パラメータの値が互いに異なっている。
【0021】
図2の機械学習モデルDNには、入力データとして、入力画像データDinが入力される。入力画像データDinは、入力画像DIを示す画像データである。入力画像DIは、後述するように、インクを用いて用紙Sの表面に形成されたドットを示す画像である。本実施例の入力画像データDinは、複数個の画素を含む画像を示すビットマップデータであり、具体的には、RGB画像データである。
【0022】
入力画像データDinは、(256×256)個の画素のそれぞれの3個の成分値(R値、G値、B値)を含むので、(256×256×3)個の値を含むデータ、すなわち、(256×256×3)次元のデータである。
【0023】
機械学習モデルDNは、入力画像データDinによって示されるインクの種類を識別する識別ネットワークである。ここで、「入力画像データDinによって示されるインク」とは、入力画像データDinによって示される入力画像DI内のドットの形成に用いられたインクを意味するものとする。機械学習モデルDNは、入力画像データDinが入力されると、複数個の演算パラメータPd、Pdn(後述)を用いた演算処理を実行して、入力画像データDinによって示されるインクの種類を識別した結果を示す出力データDoutを出力する。
【0024】
具体的には、出力データDoutは、識別すべきインクの種類にそれぞれ対応する複数個の値を含む。本実施例では、識別すべきインクの種類は、純正インクと非純正インクとの2種類であるので、出力データDoutは、純正インクに対応する値Vo1と、非純正インクに対応する値Vo2と、を含む2次元のデータである。例えば、2個の値Vo1、Vo2は、それぞれ、0以上1以下の範囲の値であり、2個の値Vo1、Vo2の和は1である。後述するトレーニングにて、2個の値Vo1、Vo2のうち、入力画像データDinによって示されるインクに対応する一の値が1に近づき、対応しない他の値が0に近づくように、機械学習モデルDNはトレーニングされている。このために、機械学習モデルDNは、入力画像データDinによって示されるインクの種類を適切に示す出力データDoutを出力することができる。
【0025】
図2に示すように、機械学習モデルDNは、特徴抽出部CEXと、クラス分類部CLSと、を備えている。
【0026】
特徴抽出部CEXは、入力される入力画像データDinの特徴を抽出する。特徴抽出部CEXは、複数個の層L_0~L_18を有するコンボリューションニューラルネットワークである。入力層L_0は、入力画像データDinが入力される層である。1番目の畳込層L_1には、入力層L_0に入力された入力画像データDinがそのまま入力される。
【0027】
畳込層L_1、L_2、L_4、L_5、L_7~L_9、L_11~L_13、L_15~L_17は、畳込処理(convolution)とバイアスの加算処理と、を実行する。畳込処理は、入力されたデータに対して、(p×q×r)次元のs個のフィルタを順次に適用して入力されたデータとフィルタとの相関を示す相関値を算出する処理である。各フィルタを適用する処理では、フィルタをスライドさせながら複数個の相関値が順次に算出される。1個のフィルタは、(p×q×r)個の重みを含んでいる。バイアスの加算処理は、算出された相関値に、1個のフィルタに対して1個ずつ準備されたバイアスを加算する処理である。s個のフィルタに含まれる(p×q×r×s)個の重みと、s個のフィルタに対応するs個のバイアスと、は、上述した複数個の演算パラメータPdである。
【0028】
各畳込層によって生成されるデータの各値は、上述した相関値にバイアスを加えた値である。各畳込層によって生成されるデータに含まれるデータの個数(例えば、畳込層L_1の場合は(A×B×C))は、畳込処理におけるストライド(フィルタをスライドさせる量)と、フィルタの個数sと、によって決定される。
【0029】
畳込層によって生成されるデータは、後処理として、活性化関数に入力されて変換された後に、次の層(畳込層またはプーリング層)に入力される。本実施例では、活性化関数には、ReLUが用いられる。
【0030】
プーリング層L_3、L_6、L_10、L_14、L_18は、マックスプーリング(MaxPooling)を行って、入力されたデータの次元数を削減する。マックスプーリングは、いわゆるダウンサンプリングによって次元数を削減する処理であり、所定サイズ(例えば、2×2)のウィンドウを所定のストライド(例えば、2)でスライドさせつつ、ウィンドウ内の最大値を選択することによって次元数を削減する。プーリング層によって生成されるデータは、そのまま、次の層(畳込層または後述する全体平均プーリング層L_19)に入力される。
【0031】
本実施例では、特徴抽出部CEXには、VGG16と呼ばれるニューラルネットワークのうちの全結合層を除いた部分がそのまま用いられる。VGG16は、ImageNetと呼ばれる画像データベースに登録された画像データを用いてトレーニングされた学習済みのニューラルネットワークであり、その学習済みの演算パラメータは一般公開されている。本実施例では、特徴抽出部CEXの複数個の演算パラメータPdには、公開された学習済みの演算パラメータが用いられる。このために、本実施例では、特徴抽出部CEXに含まれる複数個の演算パラメータPdは、後述するトレーニング処理では調整されない。
【0032】
クラス分類部CLSには、特徴抽出部CEXによって生成されるデータ、すなわち、特徴抽出部CEXのプーリング層L_18によって生成されるデータが入力される。クラス分類部CLSは、該データに対して複数個の演算パラメータPdnを用いた演算処理を実行して、出力データDoutを生成する。
【0033】
クラス分類部CLSは、全体平均プーリング層L_19と、全結合層L_20、L21を有するニューラルネットワークである。
【0034】
全体平均プーリング層L_19は、入力されるデータの各チャネルの複数個の値の平均値をとることで、データの次元数を削減する。
【0035】
全体平均プーリング層L_19によって生成されるデータは、全結合層L_20に入力される。全結合層L_20は、一般的なニューラルネットワークで用いられる全結合層と同様の層である。全結合層L_20は、M次元のデータ(M個の値(Mは2以上の整数))が入力されると、N次元のデータ(N個の値(Nは2以上の整数))を出力する。出力されるN個の値のそれぞれは、入力されるM個の値から成るベクトルとN個の重みから成るベクトルとの内積に、バイアスを加えた値(内積+バイアス)である。これらの(M×N)個の重みとN個のバイアスは、上述した演算パラメータPdnであり、後述するトレーニング処理によって調整される値である。
【0036】
全結合層L_20によって生成された各値は、後処理として、活性化関数に入力されて変換される。活性化関数には、例えば、ReLUが用いられる。なお、トレーニング処理では、さらに、後処理として、いわゆるドロップアウトが行われる。ドロップアウトは、過学習を抑制するために、ランダムに選択された一部の値を無効化(0にする)する処理である。使用時(推論時とも呼ぶ。)には、ドロップアウトは行われない。
【0037】
全結合層L_20によって生成されるN次元のデータは、全結合層L_21に入力される。全結合層L_21は、全結合層L_20と同様の処理によって、2次元のデータ(2個の値)を生成する。全結合層L21にて用いられる(N×2)個の重みと2個のバイアスは、上述した演算パラメータPdnであり、後述するトレーニング処理によって調整される値である。
【0038】
全結合層L_21によって生成された2個の値は、後処理として、活性化関数に入力されて変換される。活性化関数には、SoftMaxが用いられる。活性化関数によって変換済みの2個の値は、上述した出力データDoutである。
【0039】
A-3.インクの種類の特定
図3は、インクの種類の特定の工程を示すフローチャートである。この工程は、プリンタ400にて用いられるCMYKの4色のインクのそれぞれを対象インクとして行われる。
【0040】
S110では、作業者は、棒状の部材である綿棒SWを用いて、対象インク(例えば、Cインク)の複数個のドットDTを用紙S上に形成する。図4は、綿棒を用いたドットDTの形成の説明図である。図4(A)には、ドットDTの形成の様子を示す斜視図が示されている。図4(B)には、ドットDTが形成された用紙Sが図示されている。
【0041】
作業者は、印刷に用いられる用紙S(例えば、A4サイズの普通紙)と、一般的に販売されている綿棒SWと、を用意する。作業者は、対象インクのインクカートリッジ(例えば、Cインクのインクカートリッジ420C)をプリンタ400から取り外して、インクカートリッジ内に残存している対象インクをシャーレなどに取り出す。なお、対象インクは、インクカートリッジからプリンタ400の印刷ヘッドのノズル(図示省略)に至るインクの経路に残存しているインクであっても良い。作業者は、シャーレ内の対象インクに綿棒SWの先端を浸して、綿棒SWの先端に対象インクを付着させる。作業者は、対象インクが付着した状態の綿棒SWの先端を、用紙Sの表面に接触させる。これによって、円形の1個のドットDTが用紙S上に形成される。ドットDTの直径は、プリンタ400の印刷ヘッド(図示省略)によって印刷のために形成されるドットの直径よりも大幅に大きな値(例えば、数100倍~1000倍の値)であり、例えば、2~8mmである。
【0042】
作業者は、この作業を、綿棒SWを接触させるX方向の位置をX方向の上流側から下流側に向かって変更しながらP回(Pは3以上の整数、図4の例ではP=10)に亘って繰り返す。すなわち、綿棒SWの先端は、用紙SのP個の互いに異なる位置に順次に接触する。これによって、P個のドットDTを含むドット行DR(図4)が形成される。1個のドット行DRの形成中には、綿棒SWの先端に、再度、対象インクを付着し直す作業は行わない。
【0043】
1個のドット行DRが形成されると、作業者は、シャーレ内の対象インクに綿棒SWの先端を、再度、浸して、綿棒SWの先端に対象インクを付着させる。作業者は、綿棒SWを接触させるY方向の位置を変更して、前のドット行DRの形成作業と同様の作業を行って、次のドット行DRを形成する。作業者は、この作業を繰り返して、Q行(Qは1以上の整数、例えば、Q=2)のドット行DRを形成する。この結果、用紙S上には、(P×Q)個のドットDTが形成される。
【0044】
作業者は、印刷に用いられるR色のインク(本実施例ではCMYKの4色であるのでR=4)をそれぞれ対象インクとして、上述の作業を行う。これによって、図4(B)に示すように、用紙S上には、R色のインクのそれぞれについて、(P×Q)個ずつのドットDT、すなわち、(R×P×Q)個のドットDTが形成される。
【0045】
S120では、作業者は、所定の乾燥時間(例えば、30分)の経過を待つ。これによって、用紙S上に形成された複数個のドットDTは安定した状態になる。
【0046】
S130では、用紙SのドットDTが形成された面を光学的に読み取ることによって、スキャンデータが生成される。例えば、作業者は、ドットDTが形成された用紙Sを、スキャナ200の原稿台に配置する。スキャナ200は、作業者の操作に応じて、用紙Sを読み取って、用紙Sを示すスキャンデータを生成して、該スキャンデータをデータ処理装置100に送信する。データ処理装置100は、通信インタフェース170を介してスキャンデータを受信し、該スキャンデータを揮発性記憶装置120に格納する。図4(B)は、該スキャンデータによって示されるスキャン画像SIを示す図とも言うことができる。以下では、スキャン画像SIにおいて、ドットDTを示す画像(オブジェクト)を、単に、ドットDTと表現する。
【0047】
S140では、CPU110は、インク種特定処理を実行する。インク種特定処理は、CMYKの4色の対象インクのそれぞれについて、対象インクが純正インクであるか非純正インクであるかを特定する処理である。
【0048】
図5は、実施例のインク種特定処理のフローチャートである。S220では、CPU110は、CMYKの4色の中から1つの注目色を選択する。S230では、CPU110は、注目色のインクの種類を特定するための特定閾値Nを取得する。CMYKの4色のインクに対応する特定閾値Nc、Nm、Ny、Nkは、予め後述する方法によって決定され、特定閾値Nc、Nm、Ny、Nkを示す情報は、不揮発性記憶装置130に保存されている。特定閾値Nc、Nm、Ny、Nkの決定方法については、後述する。特定閾値Nは、例えば、2以上の整数値であり、本実施例では、インク色ごとに異なる値を取り得る。
【0049】
S240では、データ処理装置100のCPU110は、スキャンデータを用いて、注目色のインクのドットを示すM個(Mは2以上の整数)の入力画像データDinを生成する。具体的には、CPU110は、スキャン画像SIに示される注目色の(P×Q)個のドットDTのうち、所定の使用範囲UA内に位置する複数個の使用ドットDTsを特定する(図4(B))。複数個の使用ドットDTsは、各ドット行DRに含まれるP個のドットDTのうち、上流ドットDTuと下流ドットDTdとを除いたドットである。
【0050】
上流ドットDTuは、X方向の上流側に位置する所定数(図4(B)の例では2個)のドットである。上流ドットDTuは、綿棒SWに過剰な量の対象インクが付着した状態で形成される。このために、上流ドットDTuは、過剰な量の対象インクで形成されている可能性があるので、上流ドットDTuは使用されない。
【0051】
下流ドットDTdは、X方向の下流側に位置する所定数(図4(B)の例では2個)のドットである。下流ドットDTdは、綿棒SWに過小な量の対象インクが付着した状態で形成される。このために、下流ドットDTdは、過小な量の対象インクで形成されている可能性があるので、下流ドットDTdは使用されない。
【0052】
図4(B)の例では、各ドット行DRに含まれる10個のドットDTのうち、X方向の上流側から数えて3番目から8番目までのドットが、使用ドットDTsとして特定される。換言すれば、使用ドットDTsは、綿棒SWに対象インクを付着させた後に、再度、対象インクを追加で綿棒SWに付着させることなく形成される10個のドットDTのうち、最初に形成される2個のドットと、最後に形成される2個のドットを除いたドットである。
【0053】
スキャン画像SIにおける使用ドットDTsの位置は、例えば、ドットの色と形状とに基づくパターンマッチングによって特定される。変形例では、ユーザがマウスなどのポインティングデバイスを用いて使用ドットDTsの位置を指定することによって特定されても良い。また、ドットDTが用紙Sの予め定められた位置に形成されていることが保証されていれば、スキャン画像SI上における予め定められた位置が使用ドットDTsの位置として用いられても良い。
【0054】
CPU110は、使用ドットDTsを1個ずつ含む所定サイズの矩形領域SAをスキャン画像SIからクロッピングして、1個の矩形領域SAを示す部分画像データを取得する。CPU110は、部分画像データに対して拡大処理を実行することによって、画像サイズを調整して1個の入力画像データDinを生成する。生成される入力画像データDinの個数Mは、使用ドットDTsの個数と同数であり、本実施例では、各色12個ずつである。入力画像データDinは、RGB画像データである。
【0055】
図6は、入力画像の一例を示す図である。図6(A)には、本実施例の入力画像データDinによって示される入力画像DIが示されている。入力画像DIのY方向の画素数とX方向の画素数は、本実施例では、それぞれ、256である。入力画像DIは、使用ドットDTsの全体と、使用ドットDTsの周囲に位置する背景Bgと、を含んでいる。使用ドットDTsは、用紙Sに付着した対象インクを示す画像と言うことができる。背景Bgは、用紙Sのうちの対象インクが付着していない露出部分を示す画像と言うことができる。
【0056】
入力画像DIは、使用ドットDTsと背景Bgとの境界部分BAを示す画像(境界画像とも呼ぶ)を含んでいる。使用ドットDTsと背景Bgとの境界は、実際には明確に分かれている訳ではない。使用ドットDTsと背景Bgとの境界部分BAは、例えば、対象インクの付着量が中央部分CAよりも少なく、薄い色を示す部分や、いわゆる滲みを示す部分を含む。
【0057】
入力画像DIは、上述のように、使用ドットDTsの全体と、その周囲に位置する背景Bgを含んでいる。すなわち、入力画像DIにおいて境界部分BAを示す画像は、使用ドットDTsの全周に亘る外縁と、外縁に沿って使用ドットDTsの全周を囲む背景Bgと、の境界部分を示す画像である。
【0058】
S250では、CPU110は、生成されたM個の入力画像データDinを、それぞれ、機械学習モデルDNに入力する。これによって、M個の入力画像データDinに対応するM個の出力データDoutが生成される。各出力データDoutは、上述したように、純正インクに対応する値Vo1と、非純正インクに対応する値Vo2と、を含む2次元のデータである。使用される機械学習モデルDNは、図1の4個の機械学習モデルDNc、DNm、DNy、DNkのうち、注目色に対応する機械学習モデルである。
【0059】
S260では、CPU110は、M個の出力データDoutのうち、非純正インクを示す出力データの個数L(Lは、0以上M以下の整数)を算出する。例えば、判定対象の出力データDoutの値Vo1が閾値TH1以上である場合には、該出力データDoutは、純正インクを示すと判定される。判定対象の出力データDoutの値Vo1が閾値TH1未満である場合には、該出力データDoutは、非純正インクを示すと判定される。そして、非純正インクを示すと判定された出力データの個数Lが算出される。
【0060】
S270では、CPU110は、算出された個数Lが、S230にて取得済みの特定閾値N以上であるか否かを判断する。個数Lが特定閾値N以上である場合には(S270:YES)、S280にて、CPU110は、注目色の対象インクは非純正インクであると特定する。個数Lが特定閾値N未満である場合には(S270:NO)、S290にて、CPU110は、注目色の対象インクは純正インクであると特定する。
【0061】
S295では、CPU110は、CMYKの全てのインク色を注目色として処理したか否かを判定する。未処理のインク色がある場合には(S295:NO)、CPU110は、S220に戻る。全てのインク色について処理された場合には(S295:YES)、CPU110は、インク種特定処理を終了する。
【0062】
A-4.特定閾値Nの決定処理
図5のS230にて取得される特定閾値N、すなわち、CMYKの4色のインクに対応する特定閾値Nc、Nm、Ny、Nkの決定処理について説明する。この特定閾値Nc、Nm、Ny、Nkは、インク種特定処理にて使用される機械学習モデルの誤判定率と、インク種特定処理におけるインクの種類の誤特定率の目標値と、に基づいて決定される。このために、この決定処理は、例えば、機械学習モデルDNc、DNm、DNy、DNkが更新される時や、誤特定率の目標値が更新される時に、実行される。
【0063】
図7は、特定閾値Nの決定処理のフローチャートである。S300では、CPU110は、CMYKの4色の中から1つの注目色を選択する。
【0064】
S310では、CPU110は、機械学習モデルDNc、DNm、DNy、DNkのうちの注目色用の機械学習モデルDNの誤判定率Eを取得する。誤判定率Eは、機械学習モデルDNが純正インクを誤って非純正インクであると判定する確率である。換言すれば、機械学習モデルDNの誤判定率Eは、機械学習モデルDNに純正インクのドットを示す1個の入力画像データDinが入力された場合に、機械学習モデルDNが非純正インクであることを示す出力データDoutを出力する確率である。誤判定率Eは、例えば、所定数(例えば、1000個)の純正インクのドットを示す入力画像データDinを用いて、実験的に決定される。
【0065】
機械学習モデルDNc、DNm、DNy、DNkの誤判定率Ec、Em、Ey、Ekは、例えば、機械学習モデルDNc、DNm、DNy、DNkの作成者によって決定され、機械学習モデルDNc、DNm、DNy、DNkが更新される際に、機械学習モデルDNc、DNm、DNy、DNkの更新データとともにデータ処理装置100に保存されている。誤判定率Ec、Em、Ey、Ekは、0より大きく1より小さな値であり、例えば、0.001~0.01程度の比較的小さな値である。
【0066】
S320では、CPU110は、インク種特定処理の誤特定率TEの目標値TEtを取得する。インク種特定処理の誤特定率TEは、図5のインク取得処理によるインクの種類の特定(図5のS280)において、対象インクが純正インクであるにも関わらず、対象インクが非純正インクであると誤って特定される確率である。誤特定率TEは、0より大きく1より小さな値である。目標値TEtは、予め定められてコンピュータプログラムPGに組み込まれた値である。これに代えて、目標値TEtは、例えば、インク特定システム1000の使用者によって決定されて、データ処理装置100に入力されても良い。目標値TEtは、例えば、機械学習モデルの誤判定率Ec、Em、Ey、Ekよりもさらに小さな値である。目標値TEtは、本実施例では、4色のインクに共通の値である。これに代えて、目標値TEtは、本実施例では、インク色ごとに異なる値であっても良い。
【0067】
S330では、CPU110は、インク種特定処理の誤特定率TEが目標値TEtよりも小さくなるように、注目色の特定閾値Nの1以上の候補値を決定する。本実施例では、特定閾値Nは、1以上M以下の整数nを取り得る。Mは、上述のように、インク取得処理にて用いられる入力画像データDinおよび出力画像データDoutの個数M(Mは2以上の整数)である。特定閾値Nをn(nは1以上M以下の整数)とした場合におけるインク取得処理の誤特定率TEnは、誤判定率Eと出力画像データDoutの個数Mとを用いて以下の式(1)で表される。
【0068】
【0069】
式(1)のは、M個の選択肢の中からi個を選択する組み合わせの数である。式(1)のは、出力データのうち、i個の出力データが純正インクを非純正インクであると誤判定し、(M-i)個の出力データが純正インクを純正インクであると正しく判定している場合に起こりえるM個の出力データのパターンの数を表している。誤特定率TEnが目標値TEtよりも小さくなるようなn(TEn<TEtを満たすn)が、特定閾値Nの候補値となる。nが大きいほど、誤特定率TEnは小さくなるので、CPU110は、nが小さい順に(n=1、2、3…の順に)誤特定率TEnを計算し、最初にTEn<TEtを満たすnを特定した時点で計算を終了する。最初にTEn<TEtを満たすnをn1とすると、n1以上M未満の整数が、特定閾値Nの候補値である。
【0070】
S340では、CPU110は、特定閾値Nの候補値のうちの最小値を、特定閾値Nとして決定する。本実施例では、上述のように、n1以上M未満の整数が、特定閾値Nの候補値であるので、最小値であるn1が、注目色の特定閾値Nとして決定される。
【0071】
S350では、CPU110は、CMYKの全てのインク色を注目色として処理したか否かを判定する。未処理のインク色がある場合には(S350:NO)、CPU110は、S300に戻る。全てのインク色について処理された場合には(S350:YES)、すなわち、CMYKの4色のインクに対応する特定閾値Nc、Nm、Ny、Nkが決定された場合には、CPU110は、特定閾値Nの決定処理を終了する。
【0072】
A-5.機械学習モデルDNのトレーニング
上述した学習済みの機械学習モデルDNc、DNm、DNy、DNkは、入力画像データDinが入力された場合に、所望の出力データDoutを生成できるように、事前にトレーニングされている。以下では、1つのインク色の機械学習モデルDNのトレーニングについて説明する。このトレーニング処理が、CMYKの4色のインクのそれぞれを対象色として4回実行されることによって、学習済みの機械学習モデルDNc、DNm、DNy、DNkが生成される。機械学習モデルDNのトレーニングは、例えば、プリンタ400を製造する事業者によって実行される。
【0073】
図8は、機械学習モデルDNのトレーニングの工程を示すフローチャートである。この工程は、プリンタ400にて用いられるCMYKの4色のインクのそれぞれを対象色として行われる。
【0074】
S400では、作業者は、綿棒SWを用いて、対象色(例えば、C)を有する純正インクの複数個のドットDTを用紙S上に形成する。ドットDTの形成の方法は、図3のS110について図4を参照して説明した方法と同一である。ただし、トレーニングでは、より多数のドットDT、例えば、数百個~数千個のドットDTが複数枚の用紙Sに亘って形成される。複数枚の用紙Sには、同一種類の用紙が用いられる。用紙Sの種類によって、インクの滲み方などの特性が異なり得る。このため、仮に異なる種類の用紙が用いられると、用紙の種類に起因した差異が形成されるドットDTに現れてしまう可能性がある。
【0075】
S405では、作業者は、綿棒SWを用いて、対象色を有する非純正インクの複数個のドットDTを用紙S上に形成する。ドットDTの形成の方法、および、形成されるドットDTの個数は、S400の純正インクのドットの形成と同一である。非純正インクのドットDTの形成に用いられる用紙Sは、S400の純正インクのドットの形成で用いられる用紙Sと同一種類の用紙である。
【0076】
S410では、作業者は、図3のS120と同様に、所定の乾燥時間(例えば、30分)の経過を待つ。
【0077】
S415では、スキャナ200を用いて、純正インクのドットDTが形成された複数枚の用紙Sと非純正インクのドットDTが形成された複数枚の用紙Sのそれぞれを光学的に読み取ることによって、複数個のスキャンデータが生成される。各スキャンデータによって示されるスキャン画像は、図4(B)のスキャン画像SIと同様の画像である。複数個のスキャンデータは、データ処理装置100の揮発性記憶装置120または不揮発性記憶装置130に格納される。
【0078】
S420では、データ処理装置100のCPU110は、複数個のスキャンデータを用いて、複数個の入力画像データDinを生成する。例えば、純正インクのドットDTを示す所定個数(例えば、数百個~数千個)の入力画像データDin1と、非純正インクのドットDTを示す所定個数の入力画像データDin2と、が生成される。各スキャンデータから複数個の入力画像データDinを生成する方法は、図5のS240にて説明した方法と同一である。各入力画像データDinによって示される入力画像は、図6(A)の入力画像DIと同様の画像である。
【0079】
S425では、CPU110は、純正インクおよび非純正インクの入力画像データDinに対して、データ拡張処理を実行して、追加の入力画像データDinを生成する。データ拡張処理は、入力画像データDinに対して、画像を回転する回転処理、画像を上下や左右に反転させる反転処理、拡大処理、縮小処理のうちの少なくとも1つを実行して、新たな入力画像データDinを生成する処理である。これによって、純正インクおよび非純正インクの入力画像データDinの個数は、数倍に増加される。
【0080】
S430では、CPU110は、生成された複数個の入力画像データDinのそれぞれに対応する教師データを生成する。教師データは、対応する入力画像データDinによって示されるドットDTの形成に用いられたインクの種類を正しく示す理想的な出力データDoutである。純正インクのドットDTを示す入力画像データDin1には、純正インクを示す教師データが対応付けられ、非純正インクのドットDTを示す入力画像データDin2には、非純正インクを示す教師データが対応付けられる。例えば、ユーザが、ドットDTの形成に用いられたインクの種類を示す情報を用紙Sごとにデータ処理装置100に入力し、CPU110は、入力された情報に基づいて教師データを生成する。生成された教師データは、入力画像データDinと対応付けて、不揮発性記憶装置130に格納される。
【0081】
S435では、CPU110は、機械学習モデルDNのクラス分類部CLSの複数個の演算パラメータPdnを初期化する。例えば、これらの演算パラメータPdnの初期値は、同一の分布(例えば、正規分布)から独立に取得された乱数に設定される。
【0082】
S440では、CPU110は、複数個の入力画像データDinの中から、バッチサイズ分の入力画像データDinを選択する。例えば、複数個の入力画像データDinは、V個(Vは2以上の整数、例えば、V=100)ずつの入力画像データDinをそれぞれ含む複数個のグループ(バッチ)に分割される。CPU110は、これらの複数個のグループから1個のグループを順次に選択することによって、V個の使用すべき入力画像データDinを選択する。これに代えて、V個ずつの入力画像データDinは、複数個の入力画像データDinから、毎回、ランダムに選択されても良い。
【0083】
S445では、CPU110は、選択されたV個の入力画像データDinを機械学習モデルDNに入力して、V個の出力データDoutを生成する。V個の出力データDoutは、純正インクの入力画像データDin1に対応する出力データDout1と、非純正インクの入力画像データDin2に対応する出力データDout2と、を含み得る。
【0084】
S450では、CPU110は、V個の出力データDoutのそれぞれについて、出力データDoutと、該出力データDoutに対応する教師データと、の間の誤差値EVを算出する。誤差値EVは、所定の損失関数に基づいて算出される。例えば、誤差値EVの算出には、平均二乗誤差(MSE(Mean Squared Error))が用いられる。
【0085】
S455では、CPU110は、V個の誤差値EVを用いて、クラス分類部CLSの複数個の演算パラメータPdnを調整する。具体的には、CPU110は、誤差値EVが小さくなるように、すなわち、出力データDoutと教師データとの差分が小さくなるように、所定のアルゴリズムに従って演算パラメータPdnを調整する。所定のアルゴリズムには、例えば、誤差逆伝播法と勾配降下法とを用いたアルゴリズム(例えば、adam)が用いられる。
【0086】
S460では、CPU110は、トレーニングが完了したか否かを判断する。本実施例では、作業者からの完了指示が入力された場合にはトレーニングが完了したと判断し、トレーニングの継続指示が入力された場合にはトレーニングが完了していないと判断する。例えば、CPU110は、トレーニング用に用いられた入力画像データDinとは別の複数個のテスト用の入力画像データDinを、機械学習モデルDNに入力して、複数個の出力データDoutを生成する。作業者は、複数個の出力データDoutを評価して、トレーニングを終了するか否かを判断する。作業者は、確認結果に応じて、操作部140を介して、トレーニングの完了指示または継続指示を入力する。変形例では、例えば、S440~S455の処理が所定回数だけ繰り返された場合に、トレーニングが完了されたと判断されても良い。
【0087】
トレーニングが完了していないと判断される場合には(S460:NO)、CPU110は、S440に処理を戻す。トレーニングが完了したと判断される場合には(S460:YES)、CPU110は、機械学習モデルDNのトレーニングを終了する。トレーニングが終了した時点で、機械学習モデルDNは、演算パラメータPdnが調整された学習済みモデルになっている。したがって、このトレーニングは、学習済みの機械学習モデルDNを生成(製造)する処理である、と言うことができる。
【0088】
以上説明した本実施例のインクの種類の特定(図3)では、インクを用紙Sに付着させる付着工程(図3のS110)と、インクが付着した用紙Sを示すスキャンデータを生成する生成工程(図3のS130)と、スキャンデータに基づくM個の入力画像データDinを取得する取得工程(図5のS240)と、M個の入力画像データDinを機械学習モデルDNに入力して、M個の出力データDoutを出力させる出力工程(図5のS250)と、が実行される。さらに、M個の出力データDoutのうち、非純正インクを示すデータの個数Lが特定閾値N以上である場合に(図5のS270にてYES)、特定すべき対象インクは非純正インクであると特定し(図5のS280)、非純正インクを示すデータの個数Lが特定閾値N未満である場合に(図5のS270にてNO)、対象インクは純正インクであると特定する(図5のS290)特定工程が実行される。機械学習モデルDNは、対象インクが純正インクであるにも関わらずに誤って非純正インクを示す出力データDoutを出力する可能性がある。本実施例によれば、M個の出力データDoutのうち、非純正インクを示すデータの個数Lが特定閾値N以上である場合にのみ、対象インクは非純正インクであると特定するので、対象インクが誤って非純正インクであると特定されることを抑制することができる。したがって、対象インクの種類を適切に特定することができる。例えば、1個の入力画像データDinに対応する1個の出力データDoutのみを用いて、対象インクの種類を特定する場合と比較して、対象インクが誤って非純正インクであると特定される確率を低くすることができる。また、本実施例のように、プリンタ400の故障の原因を調べる際には、純正インクが非純正インクであると誤って特定されると、プリンタ400に存在する故障原因を見逃しかねない。したがって、プリンタ400の故障の原因を調べる際には、純正インクが非純正インクであると誤って特定されることは、非純正インクが純正インクであると誤って特定されることよりも問題が大きいと考えられる。本実施例によれば、対象インクが誤って非純正インクであると特定される確率を低くすることができるので、例えば、プリンタ400の故障の原因を調べる際に有用である。
【0089】
さらに、本実施例では、プリンタ400で用いられるCMYKの複数色のインクごとに別々の特定閾値Nを用いて、各色のインクの種類を特定する(図5のS230、S270)。例えば、CPU110は、特定すべき対象インクがCインクである場合には、特定閾値Nとして、C用の特定閾値Ncを用いて、Cインクの種類を特定し、特定すべき対象インクがMインクである場合には、特定閾値Nとして、M用の特定閾値Nmを用いて、Mインクの種類を特定する。対象インクの色によって、機械学習モデルDNが誤った出力データDoutを出力する確率は異なり得る。このために、対象インクの色によって異なる特定閾値Nを用いて、インクの種類の特定を実行することで、対象インクが誤って非純正インクであると特定されることをより適切に抑制することができる。
【0090】
さらに、本実施例では、プリンタ400で用いられるCMYKのインク色ごとに別々の機械学習モデルDNc、DNm、DNy、DNkが用いられる(図1)。例えば、CPU110は、対象インクがCインクである場合には、機械学習モデルDNとして、Cインクに対応する機械学習モデルDNcを用いて出力データDoutを生成し、対象インクがMインクである場合には、機械学習モデルDNとして、Mインクに対応する機械学習モデルDNmを用いて、出力データDoutを生成する。この場合には、各色の特定に特化して、各機械学習モデルDNをトレーニングできるので、機械学習モデルDNによるインクの種類の特定精度を向上することができる。したがって、対象インクの種類を、インク色ごとに適切に特定することができる。また、インク色ごとに別々の機械学習モデルDNc、DNm、DNy、DNkが用いられる場合には、用いる機械学習モデルごとに、誤判定率Eが異なり得るので、上述のように、CMYKの複数色のインクごとに別々の特定閾値Nを用いることがより好ましい。
【0091】
さらに、上記実施例では、特定閾値Nは、機械学習モデルDNの誤判定率Eに基づいて、インク種特定処理の誤特定率TEが所定の目標値TEtより小さくなるように決定される(図7のS310~S330)。この結果、機械学習モデルDNの誤判定率Eに基づいて、適切な特定閾値Nを決定することができるので、特定すべき対象インクが純正インクであるにも関わらずに、対象インクは非純正インクであると誤って特定される誤特定率TEを、目標値TEtより小さく抑えることができる。
【0092】
ここで、特定閾値Nが過度に大きくなると、対象インクが純正インクであるにも関わらずに、対象インクは非純正インクであると誤って特定される誤特定率TEは低くなるが、対象インクが非純正インクであるにも関わらずに対象インクが純正インクであると誤って特定される確率が高くなる可能性がある。この場合には、対象インクの種類を正しく特定できる確率が下がる可能性がある。すなわち、対象インクが純正インクである場合には対象インクが純正インクであると特定し、かつ、対象インクが非純正インクである場合には対象インクが非純正インクであると特定できる確率が下がる可能性がある。本実施例では、特定閾値Nは、誤特定率TEが目標値TEtよりも小さくなる2以上の候補値のうちの最小値に決定される(図7のS340)。この結果、対象インクが純正インクであるにも関わらずに、対象インクは非純正インクであると誤って特定される誤特定率TEを目標値TEtよりも低く抑えつつ、対象インクが非純正インクであるにも関わらずに対象インクが純正インクであると誤って特定される確率が高くなることも抑制できる。したがって、対象インクの種類を正しく特定できる確率を向上できる。
【0093】
さらに、上記実施例によれば、M個の入力画像データDinによって示されるM個の入力画像DI(図6(A))のそれぞれは、用紙Sに付着したインク(使用ドットDTs)と、用紙Sのうちのインクが付着していない露出部分(背景Bg)と、の間の境界部分BAを示す境界画像を含む。境界部分BAには、インクの種類に応じた特徴が現れやすい。このために、本実施例では、境界部分BAを示す入力画像データDinが機械学習モデルDNに入力されることで、機械学習モデルDNに、インクの種類を適切に示す出力データDoutを出力させることができる。したがって、インクの種類を適切に特定することができる。
【0094】
例えば、インクの種類によって、溶媒や添加物の成分や該成分の含有量が互いに異なるために、インクの種類によってインクの特性は異なる。インクの特性は、例えば、用紙Sへの付着に関係する様々な特性、例えば、用紙Sへの浸潤に関する特性、溶媒の蒸発に関する特性、色味に関する特性が異なる。このようなインクの特性に応じた特徴は、ドットDTの中央部分CAよりも境界部分BAに現れやすいと考えられる。インクの特性に応じた特徴の違いは、ドットDTの外縁における滲み、外縁の形状、外縁における色の変動の違いとして現れやすいためである。ドットDTの中央部分CAには、例えば、色味やムラの違いが現れるが、これらの違いは外縁に現れる違いと比較して小さいと考えられる。
【0095】
実際に、出願人は、比較例として、入力画像DIのうちの中央部分CAのみを含み、境界部分BAや背景Bgを含まない画像を示す画像データを入力画像データとして用いて機械学習モデルDNをトレーニングした。そして、比較例の機械学習モデルDNに、中央部分CAのみを示す複数個の画像データを入力して、インクの種類の特定を行った。この結果、本実施例の方法では、インクの種類の正当率は、95%を超えたのに対して、比較例の方法では、インクの種類の正当率は、80%を下回った。
【0096】
また、本実施例によれば、プリンタ400にて用いられるインクそのものを用いて、インクの種類を特定するので、例えば、インクカートリッジにインクの種類を示すメモリが搭載されていない場合であってもインクの種類を特定できる。また、インクカートリッジ内のインクの詰め替えが行われている場合であっても、インクの種類を適切に特定できる。
【0097】
さらに、本実施例では、プリンタ400とは異なる付着手段である綿棒SWを用いて、ドットDTを形成する。この結果、例えば、カラーパッチなどの印刷画像を解析してインクの種類を特定する方法を用いることができない場合であっても、インクの種類を特定できる。例えば、プリンタ400の故障(例えば、印刷ヘッドのノズルの詰まり)によって、プリンタ400が印刷できない状態であっても、インクの種類を特定できる。
【0098】
以上の説明から解るように、本実施例の用紙Sは、対象物の例であり、スキャンデータは、対象画像データの例である。また、非純正インクは、第1種の印刷材の例であり、純正インクは、第2種の印刷材の例である。
【0099】
B.変形例:
(1)上記実施例のインク種特定処理は、一例であり、種々の変形が可能である。例えば、特定閾値Nの決め方は、任意であり、様々な手法が採用され得る。
【0100】
図9は、変形例のインク種特定処理のフローチャートである。図9のインク種特定処理では、第1実施例の図5のインク種特定処理のS230が実行されない。さらに、図9のインク種特定処理では、図5のインク種特定処理のS270に代えて、S270Bが実行される。図9のインク種特定処理の他の処理は、図5のインク種特定処理と同一であるので、図9において、図5と同一の処理については、図5と同一の符号を付し、その説明を省略する。
【0101】
図5の同符号の処理と同一の図9のS220~S260の後に、図9のS270Bでは、CPU110は、S260にて算出された非純正インクを示す出力データDoutの個数Lが、S250にて機械学習モデルDNを用いて生成された出力データDoutの個数Mの半分(M/2)より多いか否かを判断する。個数Lが(M/2)よりも多い場合には(S270B:YES)、S280にて、CPU110は、注目色の対象インクは非純正インクであると特定する。個数Lが(M/2)以下である場合には(S270B:NO)、S290にて、CPU110は、注目色の対象インクは純正インクであると特定する。
【0102】
S295では、図5のS295と同様に、CPU110は、CMYKの全てのインク色を注目色として処理したか否かを判定する。未処理のインク色がある場合には(S295:NO)、CPU110は、S220に戻る。全てのインク色について処理された場合には(S295:YES)、CPU110は、インク種特定処理を終了する。
【0103】
以上説明した図9の変形例では、上述の説明から解るように、M個の出力データDoutによるインクの種類の判定結果に基づく多数決によって、最終的にインクの種類を特定している。換言すれば、図9の変形例では、特定閾値Nとして、(2/M)<Nを満たす候補値のうちの最小値が採用されている、と言うことができる。この変形例によれば、多数決によって、対象インクの種類を適切に特定することができる。例えば、実施例と同様に、例えば、1個の入力画像データDinに対応する1個の出力データDoutのみを用いて、対象インクの種類を特定する場合と比較して、対象インクが誤って非純正インクであると特定される確率を低くすることができる。
【0104】
(2)上記実施例のインク種特定処理では、対象インクが非純正インクであるか非純正インクであるかを特定している。これに限らず、一般的に言えば、インク種特定処理は、対象インクが第1種のインクであるか第2種のインクであるかを特定する際に用いることができる。例えば、対象インクが、品質(例えば、色み、用紙への染み込み具合、ドットの均一性)上の問題が無いインク(合格インクと呼ぶ)であるか、品質上の問題があるインク(不合格インクと呼ぶ)であるかを特定するために、インク種特定処理が実行されても良い。このようなインク種特定処理は、例えば、インクを開発する際に開発中のインクを対象インクとして実行される。あるいは、インクを製造する際に製造されたインクを対象インクとして実行される。
【0105】
この場合には、例えば、合格インクで形成されたドットを示す入力画像データと、不合格インクで形成されたドットを示す入力画像データと、を用いて、図8のトレーニング処理を実行することで、学習済みの機械学習モデルDNが準備される。
【0106】
また、この場合には、特定すべき対象インクが不合格インクであるにも関わらずに、対象インクは合格インクであると誤って特定されることが、合格インクが不合格インクであると誤って特定されることよりも問題が大きいと考えられる。例えば、特定すべき対象インクが不合格インクであるにも関わらずに、対象インクは合格インクであると誤って特定されると、不合格インクを市場に流通させる可能性があるためである。したがって、この場合には、特定すべき対象インクが不合格インクであるにも関わらずに、対象インクは合格インクであると誤って特定される誤特定率TEvを、目標値TEtvより小さく抑えることが重視される。
【0107】
したがって、この変形例では、図7のS310にて、CPU110は、機械学習モデルDNが不合格インクを誤って合格インクであると判定する誤判定率Evを取得する。そして、図7のS330、S340では、CPU110は、機械学習モデルDNの誤判定率Evに基づいて、インク種特定処理の誤特定率TEvが目標値TEtvよりも小さくなるように、特定閾値Nを決定する。こうすれば、対象インクが不合格インクであるにも関わらずに、対象インクは合格インクであると誤って特定されることを適切に抑制することができる。
【0108】
(3)上記実施例では、インクの色ごとに別々の特定閾値Nを用いて、インク種特定処理(図5)が実行されている。これに代えて、複数色のインク色に共通の特定閾値Nを用いて、インク種特定処理が実行されても良い。
【0109】
(4)上記実施例では、インクの色ごとに別々の機械学習モデルDNを用いて、インク種特定処理(図5)が実行されている。これに代えて、複数色のインク色に共通の機械学習モデルDNを用いて、インク種特定処理が実行されても良い。
【0110】
(5)上記実施例の特定閾値Nの決定処理(図7)では、誤特定率TEが目標値TEtよりも小さくなる2以上の候補値のうちの最小値が、特定閾値Nとして決定されている(図7のS340)。これに限らず、例えば、2以上の候補値のうちの2番目に小さな値や3番目に小さな値が、特定閾値Nとして決定されても良い。
【0111】
(6)上記実施例の入力画像DIは、一例であり、これに限られない。例えば、上記実施例の入力画像DIは、使用ドットDTsと背景Bgとの間の境界部分BAを示す画像を含む(図6(A))。これに代えて、入力画像DIは、使用ドットDTsの中央部分CAのみを示す画像であっても良い。
【0112】
また、例えば、1個の入力画像DIは、複数個のドットDTを含んでもよい。複数個のドットDTを含む場合に、複数個のドットDTの外縁の一部は、互いに重なっていても良い。
【0113】
また、1個の入力画像は、1個のドットDTの全体を含んでいなくても良く、1個のドットDTの一部分のみを含んでも良い。例えば、図6(B)の入力画像DIbは、1個の使用ドットDTsの4分の1の部分を含む。入力画像DIbは、実施例の入力画像DI(図6(A))と同様に、使用ドットDTsと背景Bgとの境界部分BAを示す画像を含む。図6(B)の入力画像DIbが用いられる場合には、用紙S上の1個のドットDTから4個の入力画像データを生成できる。
【0114】
図6(C)の入力画像DIcは、実施例の入力画像DI(図6(A))の中央部分CAを構成する画素を、白色の画素に置換して得られる画像である。このように、1個の入力画像は、1個のドットDTのうち、境界部分BAを構成する外縁部分のみを含み、中央部分CAを含まなくても良い。
【0115】
(7)上記実施例では、インクの付着手段として、綿棒SWが用いられているが、これに限られない。例えば、綿棒SWとは異なる棒状の部材、例えば、棒の先端にインクを付着させるための多孔体(例えば、スポンジ)を取り付けた部材であっても良い。
【0116】
また、インクの付着手段は、棒状の部材とは異なる部材であっても良い。例えば、インクの付着手段は、所定量のインクの液滴を吐出する部材、例えば、スポイトSPであっても良い。図10は、変形例のドットDTの形成の説明図である。図10に示すように、スポイトSPを用いて、上方からインクの液滴を用紙S上に落下させることによって、用紙Sにインクを付着させ、用紙S上にインクのドットを形成しても良い。
【0117】
(8)上記実施例では、用紙S上に形成されるドットDTの形状は円型であるが、これに限られない。例えば、ドットDTの形状は、三角形や四角形などの多角形であっても良く、環状の形状であっても良い。
【0118】
(9)上記実施例では、ドットDTが形成される対象物は用紙Sであるが、これに限られない。例えば、ドットDTが形成される対象物は、樹脂やガラスなどで形成されたシートや板であっても良い。
【0119】
(10)上記実施例では、対象画像データは、スキャナ200を用いて生成されるスキャンデータである。これに代えて、対象画像データは、2次元イメージセンサを備えるデジタルカメラを用いて、用紙Sを撮影して得られる撮影画像データであっても良い。
【0120】
(11)上記実施例では、インクの種類の特定が行われているが、インクに代えて、電子写真方式のプリンタで用いられるトナーの種類の特定が行われても良い。この場合には、図3のS110、図8のS400、S405にて、インクに代えて、トナーを用いてドットDTが形成される。また、CMYKのインクの種類の特定に代えて、他の色(例えば、ライトシアン、ライトマゼンタ)のインクの種類の特定や、自然光の下では透明な蛍光インクや紫外線発光インクの種類の特定が行われても良い。
【0121】
(12)上記実施例の機械学習モデルDN(図2)の構成は一例であり、これに限られない。例えば、機械学習モデルDNにおいて、畳込層や全結合層の層数は、適宜に変更されて良い。また、機械学習モデルDNの各層で出力された値に対して実行される後処理も適宜に変更され得る。例えば、後処理に用いられる活性化関数は、任意の関数、例えば、ReLU、LeakyReLU、PReLU、ソフトマックス、シグモイドが用いられ得る。また、バッチノーマリゼイション、ドロップアウトなどの処理が後処理として適宜に追加や省略がされ得る。
【0122】
(13)上記実施例の機械学習モデルDNのトレーニング(図8)は、一例であり、適宜に変更され得る。例えば、誤差値EVには、平均二乗誤差が用いられているが、これに代えて、他の種類の誤差値が用いられても良い。例えば、誤差値EVには、クロスエントロピー誤差や平均絶対誤差が用いられても良い。また、機械学習モデルDNのトレーニングでは、クラス分類部CLSの演算パラメータPdnのみが調整されているが、特徴抽出部CEXの演算パラメータの全部または一部も調整されても良い。
【0123】
(14)図1のデータ処理装置100のハードウェア構成は、一例であり、これに限られない。例えば、データ処理装置100のプロセッサは、CPUに限らず、GPU(Graphics Processing Unit)やASIC(application specific integrated circuit)、あるいは、これらとCPUとの組み合わせであっても良い。また、データ処理装置100は、ネットワークを介して互いに通信可能な複数個の計算機(例えば、いわゆるクラウドサーバ)であっても良い。
【0124】
(15)上記各実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部あるいは全部をハードウェアに置き換えるようにしてもよい。例えば、機械学習モデルDNは、プログラムモジュールに代えて、ASIC(Application Specific Integrated Circuit)等のハードウェア回路によって実現されてよい。
【0125】
以上、実施例、変形例に基づき本発明について説明してきたが、上記した発明の実施の形態は、本発明の理解を容易にするためのものであり、本発明を限定するものではない。本発明は、その趣旨並びに特許請求の範囲を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物が含まれる。
【符号の説明】
【0126】
1000…インク特定システム,100…データ処理装置,110…CPU,120…揮発性記憶装置,130…不揮発性記憶装置,140…操作部,150…表示部,170…通信インタフェース,200…スキャナ,400…プリンタ,420C、420M、420Y、420K…インクカートリッジ,DI…入力画像,DN…機械学習モデル,DT…ドット,Din…入力画像データ,Dout…出力データ,PG…コンピュータプログラム,Pd、Pdn…演算パラメータ,S…用紙,SI…スキャン画像,SP…スポイト,SW…綿棒
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10