(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-06-02
(45)【発行日】2023-06-12
(54)【発明の名称】情報処理装置、情報処理方法及び情報処理プログラム
(51)【国際特許分類】
G06N 20/00 20190101AFI20230605BHJP
【FI】
G06N20/00 160
(21)【出願番号】P 2019112117
(22)【出願日】2019-06-17
【審査請求日】2022-06-13
(73)【特許権者】
【識別番号】317016246
【氏名又は名称】株式会社オレンジテクラボ
(74)【代理人】
【識別番号】100115129
【氏名又は名称】清水 昇
(72)【発明者】
【氏名】田代 潔
【審査官】武田 広太郎
(56)【参考文献】
【文献】特開2018-195097(JP,A)
【文献】米国特許出願公開第2019/0130583(US,A1)
【文献】福元 伸也,単語の共起関係に基づく機械学習による文書分類,情報処理学会 研究報告 データベースシステム(DBS) 2014-DBS-160 [online] ,日本,情報処理学会,2014年11月11日
(58)【調査した分野】(Int.Cl.,DB名)
G06N 20/00
(57)【特許請求の範囲】
【請求項1】
第1の集合内のN個の要素と第2の集合内のN個の要素との対応を機械学習するために用いる行列であって、第1の集合内の要素は第2の集合内の要素と1対1に対応しており、
前記行列の大きさは少なくともN×N以上であり、
前記行列の成分には、第1の集合内の要素と第2の集合内の要素とが対応していることを示す第1情報と、第1の集合内の要素と第2の集合内の要素とは対応していないことを示す第2情報のいずれかを記憶させ、
前記行列の各行には、第1情報が1つだけあり、他は第2情報であり、
前記行列の各列には、第1情報が1つだけあり、他は第2情報であることを満たした状態にする行列生成手段と、
前記行列生成手段によって生成された行列を用いて、各列及び各行で、損失関数による値を算出し、該値を合成した値を用いて機械学習する学習手段
を有する情報処理装置。
【請求項2】
第1の集合内のN個の要素と第2の集合内のM個の要素との対応を機械学習するために用いる行列であって、
前記行列の大きさは少なくとも(N+1)×(M+1)以上であり、
前記行列の成分には、第1の集合内の要素と第2の集合内の要素とが対応していることを示す第1情報と、第1の集合内の要素と第2の集合内の要素とは対応していないことを示す第2情報のいずれかを記憶させ、
第1の集合内の第1要素が第2の集合内の各要素と対応していない場合は、該第1要素に対応する行における第(M+1)列に第1情報を記憶させ、第2の集合内の第2要素が第1の集合内の各要素と対応していない場合は、該第2要素に対応する列における第(N+1)行に第1情報を記憶させ、
前記行列の各行には、第1情報が1つだけあり、他は第2情報であり、
前記行列の各列には、第1情報が1つだけあり、他は第2情報であることを満たした状態にする行列生成手段と、
前記行列生成手段によって生成された行列を用いて、各列及び各行で、損失関数による値を算出し、該値を合成した値を用いて機械学習する学習手段
を有する情報処理装置。
【請求項3】
前記行列の大きさは、(NMax+1)×(MMax+1)以上であり、
ただし、NMaxは前記Nより大であり、MMaxは前記Mより大であり、
前記行列生成手段は、
前記行列の成分に、前記第1情報と前記第2情報の他に、第1の集合内の要素ではないもの、又は、第2の集合内の要素ではないものとの対応であることを示す第3情報を記憶させ、
前記学習手段は、前記第3情報を前記損失関数には用いない、
請求項2に記載の情報処理装置。
【請求項4】
前記行列の大きさは少なくとも(N+1)×(M+2)以上であり、
前記行列生成手段は、
前記第1の集合内の第1要素が第2の集合内の各要素と対応していない場合であって第1の状態である場合は、該第1要素に対応する行における第(M+1)列に第1情報を記憶させ、前記第1の集合内の第1要素が第2の集合内の各要素と対応していない場合であって第2の状態である場合は、該第1要素に対応する行における第(M+2)列に第1情報を記憶させる、
請求項2に記載の情報処理装置。
【請求項5】
前記第1の集合の要素は、動画像のフレームから抽出した移動体とし、
前記第2の集合の要素は、前記動画像の前記フレームとは異なるフレームから抽出した移動体であり、
前記学習手段は、異なるフレーム間での移動体の対応を機械学習する、
請求項1から4のいずれか1項に記載の情報処理装置。
【請求項6】
請求項1から
5のいずれか1項に記載された情報処理装置によって機械学習された学習モデルを用いて、第1の集合内のN個の要素と第2の集合内のM個の要素との対応を判断する判断手段
を有する情報処理装置。
【請求項7】
第1の集合内のN個の要素と第2の集合内のN個の要素との対応を機械学習するために用いる行列であって、第1の集合内の要素は第2の集合内の要素と1対1に対応しており、
前記行列の大きさは少なくともN×N以上であり、
前記行列の成分には、第1の集合内の要素と第2の集合内の要素とが対応していることを示す第1情報と、第1の集合内の要素と第2の集合内の要素とは対応していないことを示す第2情報のいずれかを記憶させ、
前記行列の各行には、第1情報が1つだけあり、他は第2情報であり、
前記行列の各列には、第1情報が1つだけあり、他は第2情報であることを満たした状態にする行列生成ステップと、
前記行列生成ステップによって生成された行列を用いて、各列及び各行で、損失関数による値を算出し、該値を合成した値を用いて機械学習する学習ステップ
を有する情報処理方法。
【請求項8】
第1の集合内のN個の要素と第2の集合内のM個の要素との対応を機械学習するために用いる行列であって、
前記行列の大きさは少なくとも(N+1)×(M+1)以上であり、
前記行列の成分には、第1の集合内の要素と第2の集合内の要素とが対応していることを示す第1情報と、第1の集合内の要素と第2の集合内の要素とは対応していないことを示す第2情報のいずれかを記憶させ、
第1の集合内の第1要素が第2の集合内の各要素と対応していない場合は、該第1要素に対応する行における第(M+1)列に第1情報を記憶させ、第2の集合内の第2要素が第1の集合内の各要素と対応していない場合は、該第2要素に対応する列における第(N+1)行に第1情報を記憶させ、
前記行列の各行には、第1情報が1つだけあり、他は第2情報であり、
前記行列の各列には、第1情報が1つだけあり、他は第2情報であることを満たした状態にする行列生成ステップと、
前記行列生成ステップによって生成された行列を用いて、各列及び各行で、損失関数による値を算出し、該値を合成した値を用いて機械学習する学習ステップ
を有する情報処理方法。
【請求項9】
請求項
7又は8のいずれか1項に記載された情報処理方法によって機械学習された学習モデルを用いて、第1の集合内のN個の要素と第2の集合内のM個の要素との対応を判断する判断ステップ
を有する情報処理方法。
【請求項10】
コンピュータを、
第1の集合内のN個の要素と第2の集合内のN個の要素との対応を機械学習するために用いる行列であって、第1の集合内の要素は第2の集合内の要素と1対1に対応しており、
前記行列の大きさは少なくともN×N以上であり、
前記行列の成分には、第1の集合内の要素と第2の集合内の要素とが対応していることを示す第1情報と、第1の集合内の要素と第2の集合内の要素とは対応していないことを示す第2情報のいずれかを記憶させ、
前記行列の各行には、第1情報が1つだけあり、他は第2情報であり、
前記行列の各列には、第1情報が1つだけあり、他は第2情報であることを満たした状態にする行列生成手段と、
前記行列生成手段によって生成された行列を用いて、各列及び各行で、損失関数による値を算出し、該値を合成した値を用いて機械学習する学習手段
として機能させる情報処理プログラム。
【請求項11】
コンピュータを、
第1の集合内のN個の要素と第2の集合内のM個の要素との対応を機械学習するために用いる行列であって、
前記行列の大きさは少なくとも(N+1)×(M+1)以上であり、
前記行列の成分には、第1の集合内の要素と第2の集合内の要素とが対応していることを示す第1情報と、第1の集合内の要素と第2の集合内の要素とは対応していないことを示す第2情報のいずれかを記憶させ、
第1の集合内の第1要素が第2の集合内の各要素と対応していない場合は、該第1要素に対応する行における第(M+1)列に第1情報を記憶させ、第2の集合内の第2要素が第1の集合内の各要素と対応していない場合は、該第2要素に対応する列における第(N+1)行に第1情報を記憶させ、
前記行列の各行には、第1情報が1つだけあり、他は第2情報であり、
前記行列の各列には、第1情報が1つだけあり、他は第2情報であることを満たした状態にする行列生成手段と、
前記行列生成手段によって生成された行列を用いて、各列及び各行で、損失関数による値を算出し、該値を合成した値を用いて機械学習する学習手段
として機能させる情報処理プログラム。
【請求項12】
コンピュータを、
請求項
10又は11のいずれか1項に記載された情報処理プログラムによって機械学習された学習モデルを用いて、第1の集合内のN個の要素と第2の集合内のM個の要素との対応を判断する判断手段
として機能させる情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理方法及び情報処理プログラムに関する。
【背景技術】
【0002】
特許文献1には、時系列の画像データを用いて、効率的に機械学習に使用する教師データを作成できる仕組みを提供することを課題とし、前回の画像データに基づいて作成された教師データを取得し、今回の画像データから部分画像を抽出し、前記取得された教師データの中から、前記部分画像に対応する教師データを特定し、前記部分画像に対して、特定された教師データの教師ラベルを付与することにより、教師データを作成し登録することが開示されている。
【0003】
特許文献2には、追跡精度を向上させることができるオブジェクト追跡方法及び装置並びにプログラムを提供することを課題とし、時系列で取得される撮像画像から特定のオブジェクトを検出し、その位置を追跡するオブジェクト追跡方法であって、初期モデルを生成後に入力される撮像画像に対し、まず、初期モデルを用いた第1のテンプレートマッチングの処理を行い、類似度を示す第1のスコアが所定の閾値と同等以上の高い類似性を示す場合は当該第1のマッチング処理により探索された位置を追跡位置として採用し、一方、第1のスコアが所定の閾値よりも低い類似性を示す場合は、先行フレームの撮像画像の追跡位置から生成された最新の更新モデルを用いて第2のテンプレートマッチングの処理を行い、当該第2のマッチング処理により探索された位置を追跡位置として採用することが開示されている。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2019-075130号公報
【文献】特開2014-063280号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
第1の集合内の要素と第2の集合内の要素との対応を機械学習させる場合に、単に1対1又は1対nの対応を機械学習させたときは、他の対応の関係を機械学習に反映させることができない。
本発明は、第1の集合内の要素と第2の集合内の要素との対応を機械学習させる場合に、他の対応の関係を機械学習に反映させることができるようにした情報処理装置、情報処理方法及び情報処理プログラムを提供することを目的としている。
【課題を解決するための手段】
【0006】
かかる目的を達成するための本発明の要旨とするところは、次の各項の発明に存する。なお、以下の「請求項」とあるのは、出願当初の請求項である。
請求項1の発明は、第1の集合内のN個の要素と第2の集合内のN個の要素との対応を機械学習するために用いる行列であって、第1の集合内の要素は第2の集合内の要素と1対1に対応しており、前記行列の大きさは少なくともN×N以上であり、前記行列の成分には、第1の集合内の要素と第2の集合内の要素とが対応していることを示す第1情報と、第1の集合内の要素と第2の集合内の要素とは対応していないことを示す第2情報のいずれかを記憶させ、前記行列の各行には、第1情報が1つだけあり、他は第2情報であり、前記行列の各列には、第1情報が1つだけあり、他は第2情報であることを満たした状態にする行列生成手段と、前記行列生成手段によって生成された行列を用いて、各列及び各行で、損失関数による値を算出し、該値を合成した値を用いて機械学習する学習手段を有する情報処理装置である。
【0007】
請求項2の発明は、第1の集合内のN個の要素と第2の集合内のM個の要素との対応を機械学習するために用いる行列であって、前記行列の大きさは少なくとも(N+1)×(M+1)以上であり、前記行列の成分には、第1の集合内の要素と第2の集合内の要素とが対応していることを示す第1情報と、第1の集合内の要素と第2の集合内の要素とは対応していないことを示す第2情報のいずれかを記憶させ、第1の集合内の第1要素が第2の集合内の各要素と対応していない場合は、該第1要素に対応する行における第(M+1)列に第1情報を記憶させ、第2の集合内の第2要素が第1の集合内の各要素と対応していない場合は、該第2要素に対応する列における第(N+1)行に第1情報を記憶させ、前記行列の各行には、第1情報が1つだけあり、他は第2情報であり、前記行列の各列には、第1情報が1つだけあり、他は第2情報であることを満たした状態にする行列生成手段と、前記行列生成手段によって生成された行列を用いて、各列及び各行で、損失関数による値を算出し、該値を合成した値を用いて機械学習する学習手段を有する情報処理装置である。
【0008】
請求項3の発明は、前記行列の大きさは、(NMax+1)×(MMax+1)以上であり、ただし、NMaxは前記Nより大であり、MMaxは前記Mより大であり、前記行列生成手段は、前記行列の成分に、前記第1情報と前記第2情報の他に、第1の集合内の要素ではないもの、又は、第2の集合内の要素ではないものとの対応であることを示す第3情報を記憶させ、前記学習手段は、前記第3情報を前記損失関数には用いない、請求項2に記載の情報処理装置である。
【0009】
請求項4の発明は、前記行列の大きさは少なくとも(N+1)×(M+2)以上であり、前記行列生成手段は、前記第1の集合内の第1要素が第2の集合内の各要素と対応していない場合であって第1の状態である場合は、該第1要素に対応する行における第(M+1)列に第1情報を記憶させ、前記第1の集合内の第1要素が第2の集合内の各要素と対応していない場合であって第2の状態である場合は、該第1要素に対応する行における第(M+2)列に第1情報を記憶させる、請求項2に記載の情報処理装置である。
【0010】
請求項5の発明は、前記第1の集合の要素は、動画像のフレームから抽出した移動体とし、前記第2の集合の要素は、前記動画像の前記フレームとは異なるフレームから抽出した移動体であり、前記学習手段は、異なるフレーム間での移動体の対応を機械学習する、請求項1から4のいずれか1項に記載の情報処理装置である。
【0011】
請求項6の発明は、第1の集合内の複数の要素に対応する入力ベクトル又は中間層ベクトルに対して同じ関数を適用する第1の関数手段と、第2の集合内の複数の要素に対応する入力ベクトル又は中間層ベクトルに対して同じ関数を適用する第2の関数手段と、前記第1の関数手段による処理結果の要素と前記第2の関数手段による処理結果の要素との組み合わせを用いて機械学習する学習手段を有する情報処理装置である。
【0012】
請求項7の発明は、第1の集合内の要素1つと第2の集合内の要素1つからなる組み合わせの各々に対応する入力ベクトル又は中間層ベクトルに対して同じ関数を適用する関数手段を用いて機械学習する学習手段を有する情報処理装置である。
【0013】
請求項8の発明は、前記組み合わせを分割して、第3の集合と第4の集合に分割する分割手段と、前記第3の集合内の複数の要素に対応する入力ベクトル又は中間層ベクトルに対して同じ関数を適用する第3の関数手段と、前記第4の集合内の複数の要素に対応する入力ベクトル又は中間層ベクトルに対して同じ関数を適用する第4の関数手段をさらに有し、前記学習手段は、前記第3の関数手段による処理結果の要素と前記第4の関数手段による処理結果の要素との組み合わせを用いて機械学習する、請求項6に記載の情報処理装置である。
【0014】
請求項9の発明は、前記第1の関数手段は、第1の集合内の要素に対応する入力ベクトル又は中間層ベクトルの要素であるスカラー値の統計的値を算出し、該統計的値に対して関数を適用し、前記第2の関数手段は、第2の集合内に対応する入力ベクトル又は中間層ベクトルの要素である要素のスカラー値の統計的値を算出し、該統計的値に対して関数を適用する、請求項6に記載の情報処理装置である。
【0015】
請求項10の発明は、前記組み合わせ内の要素に対応する入力ベクトル又は中間層ベクトルの要素であるスカラー値の統計的値を算出し、該統計的値に対して関数を適用する第5の関数手段をさらに有し、前記学習手段は、前記第5の関数手段による処理結果の要素を用いて機械学習する、請求項6に記載の情報処理装置である。
【0016】
請求項11の発明は、請求項1から9のいずれか1項に記載された情報処理装置によって機械学習された学習モデルを用いて、第1の集合内のN個の要素と第2の集合内のM個の要素との対応を判断する判断手段を有する情報処理装置である。
【0017】
請求項12の発明は、第1の集合内のN個の要素と第2の集合内のN個の要素との対応を機械学習するために用いる行列であって、第1の集合内の要素は第2の集合内の要素と1対1に対応しており、前記行列の大きさは少なくともN×N以上であり、前記行列の成分には、第1の集合内の要素と第2の集合内の要素とが対応していることを示す第1情報と、第1の集合内の要素と第2の集合内の要素とは対応していないことを示す第2情報のいずれかを記憶させ、前記行列の各行には、第1情報が1つだけあり、他は第2情報であり、前記行列の各列には、第1情報が1つだけあり、他は第2情報であることを満たした状態にする行列生成ステップと、前記行列生成ステップによって生成された行列を用いて、各列及び各行で、損失関数による値を算出し、該値を合成した値を用いて機械学習する学習ステップを有する情報処理方法である。
【0018】
請求項13の発明は、第1の集合内のN個の要素と第2の集合内のM個の要素との対応を機械学習するために用いる行列であって、前記行列の大きさは少なくとも(N+1)×(M+1)以上であり、前記行列の成分には、第1の集合内の要素と第2の集合内の要素とが対応していることを示す第1情報と、第1の集合内の要素と第2の集合内の要素とは対応していないことを示す第2情報のいずれかを記憶させ、第1の集合内の第1要素が第2の集合内の各要素と対応していない場合は、該第1要素に対応する行における第(M+1)列に第1情報を記憶させ、第2の集合内の第2要素が第1の集合内の各要素と対応していない場合は、該第2要素に対応する列における第(N+1)行に第1情報を記憶させ、前記行列の各行には、第1情報が1つだけあり、他は第2情報であり、前記行列の各列には、第1情報が1つだけあり、他は第2情報であることを満たした状態にする行列生成ステップと、前記行列生成ステップによって生成された行列を用いて、各列及び各行で、損失関数による値を算出し、該値を合成した値を用いて機械学習する学習ステップを有する情報処理方法である。
【0019】
請求項14の発明は、第1の集合内の複数の要素に対応する入力ベクトル又は中間層ベクトルに対して同じ関数を適用する第1の関数ステップと、第2の集合内の複数の要素に対応する入力ベクトル又は中間層ベクトルに対して同じ関数を適用する第2の関数ステップと、前記第1の関数ステップによる処理結果の要素と前記第2の関数ステップによる処理結果の要素との組み合わせを用いて機械学習する学習ステップを有する情報処理方法である。
【0020】
請求項15の発明は、第1の集合内の要素1つと第2の集合内の要素1つからなる組み合わせの各々に対応する入力ベクトル又は中間層ベクトルに対して同じ関数を適用する関数ステップを用いて機械学習する学習ステップを有する情報処理方法である。
【0021】
請求項16の発明は、請求項12から15のいずれか1項に記載された情報処理方法によって機械学習された学習モデルを用いて、第1の集合内のN個の要素と第2の集合内のM個の要素との対応を判断する判断ステップを有する情報処理方法である。
【0022】
請求項17の発明は、コンピュータを、第1の集合内のN個の要素と第2の集合内のN個の要素との対応を機械学習するために用いる行列であって、第1の集合内の要素は第2の集合内の要素と1対1に対応しており、前記行列の大きさは少なくともN×N以上であり、前記行列の成分には、第1の集合内の要素と第2の集合内の要素とが対応していることを示す第1情報と、第1の集合内の要素と第2の集合内の要素とは対応していないことを示す第2情報のいずれかを記憶させ、前記行列の各行には、第1情報が1つだけあり、他は第2情報であり、前記行列の各列には、第1情報が1つだけあり、他は第2情報であることを満たした状態にする行列生成手段と、前記行列生成手段によって生成された行列を用いて、各列及び各行で、損失関数による値を算出し、該値を合成した値を用いて機械学習する学習手段として機能させる情報処理プログラムである。
【0023】
請求項18の発明は、コンピュータを、第1の集合内のN個の要素と第2の集合内のM個の要素との対応を機械学習するために用いる行列であって、前記行列の大きさは少なくとも(N+1)×(M+1)以上であり、前記行列の成分には、第1の集合内の要素と第2の集合内の要素とが対応していることを示す第1情報と、第1の集合内の要素と第2の集合内の要素とは対応していないことを示す第2情報のいずれかを記憶させ、第1の集合内の第1要素が第2の集合内の各要素と対応していない場合は、該第1要素に対応する行における第(M+1)列に第1情報を記憶させ、第2の集合内の第2要素が第1の集合内の各要素と対応していない場合は、該第2要素に対応する列における第(N+1)行に第1情報を記憶させ、前記行列の各行には、第1情報が1つだけあり、他は第2情報であり、前記行列の各列には、第1情報が1つだけあり、他は第2情報であることを満たした状態にする行列生成手段と、前記行列生成手段によって生成された行列を用いて、各列及び各行で、損失関数による値を算出し、該値を合成した値を用いて機械学習する学習手段として機能させる情報処理プログラムである。
【0024】
請求項19の発明は、コンピュータを、第1の集合内の複数の要素に対応する入力ベクトル又は中間層ベクトルに対して同じ関数を適用する第1の関数手段と、第2の集合内の複数の要素に対応する入力ベクトル又は中間層ベクトルに対して同じ関数を適用する第2の関数手段と、前記第1の関数手段による処理結果の要素と前記第2の関数手段による処理結果の要素との組み合わせを用いて機械学習する学習手段として機能させる情報処理プログラムである。
【0025】
請求項20の発明は、コンピュータを、第1の集合内の要素1つと第2の集合内の要素1つからなる組み合わせの各々に対応する入力ベクトル又は中間層ベクトルに対して同じ関数を適用する関数手段を用いて機械学習する学習手段として機能させる情報処理プログラムである。
【0026】
請求項21の発明は、コンピュータを、請求項17から20のいずれか1項に記載された情報処理プログラムによって機械学習された学習モデルを用いて、第1の集合内のN個の要素と第2の集合内のM個の要素との対応を判断する判断手段として機能させる情報処理プログラムである。
【発明の効果】
【0027】
請求項1の情報処理装置によれば、第1の集合内の要素と第2の集合内の要素との対応を機械学習させる場合に、他の対応の関係を機械学習に反映させることができる。
【0028】
請求項2の情報処理装置によれば、第1の集合内の要素と第2の集合内の要素との対応を機械学習させる場合に、他の対応の関係を機械学習に反映させることができる。
【0029】
請求項3の情報処理装置によれば、第1の集合内の要素数としてNMax、第2の集合内の要素数としてMMaxまで対応することができるようになる。
【0030】
請求項4の情報処理装置によれば、第1の集合内の第1要素が第2の集合内の各要素と対応していない場合であって、第1の状態と第2の状態を表すことができる。
【0031】
請求項5の情報処理装置によれば、動画像における異なるフレーム間での移動体の対応を機械学習することができる。
【0032】
集合内の各要素に対して異なる関数を用いた場合、要素数が多いと収束しない場合があるが、請求項6の情報処理装置によれば、集合内の要素数が多い場合でも収束させて機械学習させることができる。
【0033】
第1の集合内の要素1つと第2の集合内の要素1つからなる組み合わせの各々に対応する入力ベクトル又は中間層ベクトルに対して異なる関数を用いた場合、要素数が多いと収束しない場合があるが、請求項7の情報処理装置によれば、集合内の要素数が多い場合でも収束させて機械学習させることができる。
【0034】
請求項8の情報処理装置によれば、集合内の要素数が多い場合でも収束させて機械学習させることができる。
【0035】
請求項9の情報処理装置によれば、第1の集合内の要素と第2の集合内の要素との対応を機械学習させる場合に、対象としている要素間の対応だけでなく、他の対応の関係を機械学習に反映させることができる。
【0036】
請求項10の情報処理装置によれば、対象としている要素間の対応だけでなく、他の対応の関係を機械学習に反映させることができる。
【0037】
請求項11の情報処理装置によれば、第1の集合内のN個の要素と第2の集合内のM個の要素との対応を判断することができる。
【0038】
請求項12の情報処理方法によれば、第1の集合内の要素と第2の集合内の要素との対応を機械学習させる場合に、他の対応の関係を機械学習に反映させることができる。
【0039】
請求項13の情報処理方法によれば、第1の集合内の要素と第2の集合内の要素との対応を機械学習させる場合に、他の対応の関係を機械学習に反映させることができる。
【0040】
集合内の各要素に対して異なる関数を用いた場合、要素数が多いと収束しない場合があるが、請求項14の情報処理方法によれば、集合内の要素数が多い場合でも収束させて機械学習させることができる。
【0041】
第1の集合内の要素1つと第2の集合内の要素1つからなる組み合わせの各々に対応する入力ベクトル又は中間層ベクトルに対して異なる関数を用いた場合、要素数が多いと収束しない場合があるが、請求項15の情報処理方法によれば、集合内の要素数が多い場合でも収束させて機械学習させることができる。
【0042】
請求項16の情報処理方法によれば、第1の集合内のN個の要素と第2の集合内のM個の要素との対応を判断することができる。
【0043】
請求項17の情報処理プログラムによれば、第1の集合内の要素と第2の集合内の要素との対応を機械学習させる場合に、他の対応の関係を機械学習に反映させることができる。
【0044】
請求項18の情報処理プログラムによれば、第1の集合内の要素と第2の集合内の要素との対応を機械学習させる場合に、他の対応の関係を機械学習に反映させることができる。
【0045】
集合内の各要素に対して異なる関数を用いた場合、要素数が多いと収束しない場合があるが、請求項19の情報処理プログラムによれば、集合内の要素数が多い場合でも収束させて機械学習させることができる。
【0046】
第1の集合内の要素1つと第2の集合内の要素1つからなる組み合わせの各々に対応する入力ベクトル又は中間層ベクトルに対して異なる関数を用いた場合、要素数が多いと収束しない場合があるが、請求項20の情報処理プログラムによれば、集合内の要素数が多い場合でも収束させて機械学習させることができる。
【0047】
請求項21の情報処理プログラムによれば、第1の集合内のN個の要素と第2の集合内のM個の要素との対応を判断することができる。
【図面の簡単な説明】
【0048】
【
図1】本実施の形態の構成例についての概念的なモジュール構成図である。
【
図2】第1の集合内の要素と第2の集合内の要素との対応関係の例を示す説明図である。
【
図3】第1の集合内の要素と第2の集合内の要素との対応関係の例を示す説明図である。
【
図4】第1の集合内の要素と第2の集合内の要素との対応関係の例を示す説明図である。
【
図5】対応関係を示す行列の例を示す説明図である。
【
図6】対応関係を示す行列の例を示す説明図である。
【
図9】機械学習における関数の適用例を示す説明図である。
【
図10】機械学習における関数の適用例を示す説明図である。
【
図11】機械学習における関数の適用例を示す説明図である。
【
図12】移動体追跡の機械学習に、本実施の形態を利用した場合の構成例についての概念的なモジュール構成図である。
【
図13】本実施の形態を利用したシステム構成例を示す説明図である。
【
図14】本実施の形態による処理例を示すフローチャートである。
【
図15】本実施の形態による処理例を示す説明図である。
【
図16】抽出データテーブルのデータ構造例を示す説明図である。
【
図17】本実施の形態による処理例を示す説明図である。
【
図18】本実施の形態による処理例を示す説明図である。
【
図19】本実施の形態による処理例を示す説明図である。
【
図20】本実施の形態による処理例を示す説明図である。
【
図21】本実施の形態による処理例を示す説明図である。
【
図22】本実施の形態で対象とする行列の例を示す説明図である。
【
図23】対応関係を示すN×N以上の大きさの行列の例を示す説明図である。
【
図24】本実施の形態を実現するコンピュータのハードウェア構成例を示すブロック図である。
【発明を実施するための形態】
【0049】
以下、図面に基づき本発明を実現するにあたっての好適な一実施の形態の例を説明する。
図1は、本実施の形態の構成例についての概念的なモジュール構成図を示している。
なお、モジュールとは、一般的に論理的に分離可能なソフトウェア(「ソフトウェア」の解釈として、コンピュータ・プログラムを含む)、ハードウェア等の部品を指す。したがって、本実施の形態におけるモジュールはコンピュータ・プログラムにおけるモジュールのことだけでなく、ハードウェア構成におけるモジュールも指す。それゆえ、本実施の形態は、それらのモジュールとして機能させるためのコンピュータ・プログラム(例えば、コンピュータにそれぞれの手順を実行させるためのプログラム、コンピュータをそれぞれの手段として機能させるためのプログラム、コンピュータにそれぞれの機能を実現させるためのプログラム)、システム及び方法の説明をも兼ねている。ただし、説明の都合上、「記憶する」、「記憶させる」、これらと同等の文言を用いるが、これらの文言は、実施の形態がコンピュータ・プログラムの場合は、記憶装置に記憶させる、又は記憶装置に記憶させるように制御するという意味である。また、モジュールは機能に一対一に対応していてもよいが、実装においては、1モジュールを1プログラムで構成してもよいし、複数モジュールを1プログラムで構成してもよく、逆に1モジュールを複数プログラムで構成してもよい。また、複数モジュールは1コンピュータによって実行されてもよいし、分散又は並列環境におけるコンピュータによって1モジュールが複数コンピュータで実行されてもよい。なお、1つのモジュールに他のモジュールが含まれていてもよい。また、以下、「接続」とは物理的な接続の他、論理的な接続(例えば、データの授受、指示、データ間の参照関係、ログイン等)の場合にも用いる。「予め定められた」とは、対象としている処理の前に定まっていることをいい、本実施の形態による処理が始まる前はもちろんのこと、本実施の形態による処理が始まった後であっても、対象としている処理の前であれば、そのときの状況・状態にしたがって、又はそれまでの状況・状態にしたがって定まることの意を含めて用いる。「予め定められた値」が複数ある場合は、それぞれ異なった値であってもよいし、2以上の値(「2以上の値」には、もちろんのことながら、全ての値も含む)が同じであってもよい。また、「Aである場合、Bをする」という記載は、「Aであるか否かを判断し、Aであると判断した場合はBをする」の意味で用いる。ただし、Aであるか否かの判断が不要である場合を除く。また、「A、B、C」等のように事物を列挙した場合は、断りがない限り例示列挙であり、その1つのみを選んでいる場合(例えば、Aのみ)を含む。
また、システム又は装置とは、複数のコンピュータ、ハードウェア、装置等がネットワーク(「ネットワーク」には、一対一対応の通信接続を含む)等の通信手段で接続されて構成されるほか、1つのコンピュータ、ハードウェア、装置等によって実現される場合も含まれる。「装置」と「システム」とは、互いに同義の用語として用いる。もちろんのことながら、「システム」には、人為的な取り決めである社会的な「仕組み」(つまり、社会システム)にすぎないものは含まない。
また、各モジュールによる処理毎に又はモジュール内で複数の処理を行う場合はその処理毎に、対象となる情報を記憶装置から読み込み、その処理を行った後に、処理結果を記憶装置に書き出すものである。したがって、処理前の記憶装置からの読み込み、処理後の記憶装置への書き出しについては、説明を省略する場合がある。なお、ここでの記憶装置としては、ハードディスクドライブ、RAM(Random Access Memoryの略)、外部記憶媒体、通信回線を介した記憶装置、CPU(Central Processing Unitの略)内のレジスタ等を含んでいてもよい。
【0050】
本実施の形態である情報処理装置100は、機械学習機能を有しており、
図1の例に示すように、教師データ記憶モジュール105、行列生成モジュール110、機械学習モジュール115を有している。
情報処理装置100は、第1の集合内のN個の要素と第2の集合内のM個の要素との対応を機械学習する。つまり、N対Mの対を推定するニューラルネットを生成するものである。なお、NとMは、1以上の整数であるが、一般的には複数である。
【0051】
教師データ記憶モジュール105は、行列生成モジュール110と接続されている。教師データ記憶モジュール105は、機械学習用の教師データを記憶している。第1の集合内の要素と第2の集合内の要素を記憶している。この要素として、例えば、後述するように、動画像のあるフレーム内に撮影されている移動体(オブジェクト)が該当する。具体的には、その移動体の特徴を示す情報が記憶されている。
【0052】
行列生成モジュール110は、教師データ記憶モジュール105、機械学習モジュール115と接続されている。第1の集合内のN個の要素と第2の集合内のN個の要素との対応を機械学習するために用いる行列を生成する。
この行列の大きさは、少なくともN×N(N行N列の大きさである行列を示す表記である)以上である。Nは、0以上の整数である。ただし、一般的には、Nは、2以上の整数である。ここで、第1の集合内の要素は第2の集合内の要素と1対1に対応している。つまり、両者の集合内の要素に過不足なく対応している状態である。なお、ここで「過不足なく」とは、念のために説明すると、両集合の各要素を1対1に対応させた状態は、両者の集合内に対応していない要素はなく、2つ以上の要素に対応している要素はない状態である。
行列の大きさは、第1の集合(第2の集合)内の要素数であるNによって規定される。ただし、「少なくとも」としているので、N×N以上の大きさであればよい。そして、後述するように、行列の大きさを固定としてもよい。
【0053】
行列の成分には、第1の集合内の要素と第2の集合内の要素とが対応していることを示す第1情報と、第1の集合内の要素と第2の集合内の要素とは対応していないことを示す第2情報のいずれかを記憶させる。
このようにすることによって、行列の各行には、第1情報が1つだけあり、他は第2情報であり、行列の各列には、第1情報が1つだけあり、他は第2情報であることを満たした状態にする。
【0054】
N×Nの行列である場合、第1の集合内の要素は第2の集合内の要素と1対1に対応していることを前提としている。したがって、第1の集合内の要素に対応する要素が第2の集合内にない場合、又は、第1の集合内にない要素が第2の集合内にある場合に適用することができない。
そこで、次のように行列の大きさを設定してもよい。
【0055】
行列生成モジュール110は、第1の集合内のN個の要素と第2の集合内のM個の要素との対応を機械学習するために用いる行列を生成する。
この行列の大きさは、少なくとも(N+1)×(M+1)以上としてもよい。N、Mは、0以上の整数である。ただし、一般的には、N、Mは、2以上の整数である。また、NとMの両者は、等しい値であってもよいし、異なる値であってもよい。
行列の大きさは、第1の集合内の要素数であるNと第2の集合内の要素数であるMによって規定される。ただし、「少なくとも」としているので、(N+1)×(M+1)以上の大きさであればよい。そして、後述するように、行列の大きさを固定としてもよい。
【0056】
行列の成分には、第1の集合内の要素と第2の集合内の要素とが対応していることを示す第1情報と、第1の集合内の要素と第2の集合内の要素とは対応していないことを示す第2情報のいずれかを記憶させる。
第1の集合内の第1要素が第2の集合内の各要素と対応していない場合は、その第1要素に対応する行における第(M+1)列に第1情報を記憶させる。ここで「第1の集合内の第1要素が第2の集合内の各要素と対応していない」は、その第1要素は、第2の集合内の全ての要素と対応していないことを示している。
そして、第2の集合内の第2要素が第1の集合内の各要素と対応していない場合は、その第2要素に対応する列における第(N+1)行に第1情報を記憶させる。ここで「第2の集合内の第2要素が第1の集合内の各要素と対応していない」は、その第2要素は、第1の集合内の全ての要素と対応していないことを示している。
すなわち、第(M+1)列に第1情報が記憶されていることは、第1の集合内の第1要素が第2の集合内の各要素と対応していないことを示している。逆に、第(M+1)列に第2情報が記憶されていることは、第1の集合内の第1要素が第2の集合内のいずれかの要素と対応していることを示している。そして、第(N+1)行に第1情報が記憶されていることは、第2の集合内の第2要素が第1の集合内の各要素と対応していないことを示している。逆に、第(N+1)行に第2情報が記憶されていることは、第2の集合内の第2要素が第1の集合内のいずれかの要素と対応していることを示している。
このようにすることによって、行列の各行には、第1情報が1つだけあり、他は第2情報であり、行列の各列には、第1情報が1つだけあり、他は第2情報であることを満たした状態にする。
【0057】
機械学習モジュール115は、行列生成モジュール110と接続されている。機械学習モジュール115は、行列生成モジュール110によって生成された行列を用いて、各列及び各行で、損失関数(Loss Function)による値を算出し、その値を合成した値を用いて機械学習する。ここで損失関数は、ラベルと出力の誤差を計算する関数であり、損失関数として、機械学習分野では、交差エントロピー(cross entropy)が一般的に用いられている。
【0058】
また、行列の大きさとして、(NMax+1)×(MMax+1)以上としてもよい。つまり、行列の大きさを予め定められた大きさとしてもよい。
ただし、NMaxはNより大であり、MMaxはMより大である。NMaxは、第1の集合で想定される最大の要素数とし、MMaxは、第2の集合で想定される最大の要素数とすればよい。
そして、行列生成モジュール110は、行列の成分に、第1情報と第2情報の他に、第1の集合内の要素ではないもの、又は、第2の集合内の要素ではないものとの対応であることを示す第3情報を記憶させる。ここでの第3情報は、いわゆるドントケア(don’t care)情報である。
そして、機械学習モジュール115は、第3情報を損失関数には用いないようにする。つまり、ドントケア情報は用いずに、第1情報と第2情報だけで損失関数を適用する。
【0059】
また、行列の大きさは少なくとも(N+1)×(M+2)以上としてもよい。
そして、行列生成モジュール110は、第1の集合内の第1要素が第2の集合内の各要素と対応していない場合であって第1の状態である場合は、その第1要素に対応する行における第(M+1)列に第1情報を記憶させ、第1の集合内の第1要素が第2の集合内の各要素と対応していない場合であって第2の状態である場合は、その第1要素に対応する行における第(M+2)列に第1情報を記憶させる。
「第1の集合内の第1要素が第2の集合内の各要素と対応していない場合」として、2つの状態がある場合に、それをも機械学習できるようにしたものである。
ここで第1の状態として、例えば、人物が左から右へ移動したことによってフレーム画像から消えたことを示し、第2の状態として、例えば、人物が右から左へ移動したことによってフレーム画像から消えたことを示すようにしてもよい。
【0060】
なお、この行列の列数を増やしているが、もちろんのことながら、行数を増やしてもよい。つまり、行列の大きさは少なくとも(N+2)×(M+1)以上としてもよい。
そして、その場合、行列生成モジュール110は、第2の集合内の第2要素が第1の集合内の各要素と対応していない場合であって第3の状態である場合は、その第2要素に対応する列における第(N+1)行に第1情報を記憶させ、第2の集合内の第2要素が第1の集合内の各要素と対応していない場合であって第4の状態である場合は、その第2要素に対応する列における第(N+2)行に第1情報を記憶させる。
「第2の集合内の第2要素が第1の集合内の各要素と対応していない場合」として、2つの状態がある場合に、それをも機械学習できるようにしたものである。
ここで第3の状態として、例えば、人物が左から右へ移動したことによってフレーム画像に入ってきたことを示し、第4の状態として、例えば、人物が右から左へ移動したことによってフレーム画像に入ってきたことを示すようにしてもよい。
もちろんのことながら、行列の列数、行数を3以上増やしてもよい。つまり、「第1の集合内の第1要素が第2の集合内の各要素と対応していない場合」又は「第2の集合内の第2要素が第1の集合内の各要素と対応していない場合」として、3つ以上の状態がある場合に、それをも機械学習できるようにしている。
【0061】
また、第1の集合の要素は、動画像のフレームAから抽出した移動体とし、第2の集合の要素は、その動画像のフレームAとは異なるフレームBから抽出した移動体としてもよい。
そして、機械学習モジュール115は、異なるフレーム間での移動体の対応を機械学習するようにしてもよい。これによって機械学習された機械学習モデルは、動画像内の人等の移動体を追跡することができるようになる。
詳細な説明は、
図12以降の図を用いて述べる。
【0062】
また、機械学習モジュール115は、前述の行列を用いて、次のような機械学習を行う。
第1の集合内の複数の要素に対応する入力ベクトル又は中間層ベクトルに対して同じ関数を適用する。なお、「複数の要素に対応する入力ベクトル又は中間層ベクトル」の解釈について説明する。各要素は、「入力ベクトル又は中間層ベクトル」によって構成されている。集合内の要素は複数あるので、「入力ベクトル又は中間層ベクトル」も要素の数と同数の複数ある。以下の「複数の要素に対応する入力ベクトル又は中間層ベクトル」についても、その解釈は同様である。
また、第2の集合内の複数の要素に対応する入力ベクトル又は中間層ベクトルに対して同じ関数を適用する。
そして、第1の関数による処理結果の要素と第2の関数による処理結果の要素との組み合わせを用いて機械学習する。
なお、各集合内の各要素は、ベクトル値である。そして、それぞれの関数による処理結果の要素も、ベクトル値である。なお、ここでの関数は、機械学習分野では重み付け処理ともいわれる。
第1の関数は、第1の集合内の要素に対応する入力ベクトル又は中間層ベクトルの要素であるスカラー値の統計的値を算出し、その統計的値に対して関数を適用する。ここで「統計的値」として、例えば、最大値、最小値、平均値、最頻値、中央値等がある。
第2の関数は、第2の集合内の要素に対応する入力ベクトル又は中間層ベクトルの要素であるスカラー値の統計的値を算出し、その統計的値に対して関数を適用する。
【0063】
さらに、機械学習モジュール115は、次のような機械学習を行う。
前述の組み合わせを分割して、第3の集合と第4の集合に分割する。
第3の集合内の複数の要素に対応する入力ベクトル又は中間層ベクトルに対して同じ関数を適用する。
また、第4の集合内の複数の要素に対応する入力ベクトル又は中間層ベクトルに対して同じ関数を適用する。
そして、第3の関数による処理結果の要素と第4の関数による処理結果の要素との組み合わせを用いて機械学習する。
また、組み合わせ内の要素に対応する入力ベクトル又は中間層ベクトルの要素であるスカラー値の統計的値を算出し、その統計的値に対して関数を適用する。
そして、第5の関数による処理結果の要素を用いて機械学習する。
【0064】
情報処理装置100によって機械学習することによって学習モデルを生成する。
その学習モデルは、第1の集合内のN個の要素と第2の集合内のM個の要素との対応を判断することができる。
【0065】
図2は、第1の集合内の要素と第2の集合内の要素との対応関係の例を示す説明図である。
集合210内にはn個の要素があり、集合220にはm個の要素がある。
x
1とy
2は対252となっており、x
nとy
1は対254となっていることを示している。
本実施の形態では、n個の要素をもつ集合210とm個の要素の集合220が与えられたとき、各集合の要素間の対を推定するように機械学習を行う。また、その機械学習により生成された学習モデルによって、各集合の要素間の対を推定する。
集合210を集合Xとし、集合220を集合Yとした場合、以下のように表すことができる。
X:{x
1,...x
n}
Y:{y
1,...y
m}
X,Y->{(x
i1,y
j1),・・・(x
ip,y
ip)}
【0066】
図3は、第1の集合内の要素と第2の集合内の要素との対応関係の例を示す説明図である。
本実施の形態が扱う問題は、
図3の例に示すような対応関係はないものとする。
図3(a)の例に示すように、どの要素x∈Xも、2つ以上の要素y∈Yと対にならない。
図3(b)の例に示すように、どの要素y∈Yも、2つ以上の要素x∈Xと対にならない。
例えば、動画像のあるフレーム内に撮影されている人を要素とした集合Xと、その後のフレーム内に撮影されている人を要素とした集合Yとした場合、1人の人が2つに分かれること、2人の人が1つになることはあり得ない。このことを示している。
【0067】
図4は、第1の集合内の要素と第2の集合内の要素との対応関係の例を示す説明図である。
図4の例を用いて、従来技術を用いた場合について説明する。この従来技術は、割り当て問題、具体的には、文字認識等の機械学習に用いられるものである。
図4(a)の例に示すように、1対1の入力に対する推論をする場合、
図4(b)の例に示すように、1対nの入力に対する推論をする場合、他の対の情報を参照できず、制約条件を利用できない。
ここでの制約条件とは、
図3の例で説明したように、1対n、n対1の対応関係はないということである。具体的には、従来技術を用いた場合、各対だけで機械学習をしてしまうため、他の対のことは何ら考慮されずに対応関係を決定してしまうことになる。しかし、従来技術によって、例えば要素x
1と要素y
2が最も対応していたとしても、他の対の関係を考慮すれば、次に対応している要素x
1と要素y
3との対が好ましい場合もあり得る。
本実施の形態では、対象としている対だけでなく、他の対の関係も考慮して機械学習している。
【0068】
図5は、対応関係を示す行列の例を示す説明図である。これらの行列は、教師データとなるものである。
図5(a)の例に示す行列500は、最小の大きさとした場合の行列の例である。行列500は、n個の要素とm個の要素との関係を示している部分行列510に、追加列520と追加行530を加えたものである。したがって、行列500の大きさは、(n+1)×(m+1)である。部分行列510は、要素xと要素yの対応関係を示している。「1」は対応していることを示しており、「0」は対応していないことを示している。例えば、1行目は、要素x
1と要素y
2が対応していることを示している。1列目は、要素y
1と要素x
6が対応していることを示している。
追加列520は、部分行列510の各行において、「1」があれば「0」を代入し、その行内が全て「0」であれば「1」としている。例えば、1行目は、要素x
1と要素y
2が対応しているので、追加列520の1行目に「0」を代入している。2行目は、要素x
2と全ての要素yは対応していないので、追加列520の2行目に「1」を代入している。同様に、追加行530は、部分行列510の各列において、「1」があれば「0」を代入し、その列内が全て「0」であれば「1」としている。例えば、1列目は、要素y
1と要素x
6が対応しているので、追加行530の1列目に「0」を代入している。7列目は、要素y
7と全ての要素xは対応していないので、追加行530の7列目に「1」を代入している。
この追加列520、追加行530によって、行列500では、各行には必ず「1」が1つあり、各列には必ず「1」が1つあるようにすることができる。
したがって、集合Xの要素と集合Yの要素が対応していない場合であっても、行列500内では対応関係があるとして扱うことができ、従来の割り当て問題と同様に扱うことができるようになる。
【0069】
なお、もちろんのことながら、各行に「1」が1つだけ、各列に「1」が1つだけ、とするのは、n個の要素x、m個の要素yによって構成される行列の部分(
図5(a)では部分行列510)である。最終列(追加列520)、最終行(追加行530)では、「1」は1つだけとは限らず複数あってもよいし、0個であってもよい。
【0070】
また、部分行列510に追加する行と列は、1つとは限らず、複数の行、複数の列であってもよい。要素xと要素yが対応しない場合の状態に合わせて、その追加行と追加列を使い分けるようにすればよい。例えば、後述する移動体の追跡処理においては、第1の追加列では右から左に移動体が移動したことによって、その移動体の対応がなくなったことを示し、第2の追加列では左から右に移動体が移動したことによって、その移動体の対応がなくなったことを示すようにしてもよい。同様に、第1の追加行では右から左に移動体が移動したことによって、その移動体が出現したことを示し、第2の追加行では左から右に移動体が移動したことによって、その移動体が出現したことを示すようにしてもよい。
もちろんのことながら、複数の追加行と追加列においても、「1」は1つだけとは限らず複数あってもよいし、0個であってもよい。
【0071】
集合内の要素数は変動するので、行列の大きさも変動してしまう。そこで、集合の大きさを固定して、行列の大きさも固定にすることが、計算機上で処理する場合には望ましい。そこで、集合Xの最大となる要素数としてn
max、集合Yの最大となる要素数としてm
maxを予め定めておく。例えば、n
max=m
maxとしてもよい。
図5(b)の例に示す行列550は、(n
max)×(m
max)に、追加列520と追加行530を加えたものである。したがって、行列550の大きさは、(n
max+1)×(m
max+1)である。
なお、行列の大きさを必要数よりも大きくしたことによって、対応関係を表していないセルは、不定領域560(ドントケア:don’t care)である。この不定領域560では、「対の対象が無い」を意味する出力ノードを持つ。softmax関数、損失関数(cross-entropy)を用いるためにone-hot vectorとするためである。
【0072】
図6は、対応関係を示す行列の例を示す説明図である。
図6に示す行列550は、
図5(b)の例に示した行列550と同じものである。
各行(各x)、各列(各y)で、損失関数を計算する。そして、その損失関数の算出値の全てを合成する。ここでの合成とは、平均値、合計値等を求めることである。一般的には平均値を用いる。
【0073】
図7は、機械学習の構造例を示す説明図である。つまり、本実施の形態における機械学習のネットワークアーキテクチャ(Network Architecture)を示す。
入力特徴量群710と入力特徴量群720を、機械学習750に入力し、行列550を出力する。入力特徴量群710、入力特徴量群720は、要素の特徴量を示すデータであり、ベクトルデータである。
【0074】
単純に、Fully Connected Layerを用いるとスケールしない。
発明者が実験したところ、n(第1の集合内の要素数)、m(第2の集合内の要素数)を4程度に限定すると機械学習は収束するが、20まで変動する機械学習では収束しない。理由として、組合せ数の爆発に対して、ネットワーク内の表現能力が追いつかないためと推測される。
組合せ数は、以下のように計算される。
(max(n, m)+1)!/(max(n,m)-min(n,m)+1)!
この計算式を用いると、
n=m=4の場合は、120通りの組み合わせである。
n=m=20の場合は、5.1090942e+19通りの組み合わせである。つまり、組合せ数の爆発が起こっている。
【0075】
図8は、機械学習の構造例を示す説明図である。
本実施の形態が取り扱うデータでは、入力と出力において、各要素は可換(対称)である。例えば、
図8に示すように、入力特徴量群710内の入力特徴812と入力特徴814を交換した場合、それによって、出力である行列550の対応行852と対応行854も交換される。そして、入力特徴量群720内の入力特徴822と入力特徴824を交換した場合、それによって、出力である行列550の対応列862と対応列864も交換される。
【0076】
以下、
図9、
図10、
図11の例を用いて同じ関数を適用する場合について説明する。なお、同じ関数を適用する行列は、前述した行列(N+1)×(M+1)以外に、N×Mの大きさの行列であってもよい。つまり、常に1対1の対応であることが担保されており、2つの集合内の各要素の対応を学習する場合にあっては、N×Mの大きさの行列に適用することが可能である。念のため、1対1の対応であるので、行列の大きさはN×Nである。
もちろんのことながら、各集合内の要素が変動する可能性があり、2つの集合内の各要素の対応を学習する場合にあっては、行列(N+1)×(M+1)以上の大きさの行列に同じ関数を適用することが好ましい。
図9は、機械学習における関数の適用例を示す説明図である。
集合内の各要素は可換であることを利用して、集合内の要素に対応する入力ベクトル又は中間層ベクトルに対して同じ関数を適用する。入力の集合である入力特徴量群910の各要素に対応する入力ベクトル又は中間層ベクトルに対して、同じ関数を適用して算出値群915を算出する。同様に、入力特徴量群920の各要素に対応する入力ベクトル又は中間層ベクトルに対して、同じ関数を適用して算出値群925を算出する。つまり、要素群に含まれる各要素に対応するベクトル値に対して同一の関数を適用して、別のベクトル値を算出する処理である。
そして、算出値群915と算出値群925を組み合わせとして、連結データ群930を生成する。その連結データ群930の各要素に対応する入力ベクトル又は中間層ベクトルに対して、同じ関数を適用して、次の層における入力を生成する。つまり、第一の要素群に含まれる各要素と、第二の要素群に含まれる各要素との組み合わせに対応するベクトル値に対して同一の関数を適用して別のベクトル値を算出する処理である。これらの処理を繰り返す。
つまり、各要素に対して重みを同値に制約する。実装上は、一次元畳込み層(Conv1D)での処理として行えばよい。
なお、ここで同じ関数とは、1つの集合内においての同じ関数であって、異なる集合に適用する関数は異なる関数であってもよい。具体的には、入力特徴量群910に適用する関数と入力特徴量群920に適用する関数は、異なっていてもよい。
なお、
図9の例に示す右側の「same weights for x、y」の部分は、「第1の集合内の要素1つと第2の集合内の要素1つからなる組み合わせの各々に対応する入力ベクトル又は中間層ベクトルに対して同じ関数を適用する関数手段を用いて機械学習する学習手段」の一例である。
【0077】
図10は、機械学習における関数の適用例を示す説明図である。
図9の例では、データの組み合わせを説明したが、逆に、データの分割を行うようにしてもよい。
図10の例では、連結データ群1010を3つに分割する例を示している。
連結データ群1010を、スライス要素データ群1020、スライス要素データ群1030、スライス要素データ群1040に分割する。そして、スライス要素データ群1020の各要素に対応する入力ベクトル又は中間層ベクトルに対して、同じ関数を適用して算出値群1025を算出する。同様に、スライス要素データ群1030の各要素に対応する入力ベクトル又は中間層ベクトルに対して、同じ関数を適用して算出値群1035を算出する。算出値群1025、算出値群1035、スライス要素データ群1040を組み合わせて、連結データ群1045を生成する。そして、連結データ群1045の各要素に対応する入力ベクトル又は中間層ベクトルに対して、同じ関数を適用して算出値群1050を算出する。
【0078】
図11は、機械学習における関数の適用例を示す説明図である。
図11(a)の例は、要素データ群1110に含まれる各要素に対応するベクトル値の特定の軸に対応するスカラー値の統計的値を入力とする処理例を示すものである。前述したように、「統計的値」は、最大値、最小値、平均値、最頻値、中央値等であるが、要素が対応することの定義に応じて適宜選択すればよい。例えば、要素間の特徴空間における距離が近いことを示すものであれば最小値、要素間の類似度を示すものであれば最大値等とすればよい。
要素データ群1110内のスカラー値から統計的値1115を生成して、その統計的値1115に対して、同じ関数を適用する。
【0079】
図11(b)の例は、第一の要素群に含まれる各要素と、第二の要素群に含まれる各要素との組み合わせに対応するベクトル値の特定の軸に対応するスカラー値の統計的値を入力とする処理例を示すものである。
要素データ群1150内のスカラー値から統計的値1155を生成して、その統計的値1155に対して、同じ関数を適用する。
【0080】
発明者の実験によって、本実施の形態を用いた場合、第1の集合内の要素数と第2の集合内の要素数が、それぞれ20以上であっても機械学習が収束することが確認された。
【0081】
図12は、移動体追跡の機械学習に、本実施の形態を利用した場合の構成例についての概念的なモジュール構成図である。
前述の実施の形態を、動画像における移動体の追跡に適用した例を示す。動画像内で移動体は、様々に変化する。例えば、遠ざかる、近づくこと等によって、移動体の大きさが変化したり、移動方向を変える、向きを変える、移動体の一部の変化(例えば、人間であれば腕を動かす等)等によって、移動体の画像そのものが変化したりすることになる。したがって、2つの画像にある移動体のマッチング処理だけでは、対応できない場合がある。
一方、動画像である場合、あるフレーム内にある移動体と、その後のフレーム内にある移動体とでは、対応していることが多く、1対1の対応である。ここでの「対応」は、同一の移動体であることを意味している。ただし、そのフレームから出て行く移動体(削除される移動体)、そのフレームに入る移動体(挿入される移動体)があり、対応しない移動体が発生する可能性もある。
そして、従来の技術では類似していない移動体同士と判断されてしまったとしても、他の対のことを考慮すると、対であると判断することが、全体の対応関係上、好ましい場合がある。本実施の形態では、他の対の関係を考慮するようにしている。
【0082】
移動体追跡機械学習装置1200は、動画像記憶モジュール1205、移動体抽出モジュール1210、情報処理装置100を有している。
動画像記憶モジュール1205は、移動体抽出モジュール1210と接続されている。動画像記憶モジュール1205は、動画像データを記憶している。動画像データには、移動体が撮影されている可能性がある。例えば、カメラ(デジタルカメラ、ビデオカメラ等)が撮影した動画像を、動画像記憶モジュール1205は記憶している。動画像データは複数のフレーム(画像)によって構成されている。なお、静止画を撮影するデジタルカメラによる連写であってもよい。この場合、フレームは、連写によって撮影された各画像である。具体的には、監視カメラ(防犯カメラ、防災カメラ等を含む)によって撮影された画像データがある。また、複数のカメラによって撮影された動画像データを記憶していてもよい。一般的なカメラの他に、暗視カメラ、赤外線カメラ、パノラマカメラ等が撮影した動画像データであってもよい。また、カメラは固定された場所に設置されていてもよいし、移動体(自動車、ドローン等)に搭載されたものであってもよい。
【0083】
移動体抽出モジュール1210は、動画像記憶モジュール1205、情報処理装置100と接続されている。移動体抽出モジュール1210は、動画像記憶モジュール1205内の動画像データの各フレームから、移動体を抽出する。例えば、フレームから移動体の位置、形状、種別、移動体の画像を抽出する。対象とするフレームは、全てのフレームであってもよいし、予め定められた期間内のフレームであってもよいし、等間隔で抽出したフレームであってもよい。なお、移動体を抽出する方法は、既存のYOLO等の機械学習等により実現できる。
移動体の位置は、フレーム内の移動体の位置を示す情報である。例えば、移動体の外接矩形の中心の座標、移動体の内接矩形の中心の座標、移動体の重心等であってもよい。以下、移動体の位置を用いた説明をする場合に、例示として外接矩形の中心の座標を用いる。
移動体の形状は、例えば、移動体の外接矩形の形状(高さ、幅)、移動体の内接矩形の形状(高さ、幅)等であってもよい。移動体の形状として、面積(外接矩形の面積、内接矩形の面積、移動体そのものの面積)を含めるようにしてもよい。以下、移動体の形状を用いた説明をする場合に、例示として外接矩形の高さ、幅を用いる。
移動体の種別は、YOLO等の機械学習等によって判別可能な種類である。種類として、具体的には、人間、自動車等がある。なお、特定の物体(個人等)を認識することまでは不要である。
【0084】
情報処理装置100は、移動体抽出モジュール1210と接続されている。情報処理装置100は、移動体抽出モジュール1210によって抽出された移動体について、2つのフレーム間の移動体の対応を機械学習する。
もちろんのことながら、機械学習が終了(収束)した後は、学習モデルが生成される。そして、その学習モデルを用いて、動画像内の移動体の追跡を行うことができる。
本実施の形態で対象となる移動体とは、カメラに撮影され得るものであって、ある場所から他の場所へ移動する物体であればよい。移動体は、生物であってもよいし、機械等の無生物であってもよい。また、移動として、気流や水流に乗っての受動的消極的な移動であってもよいし、運動器官やエンジン等を用いての積極的な移動であってもよい。移動体として、具体的には、人間、自動車等がある。
【0085】
図13は、本実施の形態を利用したシステム構成例を示す説明図である。
移動体追跡機械学習装置1200は、店舗1320内のカメラ1310A、カメラ1310B、カメラ1310Cは、通信回線1390を介してそれぞれ接続されている。カメラ1310は、ビデオカメラであって動画を撮影する。通信回線1390は、無線、有線、これらの組み合わせであってもよく、例えば、通信インフラとしてのインターネット、イントラネット等であってもよい。また、移動体追跡機械学習装置1200による機能は、クラウドサービスとして実現してもよい。
例えば、店舗1320内には、カメラ1310Aが設置されており、店舗1320内にいる人間1330A、人間1330Bを撮影している。また、路上には、カメラ1310B、カメラ1310Cが設置されており、人間1330、自動車1340等を撮影している。
【0086】
店舗1320に設置されている監視カメラであるカメラ1310A、路上に設置されている監視カメラであるカメラ1310B、カメラ1310C等、数多くの監視カメラが設置され、人手での人間1330、自動車1340等の追跡が困難になりつつある。
そこで、本実施の形態である移動体追跡機械学習装置1200では、カメラ1310が撮影した動画像内で移動体の移動を自動追跡する技術とその自動追跡できるようにするための機械学習の技術を提供する。1つのカメラ1310によって撮影された動画像における移動体の追跡であってもよいし、複数のカメラ1310によって撮影された動画像の移動体の追跡であってもよい。なお、カメラ1310は固定されたものだけでなく、ドローン等に搭載されたものであってもよい。
【0087】
図14は、本実施の形態による処理例を示すフローチャートである。
ステップS1402では、移動体抽出モジュール1210は、動画像記憶モジュール1205内の動画像から1フレーム分の画像を読み出す。
ステップS1404では、移動体抽出モジュール1210は、そのフレームから移動体を抽出する。具体的には、
図16の例を用いて後述する抽出データテーブル1600を生成する。
ステップS1406では、情報処理装置100は、行列を生成する。具体的には、
図5の例で示した行列550を生成する。例えば、操作者の操作に応じて、教師データとしての行列550を生成する。操作者の操作として、2つのフレーム内の移動体の対応を指定するものである。
【0088】
ステップS1408では、情報処理装置100は、ステップS1406で生成された行列データを保存する。
ステップS1410では、情報処理装置100は、全フレームの処理が終了したか否かを判断し、終了した場合はステップS1412へ進み、それ以外の場合はステップS1402へ戻る。
ステップS1412では、情報処理装置100は、機械学習を行う。
ステップS1414では、情報処理装置100は、学習後の学習モデルを出力する。
【0089】
図15は、本実施の形態による処理例を示す説明図である。特に、移動体抽出モジュール1210による処理例を示すものである。この例は、前述したYOLOによる処理例を示す。
フレームn:1500から、人間1530、自動車1540を抽出する。人間1530は、フレームn:1500に撮影された人間の外接矩形を示すものである。自動車1540は、フレームn:1500に撮影された自動車の外接矩形を示すものである。
ここで移動体の外接矩形を、左上座標と右下座標で記す。具体的には、外接矩形の表記として、
左上座標-右下座標
のように記す。
そして、移動体の番号は、フレームn:1500内の右上から左方向に続いて下方向に走査して順番に付するものとする。
図15の例では、n1、n2が移動体の番号に該当する。
具体的には、人間1530の外接矩形は、
(x
n1s,y
n1s)-(x
n1e,y
n1e)
となり、自動車1540の外接矩形は、
(x
n2s,y
n2s)-(x
n2e,y
n2e)
となる。
【0090】
移動体を示すデータは、移動体の番号、外接矩形の最左座標、最上座標、最右座標、最下座標、移動体の種別、その移動体の画像である。例えば、移動体抽出モジュール1210は、抽出データテーブル1600を生成する。
図16は、抽出データテーブル1600のデータ構造例を示す説明図である。
抽出データテーブル1600は、番号欄1602、左座標欄1604、上座標欄1606、右座標欄1608、下座標欄1610、種別欄1612、画像欄1614を有している。番号欄1602は、移動体の番号を記憶している。左座標欄1604は、その移動体の外接矩形の最左座標を記憶している。上座標欄1606は、その移動体の外接矩形の最上座標を記憶している。右座標欄1608は、その移動体の外接矩形の最右座標を記憶している。下座標欄1610は、その移動体の外接矩形の最下座標を記憶している。種別欄1612は、その移動体の種別を記憶している。画像欄1614は、その移動体の画像を記憶している。例えば、左座標欄1604から下座標欄1610までの情報を用いて、フレームか切り抜いた画像を記憶している。
例えば、抽出データテーブル1600の1行目では、番号:n_1の移動体は、左座標が「Xn1s」であり、上座標が「Yn1s」であり、右座標が「Xn1e」であり、下座標が「Yn1e」であり、種別が「人間」であり、その人間の画像があることを示しており、2行目では、番号:n_2の移動体は、左座標が「Xn2s」であり、上座標が「Yn2s」であり、右座標が「Xn2e」であり、下座標が「Yn2e」であり、種別が「自動車」であり、その自動車の画像があることを示している。
【0091】
図17は、本実施の形態による処理例を示す説明図である。
図17の例は、フレームn:1700Aを基準フレームとし、フレームn+1:1700Bを対象フレームとしたものである。フレームn:1700A内の移動体1730Aとフレームn+1:1700B内の移動体1730Bを比較して、同じ移動体であるか否かを判断するための比較用データを生成する処理について説明する。
各移動体の外接矩形の中心の座標を算出する。具体的には、外接矩形の最左座標と最右座標のX座標を加算して2で除算し、外接矩形の最上座標と最下座標のY座標を加算して2で除算することによって、外接矩形の中心の座標を算出する。
移動体1730Aの中心の座標は、以下の通りである。
((x
n1s+x
n1e)/2,(y
n1s+y
n1e)/2)
移動体1730Bの中心の座標は、以下の通りである。
((x
n+1 1s+x
n+1 1e)/2,(y
n+1 1s+y
n+1 1e)/2)
また、各移動体の外接矩形の高さと幅を算出する。具体的には、外接矩形の最上座標と最下座標のY座標の差分を高さとし、外接矩形の最左座標と最右座標のX座標との差分を幅とすればよい。
【0092】
図18は、本実施の形態による処理例を示す説明図である。
図18(a)の例に示すフレーム1810は、動画像内の1つのフレーム画像である。
図18(b)の例に示すフレーム1820は、フレーム1810の後に撮影されたフレーム画像である。それぞれには、移動体である人間が撮影されている。
【0093】
図19は、本実施の形態による処理例を示す説明図である。
フレーム1810とフレーム1820内の移動体を抽出し、その移動体を枠で囲んで表示したものである。
この例では、人1902と人1952とが対応し、人1904と人1954とが対応し、人1906と人1956とが対応し、人1908と人1958とが対応し、人1910と人1960とが対応し、人1912と人1962とが対応している。フレーム1810とフレーム1820を1つの画面に表示し、両者の対応する移動体を結びつけることを操作者は行う。それによって、教師データとなる行列を生成する。この行列については、
図22の例を用いて後述する。
なお、人1964はフレーム1820で初めて登場しており、フレーム1810内には対応している人はいない。
【0094】
図20は、本実施の形態による処理例を示す説明図である。
図20に示す例は、
図19に示す例に対応している人に一意の識別子を付したものである。つまり、人1902と人1952に「0001」、人1904と人1954に「0002」、人1906と人1956に「0004」、人1908と人1958に「0003」、人1910と人1960に「0005」、人1912と人1962に「0006」を付し、人1964に「0007」を付している。
【0095】
図21は、本実施の形態による処理例を示す説明図である。
ユーザーインタフェースとして、例えば、識別子が同じ画像を並べて表示してもよい。操作者にとって、移動体の確認を容易にするためである。例えば、
図21は、識別子が「0001」である移動体の画像を並べて表示したものである。操作者は、これを見て同じ移動体であると確認することができる。
【0096】
図19の例に示した操作者の操作によって生成される行列を説明する。
図22は、本実施の形態で対象とする行列の例を示す説明図である。ここでの要素xはフレーム1810での移動体を示しており、要素yはフレーム1820での移動体を示している。
第1行(x
1と各yとの対応を示す行)では、(x
1,y
1)のセルのみが「1」であり、他は「0」である。
第2行(x
2と各yとの対応を示す行)では、(x
2,y
2)のセルのみが「1」であり、他は「0」である。
第3行(x
3と各yとの対応を示す行)では、(x
3,y
3)のセルのみが「1」であり、他は「0」である。
第4行(x
4と各yとの対応を示す行)では、(x
4,y
4)のセルのみが「1」であり、他は「0」である。
第5行(x
5と各yとの対応を示す行)では、(x
5,y
5)のセルのみが「1」であり、他は「0」である。
第6行(x
6と各yとの対応を示す行)では、(x
6,y
6)のセルのみが「1」であり、他は「0」である。
第1列(y
1と各xとの対応を示す列)では、(x
1,y
1)のセルのみが「1」であり、他は「0」である。
第2列(y
2と各xとの対応を示す列)では、(x
2,y
2)のセルのみが「1」であり、他は「0」である。
第3列(y
3と各xとの対応を示す列)では、(x
3,y
3)のセルのみが「1」であり、他は「0」である。
第4列(y
4と各xとの対応を示す列)では、(x
4,y
4)のセルのみが「1」であり、他は「0」である。
第5列(y
5と各xとの対応を示す列)では、(x
5,y
5)のセルのみが「1」であり、他は「0」である。
第6列(y
6と各xとの対応を示す列)では、(x
6,y
6)のセルのみが「1」であり、他は「0」である。
第7列(y
7と各xとの対応を示す列)では、(x
no,y
7)のセルのみが「1」であり、他は「0」である。
なお、この例では、各行では「1」が1つあるので、最終列(y
noと各xとの対応を示す行)では全て「0」としている。
また、第1列から第6列までの各列においてx
1からx
6では「1」が1つあるので、最終行(x
noと各yとの対応を示す行)での該当セルは「0」としており、第7列においてx
1からx
6では「0」だけであるので、最終列での該当セル(x
noと各y
7との対応を示すセル)は「1」としており、第7列において「1」が1つであることを担保している。
【0097】
なお、
図18~
図22に示した例は、機械学習を行う際の例を示したものであるが、その機械学習を終了した後の学習モデルで、移動体の追跡処理を行った場合の処理例としてもよい。
つまり、
図18の例は、カメラ1310が撮影した動画像のフレームであり、
図19、
図20は、移動体の追跡処理をした結果を示す表示例である。特に、動画として再生した場合は、
図20のように識別子を付して同一の移動体であることを示すようにする。もちろんのことながら、識別子の文字ではなく、他の表示属性(例えば、色枠等)で移動体を識別するようにしてもよい。また、
図21の例に示すように、移動体ごとに、各フレームでの画像を切り出して表示するようにしてもよい。特に、操作者が注視すべきであると選択した移動体について、このように表示してもよい。
なお、
図21に示している例は、単なるマッチング処理では、同一移動体であると判断することは困難である。例えば、単なるマッチング処理を行った場合、フレーム1810における人1902は、フレーム1820では人1952ではなく、人1960であると判断される可能性が高い。しかし、本実施の形態では、他の対応関係(特に人1910と人1960の対応関係)も考慮しているので、人1902と人1952とが対応していると判断している。
【0098】
前述の例では、主に、(N+1)×(M+1)以上の行列の例を示した。
図23は、対応関係を示すN×N以上の大きさの行列の例を示す説明図である。これらの行列は、教師データとなるものである。
図23(a)の例に示す行列2300は、最小の大きさとした場合の行列の例である。行列2300は、n個の要素とn個の要素との関係を示している行列である。行列2300は、要素xと要素yの対応関係を示している。「1」は対応していることを示しており、「0」は対応していないことを示している。例えば、1行目は、要素x
1と要素y
2が対応していることを示している。1列目は、要素y
1と要素x
6が対応していることを示している。
2つの集合内の要素は1対1に対応していることを前提としているので、行列2300では、各行には必ず「1」が1つあり、各列には必ず「1」が1つあるようにすることができる。
【0099】
集合内の要素数は変動するので、行列の大きさも変動してしまう。そこで、集合の大きさを固定して、行列の大きさも固定にすることが、計算機上で処理する場合には望ましい。そこで、集合Xの最大となる要素数としてn
max(集合Yの最大となる要素数としてn
max)を予め定めておく。
図23(b)の例に示す行列2350の大きさは、(n
max)×(n
max)である。
なお、行列の大きさを必要数よりも大きくしたことによって、対応関係を表していないセルは、不定領域2360(ドントケア:don’t care)である。この不定領域2360では、「対の対象が無い」を意味する出力ノードを持つ。softmax関数、損失関数(cross-entropy)を用いるためにone-hot vectorとするためである。
つまり、N×Nで1対1に要素が必ず対応する問題の場合でも、縦横状にロス関数を合成することによって、縦横で必ず一つの出力のみが1になるように学習させるようにしている。
【0100】
なお、本実施の形態としてのプログラムが実行されるコンピュータのハードウェア構成は、
図24に例示するように、一般的なコンピュータであり、具体的にはパーソナルコンピュータ、サーバーとなり得るコンピュータ等である。つまり、具体例として、処理部(演算部)としてCPU2401を用い、記憶装置としてRAM2402、ROM2403、HDD2404を用いている。HDD2404として、例えば、HDD(Hard Disk Driveの略)、フラッシュ・メモリであるSSD(Solid State Driveの略)等を用いてもよい。行列生成モジュール110、機械学習モジュール115、移動体抽出モジュール1210等のプログラムを実行するCPU2401と、そのプログラムやデータを記憶するRAM2402と、本コンピュータを起動するためのプログラム等が格納されているROM2403と、教師データ記憶モジュール105、動画像記憶モジュール1205等としての機能を有する補助記憶装置であるHDD2404と、キーボード、マウス、タッチスクリーン、マイク、カメラ(視線検知カメラ等を含む)等に対する利用者の操作(動作、音声、視線等を含む)に基づいてデータを受け付ける受付装置2406と、CRT、液晶ディスプレイ、スピーカー等の出力装置2405と、ネットワークインタフェースカード等の通信ネットワークと接続するための通信回線インタフェース2407、そして、それらをつないでデータのやりとりをするためのバス2408により構成されている。これらのコンピュータが複数台互いにネットワークによって接続されていてもよい。
【0101】
前述の実施の形態のうち、コンピュータ・プログラムによるものについては、本ハードウェア構成のシステムにソフトウェアであるコンピュータ・プログラムを読み込ませ、ソフトウェアとハードウェア資源とが協働して、前述の実施の形態が実現される。
なお、
図24に示すハードウェア構成は、1つの構成例を示すものであり、本実施の形態は、
図24に示す構成に限らず、本実施の形態において説明したモジュールを実行可能な構成であればよい。例えば、一部のモジュールを専用のハードウェア(例えば特定用途向け集積回路(具体例として、ASIC(Application Specific Integrated Circuitの略)等がある)や再構成可能な集積回路(具体例として、FPGA(field-programmable gate arrayの略)等がある)で構成してもよく、一部のモジュールは外部のシステム内にあり通信回線で接続している形態でもよく、さらに
図24に示すシステムが複数互いに通信回線によって接続されていて互いに協調動作するようにしてもよい。また、特に、パーソナルコンピュータの他、携帯情報通信機器(携帯電話、スマートフォン、モバイル機器、ウェアラブルコンピュータ等を含む)、情報家電、ロボット、事務機器などに組み込まれていてもよい。
【0102】
なお、説明したプログラムについては、記録媒体に格納して提供してもよく、また、そのプログラムを通信手段によって提供してもよい。その場合、例えば、前記説明したプログラムについて、「プログラムを記録したコンピュータ読み取り可能な記録媒体」の発明として捉えてもよい。
「プログラムを記録したコンピュータ読み取り可能な記録媒体」とは、プログラムのインストール、実行、プログラムの流通等のために用いられる、プログラムが記録されたコンピュータで読み取り可能な記録媒体をいう。
なお、記録媒体としては、例えば、デジタル・バーサタイル・ディスク(DVD)であって、DVDフォーラムで策定された規格である「DVD-R、DVD-RW、DVD-RAM等」、DVD+RWで策定された規格である「DVD+R、DVD+RW等」、コンパクトディスク(CD)であって、読出し専用メモリ(CD-ROM)、CDレコーダブル(CD-R)、CDリライタブル(CD-RW)等、ブルーレイ・ディスク(Blu-ray(登録商標) Disc)、光磁気ディスク(MO)、フレキシブルディスク(FD)、磁気テープ、ハードディスク、読出し専用メモリ(ROM)、電気的消去及び書換可能な読出し専用メモリ(EEPROM(登録商標))、フラッシュ・メモリ、ランダム・アクセス・メモリ(RAM)、SD(Secure Digitalの略)メモリーカード等が含まれる。
そして、前記のプログラムの全体又はその一部は、前記記録媒体に記録して保存や流通等させてもよい。また、通信によって、例えば、ローカル・エリア・ネットワーク(LAN)、メトロポリタン・エリア・ネットワーク(MAN)、ワイド・エリア・ネットワーク(WAN)、インターネット、イントラネット、エクストラネット等に用いられる有線ネットワーク、又は無線通信ネットワーク、さらにこれらの組み合わせ等の伝送媒体を用いて伝送させてもよく、また、搬送波に乗せて搬送させてもよい。
さらに、前記のプログラムは、他のプログラムの一部分若しくは全部であってもよく、又は別個のプログラムと共に記録媒体に記録されていてもよい。また、複数の記録媒体に分割して記録されていてもよい。また、圧縮や暗号化等、復元可能であればどのような態様で記録されていてもよい。
【符号の説明】
【0103】
100…情報処理装置
105…教師データ記憶モジュール
110…行列生成モジュール
115…機械学習モジュール
1200…移動体追跡機械学習装置
1205…動画像記憶モジュール
1210…移動体抽出モジュール