(57)【特許請求の範囲】
【請求項１】
入力画像中の複数のエッジ点について、各前記エッジ点の勾配方向を取得する勾配方向取得部と、
各前記エッジ点をハフ変換することによって前記入力画像中の直線を検出する直線検出部と、  
前記ハフ変換における投票用の第１のハフ空間部と、
前記ハフ変換における投票用の第２のハフ空間部と、
を備え、
前記直線検出部は、各前記エッジ点をハフ変換する際、前記入力画像に対して設定されると共に、第１及び第２の軸によって構成される２次元座標系において、各前記エッジ点の勾配の方向と前記第１の軸の方向とのなす角度と、前記２次元座標系における原点に対する各前記エッジ点の方向と前記第１の軸の方向とのなす角度との角度差が９０度以上であるエッジ点を通る直線群を、前記第１のハフ空間部に投票し、前記角度差が９０度未満の場合であるエッジ点を通る直線群を、前記第２のハフ空間部に投票し、前記第１及び第２のハフ空間部のそれぞれの投票結果に基づいて、前記入力画像中の直線を検出する、
直線検出装置。
【請求項２】
前記直線検出部は、前記角度差の余弦値が０以上であるエッジ点を通る直線群を、前記第１のハフ空間部に投票し、前記角度差の余弦値が０未満であるエッジ点を通る直線群を、前記第２のハフ空間部に投票する、
請求項１記載の直線検出装置。
【請求項３】
前記直線検出部は、
複数の前記エッジ点を、前記角度差が９０度以上である第１のグループと、前記角度差が９０度未満である第２のグループとに分類するグループ化部を有し、
前記直線検出部は、前記第１のグループ及び前記第２のグループ内のエッジ点をそれぞれハフ変換し、前記第１のグループ内のエッジ点をハフ変換する際、そのエッジ点を通る直線群を前記第１のハフ空間部に投票し、前記第２のグループ内のエッジ点をハフ変換する際、そのエッジ点を通る直線群を前記第２のハフ空間部に投票し、前記第１及び第２のハフ空間部のそれぞれの投票結果に基づいて、前記入力画像中の直線を検出する、
請求項１記載の直線検出装置。
【請求項４】
入力画像中の複数のエッジ点について、各前記エッジ点の勾配方向を取得する勾配方向取得工程、
各前記エッジ点をハフ変換することによって前記入力画像中の直線を検出する直線検出工程と、  
前記ハフ変換における投票用の第１のハフ空間部と、
前記ハフ変換における投票用の第２のハフ空間部と、
を備え、
前記直線検出工程では、各前記エッジ点をハフ変換する際、前記入力画像に対して設定されると共に、第１及び第２の軸によって構成される２次元座標系において、各前記エッジ点の勾配の方向と前記第１の軸の方向とのなす角度と、前記２次元座標系における原点に対する各前記エッジ点の方向と前記第１の軸の方向とのなす角度との角度差が９０度以上であるエッジ点を通る直線群を、第１のハフ空間部に投票し、前記角度差が９０度未満の場合であるエッジ点を通る直線群を、第２のハフ空間部に投票し、前記第１及び第２のハフ空間部のそれぞれの投票結果に基づいて、前記入力画像中の直線を検出する、
を備える直線検出方法。
【請求項５】
前記直線検出工程では、前記角度差の余弦値が０以上であるエッジ点を通る直線群を、前記第１のハフ空間部に投票し、前記角度差の余弦値が０未満であるエッジ点を通る直線群を、前記第２のハフ空間部に投票する、
請求項４記載の直線検出方法。
【請求項６】
前記直線検出工程は、
複数の前記エッジ点を、前記角度差が９０度以上である第１のグループと、前記角度差が９０度未満である第２のグループとに分類するグループ化工程を有し、
前記直線検出工程では、前記第１のグループ及び前記第２のグループ内のエッジ点をそれぞれハフ変換し、前記第１のグループ内のエッジ点をハフ変換する際、そのエッジ点を通る直線群を前記第１のハフ空間部に投票し、前記第２のグループ内のエッジ点をハフ変換する際、そのエッジ点を通る直線群を前記第２のハフ空間部に投票し、前記第１及び第２のハフ空間部のそれぞれの投票結果に基づいて、前記入力画像中の直線を検出する、
請求項４記載の直線検出方法。
【請求項７】
コンピュータを、
入力画像中の複数のエッジ点について、各前記エッジ点の勾配方向を取得する勾配方向取得部と、
各前記エッジ点をハフ変換することによって前記入力画像中の直線を検出する直線検出部と、  
前記ハフ変換における投票用の第１のハフ空間部と、
前記ハフ変換における投票用の第２のハフ空間部と、
として機能させ、
前記直線検出部は、各前記エッジ点をハフ変換する際、前記入力画像に対して設定されると共に、第１及び第２の軸によって構成される２次元座標系において、各前記エッジ点の勾配の方向と前記第１の軸の方向とのなす角度と、前記２次元座標系における原点に対する各前記エッジ点の方向と前記第１の軸の方向とのなす角度との角度差が９０度以上であるエッジ点を通る直線群を、前記第１のハフ空間部に投票し、前記角度差が９０度未満の場合であるエッジ点を通る直線群を、前記第２のハフ空間部に投票し、前記第１及び第２のハフ空間部のそれぞれの投票結果に基づいて、前記入力画像中の直線を検出する、
直線検出プログラム。
【請求項８】
撮影画像を取得する画像取得手段と、
前記画像取得手段で取得された前記撮影画像を入力画像として前記入力画像内の直線を検出する請求項１又は２記載の直線検出装置と、
を備える撮影システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、直線検出装置、直線検出方法、直線検出プログラム及び撮影システムに関する。
【背景技術】
【０００２】
画像処理の技術の一つとして、ハフ変換（Hough変換）を利用して入力画像中の直線を検出する技術が知られている（例えば、特許文献１参照）。ハフ変換では、入力画像中のエッジ点を通る直線群を、直線を表すパラメータで構成されるハフ空間に投票する。そして、最大投票数を獲得したパラメータで表される直線を、所定のエッジ点を通る直線として検出する。具体的に図２を参照して説明する。図２は、ハフ変換の原理を示す図面である。入力画像に対してｘｙ座標を設定し、画像内のエッジ点ｐｉ（ｉは、複数のエッジ点を区別するための整数）の座標を（ｘｉ，ｙｉ）としたとき、エッジ点を通る任意の直線は次式で表される。
ρ＝ｘｉｃｏｓθ＋ｙｉｓｉｎθ
直線を表す上記式中のρは、原点から直線に垂線を引いたときのその垂線の長さ（原点と直線との間の距離）であり、θは、ｘ軸と垂線とのなす角度である。
【０００３】
従来、各エッジ点に対する直線群をパラメータ空間としてのρ―θ空間に投票する。このような投票により、一つのエッジ点に対して一つの曲線（理論的には正弦曲線）が描かれる。図３では、３つのエッジ点に対する投票結果として、３つの曲線ｈ１，ｈ２，ｈ３を模式的に示している。この３つの曲線ｈ１〜ｈ３の交点に対応するメモリセルの投票数が最も多くなる。従来のハフ変換では、このように投票数の多い交点を規定するρ及びθの組によって決まる直線を入力画像上の直線として検出していた。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平９−２５９２７９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来のハフ変換では２つの直線が近接している場合には、ある閾値以上の投票数のパラメータの組も近接するので、直線を確実に検出ができなかった。
【０００６】
本発明は、上記の問題点を解決するためになされたものであり、直線をより確実に検出可能な直線検出装置、直線検出方法、直線検出プログラム及び撮影システムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明に係る直線検出装置は、入力画像中の複数のエッジ点について、各前記エッジ点の勾配方向を取得する勾配方向取得部と、各エッジ点をハフ変換することによって入力画像中の直線を検出する直線検出部と、ハフ変換における投票用の第１のハフ空間部と、ハフ変換における投票用の第２のハフ空間部と、を備え、直線検出部は、各エッジ点をハフ変換する際、入力画像に対して設定されると共に、第１及び第２の軸によって構成される２次元座標系において、各エッジ点の勾配の方向と第１の軸の方向とのなす角度と、２次元座標系における原点に対する各エッジ点の方向と第１の軸の方向とのなす角度との角度差が９０度以上であるエッジ点を通る直線群を、第１のハフ空間部に投票し、上記角度差が９０度未満であるエッジ点を通る直線群を、第２のハフ空間部に投票し、第１及び第２のハフ空間部のそれぞれの投票結果に基づいて、入力画像中の直線を検出する。
【０００８】
本発明に係る直線検出方法は、入力画像中の複数のエッジ点について、各エッジ点の勾配方向を取得する勾配方向取得工程と、各エッジ点をハフ変換することによって入力画像中の直線を検出する直線検出工程と、を備え、直線検出工程では、各エッジ点をハフ変換する際、入力画像に対して設定されると共に、第１及び第２の軸によって構成される２次元座標系において、各エッジ点の勾配の方向と第１の軸の方向とのなす角度と、２次元座標系における原点に対する各エッジ点の方向と第１の軸の方向とのなす角度との角度差が９０度以上であるエッジ点を通る直線群を、第１のハフ空間部に投票し、上記角度差が９０度未満の場合であるエッジ点を通る直線群を、第２のハフ空間部に投票し、第１及び第２のハフ空間部のそれぞれの投票結果に基づいて、入力画像中の直線を検出する。
【０００９】
本発明に係る直線検出プログラムは、コンピュータを、入力画像中の複数のエッジ点について、各エッジ点の勾配方向を取得する勾配方向取得部と、各エッジ点をハフ変換することによって入力画像中の直線を検出する直線検出部と、ハフ変換における投票用の第１のハフ空間部と、ハフ変換における投票用の第２のハフ空間部と、として機能させ、直線検出部は、各エッジ点をハフ変換する際、入力画像に対して設定されると共に、第１及び第２の軸によって構成される２次元座標系において、各エッジ点の勾配の方向と第１の軸の方向とのなす角度と、２次元座標系における原点に対する各エッジ点の方向と第１の軸の方向とのなす角度との角度差が９０度以上であるエッジ点を通る直線群を、第１のハフ空間部に投票し、角度差が９０度未満の場合であるエッジ点を通る直線群を、第２のハフ空間部に投票し、第１及び第２のハフ空間部のそれぞれの投票結果に基づいて、入力画像中の直線を検出する。
【００１０】
入力画像中に含まれる互いに平行な一対の直線のうちの一方の直線上のエッジ点に対して上記角度差が９０度以上である場合、他方の直線上のエッジ点に対して上記角度差は９０度未満になる。従って、本発明によれば、入力画像中に含まれる互いに平行な一対の直線のうちの一方の直線上のエッジ点を通る直線群は、例えば第１のハフ空間部に投票され、この場合、他方の直線上のエッジ点を通る直線群は、第２のハフ空間部に投票される。すなわち、入力画像中に含まれる互いに平行な一対の直線のうちの一方の直線上のエッジ点と、他方の直線上のエッジ点とは、異なるハフ空間部に投票される。そのため、入力画像中に含まれる互いに平行な一対の直線が近接している場合であっても、より確実に直線を検出することが可能である。
【００１１】
本発明に係る直線検出装置では、直線検出部は、上記角度差の余弦値が０以上であるエッジ点を通る直線群を、第１のハフ空間部に投票し、上記角度差の余弦値が０未満であるエッジ点を通る直線群を、第２のハフ空間部に投票してもよい。同様に、本発明に係る直線検出方法の直線検出工程では、上記角度差の余弦値が０以上であるエッジ点を通る直線群を、第１のハフ空間部に投票し、上記角度差の余弦値が０未満であるエッジ点を通る直線群を、第２のハフ空間部に投票してもよい。
【００１２】
この場合、余弦値の０及び正の場合と、余弦値が負の場合とで場合分けがされるので、例えば、コンピュータを利用して上記場合分け処理する際、処理が容易である。
【００１３】
本発明に係る直線検出装置では、複数のエッジ点を、上記角度差が９０度以上である第１のグループと、上記角度差が９０度未満である第２のグループとに分類するグループ化部を有し、直線検出部は、第１のグループ及び第２のグループ内のエッジ点をそれぞれハフ変換し、第１のグループ内のエッジ点をハフ変換する際、そのエッジ点を通る直線群を第１のハフ空間部に投票し、第２のグループ内のエッジ点をハフ変換する際、そのエッジ点を通る直線群を第２のハフ空間部に投票し、第１及び第２のハフ空間部のそれぞれの投票結果に基づいて、入力画像中の直線を検出してもよい。同様に、本発明に係る直線検出方法では、直線検出工程は、複数のエッジ点を、上記角度差が９０度以上である第１のグループと、上記角度差が９０度未満である第２のグループとに分類するグループ化工程を有し、直線検出工程では、第１のグループ及び第２のグループ内のエッジ点をそれぞれハフ変換し、第１のグループ内のエッジ点をハフ変換する際、そのエッジ点を通る直線群を第１のハフ空間部に投票し、第２のグループ内のエッジ点をハフ変換する際、そのエッジ点を通る直線群を第２のハフ空間部に投票し、第１及び第２のハフ空間部のそれぞれの投票結果に基づいて、上記入力画像中の直線を検出してもよい。
【００１４】
本発明は、撮影画像を取得する画像取得手段と、上記本発明に係る直線検出装置とを備える撮影システムにも係る。この撮影システムでは、本発明に係る直線検出装置を備えるので、撮影手段により取得された撮影画像中の直線をより高い精度で検出可能である。
【発明の効果】
【００１５】
本発明によれば、入力画像中の直線をより確実に検出できる。
【図面の簡単な説明】
【００１６】
【図１】本発明に係る直線検出装置の一実施形態を含む撮影システムの構成を概略的に示す図面である。
【図２】ハフ変換の原理を説明するための図面である。
【図３】ハフ変換で利用するハフ空間の模式図である。
【図４】図１に示した直線検出装置による直線検出の原理を説明するための図面である。
【図５】エッジ点のグループ分けを説明するためのテストパターンを模式的に示す図面である。
【図６】図５に示したテストパターンを撮影した画像内の複数のエッジ点が２つのグループに分類された結果としてのエッジ点パターンを示す図面である。
【図７】（ａ）は、第１のハフ空間部としての２次元配列領域を模式的に示す図面である。（ｂ）は、第２のハフ空間部としての２次元配列領域を模式的に示す図面である。
【図８】図１に示した直線検出装置を利用した直線検出方法のフローチャートである。
【図９】従来のハフ変換に基づいて直線を検出した結果を示す図面である。
【図１０】従来のハフ変換に基づいて直線を検出した結果を示す図面である。
【図１１】図９と同様の入力画像に対して図１に示した直線検出装置を利用して直線を検出した結果を示す図面である。
【図１２】図１０と同様の入力画像に対して図１に示した直線検出装置を利用して直線を検出した結果を示す図面である。
【図１３】本発明に係る直線検出装置の他の実施形態を含む撮影システムの構成を概略的に示す図面である。
【発明を実施するための形態】
【００１７】
以下、図を参照して本発明の実施形態について説明する。以下の説明においては、同一の要素には同一の符号を用いることとし重複する説明は省略する。
【００１８】
図１は、本発明に係る直線検出装置の一実施形態を含む撮影システムの概略構成を示す図面である。撮影システム１０は、画像取得装置としてのカメラ１１と、直線検出装置１２とを備える。
【００１９】
直線検出装置１２は、カメラ１１で取得された画像を入力画像Ｉとし、その入力画像Ｉ内の直線を、ハフ変換を利用して検出する。
【００２０】
図２は、ハフ変換の原理を説明するための図面である。図２に示すように、入力画像Ｉに対して、互いに直交するｘ軸（第１の軸）及びｙ軸（第２の軸）から構成される２次元座標系を設定する。この２次元座標系を用いて、入力画像Ｉ中の任意のエッジ点ｐｉの位置を（ｘｉ，ｙｉ）（ｉは、エッジ点を区別するための整数）と表す。このエッジ点ｐｉを通る直線は、次式で表される。
【数１】
0005783569.tif 000002
ここで、ρは、２次元座標系の原点Ｏからエッジ点ｐｉを通る直線に対して引かれた垂線の長さであり、θは、その垂線とｘ軸方向とのなす角度である。ρ及びθは、エッジ点ｐｉを通る直線を表すためのパラメータである。
【００２１】
ハフ変換では、各エッジ点ｐｉに対する直線群をハフ空間Ｈに投票する。ハフ空間は、直線を特定するパラメータであるρとθとで定義されるパラメータ空間としてのρ―θ空間である。このような投票により、一つのエッジ点ｐｉに対して一つの曲線（理論的には正弦曲線）が描かれる。ハフ変換で得られる曲線をハフ曲線と称す。図３は、ρ−θ空間の投票結果の例を示す図面である。図３は、３つのエッジ点ｐｉに対する投票結果として、３つの曲線ｈ１，ｈ２，ｈ３を模式的に示している。ハフ変換では、投票数の多い３つのハフ曲線ｈ１〜ｈ３の交点を規定するρ及びθの組によって決まる直線を入力画像Ｉ上の直線として検出する。図３に示した場合では、図２に黒丸で示される複数のエッジ点ｐｉを通る直線ｌが検出されることになる。
【００２２】
図４は、直線検出装置による直線検出の原理を説明するための図面である。図４では、入力画像Ｉ内の一本の線状パターン（ハッチングで示されている領域）２０を模式的に示している。線状パターン２０は互いに平行な一対の直線２０ａ，２０ｂを有する。
【００２３】
ここで、入力画像Ｉ内の任意のエッジ点ｐｉの勾配の方向（以下、勾配方向と称す）を、エッジ点ｐｉの勾配ベクトルとｘ軸方向とのなす角度αｉで表す。上記「勾配」とは、画素値の変化の度合いを意味する。画素値の度合いの例は、輝度の変化の度合い又は濃度の変化の度合いである。また、複数のエッジ点ｐｉのうち直線２０ａ及び直線２０ｂ上のエッジ点ｐｉをエッジ点ｐｊａ（ｊは、直線２０ａ上の複数のエッジ点を区別するための整数）及びエッジ点ｐｋｂ（ｋは、直線２０ａ上の複数のエッジ点を区別するための整数）とする。エッジ点ｐｊａの座標を（ｘｊａ，ｙｊａ）と称し、エッジ点ｐｋｂの座標を（ｘｋｂ，ｙｋｂ）と称す。更に、エッジ点ｐｊａ，ｐｋｂの勾配方向を、それぞれαｊａ及びαｋｂとする。通常、勾配方向であるαｊａ及びαｋｂは、反対側を向いている。
【００２４】
直線検出装置１２は、線状パターン２０を構成する一対の直線２０ａ，２０ｂ上のエッジ点ｐｊａ，ｐｋｂの勾配方向が反対方向を向いている点を利用して、ハフ変換の際に、入力画像Ｉ中のエッジ点ｐｉをグループ（第１のグループ）Ｇ１とグループ（第２のグループ）Ｇ２に分けることによって、２つのグループＧ１，Ｇ２毎に直線を検出する。
【００２５】
この点について説明する。式（１）は、次のように表される。
【数２】
0005783569.tif 000003
ここで、ρが長さを表すため、ｓｉｎ（θ＋γ）が０以上である必要がある。従って、式（３）が成り立つ。
【数３】
0005783569.tif 000004
更に、βｉをエッジ点ｐｉの極座標の角度（原点Ｏに対するエッジ点ｐｉの方向と、ｘ軸方向との間の角度）、すなわち、βｉ＝ａｒｃｔａｎ（ｙｉ／ｘｉ）と定義すると、γ＝π／２−βｉである。従って、式（４）が成り立つ。
【数４】
0005783569.tif 000005
ここで、図４に示したような線状パターン２０の場合、図４の状態において、エッジ点（ｘｋａ，ｙｋｂ）の勾配方向αｋｂは、θに一致する。従って、次式が成り立つ。
【数５】
0005783569.tif 000006
式（５）中、βｋｂは、エッジ点ｐｋｂの極座標の角度である。すなわち、βｋｂ＝ａｒｃｔａｎ（ｙｋｂ／ｘｋｂ）である。
【００２６】
一方、エッジ点（ｘｊａ，ｙｊａ）の勾配方向αｊａは、θ＋πである。従って、式（６）及び式（７）が成り立つ。
【数６】
0005783569.tif 000007
【数７】
0005783569.tif 000008
式（７）中のβｊａは、エッジ点ｐｊａの極座標の角度である。すなわち、βｊａ＝ａｒｃｔａｎ（ｙｊａ／ｘｊａ）である。
【００２７】
式（６）及び式（７）は、線状パターン２０を構成する一対の直線２０ａ，２０ｂのうちの一方の直線上のエッジ点の勾配方向とそのエッジ点の極座標における角度との差（以下、角度差と称す）の余弦値が０以上であり、他方のエッジ点の勾配方向とそのエッジ点の極座標における角度との差の余弦値が負になることを示している。
【００２８】
従って、入力画像Ｉ中の任意のエッジ点ｐｉの勾配方向αｉを算出し、その勾配方向αｉとそのエッジ点ｐｉの極座標における角度βｉとの角度差（αｉ−βｉ）の余弦値に基づいて、エッジ点ｐｉが、線状パターン２０を構成する一対の直線２０ａ，２０ｂのいずれに属しているかを判定できることになる。
【００２９】
ここでは、一つの線状パターン２０について説明したが、入力画像Ｉ中の直線は、線状パターンの一部と見なし得る。従って、入力画像Ｉ内の複数のエッジ点ｐｉは、式（８）を満たすグループＧ１と、式（９）を満たすグループＧ２とに分類できる。
【数８】
0005783569.tif 000009
【数９】
0005783569.tif 000010
【００３０】
図５及び図６を利用して具体的に説明する。図５は、エッジ点のグループ分けを説明するためのテストパターンを模式的に示す図面である。図５に示すようにテストパターン３０は、互いに平行な３つの線状パターン３１，３２，３３と、線状パターン３１〜３３と交差する２つの線状パターン３４，３５とを含む。線状パターン３１〜３５には、ハッチングを示している。テストパターン３０において、線状パターン３１〜３５の色は同色（例えば、白色）であり、テストパターン３０内における線状パターン３１〜３５以外の他の領域は、同色（例えば、黒色）である。この場合、各線状パターン３１〜３５を構成する一対の直線上にエッジ点が検出される。
【００３１】
図６は、図５に示したテストパターンを撮影した画像内の複数のエッジ点が２つのグループに分類された結果としてのエッジ点パターンを示す図面である。図６に示したエッジ点パターン４０中の破線４１ａ〜４１ｅは、式（９）を満たすエッジ点を模式的に示している。図６に示すエッジ点パターン４０中の一点鎖線４２ａ〜４２ｅは、式（８）を満たすエッジ点を模式的に示している。図６に示すように、各線状パターン３１〜３５を構成する一対の直線上のエッジ点ｐｉが、式（８）及び式（９）により、それぞれ分離される。
【００３２】
直線検出装置１２は、式（８）及び式（９）を利用してエッジ点ｐｉのハフ変換を実施することによって、入力画像Ｉ中の直線を検出する。
【００３３】
上記原理を実現するための直線検出装置１２の構成について、図１を参照して説明する。
【００３４】
図１に示すように、直線検出装置１２は、画像入力部１２Ａと、エッジ点検出部１２Ｂと、勾配方向算出部（勾配方向取得部）１２Ｃと、直線検出部１２Ｄと、画像出力部１２Ｅとを備える。また、直線検出装置１２は、画像入力部１２Ａ、エッジ点検出部１２Ｂなどを制御するＣＰＵ１２Ｆと、各種データ及びプログラムを格納する記憶部１２Ｇを更に備える。図１に示した直線検出装置１２が有する各構成要素（画像入力部１２Ａ、エッジ点検出部１２Ｂなど）は、バスなどによって接続されて、データなどを通信可能である。直線検出装置１２の例は、コンピュータ装置である。直線検出装置１２は、記憶部１２Ｇに格納された直線検出プログラムを実行することによって、画像入力部１２Ａと、エッジ点検出部１２Ｂと、勾配方向算出部１２Ｃと、直線検出部１２Ｄと、画像出力部１２Ｅの各機能を実現する。
【００３５】
画像入力部１２Ａは、カメラ１１で取得された撮影画像を入力画像Ｉとしてカメラ１１から受け付ける。画像入力部１２Ａは、無線及び有線通信の少なくとも一方を介してデータを受け取ってもよいし、又は記録媒体（ＤＶＤやＳＤカード等）からデータを受け取ってもよい。
【００３６】
エッジ点検出部１２Ｂは、入力画像Ｉ内の特徴点としてのエッジ点ｐｉを検出する。エッジ点ｐｉは、例えば輝度の明確な変化（例えば、明→暗又は暗→明の変化）が生じる点として検出される。エッジ点ｐｉは、例えば、ｃａｎｎｙオペレータによって検出され得る。
【００３７】
勾配方向算出部１２Ｃは、エッジ点検出部１２Ｂで検出されたエッジ点ｐｉの勾配方向αｉを算出する。勾配方向αｉは、例えば、“画像情報教育振興協会著、「デジタル画像処理」、画像情報教育振興協会（CG-ARTS協会）、２００４年”記載の方法により算出され得る。具体的には、勾配方向αｉは、例えば、Ｓｏｂｅｌオペレータを用いて算出され得る。
【００３８】
直線検出部１２Ｄは、記憶部１２Ｇ内に、ハフ空間（パラメータ空間）Ｈとして使用するための２次元配列領域Ｈ１及び２次元配列領域Ｈ２を確保する。２次元配列領域Ｈ１は、グループＧ１内のエッジ点ｐｉに対する投票用の第１のハフ空間部として機能し、２次元配列領域Ｈ２は、グループＧ２内のエッジ点ｐｉに対する投票用の第２のハフ空間部として機能する。
【００３９】
図７（ａ）及び図７（ｂ）は、第１及び第２のハフ空間部としての２次元配列領域Ｈ１，Ｈ２を模式的に示す図面である。２次元配列領域Ｈ１，Ｈ２は、それぞれ図中の左上に模式的に示したメモリセルｓ１，ｓ２が２次元状に配列されたものである。２次元配列領域Ｈ１を構成する複数のメモリセルｓ１は、ρ及びθによってそれぞれ特定される。同様に、２次元配列領域Ｈ２を構成する複数のメモリセルｓ２は、ρ及びθによってそれぞれ特定される。
【００４０】
各２次元配列領域Ｈ１，Ｈ２を構成するメモリセルｓ１，ｓ２ａの値をＡ１（ρ,θ），Ａ２（ρ、θ）とした場合、直線検出部１２Ｄは、
式（８）及び下記式（１０）を満たす場合、
Ａ１（ρ，θ）＝Ａ１（ρ，θ）+１
を実行し、
式（９）及び下記式（１０）を満たす場合、
Ａ２（ρ，θ）＝Ａ２（ρ，θ）+１
を実行する。
【数１０】
0005783569.tif 000011
式（１０）は、直線を表すための式であり、パラメータρ及びθが満たす条件である。
【００４１】
直線検出部１２Ｄは、２次元配列領域Ｈ１，Ｈ２における投票結果において、所定の閾値以上の投票数を有するメモリセルｓ１，ｓ２をそれぞれ抽出し、入力画像Ｉ中の直線として検出する。
【００４２】
画像出力部１２Ｅは、直線検出部１２Ｄで抽出された直線を、入力画像Ｉに重畳して出力する。
【００４３】
図８は、直線検出装置を利用した直線検出方法のフローチャートである。図８を参照して、撮影システム１０及び直線検出装置１２の動作について説明する。
【００４４】
撮影システム１０の各カメラ１１で撮影を行い、撮影画像を取得する（画像取得工程Ｓ１）。
【００４５】
画像入力部１２Ａが、カメラ１１で撮影された撮影画像を入力画像Ｉとして受け付ける（画像入力工程Ｓ２）と、エッジ点検出部１２Ｂが入力画像Ｉ中のエッジ点ｐｉを検出する（エッジ点検出工程Ｓ３）。
【００４６】
次に、勾配方向算出部１２Ｃが、検出したエッジ点ｐｉに対して勾配方向αｉを算出する（勾配算出工程Ｓ４）。
【００４７】
その後、直線検出部１２Ｄが、記憶部１２Ｇ内に、２次元配列領域Ｈ１及び２次元配列領域Ｈ２を確保し、直線検出部１２Ｄは、エッジ点ｐｉが式（８）及び式（１０）を満たす場合、２次元配列領域Ｈ１に投票し、エッジ点ｐｉが式（９）及び式（１０）を満たす場合、２次元配列領域Ｈ２に投票する。直線検出部１２Ｄは、２次元配列領域Ｈ１，Ｈ２それぞれの投票結果において、所定の得票数以上の得票数のメモリセルｓ１，ｓ２を決定することによって、入力画像Ｉにおける直線を検出する（直線検出工程Ｓ５）。
【００４８】
通常、一つのエッジ点ｐｉを通る直線群を投票することでハフ空間Ｈ上に一つのハフ曲線が描かれる。複数のハフ曲線の交点は、交点を通過する複数のハフ曲線の数の投票が行われていることになるので、その交点に対応するメモリセルｓ１，ｓ２が得票数の多いメモリセルｓ１，ｓ２として選択され得る。２点が決まれば理論的には一意に直線が決定されることから、理論的には、２つの得票数以上のメモリセルｓ１，ｓ２は一つの直線を決定することになるが、計算誤差などを考慮して上記「所定の得票数」を設定すればよい。
【００４９】
そして、画像出力部１２Ｅが、直線検出部１２Ｄで検出された直線を入力画像Ｉに重畳した画像を表示装置又はネットワークなどに出力する（画像出力工程Ｓ６）。ここでは、特定された直線が入力画像（又は撮影画像）Ｉに重畳された画像を出力する場合を示したが、画像出力部１２Ｅは、エッジ点ｐｉを検出した画像などの処理過程の画像や、入力画像Ｉ自体を適宜出力してもよい。
【００５０】
上記直線検出装置１２では、ハフ変換の際に、エッジ点ｐｉの勾配方向を利用して、エッジ点ｐｉを通る直線群を、異なる２次元配列領域Ｈ１，Ｈ２に投票する。本実施形態では、２次元配列領域Ｈ１にはグループＧ１内のエッジ点ｐｉが投票され、２次元配列領域Ｈ２には、グループＧ２内のエッジ点ｐｉが投票される。グループＧ１，Ｇ２それぞれは、入力画像Ｉ中に含まれる複数の線状パターンそれぞれを構成する一対の直線の一方の直線上のエッジ点ｐｉのグループと、他方の直線上のエッジ点ｐｉのグループに対応する。従って、エッジ点ｐｉを通る直線を２次元配列領域Ｈ１，Ｈ２に分けて投票し、２次元配列領域Ｈ１，Ｈ２で直線を検出することによって、入力画像Ｉ中に含まれる複数の線状パターンそれぞれを構成する一対の直線のうちの一方の直線と、他方の直線とがそれぞれ別の２次元配列領域（ハフ空間）で検出される。その結果、線状パターンの幅が狭くても、線状パターンを構成する一対の直線を混在せずに、入力画像Ｉ中の直線をより確実に検出可能であると共に、高い精度で検出可能である。
【００５１】
以下、直線検出装置１２によって、入力画像Ｉ中の直線をより確実に検出可能な点を、実験結果に基づいて示す。
【００５２】
図９及び図１０は、従来のハフ変換に基づいて直線を検出した結果を示す図面である。すなわち、図９及び図１０は、入力画像Ｉ中の複数のエッジ点ｐｉを、式（８）及び式（９）を利用せずに（換言すれば、勾配方向に応じてグループ化せずに）、全てのエッジ点ｐｉをハフ変換した場合の結果を示す図面である。図９及び図１０中に示された実線が直線の検出結果を示している。
【００５３】
図１１及び図１２は、直線検出装置１２を利用して直線を検出した結果を示す。すなわち、図１１及び図１２は、入力画像Ｉ中のエッジ点ｐｉを式（８）及び式（９）を利用しながら（換言すれば、勾配方向に応じて２つのグループに分けて）、ハフ変換を実施して直線検出を行った結果を示している。図１１及び図１２中の実線は、直線の検出結果を示している。なお、図９及び図１０と、図１１及び図１２との比較から理解されるように、図９と図１１とは同じ入力画像Ｉに対する結果を示している。同様に、図１０と図１２とは同じ入力画像Ｉに対する結果を示している。
【００５４】
図９及び図１０と、それらの図に対応する図１１及び図１２における直線検出では、同じ数の直線を検出した。換言すれば、直線検出のための投票数の閾値を同じ値とした。
【００５５】
図９と図１１とを比較すると、図９では、路側帯と車道との境界線の検出において、不要な直線が検出される等（図９の領域５０参照）の不適切な検出が生じているのに対して、図１１では、対応する領域５３に示されているように、上記境界線がより正確に検出されている。図９において不要な直線が別途検出されていることによって、図９では、中央分離帯に基づく直線が検出されていないが、図１１では、図９において、検出されていない中央分離帯が図１１の領域５４で示されるように検出されている。すなわち、図１１では、入力画像Ｉ中の直線をより確実に検出できていると共に、より正確に検出できていることが理解される。
【００５６】
同様に、図１０の領域５１と、その領域５１に対応する図１２中の領域５５とを比較すると共に、図１０の領域５２と、その領域５２に対応する図１２中の領域５６とを比較すれば、エッジ点ｐｉをハフ変換する際に、式（８）及び式（９）を利用する方がより正確に直線を検出できていることが理解され得る。
【００５７】
以上、本発明の実施形態を説明したが、本発明は上記実施形態に限定されない。例えば、直線検出装置は、図１３に示すような構成とし得る。
【００５８】
図１３は、直線検出装置の構成の他の例を含む撮影システムを示す図面である。図１３に示した撮影システム６０が有する直線検出装置６１は、直線検出部１２Ｄの代わりに、直線検出部６２を備える点で、直線検出装置１２の構成と相違する。この相違点以外は直線検出装置６１及びそれを含む撮影システム６０の構成は、直線検出装置１２及び撮影システム１０の構成と同じである。そのため、同一の要素には同一の符号を用いることとし重複する説明は省略し、相違点を中心にして説明する。
【００５９】
直線検出部６２は、グループ化部６２ａ、投票部６２ｂ及び直線特定部６２ｃを備える。グループ化部６２ａは、入力画像Ｉ中の複数のエッジ点ｐｉを式（８）及び式（９）を利用してグループＧ１及びグループＧ２に分類する。投票部６２ｂは、グループ化部６２ａで予め分類されたグループＧ１，Ｇ２内のエッジ点ｐｉをそれぞれハフ変換し、グループＧ１内のエッジ点ｐｉを通る直線群を２次元配列領域（第１のハフ空間部）Ｈ１に投票し、グループＧ２内のエッジ点ｐｉを通る直線群を２次元配列領域（第２のハフ空間部）Ｈ２に投票する。直線特定部６２ｃは、投票部６２ｂによる２次元配列領域（第１のハフ空間部）Ｈ１への投票結果に基づいて直線を特定し、投票部６２ｂによる２次元配列領域（第２のハフ空間部）Ｈ２の投票結果に基づいて直線を特定することによって、入力画像Ｉ中の直線を検出する。
【００６０】
この直線検出装置６１では、図８に示した直線検出工程Ｓ５において、グループ化部６２ａがエッジ点ｐｉをグループＧ１，Ｇ２に分類する（グループ化工程）。次に、投票部６２ｂが、各グループＧ１，Ｇ２のエッジ点ｐｉをハフ変換し、２次元配列領域Ｈ１，Ｈ２に投票を行う（投票工程）。その後、直線特定部６２ｃが、２次元配列領域Ｈ１の投票結果に基づいて直線を特定し、２次元配列領域Ｈ２の投票結果に基づいて直線を特定することによって、入力画像Ｉ中の直線を検出する。
【００６１】
直線検出装置６１では、予めエッジ点ｐｉを式（８）及び式（９）を利用して２つのグループＧ１，Ｇ２に分けた後に、グループＧ１，Ｇ２内のエッジ点ｐｉをハフ変換し、グループＧ１，Ｇ２に応じてエッジ点ｐｉを通る直線群を異なる２次元配列領域Ｈ１，Ｈ２に投票している。このように、直線検出装置６１においても、式（８）及び式（９）を利用しているので、直線検出装置６１及びそれを利用した直線検出方法は、直線検出装置１２及びそれを利用した直線検出方法と同様の作用効果を有する。直線検出装置６１の例もコンピュータ装置であり、記憶部１２Ｇに格納された直線検出装置６１用の直線検出プログラムを実行することによって、図１３に示す画像入力部１２Ａと、エッジ点検出部１２Ｂと、勾配方向算出部１２Ｃと、直線検出部６２と、画像出力部１２Ｅの各機能が実現され得る。
【００６２】
これまでの説明では、式（８）及び式（９）を利用する形態について説明したが、式（８）及び式（９）のように余弦値に基づいて、エッジ点ｐｉを分類する場合に限定されない。エッジ点ｐｉは、エッジ点ｐｉの勾配方向と、エッジ点の極座標の角度との角度差であるαｉ−βｉが９０度以上の場合と、αｉ−βｉが９０度未満の場合に対して分類されればよい。ただし、コンピュータ装置を利用して、エッジ点ｐｉを分類する場合には、角度差の余弦値を利用する方が、処理がより容易である。
【００６３】
更に、これまでの説明では、エッジ点検出部（エッジ点検出工程）でエッジ点を検出した後、勾配方向取得部（勾配方向取得工程）としての勾配方向算出部（勾配取得工程）において、エッジ点の勾配を取得する形態について説明した。しかしながら、エッジ点は、通常、各画素の勾配ベクトルを算出し、勾配ベクトルの大きさが所定値以上の勾配ベクトルを有する画素として検出される。そのため、エッジ点検出部（エッジ点検出工程）と、勾配方向取得部（勾配方向取得工程）とを含めて勾配方向取得部（勾配方向取得工程）とし、勾配方向取得部（勾配方向取得工程）は、エッジ点の検出に利用した画素の勾配ベクトルを利用して、エッジ点の勾配ベクトルを取得してもよい。
【産業上の利用可能性】
【００６４】
本発明は、直線検出が必要とされる移動ロボット、監視カメラ、レスキュー道具及び自動車といった車両に搭載されるナビゲーション用又は外部確認用のカメラ等に適用可能である。
【符号の説明】
【００６５】
１０…撮影システム、１１…カメラ（画像取得手段）、１２…直線検出装置、１２Ｂ…エッジ点検出部、１２Ｃ…勾配方向算出部（勾配方向取得部）、１２Ｄ…直線検出部、１２Ｇ…記憶部、２０ａ，２０ｂ…直線、６０…撮影システム、６１…直線検出装置、６２…直線検出部、６２ａ…グループ化部、Ｈ１…２次元配列領域（第１のハフ空間部）、Ｈ２…２次元配列領域（第２のハフ空間部）、Ｉ…入力画像，撮影画像、ｐｉ…エッジ点、αｉ…勾配方向、βｉ…角度（２次元座標系の原点に対するエッジ点の方向と、第１の軸の方向との間の角度）。
【図１】
0005783569.tif 000012
【図２】
0005783569.tif 000013
【図３】
0005783569.tif 000014
【図４】
0005783569.tif 000015
【図５】
0005783569.tif 000016
【図６】
0005783569.tif 000017
【図７】
0005783569.tif 000018
【図８】
0005783569.tif 000019
【図１３】
0005783569.tif 000020
【図９】
0005783569.tif 000021
【図１０】
0005783569.tif 000022
【図１１】
0005783569.tif 000023
【図１２】
0005783569.tif 000024