説明

直線検出装置および直線検出方法

【課題】点の数だけなく、直線に関する他の特性も考慮した上で、ハフ変換を利用した直線検出を行うことを課題とする。
【解決手段】ハフ変換部14は、輪郭強調された2値画像データ104に対してハフ変換を実行する。ハフテーブル15には、ハフ変換後の集計値が格納される。直線算出部161は、集計値を補正する。たとえば、直線の原点からの距離に応じた重みづけにより集計値が補正される。あるいは、直線の傾きに応じた重みづけにより集計値が補正される。直線検出部16は、補正された集計値に基づき、直線を検出する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像に含まれる直線を検出する技術に関する。
【背景技術】
【0002】
画像に含まれる直線を検出する技術として、ハフ(Hough)変換が用いられている。XY座標系を持つ画像の任意の点を通る直線は、ハフ空間上の座標(θ、ρ)に変換される。ハフ空間の座標(θ、ρ)に変換される直線の数を2次元配列[θ][ρ]を用いて集計する。そして、2次元配列[θ][ρ]の中で所定の閾値を上回る集計値を有する座標(θ、ρ)から、XY座標系の直線を検出する。
【0003】
下記特許文献1においては、画像を局所領域に分割するために、ハフ変換を用いて画像中の線分を検出している。下記特許文献2においては、直線の長さに応じてハフ空間上のパラメータθ、ρのサンプリング間隔を最適化することを試みている。下記特許文献3においても画像の中に含まれる線分を検出するためにハフ変換が用いられている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開平10−283476号公報
【特許文献2】特開平11−66302号公報
【特許文献3】特開2006−107034号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
ハフ変換を利用した直線の検出方法は、XY座標系における直線上に存在する点の数に着目する。同一直線上に存在する点の数が多ければ多いほど、直線として検出される可能性が高くなる。つまり、直線として検出されるか否かは、直線上に存在する点の数にのみ依存する。
【0006】
しかし、画像を利用するユーザにとって、画像内に存在する直線の中には、重要度の高いものと低いものとがある。たとえ点の数が少なくても考慮すべき直線もあれば、点の数が比較的大きくても関心の低い直線もある。
【0007】
本発明は、点の数だけでなく、直線に関する他の特性も考慮した上で、直線を検出する技術を提供することを課題とする。
【課題を解決するための手段】
【0008】
請求項1記載の発明は、直線検出装置であって、対象画像の基準点から前記対象画像内の任意の直線に下した垂線の長さρおよび前記垂線が前記基準点を通る基準軸となす角θを用いて、前記対象画像内の任意の直線を表現することにより、前記対象画像内の任意の点を通る直線をハフ空間内の座標(θ、ρ)に変換するハフ変換部と、ハフ空間内の各座標(θ、ρ)について、前記ハフ変換部によって変換された回数を集計する集計部と、ρの値に応じた重みづけにより、各座標(θ、ρ)に関する集計値を補正する補正部と、補正された集計値が第1の閾値を超える座標(θ、ρ)を特定することにより、前記対象画像における直線を検出する検出部と、を備える。
【0009】
請求項2記載の発明は、請求項1に記載の直線検出装置において、前記補正部は、1または複数のρの値の近傍に対して集計値を高く評価する重みづけを行う。
【0010】
請求項3記載の発明は、直線検出装置であって、対象画像の基準点から前記対象画像内の任意の直線に下した垂線の長さρおよび前記垂線が前記基準点を通る基準軸となす角θを用いて、前記対象画像内の任意の直線を表現することにより、前記対象画像内の任意の点を通る直線をハフ空間内の座標(θ、ρ)に変換するハフ変換部と、ハフ空間内の各座標(θ、ρ)について、前記ハフ変換部によって変換された回数を集計する集計部と、θの値に応じた重みづけにより、各座標(θ、ρ)に関する集計値を補正する補正部と、補正された集計値が第1の閾値を超える座標(θ、ρ)を特定することにより、前記対象画像における直線を検出する検出部と、を備える。
【0011】
請求項4記載の発明は、請求項1に記載の直線検出装置において、前記補正部は、1または複数のθの値の近傍に対して集計値を高く評価する重みづけを行う。
【0012】
請求項5記載の発明は、直線検出装置であって、対象画像の基準点から前記対象画像内の任意の直線に下した垂線の長さρおよび前記垂線が前記基準点を通る基準軸となす角θを用いて、前記対象画像内の任意の直線を表現することにより、前記対象画像内の任意の点を通る直線をハフ空間内の座標(θ、ρ)に変換するハフ変換部と、ハフ空間内の各座標(θ、ρ)について、前記ハフ変換部によって変換された回数を集計する集計部と、ρおよびθの値に応じた重みづけにより、各座標(θ、ρ)に関する集計値を補正する補正部と、補正された集計値が第1の閾値を超える座標(θ、ρ)を特定することにより、前記対象画像における直線を検出する検出部と、を備える。
【0013】
請求項6記載の発明は、請求項1ないし請求項5のいずれかに記載の直線検出装置であって、さらに、ハフ空間内の任意の座標(θ、ρ)に対応する前記対象画像内の直線が、前記対象画像の外周と交わる交点を求めるとともに、交点間の距離を算出する交点間距離算出部と、前記補正部によって補正された集計値を、さらに交点間距離で正規化し、正規化集計値を算出する正規化部と、を備え、前記検出部は、正規化集計値が第2の閾値を超える座標(θ、ρ)を特定することにより、前記対象画像における直線を検出する検出部と、を備える。
【0014】
請求項7記載の発明は、請求項1ないし請求項5のいずれかに記載の直線検出装置であって、さらに、ハフ変換される前の対象画像に対して、アスペクト比を1:1に変換するアスペクト比変換処理を実行することにより、正方画像を生成するアスペクト比変換部、を備える。
【0015】
請求項8記載の発明は、請求項1ないし請求項7のいずれかに記載の直線検出装置であって、さらに、前記ハフ変換が行われる前に前記対象画像を2値変換する2値変換部、を備え、前記対象画像内のある点がハフ空間内の座標(θ、ρ)に変換されたとき、集計値に1が加算される。
【0016】
請求項9記載の発明は、請求項1ないし請求項7のいずれかに記載の直線検出装置であって、前記対象画像内のそれぞれの点がハフ空間内の座標(θ、ρ)に変換されたとき、前記対象画像内のそれぞれの点の特徴量の大きさによって重みづけされた値が集計値に加算される。
【0017】
請求項10記載の発明は、請求項9に記載の直線検出装置であって、前記特徴量の大きさは線分強度を含む。
【0018】
請求項11記載の発明は、請求項6に記載の直線検出装置であって、前記検出部は、前記交点間距離が第3の閾値以下となる直線については、正規化集計値の値によらず直線の検出対象から除外する。
【0019】
請求項12記載の発明は、請求項6に記載の直線検出装置であって、前記交点間距離算出部は、ハフ空間内の座標(θ、ρ)に対応する前記対象画像内の直線の前記交点間距離を算出するとき、ρ=0と置き換えた上で前記交点間距離を算出する簡易算出部、を含む。
【0020】
請求項13記載の発明は、請求項1ないし請求項12のいずれかに記載の直線検出装置であって、前記基準点は、前記対象画像内の任意の座標に設定される。
【0021】
請求項14記載の発明は、請求項1ないし請求項13のいずれかに記載の直線検出装置であって、さらに、前記対象画像がカラー画像である場合、ハフ変換が行われる前にカラー画像から輝度画像を生成する輝度画像生成部、を含む。
【0022】
請求項15記載の発明は、請求項8に記載の直線検出装置であって、前記対象画像に特徴量抽出処理が施された後、前記2値変換が行われる。
【0023】
請求項16記載の発明は、請求項15に記載の直線検出装置であって、前記特徴量抽出処理は輪郭抽出処理を含む。
【0024】
請求項17記載の発明は、直線検出方法であって、対象画像の基準点から前記対象画像内の任意の直線に下した垂線の長さρおよび前記垂線が前記基準点を通る基準軸となす角θを用いて、前記対象画像内の任意の直線を表現することにより、前記対象画像内の任意の点を通る直線をハフ空間内の座標(θ、ρ)に変換するハフ変換工程と、ハフ空間内の各座標(θ、ρ)について、前記ハフ変換部によって変換された回数を集計する集計工程と、ρの値に応じた重みづけにより、各座標(θ、ρ)に関する集計値を補正する補正工程と、補正された集計値が第1の閾値を超える座標(θ、ρ)を特定することにより、前記対象画像における直線を検出する検出工程と、を備える。
【0025】
請求項18記載の発明は、直線検出方法であって、対象画像の基準点から前記対象画像内の任意の直線に下した垂線の長さρおよび前記垂線が前記基準点を通る基準軸となす角θを用いて、前記対象画像内の任意の直線を表現することにより、前記対象画像内の任意の点を通る直線をハフ空間内の座標(θ、ρ)に変換するハフ変換工程と、ハフ空間内の各座標(θ、ρ)について、前記ハフ変換部によって変換された回数を集計する集計工程と、θの値に応じた重みづけにより、各座標(θ、ρ)に関する集計値を補正する補正工程と、補正された集計値が第1の閾値を超える座標(θ、ρ)を特定することにより、前記対象画像における直線を検出する検出工程と、を備える。
【0026】
請求項19記載の発明は、直線検出方法であって、対象画像の基準点から前記対象画像内の任意の直線に下した垂線の長さρおよび前記垂線が前記基準点を通る基準軸となす角θを用いて、前記対象画像内の任意の直線を表現することにより、前記対象画像内の任意の点を通る直線をハフ空間内の座標(θ、ρ)に変換するハフ変換工程と、ハフ空間内の各座標(θ、ρ)について、前記ハフ変換部によって変換された回数を集計する集計工程と、ρおよびθの値に応じた重みづけにより、各座標(θ、ρ)に関する集計値を補正する補正工程と、補正された集計値が第1の閾値を超える座標(θ、ρ)を特定することにより、前記対象画像における直線を検出する検出工程と、を備える。
【発明の効果】
【0027】
本発明の直線検出装置を用いることにより、直線の原点からの距離に応じた重みづけを行った上で、直線を検出することができる。あるいは、本発明の直線検出装置を用いることにより、直線の傾きに応じた重みづけを行った上で、直線を検出することができる。
【図面の簡単な説明】
【0028】
【図1】第1の実施の形態に係る直線検出装置のブロック図である。
【図2】2値画像データにおける直線の表現方法を示す図である。
【図3】ハフ空間を示す図である。
【図4】距離ρに応じて集計値を補正するための重みづけ関数f(x)を示す図である。
【図5】角度θに応じて集計値を補正するための重みづけ関数g(x)を示す図である。
【図6】第4の実施の形態に係る直線検出装置のブロック図である。
【図7】2値画像データを切り取る直線を示す図である。
【図8】第8の実施の形態に係る直線検出装置のブロック図である。
【発明を実施するための形態】
【0029】
{第1の実施の形態}
<1−1.処理の全体の流れ>
図1は、第1の実施の形態に係る直線検出装置1のブロック図である。直線検出装置1は、輝度画像生成部11、輪郭抽出処理部12、2値変換部13、ハフ(Hough)変換部14、ハフテーブル15および直線検出部16を備えている。
【0030】
本実施の形態においては、輝度画像生成部11、輪郭抽出処理部12、2値変換部13、ハフ変換部14および直線検出部16は、ハードウェア回路により構成されている。しかし、これら機能部をCPUおよびCPU上で動作するソフトウェアにより構成してもよい。
【0031】
輝度画像生成部11は、カラー画像データ101を入力する。カラー画像データ101は、たとえば、図示せぬ撮像素子により取得された画像である。カラー画像データ101は、たとえば、YCbCr色空間やRGB色空間の画像データである。輝度画像生成部11は、カラー画像データ101から、輝度画像データ102を生成する。たとえば、カラー画像データ101がYCbCr色空間の画像データであれば、輝度画像生成部11は、Y信号を抽出することにより輝度画像データ102を生成する。
【0032】
輪郭抽出処理部12は、輝度画像データ102を入力する。輪郭抽出処理部12は、輝度画像データ102から輪郭画像データ103を生成する。本実施の形態においては、輪郭抽出処理部12は、ソーベル(Sobel)フィルタを利用して、輪郭抽出処理を行っている。ソーベルフィルタは、空間1次微分演算により、輪郭を検出するフィルタである。輪郭抽出処理部12は、フィルタの出力の絶対値を線分の強度として出力する。用いるフィルタは特に限定されるものではない。たとえば、ラプラシアンフィルタを用いてもよい。
【0033】
2値変換部13は、輪郭画像データ103を入力する。2値変換部13は、輪郭画像データ103から2値画像データ104を生成する。輪郭画像データ103は、グレースケールの画像データである。2値変換部13は、予め設定された閾値に基づいて、輪郭画像データ103の各画素の画素値を0あるいは1に変換する。
【0034】
ハフ変換部14は、2値画像データ104を入力する。ハフ変換部14は、2値画像データ104をハフ変換し、変換後の結果をハフテーブル15に書き込む。具体的には、ハフ変換部14は、変換後の結果を2次元配列[θ][ρ]に格納する。ハフ変換の処理の内容は後で詳しく説明する。
【0035】
直線検出部16は、補正部161を備えている。直線検出部16は、ハフテーブル15を参照することで、2値画像データ104に含まれる直線を検出する。補正部161を含め、直線検出部16の処理の内容は後で詳しく説明する。
【0036】
<1−2.ハフ変換>
ハフ変換部14の処理内容について詳しく説明する。ハフ変換部14は、2値画像データ104に含まれる任意の点について、各点を通る直線をハフ空間上の座標(θ、ρ)に変換する。
【0037】
図2は、2値画像データ104を示す図である。2値画像データ104には、図2に示すように、原点OとXY座標が定義されている。図2には、2値画像データ104に含まれる点のうち一部の点51〜55を図示している。ここで、2値画像データ104に含まれる点とは、2値変換により画素値1が与えられている点のことである。点51を通る直線61は、θおよびρを用いて数1式のように表すことができる。
【0038】
【数1】

