(57)【要約】【課題】物体検出につき、物体に応じて精度の高い学習済みモデルを選定できる方法等を提供する。【解決手段】画像の機械学習に係る学習済みモデルが選定される。各画像は３種類以上の物体を含む可能性がある。コンピュータ１０は、複数の学習用正解画像Ｉ５および複数の検証用正解画像Ｉ６を含む複数の正解用画像Ｉ３について、各物体を検出した正解データＡを取得し、物体の種類セットごとに種類セット別学習済みモデルＭ１〜Ｍ６を生成し、種類セットごとに検証用データＢ１〜Ｂ６を生成し、物体の種類ごとに、種類セット別学習済みモデルＭ１〜Ｍ６のうち検証用データＢ１〜Ｂ６の精度が最も高くなるものを選定する。【選択図】図９
2019219728.tif 000002
【特許請求の範囲】
【請求項１】
画像の機械学習に係る学習済みモデルを選定する方法であって、
各画像は３種類以上の物体を含む可能性があり、
コンピュータが、複数の学習用正解画像および複数の検証用正解画像を含む複数の正解用画像について、各物体を検出した正解データを取得するステップと、
コンピュータが、各前記学習用正解画像および前記正解データに基づき、互いに異なる複数の種類を含む種類セットについて、それぞれ種類セット別学習済みモデルを生成する、第１学習ステップと、
コンピュータが、前記種類セットのそれぞれについて、当該種類セットに係る前記種類セット別学習済みモデルに基づき、各前記検証用正解画像中の各物体を検出した検証用データを生成するステップと、
物体の各種類について、前記検証用正解画像に基づき、その種類を含む前記種類セットのうち前記検証用データの精度が最も高くなるものに基づき、物体の当該種類に対応する学習済みモデルを選定するステップと
を備える方法。
【請求項２】
各画像はｎ種類（ただしｎは３以上の整数）の物体を含む可能性があり、
前記第１学習ステップは、コンピュータが、ｎＣｍ個（ただしｍは２≦ｍ＜ｎとなる整数）の種類セットのそれぞれについて、各前記正解用画像と、前記正解データのうち当該種類セットに係る種類セット別正解データとに基づき、種類セット別学習済みモデルを生成するステップを含む、
請求項１に記載の方法。
【請求項３】
ｍ＝２である、請求項２に記載の方法。
【請求項４】
機械学習に用いられる訓練データを生成する方法であって、
請求項１〜３のいずれか一項に記載の方法を用いて、学習済みモデルを選定するステップと、
物体の各種類について、選定された前記学習済みモデルを用いて、その種類に係る種類別訓練データを生成する、生成ステップと、
前記種類別訓練データに基づいて機械学習に用いられる訓練データを生成するステップと
を備える請求項１〜３のいずれか一項に記載の方法。
【請求項５】
コンピュータが、複数の画像を複数のクラスタに分類するステップと、
コンピュータが、各クラスタから前記正解用画像を少なくとも１枚選択するステップと、
を備え、
前記生成ステップは、前記正解用画像でない前記画像に基づいて実行される、
請求項４に記載の方法。
【請求項６】
コンピュータが、画像に基づいて画像中の物体を検出するための学習済みモデルを生成する方法であって、
コンピュータが、請求項４または５に記載の方法を用いて前記訓練データを生成するステップと、
コンピュータが、前記訓練データに基づいて学習済みモデルを生成するステップと、
を備え、
前記訓練データは、画像に基づいて画像中の物体を検出するために用いられる学習済みモデルを生成するための機械学習に用いられる、
方法。
【請求項７】
請求項６に記載の方法を用い、前記訓練データに基づいて生成される学習済みモデルであって、画像に基づいて画像中の物体を検出するようコンピュータを機能させるための学習済みモデル。
【請求項８】
請求項１〜６のいずれか一項に記載の方法を実行するコンピュータ。
【請求項９】
コンピュータに請求項１〜６のいずれか一項に記載の方法を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、機械学習に係る学習済みモデルを選定する方法等に関する。
【背景技術】
【０００２】
画像に基づいて、画像中に現れる物体の位置および名称を特定する処理のことを物体検出と呼ぶ。物体検出処理には、機械学習によって生成された学習済みモデルを用いる場合がある。このような処理の例は特許文献１に記載される。
【０００３】
物体検出処理を適切に学習させるためには、画像中の物体の位置および名称を正しく特定する訓練データを大量に準備する必要がある。画像のどこに何があるかというデータを入力する処理を、アノテーション処理と呼ぶ。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１４−１３０５８３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従来の技術では、多数の物体に対する学習済みモデルを選定するとき、学習に用いることができる画像が少数しかない場合、学習済みモデルの精度を上げにくいという問題があった。
【０００６】
この発明は、このような問題点を解決するためになされたものであり、物体に応じて精度の高い学習済みモデルを選定できる方法等を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上述の問題点を解決するため、この発明に係る方法は、
画像の機械学習に係る学習済みモデルを選定する方法であって、
各画像は３種類以上の物体を含む可能性があり、
コンピュータが、複数の学習用正解画像および複数の検証用正解画像を含む複数の正解用画像について、各物体を検出した正解データを取得するステップと、
コンピュータが、各前記学習用正解画像および前記正解データに基づき、互いに異なる複数の種類を含む種類セットについて、それぞれ種類セット別学習済みモデルを生成する、第１学習ステップと、
コンピュータが、前記種類セットのそれぞれについて、当該種類セットに係る前記種類セット別学習済みモデルに基づき、各前記検証用正解画像中の各物体を検出した検証用データを生成するステップと、
物体の各種類について、前記検証用正解画像に基づき、その種類を含む前記種類セットのうち前記検証用データの精度が最も高くなるものに基づき、物体の当該種類に対応する学習済みモデルを選定するステップと
を備える。
特定の態様によれば、
各画像はｎ種類（ただしｎは３以上の整数）の物体を含む可能性があり、
前記第１学習ステップは、コンピュータが、ｎＣｍ個（ただしｍは２≦ｍ＜ｎとなる整数）の種類セットのそれぞれについて、各前記正解用画像と、前記正解データのうち当該種類セットに係る種類セット別正解データとに基づき、種類セット別学習済みモデルを生成するステップを含む。
特定の態様によれば、ｍ＝２である。
また、この発明に係る方法は、
機械学習に用いられる訓練データを生成する方法であって、
上述の方法を用いて、学習済みモデルを選定するステップと、
物体の各種類について、選定された前記学習済みモデルを用いて、その種類に係る種類別訓練データを生成する、生成ステップと、
前記種類別訓練データに基づいて機械学習に用いられる訓練データを生成するステップと
を備える。
特定の態様によれば、
コンピュータが、複数の画像を複数のクラスタに分類するステップと、
コンピュータが、各クラスタから前記正解用画像を少なくとも１枚選択するステップと、
を備え、
前記生成ステップは、前記正解用画像でない前記画像に基づいて実行される。
また、この発明に係る方法は、
コンピュータが、画像に基づいて画像中の物体を検出するための学習済みモデルを生成する方法であって、
コンピュータが、上述の方法を用いて前記訓練データを生成するステップと、
コンピュータが、前記訓練データに基づいて学習済みモデルを生成するステップと、
を備え、
前記訓練データは、画像に基づいて画像中の物体を検出するために用いられる学習済みモデルを生成するための機械学習に用いられる。
また、この発明に係る学習済みモデルは、上述の方法を用い、前記訓練データに基づいて生成される学習済みモデルであって、画像に基づいて画像中の物体を検出するようコンピュータを機能させる。
また、この発明に係るコンピュータは、上述の方法を実行する。
また、この発明に係るプログラムは、コンピュータに上述の方法を実行させる。
【発明の効果】
【０００８】
この発明に係る方法等によれば、一部の種類の物体のみに特化された種類セット別学習モデルを選択的に利用することができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施の形態１に係るコンピュータの構成の例を示す図である。
【図２】図１のコンピュータが処理する画像の例である。
【図３】図１のコンピュータが実行する処理の流れを説明するフローチャートである。
【図４】図１のコンピュータが図３の処理に関連して処理する画像の種類を示す図である。
【図５】実施の形態１に係る正解データの構成の例を示す図である。
【図６】実施の形態１に係る種類セットの例を示す図である。
【図７】正解データを図６の種類セットに分割する処理を説明する図である。
【図８】図３のステップＳ８の処理の概要を示す図である。
【図９】図３のステップＳ９の処理の概要を示す図である。
【図１０】図３のステップＳ１１の処理の概要を示す図である。
【図１１】図３のステップＳ１２およびＳ１３の処理の概要を示す図である。
【図１２】図３のステップＳ１４の処理の概要を示す図である。
【発明を実施するための形態】
【００１０】
以下、この発明の実施の形態を添付図面に基づいて説明する。
実施の形態１．
図１に、本発明の実施の形態１に係るコンピュータ１０の構成の例を示す。コンピュータ１０は、画像の機械学習に係る学習済みモデルを選定する装置として機能する。また、コンピュータ１０は、機械学習に用いられる訓練データを生成する方法を実行することにより、訓練データを生成する装置としても機能する。また、コンピュータ１０は、生成された訓練データを用いて学習済みモデルを生成する方法を実行することにより、学習済みモデルを生成する装置としても機能する。また、コンピュータ１０は、本明細書に記載される他の方法を実行する機能を備える。
【００１１】
図１に示すように、コンピュータ１０は公知のコンピュータとしての構成を有し、演算を行う演算手段１１と、情報を格納する記憶手段１２とを備える。演算手段１１はたとえばＣＰＵ（中央処理装置）を含み、記憶手段１２はたとえば半導体メモリおよびＨＤＤ（ハードディスクドライブ）を含む。
【００１２】
記憶手段１２はプログラム（図示せず）も格納しており、演算手段１１がこのプログラムを実行することによって、コンピュータ１０は本明細書に記載される機能を実現する。すなわち、このプログラムは、コンピュータ１０に本明細書に記載の方法を実行させるものである。
【００１３】
コンピュータ１０は、公知のコンピュータが通常備える他の構成要素を備えてもよい。たとえば、出力装置であるディスプレイおよびプリンタ、入力装置であるキーボードおよびマウス、通信ネットワークに対する入力装置と出力装置とを兼ねるネットワークインタフェース、等を備えてもよい。
【００１４】
図２に、コンピュータ１０が処理する画像の例を示す。画像は物体検出に用いられる。１枚の画像が複数種類の物体を含んでもよい。たとえば、各物体は、「ドライバー」、「ニッパー」、「レンチ」、「ハンマー」という４種類のいずれかに該当する。図２の例では４種類の物体が１つずつ現れている。
【００１５】
図２のような画像に基づく物体検出処理では、どのような種類の物体が画像中のどこに現れるかを特定する。画像データの表現形式はどのようなものであってもよいが、たとえばビットマップ形式であってもよく、他の形式であってもよい。すべての画像にすべての種類の物体が現れるとは限らず、また、１枚の画像に同じ種類の物体が複数現れる場合もある。
【００１６】
以上のような構成を備えるコンピュータ１０の動作を、図３〜図１２を用いて以下に説明する。
図３は、コンピュータ１０（より厳密には、演算手段１１）が実行する処理の流れを説明するフローチャートである。また、図４は、コンピュータ１０が図３の処理に関連して処理する画像の種類を示す図である。
【００１７】
図３の処理において、コンピュータ１０は、まず複数の画像Ｉ１を取得する（ステップＳ１）。本実施形態では画像Ｉ１として１０万枚の画像が用いられる。画像Ｉ１はたとえば図２のような内容を有し、３種類以上の物体を含む可能性がある。とくに本実施形態では、各画像Ｉ１は、「ドライバー」、「ニッパー」、「レンチ」、「ハンマー」という４種類の物体を含む可能性があり、各画像Ｉ１は、いずれの種類も含まない画像と、１種類のみの物体を含む画像と、２種類のみの物体を含む画像と、３種類のみの物体を含む画像と、４種類すべての物体を含む画像と、のいずれかに該当する。
【００１８】
次に、コンピュータ１０は、取得した画像Ｉ１をクラスタリングする（ステップＳ２）。たとえば、画像Ｉ１を１０００個のクラスタに分類する。この処理はどのようなアルゴリズムで行われてもよい。たとえば、各画像Ｉ１の特徴を抽出し、特徴が類似しているものを同じクラスタに分類するような公知の処理を用いることができる。公知の画像自動選択ツールを用いてもよい。たとえば、訓練済みの物体認識モデルに入力し、中間層から出力されるデータを特徴として用いてもよい。訓練済みの物体認識モデルは、公知のConvolutional Neural Networkを用いてもよく、より具体的にはＶＧＧ１６、Inception、ResNet等を用いてもよい。
【００１９】
次に、コンピュータ１０は、画像Ｉ１の各クラスタから少なくとも１枚のサンプル画像Ｉ２（第２画像）を選択する（ステップＳ３）。たとえば、各クラスタから一定数のサンプル画像Ｉ２を選択してもよい。本実施形態では、各クラスタから１枚ずつのサンプル画像Ｉ２が選択される。ここで、本実施形態では画像Ｉ１について１０００個のクラスタが形成されているので、合計１０００枚のサンプル画像Ｉ２が選択されることになる。
【００２０】
次に、コンピュータ１０は、サンプル画像Ｉ２をさらにクラスタリングする（ステップＳ４）。たとえば、サンプル画像Ｉ２を１００個のクラスタに分類する。この処理はどのようなアルゴリズムで行われてもよい。たとえば、各サンプル画像Ｉ２の特徴を抽出し、特徴が類似しているものを同じクラスタに分類するような公知の処理を用いることができる。公知の画像自動選択ツールまたは訓練済みの物体認識モデル等を用いてもよく、ステップＳ２と同一の処理を用いてもよい。
【００２１】
次に、コンピュータ１０は、サンプル画像Ｉ２の各クラスタから少なくとも１枚の正解用画像Ｉ３（第１画像）を選択する（ステップＳ５）。たとえば、各クラスタから同数の正解用画像Ｉ３を選択してもよい。本実施形態では、各クラスタから３枚ずつの正解用画像Ｉ３が選択される。サンプル画像Ｉ２のうち選択されなかったものは訓練データ用画像Ｉ４とする（後述）。本実施形態ではサンプル画像Ｉ２について１００個のクラスタが形成されているので、合計３００枚のサンプル画像Ｉ２が正解用画像Ｉ３となり、合計７００枚のサンプル画像Ｉ２が訓練データ用画像Ｉ４となることになる。
【００２２】
ここで、すべてのサンプル画像Ｉ２が正解用画像Ｉ３として選択されるクラスタがあってもよい（言い換えると、訓練データ用画像Ｉ４が残らないクラスタがあってもよい）が、全体で少なくとも１枚の訓練データ用画像Ｉ４が残されるように、正解用画像Ｉ３が選択される。
【００２３】
次に、コンピュータ１０は、正解用画像Ｉ３を一定の割合で、学習用正解画像Ｉ５（第３画像）と検証用正解画像Ｉ６（第４画像）に分割する。一定の割合とは、たとえば学習用画像Ｉ５が９０％、検証用画像Ｉ６が１０％であり、学習用正解画像Ｉ５の割合が検証用正解画像Ｉ６の割合より大きくなれば別の割合でもかまわない。本実施の形態では、９０％を学習用正解画像Ｉ５に、１０％を検証用正解画像Ｉ６に分割するとし、すなわち３００枚の正解用画像Ｉ３を２７０枚の学習用正解画像Ｉ５と３０枚の検証用正解画像Ｉ６に分割したとして説明する。
【００２４】
次に、コンピュータ１０は、各正解用画像Ｉ３（すなわち各学習用正解画像Ｉ５および各検証用正解画像Ｉ６）について、各物体を検出した正解データを取得する（ステップＳ６）。
図５に、正解データＡの構成の例を示す。正解データは、画像と、０個以上の物体の種類および位置を表す情報とを関連付けるデータである（１個以上の物体に係るデータのみに限定してもよい）。図５の例では、「００１」という番号により特定される画像が、ドライバー、レンチおよびハンマーを１つずつ含んでいるということが示されている。各物体の位置は、たとえば矩形の枠によって表され、枠の左上頂点のｘ座標（ｘ）と、枠の左上頂点のｙ座標（ｙ）と、枠の横幅（ｗ）と、枠の縦幅（ｈ）とによって表される。同じ種類の物体が複数含まれていてもよく、その場合にはたとえば同じ種類で位置のみ異なるデータを繰り返して表現することが可能である。
【００２５】
コンピュータ１０は、このような正解データＡをどのような方法で取得してもよいが、たとえば、手動アノテーション用プログラム（アノテーションアプリ）を実行することによって正解データＡが出力されてもよい。
【００２６】
アノテーションアプリは、たとえば、画像を表示し、画像内に表示されている物体の種類を入力する手段（ラジオボタン等）と、その物体の位置を入力する手段（画像に重畳して表示されドラッグ操作によって変形可能な矩形等）と、決定手段（表示されている種類および位置を正解データとして決定するためのボタン等）とを備えてもよい。
【００２７】
次に、コンピュータ１０は、正解データＡを物体の種類セット単位に分割する（ステップＳ７）。
図６および図７を用いて、種類セットへの分割処理を説明する。種類セットは、それぞれ複数（ただし全種類の数未満）の種類を含む集合である。本実施形態のように４種類の物体を用いる場合には、４種類未満の種類セットに分割することができる。図６および図７は、２種類の種類セットに分割した場合の例である。
【００２８】
この例では、各種類セットは２つの種類の組に対応するので、種類セットの数は、４Ｃ２＝６通りとなる。とくに、本実施形態では、「ドライバー」と「ニッパー」とを含む種類セット（以下「ドライバー＆ニッパー」のように略記）と、「ドライバー＆レンチ」と、「ドライバー＆ハンマー」と、「ニッパー＆レンチ」と、「ニッパー＆ハンマー」と、「レンチ＆ハンマー」との、合計６通りの種類セットが定義可能である。このように、各種類セットに含まれる種類の組み合わせは、互いに異なる。
【００２９】
図７に示すように、正解データＡが種類セット単位に分割されて種類セット別正解データＡ１〜Ａ６となる。各種類セット別正解データは、正解データＡのうち、その種類セット別正解データに係る種類の物体に係る情報のみを含む。たとえば、画像「００１」について、元の正解データＡは「ドライバー」「レンチ」「ハンマー」の情報を含むが、「ドライバー＆ニッパー」に係る種類セット別正解データＡ１は、これらのうちレンチおよびハンマーに係る情報を含まない。
【００３０】
次に、コンピュータ１０は、学習用正解画像Ｉ５および種類セット別正解データＡ１〜Ａ６に基づき、各種類セットについて機械学習を実行し、それぞれ種類セット別学習済みモデルを生成する（ステップＳ８、第１学習ステップ）。
【００３１】
図８に、ステップＳ８の処理の概要を示す。たとえば、２７０枚の学習用正解画像Ｉ５について、「ドライバー＆レンチ」に係る種類セット別正解データＡ２を用いて機械学習が実行され、「ドライバー＆レンチ」に係る種類セット別学習済みモデルＭ２が生成される。この種類セット別学習済みモデルＭ２は、画像中に現れるドライバーおよびレンチを検出してその位置を特定することができるが、ハンマーおよびニッパーに対しては反応しないということができる。このように、種類セットごとに、異なる組み合わせの種類の物体を検出するために用いられる種類セット別学習済みモデルが生成される。
【００３２】
種類セット別学習済みモデルは、画像に基づいて画像中の物体を検出するためのモデルである。すなわち、画像を入力として受け付け、画像に含まれる物体の種類および位置を特定して出力するためのモデルである。
【００３３】
具体的な学習方法および学習済みモデルの形式は任意に設計可能であるが、たとえば公知のＳＳＤ（Single Shot Multibox Detector)を用いることができる。また、学習を実行する際には、各種類セット別正解データについて必ずしもすべての正解用画像Ｉ３を用いるのではなく、対応する種類セットのいずれかが現れている正解用画像Ｉ３のみを用いてもよい（たとえば、「ドライバー＆ニッパー」に係る種類セット別正解データＡ１を用いる場合には、ドライバーもニッパーも現れない正解用画像Ｉ３については学習対象から除外してもよい）。
【００３４】
なお、ステップＳ７を考慮すると、種類セット別正解データＡ１〜Ａ６は全体で正解データＡと同等の情報を含むので、種類セット別学習済みモデルの生成は、正解データＡ全体に基づいて行われると表現することも可能である。
【００３５】
次に、コンピュータ１０は、種類セットのそれぞれについて、当該種類セットに係る種類セット別学習済みモデルに基づき、各正解用画像Ｉ３中の各物体を検出した検証用データを生成する（ステップＳ９）。
【００３６】
図９に、ステップＳ９の処理の概要を示す。たとえば「ドライバー＆ニッパー」という種類セットについて、種類セット別学習済みモデルＭ１に、３０枚の検証用正解画像Ｉ６を入力することにより、検証用データＢ１が出力される。検証用データＢ１は、画像と、０個以上の物体の種類および位置を表す情報とを関連付けるデータである。検証用データＢ１は、たとえば正解データＡと同一の形式で表現することができる。同様にして、たとえば種類セット別学習済みモデルＭ２に基づいて検証用データＢ２が生成され、種類セット別学習済みモデルＭ３に基づいて検証用データＢ３が生成される。
【００３７】
次に、コンピュータ１０は、各検証用データの精度を決定する（ステップＳ１０）。精度は、たとえば、各検証用データが、それぞれ対応する種類セット別正解データをどの程度よく再現できているかを表す情報であり、公知の基準等を用いて決定可能である。
【００３８】
次に、コンピュータ１０は、物体の種類ごとに、精度の高い種類セット別学習済みモデルを選定する（ステップＳ１１）。この選定は、物体の各種類について、検証用正解画像Ｉ６に基づき、その種類を含む種類セットのうち検証用データＢ１〜Ｂ６の精度が最も高くなるものに基づき、物体の当該種類に対応する学習済みモデルを選定するよう実行される。
【００３９】
図１０に、ステップＳ１１の処理の概要を示す。各種類セット別学習済みモデルの精度が図示の通りであった場合、ドライバーに注目すると、ドライバーを含む種類セット別学習済みモデルは種類セット別学習済みモデルＭ１〜Ｍ３の３つであり、このうちで最も精度が高いものは種類セット別学習済みモデルＭ２である。したがって、コンピュータ１０は、ドライバーについては種類セット別学習済みモデルＭ２を選定する。同様の処理が、ニッパー、レンチおよびハンマーについても行われる。
【００４０】
次に、コンピュータ１０は、種類ごとに精度の高い種類セット別学習済みモデルを用い、訓練データ用画像Ｉ４に基づいて種類別訓練データを生成する（ステップＳ１２、生成ステップ）。
【００４１】
図１１に、ステップＳ１２（および後述のステップＳ１３）の処理の概要を示す。たとえばドライバーについて、最も精度の高い種類セット別学習済みモデルは、「ドライバー＆レンチ」に係る種類セット別学習済みモデルＭ２である。この種類セット別学習済みモデルＭ２に、７００枚の訓練データ用画像Ｉ４を入力することにより、ドライバーに係る種類別訓練データＴＡが出力される。
【００４２】
同様にして、ニッパーについて、最も精度の高い種類セット別学習済みモデル（たとえば種類セット別学習済みモデルＭ５）を用いて種類別訓練データＴＢが生成され、レンチについて、最も精度の高い種類セット別学習済みモデル（たとえば種類セット別学習済みモデルＭ６）を用いて種類別訓練データＴＣが生成され、ハンマーについて、最も精度の高い種類セット別学習済みモデル（たとえば種類セット別学習済みモデルＭ６）を用いて種類別訓練データＴＣが生成される。なお、図１１の例ではレンチおよびハンマーについて最も精度の高い種類セット別学習済みモデルが同一であるので、これらについては１回の処理で並行して種類別訓練データＴＣを生成することも可能である。
【００４３】
種類別訓練データＴＡ〜ＴＣは、画像と、０個以上の物体の種類および位置を表す情報とを関連付けるデータである（１個以上の物体に係るデータのみに限定してもよい）。種類別訓練データＴＡ〜ＴＣは、たとえば正解データＡまたは検証用データＢ１〜Ｂ６と同一の形式で表現することができる。
【００４４】
本実施形態では、各種類別訓練データＴＡ〜ＴＣは、最も精度が高い種類以外の種類についてのデータも含む。たとえば、種類セット別学習済みモデルＭ２はドライバーのみならずレンチについてのデータも含んでいるので、種類別訓練データＴＡもドライバーおよびレンチについてのデータを含むことになる。
【００４５】
このように、ステップＳ１２では、物体の各種類について、訓練データ用画像Ｉ４に基づき、その種類を含む種類セットのうち検証用データＢ１〜Ｂ６の精度が最も高くなるものを用いて、その種類に係る種類別訓練データＴＡ〜ＴＣが生成される。
【００４６】
次に、コンピュータ１０は、種類別訓練データＴＡ〜ＴＣに基づいて訓練データＴを生成する（ステップＳ１３）。たとえば、種類別訓練データＴＡ〜ＴＣをマージすることにより訓練データＴを生成する。すなわち、同一の画像について、検出された各物体に係るデータがまとめられて１組のデータとなる。訓練データＴは、画像と、０個以上の物体の種類および位置を表す情報とを関連付けるデータである（１個以上の物体に係るデータのみに限定してもよい）。検証用データＢ１は、たとえば正解データＡ、検証用データＢ１〜Ｂ６、種類別訓練データＴＡ〜ＴＣ、等と同一の形式で表現することができる。
【００４７】
マージの具体的処理は適宜設計可能である。たとえば、マージの際に、最も精度が高い種類に係るデータのみを用いてもよい。図１１の例では、レンチについて、ドライバーに係る種類別訓練データＴＡに含まれる部分は無視し（図１１では二重取り消し線で示す）、レンチに係る種類別訓練データＴＣに含まれる部分のみを訓練データＴに含めてもよい。
【００４８】
または、マージの際に、最も精度が高い種類に係るデータを優先してもよい。たとえば、レンチについて、ある訓練データ用画像Ｉ４についてレンチに係る種類別訓練データＴＣにレンチの検出結果が含まれている場合には、その訓練データ用画像Ｉ４についての他の種類別訓練データＴＡまたはＴＢに含まれるレンチの検出結果を無視し、レンチに係る種類別訓練データＴＣにレンチの検出結果が含まれていない場合には、その訓練データ用画像Ｉ４についての他の種類別訓練データＴＡまたはＴＢに含まれるレンチの検出結果を訓練データＴに含めてもよい。
【００４９】
このようにして、７００枚の訓練データ用画像Ｉ４に対応する訓練データＴが生成される。訓練データＴの生成は、アノテーション処理が行われることなく自動的に行われるので、手動で行う場合に比較してコストが節約できる。
【００５０】
また、一部の種類の物体のみに特化された種類セット別学習モデルを複数生成し、最も精度が高いものを選択的に利用して訓練データを生成するので、訓練データＴの精度が高くなる。とくに、多種類（たとえば４種類）の物体を同時に検出するモデルを利用する場合や、単一種類の物体のみを検出するモデルを４種類組み合わせて利用する場合と比較すると、本実施形態ではより相性の良い種類の組み合わせに特化したモデルを用いているので、全体的に精度が向上する。ここで、「相性の良い種類の組み合わせ」とは、たとえば、互いに形状が類似いることまたは類似していないことにより、一方が検出されることまたはされないことにより、他方の検出に良い影響を与えるような組み合わせということができる。
【００５１】
説明のための仮想的具体例として、「猫」「虎」および「車」を含む多種類の物体検出を行う場合を考える。「猫＆車」という種類セットでは、猫と車との類似度の低さから、全体の精度が向上する場合がある。一方、「猫＆虎」という種類セットでは、猫と虎との類似度の高さから、全体の精度が低下する場合がある。このような場合には、「猫」の種類別訓練データの生成に「猫＆車」を用いることにより、精度の高い訓練データを生成することができる。
【００５２】
本実施形態では、各種類セットが２種類の物体しか含まないので、少量の正解データＡで検証用データＢ１〜Ｂ６の精度が高くなりやすく、また学習処理に要する時間も短い。また、とくに物体の種類が多い場合には、各種類セットを２種類にしておくと種類セットの数（組み合わせの数ｎＣｍ）も少なくなるので、組み合わせ爆発を回避して全体の処理を簡素にすることができる。
【００５３】
次に、コンピュータ１０は、正解データＡおよび訓練データＴに基づいて全種類学習済みモデルＭを生成する（ステップＳ１４）。
図１２に、ステップＳ１４の処理の概要を示す。たとえば、１０００枚のサンプル画像Ｉ２について、正解データＡおよび訓練データＴを用いて機械学習が実行される（より厳密には、サンプル画像Ｉ２のうち正解用画像Ｉ３については正解データＡが用いられ、サンプル画像Ｉ２のうち訓練データ用画像Ｉ４については訓練データＴが用いられる）。これによって全種類学習済みモデルＭが生成される。
【００５４】
全種類学習済みモデルＭは、種類セット別学習済みモデルＭ１〜Ｍ６と同様に、画像に基づいて画像中の物体を検出するためのモデルである。なお、全種類学習済みモデルＭは、種類セット別学習済みモデルＭ１〜Ｍ６とは異なり、すべての種類について処理を行うことができる。
【００５５】
具体的な学習方法および学習済みモデルの形式は任意に設計可能であるが、たとえば公知のＲＣＮＮ（Residual Convolutional Neural Network: Faster R-CNN; https://arxiv.org/abs/1506.01497）、ＳＳＤ（Single Shot MultiBox Detector; https://arxiv.org/abs/1512.02325）、Ｙｏｌｏ（You Only Look Once; https://pjreddie.com/darknet/yolo/）、等を用いることができる。
ステップＳ８における、第１学習ステップについても同様である。
【００５６】
全種類学習済みモデルＭは、画像を入力として受け付け、画像に含まれる物体の種類および位置を特定して出力するためのモデルである。すなわち、全種類学習済みモデルＭは、画像に基づいて画像中の物体を検出するようコンピュータを機能させるための学習済みモデルであるということができる。
【００５７】
なお図３の処理において、画像Ｉ１をクラスタリングした後（ステップＳ２）、各クラスタから一定数のサンプル画像Ｉ２を選択する（ステップＳ３）のは、それぞれの類似度が低いサンプル画像Ｉ２を得るためである。また訓練データ用画像Ｉ４のクラスタは、正解用画像Ｉ３のクラスタに含まれるので、学習の効果が期待できる。
【００５８】
上述の実施の形態１において、次のような変形を施すことができる。
物体の種類の数と、各種類セットに含まれる種類の数とは、任意に変更可能である。たとえば、各画像はｎ種類（ただしｎは３以上の整数。実施の形態１ではｎ＝４）の物体を含む可能性があり、各種類セットはｍ種類（ただしｍは２≦ｍ＜ｎとなる整数。実施の形態１ではｍ＝２）の物体に係るものとなる可能性がある。
【００５９】
その場合には、たとえばコンピュータ１０は、ｎＣｍ個の種類セットのそれぞれについて、各正解用画像Ｉ３と、正解データＡのうち当該種類セットに係る種類セット別正解データとに基づいて、種類セット別学習済みモデルを生成することになる。
【００６０】
また、種類セット別学習済みモデルは、必ずしもｎＣｍ個生成されなくともよい。少なくとも２つの種類セット別学習済みモデルが生成されれば、その部分については本発明の効果を得ることができる。すなわち、少なくとも、第１種類セット別学習済みモデルが、各正解用画像Ｉ３と、第１種類セットに係る種類セット別正解データとに基づいて生成され、第２種類セット別学習済みモデルが、各正解用画像Ｉ３と、第２種類セットに係る種類セット別正解データとに基づいて生成されればよい。ただし、第１種類セットと第２種類セットとは、少なくとも１種類が共通し、かつ、少なくとも１種類が異なる。
【００６１】
実施の形態１では、ステップＳ１４において正解用画像Ｉ３および訓練データ用画像Ｉ４をすべて用いたが、これらのうち一部のみを用いてもよい。また、正解用画像Ｉ３および正解データＡを用いず、訓練データ用画像Ｉ４および訓練データＴのみを用いても実行可能である。
【００６２】
実施の形態１では、ステップＳ６で取得した正解データＡをステップＳ７で種類セット別正解データＡ１〜Ａ６に分割したが、ステップＳ６において正解データとして種類セット別正解データＡ１〜Ａ６を取得してもよい（その場合にはステップＳ７は省略してもよい）。
【００６３】
実施の形態１ではコンピュータ１０がすべてのステップを実行したが、各ステップはそれぞれ異なるコンピュータによって実行されてもよい。たとえば、第１のコンピュータがステップＳ１〜Ｓ１３を実行して訓練データＴを生成し、第２のコンピュータが訓練データＴに基づいて全種類学習済みモデルＭを生成してもよい。
【００６４】
実施の形態１では、訓練データＴは、画像に基づいて画像中の物体を検出するために用いられる学習済みモデルを生成するための機械学習に用いられるが、訓練データＴは他の用途に用いてもよい。
【符号の説明】
【００６５】
１０  コンピュータ、Ｉ１  画像、Ｉ２  サンプル画像（第２画像）、Ｉ３  正解用画像（第１画像）、Ａ  正解データ、Ａ１〜Ａ６  種類セット別正解データ（正解データ）、Ｂ１〜Ｂ６  検証用データ、Ｔ  訓練データ、ＴＡ〜ＴＣ  各種類別訓練データ、Ｍ  学習済みモデル、Ｍ１〜Ｍ６  種類セット別モデル、Ｓ８  第１学習ステップ、Ｓ１２  生成ステップ。
【図１】
2019219728.tif 000003
【図２】
2019219728.tif 000004
【図３】
2019219728.tif 000005
【図４】
2019219728.tif 000006
【図５】
2019219728.tif 000007
【図６】
2019219728.tif 000008
【図７】
2019219728.tif 000009
【図８】
2019219728.tif 000010
【図９】
2019219728.tif 000011
【図１０】
2019219728.tif 000012
【図１１】
2019219728.tif 000013
【図１２】
2019219728.tif 000014
【手続補正書】
【提出日】令和1年9月19日(2019.9.19)
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００７
【補正方法】変更
【補正の内容】
【０００７】
上述の問題点を解決するため、この発明に係る方法は、
画像の機械学習に係る学習済みモデルを選定する方法であって、
各画像は３種類以上の物体を含む可能性があり、
コンピュータが、複数の学習用正解画像および複数の検証用正解画像を含む複数の正解用画像について、各物体を検出した正解データを取得するステップと、
コンピュータが、各前記学習用正解画像および前記正解データに基づき、互いに異なる複数の種類を含む種類セットについて、それぞれ種類セット別学習済みモデルを生成する、第１学習ステップと、
コンピュータが、前記種類セットのそれぞれについて、当該種類セットに係る前記種類セット別学習済みモデルに基づき、各前記検証用正解画像中の各物体を検出した検証用データを生成するステップと、
物体の各種類について、前記検証用正解画像に基づき、その種類を含む前記種類セットのうち前記検証用データの精度が最も高くなるものに基づき、物体の当該種類に対応する学習済みモデルを選定するステップと
を備える。
特定の態様によれば、
各画像はｎ種類（ただしｎは３以上の整数）の物体を含む可能性があり、
前記第１学習ステップは、コンピュータが、ｎＣｍ個（ただしｍは２≦ｍ＜ｎとなる整数）の種類セットのそれぞれについて、各前記正解用画像と、前記正解データのうち当該種類セットに係る種類セット別正解データとに基づき、種類セット別学習済みモデルを生成するステップを含む。
特定の態様によれば、ｍ＝２である。
また、この発明に係る方法は、
機械学習に用いられる訓練データを生成する方法であって、
上述の方法を用いて、学習済みモデルを選定するステップと、
物体の各種類について、選定された前記学習済みモデルを用いて、その種類に係る種類別訓練データを生成する、生成ステップと、
前記種類別訓練データに基づいて機械学習に用いられる訓練データを生成するステップと
を備える。
特定の態様によれば、
コンピュータが、複数の画像を複数のクラスタに分類するステップと、
コンピュータが、各クラスタから前記正解用画像を少なくとも１枚選択するステップと、
を備え、
前記生成ステップは、前記正解用画像でない前記画像に基づいて実行される。
また、この発明に係る方法は、
コンピュータが、画像に基づいて画像中の物体を検出するための学習済みモデルを生成する方法であって、
コンピュータが、上述の方法を用いて前記訓練データを生成するステップと、
コンピュータが、前記訓練データに基づいて学習済みモデルを生成するステップと、
を備え、
前記訓練データは、画像に基づいて画像中の物体を検出するために用いられる学習済みモデルを生成するための機械学習に用いられる。
また、この発明に係るコンピュータは、上述の方法を実行する。
また、この発明に係るプログラムは、コンピュータに上述の方法を実行させる。
【手続補正３】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
画像の機械学習に係る学習済みモデルを選定する方法であって、
各画像は３種類以上の物体を含む可能性があり、
コンピュータが、複数の学習用正解画像および複数の検証用正解画像を含む複数の正解用画像について、各物体を検出した正解データを取得するステップと、
コンピュータが、各前記学習用正解画像および前記正解データに基づき、互いに異なる複数の種類を含む種類セットについて、それぞれ種類セット別学習済みモデルを生成する、第１学習ステップと、
コンピュータが、前記種類セットのそれぞれについて、当該種類セットに係る前記種類セット別学習済みモデルに基づき、各前記検証用正解画像中の各物体を検出した検証用データを生成するステップと、
物体の各種類について、前記検証用正解画像に基づき、その種類を含む前記種類セットのうち前記検証用データの精度が最も高くなるものに基づき、物体の当該種類に対応する学習済みモデルを選定するステップと
を備える方法。
【請求項２】
各画像はｎ種類（ただしｎは３以上の整数）の物体を含む可能性があり、
前記第１学習ステップは、コンピュータが、ｎＣｍ個（ただしｍは２≦ｍ＜ｎとなる整数）の種類セットのそれぞれについて、各前記正解用画像と、前記正解データのうち当該種類セットに係る種類セット別正解データとに基づき、種類セット別学習済みモデルを生成するステップを含む、
請求項１に記載の方法。
【請求項３】
ｍ＝２である、請求項２に記載の方法。
【請求項４】
機械学習に用いられる訓練データを生成する方法であって、
請求項１〜３のいずれか一項に記載の方法を用いて、学習済みモデルを選定するステップと、
物体の各種類について、選定された前記学習済みモデルを用いて、その種類に係る種類別訓練データを生成する、生成ステップと、
前記種類別訓練データに基づいて機械学習に用いられる訓練データを生成するステップと
を備える請求項１〜３のいずれか一項に記載の方法。
【請求項５】
コンピュータが、複数の画像を複数のクラスタに分類するステップと、
コンピュータが、各クラスタから前記正解用画像を少なくとも１枚選択するステップと、
を備え、
前記生成ステップは、前記正解用画像でない前記画像に基づいて実行される、
請求項４に記載の方法。
【請求項６】
コンピュータが、画像に基づいて画像中の物体を検出するための学習済みモデルを生成する方法であって、
コンピュータが、請求項４または５に記載の方法を用いて前記訓練データを生成するステップと、
コンピュータが、前記訓練データに基づいて学習済みモデルを生成するステップと、
を備え、
前記訓練データは、画像に基づいて画像中の物体を検出するために用いられる学習済みモデルを生成するための機械学習に用いられる、
方法。
【請求項７】
請求項１〜６のいずれか一項に記載の方法を実行するコンピュータ。
【請求項８】
コンピュータに請求項１〜６のいずれか一項に記載の方法を実行させるプログラム。