本発明の実施の形態について図面を参照しながら詳細に説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰返さない。
図1は、この発明の実施の形態による物体追跡装置の構成を示す概略ブロック図である。図1を参照して、この発明の実施の形態による物体追跡装置10は、画像分割ユニット1と、追跡ユニット2とを備える。
画像分割ユニット1は、1フレームの入力画像を外部から受け、その受けた入力画像の各画素におけるRGB値、色相および彩度を用いて、後述する方法によって入力画像を入力画像に含まれる複数の対象物の画像に分割し、その分割した複数の分割画像を追跡ユニット2へ出力する分割処理を各フレームについて実行する。
追跡ユニット2は、各フレームにおける複数の分割画像を画像分割ユニット1から受けると、その受けた複数の分割画像に基づいて、後述する方法によって、各追跡物体を構成する対象物をグループ化し、そのグループ化した対象物を隣接フレーム間でマッチングさせて各追跡物体を追跡する。
画像分割ユニット1は、画素値検出回路11と、結合重み決定回路12と、画像分割回路13とを含む。
画素値検出回路11は、1フレームの入力画像を受け、その受けた入力画像の各画素のR成分、G成分およびB成分を検出し、その検出したR成分、G成分およびB成分をRGB値として結合重み決定回路12へ出力する。
結合重み決定回路12は、画素値検出回路1からRGB値を受け、その受けたRGB値に基づいて、後述する方法によって、1つのフレームを構成する複数の画素における各画素間の結合重みを決定し、その決定した結合重みを画像分割回路13へ出力する。
画像分割回路13は、外部から入力画像を受け、結合重み決定回路12から結合重みを受ける。そして、画像分割回路13は、その受けた結合重みを用いて、領域成長型画像分割方法によって、1つのフレームからなる入力画像を各対象物の画像に分割する。この領域成長型画像分割方法は、たとえば、3×3の画素からリーダセルを決定し、その決定したリーダセルの領域から相対的に大きい結合重みを有する周囲の画素の領域へ領域を成長させて行く処理をリーダセルが存在しなくなるまで繰り返して画像を分割する方法である。そして、画像分割回路13は、その分割した複数の分割画像を追跡ユニット2へ出力する。
なお、この発明の実施の形態においては、オブジェクトとは、対象物、追跡物体を含める広義の物体を意味する。
図2は、図1に示す結合重み決定回路12の構成を示す概略図である。図2を参照して、結合重み決定回路12は、Dラッチ回路121,122,124,126,127,129と、FIFO回路123,128と、HS変換回路125と、選択器130,131と、重み計算ユニット132〜135とを含む。
Dラッチ回路121は、画素値検出回路11からRGB値を受け、その受けたRGB値をラッチし、そのラッチしたRGB値をDラッチ回路122、重み計算ユニット133,135へ出力する。
Dラッチ回路122は、Dラッチ回路121からRGB値を受け、その受けたRGB値をラッチし、そのラッチしたRGB値をFIFO回路123、重み計算ユニット132および選択器130,131へ出力する。
FIFO回路123は、Dラッチ回路122からRGB値を受け、その受けたRGB値を1クロック分、保持し、その後、RGB値をDラッチ回路124、重み計算ユニット132および選択器130,131へ出力する。
Dラッチ回路124は、FIFO回路123から受けたRGB値をラッチし、そのラッチしたRGB値を重み計算ユニット133,134へ出力する。
HS変換回路125は、画素値検出回路11からRGB値を受け、その受けたRGB値を、後述する方法によって、色相および彩度に変換する。そして、HS変換回路125は、その変換した色相および彩度をDラッチ回路126へ出力する。
Dラッチ回路126は、色相および彩度をHS変換回路125から受け、その受けた色相および彩度をラッチし、そのラッチした色相および彩度をDラッチ回路127および重み計算ユニット133,135へ出力する。
Dラッチ回路127は、色相および彩度をDラッチ回路126から受け、その受けた色相および彩度をラッチし、そのラッチした色相および彩度をFIFO回路128、重み計算ユニット132および選択器130,131へ出力する。
FIFO回路128は、色相および彩度をDラッチ回路127から受け、その受けた色相および彩度を1クロック分、保持し、その後、色相および彩度をDラッチ回路129、重み計算ユニット132および選択器130,131へ出力する。
Dラッチ回路129は、色相および彩度をFIFO回路128から受け、その受けた色相および彩度をラッチし、そのラッチした色相および彩度を重み計算ユニット133,134へ出力する。
選択器130は、外部から制御信号CTLを受け、Dラッチ回路122およびFIFO回路123からRGB値を受け、Dラッチ回路127およびFIFO回路128から色相および彩度を受ける。制御信号CTLは、選択器130,131の0端子に入力されたRGB値、色相および彩度を選択するための制御信号CTL0と、選択器130,131の1端子に入力されたRGB値、色相および彩度を選択するための制御信号CTL1とのいずれかからなる。そして、選択器130は、制御信号CTL0を受けると、FIFO回路123から受けたRGB値と、FIFO回路128から受けた色相および彩度とを選択して重み計算ユニット134へ出力し、制御信号CTL1を受けると、Dラッチ回路122から受けたRGB値と、Dラッチ回路127から受けた色相および彩度とを選択して重み計算ユニット134へ出力する。
選択器131は、外部から制御信号CTLを受け、Dラッチ回路122およびFIFO回路123からRGB値を受け、Dラッチ回路127およびFIFO回路128から色相および彩度を受ける。そして、選択器131は、制御信号CTL0を受けると、Dラッチ回路122から受けたRGB値と、Dラッチ回路127から受けた色相および彩度とを選択して重み計算ユニット135へ出力し、制御信号CTL1を受けると、FIFO回路123から受けたRGB値と、FIFO回路128から受けた色相および彩度とを選択して重み計算ユニット135へ出力する。
重み計算ユニット132は、Dラッチ回路122およびFIFO回路123からRGB値を受け、Dラッチ回路127およびFIFO回路128から色相および彩度を受ける。そして、重み計算ユニット132は、Dラッチ回路122から受けたRGB値とDラッチ回路127から受けた色相および彩度とを1つの画素GE3に対応するRGB値、色相および彩度(RGB3,HS3)とし、FIFO回路123から受けたRGB値と、FIFO回路128から受けた色相および彩度とを別の1つの画素GE2に対応するRGB値、色相および彩度(RGB2,HS2)とする。そうすると、重み計算ユニット132は、RGB値、色相および彩度(RGB3,HS3)と、RGB値、色相および彩度(RGB2,HS2)とに基づいて、後述する方法によって、画素GE2と画素GE3との間の結合重みを演算し、その演算した結合重みを画像分割回路13へ出力する。
重み計算ユニット133は、Dラッチ回路121,124からRGB値を受け、Dラッチ回路126,129から色相および彩度を受ける。そして、重み計算ユニット133は、Dラッチ回路121から受けたRGB値とDラッチ回路126から受けた色相および彩度とを1つの画素GE4に対応するRGB値、色相および彩度(RGB4,HS4)とし、Dラッチ回路124から受けたRGB値と、Dラッチ回路129から受けた色相および彩度とを別の1つの画素GE1に対応するRGB値、色相および彩度(RGB1,HS1)とする。そうすると、重み計算ユニット133は、RGB値、色相および彩度(RGB4,HS4)と、RGB値、色相および彩度(RGB1,HS1)とに基づいて、後述する方法によって、画素GE1と画素GE4との間の結合重みを演算し、その演算した結合重みを画像分割回路13へ出力する。
重み計算ユニット134は、Dラッチ回路124からRGB値を受け、Dラッチ回路129から色相および彩度を受け、選択器130からRGB値、色相および彩度を受ける。そして、重み計算ユニット134は、Dラッチ回路124から受けたRGB値とDラッチ回路129から受けた色相および彩度とを1つの画素GE1に対応するRGB値、色相および彩度(RGB1,HS1)とし、選択器130から受けたRGB値、色相および彩度を別の1つの画素GE2に対応するRGB値、色相および彩度(RGB2,HS2)とする。そうすると、重み計算ユニット134は、RGB値、色相および彩度(RGB1,HS1)と、RGB値、色相および彩度(RGB2,HS2)とに基づいて、後述する方法によって、画素GE1と画素GE2との間の結合重みを演算し、その演算した結合重みを画像分割回路13へ出力する。
重み計算ユニット135は、Dラッチ回路121からRGB値を受け、Dラッチ回路126から色相および彩度を受け、選択器131からRGB値、色相および彩度を受ける。そして、重み計算ユニット135は、Dラッチ回路121から受けたRGB値とDラッチ回路126から受けた色相および彩度とを1つの画素GE4に対応するRGB値、色相および彩度(RGB4,HS4)とし、選択器131から受けたRGB値、色相および彩度を別の1つの画素GE3に対応するRGB値、色相および彩度(RGB3,HS3)とする。そうすると、重み計算ユニット135は、RGB値、色相および彩度(RGB4,HS4)と、RGB値、色相および彩度(RGB3,HS3)とに基づいて、後述する方法によって、画素GE3と画素GE4との間の結合重みを演算し、その演算した結合重みを画像分割回路13へ出力する。
なお、重み計算ユニット134は、選択器130から画素GE3に対応するRGB値、色相および彩度(RGB3,HS3)を受けるとき、画素GE1と画素GE3との間の結合重みを演算し、その演算した結合重みを画像分割回路13へ出力し、重み計算ユニット135は、選択器131から画素GE2に対応するRGB値、色相および彩度(RGB2,HS2)を受けるとき、画素GE2と画素GE4との間の結合重みを演算し、その演算した結合重みを画像分割回路13へ出力する。
図3は、図2に示す結合重み決定回路12が結合重みを決定するときの概念図である。また、図4は、図2に示す結合重み決定回路12が結合重みを決定するときの他の概念図である。
結合重み決定回路12は、2行2列に配列された画素GE1〜GE4における結合重みを1サイクルで決定する。画素GE1〜GE4におけるRGB値RGB1〜RGB4が結合重み決定回路12へ順次入力されると、重み計算ユニット132は、FIFO回路123から画素GE2のRGB値RGB2を受け、FIFO回路128から画素GE2の色相および彩度HS2を受け、Dラッチ回路122から画素GE3のRGB値RGB3を受け、Dラッチ回路127から画素GE3の色相および彩度HS3を受ける。
また、重み計算ユニット133は、Dラッチ回路124から画素GE1のRGB値RGB1を受け、Dラッチ回路129から画素GE1の色相および彩度HS1を受け、Dラッチ回路121から画素GE4のRGB値RGB4を受け、Dラッチ回路126から画素GE4の色相および彩度HS4を受ける。
さらに、重み計算ユニット134は、Dラッチ回路124から画素GE1のRGB値RGB1を受け、Dラッチ回路129から画素GE1の色相および彩度HS1を受け、選択器130から画素GE2のRGB値RGB2と、画素GE2の色相および彩度HS2とを受ける。
さらに、重み計算ユニット135は、Dラッチ回路121から画素GE4のRGB値RGB4を受け、Dラッチ回路126から画素GE4の色相および彩度HS4を受け、選択器131から画素GE3のRGB値RGB3と、画素GE3の色相および彩度HS3とを受ける。
すなわち、重み計算ユニット132〜135は、同期して、それぞれ、画素GE2,GE3のRGB値、色相および彩度、画素GE1,GE4のRGB値、色相および彩度、画素GE1,GE2のRGB値、色相および彩度、および画素GE3,GE4のRGB値、色相および彩度を受ける。そして、重み計算ユニット132は、画素GE2と画素GE3との結合重みを決定して出力し、重み計算ユニット133は、画素GE1と画素GE4との結合重みを決定して出力し、重み計算ユニット134は、画素GE1と画素GE2との結合重みを決定して出力し、重み計算ユニット135は、画素GE3と画素GE4との結合重みを決定して出力する。
つまり、重み計算ユニット132〜135は、図3に示す4個の結合重みを1サイクルで決定して出力する。
なお、選択器130が画素GE3のRGB値RGB3と色相および彩度HS3とを選択し、選択器131が画素GE2のRGB値RGB2と色相および彩度HS2とを選択した場合、重み計算ユニット132〜135は、図4に示す4個の結合重みを1サイクルで決定して出力する。
このように、結合重み決定回路12は、2行2列に配列された4個の画素のRGB値、色相および彩度を用いて、1サイクルで2行2列に配列された4個の画素間における4個の結合重みを決定する。
上述したように、結合重み決定回路3は、各画素のRGB値、色相および彩度を用いて2つの画素間の結合重みを決定するが、以下、その理由について説明する。
この発明においては、画素間の結合重みを決定するために、RGB値のみならず、色相および彩度を用いるために、RGB色空間に加え、色相(H:Hue)、彩度(S:Saturation)および明度(V:Value)からなるHSV色空間を導入する。
ここで、色相(H)は、R,G,Bなどの色の種類を表す要素である。また、彩度(S)は、色の鮮やかさを表す要素であり、無彩色(黒―灰色―白)では、“0”となる。さらに、明度(V)は、明るさを表す要素である。
図5は、HSV色空間の概念図である。図5を参照して、HSV色空間は、円錐形状からなる。そして、色相(H)は、円錐形状の底面における円環CRCに描かれ、0度〜360度の範囲で表される。そして、図5においては、赤を基準(0度)とした色相を表しており、RGB色空間における赤(255,0,0)、緑(0,255,0)および青(0,0,255)は、それぞれ、色相0度、色相120度および色相240度に対応する。
彩度(S)は、円錐の円形の半径として表され、0〜1の範囲の値を取る。また、明度(V)は、円錐の頂点からの距離として表され、0〜1の範囲の値を取る。
図5から解るように、無彩色は、色相(H)および彩度(S)を持たない。
RGB値から色相(H)への変換には、次式が用いられる。
なお、式(1)において、MAXは、R値、G値およびB値の最大値を表し、MINは、R値、G値およびB値の最小値を表す。
MAX=MINであるとき、色相(H)は、定義されない。これは、R値、G値およびB値が全て等しいときであり、無彩色を表すため、円錐の中央のグレーの直線の周囲にあるため、その時のHue値は、意味を持たないからである。
RGB値から彩度(S)への変換には、次式が用いられる。
なお、MAX=0であるとき、彩度(S)は、未定義となる。これは、MAX=0であるときの色は、完全な黒を表すため、色相も彩度も存在しないからである。
RGB値から明度(V)への変換には、次式が用いられる。
引き続いて、色相(Hue)および彩度(Saturation)による画像評価について説明する。図6は、色相および彩度による画像評価に用いた画像を示す図である。また、図7は、色相および彩度による画像評価に用いた他の画像を示す図である。
図6は、コントラストが低い領域を含む画像を示し、図7は、外乱的な反射を含む画像を示す。
図8は、図6に示す領域Xの分割結果および図7に示す領域Yの分割結果を示す図である。また、図9は、従来の画像分割における問題を説明するための図である。
従来の画像分割においては、2つの画素間の結合重みWij;klは、各画素のRGB値のみを用いて次の式(4),(5)によって演算される。
すなわち、従来の画像分割方法は、隣接画素間のRGB値の差から結合重みと定義される画素間の類似度を求め、その求めた類似度を指標として領域を成長させていく。結合重みWij;klは、式(4)を用いて赤、緑および青に対して演算された3個の結合重みを式(5)に代入して、赤、緑および青に対する3個の結合重みのうち、最も小さいものを画素間の結合重みWij;klとして決定する。
したがって、図9に示すように、たとえば、(R,G,B)=(250,0,0)と、(R,G,B)=(125,0,0)との結合重みと、(R,G,B)=(250,0,0)と、(R,G,B)=(125,125,125)との結合重みとは、無彩色と有彩色との関係にありながら、同じ値となり、RGB色空間を用いた結合重みでは、画素の色合いを考慮していない。
また、図9の(a)は、グラデーション変化を持つ領域を画素単位で示したものと、横軸をx軸、縦軸を結合重みに取ったときのグラデーション領域の結合重みの変化をグラフとして表した図である。
グラデーション変化のある領域では、画素間のRGB値の差が等しいため、結合重みも等しくなっている。仮に、近傍画素の結合重みが領域成長に用いるしきい値φz以上であれば、領域は、矢印の方向に広がり続けてしまう。
しかし、図9の(a)に示すグラデーションに関する問題に対しては、どこまでを同一領域として扱うかは、アプリケーションに依存する面が強く、しきい値を一意に決定することは難しい。
図6に示すサンプル画像は、コントラストが低く、机と人間の重なりにより境界に陰が生じ、机領域と人物領域との間に明確なエッジが現れず、色が2つの領域間で滑らかに変化する(グラデーション)画像である。そのため、従来のRGB色空間による結合重みを利用する画像分割法では、机と人物との分割が難しい(図8参照)。
また、図7に示すサンプル画像では、反射が原因でカラーが変化し、ボディー領域の成長が進まずに、複数の領域に分かれたり、未分割領域として残ってしまう(図8参照)。
これらの結果から、画像分割精度を向上させるためには、RGB色空間による明度を用いた方法に加えて、黒い、赤い、青いと言った色合いを考慮することが必要である。色合いを考慮すれば、図6に示すサンプル画像であれば、人物は、黒(無彩色)であり、机は、茶色であり、2つの領域の分離が可能である。また、図7に示すサンプル画像であれば、車は、赤色(有彩色)の領域として抽出可能である。
そこで、色相(Hue)および彩度(Saturation)による画像評価について説明する。
まず、色相(Hue)による画像評価について説明する。図10は、図6に示すサンプル画像のRGB値から式(1)を用いてHue値に変換した値(0〜360度)を256階調に正規化して8ビットグレー画像とした図である。また、図11は、図7に示すサンプル画像のRGB値から式(1)を用いてHue値に変換した値(0〜360度)を256階調に正規化して8ビットグレー画像とした図である。
なお、図10および図11においては、図6および図7に示す2つのサンプル画像の場合、緑および青といったHue値が高い画素値が存在しないため、無彩色を最大値の255(白)で表している。
図10および図11を参照して、人間と机の境界、および道路と車両の境界がはっきりと区別できていることが解るが、背景や人間の領域にノイズ画素が目立つ。このHue画像の画像分割への適用を想定した場合、ノイズ画素による分割精度への影響が予想される。
そこで、ノイズ画素の低減のために、次の方法を採用した。式(1)から解るように、厳密には、MAX−MIN=0のときのみ、無彩色として扱われるが、人間は、実際、目視により色を認識する場合、MAX−MIN=0を正確に満たしていなくても無彩色として画素を認識する。そのため、ノイズ画素を除去するために、パラメータDMAX−MINを設定した。
図10および図11におけるDMAX−MINは、DMAX−MIN=MAX−MINを表し、DMAX−MINより誤差の小さい画素を無彩色(白−灰色−黒)と見なすことにする。DMAX−MIN値を“0”から“5”づつ増加させていったときの画像への影響について評価した結果が図10および図11に示す結果である。
DMAX−MIN値を大きくしていくと、無彩色は、取り除かれていき、カラー領域(有彩色領域)とグレー領域(無彩色領域)とをある程度分離できることがわかった。これは、グレー領域とカラー領域との識別におけるロバスト性が向上したからである。また、カラー領域同士も、Hue値の差によって識別できる。
次に、彩度(Saturation)による画像評価について説明する。図12は、図6に示すサンプル画像のRGB値から式(2)を用いてS値に変換した値(0〜1の範囲)を256階調に規格化して8ビットグレー画像とした図である。また、図13は、図7に示すサンプル画像のRGB値から式(2)を用いてS値に変換した値(0〜1の範囲)を256階調に規格化して8ビットグレー画像とした図である。
彩度の場合、MAX−MIN=0またはMAX=0のときのみ、無彩色として扱っているため、道路の領域なども彩度を持っている。
そこで、図5から解るように、彩度(S)が低い領域は、色相(H)による色の識別が非常に困難であることに注目し、各画素の彩度(S)の値を基準として、無彩色領域と有彩色領域とを2値化することを考える。
図12および図13は、しきい値としての彩度(S)を0から0.2まで0.04刻みで変化させたときの画像への影響を示す。そして、図12および図13に示す画像は、しきい値よりも小さい彩度(S)を持つ画素を白(255)、しきい値以上の彩度を持つ画素を黒(0)として2値化した画像である。
図12および図13を参照して、彩度(S)値が0.2よりも小さい画素を無彩色、彩度(S)値が0.2以上である画素を有彩色として扱うことにより、無彩色領域と有彩色領域との識別に関して良い結果が得られた。他のサンプル画像に対しても評価を行なったが、彩度のしきい値を0.2付近に設定すると、良い結果が得られた。
上述したように、HSV色空間について検討した結果、RGB色空間では、画像分割が難しかった画像(たとえば、図6に示す人と机の分離、および図7に示す車のボディー部分の抽出)に対して、HSV色空間を用いることによって、有彩色領域と、人間の目から見て無彩色に近い色とを分離したり、色合いは同じでも光の当たり具合で明度や彩度に違いが生じる領域を同一領域として分割できることが解った。
しかし、HSV色空間は、無彩色領域の画像分割には適していない。それは、図5から解るように、彩度が低くなると、色合いを殆ど識別することができず、Hue値が意味を持たなくなるからである。
そこで、この発明においては、RGB値と、HSV値との両方の色空間を用いて、画素間の結合重みを決定し、それぞれの色空間が苦手とする色領域をお互いが補うことにしたのである。
そして、結合重み決定回路12がRGB値、色相および彩度を用いて結合重みを決定する場合、HS変換回路125は、一般的には、式(1)および式(2)を用いて、RGB値を色相(H)および彩度(S)に変換する。
しかし、式(1)および式(2)を用いてRGB値を色相(H)および彩度(S)に変換する場合、HS変換回路125を除算器を用いて構成する必要があり、除算器を用いたHS変換回路125の実現方法は、演算に複数のサイクルを要するため、1サイクルでの処理の要求を満たすことができない。また、回路面積が大きくなるという問題もある。
そこで、テーブルマッピングによる方法が考えられる。すなわち、RGB値を式(1)および式(2)を用いて予め計算したH値およびS値をメモリに保存しておき、それぞれのRGB値に対応するアドレスから計算結果を読み出すことで使用時の処理を削減する。
しかし、R,G,Bは、それぞれ、8ビットのデータであるため、((28)3×9)ビットの大容量のメモリが必要であり、デコーダの回路面積が大きくなるという問題がある。
そこで、この発明においては、好ましくは、H(0〜360度)およびS(0〜1)を複数のビン(領域)に分けることで計算結果をビンの数に限定し、その上でテーブルを参照して色相(H)および彩度(S)を求める。この方法によれば、除算器を一切使用せず、回路面積を抑えたRGB値からHSV値への変換回路を実現できる。
図14は、色相(Hue)のビンの構成図である。図14を参照して、色相(Hue)のビン構成は、3段構成からなり、360度のHue値を90個のビンで構成する。
Hue値の決定方法について説明する。まず、1段目(最も内側の円)で、注目画素が赤(01)、緑(10)、および青(11)のどのカテゴリに属するかをMAXに基づいて決定する。
次に、MINを決定し、式(1)からMAXの条件に対応した式の分数部分が正か負かを決定する。分数部分が負である場合、“0”となり、分数部分が正である場合、“1”となる(2段目)。
最後に、15個のビンのうちのどのビンに対応するかを決定すれば、注目画素が90個のビンで構成されたHue値のどのビンに対応するかが解る(3段目)。
上述したHue値の決定方法においては、2段目までは、R,G,B値の大小関係から容易に決定できる。そこで、3段目の1〜15のビンの決定方法について説明する。
式(1)の分数部分を取出し、次の関係式を作成する。
式(6)において、MEDは、MAXおよびMIN以外のR,G,Bのいずれかの値、すなわち、中間値を表す。
式(6)を変形すると、次式が得られる。
そして、式(7)におけるXの値を1から14まで変化させたときに生成される14個の不等式の成立結果(1,0)からビン番号を決定する。
図15は、図2に示すHS変換回路125に含まれる色相変換回路の構成を示す概略図である。HS変換回路125は、図15に示す色相変換回路1250を含む。図15を参照して、色相変換回路1250は、決定回路1251と、データ生成回路1252,1253と、スイッチ1254と、比較回路1255〜1268と、エンコーダ1269とを含む。
決定回路1251は、画素値検出回路11から各画素のRGB値を受け、その受けたRGB値の最大値MAX、最小値MINおよび中間値MEDを決定する。そして、決定回路1251は、その決定した最大値MAXをデータ生成回路1252へ出力し、中間値MEDをデータ生成回路1253へ出力し、最小値MINをデータ生成回路1252,1253へ出力する。
データ生成回路1252は、決定回路1251から最大値MAXおよび最小値MINを受け、その受けた最大値MAXおよび最小値MINに基づいて、Xを1から14まで変化させた14個のX×(MAX−MIN)を順次演算し、その演算した14個のX×(MAX−MIN)(X=1〜14)をスイッチ1254へ出力する。すなわち、データ生成回路1252は、式(7)の右辺のBを演算し、その演算したBをスイッチ1254へ出力する。
また、データ生成回路1253は、決定回路1251から中間値MEDおよび最小値MINを受け、その受けた中間値MEDおよび最小値MINに基づいて、15×(MED−MIN)を演算し、その演算した15×(MED−MIN)をスイッチ1254へ出力する。すなわち、データ生成回路1253は、式(7)の左辺のAを演算し、その演算したAをスイッチ1254へ出力する。
スイッチ1254は、14個のX×(MAX−MIN)(X=1〜14)をデータ生成回路1252から受け、15×(MED−MIN)をデータ生成回路1253から受ける。そして、スイッチ1254は、1×(MAX−MIN)および15×(MED−MIN)を比較回路1255へ出力し、2×(MAX−MIN)および15×(MED−MIN)を比較回路1256へ出力し、以下、同様にして、14×(MAX−MIN)および15×(MED−MIN)を比較回路1268へ出力する。
比較回路1255は、1×(MAX−MIN)および15×(MED−MIN)をスイッチ1254から受け、1×(MAX−MIN)を15×(MED−MIN)と比較する。そして、比較回路1255は、その比較結果をエンコーダ1269へ出力する。より具体的には、比較回路1255は、15×(MED−MIN)<1×(MAX−MIN)が成立するとき、“1”をエンコーダ1269へ出力し、15×(MED−MIN)<1×(MAX−MIN)が成立しないとき、“0”をエンコーダ1269へ出力する。
比較回路1256は、2×(MAX−MIN)および15×(MED−MIN)をスイッチ1254から受け、2×(MAX−MIN)を15×(MED−MIN)と比較する。そして、比較回路1256は、その比較結果(1または0)をエンコーダ1269へ出力する。
以下、同様にして、比較回路1268は、14×(MAX−MIN)および15×(MED−MIN)をスイッチ1254から受け、14×(MAX−MIN)を15×(MED−MIN)と比較する。そして、比較回路1268は、その比較結果(1または0)をエンコーダ1269へ出力する。
なお、比較回路1255〜1268は、平行してX×(MAX−MIN)を15×(MED−MIN)と比較し、その比較結果をエンコーダ1269へ出力する。したがって、エンコーダ1269は、比較結果を示す14ビットのデータを比較回路1255〜1268から受ける。
エンコーダ1269は、14ビットからなる比較結果を比較回路1255〜1268から受け、その受けた14ビットの比較結果に基づいて、ビン番号を決定する。より具体的には、エンコーダ1269は、[01000000000000]の比較結果を比較回路1255〜1268から受けたとき、ビン番号を“2”と決定し、[00000000010000]の比較結果を比較回路1255〜1268から受けたとき、ビン番号を“10”と決定する。なお、エンコーダ1269は、全てが“0”からなる[00000000000000]の比較結果を比較回路1255〜1268から受けたとき、ビン番号を“15”と決定する。
そして、エンコーダ1269は、その決定したビン番号をHueビン番号としてDラッチ回路126へ出力する。
上述したように、データ生成回路1252は、X×(MAX−MIN)を演算し、データ生成回路1253は、15×(MED−MIN)を演算するので、データ生成回路1252,1253の各々を加算器とシフト器とを用いた簡単な回路により実現できる。
次に、RGB値から彩度(S)への変換について説明する。図16は、彩度(S)のビンの構成図である。図16を参照して、0〜0.1の範囲の彩度(S)は、1のビンに割り当てられ、0.1〜0.15の範囲の彩度(S)は、2のビンに割り当てられ、0.15〜0.1625の範囲の彩度(S)は、3のビンに割り当てられ、0.1625〜0.1750の範囲の彩度(S)は、4のビンに割り当てられ、0.1750〜0.1875の範囲の彩度(S)は、5のビンに割り当てられ、0.1875〜0.2の範囲の彩度(S)は、6のビンに割り当てられる。また、0.2〜0.2125の範囲の彩度(S)は、7のビンに割り当てられ、0.2125〜0.2250の範囲の彩度(S)は、8のビンに割り当てられ、0.2250〜0.2375の範囲の彩度(S)は、9のビンに割り当てられ、0.2375〜0.25の範囲の彩度(S)は、10のビンに割り当てられ、0.25〜0.30の範囲の彩度(S)は、11のビンに割り当てられ、0.3〜1.0の範囲の彩度(S)は、12のビンに割り当てられる。
このように、彩度(S)は、彩度境界である0.2付近にある程、細分されたビンに割り当てられる。
RGB値から彩度(S)への変換も、RGB値から色相(H)への変換と同様な方法を用いる。彩度(S)の計算が必要になるのは、2つの画素のうちの一方の画素が無彩色領域に属し、他方の画素が有彩色領域に属する場合である。すなわち、2つの画素が彩度境界(S=0.2)を間に挟んだ関係にある場合である。
そこで、図16に示すように、彩度境界(S=0.2)の付近に限定して細かいビンに分ける。彩度のビンは、次の2つの式(8),(9)の成立結果を元に12個のビンへ彩度を割り当てる。
式(8)および式(9)の分母を払うと、それぞれ、式(10)および式(11)が得られる。
図17は、図2に示すHS変換回路125に含まれる彩度変換回路の構成を示す概略図である。HS変換回路125は、図17に示す彩度変換回路1270を含む。図17を参照して、彩度変換回路1270は、決定回路1271と、データ生成回路1272〜1275と、スイッチ1276と、比較回路1277〜1288と、エンコーダ1289とを含む。
決定回路1271は、画素値検出回路11からRGB値を受け、その受けたRGB値の最大値MAXおよび最小値MINを決定する。そして、決定回路1271は、その決定した最大値MAXをデータ生成回路1272〜1275へ出力し、その決定した最小値MINをデータ生成回路1274,1275へ出力する。
データ生成回路1272は、決定回路1271から最大値MAXを受け、その受けた最大値MAXを用いて、Yを2,3,6と変化させたY×MAXを順次演算し、その演算した3個のY×MAX(Y=2,3,6)をスイッチ1276へ出力する。すなわち、データ生成回路1272は、式(10)の右辺のDを演算し、その演算したDをスイッチ1276へ出力する。
データ生成回路1273は、決定回路1271から最大値MAXを受け、その受けた最大値MAXを用いて、Zを12から20まで変化させたZ×MAXを順次演算し、その演算した9個のZ×MAX(Z=12〜20)をスイッチ1276へ出力する。すなわち、データ生成回路1253は、式(11)の右辺のFを演算し、その演算したFをスイッチ1276へ出力する。
データ生成回路1274は、決定回路1271から最大値MAXおよび最小値MINを受け、その受けた最大値MAXおよび最小値MINを用いて20×(MAX−MIN)を演算し、その演算した20×(MAX−MIN)をスイッチ1276へ出力する。すなわち、データ生成回路1274は、式(10)の左辺のCを演算し、その演算したCをスイッチ1276へ出力する。
データ生成回路1275は、決定回路1271から最大値MAXおよび最小値MINを受け、その受けた最大値MAXおよび最小値MINを用いて80×(MAX−MIN)を演算し、その演算した80×(MAX−MIN)をスイッチ1276へ出力する。すなわち、データ生成回路1275は、式(11)の左辺のEを演算し、その演算したEをスイッチ1276へ出力する。
スイッチ1276は、データ生成回路1272から3個のY×MAX(Y=2,3,6)を受け、データ生成回路1273から9個のZ×MAX(Z=12〜20)を受け、データ生成回路1274から20×(MAX−MIN)を受け、データ生成回路1275から80×(MAX−MIN)を受ける。
そして、スイッチ1276は、2×MAXおよび20×(MAX−MIN)を比較回路1277へ出力し、3×MAXおよび20×(MAX−MIN)を比較回路1278へ出力し、6×MAXおよび20×(MAX−MIN)を比較回路1279へ出力する。
また、スイッチ1276は、12×MAXおよび80×(MAX−MIN)を比較回路1280へ出力し、13×MAXおよび80×(MAX−MIN)を比較回路1281へ出力し、以下、同様にして、20×MAXおよび80×(MAX−MIN)を比較回路1288へ出力する。
比較回路1277は、2×MAXおよび20×(MAX−MIN)をスイッチ1276から受け、2×MAXを20×(MAX−MIN)と比較し、その比較結果をエンコーダ1289へ出力する。より具体的には、比較回路1277は、20×(MAX−MIN)<2×MAXが成立するとき、“1”をエンコーダ1289へ出力し、20×(MAX−MIN)<2×MAXが成立しないとき、“0”をエンコーダ1289へ出力する。
また、比較回路1278は、3×MAXおよび20×(MAX−MIN)をスイッチ1276から受け、3×MAXを20×(MAX−MIN)と比較し、20×(MAX−MIN)<3×MAXが成立するとき、“1”をエンコーダ1289へ出力し、20×(MAX−MIN)<3×MAXが成立しないとき、“0”をエンコーダ1289へ出力する。
同様にして、比較回路1279は、6×MAXおよび20×(MAX−MIN)をスイッチ1276から受け、6×MAXを20×(MAX−MIN)と比較し、20×(MAX−MIN)<6×MAXが成立するとき、“1”をエンコーダ1289へ出力し、20×(MAX−MIN)<6×MAXが成立しないとき、“0”をエンコーダ1289へ出力する。
比較回路1280は、12×MAXおよび80×(MAX−MIN)をスイッチ1276から受け、12×AMXを80×(MAX−MIN)と比較し、その比較結果をエンコーダ1289へ出力する。より具体的には、比較回路1280は、80×(MAX−MIN)<12×MAXが成立するとき、“1”をエンコーダ1289へ出力し、80×(MAX−MIN)<12×MAXが成立しないとき、“0”をエンコーダ1289へ出力する。
比較回路1281は、13×MAXおよび80×(MAX−MIN)をスイッチ1276から受け、13×AMXを80×(MAX−MIN)と比較し、80×(MAX−MIN)<13×MAXが成立するとき、“1”をエンコーダ1289へ出力し、80×(MAX−MIN)<13×MAXが成立しないとき、“0”をエンコーダ1289へ出力する。
以下、同様にして、比較回路1288は、20×MAXおよび80×(MAX−MIN)をスイッチ1276から受け、20×AMXを80×(MAX−MIN)と比較し、80×(MAX−MIN)<20×MAXが成立するとき、“1”をエンコーダ1289へ出力し、80×(MAX−MIN)<20×MAXが成立しないとき、“0”をエンコーダ1289へ出力する。
なお、比較回路1277〜1288は、上述した比較を平行して行ない、その比較結果を平行してエンコーダ1289へ出力する。したがって、エンコーダ1289は、12ビットのデータを比較回路1277〜1288から受ける。
エンコーダ1289は、12ビットからなる比較結果を比較回路1277〜1288から受け、その受けた12ビットの比較結果に基づいて、ビン番号を決定する。より具体的には、エンコーダ1289は、[100000000000]の比較結果を比較回路1277〜1288から受けたとき、ビン番号を“1”と決定し、[000000100000]の比較結果を比較回路1277〜1288から受けたとき、ビン番号を“7”と決定する。エンコーダ1289は、その他の12ビットの比較結果を受けたときも、同様にしてビン番号を決定する。
そして、エンコーダ1289は、その決定したビン番号をSビン番号としてDラッチ回路126へ出力する。
上述したように、データ生成回路1272は、Y×MAXを演算し、データ生成回路1273は、Z×MAXを演算し、データ生成回路1274は、20×(MAX−MIN)を演算し、データ生成回路1275は、80×(MAX−MIN)を演算するので、データ生成回路1272〜1275の各々を加算器とシフト器とを用いた簡単な回路により実現できる。
結合重みの決定方法について説明する。図18は、結合重みを決定する方法を説明するための図である。図18を参照して、外側の円は、色相(Hue)を表しており、また、中心から円周方向へ彩度をとっている。
カラー領域と、色合いを殆ど識別できない無彩色に近い色とを分離するのにしきい値Sthとして0.2付近が適していることが実験的に解ったので、0.2を彩度の境界とする。内側の円は、彩度が0.2である境界を表し、0.2よりも彩度が低い領域は、ほぼ無彩色に近い色であり、0.2よりも彩度が高い領域は、有彩色として扱う。また、図中の×は、画素を表している。
2つの画素についてそれぞれ彩度S1,S2を演算し、その演算した2つの彩度S1,S2をしきい値Sth(=0.2)と比較する。
そして、2つの彩度S1,S2の両方がしきい値Sth以下であるとき、2つの画素は、無彩色領域に属すると判定し(図18の(a)の場合)、RGB値のみに基づいて、式(4),(5)を用いて2つの画素間の結合重みを決定する。
また、2つの彩度S1,S2のうち、いずれか一方がしきい値Sth以下であるとき、2つの画素のうち、一方が無彩色領域に属し、他方が有彩色領域に属すると判定し(図18の(b)の場合)、RGB値および彩度(S)を用いて2つの画素間の結合重みを決定する。
さらに、2つの彩度S1,S2の両方がしきい値Sthよりも大きいとき、2つの画素の両方が有彩色領域に属すると判定し(図18の(c)の場合)、RGB値および色相(H)を用いて2つの画素間の結合重みを決定する。
このように、この発明においては、実験的に求められたしきい値Sth(=0.2)を用いて、2つの画素が無彩色領域および有彩色領域のいずれに属するかを決定する。これによって、2つの画素がどの領域に属するかを正確に決定できる。
また、しきい値Sth(=0.2)は、人間が目視によって色合いを殆ど識別できない無彩色に近い色と、カラー領域とを分離するために実験的に求められたので、人間の実際の識別に沿って2つの画素がどの領域に属するかを正確に決定できる。
図18の(a)に示す場合、結合重みをHSV色空間の色相(H)を用いて計算しても、無彩色領域では、色相が意味を持たないため、領域の分割精度の向上を期待できない。HSV色空間の明度成分(V)を用いることも可能であるが、シミュレーションによりRGB値を用いた方が精度が向上するので、図18の(a)に示す領域では、RGB値のみを用いて結合重みを決定する。
また、図18の(b)に示す場合、図6に示すサンプル画像の人物の領域でリーダセルが見つかり、机の領域に領域が成長しており、無彩色領域からカラー領域へ領域が広がったために生じた分割ミスである。逆に、カラー領域から無彩色領域へ成長する場合もある。サンプル画像のように、人物と机の重なりによって発生する影の影響で色が徐々に変化し、はっきりとしたエッジが領域境界に現れない場合、RGB値だけでは、分割は難しい。
この問題を解決するために、彩度(S)を用いて実験的に求めたS=0.2の彩度境界をしきい値として、カラー領域(机領域)と無彩色領域(人物領域)との境界を検出することにした。
そして、2つの画素が無彩色領域と有彩色領域とに属する場合、彩度(S)を用いて無彩色領域と有彩色領域との境界を決定し、境界面に属する2つの画素間の結合重みを、RGB値の計算で求めた結合重みの値よりも小さく設定することで、有彩色領域から無彩色領域へ、または無彩色領域から有彩色領域へ領域の成長を抑制する方向に結合重みを決定する。これによって、画像分割において、有彩色領域から無彩色領域へ、または無彩色領域から有彩色領域への領域の成長が抑制され、コントラストが低い入力画像に対しても、画像を正確に分割できる。
さらに、図18の(c)に示す場合、RGB値を元に決定した画素間の結合重みでは、光の反射などにより明度および彩度に変化が生じた場合、画素間の各成分の差は大きくなるため、結合重みは小さい値になる。そのため、図7に示すサンプル画像では、同一領域をまとめて抽出することが困難であった。
そこで、明度および彩度が変化しても、色合いそのものは、さほど変化しないことに注目し、色相(H)を用いた色相判定を取り入れる。有彩色領域に属する画素同士の結合重みの決定には、まず、2つの画素の色相比較を行ない、色相の差があるしきい値以内であるか否か、つまり、2つの画素が同一色相とみなせる範囲であるか否かの判定を行なう。そして、同一色相であると判定した場合、RGB値から決定した結合重みが小さいときは(つまり、反射などの影響でRGB色空間では差が大きいとき)、領域を助長する方向へ、より大きい結合重みを与える。これにより、類似色相に属する有彩色領域の画素同士は、領域が成長し易くなり、反射などにより明度および彩度が変化する領域を1領域としてまとめて抽出することができる。
図18の(a),(b),(c)の各場合における具体的な結合重みの決定方法について説明する。
図18の(a)に示す場合、結合重みは、式(4),(5)によりRGB値のみを用いて決定されるが、式(4),(5)を用いて結合重みを演算する回路をディジタル回路として実装する場合、除算器は、回路面積が大きく、複数のクロックサイクルを必要とすることから、この発明においては、デコーダを用いてテーブルマッピングによって結合重みを決定する。表1は、RGB値のみを用いて結合重みを決定するときの変換テーブルを示す。
表1に示す変換テーブルは、注目画素(i,j)と近傍画素(k,l)との2画素のRGB値を用いて演算した明度Ii,jと明度Ik,lとの差の絶対値|Ii,j−Ik,l|と、結合重みとの対応関係を示す。
したがって、この発明においては、図18の(a)に示す場合、2つの画素(i,j),(k,l)のRGB値に基づいて、2つの明度Ii,j,Ik,lを演算し、その演算した2つの明度Ii,j,Ik,lの差の絶対値|Ii,j−Ik,l|を演算し、その演算した絶対値|Ii,j−Ik,l|に対応する結合重みを表1を参照して抽出することにより、2つの画素(i,j),(k,l)の結合重みを決定する。
次に、図18の(b)に示す場合、領域が広がるのを抑制するために、RGB色空間から表1の変換テーブルを用いて得られた結合重みよりも小さい結合重みを与える。
この場合、彩度境界(S=0.2)をしきい値として無彩色と有彩色との2値に分別したとき、彩度境界付近の画素間の結合重みと、彩度境界から完全に離れた彩度の全く異なる画素間の結合重みとを同様の基準で扱わないように、結合重みを決定する。
図19は、反射による画素値への影響を示す図である。また、図20は、彩度境界を変化させたときの無彩色画素値の変化を示す図である。
図19の(a)は、入力画像を示し、図19の(b)は、図19の(a)に示す道路の画像を、彩度境界(S=0.2)をしきい値として無彩色(0)と有彩色(1)とに2値化した画像を示し、図19の(c)は、画像分割の結果を示す。
図19の(b)から解るように、画像の道路部分は、実験的に求めた彩度境界(S=0.2)を無彩色領域と有彩色領域との分別のしきい値として用いると、画像中央を境に同一領域が有彩色領域と無彩色領域とに分かれて分類されてしまう。その結果、図19の(c)に示すように、道路は、彩度境界を境に領域の成長が抑制され、分割画像は、RGB色空間を用いた場合よりも精度が低下してしまう。
図20を参照して、曲線k1は、画像中にカラー領域を含む画像に対する無彩色画素数の変化を示し、曲線k2は、画像中にカラー領域を含まないグレー画像に対する無彩色画素数の変化を示す。
図20から解るように、カラー領域を含む画像は、彩度境界が50〜60付近(S=0.2)を境に無彩色画素数が飽和している。一方、グレー画像の場合、無彩色画素数は、線形的に変化し続ける。
この結果から、彩度境界を挟む2つの画素間の結合重みを領域が成長しない領域まで急激に下げてしまうと、彩度境界によってうまく無彩色領域と有彩色領域とを分けることができなかった場合、グレー領域の分割精度が低下する。
そこで、彩度境界に近い画素同士に対しては、結合重みの下げ幅を小さくし、彩度境界から離れるに従って結合重みの下げ幅を大きくする。これによって、グレー領域の分割精度を向上できる。
図18の(b)に示す場合における結合重みの変換テーブルを表2に示す。
表2から解るように、絶対値|Ii,j−Ik,l|が001x_xxxx,0000_1xxx,0000_01xx,0000_001x,0000_000xである場合、結合重みは、彩度差|Si,j−Sk,l|が大きくなるに従って、RGB値のみを用いて決定した結合重み(表1参照)からの下げ幅を大きくして決定される。
最後に、図18の(c)に示す場合の具体的な結合重みの決定方法について説明する。カラー画像では、反射などの影響がない場合、RGB色空間による結合重みの決定によって精度の高い領域分割結果が得られることが解っている。そのため、反射の影響を受けた画素間の結合重みに対してのみ、HSV色空間を用いて結合重みを最適化することが好ましい。
そこで、R,G,Bの各成分が乱反射の影響によって連続画素間でどの程度変化するかをサンプル画像を用いて調べた。図21は、R,G,Bの各成分の乱反射による影響を示す図である。
図21の(a)は、評価に用いたサンプル画像を示し、図21の(b)は、図21の(a)に示す線分A−B間上の画素のR,G,B値の変化を示し、図21の(c)は、図21の(a)に示す線分C−D間上の画素のR,G,B値の変化を示す。すなわち、図21の(b)は、光の反射の影響を受ける車のボディー領域の画素値の変化を示し、図21の(c)は、光の反射の影響を受けていない道路領域の画素値の変化を示す。
図21を参照して、ボディー領域は、道路領域に比べ、連続画素間で画素値の変化が大きい。そして、光の反射による画素間の変化量は、30から100の間に集中していることが反射領域を持つサンプル画像から解った。つまり、画素値の差が非常に小さい領域、または、逆に画素値の差が非常に大きい領域は、光の反射による影響を受けていないと判定することにする。
そこで、この発明においては、色相(H)の評価結果を利用した結合重みの最適化を表1に示す01xx_xxxx,001x_xxxx,0001_xxxxに限定することで、RGB値によるカラー領域の分割精度を保持しつつ、色相(H)によって精度を向上させることができる。
次に、2画素のHue値の差を元に、表1の01xx_xxxx,001x_xxxx,0001_xxxxにおける結合重みをどの値まで引き上げるかを検討する。色相(H)の幅を大きく取り過ぎると、異なる色まで領域が成長してしまう。たとえば、色相の近い赤と橙色の画素値が同一色相として扱われると、2領域を分離することが困難になる。
逆に、色相(H)の幅を小さくし過ぎると、RGB値から色相(H)への変換計算には、除算が必要であるため、回路面積が大きくなる。
そこで、実装面積と分割精度との両方を考慮してシミュレーションした結果、色相(H)の最小単位を4度に設定した場合、色相の近い色も分割できることが解った。
図22は、赤の車のボディーのHue値のヒストグラムを示す図である。また、図23は、青の車のボディーのHue値のヒストグラムを示す図である。
図22および図23を参照して、ヒストグラムの山を中心にして±10度幅に殆どの画素が集中して抽出されている。また、画素間のHue値の差は、同一領域(同一色)中では、約10度以内と非常に変化量が小さい。
したがって、上述した実験の結果を考慮して、2画素間のHue値の差|Hij−Hkl|に対して、4度以下、5度以上8度以下、およびそれ以外の3つの判定条件を設けて、図18の(c)に示す場合の結合重みの変換テーブルを表3に示すように決定した。
このように、2つの画素の色相差が4度変化するごとに2つの画素間の結合重みを変化させる。そして、色相差が小さい程、大きな結合重みが与えられる。
図24は、図2に示す重み計算ユニット132の構成図である。図24を参照して、重み計算ユニット132は、結合重み演算回路1320と、色相差計算回路1330と、彩度差計算回路1340と、結合重み修正回路1350,1360と、セレクタ信号生成回路1370と、セレクタ1380とを含む。
結合重み演算回路1320は、Dラッチ回路122およびFIFO回路123から受けた2つのRGB値に基づいて、表1を用いて2つの画素間の結合重みを演算し、その演算した結合重みを結合重み修正回路1350,1360およびセレクタ1380へ出力する。
結合重み演算回路1320は、絶対値演算器1321,1323,1325と、エンコーダ1322,1324,1326と、最小値選択回路1327とを含む。
絶対値演算器1321は、Dラッチ回路122およびFIFO回路123から受けた2つのR値RA,RBに基づいて、明度IA(R),IB(R)を演算し、その演算した明度IA(R),IB(R)の差の絶対値|IA(R)−IB(R)|を演算する。そして、絶対値演算器1321は、その演算した絶対値|IA(R)−IB(R)|をエンコーダ1322へ出力する。
エンコーダ1322は、表1を保持しており、絶対値演算器1321から絶対値|IA(R)−IB(R)|を受けると、表1を参照して、絶対値|IA(R)−IB(R)|に対応する結合重みWA,B(R)を抽出し、その抽出した結合重みWA,B(R)を最小値選択回路1327へ出力する。
絶対値演算器1323は、Dラッチ回路122およびFIFO回路123から受けた2つのG値GA,GBに基づいて、明度IA(G),IB(G)を演算し、その演算した明度IA(G),IB(G)の差の絶対値|IA(G)−IB(G)|を演算する。そして、絶対値演算器1323は、その演算した絶対値|IA(G)−IB(G)|をエンコーダ1324へ出力する。
エンコーダ1324は、表1を保持しており、絶対値演算器1323から絶対値|IA(G)−IB(G)|を受けると、表1を参照して、絶対値|IA(G)−IB(G)|に対応する結合重みWA,B(G)を抽出し、その抽出した結合重みWA,B(G)を最小値選択回路1327へ出力する。
絶対値演算器1325は、Dラッチ回路122およびFIFO回路123から受けた2つのB値BA,BBに基づいて、明度IA(B),IB(B)を演算し、その演算した明度IA(B),IB(B)の差の絶対値|IA(B)−IB(B)|を演算する。そして、絶対値演算器1325は、その演算した絶対値|IA(B)−IB(B)|をエンコーダ1326へ出力する。
エンコーダ1326は、表1を保持しており、絶対値演算器1325から絶対値|IA(B)−IB(B)|を受けると、表1を参照して、絶対値|IA(B)−IB(B)|に対応する結合重みWA,B(B)を抽出し、その抽出した結合重みWA,B(B)を最小値選択回路1327へ出力する。
最小値選択回路1327は、エンコーダ1322,1324,1326からそれぞれ結合重みWA,B(R),WA,B(G),WA,B(B)を受け、その受けた3個の結合重みWA,B(R),WA,B(G),WA,B(B)の中から最小の結合重みWA,Bを選択する。そして、最小値選択回路1327は、その選択した結合重みWA,Bを結合重み修正回路1350,1360およびセレクタ1380へ出力する。
色相差計算回路1330は、図14に示すHueビン番号の割当図を保持しており、Dラッチ回路127およびFIFO回路128からそれぞれHueビン番号AおよびHueビン番号Bを受ける。そして、色相差計算回路1330は、図14に示すHueビン番号の割当図を参照して、その受けたHueビン番号AおよびHueビン番号Bに対応するHue値HA,HBを検出する。そうすると、色相差計算回路1330は、色相差|HA−HB|を演算し、その演算した色相差|HA−HB|を結合重み修正回路1350へ出力する。
彩度差計算回路1340は、図16に示すSビン番号の割当図を保持しており、Dラッチ回路127およびFIFO回路128からそれぞれSビン番号AおよびSビン番号Bを受ける。そして、彩度差計算回路1340は、図16に示すSビン番号の割当図を参照して、その受けたSビン番号AおよびSビン番号Bに対応するS値SA,SBを検出する。この検出されたS値SA,SBは、256階調に規格化された値である。そうすると、彩度差計算回路1340は、彩度差|SA−SB|を演算し、その演算した彩度差|SA−SB|を結合重み修正回路1360へ出力する。
結合重み修正回路1350は、表3を保持しており、結合重み演算回路1320から結合重みWA,Bを受け、色相差計算回路1330から色相差|HA−HB|を受ける。そして、結合重み修正回路1350は、表3を参照して、結合重みWA,Bに一致する絶対値|Iij−Ikl|を抽出する。
その後、結合重み修正回路1350は、その抽出した絶対値|Iij−Ikl|が表3に示す1xxx_xxxx,0000_1xxx,0000_01xx,0000_001x,0000_000xのいずれかである場合、1xxx_xxxx,0000_1xxx,0000_01xx,0000_001x,0000_000xに対応する結合重みWA,B_Hを表3から抽出し、その抽出した結合重みWA,B_Hをセレクタ380へ出力する。
また、結合重み修正回路1350は、その抽出した絶対値|Iij−Ikl|が表3に示す01xx_xxxx,001x_xxxx,0001_xxxxのいずれかである場合、色相差|HA−HB|が○以下であるか否かを判定し、色相差|HA−HB|が○以下である場合、色相差|HA−HB|が○以下の場合の結合重みWA,B_H(○)を表3から抽出する。
より具体的には、結合重み修正回路1350は、その抽出した絶対値|Iij−Ikl|が表3に示す01xx_xxxxである場合、色相差|HA−HB|が“4度”以下であるか否かを判定し、色相差|HA−HB|が“4度”以下である場合、16からなる結合重みWA,B_Hを表3から抽出し、その抽出した結合重みWA,B_H(=16)をセレクタ380へ出力する。一方、結合重み修正回路350は、色相差|HA−HB|が“4度”以下でない場合、4からなる結合重みWA,B_Hを表3から抽出し、その抽出した結合重みWA,B_H(=4)をセレクタ1380へ出力する。
また、結合重み修正回路1350は、その抽出した絶対値|Iij−Ikl|が表3に示す001x_xxxxである場合、色相差|HA−HB|が“4度”以下であるか否かを判定し、色相差|HA−HB|が“4度”以下である場合、32からなる結合重みWA,B_Hを表3から抽出し、その抽出した結合重みWA,B_H(=32)をセレクタ1380へ出力する。一方、結合重み修正回路1350は、色相差|HA−HB|が“4度”以下でない場合、色相差|HA−HB|が“8度”以下であるか否かをさらに判定し、色相差|HA−HB|が“8度”以下である場合、16からなる結合重みWA,B_Hを表3から抽出し、その抽出した結合重みWA,B_H(=16)をセレクタ1380へ出力する。一方、結合重み修正回路1350は、色相差|HA−HB|が“8度”以下でない場合、8からなる結合重みWA,B_Hを表3から抽出し、その抽出した結合重みWA,B_H(=8)をセレクタ1380へ出力する。
さらに、結合重み修正回路1350は、その抽出した絶対値|Iij−Ikl|が表3に示す0001_xxxxである場合、色相差|HA−HB|が“4度”以下であるか否かを判定し、色相差|HA−HB|が“4度”以下である場合、32からなる結合重みWA,B_Hを表3から抽出し、その抽出した結合重みWA,B_H(=32)をセレクタ1380へ出力する。一方、結合重み修正回路1350は、色相差|HA−HB|が“4度”以下でない場合、16からなる結合重みWA,B_Hを表3から抽出し、その抽出した結合重みWA,B_H(=16)をセレクタ1380へ出力する。
結合重み修正回路1360は、表2を保持しており、結合重み演算回路1320から結合重みWA,Bを受け、彩度差計算回路1340から彩度差|SA−SB|を受ける。そして、結合重み修正回路1360は、表2を参照して、結合重みWA,Bに一致する絶対値|Iij−Ikl|を抽出する。
また、結合重み修正回路1360は、彩度差|SA−SB|が“6”以下であるか否かを判定し、彩度差|SA−SB|が“6”以下である場合、結合重みWA,Bに一致する絶対値|Iij−Ikl|と、“if≦6”とに対応する結合重みWA,B_Sを表2から抽出し、その抽出した結合重みWA,B_Sをセレクタ1380へ出力する。
一方、結合重み修正回路1360は、彩度差|SA−SB|が“6”以下でない場合、彩度差|SA−SB|が“9”以下であるか否かをさらに判定し、彩度差|SA−SB|が“9”以下である場合、結合重みWA,Bに一致する絶対値|Iij−Ikl|と、“else if≦9”とに対応する結合重みWA,B_Sを表2から抽出し、その抽出した結合重みWA,B_Sをセレクタ1380へ出力する。
一方、結合重み修正回路1360は、彩度差|SA−SB|が“9”以下でない場合、彩度差|SA−SB|が“12”以下であるか否かをさらに判定し、彩度差|SA−SB|が“12”以下である場合、結合重みWA,Bに一致する絶対値|Iij−Ikl|と、“else if≦12”とに対応する結合重みWA,B_Sを表2から抽出し、その抽出した結合重みWA,B_Sをセレクタ1380へ出力する。
一方、結合重み修正回路1360は、彩度差|SA−SB|が“12”以下でない場合、結合重みWA,Bに一致する絶対値|Iij−Ikl|と、“else”とに対応する結合重みWA,B_Sを表2から抽出し、その抽出した結合重みWA,B_Sをセレクタ1380へ出力する。
セレクタ信号生成回路1370は、しきい値Sth(=0.2)および図16に示すSビン番号の割当図を保持しており、Dラッチ回路127およびFIFO回路128からそれぞれSビン番号AおよびSビン番号Bを受ける。そして、セレクタ信号生成回路1370は、図16に示すSビン番号の割当図を参照して、その受けたSビン番号AおよびSビン番号Bに対応するS値SA,SBを検出する。
そうすると、セレクタ信号生成回路1370は、その検出した2つのS値SA,SBをしきい値Sthと比較する。そして、セレクタ信号生成回路1370は、2つのS値SA,SBの両方がしきい値Sth以下であるとき、結合重み演算回路1320から受けた結合重みWA,Bを選択するためのセレクタ信号SEL_RGBを生成し、その生成したセレクタ信号SEL_RGBをセレクタ1380へ出力する。
また、セレクタ信号生成回路1370は、2つのS値SA,SBのいずれか一方がしきい値Sth以下であるとき、結合重み修正回路1360から受けた結合重みWA,B_Sを選択するためのセレクタ信号SEL_Sを生成し、その生成したセレクタ信号SEL_Sをセレクタ1380へ出力する。
さらに、セレクタ信号生成回路1370は、2つのS値SA,SBの両方がしきい値Sthよりも大きいとき、結合重み修正回路1350から受けた結合重みWA,B_Hを選択するためのセレクタ信号SEL_Hを生成し、その生成したセレクタ信号SEL_Hをセレクタ1380へ出力する。
セレクタ1380は、結合重み演算回路1320から結合重みWA,Bを受け、結合重み修正回路1350,1360からそれぞれ結合重みWA,B_H,WA,B_Sを受ける。そして、セレクタ1380は、セレクタ信号生成回路1370からセレクタ信号SEL_RGBを受けると、結合重みWA,Bを選択し、その選択した結合重みWA,Bを結合重みCWとして出力する。また、セレクタ1380は、セレクタ信号生成回路1370からセレクタ信号SEL_Sを受けると、結合重みWA,B_Sを選択し、その選択した結合重みWA,B_Sを結合重みCWとして出力する。さらに、セレクタ1380は、セレクタ信号生成回路1370からセレクタ信号SEL_Hを受けると、結合重みWA,B_Hを選択し、その選択した結合重みWA,B_Hを結合重みCWとして出力する。
図2に示す重み計算ユニット133は、図24に示す重み計算ユニット132と同じ構成からなり、Dラッチ回路121,124から受けたRGB値RGBA,RGBBと、Dラッチ回路126,129から受けたHueビン番号A、Hueビン番号B、Sビン番号A、およびSビン番号Bに基づいて、重み計算ユニット132と同じ方法によって、結合重みWA,B,WA,B_H,WA,B_Sを演算し、その演算した結合重みWA,B,WA,B_H,WA,B_Sのいずれかを結合重みCWとして選択して出力する。
また、図2に示す重み計算ユニット134は、図24に示す重み計算ユニット132と同じ構成からなり、Dラッチ回路124から受けたRGB値RGBAと、Dラッチ回路129から受けたHueビン番号AおよびSビン番号Aと、選択器130から受けたRGB値RGBB、Hueビン番号BおよびSビン番号Bとに基づいて、重み計算ユニット132と同じ方法によって、結合重みWA,B,WA,B_H,WA,B_Sを演算し、その演算した結合重みWA,B,WA,B_H,WA,B_Sのいずれかを結合重みCWとして選択して出力する。
さらに、図2に示す重み計算ユニット135は、図24に示す重み計算ユニット132と同じ構成からなり、Dラッチ回路121から受けたRGB値RGBAと、Dラッチ回路126から受けたHueビン番号AおよびSビン番号Aと、選択器131から受けたRGB値RGBB、Hueビン番号BおよびSビン番号Bとに基づいて、重み計算ユニット132と同じ方法によって、結合重みWA,B,WA,B_H,WA,B_Sを演算し、その演算した結合重みWA,B,WA,B_H,WA,B_Sのいずれかを結合重みCWとして選択して出力する。
画像分割回路13における画像の分割方法について説明する。図25は、画像の分割方法を説明するための図である。画像分割回路13は、領域成長型画像分割方法によって1つのフレームを各対象物の画像に分割する。
この領域成長型画像分割方法は、LEGIONモデル(D. L. Wang, and D. Terman, “Image segmentation based on oscillator correlation,” Neural Computation, Volume 9(4), pp. 805-836(1997).)の振動子ネットワークの各画素に対する振動子の振る舞いを自己発火(Self−Excitation)、自己発火可能(Self−Excitable)、発火(Excitation)および鎮火(Inhibition)という4つの状態で取り扱うものである。そして、この領域成長型画像分割方法は、初期化、自己発火、発火、および鎮火の4つのステップからなる。
画像分割回路13は、図25の(a)に示す3×3の構成からなる入力画像を受ける。そして、画像分割回路13は、入力画像を構成する9個の画素における画素間の8個の結合重みCW1〜CW8を結合重み決定回路12から受け、その受けた8個の結合重みCW1〜CW8を各画素間に対応付けてメモリに保持する。なお、図25の(b)においては、(2,2)の画素と周囲の画素との8個の結合重みが図示されている。
そうすると、画像分割回路13は、メモリに保持された8個の結合重みCW1〜CW8を読み出し、その読み出した8個の結合重みCW1〜CW8の和SUM(CW)を演算する。そして、画像分割回路13は、その演算した和SUM(CW)がリーダセルを決定するためのしきい値φPよりも大きいか否かを判定する。なお、この出願においては、SUMは、数学におけるシグマ記号によって表される和を演算することを意味する。
画像分割回路13は、和SUM(CW)がしきい値φPよりも大きいと判定したとき、結合重みの計算の中心となった画素をリーダセルに設定し、リーダセルフラグpij=1を設定する。一方、画像分割回路3は、和SUM(CW)がしきい値φP以下であると判定したとき、結合重みの計算の中心となった画素をリーダセルに設定せず、リーダセルフラグpij=0を設定する。
画像分割回路13は、この処理を入力画像の9個の画素の各々を結合重みの計算の中心となる画素に設定して実行し、リーダセルを決定する(図25の(c)参照)。
その後、画像分割回路13は、リーダセルの1つを自己発火させる(発火フラグxij=1)(図25の(d)参照)。そして、画像分割回路3は、各セル(i,j)に隣接する8個の画素に対応するセル(k,l)∈Nijが発火していれば、セル(i,j)とセル(k,l)との間の結合重みの和SUM(k,l)∈Nij∧xkl=1Wij;klを演算し、その演算した和SUM(k,l)∈Nij∧xkl=1Wij;klがしきい値φZよりも大きく、かつ、まだ、セル(i,j)がどの分割領域にも属していない(ラベルフラグlij=0)場合に、自動的に発火(xij=1)させる(引火・領域成長)(図25の(e)参照)。この引火処理によって、領域が広がっていき、図25の(f)に示すように、新たに発火するセルが存在しなくなると、1領域の分割が終了する。
その後、画像分割回路13は、この分割された領域を保存するために、図25の(g)に示すように、発火しているセルへ分割領域識別のためのラベル番号を書き込み、発火したセルが既に分割されたセルであることを示すラベルフラグをセットし(lij=1)、鎮火処理(xij=0,pij=0)を行なう。
画像分割回路13は、鎮火処理が終了すると、再び、次の領域の分割のための自己発火の処理に戻る。そして、画像分割回路13は、リーダセルが存在しなくなるまで、上述した処理を繰り返し実行し、各領域を分割する。そして、画像分割回路13は、全てのリーダセルが発火した後、全ての領域にラベル付けを行ない、1フレームの画像の分割を終了する(図25の(h)参照)。
図1に示す追跡ユニット2における動作について説明する。図26は、追跡物体を得るための概念図である。図26を参照して、画像分割ユニット1は、入力画像(図26の(a)参照)を上述した方法によって複数の分割画像に分割し、その分割した複数の分割画像を追跡ユニット2へ出力する。
追跡ユニット2は、画像分割ユニット1の画像分割回路13から複数の分割画像を受け、その受けた複数の分割画像によって表されている複数の分割物体を静止物体と移動物体とに分類する。より具体的には、追跡ユニット2は、t−1(tは、2以上の整数)番目のフレームF(t−1)を分割して得られた複数の分割画像DG1(t−1)〜DGm(t−1)(mは2以上の整数)を画像分割回路13から受けると、その受けた複数の分割画像DG1(t−1)〜DGm(t−1)によって表される複数の分割物体OJ1(t−1)〜OJm(t−1)の特徴量を抽出して記憶する。この場合、追跡ユニット2は、特徴量として、各分割物体OJ1(t−1)〜OJm(t−1)の位置、サイズ(幅および高さ)、色(R,G,B)、面積および推定位置を抽出する。
その後、追跡ユニット2は、t番目のフレームF(t)を分割して得られた複数の分割画像DG1(t)〜DGm(t)を画像分割回路13から受けると、その受けた複数の分割画像DG1(t)〜DGm(t)によって表される複数の分割物体OJ1(t)〜OJm(t)の特徴量を抽出して記憶する。
そうすると、追跡ユニット2は、内蔵した連想メモリによって、分割物体OJ1(t−1)〜OJm(t−1)の特徴量と分割物体OJ1(t)〜OJm(t)の特徴量とを用いて、分割物体OJ1(t−1)〜OJm(t−1)と分割物体OJ1(t)〜OJm(t)とのオブジェクトマッチングを行なう。たとえば、追跡ユニット2は、分割物体OJ1(t−1)〜OJm(t−1)の特徴量とのマンハッタン距離が最小となる特徴量を有する分割物体OJ1(t)〜OJm(t)を検出することによって分割物体OJ1(t−1)〜OJm(t−1)と分割物体OJ1(t)〜OJm(t)とのオブジェクトマッチングを行なう。
そして、追跡ユニット2は、オブジェクトマッチングした分割物体OJ1(t−1),OJ1(t)の位置に基づいて、分割物体OJ1(t)の動きベクトルMV1(t)を求める。追跡ユニット2は、分割物体OJ2(t)〜OJm(t)の各々についても、動きベクトルMV2(t)〜MVm(t)を求める。
その後、追跡ユニット2は、その求めた動きベクトルMV1(t)〜MVm(t)に基づいて、大きさが“1”以上である動きベクトルを有する分割物体を移動物体とし、大きさが“1”よりも小さい動きベクトルを有する分割物体を静止物体として分割物体OJ1(t)〜OJm(t)を移動物体と静止物体とに分類する。
引き続いて、追跡ユニット2は、移動物体が得られると(図26の(b)参照)、その得られた移動物体を後述する方法によってグループ化し、追跡物体(図26の(c)参照)を認識する。
追跡ユニット2は、新たなフレームを分割して得られた複数の分割画像を画像分割ユニット1の画像分割回路13から受けるごとに、上述した方法によって、追跡物体を認識する。
図27は、分割物体の動きベクトルおよび推定位置を求める方法を説明するための図である。図27を参照して、追跡ユニット2は、複数の分割画像DG1(t−1)〜DGm(t−1)を画像分割回路13から受けると、その受けた複数の分割画像DG1(t−1)〜DGm(t−1)の各々において、分割物体に内接するボックスBiを生成する。ボックスBiは、4個の頂点A,B,C,Dを有し、図27に示すx−y座標系において、頂点Aは、座標(Xxmin,Yymin)を有し、頂点Bは、座標(Xxmin,Yymax)を有し、頂点Cは、座標(Xxmax,Yymax)を有し、頂点Dは、座標(Xxmax,Yymin)を有する。
追跡ユニット2は、ボックスBiを生成すると、その生成したボックスBiの4個の頂点A,B,C,Dの座標に基づいて、ボックスBiの中心位置を求め、その求めた中心位置を分割物体(=Segment i)の位置とする。また、追跡ユニット2は、ボックスBiの4個の頂点A,B,C,Dの座標に基づいて、分割物体(=Segment i)のサイズ(幅および高さ)を求める。さらに、追跡ユニット2は、分割画像DG1(t−1)〜DGm(t−1)の各々において、分割物体(=Segment i)のRGB値と面積とを検出する。
追跡ユニット2は、複数の分割画像DG1(t)〜DGm(t)を画像分割回路13から受けると、その受けた複数の分割画像DG1(t)〜DGm(t)の各々において、同様にして、分割物体(=Segment i)の位置、サイズ(幅および高さ)、RGB値、および面積を求める。
その後、追跡ユニット2は、上述したオブジェクトマッチングを行ない、分割画像DG1(t−1)における分割物体OJ1(t−1)の位置と、分割画像DG1(t)における分割物体OJ1(t)の位置とに基づいて、分割物体OJ1(t)の動きベクトルMV1(t)を求める。追跡ユニット2は、同様にして、分割物体OJ2(t)〜OJm(t)の動きベクトルMV2(t)〜MVm(t)を求める。
そうすると、追跡ユニット2は、その求めた動きベクトルMV1(t)〜MVm(t)を分割画像DG1(t)〜DGm(t)における分割物体Segment_1〜Segment_mの位置に加算することによって分割物体Segment_1〜Segment_mの推定位置を求める。そして、追跡ユニット2は、分割物体(=Segment i)の位置、サイズ(幅および高さ)、RGB値、面積および推定位置を分割物体(=Segment i)の特徴量として記憶する。
図28は、分割物体のグループ化に必要なバウンディングボックスの定義を示す図である。図28を参照して、追跡ユニット2は、上述した方法によってボックスBiを生成すると、その生成したボックスBiにマージンmarginを加えたボックスをバウンディングボックスBBiとして定義する。
このバウンディングボックスBBiは、図28に示すx−y座標系において、座標(Xxmax+margin,Yymin−margin)からなる頂点Pmax,iと、座標(Xxmin−margin,Yymax+margin)からなる頂点Pmin,iとを有する。
このように、ボックスBiにマージンmarginを付加したボックスをバウンディングボックスBBiとするのは、画像分割によって物体の境界部分の領域が本来の物体の境界部分の領域よりも粗くなり、分割物体が本来の大きさよりも縮小されるため、これを補完するためである。
ボックスBiの中心位置は、バウンディングボックスBBiの中心位置と一致するので、分割物体(=Segment i)の位置は、バウンディングボックスBBiの中心位置と一致する。したがって、動きベクトルMVは、バウンディングボックスBBiの中心位置を起点として求められることになる。
追跡ユニット2は、分割画像DG1(t)〜DGm(t)における分割物体OJ1(t)〜OJm(t)のバウンディングボックスBB1〜BBmを求めると、分割物体OJ1(t)〜OJm(t)を移動物体と静止物体とに分類し、移動物体に分類された分割物体のいずれかを注目物体SOJとして選択するとともに、注目物体SOJに類似する分割物体を残りの移動物体(移動物体MOJ1(t)〜MOJn(t)≠SOJ)から検出する。
この場合、追跡ユニット2は、注目物体SOJの動きベクトルに類似する動きベクトルを有し、かつ、注目物体SOJのバウンディングボックスと交差するバウンディングボックスを有する分割物体を注目物体SOJに類似する物体として検出する。
そして、追跡ユニット2は、2つの動きベクトルが類似するか否かを次の方法によって判定する。すなわち、追跡ユニット2は、2つの動きベクトルの差を演算し、その演算した差がしきい値以下であるとき、2つの動きベクトルが類似すると判定し、その演算した差がしきい値よりも大きいとき、2つの動きベクトルが類似しないと判定する。
図29は、バウンディングボックスの交差を示す概念図である。図29を参照して、バウンディングボックスBB1は、頂点max1,min1を有し、バウンディングボックスBB2は、頂点max2,min2を有する。
そして、頂点max1のx座標max1_xが頂点min2のx座標min2_x以上であり(max1_x≧min2_x)、かつ、頂点min1のx座標min1_xが頂点max2のx座標max2_x以下であり(min1_x≦max2_x)、かつ、頂点max1のy座標max1_yが頂点min2のy座標min2_y以上であり(max1_y≧min2_y)、かつ、頂点min1のy座標min1_yが頂点max2のy座標max2_y以下であるとき(min1_y≦max2_y)、2つのバウンディングボックスBB1,BB2は、相互に交差する。
したがって、追跡ユニット2は、max1_x≧min2_x、min1_x≦max2_x、max1_y≧min2_yおよびmin1_y≦max2_yの4個の不等式が同時に成立するとき、2つのバウンディングボックスBB1,BB2が交差すると判定し、max1_x≧min2_x、min1_x≦max2_x、max1_y≧min2_yおよびmin1_y≦max2_yの4個の不等式の少なくとも1つが成立しないとき、2つのバウンディングボックスBB1,BB2が交差しないと判定する。
追跡ユニット2は、まず、上述した方法によって、注目物体SOJのバウンディングボックスが注目物体SOJ以外の他の分割物体のバウンディングボックスと交差するか否かを判定する。そして、追跡ユニット2は、注目物体SOJのバウンディングボックスが他の分割物体のバウンディングボックスと交差しないと判定したとき、他の分割物体が注目物体SOJに類似しないと判定する。
一方、追跡ユニット2は、注目物体SOJのバウンディングボックスが他の移動物体のバウンディングボックスと交差すると判定したとき、注目物体SOJの動きベクトルと他の移動物体の動きベクトルとが類似するか否かをさらに判定する。そして、追跡ユニット2は、注目物体SOJの動きベクトルと他の移動物体の動きベクトルとが類似するとき、他の移動物体が注目物体SOJに類似すると判定し、注目物体SOJおよび他の移動物体に同じグループ番号を与えて注目物体SOJおよび他の移動物体をグループ化する。
一方、追跡ユニット2は、注目物体SOJの動きベクトルと他の移動物体の動きベクトルとが類似しないとき、他の移動物体が注目物体SOJに類似しないと判定する。
追跡ユニット2は、この処理を注目物体SOJと、注目物体SOJ以外の他の移動物体の全てとについて実行し、グループ化を行なう。
追跡ユニット2は、たとえば、図26の(b)に示す車の3個の窓および車の天井からなる4個の移動物体を上述した方法によってグループ化し、追跡対象である車(図26の(c)参照)を認識する。
図30は、この発明の実施の形態による物体追跡方法を説明するためのフローチャートである。
図30を参照して、物体追跡の動作が開始されると、物体追跡装置10の画像分割ユニット1は、フレームを読み込み(ステップS1)、その読み込んだフレームを上述した方法によって画像分割する(ステップS2)。そして、画像分割ユニット1は、その分割した分割画像を追跡ユニット2へ出力する。
追跡ユニット2は、画像分割ユニット1から分割画像を受け、その受けた分割画像に表された各分割物体の特徴量を抽出し(ステップS3)、その抽出した特徴量を記憶する。
そして、追跡ユニット2は、処理をしているフレームが1番目のフレームか否かを判定し(ステップS4)、処理をしているフレームが1番目のフレームであるとき、フレームの読込が有るか否かをさらに判定する(ステップS5)。
ステップS5において、フレームの読込が無いと判定されたとき、一連の動作は、終了する。
一方、ステップS5において、フレームの読込が有ると判定されたとき、一連の動作は、ステップS2へ戻り、上述したステップS2〜ステップS5が繰返し実行される。
一方、ステップS4において、処理しているフレームが1番目のフレームでないと判定されたとき、追跡ユニット2は、上述した方法によって、フレーム間における各分割物体のオブジェクトマッチングを行なう(ステップS6)。そして、追跡ユニット2は、オブジェクトマッチングされた分割物体の動きベクトルを求め、その求めた動きベクトルを分割物体の位置に加算して分割物体の推定位置を計算する(ステップS7)。
その後、追跡ユニット2は、動きベクトルおよびバウンディングボックスを用いてグループ化を行ない(ステップS8)、グループ情報を出力する(ステップS9)。
そして、追跡ユニット2は、フレームの読込が有るか否かを判定する(ステップS10)。ステップS10において、フレームの読込が有ると判定されたとき、一連の動作は、ステップS2へ戻り、ステップS10において、フレームの読込が無いと判定されるまで、上述したステップS2〜ステップS10が繰返し実行される。
そして、ステップS10において、フレームの読込が無いと判定されたとき、一連の動作は、終了する。
図31は、図30のステップS2の詳細な動作を説明するためのフローチャートである。図31を参照して、図30のステップS1の後、画素値検出回路11は、n×n(nは、2以上の整数)からなる入力画像の各画素GEij(1≦i≦n,1≦j≦n)のRGB値RGBij(1≦i≦n,1≦j≦n)を検出し(ステップS21)、その検出した各画素のRGB値RGBijを結合重み決定回路12へ出力する。
結合重み決定回路12は、画素値検出回路11から各画素GEij(1≦i≦n,1≦j≦n)のRGB値RGBij(1≦i≦n,1≦j≦n)を受け、その受けた各画素GEij(1≦i≦n,1≦j≦n)のRGB値RGBij(1≦i≦n,1≦j≦n)を上述した方法によって色相Hij(1≦i≦n,1≦j≦n)および彩度Sij(1≦i≦n,1≦j≦n)に変換し、RGB値RGBij(1≦i≦n,1≦j≦n)、色相Hij(1≦i≦n,1≦j≦n)および彩度Sij(1≦i≦n,1≦j≦n)に基づいて、各画素間の結合重みWij;kl(1≦i≦n,1≦j≦n,1≦k≦n,1≦l≦n)を決定する(ステップS22)。そして、結合重み決定回路12は、その決定した各画素間の結合重みWij;kl(1≦i≦n,1≦j≦n,1≦k≦n,1≦l≦n)を画像分割回路13へ出力する。
画像分割回路13は、外部から入力画像を受け、結合重み決定回路12から各画素間の結合重みWij;kl(1≦i≦n,1≦j≦n,1≦k≦n,1≦l≦n)を受ける。そして、画像分割回路13は、その受けた各画素間の結合重みWij;kl(1≦i≦n,1≦j≦n,1≦k≦n,1≦l≦n)を用いて1フレームの画像を分割する(ステップS23)。そして、一連の動作は、図30のステップS3へ移行する。
図32は、図31に示すステップS22の詳細な動作を説明するためのフローチャートである。なお、図32においては、図3に示す画素GE1を画素GEijとし、画素GE2を画素GEklとし、画素GE3を画素GEi+1,jとし、画素GE4を画素GEk+1,lとしてステップS2の詳細な動作を説明する。
図32を参照して、図31に示すステップS21の後、結合重み決定回路12は、画素値検出回路11から複数の画素GEij(1≦i≦n,1≦j≦n)の複数のRGB値RGBij(1≦i≦n,1≦j≦n)を順次受ける。そして、結合重み決定回路12は、i=1,j=1,k=1,l=1を設定する(ステップS221)。
そして、結合重み決定回路12は、入力画像の複数の画素GEij(1≦i≦n,1≦j≦n)のうち、画素値検出回路11から順次入力される隣接する2つの画素GEij,GEkl(1≦k≦n,1≦l≦n)を選択する(ステップS222)。
その後、結合重み決定回路12は、HS変換回路125によって、画素GEijのRGB値RGBijを上述した方法によって色相Hijおよび彩度Sijに変換し(ステップS223)、画素GEklのRGB値RGBklを上述した方法によって色相Hklおよび彩度Sklに変換する(ステップS224)。
そして、結合重み決定回路12において、4組の隣接画素GEij,GEkl;GEi+1,j,GEkl;GEij,GEk+1,l;GEi+1,j,GEk+1,lのRGB値が色相および彩度に変換されたか否かが判定される(ステップS225)。
ステップS225において、4組の隣接画素GEij,GEkl;GEi+1,j,GEkl;GEij,GEk+1,l;GEi+1,j,GEk+1,lのRGB値が色相および彩度に変換されていないと判定されたとき、i,kのいずれかまたは両方が“1”だけ変化される(ステップS226)。その後、一連の動作は、ステップS222へ戻り、ステップS225において、4組の隣接画素GEij,GEkl;GEi+1,j,GEkl;GEij,GEk+1,l;GEi+1,j,GEk+1,lのRGB値が色相および彩度に変換されたと判定されるまで、ステップS222〜ステップS226が繰り返し実行される。
そして、ステップS225において、4組の隣接画素GEij,GEkl;GEi+1,j,GEkl;GEij,GEk+1,l;GEi+1,j,GEk+1,lのRGB値が色相および彩度に変換されたと判定されると、結合重み決定回路12の4個の重み計算ユニット132〜135は、平行して隣接画素間の結合重みを決定する(ステップS227〜ステップS230)。
この場合、重み計算ユニット132は、画素GEkl,GEi+1,j間の結合重みWk,l;i+1,jを決定し、重み計算ユニット133は、画素GEij,GEk+1,l間の結合重みWij;k+1,lを決定し、重み計算ユニット134は、画素GEij,GEkl間の結合重みWij;klを決定し、重み計算ユニット135は、画素GEi+1,j,GEk+1,l間の結合重みWi+1,j;k+1,lを決定する。
ステップS227〜ステップS230の後、結合重み決定回路12において、i=n、かつ、j=nであるか否かが判定され(ステップS231)、i=n、かつ、j=nでないとき、i,jのいずれかまたは両方が“1”だけ変化され(ステップS232)、k=1およびl=1が設定される(ステップS233)。
その後、一連の動作は、ステップS222へ戻り、ステップS231において、i=n、かつ、j=nであると判定されるまで、ステップS222〜ステップS233が繰り返し実行される。
そして、ステップS231において、i=n、かつ、j=nであると判定されると、一連の動作は、図31のステップS23へ移行する。
図33は、図32に示すステップS227の詳細な動作を説明するためのフローチャートである。図33を参照して、図32のステップS225の“YES”の後、重み計算ユニット132の結合重み演算回路1320は、FIFO回路123から受けたRGB値RGBklと、Dラッチ回路122から受けたRGB値RGBi+1,jとに基づいて、上述した方法によって、画素GEkl,GEi+1,j間の結合重みWi+1,j;kl_RGBを決定し、その決定した結合重みWi+1,j;kl_RGBを結合重み修正回路1350,1360およびセレクタ1380へ出力する。
また、色相差計算回路1330は、FIFO回路128から画素GEklのHueビン番号Aを受け、Dラッチ回路127から画素GEi+1,jのHueビン番号Bを受ける。そして、色相差計算回路1330は、図14に示すHueビン番号の割当図を参照して、Hueビン番号Aに対応する色相Hklを抽出し、Hueビン番号Bに対応する色相Hi+1,jを抽出する。
そうすると、色相差計算回路1330は、色相Hklと色相Hi+1,jとの色相差|Hkl−Hi+1,j|を演算し、その演算した色相差|Hkl−Hi+1,j|を結合重み修正回路1350へ出力する。
結合重み修正回路1350は、色相差計算回路1330から色相差|Hkl−Hi+1,j|を受け、結合重み演算回路1320から結合重みWi+1,j;kl_RGBを受ける。そして、結合重み修正回路1350は、表3を参照して、結合重みWi+1,j;kl_RGBおよび色相差|Hkl−Hi+1,j|に基づいて、上述した方法によって結合重みWi+1,j;kl_Hを抽出し、その抽出した結合重みWi+1,j;kl_Hをセレクタ1380へ出力する。
さらに、彩度差計算回路1340は、FIFO回路128から画素GEklのSビン番号Aを受け、Dラッチ回路127から画素GEi+1,jのSビン番号Bを受ける。
そして、彩度差計算回路1340は、図16に示すSビン番号の割当図を参照して、Sビン番号Aに対応する彩度Sklを抽出し、Sビン番号Bに対応する彩度Si+1,jを抽出する。
そうすると、彩度差計算回路1340は、彩度Sklと彩度Si+1,jとの彩度差|Skl−Si+1,j|を演算し、その演算した彩度差|Skl−Si+1,j|を結合重み修正回路1360へ出力する。
結合重み修正回路1360は、彩度差計算回路1340から彩度差|Skl−Si+1,j|を受け、結合重み演算回路1320から結合重みWi+1,j;kl_RGBを受ける。そして、結合重み修正回路1360は、表2を参照して、結合重みWi+1,j;kl_RGBおよび彩度差|Skl−Si+1,j|に基づいて、上述した方法によって結合重みWi+1,j;kl_Sを抽出し、その抽出した結合重みWi+1,j;kl_Sをセレクタ1380へ出力する。
一方、重み計算ユニット132のセレクタ信号生成回路1370は、FIFO回路128から画素GEklのSビン番号Aを受け、Dラッチ回路127から画素GEi+1,jのSビン番号Bを受ける。
そして、セレクタ信号生成回路1370は、図16に示すSビン番号の割当図を参照して、Sビン番号Aに対応する彩度Sklを抽出し、Sビン番号Bに対応する彩度Si+1,jを抽出する。
そうすると、セレクタ信号生成回路1370は、彩度Si+1,jがしきい値Sth(=0.2)以下であり、かつ、彩度Sklがしきい値Sth(=0.2)以下であるか否かを判定する(ステップS2271)。
ステップS2271において、彩度Si+1,jがしきい値Sth(=0.2)以下であり、かつ、彩度Sklがしきい値Sth(=0.2)以下であると判定されたとき、セレクタ信号生成回路1370は、セレクタ信号SEL_RGBを生成し、その生成したセレクタ信号SEL_RGBをセレクタ1380へ出力する。
セレクタ1380は、結合重み演算回路1320から結合重みWi+1,j;kl_RGBを受け、結合重み修正回路1350から結合重みWi+1,j;kl_Hを受け、結合重み修正回路1360から結合重みWi+1,j;kl_Sを受ける。そして、セレクタ1380は、セレクタ信号生成回路1370からセレクタ信号SEL_RGBを受けると、セレクタ信号SEL_RGBに応じて、3個の結合重みWi+1,j;kl_RGB,Wi+1,j;kl_H,Wi+1,j;kl_Sから結合重みWi+1,j;kl_RGBを選択し、その選択した結合重みWi+1,j;kl_RGBを結合重みWi+1,j;klと決定する。つまり、重み計算ユニット132は、RGB値RGBi+1,j,RGBklによって結合重みWi+1,j;klを決定する(ステップS2272)。そして、重み計算ユニット132は、その決定した結合重みWi+1,j;klを画像分割回路13へ出力する。
一方、ステップS2271において、彩度Si+1,jがしきい値Sth(=0.2)以下であり、かつ、彩度Sklがしきい値Sth(=0.2)以下でないと判定されたとき、セレクタ信号生成回路1370は、彩度Si+1,j,Sklの一方のみがしきい値Sth(=0.2)以下であるか否かをさらに判定する(ステップS2273)。
そして、ステップS2273において、彩度Si+1,j,Sklの一方のみがしきい値Sth(=0.2)以下であると判定されたとき、セレクタ信号生成回路1370は、セレクタ信号SEL_Sを生成し、その生成したセレクタ信号SEL_Sをセレクタ1380へ出力する。
セレクタ1380は、セレクタ信号生成回路1370からセレクタ信号SEL_Sを受けると、セレクタ信号SEL_Sに応じて、3個の結合重みWi+1,j;kl_RGB,Wi+1,j;kl_H,Wi+1,j;kl_Sから結合重みWi+1,j;kl_Sを選択し、その選択した結合重みWi+1,j;kl_Sを結合重みWi+1,j;klと決定する。つまり、重み計算ユニット132は、RGB値RGBi+1,j,RGBklおよび彩度Si+1,j,Sklによって結合重みWi+1,j;klを決定する(ステップS2274)。そして、重み計算ユニット132は、その決定した結合重みWi+1,j;klを画像分割回路13へ出力する。
一方、ステップS2273において、彩度Si+1,j,Sklの一方のみがしきい値Sth(=0.2)以下でないと判定されたとき、セレクタ信号生成回路1370は、セレクタ信号SEL_Hを生成し、その生成したセレクタ信号SEL_Hをセレクタ1380へ出力する。
セレクタ1380は、セレクタ信号生成回路1370からセレクタ信号SEL_Hを受けると、セレクタ信号SEL_Hに応じて、3個の結合重みWi+1,j;kl_RGB,Wi+1,j;kl_H,Wi+1,j;kl_Sから結合重みWi+1,j;kl_Hを選択し、その選択した結合重みWi+1,j;kl_Hを結合重みWi+1,j;klと決定する。つまり、重み計算ユニット132は、RGB値RGBi+1,j,RGBklおよび色相Hi+1,j,Hklによって結合重みWi+1,j;klを決定する(ステップS2275)。そして、重み計算ユニット132は、その決定した結合重みWi+1,j;klを画像分割回路13へ出力する。
そうすると、ステップS2272,S2274,S2275のいずれかの後、一連の動作は、図32のステップS231へ移行する。
なお、ステップS2274は、RGB値RGBi+1,j,RGBklのみによって結合重みWi+1,j;kl_RGBを決定するステップと、その決定した結合重みWi+1,j;kl_RGBを彩度Si+1,j,Sklの彩度差|Si+1,j−Skl|に応じて小さくするステップとからなる。
また、ステップS2275は、RGB値RGBi+1,j,RGBklのみによって結合重みWi+1,j;kl_RGBを決定するステップと、その決定した結合重みWi+1,j;kl_RGBを色相Hi+1,j,Hklの色相差|Hi+1,j−Hkl|に応じて大きくするステップとからなる。
さらに、図32に示すステップS228〜ステップ230の各々における詳細な動作も、図33に示すステップS2271〜ステップS2275によって実行される。
図34は、図31に示すステップS23の詳細な動作を説明するためのフローチャートである。図34を参照して、図31に示すステップS22の後、画像分割回路13は、結合重み決定回路12から1フレームを構成する複数の画素における各画素間の結合重みを受けるとともに、上述した方法によって、リーダセルを決定する(ステップS231)。
そして、画像分割回路13は、自己発火可能なセルを検出したか否かを判定し(ステップS232)、自己発火可能なセルを検出したと判定したとき、上述した方法によって自己発火を行なう(ステップS233)。
その後、画像分割回路13は、発火セルが存在するか否かを判定し(ステップS234)、発火セルが存在するとき、上述した方法によって周囲へ引火(領域成長)を行なう(ステップS235)。そして、一連の動作は、ステップS234へ戻り、ステップS234において、発火セルが存在しなくなるまで、ステップS234,S235が繰り返し実行される。
ステップS234において、発火セルが存在しないと判定されると、画像分割回路13は、上述した方法によって、引火終了・領域決定を行なうとともに、ラベル付け(鎮火)を行なう(ステップS236)。その後、一連の動作は、ステップS232へ戻り、ステップS232において、自己発火可能なセルが検出されないと判定されるまで、ステップS232〜ステップS236が繰り返し実行される。
そして、ステップS232において、自己発火可能なセルが検出されないと判定されると、一連の動作は、図30のステップS3へ移行する。
なお、物体追跡装置10の画像分割ユニット1は、図31(図32〜図34)に示すフローチャートを繰り返し実行し、各フレームを各対象物の画像に分割する。
図35は、図30のステップS8の詳細な動作を説明するためのフローチャートである。図35を参照して、図30のステップS7の後、追跡ユニット2は、記憶している各オブジェクト(=対象物)の特徴量に基づいて、全てのオブジェクト間の特徴量の差を計算し(ステップS81)、グループ番号の付いていないオブジェクトを探索する(ステップS82)。
そして、追跡ユニット2は、グループ番号の付いていないオブジェクトが有るか否かを判定する(ステップS83)。
ステップS83において、グループ番号の付いていないオブジェクトが有ると判定されたとき、追跡ユニット2は、グループ番号の付いていないオブジェクトの中から注目オブジェクトを決定し(ステップS84)、その決定した注目オブジェクトにグループ番号を付ける(ステップS85)。
その後、追跡ユニット2は、ステップS81において計算した全てのオブジェクト間の特徴量の差に基づいて、注目オブジェクトの特徴量との差がしきい値以下であるオブジェクトを検出することによって、注目オブジェクトに類似するオブジェクトを検出する。そして、追跡ユニット2は、その検出したオブジェクトに注目オブジェクトと同じグループ番号を付ける(ステップS86)。
引き続いて、追跡ユニット2は、ステップS86における方法と同じ方法によって、グループ番号を付けられたオブジェクトに類似するオブジェクトを検出し、その検出したオブジェクトに注目オブジェクトと同じグループ番号を付ける(ステップS87)。
その後、一連の動作は、ステップS83へ戻り、ステップS83において、グループ番号の付いていないオブジェクトが無いと判定されるまで、上述したステップS83〜ステップS87が繰返し実行される。
そして、ステップS83において、グループ番号の付いていないオブジェクトが無いと判定されると、一連の動作は、図30のステップS9へ移行する。
図35に示すフローチャートにおいて、ステップS83の“YES”→ステップS84→ステップS85→ステップS86→ステップS87→ステップS83からなるループが1回目に実行されると、1つの注目オブジェクトに類似する全てのオブジェクトが検出され、その検出された全てのオブジェクトおよび注目オブジェクトが同じグループ番号によってグループ化される。
そして、ステップS83の“YES”→ステップS84→ステップS85→ステップS86→ステップS87→ステップS83からなるループが2回目に実行されると、1回目と異なる注目オブジェクトに類似する全てのオブジェクトが検出され、その検出された全てのオブジェクトおよび注目オブジェクトが同じグループ番号によってグループ化される。
したがって、ステップS83において、グループ番号の付いていないオブジェクトが無いと判定されるまで、ステップS83の“YES”→ステップS84→ステップS85→ステップS86→ステップS87→ステップS83からなるループが繰返し実行されると、ステップS83の“YES”→ステップS84→ステップS85→ステップS86→ステップS87→ステップS83からなるループが実行された回数と同じ数のグループ化されたオブジェクト(=追跡物体)が生成される。
そして、追跡ユニット2は、図30のステップS9において、各グループ番号が付与されたオブジェクト(=追跡物体)をグループ情報として出力する。
上述したように、物体追跡装置10は、画像分割ユニット1によって、隣接する2つの画素の2つの彩度の両方がしきい値Sth以下であるとき、2つの画素のRGB値のみによって2つの画素間の結合重みを決定し(ステップS2272参照)、2つの彩度の一方のみがしきい値Sth以下であるとき、2つの画素のRGB値および彩度によって2つの画素間の結合重みを決定し(ステップS2274参照)、2つの画素の2つの彩度の両方がしきい値Sthよりも大きいとき、2つのRGB値および色相によって結合重みを決定し(ステップS2275参照)、その決定した結合重みを用いて各フレームを分割する。そして、物体追跡装置10は、画像分割ユニット1によって分割された複数の分割画像中の複数のオブジェクトを追跡ユニット2によってグループ化して追跡物体を認識し、追跡する。
したがって、1つのフレームに含まれる複数のオブジェクトの画像に1つのフレームを分割しても、追跡物体を容易に認識でき、追跡物体を容易に追跡できる。
また、物体追跡装置10は、コントラストの低いカラー画像または光の反射による影響があるカラー画像における画素間の結合重みを正確に決定でき、無彩色領域と有彩色領域とに属するとき画素を有する物体、および有彩色領域に属する画素を有する物体を正確に分割でき、その正確に分割した分割物体に基づいて追跡物体を正確にグループ化できる。その結果、追跡物体を正確に追跡できる。
追跡物体の別の追跡方法について説明する。この別の追跡方法が用いられる場合、追跡ユニット2は、フレームF(t)における分割物体のグループ化において、フレームF(t−1)における分割物体のグループ化の結果を用いる。
図36は、グループ化における問題点を説明するための図である。図36を参照して、2台の車両が重なる場合(=2つの物体が重なる場合)、バウンディングボックスの形状が変形し、動きベクトルに影響を与え、1台の車両および交通標識が静止物体グループとなり、交通標識の一部、1台の車両、および認識不可能な2つの物体が移動物体グループにグループ化される場合がある。
そこで、このようなグループ化の失敗をなくすために、この発明の実施の形態においては、追跡ユニット2は、好ましくは、前フレームにおけるグループ化の結果を用いて現フレームにおけるグループ化を行なう。
図37は、前フレームにおけるグループ化の結果を示す図である。図37を参照して、前フレームF(t−1)においては、交通標識、一方の車両、および他方の車両がそれぞれ1つのグループにグループ化されている。
図38は、別の追跡方法において使用されるグループ化の方法を説明するための図である。図38においては、図37に示す車両CARのフレームF(t)におけるグループ化について説明する。
図38を参照して、バウンディングボックスBBi(t)は、フレームF(t)において注目している注目オブジェクトOJi(t)のバウンディングボックスであり、バウンディングボックスBBi+1(t)は、フレームF(t)において注目オブジェクトOJi(t)に類似するオブジェクトOJi+1(t)のバウンディングボックスである。
また、バウンディングボックスBBi(t−1)は、注目オブジェクトOJi(t)とマッチングしたフレームF(t−1)における注目オブジェクトOJi(t−1)のバウンディングボックスであり、バウンディングボックスBBi+1(t−1)は、オブジェクトOJi+1(t)とマッチングしたフレームF(t−1)におけるオブジェクトOJi+1(t−1)のバウンディングボックスである。
さらに、バウンディングボックスBB(t−1)は、フレームF(t−1)においてグループ化された物体(車両CAR)のバウンディングボックスの集合体である(図38の(a)参照)。
追跡ユニット2は、フレームF(t)における注目オブジェクトOJi(t)と、フレームF(t−1)におけるオブジェクトOJi(t−1)とのオブジェクトマッチングを行なうとともに、フレームF(t)におけるオブジェクトOJi+1(t)と、フレームF(t−1)におけるオブジェクトOJi+1(t−1)とのオブジェクトマッチングを行なう。
そして、追跡ユニット2は、そのオブジェクトマッチングしたフレームF(t−1),F(t)の2つのオブジェクトOJi(t),OJi(t−1)およびOJi+1(t),OJi+1(t−1)に基づいて、フレームF(t−1),F(t)間の動きベクトルを求める。
また、追跡ユニット2は、フレームF(t−1)におけるオブジェクトOJi(t−1),OJi+1(t−1)をグループ化した物体(=車両CAR)のバウンディングボックスBB(t−1)を検出する。
そうすると、追跡ユニット2は、バウンディングボックスBB(t−1)にフレームF(t−1),F(t)間の動きベクトルを加算して、フレームF(t)においてグループ化されるべき物体(=車両CAR)のバウンディングボックスBB(t)を求める(図38の(b)参照)。
その後、追跡ユニット2は、その求めたバウンディングボックスBB(t)とバウンディングボックスBBi(t),BBi+1(t)とが重なるか否かを判定する。
そして、追跡ユニット2は、バウンディングボックスBB(t)とバウンディングボックスBBi(t),BBi+1(t)とが重なるとき(図38の(c)参照)、バウンディングボックスBBi(t),BBi+1(t)が相互に類似するか否かを判定し、バウンディングボックスBBi(t),BBi+1(t)が相互に類似するとき、オブジェクトOJi(t),OJi+1(t)に同じグループ番号を付与する。
図39は、この発明の実施の形態による他の物体追跡方法を説明するためのフローチャートである。
図39を参照して、物体追跡の動作が開始されると、物体追跡装置10の画像分割ユニット1は、フレームを読み込み(ステップS31)、その読み込んだフレームを上述した方法によって画像分割する(ステップS32)。そして、画像分割ユニット1は、その分割した分割画像を追跡ユニット2へ出力する。
追跡ユニット2は、画像分割ユニット1から分割画像を受け、その受けた分割画像に表された各分割物体の特徴量を抽出し(ステップS33)、その抽出した特徴量を記憶する。
そして、追跡ユニット2は、処理をしているフレームが1番目のフレームか否かを判定し(ステップS34)、処理をしているフレームが1番目のフレームであるとき、フレームの読込が有るか否かをさらに判定する(ステップS35)。
ステップS35において、フレームの読込が無いと判定されたとき、一連の動作は、終了する。
一方、ステップS35において、フレームの読込が有ると判定されたとき、一連の動作は、ステップS32へ戻り、上述したステップS32〜ステップS35が繰返し実行される。
一方、ステップS34において、処理しているフレームが1番目のフレームでないと判定されたとき、追跡ユニット2は、上述した方法によって、フレーム間における各分割物体(=各オブジェクト)のオブジェクトマッチングを行なう(ステップS36)。そして、追跡ユニット2は、オブジェクトがマッチングされた各オブジェクトの動きベクトルを求め、その求めた動きベクトルを用いて各オブジェクトの推定位置を計算する(ステップS37)。
そして、追跡ユニット2は、フレーム間差分を演算し(ステップS38)、その演算したフレーム間差分に基づいて、移動物体と静止物体とを判別する(ステップS39)。
その後、追跡ユニット2は、現在処理しているフレームがフレーム(2)であるか否かを判定する(ステップS40)。
ステップS40において、現在処理しているフレームがフレーム(2)であると判定されたとき、追跡ユニット2は、フレーム(2)の情報を用いてオブジェクトをグループ化する(ステップS41)。
一方、ステップS40において、現在処理しているフレームがフレーム(2)でないと判定されたとき、追跡ユニット2は、フレーム(t−1)のグループ化結果とフレーム(t)の情報とを用いてオブジェクトをグループ化する(ステップS42)。
そして、ステップS41またはステップS42の後、追跡ユニット2は、グループ化結果を出力し(ステップS43)、フレームの読込があるか否かを判定する(ステップS44)。
ステップS44において、フレームの読込があると判定されたとき、一連の動作は、ステップS32へ戻り、ステップS44において、フレームの読込が無いと判定されるまで、上述したステップS32〜ステップS44が繰返し実行される。
そして、ステップS44において、フレームの読込が無いと判定されると、一連の動作は、終了する。
なお、図39に示すステップS32の詳細な動作は、図31(図32〜図34)に示すフローチャートに従って実行される。
また、図39に示すステップS41の詳細な動作は、図35に示すフローチャートに従って実行される。そして、ステップS41において、フレーム(2)の情報を用いてオブジェクトのグループ化が行なわれるのは、未だ、グループ化が行なわれていないため、前フレームにおけるグループ化結果を利用できないからである。
さらに、図39に示すフローチャートにおいては、フレーム間差分を演算して移動物体と静止物体とを判別すると説明したが(ステップS38,S39)、この発明の実施の形態においては、これに限らず、ステップS38において、動きベクトルを演算し、ステップS39において、その演算した動きベクトルを用いて移動物体と静止物体とを判別してもよい。
図40は、図39に示すステップS42の詳細な動作を説明するためのフローチャートである。
図40を参照して、図39に示すステップS40の“NO”の後、追跡ユニット2は、移動物体の特徴量を読み込み(ステップS421)、グループ済みフラグが“1”であるか否かを判定する(ステップS422)。
ステップS422において、グループ済みフラグが“1”でないと判定されたとき、追跡ユニット2は、新しいグループ番号を付ける(ステップS423)。
そして、ステップS422において、グループ済みフラグが“1”であると判定されたとき、またはステップS423の後、追跡ユニット2は、オブジェクトのグループ番号を更新し、注目オブジェクトの特徴量と他のオブジェクトの特徴量との差を演算する(ステップS424)。
その後、追跡ユニット2は、上述した方法によって、注目オブジェクトのバウンディングボックスと、他のオブジェクトのバウンディングボックスとが重なるか否かを判定する(ステップS425)。
ステップS425において、注目オブジェクトのバウンディングボックスと、他のオブジェクトのバウンディングボックスとが重ならないと判定されたとき、一連の動作は、ステップS431へ移行する。
一方、ステップS425において、注目オブジェクトのバウンディングボックスと、他のオブジェクトのバウンディングボックスとが重なると判定されたとき、追跡ユニット2は、上述した方法によって、フレーム(t−1)でマッチングした物体(=オブジェクト)のグループのバウンディングボックスと、物体(=注目オブジェクトおよび他のオブジェクト)のバウンディングボックスとが重なるか否かをさらに判定する(ステップS426)。
ステップS426において、フレーム(t−1)でマッチングした物体(=オブジェクト)のグループのバウンディングボックスと、物体(=注目オブジェクトおよび他のオブジェクト)のバウンディングボックスとが重なると判定されたとき、追跡ユニット2は、注目オブジェクトのバウンディングボックスと、他のオブジェクトのバウンディングボックスとの高さおよび幅が類似するか否かをさらに判定する(ステップS427)。この場合、追跡ユニット2は、注目オブジェクトのバウンディングボックスの高さと、他のオブジェクトのバウンディングボックスの高さとの差がしきい値以下であり、かつ、注目オブジェクトのバウンディングボックスの幅と、他のオブジェクトのバウンディングボックスの幅との差がしきい値以下であるとき、注目オブジェクトのバウンディングボックスと、他のオブジェクトのバウンディングボックスとの高さおよび幅が類似すると判定する。また、追跡ユニット2は、注目オブジェクトのバウンディングボックスの高さと、他のオブジェクトのバウンディングボックスの高さとの差がしきい値よりも大きいか、または、注目オブジェクトのバウンディングボックスの幅と、他のオブジェクトのバウンディングボックスの幅との差がしきい値よりも大きいとき、注目オブジェクトのバウンディングボックスと、他のオブジェクトのバウンディングボックスとの高さおよび幅が類似しないと判定する。
ステップS427において、注目オブジェクトのバウンディングボックスと、他のオブジェクトのバウンディングボックスとの高さおよび幅が類似すると判定されたとき、追跡ユニット2は、注目オブジェクトの動きベクトルと、他のオブジェクトの動きベクトルとの差を演算し、その演算した動きベクトルの差がしきい値Mvth2よりも小さいか否かをさらに判定する(ステップS428)。このしきい値Mvth2は、たとえば、“10”である。
ステップS428において、動きベクトルの差がしきい値Mvth2以上であると判定されたとき、一連の動作は、ステップS424へ戻る。
一方、ステップS426において、フレーム(t−1)でマッチングした物体(=オブジェクト)のグループのバウンディングボックスと、物体(=注目オブジェクトおよび他のオブジェクト)のバウンディングボックスとが重ならないと判定されたとき、またはステップS427において、注目オブジェクトのバウンディングボックスと、他のオブジェクトのバウンディングボックスとの高さおよび幅が類似しないと判定されたとき、追跡ユニット2は、注目オブジェクトの動きベクトルと、他のオブジェクトの動きベクトルとの差を演算し、その演算した動きベクトルの差がしきい値Mvth1よりも小さいか否かをさらに判定する(ステップS429)。このしきい値Mvth1は、たとえば、“5”である。
ステップS429において、動きベクトルの差がしきい値Mvth1以上であると判定されたとき、一連の動作は、ステップS431へ移行する。
一方、ステップS428において、動きベクトルの差がしきい値Mvth2よりも小さいと判定されたとき、またはステップS429において、動きベクトルの差がしきい値Mvth1よりも小さいと判定されたとき、追跡ユニット2は、注目オブジェクトおよび他のオブジェクトに同じグループ番号を付け、グループ済みフラグを“1”に設定する(ステップS430)。しきい値Mvth2は、しきい値Mvth1よりも大きい。
そして、ステップS425において、注目オブジェクトのバウンディングボックスと、他のオブジェクトのバウンディングボックスとが重ならないと判定されたとき、またはステップS429において、動きベクトルの差がしきい値Mvth1以上であると判定されたとき、またはステップS430の後、追跡ユニット2は、注目オブジェクトと、全ての移動オブジェクトとを比較したか否かを判定する(ステップS431)。
ステップS431において、注目オブジェクトと、全ての移動オブジェクトとを比較していないと判定されたとき、一連の動作は、ステップS424へ戻る。
一方、ステップS431において、注目オブジェクトと、全ての移動オブジェクトとを比較したと判定されたとき、追跡ユニット2は、移動オブジェクトのグループ済みフラグを全て調べたか否かをさらに判定する(ステップS432)。
ステップS432において、移動オブジェクトのグループ済みフラグを全て調べていないと判定されたとき、一連の動作は、ステップS422へ戻る。
一方、ステップS432において、移動オブジェクトのグループ済みフラグを全て調べたと判定されたとき、追跡ユニット2は、グループ化情報を出力する(ステップS433)。そして、一連の動作は、図39のステップS43へ移行する。
なお、ステップS431において、注目オブジェクトと全ての移動オブジェクトとを比較したと判定されるまで、ステップS424〜ステップS431が実行されると、1つの注目オブジェクトと、その注目オブジェクトに類似するオブジェクトとがグループ化される。
また、ステップS432において、移動オブジェクトのグループ済みフラグを全て調べたと判定されるまで、ステップS422〜ステップS432が実行されると、全ての追跡物体がグループ化される。
図39に示すフローチャートは、フレーム(2)において、オブジェクトをグループ化する場合、フレーム(2)における情報も用いてオブジェクトをグループ化し(ステップS41および図35参照)、フレーム(3)以降において、オブジェクトをグループ化する場合、前フレームにおけるグループ化情報と現フレームの情報とを用いてオブジェクトをグループ化する(ステップS42および図40参照)。
したがって、図39に示すフローチャートに従って物体を追跡することによって、3番目以降のフレームにおけるオブジェクトのグループ化において、前フレームにおけるグループ化情報も用いてオブジェクトをグループ化できるため、図36において説明したグループ化の失敗を回避できる。その結果、各追跡物体を正確に認識できる。
図41は、図39および図40に示すフローチャートに従ってオブジェクトをグループ化した結果を示す図である。
図41を参照して、入力画像は、フレームt、フレームt+1およびフレームt+2からなる(図41の(a)参照)。そして、フレームt+1におけるグループ化は、フレームtにおけるグループ化情報を用いた行なわれ、フレームt+2におけるグループ化は、フレームt+1におけるグループ化情報と現フレームの情報とを用いて行なわれた(図39のステップS42および図40参照)。
その結果、フレームt+1およびフレームt+2の両方において、グループ化が成功しており、図36において説明したグループ化の失敗を回避できることが実証された。
なお、上記においては、画像分割ユニット1は、入力画像の各画素のRGB値、色相および彩度を用いて各画素間の結合重みを決定し、その決定した結合重みを用いた入力画像を各オブジェクトの画像に分割すると説明したが、この発明の実施の形態においては、これに限らず、画像分割ユニット1は、入力画像の各画素のRGB値のみを用いて各画素間の結合重みを決定し、その決定した結合重みを用いた入力画像を各オブジェクトの画像に分割してもよく、一般的には、分割方法を問わず、入力画像を各オブジェクトの画像に分割すればよい。
また、上述した実施の形態1においては、物体追跡装置10は、ソフトウェアまたはハードウェアによっても実現可能である。物体追跡装置10がソフトウェアによって実現される場合、上述した画像分割ユニット1(画素値検出回路1、結合重み決定回路12および画像分割回路13)および追跡ユニット2の各機能は、典型的には、CPU(Central Processing Unit)がコンピュータプログラムを実行することによって実現される。そして、このコンピュータプログラムは、携帯端末内のROM(Read Only Memory)に予め格納されているか、外部からダウンロードされて携帯端末内の不揮発メモリに格納される。
また、物体追跡装置10がハードウェアによって実現される場合、上述した画像分割ユニット1(画素値検出回路1、結合重み決定回路12および画像分割回路13)および追跡ユニット2の機能は、CPU、RAM(Randum Access Memory)、ROMおよび不揮発性メモリ等のハードウェア資源と組み合わせることによって、集積回路であるLSI(Large Scale Integrated circuit)によって実現される。そして、画像分割ユニット1(画素値検出回路1、結合重み決定回路12および画像分割回路13)および追跡ユニット2の機能は、個別に1チップ化されてもよいし、いくつかのまとまった単位で1チップ化されてもよい。また、集積回路は、LSIに限るものではなく、専用回路または汎用プロセッサによって実現されてもよい。さらに、集積回路は、LSIの製作後にプログラムを格納可能なFPGA(Field Programmable Gate Array)、またはLSI内部の回路セルの接続や設定を再構成することが可能なリコンフィギュラブル・プロセッサが利用されてもよい。さらに、画像分割ユニット1(画素値検出回路1、結合重み決定回路12および画像分割回路13)および追跡ユニット2の機能は、半導体技術の進歩または派生する別技術によりLSIに置き換わる集積回路化の技術(バイオ技術、有機化学技術等)が登場すれば、当然、その技術を用いて集積化されてもよい。なお、集積回路は、その集積度の違いによって、IC、システムLSI、スーパーLSIおよびウルトラLSI等と呼称されることもある。
このように、物体追跡装置10は、ソフトウェアまたはハードウェアによっても実現可能であるので、この発明の実施の形態においては、上述した画素値検出回路11は、「画素値検出部」を構成し、結合重み決定回路12は、「結合重み決定部」を構成し、画像分割回路13は、「画像分割部」を構成する。
追跡ユニット2は、追跡物体認識部と、グループ化部とを含む。そして、追跡物体認識部は、画像分割ユニット1によって生成された複数の分割画像領域を静止物体を示す複数の静止物体画像領域と移動物体を示す複数の移動物体画像領域とに分類する。また、グループ化部は、追跡物体認識部によって分類された移動物体画像領域を所定の類似性に基づいてグループ化する。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した実施の形態の説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。