白線検出装置
【課題】本発明は、白線のエッジ抽出の際の閾値の決定手段を不要とし、処理を簡素化して、白線両端に生じるエッジを路面の模様、影、照明などの影響を極力排除し、信頼性高く抽出することができる白線検出装置を提供することを目的としている。
【解決手段】この発明は、白線のエッジか否かの判定対象である画素とこの画素から走査線方向に1〜K画素隣の画素との輝度の差分を算出する第1〜第Kの差分算出手段と、この第1〜第Kの差分算出手段により算出された差分が予め設定された閾値以上か否かを判定する第1〜第Kの閾値判定手段とを備え、この第1〜第Kの閾値判定手段の少なくともいずれか1つにより差分が閾値以上と判定されることを第1の条件とし、この第1の条件が満たされた場合に、判定対象である画素を白線のエッジとすることを特徴とする。
【解決手段】この発明は、白線のエッジか否かの判定対象である画素とこの画素から走査線方向に1〜K画素隣の画素との輝度の差分を算出する第1〜第Kの差分算出手段と、この第1〜第Kの差分算出手段により算出された差分が予め設定された閾値以上か否かを判定する第1〜第Kの閾値判定手段とを備え、この第1〜第Kの閾値判定手段の少なくともいずれか1つにより差分が閾値以上と判定されることを第1の条件とし、この第1の条件が満たされた場合に、判定対象である画素を白線のエッジとすることを特徴とする。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は白線検出装置に係り、特に、車両に搭載したバックカメラの映像より駐車枠の白線を抽出する白線検出装置に関するものである。
【背景技術】
【0002】
画像中の白線を検出するために、画像中のエッジを検出する際、通常は、Sobel、ラプラシアンなどの二次元オペレータを用いた後、閾値を用いた2値化を行う。しかし、一意に閾値を決定することは困難である場合が多い。
駐車枠に自車を止めるために、駐車枠の白線を検出する場合は、画像中の縦方向に現れるエッジを検出する必要がある。エッジ検出に当たっては、路面の模様、影、照明などの影響を極力排除する必要がある。
【0003】
従来の白線検出装置においては、微分を用いてエッジを検出した後、パーセンタイル法を用いて、2値化後に1となっている画素数が、全画素数のn%となるように閾値を決定し、2値化しているものがある。(特許文献1)
また、従来の白線検出装置においては、微分結果より空間的な稜線を求めることにより、エッジの検出を行っているものがある。(特許文献2)
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開昭64−15605号公報
【特許文献2】特開昭64−61606号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
ところで、前記特許文献1に開示されるものは、微分を用いてエッジを検出した後、パーセンタイル法を用いて、2値化後に1となっている画素数が、全画素数のn%となるように閾値を決定し、2値化している。
このため、特許文献1は、閾値を変更しながら、所望の閾値を決定する必要があること、環境によって、石畳などテクスチャが複雑な背景となった場合、2値化により1となる画素が想定以上に生じると、正しく閾値が求まらない可能性がある。
また、特許文献1は、エッジの検出方法も、カメラが45度、135度固定であり、カメラの取付角度によっては、必ずしも当てはまらない場合がある。
【0006】
前記特許文献2に開示されるものは、微分結果より空間的な稜線を求めることにより、エッジの検出を行っているが、微分データの増減を探索する必要があり、また微小な増減に対応するためには、複数の稜線候補点からさらに絞り込む必要があるなど、処理が煩雑である。
また、特許文献2は、白線両端のエッジについては、「黒」→「白」方向のもののみを検出対象としているため、白線の汚れなどにより複数のエッジが検出されてしまう可能性がある。そして、複数のエッジが検出されると、特許文献2は、後段にて白線検出を行う際(例えば、Hough変換)、候補点が増加するため、より多くのメモリを必要とするなどの問題がある。
【0007】
本発明は、白線のエッジ抽出の際の閾値の決定手段(適応制御的なもの)を不要とし、処理を簡素化して、白線両端に生じるエッジを路面の模様、影、照明などの影響を極力排除し信頼性高く抽出することができる白線検出装置を提供することを目的としている。
【課題を解決するための手段】
【0008】
この発明は、白線のエッジか否かの判定対象である画素とこの画素から走査線方向に1〜K画素隣の画素との輝度の差分を算出する第1〜第Kの差分算出手段と、この第1〜第Kの差分算出手段により算出された差分が予め設定された閾値以上か否かを判定する第1〜第Kの閾値判定手段とを備え、この第1〜第Kの閾値判定手段の少なくともいずれか1つにより差分が閾値以上と判定されることを第1の条件とし、この第1の条件が満たされた場合に、判定対象である画素を白線のエッジとすることを特徴とする。
【発明の効果】
【0009】
従来技術では、白線両端微分値強調フィルタを用いるので、画像をメモリに一度記憶する必要がある。したがって、その分のリソースが必要となる。また、白線両端微分値強調フィルタを用いると、閾値が変動するので、画像の各位置に応じて閾値を適応制御する必要がある。そのためには判別分析法等の処理をする必要があるが、これらの処理は非常に重く、また並列処理をする場合でも膨大なリソースが必要になる。
この発明の白線検出装置では、背景光の影響を受けにくい為、閾値を一定とすることができる。このため、少ないリソースで済み、また処理を容易にすることができる。したがって、FPGA等の汎用性の高いデバイスを用いても、リアルタイムに処理が可能となる。
また、この発明の白線検出装置では、白線が影に入っている場合でも、白線のエッジを検出することができる。
【図面の簡単な説明】
【0010】
【図1】図1は白線検出装置によるエッジ検出の制御用フローチャートである。(実施例1)
【図2】図2は白線検出装置のシステム構成図である。(実施例1)
【図3】図3はオペレータを示し、(a)は差分オペレータを示す概略説明図、(b)は白線両端微分値強調フィルタのオペレータを示す概略説明図である。(実施例1)
【図4】図4は微分と道路の白線と白線両端微分値強調フィルタ演算値とを示す図である。(実施例1)
【図5】図5は画像を示し、(a)は処理前の画像を示す図、(b)は閾値を「1」としたときのエッジ検出結果の画像を示す図、(c)は閾値を「10」としたときのエッジ検出結果の画像を示す図、(d)は閾値を「20」としたときのエッジ検出結果の画像を示す図である。(実施例1)
【図6】図6は閾値を「10」とした際の、壁(320.240)の明るさ「180」の設定1における明るさの変化の影響を示し、(a)は処理前の画像を示す図、(b)はエッジ検出結果の画像を示す図である。(実施例1)
【図7】図7は閾値を「10」とした際の、壁(320.240)の明るさ「62」の設定2における明るさの変化の影響を示し、(a)は処理前の画像を示す図、(b)はエッジ検出結果の画像を示す図である。(実施例1)
【図8】図8は閾値を「10」とした際の、壁(320.240)の明るさ「32」の設定3における明るさの変化の影響を示し、(a)は処理前の画像を示す図、(b)はエッジ検出結果の画像を示す図である。(実施例1)
【図9】図9は 図8の設定3において閾値を「5」に設定した際の、エッジ検出結果の画像を示す図である。(実施例1)
【図10】図10は実際の駐車枠の画像処理であって、(a)は影がある入力画像を示す図、(b)は差分によるエッジ検出結果の画像を示す図である。(実施例1)
【図11】図11は影がある入力画像に測定ラインを設定した画像を示す図である。(実施例1)
【図12】図12は図11の測定ラインによる横方向の輝度変化(ラインプロファイル)を示す図である。(実施例1)
【図13】図13は輝度変化を示す画素に対する閾値による差分処理を示す図である。(実施例1)
【図14】図14は図10(a)の影がある入力画像の第1の条件[1]によるエッジ検出結果の画像を示す図である。(実施例1)
【図15】図15は図11の測定ラインによる横方向の輝度変化(ラインプロファイル)を示し、輝度変化後の輝度値の維持状態を説明する図である。(実施例1)
【図16】図16は輝度変化を示す画素に対する閾値による差分処理を示し、(a)は閾値を超えている輝度の幅が広い場合の差分処理を示す図、(b)は閾値を超えている輝度の幅が狭い場合の差分処理を示す図である。(実施例1)
【図17】図17は図10(a)の影がある入力画像の第2の条件[2]によるエッジ検出結果を示す画像を示す図である。(実施例1)
【図18】図18は夜間の実際の駐車枠の画像処理であって、(a)はブレーキランプが点灯した際の入力画像を示す図、(b)は差分によるエッジ検出結果の画像を示す図、(c)影がある入力画像の第1の条件[1]によるエッジ検出結果の画像を示す図、(d)は影がある入力画像の第2の条件[2]によるエッジ検出結果を示す画像を示す図である。(実施例1)
【図19】図19は白線検出装置による輝度変換の制御用フローチャートである。(実施例2)
【図20】図20は白線検出装置のシステム構成図である。(実施例2)
【図21】図21は駐車枠が黄線の画像処理であって、(a)は影がある入力画像を示す図、(b)は実施例1の処理によるエッジ検出結果(閾値10)の画像を示す図、(c)は実施例1の処理による閾値5の場合のエッジ検出結果の画像を示す図である。(実施例2)
【図22】図22は駐車枠が黄線の画像処理であって、(a)は図18(a)の入力画像に適用した実施例1の処理によるエッジ検出結果(閾値5)の画像を示す図、(b)は図18(a)の入力画像に適用した実施例1の処理によるエッジ検出結果(閾値10)の画像を示す図である。(実施例2)
【図23】図23は駐車枠が黄線の影がある入力画像に測定ラインを設定した画像を示す図である。(実施例2)
【図24】図24は図23の測定ラインによる横方向の輝度変化(ラインプロファイル)を示す図である。(実施例2)
【図25】図25は夜間の駐車枠が黄線の入力画像に測定ラインを設定した画像を示す図である。(実施例2)
【図26】図26は図25の測定ラインによる横方向の輝度変化(ラインプロファイル)を示す図である。(実施例2)
【図27】図27は輝度変換曲線を示す図である。(実施例2)
【図28】図28は駐車枠が黄線の画像処理であって、(a)は図21(a)の入力画像に適用したこの発明の処理によるエッジ検出結果の画像を示す図、(b)は図25の入力画像に適用したこの発明の処理によるエッジ検出結果の画像を示す図である。(実施例2)
【図29】図29は駐車枠が黄線の画像処理であって、(a)は図21(a)の入力画像に適用したSobel処理によるエッジ検出結果の画像を示す図、(b)は図18(a)の入力画像にこの発明による処理適用後にSobel処理を適用したエッジ検出結果の画像を示す図である。(変形例)
【発明を実施するための形態】
【0011】
以下図面に基づいて、この発明の実施例を説明する。
【実施例1】
【0012】
図1〜図18は、この発明の実施例1を示すものである。
図2において、1は白線検出装置である。白線検出装置1は、白線のエッジか否かの判定対象である画素とこの画素から走査線方向に1〜K画素(この実施例1では1〜3画素)隣の画素との輝度の差分を算出する第1〜第3の差分算出手段2−1〜2−3と、この第1〜第3の差分算出手段2−1〜2−3により算出された差分が予め設定された閾値以上か否かを判定する第1〜第3の閾値判定手段3−1〜3−3とを備え、この第1〜第3の閾値判定手段3−1〜3−3の少なくともいずれか1つにより差分が閾値以上と判定されることを第1の条件[1]とし、この第1の条件[1]が満たされた場合に、判定対象である画素を白線のエッジとする白線エッジ候補検出手段4を備えている。
また、白線検出装置1は、白線のエッジか否かの判定対象である画素とこの画素から走査線方向にL(L=2〜K+1)〜M画素(この実施例1では4〜6画素)隣の画素との輝度の差分を算出する第4〜第6の差分算出手段2−4〜2−6と、この第4〜第6の差分算出手段2−4〜2−6により算出された差分が予め設定された閾値以上か否かを判定する第4〜第6の閾値判定手段3−4〜3−6とを備え、この第4〜第6の閾値判定手段3−4〜3−6の全てにより差分が閾値以上と判定されることを第2の条件[2]とし、前記第1の条件[1]と第2の条件[2]との両方が満たされた場合に、判定対象である画素を白線のエッジとする白線エッジ判定手段5を備えている。
【0013】
白線検出装置1は、入力側にビデオ入力部(「デコーダ」ともいう。)6によりカメラ7が接続されるとともに、出力側にビデオ出力部(「エンコーダ」ともいう。)8が接続されている。
白線検出装置1は、ビデオ入力部6からの入力画像をそのまま入力するようにビデオ入力部6を第1〜第3の差分算出手段2−1〜2−3に接続するとともに、ビデオ入力部6からの入力画像に対して1画素遅延〜3画素遅延を行った後に第1〜第3の差分算出手段2−1〜2−3に入力させる第1〜第3の画素遅延手段9−1〜9−3を備えている。第1〜第3の差分算出手段2−1〜2−3は、第1〜第3の閾値判定手段3−1〜3−3を介して白線エッジ候補検出手段4に接続されている。
また、白線検出装置1は、ビデオ入力部6からの入力画像をそのまま入力するようにビデオ入力部6を第4〜第6の差分算出手段2−4〜2−6に接続するとともに、ビデオ入力部6からの入力画像に対して4画素遅延〜6画素遅延を行った後に第4〜第6の差分算出手段2−4〜2−6に入力させる第4〜第6の画素遅延手段9−4〜9−6を備えている。第4〜第6の差分算出手段2−4〜2−6は、第4〜第6の閾値判定手段3−4〜3−6を介して白線エッジ判定手段5に接続されている。白線エッジ判定手段5には、前記白線エッジ候補検出手段4が接続されている。
さらに、白線検出装置1は、白線エッジ判定手段5に接続されるとともに、ビデオ出力部8に接続されるエッジ画像生成手段10を備えている。
【0014】
白線検出装置1は、カメラ7からビデオ入力部6を介して入力される入力画像を以下の手順で処理して出力する。
(1)、入力画像は、ラスタスキャンにより「上から下」、「左から右」の順に各画素のデータ(輝度、色)が入力される。白線検出装置1は、入力画像の輝度の情報を用いる。
(2)、入力された画素の輝度情報は、第1〜第6の差分算出手段2−1〜2−6により1画素前(左)〜6画素前(左)までの差分の算出を行う。
(3)、白線検出装置1は、差分結果(絶対値)を第1〜第3の閾値判定手段3−1〜3−3で閾値処理し、エッジ位置候補点を抽出する。3画素前までの抽出結果は、白線エッジ候補検出手段4の第1の条件[1]によるOR処理にて白線のエッジ候補を検出する。
(4)、エッジ位置候補が検出された場合、さらに6画素前までの結果を白線エッジ判定手段5の第2の条件[2]によるAND処理により白線によるエッジ位置を判定する。
(5)、以上より、白線のエッジとして抽出された画素を用いて、エッジ画像生成手段10によりエッジ画像を生成する。
(6)、生成されたエッジ画像は、ビデオ出力部8により出力され、Hough変換など白線検出などに利用できる。
【0015】
これに対して、白線検出装置の従来技術では、白線両端微分値強調フィルタを用いるので、画像をメモリに一度記憶する必要がある。したがって、その分のリソースが必要となる。また、白線両端微分値強調フィルタを用いると、閾値が変動するので、画像の各位置に応じて閾値を適応制御する必要がある。そのためには判別分析法等の処理をする必要があるが、これらの処理は非常に重く、また並列処理をする場合でも膨大なリソースが必要になる。
【0016】
この白線検出装置1では、背景光の影響を受けにくい為、閾値を一定とすることができる。このため、少ないリソースで済み、また処理を容易にすることができる。したがって、FPGA(Field Programmable Gate Array)等の汎用性の高いデバイスを用いても、リアルタイムに処理が可能となる。また、この白線検出装置1では、白線が影に入っている場合でも、白線のエッジを検出することができ、さらに、ノイズを増やすことなく、白線のエッジを検出することができる。
【0017】
ここで、この発明の白線検出装置1に対して、従来の処理例としての白線両端微分値強調フィルタを用いた方法を説明する。
従来の手法においては、画像の微分を求め、白線両端微分値強調フィルタを用いて道路の白線幅と同じ幅を持つ白線の抽出を行っている。ここで、微分は差分で置き換え可能であるので、差分オペレータ(図3(a))を用いて差分画像を得る。白線両端微分値強調フィルタは、道路白線幅(画素数)と同じ幅を持つオペレータで、図3(b)に示すように、オペレータの中央で符号が「+(プラス)」から「−(マイナス)」へ反転する。
以上の処理により、図4に示すような結果が得られ、適切な閾値を選択することにより、道路上の白線と同じ幅を持つ特徴のみを抽出することができる。なお、閾値の選択には、判別分析法などを用いる。
【0018】
従来技術で用いられている微分(差分)処理については、同様に走査線方向(画面横方向)での差分処理とする。しかし、白線両端微分値強調フィルタを用いるためには、画像(走査線)を一度メモリに記録する必要があるため、その分のリソースが必要となる。また、白線両端微分値強調フィルタを用いると、図4に示すように、閾値レベルが変動するため、画像の各位置に応じて閾値を適応制御する必要がある。
そのためには、判別分析法などの処理が必要となるが、これらの処理は非常に重く、また並列処理する場合も膨大なリソースが必要となる。
そこで、「差分画像は、すぐ隣の画素との差分であり、隣接画素と当該画素の明るさ(照明条件)が大きく異なることは稀である」(例外:影によるエッジ)こと、また一般に駐車枠に引かれた白線などは、運転者が識別し易いように、路面とコントラストがはっきりしていると考えられるため、閾値は一定値とすることとした。
【0019】
図5において、(a)は処理前の画像を示し、(b)は閾値を「1」としたときのエッジ検出結果の画像を示し、(c)は閾値を「10」としたときのエッジ検出結果の画像を示し、(d)は閾値を「20」としたときのエッジ検出結果の画像を示す。なお、図5においては、エッジの極性による区別なく、「白→黒」や「黒→白」の全てを表示している。
図5(b)に示すように、閾値「1」では、細かなテクスチャによるエッジによる影響が見られる。しかし、図5(c)及び(d)に示すように、閾値「10」及び閾値「20」では、良好な結果が得られている。ここで、輝度変化による影響を確認するために、閾値「10」にてレンズの絞りを変化させたときの結果を、図6〜図8に示す。
図6は、閾値を「10」とした際の、壁(320、240)の明るさ「180」の設定1における明るさの変化の影響を示し、(a)は処理前の画像を示し、(b)はエッジ検出結果の画像を示している。
また、図7は、閾値を「10」とした際の、壁(320、240)の明るさ「62」の設定2における明るさの変化の影響を示し、(a)は処理前の画像を示し、(b)はエッジ検出結果の画像を示している。
更に、図8は、閾値を「10」とした際の、壁(320、240)の明るさ「32」の設定3における明るさの変化の影響を示し、(a)は処理前の画像を示し、(b)はエッジ検出結果の画像を示している。
この図6〜図8から、ダイナミックレンジの1/4程度の暗さまでは対応可能であることがわかる。
なお、上述の図8に開示される設定3の場合、画像奥の壁に近づくに連れて、エッジの検出ができなくなっている。仮に閾値を「5」まで下げた場合は、図9に示すように、エッジの検出は可能であるが、ノイズによる影響が大きくなってしまう。このことより、この従来手法の閾値決定に判別分析法を用いても、効果が少ないことが確認できる。
【0020】
上記従来手法による差分および閾値処理を実際の路面に適用した場合、下記のような問題が生じる。図10(a)のように影がある画像の場合、白線と路面との輝度差が少なく境界(隣接画素間)に明確な輝度差が生じないため、図10(b)のように白線のエッジが検出できていない。
そこで、図10(a)に示す入力画像について、図11に示すように横方向の測定ラインを設定し、輝度変化(ラインプロファイル)をとってみると、図12に示すように、明るい場所に比べて影のある場所では、白線と路面間の輝度変化に違いがあることがわかる。明るい場所では輝度変化が急峻である一方、影のある場所では輝度変化がなだらかになっている。なだらかな輝度変化に対応するためには、閾値を低くする必要があるが、閾値を低くすることにより不要なノイズが増加する欠点がある。
【0021】
この欠点に対して、この発明の白線検出装置1においては、なだらかな輝度変化に対応するため、差分処理の拡張をおこない、注目画素の一つ左隣(1画素前)の画素だけでなく二つ隣(2画素前)や三つ隣(3画素前)の画素とも差分を取り、いずれかが、閾値を超えた場合に白線によるエッジとして検出することとする。
図13において、□0(四角の中に0)は、現在の注目画素を表し、□1、□2、□3(四角の中に1、2、3)はそれぞれ、一つ左隣、二つ左隣、三つ左隣の各画素位置を表している。グラフの値がそれぞれの画素の輝度を表している。
図10の従来手法における差分処理では、|□0−□1|≧閾値であればエッジとしていたため、図13に示すようななだらかなエッジには対応できていなかった。
そこで、この発明の白線検出装置1では、
(|□0−□1|≧閾値)or(|□0−□2|≧閾値)or(|□0−□3|≧閾値)…第1の条件[1]、
とすることで、なだらかなエッジにも対応可能とした。
図14は、実際の路面の画像を上記第1の条件[1]にて判定した場合の、エッジの検出結果である。図14の検出結果は、図10(b)の検出結果に比べると、影の部分の白線のエッジを検出できていることがわかる。
【0022】
このように、白線検出装置1は、白線のエッジか否かの判定対象である画素とこの画素から走査線方向に1〜3画素隣の画素との輝度の差分を算出し、算出された差分が予め設定された閾値以上か否かを判定し、少なくともいずれか1つの差分が閾値以上と判定されることを第1の条件[1]とし、この第1の条件[1]が満たされた場合に、判定対象である画素を白線のエッジとしている。
これにより、白線検出装置1は、背景光の影響を受けにくい為、閾値を一定とすることができる。このため、少ないリソースで済み、また処理を容易にすることができる。したがって、FPGA等の汎用性の高いデバイスを用いても、リアルタイムに処理が可能となる。また、この白線検出装置1では、白線が影に入っている場合でも、白線のエッジを検出することができる。
【0023】
また、図14では、図10(b)の検出結果に比べ、路面のテクスチャによる誤検出が増えていることがわかる。Hough変換などで白線を検出する場合、信頼性向上のためには、白線以外によるノイズは極力少ないことが望ましい。
そこで、再度ラインプロファイル(図12)を検討してみると、図15に示すように、白線部では白線が幅を持つため、輝度が変化し差分値が閾値を越えた後も高い輝度値(大きい差分値)を維持するのに対し、路面部分では高い輝度値を維持していないことがわかる。
そこで、この発明の白線検出装置1は、前記第1の条件[1]を拡張し、輝度変化により、注目画素と1〜3個隣の画素との差分値が同値を越えた後、図16に示すように、さらに3画素(4〜6画素)隣の画素との差分値が同値を超えることを第2の条件[2]として加えている。
図16(a)は、閾値を超えている輝度の幅が広い場合の差分処理を示している。図16(b)は、閾値を超えている輝度の幅が狭い場合の差分処理を示している。
つまり、この発明の白線検出装置1は、
(|□0−□1|≧閾値)or(|□0−□2|≧閾値)or(|□0−□3|≧閾値)…第1の条件[1]、
を拡張し、
(第1の条件[1])and(|□0−□4|≧閾値)and(|□0−□5|≧閾値)and(|□0−□6|≧閾値)…第2の条件[2]、
とする。
第2の条件[2]による処理を追加した結果を、図17に示す。図17によれば、白線部はそのままに、図14の検出結果と比較して、路面のノイズが減っていることがわかる。
【0024】
このように、白線検出装置1は、白線のエッジか否かの判定対象である画素とこの画素から走査線方向にL(L=2〜K+1)〜M画素(この実施例1では4〜6画素)隣の画素との輝度の差分を算出し、算出された差分が予め設定された閾値以上か否かを判定し、全ての差分が閾値以上と判定されることを第2の条件[2]とし、前記第1の条件[1]と第2の条件[2]との両方が満たされた場合に、判定対象である画素を白線のエッジとしている。
これにより、白線検出装置1は、白線が影に入っている場合でも、ノイズを増やすことなく、白線のエッジを検出することができる。
【0025】
白線検出装置1のノイズ削減効果について参考のため、他の実験データも示す。
図18(a)は、夜間にブレーキランプが点灯した際の入力画像であり、図18(b)、18(c)、18(d)はそれぞれ、隣の画素との差分処理の画像、第1の条件[1]による処理に閾値処理を組み合わせた結果の画像、第2の条件[2]による処理に閾値処理を組み合わせた結果の画像である。
図18(d)に示す結果の画像は、図18(b)の画像より白線部が鮮明であり、図18(c)の画像よりノイズが少ないことが確認できる。
なお、上記閾値、第1の条件[1]、第2の条件[2]で用いる画素数や閾値は、一例であり、使用するカメラ7によりレンズの画角や地面からの距離によりカメラ7に映る白線の幅が変わるためにより変化する。
【0026】
次に、図1のエッジ検出の制御用フローチャートに沿って作用を説明する。この制御用フローチャートにおいては、エッジ判定を3画素とする第1の条件[1]と、白線判定(閾値を越えている幅)を3画素とする第2の条件[2]により白線のエッジを検出する。
白線検出装置1は、プログラムがスタート(101)すると、ビデオ入力部6を介して、カメラ7からの入力画像の画素データを入力し(102)、第1〜第3の画素遅延手段9−1〜9−3により1画素遅延〜3画素遅延の画素遅延処理(103)を行った画素データと入力したそのままの画素データとを第1〜第3の差分算出手段2−1〜2−3によって差分処理を行い(104)、第1〜第3の閾値判定手段3−1〜3−3によって第1〜第3の差分のいずれかの差分(絶対値)が閾値以上であるか(第1の条件[1])を判断する(105)。
この判断(105)がYESの場合は、第4〜第6の画素遅延手段9−4〜9−6により4画素遅延〜6画素遅延の画素遅延処理(103)を行った画素データと入力したそのままの画素データとを第4〜第6の差分算出手段2−4〜2−6によってそれぞれ差分処理を行い(106)、第4〜第6の閾値判定手段3−4〜3−6によって第4〜第6の差分の全ての差分(絶対値)が閾値以上であるか(第2の条件[2])を判断する(107)。
この判断(107)がYESの場合は、輝度値をMax(白)とし(108)、エッジ画像生成手段10によりエッジ画像を生成し(109)、ビデオ出力部8に出力してプログラムをエンドにする(110)。
一方、前記判断(105)がNOの場合、また、前記判断(107)がNOの場合は、輝度値をMin(黒)とし(111)、エッジ画像生成手段10によりエッジ画像を生成し(109)、ビデオ出力部8に出力してプログラムをエンドにする(110)。
【0027】
これにより、白線検出装置1は、第1の条件[1]と第2の条件[2]との両方が満たされた場合に、判定対象である画素を白線のエッジとしているので、白線が影に入っている場合でも、ノイズを増やすことなく、白線のエッジを検出することができる。
なお、第1の条件[1]と第2の条件[2]の処理は、
1.全ての画素に対しおこない、第1の条件[1]の結果と第2の条件[2]の処理のANDとする。
2.第1の条件[1]が成り立った場合にのみ、第2の条件[2]の処理をおこなう。
のいずれの方法でも良い。
【0028】
上述実施例1では、第1の条件[1]、第2の条件[2]は、
(|□0−□1|≧閾値)or(|□0−□2|≧閾値)or(|□0−□3|≧閾値)…第1の条件[1]、
(第1の条件[1])and(|□0−□4|≧閾値)and(|□0−□5|≧閾値)and(|□0−□6|≧閾値)…第2の条件[2]、
としているが、これに限定されるものではなく、第1の条件[1]が成立する画素位置(例えば2画素前)から、第2の条件[2]を適用してもよい。
例えば、2画素前で第1の条件[1]が成立する場合は、
(第1の条件[1])and(|□0−□3|≧閾値)and(|□0−□4|≧同値)and(|□0−□5|≧同値)…第2の条件[1]、
とすることができる。
また、1画素前で第1の条件[1]が成立する場合は、
(第1の条件[1])and(|□0−□2|≧閾値)and(|□0−□3|≧閾値)and(|□0−□4|≧閾値)…第2の条件[1]、
とするこができる。
また、検出するエッジは、画像メモリを使用しない場合には、横方向の探索のみとなるが、画像メモリが使用できる場合には、縦方向や縦横複合での検出が可能である。使用する画像メモリは、フレーム処理では、1フィールド分必要となるが、フィールド処理もしくはプログレッシブスキャンの場合は、実施例では6ライン分の記憶領域があればよい。
【実施例2】
【0029】
図19〜図28は、この発明の実施例2を示すものである。
上述実施例1の白線検出装置1においては、隣接画素との差分処理により固定閾値で白線の検出をおこなう場合も、他の車などの陰になっている領域などでは、輝度変化が少ないため、検出できない場合がある。特に、駐車枠が黄色の線などの場合、黄線は白線よりも輝度が低いため、検出できない状況が高まる場合がある。この問題に対応するために、閾値を低く設定すると、路面のテクステャなどの誤検出によるノイズの発生が顕著となり、Hough変換などでの線分検出が困難となる。
図21(a)に示すように、影中の駐車枠が黄線の場合、図21(b)に示すように、実施例1の白線検出装置1による処理(閾値10)では黄線の駐車枠の抽出が困難である。図21(c)に示すように、単純に閾値を1/2(閾値5)にした場合、黄線のエッジは抽出できているが、路面のノイズが増加していることがわかる。
図21に示す駐車枠の黄線の抽出は、閾値を下げる(閾値5)ことにより、エッジの抽出は可能となるが、路面のテクスチャにより生じるノイズが増加している。また同じように実施例1の白線検出装置1による処理を、前述図18(a)の夜間の駐車枠の画像に適用すると、閾値5による適用例の図22(a)、閾値10による適用例の図22(b)に示すように、やはりノイズが増加していることがわかる。
これは、映像信号はその性質上(AM信号)、レベルが低い(暗い)領域ではSN比が悪化する。閾値を下げることは、暗い領域のノイズの影響を受けやすくなるためノイズが増加し、効果は少ないことと、閾値を下げたことにより、路面のテクスチャ(凹凸にライトが反射)の影響が増えたためである。
【0030】
そこで、図21(a)に示す入力画像について、図23に示すように横方向の測定ラインを設定し、輝度変化(ラインプロファイル)をとってみると、図24に示す結果が得られた。
図24のラインプロファイルを見ると、影の中の路面の輝度値は、50以下、影以外の路面の輝度値は100前後、影中の黄色線の輝度は60前後、影以外の白線の輝度は、180〜200程度となっていることが分かる。また、影以外の路面領域では、5から10程度のばらつきが生じていることが分かる。
この結果より、閾値10では、影中の黄色線を検出するにはぎりぎりの閾値であり、また閾値を5(1/2)に下げると、影以外の路面領域で、ノイズを生じる原因となることが分かる。
また、前述図18(a)のように夜間では、図25に示すように横方向の測定ラインを設定し、輝度変化(ラインプロファイル)をとってみると、図26に示すように、路面の輝度値が、100〜180程度で大きくばらつき、白線は、ほぼ250前後となっていることがわかる。
【0031】
上記2例(図23・図24及び図25・図26)より、輝度が低い領域では、路面と黄線の差が少なく(白線でも同様[図12参照])、影となっていない領域では差が大きくなることが分かる。また、夜間などでも、路面の輝度は120前後あり、白線の輝度は250を越えることが分かる。よって、50前後での閾値を、現状よりも少し下げ(10以下)、それ以上の領域の閾値は、現状よりも上げて(10以上)よいことがわかる。
これは、カメラのオートゲインコントロールにより、簡単には画像の平均輝度が輝度分解能の半分(例では8bitなので128)になるように調節しているからである。
よって、中間輝度の領域のコントラストをさげ、日中の影の輝度領域(50以下)のコントラストを向上させ、夜間の路面領域(200以下)のコントラストを下げるように、予め設定された輝度変換曲線に基づいて入力画像の画素の輝度を変換することにより、駐車枠を示す白線(黄線)の検出性能の向上と路面のテクスチャによるノイズ除去の双方に効果のあることがわかった。
図27は、提案する輝度変換曲線を示す。図27の輝度変換曲線によると、入力輝度が0〜128までは、出力を増加させ、128以上は出力が入力よりも低くなっている。また、64から192までは、入力輝度変化に対し出力輝度の変化の傾きは1/2になっている。これにより、路面のデータが多く存在する100前後から180前後にかけての路面のテクスチャによるノイズに対しては、閾値20を適用したのとほぼ等価となり、ノイズの発生を抑えることが出来る。また、影の中の路面のデータが多く存在する50以下については、64以下の入力に対する出力の傾きを1.5倍とすることで、閾値を7程度まで下げた効果を得ることができる。
【0032】
また、図27の輝度変換曲線は、その屈曲点を64、192とすることにより、足し算、引き算、ビットシフトによる割り算で演算可能なため、計算に必要なリソースが少なくてすむ。このため、低価格帯のFPGAにも十分に実装可能である。
輝度変換曲線の変換式は、
(1). 0〜63 : 出力=入力+(入力/2)
(2). 64〜127 : 出力=入力+((127−入力)/2)
(3).128〜191 : 出力=入力−((入力−127)/2)
(4).192〜255 : 出力=入力−((255−入力)/2)
である。
図27の変換テーブルを、図21(a)の画像と図18(a)の画像に適用した結果を、図28(a)と図28(b)にそれぞれ示す。輝度変換曲線に基づいて入力画像の画素の輝度を変換することによって、問題となっていた駐車枠の黄線の検出を可能とし、増加した路面のテクスチャによるノイズを大幅に削減することが出来ていることがわかる。
【0033】
実施例2の白線検出装置1は、駐車枠の黄線の検出を可能とし、増加した路面のテクスチャによるノイズを削減するために、図20に示すように、実施例1の構成に加えて、輝度変換手段11を備えている。輝度変換手段11は、ビデオ入力部6からの入力画像を入力し、予め設定された輝度変換曲線に基づいて入力画像の画素の輝度を変換する。白線検出装置1は、この輝度変換手段11により輝度を変換された画素に基づいて白線のエッジを検出する。
実施例2の白線検出装置1は、実施例1と同様に、白線のエッジか否かの判定対象である画素とこの画素から走査線方向に1〜K画素(この実施例1では1〜3画素)隣の画素との輝度の差分を算出する第1〜第3の差分算出手段2−1〜2−3と、この第1〜第3の差分算出手段2−1〜2−3により算出された差分が予め設定された閾値以上か否かを判定する第1〜第3の閾値判定手段3−1〜3−3とを備え、この第1〜第3の閾値判定手段3−1〜3−3の少なくともいずれか1つにより差分が閾値以上と判定されることを第1の条件(1)とし、この第1の条件(1)が満たされた場合に、判定対象である画素を白線のエッジとする白線エッジ候補検出手段4を備えている。
また、白線検出装置1は、白線のエッジか否かの判定対象である画素とこの画素から走査線方向にL(L=2〜K+1)〜M画素(この実施例1では4〜6画素)隣の画素との輝度の差分を算出する第4〜第6の差分算出手段2−4〜2−6と、この第4〜第6の差分算出手段2−4〜2−6により算出された差分が予め設定された閾値以上か否かを判定する第4〜第6の閾値判定手段3−4〜3−6とを備え、この第4〜第6の閾値判定手段3−4〜3−6の全てにより差分が閾値以上と判定されることを第2の条件(2)とし、前記第1の条件(1)と第2の条件(2)との両方が満たされた場合に、判定対象である画素を白線のエッジとする白線エッジ判定手段5を備えている。
【0034】
白線検出装置1は、入力側にビデオ入力部6によりカメラ7が接続されるとともに、出力側にビデオ出力部8が接続されている。ビデオ入力部6は、輝度変換手段11に接続されている。輝度変換手段11は、予め設定された輝度変換曲線に基づいて、ビデオ入力部6からの入力画像の画素の輝度を変換する。
白線検出装置1は、輝度を変換された画素をそのまま入力するように輝度変換手段11を第1〜第3の差分算出手段2−1〜2−3に接続するとともに、輝度を変換された画素に対して1画素遅延〜3画素遅延を行った後に第1〜第3の差分算出手段2−1〜2−3に入力させる第1〜第3の画素遅延手段9−1〜9−3を備えている。第1〜第3の差分算出手段2−1〜2−3は、第1〜第3の閾値判定手段3−1〜3−3を介して白線エッジ候補検出手段4に接続されている。
また、白線検出装置1は、輝度を変換された画素をそのまま入力するように輝度変換手段11を第4〜第6の差分算出手段2−4〜2−6に接続するとともに、輝度を変換された画素に対して4画素遅延〜6画素遅延を行った後に第4〜第6の差分算出手段2−4〜2−6に入力させる第4〜第6の画素遅延手段9−4〜9−6を備えている。第4〜第6の差分算出手段2−4〜2−6は、第4〜第6の閾値判定手段3−4〜3−6を介して白線エッジ判定手段5に接続されている。白線エッジ判定手段5には、前記白線エッジ候補検出手段4が接続されている。
さらに、白線検出装置1は、白線エッジ判定手段5に接続されるとともに、ビデオ出力部8に接続されるエッジ画像生成手段10を備えている。
輝度変換手段11を除いた白線検出装置1による処理は、前述実施例1の図2に関する(1)〜(6)の説明に記載されているので、説明は省略する。
【0035】
次に、図19の輝度変換の制御用フローチャートに沿って作用を説明する。
白線検出装置1は、プログラムがスタート(201)すると、前記ビデオ入力部6を介して、カメラ7からの入力画像の画素データを輝度変換手段11に入力し(202)、輝度値が0〜63であるかを判断する(203)。
この判断(203)がYESの場合は、入力+(入力/2)とした輝度値を出力し(204)、プログラムをエンドにする(205)。この判断(203)がNOの場合は、輝度値が64〜127であるかを判断する(206)。
この判断(206)がYESの場合は、入力+((127−入力)/2)とした輝度値を出力し(207)、プログラムをエンドにする(205)。この判断(206)がNOの場合は、輝度値が128〜191であるかを判断する(208)。
この判断(208)がYESの場合は、入力−((入力−127)/2)とした輝度値を出力し(209)、プログラムをエンドにする(205)。この判断(208)がNOの場合は、輝度値が192〜255であるかを判断する(210)。
この判断(210)がYESの場合は、入力−((255−入力)/2)とした輝度値を出力し(211)、プログラムをエンドにする(205)。この判断(210)がNOの場合は、エラー処理により輝度値0を出力し(212)、プログラムをエンドにする(205)。
この制御用フローチャートのエンド(205)の後は、図1に示す制御用フローチャートにしたがって第1の条件[1]と第2の条件[2]とを判断し、判定対象である画素が黄線(白線)のエッジであるかを判断する。図1に示す制御用フローチャートによる処理は、前述実施例1に記載されているので、説明は省略する。
【0036】
このように、実施例2の白線検出装置1は、予め設定された輝度変換曲線に基づいて画素の輝度を変換する輝度変換手段11を備えており、この輝度変換手段11により輝度を変換された画素に基づいて白線のエッジを検出することで、駐車枠の黄線が影に入っていても、ノイズの発生を抑えて、エッジを検出することができる。また、夜間に撮影した画像でも、路面のテクスチャによるノイズを抑えて、白線のエッジを検出することができる。
【0037】
なお、実施例2においては、予め設定された輝度変換曲線に基づいて画素の輝度を変換し、輝度を変換された画素に基づいて白線のエッジを検出しているが、差分によるエッジ検出でなく、通常のSobelフィルタなどでも有効である。
図29は変形例を示し、図29(a)は図21(a)の入力画像に適用したSobel処理によるエッジ検出結果の画像であり、図29(b)は図21(a)の入力画像に実施例2による処理適用後にSobel処理を適用したエッジ検出結果の画像である。図29(a)に対して、図29(b)は、日向の路面領域のノイズが少ないことがわかる。
また、影領域の駐車枠線の検出性能向上だけを必要とする場合、変換テーブルは、
・例1
(1). 0〜63 : 出力=入力+(入力/2)
(2). 64〜127 : 出力=入力+32
(3).128〜191 : 出力=入力+32
(4).192〜255 : 出力=入力+((255−入力)/2)
・例2
(1). 0〜63 : 出力=入力+(入力/2)
(2). 64〜127 : 出力=入力+32
(3).128〜191 : 出力=入力+((255−入力)/4)
(4).192〜255 : 出力=入力+((255−入力)/4)
とすることができる。
【産業上の利用可能性】
【0038】
この発明は、カメラの画像より白線のみを抽出する技術であり、駐車枠線にかぎらず、線状の図形の検出に利用することができる。
【符号の説明】
【0039】
1 白線検出装置
2−1〜2−6 第1〜第6の差分算出手段
3−1〜3−6 第1〜第6の閾値判定手段
4 白線エッジ候補検出手段
5 白線エッジ判定手段
6 ビデオ入力部
7 カメラ
8 ビデオ出力部
9−1〜9−6 第1〜第6の画素遅延手段
10 エッジ画像生成手段
11 輝度変換手段
【技術分野】
【0001】
この発明は白線検出装置に係り、特に、車両に搭載したバックカメラの映像より駐車枠の白線を抽出する白線検出装置に関するものである。
【背景技術】
【0002】
画像中の白線を検出するために、画像中のエッジを検出する際、通常は、Sobel、ラプラシアンなどの二次元オペレータを用いた後、閾値を用いた2値化を行う。しかし、一意に閾値を決定することは困難である場合が多い。
駐車枠に自車を止めるために、駐車枠の白線を検出する場合は、画像中の縦方向に現れるエッジを検出する必要がある。エッジ検出に当たっては、路面の模様、影、照明などの影響を極力排除する必要がある。
【0003】
従来の白線検出装置においては、微分を用いてエッジを検出した後、パーセンタイル法を用いて、2値化後に1となっている画素数が、全画素数のn%となるように閾値を決定し、2値化しているものがある。(特許文献1)
また、従来の白線検出装置においては、微分結果より空間的な稜線を求めることにより、エッジの検出を行っているものがある。(特許文献2)
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開昭64−15605号公報
【特許文献2】特開昭64−61606号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
ところで、前記特許文献1に開示されるものは、微分を用いてエッジを検出した後、パーセンタイル法を用いて、2値化後に1となっている画素数が、全画素数のn%となるように閾値を決定し、2値化している。
このため、特許文献1は、閾値を変更しながら、所望の閾値を決定する必要があること、環境によって、石畳などテクスチャが複雑な背景となった場合、2値化により1となる画素が想定以上に生じると、正しく閾値が求まらない可能性がある。
また、特許文献1は、エッジの検出方法も、カメラが45度、135度固定であり、カメラの取付角度によっては、必ずしも当てはまらない場合がある。
【0006】
前記特許文献2に開示されるものは、微分結果より空間的な稜線を求めることにより、エッジの検出を行っているが、微分データの増減を探索する必要があり、また微小な増減に対応するためには、複数の稜線候補点からさらに絞り込む必要があるなど、処理が煩雑である。
また、特許文献2は、白線両端のエッジについては、「黒」→「白」方向のもののみを検出対象としているため、白線の汚れなどにより複数のエッジが検出されてしまう可能性がある。そして、複数のエッジが検出されると、特許文献2は、後段にて白線検出を行う際(例えば、Hough変換)、候補点が増加するため、より多くのメモリを必要とするなどの問題がある。
【0007】
本発明は、白線のエッジ抽出の際の閾値の決定手段(適応制御的なもの)を不要とし、処理を簡素化して、白線両端に生じるエッジを路面の模様、影、照明などの影響を極力排除し信頼性高く抽出することができる白線検出装置を提供することを目的としている。
【課題を解決するための手段】
【0008】
この発明は、白線のエッジか否かの判定対象である画素とこの画素から走査線方向に1〜K画素隣の画素との輝度の差分を算出する第1〜第Kの差分算出手段と、この第1〜第Kの差分算出手段により算出された差分が予め設定された閾値以上か否かを判定する第1〜第Kの閾値判定手段とを備え、この第1〜第Kの閾値判定手段の少なくともいずれか1つにより差分が閾値以上と判定されることを第1の条件とし、この第1の条件が満たされた場合に、判定対象である画素を白線のエッジとすることを特徴とする。
【発明の効果】
【0009】
従来技術では、白線両端微分値強調フィルタを用いるので、画像をメモリに一度記憶する必要がある。したがって、その分のリソースが必要となる。また、白線両端微分値強調フィルタを用いると、閾値が変動するので、画像の各位置に応じて閾値を適応制御する必要がある。そのためには判別分析法等の処理をする必要があるが、これらの処理は非常に重く、また並列処理をする場合でも膨大なリソースが必要になる。
この発明の白線検出装置では、背景光の影響を受けにくい為、閾値を一定とすることができる。このため、少ないリソースで済み、また処理を容易にすることができる。したがって、FPGA等の汎用性の高いデバイスを用いても、リアルタイムに処理が可能となる。
また、この発明の白線検出装置では、白線が影に入っている場合でも、白線のエッジを検出することができる。
【図面の簡単な説明】
【0010】
【図1】図1は白線検出装置によるエッジ検出の制御用フローチャートである。(実施例1)
【図2】図2は白線検出装置のシステム構成図である。(実施例1)
【図3】図3はオペレータを示し、(a)は差分オペレータを示す概略説明図、(b)は白線両端微分値強調フィルタのオペレータを示す概略説明図である。(実施例1)
【図4】図4は微分と道路の白線と白線両端微分値強調フィルタ演算値とを示す図である。(実施例1)
【図5】図5は画像を示し、(a)は処理前の画像を示す図、(b)は閾値を「1」としたときのエッジ検出結果の画像を示す図、(c)は閾値を「10」としたときのエッジ検出結果の画像を示す図、(d)は閾値を「20」としたときのエッジ検出結果の画像を示す図である。(実施例1)
【図6】図6は閾値を「10」とした際の、壁(320.240)の明るさ「180」の設定1における明るさの変化の影響を示し、(a)は処理前の画像を示す図、(b)はエッジ検出結果の画像を示す図である。(実施例1)
【図7】図7は閾値を「10」とした際の、壁(320.240)の明るさ「62」の設定2における明るさの変化の影響を示し、(a)は処理前の画像を示す図、(b)はエッジ検出結果の画像を示す図である。(実施例1)
【図8】図8は閾値を「10」とした際の、壁(320.240)の明るさ「32」の設定3における明るさの変化の影響を示し、(a)は処理前の画像を示す図、(b)はエッジ検出結果の画像を示す図である。(実施例1)
【図9】図9は 図8の設定3において閾値を「5」に設定した際の、エッジ検出結果の画像を示す図である。(実施例1)
【図10】図10は実際の駐車枠の画像処理であって、(a)は影がある入力画像を示す図、(b)は差分によるエッジ検出結果の画像を示す図である。(実施例1)
【図11】図11は影がある入力画像に測定ラインを設定した画像を示す図である。(実施例1)
【図12】図12は図11の測定ラインによる横方向の輝度変化(ラインプロファイル)を示す図である。(実施例1)
【図13】図13は輝度変化を示す画素に対する閾値による差分処理を示す図である。(実施例1)
【図14】図14は図10(a)の影がある入力画像の第1の条件[1]によるエッジ検出結果の画像を示す図である。(実施例1)
【図15】図15は図11の測定ラインによる横方向の輝度変化(ラインプロファイル)を示し、輝度変化後の輝度値の維持状態を説明する図である。(実施例1)
【図16】図16は輝度変化を示す画素に対する閾値による差分処理を示し、(a)は閾値を超えている輝度の幅が広い場合の差分処理を示す図、(b)は閾値を超えている輝度の幅が狭い場合の差分処理を示す図である。(実施例1)
【図17】図17は図10(a)の影がある入力画像の第2の条件[2]によるエッジ検出結果を示す画像を示す図である。(実施例1)
【図18】図18は夜間の実際の駐車枠の画像処理であって、(a)はブレーキランプが点灯した際の入力画像を示す図、(b)は差分によるエッジ検出結果の画像を示す図、(c)影がある入力画像の第1の条件[1]によるエッジ検出結果の画像を示す図、(d)は影がある入力画像の第2の条件[2]によるエッジ検出結果を示す画像を示す図である。(実施例1)
【図19】図19は白線検出装置による輝度変換の制御用フローチャートである。(実施例2)
【図20】図20は白線検出装置のシステム構成図である。(実施例2)
【図21】図21は駐車枠が黄線の画像処理であって、(a)は影がある入力画像を示す図、(b)は実施例1の処理によるエッジ検出結果(閾値10)の画像を示す図、(c)は実施例1の処理による閾値5の場合のエッジ検出結果の画像を示す図である。(実施例2)
【図22】図22は駐車枠が黄線の画像処理であって、(a)は図18(a)の入力画像に適用した実施例1の処理によるエッジ検出結果(閾値5)の画像を示す図、(b)は図18(a)の入力画像に適用した実施例1の処理によるエッジ検出結果(閾値10)の画像を示す図である。(実施例2)
【図23】図23は駐車枠が黄線の影がある入力画像に測定ラインを設定した画像を示す図である。(実施例2)
【図24】図24は図23の測定ラインによる横方向の輝度変化(ラインプロファイル)を示す図である。(実施例2)
【図25】図25は夜間の駐車枠が黄線の入力画像に測定ラインを設定した画像を示す図である。(実施例2)
【図26】図26は図25の測定ラインによる横方向の輝度変化(ラインプロファイル)を示す図である。(実施例2)
【図27】図27は輝度変換曲線を示す図である。(実施例2)
【図28】図28は駐車枠が黄線の画像処理であって、(a)は図21(a)の入力画像に適用したこの発明の処理によるエッジ検出結果の画像を示す図、(b)は図25の入力画像に適用したこの発明の処理によるエッジ検出結果の画像を示す図である。(実施例2)
【図29】図29は駐車枠が黄線の画像処理であって、(a)は図21(a)の入力画像に適用したSobel処理によるエッジ検出結果の画像を示す図、(b)は図18(a)の入力画像にこの発明による処理適用後にSobel処理を適用したエッジ検出結果の画像を示す図である。(変形例)
【発明を実施するための形態】
【0011】
以下図面に基づいて、この発明の実施例を説明する。
【実施例1】
【0012】
図1〜図18は、この発明の実施例1を示すものである。
図2において、1は白線検出装置である。白線検出装置1は、白線のエッジか否かの判定対象である画素とこの画素から走査線方向に1〜K画素(この実施例1では1〜3画素)隣の画素との輝度の差分を算出する第1〜第3の差分算出手段2−1〜2−3と、この第1〜第3の差分算出手段2−1〜2−3により算出された差分が予め設定された閾値以上か否かを判定する第1〜第3の閾値判定手段3−1〜3−3とを備え、この第1〜第3の閾値判定手段3−1〜3−3の少なくともいずれか1つにより差分が閾値以上と判定されることを第1の条件[1]とし、この第1の条件[1]が満たされた場合に、判定対象である画素を白線のエッジとする白線エッジ候補検出手段4を備えている。
また、白線検出装置1は、白線のエッジか否かの判定対象である画素とこの画素から走査線方向にL(L=2〜K+1)〜M画素(この実施例1では4〜6画素)隣の画素との輝度の差分を算出する第4〜第6の差分算出手段2−4〜2−6と、この第4〜第6の差分算出手段2−4〜2−6により算出された差分が予め設定された閾値以上か否かを判定する第4〜第6の閾値判定手段3−4〜3−6とを備え、この第4〜第6の閾値判定手段3−4〜3−6の全てにより差分が閾値以上と判定されることを第2の条件[2]とし、前記第1の条件[1]と第2の条件[2]との両方が満たされた場合に、判定対象である画素を白線のエッジとする白線エッジ判定手段5を備えている。
【0013】
白線検出装置1は、入力側にビデオ入力部(「デコーダ」ともいう。)6によりカメラ7が接続されるとともに、出力側にビデオ出力部(「エンコーダ」ともいう。)8が接続されている。
白線検出装置1は、ビデオ入力部6からの入力画像をそのまま入力するようにビデオ入力部6を第1〜第3の差分算出手段2−1〜2−3に接続するとともに、ビデオ入力部6からの入力画像に対して1画素遅延〜3画素遅延を行った後に第1〜第3の差分算出手段2−1〜2−3に入力させる第1〜第3の画素遅延手段9−1〜9−3を備えている。第1〜第3の差分算出手段2−1〜2−3は、第1〜第3の閾値判定手段3−1〜3−3を介して白線エッジ候補検出手段4に接続されている。
また、白線検出装置1は、ビデオ入力部6からの入力画像をそのまま入力するようにビデオ入力部6を第4〜第6の差分算出手段2−4〜2−6に接続するとともに、ビデオ入力部6からの入力画像に対して4画素遅延〜6画素遅延を行った後に第4〜第6の差分算出手段2−4〜2−6に入力させる第4〜第6の画素遅延手段9−4〜9−6を備えている。第4〜第6の差分算出手段2−4〜2−6は、第4〜第6の閾値判定手段3−4〜3−6を介して白線エッジ判定手段5に接続されている。白線エッジ判定手段5には、前記白線エッジ候補検出手段4が接続されている。
さらに、白線検出装置1は、白線エッジ判定手段5に接続されるとともに、ビデオ出力部8に接続されるエッジ画像生成手段10を備えている。
【0014】
白線検出装置1は、カメラ7からビデオ入力部6を介して入力される入力画像を以下の手順で処理して出力する。
(1)、入力画像は、ラスタスキャンにより「上から下」、「左から右」の順に各画素のデータ(輝度、色)が入力される。白線検出装置1は、入力画像の輝度の情報を用いる。
(2)、入力された画素の輝度情報は、第1〜第6の差分算出手段2−1〜2−6により1画素前(左)〜6画素前(左)までの差分の算出を行う。
(3)、白線検出装置1は、差分結果(絶対値)を第1〜第3の閾値判定手段3−1〜3−3で閾値処理し、エッジ位置候補点を抽出する。3画素前までの抽出結果は、白線エッジ候補検出手段4の第1の条件[1]によるOR処理にて白線のエッジ候補を検出する。
(4)、エッジ位置候補が検出された場合、さらに6画素前までの結果を白線エッジ判定手段5の第2の条件[2]によるAND処理により白線によるエッジ位置を判定する。
(5)、以上より、白線のエッジとして抽出された画素を用いて、エッジ画像生成手段10によりエッジ画像を生成する。
(6)、生成されたエッジ画像は、ビデオ出力部8により出力され、Hough変換など白線検出などに利用できる。
【0015】
これに対して、白線検出装置の従来技術では、白線両端微分値強調フィルタを用いるので、画像をメモリに一度記憶する必要がある。したがって、その分のリソースが必要となる。また、白線両端微分値強調フィルタを用いると、閾値が変動するので、画像の各位置に応じて閾値を適応制御する必要がある。そのためには判別分析法等の処理をする必要があるが、これらの処理は非常に重く、また並列処理をする場合でも膨大なリソースが必要になる。
【0016】
この白線検出装置1では、背景光の影響を受けにくい為、閾値を一定とすることができる。このため、少ないリソースで済み、また処理を容易にすることができる。したがって、FPGA(Field Programmable Gate Array)等の汎用性の高いデバイスを用いても、リアルタイムに処理が可能となる。また、この白線検出装置1では、白線が影に入っている場合でも、白線のエッジを検出することができ、さらに、ノイズを増やすことなく、白線のエッジを検出することができる。
【0017】
ここで、この発明の白線検出装置1に対して、従来の処理例としての白線両端微分値強調フィルタを用いた方法を説明する。
従来の手法においては、画像の微分を求め、白線両端微分値強調フィルタを用いて道路の白線幅と同じ幅を持つ白線の抽出を行っている。ここで、微分は差分で置き換え可能であるので、差分オペレータ(図3(a))を用いて差分画像を得る。白線両端微分値強調フィルタは、道路白線幅(画素数)と同じ幅を持つオペレータで、図3(b)に示すように、オペレータの中央で符号が「+(プラス)」から「−(マイナス)」へ反転する。
以上の処理により、図4に示すような結果が得られ、適切な閾値を選択することにより、道路上の白線と同じ幅を持つ特徴のみを抽出することができる。なお、閾値の選択には、判別分析法などを用いる。
【0018】
従来技術で用いられている微分(差分)処理については、同様に走査線方向(画面横方向)での差分処理とする。しかし、白線両端微分値強調フィルタを用いるためには、画像(走査線)を一度メモリに記録する必要があるため、その分のリソースが必要となる。また、白線両端微分値強調フィルタを用いると、図4に示すように、閾値レベルが変動するため、画像の各位置に応じて閾値を適応制御する必要がある。
そのためには、判別分析法などの処理が必要となるが、これらの処理は非常に重く、また並列処理する場合も膨大なリソースが必要となる。
そこで、「差分画像は、すぐ隣の画素との差分であり、隣接画素と当該画素の明るさ(照明条件)が大きく異なることは稀である」(例外:影によるエッジ)こと、また一般に駐車枠に引かれた白線などは、運転者が識別し易いように、路面とコントラストがはっきりしていると考えられるため、閾値は一定値とすることとした。
【0019】
図5において、(a)は処理前の画像を示し、(b)は閾値を「1」としたときのエッジ検出結果の画像を示し、(c)は閾値を「10」としたときのエッジ検出結果の画像を示し、(d)は閾値を「20」としたときのエッジ検出結果の画像を示す。なお、図5においては、エッジの極性による区別なく、「白→黒」や「黒→白」の全てを表示している。
図5(b)に示すように、閾値「1」では、細かなテクスチャによるエッジによる影響が見られる。しかし、図5(c)及び(d)に示すように、閾値「10」及び閾値「20」では、良好な結果が得られている。ここで、輝度変化による影響を確認するために、閾値「10」にてレンズの絞りを変化させたときの結果を、図6〜図8に示す。
図6は、閾値を「10」とした際の、壁(320、240)の明るさ「180」の設定1における明るさの変化の影響を示し、(a)は処理前の画像を示し、(b)はエッジ検出結果の画像を示している。
また、図7は、閾値を「10」とした際の、壁(320、240)の明るさ「62」の設定2における明るさの変化の影響を示し、(a)は処理前の画像を示し、(b)はエッジ検出結果の画像を示している。
更に、図8は、閾値を「10」とした際の、壁(320、240)の明るさ「32」の設定3における明るさの変化の影響を示し、(a)は処理前の画像を示し、(b)はエッジ検出結果の画像を示している。
この図6〜図8から、ダイナミックレンジの1/4程度の暗さまでは対応可能であることがわかる。
なお、上述の図8に開示される設定3の場合、画像奥の壁に近づくに連れて、エッジの検出ができなくなっている。仮に閾値を「5」まで下げた場合は、図9に示すように、エッジの検出は可能であるが、ノイズによる影響が大きくなってしまう。このことより、この従来手法の閾値決定に判別分析法を用いても、効果が少ないことが確認できる。
【0020】
上記従来手法による差分および閾値処理を実際の路面に適用した場合、下記のような問題が生じる。図10(a)のように影がある画像の場合、白線と路面との輝度差が少なく境界(隣接画素間)に明確な輝度差が生じないため、図10(b)のように白線のエッジが検出できていない。
そこで、図10(a)に示す入力画像について、図11に示すように横方向の測定ラインを設定し、輝度変化(ラインプロファイル)をとってみると、図12に示すように、明るい場所に比べて影のある場所では、白線と路面間の輝度変化に違いがあることがわかる。明るい場所では輝度変化が急峻である一方、影のある場所では輝度変化がなだらかになっている。なだらかな輝度変化に対応するためには、閾値を低くする必要があるが、閾値を低くすることにより不要なノイズが増加する欠点がある。
【0021】
この欠点に対して、この発明の白線検出装置1においては、なだらかな輝度変化に対応するため、差分処理の拡張をおこない、注目画素の一つ左隣(1画素前)の画素だけでなく二つ隣(2画素前)や三つ隣(3画素前)の画素とも差分を取り、いずれかが、閾値を超えた場合に白線によるエッジとして検出することとする。
図13において、□0(四角の中に0)は、現在の注目画素を表し、□1、□2、□3(四角の中に1、2、3)はそれぞれ、一つ左隣、二つ左隣、三つ左隣の各画素位置を表している。グラフの値がそれぞれの画素の輝度を表している。
図10の従来手法における差分処理では、|□0−□1|≧閾値であればエッジとしていたため、図13に示すようななだらかなエッジには対応できていなかった。
そこで、この発明の白線検出装置1では、
(|□0−□1|≧閾値)or(|□0−□2|≧閾値)or(|□0−□3|≧閾値)…第1の条件[1]、
とすることで、なだらかなエッジにも対応可能とした。
図14は、実際の路面の画像を上記第1の条件[1]にて判定した場合の、エッジの検出結果である。図14の検出結果は、図10(b)の検出結果に比べると、影の部分の白線のエッジを検出できていることがわかる。
【0022】
このように、白線検出装置1は、白線のエッジか否かの判定対象である画素とこの画素から走査線方向に1〜3画素隣の画素との輝度の差分を算出し、算出された差分が予め設定された閾値以上か否かを判定し、少なくともいずれか1つの差分が閾値以上と判定されることを第1の条件[1]とし、この第1の条件[1]が満たされた場合に、判定対象である画素を白線のエッジとしている。
これにより、白線検出装置1は、背景光の影響を受けにくい為、閾値を一定とすることができる。このため、少ないリソースで済み、また処理を容易にすることができる。したがって、FPGA等の汎用性の高いデバイスを用いても、リアルタイムに処理が可能となる。また、この白線検出装置1では、白線が影に入っている場合でも、白線のエッジを検出することができる。
【0023】
また、図14では、図10(b)の検出結果に比べ、路面のテクスチャによる誤検出が増えていることがわかる。Hough変換などで白線を検出する場合、信頼性向上のためには、白線以外によるノイズは極力少ないことが望ましい。
そこで、再度ラインプロファイル(図12)を検討してみると、図15に示すように、白線部では白線が幅を持つため、輝度が変化し差分値が閾値を越えた後も高い輝度値(大きい差分値)を維持するのに対し、路面部分では高い輝度値を維持していないことがわかる。
そこで、この発明の白線検出装置1は、前記第1の条件[1]を拡張し、輝度変化により、注目画素と1〜3個隣の画素との差分値が同値を越えた後、図16に示すように、さらに3画素(4〜6画素)隣の画素との差分値が同値を超えることを第2の条件[2]として加えている。
図16(a)は、閾値を超えている輝度の幅が広い場合の差分処理を示している。図16(b)は、閾値を超えている輝度の幅が狭い場合の差分処理を示している。
つまり、この発明の白線検出装置1は、
(|□0−□1|≧閾値)or(|□0−□2|≧閾値)or(|□0−□3|≧閾値)…第1の条件[1]、
を拡張し、
(第1の条件[1])and(|□0−□4|≧閾値)and(|□0−□5|≧閾値)and(|□0−□6|≧閾値)…第2の条件[2]、
とする。
第2の条件[2]による処理を追加した結果を、図17に示す。図17によれば、白線部はそのままに、図14の検出結果と比較して、路面のノイズが減っていることがわかる。
【0024】
このように、白線検出装置1は、白線のエッジか否かの判定対象である画素とこの画素から走査線方向にL(L=2〜K+1)〜M画素(この実施例1では4〜6画素)隣の画素との輝度の差分を算出し、算出された差分が予め設定された閾値以上か否かを判定し、全ての差分が閾値以上と判定されることを第2の条件[2]とし、前記第1の条件[1]と第2の条件[2]との両方が満たされた場合に、判定対象である画素を白線のエッジとしている。
これにより、白線検出装置1は、白線が影に入っている場合でも、ノイズを増やすことなく、白線のエッジを検出することができる。
【0025】
白線検出装置1のノイズ削減効果について参考のため、他の実験データも示す。
図18(a)は、夜間にブレーキランプが点灯した際の入力画像であり、図18(b)、18(c)、18(d)はそれぞれ、隣の画素との差分処理の画像、第1の条件[1]による処理に閾値処理を組み合わせた結果の画像、第2の条件[2]による処理に閾値処理を組み合わせた結果の画像である。
図18(d)に示す結果の画像は、図18(b)の画像より白線部が鮮明であり、図18(c)の画像よりノイズが少ないことが確認できる。
なお、上記閾値、第1の条件[1]、第2の条件[2]で用いる画素数や閾値は、一例であり、使用するカメラ7によりレンズの画角や地面からの距離によりカメラ7に映る白線の幅が変わるためにより変化する。
【0026】
次に、図1のエッジ検出の制御用フローチャートに沿って作用を説明する。この制御用フローチャートにおいては、エッジ判定を3画素とする第1の条件[1]と、白線判定(閾値を越えている幅)を3画素とする第2の条件[2]により白線のエッジを検出する。
白線検出装置1は、プログラムがスタート(101)すると、ビデオ入力部6を介して、カメラ7からの入力画像の画素データを入力し(102)、第1〜第3の画素遅延手段9−1〜9−3により1画素遅延〜3画素遅延の画素遅延処理(103)を行った画素データと入力したそのままの画素データとを第1〜第3の差分算出手段2−1〜2−3によって差分処理を行い(104)、第1〜第3の閾値判定手段3−1〜3−3によって第1〜第3の差分のいずれかの差分(絶対値)が閾値以上であるか(第1の条件[1])を判断する(105)。
この判断(105)がYESの場合は、第4〜第6の画素遅延手段9−4〜9−6により4画素遅延〜6画素遅延の画素遅延処理(103)を行った画素データと入力したそのままの画素データとを第4〜第6の差分算出手段2−4〜2−6によってそれぞれ差分処理を行い(106)、第4〜第6の閾値判定手段3−4〜3−6によって第4〜第6の差分の全ての差分(絶対値)が閾値以上であるか(第2の条件[2])を判断する(107)。
この判断(107)がYESの場合は、輝度値をMax(白)とし(108)、エッジ画像生成手段10によりエッジ画像を生成し(109)、ビデオ出力部8に出力してプログラムをエンドにする(110)。
一方、前記判断(105)がNOの場合、また、前記判断(107)がNOの場合は、輝度値をMin(黒)とし(111)、エッジ画像生成手段10によりエッジ画像を生成し(109)、ビデオ出力部8に出力してプログラムをエンドにする(110)。
【0027】
これにより、白線検出装置1は、第1の条件[1]と第2の条件[2]との両方が満たされた場合に、判定対象である画素を白線のエッジとしているので、白線が影に入っている場合でも、ノイズを増やすことなく、白線のエッジを検出することができる。
なお、第1の条件[1]と第2の条件[2]の処理は、
1.全ての画素に対しおこない、第1の条件[1]の結果と第2の条件[2]の処理のANDとする。
2.第1の条件[1]が成り立った場合にのみ、第2の条件[2]の処理をおこなう。
のいずれの方法でも良い。
【0028】
上述実施例1では、第1の条件[1]、第2の条件[2]は、
(|□0−□1|≧閾値)or(|□0−□2|≧閾値)or(|□0−□3|≧閾値)…第1の条件[1]、
(第1の条件[1])and(|□0−□4|≧閾値)and(|□0−□5|≧閾値)and(|□0−□6|≧閾値)…第2の条件[2]、
としているが、これに限定されるものではなく、第1の条件[1]が成立する画素位置(例えば2画素前)から、第2の条件[2]を適用してもよい。
例えば、2画素前で第1の条件[1]が成立する場合は、
(第1の条件[1])and(|□0−□3|≧閾値)and(|□0−□4|≧同値)and(|□0−□5|≧同値)…第2の条件[1]、
とすることができる。
また、1画素前で第1の条件[1]が成立する場合は、
(第1の条件[1])and(|□0−□2|≧閾値)and(|□0−□3|≧閾値)and(|□0−□4|≧閾値)…第2の条件[1]、
とするこができる。
また、検出するエッジは、画像メモリを使用しない場合には、横方向の探索のみとなるが、画像メモリが使用できる場合には、縦方向や縦横複合での検出が可能である。使用する画像メモリは、フレーム処理では、1フィールド分必要となるが、フィールド処理もしくはプログレッシブスキャンの場合は、実施例では6ライン分の記憶領域があればよい。
【実施例2】
【0029】
図19〜図28は、この発明の実施例2を示すものである。
上述実施例1の白線検出装置1においては、隣接画素との差分処理により固定閾値で白線の検出をおこなう場合も、他の車などの陰になっている領域などでは、輝度変化が少ないため、検出できない場合がある。特に、駐車枠が黄色の線などの場合、黄線は白線よりも輝度が低いため、検出できない状況が高まる場合がある。この問題に対応するために、閾値を低く設定すると、路面のテクステャなどの誤検出によるノイズの発生が顕著となり、Hough変換などでの線分検出が困難となる。
図21(a)に示すように、影中の駐車枠が黄線の場合、図21(b)に示すように、実施例1の白線検出装置1による処理(閾値10)では黄線の駐車枠の抽出が困難である。図21(c)に示すように、単純に閾値を1/2(閾値5)にした場合、黄線のエッジは抽出できているが、路面のノイズが増加していることがわかる。
図21に示す駐車枠の黄線の抽出は、閾値を下げる(閾値5)ことにより、エッジの抽出は可能となるが、路面のテクスチャにより生じるノイズが増加している。また同じように実施例1の白線検出装置1による処理を、前述図18(a)の夜間の駐車枠の画像に適用すると、閾値5による適用例の図22(a)、閾値10による適用例の図22(b)に示すように、やはりノイズが増加していることがわかる。
これは、映像信号はその性質上(AM信号)、レベルが低い(暗い)領域ではSN比が悪化する。閾値を下げることは、暗い領域のノイズの影響を受けやすくなるためノイズが増加し、効果は少ないことと、閾値を下げたことにより、路面のテクスチャ(凹凸にライトが反射)の影響が増えたためである。
【0030】
そこで、図21(a)に示す入力画像について、図23に示すように横方向の測定ラインを設定し、輝度変化(ラインプロファイル)をとってみると、図24に示す結果が得られた。
図24のラインプロファイルを見ると、影の中の路面の輝度値は、50以下、影以外の路面の輝度値は100前後、影中の黄色線の輝度は60前後、影以外の白線の輝度は、180〜200程度となっていることが分かる。また、影以外の路面領域では、5から10程度のばらつきが生じていることが分かる。
この結果より、閾値10では、影中の黄色線を検出するにはぎりぎりの閾値であり、また閾値を5(1/2)に下げると、影以外の路面領域で、ノイズを生じる原因となることが分かる。
また、前述図18(a)のように夜間では、図25に示すように横方向の測定ラインを設定し、輝度変化(ラインプロファイル)をとってみると、図26に示すように、路面の輝度値が、100〜180程度で大きくばらつき、白線は、ほぼ250前後となっていることがわかる。
【0031】
上記2例(図23・図24及び図25・図26)より、輝度が低い領域では、路面と黄線の差が少なく(白線でも同様[図12参照])、影となっていない領域では差が大きくなることが分かる。また、夜間などでも、路面の輝度は120前後あり、白線の輝度は250を越えることが分かる。よって、50前後での閾値を、現状よりも少し下げ(10以下)、それ以上の領域の閾値は、現状よりも上げて(10以上)よいことがわかる。
これは、カメラのオートゲインコントロールにより、簡単には画像の平均輝度が輝度分解能の半分(例では8bitなので128)になるように調節しているからである。
よって、中間輝度の領域のコントラストをさげ、日中の影の輝度領域(50以下)のコントラストを向上させ、夜間の路面領域(200以下)のコントラストを下げるように、予め設定された輝度変換曲線に基づいて入力画像の画素の輝度を変換することにより、駐車枠を示す白線(黄線)の検出性能の向上と路面のテクスチャによるノイズ除去の双方に効果のあることがわかった。
図27は、提案する輝度変換曲線を示す。図27の輝度変換曲線によると、入力輝度が0〜128までは、出力を増加させ、128以上は出力が入力よりも低くなっている。また、64から192までは、入力輝度変化に対し出力輝度の変化の傾きは1/2になっている。これにより、路面のデータが多く存在する100前後から180前後にかけての路面のテクスチャによるノイズに対しては、閾値20を適用したのとほぼ等価となり、ノイズの発生を抑えることが出来る。また、影の中の路面のデータが多く存在する50以下については、64以下の入力に対する出力の傾きを1.5倍とすることで、閾値を7程度まで下げた効果を得ることができる。
【0032】
また、図27の輝度変換曲線は、その屈曲点を64、192とすることにより、足し算、引き算、ビットシフトによる割り算で演算可能なため、計算に必要なリソースが少なくてすむ。このため、低価格帯のFPGAにも十分に実装可能である。
輝度変換曲線の変換式は、
(1). 0〜63 : 出力=入力+(入力/2)
(2). 64〜127 : 出力=入力+((127−入力)/2)
(3).128〜191 : 出力=入力−((入力−127)/2)
(4).192〜255 : 出力=入力−((255−入力)/2)
である。
図27の変換テーブルを、図21(a)の画像と図18(a)の画像に適用した結果を、図28(a)と図28(b)にそれぞれ示す。輝度変換曲線に基づいて入力画像の画素の輝度を変換することによって、問題となっていた駐車枠の黄線の検出を可能とし、増加した路面のテクスチャによるノイズを大幅に削減することが出来ていることがわかる。
【0033】
実施例2の白線検出装置1は、駐車枠の黄線の検出を可能とし、増加した路面のテクスチャによるノイズを削減するために、図20に示すように、実施例1の構成に加えて、輝度変換手段11を備えている。輝度変換手段11は、ビデオ入力部6からの入力画像を入力し、予め設定された輝度変換曲線に基づいて入力画像の画素の輝度を変換する。白線検出装置1は、この輝度変換手段11により輝度を変換された画素に基づいて白線のエッジを検出する。
実施例2の白線検出装置1は、実施例1と同様に、白線のエッジか否かの判定対象である画素とこの画素から走査線方向に1〜K画素(この実施例1では1〜3画素)隣の画素との輝度の差分を算出する第1〜第3の差分算出手段2−1〜2−3と、この第1〜第3の差分算出手段2−1〜2−3により算出された差分が予め設定された閾値以上か否かを判定する第1〜第3の閾値判定手段3−1〜3−3とを備え、この第1〜第3の閾値判定手段3−1〜3−3の少なくともいずれか1つにより差分が閾値以上と判定されることを第1の条件(1)とし、この第1の条件(1)が満たされた場合に、判定対象である画素を白線のエッジとする白線エッジ候補検出手段4を備えている。
また、白線検出装置1は、白線のエッジか否かの判定対象である画素とこの画素から走査線方向にL(L=2〜K+1)〜M画素(この実施例1では4〜6画素)隣の画素との輝度の差分を算出する第4〜第6の差分算出手段2−4〜2−6と、この第4〜第6の差分算出手段2−4〜2−6により算出された差分が予め設定された閾値以上か否かを判定する第4〜第6の閾値判定手段3−4〜3−6とを備え、この第4〜第6の閾値判定手段3−4〜3−6の全てにより差分が閾値以上と判定されることを第2の条件(2)とし、前記第1の条件(1)と第2の条件(2)との両方が満たされた場合に、判定対象である画素を白線のエッジとする白線エッジ判定手段5を備えている。
【0034】
白線検出装置1は、入力側にビデオ入力部6によりカメラ7が接続されるとともに、出力側にビデオ出力部8が接続されている。ビデオ入力部6は、輝度変換手段11に接続されている。輝度変換手段11は、予め設定された輝度変換曲線に基づいて、ビデオ入力部6からの入力画像の画素の輝度を変換する。
白線検出装置1は、輝度を変換された画素をそのまま入力するように輝度変換手段11を第1〜第3の差分算出手段2−1〜2−3に接続するとともに、輝度を変換された画素に対して1画素遅延〜3画素遅延を行った後に第1〜第3の差分算出手段2−1〜2−3に入力させる第1〜第3の画素遅延手段9−1〜9−3を備えている。第1〜第3の差分算出手段2−1〜2−3は、第1〜第3の閾値判定手段3−1〜3−3を介して白線エッジ候補検出手段4に接続されている。
また、白線検出装置1は、輝度を変換された画素をそのまま入力するように輝度変換手段11を第4〜第6の差分算出手段2−4〜2−6に接続するとともに、輝度を変換された画素に対して4画素遅延〜6画素遅延を行った後に第4〜第6の差分算出手段2−4〜2−6に入力させる第4〜第6の画素遅延手段9−4〜9−6を備えている。第4〜第6の差分算出手段2−4〜2−6は、第4〜第6の閾値判定手段3−4〜3−6を介して白線エッジ判定手段5に接続されている。白線エッジ判定手段5には、前記白線エッジ候補検出手段4が接続されている。
さらに、白線検出装置1は、白線エッジ判定手段5に接続されるとともに、ビデオ出力部8に接続されるエッジ画像生成手段10を備えている。
輝度変換手段11を除いた白線検出装置1による処理は、前述実施例1の図2に関する(1)〜(6)の説明に記載されているので、説明は省略する。
【0035】
次に、図19の輝度変換の制御用フローチャートに沿って作用を説明する。
白線検出装置1は、プログラムがスタート(201)すると、前記ビデオ入力部6を介して、カメラ7からの入力画像の画素データを輝度変換手段11に入力し(202)、輝度値が0〜63であるかを判断する(203)。
この判断(203)がYESの場合は、入力+(入力/2)とした輝度値を出力し(204)、プログラムをエンドにする(205)。この判断(203)がNOの場合は、輝度値が64〜127であるかを判断する(206)。
この判断(206)がYESの場合は、入力+((127−入力)/2)とした輝度値を出力し(207)、プログラムをエンドにする(205)。この判断(206)がNOの場合は、輝度値が128〜191であるかを判断する(208)。
この判断(208)がYESの場合は、入力−((入力−127)/2)とした輝度値を出力し(209)、プログラムをエンドにする(205)。この判断(208)がNOの場合は、輝度値が192〜255であるかを判断する(210)。
この判断(210)がYESの場合は、入力−((255−入力)/2)とした輝度値を出力し(211)、プログラムをエンドにする(205)。この判断(210)がNOの場合は、エラー処理により輝度値0を出力し(212)、プログラムをエンドにする(205)。
この制御用フローチャートのエンド(205)の後は、図1に示す制御用フローチャートにしたがって第1の条件[1]と第2の条件[2]とを判断し、判定対象である画素が黄線(白線)のエッジであるかを判断する。図1に示す制御用フローチャートによる処理は、前述実施例1に記載されているので、説明は省略する。
【0036】
このように、実施例2の白線検出装置1は、予め設定された輝度変換曲線に基づいて画素の輝度を変換する輝度変換手段11を備えており、この輝度変換手段11により輝度を変換された画素に基づいて白線のエッジを検出することで、駐車枠の黄線が影に入っていても、ノイズの発生を抑えて、エッジを検出することができる。また、夜間に撮影した画像でも、路面のテクスチャによるノイズを抑えて、白線のエッジを検出することができる。
【0037】
なお、実施例2においては、予め設定された輝度変換曲線に基づいて画素の輝度を変換し、輝度を変換された画素に基づいて白線のエッジを検出しているが、差分によるエッジ検出でなく、通常のSobelフィルタなどでも有効である。
図29は変形例を示し、図29(a)は図21(a)の入力画像に適用したSobel処理によるエッジ検出結果の画像であり、図29(b)は図21(a)の入力画像に実施例2による処理適用後にSobel処理を適用したエッジ検出結果の画像である。図29(a)に対して、図29(b)は、日向の路面領域のノイズが少ないことがわかる。
また、影領域の駐車枠線の検出性能向上だけを必要とする場合、変換テーブルは、
・例1
(1). 0〜63 : 出力=入力+(入力/2)
(2). 64〜127 : 出力=入力+32
(3).128〜191 : 出力=入力+32
(4).192〜255 : 出力=入力+((255−入力)/2)
・例2
(1). 0〜63 : 出力=入力+(入力/2)
(2). 64〜127 : 出力=入力+32
(3).128〜191 : 出力=入力+((255−入力)/4)
(4).192〜255 : 出力=入力+((255−入力)/4)
とすることができる。
【産業上の利用可能性】
【0038】
この発明は、カメラの画像より白線のみを抽出する技術であり、駐車枠線にかぎらず、線状の図形の検出に利用することができる。
【符号の説明】
【0039】
1 白線検出装置
2−1〜2−6 第1〜第6の差分算出手段
3−1〜3−6 第1〜第6の閾値判定手段
4 白線エッジ候補検出手段
5 白線エッジ判定手段
6 ビデオ入力部
7 カメラ
8 ビデオ出力部
9−1〜9−6 第1〜第6の画素遅延手段
10 エッジ画像生成手段
11 輝度変換手段
【特許請求の範囲】
【請求項1】
白線のエッジか否かの判定対象である画素とこの画素から走査線方向に1〜K画素隣の画素との輝度の差分を算出する第1〜第Kの差分算出手段と、
この第1〜第Kの差分算出手段により算出された差分が予め設定された閾値以上か否かを判定する第1〜第Kの閾値判定手段とを備え、
この第1〜第Kの閾値判定手段の少なくともいずれか1つにより差分が閾値以上と判定されることを第1の条件とし、この第1の条件が満たされた場合に、判定対象である画素を白線のエッジとすることを特徴とする白線検出装置。
【請求項2】
白線のエッジか否かの判定対象である画素とこの画素から走査線方向にL(L=2〜K+1)〜M画素隣の画素との輝度の差分を算出する第L〜第Mの差分算出手段と、
この第L〜第Mの差分算出手段により算出された差分が予め設定された閾値以上か否かを判定する第L〜第Mの閾値判定手段とを備え、
この第L〜第Mの閾値判定手段の全てにより差分が閾値以上と判定されることを第2の条件とし、前記第1の条件と第2の条件との両方が満たされた場合に、判定対象である画素を白線のエッジとすることを特徴とする請求項1に記載の白線検出装置。
【請求項3】
予め設定された輝度変換曲線に基づいて画素の輝度を変換する輝度変換手段を備え、
この輝度変換手段により輝度を変換された画素に基づいて白線のエッジを検出することを特徴とする請求項1または請求項2に記載の白線検出装置。
【請求項1】
白線のエッジか否かの判定対象である画素とこの画素から走査線方向に1〜K画素隣の画素との輝度の差分を算出する第1〜第Kの差分算出手段と、
この第1〜第Kの差分算出手段により算出された差分が予め設定された閾値以上か否かを判定する第1〜第Kの閾値判定手段とを備え、
この第1〜第Kの閾値判定手段の少なくともいずれか1つにより差分が閾値以上と判定されることを第1の条件とし、この第1の条件が満たされた場合に、判定対象である画素を白線のエッジとすることを特徴とする白線検出装置。
【請求項2】
白線のエッジか否かの判定対象である画素とこの画素から走査線方向にL(L=2〜K+1)〜M画素隣の画素との輝度の差分を算出する第L〜第Mの差分算出手段と、
この第L〜第Mの差分算出手段により算出された差分が予め設定された閾値以上か否かを判定する第L〜第Mの閾値判定手段とを備え、
この第L〜第Mの閾値判定手段の全てにより差分が閾値以上と判定されることを第2の条件とし、前記第1の条件と第2の条件との両方が満たされた場合に、判定対象である画素を白線のエッジとすることを特徴とする請求項1に記載の白線検出装置。
【請求項3】
予め設定された輝度変換曲線に基づいて画素の輝度を変換する輝度変換手段を備え、
この輝度変換手段により輝度を変換された画素に基づいて白線のエッジを検出することを特徴とする請求項1または請求項2に記載の白線検出装置。
【図1】
【図2】
【図3】
【図13】
【図16】
【図19】
【図20】
【図24】
【図26】
【図27】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図14】
【図15】
【図17】
【図18】
【図21】
【図22】
【図23】
【図25】
【図28】
【図29】
【図2】
【図3】
【図13】
【図16】
【図19】
【図20】
【図24】
【図26】
【図27】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図14】
【図15】
【図17】
【図18】
【図21】
【図22】
【図23】
【図25】
【図28】
【図29】
【公開番号】特開2012−18531(P2012−18531A)
【公開日】平成24年1月26日(2012.1.26)
【国際特許分類】
【出願番号】特願2010−155042(P2010−155042)
【出願日】平成22年7月7日(2010.7.7)
【出願人】(000002082)スズキ株式会社 (3,196)
【Fターム(参考)】
【公開日】平成24年1月26日(2012.1.26)
【国際特許分類】
【出願日】平成22年7月7日(2010.7.7)
【出願人】(000002082)スズキ株式会社 (3,196)
【Fターム(参考)】
[ Back to top ]