(57)【特許請求の範囲】
【請求項１】
所定の場所を撮像している画像データを取得する取得部と、
前記取得部によって取得された前記画像データから検出された人物を表す人物領域のうち、当該場所の重力方向における底辺近傍の所定の位置を示す座標に基づいて、前記画像データで前記人物が移動可能な領域であると定められた移動可能領域を示すフィルタ情報を生成する生成部と、
前記画像データから人物の候補である人物候補を検出する検出部と、
前記画像データにおいて、前記生成部に生成された前記フィルタ情報に基づいて、前記検出部が検出した人物候補が前記移動可能領域上に存在する場合に人物と特定する特定部と、
を備える情報処理装置。
【請求項２】
前記特定部は、前記検出部が検出した前記人物候補の足が前記移動可能領域上にある場合に、前記人物と特定する、
請求項１に記載の情報処理装置。
【請求項３】
前記特定部は、前記移動可能領域上に前記足がある前記人物候補の領域内から頭又は顔を検出した場合に、前記人物と特定する、
請求項２に記載の情報処理装置。
【請求項４】
前記移動可能領域は、前記画像データにおける床の領域である、
請求項１から３の何れか一項に記載の情報処理装置。
【請求項５】
情報処理装置が有するコンピュータを、
所定の場所を撮像している画像データを取得する取得部と、
前記取得部によって取得された前記画像データから検出された人物を表す人物領域のうち、当該場所の重力方向における底辺近傍の所定の位置を示す座標に基づいて、前記画像データで前記人物が移動可能な領域であると定められた移動可能領域を示すフィルタ情報を生成する生成部と、
前記画像データから人物の候補である人物候補を検出する検出部と、
前記画像データにおいて、前記生成部に生成された前記フィルタ情報に基づいて、前記検出部が検出した人物候補が前記移動可能領域上に存在する場合に人物と特定する特定部と、
して機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、及びプログラムに関する。
【背景技術】
【０００２】
従来、画像に含まれている人物を検出する人物検出技術が知られている。
【０００３】
特許文献１には、人物検出技術を用いて、不審者を検出する技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１９−１２１９０４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、人物検出において、人物では無い物品を、人物と誤検出してしまう場合がある。
【０００６】
本発明は、上記に鑑みてなされたものであって、人物の誤検出を低減することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の第１態様に係る情報処理装置は、取得部と、生成部と、検出部と、特定部とを備える。前記取得部は、所定の場所を撮像している画像データを取得する。生成部は、前記取得部によって取得された前記画像データから検出された人物を表す人物領域のうち、当該場所の重力方向における底辺近傍の所定の位置を示す座標に基づいて、前記画像データで前記人物が移動可能な領域であると定められた移動可能領域を示すフィルタ情報を生成する。前記検出部は、前記画像データから人物の候補である人物候補を検出する。前記特定部は、前記生成部に生成された前記フィルタ情報に基づいて、前記検出部が検出した人物候補が前記移動可能領域上に存在する場合に人物と特定する。
【０００８】
本発明の第２態様に係るプログラムは、情報処理装置が有するコンピュータを、取得部と、検出部と、生成部と、特定部として機能させる。前記取得部は、所定の場所を撮像している画像データを取得する。生成部は、前記取得部によって取得された前記画像データから検出された人物を表す人物領域のうち、当該場所の重力方向における底辺近傍の所定の位置を示す座標に基づいて、前記画像データで前記人物が移動可能な領域であると定められた移動可能領域を示すフィルタ情報を生成する。前記検出部は、前記画像データから人物の候補である人物候補を検出する。前記特定部は、前記生成部に生成された前記フィルタ情報に基づいて、前記検出部が検出した人物候補が前記移動可能領域上に存在する場合に人物と特定する。
【発明の効果】
【０００９】
本発明に係る情報処理装置、及びプログラムは、人物の誤検出を低減するという効果を奏する。
【図面の簡単な説明】
【００１０】
【図１】図１は、本実施例に係る分散型コンピュータの全体構成の一例を示す図である。
【図２】図２は、分散型コンピュータの各装置のハードウェア構成の一例を示す図である。
【図３】図３は、本実施例に係るプラットフォーム間の通信処理の一例を説明するための図である。
【図４】図４は、本実施例に係る分散型コンピュータの各部の機能構成の一例を示す機能ブロック図である。
【図５】図５は、カメラが撮像した画像データからの人物の検出結果の一例を示す図である。
【図６】図６は、除外領域が設定された画像データの一例を示す図である。
【図７】図７は、フィルタ情報の一例を示す図である。
【図８】図８は、人物特定処理部の機能構成の一例を示す機能ブロック図である。
【図９】図９は、プラットフォームの機能構成の一例を示す機能ブロック図である。
【図１０】図１０は、人物検出部による人物候補の検出結果の一例を示す図である。
【図１１】図１１は、人物検出部による人物候補の撮影位置に応じた検出結果の一例を示す図である。
【図１２】図１２は、座標点のプロットの一例を示す図である。
【図１３】図１３は、座標点のプロット位置の一例を示す図である。
【図１４】図１４は、座標点を時系列順に繋げた状態の一例を示す図である。
【図１５】図１５は、本実施例に係るフィルタ生成処理の一例を示すフローチャートである。
【図１６】図１６は、本実施例に係る人物特定処理部における人物特定処理を示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下に、本発明に係る情報処理装置、及びプログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例１】
【００１２】
図１は、本実施例に係る分散型コンピュータ１の全体構成の一例を示す図である。分散型コンピュータ１は、複数のプラットフォーム１０−１〜１０−８と、複数のプラットフォーム１０−１〜１０−８を通信可能に接続する中継装置３０とを備える情報処理システムである。図１に示すように、実施例に係る分散型コンピュータ１は、プラットフォーム１０−１〜１０−８と、中継装置３０とを備えている。
【００１３】
プラットフォーム１０−１〜１０−８は、中継装置３０を介して、通信可能に接続されている。プラットフォーム１０−１〜１０−８は、例えば、中継装置３０が設けられたボード上のスロットに挿入される。また、複数のスロットのうち、何れかのスロットは、プラットフォーム１０−１〜１０−８が挿入されていない空き状態であってもよい。以下の説明では、各プラットフォーム１０−１〜１０−８を区別する必要がなく、任意のプラットフォーム１０−１〜１０−８を示す場合には、プラットフォーム１０と記載する。
【００１４】
プラットフォーム１０−１は、プラットフォーム１０−２〜１０−８を管理して、プラットフォーム１０−２〜１０−８に各種処理を実行させるメインの情報処理装置である。
【００１５】
プラットフォーム１０−１には、モニタ２１と、入力装置２２とが接続されている。モニタ２１は、例えば液晶表示装置等の各種画面を表示する。入力装置２２は、例えばキーボードやマウス等の各種操作を受け付ける。
【００１６】
プラットフォーム１０−２〜１０−８は、プラットフォーム１０−１の要求に基づいて、例えばＡＩ（Artificial  Intelligence）推論処理や画像処理等を実行するサブの情報処理装置である。また、プラットフォーム１０−２〜１０−８は、それぞれが異なる機能を有していてもよいし、複数のプラットフォーム１０毎に機能を有していてもよい。
【００１７】
プラットフォーム１０−１〜１０−８は、ホスト側として動作可能なルートコンプレックス（ＲＣ：Root  Complex）１１−１〜１１−８を有する。以下の説明では、各ルートコンプレックス１１−１〜１１−８を区別する必要がなく、任意のルートコンプレックス１１−１〜１１−８を示す場合には、ルートコンプレックス１１と記載する。
【００１８】
ルートコンプレックス１１は、中継装置３０の各エンドポイント３１−１〜３１−８との通信を実行する。すなわち、プラットフォーム１０と中継装置３０とは、ＰＣＩｅ（Peripheral  Component  Interconnect  Express）等の通信規格により通信可能に接続される。プラットフォーム１０と中継装置３０とは、ＰＣＩｅに限らず他の通信規格により接続されていてもよい。
【００１９】
中継装置３０は、複数のエンドポイント（ＥＰ：End  Point）３１−１〜３１−８を有する。また、中継装置３０は、エンドポイント３１−１〜３１−８に接続されたルートコンプレックス１１を有する複数のプラットフォーム１０間での通信を中継する。
【００２０】
エンドポイント３１−１〜３１−８は、プラットフォーム１０のルートコンプレックス１１との通信を実行する。以下の説明では、各エンドポイント３１−１〜３１−８を区別する必要がなく、任意のエンドポイント３１−１〜３１−８を示す場合には、エンドポイント３１と記載する。
【００２１】
次に、分散型コンピュータ１の各装置のハードウェア構成について説明する。ここで、図２は、分散型コンピュータ１の各装置のハードウェア構成の一例を示す図である。ここで、プラットフォーム１０−１のハードウェア構成を例に説明する。しかし、プラットフォーム１０−２〜１０−８も同様の構成になっている。
【００２２】
プラットフォーム１０−１は、ＡＩ処理や画像処理等の演算処理を行なうコンピュータである。プラットフォーム１０は、ルートコンプレックス１１−１と、プロセッサ１２−１と、メモリ１３−１と、記憶部１４−１と、通信部１５−１とを備える。また、これらは、バスを介して通信可能に接続される。
【００２３】
プロセッサ１２−１は、プラットフォーム１０−１全体を制御する。プロセッサ１２−１は、マルチプロセッサであってもよい。また、プロセッサ１２−１は、例えばＣＰＵ（Central  Processing  Unit），ＭＰＵ（Micro  Processing  Unit），ＧＰＵ（Graphics  Processing  Unit），ＤＳＰ（Digital  Signal  Processor），ＡＳＩＣ（Application  Specific  Integrated  Circuit），ＰＬＤ（Programmable  Logic  Device），ＦＰＧＡ（Field  Programmable  Gate  Array）のいずれか一つであってもよい。また、プロセッサ１２は、ＣＰＵ，ＭＰＵ，ＧＰＵ，ＤＳＰ，ＡＳＩＣ，ＰＬＤ，ＦＰＧＡのうちの２種類以上の要素の組み合わせであってもよい。以下の説明では、プロセッサ１２−１〜１２−８を区別する必要がなく、任意のプロセッサ１２−１〜１２−８を示す場合には、プロセッサ１２と記載する。
【００２４】
メモリ１３−１は、ＲＯＭ（Read  Only  Memory）およびＲＡＭ（Random  Access  Memory）を含む記憶メモリである。メモリ１３−１のＲＯＭには、各種ソフトウェアプログラムやこのプログラム用のデータ類が書き込まれている。メモリ１３−１上のソフトウェアプログラムは、プロセッサ１２に適宜読み込まれて実行される。また、メモリ１３−１のＲＡＭは、一次記憶メモリあるいはワーキングメモリとして利用される。以下の説明では、メモリ１３−１〜１３−８を区別する必要がなく、任意のメモリ１３−１〜１３−８を示す場合には、メモリ１３と記載する。
【００２５】
記憶部１４−１は、ハードディスクドライブ（Hard  Disk  Drive：ＨＤＤ）、ＳＳＤ（Solid  State  Drive）、ストレージクラスメモリ（Storage  Class  Memory：ＳＣＭ）等の記憶装置であって、種々のデータを格納するものである。例えば、記憶部１４−１には各種ソフトウェアプログラムが記憶される。以下の説明では、記憶部１４−１〜１４−８を区別する必要がなく、任意の記憶部１４−１〜１４−８を示す場合には、記憶部１４と記載する。
【００２６】
プラットフォーム１０においては、プロセッサ１２がメモリ１３や記憶部１４に格納されたソフトウェアプログラムを実行することで各種機能を実現する。
【００２７】
なお、上記の各種ソフトウェアプログラムは、必ずしもメモリ１３や記憶部１４に記憶されている必要はない。例えば、媒体読取装置等が読み取り可能な記憶媒体に記憶されたプログラムを、プラットフォーム１０が読み出して実行するようにしてもよい。プラットフォーム１０が読み取り可能な記憶媒体は、例えば、ＣＤ−ＲＯＭやＤＶＤディスク、ＵＳＢ（Universal  Serial  Bus）メモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリ、ハードディスクドライブ等が対応する。また、公衆回線、インターネット、ＬＡＮ等に接続された装置にこのプログラムを記憶させておき、プラットフォーム１０がこれらからプログラムを読み出して実行するようにしてもよい。
【００２８】
通信部１５−１は、カメラ５０（図４参照）等と有線または無線により接続するためのインタフェースである。以下の説明では、通信部１５−１〜１５−８を区別する必要がなく、任意の通信部１５−１〜１５−８を示す場合には、通信部１５と記載する。
【００２９】
次に、中継装置３０について説明する。中継装置３０は、プラットフォーム１０毎に設けられたエンドポイント３１−１〜３１−８と、プロセッサ３２と、メモリ３３と、記憶部３４と、内部バス３５と、ＰＣＩｅバス３６とを備える。以下の説明では、各エンドポイント３１−１〜３１−８を区別する必要がなく、任意のエンドポイント３１−１〜３１−８を示す場合には、エンドポイント３１と記載する。
【００３０】
エンドポイント３１は、プラットフォーム１０毎に設けられ、データの送受信を実行する。例えば、エンドポイント３１は、接続されたプラットフォーム１０からデータを受信した場合に、ＰＣＩｅバス３６を介して、送信先のプラットフォーム１０に接続されたエンドポイント３１に受信したデータを送信する。
【００３１】
例えば、ルートコンプレックス１１は、ＤＭＡ（Direct  Memory  Access）転送により他のプラットフォーム１０にデータを送信する。すなわち、エンドポイント３１は、データの送信元のプラットフォーム１０に接続されたエンドポイント３１から、ＰＣＩｅバス３６を介してデータを受信した場合に、接続されたプラットフォーム１０に受信したデータを送信する。
【００３２】
プロセッサ３２は、中継装置３０全体を制御する。プロセッサ３２は、マルチプロセッサであってもよい。また、プロセッサ３２は、例えばＣＰＵ，ＭＰＵ，ＧＰＵ，ＤＳＰ，ＡＳＩＣ，ＰＬＤ，ＦＰＧＡのいずれか一つであってもよい。また、プロセッサ３２は、ＣＰＵ，ＭＰＵ，ＧＰＵ，ＤＳＰ，ＡＳＩＣ，ＰＬＤ，ＦＰＧＡのうちの２種類以上の要素の組み合わせであってもよい。
【００３３】
メモリ３３は、ＲＯＭ、及びＲＡＭを含む記憶装置である。ＲＯＭには、各種ソフトウェアプログラムやこのプログラム用のデータ類が書き込まれている。メモリ３３に記憶されたプログラムは、プロセッサ３２に読み込まれて実行される。また、ＲＡＭは、ワーキングメモリとして利用される。
【００３４】
記憶部３４は、ハードディスクドライブ、ＳＳＤ、ストレージクラスメモリ等の記憶装置であって、種々のデータを格納するものである。例えば、記憶部３４には各種ソフトウェアプログラムが記憶される。
【００３５】
内部バス３５は、プロセッサ３２、メモリ３３、記憶部３４、及びＰＣＩｅバス３６を通信可能に接続する。
【００３６】
ＰＣＩｅバス３６は、複数のエンドポイント３１、及び内部バス３５を通信可能に接続する。すなわち、ＰＣＩｅバス３６は、複数のエンドポイント３１間でデータを転送可能に接続する。また、ＰＣＩｅバス３６は、例えばＰＣＩｅ規格に準拠したバスである。
【００３７】
次に、中継装置３０に接続されるプラットフォーム１０−１とプラットフォーム１０−２との間における通信処理の一例について説明する。図３は、本実施例に係る分散型コンピュータ１におけるプラットフォーム１０間における通信処理の一例を説明するための図である。ここでは、プラットフォーム１０−１と、プラットフォーム１０−２との間での通信処理の一例について説明するが、他のプラットフォーム１０間も同様に通信を行う。
【００３８】
図３に示すように、分散型コンピュータ１は、例えば、ＰＣＩｅの規格で規定されたレイヤー構造を有している。そして、分散型コンピュータ１は、各階層を介して、プラットフォーム１０間の通信を実行する。
【００３９】
送信元のプラットフォーム１０−１は、ソフトウェアが指定したデータを、トランザクション層、データリンク層、及び物理層（ＰＨＹ）を介して、中継装置３０の物理層（ＰＨＹ）に転送する。
【００４０】
中継装置３０は、送信元のプラットフォーム１０−１から転送されてきたデータを、物理層（ＰＨＹ）、及びデータリンク層を介して、トランザクション層に受け渡す。中継装置３０は、トランザクション層において、送信先のプラットフォーム１０−２に対応するエンドポイント３１にトンネリングによりデータを転送する。中継装置３０は、トランザクション層、データリンク層、及び物理層（ＰＨＹ）を介して、送信先のプラットフォーム１０−２の物理層（ＰＨＹ）に転送する。このように、中継装置３０は、エンドポイント３１間でデータをトンネリングさせることで、送信元のプラットフォーム１０−１からから送信先のプラットフォーム１０−２にデータを転送する。
【００４１】
送信先のプラットフォーム１０−２では、物理層（ＰＨＹ）、データリンク層、及びトランザクション層を介して、データがソフトウェアに受け渡される。
【００４２】
また、中継装置３０に接続された複数のプラットフォーム１０のうち、一のプラットフォーム１０にデータの転送が集中しない場合、異なる任意の組み合わせのプラットフォーム１０間で並行してデータを転送することができる。
【００４３】
例えば、プラットフォーム１０−１に対して、プラットフォーム１０−２、及びプラットフォーム１０−３が通信する場合には、中継装置３０は、プラットフォーム１０−２、及びプラットフォーム１０−３との通信をシリアル処理により実行する。一方、異なるプラットフォーム１０同士が通信し、特定のプラットフォーム１０に通信が集中しない場合には、中継装置３０は、プラットフォーム１０間の通信を並列処理により実行する。
【００４４】
次に、本実施形態の分散型コンピュータ１が有している特徴的な機能について説明する。
【００４５】
図４は、本実施例に係る分散型コンピュータ１の各部の機能構成の一例を示す機能ブロック図である。なお、図４においては、中継装置３０を省略している。
【００４６】
まず、プラットフォーム１０−１について説明する。
【００４７】
プラットフォーム１０−１のプロセッサ１２−１は、メモリ１３−１や記憶部１４−１等に記憶されるプログラムを実行することによって、図４に示す機能を実現するコンピュータである。具体的には、プロセッサ１２−１は、機能部として、画像取得部１００１と、接続制御部１００２と、処理結果取得部１００３と、表示制御部１００４とを備えている。
【００４８】
画像取得部１００１は、カメラ５０から画像データを取得する。画像取得部１００１は、取得した画像データを接続制御部１００２に出力する。また、画像取得部１００１は、取得した画像データを表示制御部１００４に出力する。
【００４９】
接続制御部１００２は、プラットフォーム１０−１からプラットフォーム１０−２〜１０−７に対してデータを出力するためのインタフェースである。
【００５０】
処理結果取得部１００３は、ＡＩ処理の処理結果を取得する。また、処理結果取得部１００３は、取得した処理結果を表示制御部１００４に出力する。
【００５１】
表示制御部１００４は、処理結果取得部１００３が取得したＡＩ処理の処理結果に基づいて、画像取得部１００１が取得した画像データをモニタ２１に表示させる。例えば、表示制御部１００４は、画像データをカメラ５０毎にモニタ２１に同時に表示させる。
【００５２】
次に、プラットフォーム１０−２〜１０−７について説明する。図４に示すように、プラットフォーム１０−２〜１０−７は、協働でＡＩ処理部１００を実現する。ＡＩ処理部１００は、カメラ５０から取得した画像データに対して、ディープラーニング（Deep  Learning）技術を利用した人物の認識等のＡＩ処理を実行する。より詳細には、ＡＩ処理部１００は、人物特定処理、人物紐付け処理、人物分類処理などのＡＩ処理を、分散して実行する。
【００５３】
更に詳しくは、プラットフォーム１０−２〜１０−４のプロセッサ１２−２〜１２−４は、メモリ１３−２〜１３−４や、記憶部１４−２〜１４−４に記憶されるプログラムを実行することによって、人物特定処理を実行する人物特定処理部１０１を実現する。また、プラットフォーム１０−５〜１０−６のプロセッサ１２−５〜１２−６は、メモリ１３−５〜１３−６や、記憶部１４−５〜１４−６に記憶されるプログラムを実行することによって、人物紐付け処理を実行する人物紐付け処理部１０２を実現する。また、プラットフォーム１０−７のプロセッサ１２−７は、メモリ１３−７や、記憶部１４−７に記憶されるプログラムを実行することによって、人物分類処理を実行する人物分類処理部１０３を実現する。
【００５４】
まず、人物特定処理部１０１が実行する人物特定処理について説明する。
【００５５】
ここで、図５は、カメラ５０が撮像した画像データからの人物の検出結果の一例を示す図である。図５に示すように、分散型コンピュータ１は、棚の一部分を人物と誤検出してしまう場合がある。そこで、人物の誤検出を防止する技術が望まれている。
【００５６】
ここで、人物は、床の上面に立っている。一方、人物が立つことが出来ない棚等が設置された領域には、人物はいないものと考えられる。よって、人物特定処理部１０１は、人物がいない領域を検出対象の領域から除外することで、人物の誤検出を低減することができる。
【００５７】
図６は、除外領域が設定された画像データの一例を示す図である。図６に示すように、人物が移動可能な領域を移動可能領域に設定し、移動可能領域以外の人物が移動することができない領域を除外領域に設定する。移動可能領域とは、人物が移動可能な領域であって、画像データにおける例えば床の領域である。除外領域は、人物が移動可能な領域であって、画像データにおける例えば床以外の領域である。そして、人物検出において、床に立っている、つまり床に足が接していることを条件として付加することで人物の検出精度を向上させることができる。
【００５８】
そこで、人物特定処理部１０１は、同一の場所を複数時間撮影した画像データに、除外領域及び移動可能領域が定義されたフィルタ情報を適用する。ここで、図７は、フィルタ情報の一例を示す図である。図７は、図５及び図６に示す画像に対する除外領域及び移動可能領域を示している。そして、図７は、黒色の領域が除外領域を示しており、白色の領域が移動可能領域を示している。フィルタ情報は、例えばビットマップ形式等の画像情報である。
【００５９】
ここで、人物特定処理部１０１の機能構成について説明する。図８は、人物特定処理部１０１の機能構成の一例を示す機能ブロック図である。プラットフォーム１０−２〜１０−４のプロセッサ１２−２〜１２−４は、メモリ１３−２〜１３−４や、記憶部１４−２〜１４−４に記憶されるプログラムを実行することによって、図８に示す機能を実現するコンピュータである。具体的には、プロセッサ１２−２〜１２−４は、機能部として、画像取得部１０１１、人物検出部１０１２、及び人物特定部１０１３を備える。
【００６０】
画像取得部１０１１は、取得部の一例である。画像取得部１０１１は、画像データを取得する。例えば、画像取得部１０１１は、プラットフォーム１０−１を介して、カメラ５０が撮影した画像データを取得する。
【００６１】
人物検出部１０１２は、検出部の一例である。人物検出部１０１２は、画像データから人物の候補である人物候補を検出する。人物検出部１０１２は、例えば、パターン認識により画像データから人物を検出する。
【００６２】
人物特定部１０１３は、特定部の一例である。人物特定部１０１３は、画像データにおいて人物が移動可能な領域である移動可能領域を示すフィルタ情報に基づいて、人物検出部１０１２が検出した人物候補が移動可能領域上に存在する場合に人物と特定する。例えば、人物特定部１０１３は、人物検出部１０１２が検出した人物候補の足が移動可能領域上にある場合に、人物と特定する。また、人物特定部１０１３は、移動可能領域上に足がある人物候補の領域内から頭又は顔を検出した場合に、人物と特定してもよい。人物候補の領域とは、画像データ上において人物検出部１０１２が検出した人物候補の領域である。
【００６３】
図４に戻り、人物紐付け処理部１０２が実行する人物紐付け処理について説明する。
【００６４】
図４に示すように、プラットフォーム１０−５〜２−６のプロセッサ１２−５〜１２−６は、メモリ１３−５〜１３−６や、記憶部１４−５〜１４−６に記憶されるプログラムを実行することによって、人物紐付け処理部１０２を実現する。
【００６５】
人物紐付け処理部１０２は、特定した人物の座標を時系列順に紐付ける。更に詳しくは、人物紐付け処理部１０２は、人物特定処理部１０１が人物であると特定した場合に、人物特定処理部１０１が特定した人物の画像データ上の座標を時系列順に記録する。これにより、人物紐付け処理部１０２は、人物特定処理部１０１が特定した人物の移動の軌跡を記録する。すなわち、人物紐付け処理部１０２は、人物特定処理部１０１が特定した人物を追跡可能にする。
【００６６】
次に、人物分類処理部１０３が実行する人物分類処理について説明する。
【００６７】
図４に示すように、プラットフォーム１０−７のプロセッサ１２−７は、メモリ１３−７や、記憶部１４−７に記憶されるプログラムを実行することによって、人物分類処理部１０３を実現する。
【００６８】
人物分類処理部１０３は、座標を時系列順に紐付けた人物を分類する。更に詳しくは、人物分類処理部１０３は、人物紐付け処理部１０２が追跡可能にした人物を分類分けする。例えば、人物分類処理部１０３は、人物の性別や年齢等の属性毎の分類で分類分けを行う。また、人物分類処理部１０３は、人物の行動等に基づいて不審人物であるか否かで分類分けを行う。
【００６９】
次に、フィルタ情報の生成について説明する。
【００７０】
本実施形態では、プラットフォーム１０−８がフィルタ情報を生成する場合を例に説明する。しかしながら、フィルタ情報は、プラットフォーム１０−８以外のプラットフォーム１０−１〜１０−７が生成してもよいし、図１には示されていない情報処理装置が生成したフィルタ情報を取得してもよい。
【００７１】
フィルタ情報を生成するためには、人物が移動可能な領域を定義する必要がある。すなわち、床を定義する必要がある。床を定義する方法として、例えば計算式等により除外領域を定義する方策が考えられる。しかしながら、カメラ５０は複数ある。また、カメラ５０が設置される場所も複数ある。そのため、多数ある画像データ毎に除外領域を設定することは困難である。そのため、除外領域を容易に設定可能な技術が望まれている。そこで、プラットフォーム１０−８は、多数の人物が移動した移動の軌跡に基づいて、フィルタ情報を生成する。
【００７２】
図９は、プラットフォーム１０−８の機能構成の一例を示す機能ブロック図である。プラットフォーム１０−８のプロセッサ１２−８は、メモリ１３−８や、記憶部１４−８に記憶されるプログラムを実行することによって、図９に示す機能を実現するコンピュータである。具体的には、プロセッサ１２−８は、機能部として、画像取得部１０８１、人物検出部１０８２、人物追跡部１０８３、骨格推定部１０８４、領域算出部１０８５、移動判定部１０８６、フィルタ生成部１０８７、及び完成判定部１０８８を備える。
【００７３】
画像取得部１０８１は、同一の場所を複数時間撮影した画像データを取得する。更に詳しくは、画像取得部１０８１は、カメラ５０が同一の場所を複数時間撮影した画像データを取得する。
【００７４】
人物検出部１０８２は、画像データから人物を検出する。更に詳しくは、人物検出部１０８２は、カメラ５０が撮像した画像データから人物の候補である人物候補を検出する。例えば、人物検出部１０８２は、パターン認識により画像データから人物候補を検出する。また、人物検出部１０８２は、人物候補を検出した場合に、人物候補が含まれる人物領域を画像データに設定する。例えば、人物検出部１０８２は、図５に示すように、人物を囲う矩形形状の人物領域を画像データ上に設定する。さらに、人物検出部１０８２は、人物領域から人物の頭の領域を示す頭領域や、顔の領域を示す顔領域を画像データ上に設定する。
【００７５】
人物追跡部１０８３は、人物検出部１０８２が検出した人物候補の各時間の座標を人物候補毎に記録する。これにより、人物追跡部１０８３は、画像データから検出した人物の移動を追跡する。更に詳しくは、人物追跡部１０８３は、人物検出部１０８２が検出した人物候補に対して、人物を識別可能な人物コードが付与されているか否かを判定する。人物追跡部１０８３は、人物コードを付与していない場合に、人物コードを付与する。そして、人物追跡部１０８３は、人物検出部１０８２が人物候補を検出した座標を時系列順に記録する。一方、人物追跡部１０８３は、人物コードを付与している場合に、人物検出部１０８２が人物候補を検出した座標を人物コードに関連付けて時系列順に記録する。
【００７６】
骨格推定部１０８４は、画像データに含まれる人物の候補である人物候補の骨格を推定する。更に詳しくは、骨格推定部１０８４は、人物検出部１０８２が検出した人物候補の骨格を推定する。また、骨格推定部１０８４は、人物候補の骨格を推定した場合に、各部位がある画像データ上の座標を取得する。例えば、骨格推定部１０８４は、人物候補の足首がある座標を取得する。
【００７７】
領域算出部１０８５は、画像データに含まれる人物の候補である人物候補の画像データ上の領域の縦横比及び面積を算出する。更に詳しくは、領域算出部１０８５は、人物検出部１０８２が検出した人物候補の人物領域の縦横比及び面積を算出する。ここで、図１０は、人物検出部１０８２による人物候補の検出結果の一例を示す図である。図１１は、人物検出部１０８２による人物候補の撮影位置に応じた検出結果の一例を示す図である。図１０に示すように、人物検出部１０８２が人物候補を検出した場合、人物領域は適切な縦横比になる。ところが、人物検出部１０８２が人物以外の物体を人物と誤検出した場合、人物領域は、小さすぎる、幅広すぎる、広すぎる、又は高すぎる等の形状になる。
【００７８】
一方、図１１に示すように、人物候補がカメラ５０の近くにいるか遠くにいるかにより、人物領域の大きさは変化する。そこで、領域算出部１０８５は、画像データ上に設定された人物領域の縦横比及び面積を算出する。そして、領域算出部１０８５は、算出した人物領域の面積が事前に設定された範囲内であって、縦横比が事前に設定された範囲内である場合に、該当する人物候補は人物であると判定する。
【００７９】
移動判定部１０８６は、画像データに含まれる人物の候補である人物候補の画像データ上の領域の面積の変化に基づいて人物候補が移動したか否かを判定する。更に詳しくは、移動判定部１０８６は、人物検出部１０８２が検出した人物候補の人物領域の大きさの変化に基づいて、人物の移動を検出する。ここで、人物は移動する。一方、人物検出部１０８２の検出結果が人物ではない場合には移動しない。そこで、移動判定部１０８６は、人物候補の移動を検出するか否かに基づいて、人物であるか否かを判定する。例えば、移動判定部１０８６は、人物領域の大きさが２０バーセント等の閾値以上変化した場合に、人物が移動していると判定する。
【００８０】
例えば、人物候補がカメラ５０に近づいた場合、又は人物候補がカメラ５０から遠ざかった場合に、図１１に示すように、人物領域の大きさが変化する。また、人物候補がカメラ５０の撮影領域に進入した場合、又は人物がカメラ５０の撮影領域から退出した場合に、撮影領域の境界線で人物領域の大きさが変化する。具体的には、撮影領域に人物が進入する場合、進入直後には体の一部分が撮影領域にあるが、時間が経過するに従い撮影領域にある体の部分が増加する。一方、撮影領域に人物が退出する場合、退出直後には体の略全部が撮影領域にあるが、時間が経過するに従い撮影領域になる体の部分が減少する。このように、人物候補がカメラ５０の撮影領域に進入、又は退出する場合に、人物領域の大きさが変化する。移動判定部１０８６は、人物領域の大きさが閾値以上変化するか否かに基づいて、人物の移動を検出する。
【００８１】
フィルタ生成部１０８７は、人物追跡部１０８３が記録した人物候補毎の座標を時系列順に繋げた軌跡に基づいて、画像データにおいて人物が移動可能な領域である移動可能領域を示すフィルタ情報を生成する。更に詳しくは、フィルタ生成部１０８７は、人物検出部１０８２が検出した人物候補のうち、骨格推定部１０８４、領域算出部１０８５、及び移動判定部１０８６が人物であると判定した人物の人物コードを抽出する。フィルタ生成部１０８７は、抽出した人物コードの人物について、人物追跡部１０８３が記録した各時間の座標を取得する。
【００８２】
フィルタ生成部１０８７は、取得した各時間の座標を示す座標点をプロットする。ここで、図１２は、座標点のプロットの一例を示す図である。図１２に示すように、フィルタ生成部１０８７は、人物の人物領域の底辺の中央に座標点をプロットする。なお、フィルタ生成部１０８７は、人物の人物領域の底辺の中央に限らず、他の位置に座標点をプロットしてもよい。
【００８３】
図１３は、座標点のプロット位置の一例を示す図である。図１３（ａ）は、人物領域の底辺の中央に座標点をプロットした状態を示している。図１３（ｂ）は、人物領域の上辺の左端に座標点をプロットした状態を示している。図１３（ｃ）は、人物領域の幅方向及び高さ方向の中央に座標点をプロットした状態を示している。図１３（ｄ）は、人物領域の底辺の左端に座標点をプロットした状態を示している。図１３に示すように、座標点は、人物の人物領域の底辺の中央に限らず、人物領域における何れの位置であってもよい。
【００８４】
また、フィルタ生成部１０８７は、各時間の座標毎に、座標点をプロットする。フィルタ生成部１０８７は、各座標点の基になった座標を取得した時系列順に、プロットした各座標点を繋げる。ここで、図１４は、座標点を時系列順に繋げた状態の一例を示す図である。図１４に示すように、フィルタ生成部１０８７は、同一人物の座標点を時系列順に繋げることで人物が移動した軌跡を生成する。１人の移動の軌跡は線であるが、複数の人物が移動することで軌跡は面になる。フィルタ生成部１０８７は、複数人の移動の軌跡に基づいて、人物が移動可能な領域である移動可能領域を示すフィルタ情報を生成する。
【００８５】
ここで、移動可能領域は、人物が移動可能な領域を示している。よって、フィルタ生成部１０８７は、人物ではない物体の移動の軌跡に基づいて、フィルタ情報を生成すべきではない。そこで、フィルタ生成部１０８７は、骨格推定部１０８４が骨格を推定できた人物候補の人物の軌跡に基づいて、フィルタ情報を生成する。また、フィルタ生成部１０８７は、領域算出部１０８５が算出した縦横比及び面積が設定範囲内である人物候補の人物の軌跡に基づいて、フィルタ情報を生成する。また、フィルタ生成部１０８７は、移動判定部１０８６が移動したと判定した人物候補の人物の軌跡に基づいて、フィルタ情報を生成する。
【００８６】
なお、フィルタ生成部１０８７は、骨格推定部１０８４、領域算出部１０８５、及び移動判定部１０８６のうち、全ての人物であると判定した場合に該当する人物の軌跡に基づいてフィルタ情報を生成してもよい。または、フィルタ生成部１０８７は、これらの機能部の判定結果の多数決により人物であると判定された場合に該当する人物の軌跡に基づいてフィルタ情報を生成してもよい。または、フィルタ生成部１０８７は、これらの機能部のうちの何れか一つが人物であると判定した場合に該当する人物の軌跡に基づいてフィルタ情報を生成してもよい。
【００８７】
ここで、図１１にて説明したように、カメラ５０から近い位置に人物がいれば人物領域は大きくなり、カメラ５０から遠い位置に人物がいれば人物領域は小さくなる。そして、軌跡は、人物が通過した箇所を示している。よって、カメラ５０から遠い位置の軌跡の太さを、カメラ５０から近い位置の軌跡の太さと同じにした場合、本来、人物が通過していない箇所まで通過したことになってしまう。一方、カメラ５０から近い位置の軌跡の太さを、カメラ５０から遠い位置の軌跡の太さと同じにした場合、本来は通過した箇所が通過していないことになってしまう。
【００８８】
そこで、フィルタ生成部１０８７は、画像データ上の人物の位置に応じて軌跡の太さを変更する。ここで、人物がカメラ５０から遠ざかるに従い、人物の位置は画像データの上方に移動する。そこで、フィルタ生成部１０８７は、画像データにおける座標点のＸ軸方向の座標に応じて軌跡の太さを変更する。例えば、フィルタ生成部１０８７は、人物領域の幅の１０パーセントの太さに変更する。
【００８９】
また、フィルタ生成部１０８７は、軌跡と軌跡との間隙を埋めることで、フィルタ情報を生成する。ここで、移動可能領域を全て軌跡で生成しようとすると多くの時間がかかってしまう。そこで、フィルタ生成部１０８７は、軌跡と軌跡との間隙を通過箇所とみなして補充することで生成時間の短縮を図ることができる。一方、全ての間隙を補充すると必要以上に補充してしまうことになる。
【００９０】
例えば、通路の中央に物品が置かれている場合を想定する。この場合に、人物は物品を避けて通過するため物品の両側に軌跡が生成される。そのため、全ての間隙を補充しようとすると、物品が置かれている箇所も補充の対象となるが、物品が置かれている箇所は人物が通過しないため軌跡を補充すべきではない。そこで、フィルタ生成部１０８７は、軌跡と軌跡との間隙の距離が閾値以下の場合に、間隙を補充する。ここで、閾値は、任意の値であってもよいし、計算式により算出される値であってもよいし、その他の値であってもよい。例えば、閾値は、Ｘ軸方向の座標に応じて決定される値であってもよいし、人物領域の幅に応じて決定される値であってもよいし、その他の値であってもよい。
【００９１】
完成判定部１０８８は、フィルタ情報の生成が完了したか否かを判定する。ここで、フィルタ情報の生成完成の判定基準は、任意の条件を設定することができる。例えば、完成判定部１０８８は、人物が設定人数以上通過しても移動可能領域が増加しない場合に生成完了と判定してもよいし、設定時間が経過しても移動可能領域が増加しない場合に生成完了と判定してもよいし、カメラ５０が撮影した動画が終了した場合に生成完了と判定してもよい。
【００９２】
次に、プラットフォーム１０−８によるフィルタ生成処理について説明する。図１５は、本実施例に係るフィルタ生成処理の一例を示すフローチャートである。フィルタ生成処理は、フィルタ情報を生成する処理である。
【００９３】
人物検出部１０８２は、カメラ５０から取得した画像データから人物候補を検出する人物検出処理を実行する（ステップＳ１）。
【００９４】
人物追跡部１０８３は、画像データ上における人物候補の座標を人物コード毎に時系列順に記録する（ステップＳ２）。
【００９５】
骨格推定部１０８４は、人物検出部１０８２が検出した人物候補の骨格を推定する（ステップＳ３）。
【００９６】
領域算出部１０８５は、人物検出部１０８２が検出した人物候補の人物領域の縦横比を算出する（ステップＳ４）。
【００９７】
領域算出部１０８５は、人物検出部１０８２が検出した人物候補の人物領域の面積を算出する（ステップＳ５）。
【００９８】
移動判定部１０８６は、人物検出部１０８２が検出した人物候補が移動した否かを判定する（ステップＳ６）。
【００９９】
フィルタ生成部１０８７は、骨格推定部１０８４、領域算出部１０８５、及び移動判定部１０８６の判定結果に基づいて、人物検出部１０８２が検出した人物候補が人物であるか否かを判定する（ステップＳ７）。人物候補が人物ではないと判定した場合に（ステップＳ７；Ｎｏ）、プラットフォーム１０−８は、ステップＳ１に移行する。
【０１００】
人物候補が人物である場合に（ステップＳ７；Ｙｅｓ）、フィルタ生成部１０８７は、人物の移動の軌跡を生成する（ステップＳ８）。
【０１０１】
フィルタ生成部１０８７は、軌跡と軌跡との間隙の距離が閾値以下の間隙を補充する（ステップＳ９）。すなわち、フィルタ生成部１０８７は、移動可能領域に擬制する。
【０１０２】
完成判定部１０８８は、フィルタ情報完成の判定基準が満たされたか否かを判定する（ステップＳ１０）。フィルタ情報完成の判定基準が満たされていない場合に（ステップＳ１０；Ｎｏ）、プラットフォーム１０−８は、ステップＳ１に移行する。
【０１０３】
フィルタ情報完成の判定基準が満たされた場合に（ステップＳ１０；Ｙｅｓ）、プラットフォーム１０−８は、フィルタ生成処理を終了する。
【０１０４】
次に、プラットフォーム１０−２〜１０−４の人物特定処理部１０１における人物特定処理について説明する。本実施形態の人物特定処理は、上述した図１５で示したフィルタ生成処理で生成されたフィルタ情報を用いる。フィルタ情報を用いることで、処理負担が軽いにも関わらず高精度の人物の特定が可能となる。図１６は、本実施例に係る人物特定処理部１０１における人物特定処理の一例を示すフローチャートである。
【０１０５】
画像取得部１０１１は、プラットフォーム１０−１を介して、カメラ５０が撮影した画像データを取得する（ステップＳ２１）。
【０１０６】
人物検出部１０１２は、画像データ上における、人物である可能性があると考えられる表示領域を、人物候補として検出する（ステップＳ２２）。人物候補の検出手法としては、例えば、パターン認識が考えられるが他の手法を用いてもよい。
【０１０７】
人物特定部１０１３は、人物検出部１０１２によって検出された人物候補が、フィルタ生成部１０８７によって生成されたフィルタ情報で表された移動可能領域に存在するか否かを判定する（ステップＳ２３）。存在しないと判定した場合（ステップＳ２３：Ｎｏ）、当該人物候補は人物でないと判断して、ステップＳ２５の処理に進む。
【０１０８】
一方、人物特定部１０１３は、人物検出部１０１２によって検出された人物候補が、フィルタ生成部１０８７によって生成されたフィルタ情報で表された移動可能領域に存在すると判定した場合（ステップＳ２３：Ｙｅｓ）、当該人物候補を、人物と特定する（ステップＳ２４）。人物候補が移動領域に存在すると判断する基準としては、例えば、人物候補（として検出された表示領域）の下端または人物候補（として検出された表示領域）の下端から所定の領域が、移動可能領域に含まれている等が考えられる。なお、判定基準はこのような手法に制限するものではなく、当該移動可能領域に人物が存在していることを推定可能な判定基準であればよい。
【０１０９】
そして、人物特定処理部１０１は、画像データに含まれている全ての人物候補について特定処理が終了したか否かを判定する（ステップＳ２５）。全ての人物候補について特定処理が終了してないと判定した場合（ステップＳ２５：Ｎｏ）、再びステップＳ２３から処理を行う。
【０１１０】
一方、人物特定処理部１０１は、全ての人物候補について特定処理が終了したと判定した場合（ステップＳ２５：Ｙｅｓ）、処理を終了する。
【０１１１】
図１６に示される処理で示されるように、人物特定部１０１３は、フィルタ情報に基づいて、人物検出部１０１２が検出した人物候補が移動可能領域上に存在する場合に人物と特定する。すなわち、人物特定部１０１３は、人物がいない領域で人物候補が検出された場合、人物ではないと判断する。従って、本実施例に係るプラットフォーム１０−２〜１０−４は、人物の誤検出を低減することができる。
【０１１２】
以上のように、本実施例に係るプラットフォーム１０−８によれば、画像取得部１０８１は、同一の場所を複数時間撮影した画像データを取得する。人物追跡部１０８３は、人物検出部１０８２が検出した人物候補の各時間の座標を人物候補毎に記録する。フィルタ生成部１０８７は、骨格推定部１０８４、領域算出部１０８５、及び移動判定部１０８６の判定結果に基づいて、人物検出部１０８２が画像データから検出した人物候補から人物を特定する。ここで、多数の人物の座標を時系列順に繋げた軌跡を合わせることで、人物が移動可能な領域が示された面になる。フィルタ生成部１０８７は、人物追跡部１０８３が記録した各人物の座標を時系列順に繋げた軌跡に基づいて、移動可能領域が示されたフィルタ情報を生成する。従って、本実施例に係るプラットフォーム１０−８は、フィルタ情報を生成することができる。
【０１１３】
上述の実施形態では、各部のバス（例えば、拡張バス）又はＩ／ＯインタフェースとしてＰＣＩｅを例に挙げて説明したが、バスまたはＩ／ＯインタフェースはＰＣＩｅに限定されない。例えば、各部のバスまたはＩ／Ｏインタフェースは、データ転送バスによって、デバイス（周辺制御コントローラ）とプロセッサとの間でデータ転送を行える技術であればよい。データ転送バスは、１個の筐体等に設けられたローカルな環境（例えば、１つのシステム又は１つの装置）で高速にデータを転送できる汎用のバスであってもよい。Ｉ／Ｏインタフェースは、パラレルインタフェース及びシリアルインタフェースの何れであってもよい。
【０１１４】
Ｉ／Ｏインタフェースは、シリアル転送の場合、ポイント・ツー・ポイント接続ができ、データをパケットベースで転送可能な構成でよい。なお、Ｉ／Ｏインタフェースは、シリアル転送の場合、複数のレーンを有してよい。Ｉ／Ｏインタフェースのレイヤー構造は、パケットの生成及び復号を行うトランザクション層と、エラー検出等を行うデータリンク層と、シリアルとパラレルとを変換する物理層とを有してよい。また、Ｉ／Ｏインタフェースは、階層の最上位であり１又は複数のポートを有するルートコンプレックス、Ｉ／Ｏデバイスであるエンドポイント、ポートを増やすためのスイッチ、及び、プロトコルを変換するブリッジ等を含んでよい。Ｉ／Ｏインタフェースは、送信するデータとクロック信号とをマルチプレクサによって多重化して送信してもよい。この場合、受信側は、デマルチプレクサでデータとクロック信号を分離してよい。
【符号の説明】
【０１１５】
１  分散型コンピュータ
１０  プラットフォーム
２１  モニタ
３０  中継装置
５０  カメラ
１００  ＡＩ処理部
１０１  人物特定処理部
１０２  人物紐付け処理部
１０３  人物分類処理部
１００１、１０１１、１０８１  画像取得部
１００２  接続制御部
１００３  処理結果取得部
１００４  表示制御部
１０１２、１０８２  人物検出部
１０１３  人物特定部
１０８３  人物追跡部
１０８４  骨格推定部
１０８５  領域算出部
１０８６  移動判定部
１０８７  フィルタ生成部
１０８８  完成判定部
【要約】
【課題】人物の誤検出を低減する。
【解決手段】情報処理装置は、取得部と、検出部と、特定部とを備える。前記取得部は、画像データを取得する。前記検出部は、前記画像データから人物の候補である人物候補を検出する。前記特定部は、前記画像データにおいて前記人物が移動可能な領域である移動可能領域を示すフィルタ情報に基づいて、前記検出部が検出した人物候補が前記移動可能領域上に存在する場合に人物と特定する。
【選択図】図８【図１】
0006754087.tif 000002
【図２】
0006754087.tif 000003
【図３】
0006754087.tif 000004
【図４】
0006754087.tif 000005
【図５】
0006754087.tif 000006
【図６】
0006754087.tif 000007
【図７】
0006754087.tif 000008
【図８】
0006754087.tif 000009
【図９】
0006754087.tif 000010
【図１０】
0006754087.tif 000011
【図１１】
0006754087.tif 000012
【図１２】
0006754087.tif 000013
【図１３】
0006754087.tif 000014
【図１４】
0006754087.tif 000015
【図１５】
0006754087.tif 000016
【図１６】
0006754087.tif 000017