説明

直線検出装置、直線検出方法、直線検出プログラム及び撮影システム

【課題】 直線をより確実に検出可能な直線検出装置、直線検出方法、直線検出プログラム及び撮影システムを提供する。
【解決手段】 直線検出装置30は、撮像手段20で撮像された撮影画像22内のエッジ点23について、撮影画像に基づく球面画像40内の各エッジ点の対応点である対応エッジ点の球面勾配ベクトルを算出する勾配算出部34と、球面画像における直線投影面60の法線ベクトルnを表す極角θ及び方位角φで構成されるハフ空間70に、各対応エッジ点を含む直線投影面の法線ベクトルを投票する投票部35と、所定の閾値以上の投票数を有する法線ベクトルで規定される直線投影面を決定することで、撮影画像内の直線を特定する直線特定部36とを備える。投票部は、各対応委エッジ点の位置ベクトルと直交する法線ベクトルであって、法線ベクトルと対応エッジ点における球面勾配ベクトルとの内積が0より大きい法線ベクトルを投票する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、直線検出装置、直線検出方法、直線検出プログラム及び撮影システムに関する。
【背景技術】
【0002】
画像処理の技術の一つとして、ハフ変換(Hough変換)を利用して撮影画像中の直線を検出する技術が知られている(例えば、特許文献1参照)。ハフ変換では、撮影画像中のエッジ点を通る直線群を、直線を表すパラメータで構成されるハフ空間に投票する。そして、最大投票数を獲得したパラメータで表される直線を、所定のエッジ点を通る直線として検出する。具体的に図を参照して説明する。図16の(a)は、平面画像上のエッジ点に対する従来のハフ変換の原理を示す図面である。平面画像に対してxy座標を設定し、画像内のエッジ点の座標を(x,y)としたとき、エッジ点を通る任意の直線は次式で表される。
ρ=xsinδ+ycosδ
直線を表す上記式中のρは、原点から直線に垂線を引いたときのその垂線の長さ(原点と直線との間の距離)であり、δは、x軸と垂線とのなす角度である。
【0003】
従来、各エッジ点に対する直線群をパラメータ空間としてのρ―δ空間に投票する。このような投票により、一つのエッジ点に対して一つの曲線(理論的には正弦曲線)が描かれる。図16の(b)では、3つのエッジ点に対する投票結果として、3つの曲線を模式的に示している。この3つの曲線の交点に対応する投票用セルの投票数が最も多くなる。従来のハフ変換では、このように投票数の多い交点を規定するρ及びθの組によって決まる直線を平面画像上の直線として検出していた。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開平9−259279号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、従来のハフ変換では2つの直線が近接している場合には、ある閾値以上の投票数のパラメータの組も近接するので、直線を確実に検出ができなかった。
【0006】
本発明は、上記の問題点を解決するためになされたものであり、直線をより確実に検出可能な直線検出装置、直線検出方法、直線検出プログラム及び撮影システムを提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明に係る直線検出装置は、撮像手段により撮像された撮影画像内の複数のエッジ点について、撮影画像を球の表面に投影した球面画像内における各エッジ点の対応点である対応エッジ点の球面勾配ベクトルを算出する勾配算出部と、球面画像における直線投影面の法線ベクトルを表す極角及び方位角で構成されるハフ空間に、各対応エッジ点を含む直線投影面の前記法線ベクトルを投票する投票部と、ハフ空間において所定の閾値以上の投票数を有する法線ベクトルで規定される直線投影面を決定することによって、撮影画像内の直線を特定する直線特定部と、を備える.上記投票部は、各対応エッジ点について、対応エッジ点の位置ベクトルと直交する法線ベクトルであって、その法線ベクトルと対応エッジ点における球面勾配ベクトルとの内積が0より大きい法線ベクトルを投票する。
【0008】
本発明に係る直線検出方法は、撮像手段により撮像された撮影画像内の複数のエッジ点について、撮影画像を球の表面に投影した球面画像内における各エッジ点の対応点である対応エッジ点の球面勾配ベクトルを算出する勾配算出工程と、球面画像における直線投影面の法線ベクトルを表す極角及び方位角で構成されるハフ空間に、各対応エッジ点を含む直線投影面の法線ベクトルを投票する投票工程と、ハフ空間において所定の閾値以上の投票数を有する法線ベクトルで規定される直線投影面を決定することによって、撮影画像内の直線を特定する直線特定工程と、を備える。上記投票工程では、各対応エッジ点について、対応エッジ点の位置ベクトルと直交する法線ベクトルであって、その法線ベクトルと対応エッジ点における球面勾配ベクトルとの内積が0より大きい法線ベクトルを投票する。
【0009】
本発明に係る直線検出プログラムは、コンピュータを、撮像手段により撮像された撮影画像内の複数のエッジ点について、撮影画像を球の表面に投影した球面画像内における各前記エッジ点の対応点である対応エッジ点の球面勾配ベクトルを算出する勾配算出部と、球面画像における直線投影面の法線ベクトルを表す極角及び方位角で構成されるハフ空間に、各対応エッジ点を含む直線投影面の前記法線ベクトルを投票する投票部と、ハフ空間において所定の閾値以上の投票数を有する法線ベクトルで規定される直線投影面を決定することによって、撮影画像内の直線を特定する直線特定部と、して機能させ、投票部を、各対応エッジ点について、対応エッジ点の位置ベクトルと直交する法線ベクトルであって、その法線ベクトルと対応エッジ点における球面勾配ベクトルとの内積が0より大きい法線ベクトルを投票するように機能させる。
【0010】
撮影画像に対応する球面画像においては、直線は大円として表される。従って、球面画像における大円を含む平面の法線ベクトルを決定することで撮影画像の直線を検出可能である。上記直線検出装置、直線検出方法及び直線検出プログラムでは、撮影画像のエッジ点に対応する球面画像上の対応エッジ点の球面勾配ベクトルを利用して直線を検出している。その結果、大円、すなわち、直線を特定する法線ベクトルが一意に決定され得る。そのため、直線をより確実に検出可能である。
【0011】
本発明に係る直線検出装置では、撮影画像を球の表面に投影することによって球面画像を形成する球面画像形成部を備え、勾配算出部は、球面画像形成部によって形成された対応エッジ点の球面勾配ベクトルを算出してもよい。同様に、本発明に係る直線検出方法では、撮影画像を球の表面に投影することによって球面画像を形成する球面画像形成工程を備え、勾配算出工程では、球面画像形成工程において形成された対応エッジ点の球面勾配ベクトルを算出してもよい。
【0012】
本発明に係る直線検出装置では、上記直線投影面の法線ベクトルは、球面画像を離散化して得られる各画素の位置ベクトルとし得る。同様に、本発明に係る直線検出方法の投票工程では、球面画像を離散化して得られる各画素の位置ベクトルを法線ベクトルとして投票してもよい。
【0013】
本発明は、撮影画像を取得する画像取得手段と、上記本発明に係る直線検出装置とを備える撮影システムにも係る。この撮影システムでは、本発明に係る直線検出装置を備えるので、撮影手段により取得された撮影画像中の直線をより高い精度で検出可能である。
【発明の効果】
【0014】
本発明によれば、撮影画像中の直線をより確実に検出できる。
【図面の簡単な説明】
【0015】
【図1】本発明に係る撮像システムの一実施形態の構成を概略的に示す図面である。
【図2】図1記載のカメラの一例で実際に撮影した撮影画像の例を示す図面である。
【図3】図2に示した撮影画像22中のエッジ点を検出した図面である
【図4】撮影画像と球面画像との関係を説明する図面である。
【図5】撮影対象と球面画像との関係を示す図面である。
【図6】直交曲線座標と直交座標との関係を示す図面である。
【図7】球面画像上の直線の投影状態を模式的に示す図面である。
【図8】投票部によるハフ空間の投票状態の一例を示す図面である。
【図9】直線検出装置を利用した直線検出方法のフローチャートである。
【図10】図2に示したテストパターンに対して図9記載の画像取得工程〜投票工程を実施した後の投票結果を示す図面である。
【図11】図9記載の画像出力工程で出力される画像の一例を示す図面である。
【図12】球面勾配ベクトルを利用しないで、エッジ点に対応する球面画像上の対応エッジ点を含む直線投影面の法線ベクトルを投票した結果を示す図面である。
【図13】図12に示した投票結果に基づいた直線検出結果を示す図面である。
【図14】球面勾配ベクトルを利用して、エッジ点に対応する球面画像上の対応エッジ点を含む直線投影面の法線ベクトルを投票した結果を示す図面である。
【図15】図14に示した投票結果に基づいた直線検出結果を示す図面である。
【図16】従来のハフ変換の原理を示す図面である。
【発明を実施するための形態】
【0016】
以下、図を参照して本発明の実施形態について説明する。以下の説明においては、同一の要素には同一の符号を用いることとし重複する説明は省略する。
【0017】
図1は、本発明に係る直線検出装置の一実施形態を含む撮像システムの概略構成を示す図面である。撮影システム10は、撮像装置(画像取得手段)20と、直線検出装置30とを備える。
【0018】
撮像装置20は、全天周の画像を取得するために、2つのカメラ21,21を備える。各カメラ21,21は、広角レンズである魚眼レンズを備えており、魚眼レンズ21Aによって結像された像を撮像素子21Bによって検出する。魚眼レンズ21Aの画角の例は185°であるが、180°以上であればよい。撮像素子21Bの例はCCDである。2つのカメラ21,21は、図1に模式的に示すように背面合わせで設けられている。これにより、2つのカメラ21,21は、実質的に同一の視点から互いに反対方向を撮影し、全天周における半球分の画像を取得する。
【0019】
図1に示すように、撮像装置20は、2つのカメラ21,21で取得された画像の画像データを直線検出装置30に出力する。
【0020】
直線検出装置30は、球面画像上のエッジ点の球面勾配を利用して直線を検出する装置である。
【0021】
直線検出装置30は、画像入力部31と、エッジ点検出部32と、球面画像形成部33と、勾配算出部34と、投票部35と、直線特定部36と、画像出力部37とを備える。また、直線検出装置30は、画像入力部31、エッジ点検出部32などを制御するCPU38と、各種データ及びプログラムを格納する記憶部39を更に備える。図1に示した直線検出装置30が有する各構成要素(画像入力部31、エッジ点検出部32など)は、バスなどによって接続されて、データなどを通信可能である。直線検出装置30の例は、コンピュータ装置である。直線検出装置30は、記憶部39に格納された直線検出プログラムを実行することによって、画像入力部31と、エッジ点検出部32と、球面画像形成部33と、勾配算出部34と、投票部35と、直線特定部36と、画像出力部37の各機能を実現する。
【0022】
画像入力部31は、カメラ21で取得された撮影画像22の画像データの入力をカメラ21から受け付ける。画像入力部31は、無線及び有線通信の少なくとも一方を介してデータを受け取ってもよいし、又は記録媒体(DVDやSDカード等)からデータを受け取ってもよい。図2は、カメラ21で実際に撮影した撮影画像22の一例を示す図面である。カメラ21としては、オリンパスの魚眼レンズFCON-2を取り付けたソニーハンディカムを使用した。
【0023】
エッジ点検出部32は、撮影画像22内の特徴点としてのエッジ点23を検出する。エッジ点23は、例えば輝度の明確な変化(例えば、明→暗又は暗→明の変化)が生じる点として検出される。エッジ点23は、例えば、cannyオペレータによって検出され得る。図3は、図2に示した撮影画像22中のエッジ点を検出した図面である。図3における各白点がエッジ点23である。図3では、図示の都合上、一つのエッジ点23を円で囲んでいる。
【0024】
球面画像形成部33は、画像入力部31で受け付けられた撮影画像22の画像データを、球面画像40のデータに変換する。球面画像40は、一対の撮影画像22を仮想単位球面S上に投影した画像である。一対の撮影画像22,22は、それぞれ全天周の半分の領域を撮影しているため、各撮影画像22を用いることで、全天周を表示する球面画像40を生成することができる。
【0025】
図4は、撮影画像と球面画像との関係を説明する図面である。図4では、単位球面Sの半球分を示している。カメラ21が有する魚眼レンズ21Aの光軸をZ軸とし、魚眼レンズ21Aの主点Oを通りZ軸に直交する平面をXY平面とする。Z軸上において、主点Oから魚眼レンズ21Aの焦点距離fだけ離れた点cは、Z軸と直交する撮影画像22の中心点に対応する。この中心点cを通り、Z軸と直交する平面をxy平面とする。撮影画像22は、魚眼レンズ21Aにより、実空間の点Pをxy平面に射影してできる画像である。
【0026】
天頂角をθ、方位角をψとすると、実空間の点Pから投影される球面画像40上の点pの位置ベクトルは、等距離射影式であるr=fθ及び撮影画像22上の点pの座標(x,y)を利用して次式で表される。
【数1】


上記式(2)は、魚眼レンズ21Aの射影方式を等距離射影方式(すなわち、r=fθ)とした場合のものである。しかし、魚眼レンズ21Aの射影方式は他の射影方式、例えば、立体射影、等立体角射影及び正射影を採用してもよい。
【0027】
上記球面画像40の点pと、撮影画像22の点pとの対応関係から、撮影画像22に基づいて球面画像40を生成することができる。
【0028】
ここで、撮影対象と、球面画像との関係について説明する。図5は、撮影対象と球面画像との関係を示す図面である。図5の(a)は、撮影対象としてのテストパターンの一例を示している。図5の(a)のテストパターンは、説明のための便宜的なものである。図5の(a)中のハッチングは、同じ色が付されていることを模式的に示している。図5の(a)に示したテストパターン50では、互いに平行で幅の異なる3つの線状パターン51,52,53を有すると共に、線状パターン51〜53と交差する2つの線状パターン54,55を有する。図5の(b)は、図5の(a)に示したテストパターン50の球面画像40を示している。図5の(b)では、図5の(a)に示したハッチングは省略している。図5の(b)には、線状パターン51〜55の投影パターン41〜45を模式的に示している。図5の(b)に示すように、テストパターン50内で線状パターン51〜55は、球面画像40では湾曲した湾曲した投影パターン41〜45として現れる。
【0029】
勾配算出部34は、エッジ点検出部32で検出されたエッジ点23の球面勾配ベクトルを算出する。ここで、エッジ点23の球面勾配ベクトルとは、エッジ点23に対応する球面画像40上の点の勾配ベクトルを意味する。以下では、エッジ点23に対応する球面画像40上の点を対応エッジ点23sとも称し、エッジ点23の球面勾配ベクトルを対応エッジ点23sの球面勾配ベクトルとも称す。また、上記「勾配」とは、画素値の変化の度合いを意味する。画素値の度合いの例は、輝度の変化の度合い又は濃度の変化の度合いである。
また、直線検出装置30では画像は離散的に扱われるので、画像上の点は、一つの画素として扱われる。よって、以下では、直線検出装置30で処理される画像上の点を画素とも称す。
【0030】
撮影画像22上の任意の点(画素)pの画素値をI(x,y)とし、その画素pに対応する球面画像40上の点(画素)pの画素値をI(θ,φ)としたとき、図6に示す直交曲線座標系での画素pの球面勾配のベクトル(以下、「球面勾配ベクトル」と称す)を∇I(θ,φ)とすると、∇I(θ,φ)は、次式で表される。
【数2】


式(2)中、eθ及びeφは、直交曲線座標系において、θ方向及びφ方向の単位ベクトルである。
【0031】
θ及びφで規定される球面画像40上の画素pは、x及びyで規定される撮影画像22の画素pと対応づけられるので、θ及びφはそれぞれ、式(3a)及び式(3b)に示すように、xとyとの関数である。
【数3】


従って、式(4)が成り立つ。
【数4】


式(4)より、式(5)が導かれる
【数5】


よって、式(6)が成り立つ。
【数6】


この式(6)を式(2)に代入することによって、球面勾配ベクトル∇Is(θ,φ)が算出される。式(2)は直交曲線座標系における球面勾配ベクトル∇Is(θ,φ)である。この直交曲線座標系における球面勾配ベクトル∇Is(θ,φ)を、図2に示したXYZ直交座標系における球面勾配ベクトルに変換する。θ及びφを利用した直交曲線座標系からXYZ直交座標系への変換は、従来の方法(例えば「長谷川正之、稲岡毅著、“ベクトル解析の基礎”、森北出版株式会社、2004年3月15日」記載の方法)に基づいて行い得る。以下、XYZ直交座標系における球面勾配ベクトルを∇I(X,Y,Z)と称す。
【0032】
投票部35は、各対応エッジ点23sを通る直線投影面群内の各直線投影面60の法線ベクトルnを、その法線ベクトルを表すパラメータで規定されるパラメータ空間としてのハフ空間に投票する。
【0033】
実空間上の直線は、図7に示すように、大円の一部として投影される。よって、上記直線投影面60は大円を含む平面である。図7は、直線の球面画像における投影状態を示す模式図である。図7では、3つの直線l,l,lの球面画像40への投影状態及び各直線l〜lの直線投影面60,60,60のうちの一部を模式的に示している。図では、各直線l〜lに対する直線投影面60〜60をそれぞれ直線投影面60,60,60と示している。各直線投影面60〜60に対してそれぞれ法線ベクトルnが規定されるが、この法線ベクトルnは、極角θ及び方位角φで規定され得る。図7では、3つの直線投影面60〜60に対する法線ベクトルnとして法線ベクトルn1〜n3を示している。
【0034】
投票部35が法線ベクトルnを投票するハフ空間は、法線ベクトルnを表すためのθ及びφで規定されるパラメータ空間であり、記憶部39内に確保される投票用の2次元配列領域70(図8参照)として実装される。2次元配列領域70の各配列要素71にはθとφの組が一意に割り当てられる。
【0035】
直線検出装置30内のデータ処理では、前述したように、球面画像40は離散的に扱われる。換言すれば、球面画像40は、離散化された単位球の球面Sの各画素に輝度といった画素値を割り当てられて構成されている。球面画像40は、例えば、測地ドーム法に基づいて離散化され得る。
【0036】
離散化した球面画像40において、画素の位置ベクトルは、画素を含む平面に直交する。一方、画素を含む平面は、球面画像40における何れかの大円を含む平面に平行である。従って、離散化した球面画像40の画素の位置ベクトルは、その画素を含む平面に平行な大円の法線ベクトルに一致する。そのため、上記投票用の2次元配列領域70を構成する配列要素71は、球面画像40を離散化した複数の画素を2次元配列したときの各画素に対応する。図7では、球面画像40上の一つの画素mの位置ベクトルが法線ベクトルn2に一致している場合を模式的に示している。
【0037】
球面画像40を離散化した複数の画素を2次元配列する方法は、特に限定されないが、上記複数の画素は、例えば、S. Li and Y. Hai, ”A full view spherical image format,” ICPR, 2010,pp.2337-2340記載の方法によって複数の2次元状に配列され得る。
【0038】
球面画像40を離散化した複数の画素を2次元配列したときの各画素の位置を(θ)(mは、複数の画素を識別するための整数)とした場合、投票用の2次元配列領域70を構成する配列要素71も(θ)の組みで指定され得る。この場合、任意の法線nの法線ベクトルは(θ)で表され得る。
【0039】
投票部35は、以下の条件を満たす法線に投票する。
【数7】


式(7a)中のベクトルpは、対応エッジ点23sの位置ベクトルを示している。そして、式(7a)は、対応エッジ点23sを通る大円を表す。式(7b)は、法線ベクトルnの方向と対応エッジ点23sにおける球面勾配ベクトルとのなす角度が90°より小さいことを規定している。従って、投票部35は、各対応エッジ点23sを通る複数の大円のうち、その大円を含む平面の法線ベクトルnの方向が対応エッジ点23sにおける球面勾配ベクトルと90°より小さい角度をなす法線ベクトルnを投票する。
【0040】
記憶部39内の2次元配列領域70において(θ)で指定される配列要素71の値をA(θ)として具体的に説明すると、投票部35は、式(7a)及び式(7b)を満たす場合に、A(θ)=A(θ)+1を実行する。
【0041】
図8は、投票部35によるハフ空間の投票状態の一例を示す図面である。図8では、図8における2次元配列領域70の左上に一つの配列要素71を模式的に示している。2次元配列領域70は、配列要素71が2次元状に配列されたものである。図8中の各曲線が一つの対応エッジ点23sを通る複数の大円(直線投影面)の法線ベクトルnの投票結果を示している。
【0042】
直線特定部36は、投票部35において、所定の閾値以上の得票数を有する配列要素71を決定する。直線特定部36は、所定の閾値以上の得票数の配列要素71を規定するθ及びφで規定される法線ベクトルnを有する直線投影面、すなわち、大円を含む面を決定し、エッジ点23を通る直線を検出する。
【0043】
図8を利用して説明すると、図8では3つの対応エッジ点23sに対する法線ベクトルnの投票により3つの曲線が得られている。図8の場合には、3つの曲線の交点が最大得票数の配列要素71である。その結果、その配列要素71を指定するθm及びφmで規定される直線投影面に投影された直線を、直線特定部36が3つのエッジ点23を通る直線として検出する。
【0044】
図9は、直線検出装置を利用した直線検出方法のフローチャートである。図9を参照して、撮影システム10及び直線検出装置30の動作について説明する。
【0045】
撮像装置20の各カメラ21,21で撮影を行い、一対の撮影画像22,22を取得する(撮影画像取得工程S1)。これにより、全天周の画像を取得する。
【0046】
画像入力部31が、カメラ21,21で撮影された一対の撮影画像22,22の画像データを受け付ける(画像入力工程S2)と、エッジ点検出部32が撮影画像22中のエッジ点23を検出する(エッジ点検出工程S3)。
【0047】
次いで、球面画像形成部33が、入力された画像データを球面画像40の画像データに変換して、図5の(b)に模試的に示した球面画像40を生成する(球面画像生成工程S4)。
【0048】
次に、勾配算出部34が、検出したエッジ点23に対して球面勾配ベクトルI(X,Y,Z)を算出する。すなわち、検出したエッジ点23に対応する球面画像40上の対応エッジ点23sの球面勾配ベクトルを算出する(勾配算出工程S5)。
【0049】
その後、投票部35が、各対応エッジ点23sに対して、その対応エッジ点23sを通る直線投影面、すなわち、大円を含む面の法線ベクトルnのうち式(7a)及び式(7b)を満たす法線ベクトルnをハフ空間に投票する(投票工程S6)。具体的には、投票部35の説明において述べた通りである。すなわち、球面画像40を離散的に表す複数の画素に対応する配列要素71を2次元配列した記憶部39の2次元配列領域70において、各配列要素71に投票を行う。図10は、図2に示したテストパターン50に対して撮影画像取得工程S1〜投票工程S6を実施した後の投票結果を示す図面である。
【0050】
投票を行った後、直線特定部36が、投票部35における投票結果において、所定の得票数以上の得票数の法線ベクトルnを決定することによって、撮影画像22における直線を検出する。通常、一つの対応エッジ点23sを通る直線投影面群の法線ベクトルnを投票することでハフ空間上に一つの曲線が描かれることになる。この曲線を以下、ハフ曲線とも称す。複数のハフ曲線の交点は、交点を通過する複数のハフ曲線の数の投票が行われていることになるので、その交点に対応する配列要素71が得票数の多い配列要素71として選択され得る。2点が決まれば理論的には一意に決定されるので、理論的には、2つの得票数以上の配列要素71は一つの直線を決定することになるが、計算誤差などを考慮して上記「所定の得票数」を設定すればよい。図10に示した破線、一点鎖線及び二点鎖線で示した領域内において、投票により形成されたハフ曲線の交点としての配列要素71を直線投影面60の法線ベクトルnとして検出する。
【0051】
そして、画像出力部37が、直線特定部36で特定された直線を撮影画像22に重畳した画像を表示装置又はネットワークなどに出力する(画像出力工程S8)。ここでは、特定された直線が撮影画像22に重畳された画像を出力する場合を示したが、画像出力部37は、球面画像40や、エッジ点23を検出した画像などの処理過程の画像や、撮影画像22自体を適宜出力してもよい。
【0052】
図11は、画像出力工程S8で出力される画像の一例を示す図面である。図11では、図5の(a)との対応関係を示すために、透視画像として表している。図11では、図10に示した破線、一点鎖線及び二点鎖線で示した領域内において、投票により形成されたハフ曲線の交点としての配列要素71を直線投影面60の法線ベクトルnとして検出している。図11では、図10との対応関係を示すために、線状パターン51を構成する一対の直線に対する検出結果を破線で示しており、線状パターン52を構成する一対の直線に対する検出結果を一点鎖線で示しており、線状パターン53を構成する一対の直線に対する検出結果を二点鎖線で示している。
【0053】
上記直線検出装置30では、球面画像40を利用して直線を検出している。球面画像40においては、直線は大円として表される。その大円を含む平面の法線ベクトルnを決定することで直線を検出可能である。ところで、一つの平面に対して互いに逆向きの2つの法線ベクトルが存在する。そのため、直線検出装置30では、大円で分けられる2つの半球のうち、球面勾配の方向に位置する半球と同じ側に位置する法線ベクトルnを検出することで、2つの法線ベクトルnのうちの一つを特定している。その結果、大円、すなわち、直線を特定する法線ベクトルnが一意に決定され得る。更に、平行な複数の線状パターンにおける同じ側の直線(例えば、図2において上側の直線51a,52a,53a)は、平面画像上では同じ勾配になるが、球面画像40上での勾配である球面勾配ベクトルは異なると共に、一つの線状パターンを構成する一対の直線の球面勾配ベクトルも異なる。その結果、撮影対象内において、平行な複数の線状パターンのうち同じ側の直線も区別可能であると共に、一つの線状パターンの幅が狭くてもハフ空間における一定以上の得票数の法線ベクトルnを明確に区別できる。その結果、直線をより高い精度で検出可能である。
以下、実験結果を利用して具体的に説明する。実験では、図2に示した撮影画像22を球面画像形成部33により球面画像40に変換し、球面勾配を利用して直線検出を行った。
【0054】
実験では、投票部35において式(7a)のみを投票の条件として投票を行った場合と、式(7a)及び式(7b)の両方を投票の条件として投票を行った場合について、直線を検出した。
【0055】
図12は、式(7a)のみを投票の条件として投票を行った場合の投票結果を示す図面である。図13は、図11に基づいた直線検出結果を示す図面である。図14は、式(7a)及び式(7b)を条件として投票を行った場合の投票結果を示す図面である。図15は、図13に基づいた直線検出結果を示す図面である。
【0056】
図11中において、領域α1,α2,α3,α5,α7内の交点で決まる直線が、図12に示した直線L1,L2,L3,L5,L7である。また、図13中において、領域α1,α2,α3,α4,α5,α6,α7内の交点で決まる直線が、図14に示した直線L1,L2,L3,L4,L5,L6,L7に対応する。
【0057】
図12及び図13を比較することで理解されるように、式(7a)のみを条件として投票した場合には一つの直線に対してハフ空間上に2つの対応点(配列要素71)が生じている。これは前述したように一つの直線投影面に対する法線ベクトルが2つ存在することによる。また、図12中において破線で囲んだ領域では、一定の閾値以上の投票数が得られた配列要素71が存在するが、それらの配列要素71を十分に分離できる程度の投票数差が得られていないため、図12に示したように、撮影画像22で視認できる直線とは別の直線(図13中の破線で示す直線)が検出された。
【0058】
これに対して、図14及び図15を比較すると、図14中の一つの直線に対してハフ空間上の対応点(配列要素71)が一意に決定できている。また、図13では、間違って検出された直線は検出されず、撮影画像22中において視認できる直線を適切に検出できている。
【0059】
上記実験結果からも理解され得るように、球面勾配ベクトルを利用すると共に、式(7a)及び式(7b)を投票の条件とすることによって、高い精度で直線をより確実に検出可能である。
【0060】
以上、本発明の実施形態を説明したが、本発明は上記実施形態に限定されない。例えば、説明のために、直線検出装置30は、球面画像40を形成するための球面画像形成部33を備えるとした。しかしながら、撮影画像上の各画素に対して球面勾配ベクトルに変換する変換式や、球面画像を離散化した画素に基づく2次元配列領域の画素と撮影画素との対応関係などが記憶部39等に予め格納されていれば、球面画像を生成する画像変換部は設けなくてもよい。換言すれば、上記変換式を利用した処理や、それに基づく球面画像を離散化した画素に基づく2次元配列領域の画素と撮影画素との対応関係などを利用する処理に球面画像を生成する処理が含まれていることになる。また、エッジ点検出部は、撮影画像上のエッジ点を検出するとしたが、例えば、球面画像を生成した後、球面画像上のエッジ点を検出してもよい。更に、上記実施形態では、カメラ21が有するレンズ部は、魚眼レンズといった広角レンズに限らず、画角が180度より小さい他のレンズであってもよい。
【0061】
更に、上記実施形態では、一例として、一対のカメラ21,21を利用して全天周の画像を取得し、その全天周の画像(2つのカメラ21,21で取得された画像)について直線検出を行っている場合を説明した。しかしながら、例えば、一つのカメラ21による撮影画像についてのみ直線検出を行ってもよい。
【産業上の利用可能性】
【0062】
本発明は、直線検出が必要とされる移動ロボット、監視カメラ、レスキュー道具及び自動車といった車両に搭載されるナビゲーション用又は外部確認用のカメラ等に適用可能である。
【符号の説明】
【0063】
10…撮像システム、20…撮像装置(画像取得手段)、21…カメラ、22…撮影画像、23…エッジ点、30…直線検出装置、32…エッジ点検出部、33…球面画像形成部、34…勾配算出部、35…投票部、36…直線特定部、40…球面画像、60…直線投影面(大円を含む面)、70…2次元配列領域(ハフ空間)、71…配列要素。

【特許請求の範囲】
【請求項1】
撮像手段により撮像された撮影画像内の複数のエッジ点について、前記撮影画像を球の表面に投影した球面画像内における各前記エッジ点の対応点である対応エッジ点の球面勾配ベクトルを算出する勾配算出部と、
前記球面画像における直線投影面の法線ベクトルを表す極角及び方位角で構成されるハフ空間に、各前記対応エッジ点を含む前記直線投影面の前記法線ベクトルを投票する投票部と、
前記ハフ空間において所定の閾値以上の投票数を有する前記法線ベクトルで規定される前記直線投影面を決定することによって、前記撮影画像内の直線を特定する直線特定部と、
を備え、
前記投票部は、各前記対応エッジ点について、前記対応エッジ点の位置ベクトルと直交する法線ベクトルであって、その法線ベクトルと前記対応エッジ点における前記球面勾配ベクトルとの内積が0より大きい法線ベクトルを投票する、
直線検出装置。
【請求項2】
前記撮影画像を球の表面に投影することによって球面画像を形成する球面画像形成部を備え、
前記勾配算出部は、前記球面画像形成部によって形成された前記対応エッジ点の球面勾配ベクトルを算出する、
請求項1記載の直線検出装置。
【請求項3】
前記直線投影面の法線ベクトルは、前記球面画像を離散化して得られる各画素の位置ベクトルである、請求項1又は2記載の直線検出装置。
【請求項4】
撮像手段により撮像された撮影画像内の複数のエッジ点について、前記撮影画像を球の表面に投影した球面画像内における各前記エッジ点の対応点である対応エッジ点の球面勾配ベクトルを算出する勾配算出工程と、
前記球面画像における直線投影面の法線ベクトルを表す極角及び方位角で構成されるハフ空間に、各前記対応エッジ点を含む前記直線投影面の前記法線ベクトルを投票する投票工程と、
前記ハフ空間において所定の閾値以上の投票数を有する前記法線ベクトルで規定される前記直線投影面を決定することによって、前記撮影画像内の直線を特定する直線特定工程と、
を備え、
前記投票工程では、各前記対応エッジ点について、前記対応エッジ点の位置ベクトルと直交する法線ベクトルであって、その法線ベクトルと前記対応エッジ点における前記球面勾配ベクトルとの内積が0より大きい法線ベクトルを投票する、
直線検出方法。
【請求項5】
前記撮影画像を球の表面に投影することによって球面画像を形成する球面画像形成工程を備え、
前記勾配算出工程では、前記球面画像形成工程において形成された前記対応エッジ点の球面勾配ベクトルを算出する、
請求項4記載の直線検出方法。
【請求項6】
前記投票工程では、前記球面画像を離散化して得られる各画素の位置ベクトルを前記法線ベクトルとして投票する、請求項4又は5記載の直線検出方法。
【請求項7】
コンピュータを、
撮像手段により撮像された撮影画像内の複数のエッジ点について、前記撮影画像を球の表面に投影した球面画像内における各前記エッジ点の対応点である対応エッジ点の球面勾配ベクトルを算出する勾配算出部と、
前記球面画像における直線投影面の法線ベクトルを表す極角及び方位角で構成されるハフ空間に、各前記対応エッジ点を含む前記直線投影面の前記法線ベクトルを投票する投票部と、
前記ハフ空間において所定の閾値以上の投票数を有する前記法線ベクトルで規定される前記直線投影面を決定することによって、前記撮影画像内の直線を特定する直線特定部と、
して機能させ、
前記投票部を、各前記対応エッジ点について、前記対応エッジ点の位置ベクトルと直交する法線ベクトルであって、その法線ベクトルと前記対応エッジ点における前記球面勾配ベクトルとの内積が0より大きい法線ベクトルを投票するように機能させる、
ための直線検出プログラム。
【請求項8】
撮影画像を取得する画像取得手段と、
請求項1〜3記載の直線検出装置と、
を備える撮影システム。

【図1】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図11】
image rotate

【図16】
image rotate

【図2】
image rotate

【図3】
image rotate

【図10】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate