【文献】
福井宏, 外3名,“Deep Learningを用いた歩行者検出の研究動向”,電子情報通信学会技術研究報告,日本,一般社団法人電子情報通信学会,2016年12月08日,第116巻, 第366号,p.37-46
(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0013】
以下、図面を参照して本発明の実施の形態を説明する。ただし、以下に説明する実施形態は、あくまでも例示であり、以下に明示しない種々の変形や技術の適用を排除する意図はない。例えば、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。なお、以下の説明で用いる図面において、同一符号を付した部分は、特に断らない限り、同一若しくは同様の部分を表す。
【0014】
〔1〕一実施形態
〔1−1〕構成例
一実施形態に係る検出装置1(
図1参照)は、ニューラルネットワーク(以下、「NN」と表記する場合がある)を用いて、例えば、画像或いは画像系列のどの位置にどの物体が存在するかを推定する。検出装置1は、例示的に、1台以上のコンピュータをそなえるコンピュータシステムにより実現されてよい。なお、コンピュータとしては、サーバ、PC(Personal Computer)等の種々の情報処理装置が挙げられる。
【0015】
図1に示すように、一実施形態に係る検出装置1は、例示的に、メモリ部11及び18、画像前処理部12、特徴マップ計算部13、提案領域計算部14、物体位置・種類推定部15、推定結果選択部16、及び認識結果分析部17をそなえてよい。
【0016】
ここで、一実施形態に係る検出装置1は、後述する手法により、画像系列、例えば、動画像等の時系列に並んだ複数の画像(「フレーム」と称されてもよい)に対して、画像系列の画像内を移動する移動物体の認識・追跡を可能とする。以下の説明において、画像前処理部12、特徴マップ計算部13、提案領域計算部14、物体位置・種類推定部15、推定結果選択部16、及び認識結果分析部17は、画像系列の1フレームごとに処理を行なうものとする。
【0017】
メモリ部11及び18は、種々のデータを記憶する。例えば、メモリ部11は検出装置1への入力データの一例である画像データ111(例えば画像系列のデータ)を記憶してよく、メモリ部18は検出装置1からの出力データの一例である認識結果181を記憶してよい。メモリ部11及び18は、検出装置1として動作するコンピュータがそなえるメモリ又は記憶装置等のハードウェアの少なくとも一部の記憶領域により実現されてよい。なお、メモリ部11及び18は、1つのメモリ部として統合して管理されてもよい。
【0018】
画像前処理部12は、メモリ部11の画像データ111から1画像(フレーム)ずつ入力画像を取得し、入力画像に対して前処理を行なう。前処理には、入力画像を後段の処理に適した画像に変更するためのサイズ変更、ピクセル値変更、輝度補正等が含まれてよい。
【0019】
サイズ変更では、後述する特徴マップ計算部13への入力画像サイズとして、例えば、画像の短辺の長さを600ピクセル(pixel)とし、長辺の長さを1000ピクセル以下とするリサイズ処理が行なわれてよい。ピクセル値変更では、例えば、各ピクセルの値を32ビット(bit)浮動小数点とする変更処理が行なわれてよい。輝度補正では、例えば、入力画像のRGB(Red Green Blue)値の平均輝度から所定の値(例示的に、122.77,115.95,102.98)を減算する処理が行なわれてよい。
【0020】
なお、画像前処理部12による処理は、上述した処理に限定されるものではなく、特徴マップ計算部13におけるCNN層等の仕様に応じて、種々変形して実行されてよい。画像前処理部12により前処理が行なわれた入力画像は、特徴マップ計算部13に入力される。
【0021】
特徴マップ計算部13は、入力画像をCNN層130(
図2参照)に入力し、入力画像の特徴を表す画像特徴量の一例である特徴マップ(feature maps)を出力する。
【0022】
CNN層130は、複数の処理層を有するNNの一例である。CNN層130としては、非限定的な一例として、VGG(Visual Geometry Group)16等が挙げられる。
【0023】
CNN層130は、
図2に例示するように、入力画像(「入力データ」と表記する場合がある)に基づき、NNの学習によって当該入力画像を解析し、当該入力画像のfeature mapsを抽出・出力する。CNN層130から出力されたfeature mapsは、提案領域計算部14及び物体位置・種類推定部15にそれぞれ入力される。なお、feature mapsとともに、入力画像が特徴マップ計算部13から提案領域計算部14及び物体位置・種類推定部15の一方又は双方に入力されてもよい。
【0024】
図2の例では、CNN層130への入力データとして、画像前処理部12での前処理が行なわれた高さ600ピクセル、幅800ピクセルのRGB(3チャネル)の画像データが入力されるものとする。
【0025】
CNN層130は、例えば、上述した入力データに対して、高さ38ピクセル、幅50ピクセル、512チャネルのfeature mapsを出力する。feature mapsには、1チャネルあたり1つの特徴を表す情報が含まれてよい。
【0026】
なお、
図2に例示するCNN層130は、VGG16のrelu5_3層を想定している。この場合、CNN層130には、feature mapsの一辺のサイズを1/2にするpooling layerが4つ存在するため、feature mapsの高さ及び幅は、入力画像の高さ及び幅の1/16になっている。
【0027】
なお、CNN層130は、既知の種々の手法により実現可能であるため、CNN層130内部の処理や学習手法等の詳細については説明を省略する。
【0028】
以上のように、特徴マップ計算部13は、画像系列から順次入力される入力画像に基づき、入力画像の特徴量を取得する。
【0029】
提案領域計算部14は、CNN層130から得られるfeature mapsをRPN(Region Proposal Network)層140(
図3参照)に入力し、物体が存在する候補位置の一例である提案領域(Proposed Regions)を出力する。
【0030】
RPN層140は、複数の処理層を有するNNの一例である。RPN層140は、
図3に例示するように、feature mapsに基づき、当該feature mapsを解析し、当該feature mapsのproposed regionsを計算・出力する。proposed regionsは、物体の存在しそうな候補領域の一例である。RPN層140から出力されたproposed regionsは、物体位置・種類推定部15に入力される。なお、proposed regionsとともに、入力画像が提案領域計算部14から物体位置・種類推定部15に入力されてもよい。
【0031】
図3の例では、RPN層140への入力データとして、特徴マップ計算部13で抽出された高さ38ピクセル、幅50ピクセル、512チャネルのfeature mapsが入力されるものとする。
【0032】
RPN層140は、例えば、上述した入力データに対して、proposed regions付きの入力画像を出力してよい。なお、RPN層140から出力されるデータは、入力画像を含まないproposed regionsの情報に限定されてもよい。
【0033】
また、
図3の例では、proposed regionsとして矩形の領域が用いられているが、これに限定されるものではなく、楕円等の種々の形状が用いられてもよい。
【0034】
proposed regionsには、物体が領域に存在する確度を示す「スコア」が含まれてよい。
図3に示す例では、スコアは“1.000”を最大値として、小数点以下3桁の数値(値が大きいほど確度が高い数値)で表されている。RPN層140から出力されるproposed regionsの数は、スコアが所定の数値(例えば“0.800”以上の数値)を持つproposed regionsに制限されてもよい。なお、
図3では、図の見易さのために全てのproposed regionsのうちの一部のproposed regionsのみにスコアを付している。また、RPN層140から出力されるproposed regionsの数は、所定数(例えば150個等)に制限されてもよい。
【0035】
図1に示すように、提案領域計算部14は、例示的に、候補領域・スコア計算部141及び候補領域選択部142をそなえてよい。
【0036】
候補領域・スコア計算部141は、上述したスコアを含むproposed regionsの算出を行なう。
【0037】
候補領域選択部142は、候補領域・スコア計算部141が算出したproposed regionsの数を、例えば所定数に絞り込む。一例として、候補領域選択部142は、スコアの高い順に重なりの少ない領域を選択していくNMS(Non-Maximum Suppression)処理を実行してよい。
【0038】
ここで、提案領域計算部14(候補領域・スコア計算部141及び候補領域選択部142)は、「アンカー」(anchor)と呼ばれる入力画像に固定的に配置された基準領域を用いて、proposed regionsを推定する。例えば、提案領域計算部14は、feature mapsに基づいて、各アンカーの領域又は複数のアンカーの組み合わせにより形成される領域における物体の有無、物体が存在する領域のサイズ、並びに、上述したスコアを推定してよい。
【0039】
図4に示すように、1組のアンカー群143は、例示的に、中心位置(基準中心位置)を共通とするK=9個のアンカーにより形成されてよい。一実施形態では、
図5に例示するように、当該1組のアンカー群143が或る間隔(デフォルト値として例えば16ピクセル)で画像144全体に配置される。例えば、高さ:600×幅:800[ピクセル]の画像144の場合、画像144には、H(高さ方向の分割数;例えば38)×W(幅方向の分割数;例えば50)で示される各位置を基準中心位置とするアンカーが、それぞれの位置に9個ずつ配置される。このように、提案領域計算部14はH×W×K個のアンカーを用いてよい。なお、
図5の例では、図の簡略化のため、H:2、W:3、K:9としたアンカーの例を示している。
【0040】
なお、
図4及び
図5の例では、アンカーとして矩形の領域が用いられているが、これに限定されるものではなく、楕円等の種々の形状が用いられてもよい。
【0041】
RPN層140、NMS処理、及びアンカーを用いたproposed regionsの推定手法は、既知の種々の手法により実現可能であるため、これらの詳細については説明を省略する。
【0042】
物体位置・種類推定部15は、CNN層130から得られるfeature mapsと、RPN層140から得られるproposed regionsとをFast R−CNN層150(
図6参照)に入力する。そして、物体位置・種類推定部15は、入力された情報に基づいて、proposed regionsをより高精度に分析するとともに、物体の種類を推定する。
【0043】
Fast R−CNN層150は、複数の処理層を有するNNの一例である。Fast R−CNN層150は、
図6に例示するように、feature maps及びproposed regionsに基づき、画像領域のどこの矩形領域にどの種類の物体が存在するかをスコア付きで示した推定結果を出力する。なお、物体の種類は、NNに学習させることで決定されてよい。Fast R−CNN層150から出力された推定結果は、推定結果選択部16に入力される。なお、推定結果とともに、RPN層140からのproposed regionsが物体位置・種類推定部15から推定結果選択部16に入力されてもよい。
【0044】
図6の例では、Fast R−CNN層150への入力データとして、特徴マップ計算部13で抽出された高さ38ピクセル、幅50ピクセル、512チャネルのfeature mapsが入力されるものとする。また、Fast R−CNN層150への入力データとして、提案領域計算部14で計算された、スコアを含むproposed regions付きの入力画像が入力されるものとする。
【0045】
Fast R−CNN層150は、例えば、上述した入力データに対して、推定結果付きの入力画像を出力してよい。なお、Fast R−CNN層150から出力されるデータは、入力画像を含まない推定結果の情報に限定されてもよい。
【0046】
図6の例では、推定結果付き入力画像は、スコアとアンカーに対する位置関係とに応じて、RPN層140からのproposed regionsよりも絞り込まれたproposed regionsが示されている。また、推定結果付き入力画像は、proposed regionsに対して、推定された物体の種類(例えば、“Person”、“Horse”、“Dog”等)がスコアとともに示されている。
【0047】
なお、Fast R−CNN層150は、既知の種々の手法により実現可能であるため、その詳細については説明を省略する。
【0048】
以上のように、特徴マップ計算部13、提案領域計算部14、及び、物体位置・種類推定部15は、画像系列内の第1画像について、第1画像において物体の存在が推定される候補領域及び当該候補領域における物体の存在の可能性を示す指標の組を、第1画像の画像特徴量に従い推定する推定部の一例である。この場合、提案領域計算部14の候補領域・スコア計算部141は、候補領域及び指標の組を複数推定する第1の処理を行ない、候補領域選択部142は、複数の組の各々の指標に基づき複数の組を所定数の組に絞り込む第2の処理を行なう。また、物体位置・種類推定部15は、所定数の組の候補領域及び指標と、画像特徴量とに基づき、候補領域に存在すると推定される物体の種類を推定する第3の処理を行なう。
【0049】
推定結果選択部16は、
図7に例示するように、物体位置・種類推定部15から入力された推定結果付き入力画像に基づき、推定結果から物体の種類ごとの位置を絞り込み、絞り込みの結果として、物体の位置・種類の認識結果付き入力画像を出力する。なお、推定結果選択部16は、絞り込みの処理において、RPN層140から出力されるproposed regionsの情報を用いてもよい。推定結果選択部16から出力された認識結果付き入力画像は、認識結果分析部17に入力される。
【0050】
なお、推定結果選択部16は、例えば、上述した推定結果或いは推定結果付き入力画像に基づき、入力画像を含まない認識結果の情報を出力してもよい。
【0051】
推定結果選択部16は、提案領域計算部14と同様に、スコアの高い順に重なりの少ない領域を選択していくNMS処理等を実行してよい。
【0052】
なお、推定結果選択部16による推定結果の絞り込みの処理は、既知の種々の手法により実現可能であるため、これらの詳細については説明を省略する。
【0053】
以上のように、推定結果選択部16は、推定した前記候補領域及び前記指標の組を用いて第1画像における物体の位置を決定する決定部の一例である。
【0054】
上述した特徴マップ計算部13、提案領域計算部14、物体位置・種類推定部15、及び推定結果選択部16は、Faster R−CNNとして機能する。Faster R−CNNによれば、入力画像のどの矩形領域に、NNに学習させた種類のうちのどの種類の物体が存在するかを、トレーニングデータを用いて学習させたNNの重みを用いて高速に認識(検出)することができる。
【0055】
認識結果分析部17は、推定結果選択部16から入力される認識結果(或いは認識結果付き入力画像)を分析し、分析結果に基づいて、次のフレーム以降のFaster R−CNNにおける物体の位置・種類の推定精度を向上させる。換言すれば、認識結果分析部17は、過去のフレームの認識結果(或いは認識結果付き入力画像)を分析し、分析結果に基づいて、現在の入力画像についてのFaster R−CNNにおける物体の位置・種類の推定精度を向上させる。このため、推定結果選択部16は、過去数フレームに亘る推定結果、或いは、推定結果の分析結果を記憶し蓄積する記憶部を有してよい。当該記憶部は、検出装置1が有するメモリ又は記憶装置の記憶領域の少なくとも一部により実現されてよい。なお、認識結果分析部17は、推定結果選択部16からの認識結果を、認識結果181としてメモリ部18に格納し蓄積してよい。
【0056】
一例として、認識結果分析部17は、過去のフレームの認識結果に基づいて、現在のフレームにおける物体の移動位置を示す移動情報を算出し、算出した移動情報をFaster R−CNNに与えてよい。移動情報は、現在のフレームにおける、過去のフレームの認識結果から予測された物体の位置に関する情報である。
【0057】
移動情報の第1の例としては、現在のフレームにおける、予測された物体の位置を表す予測領域が挙げられる。予測領域は、追加のproposed regions(additional proposed regions)と位置付けられてよく、proposed regionsと同様のデータ構造であってよい。なお、予測領域には、当該予測領域のスコアが含まれてもよい。
【0058】
第1の例の場合、移動情報は、例えば、
図1の符号(a)で示すように、提案領域計算部14から物体位置・種類推定部15までの区間に与えられてよい。一例として、移動情報は、提案領域計算部14から出力されるproposed regionsとともに、物体位置・種類推定部15への入力データとして物体位置・種類推定部15に入力されてよい。
【0059】
また、移動情報の第2の例としては、提案領域計算部14から出力されるproposed regionsのうちの、予測領域に近い(例えば重なりが大きい)proposed regionsのスコアを高くする補正情報が挙げられる。補正情報としては、例えば、proposed regionsの補正後のスコアそのものであってもよいし、当該スコアを、他のproposed regionsのスコアよりも高くするような重み付けのための係数等であってもよい。
【0060】
第2の例の場合、移動情報は、例えば、
図1の符号(b)で示すように、提案領域計算部14に与えられてよい。一例として、移動情報は、提案領域計算部14の候補領域選択部142に入力されてよい。例えば、移動情報は、候補領域選択部142においてスコアの高い順に重なりの少ない領域を選択していくNMS処理への入力とされてよい。
【0061】
なお、第2の例における移動情報には、例えば、上述した補正情報に代えて、第1の例における予測領域と、当該予測領域のスコアを高くする補正情報とが含まれてもよい。
【0062】
以上のように、認識結果分析部17は、画像系列から物体の移動に関する移動情報を取得する取得部の一例である。例えば、認識結果分析部17は、画像系列内の第1画像よりも時間的に過去の複数の画像の各々について当該画像ごとに決定した物体の位置に基づき同一物体と認識される物体の位置の時間的な変化に基づいて、移動情報を取得するといえる。そして、推定部の一例としての提案領域計算部14及び物体位置・種類推定部15は、取得した移動情報に基づき、推定の過程で取得される情報に対する補正処理を施すのである。
【0063】
このように、認識結果分析部17によれば、動画内を移動する物体の予測領域(例えば矩形領域)を過去の画像系列データから推定し、Faster R−CNN内部の処理に用いることができる。これにより、ニューラルネットワークを用いた物体の位置の検出処理において、物体の位置の検出精度を向上させることができる。
【0064】
ここで、上述のように、Faster R−CNNの計算は、静止画を対象としている。換言すれば、Faster R−CNNは本来静止画を対象とした物体検出(Object Detection)のためのNNとして提案された手法である。
【0065】
このため、例えば、上述した関連する技術(各静止画で特定した物体の検出位置により物体の動きを追尾する手法)において、移動する人物を追尾対象とした場合、Faster R−CNNは追尾処理とは独立した処理として実行される。すなわち、Faster R−CNNを用いた物体検出(Object Detection)においては、Faster R−CNNの処理の内部で、追尾処理によって得られる計算結果は用いられていない。
【0066】
具体的に、上述した関連する技術では、Faster R−CNNにより、「歩行者」と「歩行者の位置(例えば矩形領域)」とを繰り返し推定する処理と、得られた推定結果をベースにトラッキングを行なう処理とが行なわれる。しかし、Faster R−CNN内部の処理は変更されていない。
【0067】
これに対し、認識結果分析部17は、Faster R−CNN内部の処理に、物体の運動から推定可能な予測領域の情報を活用させること、換言すれば、トラッキングの結果を利用させることで、物体検出及び追尾の精度を高めることができる。
【0068】
このように、静止画の情報と移動物体追尾による予測領域の情報とは質的に異なる情報であり、この質的に異なる情報をFaster R−CNNの内部の処理に用いることで、動画を対象とした物体検出の精度を高めることができる。
【0069】
また、NNにおいて、物体検出のための学習データのラベル付けには多くの手間が必要になる。これに対し、認識結果分析部17からの移動情報により、Faster R−CNNでは、フレーム間で移動する物体が同一の物体であることを認識できる。従って、例えば、学習データのラベルとして、フレーム間で連続性を有する物体に対して同一のラベル(例えば物体の種類等)を付加することができる。
【0070】
さらに、例えば、或るフレームにおいて、物体が障害物(例えば木)の後ろ等に入り、一部が隠れた場合であっても、認識結果分析部17は、過去の認識結果から推定される物体の位置や種類の情報を用いることで予測領域を推定できる。これにより、静止画ではproposed regionsとして提案されてこなかった領域が、移動情報を用いた予測領域として提案されるため、移動物体を認識できる。
【0071】
また、遠くの方に遠ざかり、粗い画素の情報でしか表現されなくなった物体にも、予測領域の情報を用いることで、Faster R−CNNの認識精度を高めることができる。
【0072】
さらに、上述した検出装置1では、学習済みのFaster R−CNNのネットワークを用い、候補領域・スコア計算部141により、物体候補領域(proposed regions)がスコア付きで計算される。その後、候補領域選択部142により、近いスコアの領域が重なった領域からNMS処理を用い、スコア順に領域を選択しながら、選択済みの領域と重なりの大きな領域を選択対象から外していく処理が実行される。
【0073】
このとき、ほとんどスコアの変わらない複数の領域が重なっていることがある。このとき、非常にスコアが近く、領域が重なったproposed regionsのうちの、例えばスコア0.995の領域と0.99の領域とは、アンカーの配置等により偶然これらのスコアになっただけという場合がある。例えば、実際にはこれらのスコアが逆である場合のほうが正解に近い場合も起こり得る。
【0074】
また、領域に割り当てられたスコア情報以外に、アンカーの配置(アンカー中心位置の配置や予め用意した9つのアンカー)により、偶然、検出したい物体の候補領域が候補に上がってこないようなことも起こり得る。
【0075】
以上のような場合であっても、認識結果分析部17によれば、静止画レベルでFaster R−CNNの処理を各フレームで独立して実行するだけでなく、移動物体の過去の存在領域の情報から推定される最新フレームにおける予測領域の情報を併用できる。従って、物体検出及び追尾の精度を高めることができる。
【0076】
〔1−2〕認識結果分析部の説明
以下、認識結果分析部17の詳細について説明する。
【0077】
上述のように、認識結果分析部17は、動画内を移動する物体の予測領域を、過去の画像系列データから推定し、Faster R−CNN内部の処理に用いることで、Faster R−CNNによる物体の種類や位置の推定精度を向上させる。
【0078】
図1に示すように、認識結果分析部17は、例示的に、推定部171及び出力部172をそなえてよい。
【0079】
推定部171は、過去のフレームにおけるFaster R−CNNでの認識結果に基づき、最新のフレームにおける物体の予測領域(「予測存在領域」と称されてもよい)を推定する。なお、推定部171は、後述するように、予測存在領域の推定とともにスコア又はスコアの係数を取得してもよい。
【0080】
予測存在領域は、例えば、物体の予測存在位置(x,y)及び存在領域(w,h)を結合した(x,y,w,h)によって表されてよい。なお、xは画像内の縦方向(第1方向)における矩形領域の代表点(例えば中心点)の位置、yは画像内の横方向(第1方向に直交する第2方向)における矩形領域の代表点の位置を示す。また、wは矩形領域の縦方向(第1方向)の幅(長さ)、hは矩形領域の横方向(第2方向)の高さ(長さ)を示す。
【0081】
推定部171は、
図8に例示するように、大きさが変化するような移動物体の検出及びトラッキングにおいて、過去の画像系列データから、Kalman Filter等の追尾フィルタを用いて、物体の予測存在領域を推定してよい。物体の予測存在領域は、フレーム毎かつ対象物体毎のベクトルSを算出することで推定されてよい。
【0082】
なお、推定部171は、矩形領域以外の領域パラメータを推定することも可能である。換言すれば、推定部171は、検出装置1において矩形領域以外(例えば楕円形状)のアンカーが用いられる場合、アンカーの形状に応じた予測存在領域を推定できる。以下の説明では、アンカーの形状が矩形であるものとする。
【0083】
推定部171は、例えば、1度目に通常のFaster R−CNNによって推定された矩形領域の位置と大きさ、物体の種類(人、車、馬等)、観測時のフレームレート等に基づき、次にその物体が検出され得る矩形領域を定めてよい。そして、推定部171は、定めた矩形領域内で認識された同じ種類の対象物体を、前フレームで認識された物体と同じ物体であると推定してよい。
【0084】
このように、推定部171は、フレーム毎に対象物体を特定し、対象物体毎に、予め用意した運動モデルに当て嵌めることで、ベクトルSを求め、予測存在領域を推定してよい。運動モデルとしては、等速運動モデルや加速度運動モデル等の種々の運動モデルが挙げられる。
【0085】
なお、物体の予測存在領域の推定には、運動モデルに代えて、画像のピクセル値の相関を取る等の他の手法が用いられてもよい。また、MHT(Multiple Hypothesis Tracking)等のような、追尾物体と検出物体との対応付けを行なうデータアソシエーション(Data Association)による未観測状態を考慮した追尾モデルが用いられてもよい。
【0086】
推定部171による物体の予測存在領域の推定の詳細については後述する。
【0087】
出力部172は、推定部171が推定した予測存在領域及び/又はスコアに基づいて、移動情報をFaster R−CNNに出力する。出力部172による移動情報の出力処理は、上述した移動情報の第1及び第2の例に応じて、以下のように実施されてよい。なお、以下の例において、
図9及び
図11では、メモリ部11及び18の図示を省略している。
【0088】
(第1の例)
出力部172は、
図9及び
図10に例示するように、推定部171が例えばt=2のときにt=1及びt=2の移動物体の位置情報等に基づき推定したt=3の予測存在領域の情報を、t=3のときに、提案領域計算部14の出力結果に追加してよい。例えば、出力部172は、移動物体毎の予測存在領域(additional proposed regions)(x,y,w,h)のセットαを、提案領域計算部14の出力結果であるproposed regionsに追加してよい。
【0089】
一例として、
図10に示すように、t=3の予測領域について、出力部172は、当該予測領域を、矩形領域C(additional proposed regions)として、提案領域計算部14からのproposed regionsに追加してよい。
【0090】
(第2の例)
出力部172は、
図11及び
図12に例示するように、推定部171が例えばt=2のときにt=1及びt=2の移動物体の位置情報等に基づき推定したt=3の予測存在領域の情報を、t=3のときに、提案領域計算部14に追加してよい。例えば、出力部172は、RPN層140におけるNMS処理実行前の矩形領域のスコアを予測存在領域からの矩形領域の距離に応じて変更する補正情報を、候補領域選択部142に出力してよい。なお、出力部172は、予測存在領域と、当該予測存在領域のスコアを変更する補正情報とを、候補領域選択部142に出力してよい。
【0091】
一例として、
図12に示すように、出力部172は、t=3の予測領域の位置・大きさに近い候補領域のスコアを高くする補正情報を提案領域計算部14に出力してよい。予測領域の位置・大きさに近い候補領域としては、例えば、矩形領域のうちの予測領域と重なる領域の割合pが最大の矩形領域(
図12の例では矩形領域A)が選択されてよい。このとき、出力部172は、例えば、pが最大の矩形領域Aのスコアに(1.0+p)を乗じることで、矩形領域Aのスコアを補正してよい。(1.0+p)は補正情報の一例である。
【0092】
以上のように、認識結果分析部17により、物体検出の認識精度を高めることができる。なお、認識結果分析部17によりメモリ部18に格納される認識結果181(
図1参照)は、Faster R−CNNにおけるラベル付き学習データとして利用されてもよい。
【0093】
上述のように、Faster R−CNNでは、物体の位置や種類の推定において、限られた数のアンカー位置を基準とするproposed regionsが利用される。proposed regionsの推定の手法は、経験則に基づく独特なものである。例えば、proposed regionsは、予め指定したサイズやアスペクト比のアンカーをあるピクセル間隔で配置し、これらのアンカー基準位置に静止画を入力としNNを用いて計算される補正値を加算することで推定される。
【0094】
上記の手法による物体候補領域(proposed regions)の計算には、静止画の情報のみが用いられている。これに対し、一実施形態に係る検出装置1は、静止画の情報とは質的に異なる情報である、物体の運動から予測される物体候補領域(位置、高さ、幅)をproposed regionsに加えて利用することで、物体検知の精度を向上させることができる。
【0095】
図13は、海辺に6艘〜10艘ほどの船(boat)が浮かぶ画像において、Faster R−CNNに移動情報を追加する前後の認識結果の一例を示す図である。なお、
図13では、RPN層140から出力されるproposed regionsに、移動情報の一例としてのadditional proposed regions(例えば、実際にboatが存在しそうな矩形領域)を追加して評価した例を示している。
【0096】
これにより、適切なadditioal proposed regionsが指定された領域で、新たに高スコアでboatが検出されるようになった(
図13の右側参照)。Faster R−CNNに移動情報の一例としての補正情報が与えられる場合にも、
図13に示す例と同様の効果が得られることが期待できる。
【0097】
〔1−3〕動作例
次に、上述の如く構成された検出装置1の動作例を説明する。
【0098】
(第1の例)
第1の例では、
図14に例示するように、検出装置1においては、メモリ部11に記憶された画像データ111(例えば画像系列のデータ)から、1つの入力画像(例えば1フレーム)が取得される(ステップS1)。
【0099】
画像前処理部12は、入力画像に対して前処理を行なう(ステップS2)。前処理には、入力画像を後段の処理に適した画像に変更するためのサイズ変更、ピクセル値変更、輝度補正等が含まれてよい。
【0100】
画像前処理部12は、前処理後の入力画像を特徴マップ計算部13に入力する(ステップS3)。特徴マップ計算部13では、CNN層130からfeature mapsが出力される(ステップS4)。
【0101】
特徴マップ計算部13は、feature mapsを提案領域計算部14に入力する(ステップS5)。提案領域計算部14では、RPN層140からproposed regionsが出力される(ステップS6)。
【0102】
ここで、認識結果分析部17における移動情報の発生有無に応じて、処理が分岐する(ステップS7)。移動情報が発生していない場合(ステップS7でNo)、特徴マップ計算部13からのfeature mapsと提案領域計算部14からのproposed regionsとが物体位置・種類推定部15に入力される(ステップS8)。そして、処理がステップS10に移行する。
【0103】
なお、移動情報が発生していない場合としては、例示的に、認識結果分析部17で分析が行なえない(例えば過去の入力画像が存在しない)場合が挙げられる。
図9の例ではt=1又はt=2の場合である。或いは、移動情報の発生がない場合として、予測存在領域が認識されなかった(例えば過去の入力画像に物体が存在しない)場合等も挙げられる。
【0104】
一方、移動情報が発生している場合(ステップS7でYes)、feature maps及びproposed regionsに加えて、認識結果分析部17からの予測存在領域が物体位置・種類推定部15に入力される(ステップS9)。なお、予測存在領域としては、additional proposed regionsが挙げられる。そして、処理がステップS10に移行する。
【0105】
ステップS10において、物体位置・種類推定部15では、Fast R−CNN層150から物体の位置・種類の推定結果が出力される。
【0106】
推定結果選択部16は、物体位置・種類推定部15からの推定結果に基づき物体の種類ごとの位置を絞り込み、絞り込みの結果として、物体の位置・種類の認識結果を出力する(ステップS11)。
【0107】
認識結果分析部17は、推定結果選択部16から入力される認識結果に基づき、第1の例に係る認識結果分析処理を実行し(ステップS12)、ステップS1で入力された1つの入力画像(例えば1フレーム)に対する処理が終了する。
【0108】
認識結果分析処理では、
図15に例示するように、認識結果分析部17の推定部171は、過去の入力画像に対する認識結果に基づき、物体の予測存在領域を推定する(ステップS21)。
【0109】
そして、認識結果分析部17の出力部172は、推定した予測存在領域を例えば提案領域計算部14に出力し(ステップS22)、処理が終了する。
【0110】
なお、ステップS21の物体の予測存在領域の推定処理の詳細は、後述する。
【0111】
(第2の例)
第2の例では、
図16に例示するように、ステップS1〜S5の処理は
図14に示す第1の例と同様である。
【0112】
ステップS5において特徴マップ計算部13がfeature mapsを提案領域計算部14(RPN層140)に入力する際に、移動情報の発生有無に応じて、処理が分岐する(ステップS14)。
【0113】
移動情報が発生していない場合(ステップS14でNo)、提案領域計算部14では、RPN層140からproposed regionsが出力される(ステップS6)。
【0114】
次いで、特徴マップ計算部13からのfeature mapsと提案領域計算部14からのproposed regionsとが物体位置・種類推定部15に入力される(ステップS8)。そして、処理がステップS10に移行する。
【0115】
一方、移動情報が発生している場合(ステップS14でYes)、ステップS5のfeature mapsに加えて、認識結果分析部17からの補正情報が提案領域計算部14に入力される(ステップS15)。なお、補正情報は、予測領域に近い(例えば重なりが大きい)proposed regionsのスコアを高くする情報であってよい。補正情報としては、例えば、proposed regionsの補正後のスコアそのものであってもよいし、当該スコアを、他のproposed regionsのスコアよりも高くするような重み付けのための係数等であってもよい。
【0116】
提案領域計算部14では、RPN層140から補正情報によるスコアの補正を受けたmodified proposed regionsが出力される(ステップS16)。
【0117】
次いで、特徴マップ計算部13からのfeature mapsと提案領域計算部14からのmodified proposed regionsとが物体位置・種類推定部15に入力される(ステップS17)。そして、処理がステップS10に移行する。
【0118】
ステップS10において、物体位置・種類推定部15では、Fast R−CNN層150から物体の位置・種類の推定結果が出力される。
【0119】
推定結果選択部16は、物体位置・種類推定部15からの推定結果に基づき物体の種類ごとの位置を絞り込み、絞り込みの結果として、物体の位置・種類の認識結果を出力する(ステップS11)。
【0120】
認識結果分析部17は、推定結果選択部16から入力される認識結果に基づき、第2の例に係る認識結果分析処理を実行し(ステップS18)、ステップS1で入力された1つの入力画像(例えば1フレーム)に対する処理が終了する。
【0121】
認識結果分析処理では、
図17に例示するように、認識結果分析部17の推定部171は、過去の入力画像に対する認識結果に基づき、物体の予測存在領域を推定する(ステップS21)。
【0122】
そして、認識結果分析部17の出力部172は、推定した予測存在領域に基づく補正情報を例えば提案領域計算部14に出力し(ステップS23)、処理が終了する。
【0123】
なお、ステップS21の物体の予測存在領域の推定処理の詳細は、後述する。
【0124】
〔1−4〕予測存在領域の推定処理の説明
次に、認識結果分析部17による物体の予測存在領域の推定処理について説明する。認識結果分析部17の推定部171は、推定処理において、以下の手法のうちのいずれか1つ、又は、2つ以上の組み合わせにより、予測存在領域を推定してよい。
【0125】
(第1の手法)
はじめに、第1の手法の一例について説明する。
【0126】
図18の左側に例示するように、t=t
0において、Faster R−CNNにより、矩形領域として、物体の一例である犬が存在する領域s(t
0)=(x(t
0),y(t
0),w(t
0),h(t
0))が検出された場合を想定する。なお、(x(t
0),y(t
0))は検出領域の中心位置、(w(t
0),h(t
0))は検出領域の幅及び高さであるものとする。なお、tは画像データ111の画像系列における時刻(タイミング)を特定する値であり、以下の例では、フレームに対応するものとする。
【0127】
また、
図18の左側に例示する犬がt=t
0+1において検出され得る領域は、t=t
0で検出されたs(t
0)=(x(t
0),y(t
0),w(t
0),h(t
0))を中心とする、或る範囲の領域に限定されるものと仮定する。
【0128】
例えば、
図18の右側に示すように、t=t
0+1において犬が検出された場合を想定する。なお、t=t
0+1のときの検出領域を、s(t
0+1)=(x(t
0+1),y(t
0+1),w(t
0+1),h(t
0+1))と表記する。
【0129】
このとき、推定部171は、(Δx,Δy,Δw,Δh)=s(t
0+1)−s(t
0)の値が、予め定めた或る範囲の大きさ以下であれば、t=t
0+1で検出された犬は、前フレーム(t=t
0)で検出された犬と同じ犬であると判定してよい。
【0130】
或るフレームで検出された物体が前フレームで検出された物体と同一であるか否かを判定するための手法として、以下の(a)〜(c)のいずれか、或いは、(a)〜(c)の2つ以上の組み合わせが用いられてよい。
【0131】
(a)例えば、推定部171は、(Δx
2+Δy
2)
1/2<rのように中心位置が可変な範囲rを定め、|Δw|<Δw_max,|Δh|<Δh_maxのように領域の幅及び高さが可変な範囲を定めてよい。なお、rの値、Δw_max、Δh_maxの値は、検出された物体の種類、観測時のフレームレート、検出された矩形領域の大きさ(w,h)等に基づき調節可能な値であってよい。或いは、rの値、Δw_max、Δh_maxの値は、所定のルールに従う固定値であってもよい。
【0132】
(b)また、推定部171は、或るフレームにおける物体の検出領域と前フレームにおける物体の検出領域との重なりの大きさをIoU(Intersection of Union)値で評価し、IoU値が或る閾値以上であれば同じ物体であると判定してもよい。
【0133】
(c)或いは、推定部171は、t=t
0で検出された領域とt=t
0+1で検出された領域とのピクセル値の相関値を用いてもよい。
【0134】
推定部171は、t=t
0で検出された犬とt=t
0+1で検出された犬とが同じ犬であると判定した場合、t=t
0及びt=t
0+1でそれぞれ検出した(x,y,w,h)の値に基づき、x,y,w,hの時間変化ds/dtを求めてよい。ここで、時間変化ds/dt=(dx/dt,dy/dt,dw/dt,dh/dt)である。
【0135】
また、推定部171は、t=t
0+2の場合、上記で求めたds/dtの値を用いて、s(t=t
0+2|t
0+1)=s(t
0+1)+ds/dt×Δtにより、時刻t=t
0+2における予測領域s(t
0+2|t
0+1)の値を推定してよい。なお、Δtはフレーム間の時間間隔である。ここで、予測領域s(t
0+2|t
0+1)=(x(t
0+2|t
0+1),y(t
0+2|t
0+1),w(t
0+2|t
0+1),h(t
0+2|t
0+1))である。
【0136】
出力部172は、上記により得られた予測領域の値に基づいて、Faster R−CNNに移動情報を出力してよい。
【0137】
なお、t=t
3の場合における予測領域の値は、上述した時刻t=t
0,t
0+1,t
0+2を時刻t=t
0+1,t
0+2,t
0+3に置き換えることで推定されてよい。t=t
4以降も同様である。
【0138】
(第2の手法)
次に、第2の手法の一例について説明する。第2の手法では、カルマンフィルタ(Kalman Filter)等速運動モデルを用いて予測領域を推定する一例について説明する。
【0139】
例えば、カルマンフィルタ等速運動モデルは、
図19に例示する状態ベクトルx
c,i,kを有してよい。なお、状態ベクトルにおけるcは追尾物体の種類、iは追尾物体の識別情報(例えば番号)、kは時刻(例えばフレーム番号)である。
【0140】
推定部171は、
図19に例示するように、追尾対象ごとに、物体の種類c、存在領域(x,y,w,h)及びその速度(x(ドット),y(ドット),w(ドット),h(ドット))を並べた状態ベクトルx
c,i,kを保持してよい。推定部171は、物体検出NNが検出した同じ種類の物体のうち、四次元観測ベクトル空間(x,y,w,h)内の予測位置に近い検出領域を持つ物体が存在すれば、当該検出領域を観測値としてカルマンフィルタの更新処理を実行してよい。なお、観測値として、
図19に例示する観測ベクトルz
c,j,kが定義されてよい。観測ベクトルにおけるcは検出物体の種類、jは検出物体の識別情報(例えば番号)、kは時刻(例えばフレーム番号)である。
【0141】
なお、
図19に例示するように、“x
k”で示される遷移モデルは以下の式(1)で表されてよく、“z
k”で示される観測モデルは以下の式(2)で表されてよい。ここで、下記式(1)中の“F”は状態遷移行列(
図19参照)であり、“w
k”はプロセスノイズである。また、下記式(2)中の“H”は観測行列(
図19参照)であり、“v
k”は観測ノイズである。
【0143】
追尾物体と検出物体との対応付け(Data Association)には、以下の(i)〜(iv)のうちのいずれかの手法が適用されてよい。
【0144】
(i)カルマンフィルタの更新処理に用いる観測値として追尾物体の予測位置に最も近い検出物体を用いる手法(Nearest Neighbor)。
【0145】
(ii)上記(i)の手法を追尾対象と検出物体とを1対1で対応付けた制約条件下で行なう手法(Global Nearest Neighbor)。
【0146】
(iii)割り当て候補の重み付き和で平均をとり、追尾物体の状態ベクトルを推定する手法(JPDA(Joint Probabilistic Data Association))。
【0147】
(iv)複数フレームに亘る割り当て仮説の仮説ツリーを構築し、その後に遡って枝刈する手法(MHT(Multiple Hypothesis Tracking))。
【0148】
また、カルマンフィルタの予測処理では、以下の式(3)及び(4)が用いられてよい。なお、式(3)は予測推定値を表し、式(4)は予測誤差行列を表す。
【0150】
推定部171は、中心位置、幅、高さの変化量の単位として、1フレームあたりのピクセル値・ピクセル長の変化量を基準にとる場合、dt=1として計算してよい。
【0151】
さらに、カルマンフィルタの更新処理では、以下の式(5)〜(9)が用いられてよい。なお、式(5)は観測残差の共分散を表し、式(6)は最適カルマンゲインを表し、式(7)は観測残差(innovation)を表し、式(8)は更新された状態の推定値を表し、式(9)は更新された誤差の共分散を表す。
【0153】
推定部171は、物体検出NNによって検出された物体の種類、大きさ(w,h)等に応じて、予測誤差行列の初期値P
0|0、プロセスノイズ共分散行列Q(
図19参照)の定数q
x,q
y等の大きさを変えてよい。なお、プロセスノイズ共分散行列Qは、予測領域の変化量に関連するパラメータである。
【0154】
これにより、推定部171は、素早く動く動物や乗り物等の初期位置からの移動範囲を大きく見積もったり、近くの物体の移動範囲を大きく見積もったりでき、より精度の高い物体追尾・物体検出を実現できる。また、物体の種別、例えば、「馬」及び「馬に乗った騎手」、といった文脈情報を推定できれば、運動の予測精度をさらに向上させることもできる。
【0155】
なお、追尾対象の大きさは、各フレームで変化するため、Qの大きさを定めるq
x,q
y等の大きさを追尾物体の大きさ(w,h)の関数として定めてもよい。
【0156】
(第3の手法)
次に、第3の手法の一例について説明する。第3の手法では、追尾物体と検出物体との対応付け(Data Association)の一例として、MHT(Multiple Hypothesis Tracking)が用いられる場合の一例について説明する。
【0157】
以下の説明では、第2の手法で説明したカルマンフィルタ等速運動モデル等の追尾フィルタを用いて追尾物体の予測領域を推定する手法において、さらに、以下の(I)及び(II)の手法をMHTを用いて適用する場合の例を説明する。
【0158】
(I)追尾フィルタへの観測ベクトルの提供。
【0159】
(II)得られた予測領域の値を信用し、一実施形態に係る手法に適用する判定条件の妥当な設定手法。
【0160】
MHTを用いて画像特徴点のトラッキングを実現する手法が知られている(例えば、非特許文献5及び6参照)。
【0161】
上記の手法の例では、画像から抽出されたコーナー特徴点の座標(x,y)を対象とし、追尾フィルタによって推定された複数の追尾対象点の座標位置(x,y)と複数のコーナー特徴点位置(x,y)との対応付け(Data Association)が行なわれる。
【0162】
一実施形態では、
図20に例示するように、上記の手法を拡張して、物体検出領域を表す四次元座標(x,y,w,h)を用いることで、複数の追尾物体と複数の検出物体との対応付けを行なう。
【0163】
例えば、
図21に示す観測データが取得された場合を想定する。この場合、推定部171は、複数種類の追尾物体と検出物体とを対応付けてよい。例えば、
図21に示すように、追尾物体である犬に検出物体(スコア:dog 0.958)が対応付けられており、当該検出物体の座標は、(x
c=dog,j=1,k,y
c=dog,j=1,k),w
c=dog,j=1,k,h
c=dog,j=1,kとなる。
【0164】
図22に例示するように、推定部171は、各フレームにおいて、物体検出領域(x,y,w,h)を表す四次元の観測ベクトルz
c,j,kを検出物体の種類ごとに取得してよい。
【0165】
各観測ベクトルベクトルz
c,j,kはそのフレームから追尾を開始する追尾の起点になり得る。なお、推定部171は、追尾を開始するとき、
図22の上段(t=k)に示す状態ベクトルx
c,j,kの速度成分は“0”とし、観測点の値(x,y,w,h)を追尾物体の初期位置(x,y,w,h)としてよい。
【0166】
推定部171は、各フレームにおいて、前フレームまでに観測された四次元空間(x,y,w,h)内の観測点系列のデータに基づき、最新フレームにおける追尾物体の状態ベクトルx
c,j,kの値を推定してよい。状態ベクトルの予測値は、第2の手法を用いて説明したような、カルマンフィルタの予測処理の計算式を用いて行なわれてよい(式(3)及び(4)参照)。
【0167】
そして、推定部171は、画像から検出される観測点(x,y,w,h)を追尾物体の観測値として割り当ててよい。割り当てられる観測点(検出物体)は、追尾物体と同じ種類の物体のみに制限されてよい。例えば、推定部171は、追尾物体の予測位置を中心とするゲート領域に含まれる観測点を、或る条件の下で割り当ててよい。
【0168】
第3の手法のカルマンフィルタで予測される予測観測位置z
kの確率密度は、物体検出領域を定める矩形領域のパラメータ、(x,y,w,h)を軸とする四次元ユークリッド空間における、下記式(10)のような多次元正規分布となる。
【0170】
ここで、S
kは、時刻t=kにおいて、下記式(11)(上記式(5)と同様)で計算される観測残差の共分散行列である。
【0172】
この残差共分散行列S
kの値は、カルマンフィルタの更新処理の一部として計算されるが、ここでは、追尾物体に割り当てられ得る観測点の位置の範囲、ゲート領域を定める目的でも用いられる。
【0173】
ここで、Rは、観測ノイズ共分散行列である。例えば、カメラが動くような利用シーンにおいては、カメラの動きにより物体の位置も変化する。この場合、推定部171は、観測ノイズ共分散行列Rの値を大きくすることで、カメラの動きによる物体の位置をモデルに反映させることができる。このように、過去のフレームで検出した結果を用いることで、物体検出の精度を向上できる可能性がある。
【0174】
なお、上記式(10)の多次元正規分布に含まれる下記式(12)(上記式(7)と同様)の項は観測残差である。観測残差は、時刻t=kのフレームにおける状態ベクトルの予測値(下記式(13)参照)から推定される予測位置(下記式(14)参照)と、実際に観測される観測点の座標との差を表す。
【0176】
この観測残差の分布は、観測時の観測ノイズや状態遷移時のプロセスノイズを反映した分布になっており、第3の手法のモデルでは、上記式(10)のような多次元正規分布となっている。
【0177】
推定部171は、この確率密度関数の値が或る閾値以上の値をとる領域としてゲート領域を定めてよい。ゲート領域は、上記の確率密度関数をゲート領域内の(x,y,w,h)について積分した値が或る閾値、例えば0.99となる領域として定められてもよい。この場合も、推定部171は、ゲート領域の内と外とを隔てる境界領域で確率密度関数の値が一定となるようにゲート領域を定めてよい。
【0178】
推定部171は、上記のようにして定めたゲート領域内の観測点を割り当て候補とし、予測位置に観測点を割り当ててよい。
【0179】
なお、ゲート領域として、上記のような密度関数の積分値が或る値(例えば0.99)となる領域を用いた場合、ゲート領域は四次元の楕円体領域となる。
【0180】
この楕円体を(w,h)=(const_w,const_h)及び(x,y)=(const_x,const_y)と固定して得た断面のイメージの一例を
図23に示す。
図23ではゲート領域内部を網掛けで示している。
【0181】
推定部171は、以上のようにして定めたゲート領域内の観測点を割り当て候補とし、追尾物体に観測点を割り当てる割り当て仮説を生成してよい。
【0182】
予測位置に近い位置に観測点が観測され続ければ、割り当ての尤度は高くなっていく。この割り当ての尤度が或る閾値を超えたとき、推定部171は、得られた予測領域の値に基づいて、Faster R−CNNに移動情報を出力してよい。
【0183】
なお、MHTにおいては、ゲート領域内の観測点を割り当てない未観測事象も割り当ての候補となり得る。このため、追尾物体が一時的に他の物体の後ろに隠れる等により、追尾物体が見えなくなったときにも、追尾を継続することができる。
【0184】
例えば、推定部171は、MHTの枠組みに従い、複数の追尾物体を複数の検出物体に割り当てる割り当て仮説を生成してよい。割り当て仮説は、各フレームの画像が観測されるごとに生成されてよい。
【0185】
前フレームまでに生成した複数の割り当て仮説から最新フレームにおける複数の割り当て仮説を生成する処理が繰り返し実施されるため、割り当て仮説の仮説ツリーは大きくなっていく。検出装置1のメモリやプロセッサ等の計算資源の制約に応じて、推定部171は、尤度の低い割り当て仮説については枝刈を行なって削除してもよい。
【0186】
このように、1フレームごとに割り当て仮説を確定させるのではなく、複数フレームに亘って仮説を多段に生成し、後で遡って割り当て仮説を確定させるため、1フレームごとに生じるノイズやオクルージョン等に頑健なData Associationを実現できる。
【0187】
一実施形態に係る検出装置1は、上記の手法により得られた予測領域の情報を用いて、Faster R−CNNによる物体の位置・種類の検出を行なってよい。これにより、物体検出の精度を向上させることができる。
【0188】
(第4の手法)
第4の手法では、推定部171が、観測データとして、NMS処理により矩形領域の絞り込みが行なわれる前の物体検出NNの出力(スコア付き矩形領域)を用いる例について説明する。なお、第4の手法は、移動情報の第2の例に適用されてよい。
【0189】
図24は、検出物体の種類が“person”の場合における、矩形領域の絞り込みが行なわれる前の検出領域の一例を示す図である。例えば、
図24に示す検出領域は、提案領域計算部14の候補領域・スコア計算部141からの出力情報(proposed regions)である。
【0190】
なお、
図24に例示するように、各矩形領域に対応する観測ベクトルをz
c,j,kと表記し、各検出領域に割り当てられたスコアをp
c,j,kと表記する。ここで、cは検出物体の種類を示し、jは検出物体の番号を示し、kは時刻(例えばフレーム番号)を示す。
【0191】
推定部171は、第3の手法と同様に、各フレームで複数観測される観測点(検出領域)を追尾物体に割り当ててよい。
【0192】
なお、第4の手法では、各フレームで検出対象の周りに多数観測される観測点(
図24に例示するような検出物体候補領域)が、重なりの小さな検出結果として絞り込まれる前に追尾物体に割り当てられる。
【0193】
MHTのようなData Association方式の割り当ての尤度を計算する際、推定部171は、追尾物体の運動から予想される上記式(10)のような観測点(矩形領域)の確率密度だけでなく、検出候補領域のスコアp
c,j,kの値も考慮してよい。候補領域のスコアを考慮した尤度としては、例えば、p
c,j,k・f(z
c,j,k)のような式が用いられてもよい。
【0194】
なお、上述した観測点空間内での割り当て仮説の生成過程は、前フレームまでの検出領域から推定される予測領域と最新フレームの検出領域とを対応付ける処理(観測領域の対応付け)と位置付けられてよい。
【0195】
図25は、このような観測領域の対応付けを四次元ユークリッド空間の観測点の対応付けとして例示する図である。
図25では、w軸及びh軸のいずれか1つを省略した三次元のイメージ図を示している。
【0196】
図26は、MHTを用いて、各フレームで複数観測される観測点(検出領域)を追尾物体に割り当てる手法の一例を示す図である。
図26では、t=k+1において2つの観測点が観測されており、それ以外の時刻では1つの観測点が観測されている。なお、
図26では、四次元ではなく二次元のイメージ図を示している。
【0197】
図27は、MHTによる未観測事象への仮説の割り当てとカルマンフィルタの予測・更新処理とを説明する図である。
図27には、ゲート領域に1つの観測点が含まれる場合における、追尾フィルタによる追尾物体の予測位置、推定位置、観測点位置、ゲート領域の計算例を示す。
図27から、MHTにより、ゲート領域内の観測点を追尾物体に割り当てていく様子がわかる。
【0198】
図27の例では、時刻t=k−1,k+1,k+2フレーム目において観測点が、時刻t=kフレーム目において未観測事象が、それぞれ割り当てられている。なお、画像内の観測点のうちのゲート領域内部の観測点のみが割り当ての候補となってよい。また、観測点が割り当てられるとき、追尾物体の推定位置は、予測位置に比べて観測点位置側に補正されてよい。
【0199】
図28は、MHTによる未観測事象への仮説の割り当てとカルマンフィルタの予測・更新処理とを説明する図である。
図28には、ゲート領域に複数の観測点が観測され、追尾仮説が分岐する場合における、追尾フィルタによる追尾物体の予測位置、推定位置、観測点位置、ゲート領域の計算例を示す。
【0200】
図28の例では、時刻t=k−1で1つの観測点が、t=kで未観測事象が、t=k+1で2つの観測点が、それぞれ割り当てられている。また、時刻t=k+2で分岐後の追尾仮説に対し、観測点が1つずつ割り当てられている。
【0201】
なお、
図25〜
図28を参照して説明した手法は、第3の手法にも適用可能である。
【0202】
図29は、MHTによる複数フレームに亘る仮説の生成及び枝刈の一例を説明する図である。推定部171は、複数フレームに亘って割り当て仮説の生成を繰り返してよい。このとき、推定部171は、最新の仮説ツリーの中から、割り当て仮説の組み合わせの尤度が最も高い仮説を推定結果として選択してよい。なお、仮説ツリーの枝刈は、メモリやプロセッサ等の計算資源の制約に応じて、適当なタイミングで実行されてよい。
【0203】
図29の例では、割り当て仮説の組み合わせの尤度が最大の仮説を推定結果とする例を示す。例えば、推定部171は、N−Scanbackアルゴリズムを用いてよい。N−Scanbackアルゴリズムは、現時刻における尤度最大の割り当て仮説を選択し、N−1フレーム前の仮説を確定(
図29の例ではN=2)、N−1フレーム目の他のノードを起点とする仮説ツリーの枝刈を実行するアルゴリズムである。
【0204】
出力部172は、上述した第4の手法により得られた複数の追尾仮説に基づき、移動情報を生成して、提案領域計算部14の候補領域選択部142に出力してよい。
【0205】
ところで、第4の手法は、通常のMHTで割り当てられる観測点とは異なり、その後、別の処理(例えばNMS処理)によって絞り込まれることになる複数のスコア付き検出候補領域(例えばproposed regions)を観測点として用いている。
【0206】
このため、検出領域が多く見積もられる可能性がある。そこで、検出装置1は、以下の(A)又は(B)の手法、或いは、(A)及び(B)の手法の組み合わせにより検出領域を絞り込んでよい。
【0207】
(A)出力部172は、推定部171により得られた追尾仮説の尤度を用いて、検出領域のスコアを補正する補正情報を生成する。出力部172からの補正情報により、候補領域選択部142によるNMS処理では、尤度が最大の仮説(候補領域)のスコアが高くなるように判断され、候補領域の絞り込みが行なわれる。
【0208】
(B)推定部171は、追尾仮説生成の起点となる(x,y,w,h)には、NMS処理等を経て絞り込まれた領域の値を用い、その後、第4の手法に係る割り当て仮説の生成を繰り返す。なお、推定部171は、或る1つの共通の起点から分岐した追尾仮説は、1つの追尾対象のみに対応すると仮定し、最も尤度の高い追尾仮説を推定結果として選択する。このとき、推定部171は、追尾の起点となる観測点と、追尾継続物体の観測結果との重複を避けるため、以下の(B−1)及び(B−2)の手法を適用し、追尾継続物体近くの検出候補領域を取り除いてよい。なお、追尾の起点とは、例えば、物体毎に、最初に物体が検出されたフレームである。
【0209】
(B−1)推定部171は、追尾の結果として得られる推定結果、或いは、最も割り当ての尤度が高い領域として選択された検出候補領域(これらも検出結果とする)と重なりの大きな領域は取り除いてよい。
【0210】
(B−2)また、推定部171は、追尾継続中の追尾仮説のゲート領域に含まれる検出候補領域は取り除いてよい。
【0211】
また、(B)において、提案領域計算部14は、認識結果分析部17による上記の処理によって残った候補領域に対して、候補領域選択部142によるNMS処理等の絞り込み処理を適用してよい。なお、この絞り込み処理実施後に検出された領域が、認識結果分析部17による追尾の起点になるものとする。
【0212】
なお、上述した第4の手法に係る処理において、候補領域選択部142は、検出物体近くの検出候補領域について、重み付き平均を取ってもよい。
【0213】
例えば、出力部172は、移動情報として、「予測位置からの距離」、「マハラノビス距離」、「検出領域のスコア」、及び、「追尾の尤度」のうちの少なくとも1つの情報を、提案領域計算部14に出力してよい。なお、「マハラノビス距離」は、例えば、上記式(10)のうちの下記の項(15)により定義されてよい。
【0215】
候補領域選択部142は、追尾フィルタを用いて計算される予測領域を中心とするゲート領域内部の検出候補領域に対して、出力部172からの移動情報に基づく重み付け平均を算出してよい。
【0216】
なお、認識結果分析部17は、追尾開始時にはMHTを用い、追尾が或る程度継続したらJPDA(Joint Probabilistic Data Association)を用いてもよい。
【0217】
また、認識結果分析部17は、追尾開始時の物体検出の閾値を高くし、追尾が継続して尤度が或る閾値を超えた領域の物体検出の閾値を低くする等の補正を行なう補正情報を生成してもよい。換言すれば、候補領域選択部142は、物体検出の閾値に対して、追尾の継続期間に応じた重み付け平均を算出してもよい。これにより、追尾が継続して尤度が或る閾値を超えた領域が、例えば或るフレームで他の領域(物体)の後ろに隠れたとしても、過去のフレームからトラッキングしてきた情報を用いることで、物体検出の精度を高めることができる。
【0218】
なお、候補領域選択部142からの重み付け平均の算出結果は、提案領域計算部14からの出力であるproposed regionsとして、物体位置・種類推定部15に入力されてよい。
【0219】
以上のように、候補領域選択部142は、複数の組の各々の指標に基づき複数の組の複数の候補領域の重み付き平均を算出する第2の処理を行なうといえる。
【0220】
〔1−5〕ハードウェア構成例
次に、検出装置1のハードウェア構成例について説明する。なお、上述のように、検出装置1は、例示的に、1台以上のコンピュータをそなえるコンピュータシステムにより実現されてよい。検出装置1を構成する1台以上のコンピュータをコンピュータ10と表記し、コンピュータ10のハードウェア構成例について説明する。
【0221】
図30に示すように、情報処理装置の一例としてのコンピュータ10は、例示的に、プロセッサ10a、メモリ10b、記憶部10c、IF(Interface)部10d、I/O(Input / Output)部10e、及び読取部10fをそなえてよい。
【0222】
プロセッサ10aは、種々の制御や演算を行なう演算処理装置の一例である。プロセッサ10aは、各ブロック10b〜10fとバス10iで相互に通信可能に接続されてよい。プロセッサ10aとしては、CPU、GPU、MPU、DSP、ASIC、PLD(例えばFPGA)等の集積回路(IC)が用いられてもよい。なお、CPUはCentral Processing Unitの略称であり、GPUはGraphics Processing Unitの略称であり、MPUはMicro Processing Unitの略称である。DSPはDigital Signal Processorの略称であり、ASICはApplication Specific Integrated Circuitの略称である。PLDはProgrammable Logic Deviceの略称であり、FPGAはField Programmable Gate Arrayの略称である。
【0223】
メモリ10bは、種々のデータやプログラムを格納するハードウェアの一例である。メモリ10bとしては、揮発性メモリ、例えば、DRAM(Dynamic RAM)等のRAMが挙げられる。なお、RAMはRandom Access Memoryの略称である。
【0224】
記憶部10cは、種々のデータやプログラム等を格納するハードウェアの一例である。例えば、記憶部10cは、コンピュータ10の二次記憶装置として使用されてよく、OS(Operating System)やファームウェア、アプリケーション等のプログラム、及び各種データが格納されてよい。記憶部10cとしては、例えば、HDD(Hard Disk Drive)等の磁気ディスク装置、SSD(Solid State Drive)等の半導体ドライブ装置、不揮発性メモリ等の各種記憶装置が挙げられる。不揮発性メモリとしては、例えば、フラッシュメモリ、SCM(Storage Class Memory)、ROM(Read Only Memory)等が挙げられる。記憶部10cは、コンピュータ10の各種機能の全部若しくは一部を実現するプログラム10gを格納してもよい。
【0225】
IF部10dは、図示しないネットワークを介して、他の装置との間の接続及び通信の制御等を行なう通信インタフェースの一例である。例えばIF部10dとしては、イーサネット(登録商標)、光通信(例えばFibre Channel)等に準拠したアダプタが挙げられる。なお、コンピュータ10は、管理者の管理端末との間の接続及び通信の制御等を行なう通信インタフェースをそなえてもよく、当該通信インタフェースを用いて、図示しないネットワークからプログラム10gをダウンロードしてもよい。
【0226】
I/O部10eは、例えば、マウス、キーボード、タッチパネル、操作ボタン等の入力装置、並びに、ディスプレイや、プロジェクタ、プリンタ等の出力装置の少なくとも一方を含んでよい。
【0227】
読取部10fは、記録媒体10hに記録されたデータやプログラムを読み出しプロセッサ10aに出力するリーダの一例である。読取部10fは、記録媒体10hを接続又は挿入可能な接続端子又は装置を含んでもよい。読取部10fとしては、例えばUSB(Universal Serial Bus)等に準拠したアダプタ、記録ディスクへのアクセスを行なうドライブ装置、SDカード等のフラッシュメモリへのアクセスを行なうカードリーダ等が挙げられる。なお、記録媒体10hにはプログラム10g等が格納されてもよい。
【0228】
記録媒体10hとしては、例示的に、磁気/光ディスクやフラッシュメモリ等の非一時的なコンピュータ読取可能な記録媒体が挙げられる。磁気/光ディスクとしては、例示的に、フレキシブルディスク、CD(Compact Disc)、DVD(Digital Versatile Disc)、ブルーレイディスク、HVD(Holographic Versatile Disc)等が挙げられる。フラッシュメモリとしては、例示的に、USBメモリやSDカード等の半導体メモリが挙げられる。なお、CDとしては、例示的に、CD−ROM、CD−R、CD−RW等が挙げられる。また、DVDとしては、例示的に、DVD−ROM、DVD−RAM、DVD−R、DVD−RW、DVD+R、DVD+RW等が挙げられる。
【0229】
上述したコンピュータ10のハードウェア構成は例示である。従って、コンピュータ10内でのハードウェアの増減(例えば任意のブロックの追加や削除)、分割、任意の組み合わせでの統合、バスの追加又は省略等は適宜行なわれてもよい。また、検出装置1が複数のコンピュータ10により実現される場合には、複数のコンピュータ10間で、1つ以上のハードウェアが共用されてもよい。
【0230】
〔2〕その他
上述した一実施形態に係る技術は、以下のように変形、変更して実施することができる。
【0231】
例えば、
図1に示す検出装置1において、画像前処理部12〜認識結果分析部17の機能は、任意の組み合わせで併合してもよく、いずれかの機能を複数の機能に分割してもよい。
【0232】
また、推定部171は、検出された物体の姿勢を検出できる場合、予測領域の推定処理に姿勢情報を用いてもよい。例えば、立ち止まった姿勢の動物が、前回の位置から急に大きく動く可能性は低いが、走ったり飛んだりしている動物は、前回の位置から大きく動くことが予想される。
【0233】
さらに、推定部171は、予測領域の推定処理に、乗り物や動物等の物体の向きから予想される移動方向の情報を用いてもよい。
【0234】
なお、姿勢情報や移動方向の情報は、物体検出ネットワーク(例えばFaster R−CNN)とは別の手法によって推定されてよい。換言すれば、推定部171は、物体検出ネットワークとは異なるネットワークを含んでもよい。
【0235】
また、物体検出の認識処理、例えば、検出装置1による認識結果181は、物体検出用学習データのラベル付けに利用されてもよい。例えば、物体の種類をFaster R−CNNに学習させる場合、フレームごとに、物体の種類を示すラベルを人手により入力して学習させることになるが、認識結果181を利用できれば、フレームごとの入力の手間を削減できる可能性がある。
【0236】
〔3〕付記
以上の実施形態に関し、さらに以下の付記を開示する。
【0237】
(付記1)
コンピュータに、
画像系列から物体の移動に関する移動情報を取得し、
前記画像系列内の第1画像について、前記第1画像において物体の存在が推定される候補領域及び当該候補領域における物体の存在の可能性を示す指標の組を、前記第1画像の画像特徴量に従い推定し、
推定した前記候補領域及び前記指標の組を用いて前記第1画像における前記物体の位置を決定する、
処理を実行させ、
前記候補領域及び前記指標の組の推定は、取得した前記移動情報に基づき、前記推定の過程で取得される情報に対する補正処理を施すこと、を含む、制御プログラム。
【0238】
(付記2)
前記コンピュータに、
前記画像系列内の前記第1画像よりも時間的に過去の複数の画像の各々について、当該画像ごとに、
前記画像系列から物体の移動に関する移動情報を取得し、
前記画像について、前記画像において物体の存在が推定される候補領域及び当該候補領域における物体の存在の可能性を示す指標の組を、前記画像の画像特徴量に従い推定し、
推定した前記候補領域及び前記指標の組を用いて前記画像における前記物体の位置を決定する、
処理を実行させ、
過去の複数の画像の各々についての前記候補領域及び前記指標の組の推定は、取得した前記移動情報に基づき、前記推定の過程で取得される情報に対する補正処理を施すこと、を含み、
前記第1画像に係る前記移動情報の取得は、
前記過去の複数の画像の各々について当該画像ごとに決定した物体の位置に基づき同一物体と認識される物体の位置の時間的な変化に基づいて、前記移動情報を取得する、付記1に記載の制御プログラム。
【0239】
(付記3)
前記推定は、
前記候補領域及び前記指標の組を複数推定する第1の処理と、
前記複数の組の各々の指標に基づき前記複数の組を所定数の組に絞り込む第2の処理と、
前記所定数の組の前記候補領域及び前記指標と、前記画像特徴量とに基づき、前記候補領域に存在すると推定される物体の種類を推定する第3の処理と、を含み、
前記移動情報は、前記第3の処理に入力される、付記1に記載の制御プログラム。
【0240】
(付記4)
前記移動情報は、前記第1画像において前記物体の存在が予測される領域を示す予測領域を含む、付記3に記載の制御プログラム。
【0241】
(付記5)
前記推定は、
前記候補領域及び前記指標の組を複数推定する第1の処理と、
前記複数の組の各々の指標に基づき前記複数の組を所定数の組に絞り込む第2の処理と、
前記所定数の組の前記候補領域及び前記指標と、前記画像特徴量とに基づき、前記候補領域に存在すると推定される物体の種類を推定する第3の処理と、を含み、
前記移動情報は、前記第2の処理に入力される、付記1に記載の制御プログラム。
【0242】
(付記6)
前記移動情報は、前記第1画像に係る前記第1の処理により推定される候補領域のうちの特定の候補領域の指標を補正する補正情報を含む、付記5に記載の制御プログラム。
【0243】
(付記7)
前記推定は、
前記候補領域及び前記指標の組を複数推定する第1の処理と、
前記複数の組の各々の指標に基づき前記複数の組の複数の候補領域の重み付き平均を算出する第2の処理と、
前記重み付き平均の算出結果と前記画像特徴量とに基づき、前記候補領域に存在すると推定される物体の種類を推定する第3の処理と、を含み、
前記移動情報は、前記第2の処理に入力される、付記1に記載の制御プログラム。
【0244】
(付記8)
前記第1画像には複数の基準領域が固定的に配置されており、
前記推定は、前記複数の基準領域の各々により形成される領域、又は、前記複数の基準領域の組み合わせにより形成される領域に基づき、前記候補領域及び前記指標を推定する、付記1〜7のいずれか1項に記載の制御プログラム。
【0245】
(付記9)
前記移動情報の取得は、前記物体の位置情報と、前記画像系列内の前記第1画像及び前記第1画像の直前の画像の時間間隔と、に基づき、前記第1画像において当該物体が存在し得る領域を推定する、付記1〜8のいずれか1項に記載の制御プログラム。
【0246】
(付記10)
前記移動情報の取得は、追尾フィルタを用いた運動モデルに基づき、前記移動情報を取得する、付記1〜9のいずれか1項に記載の制御プログラム。
【0247】
(付記11)
前記移動情報の取得は、前記追尾フィルタにより推定された複数の追尾対象の領域と、前記物体の位置情報との対応付けを行なう、付記10に記載の制御プログラム。
【0248】
(付記12)
前記移動情報の取得は、前記対応付けにより得られた複数の追尾仮説の各々の尤度に基づき、1以上の追尾仮説を前記移動情報として取得する、付記11に記載の制御プログラム。
【0249】
(付記13)
画像系列から物体の移動に関する移動情報を取得し、
前記画像系列内の第1画像について、前記第1画像において物体の存在が推定される候補領域及び当該候補領域における物体の存在の可能性を示す指標の組を、前記第1画像の画像特徴量に従い推定し、
推定した前記候補領域及び前記指標の組を用いて前記第1画像における前記物体の位置を決定する、
処理を実行させ、
前記候補領域及び前記指標の組の推定は、取得した前記移動情報に基づき、前記推定の過程で取得される情報に対する補正処理を施すこと、を含む、制御方法。
【0250】
(付記14)
前記画像系列内の前記第1画像よりも時間的に過去の複数の画像の各々について、当該画像ごとに、
前記画像系列から物体の移動に関する移動情報を取得し、
前記画像について、前記画像において物体の存在が推定される候補領域及び当該候補領域における物体の存在の可能性を示す指標の組を、前記画像の画像特徴量に従い推定し、
推定した前記候補領域及び前記指標の組を用いて前記画像における前記物体の位置を決定する、
処理を実行させ、
過去の複数の画像の各々についての前記候補領域及び前記指標の組の推定は、取得した前記移動情報に基づき、前記推定の過程で取得される情報に対する補正処理を施すこと、を含み、
前記第1画像に係る前記移動情報の取得は、
前記過去の複数の画像の各々について当該画像ごとに決定した物体の位置に基づき同一物体と認識される物体の位置の時間的な変化に基づいて、前記移動情報を取得する、付記13に記載の制御方法。
【0251】
(付記15)
前記推定は、
前記候補領域及び前記指標の組を複数推定する第1の処理と、
前記複数の組の各々の指標に基づき前記複数の組を所定数の組に絞り込む第2の処理と、
前記所定数の組の前記候補領域及び前記指標と、前記画像特徴量とに基づき、前記候補領域に存在すると推定される物体の種類を推定する第3の処理と、を含み、
前記移動情報は、前記第3の処理に入力される、付記13に記載の制御方法。
【0252】
(付記16)
前記移動情報は、前記第1画像において前記物体の存在が予測される領域を示す予測領域を含む、付記15に記載の制御方法。
【0253】
(付記17)
前記推定は、
前記候補領域及び前記指標の組を複数推定する第1の処理と、
前記複数の組の各々の指標に基づき前記複数の組を所定数の組に絞り込む第2の処理と、
前記所定数の組の前記候補領域及び前記指標と、前記画像特徴量とに基づき、前記候補領域に存在すると推定される物体の種類を推定する第3の処理と、を含み、
前記移動情報は、前記第2の処理に入力される、付記13に記載の制御方法。
【0254】
(付記18)
前記移動情報は、前記第1の処理により推定される候補領域のうちの特定の候補領域の指標を補正する補正情報を含む、付記17に記載の制御方法。
【0255】
(付記19)
画像系列から物体の移動に関する移動情報を取得する取得部と、
前記画像系列内の第1画像について、前記第1画像において物体の存在が推定される候補領域及び当該候補領域における物体の存在の可能性を示す指標の組を、前記第1画像の画像特徴量に従い推定する推定部と、
推定した前記候補領域及び前記指標の組を用いて前記第1画像における前記物体の位置を決定する決定部と、をそなえ、
前記推定部は、取得した前記移動情報に基づき、前記推定の過程で取得される情報に対する補正処理を施す、情報処理装置。
【0256】
(付記20)
前記取得部は、前記画像系列内の前記第1画像よりも時間的に過去の複数の画像の各々について、当該画像ごとに、前記画像系列から物体の移動に関する移動情報を取得し、
前記推定部は、前記過去の複数の画像の各々について、当該画像ごとに、前記画像について、前記画像において物体の存在が推定される候補領域及び当該候補領域における物体の存在の可能性を示す指標の組を、前記画像の画像特徴量に従い推定し、
前記決定部は、前記過去の複数の画像の各々について、当該画像ごとに、推定した前記候補領域及び前記指標の組を用いて前記画像における前記物体の位置を決定し、
前記推定部は、過去の複数の画像の各々についての前記候補領域及び前記指標の組の推定において、取得した前記移動情報に基づき、前記推定の過程で取得される情報に対する補正処理を施し、
前記取得部は、前記第1画像に係る処理において、前記過去の複数の画像の各々について当該画像ごとに決定した物体の位置に基づき同一物体と認識される物体の位置の時間的な変化に基づいて、前記移動情報を取得する、付記19に記載の情報処理装置。