IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ キヤノン株式会社の特許一覧

特許7538631画像処理装置、画像処理方法、及びプログラム
<>
  • 特許-画像処理装置、画像処理方法、及びプログラム 図1
  • 特許-画像処理装置、画像処理方法、及びプログラム 図2
  • 特許-画像処理装置、画像処理方法、及びプログラム 図3
  • 特許-画像処理装置、画像処理方法、及びプログラム 図4
  • 特許-画像処理装置、画像処理方法、及びプログラム 図5
  • 特許-画像処理装置、画像処理方法、及びプログラム 図6
  • 特許-画像処理装置、画像処理方法、及びプログラム 図7
  • 特許-画像処理装置、画像処理方法、及びプログラム 図8
  • 特許-画像処理装置、画像処理方法、及びプログラム 図9
  • 特許-画像処理装置、画像処理方法、及びプログラム 図10
  • 特許-画像処理装置、画像処理方法、及びプログラム 図11
  • 特許-画像処理装置、画像処理方法、及びプログラム 図12
  • 特許-画像処理装置、画像処理方法、及びプログラム 図13
  • 特許-画像処理装置、画像処理方法、及びプログラム 図14
  • 特許-画像処理装置、画像処理方法、及びプログラム 図15
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-14
(45)【発行日】2024-08-22
(54)【発明の名称】画像処理装置、画像処理方法、及びプログラム
(51)【国際特許分類】
   G06T 7/20 20170101AFI20240815BHJP
   G06T 7/00 20170101ALI20240815BHJP
   H04N 7/18 20060101ALI20240815BHJP
