(57)【要約】      （修正有）【課題】入力データに応じて最適な１つ以上の認識エンジンを自動的に選択することによって、コンテキストの認識精度を高めることができるプログラム、装置及び方法を提供する。【解決手段】認識装置１は、入力データと認識エンジンの識別子とを対応付けた教師データによって学習した学習モデルを用いて、推定すべき入力データに対する認識エンジンを選択し、選択された当該認識エンジンへ当該入力データを出力する選択エンジン１１と、当該入力データに対して認識エンジン１２１、１２２によって算出された認識スコアが認識閾値以上となる認識エンジンを判定し、当該認識エンジンの識別子を選択エンジンへフィードバックする認識スコア判定部１３とを有する。選択エンジン１１は、当該入力データと、フィードバックされた当該認識エンジンの識別子とを対応付けた教師データによって、学習モデルを再学習する。【選択図】図２
2019139479.tif 000002
【特許請求の範囲】
【請求項１】
複数の認識エンジンを用いて、入力データからコンテキストを推定するようにコンピュータを機能させる認識プログラムにおいて、
入力データと認識エンジンの識別子とを対応付けた教師データによって学習した学習モデルを用いて、推定すべき入力データに対する認識エンジンを選択し、選択された当該認識エンジンへ当該入力データを出力する選択エンジンと、
当該入力データに対して認識エンジンによって算出された認識スコアが認識閾値以上となる認識エンジンを判定し、当該認識エンジンの識別子を前記選択エンジンへフィードバックする認識スコア判定手段と
してコンピュータに機能させ、
前記選択エンジンは、当該入力データと、フィードバックされた当該認識エンジンの識別子とを対応付けた教師データによって、前記学習モデルを再学習する
ようにコンピュータに機能させることを特徴とする認識プログラム。
【請求項２】
前記認識エンジンは、クラス毎に認識スコアを算出するクラス分類に基づくものであり、
前記認識エンジンは、複数のクラスの複数のスコアにおける最高値、最低値、平均値又は加算値のいずれかの統計値を、前記認識スコアとして算出する
ようにコンピュータを機能させることを特徴とする請求項１に記載の認識プログラム。
【請求項３】
前記認識スコア判定手段は、前記入力データに対して要した処理時間が、所定閾値時間以下となった認識エンジンの識別子のみを、前記選択エンジンへフィードバックする
ようにコンピュータを機能させることを特徴とする請求項１又は２に記載の認識プログラム。
【請求項４】
前記選択エンジンは、クラス毎に選択スコアを算出するクラス分類に基づくものであり、
前記選択エンジンは、推定すべき入力データに対する当該選択スコアが第１の選択閾値以上となる認識エンジンへ、当該入力データを出力する
ようにコンピュータを機能させることを特徴とする請求項１から３のいずれか１項に記載の認識プログラム。
【請求項５】
前記選択エンジンは、当該選択スコアが第１の選択閾値未満で且つ第２の選択閾値以上となる認識エンジンへ更に、当該入力データを出力する
ようにコンピュータを機能させることを特徴とする請求項４に記載の認識プログラム。
【請求項６】
前記選択エンジンは、第１の選択閾値以上となった一方の認識エンジンの選択スコアと、第１の選択閾値未満となった他方の認識エンジンの認識スコアとの差が、所定差分以下である場合、他方の認識エンジンへ更に、当該入力データを出力する
ようにコンピュータを機能させることを特徴とする請求項４に記載の認識プログラム。
【請求項７】
前記入力データは、映像データであり、
複数の前記認識エンジンは、互いに異なるものであり、
ＲＧＢ画像に基づく物体認識エンジン、
オプティカルフローに基づく動体認識エンジン、及び／又は、
スケルトン情報に基づく人物の関節認識エンジン
のいずれかである
ようにコンピュータを機能させることを特徴とする請求項１から６のいずれか１項に記載の認識プログラム。
【請求項８】
複数の認識エンジンを用いて、入力データからコンテキストを推定する認識装置において、
入力データと認識エンジンの識別子とを対応付けた教師データによって学習した学習モデルを用いて、推定すべき入力データに対する認識エンジンを選択し、選択された当該認識エンジンへ当該入力データを出力する選択エンジンと、
当該入力データに対して認識エンジンによって算出された認識スコアが認識閾値以上となる認識エンジンを判定し、当該認識エンジンの識別子を前記選択エンジンへフィードバックする認識スコア判定手段と
を有し、
前記選択エンジンは、当該入力データと、フィードバックされた当該認識エンジンの識別子とを対応付けた教師データによって、前記学習モデルを再学習する
ことを特徴とする認識装置。
【請求項９】
複数の認識エンジンを用いて、入力データからコンテキストを推定する装置の認識方法において、
前記装置は、
入力データと認識エンジンの識別子とを対応付けた教師データによって学習した学習モデルを用いて、推定すべき入力データに対する認識エンジンを選択し、選択された当該認識エンジンへ当該入力データを出力する第１のステップと、
当該入力データに対して認識エンジンによって算出された認識スコアが認識閾値以上となる認識エンジンを判定する第２のステップと、
当該入力データと、第２のステップによって真と判定された当該認識エンジンの識別子とを対応付けた教師データによって、前記学習モデルを再学習する第３のステップと
を実行することを特徴とする装置の認識方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の認識エンジンを用いてコンテキストを推定する技術に関する。
【背景技術】
【０００２】
近年、ディープラーニングを用いることによって、物体認識や人物の行動認識における認識精度が飛躍的に向上してきている。
例えば、特定のデータセットを入力し、機械学習アルゴリズムの候補を比較する技術がある（例えば特許文献１参照）。この技術によれば、機械学習モデル毎の性能結果を集計することによって、機械学習モデルの評価を自動的に比較することができる。
【０００３】
映像データに対する認識エンジンとして、例えばＲＧＢ画像に映り込む物体を検出する物体認識の技術がある（例えば非特許文献１参照）。
また、移動特徴量（オプティカルフロー）から物体の動きを検出する動体認識の技術もある（例えば非特許文献２参照）。例えばTwo-stream ConvNetsによれば、空間方向のＣＮＮ(Spatial stream ConvNet)と時系列方向のＣＮＮ(Temporal stream ConvNet)とを用いて、画像中の物体や背景のアピアランス特徴と、オプティカルフローの水平方向成分及び垂直方向成分の系列における動き特徴との両方を抽出する。これら両方の特徴を統合することによって、行動を高精度に認識する。
更に、３次元映像から、人物の行動を認識する技術もある（例えば非特許文献３参照）。
更に、人の関節とその連携部分のスケルトン情報を抽出することによって、人物の行動を認識する技術もある（例えば非特許文献４参照）。
【０００４】
その他の適用分野として、ロボットの自律動作によれば、階層的な学習モデルの強化学習を実行する技術もある（例えば非特許文献５参照）。また、ゲートネットワークが使用する機械学習のネットワークであるエキスパートネットワークを、入力データに応じて選択する技術もある（例えば非特許文献６参照）。
【０００５】
図１は、認識装置を有するシステム構成図である。
【０００６】
図１のシステムによれば、認識装置１は、インターネットに接続されたサーバとして機能する。認識装置１は、教師データによって予め学習モデルを構築した認識エンジンを有する。認識エンジンが、人物の行動を認識するものである場合、教師データは、人の行動が映り込む映像データと、その行動対象（コンテキスト）とが予め対応付けられたものである。
【０００７】
端末２はそれぞれ、カメラを搭載しており、人の行動を撮影した映像データを、認識装置１へ送信する。端末２は、各ユーザによって所持されるスマートフォンや携帯端末であって、携帯電話網又は無線ＬＡＮのようなアクセスネットワークに接続する。
勿論、端末２は、スマートフォン等に限られず、例えば宅内に設置されたＷｅｂカメラであってもよい。また、Ｗｅｂカメラによって撮影された映像データがＳＤカードに記録され、その記録された映像データが認識装置１へ入力されるものであってもよい。
【０００８】
具体的には、例えばユーザに、自らのスマートフォンのカメラで、自らの行動を撮影してもらう。そのスマートフォンは、その映像データを、認識装置１へ送信する。認識装置１は、その映像データから人の行動を推定し、その推定結果を様々なアプリケーションで利用する。
尚、認識装置１の各機能が端末２に組み込まれたものであってもよい。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２０１７−００４５０９号公報
【非特許文献】
【００１０】
【非特許文献１】Shaoqing Ren, Kaiming He, Ross Girshick, Jian Sun: Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks 、[online]、［平成３０年１月２４日検索］、インターネット＜URL:https://arxiv.org/pdf/1506.01497.pdf＞
【非特許文献２】Karen Simonyan and Andrew Zisserman, “Two-Stream Convolutional Networks for Action Recognition in Videos,” in NIPS 2014、[online]、［平成３０年１月２４日検索］、インターネット＜URL:https://arxiv.org/abs/1406.2199.pdf＞
【非特許文献３】Hernandez Ruiz, Alejandro & Porzi, Lorenzo & Rota Bul?, Samuel & Moreno-Noguer, Francesc: 3D CNNs on Distance Matrices for Human Action Recognition、[online]、［平成３０年１月２４日検索］、インターネット＜URL:https://www.researchgate.net/publication/320543521_3D_CNNs_on_Distance_Matrices_for_Human_Action_Recognition＞
【非特許文献４】Zhe Cao, Tomas Simon, Shih-En Wei, Yaser Sheikh: Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields.、[online]、［平成３０年１月２８日検索］、インターネット＜https://arxiv.org/pdf/1611.08050.pdf＞
【非特許文献５】高橋 泰岳、浅田 稔、「複数の学習機構の階層的構築による行動獲得」、[online]、［平成３０年１月２４日検索］、インターネット＜URL:http://www.er.ams.eng.osaka-u.ac.jp/Paper/1999/Takahashi99c.pdf＞
【非特許文献６】Noam Shazeer, Azalia Mirhoseini, Krzysztof Maziarz, Andy Davis, Quoc Le, Geoffrey Hinton and Jeff Dean: OUTRAGEOUSLY LARGE NEURAL NETWORKS: THE SPARSELY-GATED MIXTURE-OF-EXPERTS LAYER、[online]、［平成３０年１月２４日検索］、インターネット＜URL:https://openreview.net/pdf?id=B1ckMDqlg＞
【非特許文献７】OpenPose、[online]、［平成３０年１月２４日検索］、インターネット＜URL:https://github.com/CMU-Perceptual-Computing-Lab/openpose＞
【非特許文献８】「動画や写真からボーンが検出できる OpenPoseを試してみた」、[online]、［平成３０年１月２４日検索］、インターネット＜URL:http://hackist.jp/?p=8285＞
【非特許文献９】「OpenPoseがどんどんバージョンアップして3d pose estimationも試せるようになっている」、[online]、［平成３０年１月２４日検索］、インターネット＜URL: http://izm-11.hatenablog.com/entry/2017/08/01/140945＞
【発明の概要】
【発明が解決しようとする課題】
【００１１】
非特許文献１〜４の技術によれば、認識精度が最も高くなるであろう学習モデルを予め決定しておく必要がある。そのために、入力データによっては、結果的に最適でない学習モデルが選択される場合もあり得る。
特許文献１の技術によれば、機械学習モデルを比較するために、全ての機械学習モデルに入力データを入力する必要がある。機械学習モデルが多いほど、サーバリソースを必要とする。
非特許文献５の技術によれば、階層的な学習モデルの強化学習を実行するものであって、複数の認識エンジンを用いてコンテキストを認識するものではない。
非特許文献６の技術によれば、ネットワークを選択するエキスパートの学習が不十分である場合、ユーザ所望のスコアに満たないこともある。
【００１２】
前述したいずれの従来技術についても、学習モデルが最適に構築された認識エンジンを利用することを前提としたものであって、入力データに応じて、最適な学習モデルの認識エンジンを予め決定しておく必要がある。
これに対し、本発明の発明者らは、入力データに応じて、最適な１つ以上の認識エンジンを自動的に選択することによって、コンテキスト（認識結果）の認識精度を高めることができないか、と考えた。
【００１３】
そこで、本発明は、入力データに応じて最適な１つ以上の認識エンジンを自動的に選択することによって、コンテキストの認識精度を高めることができるプログラム、装置及び方法を提供することを目的とする。
【課題を解決するための手段】
【００１４】
本発明によれば、複数の認識エンジンを用いて、入力データからコンテキストを推定するようにコンピュータを機能させる認識プログラムにおいて、
入力データと認識エンジンの識別子とを対応付けた教師データによって学習した学習モデルを用いて、推定すべき入力データに対する認識エンジンを選択し、選択された当該認識エンジンへ当該入力データを出力する選択エンジンと、
当該入力データに対して認識エンジンによって算出された認識スコアが認識閾値以上となる認識エンジンを判定し、当該認識エンジンの識別子を選択エンジンへフィードバックする認識スコア判定手段と
してコンピュータに機能させ、
選択エンジンは、当該入力データと、フィードバックされた当該認識エンジンの識別子とを対応付けた教師データによって、学習モデルを再学習する
ようにコンピュータに機能させることを特徴とする。
【００１５】
本発明の認識プログラムにおける他の実施形態によれば、
認識エンジンは、クラス毎に認識スコアを算出するクラス分類に基づくものであり、
認識エンジンは、複数のクラスの複数のスコアにおける最高値、最低値、平均値又は加算値のいずれかの統計値を、認識スコアとして算出する
ようにコンピュータを機能させることも好ましい。
【００１６】
本発明の認識プログラムにおける他の実施形態によれば、
認識スコア判定手段は、入力データに対して要した処理時間が、所定閾値時間以下となった認識エンジンの識別子のみを、選択エンジンへフィードバックする
ようにコンピュータを機能させることも好ましい。
【００１７】
本発明の認識プログラムにおける他の実施形態によれば、
選択エンジンは、クラス毎に選択スコアを算出するクラス分類に基づくものであり、
選択エンジンは、推定すべき入力データに対する当該選択スコアが第１の選択閾値以上となる認識エンジンへ、当該入力データを出力する
ようにコンピュータを機能させることも好ましい。
【００１８】
本発明の認識プログラムにおける他の実施形態によれば、
選択エンジンは、当該選択スコアが第１の選択閾値未満で且つ第２の選択閾値以上となる認識エンジンへ更に、当該入力データを出力する
ようにコンピュータを機能させることも好ましい。
【００１９】
本発明の認識プログラムにおける他の実施形態によれば、
選択エンジンは、第１の選択閾値以上となった一方の認識エンジンの選択スコアと、第１の選択閾値未満となった他方の認識エンジンの認識スコアとの差が、所定差分以下である場合、他方の認識エンジンへ更に、当該入力データを出力する
ようにコンピュータを機能させることも好ましい。
【００２０】
本発明の認識プログラムにおける他の実施形態によれば、
入力データは、映像データであり、
複数の認識エンジンは、互いに異なるものであり、
ＲＧＢ画像に基づく物体認識エンジン、
オプティカルフローに基づく動体認識エンジン、及び／又は、
スケルトン情報に基づく人物の関節認識エンジン
のいずれかである
ようにコンピュータを機能させることも好ましい。
【００２１】
本発明によれば、複数の認識エンジンを用いて、入力データからコンテキストを推定する認識装置において、
入力データと認識エンジンの識別子とを対応付けた教師データによって学習した学習モデルを用いて、推定すべき入力データに対する認識エンジンを選択し、選択された当該認識エンジンへ当該入力データを出力する選択エンジンと、
当該入力データに対して認識エンジンによって算出された認識スコアが認識閾値以上となる認識エンジンを判定し、当該認識エンジンの識別子を選択エンジンへフィードバックする認識スコア判定手段と
を有し、
選択エンジンは、当該入力データと、フィードバックされた当該認識エンジンの識別子とを対応付けた教師データによって、学習モデルを再学習する
ことを特徴とする。
【００２２】
本発明によれば、複数の認識エンジンを用いて、入力データからコンテキストを推定する装置の認識方法において、
装置は、
入力データと認識エンジンの識別子とを対応付けた教師データによって学習した学習モデルを用いて、推定すべき入力データに対する認識エンジンを選択し、選択された当該認識エンジンへ当該入力データを出力する第１のステップと、
当該入力データに対して認識エンジンによって算出された認識スコアが認識閾値以上となる認識エンジンを判定する第２のステップと、
当該入力データと、第２のステップによって真と判定された当該認識エンジンの識別子とを対応付けた教師データによって、学習モデルを再学習する第３のステップと
を実行することを特徴とする。
【発明の効果】
【００２３】
本発明のプログラム、装置及び方法によれば、入力データに応じて最適な１つ以上の認識エンジンを自動的に選択することによって、コンテキストの認識精度を高めることができる。
【図面の簡単な説明】
【００２４】
【図１】認識装置を有するシステム構成図である。
【図２】本発明における認識装置の機能構成図である。
【図３】本発明における具体的な第１の処理フローである。
【図４】本発明における具体的な第２の処理フローである。
【図５】本発明における具体的な第３の処理フローである。
【図６】本発明における具体的な第４の処理フローである。
【図７】映像データに対する具体的な第５の処理フローである。
【図８】図７に基づくフローチャートである。
【発明を実施するための形態】
【００２５】
以下、本発明の実施の形態について、図面を用いて詳細に説明する。
【００２６】
図２は、本発明における認識装置の機能構成図である。
【００２７】
認識装置１は、複数の認識エンジンを用いて、入力データからコンテキスト（例えば物体、動体、人物行動など）を推定する。
図２によれば、認識装置１は、選択エンジン１１と、複数の認識エンジン１２（第１の認識エンジン１２１、第２の認識エンジン１２２）と、認識スコア判定部１３とを有する。これら機能構成部は、装置に搭載されたコンピュータを機能させるプログラムを実行することによって実現できる。また、これら機能構成部の処理の流れは、入力データに対する装置の認識方法としても理解できる。
【００２８】
［選択エンジン１１］
選択エンジン１１は、クラス分類に基づくものであって、推定すべき入力データに、クラス（認識エンジン１２の識別子）を付与する機械学習エンジンである。選択エンジン１１は、入力データと認識エンジンの識別子とを対応付けた教師データに基づいて、学習モデルを予め構築したものである。
＜教師データ＞
入力データ  <->  認識エンジンの識別子
選択エンジン１１は、具体的には、認識エンジン（クラス）毎に、スコア（認識精度）を算出する。一般的には、スコアが最も高い１つの認識エンジンが、推定結果として選択される。但し、本発明によれば、認識エンジンは、１つに限られず、複数であってもよい。選択エンジン１１の選択方法における実施形態については、図３〜図６で後述する。
そして、選択エンジン１１は、学習モデルを用いて、推定すべき入力データに対する認識エンジン１２を選択し、選択された認識エンジン１２へ入力データを出力する。
【００２９】
尚、本発明の選択エンジン１１は、完全な学習モデルを予め構築しておく必要はなく、後述する認識スコア判定部１３からのフィードバックによって再学習していく。「再学習」とは、入力データと、フィードバックされた認識エンジンの識別子とを教師データとして、当該学習モデルに更に学習させることをいう。
【００３０】
［認識エンジン１２］
選択エンジン１１によって選択された認識エンジン１２は、当該選択エンジン１１から、入力データを入力する。認識エンジン１２も、クラス分類に基づくものであって、クラス（推定可能なコンテキスト）毎に、認識スコア（認識精度）を算出する。一般的には、認識スコアが最も高い１つのコンテキストが、推定結果として出力される。
【００３１】
本発明によれば、異なる種類の複数の認識エンジン１２を有する。例えば、物体を主として認識するエンジン、大まかな行動を主として認識するエンジン、細かな行動を主として認識するエンジンのように、異なる種類の認識エンジンを組み合わせる。各認識エンジンは、その種類に応じて異なる教師データに基づいて、学習モデルを予め構築したものである。
【００３２】
図２によれば、２つの認識エンジン（第１の認識エンジン１２１、第２の認識エンジン１２２）を有する。認識エンジン１２によって算出される認識スコアは、複数のコンテキストの複数の認識スコアにおける最高値、最低値、平均値又は加算値のいずれかの「統計値」であってもよい。
そして、各認識エンジン１２は、コンテキスト毎に算出された認識スコアを、認識スコア判定部１３へ出力する。
【００３３】
［認識スコア判定部１３］
認識スコア判定部１３は、当該入力データに対して各認識エンジン１２の各コンテキストについて算出された認識スコアが、「認識閾値」以上であるか否かを判定する。
ここで、真（認識スコア≧認識閾値）と判定された場合、当該認識エンジン１２の識別子を選択エンジン１１へフィードバックする。  これに対して、選択エンジン１１は、当該入力データと当該認識エンジンの識別子とを対応付けた教師データとして、学習モデルを再学習する。
また、各認識エンジン１２によって算出された認識スコアの中で、認識閾値以上となるコンテキストは、推定結果として、アプリケーションへ出力される。
尚、認識閾値は、オペレータによって任意に設定可能なものである。
【００３４】
結果的に、選択エンジン１１は、認識スコア判定部１３からのフィードバックに基づいて学習モデルを再学習することによって、その後、推定すべき入力データに対して、できる限り最適な認識エンジン１２を選択するようになる。
【００３５】
図３は、本発明における具体的な第１の処理フローである。
【００３６】
図３によれば、選択エンジン１１は、推定すべき入力データに対する各認識エンジンについて、以下のように選択スコアを算出したとする。
［認識エンジンＩＤ］  ［選択スコア］
Ｓ１          ->    ０．７
Ｓ２          ->    ０．６
＜選択エンジン１１＞※第１の選択閾値＝０．６
ここで、選択エンジン１１は、選択スコアが第１の選択閾値（例えば０．６）以上となる認識エンジン１２１及び１２２の両方へ、当該入力データを出力している。
尚、第１の選択閾値は、オペレータによって任意に設定可能なものである。
【００３７】
次に、第１の認識エンジン１２１及び第２の認識エンジン１２２は、入力データに対するコンテキスト毎の認識スコアを、認識スコア判定部１３へ出力する。ここでは、複数のコンテキストの複数の認識スコアにおける「最高値」を統計値としたものである。
＜第１の認識エンジン１２１＞  （コンテキスト）：（認識スコア）
ｃ１１    ：    ０．５
ｃ１２    ：    ０．２
ｃ１３    ：    ０．１
※最高値（統計値）＝０．５
＜第２の認識エンジン１２２＞  （コンテキスト）：（認識スコア）
ｃ２１    ：    ０．７
ｃ２２    ：    ０．３
ｃ２３    ：    ０．３
※最高値（統計値）＝０．７
＜認識スコア判定部１３＞        ※認識閾値＝０．６
【００３８】
認識スコア判定部１３は、認識スコアが、認識閾値（０．６）以上であるか否かを判定する。ここでは、第２の認識エンジン１２２のみが認識スコア０．６以上であるために、第２の認識エンジン１２２の識別子（ＩＤ：１２２）を、選択エンジン１１へフィードバックする。
これによって、選択エンジン１１は、当該入力データと、フィードバックされた第２の認識エンジン１２２の識別子とを対応付けた教師データによって、学習モデルを再学習する。
尚、図３によれば、統計値は、最高値であるとして説明したが、最低値、平均値、加算値であってもよい。
【００３９】
図４は、本発明における具体的な第２の処理フローである。
【００４０】
図４によれば、図３と比較して、選択エンジン１１は、推定すべき入力データに対する各認識エンジンについて、以下のように選択スコアを算出したとする。
［認識エンジンＩＤ］  ［選択スコア］
Ｓ１          ->    ０．７
Ｓ２          ->    ０．６
＜選択エンジン１１＞※第１の選択閾値＝０．７
ここで、選択エンジン１１は、選択スコアが第１の選択閾値（例えば０．７）以上となる第１の認識エンジン１２１のみへ、当該入力データを出力する。この場合、第２の認識エンジン１２２へは、入力データは出力されない。
【００４１】
次に、第１の認識エンジン１２１は、入力データに対するコンテキスト毎の認識スコアを、認識スコア判定部１３へ出力する。ここでも、コンテキストの複数の認識スコアにおける「最高値」を統計値とする。
＜第１の認識エンジン１２１＞  （コンテキスト）：（認識スコア）
ｃ１１    ：    ０．５
ｃ１２    ：    ０．２
ｃ１３    ：    ０．１
※最高値（統計値）＝０．５
【００４２】
そして、認識スコア判定部１３は、認識スコアが認識閾値（例えば０．５）以上となる第１の認識エンジン１２１の識別子（ＩＤ：１２１）を、選択エンジン１１へフィードバックする。
これによって、選択エンジン１１は、当該入力データと、当該第１の認識エンジン１２１の識別子とを対応付けた教師データとして更に、学習モデルを再学習する。
【００４３】
図５は、本発明における具体的な第３の処理フローである。
【００４４】
図５によれば、図３と同様に、認識エンジン１２によって算出される認識スコアは、複数のコンテキストの複数のスコアにおける最高値を統計値として、算出している。
＜第１の認識エンジン１２１＞  （コンテキスト）：（スコア）
ｃ１１    ：  ０．６
ｃ１２    ：  ０．２
ｃ１３    ：  ０．１
※最高値（統計値）＝０．６
※処理時間＝１００ｍｓ
＜第２の認識エンジン１２２＞  （コンテキスト）：（スコア）
ｃ２１    ：  ０．７
ｃ２２    ：  ０．３
ｃ２３    ：  ０．３
※最高値（統計値）＝０．７
※処理時間＝５００ｍｓ
＜認識スコア判定部１３＞        ※認識閾値＝０．６
※所定閾値時間＝２００ｍｓ
【００４５】
認識スコア判定部１３は、認識スコアが、認識閾値（０．６）以上であるか否かを判定する。ここでは、認識エンジン１２１及び１２２の両方の認識スコアが０．６以上である。
また、認識スコア判定部１３は、入力データに対して要した処理時間が、所定閾値時間（２００ｍｓ）以下であるか否かを判定する。ここでは、第２の認識エンジン１２２の処理時間が５００ｍｓであって、偽となる。この場合、認識スコア判定部１３は、第１の認識エンジン１２１の識別子（ＩＤ：１２１）のみを、選択エンジン１１へフィードバックする。
これによって、選択エンジン１１は、当該入力データと、第１の認識エンジン１２１の識別子とを対応付けた教師データによって、学習モデルを再学習する。
このように、認識スコアのみならず、認識エンジンの「処理時間」に基づいて、選択エンジン１１の学習モデルを再学習することは、処理リソースの観点も好ましい。
【００４６】
図６は、本発明における具体的な第４の処理フローである。
【００４７】
図６によれば、選択エンジン１１の学習モデルに学習漏れを考慮したものである。即ち、選択スコアが第１の選択閾値未満となった認識エンジン１２であっても、選択エンジン１１の学習モデルの学習が不完全であったために、選択すべき認識エンジン１２を選択できなかった可能性がある。その場合、その認識エンジン１２の認識スコアについて改めて、選択エンジン１１の学習モデルの再学習に利用するか否かを判定する。
図６によれば、２つの実施形態について記載されている。
【００４８】
＜第１の実施形態＞
前述した選択エンジン１１によれば、選択スコアが第１の選択閾値（例えば０．６）以上となる第１の認識エンジン１２１を選択する。
これに対し更に、選択エンジン１１は、選択スコアが第１の選択閾値（例えば０．６）未満で且つ第２の選択閾値（例えば０．５）以上となる第２の認識エンジン１２２も選択する。
そして、選択エンジン１１は、選択された認識エンジン１２１及び１２２の両方へ入力データを出力する。
次に、認識エンジン１２１及び１２２は、入力データに対するコンテキスト毎の認識スコアを、認識スコア判定部１３へ出力する。
そして、認識スコア判定部１３は、認識スコアが認識閾値（例えば０．６）以上となる認識エンジン１２１及び１２２の識別子を、選択エンジン１１へフィードバックする。
これによって、選択エンジン１１は、当該入力データと、当該認識エンジン１２１及び１２２の識別子とを対応付けた教師データとして、学習モデルを再学習する。
【００４９】
＜第２の実施形態＞
前述した選択エンジン１１によれば、選択スコアが第１の選択閾値（例えば０．６）以上となる第１の認識エンジン１２１を選択する。
これに対し更に、選択エンジン１１は、選択された第１の認識エンジン１２１の選択スコア（例えば０．７）と、第１の選択閾値未満となった第２の認識エンジン１２２の選択スコア（例えば０．５）との差が、所定差分（例えば０．２）以下であるか否かを判定する。真と判定された場合、選択エンジン１１は、選択スコアが第１の選択閾値（例えば０．６未満）となる第２の認識エンジン１２２も選択する。
そして、選択エンジン１１は、選択された認識エンジン１２１及び１２２の両方へ入力データを出力する。
次に、認識エンジン１２１及び１２２は、入力データに対するコンテキスト毎の認識スコアを、認識スコア判定部１３へ出力する。
そして、認識スコア判定部１３は、認識スコアが認識閾値（例えば０．６）以上となる認識エンジン１２１及び１２２の識別子を、選択エンジン１１へフィードバックする。
これによって、選択エンジン１１は、当該入力データと、当該認識エンジン１２１及び１２２の識別子とを対応付けた教師データとして、学習モデルを再学習する。
【００５０】
前述した図３〜図６によれば、全ての認識エンジン１２によって算出された認識スコアを、１つの認識閾値によって判定している。これに対し、他の実施形態として、認識エンジン１２毎に、異なる認識閾値によって判定するもであってもよい。
【００５１】
尚、全ての認識エンジン１２によって算出された認識スコアが、認識閾値に満たない場合、別途又は特定の認識エンジンによって認識するようにしたものであってもよいし、当該入力データに認識エンジン無しを対応付けた教師データとして、選択エンジン１１の学習モデルを再学習するものであってもよい。
【００５２】
図７は、映像データに対する具体的な第５の処理フローである。
図８は、図７に基づくフローチャートである。
【００５３】
認識装置１は、入力データとして、人の行動が映り込む映像データを入力し、行動認識結果（コンテキスト）を推定するとする。
図７及び図８によれば、互いに異なる３つの認識エンジンを有する。
（１）ＲＧＢ画像に基づく物体認識エンジン
（２）オプティカルフローに基づく動体認識エンジン
（３）スケルトン情報に基づく人物の関節認識エンジン
これら認識エンジンはそれぞれ、人物が映り込む大量の映像データに行動結果が対応付けられた教師データによって、学習モデルを予め生成したものである。物体認識、動体認識及び関節認識では、同じ映像データを認識する場合であっても、行動結果としてのコンテキストが異なっていてもよい。
【００５４】
（１）ＲＧＢ認識に基づく物体認識エンジンは、具体的にはＣＮＮ(Convolutional Neural Network)のようなニューラルネットワークを用いて、撮影映像に映り込むオブジェクト（対象物）を推定する。
例えば「コップ」「スマホ」「テレビ」「建物」のように、映像データに物体が映り込んでいる場合、物体を高い精度で認識する。
【００５５】
（２）オプティカルフローに基づく動体認識エンジンは、フレーム間で同一の特徴点が動いている箇所を抽出し、撮影映像の中の物体の動きを「ベクトル」で表すものである。
例えば「把持」「振る」「パンチ」「蹴る」のように、映像データに人物の動きが映り込んでいる場合、動体を高い精度で認識する。
【００５６】
（３）スケルトン情報に基づく人物の関節認識エンジンは、具体的にはOpenPose（登録商標）のようなスケルトンモデルを用いて、人の関節の特徴点を抽出するものである（例えば非特許文献７〜９参照）。OpenPoseとは、画像から複数の人間の体／手／顔のキーポイントをリアルタイムに検出可能なソフトウェアであって、GitHubによって公開されている。撮影映像に映る人の身体全体であれば、例えば１５点のキーポイントを検出できる。
例えば「飲む」「食べる」「走る」「畳む」のように、映像データに人物の関節の角度や位置に基づく人物の動きが映り込んでいる場合、人物の関節の動きを高い精度で認識する。
【００５７】
人物の行動認識については、一般的に、物体認識よりも、動体認識及び関節認識の方が、認識精度は高い。また、人物の身体の動作認識の場合、動体認識よりも、関節認識の方が、認識精度は高い。
【００５８】
図７及び図８によれば、以下のように処理されている。
（Ｓ１０）認識装置１は、「映像データ」を入力する。
（Ｓ１１）選択エンジン１１は、図７によれば、全ての認識エンジン１２を選択しているとする。この場合、選択エンジン１１は、各認識エンジン１２へ、映像データを出力している。
（Ｓ１２）各認識エンジン１２は、以下のようなコンテキスト及び認識スコアを出力している。
＜ＲＧＢ認識エンジン１２１＞              （コンテキスト）：（スコア）
コップ    ：  ０．７
スマホ    ：  ０．４
テレビ    ：  ０．１
※最高値（統計値）＝０．７
＜オプティカルフロー認識エンジン１２２＞  （コンテキスト）：（スコア）
把持    ：  ０．４
振る    ：  ０．２
パンチ  ：  ０．１
※最高値（統計値）＝０．４
＜スケルトン認識エンジン１２３＞          （コンテキスト）：（スコア）
飲む    ：  ０．６
食べる  ：  ０．２
走る    ：  ０．０
※最高値（統計値）＝０．６
（Ｓ１３）認識スコア判定部１３は、認識スコアが、認識閾値（０．６）以上であるか否かを判定する。ここでは、認識エンジン１２１及び１２３が、認識スコア０．６以上となっている。
また、認識エンジン１２１及び１２３によって算出された認識スコアの中で、認識閾値以上となるコンテンツ「コップ」「飲む」が、推定結果として、アプリケーションへ出力される。
（Ｓ１４）認識エンジン１２１及び１２３の識別子（ＩＤ：１２１、１２３）を、選択エンジン１１へフィードバックする。
これによって、選択エンジン１１は、当該入力データと、フィードバックされた認識エンジン１２１及び１２３の識別子とを対応付けた教師データによって、学習モデルを再学習する。
【００５９】
他の実施形態として、本発明の認識エンジンは、映像データに基づくものに限られず、文字認識のものであってもよいし、特定の物体（例えば花の種類）専用に認識するものであってもよい。
【００６０】
以上、詳細に説明したように、本発明のプログラム、装置及び方法によれば、入力データに応じて最適な１つ以上の認識エンジンを自動的に選択することによって、コンテキストの認識精度を高めることができる。
本発明によれば、入力データに対する認識エンジンは、学習モデルを有する選択エンジンによって切り替えられるために、予め決定しておく必要がない。
特に、本発明によれば、選択エンジンの学習モデルは、学習段階のみならず、運用段階であっても再学習することができる。
【００６１】
前述した本発明の種々の実施形態について、本発明の技術思想及び見地の範囲の種々の変更、修正及び省略は、当業者によれば容易に行うことができる。前述の説明はあくまで例であって、何ら制約しようとするものではない。本発明は、特許請求の範囲及びその均等物として限定するものにのみ制約される。
【符号の説明】
【００６２】
１  認識装置
１１  選択エンジン
１２  認識エンジン
１２１  第１の認識エンジン
１２２  第２の認識エンジン
１３  認識スコア判定部
２  端末
【図１】
2019139479.tif 000003
【図２】
2019139479.tif 000004
【図３】
2019139479.tif 000005
【図４】
2019139479.tif 000006
【図５】
2019139479.tif 000007
【図６】
2019139479.tif 000008
【図７】
2019139479.tif 000009
【図８】
2019139479.tif 000010