【0039】
数1式において、ρは、原点から直線61に下した垂線62の長さである。θは、垂線62がX軸の正の方向となす角である。
【0040】
点51を通る直線は、多数存在する。点51を通る直線の数は、θおよびρのサンプリング間隔に基づいて決まる。したがって、2値画像データ104上の1つの点に対して、複数のハフ空間上の座標(θ、ρ)が対応付けられる。
【0041】
図2に示すように、点51〜点53は、同一直線上に並んでいる。点52および点53を通る直線についても、それぞれ複数のハフ空間上の座標(θ、ρ)に変換される。そして、点51〜点53の全ての点について、直線61がハフ変換されて、同一の座標(θ、ρ)に対応付けられる。
【0042】
図3は、ハフ空間を示す図である。正弦曲線71〜75は、それぞれ、点51〜点55がハフ変換されることにより得られるハフ空間上の点の集合を示している。そして、正弦曲線71〜73の交わる座標(θ1、ρ1)が直線61に対応している。
【0043】
このように、2値画像データ104において同一の直線上に複数の点が存在する場合、2値画像上の複数の点がハフ空間上の同一の点に変換されることになる。ハフ空間上で各座標(θ、ρ)に変換される点を集計することで、直線を検出することができる。ハフテーブル15は、2次元配列T[θ][ρ]を有している。つまり、2値画像データ104の全ての点についてハフ変換を行い、その結果が2次元配列T[θ][ρ]において集計される。
【0044】
<1−3.直線検出処理>
直線検出部16は、ハフテーブル15を参照し、2値画像データ104に含まれる直線を検出する。直線検出部16は、ハフ変換部14による変換結果をそのまま用いて直線を検出するのではなく、ハフテーブル15の内容を補正した上で直線の検出を行う。補正処理は補正部161により行われる。
【0045】
補正部161の処理内容を説明する。補正部161は、関数f(x)を利用して2次元配列T[θ][ρ]の集計値を補正する。関数f(x)は、2次元配列T[θ][ρ]の集計値に距離ρに応じた重みづけを行う関数である。関数f(x)は、ρを入力値とし、補正係数f(ρ)を出力する。補正係数f(ρ)は、集計値に乗算される係数である。
【0046】
関数f(x)の値が大きいとき、集計値の値は高く評価される。たとえば、比較的集計値が小さい場合であっても直線として検出される可能性を高める補正が行われる。関数f(x)の値が小さいとき、集計値の値は低く評価される。
【0047】
図4は、本実施の形態に係る関数f(x)を示す図である。関数f(x)は、図に示すように、x=0で最大値cをとるとともに、x=0の近傍の値が大きくなっている。また、関数f(x)は、xの値が0から遠ざかるにつれて値が小さくなり、x=aおよびx=−aで最小値bをとる。
【0048】
数2式は、関数f(x)を示す。関数f(x)はxの4次関数であり、上記のように、x=0で最大値cをとるとともに、x=aおよびx=−aで最小値bをとる関数である。
【0049】
【数2】

