(57)【要約】撮像画像に含まれるオブジェクトを検出するオブジェクト検出方法であって、撮像画像に含まれるオブジェクトの位置及び種類を検出することが可能な第１の方式にてオブジェクトを検出し、不特定の種類の前記オブジェクトにおいて、オブジェクトの位置を検出することが可能な第２の方式にてオブジェクトを検出し、第１の方式によるオブジェクトの検出結果と、第２の方式によるオブジェクトの検出結果とに基づいて、第１の方式によるオブジェクトの検出の成否を判定し、第１の方式によるオブジェクトの検出に失敗していると判定された場合、第１の方式によるオブジェクトの検出方法を機械学習させる。
2020031423.tif 000002
【特許請求の範囲】
【請求項１】
撮像画像に含まれるオブジェクトを検出するオブジェクト検出方法であって、
前記撮像画像に含まれる前記オブジェクトの位置及び種類を検出することが可能な第１の方式にて前記オブジェクトを検出し、
不特定の種類の前記オブジェクトにおいて、前記オブジェクトの位置を検出することが可能な第２の方式にて前記オブジェクトを検出し、
前記第１の方式による前記オブジェクトの検出結果と、前記第２の方式による前記オブジェクトの検出結果とに基づいて、前記第１の方式による前記オブジェクトの検出の成否を判定し、
前記第１の方式による前記オブジェクトの検出に失敗していると判定された場合、前記第１の方式による前記オブジェクトの検出方法を機械学習させる
オブジェクト検出方法。
【請求項２】
前記第２の方式による前記オブジェクトの検出は、前記撮像画像のデータが入力された場合、入力された該データの特徴が抽出された特徴抽出画像のデータを出力する学習済みオートエンコーダを用いて行う
請求項１に記載のオブジェクト検出方法。
【請求項３】
前記第１の方式による前記オブジェクトの検出は、前記撮像画像のデータが入力された場合、該撮像画像に含まれる前記オブジェクトの位置及び種類を出力する学習済みの画像認識ニューラルネットワークを用いて行う
請求項１又は請求項２に記載のオブジェクト検出方法。
【請求項４】
前記第１の方式による前記オブジェクトの検出に失敗していると判定された場合、前記第１の方式と異なる第３の方式にて前記撮像画像に含まれる前記オブジェクトの種類を検出し、
前記画像認識ニューラルネットワークに前記撮像画像のデータが入力された場合、前記第３の方式にて検出された前記オブジェクトの位置及び種類が出力されるように、前記撮像画像及び前記第３の方式に係る検出結果を用いて、前記画像認識ニューラルネットワークを機械学習させる
請求項３に記載のオブジェクト検出方法。
【請求項５】
前記第３の方式による前記オブジェクトの検出は、前記オブジェクトの輪郭線の形状パターンに基づいて前記オブジェクトの種類を検出する
請求項４に記載のオブジェクト検出方法。
【請求項６】
前記第３の方式にて前記オブジェクトの種類を検出できなった場合、該オブジェクトの種類をユーザから受け付け、
前記画像認識ニューラルネットワークに前記撮像画像のデータが入力された場合、前記オブジェクトの位置及び種類が出力されるように、前記撮像画像及び受け付けた前記オブジェクトの種類を用いて、前記画像認識ニューラルネットワークを機械学習させる
請求項４又は請求項５に記載のオブジェクト検出方法。
【請求項７】
前記画像認識ニューラルネットワークを用いた前記オブジェクトの検出と、該画像認識ニューラルネットワークの機械学習とを並行的に実行する
請求項４〜請求項６までのいずれか一項に記載のオブジェクト検出方法。
【請求項８】
前記撮像画像は検査対象物を撮像して得た画像であり、検出対象の前記オブジェクトは該検査対象物における異変部位である
請求項１〜請求項７までのいずれか一項に記載のオブジェクト検出方法。
【請求項９】
撮像画像に含まれるオブジェクトを検出するオブジェクト検出装置であって、
前記撮像画像に含まれる前記オブジェクトの位置及び種類を検出する第１検出部と、
不特定の種類の前記オブジェクトにおいて、前記オブジェクトの位置を検出する第２検出部と、
前記第１検出部による前記オブジェクトの検出結果と、前記第２検出部による前記オブジェクトの検出結果とに基づいて、前記第１検出部による前記オブジェクトの検出の成否を判定する判定部と、
該判定部が、前記第１検出部による前記オブジェクトの検出に失敗していると判定した場合、前記第１検出部による前記オブジェクトの検出方法を前記第１検出部に機械学習させる学習部と
を備えるオブジェクト検出装置。
【請求項１０】
コンピュータに撮像画像に含まれるオブジェクトを検出させるためのコンピュータプログラムであって、
前記コンピュータに、
前記撮像画像に含まれる前記オブジェクトの位置及び種類を検出することが可能な第１の方式にて前記オブジェクトを検出し、
不特定の種類の前記オブジェクトにおいて、前記オブジェクトの位置を検出することが可能な第２の方式にて前記オブジェクトを検出し、
前記第１の方式による前記オブジェクトの検出結果と、前記第２の方式による前記オブジェクトの検出結果とに基づいて、前記第１の方式による前記オブジェクトの検出の成否を判定し、
前記第１の方式による前記オブジェクトの検出に失敗していると判定された場合、前記第１の方式による前記オブジェクトの検出方法を機械学習させる
処理を実行させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示はオブジェクト検出方法、オブジェクト検出装置及びコンピュータプログラムに関する。
本出願は、２０１８年８月６日出願の日本出願第２０１８−１４７９８０号に基づく優先権を主張し、前記日本出願に記載された全ての記載内容を援用するものである。
【背景技術】
【０００２】
工業的に生産される製造物を撮像し、撮像して得られる良品及び不良品の撮像画像を教師データとしてニューラルネットワークを深層機械学習させることにより、学習済みニューラルネットワークを用いた部品の良否判定を行うことができる。【０００３】
一方、Ｔｅｎｓｏｒｆｌｏｗ（登録商標）を用いた画像認識技術を利用することにより、撮像画像に含まれるオブジェクトの位置及び範囲、当該オブジェクトの種類を検出する技術がある。例えば、撮像画像に含まれる人物、動物、車両等の画像部分を検出することができる。
また、非特許文献１は、オートエンコーダを用いて、データの特徴量を自己学習する技術を開示している。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】G. E. Hinton and R. Salakhutdinov, “Reducing the Dimensionality of Data with Neural Networks”, Science, vol. 313, p. 504-507
【発明の概要】
【０００５】
本開示のオブジェクト検出方法は、撮像画像に含まれるオブジェクトを検出するオブジェクト検出方法であって、前記撮像画像に含まれる前記オブジェクトの位置及び種類を検出することが可能な第１の方式にて前記オブジェクトを検出し、不特定の種類の前記オブジェクトにおいて、前記オブジェクトの位置を検出することが可能な第２の方式にて前記オブジェクトを検出し、前記第１の方式による前記オブジェクトの検出結果と、前記第２の方式による前記オブジェクトの検出結果とに基づいて、前記第１の方式による前記オブジェクトの検出の成否を判定し、前記第１の方式による前記オブジェクトの検出に失敗していると判定された場合、前記第１の方式による前記オブジェクトの検出方法を機械学習させる。
【０００６】
本開示のオブジェクト検出装置は、撮像画像に含まれるオブジェクトを検出するオブジェクト検出装置であって、前記撮像画像に含まれる前記オブジェクトの位置及び種類を検出する第１検出部と、不特定の種類の前記オブジェクトにおいて、前記オブジェクトの位置を検出する第２検出部と、前記第１検出部による前記オブジェクトの検出結果と、前記第２検出部による前記オブジェクトの検出結果とに基づいて、前記第１検出部による前記オブジェクトの検出の成否を判定する判定部と、該判定部が、前記第１検出部による前記オブジェクトの検出に失敗していると判定した場合、前記第１検出部による前記オブジェクトの検出方法を前記第１検出部に機械学習させる学習部とを備える。
【０００７】
本開示のコンピュータプログラムは、コンピュータに撮像画像に含まれるオブジェクトを検出させるためのコンピュータプログラムであって、前記コンピュータに、前記撮像画像に含まれる前記オブジェクトの位置及び種類を検出することが可能な第１の方式にて前記オブジェクトを検出し、不特定の種類の前記オブジェクトにおいて、前記オブジェクトの位置を検出することが可能な第２の方式にて前記オブジェクトを検出し、前記第１の方式による前記オブジェクトの検出結果と、前記第２の方式による前記オブジェクトの検出結果とに基づいて、前記第１の方式による前記オブジェクトの検出の成否を判定し、前記第１の方式による前記オブジェクトの検出に失敗していると判定された場合、前記第１の方式による前記オブジェクトの検出方法を機械学習させる処理を実行させる。
【０００８】
なお、本願は、オブジェクト検出装置の一部又は全部を実現する半導体集積回路として実現したり、オブジェクト検出装置を含むその他のシステムとして実現したりすることができる。
【図面の簡単な説明】
【０００９】
【図１】図１は実施形態に係る異変検知システムの構成例を示すブロック図である。
【図２】図２は実施形態に係る異変検知装置の構成例を示す機能ブロック図である。
【図３】図３はオブジェクト検出及び追加学習に係る処理手順を示すフローチャートである。
【図４】図４はマッピング処理を示すフローチャートである。
【図５Ａ】図５Ａは第１検出部によるオブジェクト検出方法を示す説明図である。
【図５Ｂ】図５Ｂは第１検出部によるオブジェクト検出方法を示す説明図である。
【図６】図６は第２検出部によるオブジェクト検出方法を示す説明図である。
【図７】図７は画素単位でオブジェクトの位置及び種類を決定する方法を示す説明図である。
【図８】図８はオブジェクトの寸法測定に係る処理手順を示すフローチャートである。
【図９】図９はオブジェクトの寸法測定方法を示す説明図である。
【図１０】図１０はオブジェクトの良否判定処理手順を示すフローチャートである。
【図１１】図１１はオブジェクトの良否判定方法を示す説明図である。
【図１２Ａ】図１２Ａは重なり合っているオブジェクトの検出及び寸法測定方法を示す説明図である。
【図１２Ｂ】図１２Ｂは重なり合っているオブジェクトの検出及び寸法測定方法を示す説明図である。
【図１２Ｃ】図１２Ｃは重なり合っているオブジェクトの検出及び寸法測定方法を示す説明図である。
【図１２Ｄ】図１２Ｄは重なり合っているオブジェクトの検出及び寸法測定方法を示す説明図である。
【図１３】図１３は学習用データの生成に係る処理手順を示すフローチャートである。
【図１４】図１４は学習用データの生成方法を示す説明図である。
【図１５Ａ】図１５Ａは学習用データの生成方法を示す説明図である。
【図１５Ｂ】図１５Ｂは学習用データの生成方法を示す説明図である。
【発明を実施するための形態】
【００１０】
［本開示が解決しようとする課題］
ところで、工場で生産される製造物は、製造内容の変更や製造方法の変更、工場ごとの環境などにより、発生する不良内容が変化する。そのため、不良検査技術には特定の不良を検知できるだけでなく、未知の異常を検知する能力も求められる。
Ｔｅｎｓｏｒｆｌｏｗ（登録商標）を用いた画像認識技術や、全層畳み込みネットワーク（FCN：Fully Convolution Network）などの画素単位でオブジェクト検出する方法では、事前に学習したことのあるオブジェクトしか検出できず、未知の不良を検出することができない。一方で、オートエンコーダを用いて異常を検知する方法では未知の異常であっても検出することができるが、異常内容を特定することができない。このため、異常内容に合わせた不良判定は実施できない。
【００１１】
本開示の目的は、未知のオブジェクトを追加学習することにより、環境に合わせてオブジェクトの検知能力を向上させ、既知及び未知を問わず、製造物の異常等のオブジェクトを検知することができるオブジェクト検出方法、オブジェクト検出装置及びコンピュータプログラムを提供することにある。
【００１２】
［本開示の効果］
本開示によれば、未知のオブジェクトを追加学習することにより、環境に合わせてオブジェクトの検知能力を向上させ、既知及び未知を問わず、製造物の異常等のオブジェクトを検知することができる。
【００１３】
［本開示の実施形態の説明］
最初に本開示の実施態様を列記して説明する。また、以下に記載する実施形態の少なくとも一部を任意に組み合わせてもよい。
【００１４】
（１）本開示に係るオブジェクト検出方法は、撮像画像に含まれるオブジェクトを検出するオブジェクト検出方法であって、前記撮像画像に含まれる前記オブジェクトの位置及び種類を検出することが可能な第１の方式にて前記オブジェクトを検出し、不特定の種類の前記オブジェクトにおいて、前記オブジェクトの位置を検出することが可能な第２の方式にて前記オブジェクトを検出し、前記第１の方式による前記オブジェクトの検出結果と、前記第２の方式による前記オブジェクトの検出結果とに基づいて、前記第１の方式による前記オブジェクトの検出の成否を判定し、前記第１の方式による前記オブジェクトの検出に失敗していると判定された場合、前記第１の方式による前記オブジェクトの検出方法を機械学習させる。
【００１５】
本開示にあっては、主に第１の方式を用いてオブジェクトを検出する。第１の方式は、オブジェクトの位置及び種類を検出することができる。しかし、特定の種類のオブジェクトしか検出することができない。一方、第２の方式は、オブジェクトの種類に拘わらず、オブジェクトの位置を検出することができる方式である。つまり、第１の方式では検出に失敗する未知のオブジェクトであっても、第２の方式であれば当該オブジェクトを検出することができる。しかし、第２の方式ではオブジェクトの種類を検出することができない。
そこで、第１の方式によるオブジェクトの検出結果と、第２の方式によるオブジェクトの検出結果とに基づいて、第１の方式によるオブジェクトの検出の成否を判定する。そして、第１の方式によるオブジェクトの検出に失敗していると判定された場合、第１の方式に係る検出方法を機械学習させる。
未知のオブジェクトを追加学習することにより、環境に合わせてオブジェクトの検知能力を向上させ、既知及び未知を問わず、製造物の異常等のオブジェクトを検知することが可能になる。
なお、第１の方式によるオブジェクトの検出処理と、第２の方式によるオブジェクトの検出処理とを実行する順序は限定されるものでは無く、逆順で実行してもよいし、同時並行的に実行してもよい。
【００１６】
（２）４前記第２の方式による前記オブジェクトの検出は、前記撮像画像のデータが入力された場合、入力された該データの特徴が抽出された特徴抽出画像のデータを出力する学習済みオートエンコーダを用いて行う構成が好ましい。
【００１７】
本開示にあっては、学習済みオートエンコーダを用いることによって、未知のオブジェクトを検出することができる。
【００１８】
（３）５前記第１の方式による前記オブジェクトの検出は、前記撮像画像のデータが入力された場合、該撮像画像に含まれる前記オブジェクトの位置及び種類を出力する学習済みの画像認識ニューラルネットワークを用いて行う構成が好ましい。
【００１９】
本開示にあっては、学習済みの画像認識ニューラルネットワークを用いることによって、様々な特徴を有するオブジェクトを認識し、オブジェクトの位置及び種類を検出することができる。また、追加学習によって、画像認識ニューラルネットワークは、未知のオブジェクトを認識できるようになる。
【００２０】
（４）６前記第１の方式による前記オブジェクトの検出に失敗していると判定された場合、前記第１の方式と異なる第３の方式にて前記撮像画像に含まれる前記オブジェクトの種類を検出し、前記画像認識ニューラルネットワークに前記撮像画像のデータが入力された場合、前記第３の方式にて検出された前記オブジェクトの位置及び種類が出力されるように、前記撮像画像及び前記第３の方式に係る検出結果を用いて、前記画像認識ニューラルネットワークを機械学習させる構成が好ましい。
【００２１】
本開示にあっては、態様（１）で説明した第１の方式によるオブジェクトの種類の検出に失敗した場合、第３の方式でオブジェクトの種類を検出する。そして、第３方式による検出結果を用いて画像認識ニューラルネットワークを追加学習させることによって、第１の方式によるオブジェクトの検出精度を自動的に向上させることができる。
【００２２】
（５）７前記第３の方式による前記オブジェクトの検出は、前記オブジェクトの輪郭線の形状パターンに基づいて前記オブジェクトの種類を検出する構成が好ましい。
【００２３】
本開示にあっては、画像認識ニューラルネットワークで検出できなかったオブジェクトの種類を、当該オブジェクトの輪郭線の形状パターンに基づいて検出する。つまり、第１の方式で検出に失敗した何らかのオブジェクトを第２の方式にて認識し、第３の方式によってその種類を検出する。そして、その検出結果に基づいて、上記画像認識ニューラルネットワークを追加学習させることができる。
なお、第３の方式のみでは、オブジェクトが認識されていない状態での検出処理となり、オブジェクトの種類を適切に検出することができないおそれがある。
【００２４】
（６）８前記第３の方式にて前記オブジェクトの種類を検出できなった場合、該オブジェクトの種類をユーザから受け付け、前記画像認識ニューラルネットワークに前記撮像画像のデータが入力された場合、前記オブジェクトの位置及び種類が出力されるように、前記撮像画像及び受け付けた前記オブジェクトの種類を用いて、前記画像認識ニューラルネットワークを機械学習させる構成が好ましい。
【００２５】
本開示にあっては、第３の方式でもオブジェクトの種類を認識できなった場合、ユーザからオブジェクトの種類を受け付け、受け付けた内容を用いて画像認識ニューラルネットワークを追加学習させることができる。つまり上記態様（４）及び（５）により、可能な限り自動的に画像認識ニューラルネットワークを追加学習させると共に、第３の方式でも認識できない未知のオブジェクトに関してはユーザの人手を借りて画像認識ニューラルネットワークの追加学習を行う。
従って、未知のオブジェクトが発生し得る環境においても、各種オブジェクトを認識できるよう、半自動的に画像認識ニューラルネットワークを追加学習させ、種々のオブジェクトの位置及び種類が検出可能となる。
【００２６】
（７）９前記画像認識ニューラルネットワークを用いた前記オブジェクトの検出と、該画像認識ニューラルネットワークの機械学習とを並行的に実行する構成が好ましい。
【００２７】
本開示にあっては、画像認識ニューラルネットワークを用いたオブジェクトの検出と、画像認識ニューラルネットワークの追加学習を並行的に実行することができる。従って、画像認識ニューラルネットワークの学習処理中も、オブジェクトの検出処理を継続することができる。
【００２８】
（８）１０前記撮像画像は検査対象物を撮像して得た画像であり、検出対象の前記オブジェクトは該検査対象物における異変部位である構成が好ましい。
【００２９】
本開示にあっては、検査対象物の異変部位及び種類を検出することができ、未知の異変部位であっても、追加学習によりその位置及び種類を検出することが可能になる。
【００３０】
（９）本開示に係るオブジェクト検出装置は、撮像画像に含まれるオブジェクトを検出するオブジェクト検出装置であって、前記撮像画像に含まれる前記オブジェクトの位置及び種類を検出する第１検出部と、不特定の種類の前記オブジェクトにおいて、前記オブジェクトの位置を検出する第２検出部と、前記第１検出部による前記オブジェクトの検出結果と、前記第２検出部による前記オブジェクトの検出結果とに基づいて、前記第１検出部による前記オブジェクトの検出の成否を判定する判定部と、該判定部が、前記第１検出部による前記オブジェクトの検出に失敗していると判定した場合、前記第１検出部による前記オブジェクトの検出方法を前記第１検出部に機械学習させる学習部とを備える。
【００３１】
本開示にあっては、態様（１）と同様にして、未知のオブジェクトを追加学習することにより、環境に合わせてオブジェクトの検知能力を向上させ、既知及び未知を問わず、製造物の異常等のオブジェクトを検知することが可能になる。
【００３２】
（１０）本開示に係るコンピュータプログラムは、コンピュータに撮像画像に含まれるオブジェクトを検出させるためのコンピュータプログラムであって、前記コンピュータに、前記撮像画像に含まれる前記オブジェクトの位置及び種類を検出することが可能な第１の方式にて前記オブジェクトを検出し、不特定の種類の前記オブジェクトにおいて、前記オブジェクトの位置を検出することが可能な第２の方式にて前記オブジェクトを検出し、前記第１の方式による前記オブジェクトの検出結果と、前記第２の方式による前記オブジェクトの検出結果とに基づいて、前記第１の方式による前記オブジェクトの検出の成否を判定し、前記第１の方式による前記オブジェクトの検出に失敗していると判定された場合、前記第１の方式による前記オブジェクトの検出方法を機械学習させる処理を実行させる。
【００３３】
本開示にあっては、コンピュータを態様（９）に係るオブジェクト検出装置として機能させることができる。
【００３４】
［本開示の実施形態の詳細］
本開示の実施形態に係るオブジェクト検出方法、異変検知装置及びコンピュータプログラムの具体例を、以下に図面を参照しつつ説明する。なお、本開示はこれらの例示に限定されるものではなく、請求の範囲によって示され、請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
【００３５】
図１は、実施形態に係る異変検知システムの構成例を示すブロック図である。実施形態に係る異変検知システムは、異変検知装置１と、機械学習装置９とを備える。異変検知装置１は、例えば検査対象物が製造される工場に設置され、機械学習装置９は工場外の施設に設置される。
【００３６】
＜異変検知装置のハードウェア構成＞
異変検知装置１（オブジェクト検出装置）は、例えば一又は複数のＣＰＵ（Central Processing Unit）、マルチコアＣＰＵ、ＧＰＵ（Graphics Processing Unit）、ＴＰＵ（Tensor Processing Unit）等の演算部１１を有するコンピュータである。演算部１１には、一時記憶部１２、画像入力部１３、出力部１４、入力部１５、記憶部１６、データ蓄積部１７及び通信部１８がバスラインを介して接続されている。本実施形態に係る異変検知装置１は、製造される検査対象物を撮像して得られる撮像画像５（図５Ａ参照）の画像データを取得し、撮像画像５に含まれる検出対象であるオブジェクト６、例えば検査対象物に付着した埃、髪、検査対象物のへこみ等の異変部位を検知するものである。検査対象物は、例えば、ワイヤハーネスを構成するコネクタである。また、本実施形態に係る異変検知装置１は、未知の異変部位も半自動で機械学習する機能を有し、このような異変部位の位置及び種類も検出できるようになる。
【００３７】
演算部１１は、記憶部１６に記憶されている後述のコンピュータプログラム１６ａを実行することにより、各構成部の動作を制御する。演算部１１は、検査対象物を撮像して得た撮像画像５に含まれるオブジェクト６の位置及び種類を画素単位で検出して検査対象物の異変を検知する処理を実行する。また、機械学習装置と通信を行い、未知の異変部位を機械学習させる処理を実行する。処理内容の詳細は後述する。
【００３８】
一時記憶部１２は、ＤＲＡＭ（Dynamic RAM）、ＳＲＡＭ（Static RAM）等のメモリであり、演算部１１の演算処理を実行する際に記憶部１６から読み出されたコンピュータプログラム１６ａ、又は演算処理によって生ずる各種データを一時記憶する。
【００３９】
記憶部１６は、ハードディスク、ＥＥＰＲＯＭ（Electrically Erasable Programmable ROM）、フラッシュメモリ等の不揮発性メモリである。記憶部１６は、演算部１１が各構成部の動作を制御することにより、撮像画像５に含まれるオブジェクト６の位置及び種類を画素単位で検出して検査対象物の異変を検知する処理を実行するためのコンピュータプログラム１６ａを記憶している。また、記憶部１６は、各種オブジェクト６を形状認識し、撮像画像５に含まれるオブジェクト６の種類を検出するための特徴量等の情報、検出されたオブジェクト６、つまり異変が許容されるものか否かを判定するための閾値を記憶している。閾値はオブジェクト６の種類ごとに異なり、記憶部１６は、複数のオブジェクト６の種類に対応付けて、異なる閾値を記憶している。
なお記憶部１６は、図示しない読出装置によって記録媒体から読み出されたコンピュータプログラム１６ａを記憶する態様であってもよい。記録媒体はＣＤ（Compact Disc）−ＲＯＭ、ＤＶＤ（Digital Versatile Disc）−ＲＯＭ、ＢＤ（Blu-ray(登録商標) Disc）等の光ディスク、フレキシブルディスク、ハードディスク等の磁気ディスク、磁気光ディスク、半導体メモリ等である。また、図示しない通信網に接続されている図示しない外部コンピュータから本実施形態に係るコンピュータプログラム１６ａをダウンロードし、記憶部１６に記憶させてもよい。
【００４０】
画像入力部１３は撮像部１ａが接続されるインタフェースである。撮像部１ａは、レンズにて結像した像を電気信号に変換するＣＣＤ、ＣＭＯＳ等の撮像素子と、撮像素子にて変換された電気信号をデジタルの画像データにＡＤ変換し、ＡＤ変換された画像データを出力する。撮像部１ａから出力された画像データは画像入力部１３を介して異変検知装置１に入力される。撮像部１ａと、異変検知装置１とは、専用ケーブルで接続される構成であってもよいし、ＬＡＮ（Local Area Network）等のネットワークを介して接続される構成であってもよい。なお、画像データは、縦横に配列される各画素を所定階調の輝度値で示したデジタルのデータである。本実施形態では、モノクロの画像データであるものとして説明する。
【００４１】
出力部１４は表示部１ｂが接続されるインタフェースである。表示部１ｂは液晶パネル、有機ＥＬディスプレイ、電子ペーパ、プラズマディスプレイ等である。表示部１ｂは、演算部１１から与えられた画像データに応じた各種情報を表示する。例えば、異変検知結果の内容、不具合のある検査対象物の画像等を表示する。なお、表示部１ｂは、異変検知結果を出力する外部出力装置の一例であり、ブザー、スピーカ、発光素子、その他の報知装置であってもよい。工場の作業者は、表示部１ｂに表示された画像にて、異変検知の結果、検査対象物の状態等を認識することができる。
【００４２】
入力部１５には、キーボード、マウス、タッチセンサ等の操作部１ｃが接続される。操作部１ｃの操作状態を示した信号は入力部１５を介して異変検知装置１に入力される。演算部１１は、入力部１５を介して操作部１ｃの操作状態を認識することができる。
【００４３】
データ蓄積部１７は、記憶部１６と同様、ハードディスク、ＥＥＰＲＯＭ、フラッシュメモリ等の不揮発性メモリである。データ蓄積部１７は、検査対象物の画像データ、異変検知結果等のデータを記憶する。
【００４４】
通信部１８は、機械学習装置９との間でデータを送受信するための通信機である。
【００４５】
＜異変検知装置の機能部＞
図２は、実施形態に係る異変検知装置１の構成例を示す機能ブロック図である。異変検知装置１は、機能部としての第１検出部２、第２検出部３、良否判定部４を有する。異変検知装置１の各機能部は、演算部１１、一時記憶部１２等のハードウェアによって実現される。
【００４６】
第１検出部２は撮像画像５に含まれるオブジェクト６を画像認識し、当該オブジェクト６の位置及び範囲、並びに種類を検出する。具体的には、第１検出部２は、撮像画像５のデータが入力された場合、当該撮像画像５に含まれる一又は複数のオブジェクト６の位置及び範囲並びに当該オブジェクト６の種類を出力する学習済み画像認識ニューラルネットワーク２１を備える。オブジェクト６の位置は、当該オブジェクト６を囲むバウンディングボックス７の位置及び大きさで特定される（図５Ｂ参照）。バウンディングボックス７は例えば矩形状であり、概ねオブジェクト６が内接するような幅及び高さを有する。画像認識ニューラルネットワーク２１は、例えば公知のＴｅｎｓｏｒｆｌｏｗ（登録商標）を用いて構成することができる。また、画像認識ニューラルネットワーク２１は、その他の公知の畳み込みニューラルネットワーク（CNN：Convolutional neural network）を用いて構成することができる。
画像認識ニューラルネットワーク２１は、撮像画像５に含まれるオブジェクト６の種類が出力されるように、オブジェクト６の画像データと、当該オブジェクト６の種類を示す情報とを教師データとして機械学習させる。
【００４７】
第２検出部３はオートエンコーダ３１及び差分データ生成部３２を備える。オートエンコーダ３１は、撮像部１ａから出力された画像データが入力され、撮像画像５に含まれる検査対象物の特徴を抽出した特徴抽出画像５ａの画像データを出力する機能部である（図６参照）。具体的には、オートエンコーダ３１は、画像データが入力された場合、正常な検査対象物の特徴を表した特徴抽出画像５ａの画像データを出力する。撮像画像５には、ゴミ、傷、影、検査対象物自体の異変部位等の画像が含まれることがある。特徴抽出画像５ａはこれらの画像を除去し、異変が無い正常な検査対象物を撮像した場合に得られるような理想的な検査対象物を再現した撮像画像５である。オートエンコードはニューラルネットワークによって実現される。当該ニューラルネットワークは、画像データを次元圧縮する中間層を含み、同一画素数の画像データを入出力する。
【００４８】
オートエンコーダ３１は、入力層３１ａと、出力層３１ｂと、コンボリューション層（ＣＯＮＶ層）３１ｃと、デコンボリューション層（ＤＥＣＯＮＶ層）３１ｄとを有する。入力層３１ａは画像データに係る各画素値のデータが入力される層である。コンボリューション層３１ｃは、画像データを次元圧縮する層である。例えば、コンボリューション層３１ｃは、畳み込み積分を行うことにより、次元圧縮を行う。次元圧縮により、検査対象物の特徴量が抽出される。デコンボリューション層３１ｄは、コンボリューション層３１ｃで次元圧縮されたデータを元の次元に復元する層である。デコンボリューション層３１ｄは、逆畳み込み処理を行い、元の次元に復元する。当該復元によって、検査対象物の本来の特徴、即ち正常な検査対象物の特徴を表した画像データが復元される。なお、コンボリューション層３１ｃ及びデコンボリューション層３１ｄが２層である例を示したが、１層又は３層以上であってもよい。出力層３１ｂは、コンボリューション層３１ｃ及びデコンボリューション層３１ｄにて検査対象物の特徴が抽出された特徴抽出画像５ａに係る各画素値のデータを出力する層である。
オートエンコーダ３１は、入力された画像データと、出力された画像データとが同じになるように、オートエンコーダ３１のニューラルネットワークを機械学習させる。つまり、入力された撮像画像５と、出力される特徴抽出画像５ａとが同じになるように、ニューラルネットワークを機械学習させる。かかる機械学習は、正常な検査対象物を撮像して得られる画像データを用いて行う。
【００４９】
差分データ生成部３２は、撮像部１ａから取得した画像データと、オートエンコーダ３１から出力された画像データとの差分を演算する。具体的には、差分データ生成部３２は、各画像データの同一箇所の画素の画素値の差分を、画素ごとに演算する。そして、差分データ生成部３２は、画素値の差分と、所定の閾値とを比較することによって二値化する。二値化処理によって、画素単位で検出されたオブジェクト６の画像を含む画像が得られる。以下、画素単位で検出されたオブジェクト６を含む画像を差分画像５ｂ（図６参照）と呼ぶ。
【００５０】
良否判定部４は、オブジェクト検出処理部４１、寸法測定処理部４２及び良否判定処理部４３を備える。
オブジェクト検出処理部４１は、撮像画像５に含まれる一又は複数のオブジェクト６の位置及び種類を画素単位で検出する機能部である。
寸法測定処理部４２は、画素単位で検出された各オブジェクト６の寸法を測定する機能部である。
良否判定処理部４３は、オブジェクト６の寸法と、当該オブジェクト６の種類に応じた閾値とを比較することによって、異変が許容可能なものか否か、つまり異変の良否を判定する処理を実行する機能部である。
【００５１】
＜機械学習装置の構成＞
機械学習装置９は、異変検知装置１を構成する画像認識ニューラルネットワーク２１を追加学習させるサーバ装置である。機械学習装置９は、コンピュータであり、基本的なハードウェア構成は異変検知装置１と同様である。
【００５２】
異変検知装置１と、機械学習装置９とは別個のコンピュータであり、並行的にプログラムを実行して動作する。具体的には、異変検知装置１は画像認識ニューラルネットワーク２１のコピーを機械学習装置９へ提供し、異変検知装置１が検査対象物の異変を検知する処理を実行している傍らで、機械学習装置９は画像認識ニューラルネットワーク２１の追加学習処理を実行することができる。異変検知装置１は、学習中の画像認識ニューラルネットワーク２１では無く、学習前の画像認識ニューラルネットワーク２１を用いて異変検知処理を継続する。
なお、機械学習装置９は画像認識ニューラルネットワーク２１を構成するための各種パラメータ、例えば画像認識ニューラルネットワーク２１の層数、ニューロン数、ニューラルネットワークの種類、重み係数等のパラメータを機械学習装置９へ送信することによって、画像認識ニューラルネットワーク２１のコピーを提供する。
【００５３】
異変検知装置１は、異変検知処理中、第１検出部２にて検出されたオブジェクト６の位置及び範囲と、第２検出部３にて検出されたオブジェクト６の位置とが整合しない場合、追加学習に係る処理を機械学習装置９に要求する。
【００５４】
＜異変部位検知処理＞
図３は、オブジェクト検出に係る処理手順を示すフローチャートである。演算部１１は、撮像部１ａから出力された画像データを取得する（ステップＳ１１）。次いで、演算部１１は、後述のマッピング処理を実行することにより、当該撮像画像５に含まれるオブジェクト６の位置及び種類を画素単位で検出する（ステップＳ１２）。
【００５５】
次いで、演算部１１は、オブジェクト６の検出に成功したか否かを判定する（ステップＳ１３）。具体的には、演算部１１は、第１検出部２によってバウンディングボックス７にて特定されたオブジェクト６の位置及び範囲と、第２検出部３にて検出されたオブジェクト６の画素の位置とが整合している場合、オブジェクト６の検出に成功したと判定し、整合していない場合、オブジェクト６の検出に失敗したと判定する。本実施形態２では、第２検出部３にてオブジェクト６の画素が検出されているにも拘わらず、第１検出部２にてオブジェクト６の種類が検出できていない状態を、検出失敗の例として説明する。
【００５６】
オブジェクト６の検出に失敗していないと判定した場合（ステップＳ１３：ＮＯ）、演算部１１は、検出されたオブジェクト６の寸法を測定して（ステップＳ１４）、オブジェクト６の良否を判定する（ステップＳ１５）。
【００５７】
次いで、演算部１１は、ステップＳ１５の判定結果に基づいて、検査対象物の良否を判定する（ステップＳ１６）。つまり、演算部１１は、許容される異変があるか否かを判定する。良であると判定した場合（ステップＳ１６：ＹＥＳ）、演算部１１は処理をステップＳ１１に戻す。不良であると判定した場合（ステップＳ１６：ＮＯ）、演算部１１は、検査対象物の異変に対処するための所定処理を実行し（ステップＳ１７）、処理をステップＳ１１に戻す。例えば、演算部１１は、検査対象物に異常がある旨を報知する処理を実行する。また、演算部１１は、良否判定結果を示した画像（図１１右図参照）を表示部１ｂに表示させる処理を実行する。当該良否判定結果を示した画像の情報は、第１検出部２による検出処理にて得られた情報と、第２検出部３による検出処理にて得られる情報とに基づく情報の一例である。
【００５８】
図４は、マッピング処理手順を示すフローチャートである。第１検出部２は、撮像画像５に含まれる一又は複数のオブジェクト６の位置及び範囲をバウンディングボックス７にて特定すると共に、当該バウンディングボックス７によって囲まれるオブジェクト６の種類を検出する（ステップＳ３１）。
【００５９】
図５Ａ及び図５Ｂは、第１検出部２によるオブジェクト検出方法を示す説明図である。図５Ａは撮像画像５を示し、図５Ｂはオブジェクト６の検出結果を示す撮像画像５である。図５Ａに示すように、撮像画像５には複数のオブジェクト６が含まれている。例えば、埃の画像であるオブジェクト６１、髪の画像であるオブジェクト６２、へこみの画像であるオブジェクト６３等が含まれている。そして、図５Ｂに示すように、第１検出部２にて検出された各オブジェクト６はバウンディングボックス７によって囲まれており、オブジェクト６の位置はバウンディングボックス７の位置及び大きさによって表される。例えば、バウンディングボックス７１は、埃のオブジェクト６１の位置及び範囲を示し、バウンディングボックス７２は、髪のオブジェクト６２の位置及び範囲を示し、バウンディングボックス７３は、へこみのオブジェクト６３の位置及び範囲を示している。また、各バウンディングボックス７には、当該バウンディングボックス７に包含されたオブジェクト６の種類が表示される。このように、第１検出部２によれば、撮像画像５に含まれる各オブジェクト６のおおよその位置及び範囲と、種類とが特定される。
【００６０】
次いで、第２検出部３は、撮像画像５に含まれるオブジェクト６を画素単位で検出する（ステップＳ３２）。
【００６１】
図６は、第２検出部３によるオブジェクト検出方法を示す説明図である。撮像画像５の画像データがオートエンコーダ３１に入力されると、異変部位が取り除かれた撮像画像５本来の特徴を表した特徴抽出画像５ａの画像データが出力される。そして、差分データ生成部３２は、取得した元の画像データと、オートエンコーダ３１から出力された画像データとの差分を演算する。具体的には、差分データ生成部３２は、各画像データの同一箇所の画素の画素値の差分を、画素ごとに演算する。そして、差分データ生成部３２は、画素値の差分と、所定の閾値とを比較することによって二値化する。二値化処理によって、画素単位で検出されたオブジェクト６の画像を含む画像が得られる。以下、画素単位で検出されたオブジェクト６を含む画像を差分画像５ｂと呼ぶ。差分画像５ｂには、検査対象物自体は含まれず、異変部位であるオブジェクト６のみが含まれる。例えば、図６右図に示すように、差分画像５ｂには、埃の画像であるオブジェクト６１、髪の画像であるオブジェクト６２、へこみの画像であるオブジェクト６３が含まれる。
【００６２】
次いで、演算部１１は、マッピング処理により、画素単位でオブジェクト６の位置及び種類を決定し（ステップＳ３３）、オブジェクト検出に係る処理を終える。なお、ステップＳ３３の処理を実行する演算部１１は、第１検出部２及び第２検出部３の検出結果に基づいて、オブジェクト６の位置及び種類を画素単位で決定する決定部として機能する。
【００６３】
図７は、画素単位でオブジェクト６の位置及び種類を決定する方法を示す説明図である。左上図は、第１検出部２によるオブジェクト６の検出結果が反映された撮像画像５である。撮像画像５に含まれる各オブジェクト６の位置はバウンディングボックス７の位置及び寸法によって表されている。また、各オブジェクト６の種類はバウンディングボックス７に付されたラベルによって表されている。バウンディングボックス７は、オブジェクト６の種類を示しているものの、オブジェクト６の位置、形状ないし寸法の正確な情報を有しない。
一方、左下図は、第２検出部３によるオブジェクト６の検出結果が反映された差分画像５ｂである。差分画像５ｂに含まれるオブジェクト６の各画素は、オブジェクト６の位置ないし形状を画素単位で正確に示しているものの、オブジェクト６の種類に関する情報を有しない。
中央の図は第２検出部３から出力された差分画像５ｂに対して、バウンディングボックス７のマッピングを行った状態を概念的に示したものである。バウンディングボックス７を差分画像５ｂにマッピングすることによって、画素単位でオブジェクト６の種類を決定することが可能になる。つまり、一の種類のバウンディングボックス７に包含されたオブジェクト６の画素に対して、当該一の種類を対応付けることにより、画素単位でオブジェクト６の種類を決定することができる。
右図は、画素単位でオブジェクト６の種類が決定された状態を概念的に示したものである。例えば、埃のオブジェクト６１を構成する各画素に対して、種類「埃」が対応付けられている。同様に、髪のオブジェクト６２を構成する各画素に対して、種類「髪」が対応付けられ、へこみのオブジェクト６３を構成する各画素に対して、種類「へこみ」が対応付けられている。
【００６４】
図８は、オブジェクト６の寸法測定に係る処理手順を示すフローチャート、図９は、オブジェクト６の寸法測定方法を示す説明図である。演算部１１は、一の種類のオブジェクト６の画素群を選択する（ステップＳ５１）。つまり、一つのオブジェクト６を構成している一群の複数画素を選択する。例えば、図９に示すように、埃のオブジェクト６１を構成する一群の複数画素を選択する。オブジェクト６の種類が異なる複数の画素は、たとえ連結ないし隣接していても一群の画素として選択されない。また、オブジェクト６の種類が同一の複数の画素であっても、所定画素以上離隔している場合は一群の画素として選択されない。
【００６５】
そして、演算部１１は、図９右図に示すように、選択されたオブジェクト６の一群の画素の総数を算出する（ステップＳ５２）。例えば、埃のオブジェクト６１を構成する画素の総数は１３である。同様に、髪を構成する画素の総数は１９である。オブジェクト６を構成する画素の総数は、オブジェクト６の寸法に相当するものである。
なお、オブジェクト６には、塊状のもの、線状のもの等、形状は様々であるが、同一種類のオブジェクト６は概ね同一形状である。このため、オブジェクト６の種類が既知であれば、オブジェクト６を構成する画素の総数を、当該オブジェクト６の寸法を示す情報として利用することができる。
例えば、髪のオブジェクト６２を構成する画素の総数は、髪の長さ寸法に相当する。埃のオブジェクト６１を構成する画素の総数は、概ね縦横寸法の積に相当する。
【００６６】
次いで、演算部１１は、差分画像５ｂに含まれる全オブジェクト６の寸法測定を終えたか否かを判定する（ステップＳ５３）。測定を終えていないオブジェクト６があると判定した場合（ステップＳ５３：ＮＯ）、処理をステップＳ５１へ戻し、寸法未測定の他のオブジェクト６についても同様の算出処理を実行する。全てのオブジェクト６の測定処理を終えたと判定した場合（ステップＳ５３：ＹＥＳ）、演算部１１は寸法測定に係る処理を終える。
【００６７】
図１０は、オブジェクト６の良否判定処理手順を示すフローチャート、図１１は、オブジェクト６の良否判定方法を示す説明図である。
【００６８】
演算部１１は、良否判定の対象であるオブジェクト６の画素群の種類に対応する閾値を選択する（ステップＳ７１）。記憶部１６は、オブジェクト６の種類ごとに異なる閾値を記憶しており、演算部１１は判定対象のオブジェクト６の種類に対応付けられた閾値を選択する。
【００６９】
そして、演算部１１は、良否判定対象であるオブジェクト６の画素の総数と、ステップＳ７１にて選択した閾値とを比較し（ステップＳ７２）、比較結果を記憶する（ステップＳ７３）。例えば演算部１１は、一のオブジェクト６を構成する画素の総数が閾値以上である場合、当該オブジェクト６は許容できない異変であることを示す情報を記憶する。画素の総数が閾値未満である場合、当該オブジェクト６は許容できる異変であることを示す情報を記憶する。
図１１に示すように、埃の大きさを示す画素の総数（Σ画素）は、埃に係る第１閾値未満であるため、許容されると判定される。同様に、へこみの程度を示す画素の総数（Σ画素）は、へこみに係る第３閾値未満であるため、許容されると判定される。しかし、髪の長さを示す画素の総数（Σ画素）は、髪に係る第２閾値以上であるため、許容されない異変と判定される。
【００７０】
次いで、演算部１１は、全オブジェクト６に対して良否判定を終えたか否かを判定する（ステップＳ７４）。良否判定を終えていないオブジェクト６があると判定した場合（ステップＳ７４：ＮＯ）、処理をステップＳ７１へ戻し、良否未測定の他のオブジェクト６についても同様の算出処理を実行する。全てのオブジェクト６の良否判定を終えたと判定した場合（ステップＳ７４：ＹＥＳ）、演算部１１は良否判定に係る処理を終える。
【００７１】
上記の説明は、撮像画像５に含まれる複数のオブジェクト６が互いに離隔している状態を例に説明したが、本実施形態によればオブジェクト６が重なっていても、画素単位でオブジェクト６の検出、寸法測定及び異常判定を行うことができる。
【００７２】
図１２Ａ、図１２Ｂ、図１２Ｃ、図１２Ｄは、重なり合っているオブジェクト６の検出及び寸法測定方法を示す説明図である。図１２Ａは、埃と髪のオブジェクト６１、６２が重なりあっている状態を示している。第２検出部３は、各オブジェクト６の種類を区別することなく、埃及び髪のオブジェクト６１、６２を構成する複数の画素を一群の画素として検出している。
図１２Ｂは、埃の位置及び範囲を示すバウンディングボックス７１によりマッピングされた状態を示している。演算部１１は、当該バウンディングボックス７１に包含される画素群を埃のオブジェクト６１を構成する画素として認識し、各画素に種類「埃」を付与する。
図１２Ｃは、髪の位置及び範囲を示すバウンディングボックス７２によりマッピングされた状態を示している。演算部１１は、当該バウンディングボックス７２に包含される画素群を髪のオブジェクト６２を構成する画素として認識し、各画素に種類「髪」を付与する。
図１２Ｄは、図１２Ｂ及び図１２Ｃに示すマッピング処理により、画素単位でオブジェクト６の種類を認識した結果を示している。黒塗りで示した画素は、種類「髪」が付与されている。ハッチングが付された画素は、種類「埃」が付与されている。白塗りの画素は、種類「埃」及び「髪」の双方が付与されている。
このように、オブジェクト６が重なり合っている部分の画素に、両方の種類を付与することにより、オブジェクト６が重なり合っていても、各オブジェクト６の寸法を測定することが可能となる。例えば、「埃」の種類が付与されている画素は、ハッチングが付された画素及び白抜きの画素であり、当該画素の総数を算出することによって、「埃」のオブジェクト６１の寸法を測定することができる。同様に、「髪」の種類が付与されている画素は、黒塗りの画素及び白抜きの画素であり、当該画素の総数を算出することによって、「髪」のオブジェクト６２の寸法を測定することができる。このように、複数種類のオブジェクト６が重なり合っていても、各オブジェクト６の位置及び種類を画素単位で検出することができ、各オブジェクト６の寸法を測定することもできる。
【００７３】
ステップＳ１３においてオブジェクト６の検出に失敗したと判定した場合（ステップＳ１３：ＹＥＳ）、演算部１１は、現在の画像認識ニューラルネットワーク２１を通信部１８にて、機械学習装置９へ送信する（ステップＳ１８）。具体的には、画像認識ニューラルネットワーク２１を構成するための各種パラメータを機械学習装置９へ送信する。
【００７４】
機械学習装置９は、異変検知装置１から送信された画像認識ニューラルネットワーク２１を追加学習対象として受信する（ステップＳ１９）。
【００７５】
ステップＳ１８の処理を終えた異変検知装置１は、学習用データの生成に係る処理を実行する（ステップＳ２０）。
【００７６】
図１３は、学習用データの生成に係る処理手順を示すフローチャート、図１４及び図１５Ａ及び図１５Ｂは、学習用データの生成方法を示す説明図である。まず演算部１１は、オブジェクト６の検出に失敗した撮像画像５を、図１４右図に示すように格子状に分割し、分割された各画像ブロックに対してオブジェクト６に関する情報を示す配列Ｙを割り当てる（ステップＳ９１）。配列Ｙは、例えば下記式（１）で表される。ステップＳ９１で割り当てられる配列の各変数の初期値は０である。
【００７７】
【数１】
2020031423.tif 000003
【００７８】
配列Ｙの変数Ｐは、画像ブロックにオブジェクト６が含まれているか否かを示す。図１５Ａ及び図１５Ｂに示すように、Ｐ＝１はオブジェクト６が含まれていることを示し、Ｐ＝０はオブジェクト６が含まれていないことを示す。
変数Ｂｘ、Ｂｙは、図１５Ａに示すように、オブジェクト６の中心位置、例えば画像の重心位置のＸ座標、及びＹ座標を示す。座標系の取り方は特に限定されるものでは無いが、例えば図１５Ａ及び図１５Ｂに示すように、各画像ブロックの左下の頂点を原点とし、撮像画像５の水平方向をＸ軸、垂直方向をＹ軸とする直交座標系を用いるとよい。
変数Ｂｗ、Ｂｈは、オブジェクト６の幅及び高さを示す。
変数Ｃ１、Ｃ２、Ｃ３、…は、オブジェクト６の種類に対応している。例えば、Ｃ１は「埃」、Ｃ２は「髪」、Ｃ３は「へこみ」等に対応している。変数Ｃ１＝１は、オブジェクト６が「埃」であることを示し、変数Ｃ１＝０はオブジェクト６が「埃」で無いことを示している。他の変数Ｃ２、Ｃ３、…も同様である。なお、オブジェクト６の種類を示す変数は、新規のオブジェクト６の種類に対応できるよう、種類「未定」の変数を適宜数用意しておくとよい。
【００７９】
ステップＳ９１の処理を終えた演算部１１は、第２検出部３の検出結果を参照して、各画像ブロックにおけるオブジェクト６の有無、位置及び寸法を特定する（ステップＳ９２）。そして、演算部１１は、図１５Ａ及び図１５Ｂに示すように特定結果に従って、各画像ブロックに割り当てられた配列Ｙの変数Ｐ、Ｂｘ、Ｂｙ、Ｂｗ、Ｂｈに、該当する数値を代入する（ステップＳ９３）。
なお、画像ブロックにオブジェクト６が含まれていない場合、配列Ｙの各変数は０となる。
【００８０】
次いで、演算部１１は、撮像画像５に対して公知の形状認識処理を実行することによって、種類が特定されていなかったオブジェクト６の種類を検出する（ステップＳ９４）。例えば、演算部１１は、オブジェクト６のエッジを検出して所定の特徴量を算出し、記憶部１６が記憶する特徴量と比較することによって、類似の特徴量に対応するオブジェクト６の種類を特定することによって、オブジェクト６の種類を検出する。また、パターンマッチングによって、オブジェクト６の種類を特定してもよい。
【００８１】
そして、ステップＳ９４の処理を終えた演算部１１は、オブジェクト６の種類の検出に成功したか否かを判定する（ステップＳ９５）。成功したと判定した場合（ステップＳ９５：ＹＥＳ）、演算部１１は、ステップＳ９４の検出結果に応じて、変数Ｃ１、Ｃ２、Ｃ３…に、該当する数値を代入し（ステップＳ９７）、学習用データの生成処理を終える。
【００８２】
ステップＳ９５で失敗したと判定した場合（ステップＳ９５：ＮＯ）、演算部１１は、操作部１ｃにてオブジェクト６の種類をユーザから受け付ける（ステップＳ９６）。例えば、演算部１１は、問題となる撮像画像５を表示部１ｂに表示させると共に、オブジェクト６の検出に失敗した画像部分を指し示す指示画像を表示するとよい。例えば、第１検出部２にて検出されず、第２検出部３で検出されたオブジェクト６の画素群を囲む枠画像を撮像画像５に重畳させて表示するとよい。枠画像は一例であり、矢印画像等でもよい。
演算部１１は、想定されている複数の種類をユーザに提示し、ユーザによる種類の選択を受け付ける。また新規の種類である場合、演算部１１は、種類の名称の登録を受け付けとよい。演算部１１は、ユーザから新規の種類の名称を受け付け、種類「未定」の変数名を当該名称に変更登録する。
【００８３】
そして、演算部１１は、ステップＳ９６で受け付けた内容に従って、変数Ｃ１、Ｃ２、Ｃ３…に、該当する数値を代入し（ステップＳ９７）、学習用データの生成処理を終える。
上記処理によって、オブジェクト６の検出に失敗した画像データと、当該画像データに含まれるオブジェクト６の位置及び範囲並びに種類を示したデータとを組みとした学習用データを生成することができる。
【００８４】
ステップＳ２０において学習用データの生成に係る処理を終えた演算部１１は、生成した学習用データをデータ蓄積部１７に蓄積する（ステップＳ２１）。そして、演算部１１は、所定量の学習用データを蓄積したか否かを判定する（ステップＳ２２）。所定量の学習用データが蓄積されていないと判定した場合（ステップＳ２２：ＮＯ）、演算部１１は処理をステップＳ１４へ戻し、異変検知処理及び学習用データの蓄積を継続する。所定量の学習用データが蓄積されたと判定した場合（ステップＳ２２：ＹＥＳ）、演算部１１は、データ蓄積部１７に蓄積された学習用データを通信部１８にて機械学習装置９へ送信する（ステップＳ２３）。
【００８５】
機械学習装置９は、異変検知装置１から送信された学習用データを受信し（ステップＳ２４）、ステップＳ１９にて受信した画像認識ニューラルネットワーク２１を、学習用データを用いて追加学習させる（ステップＳ２５）。つまり、機械学習装置９は、認識不能であったオブジェクト６を含む撮像画像５の画像データが画像認識ニューラルネットワーク２１に入力された場合、当該オブジェクト６の位置及び範囲並びに種類を示すデータが出力されるように、学習用データを用いて、画像認識ニューラルネットワーク２１を追加学習させる。当該追加学習は、教師有り学習である。
【００８６】
次いで、機械学習装置９はステップＳ２５にて追加学習された画像認識ニューラルネットワーク２１を異変検知装置１へ送信する（ステップＳ２６）。異変検知装置１は、機械学習装置９から送信された追加学習済みの画像認識ニューラルネットワーク２１を通信部１８にて受信する（ステップＳ２７）。そして、異変検知装置１の演算部１１は、追加学習前の画像認識ニューラルネットワーク２１を、追加学習済みの新しい画像認識ニューラルネットワーク２１に更新し（ステップＳ２８）、処理をステップＳ１１に戻す。
【００８７】
以上の通り、本実施形態によれば、画像認識ニューラルネットワーク２１を用いたオブジェクト６の検出に失敗した場合であっても、オートエンコーダ３１を用いて、その失敗を検知し、画像認識ニューラルネットワーク２１を追加学習させることができる。
【００８８】
また、オートエンコーダ３１を用いることによって、オブジェクト６の種類に拘わらず、異変部位であるオブジェクト６を精度良く認識することができ、画像認識ニューラルネットワーク２１を用いたオブジェクト６の検出の失敗を正確に検出することができる。
【００８９】
更に、学習済みの画像認識ニューラルネットワーク２１を用いることによって、様々な特徴を有するオブジェクト６を認識し、当該オブジェクト６の位置、範囲及び種類を検出することができる。しかも、追加学習によって未知のオブジェクト６も半自動で認識できるようになる。
【００９０】
更にまた、画像認識ニューラルネットワーク２１を用いてオブジェクト６の種類が検出されなかった場合、形状認識によりオブジェクト６の種類を検出し、画像認識ニューラルネットワーク２１を自動的に追加学習させることができる。
【００９１】
具体的には、オブジェクト６のエッジ、即ち輪郭線を検出して所定の特徴量を算出してオブジェクト６の種類を特定し、画像認識ニューラルネットワーク２１を自動的に追加学習させることができる。
【００９２】
更にまた、形状認識処理でもオブジェクト６の種類が特定されなかった場合、ユーザからオブジェクト６の種類を受け付けることによって、追加学習用データを生成し、画像認識ニューラルネットワーク２１を追加学習させることができる。
【００９３】
更にまた、本実施形態２によれば、オブジェクト６の検出ないし検査対象物の異変検知処理と、画像認識ニューラルネットワーク２１の追加学習とを並行的に実行することができる。従って、画像認識ニューラルネットワーク２１の学習処理中も、オブジェクト６の検出処理を継続することができる。
【００９４】
更にまた、本実施形態では、特にワイヤハーネスを構成するコネクタ等の検査対象物の異変部位及び種類を検出することができ、未知の異変部位も半自動的に学習し、その位置及び種類を検出することができる。
【００９５】
更にまた、第１検出部２及び第２検出部３にてオブジェクト６を検出し、図７に示すマッピング処理を行うことによって、撮像画像５に含まれるオブジェクト６の位置及び種類を画素単位で検出することができる。画素単位でオブジェクト６の位置及び種類を検出することが可能であるため、異変部位であるオブジェクト６の寸法を正確に測定することができる。
更にまた、画素単位で検出された異変部位及びその良否を図１１に示すように表示することができる。
【００９６】
更にまた、オブジェクト６の種類に応じた異なる閾値を用いて、検出されたオブジェクト６が許容される異変か否かを判定することができる。
【００９７】
更にまた、画素単位で検出されたオブジェクト６の画素の総数と、閾値とを比較する簡単な処理で、オブジェクト６の形状に応じた異なる測定算出処理を行わずとも、上記判定を行うことができる。つまり、複雑な処理で異変部位の寸法を算出しなくても、異変部位の大きさが許容される寸法であるか否かを判定することができる。
【００９８】
更にまた、オートエンコーダ３１を用いることによって、オブジェクト６の位置を画素単位で正確に検出することができる。また当該オブジェクト６の寸法を正確に算出することができる。
【００９９】
更にまた、学習済みの画像認識ニューラルネットワーク２１を用いることによって、様々な特徴を有するオブジェクト６を認識し、当該オブジェクト６の位置、範囲及び種類を検出することができる。
【０１００】
なお、本実施形態では、１台のコンピュータが異変検知装置１として動作し、第１検出部２、第２検出部３及び良否判定部４等として機能する例を説明したが、各機能部を実現する処理の一部又は全部をクラウドコンピュータに実行させるように構成してもよい。また、各機能部を実現する処理を複数のコンピュータで実行させる等、仮想マシンで実行するように構成してもよい。
【０１０１】
また、本実施形態では、主に検査対象物の良、不良を検知するシステムを説明したが、検出対象であるオブジェクト６の内容は特に限定されるものでは無い。
【符号の説明】
【０１０２】
１  異変検知装置
１ａ  撮像部
１ｂ  表示部
１ｃ  操作部
２  第１検出部
３  第２検出部
４  良否判定部
５  撮像画像
５ａ  特徴抽出画像
５ｂ  差分画像
６、６１、６２、６３  オブジェクト
７、７１、７２、７３  バウンディングボックス
９  機械学習装置
１１  演算部
１２  一時記憶部
１３  画像入力部
１４  出力部
１５  入力部
１６  記憶部
１６ａ  コンピュータプログラム
１７  データ蓄積部
１８  通信部
２１  画像認識ニューラルネットワーク
３１  オートエンコーダ
３１ａ  入力層
３１ｂ  出力層
３１ｃ  コンボリューション層
３１ｄ  デコンボリューション層
３２  差分データ生成部
４１  オブジェクト検出処理部
４２  寸法測定処理部
４３  良否判定処理部
【図１】
2020031423.tif 000004
【図２】
2020031423.tif 000005
【図３】
2020031423.tif 000006
【図４】
2020031423.tif 000007
【図５Ａ】
2020031423.tif 000008
【図５Ｂ】
2020031423.tif 000009
【図６】
2020031423.tif 000010
【図７】
2020031423.tif 000011
【図８】
2020031423.tif 000012
【図９】
2020031423.tif 000013
【図１０】
2020031423.tif 000014
【図１１】
2020031423.tif 000015
【図１２Ａ】
2020031423.tif 000016
【図１２Ｂ】
2020031423.tif 000017
【図１２Ｃ】
2020031423.tif 000018
【図１２Ｄ】
2020031423.tif 000019
【図１３】
2020031423.tif 000020
【図１４】
2020031423.tif 000021
【図１５Ａ】
2020031423.tif 000022
【図１５Ｂ】
2020031423.tif 000023
【国際調査報告】
2020031423.tif 000024
2020031423.tif 000025