(58)【調査した分野】(Int.Cl.,DB名)
前記学習データ生成部は、前記移動物体が前記検出対象物体であるか否かを判定する判定部を備え、前記検出対象物体であると判定された前記移動物体について学習データを生成する、請求項1に記載の物体状況推定システム。
【発明の概要】
【発明が解決しようとする課題】
【0004】
カメラの設置位置は各所で異なっており、各カメラにおいて撮影画像に映る検出すべき人物の見え方(撮影方向、大きさ等)も異なっている。したがって、人物の検出に機械学習技術を用いる場合には、各カメラについて、その設置位置に応じた辞書を用意する必要がある。
【0005】
しかしながら、カメラごとに機械学習技術のための辞書を用意することは、費用面からも、工数面からも困難である。辞書を更新する機械学習はすでに提案されているが、辞書を更新するのに必要な学習データを用意することはやはり容易ではない。
【0006】
本発明は、上記の問題点に鑑みてなされたものであり、辞書を更新するのに必要な学習データを自動で生成できる物体状況推定システム、物体状況推定装置、物体状況推定方法、及び物体状況推定プログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明の一態様の物体状況推定システムは、撮影をして撮影画像を生成するカメラと、辞書を利用して、前記撮影画像から特定の検出対象物体の検出、及び前記検出対象物体の状況の推定をする物体検出部と、前記撮影画像における移動物体の移動情報を算出する移動情報算出部と、前記移動情報に基づいて、前記移動物体の状況を判定することで、学習データを生成する学習データ生成部と、前記学習データに基づいて前記辞書を更新する追加学習部とを備えた構成を有している。
【0008】
この構成により、辞書を利用して撮影画像から特定の検出対象物体を検出し、かつその検出対象物体の状況を推定するシステムにおいて、辞書を更新するのに必要な学習データを撮影画像から自ら自動で生成できる。
【0009】
上記の物体状況推定システムにおいて、前記検出対象物体及び前記移動物体の状況は、前記検出対象物体及び前記移動物体の向きであってよい。
【0010】
この構成により、学習データに必要な向きの情報を移動情報から判定することができる。
【0011】
上記の物体状況推定システムは、前記撮影画像から物体候補領域を抽出する物体候補領域抽出部をさらに備えていてよく、前記物体検出部は、前記撮影画像のうちの前記物体候補領域を含む一部領域から前記検出対象物体を検出してよい。
【0012】
この構成により、物体候補領域を含む一部領域について検出対象物体の検出を行うので、物体検出の処理負荷を軽減して、処理速度を向上できる。
【0013】
上記の物体状況推定システムは、前記撮影画像から物体候補領域を抽出する物体候補領域抽出部をさらに備えていてよく、前記移動情報算出部は、前記移動物体の移動情報として、前記物体候補領域の移動情報を算出してよい。
【0014】
この構成により、物体候補領域を移動物体としてその移動情報を算出するので、物体検出部で検出対象物体として検出されない移動物体についても、負例データとして学習データを生成できる。
【0015】
上記の物体状況推定システムにおいて、前記カメラは、連続的に撮影をして複数フレームの前記撮影画像を生成してよく、前記物体候補領域抽出部は、複数フレームの前記撮影画像の差分画像に基づいて前記物体候補領域を抽出してよい。
【0016】
この構成により、物体候補領域を抽出する処理負荷を軽減して、処理速度を向上できる。
【0017】
上記の物体状況推定システムにおいて、前記学習データ生成部は、前記移動物体が前記検出対象物体であるか否かを判定する判定部を備え、前記検出対象物体であると判定された前記移動物体について学習データを生成してよい。
【0018】
この構成により、移動物体のうちの検出対象物体に該当するものについて、正例データとして学習データを生成できる。
【0019】
上記の物体状況推定システムにおいて、前記判定部は、前記検出の結果に基づいて、前記移動物体が前記検出対象物体であるか否かを判定してよい。
【0020】
この構成により、物体検出部の検出結果を利用移動物体が検出対象物体であるか否かを判定できる。
【0021】
本発明の一態様の物体状況推定装置は、撮影をして撮影画像を生成するカメラと通信可能に接続され、前記カメラから前記撮影画像を取得する物体状況推定装置であって、辞書を利用して、前記撮影画像から特定の検出対象物体の検出、及び前記検出対象物体の状況の推定をする物体検出部と、前記撮影画像における移動物体の移動情報を算出する移動情報算出部と、前記移動情報に基づいて、前記移動物体の状況を判定することで、学習データを生成する学習データ生成部とを備えた構成を有している。
【0022】
この構成により、辞書を利用して撮影画像から特定の検出対象物体を検出し、その検出対象物体の状況を推定する装置において、辞書を更新するのに必要な学習データを撮影画像から自ら自動で生成できる。
【0023】
本発明の一態様の物体状況推定方法は、撮影をして撮影画像を生成するステップと、辞書を利用して、前記撮影画像から特定の検出対象物体の検出、及び前記検出対象物体の状況の推定をするステップと、前記撮影画像における移動物体の移動情報を算出するステップと、前記移動情報に基づいて、前記移動物体の状況を判定することで、学習データを生成するステップと、前記学習データに基づいて前記辞書を更新するステップとを備えた構成を有している。
【0024】
この構成により、辞書を利用して撮影画像から特定の検出対象物体を検出し、その検出対象物体の状況を推定するとともに、辞書を更新するのに必要な学習データを撮影画像から自動で生成できる。
【0025】
本発明の一態様の物体状況推定プログラムは、撮影をして撮影画像を生成するカメラと通信可能に接続され、前記カメラから前記撮影画像を取得する物体状況推定装置のコンピュータを、辞書を利用して、前記撮影画像からの特定の検出対象物体の検出、及び前記検出対象物体の状況の推定をする物体検出部、前記撮影画像における移動物体の移動情報を算出する移動情報算出部、前記移動情報に基づいて、前記移動物体の状況を判定することで、学習データを生成する学習データ生成部、及び前記学習データに基づいて前記辞書を更新する追加学習部として機能させる。
【0026】
この構成により、辞書を利用して撮影画像から特定の検出対象物体を検出し、その検出対象物体の状況を推定するとともに、辞書を更新するのに必要な学習データを撮影画像から自動で生成できる。
【発明の効果】
【0027】
本発明によれば、辞書を利用して撮影画像から特定の検出対象物体を検出し、その検出対象物体の状況を推定するシステムにおいて、辞書を更新するのに必要な学習データを撮影画像から自ら自動で生成できる。
【発明を実施するための形態】
【0029】
以下、図面を参照して本発明の実施の形態を説明する。なお、以下に説明する実施の形態は、本発明を実施する場合の一例を示すものであって、本発明を以下に説明する具体的構成に限定するものではない。本発明の実施にあたっては、実施の形態に応じた具体的構成が適宜採用されてよい。
【0030】
図1は、本発明の実施の形態の物体状況推定システムの構成を示すブロック図である。物体状況推定システム1は、カメラ10と、物体状況推定装置20とからなる。カメラ10は、街頭に設置され、具体的には、例えば比較的高所から交差点に向くように設置される。カメラ10は、所定のフレームレートで連続的に撮影をして、撮影画像を生成する。カメラ10は、物体状況推定装置20に対して、連続的に得られた撮影画像を所定の伝送レートで順次送信する。
【0031】
物体状況推定装置20は、カメラ10で生成された撮影画像を取得して、この撮影画像に映っている特定の検出対象物体(本実施の形態では、歩行している人物(歩行者))の状況を推定する。本実施の形態において、物体状況推定装置20が推定する人物の状況は、人物の向きであり、これに基づいて、人物が、信号待ちをしているのか、道路を渡っているのか、あるいは、道路を渡り終えたのかを判定できる。
【0032】
カメラ10と物体状況推定装置20とは、カメラ10から物体状況推定装置20に撮影画像を送信し、物体状況推定装置20にて撮影画像を受信できるように、互いに通信可能に接続されている。カメラ10と物体状況推定装置20とは、有線で接続されていても、無線で接続されていてもよい。また、カメラ10と物体状況推定装置20との間にインターネット等の通信ネットワークが介在していてもよい。すなわち、物体状況推定装置20は、カメラ10とは地理的に離れた位置に設けられていてよい。
【0033】
物体状況推定装置20は、記憶装置、ROM、RAM、CPU等からなるコンピュータによって構成され、記憶装置に記憶された物体状況推定プログラムをCPUが読み出して実行することで、以下の各機能が実現される。物体状況推定装置20は、物体候補領域抽出部21と、物体検出部22と、移動情報産出部23と、学習データ生成部24と、追加学習部25と、過去画像記憶部31と、背景画像記憶部32と、学習データ記憶部33と、人物辞書記憶部34とを備えており、これらを用いて物体状況推定方法を実行する。
【0034】
なお、本実施の形態では、時間推移を離散的に示し、現在の時点を符号tで表し、現時点から1ステップ前の時点を符号t−1で表し、現時点から2ステップ前の時点を符号t−2で表す。また、1ステップは1フレームに相当するので、現時点の最新フレームを符号tで表し、1つ前のフレームを符号t−1で表し、2つ前のフレームを符号t−2で表す。
【0035】
カメラ10から物体状況推定装置20に送信された撮影画像は、過去画像記憶部31に記憶されるとともに、物体候補領域抽出部21に入力される。過去画像記憶部31には、過去のフレームの撮影画像が所定のフレーム数だけ記憶されている。物体候補領域抽出部21は、撮影画像から、物体が存在すると考えられる領域(以下、「物体候補領域」という。)を抽出する。本実施の形態の物体候補領域抽出部21は、特に、移動する物体が存在する領域を物体候補領域として抽出する。
【0036】
物体検出部22は、物体候補領域抽出部21から抽出された物体候補領域から特定の検出対象物体(人物)を検出する。撮影画像に人物が複数ある場合には、物体検出部22は、それらをそれぞれ検出する。また、物体検出部22は、検出した各人物について、その状況を推定して、人物の有無(人物の検出結果)及び状況の推定結果を出力する。
【0037】
移動情報算出部23は、過去画像記憶部31から読み出した撮影画像と、物体候補領域抽出部21から入力された物体候補領域とに基づいて、移動物体(人物には限らない)の移動情報(具体的には、各移動物体の動きベクトル)を算出する。移動情報算出部23は、算出した移動情報を学習データ生成部24に出力する。
【0038】
学習データ生成部24は、移動情報算出部23から入力した各移動物体の移動情報に基づいて、移動物体の向きを判定して、向きごとの学習データを生成する。生成された学習データは、追加学習データとして、追加学習データ記憶部33に記憶される。
【0039】
追加学習部25は、追加学習データ記憶部33に記憶されている追加学習用の学習データを用いて、追加学習を行って、人物辞書記憶部34に記憶されている人物辞書を更新することで、新たな人物辞書を生成する。
【0040】
物体状況推定装置20において、物体候補領域抽出部21、物体検出部22、過去画像記憶部31、背景画像記憶部32、及び人物辞書記憶部34は、撮影画像から人物を検出して、その状況を推定するための構成であり、物体候補領域21、移動情報算出部23、学習データ生成部24、追加学習部25、過去画像記憶部31、及び追加学習データ記憶部33は、追加の学習を行って人物辞書を更新するための構成である。以下、物体状況推定装置20のそれぞれの機能について、より詳細に説明する。
【0041】
まず、撮影画像から人物を検出して、その状況を推定するための構成について説明する。過去画像記憶部31は、フレーム間差分画像FDtの算出に用いる過去フレームの撮影画像(以下、「過去フレーム画像」ともいう。)を記憶する。過去フレーム画像は、過去の時点においてカメラ10が撮影した撮影画像であり、本実施の形態では、過去画像記憶部31には、直近の過去2ステップ(過去2フレーム)の過去フレーム画像It−1、It−2が記憶される。過去画像記憶部31に記憶される過去フレーム画像は、カメラ10から新たに現時点の最新の撮影画像(以下、「現フレーム画像」ともいう。)を受信するたびに逐次更新される。
【0042】
背景画像記憶部32は、背景差分画像BDtの算出に用いる撮影画像(過去フレーム画像)を背景画像BGとして記憶する。背景画像記憶部32は、カメラ10から受信して過去画像記憶部31に記憶された撮影画像を読み出して記憶する。背景画像記憶部32は、所定の時間間隔(例えば1時間間隔)で背景画像を更新する。なお、背景画像としては、移動物体を含まず、静止物体のみが含まれる撮影画像を採用することが望ましい。
【0043】
物体候補領域抽出部21は、背景差分演算部211とフレーム間差分演算部212とを備えている。背景差分演算部211は、カメラ10から受信した現フレーム画像Itと、背景画像記憶部32に記憶されている背景画像BGとを用いて背景差分画像BDtを生成する。
【0044】
図2は、背景差分画像BDtを生成する処理を示す図である。背景差分演算部211は、カメラ10からの現フレーム画像Itを取得し、背景画像記憶部32から背景画像BGを読み出し、
図2に示すように、現フレーム画像Itから背景画像BGの情報を除外することによって背景差分画像BDtを算出する。
【0045】
背景画像BGには現フレーム画像It中の静止物体に関する情報が含まれるので、背景差分画像BDtは、現フレーム画像Itに含まれる静止物体に関する情報が除外され、現フレーム画像Itから移動物体を抽出した画像となる。
図2の例では、背景差分画像BDtは、現フレーム画像Itから、道路上にて一時停止している1台の自動車M1と道路上を走行する2台の自動車M2、M3とを抽出した画像となっている。
【0046】
フレーム間差分演算部212は、カメラ10から受信した現フレーム画像Itと、過去画像記憶部31に記憶されている過去フレーム画像It−1、It−2とを用いて、フレーム間差分画像FDtを算出する。
【0047】
図3は、フレーム間差分画像FDtを生成する処理を示す図である。フレーム間差分演算部212は、カメラ10から現フレーム画像Itを取得し、過去画像記憶部31から過去フレーム画像It−1、It−2を読み出す。過去フレーム画像It−1、It−2は、現時点tより1フレーム前及び2フレーム前の撮影画像である。フレーム間差分演算部212は、現フレーム画像Itと、過去フレーム画像It−1と、過去フレーム画像It−2からフレーム間差分画像FDtを算出する。
【0048】
フレーム間差分演算部212は、
図3に示すように、まず、現フレーム画像Itと過去フレーム画像It−1との差分画像D1と、過去フレーム画像It−1と過去フレーム画像It−2との差分画像D2とを算出する。フレーム間差分演算部212は、次に、差分画像D1と差分画像D2との共通部分(AND)をフレーム間差分画像FDtとして算出する。このように、フレーム間差分画像FDtは、時系列の3フレームの画像から差分情報を抽出したものであり、フレーム間の変化量を安定的に抽出できる。
【0049】
フレーム間差分画像FDtは、現フレーム画像Itから短期的な特徴(例えばフレーム間で瞬間的に動いている物体)を抽出した画像である点で、現フレーム画像Itの長期的な特徴を反映させている上記の背景差分画像BDtとは異なるものである。例えば、
図3のフレーム間差分画像FDtを
図2の背景差分画像BDtと比較すると、現フレーム画像Itにて一時停止している自動車M1は、背景差分画像BDtでは抽出されて視認できるが、フレーム間差分画像FDtでは抽出されず視認できない。背景差分画像BDt及びフレーム間差分画像FDtのいずれにおいても、過去フレーム画像にはなく現フレーム画像に存在する物体が抽出されているので、この物体候補領域抽出部21で抽出される物体を以下では「移動物体」ともいう。
【0050】
フレーム間差分演算部212は、さらに、現フレーム画像Itを過去フレーム画像It−1とし、現在の過去フレーム画像It−1を過去フレーム画像It−2として、過去画像記憶部31に記憶し直すことで過去画像記憶部31を更新する。
【0051】
なお、フレーム間差分演算部212がフレーム間差分画像FDtの算出に用いる過去フレーム画像は、本実施の形態の直近の2フレーム分(過去フレーム画像It−1、It−2)に限らず、直近の3フレーム以上でもよいし、または、相互に所定のフレーム分を開けた複数の過去フレーム画像を用いることもできる。
【0052】
物体候補領域抽出部21は、背景差分画像BDtから抽出された移動物体(
図2の例では、自動車M1〜M3)と、フレーム間差分画像FDtから抽出された移動物体(
図3の例では、自動車M2、M3)を囲う枠を生成し、その枠を物体候補領域として、物体検出部22及び移動情報算出部23に出力する。この枠は、抽出された移動物体をすべて包含する矩形の枠である。枠のサイズ(縦横幅)は、抽出された移動物体の大きさによって適宜決定される。物体候補領域抽出部21は、物体候補領域の情報として、枠の基準点(例えば左上角)の撮影画像内における位置(座標)と、枠体の縦横幅を出力する。
【0053】
物体検出部22は、現フレーム画像Itと、物体候補領域の情報とに基づいて、特定の検出対象物体(本実施の形態では、人物)を検出して、当該物体の状況に関する情報(状況情報)を付与して出力する。物体検出部22は、ELM(Extreme Learning Machine)221と、出力判定部222とを備える。
【0054】
図4は、物体検出部22における処理を説明する図である。物体検出部22は、現フレーム画像It内に、物体候補領域CAを含み、かつ物体候補領域CAよりも広い矩形の検出対象領域DAを設定する。物体検出部22は、さらに、検出対象領域DA内で、検出対象領域DAより小さい矩形の切出領域CLA(m×nピクセル)をスライドさせながら、切出領域CLA内の切出画像CIaについて、ELM221において人物検出及び状況の推定を行う。
【0055】
ELM221は、切出画像CIの各画素を入力層2211に入力し、中間層2212を経て、出力層2213から人物の有無と状況の情報を出力する。このELM221における層間の重みは、人物辞書として人物辞書記憶部34に記憶されている。ELM221の出力、すなわち人物の有無と状況情報は、確率(0〜1.0)で表される。本実施の形態のELM221は、人物の状況情報として、人物の向き(前向き、後ろ向き、右向き、又は左向き)の各確率を出力する。なお、上記の処理により、1つの物体候補領域CAについて、複数の切出画像CIaが得られ、ELM221の出力は各切出画像CIaについて得られる。
【0056】
出力判定部222は、ELM221から出力される各確率に基づいて、人物の有無と状況を判定して出力する。
図5は、出力判定部222の処理を示す図である。出力判定部222は、まず、人物有無確率値が0.5以上であるか否かを判断する(ステップS51)。人物有無確率値が0.5未満であれば(ステップS51でNO)、移動物体は人物ではないと判断する(ステップS52)。
【0057】
出力判定部222は、人物有無確率値が0.5以上であれば(ステップS51でYES)、移動物体は人物であると判断して(ステップS53)、さらに、前向き確率、後向き確率、右向き確率、及び左向き確率のうちの最大の確率値をもつ方向を選択する(ステップS54)。そして、その選択された方向の確率値が0.5以上であるか否かを判断する(ステップS55)。
【0058】
出力判定部222は、選択された方向の確率値が0.5以上であれば(ステップS55でYES)、その方向を検出された人物の方向として決定する(ステップS56)。出力判定部222は、選択された方向の確率値が0.5未満であれば(ステップS55でNO)、これはどの方向も確率値が0.5未満ということになるので、人物はいるが向きは不明であると判断する(ステップS57)。
【0059】
上述のように、1つの物体候補領域CAについて複数のELM出力が得られるが、出力判定部222は、すべてのELM出力について上記の処理を行い、いずれかの切出画像CIaについて人物有とされれば、その物体候補領域CAに人物がいると判定し、決定された向きのうち、最も確率が高い向きをその人物の向きと推定して、人物の検出結果(人物の有無を示す)、及び人物の向きの推定結果(前後左右のいずれかで人物の向きを示す)を出力する。
【0060】
以上の処理により、撮影画像から人物を検出して、その向きを推定することで、人物の検出結果及び無機の推定結果が得られる。物体状況推定装置20は、カメラ10から撮影画像を取得するごとに上記の処理を行うことで、カメラ10で得られた撮影画像に対してリアルタイムに人物の検出及びその向きの推定を行うことができる。
【0061】
以下では、上記の人物の検出及びその状況(向き)の推定の精度を向上させるべく人物辞書を学習によって更新するための構成について説明する。この構成では、カメラ10の撮影データから人物辞書を更新するための学習データを生成する。この学習データは、画像データに、人物であるか否か、人物である場合にはその向き(前向き、後向き、左向き、右向き)の情報が付加されて構成されたデータである。
【0062】
図1に示すように、移動情報算出部23は、動きベクトル算出部231を備えている。
図6は、動きベクトル算出部231の処理を示す図である。動きベクトル算出部231は、現フレーム画像Itの物体候補領域CAtを切り出した切出画像CIbtを物体領域抽出部21から取得し、また、過去画像記憶部31から過去フレーム画像It−1を読み出す。この切出画像CIbは、移動物体(人物とは限らない)の画像である。動きベクトル算出部231は、切出画像CIbtを過去フレーム画像It−1内でスライドさせながらパターン照合による領域照合を行う(ステップS61)。
【0063】
また、動きベクトル算出部231は、領域照合の結果、切出画像CIbtに対応する領域であると判定された過去フレーム画像It−1内の領域の位置から現フレーム画像Itにおける物体検出領域CAtの位置(切出画像CIbtの位置)に向かう動きベクトル(オプティカルフロー)Vを算出する(ステップS62)。この動きベクトルVは、現フレーム画像Itにおける物体検出領域CAtの過去フレーム画像It−1からの移動量と移動方位をベクトルの長さ及び方向で表したものである。
【0064】
動きベクトル算出部231は、物体候補領域抽出部21にて現フレーム画像Itから抽出されたすべての物体候補領域について上記の処理を行うことで、物体候補領域ごとに動きベクトルを算出する。移動情報算出部23は、切出画像CIbtに関連付けて、その動きベクトルVを学習データ生成部24に出力する。
【0065】
学習データ算出部24は、人物有無判定部241と、人物向き判定部242と、人物類似判定部243とを備えている。学習データ算出部24は、物体検出部22から判定結果を取得し、移動情報算出部23から切出画像CIbとその動きベクトルVを取得する。
【0066】
人物有無判定部241は、切出画像CIbを正例データとすべきか、負例データとすべきかを判定する。
図7は、人物有無判定部241における人物有無判定処理のフロー図である。人物有無判定部241は、当該切出画像CIbの移動物体について物体検出部22が人物有と判定しているか否かを判断する(ステップS71)。
【0067】
人物でないと判定されている場合は(ステップS71でNO)、人物有無判定部241は、動きベクトルVの移動量が、人物が走る速度として設定された所定の閾値(例えば、10km/h)より大きいか否かを判断する(ステップS72)。移動量が人物の走る速度より速い場合は(ステップS72でYES)、移動物体は人物以外のなんらかの物体があることが明らかであるので、人物有無判定部241は、この切出画像CIbを負例データとして追加する(ステップS73)。この負例データは、人物ではない移動物体(例えば、走行している車両等)が映った画像である。
【0068】
移動量が人物の走る速度以下である場合は(ステップS72でNO)、移動量がほぼ0(0の誤差範囲内)であるか否かを判断する(ステップS74)。具体的には、例えば、移動量が0.1km/h以下であるか否かを判断する。移動量が0の誤差範囲内にない場合には、人物有無判定部241は、これを正体不明な移動物体として、データ追加はしない(ステップS76)。また、移動量が0の誤差範囲内にある場合であって(ステップS74でNO)、滞在時間が所定の閾値T[秒]を超えている場合には(ステップS75でYES)、人物有無判定部241は、この物体が移動してきた後に停止している人物以外の物体であると判断して、この切出画像CIbを負例データとして追加学習データ記憶部33に追加する(ステップS73)。
【0069】
一方、移動量が0の誤差範囲内にあるが(ステップS74でYES)、滞在時間が閾値T[秒]以下である場合には(ステップS75でNO)、これを人物ではないが人物の歩行速度と同程度の速度で移動する正体不明な移動物体、あるいは何らかのノイズであると判断して、データ追加はしない(ステップS76)。
【0070】
一方、物体検出部22における判定結果において人物有と判定されている場合には(ステップS71でYES)、人物有無判定部241は、動きベクトルVの移動量が、人物が走る速度として設定された所定の閾値(例えば、10km/h)より大きいか否かを判断する(ステップS77)。移動量が人物の走る速度より速い場合は(ステップS77でYES)、人物有無判定部241は、この人物が、例えば、二輪車に乗っている人物等、歩行者ではないと判断して、この切出画像CIbを負例データとして追加学習データ記憶部33に追加する(ステップS78)。
【0071】
移動量が人物の走る速度以下であり(ステップS77でYES)、かつ、移動量が0の誤差範囲外である場合は(ステップS79でNO)、この人物であると判定された移動物体は、人物の歩行速度程度の速度で移動しているので、人物有無判定部241は、この切出画像CIbを正例データ候補とする(ステップS80)。正例データは、歩行する人物(歩行者)の画像である。
【0072】
一方、移動量が人物の走る速度以下であり(ステップS77でNO)、かつ、移動量が0の誤差範囲内である場合は(ステップS79でYES)、その滞在時間が所定の閾値T[秒]より長いかを判断する(ステップS81)。滞在時間が閾値Tより長い場合には(ステップS81でYES)、人物有無判定部241は、人物以外のなんらかの固定物であると判断して、この切出画像CIbを負例データとして追加学習データ記憶部33に追加する(ステップS78)。
【0073】
移動量が0の誤差範囲外である(人物が歩く程度の速度で移動している)が(ステップS79でYES)、滞在時間が閾値T以下である場合(ステップS81でNO)、人物有無判定部241は、これを正体不明な移動物体として、データ追加はしない(ステップS82)。
【0074】
図8は、人物向き判定部242における人物向き判定処理のフロー図である。人物向き判定部242は、人物有無判定処理において正例データ候補とされた切出画像CIbにおける人物の向きを判定する。人物向き判定部242は、まず、正例データ候補について、その動きベクトルの方向(動き方向)を前、後、右、左の4クラスのいずれかにクラス分けしてその向きを表すラベルを付与する(ステップS91)。
【0075】
次に、人物向き判定部242は、物体検出部22で検出された向き(状況情報が示す人物の向き)と、動きベクトル算出部231で算出された動きベクトルの向きとを比較して、それらが一致するか否かを判断する(ステップS92)。一致する場合は、人物向き判定部242は、その一致する向きを人物の向きとして、その切出画像CIbを正例データ候補とする(ステップS93)。
【0076】
物体検出部22で推定された向き(状況情報が示す人物の向き)と、動きベクトル算出部231で算出された動きベクトルの向きとが一致しない場合には(ステップS92でNO)、物体検出部22で推定された向きを動きベクトルの向きに変更した上で(ステップS94)、その切出画像CIbを正例データ候補とする(ステップS93)。なお、変形例として、物体検出部22で推定された向きと動きベクトルの向きとが一致しない場合には、その切出画像CIbを正例データ候補から除外して、その切出画像CIbからは学習データを生成しないようにしてもよい。
【0077】
人物向き判定部242で正例データ候補とされた複数の切出画像CIbにおける同じ人物の切出画像CIbを1つにまとめることでオーバフィッティングの問題を回避することができる。そこで、人物類似判定部243は、正例データ候補とされた複数の切出画像CIbの互いの類似度を判定し、同じ人物の切出画像CIbを重複して追加学習データ記憶部22に記憶させないようにする。
【0078】
図9は、人物類似判定部243における人物類似判定処理のフロー図である。人物類似度判定部243は、ある正例データ候補の切出画像CIb1と、他の正例データ候補の切出画像CIb2とについて、正規化相互相関マッチング(NCC)によって、互いの類似度を求めて、類似度が高い場合には、それらのいずれかの切出画像ICbを削除する。
【0079】
具体的には、
図9に示すように、人物類似判定部243は、まず、正例データ候補CIb1と正例データ候補CIb2について、NCCにより類似度を計算し(ステップS101)、計算された類似度が所定御閾値(本実施の形態では、0.5以上)であるか否かを判断する(ステップS102)。
【0080】
類似度が閾値より高い場合には(ステップS102でYES)、人物類似判定部243は、人物有無の確率が低い方の正例データ候補を削除する(ステップS103)。類似度が閾値より低い場合には(ステップS102でNO)、人物類似判定部243は、両正例データ候補を残す(ステップS104)。
【0081】
人物類似判定部243は、以上の処理をすべての正例データ候補について行い、残った正例データ候補の切出画像を歩行している人物のデータとして、その向きの情報とともに、正例データとして追加学習データ記憶部33に出力する。追加学習データ記憶部33は、学習データ生成部24から出力された切出画像をその人物の向きの情報とともに記憶する。また、追加学習データ記憶部33は、学習データ生成部24から出力された負例データも記憶する。
【0082】
追加学習部25は、人物辞書生成部251を備えている。追加学習部25は、追加学習データ記憶部33にある程度の学習データ(正例データ及び負例データ)が蓄積されると、それらの学習データを追加学習データ記憶部33から読み出す。追加学習部25が追加学習を行うタイミングは、生成された学習データの数によって決定されてよく(例えば1000の学習データが追加されるごとに追加学習を行ってよく)、あるいは、追加学習部25は、所定の時間間隔で定期的に(例えば、1週間ごとに)追加学習を行ってもよい。人物辞書作成部251は、追加学習データ記憶部33から読み出された追加学習データを用いて追加学習を実行し、更新された人物辞書を生成する。本実施の形態では、追加学習部25は、追加学習データを用いた学習として機械学習を行う。追加学習部25は、人物辞書作成部251にて更新された人物辞書を生成すると、それを用いて人物辞書記憶部34に記憶される人物辞書を更新する。
【0083】
以上のように、本実施の形態の物体状況推定装置20は、カメラ10から得られた撮影画像に基づいて人物の有無を検出して状況(向き)を推定する機能を有するとともに、同じカメラ10の撮影画像に基づいて、人物の検出及び状況の推定に用いる人物辞書を更新する機能を備えている。人物辞書を更新するのに用いる撮影画像は、物体検出の対象となる撮影画像と同じ条件(位置、角度)のカメラ10で撮影されたものであるので、追加の学習データは、そのカメラ10の撮影画像に対して検索対象物体の検出や状況推定を行うのに適した学習データとなる。よって、学習を繰り返すことにより、検索対象物体の検出及び状況(向き)の推定の精度が向上することになる。
【0084】
このような物体状況推定システム1は、カメラ10が所望の位置に設置され他後に追加の学習を行う。よって、カメラ10を設置した直後に正式な運用、すなわち、検索対象物体の検出及び状況(向き)の推定の結果に基づく各種の制御を開始してもよいが、カメラ10を設置して一定程度の回数の追加学習が行われるまでの一定の期間は、人物辞書を更新するための準備期間とし、その準備期間が終了してから正式な運用を開始してもよい。いずれにしても、運用していくことで、人物辞書が更新されて、検索対象物体の検出及び状況の推定の精度が向上する。
【0085】
以上のように、本実施の形態の物体状況推定システム1によれば、物体検出部22で特定の検出対象物体を検出できず、あるいはその状況を推定できない撮影画像であっても、その中から特定の検出対象物体であると思われる物体について、その移動情報からその状況を推定して、学習データを生成できる。よって、この学習データを用いて追加の学習を行うことで、ひいては特定の検出対象物体の検出あるいはその状況の推定ができなかった撮影画像からも、特定の検出対象物体を検出してその状況を推定できるようになることが期待できる。
【0086】
なお、上記の物体状況推定装置20において、学習データを生成する機能は、リアルタイムに行う必要はなく、一定のフレーム数の撮影画像を記憶しておき、それらの撮影画像を用いて、それらの撮影画像が得られた時点よりも後の時点において実行されてもよい。
【0087】
また、上記の物体状況推定装置20では、移動物体である人物を特定の検出対象物体として検出するために、物体検知部22における機械学習による検出及び推定の前に差分画像を用いて物体候補領域を抽出したが、特定の検出対象物体が移動物体に限られない場合には、物体候補領域抽出部21を省略して、撮影画像の全体から特定の検出対象物体を検出してよい。この場合には、動きベクトル算出部231は、物体検出部22における検出対象物体の検出結果及び状況の推定結果を利用することになる。
【0088】
また、上記の物体状況推定システム1は、検出対象物体の状況として、検出対象物体の向きを推定し、学習データ生成部24では、動きベクトルの向きに基づいて、学習データにおける向きを決定したが、検出対象物体の状況は、その向きに限られない。例えば、検出対象物体の状況は、検出対象物体である人物が走っているか、歩いているか、止まっているかという移動状況であってよく、その場合には、動きベクトル算出部231で算出された動きベクトルの大きさ(速度)によって、学習データにて付加される状況(走っている、歩いている、止まっている)を決定できる。