【0050】
数2式において、a、b、cは関数f(x)の特性を決める定数である。a、b、cの値を変更することで補正部161の補正特性を自由に変更することができる。たとえば、a、b、cとして数3式に示すような値が設定される。
【0051】
【数3】

【0052】
数3式において、wは、2値画像104の横方向の長さであり、hは、2値画像104の縦方向の長さである(図2参照)。つまり、aは、2値画像104において、原点Oから画像の4隅までの長さを示している。数3式で示されるようにaが設定されることにより、2値画像104の4隅において、もっとも関数f(x)の値が小さくなる。つまり、原点Oからの距離が、対象画像(2値画像)の対角線の半分の値である直線に対して重みづけが最も小さくなるように設定される。そして、原点Oからの距離が近づくにつれて直線に対する重みづけが大きくなる。b=0.5およびc=1.0と設定されることにより、重みづけの差は2倍となる。
【0053】
補正部161は、数4式に示すように、各座標(θ、ρ)の集計値に補正係数f(ρ)を乗算し、補正された集計値Tc[θ][ρ]を得る。
【0054】
【数4】

【0055】
このように、本実施の形態においては、直線の原点からの距離に応じて集計値に重みづけを行う補正を実行する。たとえば、図4および数2式に示した例であれば、原点Oまでの距離が短い直線が高く評価されるよう補正される。これにより、画像の中央付近を通過する直線に重点を置いて、直線を検出することができる。
【0056】
数2式で示した関数f(x)は、原点からの距離が近いほど、直線が検出され易くなる。これは、関数f(x)のピークがx=0に存在するからである。したがって、ピークの位置をx軸方向にずらすことで、原点からの距離が特定の距離となる直線を重点的に検出することが可能である。また、数2式で示した関数f(x)は、集計値に乗算する補正係数を算出する関数であるが、集計値に加算する補正係数を算出する関数を利用してもよい。
【0057】
直線検出部16は、補正部161により補正されたハフテーブル15を参照し、直線検出を行う。直線検出部16には、予め直線判定用の閾値(第1の閾値)が設定されている。直線検出部16は、2次元配列[θ][ρ]に第1の閾値を超える集計値が格納されている座標(θ、ρ)を特定する。直線検出部16は、特定された座標(θ、ρ)から2値画像データ104に含まれる直線を特定する。直線検出部16は、検出情報を出力する。
【0058】
{第2の実施の形態}
次に、本発明の第2の実施の形態について説明する。第2の実施の形態における直線検出装置1の構成は、図1に示した第1の実施の形態と同様である。第1の実施の形態においては、補正部161は、直線の原点からの距離ρに基づいて、集計値を補正した。第2の実施の形態においては、補正部161は、原点から直線に下した垂線82がx軸の正の方向となす各θ(図2参照)に基づいて、集計値を補正する。第1の実施の形態においては、補正部161は、図4に示した関数f(x)を利用して、集計値を補正した。第2の実施の形態においては、補正部161は、図5に示す関数g(x)を利用して、集計値を補正する。関数g(x)は、θを入力値とし、補正係数g(θ)を出力する。補正係数g(θ)は、集計値に乗算される係数である。
【0059】
図5に示すように、関数g(x)は、x=dおよびx=π−dにおいて、最大値kをとるとともに、x=dおよびx=π−dの近傍の値が大きくなっている。また、関数g(x)は、xの値がdおよびπ−dから遠ざかるにつれて値が小さくなり、ピーク位置よりx座標がsだけ離れたところでは最小値eをとる。
【0060】
数5式は、関数g(x)を示す。関数g(x)は、0からπまでの定義域で定義されており、g(x)=bとxに関する4次関数とを組み合わせた関数となっている。g(x−π)=g(x)という性質を持たせることにより、θがπより大きい領域においても、同じような特性の重みづけ関数を定義することができる。もちろん、θがπより大きい領域において、全く異なる別の関数を適用させてもよい。
【0061】
【数5】

