以下、本発明の実施形態について図に基づいて説明する。なお、以下の各実施形態相互において、互いに同一もしくは均等である部分には、説明の簡略化を図るべく、図中、同一符号を付してある。
(第1実施形態)
図1に本発明の車載画像処理装置が適用される駐車支援装置1の構成を示す。駐車支援装置1は、CCDカメラ10、メモリ20、およびマイクロコンピュータ30から構成されている。
CCDカメラ10は、自車の後方に配置されて、自車の後方の景色を撮影するリアカメラである。自車とは、駐車支援装置1が搭載されている自動車のことである。メモリ20は、マイクロコンピュータ30のコンピュータプログラムを記憶するとともに、マイクロコンピュータ30がコンピュータプログラムを実行する際に生じるデータを保存するバッファとして機能する。なお、本実施形態のメモリ20は、特許請求の範囲に記載の第1のメモリおよび第2のメモリを構成している。
マイクロコンピュータ30は、操舵角センサ40、車速センサ41、および駐車開始スイッチ42、および自動変速機43のそれぞれの出力信号を用いて、CCDカメラ10の撮影画像からハフ変換を用いて駐車枠を示す4本の直線を抽出するとともに、この抽出される4本の直線に基づいて自車の駐車目標位置を決定する駐車目標位置決定処理を実行する。
操舵角センサ40は、自車の前輪の操舵角を検出するセンサである。車速センサ41は、自車の速度を検出するセンサである。駐車開始スイッチ42は、駐車目標位置決定処理の実行開始を指示する際に乗員によって操作されるスイッチである。
自動変速機43は、車速、エンジンの回転速度、運転者の操作などに応じて変速レンジを切り替えるものである。自動変速機43は、車速やエンジンの回転速度に応じて変速レンジを自動的に設定し、この設定されている変速レンジを示す出力信号を出力する。スピーカ44は、駐車枠を抽出した旨を報知音として出力する。
次に、本実施形態の作動の具体例として、図2の自車50が駐車場の路上の駐車枠51の付近をA点からB点に向けて前進する際にCCDカメラ10の撮影画像から駐車場の路上の駐車枠51を抽出する例について説明する。
駐車枠51は、路上においてほぼ平行に配置される2本の白線51a、51bからなるものであって、車両の駐車領域を示すものである。図2は、自車50がA点→B点→C点の順に移動して駐車枠51に駐車する例を示している。
まず、本実施形態の駐車枠抽出処理の詳細の説明に先立って、本実施形態の駐車枠抽出処理で用いるハフ空間について説明する。
まず、ハフ空間とは、直線を表すための3次元座標のことである。具体的には、X軸をρとし、Y軸をθとし、Z軸をエッジ点の投票数とする空間である。
ここで、エッジ点とは、CCDカメラ10の撮影画像から抽出されるエッジ点のことである。ρおよびθは、二次元のXY座標上の点(xi、yi)を通る直線Aを極座標表現にてρ=xi・cosθ+yi・sinθと表すために用いられるパラメータである。
ρは、直線Aへ原点から下ろした垂線の長さを示す第1パラメータである。θは、X軸と垂線とがなす角度を示す第2パラメータである。本実施形態のハフ空間は、駐車枠51を含む撮影領域が対象となっている。撮影領域とはCCDカメラ10によって撮影される領域のことである。
本実施形態の駐車枠抽出処理では、複数のハフ空間が設定される。
具体的には、自車50が所定距離、進行する毎に自車50の位置情報に対応する撮影領域を対象とするハフ空間を設定する。撮影領域とは、CCDカメラ10により撮影される領域のことである。このことにより、複数のハフ空間の撮影領域が、自車50の進行方向に所定距離毎に並べられることになる。複数のハフ空間の撮影領域は、それぞれ、自車50の位置から自車50の進行方向に対する直交方向に伸びる長方形状(短冊状)に設定されている。
ここで、所定距離は、ハフ空間を設定する走行距離の基準値であって、例えば、1メートルである。所定距離は短くなるほど、順次設定されるハフ空間の個数が増えるため、ハフ空間に対する投票履歴を保存するメモリ20の容量を大きくすることが必要になる。このため、使用されるメモリ20の容量に応じて、所定距離が設定される。
本実施形態では、複数のハフ空間のうち互いに隣接する2つのハフ空間の撮影領域は、互いにオーバーラップするように設定されている。
図3では、自車50がA点からB点に向けて前進する際にハフ空間N、ハフ空間N+1、ハフ空間N+2、ハフ空間N+3を順次設定する例を示している。ハフ空間Nおよびハフ空間N+1は、互いの撮影領域がオーバーラップする。ハフ空間N+1およびハフ空間N+2は、互いの撮影領域がオーバーラップする。ハフ空間N+2およびハフ空間N+3は、互いの撮影領域がオーバーラップする。
ここで、Nは1以上の整数である。ハフ空間Nは、N番目に設定されるハフ空間を示し、ハフ空間N+1は、N+1番目に設定されるハフ空間を示し、ハフ空間N+2は、N+2番目に設定されるハフ空間を示し、ハフ空間N+3は、N+3番目に設定されるハフ空間を示している。
次に、本実施形態の駐車枠抽出処理の詳細について説明する。
マイクロコンピュータ30は、図4、図5のフローチャートにしたがって、駐車枠抽出処理を実行する。駐車枠抽出処理の実行は、駐車開始スイッチ42をオンしたときに開始される。
まず、ステップS100において、CCDカメラ10を制御して後方の景色を撮影させる。このとき、CCDカメラ10が、自車50の真後ろの景色、右後方の景色、および左後方の景色を含む後方画像を撮影することになる。
次に、ステップS110において、操舵角センサ40の出力信号および車速センサ41の出力信号に基づいて、自車50の位置情報(すなわち、CCDカメラ10の撮影位置)を算出する。
次に、ステップS120において、CCDカメラ10の撮影画像からエッジ点を抽出する。本実施形態のエッジ点とは、CCDカメラ10の撮影画像のうち輝度の変化を示す点である。このように撮影画像から抽出された複数のエッジ点に対してトップビュー変換を施す(ステップS130)。つまり、複数のエッジ点を自車50の上側から視た鳥瞰座標上の複数のエッジ点に座標変換する。すなわち、撮影画像毎に複数のエッジ点を鳥瞰座標上の複数のエッジ点に座標変換することになる。
ここで、後述するように、駐車枠51の検出には複数の撮影画像が用いられる。複数の撮影画像は、撮影画像毎にその撮影位置が異なる。これに加えて、撮影毎の鳥瞰座標はそれぞれ独立して設定されている。このため、撮影画像毎の鳥瞰座標の位置関係が定まっていない。
そこで、次のステップS140において、自車51の位置情報(つまり、CCDカメラ10の撮影位置)を用いて上記鳥瞰座標をCCDカメラ10の撮影位置に対応付けるように鳥瞰座標を撮影毎に座標変換する。つまり、上記鳥瞰座標上の複数のエッジ点を撮影画像毎に共通の鳥瞰座標上に写像することになる。このことにより、撮影画像毎の鳥瞰座標の位置関係を撮影画像毎の位置情報を用いて設定することができる。
次に、このようにステップS140において座標変換された鳥瞰座標上の複数のエッジ点の座標をメモリ(第2メモリ)20に保存する処理(ステップS141〜142)を実施する。
具体的には、上記ステップS140で座標変換された鳥瞰座標上の複数のエッジ点の座標をメモリ20に保存する(ステップS141)。その後、メモリ20のうち上記鳥瞰座標上の複数のエッジ点の座標が保存される記憶容量が規定容量以上であるか否かを判定する(ステップS142)。このとき、メモリ20のうち上記鳥瞰座標上の複数のエッジ点の座標が保存される記憶容量が規定容量未満であるときには、ステップS142でNOと判定する。一方、メモリ20のうち上記鳥瞰座標上の複数のエッジ点の座標が保存される記憶容量が規定容量以上であるときには、ステップS142でYESと判定する。次のステップS143において、メモリ20に保存される撮影毎の複数のエッジ点の座標のうち最も古いタイミングの撮影に対応する複数のエッジ点の座標を初期化する。
また、上記ステップS140で座標変換された鳥瞰座標上の複数のエッジ点をハフ空間1とハフ空間2とに投票する(ステップS150、S160)。つまり、前記座標変換された鳥瞰座標上の複数のエッジ点をハフ空間1とハフ空間2とに写像することになる。ハフ空間1は、1番目に設定されるハフ空間である。ハフ空間2は、2番目に設定されるハフ空間である。次に、このようにハフ空間1およびハフ空間2に投票された投票履歴をメモリ20に記憶させる(ステップS170)。
次に、ステップS180において、駐車開始スイッチ42がオンされてから、自車50が所定距離(例えば、1メートル)以上走行したか否かを判定する。
具体的には、操舵角センサ40の出力信号および車速センサ41の出力信号に基づいて自車50の位置情報を繰り返し求め、この繰り返し求められる位置情報から自車50の走行距離を求める。そして、走行距離が所定距離未満であるときには、NOと判定して、ステップS100に戻る。
その後、走行距離が所定距離以上になるまで、ステップS100、S110、S120、S130、S140〜S143、S150、S160、S170、およびステップS180のNO判定を繰り返す。
このため、CCDカメラ10の撮影毎に撮影画像から複数のエッジ点を抽出し(ステップS120)、この撮影毎にこの抽出した複数のエッジ点に対してトップビュー変換を施し(ステップS130)、このトップビュー変換した複数のエッジ点の鳥瞰座標をCCDカメラ10の撮影位置に対応付けるように当該鳥瞰座標を撮影毎に座標変換し(ステップS140)、この座標変換された鳥瞰座標上の複数のエッジ点を撮影毎に保存する(ステップS141)。メモリ20のうち上記鳥瞰座標上の複数のエッジ点の座標が保存される記憶容量が規定容量以上であるか否かを撮影毎に判定する(ステップS142)
ここで、メモリ20のうち上記鳥瞰座標上の複数のエッジ点の座標が保存される記憶容量が規定容量以上であるときには、ステップS142でYESと判定する。これに伴い、メモリ20に保存される撮影毎の複数のエッジ点の座標のうち最も古いタイミングの撮影に対応する複数のエッジ点の座標を初期化する(ステップS143)。
さらに、鳥瞰座標上の複数のエッジ点を撮影毎にハフ空間1およびハフ空間2に対して投票し(ステップS150、S160)、この投票毎に投票履歴をメモリ20に保存する(S170)。
その後、走行距離が所定距離以上になると、ステップS180でYESと判定する。これに伴い、ステップS190に進んで、ステップS150、160で投票対象となるハフ空間の番号をそれぞれインクリメントする。すなわち、自車50の位置に対応するハフ空間3を新たに設定することになる。このため、ステップS150で投票対象となるハフ空間をハフ空間2として、ステップS160で投票対象となるハフ空間をハフ空間3とする。このとき、ハフ空間3に対応する自車50の位置情報をメモリ20に記憶させる。
その後、ステップS200において、メモリ20のうち投票履歴が記憶される記憶容量が規定容量以上か否かを判定する。このとき、メモリ20のうち投票履歴が記憶される記憶容量が規定容量未満であるときには、ステップS200でNOと判定して、次の図5のステップS220に進む。このとき、変速機44がリバースレンジに設定されているか否かについて変速機44の出力信号に基づいて判定する。このとき、変速機44がリバースレンジ以外のレンジに設定されているときには、自車50を後退し始めていないとして、ステップS220においてNOと判定して、ステップS100に戻る。
その後、ステップS100、S110、S120、S130、S140〜S143、S150、S160、S170のそれぞれの処理を実行してからステップS180に進む。このステップS180では、前回にステップS1800でYESと判定してから所定距離(例えば、1メートル)以上走行したか否かを判定する。
前回にステップS180でYESと判定してから自車50が走行した走行距離が所定距離未満であるときには、今回のステップS180でNOと判定して、ステップS100に戻る。
その後、前回にステップS180でYESと判定してから自車50が走行した走行距離が所定距離未満である限り、ステップS100、S110、S120、S130、S140〜S143、S150、S160、S170のそれぞれの処理、およびステップS180のNO判定処理を繰り返すことになる。
このため、上記ステップS160で座標変換された鳥瞰座標上の複数のエッジ点の座標をメモリ20にCCDカメラ10の撮影毎に保存するとともに、上記鳥瞰座標上の複数のエッジ点をハフ空間2およびハフ空間3に対してCCDカメラ10の撮影毎に投票する(ステップS150、160)。このようにハフ空間2およびハフ空間3に投票された投票履歴をCCDカメラ10の撮影毎にメモリ20に記憶させることになる(ステップS170)。
その後、前回にステップS220でYESと判定してから自車50が走行した走行距離が所定距離以上になると、次にステップS180においてYESと判定する。
次にステップS190において、ステップS150、160で投票対象となるハフ空間の番号をそれぞれインクリメントする。すなわち、自車50の位置に対応するハフ空間4を新たに設定することになる。このため、ステップS150で投票対象となるハフ空間をハフ空間3として、ステップS160で投票対象となるハフ空間をハフ空間4とする。このとき、ハフ空間4に対応する自車50の位置情報をメモリ20に記憶させる。
このことにより、ステップS180でYESと判定される回数(以下、単に判定回数という)が2回目であるときには、CCDカメラ10の撮影毎にハフ空間3およびハフ空間4に対して投票し、この投票毎にその投票履歴をメモリ20に記憶させることになる。
その後、ステップS200において、メモリ20のうち投票履歴が記憶される記憶容量が規定容量以上か否かを判定する。このとき、メモリ20のうち投票履歴が記憶される記憶容量が規定容量未満あるときには、ステップS200でNOと判定して、次のステップS220に進む。このとき、変速機44がリバースレンジ以外のレンジに設定されているときには、NOと判定して、ステップS100に戻る。
このため、次にステップS180でYESと判定するまで、ステップS100、S110、S120、S130、S140〜S143、S150、S160、S170のそれぞれの処理、およびステップS180のNO判定処理を繰り返す。このため、上記ステップS160で座標変換された鳥瞰座標上の複数のエッジ点をCCDカメラ10の撮影毎にメモリ20に保存し(ステップS141〜S143)、かつ上記ステップS160で座標変換された鳥瞰座標上の複数のエッジ点をハフ空間3およびハフ空間4に対してCCDカメラ10の撮影毎に投票する(ステップS150、160)。このようにハフ空間3およびハフ空間4に投票された投票履歴をCCDカメラ10の撮影毎にメモリ20に記憶させることになる(ステップS170)。
その後、ステップS180においてYESと判定されて判定回数が3回目になると、次のステップS190において、上述の上記ハフ空間の番号をそれぞれインクリメントする。このため、ステップS150で投票対象となるハフ空間をハフ空間4として、ステップS160で投票対象となるハフ空間をハフ空間5とする。このとき、ハフ空間5に対応する自車50の位置情報をメモリ20に記憶させる。
その後、ステップS200において、メモリ20のうち投票履歴が記憶される記憶容量が規定容量以上か否かを判定する。このとき、メモリ20のうち投票履歴が記憶される記憶容量が規定容量以上であるときには、ステップS200でYESと判定して、ステップS210に進む。これに伴い、メモリ20において記憶される複数のハフ空間の履歴のうち最も古いタイミングで投票されるハフ空間の履歴を初期化する。例えば、メモリ20において、ハフ空間1、ハフ空間2、ハフ空間3、ハフ空間4のそれぞれの履歴が記憶されている場合には、最も古いタイミングで投票されるハフ空間1の履歴が消去される。
次のステップS220において、変速機44がリバースレンジ以外のレンジに設定されているとき、NOと判定してステップS100に戻る。その後、ステップS100、S110、S120、S130、S140〜S143の処理を経て、上記ステップS140で座標変換された鳥瞰座標上の複数のエッジ点の座標をメモリ20に保存するとともに、上記鳥瞰座標上の複数のエッジ点をハフ空間4およびハフ空間5に対して投票する(ステップS150、S160)。
このようにハフ空間4およびハフ空間5に投票された投票履歴をCCDカメラ10の撮影毎にメモリ20に記憶させる(ステップS170)。このとき、メモリ20においてハフ空間1の投票履歴に代えてハフ空間5の投票履歴が記憶されることになる。
そして、ステップS180のYES判定処理、ステップS190、およびステップS200のNO判定処理を実施すると、ステップS210に移行する。このため、変速機44がリバースレンジ以外のレンジに設定されている限り、ステップS100、S110、S120、S130、S140〜S143、S150、S160、S170、ステップS180のNO判定処理(或いはYES判定処理)、ステップS190、ステップS200のNO判定処理(或いはステップS200のYES判定処理およびステップS210)、およびステップS220のNO判定処理を繰り返す。
例えば、判定回数がN−1回であるときには、CCDカメラ10の撮影毎に、上記ステップS140で座標変換された鳥瞰座標上の複数のエッジ点の座標をメモリ20に保存し、かつ上記鳥瞰座標上の複数のエッジ点をハフ空間Nとおよびハフ空間N+1に投票する(ステップS150、160)。
一方、判定回数がN回であるときには、CCDカメラ10の撮影毎に、上記ステップS140で座標変換された鳥瞰座標上の複数のエッジ点の座標をメモリ20に保存し、かつ上記鳥瞰座標上の複数のエッジ点をハフ空間N+1とおよびハフ空間N+2に投票する(ステップS150、S160)。
このように鳥瞰座標上の複数のエッジ点の座標とハフ空間の投票履歴とがメモリ20に記憶される(ステップS170)。
例えば、メモリ20において、ハフ空間N−1、ハフ空間N、ハフ空間N+1、ハフ空間N+2のそれぞれの投票履歴が記憶されている場合において、次のステップS180でYESと判定後に、ステップS190に進むと、ステップS150で投票対象となるハフ空間をハフ空間N+2として、ステップS160で投票対象となるハフ空間をハフ空間N+3とする。このとき、ハフ空間N+3に対応する自車50の位置情報をメモリ20に記憶させる。つまり、ハフ空間が設定される毎にこの設定されるハフ空間に対応する自車50の位置情報をメモリ20に記憶させる。
その後、ステップS210に移行すると、次のようにメモリ20のうち投票履歴を初期化する。すなわち、メモリ20のうち投票履歴が記憶される記憶容量が規定容量以上であるとしてステップS200でYESと判定したときには、メモリ20において、ハフ空間N−1、ハフ空間N、ハフ空間N+1、ハフ空間N+2のうち最も古いタイミングで投票されるハフ空間N−1の履歴を消去する(ステップS210)。
その後、ステップS220においてNOと判定した場合に、ステップS100、S110、S120、S130、S140〜S143の処理を経て、上記ステップS140で座標変換された鳥瞰座標上の複数のエッジ点をハフ空間N+2およびハフ空間N+3に対して投票する(ステップS150、160)。このようにハフ空間N+2およびハフ空間N+3に投票された投票履歴をCCDカメラ10の撮影毎にメモリ20に記憶させる。このとき、メモリ20においてハフ空間N−1の投票履歴に代えてハフ空間N+3の投票履歴が記憶されることになる。
そして、ステップS180のNO判定処理(或いはYES判定処理)、ステップS190、ステップS200のNO判定処理(或いはステップS200のYES判定処理およびステップS210)を実施する。
その後、変速機44がリバースレンジに設定されると、自車50が後退し始めたとして、ステップS220でYESと判定して、次のステップS230に移行する。例えば、ハフ空間N、ハフ空間N+1、ハフ空間N+2、およびハフ空間N+3のそれぞれ投票履歴がメモリ20に記憶されている場合において、メモリ20に記憶されるハフ空間N、ハフ空間N+1、ハフ空間N+2、およびハフ空間N+3に対応する自車50の位置情報を用いて、ハフ空間N、ハフ空間N+1、ハフ空間N+2、およびハフ空間N+3のそれぞれ投票履歴を共通のハフ空間に写像する。
ここで、共通のハフ空間の撮影領域は、ハフ空間N、ハフ空間N+1、ハフ空間N+2、およびハフ空間N+3をそれぞれの撮影領域を全てカバーする領域である。
このよう共通のハフ空間への写像により、ハフ空間N、ハフ空間N+1、ハフ空間N+2、およびハフ空間N+3が統合されることになる。
その後、ステップS240〜S260において、上記共通のハフ空間に写像された投票履歴(以下、単に、共通ハフ空間の投票履歴という)から駐車枠51を抽出する。
ここで、駐車枠51は、駐車場の路上に平行に配置されている2本の白線から構成されている。2本の白線間の間隔W1は、A寸法からB寸法までの所定寸法範囲内に入るように設定されている。そして、白線のうち幅方向(すなわち、白線が延びる方向に対する直交する方向)の寸法W2は、C寸法からD寸法までの所定寸法範囲内に入るように設定されている。
以下、本実施形態では、便宜上、2本の白線間の間隔W1を定める所定寸法範囲を第1の寸法範囲とし、白線のうち幅方向寸法W2を定める所定寸法範囲を第2の寸法範囲とする。
ここで、共通ハフ空間の投票履歴において駐車枠51を構成するエッジ点の投票結果が含まれている場合には、駐車枠51を構成する2本の白線を構成するエッジ点の投票結果が共通ハフ空間の投票履歴に含まれることになる。
このため、駐車枠51を構成するエッジ点の投票結果が共通ハフ空間の投票履歴に含まれる場合には、共通ハフ空間の投票履歴から、白線の幅方向端部を示す2本の直線を白線毎に検出することが可能になる。白線の幅方向端部とは、白線において白線自体が延びる方向に直交する方向の端部のことである。
すなわち、駐車枠51を構成するエッジ点の投票結果が共通ハフ空間の投票履歴に存在する場合には、共通ハフ空間の投票履歴から、駐車枠51を示す4本の直線を検出することが可能になる。
ここで、駐車枠51を示す4本の直線は、それぞれ、平行に配置されているものである。4本の直線のうち対向する2本の直線(61、62)の間の間隔W1(図6参照)は第1の寸法範囲内に入っているものである。4本の直線のうち対となる2本の直線(60、61)(62、63)の間の間隔W2は、第2の寸法範囲内に入っているものである。
以下、共通ハフ空間の投票履歴から駐車枠51を検出する処理(ステップS240〜S260)について説明する。
まず、ステップS240において、共通ハフ空間の投票履歴から直線を抽出する。以下、共通ハフ空間の投票履歴から複数本の直線を抽出した例について説明する。このように共通ハフ空間の投票履歴から抽出される複数の直線を、単に、複数の検出直線という。なお、共通ハフ空間の投票履歴から直線を抽出する処理は周知であるため、その説明を省略する。
ここで、共通ハフ空間の投票履歴では、白線は、ほぼ平行に配置されている二本の直線によって表される。二本の直線は、アップエッジによる直線とダウンエッジによる直線とから構成されるものである。アップエッジによる直線とは、輝度の増大を示すエッジ点からなる直線のことである。ダウンエッジによる直線とは、輝度の低下を示すエッジ点からなる直線のことである。つまり、アップエッジによる直線とダウンエッジによる直線との間の寸法W2が第2の寸法範囲に入いる場合には、アップエッジによる直線とダウンエッジによる直線とが白線を示していることになる。以下、このように間隔が第2の寸法範囲内に入っているアップエッジによる直線とダウンエッジによる直線とからなる直線の対を単に平行直線という。
まず、次のステップS250において、複数本の検出直線に複数対の平行直線が含まれているか否かを判定することにより、共通ハフ空間の投票履歴に複数の白線の候補が存在するか否かを判定する。
例えば、複数の検出直線に複数対の平行直線が含まれているときには、共通ハフ空間の投票履歴に複数の白線の候補が存在としてYESと判定する。この場合、複数の検出直線から複数対の平行直線を抽出する(ステップS251)。
次に、ステップS260において、この抽出される複数対の平行直線に駐車枠51を示す2対の平行直線(すなわち、4本の直線)が含まれているか否かについて判定する。2対の平行直線とは、2対の平行直線のうち一方の平行直線(60、61)と、他方の平行直線(62、63)との間の間隔W1(図6参照)が第1の寸法範囲内に入っているものとする。
ここで、複数対の平行直線に駐車枠51を示す2対の平行直線が含まれているときには、共通ハフ空間の投票履歴に駐車枠51を示す4本の直線が含まれているとして、ステップS260でYESと判定する。これに伴い、駐車枠51を示す4本の直線を複数対の平行直線から抽出する(ステップS261)。
このように駐車枠51を示す2対の平行直線、すなわち直線60、61、62、63(図6参照)を抽出することができるものの、駐車枠51を示す直線60〜63だけでは、駐車枠51を示す4本の直線が延びる方向しか分からず、駐車目標位置が決定できない。
そこで、ステップS270では、駐車枠51を示す4本の直線と、ステップS141〜S143での処理で保存される撮影毎の複数のエッジ点の座標とに基づいて、駐車枠51のうち自車50側の端点60a、61a、62a、63a(図6参照)を検出する。
次に、端点60a、61a、62a、63aを検出する処理について図7を参照して説明する。図7は、図5中のステップS260の処理の詳細を示すフローチャートである。
まず、ステップS300において、上記ステップS141〜S143での処理で保存される撮影毎の複数のエッジ点のうち、駐車枠51を示す4本の直線(60〜63)の上に位置する複数のエッジ点を直線毎に抽出してこの抽出した複数のエッジ点を直線毎にメモリ20に保存する。
次のステップ310において、このようにメモリ20に保存される直線毎の複数のエッジ点を自車50の位置を含む鳥瞰座標上にソートする。これに伴い、鳥瞰座標上の複数のエッジ点を直線毎に自車50に近い側から走査し、鳥瞰座標上の複数のエッジ点において、駐車枠51のうち自車50側の端点(すなわち、手前側端点)となるエッジ点が有るか否かを直線毎に判定する(ステップS320、S330)。
具体的には、ステップS320、S330において、鳥瞰座標上の複数のエッジ点において、自車50側(すなわち、手前側)の第1所定距離内に位置するエッジ点の個数が第1の閾値未満で、かつ自車と反対側(すなわち、奥側)の第2所定距離内に位置するエッジ点の個数が第2の閾値以上であるエッジ点が有るか否かを直線毎に判定する。
本実施形態では、第1所定距離としては1メートルとし、第2所定距離を1メートルとし、第1の閾値を1個とし、第2の閾値を5個とする。
このため、4本の直線のうち一本の直線上に位置する複数のエッジ点を走査して、直線上の複数のエッジ点のうち、自車50側の1メートル内に位置するエッジ点が零個で、かつ自車50と反対側の1メートル内に位置するエッジ点の個数が5個以上であるエッジ点が存在するときには、この存在するエッジ点が駐車枠51のうち自車50側の端点であるとする。
これに加えて、4本の直線のうち一本の直線以外の3本の直線についても、同様に、直線上の複数のエッジ点に対して走査判定処理(ステップS320、S330、S340)を実施して、直線上の複数のエッジ点のうち、駐車枠51のうち自車50側の端点となるエッジ点が存在するか否かを判定する。
その結果、4本の直線について、直線上の複数のエッジ点のうち、自車50側の1メートル内に位置するエッジ点が零個で、かつ自車50と反対側の1メートル内に位置するエッジ点の個数が5個以上であるエッジ点が存在すると判定したときには、この存在すると判定される直線毎のエッジ点を駐車枠51のうち自車50側の端点60a、61a、62a、63aとして決める。
次に、図5のステップS270において、駐車枠51のうち自車50側の端点60a、61a、62a、63aと駐車枠51を示す4本の直線とに基づいて、目標駐車位置を決定する。
具体的には、駐車枠51を示す4本の直線のうち、自車50側の端点に対して自車50と反対側で、かつ自車50側の端点との間の距離が所定距離Lとなる位置を直線毎に決める。この直線毎に決められる4つの位置から定める位置を目標駐車位置として決定する。目標駐車位置は、操舵角等を制御して自車50の駐車を支援する際に、自車50を駐車させるための目標位置として用いられる。
以上説明した本実施形態によれば、車載画像処理装置1のマイクロコンピュータ30は、自車50が駐車枠51の付近を走行する際に駐車枠51側の景色を繰り返し撮影するためのCCDカメラ10が撮影する毎に自車50の位置情報を取得する第1ステップと、CCDカメラ10の撮影毎の位置情報に基づいて撮影画像中のエッジ点の座標を撮影毎の位置情報に対応付けるように撮影画像中のエッジ点の座標を撮影毎に変換し、この変換毎に前記変換された座標上のエッジ点を共通のハフ空間に投票して、この投票毎に投票履歴をメモリ20に記憶させる第2ステップと、メモリ20に記憶される投票毎の履歴から駐車枠51を示す4本の直線を検出可能であるか否かを判定する第3ステップと、位置情報に対応付けられた撮影毎のエッジ点の座標をメモリ20に記憶させる第4ステップと、投票毎の履歴から駐車枠51を示す4本の直線を検出可能であると第3ステップで判定したとき、投票毎の履歴から検出可能であると判定された駐車枠51を示す4本の直線とメモリ20に記憶される撮影毎のエッジ点の座標とに基づいて、駐車枠51のうち自車50側の端点を直線毎に検出する第5ステップと、第5ステップによって検出される直線毎の端点に基づいて、自車50の駐車目標位置を決定する第6ステップとを備えることを特徴とする。
以上により、駐車枠51を示す4本の直線を用いて、自車50の駐車目標位置を決定することができる。
本実施形態では、上記ステップS130で座標変換された鳥瞰座標上のエッジ点の座標をメモリ20に撮影毎に保存する。メモリ20に記憶される撮影毎の鳥瞰座標上のエッジ点の座標の記憶容量が規定容量以上であるであると判定したとき、メモリ20において、最も古いタイミングの撮影に対応するエッジ点の座標を初期化する。このため、メモリ20において、最も古いタイミングの撮影に対応するエッジ点の座標に代えて最も新しいタイミングの撮影に対応するエッジ点の座標が記憶されることになる。これにより、メモリ20に記憶される撮影毎の鳥瞰座標上のエッジ点の座標の記憶容量を制限することができる。
なお、上記第1実施形態では、駐車枠51を示す2対の平行直線を複数対の平行直線から検出した後に、駐車枠51のうち自車50側の端点を検出した例について説明したが、これに代えて、駐車枠51を示す2対の平行直線を複数対の平行直線から検出した後に、駐車枠51を示す2対の平行直線を検出した旨を使用者に報知してから、駐車枠51のうち自車50側の端点を検出するようにしてもよい。
(第2実施形態)
上記第1実施形態では、変速機44がリバースレンジに設定されると、共通のハフ空間の投票履歴から直線を抽出する処理(ステップS230)を実施する例について説明したが、これに代えて、本第2実施形態では、自車50が所定距離(例えば、1メートル)走行する毎に、共通のハフ空間の投票履歴から直線を抽出する処理(ステップS230)を実行する例について説明する。
本実施形態のマイクロコンピュータ30は、図8、図9のフローチャートにしたがって、駐車枠抽出処理を実行する。図8、図9のフローチャートは、図4、図5のフローチャートに代えて用いられるものである。
図8、図9のフローチャートは、図4、図5のフローチャートからステップS220を削除し、かつステップS262を追加したものである。
ステップS220は、変速機44がリバースレンジに設定されているか否かについて判定するステップである。ステップS262は、ステップS260で共通のハフ空間の投票履歴から駐車枠51を示す4本の直線が検出されたときに、共通のハフ空間の投票履歴から駐車枠51を示す4本の直線を検出した旨を使用者に報知音としてスピーカ44から出力するステップである。
以上により、駐車開始スイッチ42がオンされると、自車50の走行距離が所定距離以上になるまで、ステップS100、S110、S120、S130、S140〜S143、S150、S160、S170、およびステップS180のNO判定を繰り返す。
一方、自車50の走行距離が所定距離以上になる毎に、ステップS100〜S130、S140〜S143、S150〜S170、ステップS180のYES判定、S190、ステップS200のYES判定(或いは、ステップS200のNO判定およびステップS210)、ステップS230、S240、S250、S251、S260、S261、S262、S270、S280を繰り返す。
したがって、ステップS180でYESと判定されてから自車50が走行した走行距離が所定距離以上になってステップS180でYESと判定される毎に、ハフ空間N、ハフ空間N+1、ハフ空間N+2、およびハフ空間N+3のそれぞれ投票履歴を共通のハフ空間に写像する(ステップS230)。
その後、共通ハフ空間の投票履歴から駐車枠51を示す4本の直線を抽出すると、共通のハフ空間の投票履歴から駐車枠51を示す4本の直線を抽出した旨を使用者に報知音としてスピーカ44から出力する(ステップS240〜S262)。次のステップ270において、駐車枠51のうち自車50側の端点を直線毎に検出すると、この検出される直線毎の端点と駐車枠51を示す4本の直線とに基づいて目標駐車位置を決定する。
以上説明した本実施形態によれば、自車50が所定距離走行する毎に、共通ハフ空間の投票履歴から直線を抽出する。そして、共通ハフ空間の投票履歴に駐車枠51を示す4本の直線が存在すると判定したときには、共通ハフ空間の投票履歴から駐車枠51を示す4本の直線を抽出し、また駐車枠51の自車側端点を検出する。したがって、自車50を前進させているときに、駐車枠51を示す4本の直線が抽出されれば、自車50の駐車目標値を決定することができる。
本実施形態では、共通のハフ空間の投票履歴から駐車枠51を示す4本の直線が抽出されたときに、共通のハフ空間の投票履歴から駐車枠51を示す4本の直線を抽出した旨を使用者に報知音としてスピーカ44から出力する。これにより、自車50の前進中に、駐車枠51の存在を使用者が知ることができる。このため、使用者に対する駐車支援の利便性を向上させることができる。
なお、上記第2実施形態では、スピーカ44の報知音によって、共通のハフ空間の投票履歴から駐車枠51を示す4本の直線を抽出した旨を使用者に報知した例について説明したが、これに代えて、画像装置の表示等によって、共通のハフ空間の投票履歴から駐車枠51を示す4本の直線を抽出した旨を使用者に報知してもよい。
(第3実施形態)
上記第1、2の実施形態では、ステップS180でYESと判定される毎に、ハフ空間Nとハフ空間N+1とに投票し、かつ共通のハフ空間の投票履歴から直線を抽出する例について説明したが、これに代えて、ステップS180でYESと判定される毎に、ハフ空間Nとハフ空間N+1とへの投票を行わずに、共通のハフ空間の投票履歴から直線を抽出する例について説明する。
本実施形態のマイクロコンピュータ30は、図10、図11のフローチャートにしたがって、駐車枠抽出処理を実行する。図10、図11において、図4、図5と同一符号は、同一ステップを示している。
次に、本実施形態の駐車枠抽出処理の詳細について説明する。
まず、ステップS100、S110の各処理の実行後において、次のステップS180において、前回のステップS180でYESと判定されてから、自車50が所定距離(例えば、1メートル)以上走行したか否かを判定する。
ここで、前回のステップS180でYESと判定されてから、自車50が走行した走行距離が所定距離未満であるときには、今回のステップS180でNOと判定して、ステップS120、S130、S140、S141、S150、S160、S170の各処理を実行する。
このため、ステップS180でYESと判定される迄、ステップS100、S110、ステップS180のNO判定、S120、S130、S140、S141、S150、S160、S170を繰り返すことになる。すなわち、ステップS180でYESと判定される迄、ハフ空間Nとハフ空間N+1とへの投票を繰り返すことになる。
その後、前回のステップS180でYESと判定されてから、自車50が走行した走行距離が所定距離以上になり、今回のステップS180でYESと判定すると、ステップS190、S200、S210、S230、S240、S250、S251、S260、S261、S262、S270、S280を実施する。
したがって、ステップS180でYESと判定される毎に、ハフ空間N、ハフ空間N+1、ハフ空間N+2、およびハフ空間N+3のそれぞれ投票履歴を共通のハフ空間に写像する(ステップS230)。そして、共通ハフ空間の投票履歴から駐車枠51を示す4本の直線を抽出すると(ステップS240〜S261)、共通のハフ空間の投票履歴から駐車枠51を示す4本の直線を抽出した旨を使用者に報知音としてスピーカ44から出力する(ステップS262)。
これに加えて、駐車枠51のうち自車50側の端点を直線毎に検出し、この検出される直線毎の端点と駐車枠51を示す4本の直線とに基づいて目標駐車位置を決定する(ステップS280)。
以上説明した本実施形態によれば、前回のステップS180でYESと判定されてから、自車50が走行した走行距離が所定距離未満であるときには、ハフ空間Nとハフ空間N+1とへの投票を繰り返す。前回のステップS180でYESと判定されてから、自車50が走行した走行距離が所定距離以上になった場合に、ハフ空間Nとハフ空間N+1とへの投票を行わずに、共通ハフ空間の投票履歴から直線を抽出する。そして、共通ハフ空間の投票履歴に駐車枠51を示す4本の直線が存在すると判定した場合に、駐車枠51のうち自車50側の端点を直線毎に検出し、この検出される直線毎の端点と駐車枠51を示す4本の直線とに基づいて自車50の目標駐車位置を決定する。したがって、上記第1実施形態に比べて、簡素な処理で、自車50の目標駐車位置を決定することができる。
(第4実施形態)
上記第1、第2実施形態では、メモリ20のうち上記鳥瞰座標上の複数のエッジ点の座標が保存される記憶容量が規定容量未満になるように記憶容量を制限する処理を実施した例について、これに代えて、本第4実施形態では、メモリ20のうち上記鳥瞰座標上の複数のエッジ点の座標が保存される記憶容量が規定容量未満になるように記憶容量を制限する処理を実施しない例について説明する。
本実施形態のマイクロコンピュータ30は、図12、図13のフローチャートにしたがって、駐車枠抽出処理を実行する。図12、図13において、図7、図8からステップS142、S143を削除したものである。ステップS142、S143は、メモリ20のうち上記鳥瞰座標上の複数のエッジ点の座標が保存される記憶容量を制限するステップである。このため、本実施形態では、メモリ20のうち上記鳥瞰座標上の複数のエッジ点の座標が保存される記憶容量を制限する処理以外の他の処理は、上記第2実施形態と同様である。
以上説明した本実施形態によれば、メモリ20のうち上記鳥瞰座標上の複数のエッジ点の座標が保存される記憶容量を制限することなく、CCDカメラ10の撮影毎に、上記鳥瞰座標上の複数のエッジ点の座標をメモリ20に保存する。この保存された複数のエッジ点の座標を用いて上記第1実施形態と同様に、駐車枠51のうち自車50側の端点を直線毎に検出することができる。
(他の実施形態)
上述の第1〜第4実施形態では、直線を表すための第1パラメータをρとし、直線を表すための第2パラメータをθとして、X軸をρ、Y軸をθ、Z軸をエッジ点の投票数とする空間をハフ空間とする例について説明したが、これに代えて、直線を表すための第1パラメータを傾きaとし、直線を表すための第2パラメータを切片bとして、X軸を傾きa、Y軸を切片b、およびZ軸をエッジ点の投票数とする空間をハフ空間としてもよい。ここで、傾きaおよび切片bは、二次元のXY座標上の点(xi、yi)を通る直線Aをyi=a×xi+bと表すために用いられるパラメータである。
上述の第1実施形態では、駐車枠51のうち自車50側の端点を決めるために、第1所定距離および第2所定距離をそれぞれ1メートルとし、第1の閾値を1個とし、第2の閾値を5個とした例について説明したが、これに限らず、第1所定距離および第2所定距離を1メートル以外の長さとしてもよく、第1の閾値を1個以外の個数としてもよく、第2の閾値を5個以外の個数にしてもよい。
上述の第1〜第4実施形態では、操舵角センサ41の出力信号および車速センサ42の出力信号に基づいて、自車40の位置情報を算出した例について説明したが、これに代えて、GPSを用いて自車40の位置情報を算出してもよい。
上述の第1〜第4実施形態では、自車の後方に配置されるCCDカメラ10を用いて、周囲の景色として駐車枠51側の景色を撮影する例について説明したが、これに限らず、駐車枠51側の景色を撮影することが可能ならば、自車の後方以外の箇所に配置されるCCDカメラ10を用いてもよい。
上述の第1〜第4の実施形態では、CCDカメラ10の撮影画像からエッジ点を抽出して、この抽出された複数のエッジ点に対してトップビュー変換を実施する例について説明したが、これに代えて、CCDカメラ10の撮影画像に対してトップビュー変換し、このトップビュー変換された撮影画像からエッジ点を抽出するようにしてもよい。
上述の第1〜第4の実施形態では、エッジ点の座標を用いて駐車枠51のうち自車側端点を検出するようにした例について説明したが、これに代えて、エッジ点の座標に加えて、座標以外の他の情報(例えば、エッジ点の強度、向き)などを用いて駐車枠51のうち自車側端点を検出するようにしてもよい。この場合、図4のステップS141において、エッジ点の座標とともに、エッジ点の他の情報をメモリ20に記憶させる。
なお、本発明は上記した実施形態に限定されるものではなく、特許請求の範囲に記載した範囲内において適宜変更が可能である。また、上記各実施形態は、互いに無関係なものではなく、組み合わせが明らかに不可な場合を除き、適宜組み合わせが可能である。また、上記各実施形態において、実施形態を構成する要素は、特に必須であると明示した場合および原理的に明らかに必須であると考えられる場合等を除き、必ずしも必須のものではないことは言うまでもない。また、上記各実施形態において、実施形態の構成要素の個数、数値、量、範囲等の数値が言及されている場合、特に必須であると明示した場合および原理的に明らかに特定の数に限定される場合等を除き、その特定の数に限定されるものではない。また、上記各実施形態において、構成要素等の形状、位置関係等に言及するときは、特に明示した場合および原理的に特定の形状、位置関係等に限定される場合等を除き、その形状、位置関係等に限定されるものではない。