(57)【要約】【課題】識別精度と識別に要する実行時間との両方を調整することが可能な識別器を提供すること。【解決手段】対象物を識別する識別器であって特性の異なる複数の識別器を記憶する記憶部と、特定の対象物に対する複数の識別器の各々の識別精度と実行時間とを識別器ごとに測定する測定部と、複数の識別器の各々の識別精度と実行時間とを出力する出力部と、測定部で測定された識別精度が第１の条件を満たす識別器のうち、実行時間が第２の条件を満たす識別器を選択する選択部と、選択された識別器を識別装置上で動作させるための設定を行う設定部と、を有する情報処理装置を提供する。【選択図】図４
2019106112.tif 000002
【特許請求の範囲】
【請求項１】
対象物を識別する識別器であって特性の異なる複数の識別器を記憶する記憶部と、
特定の対象物に対する前記複数の識別器の各々の識別精度と実行時間とを識別器ごとに測定する測定部と、
前記複数の識別器の各々の前記識別精度と前記実行時間とを出力する出力部と、
前記測定部で測定された前記識別精度が第１の条件を満たす識別器のうち、前記実行時間が第２の条件を満たす識別器を選択する選択部と、
前記選択された識別器を識別装置上で動作させるための設定を行う設定部と、
を有する情報処理装置。
【請求項２】
前記記憶部は、前記特定の対象物に対する前記複数の識別器の各々の前記識別精度と前記実行時間とを測定するために用いられるテスト画像を記憶し、
前記測定部は、前記複数の識別器の各々に前記テスト画像を識別させることで、前記識別精度と前記実行時間とを識別器ごとに測定する、
請求項１に記載の情報処理装置。
【請求項３】
前記記憶部は、対象物の画像を記憶し、
ユーザから画像の加工条件についての入力を受け、前記加工条件に基づいて前記記憶部に記憶された対象物の画像を加工することで前記テスト画像を生成する生成部を有する、
請求項２に記載の情報処理装置。
【請求項４】
前記生成部は、前記記憶部に記憶された対象物の画像に対して、ユーザにより指定された検出対象の画像を付加することで、前記テスト画像を生成する、
請求項３に記載の情報処理装置。
【請求項５】
前記生成部は、前記記憶部に記憶された対象物の画像に対して、ユーザにより指定されたパラメータに基づいて生成した検出対象の画像を付加することで、前記テスト画像を生成する、
請求項３に記載の情報処理装置。
【請求項６】
前記テスト画像は、検出対象を含むことを正解とする複数の第１テスト画像を含み、
前記識別精度は、前記複数の第１テスト画像に対して検出対象が含まれていると識別器が識別する確率である第１確率を含み、
前記測定部は、前記複数の識別器の各々に前記複数の第１テスト画像を識別させることで前記第１確率を測定し、
前記選択部は、前記測定部で測定された前記第１確率が前記第１の条件に含まれる識別器のうち、前記実行時間が前記第２の条件を満たす識別器を選択する、
請求項２乃至５のいずれか一項に記載の情報処理装置。
【請求項７】
前記テスト画像は、更に、検出対象を含まないことを正解とする複数の第２テスト画像とを含み、
前記識別精度は、更に、前記複数の第２テスト画像に対して検出対象が含まれていると識別器が誤って識別する確率である第２確率を含み、
前記測定部は、更に、前記複数の識別器の各々に前記複数の第２テスト画像を識別させることで前記第２確率を測定し、
前記選択部は、前記測定部で測定された前記第２確率が前記第１の条件に含まれる識別器のうち、前記実行時間が前記第２の条件を満たす識別器を選択する、
請求項６に記載の情報処理装置。
【請求項８】
前記第１の条件は、前記識別装置を使用するユーザにより指定される識別精度の範囲である、
請求項１乃至７のいずれか一項に記載の情報処理装置。
【請求項９】
前記選択部は、前記測定部で測定された前記識別精度が前記第１の条件に含まれる識別器が存在しない場合、前記識別精度が最も高い識別器を選択する、
請求項１乃至８のいずれか一項に記載の情報処理装置。
【請求項１０】
前記複数の識別器の各々は、学習済みモデルの種別と、検出対象があると識別する閾値との組み合わせにより設計されている、
請求項１乃至９のいずれか一項に記載の情報処理装置。
【請求項１１】
前記実行時間が前記第２の条件を満たす識別器は、前記実行時間が最も短い識別器である、
請求項１乃至１０のいずれか一項に記載の情報処理装置。
【請求項１２】
請求項１乃至１１のいずれか一項に記載の情報処理装置と、該情報処理装置と通信する前記識別装置とを含む識別システムであって、
前記識別装置は、
前記情報処理装置から、前記情報処理装置で選択された識別器を受け付けて記憶部に格納する受付部と、
前記記憶部に記憶された識別器を用いて対象物を識別する識別部と、
を有する、
識別システム。
【請求項１３】
対象物を識別する識別器であって特性の異なる複数の識別器を記憶する記憶部を有する情報処理装置が実行する設定方法であって、
特定の対象物に対する前記複数の識別器の各々の識別精度と実行時間とを識別器ごとに測定するステップと、
前記複数の識別器の各々の前記識別精度と前記実行時間とを出力するステップと、
前記測定された前記識別精度が第１の条件を満たす識別器のうち、前記実行時間が第２の条件を満たす識別器を選択するステップと、
前記選択された識別器を識別装置上で動作させるための設定を行うステップと、
を有する設定方法。
【請求項１４】
コンピュータを、
対象物を識別する識別器であって特性の異なる複数の識別器を記憶する記憶手段と、
特定の対象物に対する前記複数の識別器の各々の識別精度と実行時間とを識別器ごとに測定する測定手段と、
前記複数の識別器の各々の前記識別精度と前記実行時間とを出力する出力手段と、
前記測定手段で測定された前記識別精度が第１の条件を満たす識別器のうち、前記実行時間が第２の条件を満たす識別器を選択する選択手段と、
前記選択された識別器を識別装置上で動作させるための設定を行う設定手段と、
として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、識別システム、設定方法及びプログラムに関する。
【背景技術】
【０００２】
画像データに検出対象が含まれているか否かを識別するために用いられる識別器を機械学習により生成した場合、生成された識別器は一般的に、識別精度と識別に要する実行時間とがトレードオフの関係になることが知られている。
【０００３】
ここで、特許文献１には、識別性能の低い複数の弱識別器から構成され、各弱識別器における特徴量の判定結果と各弱識別器により設定された重みとの積算値の線形和に基づいて入力データの識別を行う強識別器を有する識別装置が記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１６−５５１８８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、識別装置に希望する識別精度や識別に要する実行時間は、ユーザのニーズに応じて異なることが考えられる。例えば、実行時間が多少かかっても識別精度を重視するユーザや、識別精度よりも実行時間を重視するユーザなど、ユーザのニーズは様々であることから、識別精度及び実行時間の両方を調整することが可能な仕組みが望まれている。
【０００６】
識別精度及び実行時間の両方を調整することで、例えば実行時間よりも識別精度が重視される場合、識別精度を上げることで検出対象の検出ミスを抑制することができる。また、識別精度よりも実行時間が重視される場合、識別に要する時間が短縮されることから識別装置のＣＰＵリソース及びメモリリソースを抑制することができる。しかしながら、特許文献１に記載されている識別装置は、そもそも検出処理を高速化することを目的としており、識別精度及び実行時間の両方を調整可能にすることを考慮していない。
【０００７】
そこで、本発明は、識別精度と識別に要する実行時間との両方を調整することが可能な識別器を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本開示の一態様に係る情報処理装置は、対象物を識別する識別器であって特性の異なる複数の識別器を記憶する記憶部と、特定の対象物に対する複数の識別器の各々の識別精度と実行時間とを識別器ごとに測定する測定部と、複数の識別器の各々の識別精度と実行時間とを出力する出力部と、測定部で測定された識別精度が第１の条件を満たす識別器のうち、実行時間が第２の条件を満たす識別器を選択する選択部と、選択された識別器を識別装置上で動作させるための設定を行う設定部とを有する。
【０００９】
この態様によれば、対象物を検査する複数の識別器の中から、測定された識別精度が所定の許容範囲に含まれる識別器のうち、実行時間が所定の条件を満たす識別器を選択して識別装置に実行させることができる。これにより、識別精度と識別に要する実行時間との両方を調整することが可能になる。また、識別に要する実行時間が所定の条件を満たす識別器を選択することができるため、ＣＰＵリソース及びメモリリソースを無駄に消費してしまうことを抑止することが可能になる。
【００１０】
上記態様において、記憶部は、特定の対象物に対する複数の識別器の各々の識別精度と実行時間とを測定するために用いられるテスト画像を記憶し、測定部は、複数の識別器の各々にテスト画像を識別させることで、識別精度と実行時間とを識別器ごとに測定するようにしてもよい。また、上記態様において、記憶部は、対象物の画像を記憶し、ユーザから画像の加工条件についての入力を受け、加工条件に基づいて記憶部に記憶された対象物の画像を加工することでテスト画像を生成する生成部を有するようにしてもよい。この態様によれば、ユーザは、実際に対象物を撮影した画像を用意することなく、テスト画像を用いて識別器の識別精度及び実行時間を測定することができる。
【００１１】
上記態様において、生成部は、記憶部に記憶された対象物の画像に対して、ユーザにより指定された検出対象の画像を付加することで、テスト画像を生成するようにしてもよいこの態様によれば、ユーザは、識別装置を使用する環境に沿ったテスト画像を作成することができ、ユーザにとってより最適な識別器を選択することが可能になる。
【００１２】
上記態様において、生成部は、記憶部に記憶された対象物の画像に対して、ユーザにより指定されたパラメータに基づいて生成した検出対象の画像を付加することで、テスト画像を生成する、ようにしてもよい。この態様によれば、ユーザは、識別装置を使用する環境に沿って自動的に作成されたテスト画像を使用することができ、ユーザにとってより最適な識別器を選択することが可能になる。また、この態様によれば、テスト画像を生成するユーザの負担を軽減させることが可能になる。
【００１３】
上記態様において、テスト画像は、検出対象を含むことを正解とする複数の第１テスト画像を含み、識別精度は、複数の第１テスト画像に対して検出対象が含まれていると識別器が識別する確率である第１確率を含み、測定部は、複数の識別器の各々に複数の第１テスト画像を識別させることで第１確率を測定し、選択部は、測定部で測定された第１確率が第１の条件に含まれる識別器のうち、実行時間が第２の条件を満たす識別器を選択するようにしてもよい。この態様によれば、ユーザは、検出対象を含むことを正解とするテスト画像を用いて識別器の識別精度を評価することができるため、ユーザにとってより詳細に識別器の識別精度を評価することができる。
【００１４】
上記態様において、テスト画像は、更に、検出対象を含まないことを正解とする複数の第２テスト画像とを含み、識別精度は、更に、複数の第２テスト画像に対して検出対象が含まれていると識別器が誤って識別する確率である第２確率を含み、測定部は、更に、複数の識別器の各々に複数の第２テスト画像を識別させることで第２確率を測定し、選択部は、測定部で測定された第２確率が第１の条件に含まれる識別器のうち、実行時間が第２の条件を満たす識別器を選択するようにしてもよい。この態様によれば、ユーザは、検出対象を含まないことを正解とするテスト画像を用いて識別器の識別精度を評価することができるため、ユーザにとってより詳細に識別器の識別精度を評価することができる。
【００１５】
上記態様において、第１の条件は、識別装置を使用するユーザにより指定される識別精度の範囲であってもよい。この態様によれば、ユーザは、識別精度と識別に要する実行時間との両方を任意に調整することが可能になる。
【００１６】
上記態様において、選択部は、測定部で測定された識別精度が第１の条件に含まれる識別器が存在しない場合、識別精度が最も高い識別器を選択するようにしてもよい。この態様によれば、所定の識別精度を満たす識別器が存在しない場合であっても、高い識別精度を実現しつつ識別装置を動作させることが可能になる。
【００１７】
上記態様において、複数の識別器の各々は、学習済みモデルの種別と、検出対象があると識別する閾値との組み合わせにより設計されていてもよい。この態様によれば、学習済みモデルの種別と閾値との組み合わせの数だけ、識別精度が異なる識別器が存在することになるため、ユーザにとって使用可能な識別器の選択枝が広がることになる。その結果、ユーザは多くの識別器の中から適切な識別器を選択することが可能になる。
【００１８】
上記態様において、実行時間が第２の条件を満たす識別器は、実行時間が最も短い識別器であってもよい。この態様によれば、識別精度が許容範囲を満たす識別器の中で実行時間が最も短い識別器を選択することができるため、ＣＰＵリソース及びメモリリソースを無駄に消費してしまうことを抑止することが可能になる。
【００１９】
上記態様において、上記記載の情報処理装置と、該情報処理装置と通信する識別装置とを含む識別システムであって、識別装置は、情報処理装置から、情報処理装置で選択された識別器を受け付けて記憶部に格納する受付部と、記憶部に記憶された識別器を用いて対象物を識別する識別部と、を有する、識別システムを提供するようにしてもよい。この態様によれば、情報処理装置で選択された識別器を用いて対象物を識別する識別システムを実現することができる。
【００２０】
本開示の他の態様に係る設定方法は、対象物を識別する識別器であって特性の異なる複数の識別器を記憶する記憶部を有する情報処理装置が実行する設定方法であって、特定の対象物に対する複数の識別器の各々の識別精度と実行時間とを識別器ごとに測定するステップと、複数の識別器の各々の識別精度と実行時間とを出力するステップと、測定された識別精度が第１の条件を満たす識別器のうち、実行時間が第２の条件を満たす識別器を選択するステップと、選択された識別器を識別装置上で動作させるための設定を行うステップと、を有する。
【００２１】
この態様によれば、検査対象物を検査する複数の識別器の中から、測定された識別精度が所定の許容範囲に含まれる識別器のうち、実行時間が所定の条件を満たす識別器を選択して識別装置に実行させることができる。これにより、識別精度と識別に要する実行時間との両方を調整することが可能になる。また、識別に要する実行時間が所定の条件を満たす識別器を選択することができるため、ＣＰＵリソース及びメモリリソースを無駄に消費してしまうことを抑止することが可能になる。
【００２２】
本開示の他の態様に係るプログラムは、コンピュータを、対象物を識別する識別器であって特性の異なる複数の識別器を記憶する記憶手段と、特定の対象物に対する複数の識別器の各々の識別精度と実行時間とを識別器ごとに測定する測定手段と、複数の識別器の各々の識別精度と実行時間とを出力する出力手段と、測定手段で測定された識別精度が第１の条件を満たす識別器のうち、実行時間が第２の条件を満たす識別器を選択する選択手段と、選択された識別器を識別装置上で動作させるための設定を行う設定手段と、として機能させる。
【００２３】
この態様によれば、検査対象物を検査する複数の識別器の中から、測定された識別精度が所定の許容範囲に含まれる識別器のうち、実行時間が所定の条件を満たす識別器を選択して識別装置に実行させることができる。これにより、識別精度と識別に要する実行時間との両方を調整することが可能になる。また、識別に要する実行時間が所定の条件を満たす識別器を選択することができるため、ＣＰＵリソース及びメモリリソースを無駄に消費してしまうことを抑止することが可能になる。
【発明の効果】
【００２４】
本発明によれば、識別精度と識別に要する実行時間との両方を調整することが可能な識別器を提供することができる。
【図面の簡単な説明】
【００２５】
【図１】本実施形態に係る画像処理システムの適用場面の一例を模式的に例示する。
【図２】本実施形態に係る管理装置のハードウェア構成の一例を模式的に例示する。
【図３】本実施形態に係る画像処理装置のハードウェア構成の一例を模式的に例示する。
【図４】本実施形態に係る管理装置の機能構成の一例を模式的に例示する。
【図５】本実施形態に係る画像処理装置の機能構成の一例を模式的に例示する。
【図６】ニューラルネットワークの一例を例示する。
【図７】管理装置が行う処理手順の一例を例示するフローチャートである。
【図８】テスト画像作成画面（手動）の一例を例示する。
【図９】テスト画像作成画面（自動）の一例を例示する。
【図１０】学習済みモデルの種別の一例を例示する。
【図１１】管理装置が識別器を選択する処理手順の一例を例示する。
【図１２】欠陥識別率及びフォールスポジティブ率を測定した結果の具体例を例示する。
【図１３】欠陥識別率及びフォールスポジティブ率を測定した結果の具体例を例示する。
【図１４】実行時間を測定した結果の具体例を例示する。
【図１５】管理装置が欠陥識別率を測定する処理手順の一例を例示する。
【図１６】管理装置がフォールスポジティブ率を測定する処理手順の一例を例示する。
【図１７】識別器が識別する検査対象物の一例を例示する。
【発明を実施するための形態】
【００２６】
以下、本発明の一側面に係る実施の形態（以下、「本実施形態」とも表記する）を、図面に基づいて説明する。
【００２７】
§１  適用例
まず、図１を用いて、本発明が適用される場面の一例について説明する。図１は、本実施形態に係る画像処理システム１の適用場面の一例を模式的に例示する。画像処理システム１は、典型的には、生産ラインなどに組み込まれる。画像処理システム１は、生産ライン上を搬送されるワークを撮像することによって得られる画像に基づいて、ワークの検査を実行する。なお、画像処理システム１は、本発明の「識別システム」の一例である。
【００２８】
図１に示すように、画像処理システム１は、管理装置１００と、管理装置１００とネットワーク２を介して通信する１以上の画像処理装置２００とを含む。たとえば、ワークはベルトコンベヤなどの搬送機構によって所定方向に搬送され、それぞれの画像処理装置２００は、この搬送経路に相対して予め定められた位置に配置される。管理装置１００は、ワークを検査するための識別器として少なくとも特性の異なる複数の識別器を有しており、これらの複数の識別器の中から、画像処理装置２００に実行させる識別器を選択する装置である。「特性が異なる複数の識別器」とは、各々の識別器が検出可能な検出対象は同一であるが、検出を行う際の演算精度や演算量が異なるために当該検出対象を識別する識別精度や、検出対象の検出を開始してから検出結果を出力するまでに要する実行時間（以下、単に「実行時間」と言う。）が異なる識別器を意味する。ここで、ワークは、本発明の「検査対象物」の一例である。また、管理装置１００は、本発明の「情報処理装置」の一例である。また、画像処理装置２００は、本発明の「識別装置」の一例である。
【００２９】
まず、管理装置１００は、特定の検査対象物に対する識別器ごとの識別精度及び実行時間を測定するために用いられる複数のテスト画像を生成する。特定の検査対象物とは、例えば、ユーザが画像処理装置２００に検査させる、所定の属性（例えば、ワークの材質、表面形状又はワークに含まれる欠陥内容等）を有するワークであってもよい。また、テスト画像は、欠陥を有しないワークの画像に対して疑似的な欠陥が付加された画像であってもよい。ここで、欠陥とは、検査対象物が有する異常であって、例えば、キズ、色等のムラ、汚れ、打痕、欠け、バリ、異物、印字のかすれ、印字等の位置ずれ等を含む。続いて、管理装置１００は、複数の識別器の各々に対し、作成された複数のテスト画像を識別させることで、識別器ごとに識別精度及び実行時間を測定する。識別精度は、識別器がワークの画像に含まれる欠陥の有無を正しく検出することができる確率で表されてもよい。
【００３０】
続いて、管理装置１００は、測定された識別精度が、ユーザが画像処理装置２００の性能として要求する識別精度の範囲である所定の許容範囲に含まれる識別器のうち、実行時間が所定の条件を満たす識別器を、画像処理装置２００に実行させる識別器として選択する。所定の条件とは、例えば、実行時間が最も短い識別器であってもよい。選択された識別器は画像処理装置２００に組み込まれ、画像処理装置２００は、生産ライン上を流れるワークを撮像した画像を識別器に入力することで、ワークの検査等を行う。なお、所定の許容範囲は、本発明の「第１の条件」の一例である。所定の条件は、本発明の「第２の条件」の一例である。
【００３１】
本実施形態によれば、管理装置１００は、実際に生産ラインでワークの検査が行われる前に、所定の許容範囲の識別精度を発揮する識別器の中で、実行時間が所定の条件を満たす識別器を選択し、選択した識別器を予め画像処理装置２００に組み込んでおくことができる。これにより、画像処理システム１において、複数の識別器の中から適切な識別精度及び実行時間を備える識別器を選択することができ、ユーザのニーズに応じた識別器を提供することが可能になる。
【００３２】
また、本実施形態によれば、テスト画像を用いて適切な識別器を事前に選択することができるため、実際に生産ライン上でワークの検査を行う際の画像を大量に用意することなく、適切な識別器を選択することが可能になる。
【００３３】
§２  構成例
［ハードウェア構成］
＜管理装置＞
次に、図２を用いて、本実施形態に係る管理装置１００のハードウェア構成の一例について説明する。図２は、本実施形態に係る管理装置１００のハードウェア構成の一例を模式的に例示する。図２の例では、管理装置１００は、プロセッサ１０１と、メモリ１０２と、ＨＤＤ（Hard Disk Drive）などの記憶装置１０３と、ネットワークインターフェイス（Ｉ／Ｆ）１０４と、表示部１０５と、操作部１０６と、メモリカードリーダ・ライタ１０７とを含んでいてもよい。これらの各部は、内部バス１０８を介して、互いに通信可能に接続されている。
【００３４】
プロセッサ１０１は、記憶装置１０３に格納されているプログラム（命令コード）１０３Ａをメモリ１０２へ展開した上で実行することで、管理装置１００が備える各種機能を実現する。メモリ１０２及び記憶装置１０３は、それぞれ揮発的及び不揮発的にデータを格納する。記憶装置１０３は、ＯＳ（Operating System）に加えて、プログラム１０３Ａを保持している。
【００３５】
ネットワークインターフェイス１０４は、ネットワーク２を介して、画像処理装置２００との間でデータを送受信する。
【００３６】
表示部１０５は、プロセッサ１０１がプログラム１０３Ａを実行することで実現される各種の画面などを表示する。表示部１０５は、例えば、ＬＣＤ（Liquid Crystal Display）といったディスプレイなどからなる。
【００３７】
操作部１０６は、ユーザ操作を受け付け、その受け付けた操作を示す内部指令をプロセッサ１０１などへ出力する。操作部１０６は、例えば、キーボード、マウス、タッチパネル、タブレット、音声認識装置などからなる。
【００３８】
メモリカードリーダ・ライタ１０７は、記憶媒体１０７Ａからデータを読み出し、及び記憶媒体１０７Ａへデータを書き込む。記憶媒体１０７Ａは、コンピュータその他装置、機械等が記録されたプログラム等の情報を読み取り可能なように、当該プログラム等の情報を、電気的、磁気的、光学的、機械的又は化学的作用によって蓄積する媒体である。管理装置１００は、この記憶媒体１０７Ａから、プログラム１０３Ａを取得してもよい。
【００３９】
＜画像処理装置＞
次に、図３を用いて、本実施形態に係る画像処理装置２００のハードウェア構成の一例について説明する。図３は、本実施形態に係る画像処理装置２００のハードウェア構成の一例を模式的に例示する。図３の例では、画像処理装置２００は、照明部２１０と、制御装置２２０と、撮像部２３０とを含んでいてもよい。
【００４０】
照明部２１０は、ワークの撮像に必要な光を照射する。つまり、照明部２１０は、撮像部２３０の撮像範囲に光を照射する。より具体的には、照明部２１０は、照明基板上に設けられる複数の照明制御ユニット２１１を含む。これらのユニットは、照明基板上に配置される。照明制御ユニット２１１の各々は、照明レンズ２１２と、ＬＥＤ２１３とを含む。照明制御ユニット２１１は、制御装置２２０からの指令に従って、光を照射する。より具体的には、ＬＥＤ２１３で発生した光は、照明レンズ２１２を通じてワークへ照射される。
【００４１】
撮像部２３０は、照明部２１０が照射した光の反射光を受けて、画像信号を出力する。この画像信号は、制御装置２２０へ送られる。より具体的には、撮像部２３０は、撮像レンズ２３１などの光学系に加えて、ＣＣＤ（Coupled Charged Device）やＣＭＯＳ（Complementary Metal Oxide Semiconductor）イメージセンサなどの複数の画素に区画された撮像素子２３２を含む。
【００４２】
制御装置２２０は、画像処理装置２００の全体を制御する。すなわち、制御装置２２０は、照明部２１０および撮像部２３０を制御するとともに、撮像部２３０からの画像信号に基づいて画像処理を行う。より具体的には、制御装置２２０は、処理部２２１と、記憶装置２２２と、ネットワーク通信部２２３とを含む。
【００４３】
処理部２２１は、ＣＰＵ１２１ＡやＦＰＧＡ１２１Ｂといった集積回路によって構成される。あるいは、処理部２２１は、ＤＳＰ、ＧＰＵ、ＡＳＩＣ（Application Specific Integrated Circuit）、その他の集積回路によって構成されてもよい。
【００４４】
記憶装置２２２は、ＲＯＭ（Read Only Memory）、フラッシュメモリ、ＨＤＤ、およびＳＳＤ（Solid State Drive）といった不揮発性記憶装置、および／または、ＲＡＭ（Random Access Memory）などの不揮発メモリを含む。典型的に、処理部２２１が記憶装置２２２に格納されたプログラム（命令コード）２２２Ａを実行することで、画像処理装置２００が備える各種の画像処理を実現する。
【００４５】
ネットワーク通信部２２３は、ネットワーク２を介して、管理装置１００との間でデータを送受信するためのインターフェイスである。より具体的には、ネットワーク通信部２２３は、Ｅｔｈｅｒｎｅｔ（登録商標）などに従う構成が採用される。
【００４６】
［機能構成］
＜管理装置＞
次に、図４を用いて、本実施形態に係る管理装置１００の機能構成の一例について説明する。図４は、本実施形態に係る管理装置１００の機能構成の一例を模式的に例示する。
【００４７】
識別器ＤＢ（DataBase）５００は、特性の異なる複数の識別器を格納するデータベースであり、メモリ１０２又は記憶装置１０３により実現される。メモリ１０２又は記憶装置１０３は、本発明の「記憶部」の一例である。図４の例では、複数の識別器として識別器５０１1〜５０１Nが例示されている。以下の説明では識別器５０１1〜５０１Nを区別しない場合、識別器５０１と記載する。
【００４８】
ここで、識別器５０１は、任意の機械学習モデルに対して学習処理と評価処理とを行うことにより生成される。機械学習モデルは、所定のモデル構造と、学習処理によって変動する処理パラメータと、を有し、学習用データから得られる経験に基づいてその処理パラメータが最適化されることで、認識結果の精度が向上するモデルである。すなわち、本実施形態の識別器５０１は、より詳細には、所定のモデル構造と最適化された処理パラメータとの組み合わせである、所謂「学習済みモデル」を含むことになる。機械学習モデルのアルゴリズムは、例えば、サポートベクターマシン、ロジスティック回帰、ニューラルネットワーク等を用いることができるが、その種類は特に限定されない。
【００４９】
生成部５１０は、特定の検査対象物に対する識別器５０１1〜５０１Nの各々の識別精度を測定するために用いられる複数のテスト画像を生成する。生成部５１０は、ワークの画像に対して、ユーザにより指定された欠陥画像を付加することでテスト画像を生成するようにしてもよい。ユーザは、付加する欠陥の大きさや場所を任意に指定したテスト画像を自ら作成（手動で作成）することができる。ここで、欠陥画像とは、例えば、キズを示す画像、色等のムラを示す画像、汚れを示す画像、打痕を示す画像、欠けを示す画像、バリを示す画像、異物を示す画像、印字のかすれを示す画像、又は、印字等を誤った位置に表示した画像等を含む。
【００５０】
また、生成部５１０は、ワークの画像に対して、ユーザにより指定されたパラメータに基づいて生成した欠陥画像を付加することで（ユーザから画像の加工条件を受け付けて）テスト画像を自動的に生成するようにしてもよい。ユーザにより指定されたパラメータとは、例えば、欠陥の大きさの最大及び最小を示すパラメータ、欠陥を付加すべき場所の範囲を示すパラメータ等である。生成部５１０は、これらのパラメータの範囲内で欠陥画像をランダムに生成し、生成した欠陥画像を、ワークの画像に付加することで複数のテスト画像を自動的に生成するようにしてもよい。
【００５１】
また、生成部５１０は、より具体的には、画像加工部５１１と、テスト画像ＤＢ５１２と、現画像ＤＢ５１３とを有していてもよい。テスト画像ＤＢ５１２には、生成された複数のテスト画像が格納され、現画像ＤＢ５１３には、ワークの画像が格納されていてもよい。画像加工部５１１は、現画像ＤＢ５１３からワークの画像を取得し、取得した画像に、テスト画像ＤＢ５１２に格納されている欠陥画像を付加する加工を行うことで、テスト画像を生成するようにしてもよい。テスト画像ＤＢ５１２及び現画像ＤＢ５１３は、メモリ１０２又は記憶装置１０３により実現される。
【００５２】
測定部５２０は、特定の検査対象物に対する識別器５０１1〜５０１Nの識別精度と実行時間とを識別器５０１ごとに測定する。より具体的には、測定部５２０は、識別器５０１1〜５０１Nの各々にテスト画像を識別させることで、識別精度と実行時間とを識別器５０１ごとに測定する。
【００５３】
選択部５４０は、測定部５２０で測定された識別精度が所定の許容範囲に含まれる識別器５０１のうち、実行時間が所定の条件を満たす識別器５０１を、画像処理装置２００に実行させる識別器５０１として選択する。選択部５４０は、測定部５２０で測定された識別精度が所定の許容範囲に含まれる識別器５０１が存在しない場合、識別精度が最も高い識別器５０１を、画像処理装置２００に実行させる識別器５０１として選択するようにしてもよい。
【００５４】
出力部５３０は、測定部５２０で測定された識別器５０１1〜５０１Nの各々の識別精度と実行時間とを表示部１０５に出力する。設定部５５０は、選択部５４０で選択された識別器５０１を、画像処理装置２００で動作させるための設定を行う。また、設定部５５０は、設定ファイル生成部５５１を有する。設定ファイル生成部５５１は、画像処理装置２００に実行させる識別器５０１として選択された識別器５０１を、画像処理装置２００に設定するための設定ファイルを生成する。設定ファイルには、例えば、選択された識別器５０１のモデル構造と処理パラメータとが含まれていてもよい。設定ファイル生成部５５１で生成された設定ファイルは画像処理装置２００に送信され、画像処理装置２００の処理部２２１で実行される。これにより、管理装置１００の選択部５４０で選択された識別器５０１が画像処理装置２００で動作することになる。或いは、識別器ＤＢ５００に格納されている識別器５０１1〜５０１Nと同一の識別器を予め画像処理装置２００に格納しておき、設定ファイルには、画像処理装置２００で動作させる識別器を指定する情報を含めることとしてもよい。
【００５５】
ここで、本実施形態における識別器５０１は、入力された画像に欠陥が含まれている可能性を示す数値（以下、「類似度」と呼ぶ）を出力する学習済みモデルと、欠陥が含まれているとみなす類似度の境界を示す閾値とを組み合わせることで、検査対象物における欠陥の有無を識別する識別器５０１であってもよい。また、識別器５０１1〜５０１Nに用いられる学習済みモデルには、性能の異なる複数の種別の学習済みモデルが含まれていてもよい。すなわち、識別器５０１1〜５０１Nは、学習済みモデルの種別と、欠陥があると識別する閾値との組み合わせにより、それぞれ識別精度が異なる識別器５０１であってもよい。
【００５６】
例えば、学習済みモデルＡを有しており閾値が９０％に設定されている識別器５０１は、画像を入力した学習済みモデルＡから８５％との類似度が出力された場合、入力された画像に欠陥が含まれていないとの識別結果を出力する。同様に、学習済みモデルＡを有しており閾値が８０％に設定されている識別器５０１は、画像を入力した学習済みモデルＡから８５％との類似度が出力された場合、入力された画像に欠陥が含まれているとの識別結果を出力する。学習済みモデルの種別の具体例については後述する。
【００５７】
測定部５２０は、より具体的には、シミュレーション部５２１とパラメータ調整部５２２とを有していてもよい。シミュレーション部５２１は、測定対象の識別器５０１にテスト画像を入力することで識別結果（テスト画像に欠陥が含まれているか否か）を取得し、取得した識別結果に基づいて識別器５０１の識別精度を測定する。パラメータ調整部５２２は、シミュレーション部５２１に対し、識別器５０１に設定すべき閾値を指示する。
【００５８】
また、テスト画像は、欠陥を含むと認識されるべき複数の画像（以下、「不良品テスト画像」と呼ぶ。）と、欠陥を含むと認識されるべきではない複数の画像（以下、「良品テスト画像」と呼ぶ。）とを含んでいてもよい。不良品テスト画像とは、ワークの画像に対して、欠陥と認識されるべきサイズや形状等を有する欠陥画像を付加することで生成されるテスト画像を意味する。良品テスト画像とは、ワークの画像に対して、欠陥と認識されるべきではない（つまり欠陥とは言えない）サイズや形状等を有する欠陥画像を付加することで生成されるテスト画像を意味する。
【００５９】
この場合、測定部５２０が測定する識別器５０１の識別精度には、複数の不良品テスト画像に対して欠陥が含まれていると識別器が正しく識別する確率（以下、「欠陥識別率」と呼ぶ）と、複数の良品テスト画像に対して欠陥が含まれていると識別器が誤って識別する確率（以下、「フォールスポジティブ率」と呼ぶ）が含まれていてもよい。
【００６０】
測定部５２０は、識別器５０１1〜５０１Nの各々に複数の不良品テスト画像を識別させることで欠陥識別率及び実行時間を測定し、更に、識別器５０１1〜５０１Nの各々に複数の良品テスト画像を識別させることでフォールスポジティブ率及び実行時間を測定するようにしてもよい。また、選択部５４０は、測定部５２０で測定された欠陥識別率とフォールスポジティブ率とが所定の許容範囲に含まれる識別器５０１のうち、実行時間が所定の条件を満たす識別器５０１を、画像処理装置２００に実行させる識別器５０１として選択するようにしてもよい。
【００６１】
ここで、不良品テスト画像は、本発明の「第１テスト画像」の一例である。また、良品テスト画像は、本発明の「第２テスト画像」の一例である。また、欠陥識別率は、本発明の「第１確率」の一例である。また、フォールスポジティブ率は、本発明の「第２確率」の一例である。
【００６２】
＜画像処理装置＞
図５は、本実施形態に係る画像処理装置２００の機能構成の一例を模式的に例示する。受付部６１０は、管理装置１００から、管理装置１００で追加学習された識別器５０１を受け付けて、識別器２２２Ｂとして記憶装置２２２に格納する。識別部６２０は、記憶装置２２２に記憶された識別器２２２Ｂを用いて、撮像部２３０で撮像されたワークに含まれる欠陥の有無を識別する。記憶装置２２２は、本発明の「記憶部」の一例である。
【００６３】
＜その他＞
本実施形態では、管理装置１００の各機能がいずれもプロセッサ１０１によって実現される例について説明している。しかしながら、以上の機能の一部又は全部が、１又は複数の専用のプロセッサにより実現されてもよい。また、管理装置１００それぞれの機能構成に関して、実施形態に応じて、適宜、機能の省略、置換及び追加が行われてもよい。
【００６４】
§３  動作例
次に、管理装置１００の動作例を説明する。なお、以下で説明する処理手順は一例に過ぎず、各処理は可能な限り変更されてよい。また、以下で説明する処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が可能である。
【００６５】
本動作例では、識別器５０１に用いられる機械学習モデルのアルゴリズムとして、ニューラルネットワークであって、特に階層が３層以上であるディープニューラルネットワーク（以下、「ＤＮＮ」と称する。）を用いる前提で説明する。ＤＮＮは、入力から順に入力層、１以上の結合層（中間層）、出力層を有しており、各層を構成する複数のニューロンが隣接する層を構成する全てのニューロンと結合している。
【００６６】
次に、識別器について説明する。図６に示されるとおり、本実施形態に係る画像処理装置２００は、入力された画像に欠陥が含まれている可能性を示す数値を出力する能力を学習した識別器として、ニューラルネットワーク１０００を利用する。ニューラルネットワーク１０００は、いわゆる深層学習に用いられる多層構造のニューラルネットワークであり、入力から順に、入力層１００１、中間層（隠れ層）１００２、及び出力層１００３を備えている。
【００６７】
図６では、ニューラルネットワーク１０００は複数層の中間層１００２を備えており、入力層１００１の出力が中間層１００２の入力となり、中間層１００２の出力が出力層１００３の入力となっている。ただし、中間層１００２の数は複数層に限られなくてもよく、ニューラルネットワーク１０００は、中間層１００２が１層のみであってもよい。
【００６８】
各層１００１〜１００３は、１又は複数のニューロンを備えている。例えば、入力層１００１のニューロンの数は、入力層１００１に入力される各撮像画像の画素数に応じて設定することができる。中間層１００２のニューロンの数は実施の形態に応じて適宜設定することができる。また、出力層１００３は、対象とする検査対象物の識別種類数に応じて設定することができる。
【００６９】
隣接する層のニューロン同士は適宜結合され、各結合には重み（結合荷重）が設定されている。図６の例では、各ニューロンは、隣接する層の全てのニューロンと結合されているが、ニューロンの結合は、このような例に限定されなくてもよく、実施の形態に応じて適宜設定されてよい。
【００７０】
各ニューロンには閾値が設定されており、基本的には、各入力と各重みとの積の和が閾値を超えているか否かによって各ニューロンの出力が決定される。画像処理装置２００は、このようなニューラルネットワーク１０００の入力層１００１に上記各撮像画像を入力することで出力層１００３から得られる出力値に基づいて対象物を識別する。
【００７１】
なお、このようなニューラルネットワーク１０００の構成（例えば、ニューラルネットワーク１０００の層数、各層におけるニューロンの個数、ニューロン同士の結合関係、各ニューロンの伝達関数）、各ニューロン間の結合の重み、及び各ニューロンの閾値を示す情報は、学習済みモデルに含まれている。画像処理装置２００は、学習済みモデルを参照して、所望の対象物を識別する処理に用いる学習済みニューラルネットワーク１０００の設定を行う。
【００７２】
［処理手順の全体像］
図７は、管理装置１００が行う処理手順の一例を例示するフローチャートである。まず、ユーザは、欠陥を有しないワークの撮影を事前に行い、撮影したワークの画像を管理装置１００に取り込む。取り込まれたワークの画像は、現画像ＤＢ５１３に格納される（Ｓ１０）。ワークの撮影は、例えば、画像処理装置２００の撮像部２３０を利用して行われてもよい。
【００７３】
続いて、管理装置１００の生成部５１０は、ユーザの指示に基づいて不良品テスト画像及び良品テスト画像を生成する（Ｓ１１）。具体的には、生成部５１０は、表示部１０５にテスト画像作成画面を表示し、ユーザから指示された欠陥画像をワークの画像に付加することで不良品テスト画像及び良品テスト画像を作成する。生成部５１０は、作成された不良品テスト画像及び良品テスト画像をテスト画像ＤＢ５１２に格納する。
【００７４】
続いて、管理装置１００の測定部５２０は、複数の不良品テスト画像をテスト画像ＤＢ５１２から読み出し、識別器５０１1〜５０１Nの各々に複数の不良品テスト画像を識別させることで、測定部５２０が、識別器５０１1〜５０１Nの各々における欠陥識別率、及び識別器５０１1〜５０１Nの各々に不良品テスト画像に欠陥が含まれているか否かの検出を開始させてから、識別器５０１1〜５０１Nの各々が検出結果を出力するまでの実行時間を識別器５０１ごとに測定する。また、測定部５２０は、複数の良品テスト画像をテスト画像ＤＢ５１２から読み出し、識別器５０１1〜５０１Nの各々に複数の良品テスト画像を識別させることで、測定部５２０が、識別器５０１1〜５０１Nの各々におけるフォールスポジティブ率、及び、識別器５０１1〜５０１Nの各々に良品テスト画像に欠陥が含まれているか否かの検出を開始させてから、識別器５０１1〜５０１Nの各々が検出結果を出力するまでの実行時間を識別器５０１ごとに測定する。選択部５４０は、測定された識別率及びフォールスポジティブ率の両方が、所定の許容範囲に含まれる識別器５０１のうち、実行時間が最も短い識別器５０１を、画像処理装置２００に実行させる識別器５０１として選択する（Ｓ１２）。所定の許容範囲は、欠陥識別率の場合、画像処理装置２００を使用するユーザが指定する欠陥識別率の下限（例えば９０％以上）であり、フォールスポジティブ率の場合、画像処理装置２００を使用するユーザが希望するフォールスポジティブ率の上限（例えば５％以下）である。
【００７５】
［テスト画像の作成］
続いて、図７のステップＳ１１の処理手順について、図８〜図１０を用いて詳細に説明する。
【００７６】
図８は、テスト画像作成画面（手動）の一例を例示する。テスト画像作成画面（手動）は、ユーザが手動でテスト画像を作成するための画面である。テスト画像作成画面（手動）は、ワークの画像に付加したい欠陥画像の大きさや位置等を入力するための欠陥基本設定エリア１００１と、欠陥画像が付加されたワークの画像を表示するテスト画像表示エリア１００２とを有する。欠陥基本設定エリア１００１には、作成するテスト画像が不良品テスト画像なのか良品テスト画像なのかを選択する選択メニュー１００１ａが含まれる。
【００７７】
テスト画像作成画面（手動）では、ユーザは、マウス操作やタッチパネル操作等により、ワークの画像上の任意の場所に欠陥画像を付加することができる。図８の例では、ワークの画像に、ユーザが、打痕１００２ａ、汚れ１００２ｂ、キズ１００２ｃを付加している様子を示している。また、テスト画像作成画面（手動）では、ユーザは、欠陥基本設定エリア１００１にて、付加したい欠陥の大きさや位置等を数値入力することで、ワークの画像に欠陥画像を付加することもできる。ユーザが、作成完了ボタン１００３を押下すると、生成部５１０は、テスト画像表示エリア１００２に表示されている、欠陥画像が付加されたワークの画像を、テスト画像ＤＢに保存する。より具体的には、選択メニュー１００１ａにて“不良品テスト画像”が選択されている場合、生成部５１０は、欠陥画像が付加されたワークの画像を、不良品テスト画像としてテスト画像ＤＢに保存する。また、選択メニュー１００１ａにて“良品テスト画像”が選択されている場合、生成部５１０は、欠陥画像が付加されたワークの画像を、良品テスト画像としてテスト画像ＤＢに保存する。
【００７８】
図９及び図１０は、テスト画像作成画面（自動）の一例を例示する。テスト画像作成画面（自動）は、ユーザが入力したパラメータに基づいて生成部５１０が自動的にテスト画像を生成するための画面である。テスト画像作成画面（自動）は、ワークの画像に付加する欠陥画像のパラメータを入力するための欠陥基本設定エリア２００１と、欠陥画像が付加されたワークの画像を表示するテスト画像表示エリア２００２とを有する。図９は、不良品テスト画像を生成している状態を例示しており、図１０は、不良品テスト画像と良品テスト画像の両方を同時に生成している状態を例示している。
【００７９】
図９の例では、欠陥基本設定エリア２００１には、不良品テスト画像を生成するためにワークの画像に付加する欠陥画像のパラメータとして、少なくとも深さが最低１０μｍ以上であり、かつ長さが最低１ｍｍであるキズを付加することが設定されている。また、不良品テスト画像生成数は１０に設定されている。また、キズの場所や色あいは任意（auto）に設定されている。この場合、生成部５１０は、少なくとも深さが最低１０μｍであり、かつ長さが最低１ｍｍである任意の色あいのキズを、任意の場所に付加した不良品テスト画像を１０枚生成する。
【００８０】
また、図１０の例では、欠陥基本設定エリア２００１には、不良品テスト画像を生成するためにワークの画像に付加する欠陥画像のパラメータとして、少なくとも深さが最低１０μｍ以上であり、かつ長さが最低１ｍｍであるキズを付加することが設定されている。また、良品テスト画像を生成するためにワークの画像に付加する欠陥画像のパラメータとして、少なくとも深さが最大１０μｍであり、かつ長さが最大１ｍｍであるキズを付加することが設定されている。また、不良品テスト画像生成数は６に設定され、良品テスト画像生成数は４に設定されている。この場合、生成部５１０は、少なくとも深さが最低１０μｍであり、かつ長さが最低１ｍｍである任意の色あいのキズを任意の場所に付加した不良品テスト画像を６枚生成し、少なくとも深さが最大１０μｍであり、かつ長さが最大１ｍｍである任意の色あいのキズを任意の場所に付加した良品テスト画像を４枚生成する。
【００８１】
［識別器の選択］
続いて、図７のステップＳ１２の処理手順について詳細に説明する。ここで、学習済みモデルの種別について具体的に説明する。前述したように、識別器５０１1〜５０１Nは、学習済みモデルの種別と、欠陥があると識別する閾値との組み合わせにより設計された識別器５０１であってもよい。
【００８２】
図１１に、学習済みモデルの種別の一例を例示する。種別１〜３の学習済みモデルは、バイナリ型（２ビットの整数）で演算を行う学習済みモデルである。種別４〜６の学習済みモデルは、整数型（８ビットの整数）で演算を行う学習済みモデルである。種別７〜９の学習済みモデルは、浮動小数点型（ｆｌｏａｔ）で演算を行う学習済みモデルである。種別１０〜１２の学習済みモデルは、浮動小数点型（ｄｏｕｂｌｅ）で演算を行う学習済みモデルである。また、種別２、５、８、１１の学習済みモデルは、それぞれ、種別１、４、７、１０の学習済みモデルにおける全結合層のニューロンのうち例えば、７０％未満のニューロンを削減した学習済みモデルである。また、種別３、６、９、１２の学習済みモデルは、それぞれ、種別１、４、７、１０の学習済みモデルにおける全結合層のニューロンのうち例えば７０％以上のニューロンを削減した学習済みモデルである。
【００８３】
演算精度が低くなるほど学習済みモデル全体としての演算量が低下するため、実行時間は短くなるが識別精度は低下することになる。同様に、結合層のニューロンの削減量が多くなるほど学習済みモデル全体としての演算量が低下するため、実行時間は短くなるが識別精度は低下することになる。なお、削減するニューロンは、学習時に活性化率の低いニューロンとすることが望ましい。
【００８４】
なお、図１１に示す例に限定されず、例えば、４ビットの整数で演算を行う学習済みモデルを用いるようにしてもよい。一般的にＣＰＵは最小演算単位が８ビットであるが、ＦＰＧＡやＡＳＩＣを利用することで４ビットや２ビットで演算を行うことも可能である。また、全結合層のニューロンを平均フィルタに置き換えた学習済みモデルを用いるようにしてもよい。また、学習済みモデルの種別は、以上説明した実施形態に限定されず、どのような学習済みモデルであってもよい。
【００８５】
図１２は、管理装置１００が識別器を選択する処理手順の一例を例示するフローチャートである。まず、測定部５２０は、テスト画像ＤＢ５１２から読み出した複数の不良品テスト画像を、識別器５０１1〜５０１Nの各々に識別させることで、欠陥識別率及び実行時間を測定する（Ｓ１０１）。続いて、測定部５２０は、テスト画像ＤＢ５１２から読み出した複数の良品テスト画像を、識別器５０１1〜５０１Nの各々に識別させることで、フォールスポジティブ率及び実行時間を測定する（Ｓ１０２）。
【００８６】
続いて、選択部５４０は、測定した欠陥識別率及びフォールスポジティブ率が、それぞれ所定の許容範囲以上である識別器５０１の有無を確認する（Ｓ１０３）。欠陥識別率及びフォールスポジティブ率が、それぞれ所定の許容範囲以上である識別器５０１が存在する場合はＳ１０４に進み、存在しない場合はＳ１０６に進む。
【００８７】
ここで、所定の許容範囲は、画像処理装置２００を使用するユーザにより指定される欠陥識別率の下限及びフォールスポジティブ率の上限である。ユーザは、例えばラインを流れるワークの欠陥を検査する際に少なくとも欠陥識別率が９０％以上であることを所望する場合、欠陥識別率に関する許容範囲として９０％以上を設定する。同様に、ユーザは、例えばラインを流れるワークの欠陥を検査する際に、少なくともフォールスポジティブ率が１０％以下であることを所望する場合、フォールスポジティブ率に関する許容範囲として１０％以下を設定する。
【００８８】
続いて、選択部５４０は、欠陥識別率及びフォールスポジティブ率がそれぞれ所定の許容範囲以上である識別器５０１を実行時間が短い順に並び替え（Ｓ１０４）、実行時間が最も短い識別器５０１を画像処理装置２００に実行させる識別器５０１として選択する（Ｓ１０５）。なお、選択部５４０は、ステップＳ１０１の処理手順で測定した実行時間と、ステップＳ１０２の処理手順で測定した実行時間との平均値を、ステップＳ１０４の処理手順で用いる実行時間とするようにしてもよい。
【００８９】
選択部５４０は、欠陥識別率及びフォールスポジティブ率が、それぞれ所定の許容範囲以上である識別器５０１が存在しない場合、最も欠陥識別率の高い識別器５０１を選択する（Ｓ１０６）。
【００９０】
図１３は、欠陥識別率及びフォールスポジティブ率を測定した結果の具体例を例示する。縦軸は欠陥識別率を示し、横軸はフォールスポジティブ率を示している。Ｐ１、Ｐ２及びＰ３は、浮動小数点型の学習済みモデルを有する識別器５０１に対して、閾値としてそれぞれ８４％、８７％及び９０％を設定した場合における欠陥識別率及びフォールスポジティブ率の例を示している。Ｐ４、Ｐ５及びＰ６は、整数型の学習済みモデルを有する識別器５０１に対して、閾値としてそれぞれ８４％、８７％及び９０％を設定した場合における欠陥識別率及びフォールスポジティブ率の例を示している。Ｐ７、Ｐ８及びＰ９は、バイナリ型の学習済みモデルを有する識別器５０１に対して、閾値としてそれぞれ８１％、８４％及び８７％を設定した場合における欠陥識別率及びフォールスポジティブ率の例を示している。また、ユーザが設定した許容範囲は、欠陥識別率が９７％以上であり、かつ、フォールスポジティブ率が８％以下である。図１３の例では、図１２のステップＳ１０３の処理手順により、Ｐ１、Ｐ２、Ｐ４、Ｐ５及びＰ８に該当する識別器５０１が選択されることになる。
【００９１】
図１４は、実行時間を測定した結果の具体例を例示する。縦軸は欠陥識別率を示し、横軸は実行時間を示している。図１４によれば、Ｐ１、Ｐ２、Ｐ４、Ｐ５及びＰ８に該当する識別器５０１のうち実行時間が最も短い識別器５０１は、Ｐ８に該当する識別器５０１（閾値が８４％に設定されたバイナリ型の学習済みモデルを有する識別器５０１）である。従って、図１４の例では、図１２のステップＳ１０５の処理手順により、閾値が８４％に設定されたバイナリ型の学習済みモデルを有する識別器５０１が選択される。
【００９２】
［識別器の選択：欠陥識別率の測定］
図１５は、管理装置１００が欠陥識別率を測定する処理手順の一例を例示するフローチャートである。図１５を用いて、図１２のステップＳ１０１の処理手順について詳細に説明する。
【００９３】
まず、測定部５２０は、識別器５０１1〜５０１Nに用いられている学習済みモデルの種別の中から１つの種別を選択する（Ｓ２０１）。続いて、測定部５２０は、テスト画像ＤＢ５１２に格納されている複数の不良品テスト画像の中から１つの不良品テスト画像を選択する（Ｓ２０２）。続いて、測定部５２０は、ステップＳ２０１の処理手順で選択した学習済みモデルの種別を有する識別器５０１に対して閾値を設定し、ステップＳ２０２の処理手順で選択した１つの不良品テスト画像を入力することで欠陥識別率及び実行時間を測定する。実行時間は、例えば、識別器５０１に不良品テスト画像を入力した時刻と識別結果が出力された時刻との差分を算出することで測定することができる。
【００９４】
また、測定部５２０は、識別器５０１に設定する閾値を変化させることで、識別器５０１に設定可能な全ての閾値に対して欠陥識別率及び実行時間を測定する（Ｓ２０３）。識別器５０１に設定可能な閾値は、例えば７５％〜９７％までの間で３％ずつ増加させるといったように、最小値、最大値及び増加量が予め定められていてもよい。
【００９５】
続いて、測定部５２０は、テスト画像ＤＢ５１２に格納されている複数の不良品テスト画像についてステップＳ２０２乃至ステップＳ２０３の処理手順を繰り返す。全ての不良品テスト画像について、閾値ごとの欠陥識別率及び実行時間の測定が完了するとステップＳ２０５の処理手順に進む（Ｓ２０４）。
【００９６】
測定部５２０は、ステップＳ２０２乃至ステップＳ２０３の処理手順を繰り返すことで得られた閾値ごとの欠陥識別率及び実行時間の平均値を計算する（Ｓ２０５）。これにより、ステップＳ２０１の処理手順で選択された学習済みモデルの種別を有する識別器５０１について、閾値ごとの欠陥識別率及び実行時間が得られることになる。
【００９７】
続いて、測定部５２０は、識別器５０１1〜５０１Nに用いられている複数の学習済みモデルの種別の各々についてステップＳ２０１乃至ステップＳ２０５の処理手順を繰り返すことで、全ての学習済みモデルの種別について閾値ごとの欠陥識別率及び実行時間の測定を行う（Ｓ２０６）。全ての学習済みモデルの種別について測定が完了すると処理を終了する。以上の処理手順により、識別器５０１1〜５０１Nの各々について欠陥識別率及び実行時間が得られることになる。
【００９８】
［識別器の選択：フォールスポジティブ率の測定］
図１６は、管理装置１００がフォールスポジティブ率を測定する処理手順の一例を例示するフローチャートである。図１６を用いて、図１２のステップＳ１０２の処理手順について詳細に説明する。
【００９９】
まず、測定部５２０は、識別器５０１1〜５０１Nに用いられている複数の学習済みモデルの種別の中から１つの種別を選択する（Ｓ３０１）。続いて、測定部５２０は、テスト画像ＤＢ５１２に格納されている複数の良品テスト画像の中から１つの良品テスト画像を選択する（Ｓ３０２）。続いて、測定部５２０は、ステップＳ３０１の処理手順で選択した学習済みモデルの種別を有する識別器５０１に対して閾値を設定し、ステップＳ３０２の処理手順で選択した良品テスト画像を入力することでフォールスポジティブ率及び実行時間を測定する。実行時間は、例えば、識別器５０１に良品テスト画像を入力した時刻と識別結果が出力された時刻との差分を算出することで測定することができる。
【０１００】
また、測定部５２０は、識別器５０１に設定する閾値を変化させることで、識別器５０１に設定可能な全ての閾値に対してフォールスポジティブ率及び実行時間を測定する（Ｓ３０３）。識別器５０１に設定可能な閾値は、例えば０％〜１０％までの間で１％ずつ増加させるといったように、最小値、最大値及び増加量が予め定められていてもよい。
【０１０１】
続いて、測定部５２０は、テスト画像ＤＢ５１２に格納されている複数の良品テスト画像についてステップＳ３０２乃至ステップＳ３０３の処理手順を繰り返す。全ての良品テスト画像について、閾値ごとのフォールスポジティブ率及び実行時間の測定が完了するとステップＳ３０５の処理手順に進む（Ｓ３０４）。
【０１０２】
測定部５２０は、ステップＳ３０２乃至ステップＳ３０３の処理手順を繰り返すことで得られた閾値ごとのフォールスポジティブ率及び実行時間の平均値を計算する（Ｓ３０５）。これにより、ステップＳ３０１の処理手順で選択された学習済みモデルの種別を有する識別器５０１について、閾値ごとのフォールスポジティブ率及び実行時間が得られることになる。
【０１０３】
続いて、測定部５２０は、識別器５０１1〜５０１Nに用いられている複数の学習済みモデルの種別の各々についてステップＳ３０１乃至ステップＳ３０５の処理手順を繰り返すことで、全ての学習済みモデルの種別について閾値ごとの欠陥識別率及び実行時間の測定を行う（Ｓ３０６）。全ての学習済みモデルの種別について測定が完了すると処理を終了する。以上の処理手順により、識別器５０１1〜５０１Nの各々についてフォールスポジティブ率及び実行時間が得られることになる。
【０１０４】
§４  変形例
識別器５０１1〜５０１Nは、特定かつ同一の検査対象物に特化した識別器であってもよい。図１７は、識別器が識別する検査対象物の一例を例示する。例えば識別器５０１1〜５０１Nは、複数の属性（図１７の例ではワークの材質、ワークの表面形状、検出対象とする欠陥の項目及び検出可能な欠陥のサイズ等）の全部又は一部の組み合わせにより定められる検査対象物について、特定かつ同一の検査対象物に特化した識別器５０１であってもよい。識別器５０１1〜５０１Nは、識別器５０１1〜５０１Nの中でそれぞれ異なる学習済みモデルの種別により設計されていてもよい。
【０１０５】
また、識別器５０１1〜５０１Nは、様々な検査対象物に特化した識別器の集合であってもよい。具体的には、例えば、「識別器５０１1〜５０１A：検査対象のワークが金属であり、ワークの表面形状が光沢有であり、かつ深さ１００μｍ以上のキズに特化して識別能力を有する識別器」、「識別器５０１A+1〜５０１B:検査対象のワークの材質が金属であり、ワークの表面形状が光沢有であり、かつ汚れに特化して識別能力を有する識別器」、「識別器５０１B+1〜５０１N：検査対象のワークの材質が金属であり、ワークの表面形状がざらついており、かつ打痕に特化して識別能力を有する識別器」というように、識別器５０１1〜５０１Nは様々な検査項目に特化した識別器の集合であってもよい。また、識別器５０１1〜５０１Aは、識別器５０１1〜５０１Aの中でそれぞれ異なる学習済みモデルの種別により設計されていてもよい。同様に、識別器５０１A+1〜５０１Bは、識別器５０１A+1〜５０１Bの中でそれぞれ異なる学習済みモデルの種別により設計されており、識別器５０１B+1〜５０１Nも、識別器５０１B+1〜５０１Nの中でそれぞれ異なる学習済みモデルの種別により設計されていてもよい。
【０１０６】
管理装置１００は、検査項目ごとに最適な識別器５０１を選択し、選択した識別器５０１をそれぞれ異なる画像処理装置２００に設定するようにしてもよい。これにより、例えば、生産ラインに設置された複数の画像処理装置２００が、生産ラインを流れるワークに対して、それぞれ異なる検査項目について識別するといった動作を行うことができ、より識別精度の高い画像処理システム１を構築することが可能になる。
【０１０７】
以上、本実施形態について説明した。本実施形態によれば、ワークを検査する複数の識別器５００の中から、測定された識別精度が所定の許容範囲に含まれる識別器のうち、実行時間が所定の条件を満たす識別器を選択して画像処理装置２００に実行させることができる。これにより、識別精度及び実行時間について、ユーザのニーズに応じた識別器を提供することが可能になる。
【０１０８】
また、例えば、画像処理システム１を提供する企業等が、複数の識別器５０１を予め画像処理システム１に組み込んだ（プリセットした）状態でユーザに提供し、ユーザが自ら管理装置１００を操作することで、自身のニーズに応じた識別精度及び処理時間を備える識別器を選択するといった運用を行うことも可能になる。
【０１０９】
以上、本発明の実施の形態を詳細に説明してきたが、前述までの説明はあらゆる点において本発明の例示に過ぎない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。
【０１１０】
（付記１）
対象物を識別する識別器（５０１）であって特性の異なる複数の識別器（５０１）を記憶する記憶部（１０２、１０３）と、
特定の対象物に対する前記複数の識別器（５０１）の各々の識別精度と実行時間とを識別器（５０１）ごとに測定する測定部（５２０）と、
前記複数の識別器（５０１）の各々の前記識別精度と前記実行時間とを出力する出力部（５３０）と、
前記測定部（５２０）で測定された前記識別精度が第１の条件を満たす識別器（５０１）のうち、前記実行時間が第２の条件を満たす識別器（５０１）を選択する選択部（５４０）と、
前記選択された識別器（５０１）を識別装置（２００）上で動作させるための設定を行う設定部（５５０）と、
を有する情報処理装置（１００）。
【０１１１】
（付記２）
前記記憶部（１０２、１０３）は、前記特定の対象物に対する前記複数の識別器（５０１）の各々の前記識別精度と前記実行時間とを測定するために用いられるテスト画像を記憶し、
前記測定部（５２０）は、前記複数の識別器（５０１）の各々に前記テスト画像を識別させることで、前記識別精度と前記実行時間とを識別器（５０１）ごとに測定する、
付記１に記載の情報処理装置。
【０１１２】
（付記３）
前記記憶部（１０２、１０３）は、対象物の画像を記憶し、
ユーザから画像の加工条件についての入力を受け、前記加工条件に基づいて前記記憶部（１０２、１０３）に記憶された対象物の画像を加工することで前記テスト画像を生成する生成部を有する、
付記２に記載の情報処理装置。
【０１１３】
（付記４）
前記生成部は、前記記憶部（１０２、１０３）に記憶された対象物の画像に対して、ユーザにより指定された検出対象の画像を付加することで、前記テスト画像を生成する、
付記３に記載の情報処理装置。
【０１１４】
（付記５）
前記生成部は、前記記憶部（１０２、１０３）に記憶された対象物の画像に対して、ユーザにより指定されたパラメータに基づいて生成した検出対象の画像を付加することで、前記テスト画像を生成する、
付記３に記載の情報処理装置。
【０１１５】
（付記６）
前記テスト画像は、検出対象を含むことを正解とする複数の第１テスト画像を含み、
前記識別精度は、前記複数の第１テスト画像に対して検出対象が含まれていると識別器（５０１）が識別する確率である第１確率を含み、
前記測定部（５２０）は、前記複数の識別器（５０１）の各々に前記複数の第１テスト画像を識別させることで前記第１確率を測定し、
前記選択部（５４０）は、前記測定部（５２０）で測定された前記第１確率が前記第１の条件に含まれる識別器（５０１）のうち、前記実行時間が前記第２の条件を満たす識別器（５０１）を選択する、
付記２乃至５のいずれか一項に記載の情報処理装置。
【０１１６】
（付記７）
前記テスト画像は、更に、検出対象を含まないことを正解とする複数の第２テスト画像とを含み、
前記識別精度は、更に、前記複数の第２テスト画像に対して検出対象が含まれていると識別器（５０１）が誤って識別する確率である第２確率を含み、
前記測定部（５２０）は、更に、前記複数の識別器（５０１）の各々に前記複数の第２テスト画像を識別させることで前記第２確率を測定し、
前記選択部（５４０）は、前記測定部（５２０）で測定された前記第２確率が前記第１の条件に含まれる識別器（５０１）のうち、前記実行時間が前記第２の条件を満たす識別器（５０１）を選択する、
付記６に記載の情報処理装置。
【０１１７】
（付記８）
前記第１の条件は、前記識別装置を使用するユーザにより指定される識別精度の範囲である、
付記１乃至７のいずれか一項に記載の情報処理装置。
【０１１８】
（付記９）
前記選択部（５４０）は、前記測定部（５２０）で測定された前記識別精度が前記第１の条件に含まれる識別器（５０１）が存在しない場合、前記識別精度が最も高い識別器（５０１）を選択する、
付記１乃至８のいずれか一項に記載の情報処理装置。
【０１１９】
（付記１０）
前記複数の識別器（５０１）の各々は、学習済みモデルの種別と、検出対象があると識別する閾値との組み合わせにより設計されている、
付記１乃至９のいずれか一項に記載の情報処理装置。
【０１２０】
（付記１１）
前記実行時間が前記第２の条件を満たす識別器（５０１）は、前記実行時間が最も短い識別器（５０１）である、
付記１乃至１０のいずれか一項に記載の情報処理装置。
【０１２１】
（付記１２）
付記１乃至１１のいずれか一項に記載の情報処理装置（１００）と、該情報処理装置（１００）と通信する前記識別装置（２００）とを含む識別システム（１）であって、
前記識別装置（２００）は、
前記情報処理装置（１００）から、前記情報処理装置（１００）で選択された識別器（５０１）を受け付けて記憶部（２２２）に格納する受付部（６１０）と、
前記記憶部（２２２）に記憶された識別器（２２２Ｂ）を用いて対象物を識別する識別部（６２０）と、
を有する、
識別システム（１）。
【０１２２】
（付記１３）
対象物を識別する識別器（５０１）であって特性の異なる複数の識別器（５０１）を記憶する記憶部（１０２、１０３）を有する情報処理装置（１００）が実行する設定方法であって、
特定の対象物に対する前記複数の識別器（５０１）の各々の識別精度と実行時間とを識別器（５０１）ごとに測定するステップと、
前記複数の識別器（５０１）の各々の前記識別精度と前記実行時間とを出力するステップと、
前記測定された前記識別精度が第１の条件を満たす識別器（５０１）のうち、前記実行時間が第２の条件を満たす識別器（５０１）を選択するステップと、
前記選択された識別器（５０１）を識別装置上で動作させるための設定を行うステップと、
を有する設定方法。
【０１２３】
（付記１４）
コンピュータ（１００）を、
対象物を識別する識別器（５０１）であって特性の異なる複数の識別器（５０１）を記憶する記憶手段（１０２、１０３）と、
特定の対象物に対する前記複数の識別器（５０１）の各々の識別精度と実行時間とを識別器（５０１）ごとに測定する測定手段（５２０）と、
前記複数の識別器（５０１）の各々の前記識別精度と前記実行時間とを出力する出力手段（５３０）と、
前記測定手段（５２０）で測定された前記識別精度が第１の条件を満たす識別器（５０１）のうち、前記実行時間が第２の条件を満たす識別器（５０１）を選択する選択手段（５４０）と、
前記選択された識別器（５０１）を識別装置上で動作させるための設定を行う設定手段（５５０）と、
として機能させるプログラム。
【符号の説明】
【０１２４】
１…画像処理システム、１００…管理装置、１０１…プロセッサ、１０２…メモリ（記憶部又は第１記憶部）、１０３…記憶装置（記憶部又は第１記憶部）、１０３Ａ…プログラム、１０４…ネットワークインターフェイス、１０５…表示部、１０６…操作部、１０７…メモリカードリーダ・ライタ、１０７Ａ…記憶媒体、１０８…内部バス、１２１Ａ…ＣＰＵ、２００…画像処理装置、２１０…照明部、２１１…照明制御ユニット、２１２…照明レンズ、２２０…制御装置、２２１…処理部、２２２…記憶装置（記憶部又は第２記憶部）、２２２Ａ…プログラム（命令コード）、２２３…ネットワーク通信部、２３０…撮像部、２３１…撮像レンズ、２３２…撮像素子、５００…識別器ＤＢ、５０１…識別器、５１０…生成部、５１１…画像加工部、５１２…テスト画像ＤＢ、５１３…現画像ＤＢ、５２０…測定部、５２１…シミュレーション部、５２２…パラメータ調整部、５３０…出力部、５４０…選択部、５５０…設定部、５５１…設定ファイル生成部
【図１】
2019106112.tif 000003
【図２】
2019106112.tif 000004
【図３】
2019106112.tif 000005
【図４】
2019106112.tif 000006
【図５】
2019106112.tif 000007
【図６】
2019106112.tif 000008
【図７】
2019106112.tif 000009
【図８】
2019106112.tif 000010
【図９】
2019106112.tif 000011
【図１０】
2019106112.tif 000012
【図１１】
2019106112.tif 000013
【図１２】
2019106112.tif 000014
【図１３】
2019106112.tif 000015
【図１４】
2019106112.tif 000016
【図１５】
2019106112.tif 000017
【図１６】
2019106112.tif 000018
【図１７】
2019106112.tif 000019