【0062】
数5式中、d、s、e、kは、関数g(x)の特性を決める定数である。d、s、e、kの値を変更することで補正部161の補正特性を自由に変更することができる。たとえば、d、s、e、kとして数6式に示すような値が設定される。
【0063】
【数6】

【0064】
数6式で示されるようにd=π/6と設定されることにより、x軸の正の方向となす角がπ/6あるいは5π/6の直線と直交する直線に最大の重点をおいて検出が行われる。そして、s=π/12と設定されることにより、ピーク位置から垂線62の傾きが±π/12変化する範囲においては、集計値が高く評価される。ピーク位置から垂線62の傾きが±π/12以上変化した領域では、集計値の評価は最低となる。e=0.5およびk=1.0と設定されることにより、重みづけの差は2倍となる。
【0065】
補正部161は、数7式に示すように、各座標(θ、ρ)の集計値に補正係数g(θ)を乗算し、補正された集計値Tc[θ][ρ]を得る。
【0066】
【数7】

【0067】
このように、本実施の形態においては、直線の傾きに応じた重みづけにより、集計値を補正する。たとえば、図5および数5式に示した例であれば、2種類の角度を有する直線が高く評価されるよう補正される。dの値を自由に変更し、ピークの位置をx軸方向にずらすことで、検出したい直線の角度を自由に設定することができる。
【0068】
もちろん、図5および数5式で示した関数g(x)は一例である。関数g(x)は直線を検出する目的に応じて自由に設定することができる。
【0069】
直線検出部16は、補正部161により補正されたハフテーブル15を参照し、直線検出を行う。直線検出部16には、予め直線判定用の閾値(第1の閾値)が設定されている。直線検出部16は、2次元配列[θ][ρ]に第1の閾値を超える集計値が格納されている座標(θ、ρ)を特定する。直線検出部16は、特定された座標(θ、ρ)から2値画像データ104に含まれる直線を特定する。直線検出部16は、検出情報を出力する。
【0070】
{第3の実施の形態}
次に、本発明の第3の実施の形態について説明する。第3の実施の形態における直線検出装置1の構成は、図1に示した第1の実施の形態と同様である。第1の実施の形態においては、補正部161は、直線の原点からの距離ρに基づいて、集計値を補正した。第2の実施の形態においては、補正部161は、原点から直線に下した垂線62がx軸の正の方向となす各θに基づいて、集計値を補正した。第3の実施の形態は、第1の実施の形態と第2の実施の形態とを合わせた実施の形態である。
【0071】
数8式は、第3の実施の形態における集計値の補正計算方法を示す図である。つまり、補正部161は、2次元配列[θ][ρ]の集計値に、f(ρ)およびg(θ)の両方の補正係数を乗算する。これにより、原点からの距離と、直線の傾きの両方について重みづけを行って直線を検出することができる。たとえば、特定の傾きを持つとともに、原点から特定の距離を有する直線を重点的に検出することができる。
【0072】
【数8】

