(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024077442
(43)【公開日】2024-06-07
(54)【発明の名称】対象検出プログラム、装置、及び機械学習モデル生成方法
(51)【国際特許分類】
G06N 20/00 20190101AFI20240531BHJP
G06T 7/60 20170101ALI20240531BHJP
G06V 10/26 20220101ALI20240531BHJP
G06V 10/22 20220101ALI20240531BHJP
G06V 10/82 20220101ALI20240531BHJP
G06T 7/00 20170101ALI20240531BHJP
【FI】
G06N20/00
G06T7/60 200
G06V10/26
G06V10/22
G06V10/82
G06T7/00 350C
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2022189541
(22)【出願日】2022-11-28
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110001519
【氏名又は名称】弁理士法人太陽国際特許事務所
(72)【発明者】
【氏名】山田 萌
【テーマコード(参考)】
5L096
【Fターム(参考)】
5L096BA05
5L096EA35
5L096FA69
5L096FA72
5L096HA08
5L096JA05
5L096JA11
5L096JA16
5L096KA04
(57)【要約】
【課題】対象の検出精度劣化を低減する。
【解決手段】第1の対象を含む画像内の領域を特定するモジュール322Cを含み、画像に第1の対象がラベル付けされた訓練データに基づいて訓練された第1の機械学習モデルのモジュール322Cを取得し、第2の対象を含む画像内の領域を特定するモジュール322Aと、特定された領域の画像内の位置を判定するデコーダ323とを含み、画像内の第2の対象の位置情報がラベル付けされた訓練データに基づいて訓練された対象検出器のデコーダ323とモジュール322Cとを組み合わせて対象検出器36を生成し、画像を対象検出器36に入力することによって、対象の検出結果を出力する。
【選択図】
図6
【特許請求の範囲】
【請求項1】
第1の対象を含む画像内の領域を特定する第1の機械学習モデル部分を含み画像に前記第1の対象がラベル付けされた訓練データに基づいて訓練された第1の機械学習モデルの前記第1の機械学習モデル部分を取得し、
第2の対象を含む画像内の領域を特定する第2の機械学習モデル部分と、特定された領域の画像内の位置を判定する第3の機械学習モデル部分とを含み画像内の前記第2の対象の位置情報がラベル付けされた訓練データに基づいて訓練された第2の機械学習モデルの前記第3の機械学習モデル部分と前記第1の機械学習モデル部分とを組み合わせて第3の機械学習モデルを生成し、
画像を前記第3の機械学習モデルに入力することによって、対象の検出結果を出力する、
処理をコンピュータに実行させることを特徴とする対象検出プログラム。
【請求項2】
前記画像に前記第1の対象がラベル付けされた訓練データには、前記第1の対象の位置情報がラベル付けされていない、
請求項1に記載の対象検出プログラム。
【請求項3】
前記対象の検出結果を出力する処理は、前記第1の機械学習モデル部分により特定された画像内の領域に基づいて、前記第3の機械学習モデル部分により判定された前記画像内の位置と、前記領域が前記第1の対象であることを示す情報とを出力することを含む、
請求項1又は請求項2に記載の対象検出プログラム。
【請求項4】
前記第1の機械学習モデル部分により、前記第1の対象を含む画像内の領域を特定する処理は、画像を圧縮した特徴行列の各要素が示す特徴と、前記第1の機械学習モデル部分が示す特徴との類似度を前記各要素に反映させることにより、前記特徴行列に情報を付与することを含み、
前記第3の機械学習モデルにより、前記特定された領域の画像内の位置を判定する処理は、前記類似度が前記各要素に反映された前記特徴行列のうち、値が所定の条件を満たす要素に対応する前記画像の座標を算出することを含む、
請求項3に記載の対象検出プログラム。
【請求項5】
前記第1の機械学習モデル部分と、前記第2の機械学習モデル部分とを並列に組み合わせた機械学習モデル部分群と、前記第3の機械学習モデル部分と組み合わせて第4の機械学習モデルを生成し、
前記対象の検出結果として、前記第1の対象及び前記第2の対象についての検出結果を出力する、
請求項1又は請求項2に記載の対象検出プログラム。
【請求項6】
前記第1の機械学習モデル部分と、前記第2の機械学習モデル部分とを直列に組み合わせた機械学習モデル部分群と、前記第3の機械学習モデル部分と組み合わせて第4の機械学習モデルを生成し、
前記対象の検出結果として、前記第1の対象の特徴と、前記第2の対象の特徴とを組み合わせた特徴を有する対象についての検出結果を出力する、
請求項1又は請求項2に記載の対象検出プログラム。
【請求項7】
第1の対象を含む画像内の領域を特定する第1の機械学習モデル部分を含み画像に前記第1の対象がラベル付けされた訓練データに基づいて訓練された第1の機械学習モデルの前記第1の機械学習モデル部分を取得し、
第2の対象を含む画像内の領域を特定する第2の機械学習モデル部分と、特定された領域の画像内の位置を判定する第3の機械学習モデル部分とを含み画像内の前記第2の対象の位置情報がラベル付けされた訓練データに基づいて訓練された第2の機械学習モデルの前記第3の機械学習モデル部分と前記第1の機械学習モデル部分とを組み合わせて第3の機械学習モデルを生成し、
画像を前記第3の機械学習モデルに入力することによって、対象の検出結果を出力する、
処理を実行する制御部を含むことを特徴とする対象検出装置。
【請求項8】
それぞれが特定の対象が含まれる画像内の領域を特定する複数の機械学習モデル部分から一又は複数の機械学習モデル部分を選択し、
前記一又は複数の機械学習モデルと、特定された領域の画像内の位置を判定する機械学習部分とを組み合わせることによって、画像から対象を検出する機械学習モデルを生成する、
処理をコンピュータが実行することを特徴とする機械学習モデル生成方法。
【発明の詳細な説明】
【技術分野】
【0001】
開示の技術は、対象検出プログラム、対象検出装置、及び機械学習モデル生成方法に関する。
【背景技術】
【0002】
入力として与えられた画像中に存在する物体等の対象の位置及びカテゴリを推定するためにニューラルネットワークが広く用いられている。例えば、推論時における高解像度画像内の物体検出を改善するための方法が提案されている。この方法は、1つ又は複数のプロセッサが高解像度画像を受け取り、受け取った画像を、画像の階層的に組織化されたレイヤに分解する。各レイヤは、受け取った画像の少なくとも1つの画像タイルを含み、画像タイルの各々は、ベースライン画像認識アルゴリズムに適する対応する解像度を有する。また、この方法は、1つ又は複数のプロセッサが、各レイヤの画像タイルの各々にベースライン・アルゴリズムを適用した結果の結果集約を実行する。
【0003】
また、例えば、ロボットアクションへの修正を判定及び利用するための装置が提案されている。この装置は、ロボットによって実行されたアクションの人間の修正を判定することに応じて、ロボットの局所的特徴モデルを更新する。局所的特徴モデルは、対応するニューラルネットワークモデルの上で生成された埋め込みに基づいて、生成された埋め込みに最も類似する1つ以上の特徴を判定するために使用される。
【0004】
また、例えば、特定のカテゴリに属するオブジェクトの位置を判定する画像処理システムが提案されている。このシステムは、画像又はビデオセグメント内のオブジェクトを識別するために、オブジェクトを含む画像の1つ又は複数の領域を識別する。また、このシステムは、ディープラーニングベースのオブジェクト検出フレームワーク、及び様々なオブジェクトカテゴリ間に存在する相関をモデル化する類似オブジェクト検索フレームワークを利用する。そして、このシステムは、カテゴリの階層ツリーを使用して検出された各オブジェクトのカテゴリを判定し、様々なオブジェクトカテゴリ間の視覚的な類似性を学習する。階層ツリーは、オブジェクトカテゴリ間の相関を使用しないオブジェクト検出器のエラーを分析することにより推定される。
【0005】
また、例えば、広範囲に及ぶトレーニング、大量のコンピューティング資源、又は大規模なデータ記憶部なしで、配備後の高速学習を行う生涯ディープニューラルネットワーク(L-DNN)技術が提案されている。L-DNN技術では、予め学習した特徴を忘れることなく、新しい特徴を迅速に学習するように、高速学習サブシステム(モジュールB)を伴い、表現豊富なDNNに基づくサブシステム(モジュールA)を使用する。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2022-90633号公報
【特許文献2】特開2022-19721号公報
【特許文献3】特開2021-128797号公報
【特許文献4】特表2020-520007号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、画像から対象を検出する機械学習モデルに対して、新たな対象を検出できるように再訓練を行うと、再訓練前から検出対象であった対象の検出精度が劣化する場合がある。
【0008】
一つの側面として、開示の技術は、対象の検出精度劣化を低減することを目的とする。
【課題を解決するための手段】
【0009】
一つの態様として、開示の技術は、第1の対象を含む画像内の領域を特定する第1の機械学習モデル部分を含む、第1の機械学習モデルの前記第1の機械学習モデル部分を取得する。第1の機械学習モデルは、画像に前記第1の対象がラベル付けされた訓練データに基づいて訓練されたものである。また、開示の技術は、第2の対象を含む画像内の領域を特定する第2の機械学習モデル部分と、特定された領域の画像内の位置を判定する第3の機械学習モデル部分とを含む、第2の機械学習モデルの前記第3の機械学習モデル部分を取得する。第2の機械学習モデルは、画像内の前記第2の対象の位置情報がラベル付けされた訓練データに基づいて訓練されたものである。そして、開示の技術は、前記第3の機械学習モデル部分と前記第1の機械学習モデル部分とを組み合わせて第3の機械学習モデルを生成し、画像を前記第3の機械学習モデルに入力することによって、対象の検出結果を出力する。
【発明の効果】
【0010】
一つの側面として、対象の検出精度劣化を低減することができる、という効果を有する。
【図面の簡単な説明】
【0011】
【
図1】一般的な対象検出器への検出対象の追加を説明するための図である。
【
図2】一般的な対象検出器への検出対象の追加を説明するための図である。
【
図3】本実施形態に係る対象検出装置の機能ブロック図である。
【
図4】本実施形態に係る対象検出器の概略構成図である。
【
図5】モジュールの訓練を説明するための図である。
【
図6】モジュールを変更することにより生成された対象検出器の例を示す図である。
【
図8】対象検出器による処理を説明するための図である。
【
図9】モジュールによる処理を説明するための図である。
【
図10】デコーダによる処理を説明するための図である。
【
図12】対象か否かの判定結果の一例を示す図である。
【
図13】対象検出器による処理を説明するための図である。
【
図14】対象検出装置として機能するコンピュータの概略構成を示すブロック図である。
【
図15】機械学習処理の一例を示すフローチャートである。
【
図16】検出処理の一例を示すフローチャートである。
【
図17】一般的な対象検出器の機能を説明するための図である。
【
図18】モジュールの組み合わせによる対象の拡大を説明するための図である。
【
図19】モジュールの組み合わせによる対象の拡大を説明するための図である。
【
図20】引数が与えられる場合のモジュールの処理を説明するための図である。
【発明を実施するための形態】
【0012】
以下、図面を参照して、開示の技術に係る実施形態の一例を説明する。
【0013】
ディープニューラルネットワーク等で構成された機械学習モデルであり、画像から物体等の対象を検出する対象検出器は、画像と、画像内での対象の位置及びカテゴリの情報とが対応付けられた訓練データを用いて訓練させる必要がある。一般に公開されている訓練データでは、例えば、犬や人はあるがベビーカーはない等、対象のカテゴリが限られており、利用者が検出したい対象が含まれていないことが多い。そこで、公開されている訓練データで訓練された対象検出器に対して、公開されている訓練データには存在しないカテゴリを検出対象として追加したり、誤認識され易い不要なカテゴリを検出対象から削除したりする等、検出対象を変更したいという要望がある。また、検出対象を変更した場合でも、検出対象の変更前から検出対象であった対象の検出精度は維持されることが望ましい。さらに、対象検出器に対する検出対象の追加に必要となる訓練データの作成や再訓練のための作業コストをなるべく小さくしたいという要望もある。
【0014】
ここで、
図1左図に示すような、公開されている訓練データを用いて訓練された対象検出器があるとする。
図1では、画像内の丸、矩形、三角等は、それぞれカテゴリが異なる対象を概略的に表したものである。本実施形態では、対象「丸」のカテゴリを「circle」、対象「矩形」のカテゴリを「rectangle」、対象「三角」のカテゴリを「triangle」として説明する。
図1の左図の対象検出器は、検出対象のカテゴリを「circle」及び「rectangle」として訓練された対象検出器である。この対象検出器を訓練するためには、
図1左図中のAに示すように、画像内での対象の位置情報と、その対象のカテゴリとが対応付けられた訓練データを用いる必要がある。なお、本実施形態では、対象を囲むバウンディングボックスの始点座標(例えば、左上角の座標)(x,y)、及びバウンディングボックスの高さ及び幅(Bh,Bw)を用いて、その対象の位置情報を[x,y,Bh,Bw]と表す。
【0015】
図1左図に示す対象検出器を用いて、カテゴリ「triangle」の対象を新たに検出したい場合、
図1右図中のBに示すように、追加対象のカテゴリと位置情報とが対応付けられた画像を訓練データとして用意する必要がある。また、追加対象のカテゴリの訓練データを元の訓練データに追加した訓練データセットを用いて、対象検出器全体を再訓練する必要がある。対象検出器全体を再訓練した場合、再訓練前の検出対象の検出精度が劣化する可能性もある。
【0016】
また、例えば、
図2左図に示すような、検出対象のカテゴリを「circle」、「rectangle」、及び「triangle」として訓練された対象検出器があるとする。この対象検出器を用いて、「circle」及び「triangle」のみを検出したい、すなわち「rectangle」を削除したいとする。この場合、対象検出器から、「circle」を検出するための部分ネットワーク、及び「triangle」を検出するための部分ネットワークを抽出することが考えられる。この方法は、元の対象検出器から検出対象を減らすことはできるが、検出対象を増やすことは考えられていない。また、この方法は、抽出した部分ネットワークを統合するための統合ネットワークの追加訓練が必要であり、作業コストがかかる。
【0017】
そこで、本実施形態は、対象検出器に特定の対象のみを抽出するモジュールを追加し、検出したい対象に応じてモジュールを自由に選択可能とすることで、対象検出器全体の再訓練を不要とし、再訓練前の検出対象の検出精度を維持させる。また、本実施形態は、対象のカテゴリ毎のモジュールを、位置情報なしの訓練データで訓練可能とすることで、訓練に要する作業コストを削減する。以下、本実施形態に係る対象検出装置について詳述する。
【0018】
図3に示すように、対象検出装置10は、機能的には、機械学習部20と、検出部40とを含む。機械学習部20及び検出部40は、開示の技術の「制御部」の一例である。機械学習部20は、さらに、第1機械学習部22と、第2機械学習部24とを含む。検出部40は、さらに、取得部42と、生成部44と、出力部50とを含む。また、対象検出装置10の所定の記憶領域には、対象検出器32と、モジュールライブラリ34とが記憶される。
【0019】
まず、機械学習部20について説明する。
【0020】
第1機械学習部22は、画像内での対象の位置情報と、その対象のカテゴリとが対応付けられた訓練データ(以下、「位置情報ありの訓練データ」という)を用いて、対象検出器32を訓練する。
図4に、対象検出器32の構成を概略的に示す。
図4に示すように、対象検出器32は、エンコーダ321と、モジュール322と、デコーダ323とを含む。エンコーダ321は、入力された画像を圧縮及び変換した画像特徴行列を生成するニューラルネットワークである。例えば、エンコーダ321は、入力された画像を圧縮及び変換して、モジュール322が処理可能な形式であって、各要素が特定次元のベクトルである画像特徴行列を生成する。
【0021】
モジュール322は、エンコーダ321の出力に基づいて、検出対象のカテゴリ毎の、画像内の対象を示す領域を特定するニューラルネットワークである。画像内の対象を示す領域を特定する機能は、例えば、アテンション機構により実現されてもよい。例えば、第1機械学習部22が取得する位置情報ありの訓練データに含まれる対象のカテゴリが「circle」及び「rectangle」であるとする。この場合、
図4に示すように、対象検出器32には、「circle」の画像内の領域を特定するモジュール322Aと、「rectangle」の画像内の領域を特定するモジュール322Bとが含まれる。カテゴリ毎のモジュールを区別なく説明する場合には、単に「モジュール322」と表記する。
【0022】
デコーダ323は、モジュール322の出力に基づいて、モジュール322で特定された領域の画像内の位置を判定すると共に、特定された領域が検出対象である尤度を判定し、検出結果として出力するニューラルネットワークである。例えば、モジュール322Aの出力に基づいて検出対象の尤度が閾値以上であると判定された場合、画像から「circle」が検出されたことになる。対象検出器32は、開示の技術の「第2の機械学習モデル」の一例であり、モジュール322は、開示の技術の「第2の機械学習モデル部分」の一例であり、デコーダ323は、開示の技術の「第3の機械学習モデル部分」の一例である。
【0023】
第1機械学習部22は、対象検出器32に、訓練データの画像を入力し、デコーダ323から出力される検出結果を取得する。第1機械学習部22は、取得した検出結果と、訓練データが示す正解との誤差を最小化するように、エンコーダ321、モジュール322、及びデコーダ323の各々のパラメータを更新することにより、対象検出器32を訓練する。
【0024】
図4の例では、第1機械学習部22は、上記誤差を算出する際、モジュール322Aで特定された領域についての検出結果(
図4中のC)である位置1及び位置2と、訓練データ(
図4中のE)の「circle」に対応付けられた位置情報とを比較する。また、第1機械学習部22は、モジュール322Bで特定された領域についての検出結果(
図4中のD)である位置1と、訓練データ(
図4中のE)の「rectangle」に対応付けられた位置情報とを比較する。
【0025】
第1機械学習部22は、訓練済みの対象検出器32を、対象検出装置10の所定の記憶領域に記憶する。また、第1機械学習部22は、訓練済みの対象検出器32内のモジュール322を、モジュールライブラリ34に記憶する。
【0026】
第2機械学習部24は、対象のカテゴリの正解のみを持ち、画像内での対象の位置情報を持たない訓練データ(以下、「位置情報なしの訓練データ」という)を用いて、対象検出器32に追加したい対象のモジュールを訓練する。第2機械学習部24は、
図5に示すように、エンコーダ324と、モジュール322Cと、デコーダ325とを含む機械学習モデルを、位置情報なしの訓練データを用いて訓練する。
【0027】
エンコーダ324は、第1機械学習部22で訓練済みのエンコーダである。デコーダ325は、モジュール322Cの出力に基づいて対象の有無を判定するニューラルネットワークである。具体的には、デコーダ325は、第1機械学習部22で訓練済みのエンコーダと訓練済みのモジュールのいずれか1つとを使って、デコーダのパラメータのみを更新するように訓練して作成されたものである。なお、第2機械学習部24で位置情報ありの訓練データを用いる場合、第1機械学習部22で訓練済みのデコーダをそのままデコーダ325として流用してもよい。
図5は、追加したい対象「triangle」のモジュール322Cを含む機械学習モデルの例を示している。この機械学習モデルは、開示の技術の「第1の機械学習モデル」の一例であり、モジュール322Cは、開示の技術の「第1の機械学習モデル部分」の一例である。
【0028】
第2機械学習部24は、
図5のFに示すように、画像内に様々なサイズで含まれる追加したい対象(ここでは「triangle」)の画像(正例)と、追加したい対象以外の画像(負例)とをエンコーダ324に入力する。第2機械学習部24は、デコーダ325の出力が正解と一致するように、モジュール322Cのパラメータを更新することで、機械学習モデルを訓練する。具体的には、第2機械学習部24は、正例の画像を入力した場合に、デコーダ325が、対象であるとの判定結果を出力し、負例の画像を入力した場合に、デコーダ325が、対象ではないとの判定結果を出力するように機械学習モデルを訓練する。また、第2機械学習部24は、モジュール322については、対象の特徴を表すベクトルと、その特徴を有する領域に付加されるマーク(詳細は後述)に対応するベクトルとを保持するように訓練する。第2機械学習部24は、訓練済みの機械学習モデル内のモジュール322を、モジュールライブラリ34に記憶する。
【0029】
次に、検出部40について説明する。
【0030】
取得部42は、対象検出器32に対して、検出対象として追加又は変更したい対象についての1又は複数のモジュール322を、モジュールライブラリ34から取得し、生成部44へ受け渡す。
【0031】
生成部44は、対象検出器32を取得し、対象検出器32に含まれるエンコーダ321及びデコーダ323と、取得部42から受け渡されたモジュール322とを組み合わせて、新たな対象検出器36を生成する。新たな対象検出器36は、開示の技術の「第3の機械学習モデル」の一例である。具体的には、生成部44は、新たな検出対象を追加する場合には、対象検出器32にモジュール322を追加することで対象検出器36を生成する。また、生成部44は、検出対象を変更する場合には、対象検出器32の元のモジュール322と、取得部42から受け渡されたモジュール322とを入れ替えることで対象検出器36を生成する。
【0032】
図6に、
図4に示す対象検出器32のモジュール322Bをモジュール322Cに変更することにより生成された対象検出器36の例を示す。すなわち、対象検出器36は、「circle」及び「rectangle」を検出するように訓練された対象検出器32から、「circle」及び「triangle」を検出するように変更されたものである。「triangle」のモジュール322Cは、位置なしの訓練データで訓練されたものであり、新たな対象検出器36は、モジュール322の入れ替えだけで、対象検出器32を再訓練することなく生成することができる。
【0033】
出力部50は、対象を検出する処理対象の画像(以下、「検出対象画像」という)を対象検出器36に入力することによって、対象の検出結果を出力する。出力部50は、より詳細には、
図7に示すように、圧縮部51と、特定部52と、抽出部53と、位置推定部54と、対象判定部55とを含む。圧縮部51は、エンコーダ321により実現される機能部、特定部52は、モジュール322により実現される機能部、抽出部53、位置推定部54、及び対象判定部55は、デコーダ323により実現される機能部である。
【0034】
圧縮部51は、
図8に示すように、画像をエンコーダ321に入力することにより、画像特徴行列56を生成する。なお、
図8では、4×3要素の画像特徴行列56の例を示している。
図8では、説明を簡単にするため、画像特徴行列56と画像とを対応させて表しているが、画像特徴行列56の各要素(各マス)は、その要素に対応する画像部分の特徴を表す値を保持している。以下の図においても同様である。
【0035】
特定部52は、エンコーダ321で生成された画像特徴行列56を、モジュール322の各々に入力することにより、画像内の対象の領域を特定する。具体的には、
図9に示すように、特定部52は、モジュール322が保持する、対象の特徴を表すベクトルaと、画像特徴行列56の各要素の値fとの類似度(例えば、内積)rを算出する。そして、特定部52は、類似度rとマークに対応するベクトルmとを掛け合わせた値を、画像特徴行列56の要素の値に足し合わせる。特定部52は、この処理を、画像特徴行列56の各要素について実行する。
【0036】
全ての要素について特定部52による処理が完了した状態の画像特徴行列56が、モジュール322から出力される。すなわち、類似度rとマークに対応するベクトルmとを掛け合わせた値が、対象の領域を特定するためのマークに相当する。各要素に対応する画像部分と、対象のモジュール322が保持する対象の特徴を表すベクトルaとの類似度に応じて、マークの濃さ(要素に足される値)が変化する。
図8では、画像に対して、各モジュール322に対応する対象の領域にマークを付加した様子を概念的に示している。
【0037】
抽出部53は、マークが付加された画像特徴行列56における対象の領域を抽出する。例えば、抽出部53は、画像特徴行列56において、マークとして、所定値以上の値が付加された要素を抽出する。そして、抽出部53は、抽出した要素に対応する領域、又は、抽出した要素同士が隣接している場合には、隣接する要素同士を連結した要素群に対応する領域を、対象の領域として抽出する。
【0038】
位置推定部54は、抽出部53により抽出された、画像特徴行列56における領域に基づいて、その領域の画像上での位置を推定する。具体的には、位置推定部54は、
図10に示すように、画像特徴行列56から抽出された領域(
図10中の斜線で示すマス)に対応する画像57の位置情報[x,y,Bh,Bw]を推定する。
【0039】
対象判定部55は、抽出部53により抽出された領域が、対象か否かを判定する。具体的には、対象判定部55は、
図11に示すような、モジュールリストを保持する。
図11の例では、モジュール322を識別する番号と、そのモジュール322で特定される対象のカテゴリとを対応付けてリスト化している。対象判定部55は、
図12に示すように、各モジュール322で特定された領域毎に、対象か否かを判定する。
図12の例では、領域を特定したモジュール322についてモジュールリストで規定された番号と、領域が対象の場合には「1」、対象ではない場合には「0」とした判定結果とが対応付けられている。なお、判定結果は、1つの画像から最大N個の対象を検出するように定められている場合、N個の1又は0を羅列したものとなる。
【0040】
出力部50は、位置推定部54で推定された位置情報及び対象判定部55で判定された判定結果を、画像からの対象の検出結果として出力する。
図6では、モジュール322Aで特定された領域についての検出結果をG、モジュール322Bで特定された領域についての検出結果をHで表している。
【0041】
図13を参照して、対象検出器36での処理についてより具体的に説明する。例えば、高さH、幅WのRGB画像が検出対象画像である場合、エンコーダ321には、サイズ[H×W×3(RGB)]の画像が入力され、エンコーダ321からは、サイズ[h×w×D]の画像特徴行列56が出力される。Dはベクトルの次元で、例えば、256である。モジュール322では、画像特徴行列56の各要素に、対象の領域を示すマークが付加されるため、モジュール322から出力されるデータのサイズも[h×w×D]である。デコーダ323は、最大検出数N(
図13の例では、N=4)個分のD次元のベクトルを算出する。例えば、デコーダ323は、
図10左図に示すように、画像特徴行列56の1つの要素が対象の領域として特定されており、N=4の場合、その要素の値を1つ目のD次元のベクトルとて生成し、残り3つのD次元のベクトルは、全ての要素を0とする。また、デコーダ323は、特定された領域が隣接する要素同士を連結した要素群に対応する領域である場合、その領域に含まれる要素の値を平均するなどして、D次元のベクトルを生成する。デコーダ323は、生成したD次元のベクトルの各々に基づいて、位置推定を行って位置情報を出力すると共に、対象か否かの判定を行って判定結果を出力する。
【0042】
対象検出装置10は、例えば
図14に示すコンピュータ60で実現されてよい。コンピュータ60は、CPU(Central Processing Unit)61と、一時記憶領域としてのメモリ62と、不揮発性の記憶装置63とを備える。また、コンピュータ60は、入力装置、表示装置等の入出力装置64と、記憶媒体69に対するデータの読み込み及び書き込みを制御するR/W(Read/Write)装置65とを備える。また、コンピュータ60は、インターネット等のネットワークに接続される通信I/F(Interface)66を備える。CPU61、メモリ62、記憶装置63、入出力装置64、R/W装置65、及び通信I/F66は、バス67を介して互いに接続される。
【0043】
記憶装置63は、例えば、HDD(Hard Disk Drive)、SSD(Solid State Drive)、フラッシュメモリ等である。記憶媒体としての記憶装置63には、コンピュータ60を、対象検出装置10として機能させるための対象検出プログラム70が記憶される。対象検出プログラム70は、第1機械学習プロセス制御命令72と、第2機械学習プロセス制御命令74と、取得プロセス制御命令92と、生成プロセス制御命令94と、出力プロセス制御命令100とを有する。また、記憶装置63は、対象検出器32(36)、及びモジュールライブラリ34に格納されるモジュール322の各々を構成する情報が記憶される情報記憶領域80を有する。
【0044】
CPU61は、対象検出プログラム70を記憶装置63から読み出してメモリ62に展開し、対象検出プログラム70が有する制御命令を順次実行する。CPU61は、第1機械学習プロセス制御命令72を実行することで、
図3に示す第1機械学習部22として動作する。また、CPU61は、第2機械学習プロセス制御命令74を実行することで、
図3に示す第2機械学習部24として動作する。また、CPU61は、取得プロセス制御命令92を実行することで、
図3に示す取得部42として動作する。また、CPU61は、生成プロセス制御命令94を実行することで、
図3に示す生成部44として動作する。また、CPU61は、出力プロセス制御命令100を実行することで、
図3に示す出力部50として動作する。また、CPU61は、情報記憶領域80から情報を読み出して、対象検出器32(36)、及びモジュールライブラリ34に格納されるモジュール322の各々をメモリ62に展開する。これにより、対象検出プログラム70を実行したコンピュータ60が、対象検出装置10として機能することになる。なお、プログラムを実行するCPU61はハードウェアである。
【0045】
なお、対象検出プログラム70により実現される機能は、例えば半導体集積回路、より詳しくはASIC(Application Specific Integrated Circuit)、FPGA(Field-Programmable Gate Array)等で実現されてもよい。
【0046】
次に、本実施形態に係る対象検出装置10の動作について説明する。対象検出装置10に訓練データが入力され、対象検出器32及びモジュール322の訓練が指示されると、対象検出装置10において、
図15に示す機械学習処理が実行される。また、対象検出装置10に検出対象画像が入力され、対象の検出が指示されると、対象検出装置10において、
図16に示す検出処理が実行される。
【0047】
【0048】
ステップS10で、第1機械学習部22が、位置情報ありの訓練データを取得する。次に、ステップS12で、第1機械学習部22が、位置情報ありの訓練データを用いて、対象検出器32を訓練する。そして、第1機械学習部22が、訓練済みの対象検出器32を、対象検出装置10の所定の記憶領域に記憶し、訓練済みの対象検出器32内のモジュール322を、モジュールライブラリ34に記憶する。
【0049】
次に、ステップS14で、第2機械学習部24が、対象検出器32に追加したい対象についての位置情報なしの訓練データを取得する。次に、ステップS16で、第2機械学習部24が、位置情報なしの訓練データを用いて、エンコーダ324と、モジュール322と、デコーダ325とを含む機械学習モデルにおいて、モジュール322のパラメータを更新することで機械学習モデルを訓練する。そして、第2機械学習部24は、訓練済みの機械学習モデル内のモジュール322を、モジュールライブラリ34に記憶し、機械学習処理は終了する。
【0050】
なお、対象検出器32の訓練(ステップS10及びS12)と、モジュール322の訓練(ステップS14及びS16)とは、それぞれ別のタイミングで実行してもよいし、並行して実行してもよい。
【0051】
【0052】
ステップS20で、取得部42が、対象検出器32に対して、検出対象として追加又は変更したい対象についてのモジュール322を、モジュールライブラリ34から取得する。次に、ステップS22で、生成部44が、対象検出器32を取得し、対象検出器32に含まれるエンコーダ321及びデコーダ323と、上記ステップS20で取得されたモジュール322とを組み合わせて、新たな対象検出器36を生成する。
【0053】
次に、ステップS24で、取得部42が、対象検出装置10に入力された検出対象画像を取得する。次に、ステップS26で、出力部50が、検出対象画像を対象検出器36に入力することによって、対象の検出結果を出力し、検出処理は終了する。
【0054】
以上説明したように、本実施形態に係る対象検出装置は、位置情報なしの訓練データに基づいて訓練されたモジュールのうち、位置情報ありの訓練データに基づいて訓練された既存の機械学習モデルである対象検出器に追加又は変更する対象のモジュールを取得する。また、対象検出装置は、既存の対象検出装置のエンコーダ及びデコーダと、取得したモジュールとを組み合わせて、新たな対象検出器を生成し、検出対象画像を新たな検出対象器に入力することによって、対象の検出結果を出力する。これにより、画像から対象を検出する機械学習モデルにおける検出対象を変更した場合でも、変更前の検出対象の検出精度劣化を低減することができる。また、新たな対象を検出できるように再訓練するための作業コストを低減することができる。
【0055】
より具体的に説明する。一般的には、
図17に示すように、入力された画像からエンコーダで抽出された特徴に基づいて、デコーダで検出対象の位置及びカテゴリを推定する。すなわち、デコーダに検出対象(
図17の例では「circle」及び「triangle」)の特徴を示すパラメータを、位置情報ありの訓練データを用いた訓練により埋め込んでおき、デコーダが、画像中から検出対象を抽出し、それらの対象の位置を推定する。一方、本実施形態に係る対象検出装置は、
図17に示すデコーダが担っている役割の一部をモジュールとして切り出し、例えば、
図8に示すように、エンコーダ321とデコーダ323との中間にモジュール322として配置する。モジュール322は、画像特徴行列56の特定の対象の領域にマークを付与する。モジュール322がマークを付与する対象は、訓練データの与え方で決まる。すなわち、デコーダ323への入力は、入力された画像が同じであっても、中間のモジュール322により変わる。そして、デコーダ323自体は、検出対象が何であるかに関わらず、モジュールで特定された領域、すなわち、マークが付与された領域を処理対象として、その領域の位置を推定する。
【0056】
したがって、本実施形態によれば、検出したい対象に応じて所望のモジュールを選択して、デコーダと組み合わせて対象検出器を生成するだけで、検出対象の追加又は変更が可能であり、対象検出器全体の再訓練は不要である。このように、対象検出器全体の再訓練を行わないこと、及び各モジュールが独立していることから、既存の検出対象器の検出精度に影響を与えない。また、モジュールの訓練には、位置情報なしの訓練データを用いることができるため、位置情報をアノテーションした訓練データを用意する必要がない。
【0057】
さらに、複数のモジュールを組み合わせることで、検出対象をさらに限定することも可能である。具体例を用いて説明する。
図18の左図に示すように、対象検出装置は、エンコーダ321と、モジュール322と、デコーダ323とを含む対象検出器32を、位置情報ありの訓練データで訓練する。
図18の例では、モジュール322は、「car」を対象とするモジュール322D、及び「cat」を対象とするモジュール322Eである。対象検出器32の訓練が完了すると、このモジュール322D、322Eは、モジュールライブラリ34に記憶される。また、対象検出装置は、
図18の右図に示すように、エンコーダ324と、モジュール322Fと、デコーダ325とを含む機械学習モデルを、位置情報なしの訓練データで訓練する。
図18の例では、モジュール322Fは、特定の色の対象の領域を特定するためのモジュール322である。特定の色(
図18の例では、「red」)は、引数により与えられる。
【0058】
例えば、対象検出器32のように、モジュール322Dとモジュール322Eとを並列に組み合わせることで、「car」と「cat」とがOR条件で検出対象となる。また、例えば、
図19に示すように、モジュール322Dとモジュール322Fとを直列に組み合わせることで、「car」と「color」とがAND条件で検出対象となる。そして、モジュール322Fに引数「red」を与えることで、「red car(赤い車)」を検出対象とすることができる。この場合、モジュール322Dによるマーク、及びモジュール322Fによるマークを、画像特徴行列56の各要素に重畳して付加すればよい。
【0059】
なお、モジュール322に引数を与える場合、対象検出装置は、
図20に示すように、引数「red」に対応するIDを与えることで、対象「red」の特徴を表すベクトルa
redとなるように、モジュール322Fが保持するベクトルaを訓練しておく。そして、対象検出装置は、画像特徴行列56の要素にマークを付与する際には、ベクトルa
redを用いて、
図9で説明した場合と同様に、画像特徴行列56の要素の値に足し合わせる値を算出する。
【0060】
なお、上記実施形態では、モジュールの訓練に用いる訓練データとして、位置情報なしの訓練データを用いる場合について説明したが、これに限定されず、位置情報ありの訓練データを用いてもよい。
【0061】
また、上記実施形態では、対象検出装置に機械学習部と検出部とが含まれる場合について説明したが、これに限定されない。機械学習部の機能部を有する機械学習装置と、検出部の機能部を有する検出装置とをそれぞれ別のコンピュータで実現してもよい。
【0062】
また、上記実施形態では、対象検出プログラムが記憶装置に予め記憶(インストール)されているが、これに限定されない。開示の技術に係るプログラムは、CD-ROM、DVD-ROM、USBメモリ等の記憶媒体に記憶された形態で提供されてもよい。
【0063】
以上の実施形態に関し、さらに以下の付記を開示する。
【0064】
(付記1)
第1の対象を含む画像内の領域を特定する第1の機械学習モデル部分を含み画像に前記第1の対象がラベル付けされた訓練データに基づいて訓練された第1の機械学習モデルの前記第1の機械学習モデル部分を取得し、
第2の対象を含む画像内の領域を特定する第2の機械学習モデル部分と、特定された領域の画像内の位置を判定する第3の機械学習モデル部分とを含み画像内の前記第2の対象の位置情報がラベル付けされた訓練データに基づいて訓練された第2の機械学習モデルの前記第3の機械学習モデル部分と前記第1の機械学習モデル部分とを組み合わせて第3の機械学習モデルを生成し、
画像を前記第3の機械学習モデルに入力することによって、対象の検出結果を出力する、
処理をコンピュータに実行させることを特徴とする対象検出プログラム。
【0065】
(付記2)
前記画像に前記第1の対象がラベル付けされた訓練データには、前記第1の対象の位置情報がラベル付けされていない、
付記1に記載の対象検出プログラム。
【0066】
(付記3)
前記対象の検出結果を出力する処理は、前記第1の機械学習モデル部分により特定された画像内の領域に基づいて、前記第3の機械学習モデル部分により判定された前記画像内の位置と、前記領域が前記第1の対象であることを示す情報とを出力することを含む、
付記1又は付記2に記載の対象検出プログラム。
【0067】
(付記4)
前記第1の機械学習モデル部分により、前記第1の対象を含む画像内の領域を特定する処理は、画像を圧縮した特徴行列の各要素が示す特徴と、前記第1の機械学習モデル部分が示す特徴との類似度を前記各要素に反映させることにより、前記特徴行列に情報を付与することを含み、
前記第3の機械学習モデルにより、前記特定された領域の画像内の位置を判定する処理は、前記類似度が前記各要素に反映された前記特徴行列のうち、値が所定の条件を満たす要素に対応する前記画像の座標を算出することを含む、
付記3に記載の対象検出プログラム。
【0068】
(付記5)
前記第1の機械学習モデル部分と、前記第2の機械学習モデル部分とを並列に組み合わせた機械学習モデル部分群と、前記第3の機械学習モデル部分と組み合わせて第4の機械学習モデルを生成し、
前記対象の検出結果として、前記第1の対象及び前記第2の対象についての検出結果を出力する、
付記1~付記4のいずれか1項に記載の対象検出プログラム。
【0069】
(付記6)
前記第1の機械学習モデル部分と、前記第2の機械学習モデル部分とを直列に組み合わせた機械学習モデル部分群と、前記第3の機械学習モデル部分と組み合わせて第4の機械学習モデルを生成し、
前記対象の検出結果として、前記第1の対象の特徴と、前記第2の対象の特徴とを組み合わせた特徴を有する対象についての検出結果を出力する、
付記1~付記4のいずれか1項に記載の対象検出プログラム。
【0070】
(付記7)
第1の対象を含む画像内の領域を特定する第1の機械学習モデル部分を含み画像に前記第1の対象がラベル付けされた訓練データに基づいて訓練された第1の機械学習モデルの前記第1の機械学習モデル部分を取得し、
第2の対象を含む画像内の領域を特定する第2の機械学習モデル部分と、特定された領域の画像内の位置を判定する第3の機械学習モデル部分とを含み画像内の前記第2の対象の位置情報がラベル付けされた訓練データに基づいて訓練された第2の機械学習モデルの前記第3の機械学習モデル部分と前記第1の機械学習モデル部分とを組み合わせて第3の機械学習モデルを生成し、
画像を前記第3の機械学習モデルに入力することによって、対象の検出結果を出力する、
処理を実行する制御部を含むことを特徴とする対象検出装置。
【0071】
(付記8)
前記画像に前記第1の対象がラベル付けされた訓練データには、前記第1の対象の位置情報がラベル付けされていない、
付記7に記載の対象検出プログラム。
【0072】
(付記9)
前記対象の検出結果を出力する処理は、前記第1の機械学習モデル部分により特定された画像内の領域に基づいて、前記第3の機械学習モデル部分により判定された前記画像内の位置と、前記領域が前記第1の対象であることを示す情報とを出力することを含む、
付記7又は付記8に記載の対象検出装置。
【0073】
(付記10)
前記第1の機械学習モデル部分により、前記第1の対象を含む画像内の領域を特定する処理は、画像を圧縮した特徴行列の各要素が示す特徴と、前記第1の機械学習モデル部分が示す特徴との類似度を前記各要素に反映させることにより、前記特徴行列に情報を付与することを含み、
前記第3の機械学習モデルにより、前記特定された領域の画像内の位置を判定する処理は、前記類似度が前記各要素に反映された前記特徴行列のうち、値が所定の条件を満たす要素に対応する前記画像の座標を算出することを含む、
付記9に記載の対象検出装置。
【0074】
(付記11)
前記制御部は、
前記第1の機械学習モデル部分と、前記第2の機械学習モデル部分とを並列に組み合わせた機械学習モデル部分群と、前記第3の機械学習モデル部分と組み合わせて第4の機械学習モデルを生成し、
前記対象の検出結果として、前記第1の対象及び前記第2の対象についての検出結果を出力する、
付記7~付記10のいずれか1項に記載の対象検出装置。
【0075】
(付記12)
前記制御部は、
前記第1の機械学習モデル部分と、前記第2の機械学習モデル部分とを直列に組み合わせた機械学習モデル部分群と、前記第3の機械学習モデル部分と組み合わせて第4の機械学習モデルを生成し、
前記対象の検出結果として、前記第1の対象の特徴と、前記第2の対象の特徴とを組み合わせた特徴を有する対象についての検出結果を出力する、
付記7~付記10のいずれか1項に記載の対象検出装置。
【0076】
(付記13)
それぞれが特定の対象が含まれる画像内の領域を特定する複数の機械学習モデル部分から一又は複数の機械学習モデル部分を選択し、
前記一又は複数の機械学習モデルと、特定された領域の画像内の位置を判定する機械学習部分とを組み合わせることによって、画像から対象を検出する機械学習モデルを生成する、
処理をコンピュータが実行することを特徴とする機械学習モデル生成方法。
【符号の説明】
【0077】
10 対象検出装置
20 機械学習部
22 第1機械学習部
24 第2機械学習部
32、36 対象検出器
34 モジュールライブラリ
40 検出部
42 取得部
44 生成部
50 出力部
51 圧縮部
52 特定部
53 抽出部
54 位置推定部
55 対象判定部
56 画像特徴行列
57 画像
60 情報記憶領域
60 コンピュータ
61 CPU
62 メモリ
63 記憶装置
64 入出力装置
65 R/W装置
67 バス
69 記憶媒体
70 対象検出プログラム
72 第1機械学習プロセス制御命令
74 第2機械学習プロセス制御命令
92 取得プロセス制御命令
94 生成プロセス制御命令
100 出力プロセス制御命令
321 エンコーダ
322、322A、322B、322C、322D、322E、322F モジュール
323 デコーダ
324 エンコーダ
325 デコーダ