(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-09
(45)【発行日】2024-07-18
(54)【発明の名称】画像処理装置、画像処理方法、及びプログラム
(51)【国際特許分類】
G06T 7/246 20170101AFI20240710BHJP
【FI】
G06T7/246
(21)【出願番号】P 2019202618
(22)【出願日】2019-11-07
【審査請求日】2022-11-07
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】110003281
【氏名又は名称】弁理士法人大塚国際特許事務所
(72)【発明者】
【氏名】清水 智之
【審査官】村山 絢子
(56)【参考文献】
【文献】特開2018-026108(JP,A)
【文献】特開2019-012497(JP,A)
【文献】特開2011-146827(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00-7/90
(57)【特許請求の範囲】
【請求項1】
撮像画像から対象物を検出する検出手段と、
複数の撮像画像においてそれぞれ検出された対象物間の対応関係を示すマップを生成する生成手段と、
生成された前記マップに基づいて前記複数の撮像画像においてそれぞれ検出された対象物をマッチングさせる判定手段と、
を備え、
前記生成手段は、前記複数の撮像画像間において同一であると推定される対象物の検出位置に応じた第1座標と、前記第1座標とは異なる第2座標とに異なる値を設定することで、前記複数の撮像画像においてそれぞれ検出された対象物間の対応関係を示すマップを生成することを特徴とする、画像処理装置。
【請求項2】
前記マップは、前記対象物のそれぞれの検出位置に応じて定まる前記第1座標に、前記対象物間の対応を示す情報を有していることを特徴とする、請求項1に記載の画像処理装置。
【請求項3】
前記判定手段は、前記対象物のそれぞれの検出位置に応じて定まる、前記マップの前記第1座標の画素値を参照して、前記対象物をマッチングさせるかどうかを判定することを特徴とする、請求項2に記載の画像処理装置。
【請求項4】
前記マップ上の前記第1座標に設定される値は前記第2座標に設定される値よりも高いことを特徴とする、請求項1乃至3の何れか一項に記載の画像処理装置。
【請求項5】
前記判定手段は、前記対象物の検出位置の座標を前記マップ上の座標に変換して得られる座標に基づいて定められる前記第1座標の値を参照することで対象物のマッチングを行うことを特徴とする、請求項1乃至4の何れか一項に記載の画像処理装置。
【請求項6】
前記マップは、前記第1座標に、互いに対応すると推定される前記対象物の検出位置にそれぞれ対応する、前記マップ上の位置の間の距離を示す情報を有していることを特徴とする、請求項1乃至
5の何れか一項に記載の画像処理装置。
【請求項7】
前記マップは、互いに対応すると推定される前記対象物のそれぞれの検出位置に、同じ対象物を示す識別情報を有していることを特徴とする、請求項1乃至
6の何れか一項に記載の画像処理装置。
【請求項8】
前記検出手段は、前記対象物のそれぞれが有する複数の部位を検出し、
前記生成手段は、前記部位ごとに前記マップを生成することを特徴とする、請求項1乃至
7の何れか一項に記載の画像処理装置。
【請求項9】
前記生成手段が、互いに異なる前記マップを複数生成し、
前記判定手段が、生成された複数の前記マップに基づいて、前記複数の撮像画像においてそれぞれ検出された対象物をマッチングさせることを特徴とする、請求項1乃至
8の何れか一項に記載の画像処理装置。
【請求項10】
前記生成手段は、前記検出手段による前記対象物の検出処理において得られた中間特徴量に基づいて前記マップを生成することを特徴とする、請求項1乃至
9の何れか一項に記載の画像処理装置。
【請求項11】
前記検出手段は、異なる前記対象物を区別できるように学習されていることを特徴とする、請求項1乃至
10の何れか一項に記載の画像処理装置。
【請求項12】
前記複数の撮像画像が、同一の撮像装置による、第1の時刻における撮像画像と、第2の時刻における撮像画像と、を含むことを特徴とする、請求項1乃至
11の何れか一項に記載の画像処理装置。
【請求項13】
前記生成手段は、時間的又は空間的に並んでいる第1の撮像画像、第2の撮像画像、及び第3の撮像画像に基づいて、前記第1の撮像画像及び前記第3の撮像画像においてそれぞれ検出された対象物間の対応関係を示す前記マップを生成することを特徴とする、請求項1乃至
12の何れか一項に記載の画像処理装置。
【請求項14】
前記複数の撮像画像は、時間的又は空間的に並んでいる第1の撮像画像、第2の撮像画像、及び第3の撮像画像を含み、
前記生成手段は、前記第1の撮像画像及び前記第2の撮像画像においてそれぞれ検出された対象物間の対応関係を示す前記マップと、前記第1の撮像画像及び前記第3の撮像画像においてそれぞれ検出された対象物間の対応関係を示す前記マップと、を生成することを特徴とする、請求項1乃至
13の何れか一項に記載の画像処理装置。
【請求項15】
前記検出手段は、前記対象物が有する部位を検出することを特徴とする、請求項1乃至
14の何れか一項に記載の画像処理装置。
【請求項16】
前記対象物は人物であり、前記検出手段は前記人物の関節を検出することを特徴とする、請求項1乃至
15の何れか一項に記載の画像処理装置。
【請求項17】
前記マップと、前記対象物と、を重畳表示する表示手段をさらに備えることを特徴とする、請求項
16に記載の画像処理装置。
【請求項18】
撮像画像から対象物を検出する検出工程と、
複数の撮像画像においてそれぞれ検出された対象物間の対応関係を示すマップを生成する生成工程と、
生成された前記マップに基づいて、前記複数の撮像画像においてそれぞれ検出された対象物をマッチングさせる判定工程と、
を備え、
前記生成工程は、前記複数の撮像画像間において同一であると推定される対象物の検出位置に応じた第1座標と、前記第1座標とは異なる第2座標とに異なる値を設定することで、前記複数の撮像画像においてそれぞれ検出された対象物間の対応関係を示すマップを生成することを特徴とする、画像処理方法。
【請求項19】
コンピュータを、請求項1乃至
17の何れか一項に記載の画像処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置、画像処理方法、及びプログラムに関する。
【背景技術】
【0002】
従来、映像中の物体を追尾する技術として、映像に含まれる画像間における同一領域をマッチングする技術がよく知られている。例えば、非特許文献1には、ある領域内の色及びヒストグラムのような特徴量を抽出し、以降の映像に対してその領域の近傍に存在するもっとも類似する特徴量を有する領域を特定することにより、物体を逐次的に追尾する技術が開示されている。また、特許文献1には、映像中のオブジェクトの動きに基づいて処理対象のフレームにおけるオブジェクトの位置を予測し、特徴量を比較する領域を予測された位置の近傍に絞り込む技術が開示されている。
【先行技術文献】
【特許文献】
【0003】
【文献】D.Comaniciu, V.Ramesh, P.Meer、“Real-time tracking of non-rigid objects using mean shift”、Proceedings IEEE Conference on Computer Vision and Pattern Recognition. CVPR 2000
【文献】A. Newell, Z. Huang, and J. Deng、“Associative Embedding: End-to-End Learning for Joint Detection and Grouping”、Advances in Neural Information Processing Systems 30. (NIPS 2017)
【文献】特開2012-181710号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、従来の技術においては、追尾対象の特徴量の比較を、当該物質の近傍又は移動先予測部分の領域に対してそれぞれ行うため、追尾対象が多い場合又は処理領域内の追尾対象の密度が高い場合に、検出装置による処理量が増大するという課題があった。
【0005】
本発明は、画像上で被写体を追尾する処理の処理コストを低減することを目的とする。
【課題を解決するための手段】
【0006】
本発明の目的を達成するために、例えば、一実施形態に係る画像処理装置は以下の構成を備える。すなわち、撮像画像から対象物を検出する検出手段と、複数の撮像画像においてそれぞれ検出された対象物間の対応関係を示すマップを生成する生成手段と、生成された前記マップに基づいて、前記複数の撮像画像においてそれぞれ検出された対象物をマッチングさせる判定手段と、を備え、前記生成手段は、前記複数の撮像画像間において同一であると推定される対象物の検出位置に応じた第1座標と、前記第1座標とは異なる第2座標とに異なる値を設定することで、前記複数の撮像画像においてそれぞれ検出された対象物間の対応関係を示すマップを生成することを特徴とする。
【発明の効果】
【0007】
画像上で被写体を追尾する処理の処理コストを低減することができる。
【図面の簡単な説明】
【0008】
【
図1】各実施形態に係るコンピュータ装置における機能構成の一例を示す図。
【
図2】実施形態1に係る画像処理装置における機能構成の一例を示す図。
【
図3】実施形態1に係る画像処理方法における処理例のフローチャート。
【
図4】実施形態1に係る線分マップの生成例のフローチャート。
【
図5】実施形態1に係る中間点マップの生成例のフローチャート。
【
図6】実施形態1に係る距離マップの生成例のフローチャート。
【
図7】実施形態1に係るIDマップの生成例のフローチャート。
【
図8】実施形態1に係る画像処理装置における複数の撮像画像の一例を示す図。
【
図9】実施形態1に係る画像処理装置におけるマップの生成の一例を示す図。
【
図10】実施形態2に係る画像処理装置における機能構成の一例を示す図。
【
図11】実施形態1に係る画像処理装置における画像表示の一例を示す図。
【
図12】実施形態3に係る画像処理装置における撮像例の俯瞰図を示す図。
【
図13】実施形態3に係る画像処理装置における撮像画像の一例を示す図。
【
図14】実施形態3に係る画像処理装置におけるマップの生成の一例を示す図。
【
図15】実施形態5に係る画像処理装置における時刻別の人物の一例を示す図。
【発明を実施するための形態】
【0009】
以下、添付図面を参照して実施形態を詳しく説明する。なお、以下の実施形態は特許請求の範囲に係る発明を限定するものではない。実施形態には複数の特徴が記載されているが、これらの複数の特徴の全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。さらに、添付図面においては、同一若しくは同様の構成に同一の参照番号を付し、重複した説明は省略する。
【0010】
図1は、後述する各実施形態に係る画像処理装置を構成するコンピュータ装置の構成の一例を示すブロック図である。画像処理装置はそれぞれ単一のコンピュータ装置で実現してもよいし、必要に応じた複数のコンピュータ装置に各機能を分散して実現するようにしてもよい。複数のコンピュータ装置で構成される場合は、互いに通信可能なようにローカルエリアネットワーク(Local Area Network、LAN)などで接続されている。
図1の例では、コンピュータ装置100、入力デバイス109、出力デバイス110、インターネット111、及びカメラ112と接続されている。これらの接続のされ方は特に限定されない。例えば、それぞれが別々に、有線で接続されていてもよいし、無線の通信を介して接続されていてもよい。また、コンピュータ装置100と入力デバイス109又は出力デバイス110とは、別々に独立した機器であってもよく、1つの機器内に一体となって構成される機器であってもよい。
【0011】
コンピュータ装置100は、詳細は後述するが、各実施形態における画像処理を行う。入力デバイス109は、コンピュータ装置100に対するユーザ入力を行うためのデバイスである。入力デバイスは、例えば、ポインティングデバイス又はキーボードであってもよい。出力デバイス110は、コンピュータ装置100の保持するデータ、ユーザ入力によって供給されたデータ、及びプログラムの実行結果を表示するために、画像及び文字を表示可能なモニタなどのデバイスである。カメラ112は、撮像画像を取得することが可能な撮像装置である。カメラ112は、例えば、後述の画像取得部201に入力するために、所定の間隔Δtを有する連続した撮像画像を取得してもよい。
【0012】
CPU101は、コンピュータ装置100全体を制御する中央処理装置(Central Processing Unit)である。CPU101は、例えば外部記憶装置104に格納された各種ソフトウェア(コンピュータプログラム)を動作させることにより、各実施形態に係る処理を実行し、及びコンピュータ装置100の動作を制御することができる。ROM102は、変更を必要としないプログラム及びパラメータを格納する読み出し専用メモリ(Read Only Memory)である。RAM103は、外部装置などから供給されるプログラムやデータを一時記憶するランダムアクセスメモリ(Random Access Memory)である。外部記憶装置104は、コンピュータ装置100が読み取り可能な外部記憶装置であり、プログラム及びデータなどを長期的に記憶する。外部記憶装置104は、例えば、コンピュータ装置100に固定して設置されたハードディスク及びメモリカードであってもよい。また例えば、外部記憶装置104は、コンピュータ装置100から着脱可能なフレキシブルディスク(FD)又はコンパクトディスク(CD)等の光ディスク、磁気又は光カード、ICカード、並びにメモリカードなどであってもよい。入力デバイスインタフェース105は、ユーザの操作を受けてデータを入力するポインティングデバイス又はキーボードなどの入力デバイス109とのインタフェースである。出力デバイスインタフェース106は、コンピュータ装置100の保持するデータや供給されたデータやプログラムの実行結果を出力するためのモニタなどの出力デバイス110とのインタフェースである。通信インタフェース107は、インターネット111やカメラ112などに接続するためのインタフェースである。カメラ112はインターネット111経由でコンピュータ装置100と接続しても構わない。108は101~107の各ユニットを通信可能に接続するシステムバスである。
【0013】
各実施形態においては、外部記憶装置104が格納している、各部の機能を実現するプログラムが、RAM103へと読みだされる。そしてCPU101が、RAM103上のプログラムに従って動作することにより、各部の機能が実現される。そのような場合において、各種プログラム及び各種設定データセットなどを記憶するのは外部記憶装置104に限定はされない。例えば、コンピュータ装置100は、各種プログラム及び各種設定データなどを、不図示のネットワークを通じてサーバなどから取得してもよい。
【0014】
[実施形態1]
図2は、実施形態1に係る画像処理装置の機能構成の一例を示すブロック図である。本実施形態に係る画像処理装置は、複数の時刻における撮像画像においてそれぞれ検出された対象物間で対象物の対応関係を示すマップを生成する。次いで、生成されたマップに基づいて、複数の撮像画像においてそれぞれ検出された対象物をマッチングさせる。そのような処理のために、本実施形態に係る画像処理装置は、画像取得部201、検出部202、統合部203、生成部204、判定部209を有する。以下において、マッチングとは、複数の時刻における撮像画像においてそれぞれ検出された、同一の対象物の像を対応付けることを指すものとする。対応関係とは、マッチングを行う対象物の関係を指すものとする。対応関係があることがわかっても、マッチングを行うまでは対象物が同一であることの対応付けはしていない。
【0015】
画像取得部201は、本実施形態における画像処理装置への入力となる画像を、カメラ112から取得する。画像取得部201は、例えば、カメラが撮像した動画について、所定のフレーム間隔を有する2枚のフレーム画像を取得してもよい。つまり、
図2の例においては、画像取得部201は、時刻tにおける画像210と、時刻t+Δtにおける画像211を取得する。
【0016】
検出部202は、画像取得部201が取得した各画像から対象物となる特定の物体を検出し、及び、それぞれの画像上での検出位置の座標を特定する。検出部202が検出する対象物は特に限定されない。検出部202は、例えば、対象物の有する特定の部位を検出してもよい。つまり、例えば、対象物が人物である場合に、検出部202は、人物の首や腰のような特定の関節又は持ち物のような、対象物の有する特定の部位の検出を行ってもよい。さらに、検出部202は、そのような特定の部位を複数検出し、そのそれぞれについて以下に続くマッチング処理を行ってもよい。例えば、人物の監視映像においては、混雑、カメラの画角、又は対象の検出の難しさなどに応じて、使える情報が限られてしまうことがある。すなわち、対象物である人物の首位置は隠れるが、頭頂部及び肩は見えているといった場合、又は人物が帽子を被っていて頭頂部の検出精度が十分でないといった場合が考えられる。複数の部位を検出してマッチングする処理によれば、例えば混雑又は隠れなどによって一部の特定の部位が検出できない場合でも、複数の部位の検出結果に基づくマッチングを行うことで、撮像状況に対してよりロバスト性が向上したマッチングを行うことができる。以下においては簡単のため、検出に用いられる対象物の有する特定の部位の座標を指して、検出位置と呼ぶものとする。複数の部位によるマッチングを行う場合においては、後述するマッチングのスコアを用いて、例えば、部位ごとのスコアを合計する。その他、予め設定された重みを用いたスコアの重み付き平均を算出してもよく、部位ごとのスコアの最大値を取得してもよい。そのような処理によれば、複数の部位のスコアに基づいた総合的な判定を行うことにより、判定部209は、ロバスト性を向上させたマッチング処理を行うことができる。
【0017】
本実施形態においては、検出部202は、画像中の対象物の特定の部位の存在位置を出力するように構成された畳み込みニューラルネットワーク(CNN)(以下、検出部202の有するCNNを検出CNNと呼ぶ)である。検出部202は、対象物の特定の部位を検出するタスクを予め学習済みであるとする。また、検出部202は、検出過程における検出CNNの中間層からの出力を、取得した画像の特徴量として、統合部203へと出力する。検出部202が出力する検出CNNの中間層の出力を特徴量として用いることにより、生成部204は、後述するマップの学習フェーズ及び推定フェーズを行うことができる。したがって、検出CNNによる検出位置に基づいてマップを参照する際に、そのような検出位置とマップ上に参照される座標の位置のずれが少ない、適切な位置を参照することができる。
【0018】
統合部203は、各画像から取得される特徴量を統合する。本実施形態において統合部203は、検出部202が出力した特徴量を結合(concatenate)することができる。しかし、統合部203による特徴量の統合の方法は特にこれに限定されるものではない。例えば、統合部203は、特徴量を統合するようなニューラルネットワークで構成されていてもよい。そのような場合、統合部203は、後述する生成部204の学習と同時に、中間特徴をそれぞれ重みづけして統合するように学習されていてもよい。また、統合部203は、多段のCNNで構成されていてもよく、時系列の情報を保存するためにRNN(Reccurent Neural Network)で構成されていてもよく、又は時間軸を加えた3次元のCNNで構成されていてもよい。
【0019】
生成部204は、複数の画像が有する特徴量から、それらの画像間における対象物の対応関係を示すマップを生成する。
図2の例においては、生成部204は、統合部203が結合した特徴量を入力としてマップを生成することができる。つまり、画像210及び画像211に基づいて、両画像間における対象物の対応関係を示すマップを生成することができる。マッチングのロバスト性を向上させるため、生成部204は、そのようなマップを複数種類生成してもよい。そのために、この例においては、生成部204は、線分推定部205、中間点推定部206、距離推定部207、及びID推定部208を有している(以下においては簡単のため、これらの内のいずれか一つを指して推定部と呼ぶ)。この場合、1組の画像210及び211に対して、例えば各推定部全てがマップを生成してもよく、一部の推定部がマップを生成してもよく、一つの推定部がマップを生成してもよい。また、生成部204が有する推定部(つまり、生成するマップ)は、撮像画像間のマッチングする対象物の関係を示すマップを生成できるのであれば、特にこれらには限定されない。上述の4つの推定部が生成するマップ以外の例については後述する。
【0020】
各推定部205~208は、対象物の検出位置の座標に基づいて定められる所定の領域に各マップ特有の情報を有するマップを生成することができるが、そのようなマップの生成処理の詳細についてはそれぞれ
図4~7と共に後述する。マップとは、この例においては、マッチングを行う撮像画像を入力として、推定部によって生成されるデータであり、マップ上の所定の領域の画素値を判定部209が参照することによって各マップ特有の情報を取得し及び対象物のマッチング判定が行われる。例えば、判定部209は、画像210及び画像211における検出位置の座標をマップ上の座標に変換し、及び変換された各座標に基づく所定の領域の画素値を用いることにより対象物のマッチング判定を行うことができるが、工程の詳細は後述する。本実施形態において生成部204は、CNNで構成される。以下において、生成部204が有するCNNを生成CNNと呼ぶ。つまり、この例においては各推定部205~208が有するCNNのいずれか一つ以上を指して生成CNNと呼ぶ。
【0021】
生成CNNはconvolution層を複数含む多段のネットワークであるが、その構成は特に限定されない。生成CNNの出力層は、例えば、所定の縦横サイズのマップを一枚出力してもよく、又は所定の縦横サイズ×N次元のN枚のマップを出力してもよい。生成部204の有する各推定部は、複数の画像の特徴量を入力された場合に、各検出位置の座標に基づいて定まる所定の領域の画素値が、それらの対象物が対応しているかどうかを示す値となるマップを出力するように、予め学習されている。この学習において、推定部は、1つのマップが有する画素値について学習していてもよく、複数のマップが有する画素値を要素として有するベクトルについて学習していてもよい。また、この学習において各推定部は、そのようなマップ全体を出力するように学習されていてもよく、又は、マップ中の、判定部209が参照する所定の領域に出力される画素値についてのみ学習されていてもよい。例えば検出位置若しくはその周辺の画素、並びに検出位置の中間点のみを参照するようなマップであれば、そのような参照される領域の画素の出力が正解データと同様になるように学習するようにしてもよい。
【0022】
判定部209は、生成部204が生成したマップを参照して、複数画像間における対象物のマッチングを行う。
図2の例においては、判定部209は、画像210と211の間における対象物のマッチングを行うことができる。そのために、判定部209は、画像210及び画像211それぞれにおける検出位置の座標を、各座標に対応するマップ上の座標へと変換することができる。例えば、検出に用いた撮像画像のサイズとマップのサイズが等しい場合においては、判定部209は、各画像における検出位置の座標をそのままマップ上の座標としてもよい。また、検出に用いた撮像画像のサイズとマップのサイズとが異なる場合においては、判定部209は、撮像画像上の検出位置の座標をマップ上の座標へと変換してもよい。次いで判定部209は、変換された各検出位置の座標に基づいて、推定部ごとに予め定められている、マップ上の所定の領域の位置を取得してもよい。さらに判定部209は、その所定の領域の画素値からマッチングのスコアを算出し、算出されたスコアに基づいて対象物のマッチングを行うことができる。所定の領域、及び所定の領域に基づいた処理は用いられるマップに応じて異なるため、詳細な説明は
図4~7と共に後述する。以下において、両画像とは、画像210及び画像211を指すものとする。
【0023】
図3は、本実施形態に係る画像処理装置による処理手順の一例を示すフローチャートである。
図3の例における画像処理装置は、1台のカメラ112が撮像する、所定のフレーム間隔を有する2枚のフレーム画像が入力された場合に、その二つの画像間において、画像中に検出されるマッチングする対象物の同一部位を対応付ける。つまり、例えば人物の動きを監視する位置に設置された監視カメラであるカメラ112が、映像中の2フレーム画像間において、画像内の人物がどのように動いたかを追尾するために、各画像間で同じ人物を対応付けることができる。
【0024】
ステップS301において画像取得部201は、カメラ112が撮像する映像から、時刻t及びt+Δtにおける計2枚のフレーム画像を取得する。所定の間隔Δtの値は特に限定されない。画像取得部201は、例えば、0.5秒の間隔ごとに撮像されるフレーム画像を取得することができる。ステップS302において検出部202は、ステップS301で取得された各フレーム画像を検出CNNに入力することにより、それぞれの画像における対象物の特定の部位を検出し、及び対象物の特定の部位の座標を取得する。各フレーム画像は、それぞれ複数の検出部202へと入力されてもよく、また同一の検出部202へと入力されてもよい。ステップS303で統合部203は、検出部202から、ステップS304で用いられる、検出CNNによる検出処理過程の中間特徴を、各フレーム画像それぞれについて取得する。ステップS304において統合部203は、両画像から取得された中間特徴を統合する。以下においては説明のため、統合部203は、検出CNNから出力された特徴量を結合(concatenate)するものとするが、上述の通りこれには限られない。
【0025】
ステップS305で、生成部204が有する各推定部が、ステップS304で結合された特徴量を入力されることにより、両画像の対象物の対応関係を示すマップを出力する。検出部202が出力する中間特徴を用いてマップを作成することにより、検出された対象物の位置とマップ上の対象物の位置とのずれを抑制することができる。また、検出部202が出力する中間特徴を再利用することにより、マップ作成にかかる処理コストを低減することができる。このステップS305においては、すべての推定部がマップを作成してもよく、複数の推定部が選択的にマップを作成してもよく、又は1つの推定部がマップを作成してもよい。以下のステップS306~S308においては一つのマップについての工程が説明されているが、マップが複数生成されている場合は、それぞれについて同様の手順で処理を行う。
【0026】
ステップS306においては、判定部209が、両画像における検出位置の座標を、マップ上の座標に変換し及び取得する。判定部209は、例えば、生成CNNから出力されるマップのサイズが撮像画像と異なる場合において、上述のように、マップと同サイズになるように変換された撮像画像における検出位置のピクセル座標と同座標を、検出位置のマップ上の座標として取得してもよい。生成CNNは、入力される画像のサイズと出力される画像とのサイズ差に基づいて入力画像上の検出対象の座標をマップ上の座標に変換して得られる座標に基づいて定められる所定の領域に、各マップ特有の情報を有するマップを出力するよう学習されていてもよい。
【0027】
ステップS307において判定部209は、ステップS305で出力したマップと、ステップS306で取得された検出位置のマップ上の座標と、に基づいて、マップ上の所定の領域の位置を取得する。次いで判定部209は、その領域の画素値を取得する。ステップS308において判定部209は、ステップ307において取得された画素値から、時刻tにおける各対象物と、時刻t+Δtにおける各対象物と、のマッチングに用いるスコアをそれぞれ算出する。ステップS308では、各時刻における対象物の全ての組み合わせについてスコアを算出してもよく、一部の組み合わせについてスコアを算出してもよい。判定部209が画素値を取得する領域の位置、及びスコアの算出方法は特に限定されず、また、この例においては用いられるマップに応じて変化し得るため、詳細な処理手順は後述の
図4~
図7と共に説明する。
【0028】
ステップS309において判定部209は、ステップS308で算出されたスコアに基づいて、両画像間の対象物のマッチングを行う。判定部209は、例えば、一つのマップにおけるスコアからマッチングを行ってもよく、複数のマップにおけるスコアを統合してマッチングを行ってもよい。複数のマップにおけるスコアを統合する場合、その統合方法は特に限定されない。判定部209は、各マップのスコアの符号及び範囲を、例えば大きい値であるほど両画像間の対象物がマッチングする可能性が高いスコアとして0~1の範囲に揃え、及びそれらのスコアの積を求めることでスコアの統合を行ってもよい。そのように統合されるスコアの算出方法について、
図4~7と共に後述する。また例えば、判定部209は、マップごとに算出されたスコアを、予め与えられた所定の重みを付与し、及び線形結合を行うことによって統合してもよい。さらに例えば、判定部209は、各マップのスコアの値の範囲、又は推定精度などに基づいて、公知の発見的手法により各スコアを適宜組み合わせてもよい。さらに、判定部209は、最適な組み合わせとなるような線形結合の重みづけを、logistic回帰などの公知の手法を用いて、サンプルデータから統計的に求めてもよい。このように複数のマップを考慮したマッチング判定を行うことにより、マッチングの精度を向上させることができる。
【0029】
また、判定部209は、ステップS308で算出されたスコアを全て統合してもよく、又は一部を選択的に統合してもよい。例えば、判定部209は、予め定められた所定の閾値を用いることで算出されたスコアの評価を行い、閾値以上の値を有するスコアを選択的に統合してもよい。このような処理によれば、対象の状態(対象物部位の隠れの状態、被写体の密集度、又は画像中における対象物の大きさなど)によって生じる値のばらつきを考慮したマッチングを行うことができる。つまり、例えば対象物の特定の部位が隠れることによって生じる誤マッチングなどを抑制することができる。
【0030】
次に、
図4~
図7のフローチャートを参照することにより、生成部204が有する各推定部の例、及びステップS306~ステップS309における処理について補足する。
図4~
図7のフローチャートは、各推定部により生成されるマップそれぞれについて、スコアの算出手順が示されている。
【0031】
推定部は、ステップS305において、検出部202が取得した特徴量から、撮像画像間の対象物の対応関係を示すマップを出力する。つまり、この例では正解データに基づいて、2画像の特徴量を結合したものを入力として、画像間の対象物の対応関係を示すマップを出力するように学習されている。推定部は、その推定部に対応するマップ上の、入力された両画像における検出位置の座標に基づいて定まる所定の領域に、各マップ特有の情報を備えたマップを生成する。つまり、所定の領域の画素値を参照することによりマッチング判定が可能なマップを生成する。
【0032】
線分推定部205は、マッチングする対象物の検出位置を結ぶ線分上の領域と、その領域以外の領域と、で異なる画素値を有するマップ(以下、線分マップと呼ぶ)を生成することができる。つまり、マッチングする対象物の検出位置を結ぶ線分上の領域の画素値を参照した場合は1に近い尤度値が得られ、そうでない領域を参照した場合は0に近い尤度値が得られやすくなる、参照した対象物が対応しているか否かの尤度を示すマップを生成してもよい。ここで設定される画素値の値は特にこれには限定されず、適宜所望の値に設定されてもよいものとするが、以下においては説明のためこれに従う。
【0033】
線分推定部205が有する生成CNNは、例えば、非特許文献2における方法のような既知の方法によって学習されていてもよい。つまり、線分推定部205は、正解データとして、マッチングする対象物を含む2画像の特徴量を生成CNNへ入力した場合の出力となる、上述のような画素値の分布を有するマップが与えられていてもよい。次いで、線分推定部205は、そのような2画像を入力した際に正解データが出力できるよう、そのような2画像を入力した際の出力と正解データとから、例えば交差エントロピー誤差を用いた誤差逆伝播を行うことにより学習を行うことができる。交差エントロピー誤差については公知であるため詳細な説明は省略する。
【0034】
線分マップについて、判定部209はステップS307で、両画像における対象物一組の検出位置の対応する座標を結ぶ線分上の画素の各画素値を取得することができる。次いで、判定部209は、ステップS308において、取得した画素値の集合を積分し、及び積分した値を取得した画素の画素数で割った値をスコアとして算出することができる。すなわち、参照した線分上の画素値の平均をスコアとして算出する事ができる。さらに判定部209は、ステップS309において、このように算出されたスコアを用いて、上述のようにマッチングを行う。
【0035】
図4は本実施形態に係る線分マップを用いたスコアの算出処理における処理手順の一例を示すフローチャートである。ステップS401及びS402、ステップS403~S405、ステップS406、並びにステップS407は、
図3におけるステップS306、S307、ステップS308、及びステップS309にそれぞれ相当する。ステップS401において、判定部209は、検出部202が検出した時刻tの画像における対象物の検出位置(以下、第1の検出位置と呼ぶ)の集合を取得する。ステップS402において、判定部209は、検出部202が検出した時刻t+Δtの画像における対象物の検出位置(以下、第2の検出位置と呼ぶ)の集合を取得する。ステップS401及びS402においては、判定部209は、上述のように、両画像における検出位置の座標を、線分マップ上の対応する座標に変換し及び取得する。
【0036】
ステップS403において、判定部209は、第1の検出位置及び第2の検出位置から、それぞれ一つずつ、スコアを算出する検出位置の組み合わせを選択する。本実施形態においては、判定部209は、第1の検出位置全体から、及び第2の検出位置全体からそれぞれ検出位置を選択しているが、特にそれに限定されるわけではない。判定部209は、第1の検出位置と第2の検出位置とについて、それぞれ所定の条件に基づいて選定された組み合わせから選択を行ってもよい。例えば、判定部209は、第1の検出位置に対して、その第1の検出位置を中心とする予め定められた所定の範囲内に存在する第2の検出位置の内から、第2の検出位置を選択してもよい。また例えば、判定部209は、時刻t以前のマッチング結果に基づいて、対象物それぞれについて移動方向及び速度のような移動情報を取得することができる。次いで、判定部209は、そのような移動情報から時刻t+Δtにおける対象物のおおよその移動位置を推定し、及び、各第1の検出位置について、推定された移動位置に基づいて定められる範囲の内から第2の検出位置の選択を行ってもよい。また、この例においてはステップS403~S406は繰り返し行われ得るが、判定部209は、前回までの繰り返しにおいて選択されたことのある第1の検出位置と第2の検出位置との組み合わせは除外して選択を行う。
【0037】
また、ステップS403において、判定部209は、第1の検出位置と第2の検出位置とのユークリッド距離が所定の閾値以上となる組み合わせを除外して選択を行ってもよい。ここで、閾値は被写体の大きさに応じて設定することができる。このように、大きく離れた対象物の組み合わせを除外し、このような組み合わせについての処理を省略することにより、処理コストを低減させることができる。
【0038】
ステップS404において、判定部209は、ステップS403で未処理の検出位置の組み合わせを選択することができたかどうかを判定する。つまり、検出位置の全ての組み合わせについてマッチング処理を行ったかどうかを判定する。選択できた場合は処理がステップS405へと移動し、未処理の組み合わせが残っていなかった場合はステップS407へと移動する。
【0039】
ステップS405において判定部209は、ステップS403で選択された検出位置の、線分マップ上での座標を結んだ線分上の画素を参照し、その画素値を取得する。そのような処理について、
図8、及び
図9(a)を用いて説明する。
図8(a)及び
図8(b)はそれぞれ時刻t及びt+Δtにおける撮像画像であり、時刻tにおける人物の首位置801、及び時刻t+Δtにおける人物の首位置802が示されている。この場合においては、線分推定部205は、マッチングする対象物の首位置801及び802を結ぶ線分上の領域と、その領域以外の領域と、で異なる画素値を有する線分マップを生成している。
図9(a)はそのように生成された線分マップを示す図である。
【0040】
線分推定部205は、理想的には、首位置801及び802に対応する線分マップ上の座標を結んだ線分が線分マップ上に出力されるように推定を行っている。
図9(a)は、このように出力された線分901を示している。
図9(a)においては一人の人物に関する線分マップが出力されている例が示されているが、特にそのように限定されるわけではない。複数の人物が存在する場合は、各人物の検出位置に応じた複数の線分が推定及び出力される。先に述べた通り、同一人物の首位置の間の線分上の画素の値は1に近く、それ以外は0に近い値となるように線分マップが生成される。
【0041】
なお、線分マップ上に出力される線分は、最小限の太さを有する線分であってもよいし、より太い線分であってもよい。例えば、
図9(a)に示すように、線分901が、首位置801及び802に対応する線分マップ上の点を結ぶ線分を中心とした、ガウス分布に従う画素値の分布を有する画素群により表されてもよい。このように、所定の閾値以上の画素値を有する画素群により、2点を結ぶ線分を表現してもよい。
【0042】
ステップS405において判定部209は、時刻t及び時刻t+Δtにおける対象物をそれぞれ一つずつ選択し、選択した対象物の検出位置(例えば関節位置)について、線分マップでの座標を結んだ線分上の画素値を取得することができる。なお、ステップS405において判定部209は、2点を結ぶ、最小限の太さを有する線分上の画素値を取得する代わりに、そのような線分を中心とした所定の幅を有する領域中の画素値を参照して画素値を取得してもよい。一例として、判定部209は、2点を結ぶ線分上の各画素についての画素値として、各画素を中心とする所定範囲(例えば3×3画素範囲)内の最大画素値または平均画素値を取得してもよい。
【0043】
ステップS406において判定部209は、ステップS405で取得された画素値の積分値を算出し、及び算出された積分値を線分中の画素数で割ることにより、スコアを算出する。ここで、ステップS403で選択した2点が同一人物のものであれば、当該2点を結ぶ線分上の画素は、線分マップの線分上の画素と近い位置にあるため、取得した画素値を積分すると1×線分中の画素数の値に近くなる。このマッチングスコアが1に近いほど、当該2点の組み合わせは同一人物どうしの組み合わせである可能性が高い。逆に、他の人物との間には線分が出力されないため、上記のように求めたマッチングスコアは1よりも小さくなる。このようにして求めたマッチングスコアを利用することで、2点の組み合わせが同一人物か否かを判定することができる。なお、この例においては判定部209が参照した領域の画素値の平均をスコアとしたが、スコアとする値の算出方法は特にそのようには限定されない。例えば、判定部209は、取得した画素値の集合から、中央値を取ってもよく、上述の中心となる線分に近いほど重みが大きくなるような重みつきの平均を取ってもよく、又は最大値をとってもよい。本実施形態のように線分上の複数の画素に値を出力するマップを用いることで、推定ミスで部分的に欠損が生じたり、検出位置が若干ずれたりした場合であっても、ロバストにマッチングできる。
【0044】
次いで、判定部209は、ここで算出されたスコア、及び検出位置の組み合わせを記憶装置に格納し、ステップS403に移動する。この記憶装置は外部記憶装置104であってもよく、又は無線の通信を介して接続される記憶装置であってもよい。上述した通り、次回のステップS403で選択される検出位置の組み合わせは、その時点で記憶装置に格納されていない組み合わせから選択される。
【0045】
ステップS403で全ての検出位置の組み合わせを選択し終えたと判定された場合であるステップS407において、判定部209は、記憶装置に格納されたスコア及び組み合わせに基づいて、検出位置に応じた対象物のマッチングを行う。本実施形態においては、判定部209は、各マップにおけるスコアすべてを用いてマッチングを行うものとするが、上述の通りそのようには限定されない。例えば、判定部209は、線分マップにおけるスコアのみに基づいてマッチングを行う場合、それぞれの第1の検出位置について、最も高いスコアを有する組み合わせとなる第2の検出位置を選択してもよい。そのような場合において、一つの第2の検出位置に対して、最も高いスコアを有する組み合わせとなるようにその第2の検出位置を選択する第1の検出位置が複数存在する場合には、その中で最もスコアが高い組み合わせが優先される。次いで、そのような第2の検出位置を組み合わせとして選択できなかった第1の検出位置について、その第2の検出位置を除いた内から再び最も高いスコアを有する組み合わせとなる第2の検出位置を選択してもよい。また例えば、判定部209は、貪欲法又はハンガリー法などの公知の割り当て法を用いて、対象物のマッチングを行ってもよい。また、判定部209は、処理コストの低減のため、線分マップ、又は後述の中間点マップにおけるスコアから、予め定めることのできる所望の閾値よりも小さい値を有しているスコアを取り除いてからマッチングを行ってもよい。そのような閾値は、対象物の密集度及びサイズなどに応じて、適宜所望の値として判定部209が設定することができる。
【0046】
中間点推定部206は、マッチングする対象物の検出位置を結ぶ線分の中間点と、それ以外の領域と、で異なる画素値を有するマップ(以下、中間点マップと呼ぶ)を生成することができる。中間点推定部206は、例えば、マッチングする対象物の検出位置を結ぶ線分の中間点の画素値を1とし、それ以外の領域の画素値を0とするマップを生成してもよい。つまり、マッチングする対象物の検出位置を結ぶ線分の中間点の画素値を参照した場合は1に近い尤度値が得られ、そうでない領域を参照した場合は0に近い尤度値が得られやすくなる、参照した対象物が対応しているか否かの尤度を示すマップを生成してもよい。ここで設定される画素値の値は特にこれには限定されず、適宜所望の値に設定されてもよいものとするが、以下においては説明のためこれに従う。
【0047】
中間点推定部206が有する生成CNNは、例えば、非特許文献2における方法のような既知の方法によって学習されていてもよい。つまり、中間点推定部206は、正解データとして、マッチングする対象物を含む2画像の特徴量をCNNへの入力とした場合の出力となる、上述のような画素値の分布を有するマップが与えられていてもよい。次いで、中間点推定部206は、そのような2画像を入力した際に正解データが出力できるよう、そのような2画像を入力した際の出力と正解データとから、例えば交差エントロピー誤差を用いた誤差逆伝播を行うことにより学習を行うことができる。
【0048】
判定部209はステップS307で、両画像における対象物一組の検出位置の座標にそれぞれ対応する中間点マップ上の座標を結ぶ線分の、中間点の画素値を取得することができる。次いで、判定部209は、ステップS308において、取得した画素値をスコアとして記録することができる。さらに判定部209は、ステップS309において、ステップS308で記録されたスコアを用いて、上述のようにマッチングを行う。
【0049】
図5は本実施形態に係る中間点マップを用いた画像処理における処理手順の一例を示すフローチャートである。ステップS401~S404、及びステップS407における処理は
図4のものと同様であり、重複する説明は省略する。ステップS403、S404及びS501、並びにステップS502は、
図3におけるS307、及びステップS308にそれぞれ相当する。ステップS501において判定部209は、ステップS403で選択された検出位置の、中間点マップ上での座標を結んだ線分の中間点の画素の画素値を取得する。そのような処理について、
図8、及び
図9(b)を用いて説明する。
図8(a)及び
図8(b)については上述した通りである。この場合においては、判定部209は、首位置801及び802にそれぞれマッチングする対象物の検出位置を結ぶ線分の中間点と、その領域以外の領域と、で異なる画素値を有するマップを生成している。
【0050】
中間点推定部206は、理想的には、首位置801と802に対応する座標を結んだ線分の中間位置の座標に、中間点を示す点が出力されるように、中間点マップを生成する。
図9(b)はそのように生成された中間点マップを示す図であり、出力された中間点902を示している。
図9(b)においては一人の人物に関する中間点マップが出力されている例が示されているが、特にそのように限定されるわけではない。例えば、複数の人物が撮像画像内に撮像されている場合、中間点マップ上に、各人物の検出位置に応じた複数の中間点が出力される。この例では、同一人物の首位置の間の中間点の画素の値は1に近く、それ以外は1に近い値となるように、推定及び中間点マップの生成が行われる。
【0051】
なお、中間点マップにおいて、中間点は、1画素によって表されてもよいし、局所領域によって表されてもよい。すなわち、中間点推定部206は、1画素のみに値が出るように推定する必要は無く、1画素の近傍の局所領域の値が1に近くなるように、推定及び中間点マップの生成を行ってもよい。また、中間点マップは、中間点を中心とするガウス分布に従う画素値分布を有していてもよい。このような構成によれば、例えば検出部202による検出位置にずれが生じてしまった場合においても、ステップS308で算出される値に、検出位置のずれ由来のずれが生じにくくなり、マッチングのロバスト性を向上させることができる。
【0052】
判定部209は、時刻t及び時刻t+Δtにおける対象物をそれぞれ一つずつ選択し、選択された対象物の検出位置に対応する中間点マップ上の座標の中間点の画素値を取得することができる。また、処理コストが許容される範囲で、判定部209は、この中間点の近傍の所定範囲(例えば3×3画素範囲)の画素値を参照して、中間点についての値を取得してもよい。例えば、判定部209は、中間点近傍の所定範囲についての、最大画素値、平均画素値、又は画素値の中央値を取得してもよい。また、判定部209は、中間点近傍の所定範囲について、中間点ほど高くなる重み分布を用いる重みつきの平均を取得してもよい。このように、判定部209は、マッチング対象どうしの中間点であるか否かに応じて値に差が生じる方法を用いて、値を取得することができる。このような方法は、中間点マップが中間点を中心とする画素値分布を有している場合に特に有効である。すなわち、一定範囲の領域を参照することで、例えば推定のミスでデータに部分的な欠損が生じた場合、又は検出位置にずれが生じたような場合においても、局所領域内の画素値を参照することにより、ロバスト性が向上したマッチングを行うことができる。
【0053】
ステップS502において判定部209は、ステップS501で取得された値を、一組の対象物についてのマッチングスコアとして、検出位置の組み合わせ情報とともに記憶装置に格納し、ステップS403に移動する。この記憶装置は外部記憶装置104であってもよく、又は無線の通信を介して接続される記憶装置であってもよい。上述した通り、次回のステップS403で選択される検出位置の組み合わせは、その時点で記憶装置に格納されていない組み合わせから選択される。
【0054】
距離推定部207は、マッチングする対象物の検出位置を結ぶ線分の中間点の画素値が、その線分の長さを示す値を持つマップ(以下、距離マップと呼ぶ)を生成することができる。距離マップにおいては、マッチングする対象物の検出位置を結ぶ線分の中間点と、その領域以外の領域と、で異なる画素値を有していてもよい。距離マップにおいては、同一個体の同一部位間の線分の中間点の画素値が、この線分の距離に比例する値となっていてもよい。つまり、そのような中間点の画素値を、予め与えられている所定の係数をかけることで線分の長さの値が得られるような値(以下、推定値と呼ぶ)としてもよい。また、距離推定部207は、マッチングする対象物の検出位置を結ぶ線分の中間点の画素値が、各検出位置の座標のx座標の値の差に比例する値となるマップと、各検出位置の座標のy座標の値の差に比例する値となるマップと、を別々に生成してもよい。距離推定部207が生成するマップはこれらには限定されず、一例において距離マップに設定される画素値は、マッチングする対象物の検出位置を結ぶ線分の長さを示す任意の値である。以下においては説明のため、上述の中間点の画素値が、マッチングする対象物の検出位置を結ぶ線分の長さの値と比例した値となるマップを生成するものとして説明を行う。
【0055】
距離推定部207が有する生成CNNがそのように学習を行うために、正解データとして、マッチングする対象物を含む2画像の特徴量をCNNへの入力とした場合の出力となる、上述のような画素値の分布を有するマップが与えられる。次いで、距離推定部207は、そのような2画像を入力した際に正解データが出力できるよう、そのような2画像を入力した際の出力と正解データとから、例えば平均2乗誤差を用いた誤差逆伝播を行うことにより学習を行うことができる。平均2乗誤差については公知であるため詳細な説明は省略する。
【0056】
判定部209はステップS307で、両画像における対象物一組の検出位置の座標に対応する距離マップ上の座標を結ぶ、線分の中間点の画素値を取得することができる。次いで、判定部209は、ステップS308において、取得した画素値に所定の係数をかけ、及び、所定の係数をかけたその値と、対応する座標を結ぶ線分の長さの値と、の差を算出する。判定部209は、算出した差に基づいてマッチングに用いるスコアを取得することができるが、詳細はステップS603において後述する。さらに判定部209は、ステップS309において、ステップS308で記録されたスコアを用いて、上述のようにマッチングを行う。
【0057】
図6は本実施形態に係る距離マップを用いた画像処理における処理手順の一例を示すフローチャートである。ステップS401~S404、及びステップS407における処理は
図4のものと同様であり、重複する説明は省略する。ステップS403、S404及びS601、並びに、ステップS602及びステップS603は、
図3におけるS307、及びステップS308にそれぞれ相当する。ステップS601において判定部209は、ステップS403で選択された検出位置の、距離マップ上での座標を結んだ線分の中間点の画素を参照し、その画素値を取得する。そのような処理について、
図8、及び
図9(c)を用いて説明する。
図8(a)及び
図8(b)については上述した通りである。
【0058】
この場合、距離推定部207は、理想的には、首位置801と802とを結んだ線分の中間位置の座標に推定値が出力されるように、距離マップを生成している。
図9(c)はそのように生成された距離マップを示す図である。この距離マップにおいては、首位置801及び802に対応する距離マップ上の点を結ぶ線分の中間点903に、上記のような推定値が出力されている。
図9(c)においては一人の人物に関する距離マップが出力されている例が示されているが、特にそのように限定されるわけではない。例えば、複数の人物が撮像画像内に撮像されている場合、同一人物に対応する位置を結んだ線分の中間位置の画素それぞれに推定値が出力される。
【0059】
なお、推定値は必ずしも中間点に出力されなくてもよく、同一の対象物の検出位置との関連がわかるように別の方法で距離マップに出力されてもよい。例えば、距離マップにおいて、2つの検出位置を結ぶ線分との関連がわかるように推定値が出力されてもよい。具体例として、2つの対象物に対応する距離マップ上の検出位置を結ぶ線分全体の画素値が、推定値となるように、距離マップが生成されてもよい。また、推定値が、2つの検出位置を結ぶ線分の中間点を中心とする局所領域内の各画素が、推定値を有するように、距離マップが生成されてもよい。このような構成により、例えば検出部202による検出位置にずれが生じてしまった場合においても、判定部209が参照する値が所望の値となりやすくなり、マッチングのロバスト性を向上させることができる。
【0060】
判定部209は、時刻t及び時刻t+Δtにおける対象物をそれぞれ一つずつ選択し、選択した対象物の検出位置(例えば関節位置)について、距離マップでの座標を結んだ線分の中間点の画素値を取得することができる。このような構成によれば、後述のステップS603において、マッチングする対象物の検出位置を結ぶ線分の長さと、例えば中間点の画素値から算出される値と、の差の絶対値は0に近くなりやすくなる。また、マッチングしない対象物の検出位置について同様の計算を行った絶対値は0から離れやすくなる。
【0061】
ステップS602において判定部209は、ステップS601で取得された画素値に予め与えられている係数をかけることにより、線分の推定の長さを算出する。つまり、選択されている対象物の組み合わせがマッチングする対象物同士であれば、算出される値が距離マップにおける各座標間の距離と等しくなることが推測される値を算出する。
【0062】
ステップS603において判定部209は、ステップS602で算出された値と、一組の座標を結ぶ線分の長さと、の差を算出する。次いで、判定部209は、算出した差の絶対値に基づいて、マッチングに用いるスコアを取得することができる。スコアの取得方法は特に限定されない。ここで算出された絶対値が小さいほどそれらの対象物が対応している可能性が高くなるであろうことを鑑みて、判定部209は、そのような絶対値が小さくなるほどスコアが高くなるような変換を行うことにより、スコアを取得してもよい。例えば、判定部209は、そのような絶対値の逆数をスコアとして算出してもよく、そのような絶対値に負の記号を付けた値によるexponentialのべき乗をスコアとして算出してもよい。また、他のマップにおけるスコアと併用するという観点から、判定部209は、距離マップを用いたスコアを0~1の範囲で、及びスコアが高いほどそれらの対象物が対応している可能性が高くなるように算出してもよい。つまり、上述の絶対値の逆数をスコアとする場合においては、絶対値が十分に小さい場合にスコアが無限大に発散することを考えて、判定部209は、例えば絶対値が予め設定されている下限値を下回る場合において、スコアを1として出力してもよい。また、上述の絶対値の絶対値に負の記号を付けた値によるexponentialのべき乗をスコアとする場合においては、判定部209は、算出した値をそのままスコアとして用いることができる。本実施形態においては、判定部209は、距離マップを用いたスコアを0~1の範囲で算出するが、その範囲は、他のマップにおけるスコアの算出方法に応じて適宜調整されてもよい。次いで、判定部209は、ここで算出されたスコア、及び検出位置の組み合わせを記憶装置に格納し、ステップS403に移動する。
【0063】
ID推定部208は、互いに対応すると推定される対象物のそれぞれの検出位置に応じて定まる位置に、同じ対象物を示す識別情報(画素値)を有しているマップ(以下、IDマップと呼ぶ)を生成することができる。例えば、ID推定部208は、マッチングする2つの対象物の検出位置に対応する領域が同じ画素値を有するマップを生成することができる。このIDマップはマッチングする2つの対象物の検出位置に対応する領域と、それ以外の領域と、で異なる画素値を有していてもよい。ID推定部208は、例えば、時刻tにおける検出位置に対応する領域と、時刻t+Δtにおける検出位置に対応する領域と、のそれぞれに、等しい画素値を有するマップを生成することができる。一例として、ID推定部208は、各検出位置上の領域に、対象物固有の識別情報を示す画素値(以下、ID値と呼ぶ)を有するマップを生成してもよい。また、この例においては、マッチングする対象物の検出位置上の領域が等しい画素値を持つようなマップが一つのみ生成されるが、ID推定部208が生成するマップは特に1つには限定されない。例えば、ID推定部208は、時刻tについてのマップと、時刻t+Δtについてのマップと、を生成してもよい。つまり、ID推定部208は、時刻tについてのマップ上の検出位置上の領域と、時刻t+Δtについてのマップ上のマッチングする対象物の検出位置上の領域と、が等しい画素値を持つように、マップを生成することができる。このように二つのマップを生成する処理によれば、例えば時刻t+Δtにおいて、時刻Δtで対象物が存在していた位置に別の対象物が移動してくる場合においても、それぞれの対象物を区別して画素値を取得し、マッチングを行うことができる。
【0064】
ID推定部208は、マッチングする対象物の検出位置上の領域の画素値の分散が最小化し、及び対応しない検出位置上の画素値の平均と、対応しない検出位置上の画素値の平均と、の分散が最大化するようなマップを生成することができる。ID推定部208が用いるCNNは、そのような画素値の分布を有するマップを出力することを正解として学習が行われていてもよい。すなわち、学習用の2枚の画像データをCNNに入力することにより得られたIDマップから、上記の分散に基づく損失評価値を算出し、この損失評価値を用いた誤差逆伝播を行うことにより、学習を行うことができる。また、学習データにおいて各対象物ごとに予めID値が与えられている場合においては、マップを用いた学習を行ってもよい。つまり、ID推定部208が用いるCNNは、正解データとして、画像データの各位置における対象物のID値を示すIDマップを用いた学習が行われていてもよい。この場合、2枚の画像データを入力した際に正解データが出力できるよう、例えば出力と正解データとに基づく交差エントロピー誤差を用いた誤差逆伝播を行うことにより、学習を行うことができる。
【0065】
IDマップについて、判定部209はステップS307で、両画像における対象物一組について、各検出位置上の画素値を取得することができる。判定部209は、取得した領域上の画素値を取得してもよい。判定部209は、取得された各画素値の差を算出する。判定部209は、算出した差に基づいてマッチングに用いるスコアを取得することができるが、詳細はステップS702において後述する。さらに判定部209は、ステップS309において、ステップS308で記録されたスコアを用いて、上述のようにマッチングを行う。
【0066】
図7は本実施形態に係るIDマップを用いた画像処理における処理手順の一例を示すフローチャートである。ステップS401~S404、及びステップS407における処理は
図4のものと同様であり、重複する説明は省略する。ステップS403、S404及びS701、並びにステップS702は、
図3におけるS307、及びステップS308にそれぞれ相当する。ステップS701において判定部209は、ステップS403で選択された検出位置上の、IDマップでの画素を参照し、その画素値を取得する。そのような処理について、
図8、及び
図9(d)を用いて説明する。
図8(a)及び
図8(b)については上述した通りである。
【0067】
この場合においては、ID推定部208は、首位置801及び802にそれぞれマッチングする対象物の検出位置上の領域と、その領域以外の領域と、で異なる画素値を有するマップを生成している。ID推定部208は、理想的には、首位置801と802に対応する領域に、同じ値のID値を出力するようにIDマップを生成する。
図9(d)はそのように生成されたIDマップを示す図であり、首位置801と802の位置にそれぞれ対応する領域904及び905の画素に、同じ値(この例では同じハッチングで表されている)が出力されている。
図9(d)においては一人の人物に関するIDマップが出力されている例が示されているが、特にそのように限定されるわけではない。例えば、複数の人物が撮像画像内に撮像されている場合、その人数に応じて、IDマップ上には、同一人物についてなるべく同じ値が出力されるように、各人物に対応する位置にID値が出力される。
【0068】
また、IDマップにおいて、ID値は上記のように検出位置に対応する領域内の画素に出力されてもよいし、検出位置に関連する他の画素に出力されてもよい。例えば、ID値は、検出位置に対応するマップ上の座標を中心とする局所領域内の画素に出力されてもよい。また、ID推定部208は、マッチングする対象物の検出位置に対応する位置を結ぶ線分上の画素値が等しくなるように、IDマップを生成してもよい。この場合、マッチングする対象物の検出位置を結ぶ線分上の領域の画素値の分散が小さくなり、対応する対象物の検出位置を結ぶ線分の画素値の平均と対応しない検出位置を結ぶ線分の画素値の平均との分散が大きくなるように、IDマップを生成することができる。このように、IDマップにおいてID値が出力される範囲を広げることにより、例えば検出部202による検出位置にずれが生じてしまった場合においても、正しいID値を参照しやすくなる。
【0069】
判定部209は、時刻t及び時刻t+Δtにおける対象物をそれぞれ一つずつ選択し、選択した対象物の検出位置(例えば関節位置)について、IDマップでの各検出位置の座標上の画素値を取得することができる。このような構成によれば、後述のステップS702において、マッチングする対象物の検出位置上の画素値の差の絶対値が0に近くなり、マッチングしない対象物について同様の計算を行った絶対値は0から離れやすくなる。
【0070】
ステップS702において判定部209は、ステップS701で取得された各値の差を算出する。次いで、判定部209は、算出した差の値に基づいてマッチングに用いるスコアを取得することができる。スコアの取得方法は特に限定されない。上述のように算出された差は、その値が小さいほどその対象物が同一である可能性が高くなるであろうことを鑑みて、判定部209は、そのような算出された値が小さくなるほどスコアが高くなるような変換によって、スコアを取得してもよい。そのような変換の方法については、ステップS603におけるものと同様に行うことができるため、重複する説明は省略する。本実施形態においては、IDマップを用いたスコアを0~1の範囲で算出するが、その範囲は、他のマップにおけるスコアの算出方法に応じて適宜調整されてもよい。次いで、判定部209は、ここで算出されたスコア、及び検出位置の組み合わせを記憶装置に格納し、ステップS403に移動する。
【0071】
また、ID推定部208は、各画素が1次元のスカラー値を有するIDマップの代わりに、各画素がK次元のベクトル値を有するIDマップを生成してもよい。この場合、判定部209は、ステップS701において、一組の対象物の組み合わせについて、K枚のマップにおいて同位置で参照されるK個の画素値をそれぞれ要素として有するK次元のベクトル値を、各対象物の検出位置それぞれにおいて取得することができる。次いで判定部209は、S702において、そのようなK次元のベクトルを用いることにより、マッチングのスコアを算出してもよい。判定部209は、一組の対象物のスコアとして、例えば、そのようなK次元のベクトル値同士を用いたコサイン類似度を算出してもよい。スコアをコサイン類似度として算出することにより、スコアの範囲が0~1となり、及び1に近いほどその対象物が対応している可能性が高くなることから、各マップにおけるスコアとの統合を行いやすくすることができる。このように、生成部204が、複数枚で1つの関連マップを表す複数のマップを生成することにより、関連マップの表現力を向上させることができる。
【0072】
また、本実施形態に係る画像処理装置は、任意の時刻における検出CNNによる出力、すなわち、画像からの対象物の検出結果及び画像の中間特徴を、記憶装置内に格納することができる。例えば、時刻tにおける検出CNNによる出力を、記憶装置内に格納しておくことができる。この記憶装置は外部記憶装置104であってもよく、又は無線の通信を介して接続される記憶装置であってもよい。そのような場合において、検出部202は、時刻t+Δtにおいて新たに取得された画像から、対象物の検出結果及び画像の中間特徴を生成することができる。次いで、統合部203、生成部204、及び判定部209は、時刻t+Δtの画像についての検出結果及び中間特徴に加えて、格納されている時刻tの画像についての検出結果及び中間特徴を用いて、マッチングを行うことができる。このように、
図3に示すように2枚の画像を取得してから処理を始める代わりに、画像を1枚ずつ逐次的に取得しながらリアルタイムに処理を行うことができる。また、このような構成によれば、1回のマッチング処理において検出部202は1枚の画像に対する処理を行えばよいため、効率的な処理が実現できる。なお、マッチング処理後には、時刻t+Δtの画像についての検出結果及び中間特徴で、記憶装置内の時刻tの画像についての検出結果及び中間特徴を上書きしてもよい。このように、本実施形態に係る画像処理装置は、逐次的に画像を取得しながら処理を行ってもよい一方で、予め取得された2時刻の画像を用いて処理を行ってもよい。
【0073】
また、本実施形態に係る画像処理装置は、時間的に連続した2画像のマッチングを行うことにより空間的な連続性も捉えているという観点から、例えばステレオマッチングなどを行うことができる。
【0074】
さらに、各マップが正しく処理を行うことができているかどうかを確認しやすくするという観点から、出力デバイス110は、マップと、両時刻における画像と、を重畳表示してもよい。
図11は、そのような重畳表示を行うモニタの例を示している。
図11(a)は、
図9(a)上に、
図8(a)及び
図8(b)の対象物を重畳表示したものである。つまり、線分マップと、その対象物と、を重畳表示したものである。
図11(b)、
図11(c)、
図11(d)は、それぞれ
図9(b)、
図9(c)、
図9(d)に対して、
図11(a)と同様に対応している。
図11(a)~(d)はそれぞれ別に表示されてもよく、これらがさらに重畳して表示されてもよい。このような表示によれば、マップ上において、画像間のマッチングする対象物の検出位置を結ぶ線分上の領域が正しく出力されているか否かの確認が容易となる。つまり、適切なマップが生成されているかが容易に確認できる。したがって、生成CNNの学習用データが正しく作られているかを確認したい場合において、画像処理の実行時の動作確認に加えて視覚的に確認することができ、そのような確認の効率を向上させた画像処理装置を得ることができる。
【0075】
別の例として、異なる時刻における画像を重畳表示する代わりに、異なる時刻における画像を動画様に連続表示してもよい。この場合、例えば、時刻tにおける画像にこの画像からの対象物の検出結果(例えば
図8(a))を重畳し、また、時刻t+Δtにおける画像にこの画像からの対象物の検出結果(例えば
図8(b))を重畳してもよい。
【0076】
なお、上述のように複数のマップを考慮したマッチング判定を行うことにより、例えば一つのマップにおいてマッチングの精度が悪い場合においても、より正確にマッチング対象を行うことができる。例えば同時刻における対象物同士が近く、線分マップ上のマッチングする対象物の検出位置を結ぶ線分同士が繋がってしまうような場合であっても、検出位置の中間点を参照するマッチングと併用することにより、より正確にマッチング対象を特定することができる。また、距離マップを、特に中間点マップ又は線分マップと併用することで、距離マップで参照された中間点位置が、中間点マップが示す中間点位置と合致するか、又は線分マップで示す線分に含まれるかを確認することができる。このような条件を満たし、かつ距離マップで参照された中間点位置に出力された画素値から算出される線分距離が正しいかどうかを判定することにより、より正確にマッチング対象を特定することができる。例えば、距離マップにおいて、ある別の人物の検出位置の組み合わせの中間点位置に、この組み合わせの線分距離に近い値がたまたま出力されていたとしても、中間点マップの対応する位置の値が小さければ、この組み合わせは正しくないことがわかる。このように、マップを相互に組み合わせて利用することで、マッチング精度の向上が期待できる。
【0077】
このような構成によれば、複数の撮像画像間における対象物の対応関係を示すマップを生成し、そのようなマップに基づいて対象物のマッチングを行うことにより、処理コストが低減された画像間マッチングを行う画像処理装置を得ることができる。
【0078】
[実施形態2]
実施形態2に係る画像処理装置は、時刻t及び時刻t+Δtにおける2画像、並びにその2時刻間の時刻における画像(以下、中間画像)から、時刻t及び時刻t+Δtの撮像画像間で検出された対象物をマッチングさせる。そのような処理のために、実施形態2に係る画像処理装置は、画像取得部1002、抽出部1003を有することを除き実施形態1と同様の構成を有し、重複する説明は省略する。
【0079】
図10は、実施形態2に係る画像処理装置の機能構成の一例を示すブロック図である。画像取得部1002は、本実施形態における画像処理装置への入力となる、画像210と画像211との間の時刻における中間画像を、カメラ112から取得する。画像取得部1002が取得する画像の数は特に限定されない。抽出部1003は、中間画像から、対象物のマッチングの補助に用いる特徴量を抽出し、及び、統合部203へと出力することができる。そのために抽出部1003が抽出する特徴量は、マッチングの補助になるのであれば特に限定されない。例えば、抽出部1003は、CNNとして検出部202と同様の検出CNNを有し、検出部202による検出と同様の検出過程からの中間特徴を出力してもよい。また、抽出部1003は、検出CNNより軽量の所定のCNNを有していてもよい。
【0080】
統合部203は、各画像から取得される特徴量を統合する。この例においては、統合部203は、時刻t及び時刻t+Δtにおける各画像から検出CNNによって出力された特徴量と、中間画像から出力された特徴量と、を結合することができる。次いで生成部204は、統合部203が結合した特徴量から、時刻t及び時刻t+Δtにおける画像間の対象物の対応関係を示すマップを生成する。そのために、各推定部の有する生成CNNは、検出CNNからの中間特徴量と、抽出部1003による出力とに基づく学習を行うことができる。そのような学習は、抽出部1003による出力を入力に含むことを除き実施形態1の各推定部と同様に行うことができる。
【0081】
このような構成によれば、時刻t及び時刻t+Δtにおける特徴量だけではなく、それの時刻の中間の特徴量を入力することにより、両時刻間の対象物の検出位置などの情報を得られるようになる。したがって、各マップにおいて、検出位置間の線分及びそのような線分の中間点の位置を推定しやすくなる。
【0082】
[実施形態3]
実施形態3に係る画像処理装置は、複数のカメラから撮影された画像から生成されたマップに基づいて、各画像においてにおいてそれぞれ検出された対象物をマッチングさせる。そのような処理のために、実施形態3に係る画像処理装置は、カメラ1202及びカメラ1203を有することを除き実施形態1と同様の構成を有し、重複する説明は省略する。
【0083】
図12は、2台のカメラ1202及び1203が、別の角度から車1201を撮影する例を示す俯瞰図である。
図12の例においては、画像取得部201は、2台のカメラ1202及び1203が撮影した画像をそれぞれ取得する。画像取得部201は、2台のカメラ1202及び1203が同時刻に撮影した画像をそれぞれ取得してもよく、またはカメラ間で所定のフレーム間隔を有する画像を取得してもよい。
図13(a)はカメラ1202が撮像した画像であり、
図13(b)はカメラ1203が撮像した画像である。
【0084】
検出部202は、画像取得部201が取得した各画像から対象物となる特定の物体を検出する。この例においては説明のため、検出CNNは、車のおおよその中心位置を検出するように学習されているとするが、検出CNNの学習方法は特に限定されない。検出CNNは、例えば、車体の特定の部位を検出するように学習されていてもよい。1301及び1302は、各画像における、検出CNNによって検出された車1201のおおよその中心位置を示している。また、この例においては検出CNNは車を検出しているが、検出の対象は特にそれには限定されない。例えば、検出CNNは、実施形態1の例と同様に人物を検出してもよい。つまり、多方向から撮像された画像から、対応する人物の同一の部位を検出してもよい。
【0085】
統合部203は、実施形態1と同様に、各画像から取得される特徴量を結合する。生成部204は、実施形態1と同様に、結合された特徴量に基づいて、画像間における対象物の対応関係を示すマップを生成する。つまり、各推定部が有する生成CNNは、上述のような複数のカメラによって撮像された画像の特徴量を入力として、実施形態1と同様のマップを生成するように学習されている。
図14は、そのようにして生成された線分マップの一例を示している。
【0086】
このような構成によれば、複数のカメラから撮像された画像を入力された場合においても、それらの画像においてそれぞれ検出された対象物をマッチングさせる画像処理装置を得ることができる。
【0087】
[実施形態4]
実施形態4に係る画像処理装置の有する検出CNNは、画像から対象物を検出し、及び、検出した対象物をそれぞれ識別するようなタスクを行えるように学習されている。つまり、実施形態4に係る画像処理装置は、その点を除き実施形態1と同様の構成を有し、重複する説明は省略する。
【0088】
実施形態4に係る検出CNNは、例えば、人物を検出する場合において、検出した各関節(首、肩及び肘など)を人物ごとに区別できるように、各関節の検出位置に人物固有の識別情報をそれぞれ出力するように学習されていてもよい。そのような場合、ID推定部208は、そのような検出CNNから出力された中間特徴量に基づいてIDマップを作成し、及び、実施形態1と同様の処理を行うことができる。実施形態4に係る検出CNNの学習方法は特に限定されない。検出CNNは、例えば、非特許文献2に示される方法で学習が行われていてもよい。このように、検出した各関節が同一人物か他人かを区別するタスクを含むように検出CNNの学習を行うことで、検出CNNが出力する中間特徴に、エッジ情報及び色情報のような、対象物の区別のために重要な情報がより多く含まれるようになることが期待される。このため、このような中間特徴を用いて行われるマッチングの精度も向上することが期待できる。
【0089】
また、実施形態1におけるID推定部208は、対象物を識別するタスクを行うように学習されているといえる。したがって、IDマップを生成する処理について、実施形態4に係る検出CNNからID推定部208の生成CNNまでを一つのネットワークとして構成してもよい。この場合、生成CNNの学習タスクのLossを検出CNNまで逆伝播させるようにすることにより、対象物のIDの推測に有効な情報を、検出CNNが出力する中間特徴量に反映させるように、end-to-endで学習が行われてもよい。
【0090】
実施形態4に係るID推定部208は、対象物のID値を、所定の期間保持しておくことができる。例えば、一度マッチングされた対象物が次の時刻の処理でマッチングできなかった場合において、ID推定部208は、その対象物のID値を記憶装置に格納しておくことができる。また、ID推定部208は、そのような対象物のID値を所定の期間記憶装置に格納しておくことができる。次いで、ID推定部208は、格納されているID値と等しいID値を有するマッチング可能な組み合わせが検出された場合において、格納されていたID値に基づいてマッチングを行うことができる。この記憶装置は外部記憶装置104であってもよく、又は無線の通信を介して接続される記憶装置であってもよい。このような処理によれば、隠れるなどして一時的にマッチングが途切れた対象物について、再度マッチングを再開することができる。
【0091】
[実施形態5]
本実施形態に係る画像処理装置は、3以上の時刻における各撮像画像において検出された対象物について、そのような撮像画像間それぞれの対象物の対応関係を示すマップを生成する。次いで、生成された複数のマップに基づいて、複数の撮像画像においてそれぞれ検出された対象物をマッチングさせる。そのような処理のために、本実施形態に係る画像処理装置は、実施形態1と同様の構成を有するため、重複する説明は省略する。つまり、画像取得部201が3以上の時刻における画像をそれぞれ取得し、それらの3以上の画像から選択された画像の組み合わせそれぞれについて実施形態1と同様の処理を行うことを除き、実施形態1と同様の処理を行うことができる。また、そのような処理のために、本実施形態に係る画像処理装置の有する記憶装置は、過去の時刻の画像から取得された特徴量を格納しておくことができる。ここで記憶装置が格納する特徴量の時刻の数は特に限定されない。記憶装置は、例えば、所定の数の時刻の特徴量を格納し、及び、新たな時刻の特徴量を格納するたびに、記憶装置がその時点で有する最も古い特徴量を削除してもよい。この記憶装置は外部記憶装置104であってもよく、又は無線の通信を介して接続される記憶装置であってもよい。
【0092】
本実施形態に係る統合部203は、3以上の時刻における画像について、その内の二つの組み合わせ全てに対して実施形態1と同様の処理を行うことができるが、統合部203の処理は特にそのように限定されるわけではない。例えば、統合部203は、3以上の時刻における画像に基づいた中間特徴量を統合してもよい。そのような場合、生成部204における各推定部が有する生成CNNは、統合された3以上の時刻における中間特徴量から、それらの画像間における対象物の対応関係を示すマップを生成することができる。つまり、そのように学習を行うことができる。各生成CNNの学習の方法は特に限定されないが、実施形態1と同様に行ってもよい。
【0093】
図15は、実施形態5に係る画像処理装置によるマッチング処理を説明するための例である。1501、1502、及び1503は、それぞれ時刻t、時刻t+Δt、時刻t+2×Δtにおける対応する人物である。また、1504は遮蔽物であり、及び、この例における画像中では、1502を隠している。このような場合、本実施形態に係る画像処理装置は、1501及び1503のマッチングを行うことができる。つまり、例えば、隠れなどの阻害要因によって所定の間隔Δtでの逐次的なマッチングが難しい場合においても、所定の間隔2×Δtでの画像処理を行うことにより、マッチングする対象物の対応付けを行うことができる。そのようなマッチングは、上述のように時刻t及び時刻t+2×Δtにおいて取得された画像に基づいて行われてもよく、時刻t、時刻t+Δt、及び時刻t+2×Δtの特徴量を統合した特徴量に基づいて行われてもよい。
【0094】
このような構成によれば、例えば映像などで持続的に人物の追尾を行いたい場合に、追尾途中に人物のマッチングが途切れてしまう問題が抑制できるようになる。例えば、3frame中の1つで隠れが生じる場合(
図15の1502)、残りの2frame(時刻と時刻t+2×Δt)のマッチングをすることで、隠れているところを飛ばした追尾が可能となる。
【0095】
(その他の実施形態)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
【0096】
発明は上記実施形態に制限されるものではなく、発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。したがって、発明の範囲を公にするために請求項を添付する。
【符号の説明】
【0097】
201:画像取得部、202:検出部、203:統合部、204:生成部、205:成分推定部、206:中間点推定部、207:距離推定部、208:ID推定部、209:判定部