【0073】
{変形例1}
第1の実施の形態では、距離ρについてピークを1箇所に持つ関数f(x)を利用して補正を行った。距離ρについて関数g(x)のように、ピークを2箇所有する関数を利用して補正を行ってもよい。あるいは、距離ρに関して3以上のピークを有する重みづけ関数を利用してもよい。
【0074】
第2の実施の形態では、角θについてピークを2箇所に持つ関数g(x)を利用して補正を行った。角θについて関数f(x)のように、ピークを1箇所有する関数を利用して補正を行ってもよい。あるいは、角θに関して3以上のピークを有する重みづけ関数を利用してもよい。
【0075】
{第4の実施の形態}
次に、本発明の第4の実施の形態について説明する。図6は、第4の実施の形態に係る直線検出装置1Aの機能ブロック図である。直線検出装置1Aの構成は、図1に示した第1の実施の形態の直線検出装置1と比べて直線検出部16の構成が異なる。
【0076】
第4の実施の形態の直線検出部16は、補正部161に加えて、交点間距離算出部162および正規化部163を備えている。直線検出装置1Aが備えるその他の構成、機能は、第1の実施の形態と同様である。つまり、輝度画像生成部11、輪郭抽出処理部12、2値変換部13、ハフ(Hough)変換部14およびハフテーブル15の機能は、第1の実施の形態と同様である。
【0077】
直線検出部16は、補正部161、交点間距離算出部162および正規化部163を備えている。直線検出部16は、ハフテーブル15を参照することで、2値画像データ104に含まれる直線を検出する。直線検出部16は、ハフ変換部14による変換結果をそのまま用いて直線を検出するのではなく、ハフテーブル15の内容を補正した上で直線の検出を行う。補正処理は第1の実施の形態と同様、補正部161によって行われるが、本実施の形態においては、補正部161による補正処理に加えて、交点間距離算出部162および正規化部163により行われる。
【0078】
交点間距離算出部162の処理内容を説明する。図7は、2値画像データ104に含まれる直線81を示している。原点Oから直線81に下ろした垂線82の長さはρである。垂線82がX軸の正の方向と成す角はθである。
【0079】
図7において、2値画像データ104は、横方向(X軸方向)の長さが2wであり、縦方向(Y軸方向)の長さが2hの長方形の画像データである。2値画像データ104の中心に原点Oが設定されている。
【0080】
直線81は、点P0(x0、y0)および点P1(x1、y1)において、2値画像データ104の外周辺と交差する。言い換えると、直線81が2値画像データ104を切り取るとき、直線81と2値画像データ104の外周との2つの交点が、点P0(x0、y0)および点P1(x1、y1)である。交点間距離算出部161は、2つの交点間の距離、すなわち、点P0(x0、y0)および点P1(x1、y1)間の距離(交点間距離Len)を算出する。
【0081】
本実施の形態における距離算出方法を具体的に説明する。まず、点P0の座標(x0、y0)および点P1の座標(x1、y1)の決定方法について説明する。本実施の形態においては、直線81と直線y=hとの交点から点P0のX座標x0を求め、直線81と直線y=−hとの交点から点P1のX座標x1を求める。また、直線81と直線x=wとの交点から点P0のY座標y0を求め、直線81と直線x=−wとの交点から点P1のY座標y1を求める。
【0082】
まず、直線81がX軸あるいはY軸に平行となる場合を考える。この場合は、上記のような方法で点P0および点P1の座標を求めることなく、以下の方法により交点間距離Lenを求める。
【0083】
cosθ=0のとき、つまり、直線81がX軸と並行な直線である場合、交点間距離Lenは、数9式のように表わされる。
【0084】
【数9】

【0085】
sinθ=0のとき、つまり、直線81がY軸と並行な直線である場合、交点間距離Lenは、数10式のように表わされる。
【0086】
【数10】

【0087】
次に、直線81と直線y=hの交点である点P0のX座標x0を求める。x0は、数11式で表される。
【0088】
【数11】

【0089】
次に、直線81と直線y=―hの交点である点P1のX座標x1を求める。x1は、数12式で表される。
【0090】
【数12】

【0091】
次に、直線81と直線x=wの交点である点P0のY座標y0を求める。y0は、数13式で表される。
【0092】
【数13】

【0093】
次に、直線81と直線x=−wの交点である点P1のY座標y1を求める。y1は、数14式で表される。
【0094】
【数14】

【0095】
そして、x0が−wより小さい場合には、数15式に示すように、x0を−wに設定する。つまり、2値画像のフレーム端よりも交点がはみ出している場合には、フレーム端を交点のX座標とする。2値画像のフレーム端から交点のX座標がはみ出す場合は、数15式に示すように、全てのケースにおいて、X座標をフレーム端に設定する。つまり、x0がwより大きい場合には、x0をwに設定する。x1が−wより小さい場合には、x1を−wに設定する。x1がwより大きい場合には、x1をwに設定する。
【0096】
【数15】

【0097】
2値画像のフレーム端から交点のY座標がはみ出す場合は、数16式に示すように、全てのケースにおいて、Y座標をフレーム端に設定する。つまり、y0が−hより小さい場合には、y0を−hに設定する。y0がhより大きい場合には、y0をhに設定する。y1が−hより小さい場合には、y1を−hに設定する。y1がhより大きい場合には、y1をhに設定する。
【0098】
【数16】

【0099】
以上のようにして、点P0(x0、y0)および点P1(x1、y1)の座標が決定されると、交点間距離算出部162は、数17式で示される演算を行い、交点間距離Lenを求める。
【0100】
【数17】

【0101】
数17式中、x0、x1、y0、y1は、数15式あるいは数16式に当てはまらない場合には、数11式〜数14式で算出された値であり、数15式あるいは数16式に当てはまる場合は、数15式あるいは数16式で設定された値である。
【0102】
以上のような計算方法により、交点間距離算出部162は、ハフテーブル15を参照し、直線候補となっている全ての座標(θ、ρ)について交点間距離Lenを算出する。つまり、2次元配列[θ][ρ]に1以上の集計値が格納されている各座標(θ、ρ)について交点間距離Lenを算出する。あるいは、集計値がゼロである配列も含め、全ての2次元配列[θ][ρ]について交点間距離Lenを算出してもよい。たとえば、あらかじめ全ての組み合わせ(θ、ρ)に対して交点間距離Lenを算出しておき、Len[θ][ρ]をルックアップテーブルとして保持するようにしてもよい。
【0103】
正規化部163は、各座標(θ、ρ)の集計値を、各座標(θ、ρ)について算出された交点間距離Lenで除算することで、集計値を正規化する。正規化部163は、2次元配列[θ][ρ]に1以上の集計値が格納されている各座標(θ、ρ)について、それぞれ集計値を交点間距離Lenで除算する。あるいは、上述したように全ての2次元配列[θ][ρ]について交点間距離Lenを算出し、全ての集計値を対応する交点間距離Lenで正規化する。言い換えると、正規化部163は、2値画像上の直線の集計値を単位長さ当たりの数値に補正する。
【0104】
直線検出部16は、第1の実施の形態において説明した補正部161による補正処理と、上述した正規化部163による補正処理の両方を実行する。これにより、2次元配列[θ][ρ]の集計値は、数18式に示すように補正される。
【0105】
【数18】

