(57)【要約】【課題】第１の集合内の要素と第２の集合内の要素との対応を学習させる場合に、他の対応の関係を機械学習に反映させることができるようにした情報処理装置を提供する。【解決手段】情報処理装置の行列生成手段は、第１の集合内のＮ個の要素と第２の集合内のＮ個の要素との対応を機械学習するために用いる行列であって、第１の集合内の要素は第２の集合内の要素と１対１に対応しており、行列の各行には、第１情報が１つだけあり、他は第２情報であり、行列の各列には、第１情報が１つだけあり、他は第２情報であることを満たした状態にし、学習手段は、その行列を用いて、各列及び各行で、損失関数による値を算出し、その値を合成した値を用いて機械学習する。【選択図】図１
2020204892.tif 000002
【特許請求の範囲】
【請求項１】
第１の集合内のＮ個の要素と第２の集合内のＮ個の要素との対応を機械学習するために用いる行列であって、第１の集合内の要素は第２の集合内の要素と１対１に対応しており、
前記行列の大きさは少なくともＮ×Ｎ以上であり、
前記行列の成分には、第１の集合内の要素と第２の集合内の要素とが対応していることを示す第１情報と、第１の集合内の要素と第２の集合内の要素とは対応していないことを示す第２情報のいずれかを記憶させ、
前記行列の各行には、第１情報が１つだけあり、他は第２情報であり、
前記行列の各列には、第１情報が１つだけあり、他は第２情報であることを満たした状態にする行列生成手段と、
前記行列生成手段によって生成された行列を用いて、各列及び各行で、損失関数による値を算出し、該値を合成した値を用いて機械学習する学習手段
を有する情報処理装置。
【請求項２】
第１の集合内のＮ個の要素と第２の集合内のＭ個の要素との対応を機械学習するために用いる行列であって、
前記行列の大きさは少なくとも（Ｎ＋１）×（Ｍ＋１）以上であり、
前記行列の成分には、第１の集合内の要素と第２の集合内の要素とが対応していることを示す第１情報と、第１の集合内の要素と第２の集合内の要素とは対応していないことを示す第２情報のいずれかを記憶させ、
第１の集合内の第１要素が第２の集合内の各要素と対応していない場合は、該第１要素に対応する行における第（Ｍ＋１）列に第１情報を記憶させ、第２の集合内の第２要素が第１の集合内の各要素と対応していない場合は、該第２要素に対応する列における第（Ｎ＋１）行に第１情報を記憶させ、
前記行列の各行には、第１情報が１つだけあり、他は第２情報であり、
前記行列の各列には、第１情報が１つだけあり、他は第２情報であることを満たした状態にする行列生成手段と、
前記行列生成手段によって生成された行列を用いて、各列及び各行で、損失関数による値を算出し、該値を合成した値を用いて機械学習する学習手段
を有する情報処理装置。
【請求項３】
前記行列の大きさは、（ＮＭａｘ＋１）×（ＭＭａｘ＋１）以上であり、
ただし、ＮＭａｘは前記Ｎより大であり、ＭＭａｘは前記Ｍより大であり、
前記行列生成手段は、
前記行列の成分に、前記第１情報と前記第２情報の他に、第１の集合内の要素ではないもの、又は、第２の集合内の要素ではないものとの対応であることを示す第３情報を記憶させ、
前記学習手段は、前記第３情報を前記損失関数には用いない、
請求項２に記載の情報処理装置。
【請求項４】
前記行列の大きさは少なくとも（Ｎ＋１）×（Ｍ＋２）以上であり、
前記行列生成手段は、
前記第１の集合内の第１要素が第２の集合内の各要素と対応していない場合であって第１の状態である場合は、該第１要素に対応する行における第（Ｍ＋１）列に第１情報を記憶させ、前記第１の集合内の第１要素が第２の集合内の各要素と対応していない場合であって第２の状態である場合は、該第１要素に対応する行における第（Ｍ＋２）列に第１情報を記憶させる、
請求項２に記載の情報処理装置。
【請求項５】
前記第１の集合の要素は、動画像のフレームから抽出した移動体とし、
前記第２の集合の要素は、前記動画像の前記フレームとは異なるフレームから抽出した移動体であり、
前記学習手段は、異なるフレーム間での移動体の対応を機械学習する、
請求項１から４のいずれか１項に記載の情報処理装置。
【請求項６】
第１の集合内の複数の要素に対応する入力ベクトル又は中間層ベクトルに対して同じ関数を適用する第１の関数手段と、
第２の集合内の複数の要素に対応する入力ベクトル又は中間層ベクトルに対して同じ関数を適用する第２の関数手段と、
前記第１の関数手段による処理結果の要素と前記第２の関数手段による処理結果の要素との組み合わせを用いて機械学習する学習手段
を有する情報処理装置。
【請求項７】
第１の集合内の要素１つと第２の集合内の要素１つからなる組み合わせの各々に対応する入力ベクトル又は中間層ベクトルに対して同じ関数を適用する関数手段を用いて機械学習する学習手段
を有する情報処理装置。
【請求項８】
前記組み合わせを分割して、第３の集合と第４の集合に分割する分割手段と、
前記第３の集合内の複数の要素に対応する入力ベクトル又は中間層ベクトルに対して同じ関数を適用する第３の関数手段と、
前記第４の集合内の複数の要素に対応する入力ベクトル又は中間層ベクトルに対して同じ関数を適用する第４の関数手段
をさらに有し、
前記学習手段は、前記第３の関数手段による処理結果の要素と前記第４の関数手段による処理結果の要素との組み合わせを用いて機械学習する、
請求項６に記載の情報処理装置。
【請求項９】
前記第１の関数手段は、第１の集合内の要素に対応する入力ベクトル又は中間層ベクトルの要素であるスカラー値の統計的値を算出し、該統計的値に対して関数を適用し、
前記第２の関数手段は、第２の集合内の要素に対応する入力ベクトル又は中間層ベクトルの要素であるスカラー値の統計的値を算出し、該統計的値に対して関数を適用する、
請求項６に記載の情報処理装置。
【請求項１０】
前記組み合わせ内の要素に対応する入力ベクトル又は中間層ベクトルの要素であるスカラー値の統計的値を算出し、該統計的値に対して関数を適用する第５の関数手段
をさらに有し、
前記学習手段は、前記第５の関数手段による処理結果の要素を用いて機械学習する、
請求項６に記載の情報処理装置。
【請求項１１】
請求項１から１０のいずれか１項に記載された情報処理装置によって機械学習された学習モデルを用いて、第１の集合内のＮ個の要素と第２の集合内のＭ個の要素との対応を判断する判断手段
を有する情報処理装置。
【請求項１２】
第１の集合内のＮ個の要素と第２の集合内のＮ個の要素との対応を機械学習するために用いる行列であって、第１の集合内の要素は第２の集合内の要素と１対１に対応しており、
前記行列の大きさは少なくともＮ×Ｎ以上であり、
前記行列の成分には、第１の集合内の要素と第２の集合内の要素とが対応していることを示す第１情報と、第１の集合内の要素と第２の集合内の要素とは対応していないことを示す第２情報のいずれかを記憶させ、
前記行列の各行には、第１情報が１つだけあり、他は第２情報であり、
前記行列の各列には、第１情報が１つだけあり、他は第２情報であることを満たした状態にする行列生成ステップと、
前記行列生成ステップによって生成された行列を用いて、各列及び各行で、損失関数による値を算出し、該値を合成した値を用いて機械学習する学習ステップ
を有する情報処理方法。
【請求項１３】
第１の集合内のＮ個の要素と第２の集合内のＭ個の要素との対応を機械学習するために用いる行列であって、
前記行列の大きさは少なくとも（Ｎ＋１）×（Ｍ＋１）以上であり、
前記行列の成分には、第１の集合内の要素と第２の集合内の要素とが対応していることを示す第１情報と、第１の集合内の要素と第２の集合内の要素とは対応していないことを示す第２情報のいずれかを記憶させ、
第１の集合内の第１要素が第２の集合内の各要素と対応していない場合は、該第１要素に対応する行における第（Ｍ＋１）列に第１情報を記憶させ、第２の集合内の第２要素が第１の集合内の各要素と対応していない場合は、該第２要素に対応する列における第（Ｎ＋１）行に第１情報を記憶させ、
前記行列の各行には、第１情報が１つだけあり、他は第２情報であり、
前記行列の各列には、第１情報が１つだけあり、他は第２情報であることを満たした状態にする行列生成ステップと、
前記行列生成ステップによって生成された行列を用いて、各列及び各行で、損失関数による値を算出し、該値を合成した値を用いて機械学習する学習ステップ
を有する情報処理方法。
【請求項１４】
第１の集合内の複数の要素に対応する入力ベクトル又は中間層ベクトルに対して同じ関数を適用する第１の関数ステップと、
第２の集合内の複数の要素に対応する入力ベクトル又は中間層ベクトルに対して同じ関数を適用する第２の関数ステップと、
前記第１の関数ステップによる処理結果の要素と前記第２の関数ステップによる処理結果の要素との組み合わせを用いて機械学習する学習ステップ
を有する情報処理方法。
【請求項１５】
第１の集合内の要素１つと第２の集合内の要素１つからなる組み合わせの各々に対応する入力ベクトル又は中間層ベクトルに対して同じ関数を適用する関数ステップを用いて機械学習する学習ステップ
を有する情報処理方法。
【請求項１６】
請求項１２から１５のいずれか１項に記載された情報処理方法によって機械学習された学習モデルを用いて、第１の集合内のＮ個の要素と第２の集合内のＭ個の要素との対応を判断する判断ステップ
を有する情報処理方法。
【請求項１７】
コンピュータを、
第１の集合内のＮ個の要素と第２の集合内のＮ個の要素との対応を機械学習するために用いる行列であって、第１の集合内の要素は第２の集合内の要素と１対１に対応しており、
前記行列の大きさは少なくともＮ×Ｎ以上であり、
前記行列の成分には、第１の集合内の要素と第２の集合内の要素とが対応していることを示す第１情報と、第１の集合内の要素と第２の集合内の要素とは対応していないことを示す第２情報のいずれかを記憶させ、
前記行列の各行には、第１情報が１つだけあり、他は第２情報であり、
前記行列の各列には、第１情報が１つだけあり、他は第２情報であることを満たした状態にする行列生成手段と、
前記行列生成手段によって生成された行列を用いて、各列及び各行で、損失関数による値を算出し、該値を合成した値を用いて機械学習する学習手段
として機能させる情報処理プログラム。
【請求項１８】
コンピュータを、
第１の集合内のＮ個の要素と第２の集合内のＭ個の要素との対応を機械学習するために用いる行列であって、
前記行列の大きさは少なくとも（Ｎ＋１）×（Ｍ＋１）以上であり、
前記行列の成分には、第１の集合内の要素と第２の集合内の要素とが対応していることを示す第１情報と、第１の集合内の要素と第２の集合内の要素とは対応していないことを示す第２情報のいずれかを記憶させ、
第１の集合内の第１要素が第２の集合内の各要素と対応していない場合は、該第１要素に対応する行における第（Ｍ＋１）列に第１情報を記憶させ、第２の集合内の第２要素が第１の集合内の各要素と対応していない場合は、該第２要素に対応する列における第（Ｎ＋１）行に第１情報を記憶させ、
前記行列の各行には、第１情報が１つだけあり、他は第２情報であり、
前記行列の各列には、第１情報が１つだけあり、他は第２情報であることを満たした状態にする行列生成手段と、
前記行列生成手段によって生成された行列を用いて、各列及び各行で、損失関数による値を算出し、該値を合成した値を用いて機械学習する学習手段
として機能させる情報処理プログラム。
【請求項１９】
コンピュータを、
第１の集合内の複数の要素に対応する入力ベクトル又は中間層ベクトルに対して同じ関数を適用する第１の関数手段と、
第２の集合内の複数の要素に対応する入力ベクトル又は中間層ベクトルに対して同じ関数を適用する第２の関数手段と、
前記第１の関数手段による処理結果の要素と前記第２の関数手段による処理結果の要素との組み合わせを用いて機械学習する学習手段
として機能させる情報処理プログラム。
【請求項２０】
コンピュータを、
第１の集合内の要素１つと第２の集合内の要素１つからなる組み合わせの各々に対応する入力ベクトル又は中間層ベクトルに対して同じ関数を適用する関数手段を用いて機械学習する学習手段
として機能させる情報処理プログラム。
【請求項２１】
コンピュータを、
請求項１７から２０のいずれか１項に記載された情報処理プログラムによって機械学習された学習モデルを用いて、第１の集合内のＮ個の要素と第２の集合内のＭ個の要素との対応を判断する判断手段
として機能させる情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法及び情報処理プログラムに関する。
【背景技術】
【０００２】
特許文献１には、時系列の画像データを用いて、効率的に機械学習に使用する教師データを作成できる仕組みを提供することを課題とし、前回の画像データに基づいて作成された教師データを取得し、今回の画像データから部分画像を抽出し、前記取得された教師データの中から、前記部分画像に対応する教師データを特定し、前記部分画像に対して、特定された教師データの教師ラベルを付与することにより、教師データを作成し登録することが開示されている。
【０００３】
特許文献２には、追跡精度を向上させることができるオブジェクト追跡方法及び装置並びにプログラムを提供することを課題とし、時系列で取得される撮像画像から特定のオブジェクトを検出し、その位置を追跡するオブジェクト追跡方法であって、初期モデルを生成後に入力される撮像画像に対し、まず、初期モデルを用いた第１のテンプレートマッチングの処理を行い、類似度を示す第１のスコアが所定の閾値と同等以上の高い類似性を示す場合は当該第１のマッチング処理により探索された位置を追跡位置として採用し、一方、第１のスコアが所定の閾値よりも低い類似性を示す場合は、先行フレームの撮像画像の追跡位置から生成された最新の更新モデルを用いて第２のテンプレートマッチングの処理を行い、当該第２のマッチング処理により探索された位置を追跡位置として採用することが開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１９−０７５１３０号公報
【特許文献２】特開２０１４−０６３２８０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
第１の集合内の要素と第２の集合内の要素との対応を機械学習させる場合に、単に１対１又は１対ｎの対応を機械学習させたときは、他の対応の関係を機械学習に反映させることができない。
本発明は、第１の集合内の要素と第２の集合内の要素との対応を機械学習させる場合に、他の対応の関係を機械学習に反映させることができるようにした情報処理装置、情報処理方法及び情報処理プログラムを提供することを目的としている。
【課題を解決するための手段】
【０００６】
かかる目的を達成するための本発明の要旨とするところは、次の各項の発明に存する。
請求項１の発明は、第１の集合内のＮ個の要素と第２の集合内のＮ個の要素との対応を機械学習するために用いる行列であって、第１の集合内の要素は第２の集合内の要素と１対１に対応しており、前記行列の大きさは少なくともＮ×Ｎ以上であり、前記行列の成分には、第１の集合内の要素と第２の集合内の要素とが対応していることを示す第１情報と、第１の集合内の要素と第２の集合内の要素とは対応していないことを示す第２情報のいずれかを記憶させ、前記行列の各行には、第１情報が１つだけあり、他は第２情報であり、前記行列の各列には、第１情報が１つだけあり、他は第２情報であることを満たした状態にする行列生成手段と、前記行列生成手段によって生成された行列を用いて、各列及び各行で、損失関数による値を算出し、該値を合成した値を用いて機械学習する学習手段を有する情報処理装置である。
【０００７】
請求項２の発明は、第１の集合内のＮ個の要素と第２の集合内のＭ個の要素との対応を機械学習するために用いる行列であって、前記行列の大きさは少なくとも（Ｎ＋１）×（Ｍ＋１）以上であり、前記行列の成分には、第１の集合内の要素と第２の集合内の要素とが対応していることを示す第１情報と、第１の集合内の要素と第２の集合内の要素とは対応していないことを示す第２情報のいずれかを記憶させ、第１の集合内の第１要素が第２の集合内の各要素と対応していない場合は、該第１要素に対応する行における第（Ｍ＋１）列に第１情報を記憶させ、第２の集合内の第２要素が第１の集合内の各要素と対応していない場合は、該第２要素に対応する列における第（Ｎ＋１）行に第１情報を記憶させ、前記行列の各行には、第１情報が１つだけあり、他は第２情報であり、前記行列の各列には、第１情報が１つだけあり、他は第２情報であることを満たした状態にする行列生成手段と、前記行列生成手段によって生成された行列を用いて、各列及び各行で、損失関数による値を算出し、該値を合成した値を用いて機械学習する学習手段を有する情報処理装置である。
【０００８】
請求項３の発明は、前記行列の大きさは、（ＮＭａｘ＋１）×（ＭＭａｘ＋１）以上であり、ただし、ＮＭａｘは前記Ｎより大であり、ＭＭａｘは前記Ｍより大であり、前記行列生成手段は、前記行列の成分に、前記第１情報と前記第２情報の他に、第１の集合内の要素ではないもの、又は、第２の集合内の要素ではないものとの対応であることを示す第３情報を記憶させ、前記学習手段は、前記第３情報を前記損失関数には用いない、請求項２に記載の情報処理装置である。
【０００９】
請求項４の発明は、前記行列の大きさは少なくとも（Ｎ＋１）×（Ｍ＋２）以上であり、前記行列生成手段は、前記第１の集合内の第１要素が第２の集合内の各要素と対応していない場合であって第１の状態である場合は、該第１要素に対応する行における第（Ｍ＋１）列に第１情報を記憶させ、前記第１の集合内の第１要素が第２の集合内の各要素と対応していない場合であって第２の状態である場合は、該第１要素に対応する行における第（Ｍ＋２）列に第１情報を記憶させる、請求項２に記載の情報処理装置である。
【００１０】
請求項５の発明は、前記第１の集合の要素は、動画像のフレームから抽出した移動体とし、前記第２の集合の要素は、前記動画像の前記フレームとは異なるフレームから抽出した移動体であり、前記学習手段は、異なるフレーム間での移動体の対応を機械学習する、請求項１から４のいずれか１項に記載の情報処理装置である。
【００１１】
請求項６の発明は、第１の集合内の複数の要素に対応する入力ベクトル又は中間層ベクトルに対して同じ関数を適用する第１の関数手段と、第２の集合内の複数の要素に対応する入力ベクトル又は中間層ベクトルに対して同じ関数を適用する第２の関数手段と、前記第１の関数手段による処理結果の要素と前記第２の関数手段による処理結果の要素との組み合わせを用いて機械学習する学習手段を有する情報処理装置である。
【００１２】
請求項７の発明は、第１の集合内の要素１つと第２の集合内の要素１つからなる組み合わせの各々に対応する入力ベクトル又は中間層ベクトルに対して同じ関数を適用する関数手段を用いて機械学習する学習手段を有する情報処理装置である。
【００１３】
請求項８の発明は、前記組み合わせを分割して、第３の集合と第４の集合に分割する分割手段と、前記第３の集合内の複数の要素に対応する入力ベクトル又は中間層ベクトルに対して同じ関数を適用する第３の関数手段と、前記第４の集合内の複数の要素に対応する入力ベクトル又は中間層ベクトルに対して同じ関数を適用する第４の関数手段をさらに有し、前記学習手段は、前記第３の関数手段による処理結果の要素と前記第４の関数手段による処理結果の要素との組み合わせを用いて機械学習する、請求項６に記載の情報処理装置である。
【００１４】
請求項９の発明は、前記第１の関数手段は、第１の集合内の要素に対応する入力ベクトル又は中間層ベクトルの要素であるスカラー値の統計的値を算出し、該統計的値に対して関数を適用し、前記第２の関数手段は、第２の集合内に対応する入力ベクトル又は中間層ベクトルの要素である要素のスカラー値の統計的値を算出し、該統計的値に対して関数を適用する、請求項６に記載の情報処理装置である。
【００１５】
請求項１０の発明は、前記組み合わせ内の要素に対応する入力ベクトル又は中間層ベクトルの要素であるスカラー値の統計的値を算出し、該統計的値に対して関数を適用する第５の関数手段をさらに有し、前記学習手段は、前記第５の関数手段による処理結果の要素を用いて機械学習する、請求項６に記載の情報処理装置である。
【００１６】
請求項１１の発明は、請求項１から９のいずれか１項に記載された情報処理装置によって機械学習された学習モデルを用いて、第１の集合内のＮ個の要素と第２の集合内のＭ個の要素との対応を判断する判断手段を有する情報処理装置である。
【００１７】
請求項１２の発明は、第１の集合内のＮ個の要素と第２の集合内のＮ個の要素との対応を機械学習するために用いる行列であって、第１の集合内の要素は第２の集合内の要素と１対１に対応しており、前記行列の大きさは少なくともＮ×Ｎ以上であり、前記行列の成分には、第１の集合内の要素と第２の集合内の要素とが対応していることを示す第１情報と、第１の集合内の要素と第２の集合内の要素とは対応していないことを示す第２情報のいずれかを記憶させ、前記行列の各行には、第１情報が１つだけあり、他は第２情報であり、前記行列の各列には、第１情報が１つだけあり、他は第２情報であることを満たした状態にする行列生成ステップと、前記行列生成ステップによって生成された行列を用いて、各列及び各行で、損失関数による値を算出し、該値を合成した値を用いて機械学習する学習ステップを有する情報処理方法である。
【００１８】
請求項１３の発明は、第１の集合内のＮ個の要素と第２の集合内のＭ個の要素との対応を機械学習するために用いる行列であって、前記行列の大きさは少なくとも（Ｎ＋１）×（Ｍ＋１）以上であり、前記行列の成分には、第１の集合内の要素と第２の集合内の要素とが対応していることを示す第１情報と、第１の集合内の要素と第２の集合内の要素とは対応していないことを示す第２情報のいずれかを記憶させ、第１の集合内の第１要素が第２の集合内の各要素と対応していない場合は、該第１要素に対応する行における第（Ｍ＋１）列に第１情報を記憶させ、第２の集合内の第２要素が第１の集合内の各要素と対応していない場合は、該第２要素に対応する列における第（Ｎ＋１）行に第１情報を記憶させ、前記行列の各行には、第１情報が１つだけあり、他は第２情報であり、前記行列の各列には、第１情報が１つだけあり、他は第２情報であることを満たした状態にする行列生成ステップと、前記行列生成ステップによって生成された行列を用いて、各列及び各行で、損失関数による値を算出し、該値を合成した値を用いて機械学習する学習ステップを有する情報処理方法である。
【００１９】
請求項１４の発明は、第１の集合内の複数の要素に対応する入力ベクトル又は中間層ベクトルに対して同じ関数を適用する第１の関数ステップと、第２の集合内の複数の要素に対応する入力ベクトル又は中間層ベクトルに対して同じ関数を適用する第２の関数ステップと、前記第１の関数ステップによる処理結果の要素と前記第２の関数ステップによる処理結果の要素との組み合わせを用いて機械学習する学習ステップを有する情報処理方法である。
【００２０】
請求項１５の発明は、第１の集合内の要素１つと第２の集合内の要素１つからなる組み合わせの各々に対応する入力ベクトル又は中間層ベクトルに対して同じ関数を適用する関数ステップを用いて機械学習する学習ステップを有する情報処理方法である。
【００２１】
請求項１６の発明は、請求項１２から１５のいずれか１項に記載された情報処理方法によって機械学習された学習モデルを用いて、第１の集合内のＮ個の要素と第２の集合内のＭ個の要素との対応を判断する判断ステップを有する情報処理方法である。
【００２２】
請求項１７の発明は、コンピュータを、第１の集合内のＮ個の要素と第２の集合内のＮ個の要素との対応を機械学習するために用いる行列であって、第１の集合内の要素は第２の集合内の要素と１対１に対応しており、前記行列の大きさは少なくともＮ×Ｎ以上であり、前記行列の成分には、第１の集合内の要素と第２の集合内の要素とが対応していることを示す第１情報と、第１の集合内の要素と第２の集合内の要素とは対応していないことを示す第２情報のいずれかを記憶させ、前記行列の各行には、第１情報が１つだけあり、他は第２情報であり、前記行列の各列には、第１情報が１つだけあり、他は第２情報であることを満たした状態にする行列生成手段と、前記行列生成手段によって生成された行列を用いて、各列及び各行で、損失関数による値を算出し、該値を合成した値を用いて機械学習する学習手段として機能させる情報処理プログラムである。
【００２３】
請求項１８の発明は、コンピュータを、第１の集合内のＮ個の要素と第２の集合内のＭ個の要素との対応を機械学習するために用いる行列であって、前記行列の大きさは少なくとも（Ｎ＋１）×（Ｍ＋１）以上であり、前記行列の成分には、第１の集合内の要素と第２の集合内の要素とが対応していることを示す第１情報と、第１の集合内の要素と第２の集合内の要素とは対応していないことを示す第２情報のいずれかを記憶させ、第１の集合内の第１要素が第２の集合内の各要素と対応していない場合は、該第１要素に対応する行における第（Ｍ＋１）列に第１情報を記憶させ、第２の集合内の第２要素が第１の集合内の各要素と対応していない場合は、該第２要素に対応する列における第（Ｎ＋１）行に第１情報を記憶させ、前記行列の各行には、第１情報が１つだけあり、他は第２情報であり、前記行列の各列には、第１情報が１つだけあり、他は第２情報であることを満たした状態にする行列生成手段と、前記行列生成手段によって生成された行列を用いて、各列及び各行で、損失関数による値を算出し、該値を合成した値を用いて機械学習する学習手段として機能させる情報処理プログラムである。
【００２４】
請求項１９の発明は、コンピュータを、第１の集合内の複数の要素に対応する入力ベクトル又は中間層ベクトルに対して同じ関数を適用する第１の関数手段と、第２の集合内の複数の要素に対応する入力ベクトル又は中間層ベクトルに対して同じ関数を適用する第２の関数手段と、前記第１の関数手段による処理結果の要素と前記第２の関数手段による処理結果の要素との組み合わせを用いて機械学習する学習手段として機能させる情報処理プログラムである。
【００２５】
請求項２０の発明は、コンピュータを、第１の集合内の要素１つと第２の集合内の要素１つからなる組み合わせの各々に対応する入力ベクトル又は中間層ベクトルに対して同じ関数を適用する関数手段を用いて機械学習する学習手段として機能させる情報処理プログラムである。
【００２６】
請求項２１の発明は、コンピュータを、請求項１７から２０のいずれか１項に記載された情報処理プログラムによって機械学習された学習モデルを用いて、第１の集合内のＮ個の要素と第２の集合内のＭ個の要素との対応を判断する判断手段として機能させる情報処理プログラムである。
【発明の効果】
【００２７】
請求項１の情報処理装置によれば、第１の集合内の要素と第２の集合内の要素との対応を機械学習させる場合に、他の対応の関係を機械学習に反映させることができる。
【００２８】
請求項２の情報処理装置によれば、第１の集合内の要素と第２の集合内の要素との対応を機械学習させる場合に、他の対応の関係を機械学習に反映させることができる。
【００２９】
請求項３の情報処理装置によれば、第１の集合内の要素数としてＮＭａｘ、第２の集合内の要素数としてＭＭａｘまで対応することができるようになる。
【００３０】
請求項４の情報処理装置によれば、第１の集合内の第１要素が第２の集合内の各要素と対応していない場合であって、第１の状態と第２の状態を表すことができる。
【００３１】
請求項５の情報処理装置によれば、動画像における異なるフレーム間での移動体の対応を機械学習することができる。
【００３２】
集合内の各要素に対して異なる関数を用いた場合、要素数が多いと収束しない場合があるが、請求項６の情報処理装置によれば、集合内の要素数が多い場合でも収束させて機械学習させることができる。
【００３３】
第１の集合内の要素１つと第２の集合内の要素１つからなる組み合わせの各々に対応する入力ベクトル又は中間層ベクトルに対して異なる関数を用いた場合、要素数が多いと収束しない場合があるが、請求項７の情報処理装置によれば、集合内の要素数が多い場合でも収束させて機械学習させることができる。
【００３４】
請求項８の情報処理装置によれば、集合内の要素数が多い場合でも収束させて機械学習させることができる。
【００３５】
請求項９の情報処理装置によれば、第１の集合内の要素と第２の集合内の要素との対応を機械学習させる場合に、対象としている要素間の対応だけでなく、他の対応の関係を機械学習に反映させることができる。
【００３６】
請求項１０の情報処理装置によれば、対象としている要素間の対応だけでなく、他の対応の関係を機械学習に反映させることができる。
【００３７】
請求項１１の情報処理装置によれば、第１の集合内のＮ個の要素と第２の集合内のＭ個の要素との対応を判断することができる。
【００３８】
請求項１２の情報処理方法によれば、第１の集合内の要素と第２の集合内の要素との対応を機械学習させる場合に、他の対応の関係を機械学習に反映させることができる。
【００３９】
請求項１３の情報処理方法によれば、第１の集合内の要素と第２の集合内の要素との対応を機械学習させる場合に、他の対応の関係を機械学習に反映させることができる。
【００４０】
集合内の各要素に対して異なる関数を用いた場合、要素数が多いと収束しない場合があるが、請求項１４の情報処理方法によれば、集合内の要素数が多い場合でも収束させて機械学習させることができる。
【００４１】
第１の集合内の要素１つと第２の集合内の要素１つからなる組み合わせの各々に対応する入力ベクトル又は中間層ベクトルに対して異なる関数を用いた場合、要素数が多いと収束しない場合があるが、請求項１５の情報処理方法によれば、集合内の要素数が多い場合でも収束させて機械学習させることができる。
【００４２】
請求項１６の情報処理方法によれば、第１の集合内のＮ個の要素と第２の集合内のＭ個の要素との対応を判断することができる。
【００４３】
請求項１７の情報処理プログラムによれば、第１の集合内の要素と第２の集合内の要素との対応を機械学習させる場合に、他の対応の関係を機械学習に反映させることができる。
【００４４】
請求項１８の情報処理プログラムによれば、第１の集合内の要素と第２の集合内の要素との対応を機械学習させる場合に、他の対応の関係を機械学習に反映させることができる。
【００４５】
集合内の各要素に対して異なる関数を用いた場合、要素数が多いと収束しない場合があるが、請求項１９の情報処理プログラムによれば、集合内の要素数が多い場合でも収束させて機械学習させることができる。
【００４６】
第１の集合内の要素１つと第２の集合内の要素１つからなる組み合わせの各々に対応する入力ベクトル又は中間層ベクトルに対して異なる関数を用いた場合、要素数が多いと収束しない場合があるが、請求項２０の情報処理プログラムによれば、集合内の要素数が多い場合でも収束させて機械学習させることができる。
【００４７】
請求項２１の情報処理プログラムによれば、第１の集合内のＮ個の要素と第２の集合内のＭ個の要素との対応を判断することができる。
【図面の簡単な説明】
【００４８】
【図１】本実施の形態の構成例についての概念的なモジュール構成図である。
【図２】第１の集合内の要素と第２の集合内の要素との対応関係の例を示す説明図である。
【図３】第１の集合内の要素と第２の集合内の要素との対応関係の例を示す説明図である。
【図４】第１の集合内の要素と第２の集合内の要素との対応関係の例を示す説明図である。
【図５】対応関係を示す行列の例を示す説明図である。
【図６】対応関係を示す行列の例を示す説明図である。
【図７】機械学習の構造例を示す説明図である。
【図８】機械学習の構造例を示す説明図である。
【図９】機械学習における関数の適用例を示す説明図である。
【図１０】機械学習における関数の適用例を示す説明図である。
【図１１】機械学習における関数の適用例を示す説明図である。
【図１２】移動体追跡の機械学習に、本実施の形態を利用した場合の構成例についての概念的なモジュール構成図である。
【図１３】本実施の形態を利用したシステム構成例を示す説明図である。
【図１４】本実施の形態による処理例を示すフローチャートである。
【図１５】本実施の形態による処理例を示す説明図である。
【図１６】抽出データテーブルのデータ構造例を示す説明図である。
【図１７】本実施の形態による処理例を示す説明図である。
【図１８】本実施の形態による処理例を示す説明図である。
【図１９】本実施の形態による処理例を示す説明図である。
【図２０】本実施の形態による処理例を示す説明図である。
【図２１】本実施の形態による処理例を示す説明図である。
【図２２】本実施の形態で対象とする行列の例を示す説明図である。
【図２３】対応関係を示すＮ×Ｎ以上の大きさの行列の例を示す説明図である。
【図２４】本実施の形態を実現するコンピュータのハードウェア構成例を示すブロック図である。
【発明を実施するための形態】
【００４９】
以下、図面に基づき本発明を実現するにあたっての好適な一実施の形態の例を説明する。
図１は、本実施の形態の構成例についての概念的なモジュール構成図を示している。
なお、モジュールとは、一般的に論理的に分離可能なソフトウェア（「ソフトウェア」の解釈として、コンピュータ・プログラムを含む）、ハードウェア等の部品を指す。したがって、本実施の形態におけるモジュールはコンピュータ・プログラムにおけるモジュールのことだけでなく、ハードウェア構成におけるモジュールも指す。それゆえ、本実施の形態は、それらのモジュールとして機能させるためのコンピュータ・プログラム（例えば、コンピュータにそれぞれの手順を実行させるためのプログラム、コンピュータをそれぞれの手段として機能させるためのプログラム、コンピュータにそれぞれの機能を実現させるためのプログラム）、システム及び方法の説明をも兼ねている。ただし、説明の都合上、「記憶する」、「記憶させる」、これらと同等の文言を用いるが、これらの文言は、実施の形態がコンピュータ・プログラムの場合は、記憶装置に記憶させる、又は記憶装置に記憶させるように制御するという意味である。また、モジュールは機能に一対一に対応していてもよいが、実装においては、１モジュールを１プログラムで構成してもよいし、複数モジュールを１プログラムで構成してもよく、逆に１モジュールを複数プログラムで構成してもよい。また、複数モジュールは１コンピュータによって実行されてもよいし、分散又は並列環境におけるコンピュータによって１モジュールが複数コンピュータで実行されてもよい。なお、１つのモジュールに他のモジュールが含まれていてもよい。また、以下、「接続」とは物理的な接続の他、論理的な接続（例えば、データの授受、指示、データ間の参照関係、ログイン等）の場合にも用いる。「予め定められた」とは、対象としている処理の前に定まっていることをいい、本実施の形態による処理が始まる前はもちろんのこと、本実施の形態による処理が始まった後であっても、対象としている処理の前であれば、そのときの状況・状態にしたがって、又はそれまでの状況・状態にしたがって定まることの意を含めて用いる。「予め定められた値」が複数ある場合は、それぞれ異なった値であってもよいし、２以上の値（「２以上の値」には、もちろんのことながら、全ての値も含む）が同じであってもよい。また、「Ａである場合、Ｂをする」という記載は、「Ａであるか否かを判断し、Ａであると判断した場合はＢをする」の意味で用いる。ただし、Ａであるか否かの判断が不要である場合を除く。また、「Ａ、Ｂ、Ｃ」等のように事物を列挙した場合は、断りがない限り例示列挙であり、その１つのみを選んでいる場合（例えば、Ａのみ）を含む。
また、システム又は装置とは、複数のコンピュータ、ハードウェア、装置等がネットワーク（「ネットワーク」には、一対一対応の通信接続を含む）等の通信手段で接続されて構成されるほか、１つのコンピュータ、ハードウェア、装置等によって実現される場合も含まれる。「装置」と「システム」とは、互いに同義の用語として用いる。もちろんのことながら、「システム」には、人為的な取り決めである社会的な「仕組み」（つまり、社会システム）にすぎないものは含まない。
また、各モジュールによる処理毎に又はモジュール内で複数の処理を行う場合はその処理毎に、対象となる情報を記憶装置から読み込み、その処理を行った後に、処理結果を記憶装置に書き出すものである。したがって、処理前の記憶装置からの読み込み、処理後の記憶装置への書き出しについては、説明を省略する場合がある。なお、ここでの記憶装置としては、ハードディスクドライブ、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙの略）、外部記憶媒体、通信回線を介した記憶装置、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔの略）内のレジスタ等を含んでいてもよい。
【００５０】
本実施の形態である情報処理装置１００は、機械学習機能を有しており、図１の例に示すように、教師データ記憶モジュール１０５、行列生成モジュール１１０、機械学習モジュール１１５を有している。
情報処理装置１００は、第１の集合内のＮ個の要素と第２の集合内のＭ個の要素との対応を機械学習する。つまり、Ｎ対Ｍの対を推定するニューラルネットを生成するものである。なお、ＮとＭは、１以上の整数であるが、一般的には複数である。
【００５１】
教師データ記憶モジュール１０５は、行列生成モジュール１１０と接続されている。教師データ記憶モジュール１０５は、機械学習用の教師データを記憶している。第１の集合内の要素と第２の集合内の要素を記憶している。この要素として、例えば、後述するように、動画像のあるフレーム内に撮影されている移動体（オブジェクト）が該当する。具体的には、その移動体の特徴を示す情報が記憶されている。
【００５２】
行列生成モジュール１１０は、教師データ記憶モジュール１０５、機械学習モジュール１１５と接続されている。第１の集合内のＮ個の要素と第２の集合内のＮ個の要素との対応を機械学習するために用いる行列を生成する。
この行列の大きさは、少なくともＮ×Ｎ（Ｎ行Ｎ列の大きさである行列を示す表記である）以上である。Ｎは、０以上の整数である。ただし、一般的には、Ｎは、２以上の整数である。ここで、第１の集合内の要素は第２の集合内の要素と１対１に対応している。つまり、両者の集合内の要素に過不足なく対応している状態である。なお、ここで「過不足なく」とは、念のために説明すると、両集合の各要素を１対１に対応させた状態は、両者の集合内に対応していない要素はなく、２つ以上の要素に対応している要素はない状態である。
行列の大きさは、第１の集合（第２の集合）内の要素数であるＮによって規定される。ただし、「少なくとも」としているので、Ｎ×Ｎ以上の大きさであればよい。そして、後述するように、行列の大きさを固定としてもよい。
【００５３】
行列の成分には、第１の集合内の要素と第２の集合内の要素とが対応していることを示す第１情報と、第１の集合内の要素と第２の集合内の要素とは対応していないことを示す第２情報のいずれかを記憶させる。
このようにすることによって、行列の各行には、第１情報が１つだけあり、他は第２情報であり、行列の各列には、第１情報が１つだけあり、他は第２情報であることを満たした状態にする。
【００５４】
Ｎ×Ｎの行列である場合、第１の集合内の要素は第２の集合内の要素と１対１に対応していることを前提としている。したがって、第１の集合内の要素に対応する要素が第２の集合内にない場合、又は、第１の集合内にない要素が第２の集合内にある場合に適用することができない。
そこで、次のように行列の大きさを設定してもよい。
【００５５】
行列生成モジュール１１０は、第１の集合内のＮ個の要素と第２の集合内のＭ個の要素との対応を機械学習するために用いる行列を生成する。
この行列の大きさは、少なくとも（Ｎ＋１）×（Ｍ＋１）以上としてもよい。Ｎ、Ｍは、０以上の整数である。ただし、一般的には、Ｎ、Ｍは、２以上の整数である。また、ＮとＭの両者は、等しい値であってもよいし、異なる値であってもよい。
行列の大きさは、第１の集合内の要素数であるＮと第２の集合内の要素数であるＭによって規定される。ただし、「少なくとも」としているので、（Ｎ＋１）×（Ｍ＋１）以上の大きさであればよい。そして、後述するように、行列の大きさを固定としてもよい。
【００５６】
行列の成分には、第１の集合内の要素と第２の集合内の要素とが対応していることを示す第１情報と、第１の集合内の要素と第２の集合内の要素とは対応していないことを示す第２情報のいずれかを記憶させる。
第１の集合内の第１要素が第２の集合内の各要素と対応していない場合は、その第１要素に対応する行における第（Ｍ＋１）列に第１情報を記憶させる。ここで「第１の集合内の第１要素が第２の集合内の各要素と対応していない」は、その第１要素は、第２の集合内の全ての要素と対応していないことを示している。
そして、第２の集合内の第２要素が第１の集合内の各要素と対応していない場合は、その第２要素に対応する列における第（Ｎ＋１）行に第１情報を記憶させる。ここで「第２の集合内の第２要素が第１の集合内の各要素と対応していない」は、その第２要素は、第１の集合内の全ての要素と対応していないことを示している。
すなわち、第（Ｍ＋１）列に第１情報が記憶されていることは、第１の集合内の第１要素が第２の集合内の各要素と対応していないことを示している。逆に、第（Ｍ＋１）列に第２情報が記憶されていることは、第１の集合内の第１要素が第２の集合内のいずれかの要素と対応していることを示している。そして、第（Ｎ＋１）行に第１情報が記憶されていることは、第２の集合内の第２要素が第１の集合内の各要素と対応していないことを示している。逆に、第（Ｎ＋１）行に第２情報が記憶されていることは、第２の集合内の第２要素が第１の集合内のいずれかの要素と対応していることを示している。
このようにすることによって、行列の各行には、第１情報が１つだけあり、他は第２情報であり、行列の各列には、第１情報が１つだけあり、他は第２情報であることを満たした状態にする。
【００５７】
機械学習モジュール１１５は、行列生成モジュール１１０と接続されている。機械学習モジュール１１５は、行列生成モジュール１１０によって生成された行列を用いて、各列及び各行で、損失関数（Ｌｏｓｓ  Ｆｕｎｃｔｉｏｎ）による値を算出し、その値を合成した値を用いて機械学習する。ここで損失関数は、ラベルと出力の誤差を計算する関数であり、損失関数として、機械学習分野では、交差エントロピー（ｃｒｏｓｓ  ｅｎｔｒｏｐｙ）が一般的に用いられている。
【００５８】
また、行列の大きさとして、（ＮＭａｘ＋１）×（ＭＭａｘ＋１）以上としてもよい。つまり、行列の大きさを予め定められた大きさとしてもよい。
ただし、ＮＭａｘはＮより大であり、ＭＭａｘはＭより大である。ＮＭａｘは、第１の集合で想定される最大の要素数とし、ＭＭａｘは、第２の集合で想定される最大の要素数とすればよい。
そして、行列生成モジュール１１０は、行列の成分に、第１情報と第２情報の他に、第１の集合内の要素ではないもの、又は、第２の集合内の要素ではないものとの対応であることを示す第３情報を記憶させる。ここでの第３情報は、いわゆるドントケア（ｄｏｎ’ｔ  ｃａｒｅ）情報である。
そして、機械学習モジュール１１５は、第３情報を損失関数には用いないようにする。つまり、ドントケア情報は用いずに、第１情報と第２情報だけで損失関数を適用する。
【００５９】
また、行列の大きさは少なくとも（Ｎ＋１）×（Ｍ＋２）以上としてもよい。
そして、行列生成モジュール１１０は、第１の集合内の第１要素が第２の集合内の各要素と対応していない場合であって第１の状態である場合は、その第１要素に対応する行における第（Ｍ＋１）列に第１情報を記憶させ、第１の集合内の第１要素が第２の集合内の各要素と対応していない場合であって第２の状態である場合は、その第１要素に対応する行における第（Ｍ＋２）列に第１情報を記憶させる。
「第１の集合内の第１要素が第２の集合内の各要素と対応していない場合」として、２つの状態がある場合に、それをも機械学習できるようにしたものである。
ここで第１の状態として、例えば、人物が左から右へ移動したことによってフレーム画像から消えたことを示し、第２の状態として、例えば、人物が右から左へ移動したことによってフレーム画像から消えたことを示すようにしてもよい。
【００６０】
なお、この行列の列数を増やしているが、もちろんのことながら、行数を増やしてもよい。つまり、行列の大きさは少なくとも（Ｎ＋２）×（Ｍ＋１）以上としてもよい。
そして、その場合、行列生成モジュール１１０は、第２の集合内の第２要素が第１の集合内の各要素と対応していない場合であって第３の状態である場合は、その第２要素に対応する列における第（Ｎ＋１）行に第１情報を記憶させ、第２の集合内の第２要素が第１の集合内の各要素と対応していない場合であって第４の状態である場合は、その第２要素に対応する列における第（Ｎ＋２）行に第１情報を記憶させる。
「第２の集合内の第２要素が第１の集合内の各要素と対応していない場合」として、２つの状態がある場合に、それをも機械学習できるようにしたものである。
ここで第３の状態として、例えば、人物が左から右へ移動したことによってフレーム画像に入ってきたことを示し、第４の状態として、例えば、人物が右から左へ移動したことによってフレーム画像に入ってきたことを示すようにしてもよい。
もちろんのことながら、行列の列数、行数を３以上増やしてもよい。つまり、「第１の集合内の第１要素が第２の集合内の各要素と対応していない場合」又は「第２の集合内の第２要素が第１の集合内の各要素と対応していない場合」として、３つ以上の状態がある場合に、それをも機械学習できるようにしている。
【００６１】
また、第１の集合の要素は、動画像のフレームＡから抽出した移動体とし、第２の集合の要素は、その動画像のフレームＡとは異なるフレームＢから抽出した移動体としてもよい。
そして、機械学習モジュール１１５は、異なるフレーム間での移動体の対応を機械学習するようにしてもよい。これによって機械学習された機械学習モデルは、動画像内の人等の移動体を追跡することができるようになる。
詳細な説明は、図１２以降の図を用いて述べる。
【００６２】
また、機械学習モジュール１１５は、前述の行列を用いて、次のような機械学習を行う。
第１の集合内の複数の要素に対応する入力ベクトル又は中間層ベクトルに対して同じ関数を適用する。なお、「複数の要素に対応する入力ベクトル又は中間層ベクトル」の解釈について説明する。各要素は、「入力ベクトル又は中間層ベクトル」によって構成されている。集合内の要素は複数あるので、「入力ベクトル又は中間層ベクトル」も要素の数と同数の複数ある。以下の「複数の要素に対応する入力ベクトル又は中間層ベクトル」についても、その解釈は同様である。
また、第２の集合内の複数の要素に対応する入力ベクトル又は中間層ベクトルに対して同じ関数を適用する。
そして、第１の関数による処理結果の要素と第２の関数による処理結果の要素との組み合わせを用いて機械学習する。
なお、各集合内の各要素は、ベクトル値である。そして、それぞれの関数による処理結果の要素も、ベクトル値である。なお、ここでの関数は、機械学習分野では重み付け処理ともいわれる。
第１の関数は、第１の集合内の要素に対応する入力ベクトル又は中間層ベクトルの要素であるスカラー値の統計的値を算出し、その統計的値に対して関数を適用する。ここで「統計的値」として、例えば、最大値、最小値、平均値、最頻値、中央値等がある。
第２の関数は、第２の集合内の要素に対応する入力ベクトル又は中間層ベクトルの要素であるスカラー値の統計的値を算出し、その統計的値に対して関数を適用する。
【００６３】
さらに、機械学習モジュール１１５は、次のような機械学習を行う。
前述の組み合わせを分割して、第３の集合と第４の集合に分割する。
第３の集合内の複数の要素に対応する入力ベクトル又は中間層ベクトルに対して同じ関数を適用する。
また、第４の集合内の複数の要素に対応する入力ベクトル又は中間層ベクトルに対して同じ関数を適用する。
そして、第３の関数による処理結果の要素と第４の関数による処理結果の要素との組み合わせを用いて機械学習する。
また、組み合わせ内の要素に対応する入力ベクトル又は中間層ベクトルの要素であるスカラー値の統計的値を算出し、その統計的値に対して関数を適用する。
そして、第５の関数による処理結果の要素を用いて機械学習する。
【００６４】
情報処理装置１００によって機械学習することによって学習モデルを生成する。
その学習モデルは、第１の集合内のＮ個の要素と第２の集合内のＭ個の要素との対応を判断することができる。
【００６５】
図２は、第１の集合内の要素と第２の集合内の要素との対応関係の例を示す説明図である。
集合２１０内にはｎ個の要素があり、集合２２０にはｍ個の要素がある。
ｘ１とｙ２は対２５２となっており、ｘｎとｙ１は対２５４となっていることを示している。
本実施の形態では、ｎ個の要素をもつ集合２１０とｍ個の要素の集合２２０が与えられたとき、各集合の要素間の対を推定するように機械学習を行う。また、その機械学習により生成された学習モデルによって、各集合の要素間の対を推定する。
集合２１０を集合Ｘとし、集合２２０を集合Ｙとした場合、以下のように表すことができる。
Ｘ：｛ｘ１，．．．ｘｎ｝
Ｙ：｛ｙ１，．．．ｙｍ｝
Ｘ，Ｙ−＞｛（ｘｉ１，ｙｊ１），・・・（ｘｉｐ，ｙｉｐ）｝
【００６６】
図３は、第１の集合内の要素と第２の集合内の要素との対応関係の例を示す説明図である。
本実施の形態が扱う問題は、図３の例に示すような対応関係はないものとする。
図３（ａ）の例に示すように、どの要素ｘ∈Ｘも、２つ以上の要素ｙ∈Ｙと対にならない。
図３（ｂ）の例に示すように、どの要素ｙ∈Ｙも、２つ以上の要素ｘ∈Ｘと対にならない。
例えば、動画像のあるフレーム内に撮影されている人を要素とした集合Ｘと、その後のフレーム内に撮影されている人を要素とした集合Ｙとした場合、１人の人が２つに分かれること、２人の人が１つになることはあり得ない。このことを示している。
【００６７】
図４は、第１の集合内の要素と第２の集合内の要素との対応関係の例を示す説明図である。
図４の例を用いて、従来技術を用いた場合について説明する。この従来技術は、割り当て問題、具体的には、文字認識等の機械学習に用いられるものである。
図４（ａ）の例に示すように、１対１の入力に対する推論をする場合、図４（ｂ）の例に示すように、１対ｎの入力に対する推論をする場合、他の対の情報を参照できず、制約条件を利用できない。
ここでの制約条件とは、図３の例で説明したように、１対ｎ、ｎ対１の対応関係はないということである。具体的には、従来技術を用いた場合、各対だけで機械学習をしてしまうため、他の対のことは何ら考慮されずに対応関係を決定してしまうことになる。しかし、従来技術によって、例えば要素ｘ１と要素ｙ２が最も対応していたとしても、他の対の関係を考慮すれば、次に対応している要素ｘ１と要素ｙ３との対が好ましい場合もあり得る。
本実施の形態では、対象としている対だけでなく、他の対の関係も考慮して機械学習している。
【００６８】
図５は、対応関係を示す行列の例を示す説明図である。これらの行列は、教師データとなるものである。
図５（ａ）の例に示す行列５００は、最小の大きさとした場合の行列の例である。行列５００は、ｎ個の要素とｍ個の要素との関係を示している部分行列５１０に、追加列５２０と追加行５３０を加えたものである。したがって、行列５００の大きさは、（ｎ＋１）×（ｍ＋１）である。部分行列５１０は、要素ｘと要素ｙの対応関係を示している。「１」は対応していることを示しており、「０」は対応していないことを示している。例えば、１行目は、要素ｘ１と要素ｙ２が対応していることを示している。１列目は、要素ｙ１と要素ｘ６が対応していることを示している。
追加列５２０は、部分行列５１０の各行において、「１」があれば「０」を代入し、その行内が全て「０」であれば「１」としている。例えば、１行目は、要素ｘ１と要素ｙ２が対応しているので、追加列５２０の１行目に「０」を代入している。２行目は、要素ｘ２と全ての要素ｙは対応していないので、追加列５２０の２行目に「１」を代入している。同様に、追加行５３０は、部分行列５１０の各列において、「１」があれば「０」を代入し、その列内が全て「０」であれば「１」としている。例えば、１列目は、要素ｙ１と要素ｘ６が対応しているので、追加行５３０の１列目に「０」を代入している。７列目は、要素ｙ７と全ての要素ｘは対応していないので、追加行５３０の７列目に「１」を代入している。
この追加列５２０、追加行５３０によって、行列５００では、各行には必ず「１」が１つあり、各列には必ず「１」が１つあるようにすることができる。
したがって、集合Ｘの要素と集合Ｙの要素が対応していない場合であっても、行列５００内では対応関係があるとして扱うことができ、従来の割り当て問題と同様に扱うことができるようになる。
【００６９】
なお、もちろんのことながら、各行に「１」が１つだけ、各列に「１」が１つだけ、とするのは、ｎ個の要素ｘ、ｍ個の要素ｙによって構成される行列の部分（図５（ａ）では部分行列５１０）である。最終列（追加列５２０）、最終行（追加行５３０）では、「１」は１つだけとは限らず複数あってもよいし、０個であってもよい。
【００７０】
また、部分行列５１０に追加する行と列は、１つとは限らず、複数の行、複数の列であってもよい。要素ｘと要素ｙが対応しない場合の状態に合わせて、その追加行と追加列を使い分けるようにすればよい。例えば、後述する移動体の追跡処理においては、第１の追加列では右から左に移動体が移動したことによって、その移動体の対応がなくなったことを示し、第２の追加列では左から右に移動体が移動したことによって、その移動体の対応がなくなったことを示すようにしてもよい。同様に、第１の追加行では右から左に移動体が移動したことによって、その移動体が出現したことを示し、第２の追加行では左から右に移動体が移動したことによって、その移動体が出現したことを示すようにしてもよい。
もちろんのことながら、複数の追加行と追加列においても、「１」は１つだけとは限らず複数あってもよいし、０個であってもよい。
【００７１】
集合内の要素数は変動するので、行列の大きさも変動してしまう。そこで、集合の大きさを固定して、行列の大きさも固定にすることが、計算機上で処理する場合には望ましい。そこで、集合Ｘの最大となる要素数としてｎｍａｘ、集合Ｙの最大となる要素数としてｍｍａｘを予め定めておく。例えば、ｎｍａｘ＝ｍｍａｘとしてもよい。
図５（ｂ）の例に示す行列５５０は、（ｎｍａｘ）×（ｍｍａｘ）に、追加列５２０と追加行５３０を加えたものである。したがって、行列５５０の大きさは、（ｎｍａｘ＋１）×（ｍｍａｘ＋１）である。
なお、行列の大きさを必要数よりも大きくしたことによって、対応関係を表していないセルは、不定領域５６０（ドントケア：ｄｏｎ’ｔ  ｃａｒｅ）である。この不定領域５６０では、「対の対象が無い」を意味する出力ノードを持つ。ｓｏｆｔｍａｘ関数、損失関数（ｃｒｏｓｓ−ｅｎｔｒｏｐｙ）を用いるためにｏｎｅ−ｈｏｔ  ｖｅｃｔｏｒとするためである。
【００７２】
図６は、対応関係を示す行列の例を示す説明図である。
図６に示す行列５５０は、図５（ｂ）の例に示した行列５５０と同じものである。
各行（各ｘ）、各列（各ｙ）で、損失関数を計算する。そして、その損失関数の算出値の全てを合成する。ここでの合成とは、平均値、合計値等を求めることである。一般的には平均値を用いる。
【００７３】
図７は、機械学習の構造例を示す説明図である。つまり、本実施の形態における機械学習のネットワークアーキテクチャ（Ｎｅｔｗｏｒｋ  Ａｒｃｈｉｔｅｃｔｕｒｅ）を示す。
入力特徴量群７１０と入力特徴量群７２０を、機械学習７５０に入力し、行列５５０を出力する。入力特徴量群７１０、入力特徴量群７２０は、要素の特徴量を示すデータであり、ベクトルデータである。
【００７４】
単純に、Ｆｕｌｌｙ  Ｃｏｎｎｅｃｔｅｄ  Ｌａｙｅｒを用いるとスケールしない。
発明者が実験したところ、ｎ（第１の集合内の要素数）、ｍ（第２の集合内の要素数）を４程度に限定すると機械学習は収束するが、２０まで変動する機械学習では収束しない。理由として、組合せ数の爆発に対して、ネットワーク内の表現能力が追いつかないためと推測される。
組合せ数は、以下のように計算される。
（ｍａｘ（ｎ，  ｍ）＋１）！／（ｍａｘ（ｎ，ｍ）−ｍｉｎ（ｎ，ｍ）＋１）！
この計算式を用いると、
ｎ＝ｍ＝４の場合は、１２０通りの組み合わせである。
ｎ＝ｍ＝２０の場合は、５．１０９０９４２ｅ＋１９通りの組み合わせである。つまり、組合せ数の爆発が起こっている。
【００７５】
図８は、機械学習の構造例を示す説明図である。
本実施の形態が取り扱うデータでは、入力と出力において、各要素は可換（対称）である。例えば、図８に示すように、入力特徴量群７１０内の入力特徴８１２と入力特徴８１４を交換した場合、それによって、出力である行列５５０の対応行８５２と対応行８５４も交換される。そして、入力特徴量群７２０内の入力特徴８２２と入力特徴８２４を交換した場合、それによって、出力である行列５５０の対応列８６２と対応列８６４も交換される。
【００７６】
以下、図９、図１０、図１１の例を用いて同じ関数を適用する場合について説明する。なお、同じ関数を適用する行列は、前述した行列（Ｎ＋１）×（Ｍ＋１）以外に、Ｎ×Ｍの大きさの行列であってもよい。つまり、常に１対１の対応であることが担保されており、２つの集合内の各要素の対応を学習する場合にあっては、Ｎ×Ｍの大きさの行列に適用することが可能である。念のため、１対１の対応であるので、行列の大きさはＮ×Ｎである。
もちろんのことながら、各集合内の要素が変動する可能性があり、２つの集合内の各要素の対応を学習する場合にあっては、行列（Ｎ＋１）×（Ｍ＋１）以上の大きさの行列に同じ関数を適用することが好ましい。
図９は、機械学習における関数の適用例を示す説明図である。
集合内の各要素は可換であることを利用して、集合内の要素に対応する入力ベクトル又は中間層ベクトルに対して同じ関数を適用する。入力の集合である入力特徴量群９１０の各要素に対応する入力ベクトル又は中間層ベクトルに対して、同じ関数を適用して算出値群９１５を算出する。同様に、入力特徴量群９２０の各要素に対応する入力ベクトル又は中間層ベクトルに対して、同じ関数を適用して算出値群９２５を算出する。つまり、要素群に含まれる各要素に対応するベクトル値に対して同一の関数を適用して、別のベクトル値を算出する処理である。
そして、算出値群９１５と算出値群９２５を組み合わせとして、連結データ群９３０を生成する。その連結データ群９３０の各要素に対応する入力ベクトル又は中間層ベクトルに対して、同じ関数を適用して、次の層における入力を生成する。つまり、第一の要素群に含まれる各要素と、第二の要素群に含まれる各要素との組み合わせに対応するベクトル値に対して同一の関数を適用して別のベクトル値を算出する処理である。これらの処理を繰り返す。
つまり、各要素に対して重みを同値に制約する。実装上は、一次元畳込み層（Ｃｏｎｖ１Ｄ）での処理として行えばよい。
なお、ここで同じ関数とは、１つの集合内においての同じ関数であって、異なる集合に適用する関数は異なる関数であってもよい。具体的には、入力特徴量群９１０に適用する関数と入力特徴量群９２０に適用する関数は、異なっていてもよい。
なお、図９の例に示す右側の「ｓａｍｅ  ｗｅｉｇｈｔｓ  ｆｏｒ  ｘ、ｙ」の部分は、「第１の集合内の要素１つと第２の集合内の要素１つからなる組み合わせの各々に対応する入力ベクトル又は中間層ベクトルに対して同じ関数を適用する関数手段を用いて機械学習する学習手段」の一例である。
【００７７】
図１０は、機械学習における関数の適用例を示す説明図である。
図９の例では、データの組み合わせを説明したが、逆に、データの分割を行うようにしてもよい。図１０の例では、連結データ群１０１０を３つに分割する例を示している。
連結データ群１０１０を、スライス要素データ群１０２０、スライス要素データ群１０３０、スライス要素データ群１０４０に分割する。そして、スライス要素データ群１０２０の各要素に対応する入力ベクトル又は中間層ベクトルに対して、同じ関数を適用して算出値群１０２５を算出する。同様に、スライス要素データ群１０３０の各要素に対応する入力ベクトル又は中間層ベクトルに対して、同じ関数を適用して算出値群１０３５を算出する。算出値群１０２５、算出値群１０３５、スライス要素データ群１０４０を組み合わせて、連結データ群１０４５を生成する。そして、連結データ群１０４５の各要素に対応する入力ベクトル又は中間層ベクトルに対して、同じ関数を適用して算出値群１０５０を算出する。
【００７８】
図１１は、機械学習における関数の適用例を示す説明図である。
図１１（ａ）の例は、要素データ群１１１０に含まれる各要素に対応するベクトル値の特定の軸に対応するスカラー値の統計的値を入力とする処理例を示すものである。前述したように、「統計的値」は、最大値、最小値、平均値、最頻値、中央値等であるが、要素が対応することの定義に応じて適宜選択すればよい。例えば、要素間の特徴空間における距離が近いことを示すものであれば最小値、要素間の類似度を示すものであれば最大値等とすればよい。
要素データ群１１１０内のスカラー値から統計的値１１１５を生成して、その統計的値１１１５に対して、同じ関数を適用する。
【００７９】
図１１（ｂ）の例は、第一の要素群に含まれる各要素と、第二の要素群に含まれる各要素との組み合わせに対応するベクトル値の特定の軸に対応するスカラー値の統計的値を入力とする処理例を示すものである。
要素データ群１１５０内のスカラー値から統計的値１１５５を生成して、その統計的値１１５５に対して、同じ関数を適用する。
【００８０】
発明者の実験によって、本実施の形態を用いた場合、第１の集合内の要素数と第２の集合内の要素数が、それぞれ２０以上であっても機械学習が収束することが確認された。
【００８１】
図１２は、移動体追跡の機械学習に、本実施の形態を利用した場合の構成例についての概念的なモジュール構成図である。
前述の実施の形態を、動画像における移動体の追跡に適用した例を示す。動画像内で移動体は、様々に変化する。例えば、遠ざかる、近づくこと等によって、移動体の大きさが変化したり、移動方向を変える、向きを変える、移動体の一部の変化（例えば、人間であれば腕を動かす等）等によって、移動体の画像そのものが変化したりすることになる。したがって、２つの画像にある移動体のマッチング処理だけでは、対応できない場合がある。
一方、動画像である場合、あるフレーム内にある移動体と、その後のフレーム内にある移動体とでは、対応していることが多く、１対１の対応である。ここでの「対応」は、同一の移動体であることを意味している。ただし、そのフレームから出て行く移動体（削除される移動体）、そのフレームに入る移動体（挿入される移動体）があり、対応しない移動体が発生する可能性もある。
そして、従来の技術では類似していない移動体同士と判断されてしまったとしても、他の対のことを考慮すると、対であると判断することが、全体の対応関係上、好ましい場合がある。本実施の形態では、他の対の関係を考慮するようにしている。
【００８２】
移動体追跡機械学習装置１２００は、動画像記憶モジュール１２０５、移動体抽出モジュール１２１０、情報処理装置１００を有している。
動画像記憶モジュール１２０５は、移動体抽出モジュール１２１０と接続されている。動画像記憶モジュール１２０５は、動画像データを記憶している。動画像データには、移動体が撮影されている可能性がある。例えば、カメラ（デジタルカメラ、ビデオカメラ等）が撮影した動画像を、動画像記憶モジュール１２０５は記憶している。動画像データは複数のフレーム（画像）によって構成されている。なお、静止画を撮影するデジタルカメラによる連写であってもよい。この場合、フレームは、連写によって撮影された各画像である。具体的には、監視カメラ（防犯カメラ、防災カメラ等を含む）によって撮影された画像データがある。また、複数のカメラによって撮影された動画像データを記憶していてもよい。一般的なカメラの他に、暗視カメラ、赤外線カメラ、パノラマカメラ等が撮影した動画像データであってもよい。また、カメラは固定された場所に設置されていてもよいし、移動体（自動車、ドローン等）に搭載されたものであってもよい。
【００８３】
移動体抽出モジュール１２１０は、動画像記憶モジュール１２０５、情報処理装置１００と接続されている。移動体抽出モジュール１２１０は、動画像記憶モジュール１２０５内の動画像データの各フレームから、移動体を抽出する。例えば、フレームから移動体の位置、形状、種別、移動体の画像を抽出する。対象とするフレームは、全てのフレームであってもよいし、予め定められた期間内のフレームであってもよいし、等間隔で抽出したフレームであってもよい。なお、移動体を抽出する方法は、既存のＹＯＬＯ等の機械学習等により実現できる。
移動体の位置は、フレーム内の移動体の位置を示す情報である。例えば、移動体の外接矩形の中心の座標、移動体の内接矩形の中心の座標、移動体の重心等であってもよい。以下、移動体の位置を用いた説明をする場合に、例示として外接矩形の中心の座標を用いる。
移動体の形状は、例えば、移動体の外接矩形の形状（高さ、幅）、移動体の内接矩形の形状（高さ、幅）等であってもよい。移動体の形状として、面積（外接矩形の面積、内接矩形の面積、移動体そのものの面積）を含めるようにしてもよい。以下、移動体の形状を用いた説明をする場合に、例示として外接矩形の高さ、幅を用いる。
移動体の種別は、ＹＯＬＯ等の機械学習等によって判別可能な種類である。種類として、具体的には、人間、自動車等がある。なお、特定の物体（個人等）を認識することまでは不要である。
【００８４】
情報処理装置１００は、移動体抽出モジュール１２１０と接続されている。情報処理装置１００は、移動体抽出モジュール１２１０によって抽出された移動体について、２つのフレーム間の移動体の対応を機械学習する。
もちろんのことながら、機械学習が終了（収束）した後は、学習モデルが生成される。そして、その学習モデルを用いて、動画像内の移動体の追跡を行うことができる。
本実施の形態で対象となる移動体とは、カメラに撮影され得るものであって、ある場所から他の場所へ移動する物体であればよい。移動体は、生物であってもよいし、機械等の無生物であってもよい。また、移動として、気流や水流に乗っての受動的消極的な移動であってもよいし、運動器官やエンジン等を用いての積極的な移動であってもよい。移動体として、具体的には、人間、自動車等がある。
【００８５】
図１３は、本実施の形態を利用したシステム構成例を示す説明図である。
移動体追跡機械学習装置１２００は、店舗１３２０内のカメラ１３１０Ａ、カメラ１３１０Ｂ、カメラ１３１０Ｃは、通信回線１３９０を介してそれぞれ接続されている。カメラ１３１０は、ビデオカメラであって動画を撮影する。通信回線１３９０は、無線、有線、これらの組み合わせであってもよく、例えば、通信インフラとしてのインターネット、イントラネット等であってもよい。また、移動体追跡機械学習装置１２００による機能は、クラウドサービスとして実現してもよい。
例えば、店舗１３２０内には、カメラ１３１０Ａが設置されており、店舗１３２０内にいる人間１３３０Ａ、人間１３３０Ｂを撮影している。また、路上には、カメラ１３１０Ｂ、カメラ１３１０Ｃが設置されており、人間１３３０、自動車１３４０等を撮影している。
【００８６】
店舗１３２０に設置されている監視カメラであるカメラ１３１０Ａ、路上に設置されている監視カメラであるカメラ１３１０Ｂ、カメラ１３１０Ｃ等、数多くの監視カメラが設置され、人手での人間１３３０、自動車１３４０等の追跡が困難になりつつある。
そこで、本実施の形態である移動体追跡機械学習装置１２００では、カメラ１３１０が撮影した動画像内で移動体の移動を自動追跡する技術とその自動追跡できるようにするための機械学習の技術を提供する。１つのカメラ１３１０によって撮影された動画像における移動体の追跡であってもよいし、複数のカメラ１３１０によって撮影された動画像の移動体の追跡であってもよい。なお、カメラ１３１０は固定されたものだけでなく、ドローン等に搭載されたものであってもよい。
【００８７】
図１４は、本実施の形態による処理例を示すフローチャートである。
ステップＳ１４０２では、移動体抽出モジュール１２１０は、動画像記憶モジュール１２０５内の動画像から１フレーム分の画像を読み出す。
ステップＳ１４０４では、移動体抽出モジュール１２１０は、そのフレームから移動体を抽出する。具体的には、図１６の例を用いて後述する抽出データテーブル１６００を生成する。
ステップＳ１４０６では、情報処理装置１００は、行列を生成する。具体的には、図５の例で示した行列５５０を生成する。例えば、操作者の操作に応じて、教師データとしての行列５５０を生成する。操作者の操作として、２つのフレーム内の移動体の対応を指定するものである。
【００８８】
ステップＳ１４０８では、情報処理装置１００は、ステップＳ１４０６で生成された行列データを保存する。
ステップＳ１４１０では、情報処理装置１００は、全フレームの処理が終了したか否かを判断し、終了した場合はステップＳ１４１２へ進み、それ以外の場合はステップＳ１４０２へ戻る。
ステップＳ１４１２では、情報処理装置１００は、機械学習を行う。
ステップＳ１４１４では、情報処理装置１００は、学習後の学習モデルを出力する。
【００８９】
図１５は、本実施の形態による処理例を示す説明図である。特に、移動体抽出モジュール１２１０による処理例を示すものである。この例は、前述したＹＯＬＯによる処理例を示す。
フレームｎ：１５００から、人間１５３０、自動車１５４０を抽出する。人間１５３０は、フレームｎ：１５００に撮影された人間の外接矩形を示すものである。自動車１５４０は、フレームｎ：１５００に撮影された自動車の外接矩形を示すものである。
ここで移動体の外接矩形を、左上座標と右下座標で記す。具体的には、外接矩形の表記として、
左上座標−右下座標
のように記す。
そして、移動体の番号は、フレームｎ：１５００内の右上から左方向に続いて下方向に走査して順番に付するものとする。図１５の例では、ｎ１、ｎ２が移動体の番号に該当する。
具体的には、人間１５３０の外接矩形は、
（ｘｎ１ｓ，ｙｎ１ｓ）−（ｘｎ１ｅ，ｙｎ１ｅ）
となり、自動車１５４０の外接矩形は、
（ｘｎ２ｓ，ｙｎ２ｓ）−（ｘｎ２ｅ，ｙｎ２ｅ）
となる。
【００９０】
移動体を示すデータは、移動体の番号、外接矩形の最左座標、最上座標、最右座標、最下座標、移動体の種別、その移動体の画像である。例えば、移動体抽出モジュール１２１０は、抽出データテーブル１６００を生成する。図１６は、抽出データテーブル１６００のデータ構造例を示す説明図である。
抽出データテーブル１６００は、番号欄１６０２、左座標欄１６０４、上座標欄１６０６、右座標欄１６０８、下座標欄１６１０、種別欄１６１２、画像欄１６１４を有している。番号欄１６０２は、移動体の番号を記憶している。左座標欄１６０４は、その移動体の外接矩形の最左座標を記憶している。上座標欄１６０６は、その移動体の外接矩形の最上座標を記憶している。右座標欄１６０８は、その移動体の外接矩形の最右座標を記憶している。下座標欄１６１０は、その移動体の外接矩形の最下座標を記憶している。種別欄１６１２は、その移動体の種別を記憶している。画像欄１６１４は、その移動体の画像を記憶している。例えば、左座標欄１６０４から下座標欄１６１０までの情報を用いて、フレームか切り抜いた画像を記憶している。
例えば、抽出データテーブル１６００の１行目では、番号：ｎ＿１の移動体は、左座標が「Ｘｎ１ｓ」であり、上座標が「Ｙｎ１ｓ」であり、右座標が「Ｘｎ１ｅ」であり、下座標が「Ｙｎ１ｅ」であり、種別が「人間」であり、その人間の画像があることを示しており、２行目では、番号：ｎ＿２の移動体は、左座標が「Ｘｎ２ｓ」であり、上座標が「Ｙｎ２ｓ」であり、右座標が「Ｘｎ２ｅ」であり、下座標が「Ｙｎ２ｅ」であり、種別が「自動車」であり、その自動車の画像があることを示している。
【００９１】
図１７は、本実施の形態による処理例を示す説明図である。
図１７の例は、フレームｎ：１７００Ａを基準フレームとし、フレームｎ＋１：１７００Ｂを対象フレームとしたものである。フレームｎ：１７００Ａ内の移動体１７３０Ａとフレームｎ＋１：１７００Ｂ内の移動体１７３０Ｂを比較して、同じ移動体であるか否かを判断するための比較用データを生成する処理について説明する。
各移動体の外接矩形の中心の座標を算出する。具体的には、外接矩形の最左座標と最右座標のＸ座標を加算して２で除算し、外接矩形の最上座標と最下座標のＹ座標を加算して２で除算することによって、外接矩形の中心の座標を算出する。
移動体１７３０Ａの中心の座標は、以下の通りである。
（（ｘｎ１ｓ＋ｘｎ１ｅ）／２，（ｙｎ１ｓ＋ｙｎ１ｅ）／２）
移動体１７３０Ｂの中心の座標は、以下の通りである。
（（ｘｎ＋１ １ｓ＋ｘｎ＋１ １ｅ）／２，（ｙｎ＋１ １ｓ＋ｙｎ＋１ １ｅ）／２）
また、各移動体の外接矩形の高さと幅を算出する。具体的には、外接矩形の最上座標と最下座標のＹ座標の差分を高さとし、外接矩形の最左座標と最右座標のＸ座標との差分を幅とすればよい。
【００９２】
図１８は、本実施の形態による処理例を示す説明図である。
図１８（ａ）の例に示すフレーム１８１０は、動画像内の１つのフレーム画像である。図１８（ｂ）の例に示すフレーム１８２０は、フレーム１８１０の後に撮影されたフレーム画像である。それぞれには、移動体である人間が撮影されている。
【００９３】
図１９は、本実施の形態による処理例を示す説明図である。
フレーム１８１０とフレーム１８２０内の移動体を抽出し、その移動体を枠で囲んで表示したものである。
この例では、人１９０２と人１９５２とが対応し、人１９０４と人１９５４とが対応し、人１９０６と人１９５６とが対応し、人１９０８と人１９５８とが対応し、人１９１０と人１９６０とが対応し、人１９１２と人１９６２とが対応している。フレーム１８１０とフレーム１８２０を１つの画面に表示し、両者の対応する移動体を結びつけることを操作者は行う。それによって、教師データとなる行列を生成する。この行列については、図２２の例を用いて後述する。
なお、人１９６４はフレーム１８２０で初めて登場しており、フレーム１８１０内には対応している人はいない。
【００９４】
図２０は、本実施の形態による処理例を示す説明図である。
図２０に示す例は、図１９に示す例に対応している人に一意の識別子を付したものである。つまり、人１９０２と人１９５２に「０００１」、人１９０４と人１９５４に「０００２」、人１９０６と人１９５６に「０００４」、人１９０８と人１９５８に「０００３」、人１９１０と人１９６０に「０００５」、人１９１２と人１９６２に「０００６」を付し、人１９６４に「０００７」を付している。
【００９５】
図２１は、本実施の形態による処理例を示す説明図である。
ユーザーインタフェースとして、例えば、識別子が同じ画像を並べて表示してもよい。操作者にとって、移動体の確認を容易にするためである。例えば、図２１は、識別子が「０００１」である移動体の画像を並べて表示したものである。操作者は、これを見て同じ移動体であると確認することができる。
【００９６】
図１９の例に示した操作者の操作によって生成される行列を説明する。
図２２は、本実施の形態で対象とする行列の例を示す説明図である。ここでの要素ｘはフレーム１８１０での移動体を示しており、要素ｙはフレーム１８２０での移動体を示している。
第１行（ｘ１と各ｙとの対応を示す行）では、（ｘ１，ｙ１）のセルのみが「１」であり、他は「０」である。
第２行（ｘ２と各ｙとの対応を示す行）では、（ｘ２，ｙ２）のセルのみが「１」であり、他は「０」である。
第３行（ｘ３と各ｙとの対応を示す行）では、（ｘ３，ｙ３）のセルのみが「１」であり、他は「０」である。
第４行（ｘ４と各ｙとの対応を示す行）では、（ｘ４，ｙ４）のセルのみが「１」であり、他は「０」である。
第５行（ｘ５と各ｙとの対応を示す行）では、（ｘ５，ｙ５）のセルのみが「１」であり、他は「０」である。
第６行（ｘ６と各ｙとの対応を示す行）では、（ｘ６，ｙ６）のセルのみが「１」であり、他は「０」である。
第１列（ｙ１と各ｘとの対応を示す列）では、（ｘ１，ｙ１）のセルのみが「１」であり、他は「０」である。
第２列（ｙ２と各ｘとの対応を示す列）では、（ｘ２，ｙ２）のセルのみが「１」であり、他は「０」である。
第３列（ｙ３と各ｘとの対応を示す列）では、（ｘ３，ｙ３）のセルのみが「１」であり、他は「０」である。
第４列（ｙ４と各ｘとの対応を示す列）では、（ｘ４，ｙ４）のセルのみが「１」であり、他は「０」である。
第５列（ｙ５と各ｘとの対応を示す列）では、（ｘ５，ｙ５）のセルのみが「１」であり、他は「０」である。
第６列（ｙ６と各ｘとの対応を示す列）では、（ｘ６，ｙ６）のセルのみが「１」であり、他は「０」である。
第７列（ｙ７と各ｘとの対応を示す列）では、（ｘｎｏ，ｙ７）のセルのみが「１」であり、他は「０」である。
なお、この例では、各行では「１」が１つあるので、最終列（ｙｎｏと各ｘとの対応を示す行）では全て「０」としている。
また、第１列から第６列までの各列においてｘ１からｘ６では「１」が１つあるので、最終行（ｘｎｏと各ｙとの対応を示す行）での該当セルは「０」としており、第７列においてｘ１からｘ６では「０」だけであるので、最終列での該当セル（ｘｎｏと各ｙ７との対応を示すセル）は「１」としており、第７列において「１」が１つであることを担保している。
【００９７】
なお、図１８〜図２２に示した例は、機械学習を行う際の例を示したものであるが、その機械学習を終了した後の学習モデルで、移動体の追跡処理を行った場合の処理例としてもよい。
つまり、図１８の例は、カメラ１３１０が撮影した動画像のフレームであり、図１９、図２０は、移動体の追跡処理をした結果を示す表示例である。特に、動画として再生した場合は、図２０のように識別子を付して同一の移動体であることを示すようにする。もちろんのことながら、識別子の文字ではなく、他の表示属性（例えば、色枠等）で移動体を識別するようにしてもよい。また、図２１の例に示すように、移動体ごとに、各フレームでの画像を切り出して表示するようにしてもよい。特に、操作者が注視すべきであると選択した移動体について、このように表示してもよい。
なお、図２１に示している例は、単なるマッチング処理では、同一移動体であると判断することは困難である。例えば、単なるマッチング処理を行った場合、フレーム１８１０における人１９０２は、フレーム１８２０では人１９５２ではなく、人１９６０であると判断される可能性が高い。しかし、本実施の形態では、他の対応関係（特に人１９１０と人１９６０の対応関係）も考慮しているので、人１９０２と人１９５２とが対応していると判断している。
【００９８】
前述の例では、主に、（Ｎ＋１）×（Ｍ＋１）以上の行列の例を示した。
図２３は、対応関係を示すＮ×Ｎ以上の大きさの行列の例を示す説明図である。これらの行列は、教師データとなるものである。
図２３（ａ）の例に示す行列２３００は、最小の大きさとした場合の行列の例である。行列２３００は、ｎ個の要素とｎ個の要素との関係を示している行列である。行列２３００は、要素ｘと要素ｙの対応関係を示している。「１」は対応していることを示しており、「０」は対応していないことを示している。例えば、１行目は、要素ｘ１と要素ｙ２が対応していることを示している。１列目は、要素ｙ１と要素ｘ６が対応していることを示している。
２つの集合内の要素は１対１に対応していることを前提としているので、行列２３００では、各行には必ず「１」が１つあり、各列には必ず「１」が１つあるようにすることができる。
【００９９】
集合内の要素数は変動するので、行列の大きさも変動してしまう。そこで、集合の大きさを固定して、行列の大きさも固定にすることが、計算機上で処理する場合には望ましい。そこで、集合Ｘの最大となる要素数としてｎｍａｘ（集合Ｙの最大となる要素数としてｎｍａｘ）を予め定めておく。
図２３（ｂ）の例に示す行列２３５０の大きさは、（ｎｍａｘ）×（ｎｍａｘ）である。
なお、行列の大きさを必要数よりも大きくしたことによって、対応関係を表していないセルは、不定領域２３６０（ドントケア：ｄｏｎ’ｔ  ｃａｒｅ）である。この不定領域２３６０では、「対の対象が無い」を意味する出力ノードを持つ。ｓｏｆｔｍａｘ関数、損失関数（ｃｒｏｓｓ−ｅｎｔｒｏｐｙ）を用いるためにｏｎｅ−ｈｏｔ  ｖｅｃｔｏｒとするためである。
つまり、Ｎ×Ｎで１対１に要素が必ず対応する問題の場合でも、縦横状にロス関数を合成することによって、縦横で必ず一つの出力のみが１になるように学習させるようにしている。
【０１００】
なお、本実施の形態としてのプログラムが実行されるコンピュータのハードウェア構成は、図２４に例示するように、一般的なコンピュータであり、具体的にはパーソナルコンピュータ、サーバーとなり得るコンピュータ等である。つまり、具体例として、処理部（演算部）としてＣＰＵ２４０１を用い、記憶装置としてＲＡＭ２４０２、ＲＯＭ２４０３、ＨＤＤ２４０４を用いている。ＨＤＤ２４０４として、例えば、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅの略）、フラッシュ・メモリであるＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅの略）等を用いてもよい。行列生成モジュール１１０、機械学習モジュール１１５、移動体抽出モジュール１２１０等のプログラムを実行するＣＰＵ２４０１と、そのプログラムやデータを記憶するＲＡＭ２４０２と、本コンピュータを起動するためのプログラム等が格納されているＲＯＭ２４０３と、教師データ記憶モジュール１０５、動画像記憶モジュール１２０５等としての機能を有する補助記憶装置であるＨＤＤ２４０４と、キーボード、マウス、タッチスクリーン、マイク、カメラ（視線検知カメラ等を含む）等に対する利用者の操作（動作、音声、視線等を含む）に基づいてデータを受け付ける受付装置２４０６と、ＣＲＴ、液晶ディスプレイ、スピーカー等の出力装置２４０５と、ネットワークインタフェースカード等の通信ネットワークと接続するための通信回線インタフェース２４０７、そして、それらをつないでデータのやりとりをするためのバス２４０８により構成されている。これらのコンピュータが複数台互いにネットワークによって接続されていてもよい。
【０１０１】
前述の実施の形態のうち、コンピュータ・プログラムによるものについては、本ハードウェア構成のシステムにソフトウェアであるコンピュータ・プログラムを読み込ませ、ソフトウェアとハードウェア資源とが協働して、前述の実施の形態が実現される。
なお、図２４に示すハードウェア構成は、１つの構成例を示すものであり、本実施の形態は、図２４に示す構成に限らず、本実施の形態において説明したモジュールを実行可能な構成であればよい。例えば、一部のモジュールを専用のハードウェア（例えば特定用途向け集積回路（具体例として、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔの略）等がある）や再構成可能な集積回路（具体例として、ＦＰＧＡ（ｆｉｅｌｄ−ｐｒｏｇｒａｍｍａｂｌｅ  ｇａｔｅ  ａｒｒａｙの略）等がある）で構成してもよく、一部のモジュールは外部のシステム内にあり通信回線で接続している形態でもよく、さらに図２４に示すシステムが複数互いに通信回線によって接続されていて互いに協調動作するようにしてもよい。また、特に、パーソナルコンピュータの他、携帯情報通信機器（携帯電話、スマートフォン、モバイル機器、ウェアラブルコンピュータ等を含む）、情報家電、ロボット、事務機器などに組み込まれていてもよい。
【０１０２】
なお、説明したプログラムについては、記録媒体に格納して提供してもよく、また、そのプログラムを通信手段によって提供してもよい。その場合、例えば、前記説明したプログラムについて、「プログラムを記録したコンピュータ読み取り可能な記録媒体」の発明として捉えてもよい。
「プログラムを記録したコンピュータ読み取り可能な記録媒体」とは、プログラムのインストール、実行、プログラムの流通等のために用いられる、プログラムが記録されたコンピュータで読み取り可能な記録媒体をいう。
なお、記録媒体としては、例えば、デジタル・バーサタイル・ディスク（ＤＶＤ）であって、ＤＶＤフォーラムで策定された規格である「ＤＶＤ−Ｒ、ＤＶＤ−ＲＷ、ＤＶＤ−ＲＡＭ等」、ＤＶＤ＋ＲＷで策定された規格である「ＤＶＤ＋Ｒ、ＤＶＤ＋ＲＷ等」、コンパクトディスク（ＣＤ）であって、読出し専用メモリ（ＣＤ−ＲＯＭ）、ＣＤレコーダブル（ＣＤ−Ｒ）、ＣＤリライタブル（ＣＤ−ＲＷ）等、ブルーレイ・ディスク（Ｂｌｕ−ｒａｙ（登録商標）  Ｄｉｓｃ）、光磁気ディスク（ＭＯ）、フレキシブルディスク（ＦＤ）、磁気テープ、ハードディスク、読出し専用メモリ（ＲＯＭ）、電気的消去及び書換可能な読出し専用メモリ（ＥＥＰＲＯＭ（登録商標））、フラッシュ・メモリ、ランダム・アクセス・メモリ（ＲＡＭ）、ＳＤ（Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌの略）メモリーカード等が含まれる。
そして、前記のプログラムの全体又はその一部は、前記記録媒体に記録して保存や流通等させてもよい。また、通信によって、例えば、ローカル・エリア・ネットワーク（ＬＡＮ）、メトロポリタン・エリア・ネットワーク（ＭＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）、インターネット、イントラネット、エクストラネット等に用いられる有線ネットワーク、又は無線通信ネットワーク、さらにこれらの組み合わせ等の伝送媒体を用いて伝送させてもよく、また、搬送波に乗せて搬送させてもよい。
さらに、前記のプログラムは、他のプログラムの一部分若しくは全部であってもよく、又は別個のプログラムと共に記録媒体に記録されていてもよい。また、複数の記録媒体に分割して記録されていてもよい。また、圧縮や暗号化等、復元可能であればどのような態様で記録されていてもよい。
【符号の説明】
【０１０３】
１００…情報処理装置
１０５…教師データ記憶モジュール
１１０…行列生成モジュール
１１５…機械学習モジュール
１２００…移動体追跡機械学習装置
１２０５…動画像記憶モジュール
１２１０…移動体抽出モジュール
【図１】
2020204892.tif 000003
【図２】
2020204892.tif 000004
【図３】
2020204892.tif 000005
【図４】
2020204892.tif 000006
【図５】
2020204892.tif 000007
【図６】
2020204892.tif 000008
【図７】
2020204892.tif 000009
【図８】
2020204892.tif 000010
【図９】
2020204892.tif 000011
【図１０】
2020204892.tif 000012
【図１１】
2020204892.tif 000013
【図１２】
2020204892.tif 000014
【図１３】
2020204892.tif 000015
【図１４】
2020204892.tif 000016
【図１５】
2020204892.tif 000017
【図１６】
2020204892.tif 000018
【図１７】
2020204892.tif 000019
【図１８】
2020204892.tif 000020
【図１９】
2020204892.tif 000021
【図２０】
2020204892.tif 000022
【図２１】
2020204892.tif 000023
【図２２】
2020204892.tif 000024
【図２３】
2020204892.tif 000025
【図２４】
2020204892.tif 000026