(57)【要約】      （修正有）【課題】機械学習モデルを用いて適切な属性情報を出力する。【解決手段】画像処理装置は、特定種のオブジェクトを含む対象画像を示す対象画像データを取得する。特定種のオブジェクトは円状の輪郭を有する特定部分を含む。画像処理装置は、対象画像データを用いて、対象画像内の円状の輪郭の中心を特定し、対象画像データを用いて、処理済画像を示す処理済画像データを生成する。処理済画像は、特定された中心と第１の径とを有する第１の円に基づいて特定される対象画像内の部分領域に対応する画像を含む。部分領域は、対象画像内の特定部分を含み、対象画像の一部を含まない領域である。画像処理装置は、処理済画像データを機械学習モデルに入力して、機械学習モデルを用いて特定部分の属性に関する属性情報を出力する。【選択図】図５
2020119159.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータプログラムであって、
特定種のオブジェクトを含む対象画像を示す対象画像データを取得する画像取得機能であって、前記特定種のオブジェクトは円状の輪郭を有する特定部分を含む、前記画像取得機能と、
前記対象画像データを用いて、前記対象画像内の前記円状の輪郭の中心を特定する中心特定機能と、
前記対象画像データを用いて、処理済画像を示す処理済画像データを生成する処理済画像生成機能であって、前記処理済画像は、特定された前記中心と第１の径とを有する第１の円に基づいて特定される前記対象画像内の部分領域に対応する画像を含み、前記部分領域は、前記対象画像内の前記特定部分を含み、前記対象画像の一部を含まない領域である、前記処理済画像生成機能と、
前記処理済画像データを機械学習モデルに入力して、前記機械学習モデルを用いて前記特定部分の属性に関する属性情報を出力する属性出力機能と、
コンピュータに実現させるコンピュータプログラム。
【請求項２】
請求項１に記載のコンピュータプログラムであって、さらに、
前記属性出力機能によって出力された前記属性情報を用いて、前記機械学習モデルにて用いられる複数個のパラメータを調整する調整機能と、
コンピュータに実現させるコンピュータプログラム。
【請求項３】
請求項１または２に記載のコンピュータプログラムであって、
前記特定部分は、環状の部分であり、
前記部分領域は、前記第１の円よりも外側であって、かつ、前記中心と前記第１の径よりも大きな第２の径とを有する第２の円よりも内側である環状の領域である、コンピュータプログラム。
【請求項４】
請求項１〜３のいずれかに記載のコンピュータプログラムであって、
前記処理済画像は、前記対象画像内の前記部分領域に対応する第１画像と、前記部分領域とは異なる領域に対応する第２画像であって特定色を有する複数個の画素を含む前記第２画像と、を含む、コンピュータプログラム。
【請求項５】
請求項１〜４のいずれかに記載のコンピュータプログラムであって、
前記中心特定機能は、
前記対象画像データを用いて前記円状の輪郭に対応する円領域を特定し、
前記円領域の重心を、前記円状の輪郭の中心として特定する、コンピュータプログラム。
【請求項６】
請求項５に記載のコンピュータプログラムであって、
前記中心特定機能は、
前記対象画像内の複数個の画素を前記複数個の画素の値に基づいて分類し、
前記分類結果を用いて前記円領域の候補である第１の候補領域と第２の候補領域とを特定し、
前記第１の候補領域と前記第２の候補領域とのうち、真円に近い形状を有する領域を前記円領域として特定する、コンピュータプログラム。
【請求項７】
請求項１〜６のいずれかに記載のコンピュータプログラムであって、
前記処理済画像生成機能は、前記対象画像内の前記特定領域のコントラストを高くする補正処理を含む生成処理を実行して、前記処理済画像データを生成する、コンピュータプログラム。
【請求項８】
請求項１〜７のいずれかに記載のコンピュータプログラムであって、
前記対象画像データは、イメージセンサを用いて、判定対象となる部分を含む対象物を撮影することによって得られる撮影画像データであり、
前記特定種のオブジェクトは、前記対象物を示し、
前記特定部分は、前記対象物の前記判定対象となる部分を示し、
前記属性出力部は、前記対象物が前記判定対象となる部分に欠陥を有するか否かを示す前記属性情報を出力する、コンピュータプログラム。
【請求項９】
学習済みモデルであって、
画像データを取得する機能と、
前記画像データを入力データとして、複数個のパラメータを用いて行われる演算であって特定の機械学習アルゴリズムに従う前記演算を行うことによって、属性情報を出力する機能と、
をコンピュータに実現させ、
前記複数個のパラメータは、複数個の学習用画像データと、各前記学習用画像データに対応する対応情報と、を用いた学習処理によって調整済みであり、
前記処理済画像データは、特定種のオブジェクトを含む対象画像を示す対象画像データを用いて生成され、
前記特定種のオブジェクトは円状の輪郭を有する特定部分を含み、
前記処理済画像データによって示される処理済画像は、前記対象画像内の前記特定部分を含み、前記対象画像の一部を含まない部分領域に対応する画像を含み、
前記対象画像内の前記部分領域は、前記対象画像データを用いて特定される前記対象画像内の前記円状の輪郭の中心と、第１の径と、を有する第１の円に基づいて特定される領域であり、
前記属性情報は、前記特定部分の属性に関する情報である、学習済みモデル。
【請求項１０】
画像処理装置であって、
特定種のオブジェクトを含む対象画像を示す対象画像データを取得する画像取得部であって、前記特定種のオブジェクトは円状の輪郭を有する特定部分を含む、前記画像取得部と、
前記対象画像データを用いて、前記対象画像内の前記円状の輪郭の中心を特定する中心特定部と、
前記対象画像データを用いて、処理済画像を示す処理済画像データを生成する処理済画像生成部であって、前記処理済画像は、特定された前記中心と第１の径とを有する第１の円に基づいて特定される前記対象画像内の部分領域に対応する画像を含み、前記部分領域は、前記対象画像内の前記特定部分を含み、前記対象画像の一部を含まない領域である、前記処理済画像生成部と、
前記処理済画像データを機械学習モデルに入力して、前記機械学習モデルを用いて前記特定部分の属性に関する属性情報を出力する属性出力部と、
備える、画像処理装置。
【請求項１１】
属性情報の出力方法であって、
特定種のオブジェクトを含む対象画像を示す対象画像データを取得する画像取得部であって、前記特定種のオブジェクトは円状の輪郭を有する特定部分を含む、前記画像取得ステップと、
前記対象画像データを用いて、前記対象画像内の前記円状の輪郭の中心を特定する中心特定ステップと、
前記対象画像データを用いて、処理済画像を示す処理済画像データを生成する処理済画像生成ステップであって、前記処理済画像は、特定された前記中心と第１の径とを有する第１の円に基づいて特定される前記対象画像内の部分領域に対応する画像を含み、前記部分領域は、前記対象画像内の前記特定部分を含み、前記対象画像の一部を含まない領域である、前記処理済画像生成ステップと、
前記処理済画像データを機械学習モデルに入力して、前記機械学習モデルを用いて前記特定部分の属性に関する属性情報を出力する属性出力ステップと、
を備える、属性情報の出力方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書は、画像データを用いて属性情報を出力する処理に関する。
【背景技術】
【０００２】
特許文献１に開示された画像検査システムは、コンパクトディスクを示す検査対象画像において所定の移動幅で矩形の抽出領域を移動させながら簡易検査用画像を抽出し、該簡易検査用画像に対して予測モデルを用いた判定を行って、コンパクトディスクに不良箇所が存在する可能性がある場所を判定する。画像検査システムは、不良箇所が存在する可能性がある場所において所定の移動幅より小さな移動幅で抽出領域を移動させながら詳細検査用画像を抽出し、該詳細検査用画像に対して予測モデルを用いた判定を行って、コンパクトディスクに不良箇所が存在するか否かを判定する。これによって、検査処理を高速化できるとされている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１８−１６９２１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記技術では、矩形の抽出領域を移動させながら検査用画像を抽出しているに過ぎないので、例えば、円形のコンパクトディスクの不良を検出するために適切な検査用画像が抽出できず、円形のコンパクトディスクの不良を適切に検出できない可能性があった。このような課題は、コンパクトディスクの不良の検出に限らず、機械学習モデルを用いて、属性情報を出力する場合に共通する課題であった。
【０００５】
本明細書は、機械学習モデルを用いて適切な属性情報を出力できる技術を開示する。
【課題を解決するための手段】
【０００６】
本明細書に開示された技術は、上述の課題の少なくとも一部を解決するためになされたものであり、以下の適用例として実現することが可能である。
【０００７】
［適用例１］コンピュータプログラムであって、特定種のオブジェクトを含む対象画像を示す対象画像データを取得する画像取得機能であって、前記特定種のオブジェクトは円状の輪郭を有する特定部分を含む、前記画像取得機能と、前記対象画像データを用いて、前記対象画像内の前記円状の輪郭の中心を特定する中心特定機能と、前記対象画像データを用いて、処理済画像を示す処理済画像データを生成する処理済画像生成機能であって、前記処理済画像は、特定された前記中心と第１の径とを有する第１の円に基づいて特定される前記対象画像内の部分領域に対応する画像を含み、前記部分領域は、前記対象画像内の前記特定部分を含み、前記対象画像の一部を含まない領域である、前記処理済画像生成機能と、前記処理済画像データを機械学習モデルに入力して、前記機械学習モデルを用いて前記特定部分の属性に関する属性情報を出力する属性出力機能と、コンピュータに実現させるコンピュータプログラム。
【０００８】
対象画像は、特定部分とは異なる部分を含み得る。上記構成によれば、処理済画像は、対象画像内の円状の輪郭を有する特定部分を含み、対象画像の一部を含まない部分領域に対応する画像を含む。そして、該処理済画像を示す処理済画像データが機械学習モデルに入力される。この結果、対象画像に含まれる特定部分とは異なる部分が、機械学習モデルを用いて出力される属性情報に与える影響を低減できる。したがって、機械学習モデルを用いて特定部分の属性に関する適切な属性情報を出力することができる。例えば、機械学習モデルのトレーニング効率の向上や機械学習モデルが出力する属性情報の精度の向上を実現できる。
【０００９】
［適用例２］学習済みモデルであって、画像データを取得する機能と、前記画像データを入力データとして、複数個のパラメータを用いて行われる演算であって特定の機械学習アルゴリズムに従う前記演算を行うことによって、属性情報を出力する機能と、をコンピュータに実現させ、前記複数個のパラメータは、複数個の処理済画像データを用いた学習処理によって調整済みであり、
前記処理済画像データは、特定種のオブジェクトを含む対象画像を示す対象画像データを用いて生成され、前記特定種のオブジェクトは円状の輪郭を有する特定部分を含み、前記処理済画像データによって示される処理済画像は、前記対象画像内の前記特定部分を含み、前記対象画像の一部を含まない部分領域に対応する画像を含み、前記対象画像内の前記部分領域は、前記対象画像データを用いて特定される前記対象画像内の前記円状の輪郭の中心と、第１の径と、を有する第１の円に基づいて特定される領域であり、前記属性情報は、前記特定部分の属性に関する情報である、学習済みモデル。
【００１０】
上記構成によれば、処理済画像は、対象画像内の円状の輪郭を有する特定部分を含み、対象画像の一部を含まない部分領域に対応する画像を含む。学習済みモデルは、当該処理済画像を示す処理済画像データを用いた学習処理によって調整済みのパラメータを用いる。この結果、特定部分の属性に関する適切な属性情報を出力することができる。
【００１１】
なお、本明細書に開示される技術は、種々の形態で実現することが可能であり、例えば、印刷装置、印刷方法、画像処理方法、これら装置の機能または上記方法を実現するためのコンピュータプログラム、そのコンピュータプログラムを記録した記録媒体、等の形態で実現することができる。
【図面の簡単な説明】
【００１２】
【図１】検査システム１０００の構成を示すブロック図である。
【図２】検査の対象物の一例を示す図である。
【図３】学習処理のフローチャートである。
【図４】本実施例で用いられる画像の一例を示す図である。
【図５】検査処理のフローチャートである。
【図６】入力前処理のフローチャートである。
【図７】入力前処理で用いられる画像の一例を示す第１の図である。
【図８】入力前処理で用いられる画像の一例を示す第２の図である。
【図９】コントラスト補正処理のためのトーンカーブの一例を示す図である。
【図１０】変形例の説明図である。
【発明を実施するための形態】
【００１３】
Ａ．実施例
Ａ−１．画像処理装置の構成
次に、実施の形態を実施例に基づき説明する。図１は、実施例における画像処理装置としての計算機２００とデジタルカメラ１００とを含む検査システム１０００の構成を示すブロック図である。検査システム１０００は、検査の対象物（本実施例では後述するパッキング部材）に欠陥があるか否かを判定する。デジタルカメラ１００は、二次元イメージセンサを用いて対象物を撮影することによって、対象物を示すオブジェクトを含む撮影画像データを生成する装置である。
【００１４】
計算機２００は、例えば、パーソナルコンピュータやスマートフォンである。計算機２００は、計算機２００のコントローラとしてのＣＰＵ２１０と、ＲＡＭなどの揮発性記憶装置２２０と、ハードディスクドライブやフラッシュメモリなどの不揮発性記憶装置２３０と、液晶ディスプレイなどの表示部２４０と、キーボードやマウスなどの操作部２５０と、通信インタフェース（ＩＦ）２７０と、を備えている。計算機２００は、通信インタフェース２７０を介して、デジタルカメラ１００と通信可能に接続される。
【００１５】
揮発性記憶装置２２０は、ＣＰＵ２１０が処理を行う際に生成される種々の中間データを一時的に格納するバッファ領域を提供する。不揮発性記憶装置２３０には、コンピュータプログラムＰＧが格納されている。揮発性記憶装置２２０や不揮発性記憶装置２３０は、計算機２００の内部メモリである。
【００１６】
コンピュータプログラムＰＧは、例えば、検査システム１０００の利用者によって作成され、不揮発性記憶装置２３０に格納される。これに代えて、コンピュータプログラムＰＧは、インターネットを介して接続されたサーバからダウンロードされる形態で提供されても良いし、ＤＶＤ−ＲＯＭなどに記録された形態にて提供され得る。ＣＰＵ２１０は、コンピュータプログラムＰＧを実行することにより、後述する学習処理や検査処理を実行する。
【００１７】
Ａ−２．検査の対象物
図２は、検査の対象物の一例を示す図である。本実施例の検査の対象物は、パッキング部材１０である。図２（Ａ）には、パッキング部材１０の斜視図が示されている。図２（Ｂ）には、パッキング部材１０を軸線ＣＯに沿って図２（Ａ）の上方（先端側）から下方（後端側）に向かって見た図が示されている。図２（Ｂ）では、図を見やすくするために、パッキング部材１０にハッチングを付している。
【００１８】
パッキング部材１０は、プリンタ（図示省略）に供給される印刷材としてのインクを収容するカートリッジ（図示省略）のインク供給口に挿入される。パッキング部材１０は、軸線ＣＯに沿って延びる孔１２が形成された略筒形状を有する部材であり、例えば、エラストマー、樹脂などを用いて形成される。パッキング部材１０の先端部１５は、カートリッジがプリンタに装着されていない状態では、図示しないバルブ部材と接触して、カートリッジ内のインクが外部に漏れることを防止する。先端部１５に傷や凹みなどの欠陥があると、バルブ部材との間に隙間が生じてインクが漏れる不具合が発生し得る。このために、検査システム１０００は、パッキング部材１０の先端部１５に欠陥があるか否かを検査する。
【００１９】
Ａ−３．機械学習モデル
図１に示すようにコンピュータプログラムＰＧは、機械学習モデルＭＭを含んでいる。機械学習モデルＭＭは、ＣＮＮ（Convolutional Neural Network）を用いたモデルである。このような機械学習モデルとしては、例えば、ＬｅＮｅｔやＡｌｅｘＮｅｔが用いられる。ＬｅＮｅｔは、例えば、「Y. LeCun, L. Bottou, Y. Bengio, and P. Haffner(1998): Gradient-based learning applied to document recognition. Proceedings of the IEEE 86, 11(November 1998),2278-2324.」に開示されている。ＡｌｅｘＮｅｔは、例えば、「Alex Krizhevsky, Ilya Sutskever and Geoffrey E. Hinton(2012): ImageNet classification with deep convolutional neural networks In F. Pereira, C. J. C. Burges, L. Bottou, & K. Q. Weinberger, eds. Advances in Neural Information Processing Systems 25. Curran Associates, Inc., 1097-1105.5」に開示されている。
【００２０】
機械学習モデルＭＭの入力は、画像データ、具体的には、後述する処理済画像データである。処理済画像データは、本実施例では、ＲＧＢ値で複数個の画素の色を示すＲＧＢ画像データである。ＲＧＢ値は、ＲＧＢ色空間の色値であり、赤（Ｒ）、緑（Ｇ）、青（Ｂ）の３個の成分値（Ｒ値、Ｇ値、Ｂ値とする）を含む。画像データは、画像内のＮ個の画素（Ｎは２以上の整数）の値（例えば、ＲＧＢ値や輝度値）を、各画素の注目ブロック内での位置に応じた順序で並べた行列である、と言うことができる。すなわち、機械学習モデルＭＭには、画像内のＮ個の画素の値が、画像内における当該画素の位置と対応付けて入力される。
【００２１】
機械学習モデルＭＭの出力は、パッキング部材１０の先端部１５に欠陥がある確率を示す値（欠陥有確率Ｆｒとも呼ぶ）と、パッキング部材１０の先端部１５に欠陥がない確率を示す値（欠陥無確率Ｇｒとも呼ぶ）と、の２個の値である。欠陥有確率Ｆｒと欠陥無確率Ｇｒは、例えば、０〜１の数値で表され、欠陥有確率Ｆｒと欠陥無確率Ｇｒとの和は、１である（Ｆｒ＋Ｇｒ＝１）。
【００２２】
機械学習モデルＭＭは、複数個の演算パラメータを含んでいる。機械学習モデルＭＭは、入力された画像データと複数個の演算パラメータとを用いた演算を行って、上述した欠陥有確率Ｆｒと欠陥無確率Ｇｒとを出力する。機械学習モデルＭＭは、ＣＮＮを用いたモデルであるので、例えば、１以上の畳込層と１以上のプーリング層と１以上の全結合層とを含む複数の層を有している。複数個の演算パラメータは、後述する学習処理によって調整されるパラメータである。複数個の演算パラメータは、例えば、畳込層および全結合層における演算で用いられる複数個の重みと複数個のバイアスとを含む。
【００２３】
Ａ−４．学習処理
ＣＰＵ２１０は、コンピュータプログラムＰＧを実行することによって学習処理を実行する。学習処理は、機械学習モデルＭＭの上述した複数個の演算パラメータ（重みおよびバイアス）を調整することで、機械学習モデルＭＭが適切な欠陥有確率Ｆｒおよび欠陥無確率Ｇｒを出力できるようにトレーニングする処理である。
【００２４】
学習処理に先立って、作業者は、複数個（例えば、３０００個）の学習用の撮影画像データを準備する。撮影画像データは、所定の撮影台上に配置されたパッキング部材１０を軸線ＣＯに沿って図２（Ａ）の上方（先端側）から、デジタルカメラ１００を用いて撮影して得られる画像データである。
【００２５】
図４は、本実施例で用いられる画像の一例を示す図である。図４（Ａ）には、撮影画像データによって示される撮影画像ＯＩの一例が示されている。撮影画像ＯＩは、パッキング部材１０を示すオブジェクトＰＯと、撮影台を示す背景ＢＧと、を含んでいる。オブジェクトＰＯは、パッキング部材１０の先端部１５を示す部分（以下、特定部分ＳＰとも呼ぶ）を含む。先端部１５は環状の部分であるので、特定部分ＳＰも環状の部分である。このために、特定部分ＳＰの内側の輪郭ＩＬは円であり、特定部分ＳＰの外側の輪郭ＯＬは、内側の輪郭ＩＬより大きな円である。内側の輪郭ＩＬと外側の輪郭ＯＬは、互いに等しい中心を有する同心円である。背景ＢＧは、撮影台の色、本実施例では黒色を有している。背景ＢＧは、撮影時の光源の影響などによって均一ではなく、色のムラＵＮを有している。
【００２６】
学習用の撮影画像データは、先端部１５に欠陥を有するパッキング部材１０（以下、欠陥品とも呼ぶ）を撮影して得られる複数個（例えば、１５００個）の欠陥品画像データと、先端部１５に欠陥を有しないパッキング部材１０（以下、合格品とも呼ぶ）撮影して得られる複数個（例えば、１５００個）の合格品画像データと、を含む。これらの撮影画像データには、それぞれ、該撮影画像データが欠陥品画像データであるか合格品画像データであるかを示す教師データが対応付けられている。教師データは、例えば、理想的な出力値（欠陥有確率Ｆｒと欠陥無確率Ｇｒとのセット）である。教師データは、対応する撮影画像データが欠陥品画像データである場合には、「１」である欠陥有確率Ｆｒと「０」である欠陥無確率Ｇｒとのセットであり、対応する撮影画像データが合格品画像データである場合には、「０」である欠陥有確率Ｆｒと「１」である欠陥無確率Ｇｒとのセットである。準備された複数個の学習用の撮影画像データと教師データとは、不揮発性記憶装置２３０に格納される。
【００２７】
図３は、学習処理のフローチャートである。Ｓ１０では、ＣＰＵ２１０は、不揮発性記憶装置２３０に格納された複数個の学習用の撮影画像データから、１個の注目画像データを取得する。取得された注目画像データは、揮発性記憶装置２２０のバッファ領域に格納される。
【００２８】
Ｓ１５では、注目画像データに対して入力前処理を実行して、処理済画像データを生成する。入力前処理については後述する。
【００２９】
図４（Ｂ）には、処理済画像データによって示される処理済画像ＳＩの一例が示されている。処理済画像ＳＩは、撮影画像ＯＩ内の矩形領域ＳＡに対応する画像である。処理済画像ＳＩは、環状画像ＲＯと、背景画像ＷＢと、を含んでいる。環状画像ＲＯは、撮影画像ＯＩ内の環状の部分領域ＲＡに対応する画像である。撮影画像ＯＩ内の環状の部分領域ＲＡは、上述した先端部１５を示す特定部分ＳＰを含んでいる。このために、処理済画像ＳＩ内の環状画像ＲＯも先端部１５を示す部分ＳＰｓを含んでいる。背景画像ＷＢは、白色に塗りつぶされた領域である。このために、背景画像ＷＢは、白色を示す複数個の画素を含む。
【００３０】
Ｓ２０では、ＣＰＵ２１０は、全ての学習用の撮影画像データを処理したか否かを判断する。全ての撮影画像データが処理された場合には（Ｓ２０：ＹＥＳ）、ＣＰＵ２１０は、Ｓ２５に処理を進める。未処理の撮影画像データがある場合には（Ｓ２０：ＮＯ）、ＣＰＵ２１０は、Ｓ１０に戻る。
【００３１】
Ｓ２５に処理が進められた時点で、複数個の学習用の撮影画像データに対応する複数個（例えば、３０００個）の処理済画像データが生成されている。各処理済画像データには、元になった撮影画像データに対応する教師データが、そのまま対応付けられている。Ｓ２５では、ＣＰＵ２１０は、複数個の処理済画像データから、使用すべきｍ個（ｍは、２以上の整数、例えば、ｍ＝１００）の画像データ（使用画像データとも呼ぶ）を選択する。使用画像データは、例えば、毎回、複数個の処理済画像データから、ランダムに選択される。これに代えて、使用画像データは、複数個の処理済画像データのうち、未使用の画像データからランダムに選択されても良い。あるいは、ＣＰＵ２１０は、全ての処理済画像データを、ｍ個ずつの処理済画像データをそれぞれ含む複数個のグループ（バッチ）に予め分割し、これらの複数個のグループから１個のグループを順次に選択することによって、ｍ個の使用画像データを選択しても良い。
【００３２】
Ｓ３０では、ＣＰＵ２１０は、選択されたｍ個の使用画像データを１つずつ、機械学習モデルＭＭに入力して、上述した欠陥有確率Ｆｒと欠陥無確率Ｇｒとから成る出力値を機械学習モデルＭＭに出力させる。これによって、ｍ個の使用画像データに対応するｍ個の出力値が出力される。
【００３３】
Ｓ３５では、ＣＰＵ２１０は、パラメータ調整処理を実行する。パラメータ調整処理は、ｍ個の出力値を用いて、機械学習モデルＭＭにて用いられる上述した演算パラメータを調整する処理である。具体的には、ＣＰＵ２１０は、損失関数を用いて算出される指標値ＬＴが小さくなるように、所定のアルゴリズムに従って演算パラメータを調整する。ｋ番目の使用画像データに対応する損失関数は、例えば、ｋ番目（ｋは１以上ｍ以下の整数）の使用画像データに対応する出力値と、ｋ番目の使用画像データに対応する教師データと、の誤差Ｌｋを算出する関数である。指標値ＬＴは、例えば、ｍ個の使用画像データに対応するｍ個の誤差Ｌｋの合計である。損失関数には、２乗和誤差、交差エントロピー誤差などの公知の関数が用いられる。所定のアルゴリズムには、例えば、誤差逆伝播法と勾配降下法とを用いたアルゴリズムが用いられる。
【００３４】
Ｓ４０では、ＣＰＵ２１０は、Ｓ２５〜Ｓ３５の処理を所定回数分だけ繰り返し実行したか否かを判断する。所定回数は、例えば、１０００回である。Ｓ２５〜Ｓ３５の処理が所定回数分だけ繰り返し実行された場合には（Ｓ４０：ＹＥＳ）、ＣＰＵ２１０は、学習処理を終了する。Ｓ２５〜Ｓ３５の処理の実行回数が所定回数に満たない場合には（Ｓ４０：ＮＯ）、ＣＰＵ２１０は、Ｓ２５に処理を戻す。なお、変形例では、３０００個の処理済画像データとは、別にテスト用の処理済画像データのセットを用意して、機械学習モデルＭＭに入力し、十分な判定性能が得られた場合に学習処理が終了され、十分な判定性能が得られない場合には、Ｓ２５に処理が戻されても良い。
【００３５】
以上説明した学習処理が終了した時点で、機械学習モデルＭＭは、演算パラメータが適切な値に調整された学習済みモデルになっている。したがって、学習処理は、学習済みモデルを生成（製造）する処理である、と言うことができる。学習済済みモデルは、後述する検査処理において、入力される処理済画像データの元になった撮影画像データが、欠陥品画像データであるか合格品画像データであるかを適切に判定することができる。
【００３６】
Ａ−５．検査処理
ＣＰＵ２１０は、コンピュータプログラムＰＧを実行することによって検査処理を実行する。検査処理は、検査対象のパッキング部材１０の先端部１５に欠陥があるか否かを判定して、判定結果を表示する処理である。
【００３７】
検査処理は、学習処理が終了した後に実行される。すなわち、検査処理は、機械学習モデルＭＭが学習済みモデルである状態で実行される。図５は、検査処理のフローチャートである。図５の検査処理は、検査すべきパッキング部材１０ごとに実行される。検査処理の対象となるパッキング部材１０を注目部材とも呼ぶ。
【００３８】
Ｓ５０では、ＣＰＵ２１０は、注目部材を撮影して得られる撮影画像データを注目画像データとして取得する。例えば、検査の作業者は、学習用の撮影画像データを準備する際と同様に、所定の撮影台上に配置された注目部材を軸線ＣＯに沿って図２（Ａ）の上方（先端側）から、デジタルカメラ１００を用いて撮影する。ＣＰＵ２１０は、デジタルカメラ１００から該撮影によって生成された撮影画像データを注目画像データとして取得する。取得された注目画像データは、揮発性記憶装置２２０のバッファ領域に格納される。注目画像データによって示される撮影画像は、例えば、図４（Ａ）の撮影画像ＯＩと同様の画像である。
【００３９】
Ｓ５５では、ＣＰＵ２１０は、注目画像データに対して入力前処理を実行して、処理済画像データを生成する。Ｓ５５の入力前処理は、上述した図３のＳ１５の入力前処理と同一の処理である。処理済画像データによって示される処理済画像は、例えば、図４（Ｂ）の処理済画像ＳＩと同様の画像である。
【００４０】
Ｓ６０では、ＣＰＵ２１０は、注目画像データを用いて生成された処理済画像データを、機械学習モデルＭＭ（学習済みモデル）に入力して、上述した欠陥有確率Ｆｒと欠陥無確率Ｇｒとから成る出力値を出力させる。
【００４１】
Ｓ６５では、ＣＰＵ２１０は、出力値に含まれる欠陥有確率Ｆｒは、閾値ＴＨ１以上であるか否かを判断する。閾値ＴＨ１は、例えば、０．５である。なお、変形例では、Ｓ６５にて、ＣＰＵ２１０は、欠陥無確率Ｇｒが閾値ＴＨ２未満であるか否かを判断しても良い。閾値ＴＨ２と閾値ＴＨ１は、ＴＨ２＝（１−ＴＨ１）の関係を満たす。欠陥有確率Ｆｒと欠陥無確率Ｇｒとは、Ｇｒ＝（１−Ｆｒ）の関係を満たすので、欠陥有確率Ｆｒが閾値ＴＨ１以上であることと、欠陥無確率ＧｒがＴＨ２未満であることとは、等価である。
【００４２】
欠陥有確率Ｆｒが閾値ＴＨ１以上である場合には（Ｓ６５：ＹＥＳ）、注目画像データは、欠陥品画像データであると判定される。すなわち、この場合には、注目部材は、欠陥品であると判定される。このために、この場合には、Ｓ７５にて、ＣＰＵ２１０は、ＣＰＵ２１０は、欠陥有りを示す判定結果を表示部２４０に表示する。作業者は、判定結果を見ることで、注目部材は欠陥品であると認識することができる。欠陥品であると判定された注目部材は、例えば、廃棄される。
【００４３】
欠陥無確率ＧｒがＴＨ１未満である場合には（Ｓ６５：ＮＯ）、注目画像データは、合格品画像データであると判定される。すなわち、この場合には、注目部材は、合格品であると判定される。このために、この場合には、Ｓ７０にて、ＣＰＵ２１０は、ＣＰＵ２１０は、欠陥無しを示す判定結果を表示部２４０に表示する。作業者は、該判定結果を見ることで、注目部材は合格品であると認識することができる。合格品であると判定された注目部材は、例えば、インクカートリッジの製造に用いられる。
【００４４】
注目部材について、欠陥有り、および、欠陥無しのいずれかを示す判定結果が表示されると、ＣＰＵ２１０は、注目部材について検査処理を終了する。複数個のパッキング部材１０が検査対象である場合には、複数個のパッキング部材１０のそれぞれを注目部材として、検査処理が複数回繰り返し実行される。
【００４５】
Ａ−６．入力前処理
図３のＳ１５および図５のＳ５５の入力前処理について説明する。図３のＳ１５の入力前処理と図５のＳ５５の入力前処理とは同一の処理である。図６は、入力前処理のフローチャートである。図７、図８は、入力前処理で用いられる画像の一例を示す図である。
【００４６】
Ｓ１００では、ＣＰＵ２１０は、注目画像データに対して二値化処理を実行して二値画像データを生成する。ＣＰＵ２１０は、撮影画像ＯＩ内の複数個の画素を、所定の背景色範囲ＢＲ内の画素の値を有する背景画素と、背景色範囲ＢＲ外の画素の値を有する非背景画素と、に分類することによって、注目画像データを二値化する。本実施例では、背景色範囲ＢＲは、撮影画像ＯＩの背景ＢＧの色、本実施例では、撮影台の色を示す範囲である。本実施例では、撮影台の色は黒であり、画素の値は、各成分値が０〜２５５の値を有するＲＧＢ値である。このために、本実施例では、背景色範囲ＢＲは、黒を示す範囲であり、例えば、Ｒ＜６０、かつ、Ｇ＜６０、かつ、Ｂ＜６０の範囲である。
【００４７】
図７（Ａ）には、図４（Ａ）の撮影画像ＯＩを示す注目画像データを二値化した二値画像データによって示される二値画像ＢＩの一例が示されている。二値画像ＢＩのうち、ハッチングされた部分は、背景画素を示し、ハッチングされていない部分は、非背景画素を示す。図４（Ａ）に示すように、この二値画像ＢＩでは、撮影画像ＯＩの背景ＢＧの一部の画素が背景画素に分類され、他の一部の画素は非背景画素に分類されている。これは、撮影画像ＯＩの背景ＢＧには、ムラＵＮがあるので、明るい部分と暗い部分とがあるためである。このために、二値画像ＢＩでは、撮影画像ＯＩの背景ＢＧのうち暗い部分に対応する複数個の暗領域ＤＡｉ、ＤＡｏ内の画素が背景画素に分類されている。二値画像ＢＩでは、撮影画像ＯＩのオブジェクトＰＯに対応するオブジェクト領域ＯＡ内の画素と、背景ＢＧのうちの明るい部分に対応する複数個の明領域ＬＡ内の画素と、が非背景画素に分類されている。
【００４８】
内側暗領域ＤＡｉは、撮影画像ＯＩの背景ＢＧのうち、環状のオブジェクトＰＯよりも内側に対応する円形の領域である。内側暗領域ＤＡｉは、パッキング部材１０の孔１２に対応する領域とも言うことができる。撮影台のうち、パッキング部材１０の孔１２に対応する部分には、撮影時に光が届きにくいために暗くなる。このために、撮影画像ＯＩにおいて、オブジェクトＰＯよりも内側には、ムラＵＮが生じ難いので、二値画像ＢＩにおいて、内側暗領域ＤＡｉは、比較的明確な円形を有している。これに対してオブジェクトＰＯよりも外側には、ムラＵＮが生じやすいので、二値画像ＢＩにおいて、オブジェクト領域ＯＡの外側には、様々な形状を有する複数個の明領域ＬＡと複数個の外側暗領域ＤＡｏとが混在している。
【００４９】
Ｓ１０５では、ＣＰＵ２１０は、二値画像データに対して、膨張収縮処理を実行して、膨張縮小処理済みの二値画像データを生成する。膨張収縮処理は、二値画像ＢＩ内において、特定済みの複数個の背景画素によって構成される領域を膨張させる膨張処理と、該領域を収縮させる収縮処理と、を含む。本実施例では、１回の膨張処理の後に、２回の収縮処理が実行され、２回の収縮処理の後に、１回の膨張処理が実行される。この膨張収縮処理によって、最終的に円領域として特定すべき内側暗領域ＤＡｉと、オブジェクト領域ＯＡと、の境界のがたつき（ノイズ）が除去され、内側暗領域ＤＡｉがより明確な円形となる。また、この膨張縮小処理によって、内側暗領域ＤＡｉにノイズとして含まれる孤立した非背景画素が除去される。
【００５０】
１回の膨張処理は、所定サイズのフィルタ、例えば、縦３画素×横３画素のサイズのフィルタを用いて実行される。具体的には、ＣＰＵ２１０は、処理前の二値画像内の注目画素とフィルタの中心位置とが重なるように、フィルタを処理前の二値画像上に配置する。ＣＰＵ２１０は、フィルタの範囲内に、背景画素が１個でも存在する場合には、注目画素に対応する処理済みの二値画像（図示省略）内の画素を背景画素に設定する。ＣＰＵ２１０は、フィルタの範囲内に、背景画素が１つもない場合には、注目画素に対応する処理済みの二値画像内の画素を非背景画素に設定する。ＣＰＵ２１０は、処理前の二値画像の全ての画素を注目画素として、処理済みの二値画像内の対応する画素を、背景画素および非背景画素のいずれかに設定することによって、膨張処理済みの二値画像データを生成する。
【００５１】
１回の収縮処理は、所定サイズのフィルタ、例えば、縦３画素×横３画素のサイズのフィルタを用いて実行される。具体的には、ＣＰＵ２１０は、処理前の二値画像内の注目画素とフィルタの中心位置とが重なるように、フィルタを処理前の二値画像上に配置する。ＣＰＵ２１０は、フィルタの範囲内に、非背景画素が１個でも存在する場合には、注目画素に対応する処理済みの二値画像内の画素を非背景画素に設定する。そして、ＣＰＵ２１０は、フィルタの範囲内に、非背景画素が１つもない場合には、注目画素に対応する処理済みの二値画像内の画素を背景画素に設定する。ＣＰＵ２１０は、処理前の二値画像の全ての画素を注目画素として、処理済みの二値画像内の対応する画素を、非背景画素および背景画素のいずれかに設定することによって、収縮処理済みの二値画像データを生成する。
【００５２】
なお、上述したフィルタのサイズ、すなわち、膨張処理による膨張の程度、および、収縮処理による収縮の程度は、一例である。例えば、フィルタは、例えば、縦５画素×横５画素のフィルタであっても良いし、縦７画素×横７画素のフィルタであっても良い。また、膨張縮小処理における膨張処理と拡張処理の回数や順序も一例である。例えば、１回の膨張処理の後に、２回の収縮処理が実行され、２回の収縮処理の後に、１回の膨張処理が実行される本実施例のパターンに限らず、例えば、膨張処理と収縮処理とが２回や３回程度繰り返されるパターンであっても良い。
【００５３】
図７（Ａ）は、膨張収縮処理済みの二値画像データによって示される二値画像ＢＩｓも示しているものとする。
【００５４】
Ｓ１２０では、ＣＰＵ２１０は、膨張収縮処理済みの二値画像データに対して、背景画素によって構成される背景領域を特定する領域特定処理を実行する。具体的には、膨張収縮処理済みの二値画像データに対してラベリング処理が実行される。例えば、ＣＰＵ２１０は、連続する一つながりの複数個の背景画素で構成される画素群に、１個の識別子を割り当て、互いに離れた複数個の背景画素で構成される複数個の画素群に、互いに異なる識別子を割り当てる。１個の識別子が割り当てられた画素群は、１個の背景領域として特定される。図７（Ｂ）の例では、二値画像ＢＩｓにおいて、上述した１個の内側暗領域ＤＡｉと、複数個の外側暗領域ＤＡｏと、がそれぞれ背景領域として特定される。
【００５５】
Ｓ１２５では、ＣＰＵ２１０は、特定された複数個の背景領域のうち、画素数が閾値ＴＨ２以上である背景領域を、特定すべき円領域の候補領域として特定する。閾値ＴＨ２は、例えば、パッキング部材１０の孔１２のサイズ、すなわち、撮影画像ＯＩにおけるオブジェクトＰＯよりも内側の円領域のサイズとして想定され得るサイズの下限に相当する画素数に設定されている。これによって、図７（Ｂ）の二値画像ＢＩｓにおいて、内側暗領域ＤＡｉと、複数個の外側暗領域ＤＡｏの一部と、を含む複数個の候補領域が特定される。
【００５６】
Ｓ１３０では、ＣＰＵ２１０は、特定された各候補領域の真円度ＣＤを特定する。真円度ＣＤは、候補領域の外形が、真円にどの程度近い形状であるかを示す指標値である。具体的には、ＣＰＵ２１０は、候補領域の高さ（縦方向の画素数）Ｈと、幅（横方向の画素数）Ｗと、を特定する。図７には、１個の外側暗領域ＤＡｏについて、高さＨと幅Ｈが図示されている。ＣＰＵ２１０は、高さＨと幅Ｈと用いて推定半径Ｒｅを算出する。推定半径Ｒｅは、Ｒｅ＝（Ｈ＋Ｗ）×（１／４）と表すことができる。推定半径Ｒｅは、候補領域が真円であると仮定した場合の半径である。ＣＰＵ２１０は、推定半径Ｒｅに基づいて算出される円の面積である推定面積Ｓｅと、実際の候補領域の面積である実面積Ｓｒ（候補領域の画素数）と、を算出する。ＣＰＵ２１０は、実面積Ｓｒを推定面積Ｓｅで除した値を真円度ＣＤとして算出する（ＣＤ＝Ｓｒ／Ｓｅ）。候補領域の真円度ＣＤが１に近いほど、該候補領域の外形は真円に近い。
【００５７】
Ｓ１３５では、ＣＰＵ２１０は、複数個の候補領域のうち、最も真円度ＣＤが高い候補領域を、円領域として特定する。本実施例では、パッキング部材１０の孔１２に対応する領域、すなわち、撮影画像ＯＩにおける環状のオブジェクトＰＯよりも内側の領域に対応する内側暗領域ＤＡｉが、円領域として特定される。
【００５８】
Ｓ１４０では、ＣＰＵ２１０は、特定された円領域（内側暗領域ＤＡｉ）の中心ＣＰｂを特定する。具体的には、ＣＰＵ２１０は、特定された円領域を構成する複数個の画素の平均座標（すなわち、円領域の重心）を算出し、該平均座標が示す位置を中心ＣＰｂとして特定する。二値画像ＢＩｓにおいて中心ＣＰｂが特定されることは、撮影画像ＯＩにおいて、該中心ＣＰｂに対応する位置が中心ＣＰ（図４（Ａ））として特定されることと等価である。特定される撮影画像ＯＩの中心ＣＰは、特定部分ＳＰの円上の輪郭ＩＬ、ＯＬの中心とも言うことができる。
【００５９】
Ｓ１４５では、ＣＰＵ２１０は、注目画像データによって示される撮影画像ＯＩ（図４（Ａ））をクロッピングする。すなわち、ＣＰＵ２１０は、撮影画像ＯＩの一部分である抽出画像ＣＩを示す抽出画像データを生成する。抽出画像ＣＩは、図４（Ａ）の撮影画像ＯＩのうちの矩形領域ＳＡ内の画像である。矩形領域ＳＡは、Ｓ１４０にて特定された撮影画像ＯＩの中心ＣＰを重心とし、所定の高さＨ１および幅Ｗ１を有する矩形の領域である。矩形領域ＳＡの高さＨ１および幅Ｗ１は、パッキング部材１０の先端部１５を示す撮影画像ＯＩ内の特定部分ＳＰが矩形領域ＳＡに含まれるように、予め定められている。
【００６０】
図７（Ｂ）には、抽出画像ＣＩの一例が示されている。図７（Ｂ）に示すように、抽出画像ＣＩは、撮影画像ＯＩの中心ＣＰと、特定部分ＳＰの全体を少なくとも含むオブジェクトＰＯの一部と、を含んでいる。
【００６１】
Ｓ１５０では、ＣＰＵ２１０は、抽出画像データに対して、コントラスト補正処理を実行して、補正済画像ＡＩを示す補正済画像データを生成する。コントラスト補正処理は、特定部分ＳＰのコントラストを高くする補正処理である。図９は、コントラスト補正処理のためのトーンカーブの一例を示す図である。この例では、画素の値の取り得る範囲は、０〜２５５の値である。具体的には、ＣＰＵ２１０は、抽出画像データの各画素のＲＧＢ値の各成分値に対して、図９のトーンカーブを適用する。この結果、閾値Ｖａ未満の値は、全て最小値（０）に変換される。そして、閾値Ｖａ以上２５５以下の範囲は、０以上２５５以下の範囲に拡大される。閾値Ｖａは、例えば、１２８である。コントラスト補正処理によって拡大される範囲（図９の例ではＶａ以上２５５以下の範囲）は、検査対象である先端部１５を示す特定部分ＳＰ内の画素の値が取り得ると想定される範囲である。図８には、補正済画像ＡＩの一例が示されている。
【００６２】
Ｓ１５５、Ｓ１６０では、ＣＰＵ２１０は、補正済画像データに対して、一部の画素のＲＧＢ値を、特定色（本実施例では白）を示すＲＧＢ値に置換する置換処理を実行して、処理済画像ＳＩを示す処理済画像データを生成する。
【００６３】
Ｓ１５５では、ＣＰＵ２１０は、補正済画像ＡＩ内の複数個の画素のうち、中心ＣＰと所定の半径Ｒ１を有する第１の円Ｃ１よりも内側の複数個の画素を白画素に置換する。すなわち、第１の円Ｃ１よりも内側の複数個の画素のＲＧＢ値が、白を示すＲＧＢ値（（Ｒ、Ｇ、Ｂ）＝（２５５、２５５、２５５））に置換される。半径Ｒ１は、第１の円Ｃ１が特定部分ＳＰの内側の輪郭ＩＬよりも僅かに内側に位置するように、予め定められている。
【００６４】
Ｓ１６０では、ＣＰＵ２１０は、補正済画像ＡＩ内の複数個の画素のうち、中心ＣＰと所定の半径Ｒ２を有する第２の円Ｃ２よりも外側の複数個の画素を白画素に置換する。すなわち、第２の円Ｃ２よりも外側の複数個の画素のＲＧＢ値が、白を示すＲＧＢ値に置換される。半径Ｒ２は半径Ｒ１よりも大きい。半径Ｒ２は、第２の円Ｃ２が特定部分ＳＰの外側の輪郭ＯＬよりも僅かに外側に位置するように、予め定められている。
【００６５】
Ｓ１５５、Ｓ１６０が実行されると、図４（Ｂ）に示す処理済画像ＳＩを示す処理済画像データが生成される。処理済画像データが生成されると、ＣＰＵ２１０は、入力前処理を終了する。補正済画像ＡＩにおける第１の円Ｃ１と第２の円Ｃ２との間の領域は、図４（Ａ）の撮影画像ＯＩに示す環状の部分領域ＲＡに対応する領域である。すなわち、撮影画像ＯＩにおいても中心ＣＰを有する第１の円Ｃ１と第２の円Ｃ２とを定義することが可能であり（図４（Ａ））、撮影画像ＯＩ内の部分領域ＲＡは、第１の円Ｃ１と第２の円Ｃ２とに基づいて特定（定義）される領域である。具体的には、部分領域ＲＡは、撮影画像ＯＩにおいて、第１の円Ｃ１よりも外側であって、かつ、第２の円Ｃ２よりも内側である環状の領域である。
【００６６】
以上説明した本実施例によれば、ＣＰＵ２１０は、対象画像データとしての撮影画像データを用いて、撮影画像ＯＩ内の円状の輪郭ＩＬ、ＯＬの中心ＣＰを特定する（図６のＳ１００〜Ｓ１４０）。ＣＰＵ２１０は、撮影画像データを用いて、処理済画像データを生成する（図６のＳ１４５〜Ｓ１６０）。処理済画像ＳＩ（図４（Ｂ））は、第１の円Ｃ１に基づいて特定される撮影画像ＯＩ内の環状の部分領域ＲＡに対応する環状画像ＲＯを含んでいる。撮影画像ＯＩ内の部分領域ＲＡは、撮影画像ＯＩ内の特定部分ＳＰを含み、撮影画像ＯＩの一部を含まない領域である。ＣＰＵ２１０は、このような処理済画像データを機械学習モデルＭＭに入力して、機械学習モデルＭＭを用いて欠陥無確率Ｇｒおよび欠陥有確率Ｆｒから成る出力値を出力する（図３のＳ３０、図５のＳ６０）。出力値は、特定部分ＳＰに示される先端部１５に欠陥があるか否かを示す情報であるので、特定部分ＳＰの属性に関する属性情報である、と言うことができる。
【００６７】
撮影画像ＯＩは、図４（Ａ）に示すように、特定部分ＳＰとは異なる部分を含み得る。特定部分ＳＰは環状であるのに対して、撮影画像ＯＩは矩形であるためである。本実施例によれば、上述した処理済画像ＳＩを示す処理済画像データが機械学習モデルＭＭに入力される。この結果、例えば、撮影画像データや抽出画像データがそのまま機械学習モデルＭＭに入力される場合と比較して、撮影画像ＯＩに含まれる特定部分ＳＰとは異なる部分が、機械学習モデルＭＭを用いて出力される出力値に与える影響を低減できる。したがって、機械学習モデルＭＭを用いて特定部分ＳＰの属性に関する適切な出力値を出力することができる。例えば、後述するように、学習処理において機械学習モデルＭＭのトレーニング効率を向上させることや、検査処理において機械学習モデルＭＭ（学習済みモデル）が出力する出力値の精度を向上させることを実現できる。撮影画像ＯＩに含まれる特定部分ＳＰとは異なる部分は、例えば、背景ＢＧや、パッキング部材１０を示すオブジェクトＰＯのうち、特定部分ＳＰを除いた部分である。背景ＢＧは、ムラＵＮを有するので、撮影画像ＯＩごとに異なり得る。また、パッキング部材１０の先端部１５とは異なる部分も、製造時のばらつきによって、パッキング部材１０ごとに異なる部分を含み得る。このために、撮影画像ＯＩに含まれる特定部分ＳＰとは異なる部分を示すデータが機械学習モデルＭＭに入力されると、当該部分の差異も出力値に影響を与え得る。特定部分ＳＰとは異なる部分の差異は、先端部１５が欠陥を有するか否かとは無関係であるので、特定部分ＳＰとは異なる部分の差異が出力値に影響を与えることは好ましくない。本実施例によれば、当該影響を抑制できるので、ＣＰＵ２１０は、機械学習モデルＭＭを用いて適切な出力値を出力することができる。
【００６８】
さらに、本実施例によれば、学習処理において、ＣＰＵ２１０は、出力された出力値を用いて、機械学習モデルＭＭにて用いられる複数個の演算パラメータを調整する（図３のＳ３５）。この結果、特定部分ＳＰとは異なる部分の差異が出力値に影響を与えることを抑制することで、機械学習モデルＭＭを効果的にトレーニングすることができる。例えば、学習処理において撮影画像データや抽出画像データがそのまま機械学習モデルＭＭに入力される場合と比較して、少ない撮影画像データを用いた学習で同等の判定精度を有する学習済みモデルを生成することができる。あるいは、学習処理において撮影画像データや抽出画像データがそのまま機械学習モデルＭＭに入力される場合と比較して、判定精度に優れた学習済みモデルを生成できる。
【００６９】
さらに、本実施例によれば、特定部分ＳＰは、環状の部分であり、部分領域ＲＡは、第１の円Ｃ１よりも外側であって、かつ、第２の円Ｃ２よりも内側である環状の領域である（図４（Ａ））。上記構成によれば、環状の特定部分ＳＰを含む適切な部分領域ＲＡに対応する環状画像ＲＯを含む処理済み画像データを生成できる。したがって、例えば、特定部分ＳＰとは異なる部分が処理済画像ＳＩに含まれることをさらに抑制することができる。
【００７０】
さらに、本実施例によれば、処理済画像ＳＩは、撮影画像ＯＩ内の部分領域ＲＡに対応する環状画像ＲＯと、撮影画像ＯＩ内の部分領域ＲＡとは異なる領域に対応する背景画像ＷＢであって、白色を有する複数個の画素を含む背景画像ＷＢと、を含む（図４（Ｂ））。上記構成によれば、特定部分ＳＰとは異なる部分が、機械学習モデルＭＭを用いて出力される出力値に与える影響を適切に低減できる。背景画像ＷＢの色は、全ての処理済画像ＳＩにおいて共通の色となるためである。
【００７１】
さらに、上記実施例によれば、ＣＰＵ２１０は、撮影画像データを用いて円状の輪郭ＩＬ、ＯＬに対応する円領域（図７（Ａ）の内側暗領域ＤＡｉ）を特定する（図４（Ａ）、図６のＳ１００〜Ｓ１４０）。そして、ＣＰＵ２１０は、該円領域の重心を、円状の輪郭ＩＬ、ＯＬの中心ＣＰとして特定する（図４（Ａ）、図６のＳ１４０）。この結果、撮影画像データを用いて、中心ＣＰを精度良く特定することができる。
【００７２】
さらに、上記実施例によれば、ＣＰＵ２１０は、撮影画像ＯＩ内の複数個の画素を前記複数個の画素の値に基づいて背景画素と非背景画素とに分類し（図６のＳ１００）、分類結果を用いて円領域の候補である第１の候補領域（例えば、図７（Ａ）の内側暗領域ＤＡｉ）と第２の候補領域（例えば、図７（Ａ）の外側暗領域ＤＡｏ）とを特定する（図６のＳ１００〜Ｓ１２５）。ＣＰＵ２１０は、第１の候補領域と第２の候補領域とのうち、真円に近い形状を有する領域を円領域として特定する（図６のＳ１３５）。この結果、円領域を精度良く特定でき、ひいては、円状の輪郭ＩＬ、ＯＬの中心ＣＰを精度良く特定することができる。
【００７３】
さらに、ＣＰＵ２１０は、特定部分ＳＰのコントラストを高くする補正処理（図６のＳ１５０）を含む生成処理を実行して、処理済画像データを生成する。この結果、特定部分のコントラストが高くされた処理済画像データを機械学習モデルに入力することができる。したがって、機械学習モデルを用いて、特定部分に含まれる特定部分の属性に関する適切な属性情報を出力することができる。
【００７４】
さらに、本実施例によれば、撮影画像データは、イメージセンサを用いてパッキング部材１０を撮影することによって得られる撮影画像データである。撮影画像ＯＩに含まれるオブジェクトＰＯは、パッキング部材１０を示し、特定部分ＳＰは、パッキング部材１０の判定対象となる部分である先端部１５を示す。ＣＰＵ２１０は、パッキング部材１０が先端部１５に欠陥を有するか否かを示す出力値を出力する（図３のＳ３０、図５のＳ６０）。この結果、機械学習モデルＭＭを用いて、パッキング部材１０が先端部１５に欠陥を有するか否かを精度良く判定することができる。
【００７５】
なお、本実施例では、機械学習モデルＭＭは、画像データを取得する機能と、該画像データを入力データとして、複数個の演算パラメータ（例えば、上述した重みやバイアス）を用いて行われる演算であってＣＮＮのアルゴリズムに従う演算を行うことによって、出力値を出力する機能と、をコンピュータに実現させるプログラム（プログラムモジュール）である、と言うことができる。
【００７６】
Ｂ．変形例：
（１）図１０は、変形例の説明図である。図１０には、変形例の撮影画像の簡略図が図示されている。これらの簡略図には、対象画像に含まれる特定部分だけが図示されている。上記実施例では、対象物を示すオブジェクトＰＯの特定部分ＳＰは、環状の部分であるが、これに限られない。特定部分は、円状の輪郭を有する他の形状を有する部分であっても良い。
【００７７】
例えば、図１０（Ａ）の撮影画像ＯＩ１に含まれる特定部分ＳＰ１は、円状の輪郭ＯＬ１を有する円状の部分である。この場合には、例えば、ＣＰＵ２１０は、撮影画像ＯＩ１を示す撮影画像データを用いて特定部分ＳＰ１の中心ＣＰ１を特定し、該撮影画像データを用いて処理済画像データを生成する。例えば、処理済画像は、該中心ＣＰ１と所定の半径を有する第１の円Ｃ１１よりも内側の部分領域に対応する円形画像を含み、円形画像よりも外側の領域が白色に塗りつぶされた画像である。例えば、特定部分ＳＰ１は、例えば、対象物としてのコインの表面部分を示す画像であっても良い。この場合には、例えば、機械学習モデルを用いて、コインの種類を判定するために、本発明が適用されても良い。
【００７８】
また、図１０（Ｂ）の撮影画像ＯＩ２に含まれる特定部分ＳＰ２、円状の輪郭ＯＬ２を有する部分である。特定部分ＳＰ２は、撮影画像ＯＩのうち、輪郭ＯＬ２よりも外側の部分である。この場合には、例えば、ＣＰＵ２１０は、撮影画像ＯＩ２を示す撮影画像データを用いて特定部分ＳＰ２の中心ＣＰ２を特定し、該撮影画像データを用いて処理済画像データを生成する。例えば、処理済画像は、該中心ＣＰ２と所定の半径を有する第１の円Ｃ１２よりも外側の部分領域に対応する画像を含み、該画像よりも内側の円形領域が白色に塗りつぶされた画像である。例えば、特定部分ＳＰ２は、例えば、孔を有する部材（例えば、エンジンのシリンダブロック）の孔の近傍部分を示す画像であっても良い。この場合には、例えば、機械学習モデルを用いて、孔を基点とする亀裂の有無を判定するために、本発明が適用されても良い。
【００７９】
図１０（Ａ）、図１０（Ｂ）の例は、第１の円のみに基づいて部分領域が特定でき、第２の円は不要な例である。
【００８０】
（２）上記実施例では、コンピュータプログラムＰＧは、学習処理を行う機能と、検査処理を行う機能と、の両方を実現する。これに代えて、学習処理を行う機能を実現する第１のコンピュータプログラムと、検査処理を行う機能を実現する第２のコンピュータプログラムとが、異なるプログラムであっても良い。この場合には、例えば、第１のコンピュータプログラムがインストールされた第１の計算機が学習処理を行うことによって、学習済みモデルを生成し、該学習済みモデルが組み込まれた第２のコンピュータプログラムがインストールされた第２の計算機が検査処理を行っても良い。
【００８１】
（３）上記実施例の入力前処理では、撮影画像データを用いて円領域を特定し、該円領域の中心を、円状の輪郭の中心ＣＰとして特定している。中心ＣＰを特定する手法はこれに限られない。例えば、中心ＣＰは、撮影画像ＯＩ上の予め定められた位置に毎回特定されても良い。この場合には、例えば、パッキング部材１０を撮影台に対して治具を用いて固定することによって、パッキング部材１０が毎回同じ位置に精度良く配置できる構成とする。そして、撮影台に対してデジタルカメラ１００を固定することによって、撮影画像ＯＩにおけるオブジェクトＰＯの位置が毎回同じ位置に配置されるようにしても良い。
【００８２】
（４）上記実施例の入力前処理では、円領域は、複数個の候補領域のうち真円度ＣＤが最も１に近い領域とされる。円領域を特定する手法はこれに限られない。例えば、ＣＰＵ２１０は、撮影画像ＯＩに所定のエッジ検出フィルタを適用して、エッジ画像を示すエッジ画像データを生成する。ＣＰＵ２１０は、エッジ画像内においてパターンマッチングによって円形のエッジを検出する。ＣＰＵ２１０は、円形のエッジのうち、所定の半径に最も近い半径を有するエッジを特定し、該エッジに囲まれた領域を円領域として特定しても良い。
【００８３】
（５）上記実施例の入力前処理は、適宜に変更され得る。例えば、図６のＳ１０５の膨張収縮処理、Ｓ１４５のクロッピング処理、Ｓ１５０のコントラスト補正処理の全部または一部は、省略されても良い。
【００８４】
（６）上記実施例では、出力値は、パッキング部材１０の判定対象となる部分である先端部１５に欠陥を有するか否かを示す情報であるが、これに限られない。例えば、上述したように、機械学習モデルＭＭを用いて、コインの種類を判定する場合には、出力値は、判定対象のコインが、３種以上のコインのうちのいずれであるかを示す情報であっても良い。一般的には、出力値は、撮影画像のうちの特定部分の属性に関する属性情報であれば良い。例えば、出力値は、特定部分の属性の複数個の候補（例えば、欠陥有りと欠陥無し）のうちの一つを示す情報であっても良い。
【００８５】
（７）上記実施例の図３の学習処理では、Ｓ３５にて演算パラメータを調整する際に、教師データを用いるいわゆる教師付の学習が行われている。これに代えて、例えば、出力すべき出力値の内容によっては、教師データを用いないいわゆる教師無しの学習によって、演算パラメータが調整されても良い。
【００８６】
（８）上記各実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部あるいは全部をハードウェアに置き換えるようにしてもよい。例えば、機械学習モデルＭＭを用いた演算の全部または一部（例えば、畳み込み演算）は、汎用のＣＰＵとは別の専用のハードウェア回路によって実現されてもよい。
【００８７】
以上、実施例、変形例に基づき本発明について説明してきたが、上記した発明の実施の形態は、本発明の理解を容易にするためのものであり、本発明を限定するものではない。本発明は、その趣旨並びに特許請求の範囲を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物が含まれる。
【符号の説明】
【００８８】
１０…パッキング部材、１２…孔、１５…先端部、１００…デジタルカメラ、２００…計算機、２１０…ＣＰＵ、２２０…揮発性記憶装置、２３０…不揮発性記憶装置、２４０…表示部、２５０…操作部、２７０…通信インタフェース、１０００…検査システム、Ｃ１、Ｃ１１、Ｃ１２…第１の円、Ｃ２…第２の円、ＳＡ…矩形領域、ＲＡ…部分領域、ＯＡ…オブジェクト領域、ＬＡ…明領域、ＷＢ…背景画像、ＣＤ…真円度、ＰＧ…コンピュータプログラム、ＢＧ…背景、ＯＩ、ＯＩ１、ＯＩ２…撮影画像、ＳＩ…処理済画像、ＢＩ…二値画像、ＣＩ…抽出画像、ＡＩ…補正済画像、ＯＩ…対象画像、ＭＭ…機械学習モデル、ＵＮ…ムラ、ＲＯ…環状画像、ＰＯ…オブジェクト、ＣＰ…中心、ＳＰ、ＳＰ１、ＳＰ２…特定部分、Ｇｒ…欠陥無確率、Ｆｒ…欠陥有確率
【図１】
2020119159.tif 000003
【図２】
2020119159.tif 000004
【図３】
2020119159.tif 000005
【図４】
2020119159.tif 000006
【図５】
2020119159.tif 000007
【図６】
2020119159.tif 000008
【図７】
2020119159.tif 000009
【図８】
2020119159.tif 000010
【図９】
2020119159.tif 000011
【図１０】
2020119159.tif 000012