【0106】
数18式に示した補正式は、第1の実施の形態に係る補正部161の補正処理と正規化部163による補正処理とを合成した補正処理である。つまり、原点から特定の距離にある直線を重点的に検知するという特性を有するとともに、集計値を交点間距離Lenで正規化することにより、単位長さあたりの集計値を評価している。
【0107】
直線検出部16は、補正部161および正規化部163により補正されたハフテーブル15を参照し、直線検出を行う。直線検出部16には、予め直線判定用の閾値(第2の閾値)が設定されている。直線検出部16は、2次元配列[θ][ρ]に第2の閾値を超える集計値が格納されている座標(θ、ρ)を特定する。直線検出部16は、特定された座標(θ、ρ)から2値画像データ104に含まれる直線を特定する。直線検出部16は、検出情報を出力する。
【0108】
このように本実施の形態の直線検出装置1Aは、ハフテーブル15を正規化により補正した上で直線を検出する。正規化は、2次元配列[θ][ρ]の集計値を交点間距離Lenで除算することにより行われる。交点間距離Lenは、図7で示した例であれば、横方向の直線については長く、縦方向の直線については、短くなる。したがって、2次元配列[θ][ρ]に格納された集計値は、横方向の直線については、縦方向の直線より大きな値で除算されることになる。
【0109】
これによって、2値画像データ104において、横方向の直線が検出され易く、縦方向の直線が検出され難いという問題は発生しない。あるいは、画像の4隅に存在するような直線も検出し難いという問題は発生しない。画像のアスペクト比が1:1でない場合であっても、画像内のあらゆる方向あるいは位置の直線を同じ基準で検出することができる。さらには、関数f(x)による補正が行われているので、原点から特定の距離にある直線に重点をおいて直線を検出することができる。
【0110】
{第5の実施の形態}
次に、本発明の第5の実施の形態を説明する。上述した第4の実施の形態は、第1の実施の形態における補正処理と正規化部163による補正処理とを合成したものであった。第5の実施の形態は、第2の実施の形態における補正処理と正規化部163による補正処理とを合成する。
【0111】
数19式は、第5の実施の形態に係る補正式を示す。
【0112】
【数19】

【0113】
このように、2次元配列[θ][ρ]の集計値は、交点間距離Lenで除算されることにより正規化されるとともに、関数g(x)により補正される。つまり、第5の実施の形態においては、交点間距離Lenによって集計値を正規化するとともに、特定の傾きに重点を置いて直線を検出することができる。
【0114】
{第6の実施の形態}
次に、本発明の第6の実施の形態を説明する。第6の実施の形態は、第1の実施の形態における補正処理、第2の実施の形態における補正処理、および、正規化部163による補正処理を合成する。
【0115】
数20式は、第6の実施の形態に係る補正式を示す。
【0116】
【数20】

