(57)【要約】【課題】車線等の直線の検出を高精度に行なうことを課題とする。【解決手段】直線検出装置は、入力画像のエッジを検出し、エッジが検出された入力画像を二値化する。また、直線検出装置は、二値化された入力画像の中央付近における鉛直線上の少なくとも任意の２つの位置のそれぞれから、鉛直線と交差する第１方向に、エッジとして画素値が変化する変化点を検出して、２つの位置のそれぞれで第１方向で検出された２つの点を結ぶ第１直線と、所定の直線とのなす角度である第１の推定角度を推定する。また、直線検出装置は、第１の推定角度を含む所定の角度範囲に制限してハフ変換を実行し、入力画像に含まれる直線を検出する。【選択図】図１
2013206067.tif 000002
【特許請求の範囲】
【請求項１】
入力画像のエッジを検出するエッジ検出部と、
エッジが検出された前記入力画像を二値化する二値化部と、
二値化された前記入力画像の中央付近における鉛直線上の少なくとも任意の２つの位置のそれぞれから、前記鉛直線と交差する第１方向に、前記エッジとして画素値が変化する変化点を検出して、前記２つの位置のそれぞれで前記第１方向で検出された２つの点を結ぶ第１直線と、所定の直線とのなす角度である第１の推定角度を推定する角度推定部と、
前記第１の推定角度を含む所定の角度範囲に制限してハフ変換を実行し、前記入力画像に含まれる直線を検出するハフ変換部と
を有することを特徴とする直線検出装置。
【請求項２】
前記角度推定部は、前記２つの位置のそれぞれから、前記第１方向と逆の第２方向に、前記エッジとして画素値が変化する変化点を検出して、前記２つの位置のそれぞれで前記第２方向で検出された２つの点を結ぶ第２直線と、前記所定の直線とのなす角度である第２の推定角度をさらに推定し、
前記ハフ変換部は、前記第２の推定角度を含む所定の角度範囲に制限したハフ変換をさらに実行し、前記入力画像に含まれる直線を検出することを特徴とする請求項１に記載の直線検出装置。
【請求項３】
前記入力画像は、所定フレームごとに入力され、
前記角度推定部は、二値化された直近の前記入力画像を複数利用して、直近の前記入力画像ほど重み付けをより大きくした前記画素値の総和を算出し、算出した前記画素値の総和における前記変化点を検出することを特徴とする請求項１又は２に記載の直線検出装置。
【請求項４】
前記角度推定部は、二値化された前記入力画像に対してノイズ成分を除去するローパスフィルタを備えたことを特徴とする請求項１〜３の何れか一つに記載の直線検出装置。
【請求項５】
前記角度推定部は、前記鉛直線の所定方向に向かって幅が狭くなる前記第１直線及び前記第２直線と、前記所定の直線とのなす角度である前記第１の推定角度及び前記第２の推定角度を推定することを特徴とする請求項２に記載の直線検出装置。
【請求項６】
前記角度推定部は、前記鉛直線上で最も離れた前記２つの位置のそれぞれから、前記第１方向及び前記第２方向に前記変化点を検出することを特徴とする請求項２に記載の直線検出装置。
【請求項７】
前記所定の直線は、前記鉛直線に垂直な線であることを特徴とする請求項１〜６の何れか一つに記載の直線検出装置。
【請求項８】
入力画像のエッジを検出するエッジ検出ステップと、
エッジが検出された前記入力画像を二値化する二値化ステップと、
二値化された前記入力画像の中央付近における鉛直線上の少なくとも任意の２つの位置のそれぞれから、前記鉛直線と交差する第１方向に、前記エッジとして画素値が変化する変化点を検出して、前記２つの位置のそれぞれで前記第１方向で検出された２つの点を結ぶ第１直線と、所定の直線とのなす角度である第１の推定角度を推定する角度推定ステップと、
前記第１の推定角度を含む所定の角度範囲に制限してハフ変換を実行し、前記入力画像に含まれる直線を検出するハフ変換ステップと
を含むことを特徴とする直線検出方法。
【請求項９】
入力画像のエッジを検出するエッジ検出機能と、
エッジが検出された前記入力画像を二値化する二値化機能と、
二値化された前記入力画像の中央付近における鉛直線上の少なくとも任意の２つの位置のそれぞれから、前記鉛直線と交差する第１方向に、前記エッジとして画素値が変化する変化点を検出して、前記２つの位置のそれぞれで前記第１方向で検出された２つの点を結ぶ第１直線と、所定の直線とのなす角度である第１の推定角度を推定する角度推定機能と、
前記第１の推定角度を含む所定の角度範囲に制限してハフ変換を実行し、前記入力画像に含まれる直線を検出するハフ変換機能と
をコンピュータに実現させるための直線検出プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、直線検出装置、直線検出方法及び直線検出プログラムに関する。
【背景技術】
【０００２】
従来、自動車等の車両が安全に走行できるように、車線逸脱警報（LDW：Lane  Departure  Warning）と呼ばれる技術がある。かかる車線逸脱警報は、車両が走行する車道の車線から逸脱することを検出し、事前に警報を発するものである。すなわち、車線逸脱警報は、車両を運転する運転者が眠気を催した時や注意散漫な状態である時に、車両がふらつくことを起因とした事故を防止するために運転者に注意喚起することを目的としている。
【０００３】
また、車線から車両が逸脱することを検出するためには、例えば、自車両が走行する車道の車線を認識することが行なわれる。車線を認識するための技術としては、自車両が走行する車線の形状パターンと、予め保持されたテンプレートの形状パターンとをマッチングする手法や、直線である車線を検出可能なハフ変換を応用した手法等がある。
【０００４】
これらのうち、テンプレートの形状パターンを利用してマッチングを行なう技術は、予め保持するテンプレートの形状パターンの量が膨大になるため、記憶容量が増大するとともに、マッチングに要する処理時間も増大するので好ましくない。そこで、ハフ変換を利用した技術として、特許文献１（特開平５−３４７０００号公報）では、ハフ変換から求められる（θ，ρ）（θ：角度，ρ：距離）の組み合わせを過去の（θ，ρ）の移動量を用いて制約をかけることで演算量を削減する技術が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平５−３４７０００号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来技術では、車線等の直線の検出において、誤検出してしまう可能性があるという問題がある。具体的には、ハフ変換を利用した従来技術では、ガードレール等の直線が車線の傍に存在する場合に、車線の汚れ等により実際の車線が検出されずに、ガードレールを車線として誤検出してしまい、この誤検出を維持してしまう可能性がある。
【０００７】
本発明は、上記に鑑みてなされたものであって、車線等の直線の検出を高精度に行なうことが可能である直線検出装置、直線検出方法及び直線検出プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
上述した課題を解決し、目的を達成するため、本発明に係る直線検出装置は、入力画像のエッジを検出するエッジ検出部と、エッジが検出された前記入力画像を二値化する二値化部と、二値化された前記入力画像の中央付近における鉛直線上の少なくとも任意の２つの位置のそれぞれから、前記鉛直線と交差する第１方向に、前記エッジとして画素値が変化する変化点を検出して、前記２つの位置のそれぞれで前記第１方向で検出された２つの点を結ぶ第１直線と、所定の直線とのなす角度である第１の推定角度を推定する角度推定部と、前記第１の推定角度を含む所定の角度範囲に制限してハフ変換を実行し、前記入力画像に含まれる直線を検出するハフ変換部とを有する。
【０００９】
また、本発明に係る直線検出方法は、入力画像のエッジを検出するエッジ検出ステップと、エッジが検出された前記入力画像を二値化する二値化ステップと、二値化された前記入力画像の中央付近における鉛直線上の少なくとも任意の２つの位置のそれぞれから、前記鉛直線と交差する第１方向に、前記エッジとして画素値が変化する変化点を検出して、前記２つの位置のそれぞれで前記第１方向で検出された２つの点を結ぶ第１直線と、所定の直線とのなす角度である第１の推定角度を推定する角度推定ステップと、前記第１の推定角度を含む所定の角度範囲に制限してハフ変換を実行し、前記入力画像に含まれる直線を検出するハフ変換ステップとを含む。
【００１０】
また、本発明に係る直線検出プログラムは、入力画像のエッジを検出するエッジ検出機能と、エッジが検出された前記入力画像を二値化する二値化機能と、二値化された前記入力画像の中央付近における鉛直線上の少なくとも任意の２つの位置のそれぞれから、前記鉛直線と交差する第１方向に、前記エッジとして画素値が変化する変化点を検出して、前記２つの位置のそれぞれで前記第１方向で検出された２つの点を結ぶ第１直線と、所定の直線とのなす角度である第１の推定角度を推定する角度推定機能と、前記第１の推定角度を含む所定の角度範囲に制限してハフ変換を実行し、前記入力画像に含まれる直線を検出するハフ変換機能とをコンピュータに実現させる。
【発明の効果】
【００１１】
本発明の一つの様態によれば、車線等の直線の検出を高精度に行なうことができるという効果を奏する。
【図面の簡単な説明】
【００１２】
【図１】図１は、実施の形態１に係る直線検出装置の構成例を示す図である。
【図２】図２は、入力画像の例を示す図である。
【図３】図３は、エッジが検出された入力画像の例を示すイメージ図である。
【図４】図４は、画素値の変化点を検出する処理を説明する図である。
【図５】図５は、画素値を記録するメモリの例を示す図である。
【図６Ａ】図６Ａは、４ラインで画素値を検出したときの利用ラインの決定の例について説明する図である。
【図６Ｂ】図６Ｂは、４ラインで画素値を検出したときの利用ラインの決定の例について説明する図である。
【図６Ｃ】図６Ｃは、４ラインで画素値を検出したときの利用ラインの決定の例について説明する図である。
【図６Ｄ】図６Ｄは、４ラインで画素値を検出したときの利用ラインの決定の例について説明する図である。
【図６Ｅ】図６Ｅは、４ラインで画素値を検出したときの利用ラインの決定の例について説明する図である。
【図６Ｆ】図６Ｆは、４ラインで画素値を検出したときの利用ラインの決定の例について説明する図である。
【図６Ｇ】図６Ｇは、４ラインで画素値を検出したときの利用ラインの決定の例について説明する図である。
【図６Ｈ】図６Ｈは、４ラインで画素値を検出したときの利用ラインの決定の例について説明する図である。
【図７】図７は、実施の形態１に係る直線検出処理の流れの例を示すフローチャートである。
【発明を実施するための形態】
【００１３】
以下に添付図面を参照して、本発明に係る直線検出装置、直線検出方法及び直線検出プログラムの実施の形態を説明する。なお、以下の実施の形態により本発明が限定されるものではない。
【００１４】
（実施の形態１）
［実施の形態１に係る直線検出装置の構成］
図１を用いて、実施の形態１に係る直線検出装置の構成を説明する。図１は、実施の形態１に係る直線検出装置の構成例を示す図である。例えば、図１に示すように、直線検出装置１００は、エッジ検出部１１０と、二値化部１２０と、角度推定部１３０と、ハフ変換部１４０とを有し、入力画像に含まれる特定の直線を検出する。なお、本実施の形態では、直線検出装置１００を車載装置に適用し、車載カメラの動画撮像による１フレームを入力画像として、該入力画像に含まれる特定の車線を検出する場合を例に挙げて説明する。
【００１５】
エッジ検出部１１０は、入力画像のエッジを検出する。例えば、エッジ検出部１１０は、車載カメラ等によって撮像された入力画像を受け付ける。図２は、入力画像の例を示す図である。図２に示すように、入力画像には、自車両が走行する車道の車線（車線１０及び車線２０）と、他車両と、該他車両が走行する車道の車線（車線２０及び車線３０）と、ガードレールとが含まれている。
【００１６】
そして、エッジ検出部１１０は、受け付けた入力画像に対して、ゾーベル（Sobel）フィルタ等の微分処理を施すことによりエッジを検出する。図３は、エッジが検出された入力画像の例を示すイメージ図である。図３に示すように、エッジ検出を施された入力画像は、車線１０、車線２０、車線３０、ガードレール及び他車両等の輪郭それぞれがエッジとして検出されたものとなる。
【００１７】
二値化部１２０は、エッジが検出された入力画像を二値化する。例えば、二値化部１２０は、エッジ検出部１１０によって検出されたエッジのエッジ信号について、可変閾値処理等を行ない、車線の画素値（例えば、輝度等）が二値化後に「１」となるように二値化する。かかる可変閾値処理とは、室内における照明や屋外における日照等の条件が好ましくない画像に対して有用な処理であり、閾値を適宜変更しつつ画像を二値化する処理である。すなわち、本実施の形態では、日照の条件に加えて、検出したい車線（白線や黄線）等に応じて、車線の画素値（輝度）が二値化後に「１」となるように、可変閾値処理を適用した二値化を行なう。
【００１８】
角度推定部１３０は、二値化部１２０によって二値化された入力画像の中央付近における中心線上の少なくとも任意の２つの位置のそれぞれから、中心線と交差する左右方向に画素値を検出し、検出した画素値をメモリに記録する。ここで、中央付近とは、例えば、入力画像の左端又は右端から水平に入力画像の中央に向かったときの、２／５〜３／５程度の距離の範囲を指す。よって、中央付近における中心線とは、例えば、入力画像の左右方向のほぼ中心に位置する鉛直方向の線（鉛直線）を指す。なお、中心線と交差する左右方向は、鉛直線と交差する第１方向（例えば、左方向）、第２方向（例えば、右方向）の一例である。また、第１方向は左方向に限定されるものではなく、第２方向は右方向に限定されるものではなく、第１方向と該第１方向とは逆の第２方向とで、左右何れかの方向であれば良い。
【００１９】
例えば、角度推定部１３０は、２つの位置を「位置Ａ」及び「位置Ｂ」とすると、「位置Ａ」から左方向に検出した画素値、「位置Ａ」から右方向に検出した画素値、「位置Ｂ」から左方向に検出した画素値、「位置Ｂ」から右方向に検出した画素値の少なくとも４つの画素値を、１フレームの入力画像それぞれに応じてメモリに記録する。２つの位置は、車線を検出するのに好適な位置とする。なお、車線を検出するのに好適な位置の詳細については後述する。
【００２０】
また、入力画像は所定フレームごとに入力され、角度推定部１３０は、メモリに記録された複数の入力画像に対する画素値について、直近の入力画像ほど重み付けをより大きくした画素値の和を求め、求めた和の勾配（変化点）を検出する。詳細には、角度推定部１３０は、勾配の検出により、画素値の和の値が下がり始めた点を検出する。この検出により、角度推定部１３０は、入力画像の「位置Ａ」又は「位置Ｂ」から左右方向それぞれにおいて少なくとも２点、すなわち左方向で２点、右方向で２点の少なくとも４点を検出することになる。その後、角度推定部１３０は、左方向又は右方向で各々検出した点を結ぶ２直線と、入力画像の左右水平方向、すなわち中心線に垂直な線等の所定の直線とのなす角度を推定する。なお、２直線は、中心線から左右何れかの方向で検出された２点各々を結ぶ第１直線、第２直線の一例である。また、上記第１方向と上記所定の直線とのなす角度は、第１の推定角度の一例であり、上記第２方向と上記所定の直線とのなす角度は、第２の推定角度の一例である。
【００２１】
つまり、中心線から左右方向に画素値の変化点を検出することで、自車両が走行する車道の両車線を検出することができる。これらにより、角度推定部１３０は、二値化された入力画像に含まれる直線のうち、自車両が走行する車道の車線に相当する２直線と、入力画像の左右水平方向の線（所定の直線）とのなす角度それぞれである第１の推定角度及び第２の推定角度を推定する。なお、自車両が走行する車道の車線に相当する２直線と、左右水平方向の線とのなす角度を推定することは一例であり、自車両が走行する車道の車線に相当する２直線と、他の線とのなす角度を推定するようにしても良い。
【００２２】
ここで、図４及び図５を用いて、角度推定部１３０による処理の詳細を説明する。図４は、画素値の変化点を検出する処理を説明する図である。図５は、画素値を記録するメモリの例を示す図である。なお、図４に示す長二点鎖線は、上述した中心線を表し、「Ｌ０（Ｌｉｎｅ０）」又は「Ｌ２（Ｌｉｎｅ２）」に対応する一点鎖線は、上述した「位置Ａ」又は「位置Ｂ」を含むラインを表している。また、この一点鎖線の矢印は、中心線上の「位置Ａ」又は「位置Ｂ」から、各ラインの矢印方向（左右方向）に画素値を検出することを表している。
【００２３】
例えば、図４に示すように、角度推定部１３０は、二値化された入力画像の中心線上で且つライン「Ｌ０」上の「位置Ａ」から左方向に画素値の勾配を検出する。これにより、角度推定部１３０は、ライン「Ｌ０」の左方向に応じた画素値のメモリ（Ｌ０）において値が下がり始めた箇所「Ｐ」を検出する。同様に、角度推定部１３０は、二値化された入力画像の中心線上で且つライン「Ｌ０」上の「位置Ａ」から右方向に画素値の勾配を検出する。これにより、角度推定部１３０は、ライン「Ｌ０」の右方向に応じた画素値のメモリ（Ｌ０）において値が下がり始めた箇所「Ｒ」を検出する。
【００２４】
また、図４に示すように、角度推定部１３０は、二値化された入力画像の中心線上で且つライン「Ｌ２」上の「位置Ｂ」から左方向に画素値の勾配を検出する。これにより、角度推定部１３０は、ライン「Ｌ２」の左方向に応じた画素値のメモリ（Ｌ２）において値が下がり始めた箇所「Ｑ」を検出する。同様に、角度推定部１３０は、二値化された入力画像の中心線上で且つライン「Ｌ２」上の「位置Ｂ」から右方向に応じた画素値の勾配を検出する。これにより、角度推定部１３０は、ライン「Ｌ２」の右方向に応じた画素値のメモリ（Ｌ２）において値が下がり始めた箇所「Ｓ」を検出する。
【００２５】
これらの後、角度推定部１３０は、検出した箇所「Ｐ」及び「Ｑ」を結ぶ直線と、中心線に垂直な線とのなす角度を求める。同様に、角度推定部１３０は、検出した箇所「Ｒ」及び「Ｓ」を結ぶ直線と、中心線に垂直な線とのなす角度を求める。例えば、「Ｐ」、「Ｑ」、「Ｒ」及び「Ｓ」の入力画像における（ｘ，ｙ）座標をそれぞれ（Ｐ．ｘ，Ｐ．ｙ）、（Ｑ．ｘ，Ｑ．ｙ）、（Ｒ．ｘ，Ｒ．ｙ）及び（Ｓ．ｘ，Ｓ．ｙ）とする。これらの座標を例に挙げると、「Ｐ」及び「Ｑ」を結ぶ直線の傾きは、「（Ｑ．ｘ−Ｐ．ｘ）／（Ｑ．ｙ−Ｐ．ｙ）」となり、この傾きから「Ｐ」及び「Ｑ」を結ぶ直線の角度が求められる。また、「Ｒ」及び「Ｓ」を結ぶ直線の傾きは、「（Ｓ．ｘ−Ｒ．ｘ）／（Ｓ．ｙ−Ｒ．ｙ）」となり、この傾きから「Ｒ」及び「Ｓ」を結ぶ直線の角度が求められる。
【００２６】
また、メモリには、図５に示すように、複数フレームにおける画素値「１」又は「０」が記録されている。図５に示す例では、現在の時刻「ｎ」と、時刻「ｎ」に対して過去の時刻のうち直近の時刻「ｎ−１」、「ｎ−２」及び「ｎ−３」との４フレーム（「ｆｒ（ｎ）」，「ｆｒ（ｎ−１）」，「ｆｒ（ｎ−２）」，「ｆｒ（ｎ−３）」）における画素値が記録されている。なお、各時刻（各フレーム）における画素値は、車両の走行によって左右に若干ぶれが生じるため、異なるフレーム間における同一座標の画素値それぞれにずれが生じている。このようなメモリを利用して、角度推定部１３０は、直近のフレームにおける画素値ほど重み付けをより大きくしたうえで画素値の総和を求め、求めた総和における勾配を検出することにより、変化点を検出する。
【００２７】
例えば、時刻「ｎ」におけるフレーム「ｆｒ（ｎ）」の画素値に対する重み「Ｎ」を「３」、時刻「ｎ−１」におけるフレーム「ｆｒ（ｎ−１）」の画素値に対する重み「Ｍ」を「３」とする。加えて、時刻「ｎ−２」におけるフレーム「ｆｒ（ｎ−２）」の画素値に対する重み「Ｌ」を「２」、時刻「ｎ−３」におけるフレーム「ｆｒ（ｎ−３）」の画素値に対する重み「Ｋ」を「１」とする。これらの重みを例に挙げると、「ｆｒ（ｎ）」、「ｆｒ（ｎ−１）」、「ｆｒ（ｎ−２）」及び「ｆｒ（ｎ−３）」それぞれの画素値が「１」、「０」、「１」及び「１」である場合には、重み付けを行なった画素値の総和「１×１＋０×２＋１×３＋１×３＝７」が算出される。４フレームを利用して重み付けを行なった画素値の総和は、「ｆｒ（ｎ）×Ｎ＋ｆｒ（ｎ−１）×Ｍ＋ｆｒ（ｎ−２）×Ｌ＋ｆｒ（ｎ−３）×Ｋ」の式により算出される。
【００２８】
上記算出が行なわれた後、角度推定部１３０は、画素値の総和「・・・，０，１，７，９，９，８，２，０，・・・」を利用して、値が下がり始めた「９」（２つの「９」のうちの何れかで左右方向の探索により異なる）に対応する点（変化点）を検出する。また、これらの点（変化点）の検出は左右方向で少なくとも２点ずつ行なわれ、その後、検出された点（変化点）を結ぶ２直線と、中心線に垂直な線とのなす角度が求められることになる。なお、角度推定部１３０によって求められた角度それぞれは、実際の車線に対する角度に近傍の値となる可能性が高いことから、車線のハフ変換算出結果の角度に近似するはずである。よって、角度推定部１３０によって求められた角度それぞれは、推定角度として、この推定角度を含む所定の角度範囲に制限（例えば、推定角度±α）して行なう、後述のハフ変換に利用される。
【００２９】
図１の説明に戻り、ハフ変換部１４０は、推定角度を含む所定の角度範囲に制限したハフ変換を実行し、入力画像に含まれる直線を検出する。例えば、ハフ変換部１４０は、角度推定部１３０によって推定された推定角度を含む所定の角度範囲（推定角度±α）に制限して、ハフ変換を実行することにより、入力画像に含まれる車線１０及び車線２０を検出する。ここで、右方向にある車線１０の角度が「９０≦θ＜１８０」、左方向にある車線２０の角度が「０＜≦９０」であるため、ハフ変換部１４０は、左方向と右方向とで独立してハフ変換を実行することにより、さらに、より高速で且つ精度の良い車線検出を行なうことができる。
【００３０】
[車線を検出するのに好適な位置]
次に、図６Ａ〜図６Ｈを用いて、上述した車線を検出するのに好適な位置について説明する。図６Ａ〜図６Ｈは、４ラインで画素値を検出したときの利用ラインの決定の例について説明する図である。なお、図６Ａ〜図６Ｈでは、４ラインそれぞれを入力画像の上側の位置から順に「Ｌ０（Ｌｉｎｅ０）」、「Ｌ１（Ｌｉｎｅ１）」、「Ｌ２（Ｌｉｎｅ２）」及び「Ｌ３（Ｌｉｎｅ３）」として表している。
【００３１】
図６Ａに示す例において、角度推定部１３０は、中心線上の任意の位置から画素値を探索し、「Ｌ１」、「Ｌ２」及び「Ｌ３」を結ぶ直線（車線）が存在する場合に、車線上で最も離れた点を含むライン「Ｌ１」及び「Ｌ３」の画素値を、複数フレームでの変化点検出に利用する。
【００３２】
また、図６Ｂに示す例において、角度推定部１３０は、中心線上の任意の位置から画素値を探索し、「Ｌ０」、「Ｌ２」及び「Ｌ３」を結ぶ直線（車線）が存在する場合に、車線上で最も離れた点を含むライン「Ｌ０」及び「Ｌ３」の画素値を、複数フレームでの変化点検出に利用する。
【００３３】
また、図６Ｃに示す例において、角度推定部１３０は、中心線上の任意の位置から画素値を探索し、「Ｌ０」、「Ｌ１」及び「Ｌ３」を結ぶ直線（車線）が存在する場合に、車線上で最も離れた点を含むライン「Ｌ０」及び「Ｌ３」の画素値を、複数フレームでの変化点検出に利用する。
【００３４】
また、図６Ｄに示す例において、角度推定部１３０は、中心線上の任意の位置から画素値を探索し、「Ｌ０」、「Ｌ１」及び「Ｌ２」を結ぶ直線（車線）が存在する場合に、車線上で最も離れた点を含むライン「Ｌ０」及び「Ｌ２」の画素値を、複数フレームでの変化点検出に利用する。
【００３５】
また、図６Ｅに示す例において、角度推定部１３０は、中心線上の任意の位置から画素値を探索し、「Ｌ１」、「Ｌ２」及び「Ｌ３」を結ぶ直線（車線）が存在する場合に、車線上で最も離れた点を含むライン「Ｌ１」及び「Ｌ３」の画素値を、複数フレームでの変化点検出に利用する。
【００３６】
また、図６Ｆに示す例において、角度推定部１３０は、中心線上の任意の位置から画素値を探索し、「Ｌ０」、「Ｌ２」及び「Ｌ３」を結ぶ直線（車線）が存在する場合に、車線上で最も離れた点を含むライン「Ｌ０」及び「Ｌ３」の画素値を、複数フレームでの変化点検出に利用する。
【００３７】
また、図６Ｇに示す例において、角度推定部１３０は、中心線上の任意の位置から画素値を探索し、「Ｌ０」、「Ｌ１」及び「Ｌ３」を結ぶ直線（車線）が存在する場合に、車線上で最も離れた点を含むライン「Ｌ０」及び「Ｌ３」の画素値を、複数フレームでの変化点検出に利用する。
【００３８】
また、図６Ｈに示す例において、角度推定部１３０は、中心線上の任意の位置から画素値を探索し、「Ｌ０」、「Ｌ１」及び「Ｌ２」を結ぶ直線（車線）が存在する場合に、車線上で最も離れた点を含むライン「Ｌ０」及び「Ｌ２」の画素値を、複数フレームでの変化点検出に利用する。
【００３９】
すなわち、車線は、入力画像の上方向に向かって続いているものの、交差点や車線の状況によっては二値データに反映されていない場合があるため、より多くの点を含む直線上にあり、且つ、なるべく離れた位置に存在する２点を含むラインを変化点の検出に利用する。この結果、直線検出装置１００は、信頼性の高い直線検出を行なうことができる。なお、図４に示したライン「Ｌ０」及び「Ｌ２」は、図６Ｄ又は図６Ｈの一例となる。
【００４０】
［実施の形態１に係る直線検出処理フロー］
次に、図７を用いて、実施の形態１に係る直線検出処理の流れについて説明する。図７は、実施の形態１に係る直線検出処理の流れの例を示すフローチャートである。
【００４１】
例えば、図７に示すように、エッジ検出部１１０は、車載カメラ等によって撮像された入力画像が入力された場合に（ステップＳ１０１肯定）、入力画像に対してゾーベルフィルタ等の微分処理を施すことによりエッジを検出する（ステップＳ１０２）。一方、エッジ検出部１１０は、入力画像が入力されていない場合に（ステップＳ１０１否定）、入力画像の入力待ちの状態となる。かかる入力画像は、例えば、撮像動画の１フレームであり、直線検出装置１００に順次入力される。また、二値化部１２０は、エッジ検出部１１０によって検出された入力画像のエッジのエッジ信号について、可変閾値処理等を行ない、車線の画素値が二値化後に「１」となるように二値化を行なう（ステップＳ１０３）。
【００４２】
また、角度推定部１３０は、二値化部１２０によって二値化された入力画像の中央付近の中心線上の少なくとも任意の２つの位置のそれぞれから、中心線と交差する左右方向に、画素値が変化する変化点を検出し、検出した点を結ぶ２直線と、中心線に垂直な線とのなす角度を求めることにより、推定角度を導出する（ステップＳ１０４）。このとき、角度推定部１３０は、経時に入力される複数の入力画像のうち、直近の入力画像を複数利用して、直近の入力画像ほど重み付けをより大きくした画素値の和を求め、求めた和の勾配（変化点）を検出する。また、ハフ変換部１４０は、角度推定部１３０によって推定された推定角度を含む所定の角度範囲（推定角度±α）に制限してハフ変換を実行することにより、入力画像に含まれる車線を検出する（ステップＳ１０５）。このように、ハフ変換において、変換前の各点を通る一連の直線を、角度を変えながらハフ空間にプロットする際の角度に制限を設けることができる。
【００４３】
［実施の形態１による効果］
上述したように、直線検出装置１００は、入力画像のエッジを検出し、エッジを検出した入力画像を二値化する。そして、直線検出装置１００は、二値化した入力画像の中央付近における中心線上の少なくとも任意の２つの位置のそれぞれから、中心線と交差する左右方向に画素値を検出したときの画素値の変化点を、左右方向それぞれについて検出する。続いて、直線検出装置１００は、検出した変化点を結ぶ２直線と、所定の直線とのなす角度を推定する。その後、直線検出装置１００は、推定された左右方向での角度を含む所定の角度範囲に制限してハフ変換を実行することにより、入力画像に含まれる直線を検出する。これらの結果、直線検出装置１００は、車線等の直線の検出を高精度に行なうことができる。換言すると、直線検出装置１００は、直線検出を行なうハフ変換で利用する角度を推定する場合に、中心線上の任意の２つの位置から左右方向に画素値を探索したときにはじめて検出される点を結ぶ直線と、所定の直線とのなす角度を推定し、推定した推定角度を含む所定の角度範囲（推定角度±α）に制限してハフ変換を実行するので、車線等の直線の検出を高速に且つ高精度に行なうことができる。
【００４４】
（実施の形態２）
さて、これまで本発明に係る直線検出装置１００の実施の形態について説明したが、上述した実施の形態以外にも種々の異なる形態にて実施されてよいものである。そこで、（１）ノイズの除去、（２）直線の信頼性、（３）構成、（４）プログラム、について異なる実施の形態を説明する。
【００４５】
（１）ノイズの除去
上記実施の形態では、エッジ検出後に二値化された入力画像の画素値を探索することにより変化点を検出する場合を説明したが、二値化された入力画像に対してローパスフィルタ等を適用した後に入力画像の画素値を検出しても良い。この結果、直線検出装置１００は、ローパスフィルタを適用することにより、ノイズ成分を除去することができるので、車線等の直線の検出をより高精度に行なうことができる。
【００４６】
（２）直線の信頼性
また、上記実施の形態では、検出した変化点を結ぶ直線と中心線に垂直な線とのなす角度を求め、求めた角度を推定角度としてハフ変換時の角度制限に利用する場合を説明したが、このときの直線の信頼性を判定したうえで、ハフ変換時の角度制限に利用しても良い。例えば、角度推定部１３０は、入力画像の上下方向の上方向（入力画像の奥）に向かって幅が狭くなる２直線と中心線に垂直な線とのなす角度それぞれを推定角度とする。すなわち、角度推定部１３０は、求めた角度に基づき、入力画像の奥に向かうほど幅が狭くなる関係性であれば、これら２直線が検出対象の車線であるとして、２直線それぞれと中心線に垂直な線とのなす角度を推定角度としてハフ変換に利用する。
【００４７】
また、この他、検出された直線（車線）の幅が法定の車線幅と著しく異なる場合に、誤検出であると判定し、検出した直線を車線としてみなさないようにしても良い。また、誤検出であった場合には、再度検出をやり直して数フレーム間で安定して検出できた直線を検出結果とする。若しくは、誤検出であった場合には、誤検出した該当フレームを以降の検出では利用しないようにしても良い。なお、法定の車線幅と著しく異なるものを誤検出とする手法は、車線が鎖線である場合に特に有用である。
【００４８】
（３）構成
また、上記文書中や図面中等で示した処理手順、制御手順、具体的名称、各種のデータやパラメタ等を含む情報は、特記する場合を除いて任意に変更することができる。例えば、４フレーム分の画素値をメモリに記録しておき、直近フレームの画素値の重み付けをより大きくして総和を求める場合を説明したが、利用する画素値は４フレーム分のデータに限られるわけではない。
【００４９】
また、図示した直線検出装置１００の各構成要素は、機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散又は統合の具体的形態は、図示のものに限られず、その全部又は一部を各種の負担や使用状況などに応じて、任意の単位で機能的または物理的に分散又は統合することができる。例えば、角度推定部１３０を、画素値の変化点を検出する「検出部」と、検出された変化点を結ぶ直線と中心線に垂直な線とのなす角度を推定する「角度推定部」とに分散しても良い。また、上記実施の形態では、直線検出装置１００を車載装置に適用する場合を説明したが、車載装置に適用する場合だけでなく、画像に含まれる直線を検出するものであれば何に適用しても構わない。
【００５０】
また、直線検出装置１００の構成は、例えば、ハードウェアとして、任意のコンピュータのＣＰＵ（Central  Processing  Unit）、メモリ、その他のＬＳＩ（Large  Scale  Integration）で実現される。同様に、直線検出装置１００の構成は、例えば、ソフトウェアとして、メモリにロードされたプログラム等によって実現され得る。上記実施の形態では、これらのハードウェア又はソフトウェアの連携によって実現される機能ブロックとして説明した。すなわち、これらの機能ブロックについては、ハードウェアのみ、ソフトウェアのみ、又は、それらの組み合わせによって種々の形で実現できる。
【００５１】
（４）プログラム
また、本実施の形態の直線検出装置１００は、ＣＰＵ等の制御装置と、ＲＯＭ（Read  Only  Memory）やＲＡＭ（Random  Access  Memory）等の記憶装置と、ＨＤＤ（Hard  Disk  Drive）、ＣＤ（Compact  Disc）ドライブ装置等の外部記憶装置と、ディスプレイ装置等の表示装置と、キーボードやマウス等の入力装置を備えており、通常のコンピュータを利用したハードウェア厚生となっている。
【００５２】
本実施の形態の直線検出装置１００で実行される直線検出プログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ、ＤＶＤ（Digital  Versatile  Disk）等のコンピュータで読み取り可能な記憶媒体に記録されて提供される。
【００５３】
また、本実施の形態の直線検出装置１００で実行される直線検出プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、本実施の形態の直線検出装置１００で実行される直線検出プログラムをインターネット等のネットワーク経由で提供又は配布するように構成しても良い。また、本実施の形態の直線検出プログラムを、ＲＯＭ等に予め組み込んで提供するように構成しても良い。
【００５４】
本実施の形態の直線検出装置１００で実行される直線検出プログラムは、上述した各部（エッジ検出部１１０、二値化部１２０、角度推定部１３０、ハフ変換部１４０）を含むモジュール構成となっており、実際のハードウェアとしてはＣＰＵ（プロセッサ）が上記記憶媒体から直線検出プログラムを読み出して実行することにより、上記各部が主記憶装置上にロードされ、エッジ検出部１１０、二値化部１２０、角度推定部１３０、ハフ変換部１４０が主記憶装置上に生成されるようになっている。
【符号の説明】
【００５５】
１００  直線検出装置
１１０  エッジ検出部
１２０  二値化部
１３０  角度推定部
１４０  ハフ変換部
【図１】
2013206067.tif 000003
【図２】
2013206067.tif 000004
【図３】
2013206067.tif 000005
【図４】
2013206067.tif 000006
【図５】
2013206067.tif 000007
【図６Ａ】
2013206067.tif 000008
【図６Ｂ】
2013206067.tif 000009
【図６Ｃ】
2013206067.tif 000010
【図６Ｄ】
2013206067.tif 000011
【図６Ｅ】
2013206067.tif 000012
【図６Ｆ】
2013206067.tif 000013
【図６Ｇ】
2013206067.tif 000014
【図６Ｈ】
2013206067.tif 000015
【図７】
2013206067.tif 000016