(57)【要約】情報処理装置（２０００）は、認識器（２０２０）を有する。認識器（２０２０）には、画像（１０）が入力される。認識器（２０２０）は、入力された画像（１０）に含まれる群衆について、群衆の種類を示すラベル（３０）と、群衆の構造を表す構造情報（４０）を出力する。構造情報（４０）は、群衆を構成するオブジェクトの位置及び向きを示す。情報処理装置（２０００）は、学習画像（５２）、学習ラベル（５４）、及び学習構造情報（５６）を含む学習データ（５０）を取得する。情報処理装置（２０００）は、認識器（２０２０）に対して学習画像（５２）を入力することで得られるラベル（３０）及び構造情報（４０）、並びに学習ラベル（５４）及び学習構造情報（５６）を用いて、認識器（２０２０）の学習を行う。
2020105146.tif 000002
【特許請求の範囲】
【請求項１】
画像が入力されたことに応じて、その画像に含まれる群衆の種類を表すラベルと、その群衆の構造を表す構造情報とを出力する認識器と、
学習データを取得する取得部と、を有し、
前記学習データは、画像、並びにその画像を前記認識器に入力したことに応じて出力されるべき前記ラベル及び前記構造情報を含み、
前記学習データに含まれる画像を前記認識器に入力し、前記認識器から出力される前記ラベル及び前記構造情報、並びに前記学習データに含まれる前記ラベル及び前記構造情報を用いて、前記認識器の学習を行う学習部を有し、
前記構造情報は、前記画像に含まれるオブジェクトの位置及び向きを含む、情報処理装置。
【請求項２】
前記学習データの前記構造情報は、前記学習データの画像に含まれる群衆を構成するオブジェクトについてのみ、その位置及び向きを示す、請求項１に記載の情報処理装置。
【請求項３】
前記学習データの前記構造情報は、
前記オブジェクトの位置を、前記学習データの画像を分割して得られる複数の部分領域のうちの１つ以上に対応させて表し、
各前記部分領域について、その中に含まれる前記オブジェクトの向きを示す、請求項１又は２に記載の情報処理装置。
【請求項４】
前記オブジェクトは人であり、
前記学習データの前記構造情報は、
前記学習データの画像に含まれる各前記オブジェクトの位置を、頭部の位置、人体の中心位置、頭部領域の位置、及び人体領域の位置のいずれかとして示し、
前記学習データの画像に含まれる各前記オブジェクトの向きを、頭部の向き、人体の向き、頭部領域の向き、及び人体領域の向きのいずれかとして示す、請求項１乃至３いずれか一項に記載の情報処理装置。
【請求項５】
前記学習データの前記構造情報には、前記学習データの画像に含まれるオブジェクトについて、密度の分布を表す密度情報及び速度の分布を表す速度情報のいずれか１つ又は双方が含まれ、
前記認識器から出力される前記構造情報には、前記入力される画像におけるオブジェクトについて、前記密度情報及び前記速度情報のいずれか１つ又は双方が含まれる、
請求項１乃至４いずれか一項に記載の情報処理装置。
【請求項６】
前記認識器は、学習時には前記構造情報を出力し、運用時には前記構造情報を出力しない、請求項１乃至５いずれか一項に記載の情報処理装置。
【請求項７】
前記認識器はニューラルネットワークで構成され、
前記ニューラルネットワークは、前記ラベルを認識する第１のネットワークと、前記構造情報を認識する第２のネットワークとを含み、
前記第１のネットワークと前記第２のネットワークは１つ以上のノードを互いに共有する、請求項１乃至６いずれか一項に記載の情報処理装置。
【請求項８】
前記学習データの前記構造情報には、前記学習データの画像に含まれる各前記オブジェクトの位置として、オブジェクトの位置を定める複数の方法それぞれによって定めた位置が含まれ、
前記認識器から出力される前記構造情報には、前記入力される画像に含まれる各前記オブジェクトの位置として、前記複数の方法それぞれに対応する位置が含まれる、請求項１乃至７いずれか一項に記載の情報処理装置。
【請求項９】
前記学習データの前記構造情報には、前記学習データの画像に含まれる各前記オブジェクトの向きとして、オブジェクトの向きを定める複数の方法それぞれによって定めた向きが含まれ、
前記認識器から出力される前記構造情報には、前記入力される画像に含まれる各前記オブジェクトの向きとして、前記複数の方法それぞれに対応する向きが含まれる、請求項１乃至８いずれか一項に記載の情報処理装置。
【請求項１０】
コンピュータによって実行される制御方法であって、
前記コンピュータは、画像が入力されたことに応じて、その画像に含まれる群衆の種類を表すラベルと、その群衆の構造を表す構造情報とを出力する認識器を有し、
当該制御方法は、学習データを取得する取得ステップを有し、
前記学習データは、画像、並びにその画像を前記認識器に入力したことに応じて出力されるべき前記ラベル及び前記構造情報を含み、
当該制御方法は、前記学習データに含まれる画像を前記認識器に入力し、前記認識器から出力される前記ラベル及び前記構造情報、並びに前記学習データに含まれる前記ラベル及び前記構造情報を用いて、前記認識器の学習を行う学習ステップを有し、
前記構造情報は、前記画像に含まれるオブジェクトの位置及び向きを含む、制御方法。
【請求項１１】
前記学習データの前記構造情報は、前記学習データの画像に含まれる群衆を構成するオブジェクトについてのみ、その位置及び向きを示す、請求項１０に記載の制御方法。
【請求項１２】
前記学習データの前記構造情報は、
前記オブジェクトの位置を、前記学習データの画像を分割して得られる複数の部分領域のうちの１つ以上に対応させて表し、
各前記部分領域について、その中に含まれる前記オブジェクトの向きを示す、請求項１０又は１１に記載の制御方法。
【請求項１３】
前記オブジェクトは人であり、
前記学習データの前記構造情報は、
前記学習データの画像に含まれる各前記オブジェクトの位置を、頭部の位置、人体の中心位置、頭部領域の位置、及び人体領域の位置のいずれかとして示し、
前記学習データの画像に含まれる各前記オブジェクトの向きを、頭部の向き、人体の向き、頭部領域の向き、及び人体領域の向きのいずれかとして示す、請求項１０乃至１２いずれか一項に記載の制御方法。
【請求項１４】
前記学習データの前記構造情報には、前記学習データの画像に含まれるオブジェクトについて、密度の分布を表す密度情報及び速度の分布を表す速度情報のいずれか１つ又は双方が含まれ、
前記認識器から出力される前記構造情報には、前記入力される画像におけるオブジェクトについて、前記密度情報及び前記速度情報のいずれか１つ又は双方が含まれる、
請求項１０乃至１３いずれか一項に記載の制御方法。
【請求項１５】
前記認識器は、学習時には前記構造情報を出力し、運用時には前記構造情報を出力しない、請求項１０乃至１４いずれか一項に記載の制御方法。
【請求項１６】
前記認識器はニューラルネットワークで構成され、
前記ニューラルネットワークは、前記ラベルを認識する第１のネットワークと、前記構造情報を認識する第２のネットワークとを含み、
前記第１のネットワークと前記第２のネットワークは１つ以上のノードを互いに共有する、請求項１０乃至１５いずれか一項に記載の制御方法。
【請求項１７】
前記学習データの前記構造情報には、前記学習データの画像に含まれる各前記オブジェクトの位置として、オブジェクトの位置を定める複数の方法それぞれによって定めた位置が含まれ、
前記認識器から出力される前記構造情報には、前記入力される画像に含まれる各前記オブジェクトの位置として、前記複数の方法それぞれに対応する位置が含まれる、請求項１０乃至１６いずれか一項に記載の制御方法。
【請求項１８】
前記学習データの前記構造情報には、前記学習データの画像に含まれる各前記オブジェクトの向きとして、オブジェクトの向きを定める複数の方法それぞれによって定めた向きが含まれ、
前記認識器から出力される前記構造情報には、前記入力される画像に含まれる各前記オブジェクトの向きとして、前記複数の方法それぞれに対応する向きが含まれる、請求項１０乃至１７いずれか一項に記載の制御方法。
【請求項１９】
請求項１０乃至１８いずれか一項に記載の制御方法の各ステップをコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は撮像画像から群衆に関する情報を得る技術に関する。
【背景技術】
【０００２】
撮像画像を解析して、撮像画像に含まれる群衆に関する情報を得るシステムが開発されている。例えば特許文献１の技術では、入力画像と背景画像の差分（背景差分法）を用いて人物領域を抽出し、予め設定した行列を想定する行列領域を用いて、行列領域に含まれる人物領域を取得する。この人物領域が、予め設定した、人物を想定した縦横比より大きい場合、設定した行列領域を複数の人物が重なった行列であると認識し、行列領域に含まれる人物領域の縦横比のサイズから行列領域内の人の数を推定する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−２６５２９０号公報
【特許文献２】国際公開第２０１４／２０７９９１号
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明者は、行列に限らず、画像に含まれる群衆の種類を高い精度で認識する新たな技術を見出した。本発明の目的の一つは、画像に含まれる群衆の種類を高い精度で認識する技術を提供することである。
【課題を解決するための手段】
【０００５】
本発明の情報処理装置は、１）画像が入力されたことに応じて、その画像に含まれる群衆の種類を表すラベルと、その群衆の構造を表す構造情報とを出力する認識器と、２）学習データを取得する取得部と、を有する。学習データは、画像、並びにその画像を認識器に入力したことに応じて出力されるべきラベル及び構造情報を含む。当該情報処理装置は、３）学習データに含まれる画像を認識器に入力し、認識器から出力されるラベル及び構造情報、並びに学習データに含まれるラベル及び構造情報を用いて、認識器の学習を行う学習部を有する。構造情報は、画像に含まれるオブジェクトの位置及び向きを含む。【０００６】
本発明の制御方法は、コンピュータによって実行される。当該コンピュータは、画像が入力されたことに応じて、その画像に含まれる群衆の種類を表すラベルと、その群衆の構造を表す構造情報とを出力する認識器を有する。当該制御方法は、学習データを取得する取得ステップを有する。学習データは、画像、並びにその画像を認識器に入力したことに応じて出力されるべきラベル及び構造情報を含む。当該制御方法は、学習データに含まれる画像を認識器に入力し、認識器から出力されるラベル及び構造情報、並びに学習データに含まれるラベル及び構造情報を用いて、認識器の学習を行う学習ステップを有する。構造情報は、画像に含まれるオブジェクトの位置及び向きを含む。【０００７】
本発明のプログラムは、コンピュータに、本発明の制御方法が有する各ステップを実行させる。
【発明の効果】
【０００８】
本発明によれば、画像に含まれる群衆の種類を高い精度で認識する技術が提供される。
【図面の簡単な説明】
【０００９】
上述した目的、およびその他の目的、特徴および利点は、以下に述べる好適な実施の形態、およびそれに付随する以下の図面によってさらに明らかになる。【００１０】
【図１】本実施形態の情報処理装置が行う処理を概念的に示す図である。
【図２】群衆の種類に対応付けて、その種類の群衆を含む画像、及びその群衆を構成する人の位置と向きを例示する図である。
【図３】実施形態１の情報処理装置の機能構成を例示する図である。
【図４】情報処理装置を実現するための計算機を例示する図である。
【図５】実施形態１の情報処理装置によって実行される処理の流れを例示するフローチャートである。
【図６】部分領域を用いてオブジェクトの位置を表す方法を例示する第１の図である。
【図７】部分領域を用いてオブジェクトの位置を表す方法を例示する第２の図である。
【図８】部分領域を用いてオブジェクトの位置を表す方法を例示する第３の図である。
【図９】部分領域を用いてオブジェクトの向きを表す方法を例示する図である。
【図１０】ニューラルネットワークとして構成した認識器を例示する図である。
【図１１】認識器を構成する複数のニューラルネットワークにおいて、一部の層が共通化されているケースを例示する図である。
【発明を実施するための形態】
【００１１】
以下、本発明の実施の形態について、図面を用いて説明する。尚、すべての図面において、同様な構成要素には同様の符号を付し、適宜説明を省略する。また、特に説明する場合を除き、各ブロック図において、各ブロックは、ハードウエア単位の構成ではなく、機能単位の構成を表している。
【００１２】
［実施形態１］
＜概要＞
図１は、本実施形態の情報処理装置２０００が行う処理を概念的に示す図である。情報処理装置２０００は、認識器２０２０を有する。認識器２０２０には、画像１０が入力される。認識器２０２０は、入力された画像１０に含まれる群衆について、ラベル３０及び構造情報４０を出力する。群衆は、複数のオブジェクトによって構成される。オブジェクトは、人その他の動物であってもよいし、動物以外のもの（例えば、車、自転車、又はバイクなどの乗り物）であってもよい。ラベル３０は、画像１０に含まれる群衆の種類を示す。群衆の種類には、例えば、行列構造、取り囲み構造、パニック構造、離散構造、合流（集合）構造、滞留（たむろ）構造、回避構造、逆走構造、横切り構造、及びけんか構造などがある。構造情報４０は、群衆の構造を表す情報であり、少なくとも、群衆を構成するオブジェクトの位置及び向きを示す。なお、画像１０に複数の群衆が含まれる場合、認識器２０２０は、それら複数の群衆それぞれについて、ラベル３０及び構造情報４０を出力する。
【００１３】
図２は、群衆の種類に対応付けて、その種類の群衆を含む画像、及びその群衆を構成する人の位置と向きを例示する図である。この例では、オブジェクトは人である。また、人の頭部の位置がオブジェクトの位置として扱われており、人の顔の向きがオブジェクトの向きとして扱われている。
【００１４】
情報処理装置２０００は、認識器２０２０の学習を行う。そのために、情報処理装置２０００は、学習データ５０を取得する。学習データ５０は、学習画像５２、学習ラベル５４、及び学習構造情報５６を含む。学習画像５２は、認識器２０２０の学習に利用する画像である。例えば学習画像５２には、その中に１種類の群衆のみが含まれるものを用いる。学習ラベル５４は、学習画像５２に含まれる群衆の種類を示す。この学習ラベル５４は、学習画像５２を認識器２０２０に入力した場合に、認識器２０２０から出力されるべきラベル３０を表す。学習構造情報５６は、学習画像５２に含まれる群衆の構造を表す情報である。この学習構造情報５６は、学習画像５２を認識器２０２０に入力した場合に、認識器２０２０から出力されるべき構造情報４０を表す。すなわち、学習ラベル５４と学習構造情報５６は、いわゆる教師有り学習において、学習画像５２に対応する正解を表すデータ（正例データ）である。なお、認識器２０２０の学習には、正例データだけでなく、負例データをさらに用いてもよい。ここでいう負例データは、その中に群衆が含まれない学習画像５２、及び群衆が存在しないことを表す学習ラベル５４と学習構造情報５６を含む学習データ５０である。
【００１５】
学習のフェーズにおいて、情報処理装置２０００は、認識器２０２０に対して学習画像５２を入力する。すなわち、学習のフェーズでは、学習画像５２が画像１０に相当する。学習画像５２が入力されたことに応じ、情報処理装置２０００は、認識器２０２０から、ラベル３０及び構造情報４０を得る。情報処理装置２０００は、認識器２０２０から得たラベル３０及び構造情報４０、並びに学習ラベル５４及び学習構造情報５６を用いて、認識器２０２０の学習を行う。
【００１６】
ここで、認識器２０２０は、特に、学習画像５２を入力することで出力された構造情報４０とその学習画像５２に対応する学習構造情報５６との誤差に基づく学習により、構造情報４０の認識を行う認識器のみならず、ラベル３０の認識を行う認識器も学習されるように構成される。例えば後述するように、認識器２０２０は、ニューラルネットワークで構成され、なおかつラベル３０の認識を行うネットワークと構造情報４０の認識を行うネットワークにおいて１つ以上のノードが共有されている。
【００１７】
運用のフェーズにおいて、情報処理装置２０００は、認識器２０２０に対し、解析対象の画像である解析対象画像を入力する。すなわち、運用のフェーズでは、画像１０として解析対象画像が入力される。例えば解析対象画像は、監視カメラによって生成された監視映像を構成するビデオフレームである。情報処理装置２０００は、認識器２０２０に対し、解析対象画像を入力する。例えば認識器２０２０は、解析対象画像に含まれる１つ以上の群衆について、ラベル３０及び構造情報４０の出力を行う。ただし、構造情報４０は、ラベル３０の認識の精度を上げるために学習のフェーズにおいて出力されればよく、必ずしも運用のフェーズにおいても出力される必要はない。
【００１８】
＜作用効果＞
本発明者は、群衆の種類（ラベル）の認識を行う認識器の学習において、正解のラベルのみに基づいて学習を行うと、ラベル認識の精度がなかなか高くならないという問題が発生しうることを見出した。このような問題が生じる理由は、群衆の種類が、複数のオブジェクトそれぞれの配置や向き、オブジェクト同士の重なり方などといった種々の要素によって決まるものであり、そのような複雑な情報の認識を行う認識器は、群衆を表す画像とその群衆の種類を表すラベルという少ない情報だけでは学習しきれない場合があるためである。なお、ラベル認識の精度がなかなか高くならないということは、ラベル認識の精度を高くするためには大量の学習データを用いて長時間の学習が必要であることや、限られた少ない学習データではラベル認識の精度が低くなってしまうことを意味する。
【００１９】
この点、前述した様に、本実施形態の情報処理装置２０００は、画像１０が入力されたことに応じて、画像１０に含まれる群衆の種類を示すラベル３０と、画像１０に含まれる群衆を構成する人の位置及び向きを示す構造情報４０とを出力する認識器２０２０を有する。そして、認識器２０２０は、学習画像５２を入力することで出力された構造情報４０とその学習画像５２に対応する学習構造情報５６との誤差に基づく学習により、構造情報４０の認識を行う認識器のみならず、ラベル３０の認識を行う認識器も学習されるように構成される。すなわち、ラベル３０の認識器の学習が、ラベル３０だけでなく、構造情報４０も利用して行われる。よって、群衆の種類を表すラベルの認識器を学習する際にラベルのみを利用する場合と比較し、ラベルの認識器の精度をより容易に向上させることができる。また、ラベルの認識器の学習に要する時間や学習データの量を削減できる。
【００２０】
なお、図１を参照した上述の説明は、情報処理装置２０００の理解を容易にするための例示であり、情報処理装置２０００の機能を限定するものではない。以下、本実施形態の情報処理装置２０００についてさらに詳細に説明する。
【００２１】
＜情報処理装置２０００の機能構成の例＞
図３は、実施形態１の情報処理装置２０００の機能構成を例示する図である。情報処理装置２０００は、認識器２０２０、取得部２０４０、及び学習部２０６０を有する。認識器２０２０は、画像１０が入力されたことに応じて、その画像１０に含まれる群衆の種類を表すラベル３０を出力する。取得部２０４０は、学習データ５０を取得する。学習データ５０は、学習画像５２、学習ラベル５４、及び学習構造情報５６を含む。学習部２０６０は、学習画像５２を認識器２０２０に入力し、認識器２０２０から出力されるラベル３０及び構造情報４０、並びに学習ラベル５４及び学習構造情報５６を用いて、認識器２０２０の学習を行う。
【００２２】
＜情報処理装置２０００のハードウエア構成＞
情報処理装置２０００の各機能構成部は、各機能構成部を実現するハードウエア（例：ハードワイヤードされた電子回路など）で実現されてもよいし、ハードウエアとソフトウエアとの組み合わせ（例：電子回路とそれを制御するプログラムの組み合わせなど）で実現されてもよい。以下、情報処理装置２０００の各機能構成部がハードウエアとソフトウエアとの組み合わせで実現される場合について、さらに説明する。
【００２３】
図４は、情報処理装置２０００を実現するための計算機１０００を例示する図である。計算機１０００は任意の計算機である。例えば計算機１０００は、Personal Computer（PC）やサーバマシンなどである。計算機１０００は、情報処理装置２０００を実現するために設計された専用の計算機であってもよいし、汎用の計算機であってもよい。
【００２４】
計算機１０００は、バス１０２０、プロセッサ１０４０、メモリ１０６０、ストレージデバイス１０８０、入出力インタフェース１１００、及びネットワークインタフェース１１２０を有する。バス１０２０は、プロセッサ１０４０、メモリ１０６０、ストレージデバイス１０８０、入出力インタフェース１１００、及びネットワークインタフェース１１２０が、相互にデータを送受信するためのデータ伝送路である。ただし、プロセッサ１０４０などを互いに接続する方法は、バス接続に限定されない。
【００２５】
プロセッサ１０４０は、CPU（Central Processing Unit）、GPU（Graphics Processing Unit）、FPGA（Field-Programmable Gate Array）などの種々のプロセッサである。メモリ１０６０は、RAM（Random Access Memory）などを用いて実現される主記憶装置である。ストレージデバイス１０８０は、ハードディスク、SSD（Solid State Drive）、メモリカード、又は ROM（Read Only Memory）などを用いて実現される補助記憶装置である。
【００２６】
入出力インタフェース１１００は、計算機１０００と入出力デバイスとを接続するためのインタフェースである。例えば入出力インタフェース１１００には、キーボードなどの入力装置や、ディスプレイ装置などの出力装置が接続される。ネットワークインタフェース１１２０は、計算機１０００を通信網に接続するためのインタフェースである。この通信網は、例えば LAN（Local Area Network）や WAN（Wide Area Network）である。ネットワークインタフェース１１２０が通信網に接続する方法は、無線接続であってもよいし、有線接続であってもよい。
【００２７】
ストレージデバイス１０８０は、情報処理装置２０００の各機能構成部を実現するプログラムモジュールを記憶している。プロセッサ１０４０は、これら各プログラムモジュールをメモリ１０６０に読み出して実行することで、各プログラムモジュールに対応する機能を実現する。
【００２８】
ストレージデバイス１０８０は、画像１０をさらに記憶していてもよい。ただし、画像１０は、計算機１０００が取得可能な情報であればよく、ストレージデバイス１０８０に記憶されていなければならないものではない。例えば画像１０は、ネットワークインタフェース１１２０を介して計算機１０００と接続されている記憶装置（NAS（Network Attached Storage）など）に記憶させておくことができる。学習データ５０についても、画像１０と同様である。なお、画像１０と学習データ５０は、互いに異なる場所に記憶されていてもよいし、互いに同じ場所に記憶されていてもよい。
【００２９】
＜処理の流れ＞
図５は、実施形態１の情報処理装置２０００によって実行される処理の流れを例示するフローチャートである。取得部２０４０は、学習データ５０を取得する（Ｓ１０２）。学習部２０６０は、学習画像５２を認識器２０２０に入力する（Ｓ１０４）。認識器２０２０は、入力された学習画像５２に基づいて、ラベル３０及び構造情報４０を出力する（Ｓ１０６）。学習部２０６０は、認識器２０２０から出力されたラベル３０及び構造情報４０、並びに学習データ５０に含まれる学習ラベル５４及び学習構造情報５６を用いて、認識器２０２０の学習を行う（Ｓ１０８）。
【００３０】
図３に示す処理は、認識器２０２０が十分に学習されるまで（認識器２０２０の精度が十分に高くなるまで）繰り返される。例えば、ラベル３０と学習ラベル５４との誤差を示す損失、及び構造情報４０と学習構造情報５６との誤差を示す損失を算出して認識器を学習し、損失が所定の閾値以下となる、もしくは、損失が最小化されるまで、図３の処理が繰り返される。
【００３１】
＜構造情報４０について＞
前述した様に、画像１０に対応する構造情報４０は、その画像１０に含まれる群衆の構造を表す情報であり、少なくとも、群衆に含まれるオブジェクトの位置及び向きを示す。ここで、群衆に含まれるオブジェクトの位置と向きをデータとして表す方法には、種々の方法を採用できる。以下、その方法を具体的に例示する。
【００３２】
＜＜位置の表し方＞＞
オブジェクトの位置は、そのオブジェクトを表す画像領域に基づき、様々な方法で定めることができる。例えばオブジェクトの位置は、そのオブジェクトを表す画像領域の所定の位置（中心位置や頂点など）で表される。ここで、「オブジェクトを表す画像領域」は、画像においてそのオブジェクト全体を表す画像領域であってもよいし、そのオブジェクトの一部を表す画像領域であってもよい。「オブジェクトの全体を表す画像領域」は、例えば、そのオブジェクトの輪郭で囲まれた画像領域や、そのオブジェクトの輪郭の外接矩形である。「オブジェクトの一部を表す画像領域」は、例えば、そのオブジェクトの所定の部位の輪郭で囲まれた画像領域や、その輪郭の外接矩形を表す画像領域である。所定の部位には、任意の部位を採用することができる。例えば、オブジェクトが人である場合、所定の部位には、顔、頭部、又は胴体などを採用することができる。その他にも例えば、オブジェクトが車である場合、所定の部位には、ボンネット、フロントグラス、又はナンバープレートなどを採用することができる。
【００３３】
上述した種々の位置は、例えば、画像１０におけるその位置に相当する画素の座標で表される。例えばオブジェクトを表す画像領域の中心位置は、その中心位置に相当する画素の座標で表される。
【００３４】
ただし、学習構造情報５６を用いた学習を容易にするため、オブジェクトの位置は、画素の座標以外の方法で表されてもよい。例えば、画像１０を複数の部分領域に区切り、オブジェクトの位置をその部分領域を利用して表す。以下、部分領域を利用するケースについてより詳細に説明する。
【００３５】
例えばオブジェクトの位置は、前述した、そのオブジェクトを表す画像領域の所定の位置が含まれる部分領域で特定される。例えば、部分領域の配置を表す行列（以下、位置行列）を用意し、オブジェクトが位置する部分領域に対応する要素へ１を設定し、オブジェクトが位置しない部分領域に対応する要素へ０を設定することで、画像１０に含まれる各オブジェクトの位置を表すことができる。例えば画像１０から N*M の部分領域を得る場合（N と M はいずれも自然数）、N 行 M 列の位置行列を用意する。そして、i 行 j 列の部分領域にオブジェクトが含まれる場合、位置行列の i 行 j 列に１が設定される。一方、i 行 j 列の部分領域にオブジェクトが含まれない場合、位置行列の i 行 j 列に０が設定される。
【００３６】
図６は、部分領域を用いてオブジェクトの位置を表す方法を例示する第１の図である。図６の位置行列では、人の頭部が位置する部分領域に対応する要素に１が設定され、人の頭部が位置しない部分領域に対応する要素に０が設定されている。
【００３７】
なお、或る部分領域に複数のオブジェクトが含まれる場合、構造情報４０には、各部分領域に含まれるオブジェクトの数を表す情報が含まれてもよい。例えば前述した位置行列を利用する場合、位置行列の各要素に、その要素に対応する部分領域に含まれるオブジェクトの数を示すようにする。ただし、部分領域に含まれるオブジェクトの数は考慮せず、位置行列は、各部分領域にオブジェクトが含まれるか否かのみ（すなわち１と０のいずれか一方）を示すようにしてもよい。
【００３８】
図７は、部分領域を用いてオブジェクトの位置を表す方法を例示する第２の図である。図７の位置行列では、各部分領域に対応する要素に対し、その部分領域に含まれる人の頭部の数が設定されている。
【００３９】
その他にも例えば、オブジェクトの位置は、オブジェクトを表す画像領域と部分領域の重複度合いに基づいて定められてもよい。例えば、オブジェクトを表す画像領域と部分領域との重複度合いが所定値以上である場合、その部分領域にオブジェクトが位置しているとみなす。ここで、オブジェクトを表す画像領域と部分領域との重複度合いは、例えば、「Sa/Sb」として計算される。ここで、Sa は、部分領域に含まれるオブジェクトの画像領域の面積を表し、Sb は部分領域の面積を表す。例えば位置行列において、Sa/Sb が閾値以上である部分領域には１が設定され、Sa/Sb が閾値未満である部分領域には０が設定される。その他にも例えば、位置行列の各要素に対して１か０を設定する代わりに、その要素に対応する部分領域について算出した、オブジェクトを表す画像領域との重複度合い（Sa/Sb）を設定してもよい。ここで、重複度合いは、オブジェクトを表す画像領域の画素に最大値（例えば２５５）を設定し、その他の画素に最小値（例えば０）を設定する二値化を画像１０に対して施した後、部分領域ごとに平均輝度を算出し、その平均輝度で表されてもよい。
【００４０】
図８は、部分領域を用いてオブジェクトの位置を表す方法を例示する第３の図である。説明を簡単にするため、図８では、４つの部分領域に着目している。位置行列Ａの各要素は、部分領域に含まれる人の頭部領域の割合を示している。位置行列Ｂの各要素は、部分領域に含まれる人の頭部領域の割合が閾値以上である場合に１を、そうでない場合に０を示している。ここでは、閾値を 0.5 としている。そのため、右下の部分領域に対応する要素のみが１となっている。位置行列Ｃは、人の頭部領域に最大値（例えば２５５）を設定し、その他の領域に最小値（例えば０）を設定する二値化を画像に対して施した後、部分領域ごとに平均輝度を算出することで得られる。
【００４１】
＜＜向きの表し方＞＞
オブジェクトの向きは、そのオブジェクトを表す画像領域の一部又は全体に基づき、様々な方法で定めることができる。例えばオブジェクトの向きは、そのオブジェクトを表す画像領域全体から定まる向きを表すベクトルで定められる。その他にも例えば、オブジェクトの向きは、そのオブジェクトの所定の部位の向きを表すベクトルとして定められる。ここで、上述したオブジェクトの向きを表すベクトルを、方向ベクトルと呼ぶ。方向ベクトルは、例えば、長さ１の単位ベクトルとする。
【００４２】
方向ベクトルの向きは、予め指定した間隔の角度で量子化されてもよい。例えば４５度間隔の量子化を行うことで、オブジェクトの向きは、８つの方向のいずれか１つで表される。
【００４３】
オブジェクトの向きは、前述した部分領域を利用して表されてもよい。例えば、各部分領域に含まれるオブジェクトの方向を表す情報を示す行列（以下、方向行列）を用意する。方向行列の各要素には、例えば、対応する部分領域に含まれるオブジェクトについて得られた方向ベクトルの平均を算出し、算出された平均ベクトルの向きを設定する。すなわち、オブジェクトの向きを表す情報として、部分領域ごとに、その部分領域に含まれるオブジェクトの平均的な向きを設定する。
【００４４】
その他にも例えば、前述したように方向ベクトルを量子化する場合、部分領域に含まれるオブジェクトについて得られた方向ベクトルの数を方向ごとにカウントし、カウント数が最も多い方向を、その部分領域に対応する方向行列の要素に設定してもよい。また、部分領域ごとに、各方向のカウント数を表すヒストグラムを、方向行列の要素に設定してもよい。
【００４５】
図９は、部分領域を用いてオブジェクトの向きを表す方法を例示する図である。説明を簡単にするため、図９では、１つの部分領域に着目している。この部分領域には、３人の人物の顔が含まれている。方向行列Ａの要素は、部分領域に含まれる人の顔の方向の平均を示している。方向行列Ｂの各要素は、部分領域に含まれる人の顔の方向のうち、出現数が最大である方向を示している。ここで、方向行列Ｂへの変換に先立ち、画像１０から得られた各方向が、８方向のいずれかに量子化されている。その結果、＋４５度の方向が出現数最大の方向となっている。
【００４６】
＜＜対象とするオブジェクトについて＞＞
構造情報４０は、対応する画像１０に含まれる全てのオブジェクトそれぞれについて、その位置及び向きを示してもよいし、対応する画像１０に含まれる一部のオブジェクトについて、その位置及び向きを示してもよい。後者の場合、例えば構造情報４０は、対応する画像１０に含まれるオブジェクトのうち、群衆を構成するオブジェクトのみについて、そのオブジェクトの位置及び向きを示す。例えば、群衆の種類として行列を想定する場合において、画像１０に、行列を構成するオブジェクトと、その行列を構成しないオブジェクトの双方が含まれているとする。この場合、構造情報４０が、行列を構成するオブジェクトについてのみその位置と向きを示し、行列を構成しないオブジェクトについてはその位置と向きを示さないようにする。また、構造情報４０は、所定のサイズ以上であるなどといった所定の基準を満たすオブジェクトについてのみ、その位置及び向きを示すようにしてもよい。所定のサイズ以上であるオブジェクトについてのみその位置及び向きを示すようにすると、サイズが小さいオブジェクトの位置及び向きが構造情報４０に含まれなくなる。
【００４７】
＜認識器２０２０の構成＞
認識器２０２０は、入力された画像１０について、画像１０に含まれる群衆の種類を表すラベル３０を出力する。また、少なくとも学習のフェーズにおいて、認識器２０２０は、構造情報４０をさらに出力する。ここで、認識器２０２０のモデルとしては、ニューラルネットワーク（例えば、Convolutional Neural Network（CNN））など、一般的な機械学習で示される種々のモデルを採用することができる。
【００４８】
図１０は、ニューラルネットワークとして構成した認識器２０２０を例示する図である。図１０において、認識器２０２０は、画像１０を入力とし、群衆の種類を表すラベル、オブジェクトの位置（構造情報）、オブジェクトの向き（構造情報）を出力するニューラルネットワークで構成されている。
【００４９】
図１０のニューラルネットワークでは、ラベル３０を認識するネットワークと構造情報４０を認識するネットワークとで、ノードが共有されている。そのため、ラベル３０を認識するネットワークは、認識器２０２０から出力されるラベル３０と学習ラベル５４との誤差のみならず、認識器２０２０から出力される構造情報４０と学習構造情報５６との誤差に基づいても学習される。よって、前述したように、ラベル３０の認識器の精度をより容易に向上させることができ、ラベル３０の認識器の学習に要する時間や学習データの量を削減することができる。
【００５０】
なお、図１０のニューラルネットワークでは、ラベル３０を認識するネットワークと構造情報４０を認識するネットワークとで、全てのノードが共有されている。しかしながら、これらのネットワークは１つ以上のノードを共有すればよく、必ずしも全てのノードを共有する必要は無い。
【００５１】
図１１は、ラベル３０を認識するネットワークと構造情報４０を認識するネットワークにおいて、一部のノードのみが共有されているケースを例示する図である。図１１において、ラベル３０を認識するネットワークと構造情報４０を認識するネットワークは、上位の層を共有しつつ、下位の層が互いに独立している。このように、ラベル３０を認識するネットワークと構造情報４０を認識するネットワークとで下位のネットワークを互いに独立させることにより、例えば、運用のフェーズにおいて構造情報４０を得る必要がない場合には、構造情報４０を認識するネットワークのうち、ラベル３０を認識するネットワークから独立している部分を動作させないように設定することにより、認識の処理に要する時間を短くすることができる。
【００５２】
ここで、前述した通り、認識器２０２０のモデルには、一般的な機械学習で示される種々のモデルを採用することができ、ニューラルネットワークに限定されない。その他の機械学習のモデルの例として、多クラスロジスティック回帰が挙げられる。
【００５３】
認識器２０２０のモデルに多クラスロジスティック回帰を採用した場合、例えば認識器２０２０は、画像１０の入力に応じ、画像１０に含まれる群衆の種類を表すラベル３０と構造情報４０（位置及び向き）の組合せを表すデータ（クラスの識別子）を出力する。例えば、多クラスロジスティック回帰によって０から７の８通りのクラス識別子のいずれか１つが出力されるようにし、それぞれが「０：行列＋位置Ａ１＋向きＢ１」、「１：行列、位置Ａ１、向きＢ２」、「２：行列＋位置Ａ２＋向きＢ１」、「３：行列、位置Ａ２＋向きＢ２」、「４：たむろ＋位置Ａ１＋向きＢ１」、「５：たむろ、位置Ａ１、向きＢ２」、「６：たむろ＋位置Ａ２＋向きＢ１」、及び「７：たむろ、位置Ａ２＋向きＢ２」という意味を持つようにする。画像１０の入力に応じて上記クラスの出力（認識）を行うように認識器２０２０を学習すれば、前述したニューラルネットワークの例と同様に、学習構造情報５６を用いた学習によってラベルの認識精度を向上させることができる。
【００５４】
ここで、特に運用のフェーズでは、認識器２０２０に対し、複数の群衆が含まれる比較的サイズが大きい画像１０が入力されうる。そこで認識器２０２０は、例えば、入力画像に配置された複数の矩形領域それぞれから矩形領域の画像を抽出し認識の処理を行うことで、矩形領域の画像から矩形領域に対する群衆の種類（ラベル３０）を認識し、その群衆を構成するオブジェクトの位置及び向き（構造情報４０）を認識する。群衆の種類、オブジェクトの位置及び向きは、矩形領域毎に出力される。例えば前述した図１０に示したニューラルネットワークで認識器２０２０を構成する場合、各矩形領域の画像がニューラルネットワークへ入力される。
【００５５】
ここで、処理対象の矩形領域を定める方法は様々である。例えば、スライディングウインドウを利用して、画像から所定の大きさの矩形を複数抽出し、抽出された矩形領域を処理対象とする。
【００５６】
その他にも例えば、処理対象とする矩形領域それぞれについて、画像上の位置、矩形領域の形状、及び矩形領域のサイズを示す情報を、予め記憶装置に記憶させておいてもよい。なお、矩形領域のサイズは、画像の大きさに依存しない絶対値で定められていてもよいし、画像のサイズに対する相対値で定められていてもよい。
【００５７】
画像上の位置ごとに矩形領域を定める場合、１つの位置に対応付ける矩形領域は、１つであってもよいし、複数であってもよい。後者の場合、例えば、１つの位置に対し、形状とサイズの組み合わせが異なる複数種類の矩形領域を対応付ける。
【００５８】
矩形領域のサイズは、学習時のオブジェクト領域の大きさと、学習時の画像の大きさとの関係に基づいて定めることが好適である。具体的には、矩形領域のサイズを、矩形領域の位置に対応するオブジェクト領域の大きさに、学習時のオブジェクト領域の大きさを合わせた時の学習時の画像の大きさに設定する。ここで、画像に含まれるオブジェクトの大きさは画像上の位置に応じて（カメラとの位置関係に応じて）異なると考えられる。そこで、画像から検出されたオブジェクト領域の大きさに基づいて矩形領域のサイズを定める場合、各矩形領域のサイズをその位置に応じて異なるものにすることが好適である。矩形領域の形状についても同様である。
【００５９】
矩形領域の位置、形状、及びサイズは、ユーザが手動で設定してもよい。その他にも例えば、矩形領域のカメラの位置や姿勢を表すカメラパラメータと、認識対象の実サイズと、学習時の入力画像のサイズに対応する認識対象のサイズの関係等を用いて、自動的に算出し設定してもよい。
【００６０】
＜学習データ５０の取得：Ｓ１０２＞
取得部２０４０は学習データ５０を取得する。取得部２０４０が学習データ５０を取得する方法は任意である。例えば認識器２０２０は、学習データ５０が記憶されている記憶装置から学習データ５０を取得する。学習データ５０が記憶されている記憶装置は、情報処理装置２０００の内部に設けられていてもよいし、外部に設けられていてもよい。その他にも例えば、取得部２０４０は、他の装置によって送信される学習データ５０を受信することで、学習データ５０を取得する。
【００６１】
ここで、学習データ５０は学習用のデータであるため、学習に先立って予め生成しておく。以下、学習データ５０の生成方法について説明する。
【００６２】
例えば学習データ５０は、特許文献２に開示されている教師データ生成装置を利用して、自動的に生成することができる。特許文献２の教師データ生成装置は、複数のオブジェクトで構成される群衆状態の画像とその状態を示すラベルを、オブジェクト画像と背景画像の合成を用いたシミュレーション、または、CG を用いたシミュレーションによって自動的に大量に生成できる。特許文献２の教師データ生成装置を用いれば、群衆を含む学習画像５２と、学習画像５２に含まれる群衆の種類を示す学習ラベル５４とを、自動的に大量に得ることができる。
【００６３】
なお、学習画像５２は、前述したシミュレーションで作成された画像そのものではなく、その画像に何らかの加工を加えることで得られた画像であってもよい。具体的には、学習画像５２は、シミュレーションで得られた画像に対してトリミングや色調補正などが施された画像、シミュレーションで得られた画像から得られる輝度画像、その輝度画像を画像内の輝度の平均と分散で正規化した正規化画像、又は輝度の勾配を算出した輝度勾配画像などであってもよい。
【００６４】
さらに、特許文献２の教師データ生成装置では、オブジェクトの位置やオブジェクトの向きを制御してシミュレーションが行われる。そのため、その制御情報を用いることで、学習画像５２に含まれる群衆を構成するオブジェクトの位置と向きを表す情報、すなわち、学習構造情報５６も自動的に大量に生成することができる。よって、特許文献２の教師データ生成装置を利用することで、学習データ５０を自動的に大量に得ることができる。
【００６５】
このように、特許文献２の教師データ生成装置を利用して学習データ５０を自動的に生成することにより、学習データ５０を手動で生成する労力を軽減することができる。また、学習データ５０を手動で生成することが難しい状況であっても、学習データ５０を容易に得ることができる。
【００６６】
ただし、学習データ５０は、その一部又は全てが手動で生成されてもよい。例えば学習画像５２は、任意のカメラで群衆を撮像することで生成することができる。ただし、学習画像５２は、カメラによって生成された画像そのものでなくてもよく、カメラによって生成された画像に対して何らかの加工を加えることで得られた画像であってもよい。カメラによって生成された画像に加えられうる加工は、前述した、シミュレーションによって生成された画像に加えられうる加工と同様ある。
【００６７】
学習ラベル５４は、例えば、上述のように生成された学習画像５２に含まれる群衆の種類をユーザの目で見て判断し、ユーザが群衆の種類を手動で指定することで生成することができる。
【００６８】
同様に、学習構造情報５６は、学習画像５２に含まれるオブジェクトの位置や向きをユーザの目で見て判断し、ユーザが各オブジェクトの位置や向きを手動で指定することで生成することができる。ただし、学習構造情報５６が、学習画像５２に含まれる複数の部分領域についてオブジェクトの位置や向きを表すようにする場合、ユーザが、手動でオブジェクトの位置や向きを指定し、コンピュータが、その指定された位置や向きを前述した部分領域についての位置や向きに変換することで、学習構造情報５６を生成してもよい。
【００６９】
＜認識器２０２０の学習：Ｓ１０６＞
学習部２０６０は、認識器２０２０の学習を行う。具体的には、学習部２０６０は、認識器２０２０に対して学習画像５２を入力することで、学習画像５２についてのラベル３０及び構造情報４０を得る。そして、学習部２０６０は、認識器２０２０から得られたラベル３０及び構造情報４０、並びに学習データ５０に含まれる学習ラベル５４及び学習構造情報５６を用いて、認識器２０２０の学習（パラメータの更新）を行う。例えば認識器２０２０がニューラルネットワークで構成される場合、ニューラルネットワークの重みとバイアスの更新が行われる。
【００７０】
ここで、学習ラベル５４は、学習画像５２を認識器２０２０に入力した場合に得られるべきラベル３０を表す。そのため、学習ラベル５４は、ラベル３０についての正解を表すデータといえる。同様に、学習構造情報５６は、学習画像５２を認識器２０２０に入力した場合に得られるべき構造情報４０を表す。そのため、学習構造情報５６は、構造情報４０についての正解を表すデータといえる。よって、学習部２０６０は、認識器２０２０から得られた実際の出力と、認識器２０２０から得られるべき正解の出力との比較に基づいて、認識器２０２０の学習を行う。
【００７１】
認識器から得られた実際の出力と、認識器から得られるべき正解の出力との比較に基づいて、認識器の学習を行う技術には、既存の技術を利用することができる。例えば、学習部２０６０は、ラベル３０、構造情報４０、学習ラベル５４、及び学習構造情報５６に基づいて誤差を示す損失を算出し、算出した損失を小さくするように認識器２０２０のパラメータを更新する。損失を小さくするように認識器のパラメータを更新する技術には、確率的勾配降下法など、種々の技術を利用することができる。なお、損失の算出式（損失関数）は、学習部２０６０に予め設定されていてもよいし、学習部２０６０からアクセス可能な記憶装置に記憶させておいてもよい。
【００７２】
なお、認識器２０２０のパラメータは、情報処理装置２０００からアクセス可能な記憶装置に記憶される。学習部２０６０による学習により、この記憶装置に記憶されている認識器２０２０のパラメータが更新される。ただし、記憶装置に記憶されているパラメータは、必ずしも上書きされる必要はなく、過去のパラメータも記憶装置に残しておくようにしてもよい。
【００７３】
＜変形例＞
認識器２０２０によって出力される構造情報４０は、前述した群衆を構成するオブジェクトの位置及び向き以外にも、群衆に関する種々の情報を含んでもよい。例えば構造情報４０は、群衆を構成するオブジェクトの密度を表す情報（以下、密度情報）を含む。密度情報は、例えば、オブジェクトの密度の分布を表すマップである。オブジェクトの密度の分布を表すマップとは、画像１０上の１つ以上の領域に、その領域におけるオブジェクトの密度を表す数値が重畳されたデータである。
【００７４】
構造情報４０として密度情報を出力するようにする場合、学習データ５０は、学習画像５２に含まれる群衆に関する密度情報をさらに含む。そして、認識器２０２０から出力される密度情報と学習データ５０に含まれる密度情報との誤差に基づき、認識器２０２０の学習が行われる。
【００７５】
その他にも例えば、構造情報４０は、群衆を構成するオブジェクトの移動速度を表す情報（以下、速度情報）を含む。速度情報は、例えば、オブジェクトの移動速度の分布を表すマップである。ここで、オブジェクトの移動速度の分布を表すマップとは、画像１０上に、群衆を構成する各オブジェクトの移動速度を表すベクトル（方向と速さ）が重畳されたデータである。ただし、移動速度の分布を表すマップは、個々のオブジェクトについての移動速度の代わりに、画像１０上の領域ごとにオブジェクトの移動速度を示すものであってもよい。この場合、各領域に含まれるオブジェクトの速度の統計量（例えば平均ベクトル）が画像１０に重畳される。
【００７６】
構造情報４０として速度情報を出力するようにする場合、学習データ５０は、学習画像５２に含まれるオブジェクトについての速度情報をさらに含む。そして、認識器２０２０から出力される速度情報と学習データ５０に含まれる速度情報との誤差に基づき、認識器２０２０の学習が行われる。
【００７７】
このように密度情報や速度情報を出力するネットワークを、オブジェクトの位置や向きを出力するネットワークと同様に、ラベル３０を出力するネットワークと１つ以上のノードを共有するように認識器２０２０に加えることにより、密度情報や速度情報を用いた学習によってラベル３０を出力するネットワークの学習も行われる。そのため、密度情報や速度情報を利用してラベル３０の認識の精度を向上させることができる。また、認識器２０２０がこれらの情報を運用時にも出力するようにすれば、情報処理装置２０００の運用時において、画像１０に含まれる群衆についてより詳細な情報を得ることができるようになる。
【００７８】
さらに、情報処理装置２０００には、画像から得られる群衆に関する情報を認識する認識器を認識器２０２０に加えた上で学習データ５０にその情報に関する正解データを付加することで、認識器２０２０の入力側に手を加えることなく、ラベル３０の認識精度をより容易に向上させられるようになるという利点もある。例えば本変形例では、認識器２０２０の入力側に手を加えることなく、密度情報や速度情報を認識するネットワークを認識器２０２０に加えた上で、正解の密度情報や速度情報を学習データ５０に加えることで、ラベル３０の認識精度を向上させている。
【００７９】
また、構造情報４０は、オブジェクトの位置として、複数の方法それぞれで定めたオブジェクトの位置を含んでもよい。例えば図６と図７では、オブジェクトの位置を定める方法が互いに異なるため、同一の入力画像に対して互いに異なる位置行列が出力されている。そこで、図６と図７に示される入力画像に含まれるオブジェクトの位置として、図６に示す位置行列と図７に示す位置行列の双方が、構造情報４０に含まれるようにする。
【００８０】
このような出力を行う認識器２０２０を実現するためには、複数の方法それぞれに対応したオブジェクトの位置が出力されるように、認識器２０２０を構成する。そして、学習画像５２に含まれるオブジェクトの位置として、複数の方法それぞれで定められたオブジェクトの位置を示す学習構造情報５６を用意して、認識器２０２０の学習を行う。
【００８１】
同様に、構造情報４０は、オブジェクトの向きとして、複数の方法それぞれで定めたオブジェクトの向きを含んでもよい。そのためには、複数の方法それぞれに対応したオブジェクトの向きが出力されるように、認識器２０２０を構成する。そして、学習画像５２に含まれるオブジェクトの向きとして、複数の方法それぞれで定められたオブジェクトの向きを示す学習構造情報５６を用意して、認識器２０２０の学習を行う。
【００８２】
ここで、運用時においては、オブジェクトの位置や向きを複数の方法で表す必要はなく、１つ方法で表したオブジェクトの位置や向きが得られれば十分なこともある。そこで、認識器２０２０は、学習時においてのみ、複数の方法それぞれに対応するオブジェクトの位置や向きを出力し、運用時には、いずれか１つの方法に対応するオブジェクトの位置と向きのみを出力するように構成されてもよい。このようにすることで、複数の方法で定めた位置や向きを利用した認識器２０２０の学習によって群衆のラベルの認識精度を向上させつつ、運用時において認識の処理に要する時間を短くすることができる。
【００８３】
以上、図面を参照して本発明の実施形態について述べたが、これらは本発明の例示であり、上記各実施形態の構成を組み合わせた構成や、上記以外の様々な構成を採用することもできる。
【００８４】
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
１．  画像が入力されたことに応じて、その画像に含まれる群衆の種類を表すラベルと、その群衆の構造を表す構造情報とを出力する認識器と、
学習データを取得する取得部と、を有し、
前記学習データは、画像、並びにその画像を前記認識器に入力したことに応じて出力されるべき前記ラベル及び前記構造情報を含み、
前記学習データに含まれる画像を前記認識器に入力し、前記認識器から出力される前記ラベル及び前記構造情報、並びに前記学習データに含まれる前記ラベル及び前記構造情報を用いて、前記認識器の学習を行う学習部を有し、
前記構造情報は、前記画像に含まれるオブジェクトの位置及び向きを含む、情報処理装置。
２．  前記学習データの前記構造情報は、前記学習データの画像に含まれる群衆を構成するオブジェクトについてのみ、その位置及び向きを示す、１．に記載の情報処理装置。
３．  前記学習データの前記構造情報は、
前記オブジェクトの位置を、前記学習データの画像を分割して得られる複数の部分領域のうちの１つ以上に対応させて表し、
各前記部分領域について、その中に含まれる前記オブジェクトの向きを示す、１．又は２．に記載の情報処理装置。
４．  前記オブジェクトは人であり、
前記学習データの前記構造情報は、
前記学習データの画像に含まれる各前記オブジェクトの位置を、頭部の位置、人体の中心位置、頭部領域の位置、及び人体領域の位置のいずれかとして示し、
前記学習データの画像に含まれる各前記オブジェクトの向きを、頭部の向き、人体の向き、頭部領域の向き、及び人体領域の向きのいずれかとして示す、１．乃至３．いずれか一つに記載の情報処理装置。
５．  前記学習データの前記構造情報には、前記学習データの画像に含まれるオブジェクトについて、密度の分布を表す密度情報及び速度の分布を表す速度情報のいずれか１つ又は双方が含まれ、
前記認識器から出力される前記構造情報には、前記入力される画像におけるオブジェクトについて、前記密度情報及び前記速度情報のいずれか１つ又は双方が含まれる、
１．乃至４．いずれか一つに記載の情報処理装置。
６．  前記認識器は、学習時には前記構造情報を出力し、運用時には前記構造情報を出力しない、１．乃至５．いずれか一つに記載の情報処理装置。
７．  前記認識器はニューラルネットワークで構成され、
前記ニューラルネットワークは、前記ラベルを認識する第１のネットワークと、前記構造情報を認識する第２のネットワークとを含み、
前記第１のネットワークと前記第２のネットワークは１つ以上のノードを互いに共有する、１．乃至６．いずれか一つに記載の情報処理装置。
８．  前記学習データの前記構造情報には、前記学習データの画像に含まれる各前記オブジェクトの位置として、オブジェクトの位置を定める複数の方法それぞれによって定めた位置が含まれ、
前記認識器から出力される前記構造情報には、前記入力される画像に含まれる各前記オブジェクトの位置として、前記複数の方法それぞれに対応する位置が含まれる、１．乃至７．いずれか一つに記載の情報処理装置。
９．  前記学習データの前記構造情報には、前記学習データの画像に含まれる各前記オブジェクトの向きとして、オブジェクトの向きを定める複数の方法それぞれによって定めた向きが含まれ、
前記認識器から出力される前記構造情報には、前記入力される画像に含まれる各前記オブジェクトの向きとして、前記複数の方法それぞれに対応する向きが含まれる、１．乃至８．いずれか一つに記載の情報処理装置。
【００８５】
１０．  コンピュータによって実行される制御方法であって、
前記コンピュータは、画像が入力されたことに応じて、その画像に含まれる群衆の種類を表すラベルと、その群衆の構造を表す構造情報とを出力する認識器を有し、
当該制御方法は、学習データを取得する取得ステップを有し、
前記学習データは、画像、並びにその画像を前記認識器に入力したことに応じて出力されるべき前記ラベル及び前記構造情報を含み、
当該制御方法は、前記学習データに含まれる画像を前記認識器に入力し、前記認識器から出力される前記ラベル及び前記構造情報、並びに前記学習データに含まれる前記ラベル及び前記構造情報を用いて、前記認識器の学習を行う学習ステップを有し、
前記構造情報は、前記画像に含まれるオブジェクトの位置及び向きを含む、制御方法。
１１．  前記学習データの前記構造情報は、前記学習データの画像に含まれる群衆を構成するオブジェクトについてのみ、その位置及び向きを示す、１０．に記載の制御方法。
１２．  前記学習データの前記構造情報は、
前記オブジェクトの位置を、前記学習データの画像を分割して得られる複数の部分領域のうちの１つ以上に対応させて表し、
各前記部分領域について、その中に含まれる前記オブジェクトの向きを示す、１０．又は１１．に記載の制御方法。
１３．  前記オブジェクトは人であり、
前記学習データの前記構造情報は、
前記学習データの画像に含まれる各前記オブジェクトの位置を、頭部の位置、人体の中心位置、頭部領域の位置、及び人体領域の位置のいずれかとして示し、
前記学習データの画像に含まれる各前記オブジェクトの向きを、頭部の向き、人体の向き、頭部領域の向き、及び人体領域の向きのいずれかとして示す、１０．乃至１２．いずれか一つに記載の制御方法。
１４．    前記学習データの前記構造情報には、前記学習データの画像に含まれるオブジェクトについて、密度の分布を表す密度情報及び速度の分布を表す速度情報のいずれか１つ又は双方が含まれ、
前記認識器から出力される前記構造情報には、前記入力される画像におけるオブジェクトについて、前記密度情報及び前記速度情報のいずれか１つ又は双方が含まれる、
１０．乃至１３．いずれか一つに記載の制御方法。
１５．  前記認識器は、学習時には前記構造情報を出力し、運用時には前記構造情報を出力しない、１０．乃至１４．いずれか一つに記載の制御方法。
１６．  前記認識器はニューラルネットワークで構成され、
前記ニューラルネットワークは、前記ラベルを認識する第１のネットワークと、前記構造情報を認識する第２のネットワークとを含み、
前記第１のネットワークと前記第２のネットワークは１つ以上のノードを互いに共有する、１０．乃至１５．いずれか一つに記載の制御方法。
１７．  前記学習データの前記構造情報には、前記学習データの画像に含まれる各前記オブジェクトの位置として、オブジェクトの位置を定める複数の方法それぞれによって定めた位置が含まれ、
前記認識器から出力される前記構造情報には、前記入力される画像に含まれる各前記オブジェクトの位置として、前記複数の方法それぞれに対応する位置が含まれる、１０．乃至１６．いずれか一つに記載の制御方法。
１８．  前記学習データの前記構造情報には、前記学習データの画像に含まれる各前記オブジェクトの向きとして、オブジェクトの向きを定める複数の方法それぞれによって定めた向きが含まれ、
前記認識器から出力される前記構造情報には、前記入力される画像に含まれる各前記オブジェクトの向きとして、前記複数の方法それぞれに対応する向きが含まれる、１０．乃至１７．いずれか一つに記載の制御方法。
【００８６】
１９．  １０．乃至１８．いずれか一つに記載の制御方法の各ステップをコンピュータに実行させるプログラム。
【図１】
2020105146.tif 000003
【図２】
2020105146.tif 000004
【図３】
2020105146.tif 000005
【図４】
2020105146.tif 000006
【図５】
2020105146.tif 000007
【図６】
2020105146.tif 000008
【図７】
2020105146.tif 000009
【図８】
2020105146.tif 000010
【図９】
2020105146.tif 000011
【図１０】
2020105146.tif 000012
【図１１】
2020105146.tif 000013
【手続補正書】
【提出日】令和3年5月12日(2021.5.12)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
画像が入力されたことに応じて、その画像に含まれる群衆の種類を表すラベルと、その群衆の構造を表す構造情報とを出力する認識器と、
学習データを取得する取得部と、を有し、
前記学習データは、画像、並びにその画像を前記認識器に入力したことに応じて出力されるべき前記ラベル及び前記構造情報を含み、
前記学習データに含まれる画像を前記認識器に入力し、前記認識器から出力される前記ラベル及び前記構造情報、並びに前記学習データに含まれる前記ラベル及び前記構造情報を用いて、前記認識器の学習を行う学習部を有し、
前記構造情報は、前記画像に含まれるオブジェクトの位置及び向きを含む、情報処理装置。
【請求項２】
前記学習データの前記構造情報は、
前記オブジェクトの位置を、前記学習データの画像を分割して得られる複数の部分領域のうちの１つ以上に対応させて表し、
各前記部分領域について、その中に含まれる前記オブジェクトの向きを示す、請求項１に記載の情報処理装置。
【請求項３】
前記オブジェクトは人であり、
前記学習データの前記構造情報は、
前記学習データの画像に含まれる各前記オブジェクトの位置を、頭部の位置、人体の中心位置、頭部領域の位置、及び人体領域の位置のいずれかとして示し、
前記学習データの画像に含まれる各前記オブジェクトの向きを、頭部の向き、人体の向き、頭部領域の向き、及び人体領域の向きのいずれかとして示す、請求項１又は２に記載の情報処理装置。
【請求項４】
前記学習データの前記構造情報には、前記学習データの画像に含まれるオブジェクトについて、密度の分布を表す密度情報及び速度の分布を表す速度情報のいずれか１つ又は双方が含まれ、
前記認識器から出力される前記構造情報には、前記入力される画像におけるオブジェクトについて、前記密度情報及び前記速度情報のいずれか１つ又は双方が含まれる、
請求項１乃至３いずれか一項に記載の情報処理装置。
【請求項５】
前記認識器は、学習時には前記構造情報を出力し、運用時には前記構造情報を出力しない、請求項１乃至４いずれか一項に記載の情報処理装置。
【請求項６】
前記認識器はニューラルネットワークで構成され、
前記ニューラルネットワークは、前記ラベルを認識する第１のネットワークと、前記構造情報を認識する第２のネットワークとを含み、
前記第１のネットワークと前記第２のネットワークは１つ以上のノードを互いに共有する、請求項１乃至５いずれか一項に記載の情報処理装置。
【請求項７】
前記学習データの前記構造情報には、前記学習データの画像に含まれる各前記オブジェクトの位置として、オブジェクトの位置を定める複数の方法それぞれによって定めた位置が含まれ、
前記認識器から出力される前記構造情報には、前記入力される画像に含まれる各前記オブジェクトの位置として、前記複数の方法それぞれに対応する位置が含まれる、請求項１乃至６いずれか一項に記載の情報処理装置。
【請求項８】
前記学習データの前記構造情報には、前記学習データの画像に含まれる各前記オブジェクトの向きとして、オブジェクトの向きを定める複数の方法それぞれによって定めた向きが含まれ、
前記認識器から出力される前記構造情報には、前記入力される画像に含まれる各前記オブジェクトの向きとして、前記複数の方法それぞれに対応する向きが含まれる、請求項１乃至７いずれか一項に記載の情報処理装置。
【請求項９】
コンピュータによって実行される制御方法であって、
前記コンピュータは、画像が入力されたことに応じて、その画像に含まれる群衆の種類を表すラベルと、その群衆の構造を表す構造情報とを出力する認識器を有し、
当該制御方法は、学習データを取得する取得ステップを有し、
前記学習データは、画像、並びにその画像を前記認識器に入力したことに応じて出力されるべき前記ラベル及び前記構造情報を含み、
当該制御方法は、前記学習データに含まれる画像を前記認識器に入力し、前記認識器から出力される前記ラベル及び前記構造情報、並びに前記学習データに含まれる前記ラベル及び前記構造情報を用いて、前記認識器の学習を行う学習ステップを有し、
前記構造情報は、前記画像に含まれるオブジェクトの位置及び向きを含む、制御方法。
【請求項１０】
請求項９に記載の制御方法の各ステップをコンピュータに実行させるプログラム。
【国際調査報告】
2020105146.tif 000014
2020105146.tif 000015
2020105146.tif 000016
2020105146.tif 000017