【0117】
このように、2次元配列[θ][ρ]の集計値は、交点間距離Lenで除算されることにより正規化されるとともに、関数f(x)および関数g(x)により補正される。つまり、第6の実施の形態においては、交点間距離Lenによって集計値を正規化するとともに、原点からの距離および特定の傾きに重点を置いて直線を検出することができる。
【0118】
{第7の実施の形態}
次に、本発明の第7の実施の形態について説明する。第7の実施の形態における直線検出装置1Aの機能ブロックは、図6に示したものと同様である。ただし、第7の実施の形態においては、直線検出部16における処理が第4〜第6の実施の形態とは異なる。
【0119】
第4〜第6の実施の形態においては、ハフ空間において各座標(θ、ρ)の集計値を交点間距離Lenで除算し、正規化した。つまり、全ての直線候補について正規化集計値を算出し、第1の閾値との比較をした。
【0120】
第7の実施の形態においては、交点間距離Lenが、所定の閾値(第3の閾値)を下回る直線については、直線の検出対象から除外することにしている。たとえば、2値画像データ104の4隅に存在し、交点間距離Lenの短い直線が検出対象から除外される。これにより、直線上に並ぶ点の密度がそれぞれ大きくないが、交点間距離Lenが非常に小さいために正規化集計値が増大し、直線として誤認識されることを防止することができる。あるいは、画像の4隅において距離の非常に短い多数の直線が検出されるという問題を防止することができる。
【0121】
たとえば、画像上の4隅の情報がそれほど重要視されない場合には、第2の閾値を比較的大きめに調整することで、画像中央付近にスポットを当てて直線を検出することが可能である。
【0122】
{第8の実施の形態}
次に、本発明の第8の実施の形態について説明する。第8の実施の形態における直線検出装置1Aの機能ブロックは、図6に示したものと同様である。ただし、第8の実施の形態においては、直線検出部16における処理が第4〜第6の実施の形態とは異なる。
【0123】
第4〜第6の実施の形態においては、数11式〜数14式に示した方法により、点P0およびP1の座標を求めて交点間距離Lenを算出した。第8の実施の形態においては、直線と原点Oとの距離を0として交点間距離Lenを算出する。
【0124】
つまり、交点間距離算出部162は、座標(θ、ρ)に対応する2値画像内の直線の交点間距離Lenを算出するとき、ρ=0と置き換えた上で交点間距離Lenを算出する。
【0125】
このようにして交点間距離Lenを算出することで、交点間距離算出部162の演算量を少なくし、処理速度を向上させることができる。具体的には、数11式〜数14式において、ρ=0と置き換えることができるので、演算式が簡素化される。
【0126】
{第9の実施の形態}
次に、本発明の第9の実施の形態について説明する。図8は、第9の実施の形態に係る直線検出装置1Bのブロック図である。
【0127】
第9の実施の形態の直線検出装置1Bは、第4の実施の形態の直線検出装置1Aと同様、輝度画像生成部11、輪郭抽出処理部12、2値変換部13、ハフ変換部14およびハフテーブル15を備える。これらの各機能部の機能は第4〜第6の実施の形態と同様である。
【0128】
第9の実施の形態における直線検出部16は、第4〜第6の実施の形態と異なり、交点間距離算出部162および正規化部163を備えていない。第9の実施の形態においては、直線検出部16は、ハフテーブル15の正規化を行うことなく、直線を検出する。
【0129】
直線検出装置1Bは、アスペクト比変換部17を備えている。アスペクト比変換部17は、カラー画像101を入力し、カラー画像をアスペクト比が1:1のカラーの正方画像に変換する。アスペクト比を変換するとき、画像の伸長あるいは縮小を行う必要がある。伸長を行う方法は特に限定されないが、たとえば、線形補間などを利用して画像を伸長する。縮小を行う場合には、たとえば画像の間引きを行えばよい。アスペクト比が変換された場合であっても、直線は直線に変換される。
【0130】
輝度画像生成部11、輪郭抽出処理部12、2値変換部13およびハフ変換部14は、第4〜第6の実施の形態と同様の処理を実行する。ただし、アスペクト比が1:1に変換された正方画像を対象として処理を実行する。
【0131】
ハフテーブル15は、ハフ変換部14において変換された座標(θ、ρ)を2次元配列[θ][ρ]を用いて集計する。集計値は、補正部161によって補正される。具体的には、第4〜第6の実施の形態と同様、重みづけ用の関数f(x)、g(x)等を用いて集計値を補正する。
【0132】
直線検出部16には、予め直線判定用の閾値(第1の閾値)が設定されている。直線検出部16は、2次元配列[θ][ρ]に第1の閾値を超える集計値が格納されている座標(θ、ρ)を特定する。直線検出部16は、特定された座標(θ、ρ)から2値画像データ104に含まれる直線を特定する。直線検出部16は、検出情報を出力する。なお、第1の閾値は、第4〜第6の実施の形態と異なる値を設定することができる。
【0133】
このように、本実施の形態の直線検出装置1Bは、アスペクト比を1:1に変換した後にハフ変換を行う。したがって、画像内の方向によって直線検出の可能性が異なるという問題を解消することができる。
【0134】
本実施の形態においては、輝度画像を生成する前にアスペクト比を変換した。しかし、アスペクト比の変換処理は、ハフ変換を行う前のどのタイミングであってもよい。たとえば、輝度画像生成処理の後、輪郭抽出処理の後、あるいは、2値変換処理の後にアスペクト比の変換を行ってもよい。なお、正方画像上で検出された直線は、アスペクト比を元に戻す演算を行うことにより、カラー画像101内に含まれる直線に変換される。
【0135】
{第10の実施の形態}
上記各実施の形態においては、ハフ変換を行う前に画像を2値化した。第10の実施の形態においては、画像の2値化は行わない。画像は、たとえば、0〜255などの多値の画素値を保有している。
【0136】
第10の実施の形態における直線検出装置のブロック図は、図1、図6あるいは図8に示した直線検出装置1、1A、あるいは1Bと同様である。ただし、2値変換部13は、備えられていない。
【0137】
ハフ変換部14は、輪郭画像データ103あるいは113に含まれる全ての点についてハフ変換を行う。輪郭画像データ103あるいは113に含まれる点は、たとえば、0〜255などの多値の画素値を有しているが、これら全ての点についてハフ変換を行う。
【0138】
ハフ変換部14は、上記の各実施の形態においては、2値画像データ104あるいは114に含まれる点がハフ変換された回数を2変数配列[θ][ρ]に格納した。言い換えると、ある座標(θ、ρ)にハフ変換された回数がN回であれば、2変数配列[θ][ρ]に値Nが集計値として格納された。
【0139】
この実施の形態においては、輪郭画像データ103あるいは113に含まれる点の線分強度に応じた値が2変数配列[θ][ρ]に格納される。たとえば、画素値をそのまま2変数配列[θ][ρ]に加算して集計する。あるいは、画素値に所定の変換を行い、変換値を2変数配列[θ][ρ]に加算してもよい。つまり、画素の特徴量の大きさに応じた重みづけを行った上で、2変数配列[θ][ρ]において変換回数を集計することができる。
【0140】
その後の処理は、上記の各実施の形態と同様である。集計値は、重みづけ関数f(x)、g(x)等によって補正され、あるいは、正規化され、その後、閾値と比較される。本実施の形態によれば、2値変換を行わないため、比較的強度の弱い直線なども検出したい場合などに有効である。
【0141】
{変形例2}
第1〜第10の実施の形態においては、2値画像データ104の中心を原点として、2値画像データ104内の直線をθおよびρを用いて表現した。しかし、原点は画像の任意の場所に設定することができる。あるいは、原点を2値画像データ104のフレームの外に設定してもよい。
【0142】
第1〜第10の実施の形態においては、輪郭抽出処理を行った後、2値化処理を行った。輪郭抽出処理は、画像の特徴量を抽出する処理の一例である。他の方法によって画像の特徴量を抽出した後に2値化処理を行ってもよい。
【符号の説明】
【0143】
11 輝度画像生成部
12 輪郭抽出処理部
13 2値変換部
14 ハフ変換部
15 ハフテーブル
16 直線検出部
17 アスペクト比変換部
101 カラー画像データ
102 輝度画像データ
103 輪郭画像データ
104 2値画像データ
161 補正部
162 交点間距離算出部
163 正規化部

