(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022186079
(43)【公開日】2022-12-15
(54)【発明の名称】検出方法及びプログラム
(51)【国際特許分類】
G06T 7/00 20170101AFI20221208BHJP
【FI】
G06T7/00 350C
G06T7/00 610Z
【審査請求】未請求
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2021094120
(22)【出願日】2021-06-04
(71)【出願人】
【識別番号】504160781
【氏名又は名称】国立大学法人金沢大学
(71)【出願人】
【識別番号】391001169
【氏名又は名称】櫻護謨株式会社
(74)【代理人】
【識別番号】100109210
【弁理士】
【氏名又は名称】新居 広守
(72)【発明者】
【氏名】藤生 慎
(72)【発明者】
【氏名】福岡 知隆
(72)【発明者】
【氏名】南 貴大
(72)【発明者】
【氏名】高橋 信行
(72)【発明者】
【氏名】戸城 賢三
(72)【発明者】
【氏名】和泉田 拓実
【テーマコード(参考)】
5L096
【Fターム(参考)】
5L096AA02
5L096AA06
5L096BA03
5L096CA17
5L096CA21
5L096DA01
5L096FA35
5L096FA54
5L096GA19
5L096GA34
5L096GA51
5L096HA11
5L096KA04
(57)【要約】
【課題】対象物に含まれる楕円形状物を簡便にかつ精度良く検出することができる検出方法を提供する。
【解決手段】検出方法は、楕円形状物を含む対象物の少なくとも一部が映る画像を取得し(S11)、取得された画像を、機械学習モデルの学習時に教師データに使用されたブロックのサイズと同じサイズのブロックでブロック分割し(S12)、ブロック分割された画像を、学習済みモデルに入力することにより得られる、ブロックそれぞれにおける楕円形状物を表す画素の数に基づいて、対象物の異常箇所を検出する(S13)。
【選択図】
図3
【特許請求の範囲】
【請求項1】
楕円形状物を含む対象物の少なくとも一部が映る画像を取得し、
取得された前記画像を、機械学習モデルの学習時に教師データに使用されたブロックのサイズと同じサイズのブロックでブロック分割し、
ブロック分割された前記画像を、学習済みの前記機械学習モデルである学習済みモデルに入力することにより得られる、前記ブロックそれぞれにおける前記楕円形状物を表す画素の数に基づいて、前記対象物の異常箇所を検出し、
前記異常箇所の検出において、
前記学習済みモデルから出力された前記画素の数が第1閾値よりも多く、かつ、第2閾値よりも少ない場合、当該ブロックに対応する前記対象物の箇所が前記異常箇所ではないと判定し、
前記学習済みモデルから出力された前記画素の数が前記第1閾値以下である場合、又は、前記第2閾値以上である場合、当該ブロックに対応する前記対象物の箇所が前記異常箇所であると判定する
検出方法。
【請求項2】
さらに、前記対象物において前記異常箇所が検出された場合、前記画像における前記異常箇所がマーキングされたマーキング画像を生成し、
生成された前記マーキング画像を判定結果として出力する
請求項1に記載の検出方法。
【請求項3】
前記ブロックの分割に先立ち、前記画像に映る前記対象物の少なくとも一部以外の領域を検出対象から除外し、
前記画像において前記検出対象の領域を、前記機械学習モデルの学習時に前記教師データとして使用されたサイズと同じサイズのブロックに分割する
請求項1又は2に記載の検出方法。
【請求項4】
前記機械学習モデルは、畳み込みニューラルネットワークである
請求項1~3のいずれか1項に記載の検出方法。
【請求項5】
前記機械学習モデルの学習に使用される前記教師データは、
対象物の少なくとも一部が映る第1画像を前記サイズに分割した複数の第1ブロックと、当該第1ブロックに含まれる複数の楕円形状物それぞれの領域を示すアノテーションとで構成された第1データと、
前記第1画像において前記第1ブロックを超えない範囲で前記第1ブロックをずらして前記サイズに再分割した複数の第2ブロックと、当該第2ブロックに含まれる複数の楕円形状物それぞれの領域を示すアノテーションとで構成された第2データと
を含む
請求項1~4のいずれか1項に記載の検出方法。
【請求項6】
請求項1~5のいずれか1項に記載の検出方法をコンピュータに実行させるための
プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、検出方法及びプログラムに関する。
【背景技術】
【0002】
従来、機械学習を利用した画像認識により画像中の物体を検出する技術が知られている。このような技術は、例えば、製造ラインで撮像された画像から製品を検出し、当該製品の品質を管理するために利用されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上述した従来技術には、機械学習を利用した物体検出を簡便にかつ精度良く行う上で、更なる改善の余地がある。特に、楕円形状物などのエッジが丸められた形状を有する物体の検出精度が低いことが知られている。
【0005】
そこで、本開示は、対象物に含まれる楕円形状物を簡便にかつ精度良く検出することができる検出方法を提供する。
【課題を解決するための手段】
【0006】
本開示の一態様に係る検出方法は、楕円形状物を含む対象物の少なくとも一部が映る画像を取得し、取得された前記画像を、機械学習モデルの学習時に教師データに使用されたブロックのサイズと同じサイズのブロックでブロック分割し、ブロック分割された前記画像を、学習済みの前記機械学習モデルである学習済みモデルに入力することにより得られる、前記ブロックそれぞれにおける前記楕円形状物を表す画素の数に基づいて、前記対象物の異常箇所を検出し、前記異常箇所の検出において、前記学習済みモデルから出力された前記画素の数が第1閾値よりも多く、かつ、第2閾値よりも少ない場合、当該ブロックに対応する前記対象物の箇所が前記異常箇所ではないと判定し、前記学習済みモデルから出力された前記画素の数が前記第1閾値以下である場合、又は、前記第2閾値以上である場合、当該ブロックに対応する前記対象物の箇所が前記異常箇所であると判定する。
【0007】
本開示の一態様に係るプログラムは、前記検出方法をコンピュータに実行させるためのプログラムである。
【発明の効果】
【0008】
本開示によれば、対象物の異常箇所を簡便にかつ精度良く検出することができる検出方法を提供する。
【図面の簡単な説明】
【0009】
【
図1】
図1は、実施の形態に係る検出システムの概要を説明するための図である。
【
図2】
図2は、実施の形態に係る検出システムの機能構成の一例を示すブロック図である。
【
図3】
図3は、実施の形態に係る検出装置の動作の一例を示すフローチャートである。
【
図4】
図4は、
図3のステップS13の詳細なフローを示すフローチャートである。
【
図5】
図5は、
図3のステップS11で取得される画像の例を示す図である。
【
図6】
図6は、
図3のステップS11で取得された画像の処理例を示す図である。
【
図7】
図7は、異常箇所の検出処理を説明するための図である。
【
図8】
図8は、検出結果の画素ヒストグラムの一例を示す図である。
【
図10】
図10は、フィルタリング処理の一例を示す図である。
【
図11】
図11は、比較例1及び実施例1の結果を示す図である。
【
図12】
図12は、比較例2及び実施例2の結果を示す図である。
【発明を実施するための形態】
【0010】
以下、実施の形態について、図面を参照しながら具体的に説明する。なお、以下で説明する実施の形態は、いずれも包括的または具体的な例を示すものである。以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置位置及び接続形態、ステップ、ステップの順序などは、一例であり、本開示を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、独立請求項に記載されていない構成要素については、任意の構成要素として説明される。
【0011】
なお、各図は模式図であり、必ずしも厳密に図示されたものではない。また、各図において、実質的に同一の構成に対しては同一の符号を付し、重複する説明は省略または簡略化される場合がある。
【0012】
(実施の形態)
[構成]
まず、実施の形態に係る検出システムの構成について説明する。
図1は、実施の形態に係る検出システムの概要を説明するための図である。
図2は、実施の形態に係る検出システムの機能構成の一例を示すブロック図である。
【0013】
図1に示されるように、検出システム100は、楕円形状物を含む対象物1の異常箇所を検出するシステムである。異常箇所とは、例えば、楕円形状物に欠けなどの形状異常が生じた箇所である。検出システム100は、例えば、対象物1の品質検査などに使用される。対象物1は、楕円形状物を含む物体であり、例えば、楕円形状物を表面に有する物体、楕円形状物から構成される物体、又は、構成の一部に楕円形状物を含む物体である。当該物体は、楕円形状物を含んでいればよく、繊維、金属、樹脂、木材、カーボン、ゲル、又は、粘土など種々の材料から形成されてもよい。楕円形状物は、例えば、上面視において、楕円形状、角が丸められた多角形、又は、円形であってもよい。以下では、楕円形状物を含む対象物1として、布を例に説明するが、あくまでも一例であり、これに限定されない。
【0014】
図1及び
図2に示されるように、検出システム100は、例えば、検出装置10と、撮像装置30とを備える。また、
図1では、照明装置20及び搬送装置40も図示されている。検出システム100は、照明装置20及び搬送装置40を備えてもよい。検出システム100は、搬送装置40により搬送される対象物1に含まれる楕円形状物の異常の有無を検出してもよい。搬送装置40は、例えば、コンベアである。
【0015】
以下、検出システム100の各構成について説明する。
【0016】
[照明装置]
照明装置20は、例えば、撮像装置30の画角内の対象物1を照らす発光装置である。照明装置20は、2つ備えられてもよく、3つ備えられてもよい。この場合、2つ以上の照明装置20は、撮像装置30が撮影する領域に対して、異なる方向から光を照射する。光源の種類は、特に限定されないが、例えば、LED(Light Emitting Diode)に基づき白色光を照射する光源であってもよい。また、2つ以上の照明装置20を備える場合、各照明装置20は、同一の波長又は同一の波長範囲の光を放射する光源を備えてもよく、異なる波長の光を放射する光源を備えてもよい。対象物1の種類、対象物1に含まれる楕円形状物の色又は表面形状などに応じて適宜選択されてもよい。
【0017】
[撮像装置]
撮像装置30は、対象物1の少なくとも一部を含む画像を撮影する。画像は、静止画像であってもよく、動画像であってもよい。画像は、モノクロ画像であってもよく、カラー画像であってもよい。撮像装置30は、照明装置20が対象物1を照らした光を検出することにより、楕円形状物を含む対象物1の少なくとも一部を含む画像を撮影する。撮像装置30は、例えば、CCD(Charge Coupled Device)イメージセンサ、CMOS(Complementary Metal Oxide Semiconductor)イメージセンサ等の、光を検出するための撮像素子を有する。
【0018】
[検出装置]
検出装置10は、撮像装置30によって撮影された画像に基づいて、対象物1に含まれる楕円形状物の異常を検出する装置である。検出装置10は、例えば、パーソナルコンピュータなどの据え置き型の情報端末であるが、スマートフォン又はタブレット端末などの携帯型の情報端末であってもよい。また、
図1及び
図2の例では、検出装置10と撮像装置30とは、別体であるが、撮像装置30は、検出装置10に備えられるカメラであってもよい。検出装置10は、例えば、通信部11と、制御部12と、記憶部13と、学習部14と、表示部と、操作受付部と、を備える。
【0019】
[通信部]
通信部11は、検出装置10が照明装置20、撮像装置30、及び、搬送装置40と局所通信ネットワークを介して通信を行うための通信モジュール(通信回路)である。通信部11は、例えば、無線通信を行う無線通信回路であるが、有線通信を行う有線通信回路であってもよい。通信部11が行う通信の通信規格は、特に限定されない。
【0020】
[制御部]
制御部12は、検出装置10の動作の制御を行うための情報処理を行う。制御部12は、例えば、マイクロコンピュータによって実現されるが、プロセッサまたは専用回路によって実現されてもよい。制御部12は、具体的には、取得部12aと、画像処理部12bと、判定部12cと、出力部12dとを備える。取得部12a、画像処理部12b、判定部12c、及び、出力部12dは、いずれもプロセッサが上記情報処理を行うためのプログラムを実行することにより実現される。
【0021】
取得部12aは、楕円形状物を含む対象物1の少なくとも一部が映る画像を取得する。
【0022】
画像処理部12bは、取得部12aによって取得された画像(画像データ)に対して画像処理を行うことで、学習用画像データ、又は、検出用画像データを生成する。具体的には、画像処理部12bは、取得部12aによって取得された画像データを所定のサイズのブロックでブロック分割することで、学習用画像データ、又は、検出用画像データを生成する。
【0023】
例えば、学習用画像データの生成については、対象物1の少なくとも一部が映る画像(第1画像と呼ぶ)を所定のサイズに分割した複数のブロック(第1ブロックと呼ぶ)と、当該第1ブロックを超えない範囲で、例えば、縦横斜めのいずれかの方向に第1ブロックをずらして第1画像を所定のサイズに再分割することを繰り返して、複数の学習用画像データを生成する。なお、機械学習用の教師データは、複数の学習用画像データと、複数の学習用画像データにそれぞれ正解データとして対応付けられた複数の楕円形状物それぞれの領域を示すアノテーションとで構成される。
【0024】
また、例えば、検出用画像データの生成については、画像処理部12bは、取得部12aによって取得された画像(画像データ)を、機械学習モデルの学習時に教師データに使用されたブロックのサイズと同じサイズのブロックでブロック分割した画像を生成する。このとき、画像処理部12bは、画像のブロックの分割に先立ち、画像に映る対象物1の少なくとも一部以外の領域(言い換えると、対象物1が映っていない領域)を検出対象から除外し、当該画像において検出対象の領域を、機械学習モデルの学習時に教師データとして使用されたサイズと同じサイズのブロックに分割してもよい。
【0025】
さらに、画像処理部12bは、判定部12cによって対象物1に異常箇所が検出されたと判定された場合に、当該判定の結果(以下、判定結果という)として、画像における異常箇所がマーキングされたマーキング画像を生成してもよい。
【0026】
判定部12cは、記憶部13に記憶されている学習済みの機械学習モデル(以下、学習済みモデルという)を用いて、画像処理部12bによってブロック分割された画像(いわゆる、検出用画像データ)を、学習済みモデルに入力することにより得られる、ブロックそれぞれにおける楕円形状物を表す画素の数に基づいて、対象物1の異常箇所を検出する。より具体的には、判定部12cは、異常箇所の検出において、学習済みモデルから出力された画素の数が第1閾値よりも多く、かつ、第2閾値よりも少ない場合、当該ブロックに対応する対象物1の箇所が異常箇所ではないと判定し、学習済みモデルから出力された画素の数が第1閾値以下である場合、又は、第2閾値以上である場合、当該ブロックに対応する対象物1の箇所が異常箇所であると判定する。閾値は、求められる検出精度及び検出対象の種類により、適宜設定されてもよい。
【0027】
出力部12dは、判定部12cによって判定された結果(以下、判定結果という)を出力する。判定結果は、例えば、画像、文字、記号、及び、音声の少なくともいずれかで出力される。例えば、出力部12dは、対象物1において異常箇所が検出された場合、検出結果として、画像処理部12bによって生成されたマーキング画像を出力する。
【0028】
[記憶部]
記憶部13は、制御部12が実行する制御プログラムなどが記憶される記憶装置である。記憶部13は、教師データ及び検出用画像データを一時的に記憶してもよい。記憶部13は、記憶している学習済みモデルを、学習部14によって生成された機械学習モデル(いわゆる、学習済みモデル)に更新する。記憶部13は、例えば、半導体メモリによって実現される。
【0029】
[学習部]
学習部14は、教師データを用いて機械学習する。学習部14は、機械学習により、所定のサイズのブロックでブロック分割された画像を入力とし、当該画像に含まれる複数のブロックそれぞれにおける楕円形状物を表す画素の数を出力する機械学習モデルを生成する。機械学習モデルは、例えば、畳み込みニューラルネットワーク(CNN)である。機械学習モデルは、CNNであればよく、特に限定されないが、例えば、DeepCrack(A Deep Hierarchical Feature Learning Architecture for Crack Segmentation) Networkであってもよい。学習済みの機械学習モデル(いわゆる、学習済みモデル)は、機械学習により調整された学習済みパラメータを含む。生成された学習済みモデルは、記憶部13に記憶される。学習部14は、例えば、プロセッサが記憶部13に格納されているプログラムを実行することで実現される。機械学習モデルの学習に使用する教師データは、対象物1の少なくとも一部が映る第1画像を所定のサイズに分割した複数の第1ブロックと、当該第1ブロックに含まれる複数の楕円形状物それぞれの領域を示すアノテーションとで構成された第1データと、第1画像において第1ブロックを超えない範囲で第1ブロックをずらして所定のサイズに再分割した複数の第2ブロックと、当該第2ブロックに含まれる複数の楕円形状物それぞれの領域を示すアノテーションとで構成された第2データとを含む。第1画像を分割する際の第1ブロックをずらす方向は、縦横斜め方向のいずれかであり、第1ブロックの範囲を越えなければ任意の距離ずらしてもよい。このようにして対象物1の少なくとも一部が映る第1画像から複数の教師データを作成することができる。
【0030】
[表示部]
表示部15は、制御部12の制御に基づいて画像を表示する表示装置である。表示部15は、例えば、液晶パネルまたは有機EL(Electro Luminescence)パネルによって実現される。
【0031】
[操作受付部]
操作受付部16は、ユーザの操作を受け付ける。操作受付部16は、具体的には、マウス、マイクロフォン、又は、タッチパネルなどによって実現される。
【0032】
なお、操作受付部16は、マイクロフォン(不図示)又はスピーカ(不図示)を備えてもよい。マイクロフォンは、音声を取得し、取得した音声に応じて音声信号を出力する。マイクロフォンは、具体的には、コンデンサマイク、ダイナミックマイク、又は、MEMSマイクなどである。スピーカは、例えば、マイクロフォンによって取得された発話音声への応答として、音声(機械音声)を出力する。これにより、ユーザは対話形式でシーン制御の実行指示を入力することができる。
【0033】
なお、操作受付部16は、カメラ(不図示)を備えてもよい。カメラは、検出装置10を操作するユーザの画像を撮影する。具体的には、カメラは、ユーザの口、目、又は指などの動きを撮影する。この場合、操作受付部16は、カメラによって撮影されたユーザの画像に基づいて、ユーザの操作を受け付ける。カメラは、例えば、CMOSイメージセンサなどによって実現される。
【0034】
なお、上述のように、検出装置10は、カメラを備えてもよい。この場合、カメラは、楕円形状物を含む対象物1の少なくとも一部が映る画像を撮影してもよい。
【0035】
[動作]
続いて、本実施の形態に係る検出システム100の動作について説明する。
図3は、実施の形態に係る検出装置10の動作の一例を示すフローチャートである。
【0036】
まず、検出システム100の撮像装置30は、対象物1の少なくとも一部が映る画像を撮影する。このとき、照明装置20は、撮像装置30の画角内を照らしていてもよい。撮像装置30は、撮影した画像を検出装置10に送信する。なお、ここでは、撮像装置30は、検出装置10の外部の装置である例を説明しているが、撮像装置30は、検出装置10に備えられてもよい。
【0037】
次に、
図3に示されるように、検出装置10は、撮像装置30によって撮影された、対象物の少なくとも一部が映る画像を取得する(S11)。
図5は、
図3のステップS11で取得される画像の例を示す図である。
図6は、
図3のステップS11で取得された画像の処理例を示す図である。例えば、
図5に示されるように、検出装置10は、取得した画像が動画像である場合、動画像から複数のフレーム画像(いわゆる、静止画像)を抽出してもよい。検出装置10は、各静止画像について、以下の処理を行う。
【0038】
例えば、
図6の(a)に示されるように、検出装置10は、画像(静止画像)を取得すると、
図6の(b)に示されるように、取得した画像を、機械学習モデルの学習時に教師データに使用されたブロックのサイズと同じサイズのブロックでブロック分割する(S12)。
【0039】
次に、検出装置10は、ブロック分割された画像を、学習済みモデルに入力し、ブロックそれぞれにおける楕円形状物を表す画素の数に基づいて、対象物の異常箇所を検出する(S13)。例えば、
図6の(c)に示されるように、検出装置10は、学習済みモデルの出力結果として、画像中の各ブロックにおける楕円形状物を表す画素を黒色で示した画像を出力する。
【0040】
図4は、
図3のステップS13の詳細なフローを示すフローチャートである。
【0041】
検出装置10は、ブロック分割された画像を、学習済みモデルに入力し、ブロックそれぞれにおける楕円形状物を表す画素の数を出力する(S21)。より具体的には、検出装置10は、学習済みモデルの出力結果(
図6の(c))から、画像中の各ブロックにおける楕円形状を表す画素の数を導出する。
図7は、異常箇所の検出処理を説明するための図である。
図7では、
図6の(c)に示される出力結果から、正常と判定されたブロックと異常と判定されたブロックを任意に抜き出して示している。
【0042】
次に、検出装置10は、ブロックごとのループ処理を開始する(S22)。検出装置10は、ステップS21で学習済みモデルから出力された画素の数が第1閾値よりも多く、かつ、第2閾値よりも少ないか否かを判定する(S23)。
図8は、検出結果の画素ヒストグラムの一例を示す図である。第1閾値及び第2閾値は、例えば、
図8に示されるヒストグラムに基づいて設定される。検出装置10は、出力した複数のブロックそれぞれにおける楕円形状物を表す画素の数を集計し、集計した複数のブロックの画素の数のヒストグラムを生成し、生成したヒストグラムを表示部15に表示してもよい。ユーザは、表示されたヒストグラムから、所望の精度に応じて上記の閾値を設定してもよい。
【0043】
検出装置10は、画素の数が第1閾値よりも多く、かつ、第2閾値よりも少ないと判定した場合(S23でYes)、当該ブロックに対応する対象物1の箇所が異常箇所ではないと判定する(S24)。例えば、ブロックにおける楕円形状物を表す画素の数(
図7中のピクセル数)の第1閾値が35000に設定され、第2閾値が37000に設定されたとすると、
図7の(a)~(e)の分割画像(いわゆる、ブロック)は、画素の数が第1閾値より多く、第2閾値よりも少ないため、当該分割画像に対応する対象物1の箇所は、正常箇所であると判定される。
【0044】
一方、検出装置10は、画素の数が第1閾値以下である、又は、第2閾値以上であると判定した場合(S23でNo)、当該ブロックに対応する対象物1の箇所が異常箇所であると判定する(S25)。例えば、
図7の(f)の分割画像は、画素の数が第1閾値以下であるため、当該分割画像に対応する対象物1の箇所は、異常箇所であると判定される。
【0045】
検出装置10は、画像に含まれる全てのブロックについて上記処理を行うと、ブロック毎のループ処理を終了する(S26)。
【0046】
次に、検出装置10は、対象物1(より詳細には、画像に被写体として映っている対象物1に対応する部分)において異常箇所が検出されたか否かを判定する(S27)。
図9は、判定結果の一例を示す図である。例えば、
図9の(a)に示されるように、検出装置10は、対象物1において異常箇所が検出されたか否かを判定し、異常箇所が検出されたと判定した場合、当該異常箇所であると判定された分割画像をマーキングする。
【0047】
検出装置10は、対象物1において異常箇所が検出されたと判定した場合(S27でYes)、画像における異常箇所がマーキングされたマーキング画像(
図9の(b)参照)を生成し(S28)、生成されたマーキング画像を判定結果として出力する(S29)。
【0048】
一方、検出装置10は、対象物1において異常箇所が検出されていないと判定した場合(S27でNo)、処理を終了する。なお、ステップS27において、検出装置10は、対象物1において異常箇所が検出されていないと判定した場合(No)、音声又は文字で「異常なし」と出力してもよいし、〇などの記号を出力してもよいし、緑色のランプを点灯させて、ユーザに異常が無いことを知らせてもよい。
【0049】
なお、ステップS12において、検出装置10は、ブロックの分割に先立ち、画像に映る対象物1の少なくとも一部以外の領域(言い換えると、画像における対象物1が映っていない領域)を検出対象から除外し、画像において検出対象の領域(以下、対象領域ともいう)を、機械学習モデルの学習時に教師データとして使用されたサイズと同じサイズのブロックに分割してもよい。この処理を、フィルタリング処理という。フィルタリング処理について
図10を参照しながら具体的に説明する。
【0050】
図10は、フィルタリング処理の一例を示す図である。
図10の(a)に示されるように、検出装置10は、画像に映る検出対象(言い換えると、対象物1)を示す対象領域を抽出する。
【0051】
次に、
図10の(b)に示されるように、検出装置10は、画像において対象物1が映っていない領域(言い換えると、非対象領域)を塗りつぶすことにより、非対象領域を検出対象から除外する。
【0052】
次に、
図10の(c)に示されるように、検出装置10は、対象領域を、機械学習モデルの学習時に教師データとして使用されたブロックと同じサイズのブロックに分割する。
【0053】
次に、検出装置10は、ブロック分割された画像を(例えば、
図10の(c))を学習済みモデルに入力することにより、画像中の各ブロックにおいて楕円形状物を表す画素が黒く示された出力結果(例えば、
図10の(d))を得る。
【0054】
[効果等]
続いて、本実施の形態に係る検出システム100、検出装置10、検出方法及びプログラムの作用効果について説明する。
【0055】
上述したように、本実施の形態に係る検出方法は、楕円形状物を含む対象物の少なくとも一部が映る画像を取得し、取得された画像を、機械学習モデルの学習時に教師データに使用されたブロックのサイズと同じサイズのブロックでブロック分割し、ブロック分割された画像を、学習済みの機械学習モデルである学習済みモデルに入力することにより得られる、ブロックそれぞれにおける楕円形状物を表す画素の数に基づいて、対象物の異常箇所を検出し、異常箇所の検出において、学習済みモデルから出力された画素の数が第1閾値よりも多く、かつ、第2閾値よりも少ない場合、当該ブロックに対応する対象物の箇所が異常箇所ではないと判定し、学習済みモデルから出力された画素の数が第1閾値以下である場合、又は、第2閾値以上である場合、当該ブロックに対応する対象物の箇所が異常箇所であると判定する。
【0056】
このような検出方法を実行する装置は、学習済みモデルを用いて、対象物の少なくとも一部が映る画像をブロック分割した分割画像(いわゆる、ブロック)における複数の楕円形状物を表す画素を簡便にかつ精度良く検出することができる。そのため、検出方法を実行する装置は、楕円形状物を含む対象物の異常箇所を簡便にかつ精度良く検出することができる。
【0057】
また、本実施の形態に係る検出方法は、さらに、対象物において異常箇所が検出された場合、画像における異常箇所がマーキングされたマーキング画像を生成し、生成されたマーキング画像を判定結果として出力してもよい。
【0058】
このような検出方法を実行する装置は、ユーザに対象物の異常箇所を視認しやすい形で出力することができる。
【0059】
また、本実施の形態に係る検出方法は、ブロックの分割に先立ち、画像に映る対象物の少なくとも一部以外の領域を検出対象から除外し、画像において検出対象の領域を、機械学習モデルの学習時に教師データとして使用されたサイズと同じサイズのブロックに分割してもよい。
【0060】
このような検出方法を実行する装置は、対象物が映る領域のみ検出対象とするため、効率的に楕円形状物の検出処理を行うことができる。そのため、検出方法を実行する装置は、より効率良く対象物の異常箇所を検出することができる。
【0061】
また、本実施の形態に係る検出方法では、機械学習モデルは、畳み込みニューラルネットワークであってもよい。
【0062】
このような検出方法を実行する装置は、画像を入力とする畳み込み演算を効率良く行うことができる。
【0063】
また、本実施の形態に係る検出方法では、機械学習モデルの学習に使用される教師データは、対象物の少なくとも一部が映る第1画像をサイズに分割した複数の第1ブロックと、当該第1ブロックに含まれる複数の楕円形状物それぞれの領域を示すアノテーションとで構成された第1データと、第1画像において第1ブロックを超えない範囲で第1ブロックをずらして上記サイズに再分割した複数の第2ブロックと、当該第2ブロックに含まれる複数の楕円形状物それぞれの領域を示すアノテーションとで構成された第2データとを含んでもよい。
【0064】
このような検出方法を実行する装置は、少ない画像から多くの教師データを生成することができるため、機械学習モデルの学習効果が向上し、機械学習モデルによる楕円形状物の検出精度が向上する。そのため、検出方法を実行する装置は、対象物に含まれる楕円形上物をより簡便にかつ精度良く検出することができる。
【0065】
(他の実施の形態)
以上、本開示に係る検出方法及びプログラムについて、上記各実施の形態に基づいて説明したが、本開示は、これらの実施の形態に限定されるものではない。本開示の趣旨を逸脱しない限り、当業者が思い付く各種変形を実施の形態に施したものも、本開示の範囲に含まれてもよい。
【0066】
また、上記実施の形態に係る検出システム、検出装置、検出方法及びプログラムに含まれる各部は典型的に集積回路であるLSIとして実現される。これらは個別に1チップ化されてもよいし、一部又は全てを含むように1チップ化されてもよい。
【0067】
また、集積回路化はLSIに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。LSI製造後にプログラムすることが可能なFPGA(Field Programmable Gate Array)、又はLSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。
【0068】
なお、上記各実施の形態において、各構成要素は、専用のハードウェアで構成されるか、各構成要素に適したソフトウェアプログラムを実行することによって実現されてもよい。各構成要素は、CPU又はプロセッサ等のプログラム実行部が、ハードディスク又は半導体メモリ等の記憶媒体に記録されたソフトウェアプログラムを読み出して実行することによって実現されてもよい。
【0069】
また、上記で用いた数字は、全て本開示を具体的に説明するために例示するものであり、本開示の実施の形態は例示された数字に制限されない。
【0070】
また、ブロック図における機能ブロックの分割は一例であり、複数の機能ブロックを一つの機能ブロックとして実現したり、一つの機能ブロックを複数に分割したり、一部の機能を他の機能ブロックに移してもよい。また、類似する機能を有する複数の機能ブロックの機能を単一のハードウェア又はソフトウェアが並列又は時分割に処理してもよい。
【0071】
また、フローチャートにおける各ステップが実行される順序は、本開示を具体的に説明するために例示するためであり、上記以外の順序であってもよい。また、上記ステップの一部が、他のステップと同時(並列)に実行されてもよい。
【0072】
なお、上記の各実施の形態に対して当業者が思い付く各種変形を施して得られる形態や、本開示の趣旨を逸脱しない範囲で各実施の形態における構成要素及び機能を任意に組み合わせることで実現される形態も本開示に含まれる。
【実施例0073】
以下、実施例にて本開示に係る検出装置及び検出方法について具体的に説明するが、本開示は以下の実施例のみに何ら限定されるものではない。
【0074】
以下では、機械学習モデルとしてDeepCrack Networkを用いて、布製品の織目の異常箇所の検出を行った。異常箇所がない布製品の画像を使用した。
【0075】
布製品は、複数のたて糸と複数のよこ糸で構成されており、たて糸がよこ糸の上下に織られることにより、複数の織目が発現する。その織目の1つ1つが米粒状(いわゆる、楕円形状)に見える。これらの織目は布製品の表面に現れる。しかしながら、織りが崩れた場合、織目は平面視で米粒状にならない。例えば、(1)本来、たて糸がよこ糸の表側を通過すべきところを、裏側を通過した場合、その部分のたて糸は表面に現れず、織目が無い状態となる。また、(2)本来、たて糸がよこ糸の裏側を通過すべきところを、表側を通過した場合、本来織目のない部分に織目が表面に現れるため、織目が大きくなる。以下では、楕円形状物として織目を含む布製品を対象物として、比較例1及び実施例1における楕円形状物の検出精度を検証した。比較例2及び実施例2では、上記の布製品の異常箇所に対する楕円形状物の検出精度を検証した。
【0076】
(比較例1)
比較例1では、従来の方法で生成した教師データを用いて学習した機械学習モデルを使用した。比較例1の教師データは、布製品が映る画像(第1画像という)を所定のサイズのブロックで分割した複数のブロック(以下、第1ブロックという)と、当該第1ブロックに含まれる複数の織目それぞれの領域を示すアノテーションとで構成されたデータ(以下、第1データという)を含む。比較例1の検出方法で検出した結果を
図11に示す。
図11は、比較例1及び実施例1の結果を示す図である。
図11では、楕円形状物(ここでは、織目)を表す画素は黒色で示される。
図11に示されるように、比較例1では、黒色を示す画素がまばらであり、織目の検出精度はあまり良くなかった。
【0077】
(実施例1)
実施例1では、本開示の方法で生成した教師データを用いて学習した機械学習モデルを使用した。実施例1では、教師データを生成するために使用した画像は、比較例1と同じ画像を用いたが、教師データの生成方法が異なる。そのため、1つの画像から比較例1より多くの学習用画像データを生成することができた。実施例1の教師データは、布製品が映る画像(いわゆる、第1画像)を比較例1と同じサイズのブロックで分割した複数のブロック(いわゆる、第1ブロック)と、当該第1ブロックに含まれる複数の織目それぞれの領域を示すアノテーションとで構成された第1データと、第1画像において第1ブロックを超えない範囲で第1ブロックを縦横斜めのいずれかにずらして、比較例1と同じサイズに再分割した複数のブロック(これを第2ブロックという)と、当該第2ブロックに含まれる複数の網目それぞれの領域を示すアノテーションとで構成された第2データと、を含む。実施例1の検出方法で検出した結果を
図11に示す。
【0078】
図11に示されるように、黒色を示す画素が密に見られ、比較例1よりも織目の検出精度が向上したことが確認できた。
【0079】
(比較例2)
比較例2では、布製品の異常箇所を含む画像を機械学習モデルに入力して異常検出を行った点以外、比較例1と同様に行った。比較例2の検出方法で検出した結果を
図12に示す。
図12は、比較例2及び実施例2の結果を示す図である。
図12に示されるように、入力画像の左側には、糸が編み込まれずに布製品の表面に飛び出した異常箇所が含まれている。
図12では、
図11と同様に、楕円形状物(ここでは、織目)を表す画素は黒色で示される。
【0080】
図12に示されるように、比較例2では、糸が飛び出ている異常箇所に複数の織目が存在するかのように画素が黒色で示されている。つまり、比較例2では、糸が飛び出て織目が存在しない箇所に織目が存在すると誤検出している。その結果、総ピクセル数の変化が小さくなるため、入力画像に示される範囲に異常がないと判定される。
【0081】
(実施例2)
実施例2では、比較例2と同様に、布製品の異常箇所を含む画像を機械学習モデルに入力して異常検出を行った以外、実施例1と同様に行った。実施例2の検出方法で検出した結果を
図12に示す。
【0082】
図12に示されるように、実施例2では、糸が飛び出ている異常箇所において、飛び出た糸の形状に沿った形に画素が黒色で示されている。その結果、総ピクセル数の変化が大きくなるため、入力画像に示される範囲に異常があると判定される。
【0083】
(まとめ)
比較例1、2及び実施例1、2の結果から、本開示の方法で教師データを生成すると、1つの画像から生成される学習用画像データ(いわゆる、分割画像)のそれぞれが、第1ブロックを超えない範囲で第1ブロックを縦横斜めのいずれかにずらして第2ブロック、第3ブロック、第4ブロックなどを生成するため、第2ブロック、第3ブロック、及び第4ブロックのそれぞれが第1ブロックと重複する領域を有している。このように1つの画像(第1画像)に対して分割メッシュをずらして再分割して生成された分割画像を機械学習に使用することにより、容易により学習効果を高めることができ、結果的に、検出精度が向上することが確認できた。
本開示は、楕円形状物を簡便にかつ精度良く検出することができるため、例えば、楕円形状物を含む対象物の異常箇所を簡便に精度良く検出することができる。したがって、本開示は、食品、工業製品、又は、日用品などの様々な分野における製品の品質検査に利用可能である。