【FI】
G06T7/20 300
G06T7/00 350C
H04N7/18 G
【請求項の数】 17
(21)【出願番号】P 2020103229
(22)【出願日】2020-06-15
(65)【公開番号】P2021196899
(43)【公開日】2021-12-27
【審査請求日】2023-06-08
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】110003281
【氏名又は名称】弁理士法人大塚国際特許事務所
(72)【発明者】
【氏名】馬塲 康夫
(72)【発明者】
【氏名】牟田 元
(72)【発明者】
【氏名】矢野 光太郎
【審査官】新井 則和
(56)【参考文献】
【文献】特開2003-346159(JP,A)
【文献】特開2012-073971(JP,A)
【文献】特開2019-067208(JP,A)
【文献】特開2018-139388(JP,A)
【文献】特開2020-071783(JP,A)
【文献】特開2007-272733(JP,A)
【文献】伊藤 渡,上田 博唯,物体検出状態の階層的解析による複数物体追跡方式の提案,電子情報通信学会技術研究報告 Vol.97 No.40,1997年05月15日
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/20
G06T 7/00
H04N 7/18
(57)【特許請求の範囲】
【請求項1】
動画像を取得する取得手段と、
前記動画像に基づいて、特定期間における対象物の動きを推定する推定手段と、
前記推定手段によって得られた、第1の期間における対象物の動きを示す第1の動きベクトルと、第2の期間における対象物の動きを示す第2の動きベクトルと、のマッチングにより、前記第1の期間及び前記第2の期間にわたる前記対象物の移動軌跡を生成する追跡手段とを備え
前記追跡手段は、前記第1の動きベクトルの終点の位置と、前記第2の動きベクトルの始点の位置との距離に少なくとも基づくコストがより小さくなるように前記マッチングを行う
とを特徴とする画像処理装置。
【請求項2】
前記第2の期間は前記第1の期間より後の期間であことを特徴とする、請求項に記載の画像処理装置。
【請求項3】
前記第1の期間の終了時刻と、前記第2の期間の開始時刻とが一致することを特徴とする、請求項1または2に記載の画像処理装置。
【請求項4】
前記推定手段は、前記動画像に含まれる、前記第1の期間の開始時刻に撮像された画像と、前記第1の期間の終了時刻に撮像された画像と、に基づいて、前記第1の期間における対象物の動きを推定し、前記動画像に含まれる、前記第2の期間の開始時刻に撮像された画像と、前記第2の期間の終了時刻に撮像された画像と、に基づいて、前記第2の期間における対象物の動きを推定することを特徴とする、請求項1からのいずれか1項に記載の画像処理装置。
【請求項5】
前記追跡手段は、前記第1の期間における対象物の動きを示す前記第1の動きベクトルにマッチングする前記第2の期間における対象物の動きを示す動きベクトルが見つからない場合、前記第1の期間における対象物の動きを示す前記第1の動きベクトルに基づいて前記第2の期間における対象物の動きを推定することを特徴とする、請求項1からのいずれか1項に記載の画像処理装置。
【請求項6】
前記推定手段は、前記動画像における前記対象物の位置座標と、前記動画像の各位置について前記特定期間における前記対象物の移動量を表現する速度分布とを推定し、前記位置座標及び速度分布に基づいて前記特定期間における前記対象物の動きを推定することを特徴とする、請求項1からのいずれか1項に記載の画像処理装置。
【請求項7】
前記推定手段は、前記動画像に含まれる画像上の前記対象物の密度分布を推定し、前記密度分布に基づいて前記画像の各位置が前記対象物の代表点を表すかどうかを識別する2クラス分類を行うことにより、前記対象物の位置座標を推定することを特徴とする、請求項に記載の画像処理装置。
【請求項8】
前記推定手段は、前記動画像における前記対象物の位置座標と速度分布とを同時に推定することを特徴とする、請求項又はに記載の画像処理装置。
【請求項9】
前記速度分布は、前記動画像の各位置について前記特定期間における対象物のX軸方向への移動量を表現するX方向速度分布と、前記動画像の各位置について前記特定期間における対象物のY軸方向への移動量を表現するY方向速度分布と、を含むことを特徴とする、請求項からのいずれか1項に記載の画像処理装置。
【請求項10】
前記推定手段は、前記速度分布における、前記対象物の位置座標を基準として定められる領域の値に基づいて、前記特定期間における前記対象物の移動量を推定し、前記対象物の位置座標及び前記対象物の移動量に基づいて前記対象物の動きを推定することを特徴とする、請求項からのいずれか1項に記載の画像処理装置。
【請求項11】
前記推定手段は、ニューラルネットワークを用いて前記位置座標及び前記速度分布の少なくとも1つを推定することを特徴とする、請求項から10のいずれか1項に記載の画像処理装置。
【請求項12】
前記取得手段は、前記動画像に含まれるそれぞれの画像から、前記画像の一部である1以上の部分画像を抽出し、
前記推定手段は、それぞれの前記部分画像中の対象物の動きを推定することを特徴とする、請求項1から11のいずれか1項に記載の画像処理装置。
【請求項13】
前記取得手段は、前記画像を複数の領域に分割し、前記複数の領域から選択された1以上の領域のそれぞれについて、前記領域及び前記領域のマージン領域から前記部分画像を抽出することを特徴とする、請求項12に記載の画像処理装置。
【請求項14】
前記対象物の移動軌跡に基づいて、1以上の前記対象物の流れを計測する計測手段をさらに備えることを特徴とする、請求項1から13のいずれか1項に記載の画像処理装置。
【請求項15】
前記計測手段は、前記対象物の流れが計測される計測領域によって区切られる一方の領域から他方の領域へと移動した前記対象物の数と、前記他方の領域から前記一方の領域へと移動した前記対象物の数と、の差分を算出することを特徴とする、請求項14に記載の画像処理装置。
【請求項16】
画像処理装置が行う画像処理方法であって、
動画像を取得する工程と、
前記動画像に基づいて、特定期間における対象物の動きを推定する工程と、
推定により得られた、第1の期間における対象物の動きを示す第1の動きベクトルと、第2の期間における対象物の動きを示す第2の動きベクトルと、のマッチングにより、前記第1の期間及び前記第2の期間にわたる前記対象物の移動軌跡を生成する工程とを備え
前記移動軌跡を生成する工程は、前記第1の動きベクトルの終点の位置と、前記第2の動きベクトルの始点の位置との距離に基づくコストがより小さくなるように前記マッチングを行うことを特徴とする画像処理方法。
【請求項17】
コンピュータを、請求項1乃至15の何れか1項に記載の画像処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は画像処理装置、画像処理方法、及びプログラムに関し、特にビデオカメラ又は防犯カメラ等で撮像された動画像の解析技術に関する。
【背景技術】
【0002】
近年、カメラ等で撮像された動画像から、撮影領域における対象物(例えば人)の流れ(例えば人数又は方向)を解析する装置が提案されている。このような流れを解析するためには、まず、計測対象である人物の検出及び追跡が行われる。特許文献1は、検出された頭部の画像特徴量の一致の程度に基づいて、各フレームにおける頭部が同一の人物であるかどうかを判別することにより、人物の追跡を行う方法を提案している。また、非特許文献1は、各フレームで検出されたオブジェクト点同士を貪欲な方法で対応付けることで、オブジェクトの点の追跡を行う方法が開示されている。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2010-273112号公報
【非特許文献】
【0004】
【文献】Khurram Shafique and Mubarak Shah. "A Non-Iterative Greedy Algorithm for Multi-frame Point Correspondence", IEEE transactions on pattern analysis and machine intelligence (2005).
【発明の概要】
【発明が解決しようとする課題】
【0005】
対象物の流れを高精度で計測するためには、対象物の追跡を高精度に行うことが求められる。特許文献1に記載された方法では、頭部の画像特徴量の一致の程度に基づいて人物の追跡が行われるが、頭部が隠れると画像特徴量の品質が低下するため、特に混雑シーンにおいて追跡の程度が低下しやすい。また、非特許文献1に記載された異なるフレーム上の点同士を対応付ける方法においては、仮に時刻の差をΔt、点の平均移動速度をvとすると、点の位置は平均してvΔtだけずれることになる。点の密度が小さい場合は、点の周囲vΔtに他の点がある確率は小さいため、対応付けは高い確率で成功する。しかし、点の密度が大きくなるに従い、点の周囲vΔtに他の点が出現する確率が大きくなるため、点の対応付けに失敗しやすくなり、点の追跡精度が低下する。
【0006】
本発明は、特に混雑状況下において、動画像における対象物の追跡精度を向上させることを目的とする。
【課題を解決するための手段】
【0007】
本発明の目的を達成するために、本発明の一実施形態に係る画像処理装置は以下の構成を備える。すなわち、
動画像を取得する取得手段と、
前記動画像に基づいて、特定期間における対象物の動きを推定する推定手段と、
前記推定手段によって得られた、第1の期間における対象物の動きを示す情報と、第2の期間における対象物の動きを示す情報と、のマッチングにより、前記第1の期間及び前記第2の期間にわたる前記対象物の移動軌跡を生成する追跡手段と、
を備える。
【発明の効果】
【0008】
特に混雑状況下において、動画像における対象物の追跡精度を向上させることができる。
【図面の簡単な説明】
【0009】
図1】画像処理装置のハードウェア構成の一例を示す図。
図2】画像処理装置の機能構成の一例を示す図。
図3】画像処理装置の処理の流れの一例を示す図。
図4】入力画像から部分画像を抽出する方法の一例を示す図。
図5】部分画像の中央領域及びマージン領域を説明する図。
図6】入力画像における人物の密度分布推定の一例を示す図。
図7】密度分布からの人物の位置座標推定の一例を示す図。
図8】位置マップから人物の位置座標を求める処理の一例を示す図。
図9】速度分布を推定する処理の一例を示す図。
図10】移動ベクトルを空いてする処理の一例を示す図。
図11】マッチングにより人物の移動軌跡を求める処理の一例を示す図。
図12】マッチングで用いられるコスト行列及びマッチング結果の一例を示す図。
図13】移動軌跡が途切れた場合に移動軌跡を補完する方法を示す図。
図14】人物の移動軌跡から流量を計測する方法の一例を示す図。
図15】人物の移動軌跡から流量を計測する方法の一例を示す図。
【発明を実施するための形態】
【0010】
以下、添付図面を参照して実施形態を詳しく説明する。なお、以下の実施形態は特許請求の範囲に係る発明を限定するものではない。実施形態には複数の特徴が記載されているが、これらの複数の特徴の全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。さらに、添付図面においては、同一若しくは同様の構成に同一の参照番号を付し、重複した説明は省略する。
【0011】
[実施形態1]
図1は、本発明の一実施形態に係る画像処理装置100のハードウェア構成例を示す。画像処理装置100は、制御装置11、記憶装置12、演算装置13、入力装置14、出力装置15、及びI/F装置16を有する。
【0012】
制御装置11は、画像処理装置100の全体を制御する装置である。記憶装置12は、制御装置11の動作に必要なプログラム及びデータを保持する。演算装置13は、制御装置11からの制御に基づき、必要な演算処理を実行する。例えば、演算装置13は、後述するニューラルネットワーク演算を行ってもよい。入力装置14は、ヒューマンインターフェースデバイス等であり、ユーザの操作による入力を取得する。出力装置15は、ディスプレイ等であり、画像処理装置100が生成した処理結果等をユーザに提示する。
【0013】
I/F装置16は、ユニバーサルシリアルバス、イーサネット(登録商標)、若しくは光ケーブル等の有線インターフェース、又はWi-Fi若しくはBluetooth(登録商標)等の無線インターフェースである。I/F装置16を介して、他の装置を画像処理装置100に接続することができる。例えば、I/F装置16にはカメラ等の撮像装置を接続することができ、I/F装置16を介して画像処理装置100は撮像画像を取得することができる。別の例として、画像処理装置100は、I/F装置16を介して処理結果を外部に送信することができる。さらなる例として、画像処理装置100は、動作に必要なプログラム又はデータ等をI/F装置16を介して取得することができる。
【0014】
後述する画像処理装置100の機能は、例えば、プロセッサ(例えば制御装置11)が、メモリ(例えば記憶装置12)上のプログラムに従って動作することにより実現することができる。上記の記憶装置12又はその他の記憶媒体は、このようなプログラムを格納することができる。もっとも、後述する画像処理装置100の少なくとも一部の機能は、専用のハードウェアによって実現されてもよい。また、本発明の一実施形態に係る画像処理装置は、例えばネットワークを介して接続された複数の装置によって構成されていてもよい。
【0015】
図2は、本発明の一実施形態に係る画像処理装置100の機能構成例を示す。画像処理装置100は、機能構成として、取得部201、密度推定部202、座標推定部203、速度推定部204、移動推定部205、追跡部206、計測部207を有している。
【0016】
取得部201は動画像を取得する。取得部201が取得した動画像に対して、対象物の流れを計測するための解析が行われる。対象物の流れとは、画像上での対象物の流れであってもよいし、画像解析により推定される現実空間における対象物の流れであってもよい。なお、解析の対象物は特に限定されず、人物、自転車若しくはバイク等の乗り物、車若しくはトラック等の車両、又は家畜等の動物等が挙げられる。
【0017】
動画像とは、例えば、ストリーミング、動画ファイル、フレーム毎に保存された一連の画像ファイル、又はメディアに保存された動画等であり、これらは複数のフレーム画像を含んでいる。複数の画像のそれぞれは、例えば、同一の場所にある撮像装置により異なる時刻に撮像されていてもよい。取得部201は、CMOSセンサー若しくはCCDセンサー等の固体撮像素子、又はこれらの固体撮像素子を備えるカメラ等の撮像装置から動画像を取得することができる。また、取得部201は、ハードディスク若しくはSSD等の記憶装置、又は記録メディア等から、動画像データを取得してもよい。
【0018】
密度推定部202、座標推定部203、速度推定部204、及び移動推定部205は、取得部201が取得した動画像に基づいて、特定期間における対象物の動きを推定する。以下では、本実施形態に係る対象物の動きの推定方法について説明する。本実施形態では、密度推定部202及び座標推定部203が対象物の位置座標を、速度推定部204が対象物の速度分布を、動画像に基づいてそれぞれ推定する。そして、移動推定部205は位置座標及び速度分布に基づいて特定期間における対象物の動きを推定する。しかしながら、対象物の動きの推定方法が以下の方法に限定されるわけではない。
【0019】
密度推定部202及び座標推定部203は、動画像における対象物の位置座標を推定する。本実施形態において、密度推定部202及び座標推定部203は、取得部201が取得した動画像に含まれる1以上の画像に基づいて、画像上の対象物の位置座標を推定することができる。例えば、密度推定部202及び座標推定部203は、時刻tにおける第1の画像に基づいて、第1の画像上の対象物の座標を推定することができ、時刻tにおける第2の画像に基づいて、第2の画像上の対象物の座標を推定することができる。本実施形態では、対象物の密度分布に基づいて対象物の座標が推定されるが、対象物の座標の推定方法は以下の方法には限られない。
【0020】
密度推定部202は、取得部201が取得した動画像に含まれる画像を用いて、流れの計測対象である対象物の、動画像に含まれる画像上の密度分布を推定する。密度分布とは、画像において、流量計測の対象物(例えば人物の頭部等)が存在すると推定される箇所を表現したものである。密度分布は、画像中で対象物が存在すると推定された領域を示すことができる。密度分布は、例えば、対象物が存在する可能性が高い位置を中心とする、対象物の大きさに応じた一様分布であってもよい。また、密度分布は、対象物が存在する可能性が高い位置に極大を持つような任意の分布であってもよい。後者の例としては、例えば、ガウス分布が挙げられる。密度分布は、対象物が存在する可能性を示していてもよい。密度推定部202は、画像中の各位置における対象物の密度を表す密度マップを、密度分布を表す情報として出力することができる。なお、この密度マップの解像度は、画像と同じであってもよいし、画像より低くてもよい。
【0021】
画像中で対象物が重なる場合に、密度推定部202は、それぞれの対象物に対応する密度分布が重ね合わされた密度分布を求めてもよい。この密度分布は、1つの対象物に対応する密度分布における密度の総和が1となるように規格化されていてもよい。この場合、密度推定部202が生成する密度分布における密度の総和は、画像中の対象物の数に対応する。
【0022】
密度推定部202が密度分布を推定する方法としては、様々な方法を利用できる。例えば、画像、又は画像から抽出された特徴量、又はこれらの双方を、ニューラルネットワークに入力する方法が挙げられる。このようなニューラルネットワークとしては、例えば、畳み込みニューラルネットワーク、逆畳み込みニューラルネットワーク、これらのその双方が連結されたオートエンコーダー、及びU-Net等のショートカットを持つネットワーク、等が挙げられる。密度推定部202が用いるニューラルネットワークは、画像が入力されると対象物の密度分布を出力するように、予め学習されている。このような学習は、学習用の画像と、上記のような画像の密度分布を表す教師データと、を用いて行うことができる。例えば、ニューラルネットワークからの出力値の総和が対象物の数となるように、すなわち出力値が画像の各位置の対象物の密度を表すように、学習を行うことができる。
【0023】
座標推定部203は、密度推定部202により得られた密度分布から、画像中の対象物の位置座標を推定する。例えば、座標推定部203は、推定された対象物の代表点の位置の座標を出力することができる。対象物の代表点は、例えば、対象物である人物の頭部中心であってもよい。
【0024】
座標推定部203が位置を推定する方法は特に限定されず、例えば密度分布の重心を対象物の位置として推定してもよい。一方で、座標推定部203は、密度分布に基づいて画像の各位置が対象物の代表点を表すかどうかを識別する2クラス分類を行うことにより、対象物の位置座標を推定してもよい。
【0025】
密度推定部202が出力する1つの対象物に対応する密度分布の境界はぼやけることがあり、また、この境界は様々な形状を有している。さらに、1つの対象物に対応する密度分布同士が重なり合うことにより、密度分布が複雑な形状を有する可能性がある。さらには、特定の状況で密度推定部202が想定外の出力をすることもあり得る。一実施形態においては、座標推定部203はニューラルネットワークを用いて対象物の位置を推定する。ニューラルネットワークを用いることにより、入力される密度分布にかかわらず、事前に定義された一定の演算量で位置の推定結果を得ることができる。このため、座標推定部203は、密度推定部202が出力する様々な密度分布に対応可能である。
【0026】
座標推定部203が用いるニューラルネットワークは、例えば、密度分布を表す密度マップが入力されると、密度マップの各位置についての2クラス分類の推定結果を確率で表す、位置マップを出力することができる。座標推定部203は、このように、画像の各位置について対象物の代表点を表すかどうかを識別する2クラス分類を行うことができる。この2クラス分類においては、密度マップの各位置が対象物の位置座標を表すなら推定結果は1に、対象物の位置座標を表さないなら推定結果は0となる。位置マップ701は、密度マップの各位置について、対象物の位置座標を表す確率を表すことができる。このような位置マップはほとんどの要素が0であるスパースなものであるため、スパースな出力を扱える2クラス分類問題に帰着させることで、このような位置マップを生成するニューラルネットワークの学習が容易となる。
【0027】
このようなニューラルネットワークとしては、例えば、畳み込みニューラルネットワーク、逆畳み込みニューラルネットワーク、これらのその双方が連結されたオートエンコーダー、及びU-Net等のショートカットを持つネットワーク、等が挙げられる。また、座標推定部203が用いるニューラルネットワークは、0以上1以下の値域を持つ出力層を持つことができる。このような出力層としては、例えば、ステップ関数、シグモイド関数、又はソフトマックス関数等が挙げられる。このような出力層を持つニューラルネットワークは、2クラス分類問題に適した出力を与えることができる。
【0028】
座標推定部203が用いるニューラルネットワークは、密度マップが入力されると対象物の位置を出力するように、予め学習されている。このような学習は、例えば、学習用の密度マップと、人物の位置に対応する要素が1であり、それ以外の要素が0である、密度マップに対応する位置マップを表す教師データと、を用いて行うことができる。
【0029】
速度推定部204は、動画像の各位置について特定期間における対象物の移動量を表現する速度分布を推定する。本実施形態において、速度推定部204は、取得部201が取得した動画像に含まれる1以上の画像に基づいて、画像上の対象物の速度分布を推定する。この速度分布は、特定期間における対象物の移動方向及び移動量を表現する。以下の例において、速度推定部204は、推定された速度分布として、X方向速度分布とY方向速度分布とを生成する。X方向速度分布は、動画像の各位置について特定期間における対象物のX軸方向への移動量を表現し、Y方向速度分布は、動画像の各位置について特定期間における対象物のY軸方向への移動量を表現する。しかしながら、速度分布の構成はこの例に限定されない。例えば、速度分布は、対象物の移動方向を表現する移動方向分布と、対象物の移動距離の絶対値を表現する移動距離分布と、により表現されてもよい。
【0030】
図9(A)~(D)を参照して速度分布について説明する。図9(A)には時刻tにおける入力画像900が、図9(B)には時刻tにおける入力画像902が示されている。入力画像900及び入力画像902は、動画像に含まれる、異なる時刻に撮像された画像である。図9(C)(D)に示すX方向速度分布904及びY方向速度分布906は、それぞれ、時刻tから時刻tの間における、X軸方向及びY軸方向の対象物の移動量を表し、入力画像900及び入力画像902に基づいて得られる。なお、本明細書において、時刻tは時刻t(m<n)より後の時刻を表す。
【0031】
図9(A)~(D)の例は、i番目の頭部である頭部iが、時刻tにおいて位置901に、時刻tにおいて位置903に存在している場合を表す。位置901の座標は(xi1,yi1)であり、位置903の座標は(xi2,yi2)である。ここで、X方向速度分布904における領域905は、位置(xi2,yi2)を中心とした、半径rの円であり、関数xi2-xi1で表される値を有している。また、Y方向速度分布906における領域907は、位置(xi2,yi2)を中心とした、半径rの円であり、関数yi2-yi1で表される値を有している。半径rの値は特に限定されず、固定値であってもよいし、頭部iの画像上のサイズsの関数で表される値であってもよい。
【0032】
このように、速度推定部204が生成する速度分布は、所定の時刻(例えばt)においてある位置(xi2,yi2)に存在する被写体について、この被写体の速度(所定時間内の移動量)を表すことができる。速度推定部204が生成する速度分布の具体的な形式は図9(A)~(D)の例には限定されない。また、速度推定部204が生成する速度分布は、時刻tにおいてある位置(xi1,yi1)に存在する被写体について、この被写体の速度を表してもよい。この場合、領域905,907は、位置(xi1,yi1)を中心とした円であってもよい。
【0033】
速度推定部204が速度分布を推定する方法としては、様々な方法を利用できる。例えば、画像、又は画像から抽出された特徴量、又はこれらの双方を、ニューラルネットワークに入力する方法が挙げられる。このようなニューラルネットワークとしては、例えば、畳み込みニューラルネットワーク、逆畳み込みニューラルネットワーク、これらのその双方が連結されたオートエンコーダー、及びU-Net等のショートカットを持つネットワーク、等が挙げられる。速度推定部204が用いるニューラルネットワークは、画像が入力されると対象物の速度分布を出力するように、予め学習されている。例えば、ニューラルネットワークは、時刻tに撮像された第1の画像及び時刻tに撮像された第2の画像が入力されると、上記の速度分布を出力するように学習されていてもよい。このような学習は、学習用の画像と、上記のような対象物の速度分布を表す教師データと、を用いて行うことができる。このような手法によれば、速度推定部204は、動画像に含まれる2枚の画像から速度分布を生成することができる。
【0034】
一方で、速度推定部204が速度分布を推定するために用いる画像の枚数は2枚に限定されず、1枚だけであっても、3枚以上であってもよい。例えば、速度推定部204は、時刻tに撮像された1枚の画像を用いて、時刻tより固定時間幅だけ前の時刻tから、時刻tまでの間における、対象物の移動量を表現する速度分布を推定することができる。別の例として、速度推定部204は、1枚の画像が入力されると、前回に入力された画像の撮像時刻と、今回入力した画像の撮像時刻との間における対象物の速度を表現する速度分布を出力するように学習されたニューラルネットワークを用いることもできる。この場合には、ニューラルネットワークとして、LSTM又はGRU等の、状態を扱うことのできるリカレントニューラルネットワークを用いることができる。さらに、速度推定部204は、3枚以上の画像を用いて速度分布を推定してもよい。例えば、速度推定部204は、そのうち2枚の撮像時刻間における対象物の移動量を表現する速度分布を推定してもよい。
【0035】
移動推定部205は、特定期間における対象物の動きを示す、動画像における対象物の動きベクトルを導出する。本実施形態において移動推定部205は、座標推定部203が推定した対象物の位置座標と、速度推定部204が推定した対象物の速度分布とに基づき、特定期間における対象物の移動ベクトルを推定する。上記のとおり、速度推定部204は、時刻tから時刻tの間における対象物の速度分布を推定することができる。また、座標推定部203は、時刻tにおける対象物の位置座標を推定することができる。上述のように、時刻tにおいて頭部iは座標(xi1,yi1)にあり、時刻tにおいて頭部iは座標(xi2,yi2)にある。このとき、移動推定部205が推定する、頭部iの時刻tからtまでの移動ベクトルiの始点は時刻tにおける頭部iの座標であり、終点は時刻tにおける頭部iの座標である。移動推定部205は、座標推定部203により位置が推定された全ての対象物に対する移動ベクトルのリストを生成することができる。以下、移動ベクトルiを得る方法の例について説明する。
【0036】
移動ベクトルiの始点である座標(xi2,yi2)は、座標推定部203によって推定されている。移動推定部205は、座標(xi1,yi1)を求めるために、まず、時刻tから時刻tの間における頭部iの移動量(xid,yid)を求める。移動推定部205は、速度推定部204によって推定された速度分布を利用することにより頭部iの移動量を求めることができる。
【0037】
上述のように、速度分布における座標(xi2,yi2)付近の値は、頭部iの移動量を示す。したがって、移動推定部205は、速度分布における、対象物の位置座標を基準として定められる領域の値に基づいて、特定期間における対象物の移動量を推定することができる。例えば、移動推定部205は、X方向速度分布における座標(xi2,yi2)付近にある、任意の領域内の要素の平均値や中央値を、xidとして算出することができる。この領域は、例えば、座標(xi2,yi2)を中心とする固定長の半径を持つ円領域であってもよい。同様に、移動推定部205は、Y方向速度分布を用いてyidを求めることができる。そして、xi1=xi2-xid、yi1=yi2-yidの関係を用いて、座標(xi1,yi1)を求めることができる。このように、移動推定部205は、速度分布に基づいて推定された対象物の移動量と、対象物の位置座標とに基づいて、推定された対象物の動きを示す、頭部iに対応する移動ベクトルiを求めることができる。
【0038】
もっとも、移動推定部205による移動ベクトルの求め方は、上述の方法に限定されない。例えば、移動推定部205は、時刻tにおける頭部iの位置座標と、時刻tから時刻tの間における頭部iの移動量とに基づいて、頭部の移動ベクトルを求めてもよい。
【0039】
追跡部206は、第1の期間における対象物の動きを示す情報と、第2の期間における対象物の動きを示す情報と、のマッチングにより、第1の期間及び第2の期間にわたる対象物の移動軌跡を生成する。本実施形態においては、移動推定部205が、対象物の動きを示す情報として、第1の期間(例えば時刻tから時刻t)における対象物の第1の移動ベクトルを生成することができる。また、移動推定部205は、第2の期間(例えば時刻tから時刻t)までの対象物の第2の移動ベクトルも生成することができる。追跡部206は、これらの移動ベクトルのマッチングにより、対象物の位置座標を追跡することができる。
【0040】
対象物の移動軌跡は、対象物の位置座標を時系列順に並べたリストにより表すことができる。移動推定部205により推定された移動ベクトルは、それぞれ異なる時刻における対象物の位置を表すため、長さ2の移動軌跡であると解釈することができる。追跡部206は、長さ3以上の移動軌跡を得るために、2つ以上の異なる期間についての対象物の移動ベクトルのリストを用いる。追跡部206は、異なる期間についての移動ベクトルのリストの間で、移動ベクトルのマッチングを行い、マッチングされた移動ベクトルを繋げることにより、対象物のより長い移動軌跡を得ることができる。
【0041】
追跡部206は、同一の対象物についての移動ベクトルであると推定される、異なる期間についての移動ベクトルをマッチングすることにより、複数の期間にわたる(又は3つ以上の異なる時刻における)対象物の位置座標を追跡することができる。このようなマッチングを複数の期間の移動ベクトルについて繰り返すことにより、追跡部206は対象物の移動軌跡を得ることができる。具体的なマッチング方法については後述する。
【0042】
計測部207は、追跡部206による対象物の移動軌跡を用いて、対象物の流れを計測する。計測部207は、例えば、対象物の流量、又は対象物の流れの向きなどを計測することができる。流量とは、例えば、あらかじめ設定された計測領域又は計測線を通過する対象物の数であってもよい。例えば、計測部207は、計測領域によって区切られる一方の領域から他方の領域へと移動した対象物の数を計測することができる。計測領域として線分(計測線)を用いる場合、計測部207は、計測線を交差した対象物の数を計測することができる。
【0043】
このような計測領域は、撮影シーンに基づき予め決められていてもよい。この場合、計測部207は、予め決められた計測領域の設定値を記憶装置12等のメモリから取得してもよい。また、計測部207は、出力装置15に表示された画像を参照しながら入力装置14に接続されたヒューマンインターフェースデバイス等を操作することによってユーザが入力した設定値を取得してもよい。
【0044】
計測領域は、1つであってもよいし、複数であってもよい。また、計測領域の形状は特に限定されず、例えば、任意の折れ線、曲線、多角形、円形、若しくは楕円形、又は任意の閉曲線からなる図形であってもよい。また、計測領域は、太さのない線であってもよいし、太さを有する線(又は長い矩形)であってもよい。このような計測領域は、線又は矩形等の任意のガイド図形を基準に設定されてもよい。例えば、ガイド図形に従う形状の計測領域が、画像中の特定の位置に設けられてもよい。このようなガイド図形は1つであっても複数であってもよい。また、ガイド図形が、幅を大きくする等の方法により拡張されてもよい。
【0045】
本実施形態に係る画像処理装置100の処理例を、図3を参照して説明する。以下では、人物の流量計測を行う例について説明する。具体的には、あらかじめ設定された計測領域を通過する人数が計測される。
【0046】
ステップS301において取得部201は動画像を取得する。また、取得部201は、流量計測に用いられる複数の画像を動画像から取得する。例えば、取得部201は、計測開始時刻から計測終了時刻までの間の複数回の撮像により得られた複数の画像を取得することができる。なお、取得部201は、撮像装置から各フレーム画像を順次取得してもよい。以下では、ステップS301で取得される複数の画像のそれぞれを入力画像と呼ぶ。ステップS302及びS303の処理は、入力画像のそれぞれについて行われる。例えば、時刻tに撮像された第2の画像と、時刻tに撮像された第3の画像とのそれぞれについて、ステップS302及びS303で密度分布及び位置座標を推定することができる。また、以下の例において、ステップS304及びS305の処理は、連続して撮像された入力画像のセットのそれぞれについて行われる。例えば、時刻tに撮像された第1の画像と、時刻tに撮像された第2の画像とに基づいて、ステップS304及びS305で時刻tから時刻tまでの速度分布及び移動ベクトルを得ることができる。
【0047】
取得部201は、入力画像から、1つ又は複数の部分画像を抽出してもよい。取得部201は、複数の画像のそれぞれから、画像の一部である1以上の部分画像を抽出することができる。このように入力画像よりも小さいサイズを有する部分画像を用いることで、ステップS302以降の処理量を減らすことができる。このような構成により、リアルタイムでの流量計測が容易となる。入力画像から抽出される部分画像の領域は、あらかじめ設定されていてもよい。また、部分画像の領域はユーザにより設定されてもよい。例えば、ユーザが入力装置14に接続したヒューマンインターフェースデバイス等をユーザが操作することにより、出力装置15に表示された入力画像上の部分領域を設定することができる。部分画像の領域の設定方法及び具体的な形状は特に限定されない。例えば、取得部201は、ユーザが指定した領域に基づいて、抽出される部分領域を自動的に決定してもよい。取得部201は、既に説明したように計測領域のユーザ指定を取得することができる。この場合、取得部201は、指定された計測領域に基づいて部分画像の領域を自動的に設定してもよい。例えば、取得部201は、計測領域を含むように入力画像から部分画像を抽出することができる。
【0048】
また、取得部201は、図4(A)のように、入力画像400の全体を複数の領域へと分割してもよい。この場合、複数の領域から選択された1以上の領域のそれぞれから部分画像を抽出してもよい。例えば、図4(A)に示すように入力画像400に計測領域401を設定した場合、計測領域401を包含する、太枠で囲まれた矩形領域から、流量計測に使用する部分画像を抽出することができる。また、図4(B)のように、入力画像402の一部に、計測領域403を包含する1つ又は複数の矩形領域を設定することができる。そして、こうして設定された矩形領域から、流量計測に使用する部分画像を抽出することができる。
【0049】
図4(A)(B)において部分画像の形状は矩形であるが、部分画像の形状は、例えば、任意の多角形、円形、若しくは楕円形、又は任意の閉曲線からなる図形であってもよい。また、計測領域の形状が線分ではなく、例えば、任意の折れ線、曲線、多角形、円形、若しくは楕円形、又は任意の閉曲線からなる図形である場合にも、同様の手法で部分画像を抽出することができる。
【0050】
ところで、カメラ等の撮像装置により得られた入力画像内では、位置により計測対象となる人物の映る大きさが異なることがある。したがって、画像内の位置に応じて部分画像の大きさを変えることができる。例えば、部分画像の大きさと人物の大きさとの比がほぼ一定となるように、部分画像の大きさを決定し、この大きさに応じて部分画像を抽出することができる。ここで、人物の大きさとは、例えば、人物の頭部と肩を包含する部分の大きさ、人物の頭部の大きさ、人物の全身の大きさ等でありうる。図4(A)(B)はこのように部分画像の大きさを変化させる例を示す。すなわち、図4(A)(B)においては、すなわち遠くの人物が映る領域、すなわち入力画像の上方において、部分画像の大きさが小さくなっている。
【0051】
このように部分画像を設定した場合、ステップS302~S305の処理は、入力画像中の部分画像のそれぞれについて行うことができる。すなわち、密度推定部202は、それぞれの部分画像中の対象物の密度分布を推定し、座標推定部203は、それぞれの部分画像についての密度分布から対象物の位置を推定することができる。また、速度推定部204は、それぞれ部分画像について対象物の速度分布を推定し、移動推定部205は、それぞれの部分画像における対象物の動きを推定することができる。
【0052】
一方で、ステップS302~305における推定結果の精度は、部分画像の境界領域(周辺領域)において低くなる傾向がある。このため、一実施形態においては、部分画像中に中央領域を規定し、この中央領域から検出された人物に関して、ステップS307における流量計測を行うことができる。このような構成によれば、精度の高い人物検出結果を用いて流量計測が行われるため、計測精度が向上する。
【0053】
部分画像に中央領域を規定する方法としては、例えば図5(A)に示すように、部分画像500の内側に、中央領域501、及び部分画像500の境界線と中央領域501の境界線とに囲まれたマージン領域502を規定する方法が挙げられる。図5(A)の例において、中央領域501は矩形であるが、中央領域501の形状は特に限定されない。例えば、中央領域501の形状は、多角形、円形、楕円形、又は任意の閉曲線など、部分画像500の内部に含まれる任意の形状でありうる。
【0054】
マージン領域の大きさは、流量計測の対象となる人物の大きさに合わせて設定することができる。例えば、マージン領域を、人物の検出に必要な部分を含むことができる大きさに設定することができる。図5(B)はその一例を示す。図5(B)では、部分画像500のマージン領域502が、流量計測の対象となる人物503又は人物504の検出に必要な部分を含むことができる大きさに設定されている。より具体的には、人物の頭部と肩を含むことができるように、マージン領域の大きさが設定されている。他の例としては、人物の頭部のみ、あるいは人物の全身がマージン領域に含まれるように、マージン領域を設定してもよい。
【0055】
入力画像から複数の部分画像を抽出する場合、隣接する部分画像が互いに重なるように部分画像の領域を設定することができる。例えば、取得部201は、画像を複数の領域に分割することができる。そして、取得部201は、複数の領域から選択された1以上の領域のそれぞれについて、領域(中央領域)及びこの領域の周辺にあるマージン領域から、部分画像を抽出することができる。図5(C)はそのような分割の一例を示す。図5(C)においては、隣り合う2つの部分画像505及び部分画像506が互いに部分的に重なり合っている。より具体的には、部分画像505の中央領域507と、部分画像506の中央領域508との間に隙間ができないように、部分画像505及び部分画像506が抽出されている。検出対象である人物510が部分画像505のマージン領域512にある場合であっても、部分画像505に隣接する部分画像506の中央領域508から人物510を検出できる。
【0056】
図5(C)に示されるように、各部分画像の中央領域同士を隙間なく隣接させることにより、いずれかの部分画像の中央領域で計測対象となる人物を検出することができるため、計測精度が向上する。このような部分画像の抽出方法としては、入力画像を複数の領域に分割し、それぞれの領域(中央領域に相当)及び周りのマージン領域から、1つの部分画像を抽出する方法が挙げられる。さらに、各部分画像のマージン領域を確保しつつ、必要最小限の面積で計測領域をカバーできる分割方法を、最適化計算等で決定してもよい。図5(D)においては、入力画像520に設定された計測領域521に沿って、それぞれがマージン領域を有する複数の部分画像522が抽出されている。
【0057】
以下の説明において、入力画像は、入力画像そのもの、又は部分画像を指すものとする。すなわち、ステップS302~S305の処理は、入力画像に対して、又は入力画像中の部分画像のそれぞれに対して、行うことができる。
【0058】
ステップS302において、密度推定部202は、上述のように、取得部201が取得した入力画像を元に計測対象となる人物の密度分布を推定する。図6(A)の例では、密度推定部202は、入力画像600における人物601の頭部位置の密度分布を推定する。密度推定部202は、図6(B)に示すように、人物601の頭部位置の密度分布603を示す密度マップ602を生成している。
【0059】
なお、密度推定部202が用いる入力画像は1つに限定されず、密度推定部202は複数の入力画像を用いて密度分布を推定してもよい。例えば、密度推定部202は、複数の入力画像をニューラルネットワークに入力することにより、密度分布を推定してもよい。密度推定部202が用いる複数の入力画像は、例えば、動画像に含まれる、複数の異なるフレームの画像であってもよい。また、密度推定部202が出力する密度分布も1つには限定されない。例えば密度推定部202は、複数の入力画像にそれぞれ対応している、複数の密度分布を出力してもよい。密度推定部202が複数の密度分布を出力する場合、後続する座標推定部203には全ての密度分布が入力されてもよいし、選択された一部の密度分布が入力されてもよい。
【0060】
ステップS303において座標推定部203は、上述のように、密度推定部202が出力した密度分布を元に人物の位置座標を推定する。例えば座標推定部203は、図7(A)に示す密度マップ700をニューラルネットワークに入力することにより、図7(B)に示す位置マップ701を出力することができる。位置マップ701は、人物の位置座標が、位置マップ701における要素の位置と一致している場合を示す。この場合、1人の人物について1つの要素の値(確率値)が大きくなるため、このような要素の位置を人物の位置座標として判定することができる。
【0061】
一方で、図7(C)に示す位置マップ702のように、人物の位置座標が、位置マップ702における要素の位置(すなわち格子点の位置)からずれる場合、1人の人物について複数の要素の値(確率値)が大きくなる。このように、入力画像の互いに隣接する複数の位置が、対象物の位置を表すと推定されることがある。この場合、座標推定部203は、対象物の位置を表すと推定された、入力画像の互いに隣接する複数の位置に基づいて、対象物の位置を求めることができる。例えば、座標推定部203は、複数の要素に分かれている確率値を1つにまとめることにより、人物の位置座標を決定することができる。
【0062】
例えば図8(A)~(C)に示すように、座標推定部203は、ニューラルネットワークから出力された位置マップ800に対して3×3のmax poolingを適用することによってマップ801を得ることができる。そして、座標推定部203は、位置マップ800と、マップ801とを、要素ごとに比較することができる。この場合、座標推定部203は、マップ802に示されるように、位置マップ800とマップ801との間で値が一致している要素の座標を、人物の位置座標として判定することができる。max poolingのカーネルサイズは3×3に限定されず、5×5などの別のサイズであってもよい。また、max poolingの処理は、単独で行われてもよいし、座標推定部203が用いるニューラルネットワークの出力層の次にmax pooling層を追加することにより行われてもよい。
【0063】
複数の確率値をまとめる方法はこの方法には限定されず、座標推定部203は、例えばwatershed等の、他の極大値検出法を用いてもよい。また、座標推定部203は、確率値が検出された複数の要素をクラスタリングし、各クラスタの中心座標を人物の位置座標とする方法を用いてもよい。クラスタリングの方法としては、例えば、階層クラスタリング又はK平均法などが挙げられる。クラスタの中心座標は、クラスタ内の要素座標の単純平均でもよいし、クラスタ内の要素のうち最大の確率値を持つ要素座標でもよいし、又は、各要素の要素座標の存在確率等による重みづけ平均値でもよい。
【0064】
なお、座標推定部203が用いるニューラルネットワークが出力する位置マップにおいては、人物の位置座標に対応しない要素が、ノイズである微小な確率値を持っているかもしれない。このようなノイズが乗っている状態で、図8の例に示すように隣接する要素の確率値を1点にまとめる処理を行うと、微小なノイズを持つ要素の座標が人物の位置座標と判定されてしまうかもしれない。このため、座標推定部203は、ニューラルネットワークが出力した位置マップにおいて、閾値以下の、ノイズとみなせるような微小な確率値をゼロに修正してから、確率値を1点にまとめる処理、及び人物の位置座標の判定を行ってもよい。
【0065】
ステップS304において、速度推定部204は、上述のように、取得部201が取得した入力画像を元に計測対象となる人物の速度分布を推定する。この例において、速度推定部204は、時刻tに撮像された第1の画像と、時刻tに撮像された第2の画像とに基づいて、時刻tから時刻tまでの人物の速度分布を推定することができる。また、速度推定部204は、時刻tに撮像された第2の画像と、時刻tに撮像された第3の画像とに基づいて、時刻tから時刻tまでの人物の速度分布を推定することができる。
【0066】
ステップS305において、移動推定部205は、座標推定部203が推定した流量計測対象となる人物の位置座標と、速度推定部204が推定した流量計測対象となる人物の速度分布とに基づき、上述のように人物の移動ベクトルリストを得る。図10(A)~(F)は、移動ベクトルの算出方法の例を示す。図10(A)には、時刻tにおける第1の画像1000が、図10(B)には、時刻tにおける第2の画像1002が示されている。ある頭部iは、時刻tにおいて位置1001に、時刻tにおいて位置1003に存在している。図10(C)に示す、座標推定部203が第2の画像1002に基づいて生成することができる位置座標マップ1004は、時刻tにおける頭部iの推定された位置座標1005を示している。図10(D)(E)に示す、時刻tから時刻tの間におけるX方向速度分布マップ1006及びY方向速度分布マップ1009は、速度推定部204が第1の画像1000及び第2の画像1002に基づいて生成することができる。
【0067】
移動推定部205は、時刻tから時刻tの間における頭部iの移動量(xid,yid)のX成分を、X方向速度分布マップ1006の領域1007内の平均値によって求めることができる。また、移動推定部205は、頭部iの移動量のY成分を、Y方向速度分布マップ1009の領域1010内の平均値によって求めることができる。領域1007及び領域1010は、ステップS304において得られた速度分布マップに示される、頭部iの速度分布に対応する領域1008及び領域1011よりも小さくなるように設定することができる。反対に、領域1007及び領域1010が、領域1008及び領域1011を超えない程度に大きな面積を持つように、速度推定部204(又は速度推定部204が用いるニューラルネットワーク)の学習を行うことができる。このような構成により、ステップS304で推定された速度分布がムラ又は異常出力値を有していたとしても、これらの影響が低減され、頭部iの移動量を安定して求めることが容易となる。
【0068】
移動推定部205は、時刻tにおける第2の画像から検出された頭部のそれぞれについて、上記の方法で移動ベクトルを求めることができる。こうして、移動推定部205は、すべての頭部についての移動ベクトルのリストである移動ベクトルリスト1012を生成することができる。図10(F)において、移動ベクトル1013は頭部iに対応する移動ベクトルである。
【0069】
ステップS306において追跡部206は、移動推定部205が出力した移動ベクトルリストを元に人物の位置座標を追跡し、人物の移動軌跡を得る。ステップS302~S305の処理により、図11に示す、時刻tから時刻tの間の移動ベクトルリストV121100と、時刻tから時刻tの間の移動ベクトルリストV231101とが得られる。本実施形態において、追跡部206は、移動ベクトルリストV121100と、移動ベクトルリストV231101に対してマッチング1102を実施することで、人物の移動軌跡1103を得る。
【0070】
マッチング方法は特に限定されない。追跡部206は、例えば、マッチング結果に基づいて算出されるコストの総和が小さくなるように、マッチングを行うことができる。このようなマッチングを行うためのアルゴリズムとしては、例えば、ハンガリアンマッチング、線形計画法、又はニューラルネットワーク等が挙げられる。
【0071】
本実施形態では、第1の期間における第1の動きベクトルの終点の位置と、第2の期間における第2の動きベクトルの始点の位置と、に基づいてマッチングが行われる。ここで、第2の期間(例えば時刻tから時刻tまで)は、第1の期間(例えば時刻tから時刻tまで)よりも後の期間である。より具体的には、追跡部206は、第1の動きベクトルの終点の位置と、第2の動きベクトルの始点の位置と、の距離に基づくコストがより小さくなるようにマッチングを行う。この例では、マッチングにおけるコストとして、移動ベクトルリストV12に含まれる移動ベクトルvの終点pと、移動ベクトルリストV23に含まれる移動ベクトルvの始点qとの間の距離が用いられる。ここで、時刻tから時刻tまでの第1の期間の終了時刻と、時刻tから時刻tまでの第2の期間の開始時刻と、は一致している。すなわち、点pと点qは、いずれも時刻tにおける頭部の推定位置を表す。よって、移動ベクトルvと移動ベクトルvが同一人物を指すならば、点pと点qとは理想的には非常に近い位置に存在する。このため、このように定義されたコストを用いることにより、マッチング精度を向上させることができる。
【0072】
一方で、第1の期間の終了時刻と第2の開始時刻とが一致している必要はない。この場合でも、上記のように動きベクトルをマッチングさせる手法によれば、第1の期間の開始時刻における対象物の位置座標と第2の期間の開始時刻における対象物の位置座標とをマッチングさせる手法よりも、マッチング精度を向上させることができる。
【0073】
以下では、上記の定義に基づくコストを用いた場合について説明するが、他のコストを用いてもよい。例えば、移動ベクトルの長さ又は方向をコストの計算に用いてもよい。また、移動ベクトルの位置に基づいて人物の画像情報の特徴量を抽出し、特徴量の類似度に基づいてコストを計算してもよい。さらに、1つの種類のコストが用いられてもよく、複数の種類のコストが組み合わせて用いられてもよい。例えば、点pと点qとの間の距離と、人物の画像情報の類似度と、の双方に基づいてコストが算出されてもよい。追跡部206は、このようなコストが最小となるようにマッチングを行うことができる。
【0074】
図12を参照して、移動ベクトルリストV12に含まれる移動ベクトルの終点と、移動ベクトルリストV23に含まれる移動ベクトルの始点との間のマッチングについて説明する。図12(A)には、入力画像の領域1200が示されている。また、位置座標b~dは、それぞれ移動ベクトルリストV12に含まれる移動ベクトルの終点を表す。さらに、位置座標A~Cは、それぞれ移動ベクトルリストV23に含まれる移動ベクトルの始点を表す。
【0075】
この場合、一例として、コストの総和が最小になるようにマッチングを行うことができる。この場合、図12(A)の例では、(c,B)及び(b,C)がマッチングされるかもしれない。
【0076】
一方で、長い距離がより強調されるようにマッチングを行うことができる。例えば、距離dに対するコストが、距離2dに対応するコストの半分よりも小さくなるように、コストを定義することができる。具体例として、上記の終点pと始点qとの間の平方ユークリッド距離を、コストとして用いることができる。このように平方ユークリッド距離を用いる場合、距離bBと距離cCの和が、距離cBと距離Cbの和より小さくなり、このため、(b,B)及び(c,C)がマッチングされる。このような構成によれば、(b,C)のように離れた座標のマッチングが起こりにくくなるので、マッチング結果がより正確になることが期待される。
【0077】
また、図12(A)において、時刻tにおいて位置座標Aにいる人物は、時刻tにおいて領域1200の外に存在していた。また、時刻tにおいて位置座標dにいる人物は、時刻tにおいて領域1200の外に存在していた。本実施形態の手法によれば、このような孤立した位置座標A,dを始点又は終点とする移動ベクトルが生じる可能性がある。このような例において、領域1200内から検出された全ての移動ベクトルの始点又は終点の位置座標を、人物間の距離の総和が最小になるようにマッチングすると、正しくないマッチング結果が得られる可能性がある。例えば、図12(A)の例では、位置座標の組(A,b)、(B,c)、及び(C,d)が得られるかもしれない。
【0078】
一実施形態において、追跡部206は、位置座標A,dのような孤立した位置座標がマッチングされないように、マッチングを行うことができる。例えば、マッチングの最大距離rを設定することができる。この場合、追跡部206は、最大距離rよりも離れている位置座標同士がマッチングしないように、マッチングを行うことができる。
【0079】
図12(B)(C)は、孤立した位置座標がマッチングされないようにするための、ハンガリアンマッチングで用いるコスト行列及びマッチング結果の例を示す。図12(B)において、B,C,b,cは、それぞれ図12(A)に示す位置座標B,C,b,cに対応する。位置座標A,dは、全ての位置座標との距離が最大距離rを越えている、孤立した位置座標である。このため、位置座標A,dが他の位置座標とマッチングされないように、位置座標A,dに関するコストは図12(B)のコスト行列から除外されている。追跡部206は、このようなコスト行列を、例えば平方ユークリッド距離に基づいて生成することができる。図12(B)の例では、コストの総和が最小となるように、太枠で示される位置座標の組(B,b)及び(C,c)が得られている。
【0080】
図12(C)に示す別の例において、A,B,C,b,c,dは、それぞれ図12(A)に示す位置座標A,B,C,b,c,d(以下実座標と呼ぶ)に対応する。図12(C)の例では、追跡部206は、最初に実座標同士のコスト行列を、例えば平方ユークリッド距離に基づいて生成する。続いて、追跡部206は、位置座標A,B,Cと同じ数である3つのダミー、すなわちx1、x2、及びx3に対応する列を追加する。さらに、追跡部206は、位置座標b,c,dと同じ数である数3つのダミー、すなわちX1、X2、及びX3に対応する行を追加する。そして、追跡部206は、ダミーと任意の実座標との間のコストを、最大距離rよりも大きい値rを用いて設定し、距離がrよりも大きい実座標同士の間のコストを、rよりもさらに大きいrを用いて設定する。すなわち、r<r<rである。追跡部206は、このようなコスト行列を、例えば平方ユークリッド距離に基づいて生成することができる。このようなコスト行列を用いてマッチングを行うと、孤立した実座標は他の実座標とはマッチングせず、ダミーとマッチングする。また、余ったダミーはダミー同士でマッチングする。図12(C)では、コスト行列を用いたマッチングの結果が太枠で示されている。追跡部206は、これらのダミーとのマッチング結果を除外することにより、マッチング結果を得ることができる。
【0081】
さらなる別の例において、追跡部206は、マッチングを行う前に、最大距離rの範囲内にある位置座標同士をグルーピングしてもよい。この場合、追跡部206は、グループごとに、グループに含まれる位置座標同士のマッチングを行うことができる。例えば、追跡部206は、各グループについて個別に図12(B)又は図12(C)に示すようなコスト行列を生成し、マッチングを行うことができる。図12(A)に示されるような孤立した位置座標A,dは、このようなグルーピングにより取り除かれる。このような方法によれば、人物の数、すなわち検出された位置座標の数が多い場合に、処理速度を向上させることができる。グルーピングの方法は特に限定されないが、例えば、孤立した位置座標を含むコスト行列又は隣接グラフを用いて連結されていない独立したグラフを探索する方法が挙げられる。また、階層クラスタリング又はK平均法等のクラスタリング法を用いることもできる。
【0082】
このように追跡部206は、図11に示す時刻tから時刻tまでの移動ベクトルv1104の終点と、時刻tから時刻tまでの移動ベクトルv1105の始点と、をマッチングさせることができる。そして、追跡部206は、移動ベクトルv1104の始点、移動ベクトルv1104の終点、および移動ベクトルv1105の終点の3点を繋げることで、ある人物に対応する時刻tから時刻tの間の移動軌跡1106を得ることができる。このようなマッチング処理をさらに後の時刻における移動ベクトル(例えば時刻tから時刻tまでの移動ベクトル)に対して繰り返すことで、さらに長時間にわたる同一人物の移動軌跡を得ることができる。
【0083】
上記のように、移動ベクトルと移動ベクトルをマッチングする方式によれば、例えば時刻t及び時刻tにおいてそれぞれ検出された人物、すなわち点と点をマッチングする方式に比べて、精度よく移動軌跡を得ることができる。
【0084】
何らかの理由で、取得部201が取得する入力画像が欠落する、密度推定部202による人物の密度分布が欠落する、座標推定部203が人物の位置座標を検出しない、又は速度推定部204による人物の速度分布が欠落することがあるかもしれない。これらの理由で、特定の時刻間における人物の移動ベクトルが得られない可能性がある。例えば、図13(A)には、ある人物の時刻tから時刻tの間の移動ベクトル1303が示されている。図13(A)にはまた、同人物の時刻tから時刻tの間の移動ベクトル1304、及び同人物の時刻tから時刻tの間の移動ベクトル1305が示されている。理想的には、これら3つの移動ベクトル1303~1305が検出され及びマッチングされることにより繋がって1つの移動軌跡となる。しかしながら、移動ベクトル1304が何らかの理由で欠落したことにより、人物の移動軌跡が途切れると、この人物の移動軌跡が計測領域の線分1301を通過していないと誤判定される可能性がある。
【0085】
このような事象を避けるため、追跡部206は、第1の期間における対象物の動きを示す情報に基づいて第2の期間における対象物の動きを推定することができる。例えば図13(B)に示すように、追跡部206は、移動ベクトル1303を用いて予測される、時刻tから時刻tの間の移動ベクトル1306を用いることで、途切れた移動軌跡を埋め合わせることができる。このような方法により、移動軌跡が途切れていても、人物が計測領域を通過したと判定することが可能となる。追跡部206は、第1の期間における対象物の動きを示す情報にマッチングする第2の期間における対象物の動きを示す情報が見つからない場合に、第2の期間における対象物の動きを推定してもよい。
【0086】
移動ベクトル1306の予測には、様々な方法が利用できる。例えば追跡部206は、移動ベクトル1303と同じ方向及び大きさを持ち、始点が移動ベクトル1303の終点と一致する移動ベクトル1306を判定することができる。また、移動ベクトル1306の予測には、移動ベクトル1303だけでなく、それよりさらに前の時刻における移動ベクトルを使用してもよい。なお、追跡部206は、このように生成された移動ベクトル1306が、時刻t以降の移動ベクトルとマッチングしない場合、人物の移動軌跡から移動ベクトル1306を除外してもよい。
【0087】
人物の移動軌跡が途切れた場合における人物の位置の推定方法は、移動ベクトルによる方法に限定されない。例えば、テンプレートマッチングなどの既知の物体追跡方法を用いて、時刻tにおける人物の位置を予測することにより、人物の移動軌跡を推定してもよい。さらに、移動ベクトルの欠落が2フレーム以上にわたる場合でも、移動ベクトルの推定を繰り返すことで人物の移動軌跡を追跡することができる。
【0088】
ステップS307において、計測部207は、追跡部206が出力した人物の移動軌跡を元に、人物の流量を計測する。例えば、計測部207は、追跡部206が出力した人物の移動軌跡が、設定した計測領域と交差したかどうかを判定することで、人物の流量を計測することができる。なお、計測領域の設定方法は上述のとおりである。図4(A)(B)を参照して説明したように、ステップS301において部分画像が抽出される領域を設定する際に、計測領域401,403が設定されていてもよい。
【0089】
計測領域が線分である場合の人物の流量の計測方法例を、図14を参照して説明する。図14(A)には、時刻tにおける入力画像1400と、計測領域である線分1401が示されている。また、入力画像1400からは、人物1402の位置座標1403、及び人物1404の位置座標1405が検出されている。同様に、図14(B)には、時刻tにおける入力画像1406が示されている。入力画像1406からは、人物1402の位置座標1407が検出されており、位置座標1403から位置座標1407に至る移動軌跡1409が得られている。また、入力画像1406からは、人物1404の位置座標1408が検出されており、位置座標1405から位置座標1408に至る移動軌跡1410が得られている。
【0090】
図14(B)の例において計測部207は、移動軌跡1409は線分1401と交差していると判定することができ、したがって、人物1402は線分1401を通過したと判定することができる。同様に計測部207は、移動軌跡1410も線分1401と交差していると判定することができ、したがって、人物1404も線分1401を通過したと判定することができる。ここで、計測部207はさらに、人物1404は人物1402とは逆方向に線分1401を通過したと判定してもよい。移動軌跡と線分との交差判定は、例えば、線分と線分との交差判定等の幾何学的な方法で行うことができる。
【0091】
一実施形態において計測部207は、人物が計測領域で分けられる一方の領域から他方の領域へと移動した場合に、人物は計測領域を通過したと判定する。一方で計測部207は、計測領域上に人物が存在する間は、人物は計測領域を通過したと判定しない。すなわち、計測部207は、一方の領域から計測領域を超えて他方の領域へと移動した人物の数を計測するが、こうして計測された人物の数は、一方の領域から計測領域へと移動したが他方の領域へと移動していない人物の数を含まない。
【0092】
例えば、図15には、計測領域である線分1500と、人物の移動軌跡1501とが示されている。この例において、計測部207は、a,d,fの3カ所において、人物が線分1500を下から上に通過したと判定することができ、c,eの2カ所において、人物が線分1500を上から下に通過したと判定することができる。一方で、計測部207は、人物が線分1500上にちょうど乗っているb,gにおいては、人物は線分1500を通過していないと判定することができる。上述のように、線分1500は太さを有する線分(すなわち矩形領域)であってもよく、この場合、人物が線分1500上に存在する間は計測領域を通過したと判定されない。
【0093】
このような判定を各人物の移動軌跡について行うことにより、計測部207は人物の流量を計測することができる。図15に示す例の場合、計測部207は、線分1500の下から上への累積通過数と、上から下への累積通過数とを、それぞれの方向への人物の流量として計測することができる。ここで、図15を参照して説明したように、計測領域上に人物が存在する間には人物は計測領域を通過したと判定しないことにより、計測領域付近における人物の細かな動きに由来する、累積通過数の重複カウントを避けることができる。
【0094】
計測部207は、各人物の計測領域の移動方向ごとの累積通過数の差分を、人物の流量として算出してもよい。具体的には、計測部207は、一方の領域から他方の領域へと通過した回数と、他方の領域から一方の領域へと通過した回数と、の差分を算出することができる。例えば、図15の場合、移動軌跡1501で表される人物の、線分1500の下から上への累積通過数は3回であり、上から下への累積通過数は2回である。計測部207は、移動方向ごとの累積通過数の差分を取ることで、線分1500の下から上に1人の人物が通過したと判定することができる。このような累積通過数の差分に基づく通過判定は、人物(又は移動軌跡)ごとに行うことができる。
【0095】
上述の通り、計測領域の形状は特に限定されない。例えば、計測領域が所定の領域を囲む閉曲線である場合、計測部207は、この領域へと入る人物の流量と、この領域から出る人物の流量とを計測することができる。
【0096】
以上説明したように、本実施形態においては、画像フレーム間において移動ベクトル同士のマッチングが行われる。このため、マッチング精度を向上させることができ、対象物の移動軌跡をより正確に推定することができる。また、このように推定された移動軌跡を用いることにより、対象物の流量の測定精度を向上させることができる。
【0097】
また、上述の例において、密度推定部202及び座標推定部203は動画像における対象物の位置座標を推定し、速度推定部204は動画像の各位置について特定期間における対象物の移動量を表現する速度分布を推定した。そして、移動推定部205は、位置座標及び速度分布に基づいて特定期間における対象物の動きを推定した。このような手法によれば、対象物同士の重なりがある画像を入力として、対象物の位置座標及び移動ベクトルを推定することができる。このため、混雑したシーンにおいても対象物の座標及び移動ベクトルを精度よく求めることができるという効果が得られる。
【0098】
なお、上述の実施形態においては、マッチングにより得られた移動軌跡に基づいて対象物の流量の測定が行われた。一方で、移動推定部205が推定した各時刻間の移動ベクトルに基づいて、流量の測定を行ってもよい。この場合には移動ベクトルのマッチングを省略することができる。
【0099】
[実施形態2]
実施形態2において、速度推定部204は、動画像における対象物の位置座標と速度分布とを同時に推定する。このため、本実施形態において密度推定部202は省略することができる。以下では、実施形態1と同じ部分については説明を省略し、異なる点のみについて説明する。
【0100】
本実施形態において速度推定部204は、取得部201が取得した画像に基づき、流量計測対象となる対象物の密度分布と速度分布とを同時に推定する。速度推定部204は、2枚の入力画像を用いて、対象物の密度分布、対象物のX方向速度分布、及び対象物のY方向速度分布の3つを同時に推定することができる。例えば、ステップS302において、速度推定部204は、時刻tにおける第1の画像と、時刻tにおける第2の画像とを用いることができる。そして、速度推定部204は、時刻tにおける人物の対象物の密度分布、並びに時刻tから時刻tまでの対象物のX方向速度分布及びY方向速度分布を推定することができる。この場合、ステップS304は省略することができる。
【0101】
速度推定部204が密度分布及び速度分布を推定する方法としては、様々な方法を利用できる。例えば、画像、又は画像から抽出された特徴量、又はこれらの双方を、ニューラルネットワークに入力する方法が挙げられる。このようなニューラルネットワークとしては、例えば、畳み込みニューラルネットワーク、逆畳み込みニューラルネットワーク、これらのその双方が連結されたオートエンコーダー、及びU-Net等のショートカットを持つネットワーク、等が挙げられる。速度推定部204が用いるニューラルネットワークは、画像が入力されると対象物の密度分布及び速度分布を出力するように、予め学習されている。
【0102】
本実施形態のように、密度分布と速度分布とを同時に推定することにより、実施形態1に比べて対象物の移動ベクトルの推定にかかる時間を短縮することができる。
【0103】
[実施形態3]
実施形態3において、座標推定部203は、密度分布を用いずに対象物の位置を推定する。このため、本実施形態において密度推定部202は省略することができる。以下では、実施形態1又は実施形態2と同じ部分については説明を省略し、異なる点のみについて説明する。
【0104】
本実施形態において座標推定部203は、取得部201が取得した入力画像を用いて、対象物の密度分布を用いずに、計測対象となる対象物の位置座標を直接推定する。例えば、ステップS303において、座標推定部203は、時刻tにおける第2の画像を用いて、時刻tにおける人物の位置マップを、密度マップを用いずに生成することができる。そして、座標推定部203は、実施形態1と同様の処理を用いて、位置マップから人物の位置座標を推定することができる。この場合、ステップS302は省略することができる。
【0105】
座標推定部203が入力画像から位置マップを推定する方法としては、様々な方法を利用できる。例えば、画像、又は画像から抽出された特徴量、又はこれらの双方を、ニューラルネットワークに入力する方法が挙げられる。座標推定部203が用いるニューラルネットワークは、2クラス分類問題に適した出力が得られるように、0以上1以下の値域を持つ出力層を持っていてもよい。
【0106】
なお、本実施形態は実施形態2と組み合わせてもよい。この場合、速度推定部204は、取得部201が取得した入力画像を用いて、対象物の位置座標及び速度分布を推定することができる。
【0107】
本実施形態のように、入力画像から直接位置座標を推定することにより、実施形態1に比べて対象物の移動ベクトルの推定にかかる時間を短縮することができる。
【0108】
(その他の実施例)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
【0109】
発明は上記実施形態に制限されるものではなく、発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、発明の範囲を公にするために請求項を添付する。
【符号の説明】
【0110】
100:画像処理装置、201:取得部、202:密度推定部、203:座標推定部、204:速度推定部、205:移動推定部、206:追跡部、207:計測部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15