【特許請求の範囲】
【請求項1】
対象画像の基準点から前記対象画像内の任意の直線に下した垂線の長さρおよび前記垂線が前記基準点を通る基準軸となす角θを用いて、前記対象画像内の任意の直線を表現することにより、前記対象画像内の任意の点を通る直線をハフ空間内の座標(θ、ρ)に変換するハフ変換部と、
ハフ空間内の各座標(θ、ρ)について、前記ハフ変換部によって変換された回数を集計する集計部と、
ρの値に応じた重みづけにより、各座標(θ、ρ)に関する集計値を補正する補正部と、
補正された集計値が第1の閾値を超える座標(θ、ρ)を特定することにより、前記対象画像における直線を検出する検出部と、
を備える直線検出装置。
【請求項2】
請求項1に記載の直線検出装置において、
前記補正部は、1または複数のρの値の近傍に対して集計値を高く評価する重みづけを行う直線検出装置。
【請求項3】
対象画像の基準点から前記対象画像内の任意の直線に下した垂線の長さρおよび前記垂線が前記基準点を通る基準軸となす角θを用いて、前記対象画像内の任意の直線を表現することにより、前記対象画像内の任意の点を通る直線をハフ空間内の座標(θ、ρ)に変換するハフ変換部と、
ハフ空間内の各座標(θ、ρ)について、前記ハフ変換部によって変換された回数を集計する集計部と、
θの値に応じた重みづけにより、各座標(θ、ρ)に関する集計値を補正する補正部と、
補正された集計値が第1の閾値を超える座標(θ、ρ)を特定することにより、前記対象画像における直線を検出する検出部と、
を備える直線検出装置。
【請求項4】
請求項1に記載の直線検出装置において、
前記補正部は、1または複数のθの値の近傍に対して集計値を高く評価する重みづけを行う直線検出装置。
【請求項5】
対象画像の基準点から前記対象画像内の任意の直線に下した垂線の長さρおよび前記垂線が前記基準点を通る基準軸となす角θを用いて、前記対象画像内の任意の直線を表現することにより、前記対象画像内の任意の点を通る直線をハフ空間内の座標(θ、ρ)に変換するハフ変換部と、
ハフ空間内の各座標(θ、ρ)について、前記ハフ変換部によって変換された回数を集計する集計部と、
ρおよびθの値に応じた重みづけにより、各座標(θ、ρ)に関する集計値を補正する補正部と、
補正された集計値が第1の閾値を超える座標(θ、ρ)を特定することにより、前記対象画像における直線を検出する検出部と、
を備える直線検出装置。
【請求項6】
請求項1ないし請求項5のいずれかに記載の直線検出装置であって、さらに、
ハフ空間内の任意の座標(θ、ρ)に対応する前記対象画像内の直線が、前記対象画像の外周と交わる交点を求めるとともに、交点間の距離を算出する交点間距離算出部と、
前記補正部によって補正された集計値を、さらに交点間距離で正規化し、正規化集計値を算出する正規化部と、
を備え、
前記検出部は、
正規化集計値が第2の閾値を超える座標(θ、ρ)を特定することにより、前記対象画像における直線を検出する検出部と、
を備える直線検出装置。
【請求項7】
請求項1ないし請求項5のいずれかに記載の直線検出装置であって、さらに、
ハフ変換される前の対象画像に対して、アスペクト比を1:1に変換するアスペクト比変換処理を実行することにより、正方画像を生成するアスペクト比変換部、
を備える直線検出装置。
【請求項8】
請求項1ないし請求項7のいずれかに記載の直線検出装置であって、さらに、
前記ハフ変換が行われる前に前記対象画像を2値変換する2値変換部、
を備え、
前記対象画像内のある点がハフ空間内の座標(θ、ρ)に変換されたとき、集計値に1が加算される直線検出装置。
【請求項9】
請求項1ないし請求項7のいずれかに記載の直線検出装置であって、
前記対象画像内のそれぞれの点がハフ空間内の座標(θ、ρ)に変換されたとき、前記対象画像内のそれぞれの点の特徴量の大きさによって重みづけされた値が集計値に加算される直線検出装置。
【請求項10】
請求項9に記載の直線検出装置であって、
前記特徴量の大きさは線分強度を含む直線検出装置。
【請求項11】
請求項6に記載の直線検出装置であって、
前記検出部は、前記交点間距離が第3の閾値以下となる直線については、正規化集計値の値によらず直線の検出対象から除外する直線検出装置。
【請求項12】
請求項6に記載の直線検出装置であって、
前記交点間距離算出部は、
ハフ空間内の座標(θ、ρ)に対応する前記対象画像内の直線の前記交点間距離を算出するとき、ρ=0と置き換えた上で前記交点間距離を算出する簡易算出部、
を含む直線検出装置。
【請求項13】
請求項1ないし請求項12のいずれかに記載の直線検出装置であって、
前記基準点は、前記対象画像内の任意の座標に設定される直線検出装置。
【請求項14】
請求項1ないし請求項13のいずれかに記載の直線検出装置であって、さらに、
前記対象画像がカラー画像である場合、ハフ変換が行われる前にカラー画像から輝度画像を生成する輝度画像生成部、
を含む直線検出装置。
【請求項15】
請求項8に記載の直線検出装置であって、
前記対象画像に特徴量抽出処理が施された後、前記2値変換が行われる直線検出装置。
【請求項16】
請求項15に記載の直線検出装置であって、
前記特徴量抽出処理は輪郭抽出処理を含む直線検出装置。
【請求項17】
対象画像の基準点から前記対象画像内の任意の直線に下した垂線の長さρおよび前記垂線が前記基準点を通る基準軸となす角θを用いて、前記対象画像内の任意の直線を表現することにより、前記対象画像内の任意の点を通る直線をハフ空間内の座標(θ、ρ)に変換するハフ変換工程と、
ハフ空間内の各座標(θ、ρ)について、前記ハフ変換部によって変換された回数を集計する集計工程と、
ρの値に応じた重みづけにより、各座標(θ、ρ)に関する集計値を補正する補正工程と、
補正された集計値が第1の閾値を超える座標(θ、ρ)を特定することにより、前記対象画像における直線を検出する検出工程と、
を備える直線検出方法。
【請求項18】
対象画像の基準点から前記対象画像内の任意の直線に下した垂線の長さρおよび前記垂線が前記基準点を通る基準軸となす角θを用いて、前記対象画像内の任意の直線を表現することにより、前記対象画像内の任意の点を通る直線をハフ空間内の座標(θ、ρ)に変換するハフ変換工程と、
ハフ空間内の各座標(θ、ρ)について、前記ハフ変換部によって変換された回数を集計する集計工程と、
θの値に応じた重みづけにより、各座標(θ、ρ)に関する集計値を補正する補正工程と、
補正された集計値が第1の閾値を超える座標(θ、ρ)を特定することにより、前記対象画像における直線を検出する検出工程と、
を備える直線検出方法。
【請求項19】
対象画像の基準点から前記対象画像内の任意の直線に下した垂線の長さρおよび前記垂線が前記基準点を通る基準軸となす角θを用いて、前記対象画像内の任意の直線を表現することにより、前記対象画像内の任意の点を通る直線をハフ空間内の座標(θ、ρ)に変換するハフ変換工程と、
ハフ空間内の各座標(θ、ρ)について、前記ハフ変換部によって変換された回数を集計する集計工程と、
ρおよびθの値に応じた重みづけにより、各座標(θ、ρ)に関する集計値を補正する補正工程と、
補正された集計値が第1の閾値を超える座標(θ、ρ)を特定することにより、前記対象画像における直線を検出する検出工程と、
を備える直線検出方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate