(57)【要約】【課題】最終的に特定されるイベントの精度を向上させること。【解決手段】検出装置１００は、時系列の複数の画像フレームに含まれる特定の物体の位置をそれぞれ検出した結果に基づき、特定の物体の移動軌跡を特定し、移動軌跡を基にして、イベントの発生を検出する。検出装置１００は、移動軌跡に関する評価値を基にして、移動軌跡から検出されたイベントの信頼度を算出する。検出装置１００は、イベントに対応する信頼度が閾値未満である場合に、特定の物体の位置とイベントとの関係を学習した第一学習結果、および、イベントの発生順序を学習した第二学習結果の少なくとも一方を基にして、イベントを再度検出する。【選択図】図３
2020017010.tif 000002
【特許請求の範囲】
【請求項１】
時系列の複数の画像フレームに含まれる特定の物体の位置をそれぞれ検出した結果に基づき、前記特定の物体の移動軌跡を特定し、前記移動軌跡を基にして、前記特定の物体の動きにかかわる複数のイベントのいずれかが発生したことを検出するイベント検出部と、
前記移動軌跡に関する評価値を基にして、前記移動軌跡から発生が検出された第一のイベントとしての確からしさを示す信頼度を算出する信頼度算出部と、
前記第一のイベントに対応する前記信頼度が閾値未満である場合に、前記特定の物体の位置と前記複数のイベントそれぞれとの関係を学習した第一学習結果、および前記複数のイベントそれぞれの発生順序を学習した第二学習結果の少なくとも一方を基にして、前記複数のイベントのいずれかが発生したことを再度検出する再検出部と
を有することを特徴とする検出装置。
【請求項２】
前記画像フレーム上の前記特定の物体の予測位置の画像と前記特定の物体の画像との類似度、および、前記特定の物体の予測位置と前記特定の物体の位置との乖離の少なくとも一方を基にして、前記移動軌跡に関する前記評価値を算出する評価値算出部を更に有することを特徴とする請求項１に記載の検出装置。
【請求項３】
前記特定の物体は人物およびボールを示し、前記検出部は、前記人物の第一の移動軌跡と前記ボールの第二の移動軌跡とを基にして前記イベントを検出し、
前記信頼度算出部は、前記イベントに関連する前記第一の移動軌跡の第一の評価値と前記ボールの第二の移動軌跡の第二の評価値とを基にして、前記イベントの前記信頼度を算出することを特徴とする請求項１または２に記載の検出装置。
【請求項４】
前記イベント検出部は、前記特定の物体の前記移動軌跡が特定の条件を満たす度に、前記特定の条件に応じて、前記複数のイベントのいずれかが発生したことを検出し、
前記第一のイベントを検出した第一時刻から、第二のイベントを検出した第二時刻との時間が所定時間以上である場合には、前記第一学習結果および前記第二学習結果の少なくとも一方を基にして、前記第一時刻から前記第二時刻までに発生した第三のイベントを補間するイベント補間部を更に有することを特徴とする請求項１、２または３に記載の検出装置。
【請求項５】
コンピュータが、
時系列の複数の画像フレームに含まれる特定の物体の位置をそれぞれ検出した結果に基づき、前記特定の物体の移動軌跡を特定し、前記移動軌跡を基にして、前記特定の物体の動きにかかわる複数のイベントのいずれかが発生したことを検出し、
前記移動軌跡に関する評価値を基にして、前記移動軌跡から発生が検出された第一のイベントとしての確からしさを示す信頼度を算出し、
前記第一のイベントに対応する前記信頼度が閾値未満である場合に、前記特定の物体の位置と前記複数のイベントそれぞれとの関係を学習した第一学習結果、および前記複数のイベントそれぞれの発生順序を学習した第二学習結果の少なくとも一方を基にして、前記複数のイベントのいずれかが発生したことを再度検出する
処理を実行することを特徴とする検出方法。
【請求項６】
時系列の複数の画像フレームに含まれる特定の物体の位置をそれぞれ検出した結果に基づき、前記特定の物体の移動軌跡を特定し、前記移動軌跡を基にして、前記特定の物体の動きにかかわる複数のイベントのいずれかが発生したことを検出し、
前記移動軌跡に関する評価値を基にして、前記移動軌跡から発生が検出された第一のイベントとしての確からしさを示す信頼度を算出し、
前記第一のイベントに対応する前記信頼度が閾値未満である場合に、前記特定の物体の位置と前記複数のイベントそれぞれとの関係を学習した第一学習結果、および前記複数のイベントそれぞれの発生順序を学習した第二学習結果の少なくとも一方を基にして、前記複数のイベントのいずれかが発生したことを再度検出する
処理をコンピュータに実行させることを特徴とする検出プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、検出装置等に関する。
【背景技術】
【０００２】
近年、スポーツの分野において、ＩＣＴ（Information  and  Communication  Technology）が導入されており、練習や試合内容を数値化することで、選手やチームの成長や戦略立案に活用するニーズが高まっている。このニーズを満たすために、試合の映像を撮影し、撮影した映像を基にして、スタッツ（statistics）情報を生成する技術がある。たとえば、スタッツ情報は、チームや選手個人のプレー成績をまとめた情報であり、選手の運動量、ドリブル、パス、シュート等の統計量を示す。
【０００３】
従来技術には、撮影された映像中に映る人物を追跡し、追跡した人物の追跡情報と予め記憶されている行動情報とに基づいて人物の行動を認識し、行動により生じたイベントを判定するものがある。この従来技術により判定されるイベントを集計することで、スタッツ情報を生成することができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−３１２０８８号公報
【特許文献２】特開２０１５−０７０５０３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述した従来技術では、スタッツ情報の精度が低いという問題がある。
【０００６】
たとえば、従来技術では、人物の行動に関して、認識結果に誤りがあると、イベントを正確に判定することができず、精度のよいスタッツ情報を生成することが難しくなる。
【０００７】
１つの側面では、本発明は、最終的に特定されるイベントの精度を向上させ、ひいては、スタッツ情報をより精度よく生成することができる検出装置、検出方法および検出プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
第１の案では、検出装置は、時系列の複数の画像フレームに含まれる特定の物体の位置をそれぞれ検出した結果に基づき、特定の物体の移動軌跡を特定する。検出装置は、移動軌跡を基にして、特定の物体の動きにかかわる複数のイベントのいずれかが発生したことを検出する。検出装置は、移動軌跡に関する評価値を基にして、移動軌跡から発生が検出された第一のイベントとしての確からしさを示す信頼度を算出する。検出装置は、第一のイベントに対応する信頼度が閾値未満である場合に、特定の物体の位置と複数のイベントそれぞれとの関係を学習した第一学習結果、および複数のイベントそれぞれの発生順序を学習した第二学習結果の少なくとも一方を基にして、複数のイベントのいずれかが発生したことを再度検出する。
【発明の効果】
【０００９】
最終的に特定されるイベントの精度を向上させ、ひいては、スタッツ情報をより精度よく生成することができる。
【図面の簡単な説明】
【００１０】
【図１】図１は、本実施例１にかかるシステムの一例を説明するための図である。
【図２】図２は、カメラの撮影範囲の一例を示す図である。
【図３】図３は、本実施例１に係る検出装置の構成を示す機能ブロック図である。
【図４】図４は、本実施例１に係るバッファのデータ構造の一例を示す図である。
【図５】図５は、本実施例１に係る変換テーブルのデータ構造の一例を示す図である。
【図６】図６は、第２変換テーブルのデータ構造の一例を示す図である。
【図７】図７は、画像フレーム座標系と全体座標系との関係を説明するための図である。
【図８】図８は、本実施例１に係る選手管理テーブルのデータ構造の一例を示す図である。
【図９】図９は、本実施例１に係るボール管理テーブルのデータ構造の一例を示す図である。
【図１０】図１０は、本実施例１に係るイベント定義情報のデータ構造の一例を示す図である。
【図１１】図１１は、本実施例１に係るイベントファイルのデータ構造の一例を示す図である。
【図１２】図１２は、本実施例１に係る第１学習器の一例を説明するための図である。
【図１３】図１３は、本実施例１に係る第２学習器の一例を説明するための図である。
【図１４】図１４は、本実施例１に係るボール検出部の処理を説明するための図（１）である。
【図１５】図１５は、本実施例１に係るボール検出部の処理を説明するための図（２）である。
【図１６】図１６は、本実施例１に係るボール検出部の処理を説明するための図（３）である。
【図１７】図１７は、本実施例１に係る選手検出部の処理を説明するための図である。
【図１８】図１８は、本実施例１に係るイベント検出部の処理を説明するための図（１）である。
【図１９】図１９は、本実施例１に係るイベント検出部の処理を説明するための図（２）である。
【図２０】図２０は、本実施例１に係る再検出部の処理を説明するための図である。
【図２１】図２１は、本実施例１に係るスタッツ情報の一例を示す図である。
【図２２】図２２は、本実施例１に係る検出装置の処理手順を示すフローチャート（１）である。
【図２３】図２３は、本実施例１に係る検出装置の処理手順を示すフローチャート（２）である。
【図２４】図２４は、本実施例２に係る検出装置の構成を示す機能ブロック図である。
【図２５】図２５は、本実施例２に係る順序定義情報のデータ構造の一例を示す図である。
【図２６】図２６は、本実施例２に係るイベント補間部の処理を説明するための図である。
【図２７】図２７は、本実施例２に係るイベント修正部の処理を説明するための図である。
【図２８】図２８は、本実施例２に係る検出装置の処理手順を示すフローチャート（１）である。
【図２９】図２９は、本実施例２に係る検出装置の処理手順を示すフローチャート（２）である。
【図３０】図３０は、本実施例３に係る検出装置の構成を示す機能ブロック図である。
【図３１】図３１は、本実施例３に係る検出装置の処理手順を示すフローチャート（１）である。
【図３２】図３２は、本実施例３に係る検出装置の処理手順を示すフローチャート（２）である。
【図３３】図３３は、第１学習器の学習処理を説明するための図である。
【図３４】図３４は、第２学習器の学習処理を説明するための図である。
【図３５】図３５は、検出装置と同様の機能を実現するコンピュータのハードウェアを説明するための図である。
【発明を実施するための形態】
【００１１】
以下に、本願の開示する検出装置、検出方法および検出プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例１】
【００１２】
図１は、本実施例１にかかるシステムの一例を説明するための図である。図１に示すように、カメラ１０ａ，１０ｂ，１０ｃ，１０ｄと、検出装置１００とを有する。図示を省略するが、競技エリア５において、複数の選手がボールを用いた競技を行うものとする。本実施例１では一例として、選手がバスケットボールを行う場合について説明を行うが、選手が行う競技はバスケットボールに限られない。たとえば、選手が行う競技は、サッカー、バスケット、ハンドボール、ホッケー、ラグビー、ラクロス等の競技を含む。カメラ１０ａ，１０ｂ，１０ｃ，１０ｄと、検出装置１００とは相互に接続される。
【００１３】
カメラ１０ａ〜１０ｄは、競技エリア５の映像を撮影するカメラである。本実施例１では、一例として、カメラ１０ａ〜１０ｄを用いて、競技エリア５を分割して撮影する。図２は、カメラの撮影範囲の一例を示す図である。図２に示すように、カメラ１０ａの撮影範囲は撮影範囲１１ａである。カメラ１０ｂの撮影範囲は撮影範囲１１ｂである。カメラ１０ｃの撮影範囲は撮影範囲１１ｃである。カメラ１０ｄの撮影範囲は撮影範囲１１ｄである。撮影範囲１１ａ〜１１ｄにより、競技エリア５全体を撮影することができる。
【００１４】
カメラ１０ａ〜１０ｄは、撮影範囲の映像データを、検出装置１００に送信する。映像データは、時系列に並んだ複数の画像フレームを含む。画像フレームは、１コマの静止画像のデータである。以下の説明では、カメラ１０ａ〜１０ｄをまとめて、適宜、カメラ１０と表記する。なお、映像データには、映像データを撮影したカメラ１０を識別する情報が付与される。
【００１５】
検出装置１００は、カメラ１０から映像データに含まれる各画像フレームを解析し、競技エリア５上の選手およびボールの位置を追跡し、追跡結果を基にしてイベントを検出する処理を繰り返し、スタッツ情報を生成する装置である。検出装置１００は、イベントを検出する場合に、イベントの信頼度を算出し、信頼度の低いイベントが存在する場合には、予め学習しておいた学習器を用いて、イベントの再検出を行う。
【００１６】
イベントは、競技中に発生する所定の事象である。たとえば、競技がバスケットボールである場合には、イベントは、パス、シュート、リバウンド、ドリブル、スティール等に対応する。
【００１７】
図３は、本実施例１に係る検出装置の構成を示す機能ブロック図である。図３に示すように、この検出装置１００は、通信部１１０、入力部１２０、表示部１３０、記憶部１４０、制御部１５０を有する。
【００１８】
通信部１１０は、ネットワーク等を介して、カメラ１０との間でデータ通信を実行する処理部である。たとえば、カメラ１０から映像データを受信する。通信部１１０は、受信した映像データを、制御部１５０に出力する。通信部１１０は、通信装置の一例である。
【００１９】
入力部１２０は、検出装置１００に各種の情報を入力するための入力装置である。入力部１２０は、たとえば、キーボードやマウス、タッチパネル等に対応する。
【００２０】
表示部１３０は、制御部１５０から出力される各種の情報を表示するための表示装置である。表示部１３０は、たとえば、液晶ディスプレイ、タッチパネル等に対応する。表示部１３０は、制御部１５０から、スタッツ情報を受け付けた場合には、スタッツ情報を表示する。
【００２１】
記憶部１４０は、バッファ１４０ａ、変換テーブル１４０ｂ、選手管理テーブル１４０ｃ、ボール管理テーブル１４０ｄ、イベント定義情報１４０ｅ、イベントファイル１４０ｆ、第１学習器１４０ｇ、第２学習器１４０ｈ、状態管理テーブル１６５を有する。記憶部１４０は、ＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read  Only  Memory）、フラッシュメモリ（Flash  Memory）などの半導体メモリ素子や、ＨＤＤ（Hard  Disk  Drive）などの記憶装置に対応する。
【００２２】
バッファ１４０ａは、カメラ１０から送信される映像データを保持するバッファである。図４は、本実施例１に係るバッファのデータ構造の一例を示す図である。図４に示すように、バッファ１４０ａは、複数のテーブル１４１ａ，１４１ｂ，１４１ｃ，１４１ｄを有する。
【００２３】
テーブル１４１ａは、カメラ１０ａが撮影した映像データを格納するテーブルである。テーブル１４１ｂは、カメラ１０ｂが撮影した映像データを格納するテーブルである。テーブル１４１ｃは、カメラ１０ｃが撮影した映像データを格納するテーブルである。テーブル１４１ｄは、カメラ１０ｄが撮影した映像データを格納するテーブルである。
【００２４】
テーブル１４１ａ〜１４１ｄはそれぞれ、カメラ識別情報と、フレーム番号と、時刻と、画像フレームとを対応づける。カメラ識別情報は、カメラ１０を一意に識別する情報である。フレーム番号は、画像フレームを一意に識別する情報である。時刻は、画像フレームを撮影した時刻を示す。画像フレームは、フレーム番号に対応する画像フレームである。
【００２５】
変換テーブル１４０ｂは、カメラ１０が撮影した画像フレーム上の座標と、競技エリア５上の座標とを対応づけるテーブルである。図５は、本実施例１に係る変換テーブルのデータ構造の一例を示す図である。図５に示すように、変換テーブル１４０ｂは、第１変換テーブル１４２ａと、第２変換テーブル１４２ｂと、第３変換テーブル１４２ｃと、第４変換テーブル１４２ｄとを有する。
【００２６】
第１変換テーブル１４２ａは、カメラ１０ａが撮影する画像フレーム上の座標と、競技エリア５上の座標とを対応づけるテーブルである。第２変換テーブル１４２ｂは、カメラ１０ｂが撮影する画像フレーム上の座標と、競技エリア５上の座標とを対応づけるテーブルである。第３変換テーブル１４２ｃは、カメラ１０ｃが撮影する画像フレーム上の座標と、競技エリア５上の座標とを対応づけるテーブルである。第４変換テーブル１４２ｄは、カメラ１０ｄが撮影する画像フレーム上の座標と、競技エリア５上の座標とを対応づけるテーブルである。
【００２７】
ここでは一例として、第２変換テーブル１４２ｂのデータ構造について説明する。図６は、第２変換テーブルのデータ構造の一例を示す図である。図６に示すように、第２変換テーブル１４２ｂは、画像フレーム座標と、全体座標とを対応づける。画像フレーム座標は、カメラ１０ｂが撮影した画像フレーム上の座標を示すものである。画像フレーム座標を、ピクセルによって示す。全体座標は、競技エリア５の座標を示すものである。全体座標の単位を「ｍ」とする。たとえば、画像フレーム座標「０，１」は、全体座標「２５．２，１３，６」に対応する。
【００２８】
図７は、画像フレーム座標系と全体座標系との関係を説明するための図である。図７において、画像フレーム５ｂは、ある時刻において、カメラ１０ｂにより撮影された画像フレームに対応する。たとえば、画像フレーム５ｂ上の画像フレーム座標（ｘｎ，ｙｎ）は、競技エリア５上の全体座標（Ｘｎ，Ｙｎ）に対応する。
【００２９】
ここでは説明を省略するが、第１変換テーブル１４２ａ、第３変換テーブル１４２ｃ、第４変換テーブル１４２ｄも同様にして、画像フレーム座標と、全体座標との関係を定義する。
【００３０】
図３の説明に戻る。選手管理テーブル１４０ｃは、各画像フレームから検出された各選手に関する各種の情報を保持するテーブルである。図８は、本実施例１に係る選手管理テーブルのデータ構造の一例を示す図である。図８に示すように、この選手管理テーブル１４０ｄは、選手識別情報と、チーム識別情報と、時刻と、座標と、評価値とを対応付ける。
【００３１】
選手識別情報は、選手を一意に識別する情報である。チーム識別情報は、選手の属するチームを一意に識別する情報である。時刻は、時刻を示す情報である。座標は、選手の座標（全体座標系の座標）を示す。評価値は、該当する情報の確からしさを数値化したものである。評価値は、値が大きいほど、より確からしいとする。たとえば、チーム識別情報「Ａ」のチームに属する選手識別情報「Ｈ１０１」の選手は、時刻「Ｔ１」において、座標「ｘａ１１，ｙａ１１」に位置し、この情報の評価値が「０．９」であることが示される。
【００３２】
ボール管理テーブル１４０ｄは、各画像フレームから検出されたボールに関する各種の情報を保持するテーブルである。図９は、本実施例１に係るボール管理テーブルのデータ構造の一例を示す図である。図９に示すように、このボール管理テーブル１４０ｄは、時刻と、座標と、評価値とを対応付ける。
【００３３】
時刻は時刻を示す情報である。座標は、ボールの座標（全体座標系の座標）を示す。評価値は、該当する情報の確からしさを数値化したものである。評価値は、数値が大きいほど、より確からしいとする。たとえば、時刻「Ｔ１」において、ボールが「ｘ１、ｙ１」に位置し、この情報の評価値が「０．９」であることが示される。
【００３４】
イベント定義情報１４０ｅは、ボールの状態遷移に対応するイベント種別を定義する情報である。図１０は、本実施例１に係るイベント定義情報のデータ構造の一例を示す図である。図１０に示すように、イベント定義情報１４０ｅは、イベント種別と、状態遷移とを対応付ける。イベント種別は、イベントの種別を示すものである。
【００３５】
状態遷移は、ボールの状態の遷移を示すものである。ボールの状態は、ボールの移動軌跡と、選手の移動軌跡とを基にして特定される状態である。一例として、ボールの状態「Ａ＃Ｘ」、「Ｂ＃Ｙ」、「＃ゴール」、「※」を定義する。「Ａ＃Ｘ」は、Ａチームの選手Ｘの座標とボールの座標との距離が所定距離未満となる時間が、所定時間以上であることを示す。「Ｂ＃Ｙ」は、Ｂチームの選手Ｙの座標とボールの座標との距離が所定距離未満となる時間が、所定時間以上であることを示す。「＃ゴール」は、ボールの位置が、ゴールを基準とする所定領域に含まれることを示す。「※」は、ボールの状態が、どのような状態であってもよいことを示す。
【００３６】
状態遷移「Ａ＃Ｘ１→※→Ａ＃Ｘ２」または「Ｂ＃Ｙ１→※→Ｂ＃Ｙ２」となる場合に、イベント種別は「パス」となる。状態遷移「Ａ＃Ｘ１→※→Ａ＃Ｘ２」は、ボールの状態が、Ａチームの選手Ｘ１の座標から、Ａチームの選手Ｘ２の座標に遷移したことを示す。状態遷移「Ｂ＃Ｙ１→※→Ｂ＃Ｙ２」は、ボールの状態が、Ｂチームの選手Ｙ１の座標から、Ｂチームの選手Ｙ２の座標に遷移したことを示す。
【００３７】
状態遷移「Ａ＃Ｘ→※→Ｂ＃Ｙ」または「Ｂ＃Ｙ→※→Ａ＃Ｘ」となる場合に、イベント種別は「スティール」となる。状態遷移「Ａ＃Ｘ→※→Ｂ＃Ｙ」は、ボールの状態が「Ａ＃Ｘ」から「Ｂ＃Ｙ」に遷移したことを示す。状態遷移「Ｂ＃Ｙ→※→Ａ＃Ｘ」は、ボールの状態が「Ｂ＃Ｙ」から「Ａ＃Ｘ」に遷移したことを示す。
【００３８】
状態遷移「Ａ＃Ｘ→※→＃ゴール」または「Ｂ＃Ｙ→※→＃ゴール」となる場合に、イベント種別は「シュート」となる。状態遷移「Ａ＃Ｘ→※→＃ゴール」は、ボールの状態が「Ａ＃Ｘ」から「＃ゴール」に遷移したことを示す。状態遷移「Ｂ＃Ｙ→※→＃ゴール」は、ボールの状態が「Ｂ＃Ｙ」から「＃ゴール」に遷移したことを示す。
【００３９】
状態遷移「Ａ＃Ｘ→Ａ＃Ｘ」または「Ｂ＃Ｙ→Ｂ＃Ｙ」となる場合に、イベント種別「ドリブル」となる。状態遷移「Ａ＃Ｘ→Ａ＃Ｘ」は、ボールの状態「Ａ＃Ｘ」が、所定時間以上継続していることを示す。状態遷移「Ｂ＃Ｙ→Ｂ＃Ｙ」は、ボールの状態「Ｂ＃Ｙ」が、所定時間以上継続していることを示す。
【００４０】
ここで、図１０に示した、イベント種別と、状態遷移との関係は一例であり、他のイベント種別と、状態遷移とを対応付けてもよい。他のイベント種別には、アシスト、フリースロー、ファウル等が含まれる。また、イベント種別の「シュート」を「シュート（成功）」、「シュート（失敗）」、「２ポイントシュート」、「３ポイントシュート」等に区別して登録してもよい。各イベント種別に対応する状態遷移は、予め所定の状態遷移が設定される。
【００４１】
イベントファイル１４０ｆは、競技中に発生したイベントの情報を保持するファイルである。図１１は、本実施例１に係るイベントファイルのデータ構造の一例を示す図である。図１１に示すように、このイベントファイル１４０ｆは、時刻と、イベント種別と、選手識別情報と、信頼度とを対応付ける。時刻は、時刻の情報を示す。イベント種別は、イベントの種別を示す。選手識別情報は、選手を一意に識別する情報である。信頼度は、該当する情報の信頼具合を数値化したものである。信頼度は、数値が大きいほど、信頼できるものとする。
【００４２】
たとえば、図１１の１行目では、時刻「Ｔ４」において、選手識別情報「Ｈ１０１」の選手がイベント種別「パス」を行い、この情報の信頼度が「０．８」であることが示される。
【００４３】
第１学習器１４０ｇは、深層学習等により、各選手の座標と、イベント種別との関係を学習した学習器である。図１２は、本実施例１に係る第１学習器の一例を説明するための図である。図１２に示すように、第１学習器１４０ｇは、ニューラルネットワークの構造を有し、入力層２０ａ、隠れ層２０ｂ、出力層２０ｃを持つ。入力層２０ａ、隠れ層２０ｂ、出力層２０ｃは、複数のノードがエッジで結ばれる構造となっている。隠れ層２０ｂ、出力層２０ｃは、活性化関数と呼ばれる関数とバイアス値とを持ち、エッジは、重みを持つ。
【００４４】
入力層３０ａに含まれる各ノードに、各選手の座標を入力すると、隠れ層２０ｂを通って、出力層２０ｃの各ノードから、各イベント種別の確率が出力される。たとえば、出力層２０ｃの各ノードから、イベント種別「パス」、「スティール」、「シュート」、「ドリブル」、「リバウンド」の各確率が出力される。
【００４５】
第２学習器１４０ｈは、機械学習により、イベント（イベント種別）の発生順序を学習した学習器である。図１３は、本実施例１に係る第２学習器の一例を説明するための図である。図１３に示すように、第２学習器１４０ｈは、イベント種別に対応づけられた複数のノードが、エッジにより接続されている。また、遷移元のノードと遷移先のノードとを結ぶエッジには、遷移する確率が付与されている。
【００４６】
たとえば、ノード２１，２３ｃは、イベント種別「シュート」に対応するノードである。ノード２２ａは、イベント種別「リバウンド」に対応するノードである。ノード２２ｂ，２３ａは、ノード種別「パス」に対応するノードである。ノード２２ｂは、ノード種別「ドリブル」に対応するノードである。図１３では一例として、ノード２１，２２ａ〜２２ｃ，２３ａ〜２３ｃを示すが、他のノードが含まれていてもよい。
【００４７】
ノード２１の遷移先は、ノード２２ａ，２２ｂ，２２ｃとなる。ノード２１からノード２２ａへの遷移の確率は「９０％」である。ノード２１からノード２２ｂへの遷移の確率は「５％」である。ノード２１からノード２２ｃへの遷移の確率は「５％」である。ノード２２ａの遷移先は、ノード２３ａ，２３ｂ，２３ｃとなる。ノード２２ａからノード２３ａへの遷移の確率は「４５％」である。ノード２２ａからノード２３ｂへの遷移の確率は「２５％」である。ノード２２ａからノード２３ｃへの遷移の確率は「３０％」である。
【００４８】
状態管理テーブル１６５は、時刻とボールの状態との関係を含むテーブルである。状態管理テーブル１６５に関する説明は後述する。
【００４９】
図３の説明に戻る。制御部１５０は、受信部１５０ａ、ボール検出部１５０ｂ、選手検出部１５０ｃ、イベント検出部１５０ｄ、信頼度算出部１５０ｅ、再検出部１５０ｆ、スタッツ情報生成部１５０ｇ、出力部１５０ｈを有する。制御部１５０は、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）などによって実現できる。また、制御部１５０は、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）などのハードワイヤードロジックによっても実現できる。なお、後述のボール検出部１５０ｂおよび選手検出部１５０ｃは、評価値を算出する処理を実行し、この評価値を算出する処理は、図示しない評価値算出部の処理に対応する。
【００５０】
受信部１５０ａは、カメラ１０から映像データを受信する処理部である。受信部１５０ａは、受信した映像データを、バッファ１４０ａに格納する。受信部１５０ａは、カメラ１０ａから受信した映像データを、バッファ１４０ａのテーブル１４１ａに格納する。受信部１５０ａは、カメラ１０ｂから受信した映像データを、バッファ１４０ａのテーブル１４１ｂに格納する。受信部１５０ａは、カメラ１０ｃから受信した映像データを、バッファ１４０ａのテーブル１４１ｃに格納する。受信部１５０ａは、カメラ１０ｄから受信した映像データを、バッファ１４０ａのテーブル１４１ｄに格納する。
【００５１】
ボール検出部１５０ｂは、バッファ１４０ａに格納された各画像フレームから、ボール候補の位置を検出する処理部である。ボール検出部１５０ｂは、ボールの領域を検出する処理、ボールの領域を予測する処理、評価値を算出する処理を実行する。
【００５２】
ボール検出部１５０ｂが、ボールの領域を検出する処理について説明する。ここでは一例として、バッファ１４０ａのテーブル１４１ａに格納されたカメラ１０ａに撮影された映像データ（画像フレーム）から、ボールの領域を検出する処理について説明する。ボール検出部１５０ｂは、テーブル１４１ａから、時刻Ｔ１の画像フレームと、時刻Ｔ２の画像フレームとの差分画像を生成する。ボール検出部１５０ｂは、差分画像に残った領域の面積と、ボールの面積を定義したテンプレートとの比較を行い、テンプレートの面積との差が閾値未満となる差分画像上の領域を、ボールの領域として検出する。
【００５３】
図１４は、本実施例１に係るボール検出部の処理を説明するための図（１）である。図１４に示す例では、差分画像１５に、領域１５ａ，１５ｂ，１５ｃが含まれている。たとえば、テンプレートに定義された面積との差分が閾値未満となる領域を、領域１５ｃとする。この場合には、ボール検出部１５０ｂは、領域１５ｃをボールの領域として検出する。
【００５４】
ボール検出部１５０ｂが、ボールの領域を予測する処理について説明する。図１５は、本実施例１に係るボール検出部の処理を説明するための図（２）である。一例として、領域１８は、時刻ｔ−２において検出されたボールの領域とする。領域１９は、時刻ｔ−１において検出されたボールの領域とする。
【００５５】
ボール検出部１５０ｂは、領域１９を基準とし、ボールの形状および速度を基にして、時刻ｔにおけるボールの移動先の領域２５を予測する。たとえば、ボール検出部１５０ｂは、時刻ｔ−１、ｔ−２のボールの移動距離、時刻差を基にして、ボールの速度を算出してもよい。
【００５６】
ボール検出部１５０ｂが、評価値を算出する処理について説明する。ここでは、上記のボールを検出する処理により、ボール検出部１５０ｂが、ボールを検出した場合と、ボールを検出できなかった場合に分けて説明を行う。
【００５７】
ボール検出部１５０ｂが、ボールを検出した場合の、評価値を算出する処理について説明する。図１６は、本実施例１に係るボール検出部の処理を説明するための図（３）である。図１６において、ボール検出部１５０ｂが検出したボールの領域を、領域１５ｃとする。ボール検出部１５０ｂが予測したボールの領域を、領域２５とする。
【００５８】
ボール検出部１５０ｂは、式（１）を基にして、領域１５ｃの評価値を算出する。式（１）において、「Ｅｔ」は、時刻ｔにおける評価値を示す。「ｌ」は、検出したボールの領域１５ｃと、予測したボールの領域２５との距離を示す。「Ｌ」は予め設定される閾値であり、たとえば、１よりも大きい値が設定される。
【００５９】
Ｅｔ＝１−（ｌ／Ｌ）・・・（１）
【００６０】
ボール検出部１５０ｂは、時刻と、座標と、評価値とを対応付けて、ボール管理テーブル１４０ｄに登録する。座標は、ボールを検出する処理で検出した領域（たとえば、領域１５ｃ）の中心座標である。
【００６１】
ボール検出部１５０ｂが、ボールを検出していない場合の、評価値を算出する処理について説明する。ボール検出部１５０ｂは、ボールを検出していない場合には、ボールの領域を予測する処理で予測した領域を、ボールの領域と仮定する。ボール検出部１５０ｂは、式（２）を基にして、評価値を算出する。式（２）において、「Ｅｔ」は、時刻ｔにおける評価値を示す。「Ｅｔ−１」は、時刻ｔ−１における評価値を示す。「ｎ」は、ロストのペナルティであり、ｎには、０〜１の値が設定される。
【００６２】
Ｅｔ＝Ｅｔ−１−ｎ・・・（２）
【００６３】
ボール検出部１５０ｂは、時刻と、座標と、評価値とを対応付けて、ボール管理テーブル１４０ｄに登録する。座標は、予測したボールの領域（たとえば、領域２５）の中心座標である。
【００６４】
ボール検出部１５０ｂは、上記処理を繰り返し実行することで、各時刻のボールの座標、評価値をボール管理テーブル１４０ｄに登録していく。
【００６５】
図３の説明に戻る。選手検出部１５０ｃは、各画像フレームから選手を検出する処理部である。ここでは、選手検出部１５０ｃは、バッファ１４０ａのテーブル１４１ａに格納されたカメラ１０ａに撮影された映像データ（画像フレーム）から、選手を検出する処理について説明する。選手検出部１５０ｃは、テーブル１４１ａから、時刻Ｔ１の画像フレームと、時刻Ｔ２の画像フレームとの差分画像を生成する。選手検出部１５０ｃは、差分画像に残った領域の面積と、選手の面積を定義したテンプレートとの比較を行い、テンプレートの面積との差が閾値未満となる差分画像上の領域を、選手として検出する。
【００６６】
選手検出部１５０ｃは、差分画像から算出した選手の座標（画像フレーム座標）を、変換テーブル１４０ｂを基にして、全体座標に変換する。選手検出部１５０ｃは、選手にユニークな選手識別情報を割り当てる。選手検出部１５０ｃは、選手の運動予測を行って、異なる時刻から検出される同一の選手を追跡する。また、選手検出部１５０ｃは、事前に設定される各チームのユニフォームの特徴を基にして、選手識別情報にチーム識別情報を割り当てる。ユニフォームの特徴は、ユニフォームの色等が含まれる。ボール検出部１５０ｂは、選手識別情報と、チーム識別情報と、時刻と、選手の座標（全体座標）とを対応づけて、選手管理テーブル１４０ｃに登録する。
【００６７】
ところで、選手検出部１５０ｃは、選手の領域について、評価値を算出する処理を実行する。図１７は、本実施例１に係る選手検出部の処理を説明するための図である。たとえば、時刻ｔ−１において検出された選手の領域を領域２６ａとし、時刻ｔにおいて検出された選手の領域を領域２６とする。選手検出部１５０ｃは、領域２６ａと、領域２６ｂとの類似度を算出し、算出した類似度を、領域２６ｂの評価値として算出する。
【００６８】
選手検出部１５０ｃは、類似度をどのように算出してもよいが、たとえば、式（３）を基にして類似度を算出してもよい。式（３）において、「ｅ」は、類似度（評価値）を示す。ｆｔ（ｘ＋ｍ，ｙ＋ｎ）は、時刻ｔの選手の領域において、座標（ｘ＋ｍ，ｙ＋ｎ）の画素値を示す。ｆｔ（ｘ＋ｍ−ｉ，ｙ＋ｎ−ｊ）は、時刻ｔ−１の選手の領域において、座標（ｘ＋ｍ−ｉ，ｙ＋ｎ−ｊ）の画素値を示す。ｉ，ｊには、予め設定された値が代入される。
【００６９】
【数１】
2020017010.tif 000003
【００７０】
選手検出部１５０ｃは、上記処理を実行することで、選手の領域の評価値を算出する。選手検出部１５０ｃは、選手の座標（選手の領域の中心座標）に、評価値を対応付けて、選手管理テーブル１４０ｃに登録する。
【００７１】
図３の説明に戻る。イベント検出部１５０ｄは、特定の物体の移動軌跡を特定し、特定した移動軌跡を基にして、イベントを検出する処理部である。たとえば、イベント検出部１５０ｄは、ボールの状態を判定する処理、イベントを検出する処理を行う。
【００７２】
イベント検出部１５０ｄが行う、ボールの状態を判定する処理について説明する。イベント検出部１５０ｄは、選手管理テーブル１４０ｃに登録された各時刻の選手の座標を追跡することで、各選手の移動軌跡を特定する。イベント検出部１５０ｄは、ボール管理テーブル１４０ｄに登録された各時刻のボールの座標を追跡することで、ボールの移動軌跡を特定する。
【００７３】
イベント検出部１５０ｄは、各選手の移動軌跡と、ボールの移動軌跡との関係を基にして、各時刻のボールの状態を判定する。イベント検出部１５０ｄは、各選手の移動軌跡と、ボールの移動軌跡とを比較して、Ａチームの選手Ｘの座標とボールの座標との距離が所定距離未満となる時間が、所定時間以上である場合には、ボールの状態を「Ａ＃Ｘ」とする。イベント検出部１５０ｄは、Ｂチームの選手Ｙの座標とボールの座標との距離が所定距離未満となる時間が、所定時間以上である場合には、ボールの状態を「Ｂ＃Ｙ」とする。イベント検出部１５０ｄは、ボールの位置が、ゴールを基準とする所定領域に含まれる場合に、ボールの状態を「＃ゴール」とする。イベント検出部１５０ｄは、ボールの状態が「Ａ＃Ｘ」、「Ｂ＃Ｙ」、「＃ゴール」のいずれにも該当しない場合には、ボールの状態を「※」とする。
【００７４】
なお、イベント検出部１５０ｄが行う、上述した、ボールの状態を判定するための判定ポリシーは一例であり、他の判定ポリシーにより、ボールの状態を判定してもよい。
【００７５】
イベント検出部１５０ｄは、時刻とボールの状態とを対応付けて、状態管理テーブルに登録する。図１８は、本実施例１に係るイベント検出部の処理を説明するための図（１）である。図１８において、移動軌跡１６０ａを、選手識別情報「Ｈ１０１」の移動軌跡とする。移動軌跡１６０ｂを、ボールの移動軌跡とする。移動軌跡１６０ｃを、選手識別情報「Ｈ１０２」の移動軌跡とする。この移動軌跡１６０ａ〜１６０ｃの関係に基づき、状態管理テーブル１６５が生成される。状態管理テーブル１６５は、時刻と、状態とを対応付ける。
【００７６】
移動軌跡１６０ａにおいて、各時刻Ｔ１〜Ｔ５の選手の各座標をそれぞれ６１ａ〜６５ａとする。移動軌跡１６０ｂにおいて、各時刻Ｔ１〜Ｔ８のボールの各座標をそれぞれ６１ｂ〜６７ｂとする。移動軌跡１６０ｃにおいて、各時刻Ｔ３〜Ｔ８の選手の各座標をそれぞれ６１ｃ〜６６ｃとする。
【００７７】
図１８の時刻Ｔ１〜Ｔ３において、移動軌跡１６０ａと、移動軌跡１６０ｂとの距離が所定距離未満であり、かつ、この状態が所定時間以上であるとする。そうすると、イベント検出部１５０ｄは、時刻Ｔ１〜Ｔ３のボールの状態を「Ａ＃Ｈ１０１」と判定する。
【００７８】
時刻Ｔ４〜Ｔ６において、ボールの状態は、「Ａ＃Ｘ」、「Ｂ＃Ｙ」、「＃ゴール」に属さないため、イベント検出部１５０ｄは、時刻Ｔ４〜Ｔ６のボールの状態を「※」と判定する。
【００７９】
時刻Ｔ７〜Ｔ８において、移動軌跡１６０ｃと、移動軌跡１６０ｂとの距離が所定距離未満であり、かつ、この状態が所定時間以上であるとする。そうすると、イベント検出部１５０ｄは、時刻Ｔ７〜Ｔ８のボールの状態を「Ａ＃Ｈ１０１」と判定する。
【００８０】
図１９は、本実施例１に係るイベント検出部の処理を説明するための図（２）である。図１９において、移動軌跡１６０ｂを、ボールの移動軌跡とする。移動軌跡１６０ｃを、選手識別情報「Ｈ１０２」の移動軌跡とする。領域１６６を、ゴールを基準とする所定領域とする。
【００８１】
移動軌跡１６０ｂにおいて、各時刻Ｔ５〜Ｔ１３のボールの各座標をそれぞれ６４ｂ〜７２ｂとする。移動軌跡１６０ｃにおいて、各時刻Ｔ３〜Ｔ１３の選手の各座標をそれぞれ６１ｃ〜７１ｃとする。
【００８２】
図１９の時刻Ｔ５，Ｔ６において、ボールの状態は、「Ａ＃Ｘ」、「Ｂ＃Ｙ」、「＃ゴール」に属さないとすると、イベント検出部１５０ｄは、時刻Ｔ５〜Ｔ６のボールの状態を「※」と判定する。
【００８３】
図１９の時刻Ｔ７〜Ｔ１０において、移動軌跡１６０ｃと、移動軌跡１６０ｂとの距離が所定距離未満であり、かつ、この状態が所定時間以上であるとする。そうすると、イベント検出部１５０ｄは、時刻Ｔ７〜Ｔ１０のボールの状態を「Ａ＃Ｈ１０２」と判定する。
【００８４】
図１９の時刻Ｔ１１，Ｔ１２において、ボールの状態は、「Ａ＃Ｘ」、「Ｂ＃Ｙ」、「＃ゴール」に属さないとすると、イベント検出部１５０ｄは、時刻Ｔ１１，Ｔ１２のボールの状態を「※」と判定する。
【００８５】
図１９の時刻Ｔ１３において、移動軌跡１６０ｂが領域１６６に侵入したとする。そうすると、イベント検出部１５０ｄは、時刻Ｔ１３のボールの状態を「＃ゴール」と判定する。
【００８６】
続いて、イベント検出部１５０ｄが行う、イベントを検出する処理について説明する。イベント検出部１５０ｄは、イベント定義情報１４０ｅと、状態管理テーブル１６５とを基にして、イベント種別を検出する。
【００８７】
たとえば、イベント検出部１５０ｄは、状態管理テーブル１６５の状態を時系列に走査し、イベント定義情報１４０ｅで定義した状態遷移にヒットするか否かを判定する。イベント検出部１５０ｄは、イベント定義情報１４０ｅで定義した状態遷移にヒットする場合には、ヒットした状態遷移に対応するイベント種別が発生したと判定する。イベント検出部１５０ｄは、イベントの発生した時刻、イベント種別、イベント種別に対応する選手識別情報を対応付けて、イベントファイル１４０ｆに登録する。
【００８８】
イベントの発生した時刻、イベント種別に対応する選手識別情報の一例について説明する。イベント種別が「パス」である場合には、状態遷移「Ａ＃Ｘ１→※→Ａ＃Ｘ２」において、ポールの状態が最初に「※」となった時刻を、イベント種別の発生した時刻とする。イベント種別に対応する選手識別情報は「Ｘ１」となる。同様に、状態遷移「Ｂ＃Ｙ１→※→Ｂ＃Ｙ２」において、ポールの状態が最初に「※」となった時刻を、イベント種別の発生した時刻とする。イベント種別に対応する選手識別情報は「Ｙ１」となる。
【００８９】
イベント種別が「スティール」である場合には、状態遷移「Ａ＃Ｘ→※→Ｂ＃Ｙ」において、ポールの状態が最初に「※」となった時刻を、イベント種別の発生した時刻とする。イベント種別に対応する選手識別情報は「Ｘ」となる。同様に、状態遷移「Ｂ＃Ｙ→※→Ａ＃Ｘ」において、ポールの状態が最初に「※」となった時刻を、イベント種別の発生した時刻とする。イベント種別に対応する選手識別情報は「Ｙ」となる。
【００９０】
イベント種別が「シュート」である場合には、状態遷移「Ａ＃Ｘ→※→＃ゴール」において、ポールの状態が最初に「※」となった時刻を、イベント種別の発生した時刻とする。イベント種別に対応する選手識別情報は「Ｘ」となる。同様に、状態遷移「Ｂ＃Ｙ→※→＃ゴール」において、ポールの状態が最初に「※」となった時刻を、イベント種別の発生した時刻とする。イベント種別に対応する選手識別情報は「Ｙ」となる。
【００９１】
イベント種別が「ドリブル」である場合には、状態遷移「Ａ＃Ｘ→Ａ＃Ｘ」が繰り返される間の時刻を、イベント種別の発生した時刻とする。イベント種別に対応する選手識別情報は「Ｘ」となる。同様に、状態遷移「Ｂ＃Ｙ→Ｂ＃Ｙ」が繰り返される間の時刻を、イベント種別の発生した時刻とする。イベント種別に対応する選手識別情報は「Ｙ」となる。
【００９２】
たとえば、図１８で示した状態管理テーブル１６５を用いて説明すると、時刻Ｔ３〜時刻Ｔ７の状態遷移が、イベント種別「パス」の状態遷移「Ａ＃Ｘ→Ａ＃Ｘ」にヒットする。イベント検出部１５０ｄは、時刻「Ｔ４」にイベント種別「パス」のイベントが発生したと判定する。また、時刻「Ｔ４」に発生したイベント種別「パス」に対応する選手識別情報は「Ｈ１０１」となる。この場合には、イベント検出部１５０ｄは、時刻「Ｔ４」、イベント種別「パス」、選手識別情報「Ｈ１０１」を対応付けて、イベントファイル１４０ｆに登録する。
【００９３】
図１９で説明した状態管理テーブル１６５を用いて説明すると、時刻Ｔ７〜時刻Ｔ１０の状態が、イベント種別「ドリブル」の状態遷移「Ａ＃Ｘ→Ａ＃Ｘ」にヒットする。イベント検出部１５０ｄは、時刻「Ｔ７〜Ｔ１０」にイベント種別「ドリブル」のイベントが発生したと判定する。また、時刻「Ｔ７〜Ｔ１０」に発生したイベント種別「ドリブル」に対応する選手識別情報は「Ｈ１０２」となる。この場合には、イベント検出部１５０ｄは、時刻「Ｔ７〜Ｔ１０」、イベント種別「ドリブル」、選手識別情報「Ｈ１０２」を対応付けて、イベントファイル１４０ｆに登録する。
【００９４】
図１９で説明した状態管理テーブル１６５を用いて説明すると、時刻Ｔ１０〜時刻Ｔ１３の状態が、イベント種別「シュート」の状態遷移「Ａ＃Ｘ→＃ゴール」にヒットする。イベント検出部１５０ｄは、時刻「Ｔ１１」にイベント種別「シュート」のイベントが発生したと判定する。また、時刻「Ｔ１１」に発生したイベント種別「シュート」に対応する選手識別情報は「Ｈ１０２」となる。この場合には、イベント検出部１５０ｄは、時刻「Ｔ１１」、イベント種別「シュート」、選手識別情報「Ｈ１０２」を対応付けて、イベントファイル１４０ｆに登録する。
【００９５】
イベント検出部１５０ｄは、上記処理を実行することで、イベントを検出し、イベントの発生した時刻、イベント種別、イベント種別に対応する選手識別情報を対応付けて、イベントファイル１４０ｆに登録する。
【００９６】
図３の説明に戻る。信頼度算出部１５０ｅは、イベント検出部１５０ｄにより検出されたイベントの信頼度を算出する処理部である。たとえば、信頼度算出部１５０ｅは、イベントに関連するボールの移動軌跡の評価値と、選手の移動軌跡の評価値とを基にして、イベントの信頼度を算出する。
【００９７】
信頼度算出部１５０ｅの処理の一例について説明する。信頼度算出部１５０ｅは、イベントファイル１４０ｆを参照し、ブランクとなっていないイベント種別を選択する。信頼度算出部１５０ｅは、選択したイベント種別に対応する時刻と、選択したイベント種別に対応する選手識別情報とを特定する。以下の説明では、イベント種別に対応する時刻を、「イベント発生時刻」と表記する。イベント種別に対応する選手識別情報を、「特定識別情報」と表記する。信頼度算出部１５０ｅは、イベント発生時刻を基準とした所定の時間範囲と、ボール管理テーブル１４０ｄとを比較して、時間範囲に対応するボールの各評価値を特定する。
【００９８】
また、信頼度算出部１５０ｅは、選手管理テーブル１４０ｃの特定識別情報に対応するレコードのうち、イベント発生時刻を基準とした所定の時間範囲に対応する選手の各評価値を特定する。
【００９９】
信頼度算出部１５０ｅは、特定したボールの各評価値と、選手の各評価値との平均値を算出し、算出した平均値を、該当するイベント種別の信頼度とする。信頼度算出部１５０ｅは、各イベント種別について各信頼度を算出し、算出した各信頼度を、イベントファイル１４０ｆに登録する。
【０１００】
再検出部１５０ｆは、イベントファイル１４０ｆを参照し、信頼度が閾値Ｔｈ未満となるイベント種別が存在する場合に、第１学習器１４０ｇまたは第２学習器１４０ｈを用いて、イベントの再検出を行う処理部である。再検出部１５０ｆは、第１学習器１４０ｇおよび第２学習器１４０ｈの双方を用いて、イベントの再検出を行ってもよい。再検出部１５０ｆが、第１学習器１４０ｇを用いるのか、第２学習器１４０ｈを用いるのか、第１学習器１４０ｇおよび第２学習器を用いるのかは、予め設定されているものとする。
【０１０１】
たとえば、閾値Ｔｈを「０．５」とすると、図１１に示した各時刻のイベント種別のうち、時刻「Ｔ１２」の信頼度が「０．２」となるため、閾値Ｔｈ未満となる。この場合には、再検出部１５０ｆは、時刻「Ｔ１２」のイベントの再検出を行うと判定する。
【０１０２】
再検出部１５０ｆが、第１学習器１４０ｇを基にして、イベントを再検出する処理の一例について説明する。再検出部１５０ｆは、信頼度が閾値Ｔｈ未満となるイベント種別の時刻を特定する。再検出部１５０ｆは、特定した時刻に対応する各選手の座標を、選手管理テーブル１４０ｃから取得する。再検出部１５０ｆは、各選手の座標を、第１学習器１４０ｇの入力層２０ａの各ノードに入力することで、出力層２０ｃの各ノードから、各イベント種別の確率を取得する。
【０１０３】
再検出部１５０ｆは、出力層２０ｃの各ノードから取得したイベント種別の確率のうち、確率が最大となるイベント種別を検出（再検出）する。再検出部１５０ｆは、イベントファイルに登録された、信頼度が閾値未満となるイベント種別を、再検出したイベント種別によって、更新する処理を行う。
【０１０４】
再検出部１５０ｆが、第２学習器１４０ｈを基にして、イベントを再検出する処理の一例について説明する。再検出部１５０ｆは、信頼度が閾値Ｔｈ未満となるイベント種別を特定し、特定したイベント種別に至るイベント種別の発生順序を特定する。再検出部１５０ｆは、発生順序と、第２学習器１４０ｈとを比較し、信頼度が閾値Ｔｈ未満となるイベント種別の代わりとなるイベント種別を再検出する。
【０１０５】
図２０は、本実施例１に係る再検出部の処理を説明するための図である。たとえば、イベントファイル１４０ｆのデータの内容を、イベントファイル１４０−１ｆに示すものとする。図２０において、信頼度が閾値Ｔｈ未満となるイベント種別は時刻「Ｔ４」の「ドリブル」となる。また、特定したイベント種別に至るイベント種別の発生順序は、「シュート」→「リバウンド」となる。
【０１０６】
再検出部１５０ｆは、発生順序「シュート」→「リバウンド」と、図１３に示した第２学習器１４０ｈとを比較すると、「シュート」→「リバウンド」の次に発生し得るイベント種別は、「パス」、「ドリブル」、「シュート」のいずれかとなる。たとえば、パスの確率を「４５％」とし、ドリブルの確率を「２５％」とし、シュートの確率を「３０％」とする。再検出部１５０ｆは、確率の最も高い「パス」を、「シュート」→「リバウンド」の次に発生し得るイベント種別として特定（再検出）する。再検出部１５０ｆは、イベントファイルに登録された、信頼度が閾値未満となるイベント種別を、再検出したイベント種別によって、更新する処理を行う。
【０１０７】
再検出部１５０ｆが、第１学習器１４０ｇおよび第２学習器１４０ｈを用いて、イベントを再検出する処理の一例について説明する。再検出部１５０ｆは、上述した第１学習器１４０ｇを用いて、イベントを再検出する処理と同様にして、確率が最も高いイベント種別を特定する。第１学習器１４０ｇを用いて特定したイベント種別の確率を「Ｐ１」とする。
【０１０８】
再検出部１４０ｆは、上述した第２学習器１４０ｈを用いて、イベントを再検出する処理と同様にして、確率が最も高いイベント種別を特定する。第２学習器１４０ｈを用いて特定したイベント種別の確率を「Ｐ２」とする。
【０１０９】
再検出部１４０ｆは、Ｐ１とＰ２とを比較し、Ｐ１がＰ２よりも大きい場合には、第１学習器１４０ｇを用いて検出したイベント種別により、信頼度が閾値未満となるイベント種別を更新する。一方、再検出部１４０ｆは、Ｐ１とＰ２とを比較し、Ｐ２がＰ１よりも大きい場合には、第２学習器１４０ｈを用いて検出したイベント種別により、信頼度が閾値未満となるイベントを更新する。
【０１１０】
再検出部１４０ｆは、競技が終了するまで、イベントを再検出して、イベントファイル１４０ｆを更新する処理を繰り返し実行する。再検出部１４０ｆは、競技の終了の有無に関する情報を、外部装置から受け付けてもよいし、管理者が入力部１２０を操作して、競技の終了の有無を、検出装置１００に入力してもよい。
【０１１１】
スタッツ情報生成部１５０ｇは、競技が終了した旨の情報を受け付けた場合に、イベントファイル１４０ｆを基にして、スタッツ情報を生成する処理部である。スタッツ情報生成部１５０ｇは、生成したスタッツ情報を、出力部１５０ｈに出力する。
【０１１２】
たとえば、スタッツ情報生成部１５０ｇは、イベントファイル１４０ｆの各レコードを走査し、選手識別情報毎に、各イベント種別の回数を集計することで、スタッツ情報を生成する。図２１は、本実施例１に係るスタッツ情報の一例を示す図である。スタッツ情報１７０は、選手識別情報と、氏名と、イベント発生回数とを対応付ける。イベント発生回数には、パスの回数、スティールの回数、シュートの回数、ドリブルの回数等が含まれる。
【０１１３】
スタッツ情報生成部１５０ｇは、選手情報を管理するシステム（図示略）等から、選手識別情報に対応する氏名の情報を取得し、スタッツ情報１７０に登録する。また、スタッツ情報生成部１５０ｇは、試合のスコア、パスの成功率、シュートの成功率等に関する情報を、システム（図示略）から取得する場合には、スタッツ情報１７０に、かかる情報を登録してもよい。
【０１１４】
出力部１５０ｈは、スタッツ情報をスタッツ情報生成部１５０ｇから取得した場合に、取得したスタッツ情報を、表示部１３０に出力して表示させる処理部である。出力部１５０ｈは、ネットワーク等を介して、外部装置からスタッツ情報の要求を受け付けた場合には、要求元の外部装置にスタッツ情報を送信する。
【０１１５】
次に、本実施例１に係る検出装置の処理手順の一例について説明する。図２２および図２３は、本実施例１に係る検出装置の処理手順を示すフローチャートである。図２２について説明する。検出装置１００のボール検出部１５０ｂおよび選手検出部１５０ｃは、バッファ１４０ａから、画像フレームを取得する（ステップＳ１０１）。
【０１１６】
ボール検出部１５０ｂおよび選手検出部１５０ｃは、差分画像を生成する（ステップＳ１０２）。ボール検出部１５０ｂは、ボールを検出し（ステップＳ１０３ａ）、検出したボールの評価値を算出し（ステップＳ１０４ａ）、ボールの座標を全体座標系へ統合する（ステップＳ１０５ａ）。
【０１１７】
選手検出部１５０ｃは、選手を検出し（ステップＳ１０３ｂ）、検出した選手の評価値を算出し（ステップＳ１０４ｂ）、選手の座標を全体座標系へ統合する（ステップＳ１０５ｂ）。
【０１１８】
検出装置１００のイベント検出部１５０ｄは、ボールの移動軌跡および選手の移動軌跡を特定する（ステップＳ１０６）。イベント検出部１５０ｄは、イベント定義情報を基にして、イベントを検出する（ステップＳ１０７）。
【０１１９】
イベント検出部１５０ｄは、検出したイベントの情報をイベントファイル１４０ｆに登録する（ステップＳ１０８）。検出装置１００の信頼度算出部１５０ｅは、イベントの信頼度を算出する（ステップＳ１０９）。
【０１２０】
図２３の説明に移行する。検出装置１００の再検出部１５０ｆは、イベントの信頼度が閾値Ｔｈ未満であるか否かを判定する（ステップＳ１１０）。再検出部１５０ｆは、イベントの信頼度が閾値Ｔｈ未満でない場合には（ステップＳ１１０，Ｎｏ）、ステップＳ１１３に移行する。
【０１２１】
再検出部１５０ｆは、イベントの信頼度が閾値Ｔｈ未満である場合には（ステップＳ１１０，Ｙｅｓ）、第１学習器１４０ｇおよび／または第２学習器１４０ｈを基にして、イベントを再検出する（ステップＳ１１１）。再検出部１５０ｆは、再検出したイベントにより、イベントファイル１４０ｆを更新する（ステップＳ１１２）。
【０１２２】
検出装置１００は、競技が終了したか否かを判定する（ステップＳ１１３）。検出装置１００は、競技が終了した場合には（ステップＳ１１３，Ｙｅｓ）、ステップＳ１１４に移行する。検出装置１００は、競技が終了していない場合には（ステップＳ１１３，Ｎｏ）、図２２のステップＳ１０１に移行する。
【０１２３】
検出装置１００のスタッツ情報生成部１５０ｇは、イベントファイル１４０ｆを基にして、スタッツ情報１７０を生成する（ステップＳ１１４）。検出装置１００の出力部１５０ｈは、スタッツ情報１７０を表示部１３０に表示させる（ステップＳ１１５）。
【０１２４】
次に、本実施例１に係る検出装置１００の効果について説明する。検出装置１００は、ボールおよび選手の移動軌跡を基にして、イベントを検出する場合に、イベントの信頼度を算出する。検出装置１００は、イベントの信頼度が閾値未満である場合に、機械学習、深層学習の結果得られる第１学習器１４０ｇ、第２学習器１４０ｈを用いて、イベントの再検出を行い、再検出したイベントにより、信頼度が閾値未満となるイベントを修正する。これによって、競技中のイベントの検出精度を向上させることができる。また、イベントの検出精度が向上することによって、このイベントの検出結果を用いて生成されるスタッツ情報を精度よく生成することもできる。
【０１２５】
たとえば、検出装置１００は、ボールの領域の予測位置と、実際のボールの領域との距離に基づいて、ボールの領域の評価値を算出する。検出装置１００は、選手の予測位置の画像と、選手の画像との類似度を評価値として算出する。そして、検出装置１００は、イベント検出で用いたボールの領域の評価値と、選手の領域の評価値とを基にして、イベントの信頼度を算出する。このため、イベントを検出する根拠となったボールの領域および選手の領域の評価値に応じた信頼度を算出することができる。
【実施例２】
【０１２６】
図２４は、本実施例２に係る検出装置の構成を示す機能ブロック図である。ここでは説明を省略するが、検出装置２００は、図１で説明したシステムの検出装置１００と同様にして、カメラ１０に接続されているものとする。カメラ１０に関する説明は、実施例１で説明した内容と同様である。
【０１２７】
図２４に示すように、検出装置２００は、通信部２１０、入力部２２０、表示部２３０、記憶部２４０、制御部２５０を有する。
【０１２８】
通信部２１０は、ネットワーク等を介して、カメラ１０との間でデータ通信を実行する処理部である。たとえば、カメラ１０から映像データを受信する。通信部２１０は、受信した映像データを、制御部２５０に出力する。通信部２１０は、通信装置の一例である。
【０１２９】
入力部２２０は、検出装置２００に各種の情報を入力するための入力装置である。入力部２２０は、たとえば、キーボードやマウス、タッチパネル等に対応する。
【０１３０】
表示部２３０は、制御部２５０から出力される各種の情報を表示するための表示装置である。表示部２３０は、たとえば、液晶ディスプレイ、タッチパネル等に対応する。表示部２３０は、制御部２５０から、スタッツ情報を受け付けた場合には、スタッツ情報を表示する。
【０１３１】
記憶部２４０は、バッファ１４０ａ、変換テーブル１４０ｂ、選手管理テーブル１４０ｃ、ボール管理テーブル１４０ｄ、イベント定義情報１４０ｅ、イベントファイル１４０ｆ、第１学習器１４０ｇ、第２学習器１４０ｈ、状態管理テーブル１６５を有する。また、記憶部２４０は、順序定義情報２４０ａを有する。記憶部２４０は、ＲＡＭ、ＲＯＭ、フラッシュメモリなどの半導体メモリ素子や、ＨＤＤなどの記憶装置に対応する。記憶部２４０に含まれる各情報１４０ａ〜１４０ｈ、１６５に関する説明は、実施例１で説明した情報１４０ａ〜１４０ｈ、１６５に関する説明と同様であるため、同一の符号を付して説明を省略する。
【０１３２】
順序定義情報２４０ａは、イベントの一般的な発生順序を定義する情報である。図２５は、本実施例２に係る順序定義情報のデータ構造の一例を示す図である。図２５に示すように、この順序定義情報２４０ａは、イベント種別と、順序とを対応付ける。イベント種別は、イベントの種別を示すものである。順序は、イベントの発生順序を示す。
【０１３３】
たとえば、順序定義情報２４０ａの１行目では、イベント種別「リバウンド」は、イベント種別「シュート」の次に発生する旨が定義されている。順序定義情報２４０ａの２行目では、イベント種別「アシスト」の後にイベント種別「シュート」が発生する旨が定義されている。順序定義情報２４０ａの３行目では、イベント種別「フリースロー」は、イベント種別「ファウル」の次に発生する旨が定義されている。なお、「※」は、イベント種別が、どのようなイベント種別であってもよいことを示す。
【０１３４】
制御部２５０は、受信部１５０ａ、ボール検出部１５０ｂ、選手検出部１５０ｃ、イベント検出部１５０ｄ、信頼度算出部１５０ｅ、再検出部１５０ｆ、イベント補間部２５０ａスタッツ情報生成部１５０ｇ、出力部１５０ｈを有する。制御部２５０は、ＣＰＵやＭＰＵなどによって実現できる。また、制御部２５０は、ＡＳＩＣやＦＰＧＡなどのハードワイヤードロジックによっても実現できる。
【０１３５】
ここで、受信部１５０ａ、ボール検出部１５０ｂ、選手検出部１５０ｃ、イベント検出部１５０ｄ、信頼度算出部１５０ｅに関する説明は、実施例１で説明したものと同様であるため、同一の符号を付して説明を省略する。また、再検出部１５０ｆ、スタッツ情報生成部１５０ｇ、出力部１５０ｈに関する説明は、実施例１で説明したものと同様であるため、同一の符号を付して説明を省略する。
【０１３６】
イベント補間部２５０ａは、イベントファイル１４０ｆを基にして、あるイベントの時刻から、次のイベントが発生するまでの時刻までの時間が所定時間以上である場合に、イベントを補間する処理部である。イベント補間部２５０ａは、第１学習器１４０ｇまたは第２学習器１４０ｈを用いて、イベントを補間する。
【０１３７】
図２６は、本実施例２に係るイベント補間部の処理を説明するための図である。たとえば、イベントファイル１４０ｆのデータの内容を、イベントファイル１４０−２ｆに示すものとする。イベント補間部２５０ａは、イベントファイル１４０−２ｆの各レコードを走査し、イベントの間隔が所定時間以上となる区間を特定する。たとえば、イベント補間部２５０ａは、イベントの間隔が所定時間以上となる区間「Ｔ２〜Ｔ５」を特定する。
【０１３８】
イベント補間部２５０ａが、第１学習器１４０ｇを用いてイベントを補間する場合について説明する。イベント補間部２５０ａは、特定した区間に含まれる時刻のうち、中央の時刻を特定する。たとえば、イベント補間部２５０ａは、区間が「Ｔ２〜Ｔ５」である場合には、時刻「Ｔ３」を特定する。
【０１３９】
イベント補間部２５０ａは、特定した時刻に対応する各選手の座標を、選手管理テーブル１４０ｃから取得する。イベント補間部２５０ａは、各選手の座標を、第１学習器１４０ｇの入力層２０ａの各ノードに入力することで、出力層２０ｃの各ノードから、各イベント種別の確率を取得する。
【０１４０】
イベント補間部２５０ａは、出力層２０ｃの各ノードから取得したイベント種別の確率のうち、確率が最大となるイベント種別を検出する。イベント補間部２５０ａは、イベントファイル１４０ｆに対して、上記の処理により特定した時刻に、検出したイベント種別の情報を登録する処理を行う。たとえば、イベント補間部２５０ａは、第１学習器１４０ｇから検出したイベント種別が「リバウンド」である場合には、時刻「Ｔ３」に対応するイベント種別に、「リバウンド」を登録する。
【０１４１】
イベント補間部２５０ａが、第２学習器１４０ｈを用いてイベントを補間する場合について説明する。イベント補間部２５０ａは、特定した区間の開始時刻より一つ前の時刻で検出されたイベント種別を特定する。たとえば、イベント補間部２５０ａは、区間が「Ｔ２〜Ｔ５」である場合には、時刻「Ｔ１」のイベント種別「シュート」を特定する。また、イベント補間部２６０ａは、特定したイベント種別に至るイベント種別の発生順序を特定する。図２６では図示を省略するが、たとえば、イベント種別「シュート」の前にイベント種別「パス」が存在している場合には、発生順序は「パス」→「シュート」となる。
【０１４２】
イベント補間部２５０ａは、発生順序と、第２学習器１４０ｈとを比較して、発生順序（たとえば、「パス」→「シュート」）の次に発生し得るイベント種別のうち、確率が最大となるイベント種別を特定する。イベント補間部２５０ａは、特定した区間に含まれる時刻のうち、中央の時刻に対応するイベント種別として、第２学習器１４０ｈを基に特定した、イベント種別を、イベントファイル１４０ｆに登録する。
【０１４３】
イベント補間部２５０ａが、第１学習器１４０ｇおよび第２学習器１４０ｈを用いて、イベントを補間する場合について説明する。イベント補間部２５０ａは、上述した第１学習器１４０ｇを用いて、イベントを検出する処理と同様にして、確率が最も高いイベント種別を特定する。第１学習器１４０ｇを用いて特定したイベント種別の確率を「Ｐ１」とする。
【０１４４】
イベント補間部２５０ａは、上述した第２学習器１４０ｈを用いて、イベントを検出する処理と同様にして、確率が最も高いイベント種別を特定する。第２学習器１４０ｈを用いて特定したイベント種別の確率を「Ｐ２」とする。
【０１４５】
イベント補間部２５０ａは、Ｐ１とＰ２とを比較し、Ｐ１がＰ２よりも大きい場合には、第１学習器１４０ｇを用いて検出したイベント種別により、イベントを補間する。一方、イベント補間部２５０ａは、Ｐ１とＰ２とを比較し、Ｐ２がＰ１よりも大きい場合には、第２学習器１４０ｈを用いて検出したイベント種別により、イベントを補間する。
【０１４６】
図２４の説明に戻る。イベント修正部２５０ｂは、順序定義情報２４０ａを基にして、イベントファイル１４０ｆのイベント種別を修正する処理部である。イベント修正部２５０ｂは、イベントファイル１４０ｆのイベント種別を時系列に走査し、イベント種別の順序が、順序定義情報２４０ａで定義された順序に対応しているか否かを判定する。
【０１４７】
イベント修正部２５０ｂは、イベント種別の順序が、順序定義情報２４０ａで定義された順序に対応していない場合には、順序定義情報２４０ａで定義された順序となるように、イベント種別を修正する。
【０１４８】
図２７は、本実施例２に係るイベント修正部の処理を説明するための図である。たとえば、イベントファイル１４０ｆのデータの内容を、イベントファイル１４０−３ｆに示すのとする。たとえば、図２５に示す順序定義情報２４０ａによれば、イベント種別「シュート」の次のイベント種別は「リバウンド」となっている。このため、イベント修正部２５０ｂは、時刻「Ｔ３」のイベント種別「ドリブル」を、イベント種別「リバウンド」に設定する。
【０１４９】
なお、競技中においては、必ずしも、予め定義したイベント種別の順番でイベントが発生するとは限らない場合や、所定時間以上、イベントが発生しない場合がある。このため、イベント補間部２５０ａ、イベント修正部２５０ｂの機能を有効にするかを利用者は適宜選択可能であるものとする。
【０１５０】
次に、本実施例２に係る検出装置２００の処理手順の一例について説明する。図２８および図２９は、本実施例２に係る検出装置の処理手順を示すフローチャートである。図２８について説明する。検出装置２００のボール検出部１５０ｂおよび選手検出部１５０ｃは、バッファ１４０ａから、画像フレームを取得する（ステップＳ２０１）。
【０１５１】
ボール検出部１５０ｂおよび選手検出部１５０ｃは、差分画像を生成する（ステップＳ２０２）。ボール検出部１５０ｂは、ボールを検出し（ステップＳ２０３ａ）、検出したボールの評価値を算出し（ステップＳ２０４ａ）、ボールの座標を全体座標系へ統合する（ステップＳ２０５ａ）。
【０１５２】
選手検出部１５０ｃは、選手を検出し（ステップＳ２０３ｂ）、検出した選手の評価値を算出し（ステップＳ２０４ｂ）、選手の座標を全体座標系へ統合する（ステップＳ２０５ｂ）。
【０１５３】
検出装置２００のイベント検出部１５０ｄは、ボールの移動軌跡および選手の移動軌跡を特定する（ステップＳ２０６）。イベント検出部１５０ｄは、イベント定義情報１４０ｅを基にして、イベントを検出する（ステップＳ２０７）。
【０１５４】
イベント検出部１５０ｄは、検出したイベントの情報をイベントファイル１４０ｆに登録する（ステップＳ２０８）。検出装置２００の信頼度算出部１５０ｅは、イベントの信頼度を算出する（ステップＳ２０９）。
【０１５５】
図２９の説明に移行する。検出装置２００の再検出部１５０ｆは、イベントの信頼度が閾値Ｔｈ未満であるか否かを判定する（ステップＳ２１０）。再検出部１５０ｆは、イベントの信頼度が閾値Ｔｈ未満でない場合には（ステップＳ２１０，Ｎｏ）、ステップＳ２１３に移行する。
【０１５６】
再検出部１５０ｆは、イベントの信頼度が閾値Ｔｈ未満である場合には（ステップＳ２１０，Ｙｅｓ）、第１学習器１４０ｇおよび／または第２学習器１４０ｈを基にして、イベントを再検出する（ステップＳ２１１）。再検出部１５０ｆは、再検出したイベントにより、イベントファイル１４０ｆを更新する（ステップＳ２１２）。
【０１５７】
検出装置２００は、競技が終了したか否かを判定する（ステップＳ２１３）。検出装置２００は、競技が終了した場合には（ステップＳ２１３，Ｙｅｓ）、ステップＳ２１４に移行する。一方、検出装置２００は、競技が終了していない場合には（ステップＳ２１３，Ｎｏ）、図２８のステップＳ２０１に移行する。
【０１５８】
検出装置２００のイベント補間部２５０ａは、イベントファイル１４０ｆの各レコードを走査する（ステップＳ２１４）。イベント補間部２５０ａは、イベント間隔が所定時間以上となる区間が存在する場合に、イベントを補間する（ステップＳ２１５）。
【０１５９】
検出装置２００のイベント修正部２５０ｂは、イベントファイル１４０ｆの各レコードを時系列に走査し、イベント種別の順序を特定する（ステップＳ２１６）。イベント修正部２５０ｂは、順序定義情報２４０ａを基にして、イベント種別を修正する（ステップＳ２１７）。
【０１６０】
検出装置２００のスタッツ情報生成部１５０ｇは、イベントファイル１４０ｆを基にして、スタッツ情報１７０を生成する（ステップＳ２１８）。検出装置２００の出力部１５０ｈは、スタッツ情報１７０を表示部２３０に表示させる（ステップＳ２１９）。
【０１６１】
次に、本実施例２に係る検出装置２００の効果について説明する。検出装置２００は、ボールおよび選手の移動軌跡を基にして、イベントを検出する処理を行い、イベントファイル１４０ｆを生成する。検出装置２００は、イベントファイル１４０ｆの各レコードを走査し、イベント間隔が所定時間以上となる区間が存在する場合に、イベントを補間する処理を実行する。これにより、検出装置２００が、イベント検出部１５０ｄが検出できなかったイベントを検出することができ、競技中のイベントの検出精度を向上させることができる。
【０１６２】
また、検出装置２００は、イベントファイル１４０ｆの各レコードを時系列に走査し、イベント種別の順序を特定し、順序定義情報２４０ａを基にして、イベント種別を修正する。これにより、イベント種別の発生順序が、順序定義情報に定義された順序と異なる場合に、最適なイベント種別に修正することができ、競技中のイベントの検出精度を向上させることができる。
【実施例３】
【０１６３】
本実施例３では、実施例１の検出装置１００、実施例２の検出装置２００が実行し得るその他の処理について説明する。たとえば、検出装置１００，２００の処理は、カメラ２０から送信される映像データをリアルタイムに取得して処理する場合について説明しているが、これに限定されるものではない。たとえば、検出装置１００，２００は、通信部３１０、入力部２２０等から、選手管理テーブル１４０ｃおよびボール管理テーブル１４０ｄを含むファイルを事前に受け付け、オフラインで、イベントの検出を行い、スタッツ情報を生成してもよい。
【０１６４】
図３０は、本実施例３に係る検出装置の構成を示す機能ブロック図である。図３０に示すように、この検出装置３００は、通信部３１０、入力部３２０、表示部３３０、記憶部３４０、制御部３５０を有する。
【０１６５】
通信部３１０は、ネットワーク等を介して、外部装置とデータ通信を実行する処理部である。たとえば、外部装置は、実施例１、２で説明した検出装置１００，２００と同様にしてカメラ２０に接続され、選手管理テーブル１４０ｃ、ボール管理テーブル１４０ｄを生成する。外部装置は、選手管理テーブル１４０ｃおよびボール管理テーブル１４０ｄを含むファイルを生成し、生成したファイルを検出装置３００に送信する。通信部３１０は、通信装置の一例である。
【０１６６】
入力部３２０は、検出装置３００に各種の情報を入力するための入力装置である。入力部３２０は、たとえば、キーボードやマウス、タッチパネル等に対応する。
【０１６７】
表示部３３０は、制御部３５０から出力される各種の情報を表示するための表示装置である。表示部３３０は、たとえば、液晶ディスプレイ、タッチパネル等に対応する。表示部３３０は、制御部３５０から、スタッツ情報を受け付けた場合には、スタッツ情報を表示する。
【０１６８】
記憶部３４０は、選手管理テーブル１４０ｃ、ボール管理テーブル１４０ｄ、イベント定義情報１４０ｅ、イベントファイル１４０ｆ、第１学習器１４０ｇ、第２学習器１４０ｈ、状態管理テーブル１６５、順序定義情報２４０ａを有する。記憶部３４０は、ＲＡＭ、ＲＯＭ、フラッシュメモリなどの半導体メモリ素子や、ＨＤＤなどの記憶装置に対応する。記憶部３４０に含まれる各情報１４０ｃ〜１４０ｈ、１６５、２４０ａに関する説明は、実施例１、２で説明した情報１４０ａ〜１４０ｈ、１６５、２４０ａに関する説明と同様であるため、同一の符号を付して説明を省略する。
【０１６９】
制御部３５０は、受信部３５０ａ、イベント検出部３５０ｂ、信頼度算出部１５０ｅ、再検出部１５０ｆ、イベント補間部２５０ａ、イベント修正部２５０ｂ、スタッツ情報生成部１５０ｇ、出力部１５０ｈを有する。制御部３５０は、ＣＰＵやＭＰＵなどによって実現できる。また、制御部３５０は、ＡＳＩＣやＦＰＧＡなどのハードワイヤードロジックによっても実現できる。
【０１７０】
ここで、信頼度算出部１５０ｅ、再検出部１５０ｆ、イベント補間部２５０ａ、イベント修正部２５０ｂ、スタッツ情報生成部１５０ｇ、出力部１５０ｈに関する説明は、実施例１、２で説明したものと同様であるため、同一の符号を付して説明を省略する。
【０１７１】
受信部３５０ａは、外部装置からファイルを受信する処理部である。外部装置から受信するファイルには、選手管理テーブル１４０ｃおよびボール管理テーブル１４０ｄが含まれる。受信部３５０ａは、選手管理テーブル１４０ｃおよびボール管理テーブル１４０ｄを、記憶部３４０に格納する。
【０１７２】
イベント検出部３５０ｂは、特定の物体の移動軌跡を特定し、特定した移動軌跡を基にして、イベントを検出する処理部である。たとえば、イベント検出部３５０ｂは、ボールの状態を判定する処理、イベントを検出する処理を行う。
【０１７３】
イベント検出部３５０ｂのボールの状態を判定する処理およびイベントを検出する処理は、実施例１で説明したイベント検出部１５０ｄの処理と同様である。なお、選手管理テーブル１４０ｃおよびボール管理テーブル１４０ｄには、競技開始の時刻から、競技終了の時刻までの情報が含まれているため、イベント検出部３５０ｂは、選手管理テーブル１４０ｃおよびボール管理テーブル１４０ｄの各レコードを走査して、ボールの移動軌跡、選手の移動軌跡を特定し、イベント定義情報１４０ｅを基にして、イベントを検出する処理を繰り返し実行する。
【０１７４】
次に、本実施例３に係る検出装置３００の処理手順の一例について説明する。図３１および図３２は、本実施例３に係る検出装置の処理手順を示すフローチャートである。図３１において、検出装置３００の受信部３５０ａは、ファイルを受け付け、ファイルに含まれるボール管理テーブル１４０ｄ、選手管理テーブル１４０ｃを記憶部３４０に登録する（ステップＳ３０１）。
【０１７５】
検出装置３００のイベント検出部３５０ｂは、ボールの移動軌跡および選手の移動軌跡を特定する（ステップＳ３０２）。イベント検出部３５０ｂは、イベント定義情報１４０ｅを基にして、イベントを検出する（ステップＳ３０３）。
【０１７６】
イベント検出部３５０ｂは、検出したイベントの情報をイベントファイル１４０ｆに登録する（ステップＳ３０４）。検出装置３００の信頼度算出部１５０ｅは、イベントの信頼度を算出する（ステップＳ３０５）。
【０１７７】
検出装置３００の再検出部１５０ｆは、イベントの信頼度が閾値Ｔｈ未満であるか否かを判定する（ステップＳ３０６）。再検出部１５０ｆは、イベントの信頼度が閾値Ｔｈ未満でない場合には（ステップＳ３０６，Ｎｏ）、ステップＳ３０９に移行する。
【０１７８】
再検出部１５０ｆは、イベントの信頼度が閾値Ｔｈ未満である場合には（ステップＳ３０６，Ｙｅｓ）、第１学習器１４０ｇおよび／または第２学習器１４０ｈを基にして、イベントを再検出する（ステップＳ３０７）。再検出部１５０ｆは、再検出したイベントにより、イベントファイル１４０ｆを更新する（ステップＳ３０８）。
【０１７９】
検出装置３００は、イベント検出が終了したか否かを判定する（ステップＳ３０９）。検出装置３００は、イベント検出が終了した場合には（ステップＳ３０９，Ｙｅｓ）、図３２のステップＳ３１１に移行する。一方、検出装置３００は、競技が終了していない場合には（ステップＳ３０９，Ｎｏ）、ステップＳ３１０に移行する。検出装置３００のイベント検出部３５０ｂは、イベント定義情報１４０ｅを基にして、次のイベントを検出し（ステップＳ３１０）、ステップＳ３０４に移行する。
【０１８０】
図３２の説明に移行する。検出装置３００のイベント補間部２５０ａは、イベントファイル１４０ｆの各レコードを走査する（ステップＳ３１１）。イベント補間部２５０ａは、イベント間隔が所定時間以上となる区間が存在する場合に、イベントを補間する（ステップＳ３１２）。
【０１８１】
検出装置３００のイベント修正部２５０ｂは、イベントファイル１４０ｆの各レコードを時系列に走査し、イベント種別の順序を特定する（ステップＳ３１３）。イベント修正部２５０ｂは、順序定義情報２４０ａを基にして、イベント種別を修正する（ステップＳ３１４）。
【０１８２】
検出装置３００のスタッツ情報生成部１５０ｇは、イベントファイル１４０ｆを基にして、スタッツ情報１７０を生成する（ステップＳ３１５）。検出装置３００の出力部１５０ｈは、スタッツ情報１７０を表示部３３０に表示させる（ステップＳ３１６）。
【０１８３】
次に、本実施例３に係る検出装置３００の効果について説明する。検出装置３００は、競技中に外部装置に生成されたファイルを事前に受信しておき、受信しておいたファイルに含まれる選手管理テーブル１４０ｃ、ボール管理テーブル１４０ｄを基にして、イベントの検出し、イベントの信頼度を算出する。そして、検出装置３００は、イベントの信頼度が閾値未満である場合に、機械学習、深層学習の結果得られる第１学習器１４０ｇ、第２学習器１４０ｈを用いて、イベントの再検出を行い、再検出したイベントにより、信頼度が閾値未満となるイベントを修正する。これにより、オフラインで、イベントを検出した場合の検出精度を向上させることができ、このイベントの検出結果を用いて生成されるスタッツ情報を精度よく生成することもできる。
【０１８４】
次に、本実施例１、２、３で用いる第１学習器１４０ｇおよび第２学習器１４０ｈを学習する処理の一例について説明する。
【０１８５】
図３３は、第１学習器の学習処理を説明するための図である。検出装置１００（２００，３００）は、教師データ１４５ａを受け付ける。教師データ１４５ａは、配置パターンと、イベントの確率とを対応付ける。配置パターンは、各選手の座標を示すものである。イベントの確率は、該当する配置パターンにおいて、発生するイベントの確率を示すものである。各選手の座標をまとめて、「Ｘ，Ｙ」を表記する。
【０１８６】
たとえば、配置パターン「Ｘ１，Ｙ１」となる場合には、「シュート」が発生する確率が「１００％」であり、他のイベントが発生する確率が「０」であることが示される。配置パターン「Ｘ２，Ｙ２」となる場合には、「ドリブル」が発生する確率が「１００％」であり、他のイベントが発生する確率が「０」であることが示される。配置パターン「Ｘ３，Ｙ３」となる場合には、「パス」が発生する確率が「１００％」であり、他のイベントが発生する確率が「０」であることが示される。
【０１８７】
検出装置１００は、配置パターン「Ｘ１，Ｙ１」を、第１学習器１４０ｇの入力層２０ａに入力し、出力層２０ｃのノードのうち、シュートの確率を出力するノードの値が１００％となり、他のノードから出力される値０％に近づくように、隠れ層２０ｂおよび出力層２０ｃのバイアス値、エッジの重みを調整する。
【０１８８】
検出装置１００は、配置パターン「Ｘ２，Ｙ２」を、第１学習器１４０ｇの入力層２０ａに入力し、出力層２０ｃのノードのうち、ドリブルの確率を出力するノードの値が１００％となり、他のノードから出力される値０％に近づくように、隠れ層２０ｂおよび出力層２０ｃのバイアス値、エッジの重みを調整する。配置パターン「Ｘ３，Ｙ３」を、第１学習器１４０ｇの入力層２０ａに入力し、出力層２０ｃのノードのうち、パスの確率を出力するノードの値が１００％となり、他のノードから出力される値０％に近づくように、隠れ層２０ｂおよび出力層２０ｃのバイアス値、エッジの重みを調整する。
【０１８９】
検出装置１００は、教師データ１４５ａに含まれる配置パターンと、イベントの確率との関係を用いて、上記処理を繰り返し実行することで、第１学習器１４０ｇの学習を行う。上記の実施例１〜３では説明を省略したが、図３３で説明した学習処理を行う学習部を、検出装置１００，２００，３００が有していてもよい。
【０１９０】
図３４は、第２学習器の学習処理を説明するための図である。検出装置１００（２００，３００）は、教師データ１４５ｂを受け付ける。教師データ１４５ｂは、項番と、イベント発生パターンとを対応付ける。項番は、各レコードを識別する情報である。イベント発生パターンは、たとえば、一定区間において発生したイベントの順番の実績を示すものである。
【０１９１】
検出装置１００は、教師データ１４５ｂの各レコードのイベント発生パターンを集計し、あるイベント種別から他のイベント種別に移行する確率を算出する。検出装置１００は、集計結果を基にして、第２学習器１４０ｈを学習する。なお、利用者は、第２学習器１４０ｈを参照し、過去の経験などを基に、第２学習器１４０ｈの確率等を修正してもよい。上記の実施例１〜３では説明を省略したが、図３４で説明した学習処理を行う学習部を、検出装置１００，２００，３００が有していてもよい。
【０１９２】
次に、本実施例１〜３に示した検出装置１００、２００，３００と同様の機能を実現するコンピュータのハードウェア構成の一例について説明する。図３５は、検出装置と同様の機能を実現するコンピュータのハードウェアを説明するための図である。
【０１９３】
図３５に示すように、コンピュータ４００は、各種演算処理を実行するＣＰＵ４０１と、ユーザからのデータの入力を受け付ける入力装置４０２と、ディスプレイ４０３とを有する。また、コンピュータ４００は、記憶媒体からプログラム等を読み取る読み取り装置４０４と、有線または無線ネットワークを介してカメラ１０、外部装置、システム等との間でデータの授受を行うインタフェース装置４０５とを有する。また、コンピュータ４００は、各種情報を一時記憶するＲＡＭ４０６と、ハードディスク装置４０７とを有する。そして、各装置４０１〜４０７は、バス４０８に接続される。
【０１９４】
ハードディスク装置４０７は、受信プログラム４０７ａ、ボール検出プログラム４０７ｂ、選手検出プログラム４０７ｃ、イベント検出プログラム４０７ｄ、信頼度算出プログラム４０７ｅを有する。ハードディスク装置４０７は、再検出プログラム４０７ｆ、イベント補間プログラム４０７ｇ、イベント修正プログラム４０７ｈ、スタッツ情報生成プログラム４０７ｉ、出力プログラム４０７ｊを有する。ＣＰＵ４０１は、各プログラム４０７ａ〜４０７ｊを読み出してＲＡＭ４０６に展開する。
【０１９５】
受信プログラム４０７ａは、受信プロセス４０６ａとして機能する。ボール検出プログラム４０７ｂは、ボール検出プロセス４０６ｂとして機能する。選手検出プログラム４０７ｃは、選手検出プロセス４０６ｃとして機能する。イベント検出プログラム４０７ｄは、イベント検出プロセス４０６ｄとして機能する。信頼度算出プログラム４０７ｅは、信頼度算出プロセス４０６ｅとして機能する。再検出プログラム４０７ｆは、再検出プロセス４０６ｆとして機能する。イベント補間プログラム４０７ｇは、イベント補間プロセス４０６ｇとして機能する。イベント修正プログラム４０７ｈは、イベント修正プロセス４０６ｈとして機能する。スタッツ情報生成プログラム４０７ｉは、スタッツ情報生成プロセス４０６ｉとして機能する。出力プログラム４０７ｊは、出力プロセス４０６ｊとして機能する。
【０１９６】
受信プロセス４０６ａの処理は、受信部１５０ａ，３５０ａの処理に対応する。ボール検出プロセス４０６ｂの処理は、ボール検出部１５０ｂの処理に対応する。選手検出プロセス４０６ｃの処理は、選手検出部１５０ｃの処理に対応する。イベント検出プロセス４０６ｄの処理は、イベント検出部１５０ｄ、３５０ｂの処理に対応する。信頼度算出プロセス４０６ｅの処理は、信頼度算出部１５０ｅの処理に対応する。再検出プロセス４０６ｆは、再検出部１５０ｆの処理に対応する。イベント補間プロセス４０６ｇの処理は、イベント補間部２５０ａの処理に対応する。イベント修正プロセス４０６ｈの処理は、イベント修正部２５０ｂの処理に対応する。スタッツ情報生成プロセス４０６ｉの処理は、スタッツ情報生成部１５０ｇの処理に対応する。出力プロセス４０６ｊの処理は、出力部１５０ｈの処理に対応する。
【０１９７】
なお、各プログラム４０７ａ〜４０７ｊについては、必ずしも最初からハードディスク装置４０７に記憶させておかなくても良い。例えば、コンピュータ４００に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤ、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」に各プログラムを記憶させておく。そして、コンピュータ４００が各プログラム４０７ａ〜４０７ｄを読み出して実行するようにしても良い。
【０１９８】
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
【０１９９】
（付記１）時系列の複数の画像フレームに含まれる特定の物体の位置をそれぞれ検出した結果に基づき、前記特定の物体の移動軌跡を特定し、前記移動軌跡を基にして、前記特定の物体の動きにかかわる複数のイベントのいずれかが発生したことを検出するイベント検出部と、
前記移動軌跡に関する評価値を基にして、前記移動軌跡から発生が検出された第一のイベントとしての確からしさを示す信頼度を算出する信頼度算出部と、
前記第一のイベントに対応する前記信頼度が閾値未満である場合に、前記特定の物体の位置と前記複数のイベントそれぞれとの関係を学習した第一学習結果、および前記複数のイベントそれぞれの発生順序を学習した第二学習結果の少なくとも一方を基にして、前記複数のイベントのいずれかが発生したことを再度検出する再検出部と
を有することを特徴とする検出装置。
【０２００】
（付記２）前記画像フレーム上の前記特定の物体の予測位置の画像と前記特定の物体の画像との類似度、および、前記特定の物体の予測位置と前記特定の物体の位置との乖離の少なくとも一方を基にして、前記移動軌跡に関する前記評価値を算出する評価値算出部を更に有することを特徴とする付記１に記載の検出装置。
【０２０１】
（付記３）前記特定の物体は人物およびボールを示し、前記検出部は、前記人物の第一の移動軌跡と前記ボールの第二の移動軌跡とを基にして前記イベントを検出し、
前記信頼度算出部は、前記イベントに関連する前記第一の移動軌跡の第一の評価値と前記ボールの第二の移動軌跡の第二の評価値とを基にして、前記イベントの前記信頼度を算出することを特徴とする付記１または２に記載の検出装置。
【０２０２】
（付記４）前記イベント検出部は、前記特定の物体の前記移動軌跡が特定の条件を満たす度に、前記特定の条件に応じて、前記複数のイベントのいずれかが発生したことを検出し、
前記第一のイベントを検出した第一時刻から、第二のイベントを検出した第二時刻との時間が所定時間以上である場合には、前記第一学習結果および前記第二学習結果の少なくとも一方を基にして、前記第一時刻から前記第二時刻までに発生した第三のイベントを補間するイベント補間部を更に有することを特徴とする付記１、２または３に記載の検出装置。
【０２０３】
（付記５）コンピュータが、
時系列の複数の画像フレームに含まれる特定の物体の位置をそれぞれ検出した結果に基づき、前記特定の物体の移動軌跡を特定し、前記移動軌跡を基にして、前記特定の物体の動きにかかわる複数のイベントのいずれかが発生したことを検出し、
前記移動軌跡に関する評価値を基にして、前記移動軌跡から発生が検出された第一のイベントとしての確からしさを示す信頼度を算出し、
前記第一のイベントに対応する前記信頼度が閾値未満である場合に、前記特定の物体の位置と前記複数のイベントそれぞれとの関係を学習した第一学習結果、および前記複数のイベントそれぞれの発生順序を学習した第二学習結果の少なくとも一方を基にして、前記複数のイベントのいずれかが発生したことを再度検出する
処理を実行することを特徴とする検出方法。
【０２０４】
（付記６）前記評価値を算出する処理は、前記画像フレーム上の前記特定の物体の予測位置の画像と前記特定の物体の画像との類似度、および、前記特定の物体の予測位置と前記特定の物体の位置との乖離の少なくとも一方を基にして、前記移動軌跡に関する前記評価値を算出する付記５に記載の検出方法。
【０２０５】
（付記７）前記イベントを検出する処理は、前記特定の物体は人物およびボールを示し、前記検出部は、前記人物の第一の移動軌跡と前記ボールの第二の移動軌跡とを基にして前記イベントを検出し、前記信頼度を算出する処理は、前記イベントに関連する前記第一の移動軌跡の第一の評価値と前記ボールの第二の移動軌跡の第二の評価値とを基にして、前記イベントの前記信頼度を算出することを特徴とする付記５または６に記載の検出方法。
【０２０６】
（付記８）前記イベントを検出する処理は、前記特定の物体の前記移動軌跡が特定の条件を満たす度に、前記特定の条件に応じて、前記複数のイベントのいずれかが発生したことを検出し、
前記第一のイベントを検出した第一時刻から、第二のイベントを検出した第二時刻との時間が所定時間以上である場合には、前記第一学習結果および前記第二学習結果の少なくとも一方を基にして、前記第一時刻から前記第二時刻までに発生した第三のイベントを補間する処理を更に実行することを特徴とする付記５、６または７に記載の検出方法。
【０２０７】
（付記９）時系列の複数の画像フレームに含まれる特定の物体の位置をそれぞれ検出した結果に基づき、前記特定の物体の移動軌跡を特定し、前記移動軌跡を基にして、前記特定の物体の動きにかかわる複数のイベントのいずれかが発生したことを検出し、
前記移動軌跡に関する評価値を基にして、前記移動軌跡から発生が検出された第一のイベントとしての確からしさを示す信頼度を算出し、
前記第一のイベントに対応する前記信頼度が閾値未満である場合に、前記特定の物体の位置と前記複数のイベントそれぞれとの関係を学習した第一学習結果、および前記複数のイベントそれぞれの発生順序を学習した第二学習結果の少なくとも一方を基にして、前記複数のイベントのいずれかが発生したことを再度検出する
処理をコンピュータに実行させることを特徴とする検出プログラム。
【０２０８】
（付記１０）前記評価値を算出する処理は、前記画像フレーム上の前記特定の物体の予測位置の画像と前記特定の物体の画像との類似度、および、前記特定の物体の予測位置と前記特定の物体の位置との乖離の少なくとも一方を基にして、前記移動軌跡に関する前記評価値を算出する付記９に記載の検出プログラム。
【０２０９】
（付記１１）前記イベントを検出する処理は、前記特定の物体は人物およびボールを示し、前記検出部は、前記人物の第一の移動軌跡と前記ボールの第二の移動軌跡とを基にして前記イベントを検出し、前記信頼度を算出する処理は、前記イベントに関連する前記第一の移動軌跡の第一の評価値と前記ボールの第二の移動軌跡の第二の評価値とを基にして、前記イベントの前記信頼度を算出することを特徴とする付記９または１０に記載の検出プログラム。
【０２１０】
（付記１２）前記イベントを検出する処理は、前記特定の物体の前記移動軌跡が特定の条件を満たす度に、前記特定の条件に応じて、前記複数のイベントのいずれかが発生したことを検出し、
前記第一のイベントを検出した第一時刻から、第二のイベントを検出した第二時刻との時間が所定時間以上である場合には、前記第一学習結果および前記第二学習結果の少なくとも一方を基にして、前記第一時刻から前記第二時刻までに発生した第三のイベントを補間する処理を更に実行することを特徴とする付記９、１０または１１に記載の検出プログラム。
【符号の説明】
【０２１１】
１０ａ，１０ｂ，１０ｃ    カメラ
１００，２００，３００    検出装置
１１０，２１０，３１０    通信部
１２０，２２０，３２０    入力部
１３０，２３０，３３０    表示部
１４０，２４０，３４０    記憶部
１４０ａ  バッファ
１４０ｂ  変換テーブル
１４０ｃ  選手管理テーブル
１４０ｄ  ボール管理テーブル
１４０ｅ  イベント定義情報
１４０ｆ  イベントファイル
１４０ｇ  第１学習器
１４０ｈ  第２学習器
１６５    状態管理テーブル
１５０、２５０，３５０    制御部
１５０ａ，３５０ａ  受信部
１５０ｂ  ボール検出部
１５０ｃ  選手検出部
１５０ｄ、３５０ｂ  イベント検出部
１５０ｅ  信頼度算出部
１５０ｆ  再検出部
１５０ｇ  スタッツ情報生成部
１５０ｈ  出力部
２５０ａ  イベント補間部
２５０ｂ  イベント修正部
【図１】
2020017010.tif 000004
【図２】
2020017010.tif 000005
【図３】
2020017010.tif 000006
【図４】
2020017010.tif 000007
【図５】
2020017010.tif 000008
【図６】
2020017010.tif 000009
【図７】
2020017010.tif 000010
【図８】
2020017010.tif 000011
【図９】
2020017010.tif 000012
【図１０】
2020017010.tif 000013
【図１１】
2020017010.tif 000014
【図１２】
2020017010.tif 000015
【図１３】
2020017010.tif 000016
【図１４】
2020017010.tif 000017
【図１５】
2020017010.tif 000018
【図１６】
2020017010.tif 000019
【図１７】
2020017010.tif 000020
【図１８】
2020017010.tif 000021
【図１９】
2020017010.tif 000022
【図２０】
2020017010.tif 000023
【図２１】
2020017010.tif 000024
【図２２】
2020017010.tif 000025
【図２３】
2020017010.tif 000026
【図２４】
2020017010.tif 000027
【図２５】
2020017010.tif 000028
【図２６】
2020017010.tif 000029
【図２７】
2020017010.tif 000030
【図２８】
2020017010.tif 000031
【図２９】
2020017010.tif 000032
【図３０】
2020017010.tif 000033
【図３１】
2020017010.tif 000034
【図３２】
2020017010.tif 000035
【図３３】
2020017010.tif 000036
【図３４】
2020017010.tif 000037
【図３５】
2020017010.tif 000038