JP4775277B2 - 画像処理装置及び画像処理方法 - Google Patents

画像処理装置及び画像処理方法 Download PDF

Info

Publication number
JP4775277B2
JP4775277B2 JP2007028232A JP2007028232A JP4775277B2 JP 4775277 B2 JP4775277 B2 JP 4775277B2 JP 2007028232 A JP2007028232 A JP 2007028232A JP 2007028232 A JP2007028232 A JP 2007028232A JP 4775277 B2 JP4775277 B2 JP 4775277B2
Authority
JP
Japan
Prior art keywords
image
feature point
motion
motion detection
image data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2007028232A
Other languages
English (en)
Other versions
JP2008192060A (ja
Inventor
晃弘 山口
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Denso Corp
Original Assignee
Denso Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Denso Corp filed Critical Denso Corp
Priority to JP2007028232A priority Critical patent/JP4775277B2/ja
Publication of JP2008192060A publication Critical patent/JP2008192060A/ja
Application granted granted Critical
Publication of JP4775277B2 publication Critical patent/JP4775277B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Image Analysis (AREA)
  • Fittings On The Vehicle Exterior For Carrying Loads, And Devices For Holding Or Mounting Articles (AREA)

Description

本発明は、動きベクトルを用いて画像を処理する画像処理装置及び画像処理方法に関する。
従来より、車両の周囲の画像を撮影して処理する画像処理装置として、動画の動きベクトルを利用する装置が知られている。この動きベクトルを検出する方法としては、動きベクトルの誤検出を減らすため、一度画像メモリに格納した画像から特徴点を決定し、その特徴点を取り囲むテンプレート画像が、1フレーム後の画像上のどこに移動したかを示す動きベクトルを算出する方法が提案されている(例えば、特許文献1、2、3参照)。
この従来技術では、例えば、図5(A)の入力画像のように、8x8画素の画像単位(以降、画像ブロックと呼ぶ)で動き検出することを考える。このとき、各画像ブロック上で特徴点抽出処理するが、この特徴点抽出処理では、各画素の特徴点らしさの指標を示す値を算出し、最も高い値を持つ画素を決定する。そして、その値があるしきい値を超えた場合に特徴点と決定し、その特徴点を取り囲むテンプレート画像が、1フレーム後の画像上のどこに移動したかを決定する。
特開平8−242453号公報 特開平9−55943号公報 特開平9−55944号公報
上述した画像処理装置において、動きベクトルを検出する装置(動きベクトル検出装置)は、車や人などの対象物の検出や、対象物の移動方向、速度などの状況把握に応用展開できることから車載画像認識システムに必須機能である。
この信頼性が求められる車載画像認識においては、動き検出方式として、サブピクセルの精度で検出できるKanade−Lucas−Tomasi法(以降、KLT法)などの勾配法を採用することが考えられる。
KLT法を例にとって説明すると、KLT法が高精度に検出できる動きベクトルの大きさはX,Y方向ともに3画素程度までとなっている。そこで、画像の取り込み周期を短くする、すなわち高フレームレートカメラを使用することにより、車載における多くのシーンで動きベクトル検出装置を使用することができる。
また、動き検出方式として、ブロックマッチング法を採用した場合でも、高フレームレートカメラを使用することは、検出範囲を小さくすることができ、ミスマッチングする確率を低減することができることから有効である。
しかし、高フレームレートカメラを使用する場合、画像の取り込み周期が短くなるため、高速に動きベクトルを算出できる装置が必要となる。
ところが、上述した従来の動きベクトル検出装置では、画像上の動きベクトルを求める対象となる特徴点を抽出するために、画像データが格納された画像記憶装置にアクセスして、特徴点を求め動きベクトルを算出するため、処理の高速化の点で問題がある。
つまり、カメラで撮影した画像を前処理した全て(平滑化画像、X微分画像、Y微分画像)の画像を画像記録装置に格納した後に、その画像記録装置から特徴点を算出するために各画像ブロックの画像データを転送し、この画像データから特徴点を算出して動きベクトルを求めるために、演算処理に時間がかかっていた。
例えば、特徴点抽出の方式として、Harrisコーナー検出法を用いた場合、X微分画像とY微分画像を使用するが、このとき、入力画像の全範囲を動き検出する場合には、全ての画像データを格納した画像記憶装置から、2種類の画像データを演算処理部に転送して特徴点を抽出することとなり、高速化を妨げる要因となっていた。
更に、従来は、特徴点の抽出のみならず動きベクトルを抽出するために画像データを転送する際には、全て(過去フレームと現フレームの平滑化画像、X微分画像、Y微分画像)の画像ブロックの画像データを一律に転送する必要があり、その点でも、演算の高速化の妨げになっていた。
本発明は、上記問題点を解決するためになされたものであり、動きベクトルの算出を速めて、画像処理を高速化できる画像処理装置及び画像処理方法を提供することを目的とする。
)請求項に記載の画像処理装置は、画像処理装置に取り込まれた画像データを記憶する画像記憶部と、画像データ上の特徴点を抽出するため、及び動きベクトルを算出するために、必要な画像データを作成する前処理部と、画像データ上の特徴点が、動き検出する画像単位である画像ブロック単位で、どこに存在するかを示す特徴点マップと、画素単位で抽出された特徴点の位置のデータと動きベクトルのデータとを記憶する動き情報テーブルと、前処理部から得られる画像データから画像ブロック単位で特徴点を抽出し、特徴点が抽出できた場合には、画像ブロックに特徴点が存在することを示すフラグを特徴点マップに立て、かつ、特徴点の位置を動き情報テーブルに格納する特徴点抽出部と、画像記憶部に記憶された画像データと、特徴点マップに記憶された画像ブロック単位の特徴点のデータと、動き情報テーブルに記憶された画素単位の特徴点の位置のデータとに基づいて、動きベクトルを算出する動き検出部と、を備え、更に、前記動き検出部は、動き検出するのに必要な過去の画像データと現在の画像データを記憶する動き検出用画像記憶部と、前記画像記憶部に格納された画像データを、前記動き検出用画像記憶部に転送する画像データ転送部と、前記動き検出用画像記憶部を使用して、過去の画像上の特徴点を含むテンプレート画像が現在の画像上でどこに移動したかを示す動きベクトルを算出し、その算出結果を過去の画像が入力されたときに特徴点座標を格納した過去の動き情報テーブルに格納する動き検出演算部と、過去の画像が入力されたときにフラグを立てた過去の特徴点マップを参照して、特徴点が存在する全ての画像ブロックをラスタ方向に処理するために、現時点で動きベクトルの算出を終えた画像ブロックとその画像ブロックライン上の特徴点が存在する次の画像ブロックまでの距離を計算し、その距離の値から、既に前記動き検出用画像記憶部に転送している画像データが、特徴点が存在する次の画像ブロックにおいて、動きベクトルの算出に使用できるかを判定し、不足している画像データのみを転送するように前記画像データ転送部に命令する動き検出制御部と、を備えたことを特徴とする。
前記図1に例示するように、本発明の画像処理装置A1では、例えばカメラA2によって撮影された画像は、例えば画像入力I/F部A3によって取り込まれ、その画像データは前処理部A4にて処理される。従って、画像記憶部A5では、例えば前処理された画像データを記憶する。また、特徴点抽出部A6では、前処理された画像データに基づいて、特徴点を抽出し、その特徴点は特徴点マップA7に記憶されるとともに、画素単位の特徴点の位置(画像における位置:座標)は動き情報テーブルA9に記憶される。よって、動き検出部A8では、例えば周知のKLT法などにより、特徴点マップA7に記憶された画像ブロック単位の特徴点のデータと動き情報テーブルに記憶された画素単位の特徴点の位置のデータとに基づき、画像記憶部A5に記憶された画像データを利用して、動きベクトルを算出することができる。
この様に、本発明では、画像が入力されたときに画像記憶部にアクセスすることなく、前処理部から得られた画像データに基づいて特徴点抽出部により特徴点を抽出して、特徴点マップ及び動き情報テーブルに記憶することができる。よって、特徴点マップを用いて、動きベクトルを算出することができ、この動きベクトルは動き情報テーブルに記憶することができる。
これにより、従来の様に、一旦画像記録部に全画像データを記憶した後に、この画像記録部から画像データを求めて特徴点を抽出する場合に比べて、速やかに動きベクトルを算出することができるという効果がある。
また、特徴点マップには、画像ブロック毎に特徴点の有無を記録できるので、この特徴点の配置を利用して、演算処理の軽減(例えば動きベクトルを算出する際に、画像記憶部から動き検出部に転送される画像データの削減)を図ることができる。
なお、動き情報テーブルとして、現在画像(最新の画像)における特徴点や動きベクトルのデータを記憶したテーブル及び過去画像(最新の画像より例えば1フレーム前の画像)における特徴点や動きベクトルのデータを記憶したテーブルが挙げられる。
また、画像記部には、必要に応じて前処理部で作成した画像データを記憶することができる。
更に、本発明によれば、動き検出制御部は、動き検出演算のために必要な画像データのみを転送できる。しかも、動き検出制御部では、現在の処理ブロックと次の特徴点が存在する画像ブロックまでの距離を特徴点マップから求め、その値から、既に転送している画像データが次の動き検出演算に使用できるかを判定し、不足している画像データのみを転送するようにデータ転送を最小とするように制御する。これにより、動きベクトル検出の処理速度を向上させることができる。
)請求項に記載の画像処理装置によれば、動き検出制御部は、動き検出演算部に動きベクトルの算出をさせている間の画像データ転送部の待ち時間に、動き検出用画像記憶部に記憶された画像範囲に対して、動き検出方向に隣接する、所定の数の画像ブロック列の画像データを転送するように、画像データ転送部に命令する。
このことにより、動きベクトルを算出している間の画像データ転送部の待ち時間を解消し、以降の画像ブロックの動きベクトルの算出に必要となる可能性のある画像データを先に転送しておくことができる。
)請求項に記載の画像処理装置によれば、動き検出制御部は、特徴点マップを走査して、X軸方向にラスタ処理した場合、Y軸方向にラスタ処理した場合の予測処理時間を算出し、予測処理時間の短い方を処理方向とする。
これにより、動きベクトル検出の処理速度を向上させる。
)請求項に記載の画像処理装置によれば、特徴点マップは、特徴点が存在する画像ブロックと次の特徴点が存在する画像ブロックまでの距離に応じた出現回数の情報を格納している。よって、それらの情報を使用することで、特徴点マップを走査することなく予測処理時間を算出でき、動きベクトル検出の処理速度を向上させる。
)請求項に記載の画像処理装置によれば、動き検出制御部が、特徴点マップから、画像の取り込み周期に動きベクトルの算出処理が間に合わないと判断した場合に、処理できる画像ブロックラインまでを算出し、その画像ブロックラインまでを処理する。
これにより、演算の破綻を回避し、可能な範囲で情報を確保することができる。
)請求項に記載の画像処理装置によれば、動き検出制御部が、特徴点マップから、画像の取り込み周期に動きベクトルの算出処理が間に合わないと判断した場合に、優先順位の高い検出領域のみを処理する。
これにより、演算の破綻を回避し、可能な範囲で重要度の高い情報を確保することができる。
)請求項に記載の画像処理装置によれば、動き検出制御部が、特徴点マップから、画像の取り込み周期に動きベクトルの算出処理が間に合わないと判断した場合に、縮小した画像(例えば画像ドットを減らした縮小画像)を処理する。
これにより、演算の破綻を回避し、可能な範囲で画像処理に必要な情報を確保することができる。
)請求項に記載の画像処理装置によれば、特徴点抽出部は、基準となるしきい値の他に、補助となる所定の数の、基準となるしきい値より大きい所定の値を設定できるしきい値を設定することができ、補助となるしきい値についても特徴点抽出し、補助となるしきい値の数と同数の補助特徴点マップに特徴点の検出の有無を書き込む。そして、動き検出制御部は、特徴点マップから、画像の取り込み周期に動きベクトルの算出処理が間に合わないと判断した場合に、補助特徴点マップの中から、取り込み周期に算出処理が間に合うものがあるかを探索し、存在する場合にはその補助特徴点マップを使用して、(例えば画像データ転送部に画像データを転送させ、新たに追加した、例えば後段特徴点抽出部に特徴点座標を計算させ、その座標値を動き検出演算部に与えるようにして)動きベクトルを算出する。
これにより、演算の破綻を回避し、可能な範囲で画像処理に必要な情報を確保することができる。
)請求項に記載の画像処理装置によれば、動き検出部は、複数個搭載されており、処理する画像領域を動き検出部の総数と同一の処理領域に分割し、各領域の画像ブロックを各動き検出部が独立で動きベクトルを算出する。
これにより、動きベクトル検出の処理速度を向上させる。
10)請求項10に記載の画像処理装置によれば、動き検出演算部は、複数個搭載されており、各動き検出演算部は同一方向の隣接した画像ブロックと同期を取りながら、各画像ブロックの動きベクトルを算出する。
これにより、画像データの転送量を抑制し、かつ並列処理で、動きベクトル検出の処理速度を向上させる。
11)請求項11に記載の画像処理装置によれば、画像処理装置を、車載画像認識システムにおける車両前方検知センサに用いる。
つまり、車載画像認識システムにおいて、撮影画像上に特徴点が検出されにくい道路や空の領域の占有率が高い、車両前方検知センサへの使用用途とする場合には、動きベクトル検出を短時間で処理できるため、より高いフレームレート(例えば60〜100fps)のカメラを使用することができる。
12)請求項12に記載の画像処理装置によれば、画像を取り込むカメラとして、取り込み周期が短い高フレームレートのカメラを使用するとともに、KLT法を使用して動きベクトルを求める。
つまり、動き検出演算部に、サブピクセル単位で高精度に検出できるが、検出できる範囲が狭いKLT法を使用し、検出できる範囲に収まるように、カメラを取り込み周期が短い高フレームレートのカメラを使用することで、高い信頼性が求められる車載画像認識システムに適用できる。
なお、ここでKLT法とは、周知の前記Kanade−Lucas−Tomasi法のことである。
13)請求項13に記載の画像処理装置によれば、画像処理装置を、車載画像認識システムにおける車室内侵入者検知センサに用いる。
14)請求項14に記載の画像処理装置によれば、侵入者がいない場合には動きベクトルの算出をしないように制御するので、低消費電力を実現できる。
具体的には、動き検出制御部が、特徴点マップから画像上に存在する特徴点の総数を算出し、その総数が所定のしきい値を超えた場合に、動きベクトルを算出するように制御する。この結果、動き検出処理が必要ない場合には消費電力を抑えることができる。
15)請求項15に記載の画像処理装置によれば、侵入者がいない場合には動きベクトルの算出をしないように制御するので、低消費電力を実現できる。
具体的には、動き検出制御部が、特徴点マップと過去の特徴点マップを比較し、特徴点の有無に変化があった画像ブロックの総数が、所定のしきい値を超えた場合に、動きベクトルを算出するように制御する。この結果、動き検出処理が必要ない場合には消費電力を抑えることができる。
16)請求項16に記載の画像処理方法によれば、画像入力I/F処理により、画像データを(画像処理を行う画像処理装置内に)取り込み、画像記憶処理により、画像データを画像ブロック単位で画像記憶部に記憶する。また、前処理により、画像データ上の特徴点を抽出するため、及び動きベクトルを算出するために、必要な画像データを作成し、特徴点抽出処理により、この前処理から得られる画像データから画像ブロック単位で特徴点を抽出し、かつ、特徴点が抽出できた場合には、画像ブロックに特徴点が存在することを示すフラグを特徴点マップに立てる。そして、動きベクトル検出処理により、特徴点マップに記憶された画像ブロック単位の特徴点のデータと(例えば特徴点抽出部によって抽出されて動き情報テーブルに記憶された)画素単位の特徴点の位置のデータとに基づき、画像記録部に記録された画像データを利用して、動きベクトルを算出する。
これにより、本発明では、画像が入力されたときに画像記憶部にアクセスすることなく、画像データから特徴点抽出部により特徴点を抽出して特徴点マップを作成することができる。そして、特徴点抽出時に作成した特徴点マップや(例えば動き情報テーブルに記憶された)画素単位の特徴点の位置のデータを用いて、動きベクトルを算出することができる。よって、演算処理の負担を軽減して処理の高速化を実現できる。
更に、本発明によれば、動きベクトル検出処理では、終了判定処理により、特徴点が存在する全ての画像ブロックの動きベクトルの算出を終了したかを判断する。そして、終了判定処理により算出が終了していないと判断された場合には、画像データ転送量判断処理により、過去の画像が入力されたときにフラグを立てた過去の特徴点マップを参照して、特徴点が存在する全ての画像ブロックをラスタ方向に処理するために、現時点で動きベクトルの算出を終えた画像ブロックとその画像ブロックライン上の特徴点が存在する次の画像ブロックまでの距離を計算し、その距離の値から、既に動きベクトルの算出に用いる過去と現在の画像データを記憶する動き検出用画像記憶部に転送している画像データが、特徴点が存在する次の画像ブロックにおいて、動きベクトルの算出に使用できるかを判定し、不足している画像データ量を明らかにする。そして、不足している画像データ量が明らかになった場合には、画像データ転送処理により、不足している画像データ量分だけを、全画像データを画像ブロック単位で記憶している画像記憶部から動き検出用画像記憶部に転送する。
つまり、本発明によれば、動き検出演算のために必要な画像データのみを転送できる。さらに、現在の処理ブロックと次の特徴点が存在する画像ブロックまでの距離を特徴点マップから求め、その値から、既に転送している画像データが次の動き検出演算に使用できるかを判定し、不足している画像データのみを転送するようにデータ転送を最小とするように制御する。これにより、動きベクトル検出の処理速度を向上させることができる。
以下に本発明の実施形態を図面と共に説明する。
[第1の実施形態]
a)図2に、本実施形態における画像処理装置のブロック図を示す。同図に示すように、画像処理装置1は、カメラ3によって撮影された動画の動きベクトルを検出し、その動きベクトルに基づいて画像を処理する装置である。
この画像処理装置1は、画像を取り込む画像入力I/F部5と、入力画素を平滑化する平滑化処理部7と、平滑化処理された入力画素をX微分するY微分処理部9と、同様に平滑化処理された入力画素をY微分するY微分処理部11と、X微分された入力画素とY微分された入力画素から画像上の特徴となる画素である特徴点を抽出する特徴点抽出部13と、動き検出する画像単位である画像ブロック単位で特徴点がどこにあるかを示す特徴点マップ15と、画素単位の特徴点の座標位置と動きベクトルを記憶する動き情報テーブル17と、平滑化処理部7、X微分処理部9、Y微分処理部11の出力画素を、画像ブロック単位で画像データを記憶する画像記憶部(画像メモリ)19と、画像記憶部19に格納された1フレーム前の画像データ(平滑画像、X微分画像、Y微分画像)、現在の画像データ(平滑画像、X微分画像、Y微分画像)、特徴点マップ15、動き情報テーブル17を用いて動きベクトルを算出する動き検出部21によって構成される。
なお、画像ブロック単位の特徴点とは、画像ブロックに特徴点が存在するか存在しないかを示すものであり、よって、特徴点マップとは、画像が複数の画像ブロックで区分された場合に、画像ブロック単位で特徴点の有無が示してあるマップである。
このうち、前記動き検出部21は、動きベクトルの算出に必要な画像記憶部19に格納された画像データを転送する画像データ転送部21aと、転送した画像データを記憶しておく動き検出用画像記憶部21bと、動き検出用画像記憶部21bを使用して、1フレーム前の画像上の特徴点を含むテンプレート画像が現在の画像上でどこに移動したかを示す動きベクトルを算出し、算出結果を動き情報テーブル17に格納する動き検出演算部21cと、画像上の特徴点の動きベクトルを算出するために、画像データ転送部21aと動き検出演算部21cを制御する動き検出制御部21dによって構成される。
なお、この画像処理装置1のうち、画像記憶部19、動き検出用画像記憶部21b、特徴点マップ15、情報テーブル17が、各種のデータを記憶するメモリ部分であり、それ以外の、平滑化処理部7、X微分処理部9、Y微分処理部11、特徴点抽出部13、画像データ転送部21a、動き検出演算部21c、動き検出制御部21dが、各種データによる演算処理を行う演算処理部分である。
b)次に、図2における各ブロックの動作を説明する。
カメラ3は、モノクロ画像データを出力し、ここでは画像サイズを640×480画素のVGAサイズとする。ただし、画像サイズはこの限りではない。また、カラー画像でも問題はなく、その場合には、輝度画像を変換する機能を画像入力I/F部5に追加する必要がある。
画像入力I/F部5は、カメラ3からの出力信号から、各画素の輝度値、x座標、y座標を取り出し、平滑化処理部7に出力する。また、ここで画像データを1画素ずつ間引いて処理画像サイズを縮小してもよい。
平滑化処理部7、図3に示すように、内部に4ライン分のバッファを保持しており、座標値(x,y)の画素データが入力されたとき、5×5の平滑フィルタ係数に基づく畳み込み演算により、座標値(x−2,y−2)の平滑画素データを、X微分処理部9とY微分処理部11、画像記憶部19に出力する。
X微分処理部9は、平滑化処理部7と同様に、内部に4ライン分のバッファを保持しており、座標値(x,y)の画素データが入力されたとき、5×5のX微分フィルタ係数に基づく畳み込み演算により、座標値(x−2,y−2)のX微分画素データを、特徴点抽出部3、画像記録部19に出力する。
Y微分処理部11は、平滑化処理部7と同様に、内部に4ライン分のバッファを保持しており、座標値(x,y)の画素データが入力されたとき、5×5のY微分フィルタ係数に基づく畳み込み演算により、座標値(x−2,y−2)のY微分画素データを、特徴点抽出部13、画像記録部19に出力する。
なお、平滑化、X微分、Y微分のフィルタサイズの大きさは、これに限る必要は無いことは言うまでもない。
特徴点抽出部13は、動き検出する画像単位である画像ブロックの大きさを8x8画素とした場合には、図4(A)に示す通り、8ライン分のX微分画像とY微分画像のラインバッファを2つ備えている。そして、一方のX微分画像とY微分画像のラインバッファに画像データを書き込んでいる間、他方のX微分画像とY微分画像のラインバッファを使用して、8×8画素の画像ブロックの中で最もコーナーらしい画素を抽出する。
具体的には、Harrisコーナー検出と呼ばれる手法により、各画素のコーナーらしさを示す指標を計算し、その画像ブロックの中で、任意のしきい値より大きく、かつ最も高い値の画素を特徴点とする。
詳細に説明すると、図4(B)に示す通り、4×4画素のHarrisウィンドウをずらして各画素のコーナーらしさを示す指標を計算する。そして、特徴点が検出できた場合、その結果を特徴点マップ15と動き情報テーブル17に格納する。
このHarrisウィンドウのサイズは、画像ブロックの大きさ以下であればよく、4x4画素に限る必要は無い。また、検出する特徴点は各画像ブロックで1個に限る必要はなく、例えば、コーナーらしさの指標がある基準値を超えた画素については、全て処理するようにしてもよい。
特徴点マップ15は、図5(B)に示す通り、どこの画像ブロックに特徴点が存在するかを示す表である。特徴点が検出できた場合には、例えば、フラグとして1を立て、検出できなかった場合にはフラグとして0を立てることができる記憶手段である。また、T−1フレームの過去の画像用とTフレームの現在の画像用に2バンクの構成となっている。
ここでの処理画像の画像ブロックは、図5(A)に示すように、横80個×縦60個であり、外周部分の1列分の画像ブロックは、特徴点抽出に使用しない。従って、処理領域の画像ブロックは、縦78個×横58個である。なお、図5では一部の画像ブロックのみを記載してある。
動き情報テーブル17は、図6に示す通り、各画像ブロックには識別番号が割り当てられており、その識別番号を索引として、その画像ブロック上の特徴点と動きベクトル情報が参照できるようになっている。また、T−1フレームの過去の画像用とTフレームの現在の画像用に2バンクの構成となっている。
なお、動き情報テーブル17には、特徴点のデータとして、特徴点の座標データ(画素のx、yの座標のデータが記憶され、動きベクトルとして、ベクトルのX成分、Y成分のデータが記憶されている。
ここで、T−1フレーム用の動き情報テーブル17に記憶されている動きベクトルは、T−1フレームとTフレームの画像データから算出された動きベクトルであり、Tフレーム用の動き情報テーブル17に記憶されている動きベクトルは、TフレームとT+1フレームの画像データから算出された動きベクトルである。
画像記憶部19には、図7に示す通り、画像ブロック単位で画像データが格納される。例えば、1画素8ビット、1ワード32ビットのメモリを使用した場合には、4画素単位でデータが格納され、8×8画素の画像ブロックの場合、16ワード単位で格納される。
ここまでの処理は、現在の入力画像Tフレームにおける処理である。
c)次に、T−1フレームで求めた特徴点マップ15と動き情報テーブル17、T−1フレームとTフレームの画像を用いて動き検出処理する動き検出部21を説明する。
動き検出部21は、図8に示す通り、Xラスタ方向に各画像ブロックを処理する。以降の説明では、各端部の画像ブロックを除く78×58個の画像ブロックを処理することとする。なお、処理する画像ブロック数は、任意に変更することが可能であり、処理する方向についてもYラスタ方向でもよい。
・まず、動き検出演算部21cについて説明する。
動き検出演算部21cは、図9に示す通り、動き検出制御部21dから与えられた、T−1フレームの画像上の特徴点を中心とする8×8画素のテンプレート画像がTフレームの画像上でどこに移動したかを示す動きベクトルを算出する。
具体的には、勾配法の一種であるKanade−Lucas−Tomasi法(以降、KLT法)を用いる。このKLT法では、T−1フレームとTフレームの6種類の画像データ(即ち、T−1及びTフレームの、平滑化画像、X微分画像、Y微分画像)を用いて動きベクトルを算出し、算出した画像ブロックの識別番号を索引番号として、その結果を動き情報テーブル17に格納する。
例えば、図10に示す通り、テンプレート画像のサイズを8×8画素、KLT法が高精度に検出できる範囲であることから、動きベクトルの検出範囲を±3画素とすると、演算に必要となる可能性のある画像データとしては、左図のハッチングを施した部分の画像データを必要とすることになる。したがって、1個の画像ブロックを動き検出処理するためには、9個(処理対象を中心にした9個の画像ブロック)×6枚(前記6種類の画像データ)の画像ブロックの画像データを必要となる。但し、外周部分の3画素分のデータは使用しない。
なお、テンプレート画像のサイズを8×8画素、動き検出範囲は±3画素としたが、それに限る必要はない。その場合、適宜動き検出演算に必要な画像ブロック数及び画像ブロックそのものの大きさを変更することになる。
・次に動き検出制御部21dについて説明する。
動き検出制御部21dは、1フレーム前(T−1フレーム)の特徴点マップ15と動き情報テーブル17を参照して、画像上の特徴点が存在する画像ブロックのみを動き検出処理するように、動き検出演算部21cと画像データ転送部21aを制御する。
まず、T−1フレームの特徴点マップ15を参照して、処理する画像ブロックライン(ここではXラスタ方向の1ライン分のブロック)上の最初に特徴点が存在する画像ブロックを対象とする。
上述したように、動き検出演算部21cでは、動きベクトルの算出のために、対象の画像ブロックを含む9個×6枚の画像ブロックの画像データを必要とするので、図11に示すように、画像データ転送部21aに、9個×6枚の画像ブロックの画像データを画像記憶部19から検出用画像記憶部21bに転送するように命令する。この転送された画像データは、図11の画像データ(A)に示す通り、動き検出用画像記憶部21bに格納される。
そして、画像データ転送部21aが画像データの転送を終了した後、動き検出制御部21dにデータ転送を終了通知する。データ転送の終了通知を受信した動き検出制御部21dは、動き検出演算部21cにT−1フレームの動き情報テーブル17から参照した特徴点の座標値を渡し、動きベクトルを算出するように命令する。また、動き検出演算部21cに演算命令を出すのに並行して、図11の画像データ(B)に示す画像データを転送するように、画像データ転送部21aに命令する。そして、動き検出演算部21cと画像データ転送部21aから終了通知を受けた後、次の特徴点が存在する画像ブロックを処理する。
このとき、特徴点が存在する画像ブロックを処理するごとに9個×6枚の画像データを転送していては効率が悪い。そこで、動き検出制御部21dでは、以下に示すデータ転送方式により、無駄のない画像データの転送を実現する。
具体的には、現在処理を終えた画像ブロックと次の特徴点が存在する画像ブロックまでの距離(単位:画像ブロック)を求める。そして、図12に示す通り、距離値が3画像ブロック以下であれば、隣り合う画像ブロックのデータを利用できるので、動き検出処理するのに不足している画像データのみを転送(バースト転送)し、4画像ブロック以上であれば9個×6枚の画像データを転送する。
同様の処理を、同じ画像ブロックライン上の特徴点が存在する画像ブロックについて、全て処理するまで繰り返す。さらに、これらの処理を全画像ブロックラインに対して適用する。
以上の構成により、特徴点が存在する画像ブロックを処理するために必要な画像データのみを転送し、高速に動きベクトルを検出できる装置を実現できる。
d)次に、本実施形態の画像処理方法について説明する。
・最初に、全体の処理について、図13に基づいて説明する。なお、同図では、処理の流れを実線で示すとともに、データの流れを破線で示している。
この処理は、過去の画像上の特徴となる画素である特徴点を抽出して、その特徴点を含む所定の大きさを持つテンプレート画像が、現在の画像上のどこに移動したかを示す動きベクトルを算出するための処理である。
図13に示すように、ステップ(S)100では、カメラ3で撮影した画像データを取り込む(画像入力I/F処理)。
続くステップ110では、取り込んだ画像データの前処理を行う。具体的には、上述した平滑化処理、X微分処理、Y微分処理を行う。
続くステップ120では、特徴点を抽出する処理を行う(特徴点抽出処理)。この特徴点抽出処理とは、前処理から得られる画像から画像ブロック単位で特徴点を抽出し、かつ、特徴点が抽出できた場合には、画像ブロックに特徴点が存在するフラグを特徴点マップに立て、特徴点の位置を動き情報テーブルに格納する処理である。また、この特徴点抽出処理とは別に(並列に)、平滑化した画像データを画像記憶部19に記憶する処理を行う。
続くステップ130では、特徴点が存在する全ての画像ブロックの動きベクトルの算出を終了したかを判断する(終了判定処理)。ここで肯定判断されると本処理を終了し、否定判断されるとステップ140に進む。
ステップ140では、画像データ転送量判断処理を行う。この画像データ転送量判断処理とは、過去の画像が入力されたときにフラグを立てた他方(過去)の特徴点マップを参照して、特徴点が存在する全ての画像ブロックをラスタ方向に処理するために、現時点で動きベクトルの算出を終えた画像ブロックとその画像ブロックライン上の特徴点が存在する次の画像ブロックまでの距離を計算し、距離の値から、既に動き検出用画像記憶部21bに転送している画像データが、特徴点が存在する次の画像ブロックにおいて、動きベクトルの算出に使用できるか判定し、不足している画像データ量を明らかにする処理である。
続くステップ150では、上記画像データ量分だけ、画像記憶部19から動き検出用画像記憶部21に転送する(画像データ転送処理)。
続くステップ160では、動き検出演算処理を行ってから前記ステップ130に進む。この動き検出演算処理とは、動き検出用画像記憶部21bを使用して、過去の画像上の特徴点を含むテンプレート画像が現在の画像上でどこに移動したかを示す動きベクトルを算出し、算出結果を過去の画像が入力されたときに特徴点座標を格納した他方(過去)の動き情報テーブルに格納する処理である。
なお、前記ステップ130〜160の処理が、動き検出部21にて行われる動き検出処理(動きベクトルを算出する処理)である。
・次に、上述した処理のうち、各画像ブロックラインの処理について、図14に基づいて説明する。
なお、処理に使用する変数は下記の通りである。
STATE :状態を示す変数
map[78]:1ライン分の特徴点マップ
mc :特徴点マップカウンタ
L :次の特徴点が存在する画像ブロックまでの距離(個数)
図14に示すように、ステップ200では、初期化処理を行う。具体的には、STATEを、初期状態を示すINITに設定し、mcを0に設定する。
続くステップ210では、1ライン分の処理が終了したかどうかを、mcが78か否かによって判定する。ここで肯定判断されると、1ライン分終了したとして、次の画像ブロックラインの処理に移行する。一方否定判断されると、ステップ220に進む。
ステップ220では、特徴点の有無を、特徴点を示すフラグが1であるか否かによって判定する。ここで肯定判断されるとステップ230に進み、一方否定判断されるとステップ300に進む。
ステップ300では、STATEがINITか否かを判定する。ここで肯定判断されるとステップ320に進み、一方否定判断されるとステップ310に進む。
ステップ310では、バースト転送(3個×6枚の画像ブロックの転送)を行い、ステップ320に進む。
ステップ320では、mcをインクリメントし、前記ステップ210に戻る。
一方、前記ステップ220で肯定判断されて進むステップ230では、STATEがINIT又は(スキップ転送を示す)SKIPであるか否かを判定する。ここで肯定判断されるとステップ240に進み、一方否定判断されるとステップ250に進む。
ステップ240では、ステップ転送(9個×6枚の画像ブロックの転送)を行う。
続くステップ250では、KLT演算を行う。また、並列して、隣接する画像ブロックのバースト転送(3個×6枚の画像ブロックの転送)を行う。
続くステップ260では、次の特徴点が存在する画像ブロックまでの距離Lを測定する。なお、距離Lが求めることができなかった場合(1ライン終了した場合)には、一旦本処理を終了する。
続くステップ270では、距離Lが4以上か否かを判定する。ここで肯定判断されるとステップ290に進み、一方否定判断されるとステップ280に進む。
ステップ280では、STATEを(バースト転送を示す)BURSTに設定し、前記ステップ320に進む。
一方、ステップ290では、STATEを(スキップ転送を示す)SKIPに設定する。また、カウンタmcとして、mcに距離Lを加えた値を設定し、前記ステップ210に戻る。
上述した処理により、1ライン分の画像ブロックの処理を行うことができるので、この処理を58ライン分処理することにより全てのラインの処理を完了することができる。
なお、図15に、変数STATEにて設定される状態の遷移を示す。この状態遷移図から明らかな様に、STATEは、距離Lに応じてINIT、BURST、SKIPに切り替わることが分かる。
e)この様に、本実施形態では、上述した処理を行うことにより、高速にて必要な画像データの転送ができるので、この画像データに基づいて動きベクトルの処理を速やかに行うことができる。
また、本画像処理装置1は、車載画像認識システムにおいて、撮影画像上に特徴点が検出されにくい道路や空の領域の占有率が高い、車両前方検知センサへの使用用途に有効である。
更に、この車両前方検知センサに使用する場合には、高い信頼性が求められるため、動き検出演算部21cに、サブピクセル単位で高精度に検出できる勾配法、例えば、KLT法を使用することが望ましい。ただし、勾配法は、検出できる範囲が狭いため、検出できる範囲に収まるように、カメラ3として取り込み周期が短い高フレームレートのカメラを使用することが望ましい。
[第2の実施形態]
次に、第2の実施形態について説明するが、第2の実施形態は、第1の実施形態によるものと共通するところが多いので、以下、共通部分についての詳しい説明は省略し、異なる部分を重点的に説明する。
a)第1の実施形態の画像処理装置においては、画像ブロックの処理方向はX軸にラスタ処理するか、Y軸にラスタ処理するかは任意であった。これに対し、本実施形態の画像処理装置は、X軸にラスタ処理するか、Y軸にラスタ処理するか、どちらが高速に処理できるか判断する機能を動き検出制御部が備える。
つまり、本実施形態の動き検出制御部では、X軸方向、Y軸方向のラスタ処理の両方の予測処理時間を算出し、どちらで処理するか判定する。
具体的な予測処理時間の計算方法を図16に示す。なお、図16(A)はX軸方向に特徴点を走査した場合、図16(B)はY軸方向に特徴点を走査した場合である。
ここでは、例えば図16(C)に示す様に特徴点が配列されている場合に、同図の矢印方向に特徴点を走査する場合を例に挙げる。
まず、下記Step1〜5の式に示す様に、最初の特徴点において、初期転送のための処理時間に動き検出演算の処理時間Kを加算する(Step1)。
次に、最初の特徴点から距離1だけ離れた2番目の特徴点においては、距離が1であり画像データの転送が不要であるので、前Stepまでの予測処理時間Sに、動き検出演算の処理時間Kを加算する(Step2)。
次に、2番目の特徴点から距離2だけ離れた3番目の特徴点においては、前Stepまでの予測処理時間Sに、距離2に応じた処理時間(3個×6枚)×Tと動き検出演算の処理時間Kとを加算する(Step3)。
次に、3番目の特徴点から距離3だけ離れた4番目の特徴点において、前Stepまでの予測処理時間Sに、距離3に応じた処理時間(6個×6枚)×Tと動き検出演算の処理時間Kとを加算する(Step4)。
次に、4番目の特徴点から距離4だけ離れた5番目の特徴点において、前Stepまでの予測処理時間Sに、距離4に応じた処理時間(9個×6枚)×Tと動き検出演算の処理時間Kとを加算する(Step5)。
・Step1:S=(9個×6枚)×T+K
・Step2:S=S+K
・Step3:S=S+(3個×6枚)×T+K
・Step4:S=S+(6個×6枚)×T+K
・Step5:S=S+(9個×6枚)×T+K
但し、予測処理時間:S、動き検出演算の処理時間:Kサイクル、画像ブロック1個の転送時間:Tサイクル(T<K)
つまり、本実施形態では、Step1〜5の処理を行うことにより、1ラインにおける処理時間が分かるので、全てのラインについて合計することにより、X軸方向及びY軸方向における各処理時間が分かる。よって、それらの処理時間を比べることにより、処理時間の短いラスタ処理方向を求めることができる。
それにより、第1の実施対応より処理の高速化を実現することができる。
b)次に、本実施形態の変形例について説明する。
この変形例では、X軸にラスタ処理するか、Y軸にラスタ処理するか、どちらが高速に処理できるか判断する際に、上記のように特徴点マップを走査して処理時間を予測するのではなく、図17に示す通り、各画像ブロックの行、列ごとに、距離値が1ブロック、2ブロック、3ブロック、4ブロック以上または初期転送の出現回数の情報を付加しておく。
なお、距離値に応じた処理時間は、1ブロックが0、2ブロックが(3個×6枚)×T、3ブロックが(6個×6枚)×T、4ブロック以上または初期転送が(9個×6枚)×Tである。
そして、図17に示す距離値の場合は、下記式のようにして予測処理時間を求める。
S= 1回×{(0個×6枚)×T+K} (←距離値1の場合)
+1回×{(3個×6枚)×T+K} (←距離値2の場合)
+1回×{(6個×6枚)×T+K} (←距離値3の場合)
+2回×{(9個×6枚)×T+K} (←距離値4及び初期転送の場合)
この様に、この変形例では、特徴点マップを走査することなく、処理時間を予測することができるので、一層処理時間を短縮できるという利点がある。
[第3の実施形態]
次に、第3の実施形態について説明するが、第3の実施形態は、第1、2の実施形態によるものと共通するところが多いので、以下、共通部分についての詳しい説明は省略し、異なる部分を重点的に説明する。
第2の実施形態で説明した通り、特徴点マップから、動きベクトルの算出にかかる処理時間を予測することができる。しかし、処理時間に十分な余裕を持たせないように設定した場合、画像の取り込み周期間内に動きベクトルの算出処理が間に合わないときには、処理が破綻してしまう。
そこで、本実施形態では、動き検出制御部21dで、処理時間が間に合わないと判断した場合には、処理できる範囲(例えば処理できる画像ブロックライン)までを算出し、その範囲までを処理するように制御し、継続的に動きベクトルを算出できるようにする。
以下、詳細に説明する。
図18(A)に示す様に、画像データの格納は、3枚のフレームバッファを循環するように用いて行う(リングで格納する)。
従って、図18(B)に示す様に、処理が遅れない場合には、Tフレームの画像データの取り込みの際に、T−2フレームの画像データとT−1フレームの画像データとから動きベクトルを算出することができる。
一方、図18(C)に示す様に、処理が遅れる場合には、例えばT−2フレームの画像を使用する一方で、T+1の画像に書き換えられているので、動作が破綻してしまう。
この対策として、図19に示す様に、フレームの同期信号Vsyncをチェックし、VsyncがH→Lになった場合に、まだ、動き検出処理をしていれば、次のフレーム(この例で言えば、T+1フレーム)の画像の取り込みを止め、動き検出処理が完了した段階で、回路全体の動作を一旦停止した後、回路の動作を再開する(この例で言えば、T+2フレームからの処理を再開する)方法が考えられる。これにより、動作の破綻を回避することができる。
(変形例1)
上述したフレームの同期信号を用いた場合には、一応、動作の破綻を回避できるが、この場合も、処理方向がラスタ方向なので、本当に動き検出したかった処理ブロックまで行き着かない可能性がある。
そこで、本変形例1では、特徴点マップ15から、画像の取り込み周期に動きベクトルの算出処理が間に合わないと判断した場合に、予め設定しておいた優先順位の高い検出領域のみを処理する。
つまり、動き検出を開始する前に、取り込み周期内で終了できるかを判断し、間に合わない場合には、優先順位の高い検出範囲のみを処理するのである。
なお、優先順位の高い検出範囲とは、例えば先行車を検知している場合には、その車両周辺の領域を示すものであり、例えば空や上方の風景の領域は優先順位が低いとする。
以下、詳細に説明する。
(1)まず、前記図16又は図17に示した手法にて、予測処理時間を見積もる。
ここで、動き検出にどれだけの処理時間がかかるかは、設計すれば正確に見積もることが可能である。具体的には、回路設計し、シミュレーションすれば、画像データ転送サイクル数、動き検出処理サイクル数、メモリの調停サイクル数が分かる。その数値を使用すれば計算できる。なお、前記図16及び図18の説明では、メモリの調停サイクル数は考慮していない。というのは、実際には、下記(2)で説明するTvを実際の値より厳しく設定すれば良いからである。
(2)次に、予測処理時間と画像の取り込み周期とを比較する。
画像の取り込み周期Tv(例えば60fpsのカメラであれば16.7msec)と前記(1)で求めた予測処理時間Tpとを比較する。
そして、Tp>Tvの場合は、取り込み周期内に終了できないと判断する。また、Tp≦Tvの場合は、取り込み周期内に終了できると判断する。
従って、この判定結果に基づいて、処理が間に合わない場合には、優先順位の高い検出範囲のみを処理するのである。
これにより、重要な処理を確実に実行できるという利点がある。
(変形例2)
この変形例2では、特徴点マップから、画像の取り込み周期に動きベクトルの算出処理が間に合わないと判断した場合には、画像サイズを縮小した画像データを用いて処理する。
以下、詳細に説明する。
図20に示す様に、本変形例2の画像処理装置31では、前記第1の実施形態と同様に、(カメラ33からの画像を取り込む)画像入力I/F部35と、平滑化処理部37と、X微分処理部39と、Y微分処理部41と、特徴点抽出部43と、特徴点マップ45と、動き情報テーブル47と、画像記憶部49と、動き検出部51を備えており、この動き検出部51は、画像データ転送部51aと、動き検出用画像記憶部51bと、動き検出演算部51cと、動き検出制御部51dによって構成される。
更に、本画像処理装置31は、平滑化処理部37とX微分処理部39とY微分処理部41からのデータに基づいて、微小画像の特徴点を抽出する微小画像特徴点抽出部53と、その微小画像特徴点抽出部53によって抽出された微小画像の特徴点のデータを記憶する微小特徴点マップ55と微小動き情報テーブル57とを備えている。
なお、特徴点マップ45及び動き情報テーブル47の構成と、微小特徴点マップ55及び微小動き情報テーブル57の構成は、記憶するデータが異なるのみでその構成は同様である。
そして、本変形例2では、前記第1の実施形態の処理に加えて、平滑化処理部37、X微分処理部39、Y微分処理部41からは、微小画像特徴点抽出部53に対して、1画素単位で間引いた画像データを送って格納する。
従って、縮小画像特徴点抽出部53では、通常より少ない画像データで特徴点の抽出を行って、その縮小画像の特徴点のデータを、微小特徴点マップ55及び微小動き情報テーブル57に記憶する。
更に、動き検出制御部51dにて、特徴点マップ45から、画像の取り込み周期に動きベクトルの算出処理が間に合わないと判断した場合に、動き検出演算部51cは、縮小画像特徴点マップ55と縮小動き情報テーブル57のデータを使用して画像上の動きベクトルを算出する。
これにより、短時間で処理が可能となるので、必要な処理を行うことができる。
[第4の実施形態]
次に、第4の実施形態は、第3の実施形態によるものと共通するところが多いので、以下、共通部分についての詳しい説明は省略し、異なる部分を重点的に説明する。
図21に示す様に、本実施形態の画像処理装置61では、前記第1の実施形態と同様に、(カメラ63からの画像を取り込む)画像入力I/F部65と、平滑化処理部67と、X微分処理部69と、Y微分処理部71と、特徴点抽出部73と、特徴点マップ75と、動き情報テーブル77と、画像記憶部79と、動き検出部81を備えており、この動き検出部81は、画像データ転送部81aと、動き検出用画像記憶部81bと、動き検出演算部81cと、動き検出制御部81dによって構成される。
更に、本画像処理装置61では、2個の補助特徴点マップ83、85を備えるとともに、動き検出部81には、後段特徴点抽出部81eを備えている。
以下、詳細に説明する。
前記特徴点抽出部73では、基準となるしきい値(特徴点を抽出するためのしきい値)の他に、補助となる任意の数の、基準となるしきい値よりも大きい任意の値を設定できる、補助しきい値を設定する。これにより使用する特徴点を減らすことができる。ここでは2個の補助しきい値を設定するので、補助特徴点マップは2個設定されている。
この補助しきい値については、特徴点抽出のみし、特徴点抽出できた場合には、補助特徴点マップ83、85にフラグを立てるが、動き情報テーブル77には特徴点座標値は書き込まない。
そして、動き検出制御部81dは、特徴点マップ75から、画像の取り込み周期に動きベクトルの算出処理が間に合わないと判断した場合に、2つの補助特徴点マップ83、85の中から、取り込み周期に算出処理が間に合うものがあるかを探索する。
その結果、間に合うものが存在する場合には、その補助特徴点マップ83又は85を使用して、前記第1の実施形態の画像処理装置1と同様に、画像データ転送部81aに画像データを転送させ、後段特徴点抽出部81eに特徴点座標を計算させ、その座標値を動き検出演算部81cに与えて、動きベクトルを算出する。
このように、本実施形態では、代表的な特徴点のみを使用するので、演算処理の負担を軽減することができる。
[第5の実施形態]
次に、第5の実施形態は、第1の実施形態によるものと共通するところが多いので、以下、共通部分についての詳しい説明は省略し、異なる部分を重点的に説明する。
図22に示す様に、本実施形態の画像処理装置91では、前記第1の実施形態と同様に、(カメラ93からの画像を取り込む)画像入力I/F部95と、平滑化処理部97と、X微分処理部99と、Y微分処理部101と、特徴点抽出部103と、特徴点マップ105と、動き情報テーブル107と、画像記憶部109と、2個の動き検出部(第1動き検出部111、第2動き検出部113)を備えており、各動き検出部111、113は、それぞれ、画像データ転送部111a、113aと、動き検出用画像記憶部111b、113bと、動き検出演算部111c、113cと、動き検出制御部111d、113dによって構成される。
本実施形態では、2個の演算用チップである動き検出部111、113を備えているので、図23に示す様に、処理する画像領域は任意の大きさの2つの検出領域に分割されており、各検出領域の画像ブロックの動きベクトルを各動き検出演算部111、113が独立して算出する。この並列処理により、高速に動きベクトルを算出することができる。
(変形例)
図24に示す様に、本変形例1の画像処理装置121では、前記第1の実施形態と同様に、(カメラ123からの画像を取り込む)画像入力I/F部125と、平滑化処理部127と、X微分処理部129と、Y微分処理部131と、特徴点抽出部133と、特徴点マップ135と、動き情報テーブル137と、画像記憶部139と、動き検出部141を備えており、この動き検出部141は、画像データ転送部141aと、動き検出用画像記憶部141bと、2つの動き検出演算部(第1動き検出演算部141c1、第2動き検出演算部141c2)と、動き検出制御部141dによって構成される。
以下、詳細に説明する。
上述した第5の実施形態では、動き検出部111、113の総数と同数、上記例で言えば2個の検出領域に分割し、各検出領域の画像ブロックの動きベクトルを各動き検出演算部111c、113cが独立して算出する。それに対して、本変形例1では、動き検出部141は1個であるが、2個の動き検出演算部141c1、141c2を備えている。
そして、本変形例では、図25に示す通り、隣接する画像ブロックを同期しながら同一方向に処理する。なお、どちらかの処理ブロックに特徴点が存在した場合には、その特徴点の動きベクトルを算出するまで、一方の動き検出演算部141c1、141c2は停止し、同期を取りながら同一方向(例えばX軸方向)に処理する。
この方式のメリットは、画像記憶部139からのデータ転送量を抑制できるところにある。例えば、特徴点を発見し、新規に9個x6枚の画像ブロックを転送する場合には、第5の実施形態の場合には、単純に2倍の108個の画像ブロックを転送することになるが、本変形例1では、必要な画像データブロックが重なり合うため、12個x6枚の画像ブロック、すなわち72個の画像ブロックを転送するだけでよいことになる。
したがって、画像データ転送量を1.3倍程度に抑制することができた上で、並列処理による高速な動きベクトルの算出も期待することができる。
[第6の実施形態]
第6の実施形態は、画像処理装置を、車載画像認識システムにおける車室内侵入者検知センサへの使用用途を目的とし、侵入者がいない場合には動きベクトルの算出をしないように制御し、低消費電力を狙いとするものである。
具体的には、動き検出制御部が、特徴点マップから画像上に存在する特徴点の総数を算出し、ある任意のしきい値を超えた場合に、動きベクトルを算出するように制御する。
つまり、侵入者の有無を、例えば特徴点の総数が300個以上になったか否かによって判定し、その場合のみ動きベクトルを算出する。
(変形例)
第6の実施形態では、動きベクトルの算出の判断を、特徴点の総数により判断していたのに対して、本変形例では、現在の特徴点マップと過去の特徴点マップを比較し、特徴点の有無に変化があった画像ブロックの総数が、ある任意のしきい値を超えた場合に、動きベクトルを算出するように制御する。
尚、本発明は上記実施形態に限定されるものではなく、様々な態様にて実施することが可能である。
各請求項に係わる、画像処理装置を示すブロック図である。 第1の実施形態に係わる、画像処理装置を示すブロック図である。 第1の実施形態に係わる、平滑化処理を説明する図である。 第1の実施形態に係わる、特徴点抽出を説明する図である。 第1の実施形態に係わる、特徴点マップを示す図である。 第1の実施形態に係わる、動き情報テーブルを示す図である。 第1の実施形態に係わる、画像記憶部の格納を説明する図である。 第1の実施形態に係わる、動き検出処理の方向を示す図である。 第1の実施形態に係わる、動き検出処理の概要を説明する図である。 第1の実施形態に係わる、動き検出の範囲を示す図である。 第1の実施形態に係わる、動き検出用記憶部を説明する図である。 第1の実施形態に係わる、データ転送方式を説明する図である。 第1の実施形態に係わる、動き検出処理を説明するフローチャートである。 第1の実施形態に係わる、画像ブロックラインの処理を説明するフローチャートである。 第1の実施形態に係わる、状態遷移を説明する図である。 第2の実施形態に係わる、予測処理時間の算出方法を説明する図である。 第2の実施形態の変形例に係わる、予測処理時間の算出方法を説明する図である。 第3の実施形態に係わる、フレームバッファの利用方法を説明する図である。 第3の実施形態に係わる、動き検出のタイミングを説明する図である。 第3の実施形態の変形例2に係わる、画像処理装置を示すブロック図である。 第4の実施形態に係わる、画像処理装置を示すブロック図である。 第5の実施形態に係わる、画像処理装置を示すブロック図である。 第5の実施形態に係わる、処理内容を説明する図である。 第5の実施形態の変形例に係わる、画像処理装置を示すブロック図である。 第5の実施形態の変形例に係わる、処理内容を説明する図である。
符号の説明
1、31、61、91、121、A1…画像処理装置
3、33、63、93、123、A2…カメラ
5、35、65、95、125、A3…画像入力I/F部
7、37、67、97、127…平滑化処理部
9、39、69、99、129…X微分処理部
11、41、71、101、131…Y微分処理部
13、43、73、103、133、A6…特徴点抽出部
15、45、75、105、135、A7…特徴点マップ
17、47、77、107、137、A9…動き情報テーブル
19、49、79、109、139、A5…画像記憶部
21、51、81、111、113、141、A8…動き検出部
21a、51a、81a、111a、113a、141a、A11…画像データ転送部
21b、51b、81b、111b、113b、141b、A10…動き検出用画像記憶部
21c、51c、81c、111c、113c、141c1、141c2、A12…動き検出演算部
21d、51d、81d、111d、113d、141d、A13…動き検出制御部
53…縮小画像特徴点抽出部
55…微小特徴点マップ
57…微小動き情報テーブル
83、85…補助特徴点マップ
81e…後段特徴点抽出部
A4…前処理部

Claims (16)

  1. 過去の画像上の特徴となる画素である特徴点を抽出して、その特徴点を含む所定の大きさを持つテンプレート画像が、現在の画像上のどこに移動したかを示す動きベクトルを算出する画像処理装置であって、
    前記画像処理装置に取り込まれた画像データを記憶する画像記憶部と、
    前記画像データ上の特徴点を抽出するため、及び動きベクトルを算出するために、必要な画像データを作成する前処理部と、
    前記画像データ上の特徴点が、動き検出する画像単位である画像ブロック単位で、どこに存在するかを示す特徴点マップと、
    前記画素単位で抽出された特徴点の位置のデータと動きベクトルのデータとを記憶する動き情報テーブルと、
    前記前処理部から得られる画像データから画像ブロック単位で特徴点を抽出し、特徴点が抽出できた場合には、画像ブロックに特徴点が存在することを示すフラグを前記特徴点マップに立て、かつ、特徴点の位置を前記動き情報テーブルに格納する特徴点抽出部と、
    前記画像記憶部に記憶された画像データと、前記特徴点マップに記憶された画像ブロック単位の特徴点のデータと、前記動き情報テーブルに記憶された画素単位の特徴点の位置のデータとに基づいて、動きベクトルを算出する動き検出部と、
    を備え
    更に、前記動き検出部は、
    動き検出するのに必要な過去の画像データと現在の画像データを記憶する動き検出用画像記憶部と、
    前記画像記憶部に格納された画像データを、前記動き検出用画像記憶部に転送する画像データ転送部と、
    前記動き検出用画像記憶部を使用して、過去の画像上の特徴点を含むテンプレート画像が現在の画像上でどこに移動したかを示す動きベクトルを算出し、その算出結果を過去の画像が入力されたときに特徴点座標を格納した過去の動き情報テーブルに格納する動き検出演算部と、
    過去の画像が入力されたときにフラグを立てた過去の特徴点マップを参照して、特徴点が存在する全ての画像ブロックをラスタ方向に処理するために、現時点で動きベクトルの算出を終えた画像ブロックとその画像ブロックライン上の特徴点が存在する次の画像ブロックまでの距離を計算し、その距離の値から、既に前記動き検出用画像記憶部に転送して
    いる画像データが、特徴点が存在する次の画像ブロックにおいて、動きベクトルの算出に使用できるかを判定し、不足している画像データのみを転送するように前記画像データ転送部に命令する動き検出制御部と、
    を備えたことを特徴とする画像処理装置。
  2. 前記動き検出制御部は、前記動き検出演算部に動きベクトルの算出をさせている間の待ち時間に、前記動き検出用画像記憶部に記憶された画像範囲に対して、動き検出方向に隣接する所定の数の画像ブロック列の画像データを転送するように、前記画像データ転送部に命令する、動き検出機能を備えたことを特徴とする請求項に記載の画像処理装置。
  3. 前記動き検出制御部は、前記特徴点マップを参照して、動き検出する画像ブロックの処理方向をX軸方向にラスタ処理するか、Y軸方向にラスタ処理するかを判断する機能を備えたことを特徴とする請求項又はに記載の画像処理装置。
  4. 前記特徴点マップは、特徴点が存在する画像ブロックと次の特徴点が存在する画像ブロックまでの距離に応じた出現回数の情報も保持することを特徴とする請求項の何れか1項に記載の画像処理装置。
  5. 前記動き検出制御部は、前記特徴点マップから、画像の取り込み周期に動きベクトルの算出処理が間に合わないと判断した場合に、処理できる画像ブロックラインまでを算出し、その画像ブロックラインまでを処理する機能を備えたことを特徴とする請求項の何れか1項に記載の画像処理装置。
  6. 前記動き検出制御部は、前記特徴点マップから、画像の取り込み周期に動きベクトルの算出処理が間に合わないと判断した場合に、優先順位の高い検出領域のみを処理する機能を備えたことを特徴とする請求項の何れか1項に記載の画像処理装置。
  7. 前記動き検出制御部は、前記特徴点マップから、画像の取り込み周期に動きベクトルの算出処理が間に合わないと判断した場合に、縮小した画像を処理する機能を備え、前記前処理部は、縮小画像を作成する機能を備えたことを特徴とする請求項の何れか1項に記載の画像処理装置。
  8. 前記特徴点抽出部は、基準となるしきい値の他に、補助となる所定の数の、基準となるしきい値より大きい所定の値を設定できるしきい値を設定することができ、補助となるしきい値については特徴点抽出し、補助となるしきい値の数と同数の補助特徴点マップに特徴点の検出の有無を書き込み、
    前記動き検出制御部は、前記特徴点マップから、画像の取り込み周期に動きベクトルの算出処理が間に合わないと判断した場合に、補助特徴点マップの中から、取り込み周期に算出処理が間に合うものがあるかを探索し、存在する場合には、前記特徴点マップに代えて前記補助特徴点マップを使用することを特徴とする請求項の何れか1項に記載の画像処理装置。
  9. 前記動き検出制御部と、前記動き検出用画像記憶部と、前記動き検出演算部と、前記画像データ転送部とを備えた動き検出部が、複数個搭載され、処理する画像領域を前記動き検出部の総数と同一の処理領域に分割し、各領域の画像ブロックについて前記各動き検出部が独立で動きベクトルを算出することを特徴とする請求項の何れか1項に記載の画像処理装置。
  10. 前記動き検出演算部が、複数個搭載され、前記各動き検出演算部は同一方向の隣接した画像ブロックと同期を取りながら、各画像ブロックの動きベクトルを算出することを特徴とする請求項の何れか1項に記載の画像処理装置。
  11. 前記画像処理装置を、車載画像認識システムにおける車両前方検知センサに用いることを特徴とする請求項1〜10の何れか1項に記載の画像処理装置。
  12. 画像を取り込むカメラとして、取り込み周期が短い高フレームレートのカメラを使用するとともに、KLT法を使用して動きベクトルを求めることを特徴とする請求項11に記載の画像処理装置。
  13. 前記画像処理装置を、車載画像認識システムにおける車室内侵入者検知センサに用いることを特徴とする請求項1〜10の何れ1項に記載の画像処理装置。
  14. 前記特徴点マップから画像上に存在する特徴点の総数を算出し、その総数が所定のしきい値を超えた場合に、動きベクトルを算出するように制御することを特徴とする請求項13に記載の画像処理装置。
  15. 現在の特徴点マップと過去の特徴点マップとを比較し、特徴点の有無に変化があった画像ブロックの総数が、所定の任意のしきい値を超えた場合に、動きベクトルを算出するように制御することを特徴とする請求項13に記載の画像処理装置。
  16. 過去の画像上の特徴となる画素である特徴点を抽出して、その特徴点を含む所定の大きさを持つテンプレート画像が、現在の画像上のどこに移動したかを示す動きベクトルを算出する画像処理方法であって、
    画像データを取り込む画像入力I/F処理と、
    前記画像データを画像ブロック単位で画像記憶部に記憶する画像記憶処理と、
    前記画像データ上の特徴点を抽出するため、及び動きベクトルを算出するために、必要な画像データを作成する前処理と、
    前記前処理から得られる画像データから画像ブロック単位で特徴点を抽出し、かつ、特徴点が抽出できた場合には、画像ブロックに特徴点が存在することを示すフラグを特徴点マップに立てる特徴点抽出処理と、
    前記特徴点マップに記憶された画像ブロック単位の特徴点のデータと前記画素単位で抽出された特徴点の位置のデータとに基づき、前記画像記録部に記録された画像データを利用して、前記動きベクトルを算出する動きベクトル検出処理と、
    を備え
    更に、前記動きベクトル検出処理は、
    前記特徴点が存在する全ての画像ブロックの動きベクトルの算出を終了したかを判断する終了判定処理と、
    前記終了判定処理により前記算出が終了していないと判断された場合に、過去の画像が入力されたときにフラグを立てた過去の特徴点マップを参照して、特徴点が存在する全ての画像ブロックをラスタ方向に処理するために、現時点で動きベクトルの算出を終えた画像ブロックとその画像ブロックライン上の特徴点が存在する次の画像ブロックまでの距離を計算し、その距離の値から、既に動きベクトルの算出に用いる過去と現在の画像データを記憶する動き検出用画像記憶部に転送している画像データが、特徴点が存在する次の画像ブロックにおいて、動きベクトルの算出に使用できるかを判定し、不足している画像データ量を明らかにする画像データ転送量判断処理と、
    前記不足している画像データ量分だけを、全画像データを画像ブロック単位で記憶している画像記憶部から前記動き検出用画像記憶部に転送する画像データ転送処理と、
    を備えたことを特徴とする画像処理方法。
JP2007028232A 2007-02-07 2007-02-07 画像処理装置及び画像処理方法 Expired - Fee Related JP4775277B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007028232A JP4775277B2 (ja) 2007-02-07 2007-02-07 画像処理装置及び画像処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007028232A JP4775277B2 (ja) 2007-02-07 2007-02-07 画像処理装置及び画像処理方法

Publications (2)

Publication Number Publication Date
JP2008192060A JP2008192060A (ja) 2008-08-21
JP4775277B2 true JP4775277B2 (ja) 2011-09-21

Family

ID=39752082

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007028232A Expired - Fee Related JP4775277B2 (ja) 2007-02-07 2007-02-07 画像処理装置及び画像処理方法

Country Status (1)

Country Link
JP (1) JP4775277B2 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5126124B2 (ja) * 2009-03-09 2013-01-23 株式会社デンソー 画像処理装置
JP5700968B2 (ja) * 2010-07-16 2015-04-15 キヤノン株式会社 画像処理装置、画像処理方法、およびプログラム
US9349066B2 (en) * 2012-01-06 2016-05-24 Qualcomm Incorporated Object tracking and processing
JP6155087B2 (ja) * 2013-05-01 2017-06-28 日本放送協会 動き推定装置及びプログラム
JP6576179B2 (ja) * 2015-09-11 2019-09-18 キヤノン株式会社 画像処理装置、画像処理方法、及びプログラム
JP6602141B2 (ja) 2015-10-05 2019-11-06 キヤノン株式会社 画像処理装置および方法
JP6592335B2 (ja) 2015-11-05 2019-10-16 キヤノン株式会社 像ブレ補正装置及び方法
JP6600232B2 (ja) 2015-11-05 2019-10-30 キヤノン株式会社 像ブレ補正装置及び方法
JP6439757B2 (ja) * 2016-07-08 2018-12-19 オムロン株式会社 画像処理装置および画像処理方法
JP7117872B2 (ja) 2018-03-28 2022-08-15 キヤノン株式会社 画像処理装置、撮像装置、画像処理方法、及びプログラム
JP7129201B2 (ja) 2018-04-18 2022-09-01 キヤノン株式会社 画像処理装置、撮像装置、画像処理方法、及びプログラム

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3519441B2 (ja) * 1993-02-26 2004-04-12 株式会社東芝 動画像伝送装置
JPH0746597A (ja) * 1993-07-30 1995-02-14 Toshiba Corp 動き補償予測符号化装置及び復号化装置
JP3803122B2 (ja) * 1995-05-02 2006-08-02 松下電器産業株式会社 画像メモリ装置および動きベクトル検出回路
JP3688377B2 (ja) * 1996-01-31 2005-08-24 富士通株式会社 画像特徴追跡装置及び画像特徴追跡方法
JPH10262258A (ja) * 1997-03-19 1998-09-29 Sony Corp 画像符号化装置及び方法
JP3966392B2 (ja) * 1997-09-30 2007-08-29 シャープ株式会社 画像合成通信装置
JPH11205656A (ja) * 1998-01-14 1999-07-30 Matsushita Electric Ind Co Ltd 映像撮影装置
JP3463858B2 (ja) * 1998-08-27 2003-11-05 矢崎総業株式会社 周辺監視装置及び方法
JP3580475B2 (ja) * 1998-09-14 2004-10-20 矢崎総業株式会社 周辺監視装置
JP3903360B2 (ja) * 1999-06-28 2007-04-11 パイオニア株式会社 エッジ検出方法及びエッジ検出装置並びに画像符号化装置
JP3574780B2 (ja) * 2000-08-29 2004-10-06 株式会社日立製作所 車両の安全運転支援システム
WO2002101651A2 (en) * 2001-06-11 2002-12-19 Koninklijke Philips Electronics N.V. Feature point selection
JP4218441B2 (ja) * 2003-06-27 2009-02-04 株式会社デンソー 車載用移動体検出装置
JP2005206025A (ja) * 2004-01-22 2005-08-04 Denso Corp 車載カメラ装置
JP4482795B2 (ja) * 2004-03-05 2010-06-16 ソニー株式会社 画像処理装置、移動物体追跡方法、移動物体追跡プログラム、監視装置及びゲーム装置
JP2006318345A (ja) * 2005-05-16 2006-11-24 Sony Corp 物体追跡方法、物体追跡方法のプログラム、物体追跡方法のプログラムを記録した記録媒体及び物体追跡装置
JP2006338293A (ja) * 2005-06-01 2006-12-14 Sony Corp 画像データ割当て方法、画像処理制御装置および画像処理システム

