(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023180468
(43)【公開日】2023-12-21
(54)【発明の名称】画像処理装置及び方法、撮影システム、プログラム、記憶媒体
(51)【国際特許分類】
G06T 7/20 20170101AFI20231214BHJP
【FI】
G06T7/20 300Z
【審査請求】未請求
【請求項の数】16
【出願形態】OL
(21)【出願番号】P 2022093818
(22)【出願日】2022-06-09
(71)【出願人】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】110003281
【氏名又は名称】弁理士法人大塚国際特許事務所
(72)【発明者】
【氏名】刀川 賢太
【テーマコード(参考)】
5L096
【Fターム(参考)】
5L096BA08
5L096CA04
5L096EA35
5L096FA64
5L096FA66
5L096FA69
5L096HA11
5L096KA04
(57)【要約】
【課題】広い画角の画像から、その画角に対して相対的に小さいオブジェクトを検出する場合の誤検出を低減する。
【解決手段】撮影映像を取得する第1の取得手段と、撮影映像から第1の被写体であると推定される少なくとも1つの第2の被写体を検出し、それぞれの第2の被写体の位置と、それぞれの第2の被写体が第1の被写体である信頼度とを取得する第2の取得手段と、過去の第1の被写体の位置と現在のそれぞれの第2の被写体の位置との距離を取得する第3の取得手段と、撮影映像の画角内に映る実世界の広さを取得する第4の取得手段と、距離と信頼度と実世界の広さとに基づいて、それぞれの第2の被写体から最も第1の被写体であると推定される第3の被写体を、第1の被写体として決定する決定手段とを備える。
【選択図】
図9
【特許請求の範囲】
【請求項1】
撮影映像を取得する第1の取得手段と、
前記撮影映像から第1の被写体であると推定される少なくとも1つの第2の被写体を検出し、それぞれの前記第2の被写体の位置と、それぞれの前記第2の被写体が前記第1の被写体である信頼度とを取得する第2の取得手段と、
過去の前記第1の被写体の位置と現在のそれぞれの前記第2の被写体の位置との距離を取得する第3の取得手段と、
前記撮影映像の画角内に映る実世界の広さを取得する第4の取得手段と、
前記距離と前記信頼度と前記実世界の広さとに基づいて、それぞれの前記第2の被写体から最も前記第1の被写体であると推定される第3の被写体を、前記第1の被写体として決定する決定手段と、
を備えることを特徴とする画像処理装置。
【請求項2】
前記決定手段により決定された前記第3の被写体の位置に基づいて、前記撮影映像から前記第3の被写体が映る領域を切り出す切り出し手段をさらに備えることを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記切り出し手段により前記撮影映像から切り出される映像は、配信映像であることを特徴とする請求項2に記載の画像処理装置。
【請求項4】
前記第2の取得手段は、前記第1の被写体とは異なる第4の被写体であると推定される第5の被写体を検出し、前記第5の被写体の位置と、前記第5の被写体が前記第4の被写体である信頼度とをさらに取得することを特徴とする請求項1に記載の画像処理装置。
【請求項5】
前記撮影映像は競技の映像であり、前記第1の被写体はボールであり、前記第4の被写体はプレイヤーであることを特徴とする請求項4に記載の画像処理装置。
【請求項6】
前記距離に基づいて前記第2の被写体が前記第1の被写体である信頼度を補正するための補正関数を取得する第5の取得手段をさらに備え、前記決定手段は、前記補正関数を用いて補正した補正信頼度に基づいて、前記第3の被写体を決定することを特徴とする請求項1に記載の画像処理装置。
【請求項7】
前記補正関数は、前記距離が大きいほど前記補正信頼度が低くなるように、前記信頼度を補正することを特徴とする請求項6に記載の画像処理装置。
【請求項8】
前記補正関数は、前記画角に写る実世界の広さが大きいほど、前記距離の大きさに応じて前記補正信頼度を低く補正する程度を大きくすることを特徴とする請求項7に記載の画像処理装置。
【請求項9】
前記撮影映像は競技の映像であり、該競技の特性を取得する第6の取得手段をさらに備え、前記第4の取得手段は、前記競技の特性に基づいて、前記実世界の広さを取得することを特徴とする請求項1に記載の画像処理装置。
【請求項10】
前記第6の取得手段は、ユーザの選択に基づいて前記競技の特性を取得することを特徴とする請求項9に記載の画像処理装置。
【請求項11】
前記決定手段は、前記第1の被写体であると推定される前記第2の被写体が検出されなかった場合に、過去の前記第1の被写体の位置に最も近い前記第4の被写体の位置を前記第1の被写体の位置として決定することを特徴とする請求項4に記載の画像処理装置。
【請求項12】
前記撮影映像を撮影する撮像装置と、
請求項1乃至11のいずれか1項に記載の画像処理装置とを備えることを特徴とする撮影システム。
【請求項13】
前記撮影映像を撮影する第1の撮像装置と、
パン、チルト、ズームが可能な第2の撮像装置と、
請求項1乃至11のいずれか1項に記載の画像処理装置とを備えることを特徴とする撮影システム。
【請求項14】
撮影映像を取得する第1の取得工程と、
前記撮影映像から第1の被写体であると推定される少なくとも1つの第2の被写体を検出し、それぞれの前記第2の被写体の位置と、それぞれの前記第2の被写体が前記第1の被写体である信頼度とを取得する第2の取得工程と、
過去の前記第1の被写体の位置と現在のそれぞれの前記第2の被写体の位置との距離を取得する第3の取得工程と、
前記撮影映像の画角内に映る実世界の広さを取得する第4の取得工程と、
前記距離と前記信頼度と前記実世界の広さとに基づいて、それぞれの前記第2の被写体から最も前記第1の被写体であると推定される第3の被写体を、前記第1の被写体として決定する決定工程と、
を有することを特徴とする画像処理方法。
【請求項15】
コンピュータを、請求項1乃至11のいずれか1項に記載の画像処理装置の各手段として機能させるためのプログラム。
【請求項16】
コンピュータを、請求項1乃至11のいずれか1項に記載の画像処理装置の各手段として機能させるためのプログラムを記憶したコンピュータが読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像データから特定の物体の位置を検出し、それに基づいて映像を生成するための画像処理装置に関するものである。
【背景技術】
【0002】
近年、スポーツの試合の放送用動画を自動生成する方法の一つとして、試合が行われるコート全体を含む画角で撮影データを取得し、その一部が写る画角で切り出す方法がある。具体的には、バスケットボールの試合動画内で、プレイヤーとボールの位置を取得し、それらが含まれるように切り出す画角を決定する。特に、視聴者がバスケットボールの試合展開を把握できるようなコート半面程の広さの画角で切り出す際、画角内に必ずボールを含める必要がある。
【0003】
プレイヤーやボールを認識する際、処理負荷を軽減して処理時間を短縮し、リアルタイムの画像処理を実現するために、撮影データに縮小処理を施してから認識処理を行うことが一般的である。しかし、コート全体を含む画角の撮影データに縮小処理を施した場合、そこに写るボールの画像は解像度が低くなり、ボールの模様や形状などの空間的な特徴が消えてしまう。その結果、例えば撮影データ中のボールを検出しようとした際、ボール以外の小さく丸く映る物体像がボールとして誤検出されてしまい、その後決定される切り出し画角が本来必要なボールの画像を含まない画角となってしまう場合がある。
【0004】
そこで、この誤検出を抑制する方法として、特許文献1には、ある決まったオブジェクトの過去の検出結果と現在の一つ以上の検出結果の距離を参照し、その二つが同一であるかの判定を行う装置が開示されている。
【0005】
特許文献1では、ある決まったオブジェクトの過去の検出結果と現在の一つ以上の検出結果の空間的な距離を算出して、予め決められた同一性確率算出関数へ入力し、各オブジェクトが同一オブジェクトであるかを判定している。
【先行技術文献】
【特許文献】
【0006】
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、特許文献1に開示された従来技術では、過去のボール検出位置と、現在の真のボールの検出位置に誤検出が発生した場合、誤検出結果を現在のバスケットボールとして選択してしまう可能性がある。コート全体を含む撮影データから適切な範囲を切りだすためには、バスケットボールの情報が必要となる。そのバスケットボールの情報が、欠けてしまう課題が従来技術にはあった。
【0008】
本発明は上述した課題に鑑みてなされたものであり、その目的は、広い画角の画像から、その画角に対して相対的に小さいオブジェクトを検出する場合の誤検出を低減することである。
【課題を解決するための手段】
【0009】
本発明に係わる画像処理装置は、撮影映像を取得する第1の取得手段と、前記撮影映像から第1の被写体であると推定される少なくとも1つの第2の被写体を検出し、それぞれの前記第2の被写体の位置と、それぞれの前記第2の被写体が前記第1の被写体である信頼度とを取得する第2の取得手段と、過去の前記第1の被写体の位置と現在のそれぞれの前記第2の被写体の位置との距離を取得する第3の取得手段と、前記撮影映像の画角内に映る実世界の広さを取得する第4の取得手段と、前記距離と前記信頼度と前記実世界の広さとに基づいて、それぞれの前記第2の被写体から最も前記第1の被写体であると推定される第3の被写体を、前記第1の被写体として決定する決定手段と、を備えることを特徴とする。
【発明の効果】
【0010】
本発明によれば、広い画角の画像から、その画角に対して相対的に小さいオブジェクトを検出する場合の誤検出を低減することが可能となる。
【図面の簡単な説明】
【0011】
【
図1】本発明の一実施形態の画像処理システムの構成を示す図。
【
図2】画像処理装置及び学習サーバのハードウェア構成を説明するための図。
【
図3】
図1のシステムのソフトウェア構成を説明するための図。
【
図5】クライアント端末と画像処理装置、学習サーバ、データ収集サーバ間のデータ送受信に関する動作を説明するための図。
【
図6】クライアント端末から画像処理装置への画像データのアップロード処理を示すフローチャート。
【
図11】物体検出部が出力するオブジェクト信頼度を補正する補正関数を生成する処理のフローチャート。
【
図12】俯瞰画像信号中のユーザ指定領域と俯瞰画像撮像範囲を説明する図。
【
図13】物体検出部が出力するオブジェクト信頼度を補正する補正関数を説明する図。
【
図14】物体検出部が出力するオブジェクト座標を説明する図。
【
図15】検出結果補正部が補正オブジェクト座標を生成する処理のフローチャート。
【
図16】物体検出部が出力する補正オブジェクト座標を説明する図。
【発明を実施するための形態】
【0012】
以下、添付図面を参照して実施形態を詳しく説明する。なお、以下の実施形態は特許請求の範囲に係る発明を限定するものではない。実施形態には複数の特徴が記載されているが、これらの複数の特徴の全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。さらに、添付図面においては、同一若しくは同様の構成に同一の参照番号を付し、重複した説明は省略する。
【0013】
本発明の一実施形態では、コート全体が写る画角での撮影映像から、スポーツの試合の注目領域を自動で切り出すことで配信映像を生成する場合を例に挙げて説明する。
【0014】
図1は、本発明の一実施形態に係わる画像処理装置を含む画像処理システム(撮影システム)1の構成を示す図である。
【0015】
図1において、画像処理システム1は、ローカルネットワーク100、ネットワーク101、俯瞰カメラ102、画像処理装置103、クライアント端末104、学習サーバ105、およびデータ収集サーバ106を備える。
【0016】
ローカルネットワーク100は、画像処理装置103やクライアント端末104が接続されるネットワークであり、画像処理装置103とクライアント端末104はローカルネットワーク100を介して相互に通信することができる。
【0017】
ネットワーク101は、ローカルネットワーク100が接続されるネットワークであり、ローカルネットワーク100に接続される機器は、ネットワーク101を介して相互に通信することができる。また、ローカルネットワーク100に接続される機器は、ネットワーク101に接続されている学習サーバ105やデータ収集サーバ106とも相互に通信が可能である。俯瞰カメラ102は、決められた範囲の撮影映像を取得し、画像処理装置103へ出力する。
【0018】
画像処理装置103は、俯瞰カメラ102から入力された撮影映像から、映像中に写る所定のオブジェクト(被写体)の検出を行う。ここで、検出とは、所定のオブジェクトの座標とオブジェクトの種類、その結果の信頼度を特定する処理のことを指す。本実施形態では、バスケットボールの試合におけるバスケットボールとプレイヤーを所定のオブジェクトとして検出するものとする。
【0019】
クライアント端末104は、機器間のデータの送受信を指示する。学習サーバ105は、機械学習のデータを生成する。データ収集サーバ106は、学習サーバ105で学習するための教師データを蓄積する。
【0020】
図2は、画像処理システム1の一部を構成する、画像処理装置103、および学習サーバ105のハードウェア構成を説明するための図である。
図2においては、画像処理システム1の一部のうち、画像処理装置103、学習サーバ105、およびネットワーク101のみを図示し、それ以外の構成については記載を省略している。
【0021】
図2に示すように、画像処理装置103は、CPU202、ROM203、RAM204、HDD205、NIC206、入力部207、表示部208、および画像処理エンジン209を備え、これらはシステムバス201を介して互いに接続されている。
【0022】
CPU202は、画像処理装置103全体の制御を司る。CPU202は後述する各ユニットを制御し、入力部207からの入力や、NIC206から受信したデータに応じた動作を行う。
【0023】
ROM203は、不揮発性のメモリであり、画像処理装置103を制御するプログラムを保持する。画像処理装置103に電源が投入されると、CPU202はROM203からプログラムを読み込み、画像処理装置103の制御を開始する。ROM203は、例えばフラッシュメモリなどからなる。
【0024】
RAM204は、書き換え可能なメモリであり、画像処理装置103を制御するプログラムの作業領域として利用される。RAM204には、例えば半導体素子を利用した揮発性メモリ(DRAM)が用いられる。
【0025】
HDD205(保存部)は、画像データや、画像データを検索するためのデータベースを格納する。例えば、磁気記憶方式を利用したハードディスクドライブ(HDD)や、半導体素子を利用したソリッドステートドライブ(SSD)などがHDD205として利用される。
【0026】
NIC206は、ネットワークインターフェースコントローラ(NIC)であり、画像処理装置103がネットワーク101を介して他の装置と通信を行うために利用される。例えば、ETHERNET(登録商標)あるいはIEEE802.3シリーズで規格化された通信方式に基づいたコントローラがNIC206として用いられる。
【0027】
入力部207は、画像処理装置103のユーザ(オペレータ)が画像処理装置103を操作する際に利用される。例えば、キーボードが入力部207として用いられる。なお、本実施形態の画像処理装置103はネットワーク101上のサーバとして動作することを想定しているので、入力部207は画像処理装置103の起動時やメンテナンス時などの場合のみ利用される。
【0028】
表示部208は、画像処理装置103の動作状態を表示するために利用される。例えば、LCD(液晶ディスプレイ)が表示部208として用いられる。なお、本実施形態の画像処理装置103はネットワーク101上のサーバとして動作することを想定しているので、表示部208は省略される場合もある。
【0029】
画像処理エンジン209は、RAM204から読み出した画像データに対して、縮小処理を施し、その結果を再度、RAM204に格納する。本実施形態では、種々の画像処理はCPU202を動作させて実施するものとするが、これに限定されるものではない。例えば、画像処理装置103にGPUを設け、そのGPU上で種々の演算処理を行ってもよい。
【0030】
図2において、学習サーバ105はCPU212、ROM213、RAM214、HDD215、NIC216、入力部217、表示部218、およびGPU219を備え、これらはシステムバス211を介して互いに接続されている。
【0031】
CPU212は、学習サーバ105全体の制御を司る。CPU212は後述する各ユニットを制御し、入力部217からの入力や、NIC216から受信したデータに応じた動作を行う。
【0032】
ROM213は、不揮発性のメモリであり、学習サーバ105を制御するプログラムを保持する。学習サーバ105に電源が投入されると、CPU212はROM213からプログラムを読み込み、学習サーバ105の制御を開始する。ROM213は、例えばフラッシュメモリなどからなる。
【0033】
RAM214は、書き換え可能なメモリであり、学習サーバ105を制御するプログラムの作業領域として利用される。RAM214には、例えば半導体素子を利用した揮発性メモリ(DRAM)が用いられる。
【0034】
HDD215は、画像認識機能により画像データ中の所定のオブジェクトの位置とオブジェクトの種類を推定する学習ネットワーク(辞書データ)403(
図4参照)を格納する。例えば、磁気記憶方式を利用したハードディスクドライブ(HDD)や、半導体素子を利用したソリッドステートドライブ(SSD)などがHDD205として利用される。
【0035】
NIC216は、ネットワークインターフェースコントローラであり、学習サーバ105がネットワーク101を介して他の装置との通信を行うために利用される。例えば、Ethernet(登録商標)あるいはIEEE802.3シリーズで規格化された通信方式に基づいたコントローラがNIC216として用いられる。
【0036】
入力部217は、学習サーバ105のユーザ(オペレータ)が学習サーバ105を操作する際に利用される。例えば、キーボードが入力部217として用いられる。なお、学習サーバ105はネットワーク101上のサーバとして動作することを想定しているので、入力部217は学習サーバ105の起動時や、メンテナンス時などの場合のみ利用される。
【0037】
表示部218は、学習サーバ105の動作状態を表示するために利用される。例えば、LCD(液晶ディスプレイ)が表示部218として用いられる。なお、本実施形態の学習サーバ105はネットワーク101上のサーバとして動作することを想定しているので、表示部218は省略される場合もある。
【0038】
GPU219は、データの並列演算処理を行うために用いられるユニットである。ディープラーニングのような学習ネットワークを用いて複数回に渡り学習を行う場合や、推定において多数の積和演算を行う場合にGPU219で処理を行うことが有効である。GPU219には一般的には、Graphics Processing Unitと呼ばれるLSIが用いられるが、FPGAと呼ばれる再構成可能な論理回路で同等の機能を実現してもよい。
【0039】
図3は、画像処理システム1のソフトウェア構成を示す図である。このソフトウェア構成は、
図2を用いて説明したハードウェア資源、およびプログラムを利用することで実現される。なお、本ソフトウェア構成では、オペレーティングシステムなどの汎用的なソフトウェア構成は省略している。
【0040】
俯瞰カメラ102のソフトウェアは、データ送信部301とUI表示部302とを有する。データ送信部301は、俯瞰カメラ102が保持する画像データのうち、後述するUI表示部302により選択された画像データを画像処理装置103のデータ受信部321へ送信するためのソフトウェア機能を有する。また、画像処理装置103からの指示に基づき、撮影データをデータ受信部321へ送信するためのソフトウェア機能を有する。
【0041】
UI表示部302は、俯瞰カメラ102が保持する画像データのうち任意の画像データをユーザが選択可能に表示するためのユーザインターフェースを提供するためのソフトウェア機能を有する。
【0042】
画像処理装置103のソフトウェアは、データ受信部321、画像処理部322、推定部323、学習データ記憶部324を有する。
【0043】
データ受信部321は、俯瞰カメラ102やクライアント端末104とのデータの送受信を行うためのソフトウェア機能を有する。例えば、俯瞰カメラ102からNIC206を介して画像データを受信し、画像処理部322へ出力する。
【0044】
画像処理部322は、入力された画像データに対し、縮小処理を施し、推定部323へ処理後の撮影データを出力する。
【0045】
推定部323は、学習データ記憶部324によって、HDD205に保持されている学習ネットワーク403(
図4参照)を用いて、画像処理部322から入力された撮影データから、バスケットボールやプレイヤーの座標、種類、その結果の信頼度を算出するためのソフトウェア機能を有する。
【0046】
クライアント端末104のソフトウェアは、ウェブブラウザ311を有する。ウェブブラウザ311は、画像処理装置103のデータ受信部321から取得したデータをクライアント端末104のユーザに見えるように成形し、表示するためのソフトウェア機能を有する。また、ウェブブラウザ311は、ユーザの操作(画像データの検索、表示など)を画像処理装置103のデータ受信部321に伝えたりするためのソフトウェア機能も有する。
【0047】
学習サーバ105のソフトウェアは、データ記憶部342、学習用データ生成部343、学習部344を有する。
【0048】
データ記憶部342は、後述するデータ収集サーバ106のデータ収集/提供部332から受信した画像データや後述する学習用データ生成部343が生成した学習用画像データの蓄積と、蓄積した画像データの検索/管理を行うためのソフトウェア機能を有する。画像データの蓄積は、HDD215内に格納することによって行われる。
【0049】
学習用データ生成部343は、データ記憶部342に格納されている画像データに縮小処理を適用した学習用画像データを生成する。生成された学習用画像データは、データ記憶部342によってHDD215に格納される。
【0050】
学習部344は、学習用画像データに基づいて、学習ネットワーク403(
図4参照)の学習を行う。生成した学習ネットワーク403は、画像処理装置103の学習データ記憶部324に送信され、RAM204に記録される。
【0051】
図4は、学習ネットワーク403を用いた入出力の構造を示す概念図である。なお、学習ネットワーク403は、本実施形態だけでなく、後述の実施形態においても同一の構造を有する。
【0052】
学習サーバ105の学習は、
図4に示すようにNeural Networkで構成される学習ネットワーク403に対して、教師データの俯瞰画像を入力、プレイヤーとバスケットボールの座標を出力として、実施される。なお、
図4では、学習ネットワーク403が単一の学習ネットワークからなる場合について説明したが、画像データ401から推定したいメタデータに応じて、複数の学習ネットワークを用意してもよい。
【0053】
図5は、
図4の学習ネットワーク403の学習を行い、本実施形態で利用するまでの画像処理システム1全体の動作を説明するための図である。全体動作は、以下のI~VIIの順番で行われる。
(I)画像処理システム1を利用するユーザは、クライアント端末104を操作して学習サーバ105で学習するための教師データの送信指示をデータ記憶部342に対して行う。
(II)データ記憶部342は、クライアント端末104からの教師データの送信指示に基づき、データ収集サーバ106のデータ収集/提供部332に対して、学習するための教師データを要求する。
(III)データ収集サーバ106は、学習サーバ105からの教師データの送信指示により、教師データをデータ記憶部331から抽出する。
(IV)データ収集サーバ106は、データ収集/提供部332から学習サーバ105のデータ記憶部342へ教師データを送信する。
(V)学習サーバ105は、データ記憶部342が受信し、保持している教師データで予知学習を行い、学習データを生成する。
(VI)学習サーバ105は、生成した学習データを画像処理装置103へ送信し、学習データ記憶部324は、その学習データを保持する。
(VII)以降、画像処理装置103は記憶した学習データに基づいて推論処理を行う。
【0054】
続いて
図6を用いて、具体的な学習ネットワーク403の学習、および推論の動作について説明する。
【0055】
図6(a)は、データ収集サーバ106の処理動作を示すフローチャートである。
【0056】
まず、ステップS621では、データ収集サーバ106のCPUにより実現されるデータ収集/提供部332は、学習サーバ105から教師データの要求とその種類を受信したか否かを判断する。データ収集サーバ106のCPUは、教師データの要求とその種類を受信した場合は処理をステップS622に進め、そうでなければ、そのまま待機する。
【0057】
ステップS622では、データ収集サーバ106のCPUは、要求された教師データの種類を判断する。本実施形態では、教師データの種類はバスケットコート全体が映る俯瞰画像とその画像の中でのプレイヤーの座標、およびバスケットボールの座標の値である。
【0058】
ステップS623では、データ収集サーバ106のCPUにより実現されるデータ収集/提供部332は、教師データの種類に合わせてデータ記憶部331から教師データを読み出し、学習サーバ105へ送信する。
【0059】
学習サーバ105は、
図4に示すようにNeural networkで構成される学習ネットワーク403の入力として教師データの俯瞰画像を用い、出力としてプレイヤーとバスケットボールの座標を用いて、学習データの生成を実施する。ここで、GPU219はデータをより多く並列処理することで効率的な演算を行うことができる。そのため、学習サーバ105は、ディープラーニングのような学習モデルを用いて複数回に渡り学習を行う場合には、GPU219で処理を行うことが有効である。
【0060】
本実施形態では、学習サーバ105が行う学習処理は、CPU212に加えてGPU219を用いて行われる。学習モデルを含む学習プログラムを実行する場合に、学習サーバ105では、CPU212とGPU219が協働して演算を行うことで学習を行う。なお、学習処理はCPU212またはGPU219のみで演算することにより行われてもよい。
【0061】
図6(b)は、学習サーバ105の処理動作を示すフローチャートである。
【0062】
まず、ステップS630では、学習サーバ105のCPU212は、データ収集サーバ106に教師データを要求する。
【0063】
ステップS631では、学習サーバ105のCPU212は、データ収集サーバ106から教師データを受信したか否かを判断する。教師データを受信した場合は、受信したデータをCPU212により実現されるデータ記憶部342がRAM214に格納する。その後、CPU212は、ステップS632に処理を進める。また、教師データを受信していなければ、そのまま待機する。
【0064】
ステップS632では、CPU212とGPU219の少なくとも一方で実現される学習部344は、受信した教師データと、教師データに対応する学習設定値を学習モデルに入力する。ここで、学習モデルは前述した学習ネットワーク403である。また、学習設定値は、本実施形態では学習ネットワーク403の入力信号に施すデータオーグメンテーションのパラメータ値とする。
【0065】
ステップS633では、CPU212とGPU219の少なくとも一方が、学習ネットワーク403を用いて学習を実施する。
【0066】
ステップS634では、CPU212は、全ての教師データを学習モデルに入力し終わったか否かを判定する。CPU212は、教師データを全て入力し終わった場合には、学習を終了し、そうでなければ、ステップS632に処理を戻し、ステップS632~S634を繰り返す。
【0067】
なお、ステップS633での学習は、誤差検出部と更新部とを新たに設け、それらを用いて実行してもよい。誤差検出部は、入力層に入力される入力データに応じてニューラルネットワークの出力層から出力される出力データと、教師データとの誤差を検出する。誤差検出部は、損失関数を用いて、ニューラルネットワークからの出力データと教師データとの誤差を計算するようにしてもよい。更新部は、誤差検出部で得られた誤差に基づいて、その誤差が小さくなるように、ニューラルネットワークのノード間の結合重み付け係数等を更新する。この更新部は、例えば、誤差逆伝播法を用いて、結合重み付け係数等を更新する。誤差逆伝播法は、上記の誤差が小さくなるように、各ニューラルネットワークのノード間の結合重み付け係数等を調整する手法である。
【0068】
画像処理装置103は、HDD205とROM203に格納された学習サーバ105により生成された学習データに基づいて機械学習の推論処理を行う。
【0069】
具体的には、CPU202に画像処理部322で処理された映像縮小信号が入力され、学習データとプログラムを用いて、CPU202が推論処理を行う。推論処理は、学習モデルと同じくNeural networkを用いて行われる。
【0070】
図6(c)は、画像処理装置103の処理動作を示すフローチャートである。
【0071】
まず、ステップS601では、画像処理装置103のCPU202により実現される学習データ記憶部324は、学習データを学習サーバ105から受信したか否かを判断する。CPU202は、学習データを受信した場合は、RAM204に格納する。
【0072】
以降、CPU202は、推論処理を行う際は、RAM204に学習データが格納されているか否かを参照し、格納されている場合にはステップS602に処理を進める。なお、ステップS601で学習データを受信していない場合は、そのまま待機する。
【0073】
ステップS602では、画像処理装置103のCPU202により実現される推定部323は、映像縮小信号911(
図9参照)が入力されたか否かを判定する。CPU202は、映像縮小信号911の入力があった場合はステップS603へ処理を進め、そうでなければ、そのまま待機する。
【0074】
ステップS603では、CPU202は、ユーザが推論処理の開始を指示したか否かを判定する。CPU202は、推論処理の開始指示があった場合はステップS604に処理を進め、そうでなければそのまま待機する。
【0075】
ステップS604では、CPU202により実現される推定部323は、RAM204に格納された学習データに、動き強調処理が施された動き強調画像を入力することで、推論処理を行う。
【0076】
ステップS605では、CPU202により実現される推定部323は、プレイヤーとボールの座標位置を出力として取得し、HDD205へ格納する。
【0077】
図7は、画像処理システム1の実際の使用方法を説明するための概略図である。
【0078】
俯瞰カメラ102は、プレイヤー720とボール730が存在するバスケットコート710が撮影画角708に全て含まれる光学特性を持つものとする。また、撮影した俯瞰画像信号709の解像度は、水平3840画素、垂直2160画素とする。
【0079】
撮影された画像は、俯瞰カメラ102から俯瞰画像信号709として画像処理装置103へ出力される。俯瞰画像信号709は、俯瞰カメラ102の出力端子HDMI(登録商標)(High-Definition Multimedia Interface)や、SDI(Serial Digital Interface)から出力される。また、俯瞰画像信号709は、俯瞰カメラ102内の記録メディアに一旦記録された画像でもよい。
【0080】
画像処理装置103は、俯瞰カメラ102から受信した俯瞰画像信号709に対し物体検出処理を適用し、俯瞰画像信号709内におけるプレイヤー、およびバスケットボールの座標と種類、それらの信頼度を取得する。そして、画像処理装置103は、取得した座標値に基づいて、後述の撮影画像信号981を生成する。
【0081】
図8は、俯瞰カメラ102が取得する俯瞰画像信号709の模式図を示している。
【0082】
前述した通り、俯瞰画像信号709には、撮影画角内にバスケットコート710が欠けることなく写り、また、バスケットコート710におけるプレイヤー720、およびボール730の動きが分かる映像となっている。
【0083】
図9は、画像処理部322と推定部323の具体的な処理を説明する図である。なお、
図9に示される各ブロックは、画像処理装置103のCPU202がプログラムを実行することにより実現される。また、推定部323は、
図9では俯瞰画像信号709におけるプレイヤー、およびボールを検出する物体検出部950として記載されている。
【0084】
まず、俯瞰カメラ102からの俯瞰画像信号709は画像縮小部910に入力され、画像縮小部910は映像縮小信号911を物体検出部950へ出力する。俯瞰画像信号709の解像度は、水平3840画素、垂直2160画素であるが、物体検出部950にその解像度を入力すると、データ量が多く、物体検出部950の処理負荷が大きくなってしまう。そこで、画像縮小部910は、俯瞰画像信号709の解像度、水平3840画素、垂直2160画素を、水平400画素、垂直400画素の画像に縮小変換し、映像縮小信号911として出力する。
【0085】
なお、縮小後の画像の解像度は上記に限定されるものではなく、物体検出部950の処理能力によって、決定することが望ましい。
【0086】
競技特性決定部920は、ユーザがクライアント端末104を介して入力した競技種別919に基づいて実コート幅921を生成し、補正関数決定部940へ出力する。
【0087】
撮影範囲取得部930は、クライアント端末104を介してユーザが俯瞰画像信号709上で指定したユーザ指定領域929に基づいて、俯瞰画像信号709上に映る撮像範囲情報931を算出し、補正関数決定部940へ出力する。
【0088】
補正関数決定部940は、実コート幅921、および撮像範囲情報931に基づいて、物体検出部950が出力するオブジェクト座標951、およびオブジェクト信頼度952からなる検出結果のうち、後述するボールに関するオブジェクト信頼度を補正するための関数を生成する。補正関数決定部940は、補正関数情報941を検出結果補正部960へ出力する。
【0089】
物体検出部950は、映像縮小信号911に対して推論処理を行い、プレイヤー720、およびボール730の座標と種類、その結果の信頼度を算出する。推論処理による検出結果の座標は、
図10に示すように矩形座標値となる。プレイヤーの座標値は、
図10に示すように複数検出されることもあり、その場合は物体検出部950から複数のプレイヤー座標1052がまとめて検出結果補正部960へ出力される。また、プレイヤーの信頼度は、各プレイヤー座標に一対一に対応する形で数値が取得され、物体検出部950からプレイヤー信頼度1054として、検出結果補正部960へ出力される。
【0090】
図10に示すボールの座標値は、物体検出部950からボール座標1053として出力される。プレイヤー座標1052と同様、ボールの信頼度についてもプレイヤー信頼度1054と同様、ボール検出結果と一対一に対応する形で数値が取得され、物体検出部950からボール信頼度1055として検出結果補正部960へ出力される。ここで、プレイヤーとボールの座標値は、矩形座標値の左上、左下、右上、右下の値である。また、プレイヤー720、およびボール730の検出結果の信頼度は0から1の間で表される値であり、1に近い程検出結果を信頼することができる。
【0091】
本実施形態では、物体検出部950は、プレイヤー座標1052、およびボール座標1053をまとめてオブジェクト座標951として出力する。また、プレイヤー信頼度1054、およびボール信頼度1055をまとめてオブジェクト信頼度952として出力する。
【0092】
検出結果補正部960は、オブジェクト座標951、およびオブジェクト信頼度952における、特にボール座標1053とボール信頼度1055の補正を行う。物体検出部950は
図8に示すような俯瞰画像信号709から比較的小さく映るバスケットボールを検出する際、小さく丸い特徴のオブジェクトをボール座標1053として複数取得してしまう可能性がある。そこで、検出結果補正部960は、RAM204から前回の補正オブジェクト座標961を参照し、オブジェクト座標951、およびオブジェクト信頼度952を補正する。これにより、現在のフレームにおける補正オブジェクト座標961を生成し、撮影画角決定部970に送信する。
【0093】
撮影画角決定部970は、補正オブジェクト座標961に含まれるプレイヤー座標1052、およびボール座標1053に基づいて撮影画角を決定する撮影パラメータを算出する。撮影画角決定部970は、プレイヤー座標1052、およびボール座標1053の中で、x座標が最小となるものと最大となるものの差分とその重心を計算し、それらを撮影パラメータ971としてトリミング部980へ送信する。上記の差分値は画角の横幅、上記の重心は画角の中心とそれぞれみなすことによって、それに基づいて決められた撮影画像信号981は、プレイヤー720、およびボール730を全て含む撮影画角を実現することが可能となる。
【0094】
トリミング部980は、撮影パラメータ971に含まれる画角の横幅、および画角の中心に基づいて、俯瞰画像信号709から切り出し映像を生成し、撮影画像信号981として出力する。
【0095】
ここで、撮影画角決定部970の具体的な処理内容について、
図11を用いて説明する。
図11は、ユーザがクライアント端末104を介して入力したユーザ指定領域929、および競技種別919に基づいて、検出結果補正部960が参照する補正関数情報941を生成するまでの処理動作を示すフローチャートである。
【0096】
ステップS1101では、画像処理装置103のCPU202により実現される競技特性決定部920は、ユーザがクライアント端末104を介して入力した競技種別に基づいて、実コート幅921を取得する。本実施形態では、競技特性決定部920は複数のスポーツ競技名とコート長辺の幅を辞書の形で対応付けてRAM204に記憶しているものとする。そして、ユーザが指定した競技種別919に対応する実コート幅921を取得するものとする。また、本実施形態では、ユーザはクライアント端末104を介して競技種別としてバスケットボールを選択したものとし、それにより競技特性決定部920は28mを実コート幅921として、補正関数決定部940へ出力するものとする。競技特性決定部920が実コート幅921を補正関数決定部940へ出力した後、CPU202は、ステップS1102へ処理を進める。
【0097】
ステップS1102では、CPU202により実現される撮影範囲取得部930は、ユーザがクライアント端末104を介して俯瞰画像信号709上で指定したユーザ指定領域929に基づいて、撮像範囲情報931を算出する。撮像範囲情報931とは、俯瞰画像信号709が競技コートに対してどれだけ広い画角であるかを表す値であり、その算出方法について、
図12を用いて具体的に説明する。
【0098】
図12は、俯瞰カメラ102が撮影した俯瞰画像信号709とユーザ指定領域929の位置関係を示した図である。本実施形態では、ユーザ指定領域929は、
図12に示す通り、バスケットコート710、プレイヤー720、およびボール730が含まれるような形で指定されるものとする。
【0099】
まず、撮影範囲取得部930は、ユーザ指定領域929の水平方向の左端と右端の画素位置を取得する。
図12では、ユーザ指定領域929の左端を33pixel、右端を3800pixelであるとし、撮影範囲取得部930はこれら二つの値を取得する。そして、撮影範囲取得部930は、取得した値の差分を計算することにより、俯瞰画像信号709内に映る競技コート領域の水平解像度を算出する。
図12に示す例では、3767pixelが俯瞰画像信号709における競技コートの水平解像度となる。撮影範囲取得部930は、俯瞰画像信号709の水平解像度の値を競技コート領域の水平解像度で除することで撮像範囲情報931を算出する。本実施形態では、3840/3767=1.0194(小数第5桁で四捨五入)を撮像範囲情報931として撮影範囲取得部930が算出し、補正関数決定部940へ出力する。撮影範囲取得部930が撮像範囲情報931を補正関数決定部940へ出力した後、CPU202は、ステップS1103へ処理を進める。
【0100】
ステップS1103では、CPU202により実現される補正関数決定部940は、実コート幅921、および撮像範囲情報931に基づいて補正関数情報941を生成する。補正関数決定部940はまず、俯瞰画像信号709が水平方向にどれだけの実世界の範囲を映しているかを表す俯瞰画像撮像範囲1211を実コート幅921、および撮像範囲情報931から算出する。俯瞰画像撮像範囲1211は、実コート幅921に撮像範囲情報931を乗ずることで算出することができ、具体的には、28m×1.0194=28.5432mと算出することができる。続いて、補正関数決定部940は、俯瞰画像撮像範囲1211を用いて、
図13に示すような補正関数情報941aを生成する。まず、補正関数決定部940は、以下の式1を用いて、σを算出する。
【0101】
σ=定数A/俯瞰画像撮像範囲1211 (式1)
続いて、補正関数決定部940は、式1によって算出されたσを用いた以下の式2を補正関数として決定し、検出結果補正部960へ出力する。
【0102】
f(dist)=exp(-(dist2)/(2×σ2))2 (式2)
式2において、補正関数に入力されるdistとは、後述するオブジェクトの検出結果同士の画像上での距離を表しており、単位はpixelである。なお、(式1)中に記載のある定数Aとは、実験的に求められる値でよく、ユーザが最終的な撮影画像信号981を確認しながら調整することで値を決定することができる。
【0103】
図13は、補正関数決定部940が生成する補正関数を説明するための図である。補正関数へはオブジェクトの検出結果同士の画像上での距離が入力され、本実施形態では以降の検出結果補正部960の処理でボール座標1053とボール信頼度1055が補正される。そのため、横軸は前回のボール検出座標と現在の各ボール検出座標の距離を表す。また、縦軸は補正関数により出力されるスコア補正ゲインを表している。後述の検出結果補正部960は、前回のボール検出座標と現在の各ボール検出座標の差分に基づいて補正関数を参照し、出力されたスコア補正ゲインをそれぞれのボール信頼度155に乗ずることでボール信頼度155の補正を行う(補正信頼度)。例えば、バスケットボールにおけるボールの動きは連続的であるため、急激に前回のボール検出座標から離れた位置にボールが検出されることは考えにくい。そのため、補正関数の形状は、前回のボール検出位置と現在のボール検出位置の差分が大きい程、信頼度を低下させるためにスコア補正ゲインが小さく算出されるような関数形状である必要がある。ただし、補正関数の式は式1、および式2に示す通りでなくともよく、同様の形状となればよい。
【0104】
本実施形態ではバスケットボールを例とし、補正関数決定部940は補正関数情報941aを生成し、検出結果補正部960へ出力する。
【0105】
なお、補正関数情報941bは、バスケットボールよりも競技コートが広い競技が選択された場合の補正関数を示している。補正関数情報941bは、補正関数情報941aよりも補正の程度が急峻なものとなる。これは、競技コートが広くなった場合、連続的なボール座標1053の変位はより小さくなり、前回のボール検出座標を中心とした、より狭い範囲に現在のボールが検出されるはずだからである。よって、バスケットボールに比べ、前回のボール検出位置から少し離れた位置に検出されたボール検出結果は誤検出である可能性が高いため、スコア補正ゲインを小さくし、前回のボール検出位置から離れた位置のボール誤検出を抑制することが可能となる。
【0106】
図14は、検出結果補正部960へ入力されるオブジェクト座標951、およびオブジェクト信頼度952を示している。なお、説明を分かり易くするため、映像縮小信号911の一部を用いて説明を行うものとし、また、ボール座標1053、およびボール信頼度1055のみ補正を行うものとして以降説明を行う。ボール座標1053を表すそれぞれの枠の上部に記載されている数値がボール信頼度1055である。また、過去のボール座標1456は、前回の検出結果補正部960が出力した補正オブジェクト座標961におけるボール座標1053を表しており、本実施形態ではボール座標1053の重心位置をポイントとして示している。
【0107】
映像縮小信号911は、画角内の競技コート全体が入るように撮影を行った画像であり、そのため物体検出部950は小さく丸いオブジェクトをボールと誤検出してしまう可能性が高い。例えば、
図14に示す通り、正しく検出されたボールとその他の誤検出された選手の頭や手など、複数のボール座標が物体検出部950から検出結果補正部960に出力される可能性がある。そこで、検出結果補正部960は、前回のボール検出位置に基づいて、現在の複数のボール検出結果から最も真のボールらしい検出結果を選択する処理を行う。
【0108】
図15は、過去ボール座標1456に基づいて、検出結果補正部960が現在のフレームにおけるボール座標1053を補正する処理を示すフローチャートである。
【0109】
ステップS1501では、画像処理装置103のCPU202によって実現される検出結果補正部960は、まず過去ボール座標1456をRAM204から取得し、現在のフレームのボール座標1053の内の一つとの距離を算出する。ここで、本実施形態で算出する距離は二つの座標間のユークリッド距離であるものとする。続いて、補正関数決定部940から取得した補正関数情報941に前述の距離を入力することで、スコア補正ゲインを取得する。最後に、対応するボール信頼度1055にスコア補正ゲインを乗算することで、補正ボール信頼度1065を得る。
【0110】
ステップS1502では、検出結果補正部960は、現在のフレームにおいて検出した全てのボールに対してステップS1501の処理が行われたか否かの判定を行う。CPU202は、全てのボールに対してステップS1501の処理が行われていた場合、処理をステップS1503へ進め、そうでなければ、ステップS1501に処理を戻す。
【0111】
ステップS1503では、検出結果補正部960は、補正ボール信頼度1065の中から最大スコアとなる補正ボール信頼度1065とそれに対応するボール座標1053を取得する。
【0112】
ステップS1504では、CPU202は、検出結果補正部960が取得した補正ボール信頼度1065が所定の閾値th1より大きいか否かを判定する。CPU202は、検出結果補正部960が取得した補正ボール信頼度1065が所定の閾値th1より大きい場合、ステップS1505へ処理を進め、所定の閾値th1以下である場合、ステップS1506へ処理を進める。
【0113】
ステップS1505では、検出結果補正部960は、最大スコアとなった補正ボール信頼度1065に対応するボール座標1053を真のボール座標1063として採択する。そして、真のボール座標1063とプレイヤー座標1052とを、補正オブジェクト座標961として撮影画角決定部970へ出力する。検出結果補正部960が補正オブジェクト座標961を撮影画角決定部970へ出力した後、検出結果補正部960による検出結果の補正処理は完了となる。
【0114】
ステップS1506では、検出結果補正部960は、過去ボール座標1456と最も近いプレイヤー座標の距離を算出し、所定の閾値th2との大小関係を比較する。CPU202は、この距離が所定の閾値th2より小さい場合、ステップS1507へ処理を進め、所定の閾値th2以上である場合、ステップS1508へ処理を進める。
【0115】
ステップS1507では、検出結果補正部960は、プレイヤー720がボール730を保持しているために俯瞰画像信号709上で隠れているものとみなす。具体的には、検出結果補正部960は、過去ボール座標1456と最も近いプレイヤー座標を、真のボール検出結果として採択し、真のボール座標1063とプレイヤー座標11052とを、補正オブジェクト座標961として、撮影画角決定部970へ出力する。検出結果補正部960が補正オブジェクト座標961を撮影画角決定部970へ出力した後、検出結果補正部960による検出結果の補正処理は完了となる。
【0116】
なお、本実施形態では、ステップS1506における所定の閾値th2は、物体検出部950が出力するオブジェクト座標951の内、プレイヤー座標1052の水平方向距離と同じものとする。その結果、検出結果補正部960はプレイヤー720の裏にボール730が隠れてしまうか否かの判断をステップS1506で再現することができる。それによって、ステップS1507で決定する真のボール座標1063は、プレイヤー720のドリブルのようなボール保持状態を適切に表現する座標となる。ただし、所定の閾値th2の決め方はこれに限定されるものではなく、例えば物体検出部950のオブジェクト座標951に含まれるプレイヤー座標1052を複数取得し、それらの水平解像度の平均値として決定してもよい。
【0117】
ステップS1508では、検出結果補正部960は、現在フレームで物体検出部950が検出した結果の中に真のボールは存在しなかった、つまりボール無検出として処理を行う。具体的には、オブジェクト座標951のうち、ボール座標1053を取り除いたものを補正オブジェクト座標961として撮影画角決定部970へ出力する。検出結果補正部960が補正オブジェクト座標961を撮影画角決定部970へ出力した後、検出結果補正部960による検出結果の補正処理は完了となる。なお、検出結果補正部960は過去のボール座標1456を真のボール座標1063とし、真のボール座標1063とプレイヤー座標1052とを、補正オブジェクト座標961として撮影画角決定部970へ出力してもよい。
【0118】
図16は、ボールに関する補正オブジェクト座標961を示した図である。説明を分かり易くするため、補正オブジェクト座標961に含まれるプレイヤー座標1052は省略し、真のボール座標1063のみを示している。撮影画角決定部970は、補正オブジェクト座標961に基づいて、俯瞰画像信号709からプレイヤー720、およびボール730の写る画角サイズや画角中心といった撮影パラメータ971を決定することが可能となる。この時、検出結果補正部960が前述のボール検出結果補正処理を行うことで、トリミング部980は、俯瞰画像信号709における競技で使用される真のボール、もしくはボールを保持する選手を含む撮影画像信号981を生成することが可能となる。
【0119】
以上、
図7の構成に関する本発明の実施形態の詳細について説明した。しかし、本発明はこれだけに限定されず、バスケットボールとは違う他のスポーツに適用してもよい。例えば、サッカーに適用した場合、ボールが小さく映ることを考慮し、俯瞰カメラを複数用意して、前述の一連の処理を行った後の検出結果を結合してもよい。この場合、物体検出部950が出力する各俯瞰カメラ毎のオブジェクト座標951、およびオブジェクト信頼度952を結合する必要がある。具体的には、物体検出部950は、コート710全体におけるオブジェクト座標951、およびオブジェクト信頼度952として、検出結果を結合し、検出結果補正部960へ出力する。
【0120】
以上説明したように、本実施形態では、過去のオブジェクトの検出位置と現在の複数のオブジェクトの検出位置の距離に基づいて、検出結果の信頼度を補正し、追尾対象となるオブジェクトを選択する。これによって、誤検出したオブジェクトを検出結果から適切に除去することが可能となる。
【0121】
なお、本実施形態では、トリミング部980が物体検出の結果に基づいて、俯瞰画像信号709からプレイヤー720やボール730が含まれる撮影画角を切り出す例について説明した。しかし、撮影画像信号981を取得する方法はこれに限定されるものではない。例えば、新たにPTZカメラ(パン・チルト・ズームカメラ)を用意するとともに、トリミング部980の代わりに制御値算出部を用意し、プレイヤー720やボール730の検出結果に応じてPTZカメラの制御を行うことで、光学的に撮影画像信号を取得してもよい。この方法の場合、トリミングによる解像度低下を防ぎながら、撮影画像信号981を生成することが可能となる。
【0122】
(その他の実施形態)
なお、上述した各処理部のうち、物体検出部950については、機械学習された学習済みモデルを用いて処理を実行したが、ルックアップテーブル(LUT)等のルールベースの処理を行ってもよい。その場合には、例えば、入力データと出力データとの関係をあらかじめLUTとして作成する。そして、この作成したLUTを画像処理装置103のメモリに格納しておくとよい。物体検出部950の処理を行う場合には、この格納されたLUTを参照して、出力データを取得することができる。つまりLUTは、上述の各処理部と同等の処理をするためのプログラムとして、CPUあるいはGPUなどと協働で動作することにより、上述の各処理部の動作を行う。
【0123】
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワークまたは記憶媒体を介してシステムまたは装置に供給し、そのシステムまたは装置のコンピュータがプログラムを読出し実行する処理でも実現可能である。コンピュータは、1または複数のプロセッサーまたは回路を有し、コンピュータ実行可能命令を読み出し実行するために、分離した複数のコンピュータまたは分離した複数のプロセッサーまたは回路のネットワークを含みうる。
【0124】
プロセッサーまたは回路は、中央演算処理装置(CPU)、マイクロプロセッシングユニット(MPU)、グラフィクスプロセッシングユニット(GPU)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートウェイ(FPGA)を含みうる。また、プロセッサーまたは回路は、デジタルシグナルプロセッサ(DSP)、データフロープロセッサ(DFP)、またはニューラルプロセッシングユニット(NPU)を含みうる。
【0125】
本明細書の開示は、以下の画像処理装置、方法およびプログラムを含む。
【0126】
(項目1)
撮影映像を取得する第1の取得手段と、
前記撮影映像から第1の被写体であると推定される少なくとも1つの第2の被写体を検出し、それぞれの前記第2の被写体の位置と、それぞれの前記第2の被写体が前記第1の被写体である信頼度とを取得する第2の取得手段と、
過去の前記第1の被写体の位置と現在のそれぞれの前記第2の被写体の位置との距離を取得する第3の取得手段と、
前記撮影映像の画角内に映る実世界の広さを取得する第4の取得手段と、
前記距離と前記信頼度と前記実世界の広さとに基づいて、それぞれの前記第2の被写体から最も前記第1の被写体であると推定される第3の被写体を、前記第1の被写体として決定する決定手段と、
を備えることを特徴とする画像処理装置。
【0127】
(項目2
前記決定手段により決定された前記第3の被写体の位置に基づいて、前記撮影映像から前記第3の被写体が映る領域を切り出す切り出し手段をさらに備えることを特徴とする項目1に記載の画像処理装置。
【0128】
(項目3)
前記切り出し手段により前記撮影映像から切り出される映像は、配信映像であることを特徴とする項目2に記載の画像処理装置。
【0129】
(項目4)
前記第2の取得手段は、前記第1の被写体とは異なる第4の被写体であると推定される第5の被写体を検出し、前記第5の被写体の位置と、前記第5の被写体が前記第4の被写体である信頼度とをさらに取得することを特徴とする項目1乃至3のいずれか1項目に記載の画像処理装置。
【0130】
(項目5)
前記撮影映像は競技の映像であり、前記第1の被写体はボールであり、前記第4の被写体はプレイヤーであることを特徴とする項目4に記載の画像処理装置。
【0131】
(項目6)
前記距離に基づいて前記第2の被写体が前記第1の被写体である信頼度を補正するための補正関数を取得する第5の取得手段をさらに備え、前記決定手段は、前記補正関数を用いて補正した補正信頼度に基づいて、前記第3の被写体を決定することを特徴とする項目1乃至5のいずれか1項目に記載の画像処理装置。
【0132】
(項目7)
前記補正関数は、前記距離が大きいほど前記補正信頼度が低くなるように、前記信頼度を補正することを特徴とする項目6に記載の画像処理装置。
【0133】
(項目8)
前記補正関数は、前記画角に写る実世界の広さが大きいほど、前記距離の大きさに応じて前記補正信頼度を低く補正する程度を大きくすることを特徴とする項目7に記載の画像処理装置。
【0134】
(項目9)
前記撮影映像は競技の映像であり、該競技の特性を取得する第6の取得手段をさらに備え、前記第4の取得手段は、前記競技の特性に基づいて、前記実世界の広さを取得することを特徴とする項目1乃至8のいずれか1項目に記載の画像処理装置。
【0135】
(項目10)
前記第6の取得手段は、ユーザの選択に基づいて前記競技の特性を取得することを特徴とする項目9に記載の画像処理装置。
【0136】
(項目11)
前記決定手段は、前記第1の被写体であると推定される前記第2の被写体が検出されなかった場合に、過去の前記第1の被写体の位置に最も近い前記第4の被写体の位置を前記第1の被写体の位置として決定することを特徴とする項目4または5に記載の画像処理装置。
【0137】
(項目12)
前記撮影映像を撮影する撮像装置と、
項目1乃至11のいずれか1項目に記載の画像処理装置とを備えることを特徴とする撮影システム。
【0138】
(項目13)
前記撮影映像を撮影する第1の撮像装置と、
パン、チルト、ズームが可能な第2の撮像装置と、
項目1乃至11のいずれか1項目に記載の画像処理装置とを備えることを特徴とする撮影システム。
【0139】
(項目14)
撮影映像を取得する第1の取得工程と、
前記撮影映像から第1の被写体であると推定される少なくとも1つの第2の被写体を検出し、それぞれの前記第2の被写体の位置と、それぞれの前記第2の被写体が前記第1の被写体である信頼度とを取得する第2の取得工程と、
過去の前記第1の被写体の位置と現在のそれぞれの前記第2の被写体の位置との距離を取得する第3の取得工程と、
前記撮影映像の画角内に映る実世界の広さを取得する第4の取得工程と、
前記距離と前記信頼度と前記実世界の広さとに基づいて、それぞれの前記第2の被写体から最も前記第1の被写体であると推定される第3の被写体を、前記第1の被写体として決定する決定工程と、
を有することを特徴とする画像処理方法。
【0140】
(項目15)
コンピュータを、項目1乃至11のいずれか1項目に記載の画像処理装置の各手段として機能させるためのプログラム。
【0141】
(項目16)
コンピュータを、項目1乃至11のいずれか1項目に記載の画像処理装置の各手段として機能させるためのプログラムを記憶したコンピュータが読み取り可能な記憶媒体。
【0142】
発明は上記実施形態に制限されるものではなく、発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、発明の範囲を公にするために請求項を添付する。
【符号の説明】
【0143】
910:画像縮小部、920:競技特性決定部、930:撮影範囲取得部、940:補正関数決定部、950:物体検出部、960:検出結果補正部、970:撮影画角決定部、980:トリミング部