以下に添付図面を参照して、密度計測装置、密度計測方法、およびプログラムの一の実施形態を詳細に説明する。
(第1の実施の形態)
図1は、本実施の形態の密度計測装置10の機能的構成を示すブロック図である。密度計測装置10は、制御部12と、記憶部13と、UI部21と、を備える。記憶部13およびUI部21は、制御部12に電気的に接続されている。
UI部21は、表示部21Aと、入力部21Bと、を含む。表示部21Aは、種々の画像を表示する。表示部21Aは、例えばCRTディスプレイ、液晶ディスプレイ、有機ELディスプレイ、プラズマディスプレイなどである。入力部21Bは、ユーザからの各種指示や情報入力を受け付ける。入力部21Bは、例えば、キーボード、マウス、スイッチ、マイクなどである。
なお、UI部21は、表示部21Aと入力部21Bとを一体的に構成したタッチパネル機能を備えていてもよい。
記憶部13は、各種データを記憶する。本実施の形態では、記憶部13は、密度計測装置10の密度計測対象の画像を記憶する。記憶部13は、例えば、HDD(Hard Disk Drive)、SSD(Solid State Drive)、ROM(Read Only Memory)、メモリカードなどの、磁気的、光学的、および電気的に記憶可能な記憶装置の少なくともいずれかにより実現できる。
密度計測装置10の密度計測対象の画像は、複数種類の物体を含む。種類とは、物体を、予め定めた規則に従って分類したときの、各分類を示す。各種類の物体は、各分類(すなわち各種類)に属する物体である。
予め定めた規則とは、物体を撮影した撮影画像を解析することで、各物体を他の物体と区別するときに用いる1または複数の特徴である。例えば、予め定めた規則は、色、形状、動きなどである。このため、例えば、複数種類の物体は、各種類間で、色および形状の少なくとも一方が異なる。
本実施の形態では、一例として、物体は、人および車である場合を説明する。すなわち、本実施の形態では、一例として、密度計測対象の画像に含まれる物体の種類は、人と車である場合を説明する。しかし、物体および物体の種類は、人と車に限定されない。
制御部12は、CPU(Central Processing Unit)、ROM(Read Only Memory)、およびRAM(Random Access Memory)などを含んで構成されるコンピュータである。なお、制御部12は、CPU以外の回路等であってもよい。
制御部12は、密度計測装置10全体を制御する。制御部12は、取得部14と、第1算出部15と、第2算出部16と、第1生成部17と、第3算出部18と、第2生成部19と、表示制御部20と、を含む。
取得部14、第1算出部15、第2算出部16、第1生成部17、第3算出部18、第2生成部19、および表示制御部20との一部または全ては、例えば、CPUなどの処理装置にプログラムを実行させること、すなわち、ソフトウェアにより実現してもよいし、IC(Integrated Circuit)などのハードウェアにより実現してもよいし、ソフトウェアおよびハードウェアを併用して実現してもよい。
なお、制御部12は、少なくとも第1算出部15と、第2算出部16と、第1生成部17と、を備えた構成であればよく、取得部14、第3算出部18、第2生成部19、および表示制御部20の少なくとも1つを備えない構成であってもよい。
取得部14は、密度計測装置10で密度計測対象の画像を取得する。本実施の形態では、取得部14は、記憶部13から画像を取得する。なお、取得部14は、図示を省略する外部装置や、図示を省略する公知の撮影装置などから、画像を取得してもよい。
図2は、密度計測装置10の密度計測対象の画像30の一例を示す図である。上述したように、本実施の形態では、画像30は、複数種類の物体として、車30Aと人30Bとを含む場合を説明する(図2(A)参照)。
第1算出部15は、取得部14が取得した画像から、画像を複数の領域に分割した領域ごとに、各領域に含まれる物体の種類ごとの密度を算出する。
図2(B)は、画像30を複数の領域Pに分割した状態を示す模式図である。第1算出部15は、画像30を複数の領域Pに分割する。画像30の分割数や領域Pの大きさは、任意の値を設定可能である。例えば、領域Pは、複数の画素を含む画素領域であってもよいし、1つの画素を含む画素領域であってもよい。なお、領域Pの広さが1画素に相当する広さに近づくほど、密度計測装置10はより高精度に密度を算出することができる。このため、領域Pは、1画素に相当する領域であることが好ましい。但し、上述したように、領域Pは、複数の画素を含む領域であってもよい。
第1算出部15は、画像30における領域Pごとに、各領域Pに含まれる物体の種類ごとの密度を計算する。本実施の形態では、画像30には、複数種類の物体として、車30Aおよび人30Bが含まれている。このため、本実施の形態では、第1算出部15は、領域Pごとに、含まれる車30Aの密度と、含まれる人30Bの密度と、の各々を算出する。
第1算出部15による、各領域Pに含まれる物体の種類ごとの密度の算出には、公知の方法を用いればよい。ただし、第1算出部15による、各領域Pに含まれる物体の種類ごとの密度の算出には、第2の実施の形態で説明する算出方法を用いることが、密度算出精度を高くする観点から好ましい(詳細後述)。
図3は、画像30に対する処理を示す模式図である。例えば、第1算出部15が、図3(A)に示す画像30(図2と同様)について、各領域Pに含まれる物体の種類ごとに密度を計算したとする。
すると、第1算出部15は、領域Pごとに、領域Pに含まれる車30Aの密度と、領域Pに含まれる人30Bの密度と、を算出する。
図3(B)は、画像30の領域Pごとに算出された、車30Aの密度32Aを模式的に示す図である。図3(B)に示す例では、各領域Pに含まれる車30Aの密度32Aが、密度32A1〜密度32A4に向かって高いことを示す。図3(B)に示すように、第1算出部15は、領域Pごとに各領域Pに含まれる車30Aの密度32A(32A1〜32A4)を算出する。なお、第1算出部15が算出する密度の値は、4段階の値に限定されない。
図3(C)は、画像30の領域Pごとに算出された、人30Bの密度34Bを模式的に示す図である。図3(C)に示す例では、各領域Pに含まれる人30Bの密度34Bが、密度34B1〜密度34B4に向かって高いことを示す。図3(C)に示すように、第1算出部15は、領域Pごとに各領域Pに含まれる人30Bの密度34B(34B1〜34B4)を算出する。
図1に戻り、第2算出部16は、第1算出部15で算出された、領域Pの各々の物体の種類ごとの密度から、領域Pの各々における物体の種類の尤度を算出する。本実施の形態において、尤度とは、物体の種類の確からしさを示す。本実施の形態では、第2算出部16は、各領域Pについて、各領域Pにおける物体の種類の確からしさを示す尤度を、対応する物体の種類の算出された密度から算出する。
詳細には、第2算出部16は、算出された領域Pの各々の物体の種類ごとの密度に、面積比、および類似度の少なくとも一方を乗算した乗算値を、領域Pの各々における物体の種類の尤度として算出する。
例えば、画像30に含まれる物体の種類が、車30Aと人30Bであるとする。この場合、第2算出部16は、画像30に含まれる領域Pの各々について、車30Aの確からしさを示す尤度と、人30Bの確からしさを示す尤度と、を算出する。
面積比は、画像30に含まれる複数の種類の物体の各々の、基準物体に対する面積の比を示す。基準物体は、予め定めた大きさの物体であってもよいし、画像30に含まれる複数種類の物体の内、最も面積の小さい種類の物体としてもよい。
図4は、尤度算出の説明図である。例えば、人30Bと車30Aとの一般的な面積比の関係が、面積S:面積KSの関係であったとする。そして、基準物体を人30Bとしたとする。
ここで、本実施の形態における「面積」は、各種類の物体の、二次元画像における平均面積を示す。このため、人30Bの面積(平均面積)は、例えば、標準体型の人30Bの全身を人30Bの正面から撮影した撮影画像における、人30Bの領域の面積を示す。また、人30Bの面積は、様々な体型の人30Bの領域の面積を平均した値であってもよい。また、車30Aの面積(平均面積)は、例えば、標準の大きさの車30Aを側面から撮影した撮影画像(人30Bの撮影画像と同じ撮影倍率とする)における、車30Aの領域の面積を示す。
面積を用いて尤度を算出する場合、第2算出部16は、下記式(1)および式(2)を用いて、各領域Pの各々における、人30Bの尤度と、車30Aの尤度と、を算出する。
LB(P)=DB(P)×S/S ・・・式(1)
LA(P)=DA(P)×KS/S ・・・式(2)
式(1)中、LB(P)は、領域Pの人30Bの尤度を示し、DB(P)は、領域Pの人30Bの密度を示す。式(2)中、LA(P)は、領域Pの車30Aの尤度を示し、DA(P)は、領域Pの車30Aの密度を示す。また、式(1)および式(2)中、Sは、人30Bの一般的な面積を示し(ここでは基準面積として扱っている)、KSは、車30Aの一般的な面積を示す。このためS/Sは、基準物体の面積(ここでは、一例として人30Bの平均面積)に対する、人30Bの面積比を示す。また、KS/Sは、基準物体の面積(ここでは、人30Bの面積)に対する、車30Aの面積比を示す。
なお、第2算出部16は、人30Bと車30Aとの一般的な面積比を示す値(面積S:面積KS)を、第2算出部16に予め記憶すればよい。そして、尤度の算出時に、これらの面積比を用いればよい。
なお、第2算出部16は、画像30に含まれる可能性のある複数種類の物体の各々について、各種類の物体の平均面積を予め記憶部13に記憶する。そして、第2算出部16は、画像30に含まれる種類に対応する平均面積を記憶部13から読取り、尤度の算出に用いればよい。
また、上記「類似度」は、各種類の物体の、各種類の物体の標準物の特徴(基準特徴とする)に対する特徴の類似度を示す。特徴が似ているほど、類似度は大きい値(高い値)を示す。特徴は、例えば、その種類の物体の特徴的な要素を値としてあらわしたものである。特徴は、例えば、色や形状を示す。特徴として用いる色には、例えば、色ヒストグラムを用いてもよい。
例えば、記憶部13は、各種類の物体ごとに、各種類の物体の特徴を示す値を予め記憶する。例えば、ある物体の特徴が色にある場合、記憶部13は、該物体の種類の特徴的な色を、該物体の基準特徴の色として予め記憶する。また、例えば、ある物体の特徴が形状にある場合、記憶部13は、該物体の種類の特徴的な形状を、該物体の基準特徴の形状として予め記憶する。これらの基準特徴は、例えば、第2算出部16で予め算出し、記憶部13に記憶すればよい。また、これらの基準特徴は、ユーザによる入力部21Bの操作により、適宜変更可能としてもよい。
類似度を用いて尤度を算出する場合、第2算出部16は、下記式(3)および式(4)を用いて、各領域Pの各々における、人30Bの尤度と、車30Aの尤度と、を算出する。
LB(P)=DB(P)×CB ・・・式(3)
LA(P)=DA(P)×CA ・・・式(4)
式(3)中、LB(P)は、領域Pの人30Bの尤度を示し、DB(P)は、領域Pの人30Bの密度を示す。また、式(3)中、CBは、人30Bの基準特徴に対する、算出対象の領域Pに含まれる人30Bの特徴の類似度を示す。
式(4)中、LA(P)は、領域Pの車30Aの尤度を示し、DA(P)は、領域Pの車30Aの密度を示す。また、式(4)中、CAは、車30Aの基準特徴に対する、算出対象の領域Pに含まれる車30Aの特徴の類似度を示す。
第2算出部16は、公知の方法を用いて、基準特徴に対する特徴の類似度を算出すればよい。なお、第2算出部16は、基準特徴(例えば、車30Aの基準特徴)と、尤度算出対象の領域Pにおける物体(例えば、車30A)の特徴と、が一致する場合に最も高い値となり、これらが全く異なる場合に最も低い値となるように、類似度を算出すればよい。
また、第2算出部16が、面積および類似度の双方を用いて尤度を算出する場合には、領域Pの各種類の物体の密度に、面積比と類似度とを乗算した乗算結果を、尤度として算出すればよい。また、類似度の種類が複数である場合には(例えば、色と形状)、領域Pの各種類の物体の密度に、面積比と、複数種類の類似度の各々と、を乗算した乗算結果を、尤度として算出すればよい。
上記処理により、第2算出部16は、画像30における領域Pの各々について、各物体の種類(車30A、人30B)ごとの尤度を算出する。本実施の形態では、第2算出部16は、領域Pの各々について、車30Aの尤度と、人30Bの尤度と、を算出する。
図1に戻り、第1生成部17は、密度データを生成する。密度データは、画像30における領域Pの各々に対応する位置に、対応する領域Pの物体の種類ごとに算出された尤度の内、最も低い尤度より少なくとも高い尤度の物体の種類の密度を割当てたものである。
例えば、第2算出部16が、領域Pの各々について、車30Aの尤度と、人30Bの尤度と、を算出したとする。この場合、第1生成部17は、領域Pごとに算出された人30Bの尤度と人30Bの尤度の内、最も低い尤度より高い尤度(ここでは、物体の種類が2種類であるので、高い方の尤度)を、各領域Pの尤度として用いる。
例えば、ある領域Pについては、車30Aの尤度が人30Bの尤度より高かったとする。この場合、第2算出部16は、この領域Pについては、より高い尤度である車30Aの尤度を、この領域Pの尤度として用いる。そして、第2算出部16は、画像30における、この領域Pに対応する位置に、この領域Pに用いる尤度の物体の種類である車30Aの密度を割当てる。なお、割当てる密度は、第1算出部15が該領域Pについて算出した、車30Aの密度(該領域Pにおいて尤度の高い方の物体の種類に対応する密度)である。
逆に、ある領域Pについては、車30Aの尤度が人30Bの尤度より低かったとする。この場合、第2算出部16は、この領域Pについては、より高い尤度である人30Bの尤度を、この領域Pの尤度として用いる。そして、第2算出部16は、画像30における、この領域Pに対応する位置に、この領域Pに用いる尤度の物体の種類である人30Bの密度を割当てる。なお、割当てる密度は、第1算出部15が該領域Pについて算出した、人30Bの密度(該領域Pにおいて尤度の高い方に対応する密度)である。
なお、上述したように、第1生成部17は、画像30における領域Pの各々に対応する位置に、対応する領域Pの物体の種類ごとに算出された尤度の内、最も低い尤度より少なくとも高い尤度の物体の種類の密度を割当てた、密度データを生成する。
このため、第1生成部17は、各領域Pについて、3種類以上の物体の種類ごとの尤度を算出した場合には、最も低い尤度の種類以外の他の種類の尤度の内の1つを、領域Pに用いる尤度とすればよい。
なお、第1生成部17は、画像30における領域Pの各々に対応する位置に、対応する領域Pの物体の種類ごとに算出された尤度の内、最も高い尤度の物体の種類の密度を割当てた、密度データを生成することが好ましい。第1生成部17が、領域Pごとに、最も高い尤度の物体の種類の密度を割当てることによって、密度計測装置10は、より高精度に種類ごとの物体の密度を算出することができる。
図5は、第1生成部17による密度データの生成の説明図である。例えば、第2算出部16が各領域Pの物体の種類ごとに算出した尤度が、図5(A)および図5(B)に示す線図38B、38Aの関係を示したとする。
詳細には、画像30における領域P1から領域P5については人30Bの尤度が高く、領域P6〜領域P10については、人30Bの尤度が低かったとする(図5(A)線図38B参照)。一方、画像30における領域P1から領域P5については車30Aの尤度が低く、領域P6〜領域P10については、車30Aの尤度が高かったとする(図5(B)線図38A参照)。
この場合、第1生成部17が各領域Pに尤度に応じた密度を割当てることによって、第1生成部17は図5(C)に示す密度データ38を算出する。すなわち、第1生成部17は、領域P1〜P5については、これらの領域Pにおいて尤度の高い物体の種類である人30Bの尤度に対応する密度34Bを割当てる。また、第1生成部17は、領域P6〜P10については、これらの領域Pにおいて尤度の高い物体の種類である車30Aの尤度に対応する密度32Aを割当てる。これによって、第1生成部17は、密度データ36を生成する。
密度データの生成の流れについて、図3を用いて更に説明する。
上述したように、第1算出部15が、図3(A)に示す画像30について、各領域Pに含まれる物体の種類ごとに密度を計算する。この計算により、第1算出部15は、領域Pごとに、車30Aの密度32A(図3(B)参照)と、人30Bの密度34B(図3(C)参照)と、を算出する。
ここで、第1算出部15が領域Pごとに算出した、各領域Pに含まれる物体の種類ごとの密度には、誤差が含まれる場合がある。例えば、図3(C)に示す領域Qは、実際には人30Bは存在せず車30Aのみが存在する領域であるにも拘らず、人30Bが存在することを示す密度34Bが算出される場合がある。これは、例えば、物体の種類の誤判定になどによるものである。
一方、本実施の形態の密度計測装置10は、第2算出部16と第1生成部17とを備える。上述したように、第1生成部17は、第2算出部16で各領域Pの物体の種類ごとに算出された尤度を用いて、密度データを生成する。
図3(D)は、密度データ36の一例を示す模式図である。密度データ36は、画像30における各領域Pに対応する位置に、各領域Pにおける最も低い尤度より高い尤度の物体の種類の密度を割当てたものである。このため、密度データ36は、物体の種類の誤判定による誤差を低減したデータとなる。
具体的には、図3(D)に示すように、図3(C)に示す、第1算出部15によって算出された人30Bの密度34Bには、人30Bが存在すると誤判定された領域Qが含まれていた。しかし、第1生成部17が、尤度に基づいて密度データを生成することによって、生成された密度データ36における領域Qには、車30Aの密度が割り当てられ、誤判定の抑制されたデータとなる。
図1に戻り、第3算出部18は、第1生成部17が生成した密度データに基づいて、画像30における種類ごとの密度を算出する。上述したように、第1生成部17が生成した密度データは、画像30の領域Pごとに、最も低い尤度より高い尤度の物体の種類の密度を割当てたものである。このため、第3算出部18は、画像30の各領域Pの各々に割当てられた密度を、物体の種類ごとに読取る。そして、第3算出部18は、密度データに含まれる全ての領域Pから読取った密度について、各物体の種類ごとの平均値を算出する。これにより、第3算出部18は、画像30における物体の種類ごとの密度を算出する。
例えば、密度データが、画像30の領域Pごとに、車30Aおよび人30Bの内の尤度の高い物体の種類(車30Aまたは人30B)の密度を割当てたデータであったとする。この場合、第3算出部18は、密度データにおける、全ての領域Pの各々に割当てられた密度および密度に対応する物体の種類(車30Aまたは人30B)を読取る。そして、第3算出部18は、読取った物体の種類(車30Aおよび人30B)ごとに、密度の合計値を平均した値を、物体の種類ごとの密度として算出すればよい。
第2生成部19は、第1生成部17が生成した密度データから、画像30における領域Pの各々に対応する位置を、領域Pに対応する位置の各々に割当てられた物体の種類に応じた色および割当てられた密度に応じた濃度で示した表示画像を生成する。
例えば、第2生成部19は、図3(D)に示す表示画像37を生成する。図3(D)に示すように、表示画像37は、各領域Pに対応する位置を、密度データ36によって各領域Pに対応する位置の各々に割当てられた物体の種類に応じた色および割当てられた密度に応じた濃度で示す。
詳細には、図3(D)に示す例では、表示画像37における、画像30の各領域Pに対応する位置の各々には、密度データ36に応じて、車30Aの密度32A(32A1〜32A4)が車30Aに応じた色および密度に応じた濃度で示されている。図3(D)に示す例では、密度32A(32A1〜32A4)が高い位置ほど、濃い色で示されている。同様に、画像30の領域Pに対応する位置の各々には、密度データ36に応じて、人30Bの密度34B(34B1〜34B4)が人30Bに応じた色および密度に応じた濃度で示されている。すなわち、密度34B(34B1〜34B4)が高い位置ほど、例えば、濃い色で示されている。
第2生成部19は、密度データから、各領域Pに対応する位置に割当てられた物体の種類と、割当てられた密度と、を読取り、割当てられた物体の種類に応じた色および割当てられた密度に応じた濃度を、対応する位置に示すことで、表示画像37を生成すればよい。
なお、物体の種類に応じた色は、予め記憶部13に記憶しておけばよい。そして、第2生成部19は、密度データに示される物体の種類に対応する色を記憶部13から読取ることで、表示画像37に示す物体の種類に対応する色を取得すればよい。また、密度に応じた濃度についても、記憶部13に予め記憶しておけばよい。そして、第2生成部19は、密度データに示される物体の密度に対応する濃度を読取り、表示画像37の生成に用いればよい。
図1に戻り、表示制御部20は、表示部21Aに各種画像を表示する制御を行う。本実施の形態では、表示制御部20は、第1生成部17が生成した密度データや、第2生成部19が生成した表示画像37を表示部21Aに表示する。
例えば、表示制御部20が表示画像37を表示部21Aに表示することによって、表示部21Aには、図3(D)に示す表示画像37が表示される。このため、本実施の形態では、密度計測装置10は、ユーザに対して、画像30に含まれる各物体の種類ごとの密度を、ユーザに対して解り易い形で提供することができる。
次に、密度計測装置10が実行する密度計測処理の手順を説明する。図6は、密度計測処理の手順を示すフローチャートである。
まず、取得部14が、密度計測対象の画像30を取得する(ステップS100)。次に、第1算出部15が、ステップS100で取得した画像30から、画像30を複数の領域Pに分割した領域Pごとに、各領域Pに含まれる物体の種類ごとの密度を算出する(ステップS102)。
次に、第2算出部16は、ステップS102で算出された、領域Pの各々の物体の種類ごとの密度から、領域Pの各々における物体の種類の尤度を算出する(ステップS104)。
次に、第1生成部17が、画像30における領域Pの各々に対応する位置に、対応する領域Pの物体の種類ごとに算出された尤度の内、最も低い尤度より少なくとも高い尤度の物体の種類の密度を割当てた、密度データを生成する(ステップS106)。
次に、第3算出部18が、ステップS106で第1生成部17が生成した密度データに基づいて、画像30における種類ごとの密度を算出する(ステップS108)。
次に、第2生成部19が、ステップS106で生成した密度データから、表示画像37を生成する(ステップS110)。
次に、表示制御部20が、ステップS110で生成した表示画像37を表示部21Aに表示する(ステップS112)。そして、本ルーチンを終了する。
なお、制御部12は、ステップS106で生成した密度データを、ステップS100で取得した画像30に対応づけて記憶部13に記憶してもよい。また、制御部12は、ステップS108で算出した、画像30における物体の種類ごとの密度や、ステップS110で生成した表示画像37を、ステップS100で取得した画像30に対応づけて更に記憶部13に記憶してもよい。
以上説明したように、本実施の形態の密度計測装置10は、第1算出部15と、第2算出部16と、第1生成部17と、を備える。第1算出部15は、予め定めた規則に従って分類された複数種類の物体を含む画像30から、画像30を複数の領域Pに分割した領域Pごとに、領域Pに含まれる物体の種類ごとの密度を算出する。第2算出部16は、算出された領域Pの各々の物体の種類ごとの密度から、領域Pの各々における物体の種類の尤度を算出する。第1生成部17は、画像30における領域Pの各々に対応する位置に、対応する領域Pの物体の種類ごとに算出された尤度の内、最も低い尤度より少なくとも高い尤度の物体の種類の密度を割当てた、密度データを生成する。
このように、本実施の形態の密度計測装置10では、画像30の領域Pごとに求めた物体の種類の尤度を用いて、密度データを生成する。このため、本実施の形態の密度計測装置10では、画像30に含まれる物体の種類の誤判定などに起因する、種類ごとの密度算出精度の低下を抑制することができる。
従って、本実施の形態の密度計測装置10では、画像30に含まれる物体の種類ごとの密度を、精度良く算出することができる。
なお、本実施の形態では、密度計測対象の画像の一例として、車30Aと人30Bとを含む画像30を用いる場合を説明した。しかし、上述したように、本実施の形態で用いる、複数種類の物体を含む画像は、車30Aと人30Bとを含む画像に限定されない。
図7は、密度計測対象の画像の他の例を示す模式図である。例えば、密度計測装置10は、図7に示す画像31を密度計測対象として用いてもよい。画像31は、複数種類の物体として、丸い形状の細胞31Bと、細長い形状の細胞31Aと、を含む画像である。
このように、本実施の形態の密度計測装置10は、予め定めた規則に従って分類された複数種類の物体を含む画像であれば、いかなる種類の物体を含む画像であっても、密度計測対象とすることができる。例えば、密度計測装置10は、複数種類の物体として、複数種類の細胞を含む画像についても、密度計測対象とすることができる。
また、本実施の形態では、第1算出部15の算出方法には、公知の方法を用いればよいことを説明した。
しかし、第1算出部15の算出においては、領域Pごとに領域Pに含まれる物体の種類ごとの密度を算出する算出処理を、画像30に含まれる物体の種類ごとに実行することが好ましい。そして、第1算出部15は、物体の種類ごとの算出処理前に、画像30における算出対象の物体の種類以外の種類の物体のサイズを縮小する縮小処理、および、該種類の物体の色を背景色に補正する補正処理、の少なくとも一方を含む前処理を実行することが好ましい。そして、前処理の後に、算出処理を実行することが好ましい。なお、前処理の具体例については、第2の実施の形態で説明する。
第1算出部15が、このような前処理を実行することによって、第1算出部15による物体の種類ごとの密度の算出精度が向上する。このため、第1算出部15が前処理を実行することによって、本実施の形態の密度計測装置10は、画像30に含まれる物体の種類ごとの密度を、更に精度良く算出することができる。
(第2の実施の形態)
本実施の形態では、密度計測装置10における第1算出部15の実行する密度算出処理について、一例を説明する。
図8は、密度計測装置10に設けられた第1算出部15の構成の一例を示すブロック図である。
第1算出部15は、前処理部40と、抽出部41と、第1計算部42と、演算部43と、第2予測部44と、密度計算部45と、を含む。
前処理部40、抽出部41、第1計算部42、演算部43、第2予測部44、および密度計算部45の一部またはすべては、例えば、CPUなどの処理装置にプログラムを実行させること、すなわち、ソフトウェアにより実現してもよいし、ICなどのハードウェアにより実現してもよいし、ソフトウェアおよびハードウェアを併用して実現してもよい。
ここで、第1算出部15は、算出処理を、物体の種類ごとに実行する。算出処理は、取得部14(図1参照)が取得した画像30から、領域Pに含まれる物体の種類ごとの密度を領域Pごとに算出する処理である。
例えば、第1算出部15は、画像30に車30Aと人30Bが含まれる場合、画像30に含まれる車30Aについて領域Pごとに密度を算出する算出処理を実行した後に、人30Bについて領域Pごとに密度を算出する算出処理を実行する。
そして、前処理部40は、これらの物体の種類ごとの密度の算出処理前に、縮小処理、および補正処理の少なくとも一方を含む前処理を実行する。縮小処理は、画像30における算出対象の物体の種類以外の種類の物体のサイズを縮小する処理である。補正処理は、画像30における算出対象の物体の種類以外の種類の物体の色を、背景色に補正する補正処理である。背景色に補正する、とは、算出対象の物体の種類とは異なる色に、画像30における算出対象の物体以外の領域を補正することを示す。
図9は、前処理の説明図である。第1算出部15が、図9(A)に示す画像30について、領域Pごとの物体の密度を算出すると仮定する。なお、図9(A)に示す画像30は、第1の実施の形態で説明した画像30と同様に、車30Aと人30Bとを含む画像であるものとする。
そして、前処理部40は、第1算出部15による領域Pごとの密度算出対象が車30Aである場合、画像30に含まれる、車30A以外の物体の種類である人30Bのサイズを縮小し(図9(B)の人領域33B参照)、補正画像33Aとする。
また、前処理部40は、第1算出部15による領域Pごとの密度算出対象が車30Aである場合、画像30に含まれる、車30A以外の物体の種類である人30Bの色を背景色に補正し(図9(C)の人領域35B参照)、補正画像33Bとする。
そして、第1算出部15は、画像30に含まれる車30Aについて、上記算出処理を実行する。
次に、前処理部40は、画像30に含まれる、人30B以外の物体の種類である車30Aのサイズを縮小し、補正画像とする。また、前処理部40は、画像30に含まれる、人30B以外の物体の種類である車30Aの色を背景色に補正し、補正画像とする。そして、第1算出部15は、画像30に含まれる人30Bについて、上記算出処理を実行する。
図8に戻り、抽出部41、第1計算部42、演算部43、第2予測部44、および密度計算部45は、画像30における各領域Pの車30Aの密度の算出時には、補正画像33Aまたは補正画像33Bを用いて、後述する各処理を実行する。なお、以下では、前処理部40によって補正された補正画像(例えば、補正画像33A、補正画像33B)を総称して説明する場合には、補正画像33と称して説明する(図9参照)。
抽出部41は、画像30から複数の部分画像を抽出する。
部分画像は、補正画像33の一部の画像であり、少なくとも1つの物体を含む画像である。補正画像33は、密度算出対象の種類の物体以外については、縮小または背景色と同じ色とした画像である。このため、部分画像は、補正画像33における、密度算出対象の種類の物体(例えば、車30Aおよび人30Bの何れか一方のみ)の少なくとも1つを含む。
本実施の形態では、部分画像は、補正画像33の一部を矩形状に抽出した画像である場合を説明する。なお、部分画像の形状は、矩形に限られず、任意の形であってよい。
図10は、補正画像33、部分画像50、ラベル51(詳細後述)の説明図である。
図10(A)は、補正画像33の一例を示す模式図である。なお、図10(A)に示す補正画像33は、画像30における密度算出対象の種類の物体が人30Bであり、車30Aが縮小または背景色と同じ色に補正された画像である場合を示したものである。図10(B)は、部分画像50の一例を示す図である。
抽出部41は、画像30上において、抽出する対象となる矩形状の領域を移動させて、複数の部分画像50を抽出する(図10(A)参照)。画像30から抽出される複数の部分画像50は、互いに同じ大きさで且つ同じ形状である。
補正画像33から抽出される複数の部分画像50は、少なくとも一部分が互いに重なっていてもよい。抽出部41が補正画像33から抽出する部分画像50の数は、2以上であればよいが、抽出する部分画像50の数は多いほど好ましい。具体的には、抽出部41は、1000以上の部分画像50を補正画像33から抽出することが好ましい。
抽出部41が補正画像33から抽出する部分画像50の数が多いほど、第1算出部15は、後述する処理において高精度に密度を計算可能な、回帰モデルを学習することができる。
図8に戻り、第1計算部42は、抽出部41で抽出された複数の部分画像50の各々の特徴量を計算する。特徴量は、部分画像50の特徴を示す値である。特徴量には、例えば、部分画像を構成する画素の画素値を離散化して一次元に並べたものや、これを、この一次元に並べた画素値における隣接画素値の差(すなわち勾配)で正規化したもの、を用いる。また、特徴量には、SIFT特徴(D.Lowe“,Object recognition from local scale−invariant features,”Int. Conf. Comp. Vision, Vol.2, pp.1150−1157, 1999参照)等を用いてもよい。SIFT特徴は、微小な変化に頑健なヒストグラム特徴である。
演算部43は、回帰モデルと、代表ラベルと、を演算する。図11は、演算部43の構成の一例を示すブロック図である。
演算部43は、探索部43Aと、投票部43Bと、学習部43Cと、第1予測部43Dと、を含む。探索部43A、投票部43B、学習部43C、および第1予測部43Dの一部またはすべては、例えば、CPUなどの処理装置にプログラムを実行させること、すなわち、ソフトウェアにより実現してもよいし、ICなどのハードウェアにより実現してもよいし、ソフトウェアおよびハードウェアを併用して実現してもよい。
探索部43Aは、複数の部分画像50の各々の特徴量にラベルを付与する。ラベルは、各部分画像50に含まれる物体と、各部分画像50における第1位置と、の相対位置を表す。具体的には、探索部43Aは、まず、抽出部41によって抽出された複数の部分画像50の各々に含まれる物体を探索する。そして、探索部43Aは、部分画像50の各々について、部分画像50における第1位置と、該部分画像50に含まれる全ての物体の各々と、の相対位置を表すベクトルを、ラベルとして生成する。そして、探索部43Aは、生成したラベルを、対応する部分画像50の特徴量に付与する。
第1位置は、部分画像内における予め定められた任意の位置であればよい。本実施の形態では、第1位置は、部分画像50における中心位置(部分画像50の中央)であるものとして説明する。
図10に戻り、図10(C)及び図10(D)は、ラベル51の説明図である。例えば、探索部43Aが、図10(B)に示す部分画像50の各々に含まれる物体を探索する。そして、探索部43Aは、部分画像50の中心位置Pと、該部分画像50に含まれる全ての物体(図10(B)および(C)に示す例では、3つの物体)の各々と、の相対位置を示すベクトルL1、L2、L3を生成する(図10(C)参照)。そして、探索部43Aは、これらのベクトルL1、L2、L3を1組とするベクトルLを、ラベル51として(図10(D)参照)、該部分画像50の特徴量に付与する。
図11に戻り、投票部43Bは、複数の部分画像50の各々について、各部分画像50に含まれる物体の相対位置の分布を表すヒストグラムを算出する。
図12は、ラベル51及びヒストグラム52の説明図である。図12に示すように、投票部43Bは、ラベル51から、ヒストグラム52を算出する。
ヒストグラム52は、部分画像50に一様に配置したビン(bin)の集合である。ヒストグラム52におけるビンの大きさは、部分画像50に含まれる物体の相対位置によって定まる。例えば、部分画像50における位置bのビンの大きさは、以下の式(5)で表される。
B(b)=ΣN(b;oj,σ) ・・・式(5)
式(5)中、B(b)は、部分画像50における、位置bのビンの大きさを示す。ojは、物体の位置を示す。式(5)中、N(b;oj,σ)は、位置bにおける(中心oj、分散σ)の正規分布の確率密度関数の値である。
図11に戻り、次に、投票部43Bは、複数の部分画像50ごとに算出したヒストグラム52の各々を、パラメータ空間に投票する。これにより、投票部43Bは、複数の部分画像50の各々について、各部分画像50に対応する投票ヒストグラムを生成する。
図13は、投票ヒストグラム54の説明図である。ヒストグラム52は、パラメータ空間53に投票されることで、投票ヒストグラム54となる。図13では、パラメータ空間を、二次元に簡略して示している。
なお、本実施の形態では、パラメータ空間は、3次元のパラメータ空間(x、y、s)であるものとして説明する。(x,y)は、部分画像内の二次元位置(x,y)を示す。(s)は、物体の大きさ(s)を示す。なお、パラメータ空間として、上記パラメータ以外に、物体の姿勢、物体の向き等を加えたより多次元のパラメータ空間であってもよい。
図11に戻り、学習部43Cは、部分画像50の特徴量と、部分画像50に含まれる物体の相対位置と、の関係を示す回帰モデルを学習する。具体的には、学習部43Cは、複数の部分画像50の各々に対応する、ラベル51の付与された特徴量を、対応する投票ヒストグラムのばらつきが小さくなるように複数のクラスタに分割することによって、回帰モデルを学習する。
本実施の形態では、回帰モデルが、1または複数のランダムツリーである場合を説明する。複数のランダムツリーは、すなわち、ランダムフォレストである。本実施の形態では、クラスタは、ランダムツリーの末端のノードである葉ノードを意味する。
本実施の形態において、学習部43Cが回帰モデルを学習する、とは、ランダムツリーによって示されるルートノードから子ノードを介して葉ノードに至るまでの各々のノードの分割指標と、葉ノードに属する特徴量と、を決定することを意味する。なお、この特徴量は、上述したように、ラベル51の付与された特徴量である。
本実施の形態では、学習部43Cは、投票ヒストグラム54のばらつきが小さくなるように、ルートノードから子ノードを介して複数の葉ノードに至るまでの各ノードの分割指標と、複数の葉ノードの各々に属する特徴量と、を決定することによって回帰モデルを学習する。
なお、学習部43Cは、分割指標の組合せの異なる複数の回帰モデルを学習することが好ましい。本実施の形態では、学習部43Cは、各ノードの分割指標の組合せを変えることによって、予め定められた数(以下、Tと称する)の回帰モデルを学習する。
図14は、ランダムツリー55の説明図である。
図14には、各ノードの横に、二次元に簡略化したパラメータ空間53の投票ヒストグラム54を示した。図14に示す例では、複数の部分画像50の特徴量の各々に対応する投票ヒストグラム54として、投票ヒストグラム54A〜投票ヒストグラム54Fを示した。以下では、部分画像50の特徴量を、特徴量vと称して説明する場合がある。この特徴量vには、上述したように、ラベルが付与されている。
まず、学習部43Cは、ルートノード55Aである「S」に、第1計算部42及び探索部43Aで算出した、ラベルの付与された全ての特徴量vを割当てる。
学習部43Cは、このルートノード55Aである「S」を2つの子ノード55Bである「L」、「R」の各々に分割するときの分割指標を定める。分割指標は、特徴量vの要素vjと、その閾値tjと、により定められる。
具体的には、学習部43Cは、分割先のノード(子ノード55Bまたは葉ノード55C)における投票ヒストグラムのばらつきが小さくなるように、分割元のノードの分割指標を決定する。分割指標は、特徴量vの要素vjと、その閾値tjと、によって定められる。
詳細には、学習部43Cは、要素vj<閾値tjの関係を満たすラベル付き特徴量vを、子ノード55Bである「L」に(図14のyesの場合)、要素vj<閾値tjの関係を満たさない特徴量vを、子ノード55Bである「R」に(図14のnoの場合)、仮に割当てた場合の分割指標を決定する(以下、仮割当操作と称する)。
このとき、学習部43Cは、投票ヒストグラム54のばらつきが小さくなるように、特徴量vの分割指標を決定する。学習部43Cは、例えば、下記式(6)を用いて分割指標を決定する。
G=Σ{H(l)−HL}2+Σ{H(r)−HR}2 ・・・式(6)
式(6)中、H(l)は、ルートノード55Aである「S」から子ノード55Bである「L」に分割された投票ヒストグラム54を示す。式(6)中、H(r)は、ルートノード55Aである「S」から子ノード55Bである「R」に分割された投票ヒストグラム54を示す。式(6)中、HLは、全てのH(l)の平均値である。HRは、全てのH(r)の平均値である。
なお、学習部43Cが分割指標の決定に用いる式は、式(6)に限定されない。
学習部43Cは、各ノードについて、最も投票ヒストグラム54のばらつきが小さくなるように分割指標を決定し、ルートノード55Aから子ノード55Bを介して葉ノード55Cに至るまで、この仮割当操作を繰り返す。すなわち、学習部43Cは、各ノードについて、上記式(6)におけるGの値が最も小さくなるように、要素vjと閾値tjとの組合せを分割指標として決定し、各ノードに属する特徴量vを分割することを繰り返す。
そして、学習部43Cは、終了条件を満たした時のノードを、末端の葉ノード55Cとして決定する。終了条件は、例えば、第1の条件、第2の条件、及び第3の条件の少なくとも1つである。第1の条件は、ノードに含まれる特徴量vの数が予め定めた数よりも小さいときである。第2の条件は、ランダムツリー55の木構造の深さが予め定めた値よりも大きいときである。第3の条件は、分割指標の値が予め定めた値より小さいときである。
この葉ノード55Cの決定により、学習部43Cは、葉ノード55Cに属する特徴量vを学習する。
上述のようにして、学習部43Cは、ルートノード55Aから子ノード55Bを介して葉ノード55Cに至るまでの各ノードの分割指標と、葉ノード55Cに属する特徴量vと、を決定し、ランダムツリー55を学習する。また、学習部43Cは、分割指標の組合せを変えて上記の仮割当操作を行うことによって、予め定めた数Tのランダムツリー55、を学習する。
なお、学習部43Cが学習するランダムツリー55の数Tは、1つであってもよいし、2以上の任意の数であってもよい。学習部43Cが補正画像33からより多くの数のランダムツリー55を学習するほど、密度計測装置10において高精度に密度を計算可能な、ランダムツリー55を学習することができる。すなわち、学習部43Cは、複数のランダムツリー55である、ランダムフォレストを学習することが好ましい。
図15は、学習した複数のランダムツリー55(すなわち、ランダムフォレスト)の説明図である。ランダムツリー551〜ランダムツリー55Tの各々は、各ノードの分割指標が異なる。このため、例えば、ルートノード55Aに割当てた、ラベル51の付与された全ての特徴量vが同じであっても、ランダムツリー551と、ランダムツリー55Tと、では、葉ノード55Cに属するラベル付きの特徴量vが異なるものとなる場合がある。なお、図15に示す例では、葉ノード55Cには、ラベル51のみを図示しているが、実際には、各葉ノード55Cには、ラベル51の付与された特徴量vが属している。
図11に戻り、第1予測部43Dは、学習部43Cが学習時に分割したクラスタの各々について、代表ラベルを予測する。第1予測部43Dは、クラスタに属する1または複数の特徴量vに付与されたラベル51から、代表ラベルを予測する。
上述したように、本実施の形態では、クラスタは、ランダムツリー55の末端のノードである葉ノード55Cを意味する。このため、第1予測部43Dは、葉ノード55Cに属する特徴量vの各々に付与されたラベル51から、各葉ノード55Cの代表ラベルを予測する。
図16は、代表ラベルの予測の説明図である。図16は、1つの葉ノード55Cを例にして説明している。まず、第1予測部43Dは、葉ノード55Cに属する全ての特徴量vの各々に付与されたラベル51を読取る。図16に示す例では、第1予測部43Dは、ラベル51C、51D、51E、51G、51Hを読取る。次に、第1予測部43Dは、これらのラベル51C、51D、51E、51G、51Hの各々に対応する投票ヒストグラム54(54C、54D、54E、54G、54H)の平均である、平均ヒストグラム56を算出する。
次に、第1予測部43Dは、この葉ノード55Cに属する複数の投票ヒストグラム54(54C、54D、54E、54G、54H)の内、平均ヒストグラム56に近い投票ヒストグラム54を選択する。なお、第1予測部43Dは、葉ノード55Cに属する複数の投票ヒストグラム54(54C、54D、54E、54G、54H)の内、平均ヒストグラム56に、最も近い投票ヒストグラム54を選択することが好ましい。図16に示す例では、第1予測部43Dは、平均ヒストグラム56に最も近い投票ヒストグラム54Eを選択する。そして、第1予測部43Dは、この投票ヒストグラム54Eに対応するラベル51であるラベル51Eを、該葉ノード55Cの代表ラベルとして予測する。
第1予測部43Dは、学習部43Cが学習した全てのランダムツリー55における、全ての葉ノード55Cについて、同様な処理を行い、各葉ノード55Cの代表ラベルを予測する。
図17は、代表ラベル予測後の、ランダムツリー55の説明図である。
図17に示すように、第1予測部43Dが各葉ノード55Cについて代表ラベルを予測することによって、学習部43Cが学習したランダムフォレストに含まれる全てのランダムツリー55(ランダムツリー551〜55T)の各々について、各ランダムツリー55の全ての葉ノード55Cについて、代表ラベルが予測される。
以上の処理により、演算部43が、回帰モデルと、代表ラベルと、を演算する。
図8に戻り、次に、第2予測部44は、演算部43で演算した回帰モデルとしてのランダムツリー55と、葉ノード55Cの各々の代表ラベルと、を取得する。そして、第2予測部44は、演算部43で取得したランダムツリー55の変数に、部分画像から計算された特徴量を代入する。これにより、第2予測部44は、部分画像の各々に対応する代表ラベルを予測する。
ここで、演算部43で取得したランダムツリー55が1つである場合には、第2予測部44は、1つのランダムツリー55を用いて、部分画像毎に1つの代表ラベルを予測する。一方、演算部43で取得したランダムツリー55が複数である場合(すなわち、ランダムフォレストである場合)には、第2予測部44は、部分画像毎に、これらの複数のランダムツリー55の各々に対応する複数の代表ラベルを求め、これらの複数の代表ラベルの内の1つを、密度計測に用いる代表ラベルとして予測する。
図18は、第2予測部44が行う代表ラベルの予測の説明図である。演算部43が取得したランダムツリー55、および代表ラベルが、図18に示すランダムツリー55(ランダムツリー551〜55T)及び代表ラベルであったとする。
この場合、第2予測部44は、部分画像の特徴量を、ランダムフォレストに含まれる各ランダムツリー55(ランダムツリー551〜55T)の各々のルートノード55Aに代入する。そして、第2予測部44は、各ランダムツリー55(ランダムツリー551〜55T)の各々のノードに決定された分割指標に沿って、ルートノード55Aから子ノード55Bを介して葉ノード55Cに到達するまで、木構造を下る。そして、到達した葉ノード55Cに属する代表ラベルを読取る。
これにより、第2予測部44は、1つの部分画像の特徴量に対応する代表ラベルとして、ランダムツリー55(ランダムツリー551〜55T)毎に求めた複数の代表ラベルを求める。
例えば、ある部分画像の特徴量v1をランダムツリー551の変数としてルートノード55Aに代入したとする。そして、子ノード55B1〜55B5の内の子ノード55B1、55B3をたどって、葉ノード55C1〜55C7の内の葉ノード55C1に到達したとする。この場合、この特徴量v1の、ランダムツリー551によって決定される代表ラベルはラベル51C1となる。
また、この特徴量v1をランダムツリー55Tの変数としてルートノード55Aに代入したとする。そして、子ノード55B1〜55B2の内の子ノード55B2をたどって、葉ノード55C1〜55C4の内の葉ノード55C3に到達したとする。この場合、この特徴量v1の、ランダムツリー55Tによって決定される代表ラベルはラベル51C10となる。
次に、第2予測部44は、全てのランダムツリー55(ランダムツリー551〜55T)毎に求めた代表ラベルの内の1つを、密度計測に用いる代表ラベルとして予測する。第2予測部44は、第1予測部43Dと同様にして、密度計測に用いる代表ラベルを予測する。
すなわち、第2予測部44は、全てのランダムツリー55(ランダムツリー551〜55T)毎に求めた代表ラベルに対応する投票ヒストグラム54の、平均ヒストグラムを算出する。そして、第2予測部44は、全てのランダムツリー55(ランダムツリー551〜55T)毎に求めた複数の代表ラベルの内、この平均ヒストグラムに最も近い投票ヒストグラム54に対応する代表ラベルを、密度計測に用いる代表ラベルとして予測する。
図8に戻り、密度計算部45は、補正画像33に含まれる物体の平均密度を算出する。密度計算部45は、第2予測部44で予測された、部分画像の各々に対応する代表ラベルによって示される物体の相対位置に基づいて、第2予測部44の予測を行う。
密度計算部45は、第2計算部45A、第3計算部45B、及び第4計算部45Cを備える。
第2計算部45Aは、複数の部分画像の各々に対応する代表ラベルによって示される、物体の相対位置に基づいて、複数の部分画像の各々における物体の密度分布を計算する。第2計算部45Aは、演算部43で用いた第1位置を予め記憶している。なお、この代表ラベルは、上述した、密度計測に用いる代表ラベルである。
例えば、第2計算部45Aは、正規分布の確率密度関数N()を用いて、部分画像における物体の密度分布Di(x)を計算する。
Di(x)=ΣN(x;lj,σ) ・・・式(7)
式(7)中、xは、部分画像中の任意の位置を示す。式(7)中、ljは、予測された物体の相対位置を示す。式(7)中、σは、分散を示す。
第3計算部45Bは、補正画像33における複数の部分画像の各々に対応する位置に、部分画像の密度分布を配置する。密度分布を配置する、とは、補正画像33における複数の部分画像の各々に対応する位置に、対応する部分画像の密度分布を貼り付けていくことを示す。
ここで、補正画像33から抽出された複数の部分画像は、少なくとも一部分が互いに重なっている場合がある。このため、補正画像33に、補正画像33から抽出した部分画像の密度分布を配置すると、各部分画像に対応する密度分布の少なくとも一部が重なった状態となる場合がある。
そこで、第4計算部45Cは、補正画像33における密度分布の重なり頻度に応じて、補正画像33を構成する画素毎に物体の密度の第1平均値を算出する。そして、第4計算部45Cは、制御部12で用いる領域Pごとに、密度算出対象の物体の種類の密度の平均値を算出する。そして、第4計算部45Cは、この算出値を、画像30の領域Pに含まれる、該第1算出部15で密度算出対象の物体の種類の密度として算出する。なお、領域Pが1画素に相当する領域である場合、第4計算部45Cは、画素毎に算出した上記第1平均値を、各画素としての各領域Pにおける、密度算出対象の物体の種類の密度として算出すればよい。
そして、第1算出部15では、上述したように、前処理部40、抽出部41、第1計算部42、演算部43、第2予測部44、および密度計算部45による上記処理(すなわち、算出処理)を、画像30に含まれる物体の種類ごとに実行する。
これにより、第1算出部15は、画像30から、領域Pに含まれる物体の種類ごとの密度を算出する。
次に、第1算出部15が実行する密度算出処理の手順を説明する。図19は、第1算出部15が実行する密度算出処理の手順を示すフローチャートである。
まず、第1算出部15では、画像30に含まれる複数種類の物体の内、密度の算出処理を未実行の種類の物体を1種類選択する(ステップS200)。
そして、第1算出部15では、ステップS200で選択した物体の種類について、ステップS202〜ステップS218の処理を行う。
詳細には、前処理部40が、ステップS200で選択した物体の種類を算出対象として定め、取得部14(図1参照)で取得した画像30について、前処理を実行する(ステップS202)。すなわち、前処理部40は、画像30における、算出対象の物体の種類以外の種類の物体のサイズを縮小する縮小処理、または算出対象の物体の種類以外の種類の物体の色を背景色に補正する補正処理を実行し、補正画像33を生成する。
次に、抽出部41が、ステップS202で生成した補正画像33から、複数の部分画像を抽出する(ステップS204)。次に、第1計算部42が、複数の部分画像の各々の特徴量を計算する(ステップS206)。
次に、演算部43が、回帰モデルとしてのランダムツリー55、および代表ラベルを演算する(ステップS208)(詳細後述)。
次に、第2予測部44が、演算部43で演算したランダムツリー55の変数に、部分画像から計算された特徴量を代入する。これにより、第2予測部44は、部分画像の各々に対応する代表ラベルを予測する(ステップS210)。
次に、第2計算部45Aが、代表ラベルによって示される、物体の相対位置に基づいて、複数の部分画像の各々における物体の密度分布を計算する(ステップS212)。
次に、第3計算部45Bが、補正画像33における複数の部分画像の各々に対応する位置に、対応する部分画像の密度分布を配置する(ステップS214)。次に、第4計算部45Cは、補正画像33における密度分布の重なり頻度に応じて、補正画像33の領域Pごとに、各領域Pに含まれる物体の種類の密度を計算する(ステップS216)。
次に、第4計算部45Cが、ステップS216で算出した、各領域Pに含まれる物体の種類の密度を、記憶部13に記憶する(ステップS218)。
次に、第1算出部15は、取得部14で取得した画像30に含まれる全種類の物体について、密度計算済であるか否かを判断する(ステップS220)。ステップS220では、取得部14で取得した画像30に含まれる全種類の物体について、ステップS200〜ステップS218の処理を実行したか否かを判別することによって、ステップS220の判断を行う。
ステップS220で否定判断すると(ステップS220:No)、上記ステップS200へ戻る。一方、ステップS220で肯定判断すると(ステップS220:Yes)、本ルーチンを終了する。
次に、図19のステップS208において、演算部43が行う演算処理を説明する。図20は、演算部43が行う演算処理の手順を示すフローチャートである。
まず、演算部43の探索部43Aが、ステップS206(図19参照)で計算された複数の部分画像50の各々の特徴量に、ラベルを付与する(ステップS300)。投票部43Bは、ラベル51からヒストグラム52を算出し、パラメータ空間53に投票することで、投票ヒストグラム54を生成する(ステップS302)。
次に、学習部43Cが、部分画像50の特徴量と、部分画像50に含まれる物体の相対位置と、の関係を示す回帰モデルを学習する(ステップS304)。本実施の形態では、上述したように、回帰モデルとしてランダムツリー55を学習する。
次に、第1予測部43Dが、学習部43Cが学習時に分割したクラスタ(葉ノード55C)の各々について、代表ラベルを予測する(ステップS306)。
そして、演算部43では、上記学習した回帰モデルとしてのランダムツリー55、およびクラスタ(葉ノード55C)の代表ラベルを、第2予測部44へ出力し、本ルーチンを終了する。
以上説明したように、本実施の形態の第1生成部17は、探索部43Aが、画像30(または補正画像33)から抽出した複数の部分画像50の各々に含まれる物体を探索する。また、探索部43Aは、部分画像50における予め定められた第1位置と部分画像50に含まれる全ての物体の各々との相対位置を表すベクトルをラベルとして、部分画像50の特徴量に付与する。学習部43Cは、このラベルの付与された特徴量を、各ノードに割当てて各ノードの分割指標を定めることで、回帰モデルを学習する。第1予測部43Dは、回帰モデルの葉ノード55Cの各々について、代表ラベルを予測する。
ラベルは、物体の相対位置を示すベクトルであり、データサイズが小さい。このため、回帰モデルの構成に必要なデータ量の削減を図ることができる。すなわち、本実施の形態の回帰モデルを用いて密度計算を行うことで、密度計測装置10では、上記第1の実施の形態の効果に加えて、低メモリで物体の密度計算を行うことができる。
また、第1算出部15は、補正画像33から物体を直接検出せずに、回帰モデルを学習する。このため、本実施の形態の密度計測装置10の第1算出部15は、補正画像33における物体が小さくて重なる場合であっても、計測精度を落とすことなく、高精度に密度計算を行うことの可能な回帰モデルを学習することができる。
従って、本実施の形態の密度計測装置10は、第1算出部15として、本実施の形態で説明した処理を行うことによって、上記第1の実施の形態の効果に加えて、密度計算を、高精度で且つ低メモリで行うためのデータ(回帰モデル)を提供することができる。
<変形例>
なお、第2の実施の形態では、回帰モデルとして、ランダムフォレストを用いる場合を説明した。しかし、第1算出部15が学習する回帰モデルは、ランダムフォレストに限定されない。例えば、第1算出部15は、回帰モデルとして、最近傍識別器を用いてもよい。
図21は、最近傍識別器を用いた学習の説明図である。学習部43C(図11参照)は、複数の部分画像50の各々に対応する、ラベル51の付与された特徴量vを、対応する投票ヒストグラムのばらつきが小さくなるように複数のクラスタ56に分割することによって、学習モデルを学習する。
具体的には、学習部43Cは、複数の部分画像50の各々に対応する、全ての、ラベル51の付与された特徴量vを、k平均法などのベクトル量子化方法によって、k個のクラスタ56に分割する。
詳細には、学習部43Cは、任意のラベル51に対してランダムにクラスタ56を割り当て、クラスタ56毎の平均値を計算する。次に、学習部43Cは、各ラベル51とクラスタ56毎の平均値との距離を求め、各ラベル51を、最も近い平均値をもつクラスタ56に割り当て直す。この一連の処理で、全てのラベル51のクラスタ56への割り当てが変化しなかった場合は、処理を終了する。それ以外の場合は処理を繰り返す。
これにより、ラベル51の付与された特徴量vは、特徴量vの類似した群毎に、クラスタ56に分割される。
第1予測部43Dは、クラスタ56に属する特徴量vに付与されたラベル51の平均値を計算する。そして、第1予測部43Dは、各クラスタ56に属する、特徴量vに付与されたラベル51の内、計算した平均値に最も近いラベル51を、代表ラベルとして予測する。
また、第1算出部15では、最近傍識別器を回帰モデルとして取得する。この場合、第2予測部44は、部分画像から計算した特徴量と、予測された各クラスタの代表ベクトルと、の照合を最近傍識別器によって行い、部分画像から計算した特徴量に最も距離の近い代表ベクトルを選択する。そして、第2予測部44は、選択した代表ベクトルの属するクラスタに属する特徴量に付与されたラベル51の集合から、第1予測部43Dと同様にして、部分画像の各々に対応する代表ラベルを予測すればよい。
図22は、上記実施の形態および変形例の密度計測装置10のハードウェア構成の一例を示すブロック図である。図22に示すように、上記実施の形態および変形例の密度計測装置10は、CPU902と、RAM906と、プログラムなどを記憶するROM904と、HDD908と、HDD908とのインタフェースであるI/F910と、画像入力用のインタフェースであるI/F912と、バス922とを、備えており、通常のコンピュータを利用したハードウェア構成となっている。なおCPU902、ROM904、RAM906、I/F910、及びI/F912は、バス922を介して互いに接続されている。
上記実施の形態および変形例の密度計測装置10では、CPU902が、ROM904からプログラムをRAM906上に読み出して実行することにより、上記各部がコンピュータ上で実現される。
なお、上記実施の形態の密度計測装置10で実行される上記各処理を実行するためのプログラムは、HDD908に記憶されていてもよい。また、上記実施の形態の密度計測装置10で実行される上記各処理を実行するためのプログラムは、ROM904に予め組み込まれて提供されていてもよい。
また、上記実施の形態の密度計測装置10で実行される上記処理を実行するためのプログラムは、インストール可能な形式または実行可能な形式のファイルでCD−ROM、CD−R、メモリカード、DVD(Digital Versatile Disk)、フレキシブルディスク(FD)等のコンピュータで読み取り可能な記憶媒体に記憶されてコンピュータプログラムプロダクトとして提供されるようにしてもよい。また、上記実施の形態の密度計測装置10で実行される上記処理を実行するためのプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するようにしてもよい。また、上記実施の形態の密度計測装置10で実行される上記処理を実行するためのプログラムを、インターネット等のネットワーク経由で提供または配布するようにしてもよい。
なお、上記には、本発明の実施の形態および変形例を説明したが、これらの実施の形態および変形例は、例として提示したものであり、発明の範囲を限定することは意図していない。この新規な実施の形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。この実施の形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
例えば、上記実施の形態のフローチャートにおける各ステップを、その性質に反しない限り、実行順序を変更し、複数同時に実施し、あるいは実施毎に異なった順序で実施してもよい。