Also Published As

Publication number Publication date
JP2008192060A (ja) 2008-08-21

Similar Documents

Publication Publication Date Title
JP4775277B2 (ja) 画像処理装置及び画像処理方法
EP2091020B1 (en) Image processing method, program and apparatus
JP4692371B2 (ja) 画像処理装置、画像処理方法、画像処理プログラム、および画像処理プログラムを記録した記録媒体、ならびに移動物体検出システム
US10867390B2 (en) Computer vision processing
US8300101B2 (en) Image processing method, image processing system, image pickup device, image processing device and computer program for manipulating a plurality of images
EP3502958B1 (en) Object recognition processing apparatus, object recognition processing method, and program
US20060274177A1 (en) Image processing apparatus
EP3572910B1 (en) Method, system and computer program for remotely controlling a display device via head gestures
JP6031819B2 (ja) 画像処理装置、画像処理方法
JP3936683B2 (ja) 道路位置検出装置及びプログラム
KR101661211B1 (ko) 얼굴 인식률 개선 장치 및 방법
US10430660B2 (en) Image processing apparatus, control method thereof, and storage medium
JP2003304561A (ja) ステレオ画像処理装置
US20120051652A1 (en) Object recognition system and method
US11076092B2 (en) Image processing apparatus, image processing method, and image processing program
JP5173549B2 (ja) 画像処理装置及び撮像装置
US5887083A (en) Method of processing image information based on object model
JP2006127083A (ja) 画像処理方法及び画像処理装置
JP5126124B2 (ja) 画像処理装置
JP2008206143A (ja) 画像処理機能を備える撮像装置
US20110090340A1 (en) Image processing apparatus and image processing method
JP2626528B2 (ja) 図形認識装置
KR102068552B1 (ko) 동작 인식을 위한 센싱 장치 및 그 방법
CN112752086A (zh) 用于环境映射的图像信号处理器、方法和系统
JP7026729B2 (ja) 管制支援装置、管制支援方法及び管制支援プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090324

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110308

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110315

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110513

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110531

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110613

R151 Written notification of patent or utility model registration

Ref document number: 4775277

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140708

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees