(57)【要約】      （修正有）【課題】球面勾配ベクトルをより確実に算出可能な球面勾配検出方法、エッジ点検出方法、球面勾配検出装置、エッジ点検出装置、球面勾配検出プログラム及びエッジ点検出プログラムを提供する。【解決手段】球面勾配算出方法は、複数の画素で離散的に表された離散球面に、撮影画像が投影された離散球面画像を形成する離散球面画像形成工程と、記離散球面画像を構成する複数の画素の各々の球面勾配ベクトルを、その球面勾配ベクトルを算出すべき画素の画素値と、その画素に隣接する画素の画素値と、その画素を構成する複数の辺の各々の長さ、その画素の面積と、その画素の中心からその画素を構成する複数の角部の各々への単位ベクトルとに基づいて算出する球面勾配算出工程と、を含む。【選択図】図１
2013109643.tif 000002
【特許請求の範囲】
【請求項１】
複数の画素で離散的に表された離散球面に、撮影画像が投影された離散球面画像を生成する離散球面画像生成工程と、
前記離散球面画像を構成する複数の画素の各々の球面勾配ベクトルを、その球面勾配ベクトルを算出すべき画素の画素値と、その画素に隣接する画素の画素値と、その画素を構成する複数の辺の各々の長さ、その画素の面積と、その画素の中心部の点からその画素を構成する複数の角部の各々への単位ベクトルとに基づいて算出する球面勾配算出工程と、
を備える球面勾配算出方法。
【請求項２】
前記球面勾配算出工程では、前記画素を構成する複数の角部の各々の画素値を、前記画素の画素値と、その画素及びその角部に隣接する画素の画素値とに基づいて算出し、前記球面勾配ベクトルを、その球面勾配ベクトルを算出すべき画素を構成する各角部に対して算出された画素値と、その画素の一辺の長さ、その画素の面積と、その画素の中心部の点からその画素の角部への単位ベクトルとに基づいて算出する、
請求項１記載の球面勾配算出方法。
【請求項３】
前記球面勾配ベクトルを算出すべき画素をＶｉ（ｉは０以上の整数）とし、
前記画素Ｖｉを構成するＫｉ個（Ｋｉは、３以上の整数）の角部をＣｉ，ｊ（ｊは、１以上Ｋｉ以下の整数）とし、
前記角部Ｃｉ，ｊの画素値をＩ（Ｃｉ，ｊ）とし、
前記Ｋｉ個の角部のうち所定方向回りにおいて角部Ｃｉ，ｊに隣接する角部をＣｉ，ｊ＋１（ただし、ＫｉをＫ＜ｉ＞と表したとき、Ｃｉ，Ｋ＜ｉ＞＋１＝Ｃｉ，１）とし、
前記画素Ｖｉの面積をＡｉとし、
前記角部Ｃｉ，ｊと前記角部Ｃｉ，ｊ＋１の間の前記画素Ｖｉの辺の長さをａｊとし、
前記画素Ｖｉの中心部の点から前記角部Ｃｉ，ｊへの単位ベクトルをｎｊとし、
前記画素Ｖｉの球面勾配ベクトルをＵｉとしたとき、
前記球面勾配方向算出工程では、前記球面勾配ベクトルＵｉを式（１）によって算出する、
請求項２記載の球面勾配算出方法。
【数１】
2013109643.tif 000009
【請求項４】
請求項１〜３の何れか一項記載の球面勾配算出方法で算出した球面勾配ベクトルの大きさが所定値以上の画素をエッジ点として検出するエッジ点検出工程を備える、エッジ点検出方法。
【請求項５】
複数の画素で離散的に表された離散球面に、撮影画像が投影された離散球面画像を生成する離散球面画像生成部と、
前記離散球面画像を構成する複数の画素の各々の球面勾配ベクトルを、その球面勾配ベクトルを算出すべき画素の画素値と、その画素に隣接する画素の画素値と、その画素を構成する複数の辺の各々の長さ、その画素の面積と、その画素の中心部の点からその画素を構成する複数の角部の各々への単位ベクトルとに基づいて算出する球面勾配算出部３３と、
を備える球面勾配算出装置。
【請求項６】
前記球面勾配算出部は、前記画素を構成する複数の角部の各々の画素値を、前記画素の画素値と、その画素及びその角部に隣接する画素の画素値とに基づいて算出し、前記球面勾配ベクトルを、その球面勾配ベクトルを算出すべき画素を構成する各角部に対して算出された画素値と、その画素の一辺の長さ、その画素の面積と、その画素の中心部の点からその画素の角部への単位ベクトルとに基づいて算出する、請求項５記載の球面勾配算出装置。
【請求項７】
前記球面勾配ベクトルを算出すべき画素をＶｉ（ｉは０以上の整数）とし、
前記画素Ｖｉを構成するＫｉ個（Ｋｉは、３以上の整数）の角部をＣｉ，ｊ（ｊは、１以上Ｋｉ以下の整数）とし、
前記角部Ｃｉ，ｊの画素値をＩ（Ｃｉ，ｊ）とし、
前記Ｋｉ個の角部のうち所定方向回りにおいて角部Ｃｉ，ｊに隣接する角部をＣｉ，ｊ＋１（ただし、ＫｉをＫ＜ｉ＞と表したとき、Ｃｉ，Ｋ＜ｉ＞＋１＝Ｃｉ，１）とし、
前記画素Ｖｉの面積をＡｉとし、
前記角部Ｃｉ，ｊと前記角部Ｃｉ，ｊ＋１の間の前記画素Ｖｉの辺の長さをａｊとし、
前記画素Ｖｉの中心部の点から前記角部Ｃｉ，ｊへの単位ベクトルをｎｊとし、
前記画素Ｖｉの球面勾配ベクトルをＵｉとしたとき、
前記球面勾配方向算出部は、前記球面勾配ベクトルＵｉを式（２）によって算出する、
請求項６記載の球面勾配算出装置。
【数２】
2013109643.tif 000010
【請求項８】
請求項６〜７の何れか一項記載の球面勾配算出装置と、
前記球面勾配算出装置で算出した球面勾配ベクトルの大きさが所定の値以上の画素をエッジ点として検出するエッジ点検出部と、
備える、エッジ点検出装置。
【請求項９】
コンピュータに、
複数の画素で離散的に表された離散球面に、撮影画像が投影された離散球面画像を生成する離散球面画像生成工程と、
前記離散球面画像を構成する複数の画素の各々の球面勾配ベクトルを、その球面勾配ベクトルを算出すべき画素の画素値と、その画素に隣接する画素の画素値と、その画素を構成する複数の辺の各々の長さ、その画素の面積と、その画素の中心部の点からその画素を構成する複数の角部の各々への単位ベクトルとに基づいて算出する球面勾配算出工程と、
を実行せしめる球面勾配検出プログラム。
【請求項１０】
コンピュータに、
複数の画素で離散的に表された離散球面に、撮影画像が投影された離散球面画像を生成する離散球面画像生成工程と、
前記離散球面画像を構成する複数の画素の各々の球面勾配ベクトルを、その球面勾配ベクトルを算出すべき画素の画素値と、その画素に隣接する画素の画素値と、その画素を構成する複数の辺の各々の長さ、その画素の面積と、その画素の中心部の点からその画素を構成する複数の角部の各々への単位ベクトルとに基づいて算出する球面勾配算出工程と、
球面勾配算出工程で算出した球面勾配ベクトルの大きさが所定値以上の画素をエッジ点として検出するエッジ点検出工程と、
を実行せしめるエッジ点検出プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、球面勾配検出方法、エッジ点検出方法、球面勾配検出装置、エッジ点検出装置、球面勾配検出プログラム及びエッジ点検出プログラムに関する。
【背景技術】
【０００２】
画像処理では、エッジ点を検出したり、直線を検出したりするために、画像の勾配を算出している。画像の勾配は、例えば、画素の輝度値の変化を算出することで得られる。一方、近年、全天周画像の処理又は表示のために、複数の撮影画像を球の表面に投影した球面画像を使用する傾向にある。このような球面画像上の点Ｐにおける勾配を球面勾配と称したとき、球面勾配ベクトルは、撮影画像２２上の任意の点（画素）ｐａの画素値をＩ（ｘ，ｙ）とし、その画素ｐａに対応する球面画像上の点（画素）ｐの画素値をＩ（θ，φ）としたとき、図１９に示す直交曲線座標系での画素ｐの球面勾配のベクトル（以下、「球面勾配ベクトル」と称す）を∇Ｉｓ（θ,φ）とすると、∇Ｉｓ（θ,φ）は、次式で表される。
（例えば、非特許文献１）
∇Is(θ,φ)=(∂Is(θ,φ)/∂θ)×eθ+(1/sinθ)×(∂Is(θ,φ)/∂φ)×eφ
上記式中及び図１９においてベクトルｅθ及びベクトルｅφは、直交曲線座標系において、θ方向及びφ方向の単位ベクトルである。また、図１９においてベクトルｅＲは、Ｒ方向（半径方向）の単位ベクトルである。
【先行技術文献】
【特許文献】
【０００３】
【非特許文献１】K. Daniilidis, A. Makadia and T. Bulow, “Image processing incatadioptric planes: spatiotemporal derivatives and optical flow computation,”IEEE Workshop on Omnidirectional Vision, 2002, pp.3-10.
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、直交曲線座標を利用する従来の方法では、上記式の右辺の第２項に（１／ｓｉｎθ）が含まれているので、いわゆる極問題（pole problem)又は特異点問題が生じる。その結果、必ずしも確実に球面勾配ベクトルを算出することができない場合があった。
【０００５】
本発明は、上記の問題点を解決するためになされたものであり、球面勾配ベクトルをより確実に算出可能な球面勾配検出方法、エッジ点検出方法、球面勾配検出装置、エッジ点検出装置、球面勾配検出プログラム及びエッジ点検出プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明に係る球面勾配算出方法は、複数の画素で離散的に表された離散球面に、撮影画像が投影された離散化球面画像を生成する離散化球面画像生成工程と、離散化球面画像を構成する複数の画素の各々の球面勾配ベクトルを、その球面勾配ベクトルを算出すべき画素の画素値と、その画素に隣接する画素の画素値と、その画素を構成する複数の辺の各々の長さ、その画素の面積と、その画素の中心部の点からその画素を構成する複数の角部の各々への単位ベクトルとに基づいて算出する球面勾配算出工程と、を備える。
【０００７】
本発明に係る球面勾配算出装置は、複数の画素で離散的に表された離散球面に、撮影画像が投影された離散化球面画像を生成する離散化球面画像生成部と、離散化球面画像を構成する複数の画素の各々の球面勾配ベクトルを、その球面勾配ベクトルを算出すべき画素の画素値と、その画素に隣接する画素の画素値と、その画素を構成する複数の辺の各々の長さ、その画素の面積と、その画素の中心部の点からその画素を構成する複数の角部の各々への単位ベクトルとに基づいて算出する球面勾配算出部と、を備える。
【０００８】
本発明に係る球面勾配算出プログラムは、コンピュータに、複数の画素で離散的に表された離散球面に、撮影画像が投影された離散化球面画像を生成する離散化球面画像生成工程と、離散化球面画像を構成する複数の画素の各々の球面勾配ベクトルを、その球面勾配ベクトルを算出すべき画素の画素値と、その画素に隣接する画素の画素値と、その画素を構成する複数の辺の各々の長さ、その画素の面積と、その画素の中心部の点からその画素を構成する複数の角部の各々への単位ベクトルとに基づいて算出する球面勾配算出工程と、を実行せしめる。
【０００９】
上記球面勾配算出方法、球面勾配算出装置及び球面勾配算出プログラムでは、離散化球面画像を構成する複数の画素の各々の球面勾配ベクトルを、その球面勾配ベクトルを算出すべき画素の画素値と、その画素に隣接する画素の画素値と、その画素を構成する複数の辺の各々の長さ、その画素の面積と、その画素の中心からその画素を構成する複数の角部の各々への単位ベクトルとに基づいて算出する。上記各角部への単位ベクトル以外はスカラー量であり、単位ベクトルも一定の大きさを有する。そのため、例えば、直交曲線座標系を利用した球面勾配ベクトルの算出方法の場合のように極問題が生じない。その結果、より確実に球面勾配ベクトルを算出可能である。
【００１０】
本発明に係る球面勾配算出方法の球面勾配算出工程では、画素を構成する複数の角部の各々の画素値を、画素の画素値と、その画素及びその角部に隣接する画素の画素値とに基づいて算出し、球面勾配ベクトルを、その球面勾配ベクトルを算出すべき画素を構成する各角部に対して算出された画素値と、その画素の一辺の長さ、その画素の面積と、その画素の中心からその画素の角部への単位ベクトルとに基づいて算出し得る。同様に、本発明に係る球面勾配算出装置が有する球面勾配算出部は、画素を構成する複数の角部の各々の画素値を、画素の画素値と、その画素及びその角部に隣接する画素の画素値とに基づいて算出し、球面勾配ベクトルを、その球面勾配ベクトルを算出すべき画素を構成する各角部に対して算出された画素値と、その画素の一辺の長さ、その画素の面積と、その画素の中心部の点からその画素の角部への単位ベクトルとに基づいて算出し得る。
【００１１】
この場合、球面勾配ベクトルを算出すべき画素をＶｉ（ｉは０以上の整数）とし、画素Ｖｉを構成するＫｉ個（Ｋｉは、３以上の整数）の角部をＣｉ，ｊ（ｊは、１以上Ｋｉ以下の整数）とし、角部Ｃｉ，ｊの画素値をＩ（Ｃｉ，ｊ）とし、Ｋｉ個の角部のうち所定方向回りにおいて角部Ｃｉ，ｊに隣接する角部をＣｉ，ｊ＋１（ただし、ＫｉをＫ＜ｉ＞と表したとき、Ｃｉ，Ｋ＜ｉ＞＋１＝Ｃｉ，１）とし、画素Ｖｉの面積をＡｉとし、角部Ｃｉ，ｊと角部Ｃｉ，ｊ＋１の間の画素Ｖｉの辺の長さをａｊとし、画素Ｖｉの中心から角部Ｃｉ，ｊへの単位ベクトルをｎｊとし、画素Ｖｉの球面勾配ベクトルをＵｉとしたとき、上記球面勾配算出工程において又は上記球面勾配算出部では、球面勾配ベクトルＵｉを式（１）によって算出し得る。
【数１】
2013109643.tif 000003
【００１２】
本発明は、上記本発明に係る球面勾配算出方法で算出した球面勾配ベクトルの大きさが所定値以上の画素をエッジ点として検出するエッジ点検出工程を備える、エッジ点検出方法にも係る。同様に、本発明は、上記球面勾配算出装置と、球面勾配算出装置で算出した球面勾配ベクトルの大きさが所定の値以上の画素をエッジ点として検出するエッジ点検出部と、備える、エッジ点検出装置にも係る。更に、本発明は、コンピュータに、複数の画素で離散的に表された離散球面に、撮影画像が投影された離散化球面画像を生成する離散化球面画像生成工程と、離散化球面画像を構成する複数の画素の各々の球面勾配ベクトルを、その球面勾配ベクトルを算出すべき画素の画素値と、その画素に隣接する画素の画素値と、その画素を構成する複数の辺の各々の長さ、その画素の面積と、その画素の中心部の点からその画素を構成する複数の角部の各々への単位ベクトルとに基づいて算出する球面勾配算出工程と、球面勾配算出工程で算出した球面勾配ベクトルの大きさが所定値以上の画素をエッジ点として検出するエッジ点検出工程と、を実行せしめるエッジ点検出プログラムにも係る。
【００１３】
このエッジ点検出方法、エッジ点検出装置及びエッジ点検出プログラムでは、球面勾配ベクトルを上記のようにして算出しているので、その球面勾配ベクトルに基づいてより確実にエッジ点を検出可能である。
【発明の効果】
【００１４】
本発明によれば、撮影画像に基づく球面勾配ベクトルをより確実に算出可能である。
【図面の簡単な説明】
【００１５】
【図１】本発明に係るエッジ点検出装置の一実施形態を含む撮像システムの構成を概略的に示す図面である。
【図２】図１記載のカメラの一例で実際に撮影した撮影画像の例を示す図面である。
【図３】撮影画像と球面画像との関係を説明する図面である。
【図４】離散球面を用いた球面画像としての離散化球面画像の模式図である。
【図５】（ａ）〜（ｃ）は、０分割レベル〜２分割レベルの測地ドームを示す図面である。
【図６】離散化球面画像の画素の画素値を記憶する記憶セルの配置状態の一例を示す図面である。
【図７】（ａ）及び（ｂ）は図６の記憶セルの配列状態の形成工程を模式的に示す図面である。
【図８】図６に示した記憶セルの配列状態を画素の配列状態とした場合の図２に対応する図面である。
【図９】球面勾配ベクトルを算出する原理を説明するための図面である。
【図１０】エッジ点検出方法の一例を示すフローチャートである。
【図１１】図８に示した画像中のエッジ点を検出した画像に対応する図面である。
【図１２】図２に示した撮影画像中のエッジ点を検出した画像に対応する図面である。
【図１３】本発明に係るエッジ点検出装置を利用した直線検出装置の一実施形態を含む撮影システムの構成を概略的に示す図面である。
【図１４】球面画像上の直線の投影状態を模式的に示す図面である。
【図１５】直線検出方法の一例を示すフローチャートである。
【図１６】テストパターンの一例を示す図面である。
【図１７】図１６のテストパターンの撮影画像に対応するシミュレーション画像を示す図面である。
【図１８】図１６に対する画像に対応する離散化球面画像の画素に対して算出された球面勾配ベクトルのヒストグラムを示す図面である。
【図１９】従来の直交曲線座標系を用いた球面勾配ベクトルの算出方法を説明するための図面である。
【発明を実施するための形態】
【００１６】
以下、図を参照して本発明の実施形態について説明する。以下の説明においては、同一の要素には同一の符号を用いることとし重複する説明は省略する。
【００１７】
図１は、本発明に係るエッジ点検出装置の一実施形態を含む撮像システムの概略構成を示す図面である。撮影システム１０は、撮像装置（撮像手段）２０と、エッジ点検出装置３０とを備える。
【００１８】
撮像装置２０は、全天周の画像を取得するために、２つのカメラ２１，２１を備える。各カメラ２１，２１は、広角レンズである魚眼レンズを備えており、魚眼レンズ２１Ａによって結像された像を撮像素子２１Ｂによって検出する。魚眼レンズ２１Ａの画角の例は１８５°であるが、１８０°以上であればよい。撮像素子２１Ｂの例はＣＣＤである。２つのカメラ２１，２１は、図１に模式的に示すように背面合わせで設けられている。これにより、２つのカメラ２１，２１は、実質的に同一の視点から互いに反対方向を撮影し、全天周における半球分の画像を取得する。図２は、カメラ２１で実際に撮影した撮影画像２２の一例を示す図面である。カメラ２１としては、オリンパスの魚眼レンズFCON-2を取り付けたソニーハンディカムを使用した。
【００１９】
図１に示すように、撮像装置２０は、２つのカメラ２１，２１で取得された画像の画像データをエッジ点検出装置３０に出力する。
【００２０】
エッジ点検出装置３０は、画像入力部３１と、離散球面画像形成部３２と、球面勾配算出部３３と、エッジ点検出部３４と、画像出力部３５とを備える。また、エッジ点検出装置３０は、画像入力部３１、離散化球面画像形成部３２などを制御するＣＰＵ３６と、各種データ及びプログラムを格納する記憶部３７を更に備えてもよい。図１に示したエッジ点検出装置３０が有する各構成要素（画像入力部３１、離散球面画像形成部３２など）は、バスなどによって接続されて、データなどを通信可能である。エッジ点検出装置３０の例は、コンピュータ装置である。エッジ点検出装置３０は、記憶部３７に格納されたエッジ点検出部プログラムを実行することによって、画像入力部３１と、離散球面画像形成部３２と、球面勾配算出部３３と、エッジ点検出部３４と、画像出力部３５の各機能を実現する。
【００２１】
画像入力部３１は、カメラ２１で取得された撮影画像２２の画像データの入力をカメラ２１から受け付ける。画像入力部３１は、無線及び有線通信の少なくとも一方を介してデータを受け取ってもよいし、又は記録媒体（ＤＶＤやＳＤカード等）からデータを受け取ってもよい。
【００２２】
離散球面画像形成部３２は、画像入力部３１で受け付けられた撮影画像２２の画像データを、離散球面画像４０の画像データに変換する。
【００２３】
離散球面画像４０は、球面画像をコンピュータなどで処理するために離散的に表現した球面画像である。まず、球面画像について説明する。球面画像は、一対の撮影画像２２を仮想単位球面Ｓ（図３参照）上に投影した画像である。一対の撮影画像２２，２２は、それぞれ全天周の半分の領域を撮影しているため、各撮影画像２２を用いることで、全天周を表示する球面画像を生成することができる。球面画像は、各撮影画像２２による半球分の画像を、カメラ２１，２１の相対位置及び２つの撮影画像２２，２２のオーバーラップした領域を利用して合成して生成され得る。
【００２４】
図３は、撮影画像と球面画像との対応関係を説明する図面である。図３では、単位球面Ｓの半球分を示している。カメラ２１が有する魚眼レンズ２１Ａの光軸をＺ軸とし、魚眼レンズ２１Ａの主点Ｏを通りＺ軸に直交する平面をＸＹ平面とする。Ｚ軸上において、主点Ｏから魚眼レンズ２１Ａの焦点距離ｆだけ離れた点ｃは、Ｚ軸と直交する撮影画像２２の中心点に対応する。この中心点ｃを通り、Ｚ軸と直交する平面をｘｙ平面とする。撮影画像２２は、魚眼レンズ２１Ａにより、実空間の点Ｐをｘｙ平面に射影してできる画像である。
【００２５】
天頂角をθＡ、方位角をφＡとすると、実空間の点Ｐから投影される球面画像上の点ｐの位置座標は、撮影画像２２上の点ｐaの座標（ｘ，ｙ）を用いて式（２）のように表される。
【数２】
2013109643.tif 000004
上記式（２）は、魚眼レンズ２１Ａの射影方式を等距離射影方式（すなわち、ｒ＝ｆθＡ）とした場合のものである。しかし、魚眼レンズ２１Ａの射影方式は他の射影方式、例えば、立体射影、等立体角射影及び正射影を採用してもよい。
【００２６】
上記球面画像の点ｐと、撮影画像２２の点ｐａとの対応関係から、撮影画像２２に基づいて球面画像を生成することができる。
【００２７】
撮影画像２２が投影される球面Ｓは、理論的には、図３に示すように連続的である。しかし、コンピュータ等でデータ処理する場合には、離散的表現を用いる。図４は、複数の画素により構成される離散球面に画像を投影した離散球面画像の一例を示す模式図である。図４に示す離散球面画像４０は、ＳＣＶＴ（Sperical Centroidal Voronoi Tessellation)画像として知られている（例えば、Q. Du,M.Bunzburger, and L. Ju, “Constrained centroidal Voronoi tessellations ongeneralsurface,” SIAM J. Sci. Comput., 24(5), 2003, pp1499-1506参照）。
【００２８】
離散球面画像４０において画像が投影される離散的な球面である離散球面４１は、理論的な連続した球面Ｓを、測地ドーム法によりＬ回（Ｌは０以上の整数）分割した測地ドーム５０の双対多面体である。本実施形態では、上述した球又は測地ドームにおける位置を説明する際に、緯度及び経度といった地球座標系を使用する。
【００２９】
図５（ａ）〜図５（ｃ）は、測地ドーム法における各分割レベルの測地ドーム５０を示す図面である。図５（ａ）〜図５（ｃ）では、球面Ｓを地球座標系で表現した場合の北極（第１の極）側から見た場合の図面である。図５（ａ）は、０回分割レベル（Ｌ＝０）の測地ドーム５０を示しており、正二十面体に対応する。図５（ｂ）は、１回分割レベル（Ｌ＝１）の測地ドーム５０を示している。図５（ｃ）は、２回分割レベル（Ｌ＝２）の場合を示している。図５（ａ）〜図５（ｃ）に示される中括弧内に示された各数字は、説明の便宜のため示した測地ドーム５０の頂点５１の頂点番号を示している。また、図５（ａ）〜図５（ｃ）では、各測地ドーム５０を分割レベルに応じて、測地ドーム５０Ｌとして示している。
【００３０】
測地ドーム５０の各頂点５１を一つの画素で表した場合、各頂点５１を表す画素と、離散球面４１の画素４２とは双対である。この場合、測地ドーム５０の中心に対する各頂点５１を表す画素の方向と、離散球面４１の中心から画素４２の中心（中心部の点）への方向、すなわち、画素４２の主方向とは一致する。また、離散球面４１の画素４２の形状は、測地ドーム５０における０回分割レベルの頂点５１を中心とする画素４２は正五角形であり、他の画素４２は正六角形である。
【００３１】
測地ドーム５０を生成するための分割回数に応じて、離散球面４１の画素数が決まるので、分割回数は、撮影画像２２の画素数に応じて決めればよい。離散球面画像４０は、離散球面４１の各画素４２に撮影画像２２の対応する画素の画素値を与えることによって形成される。なお、画素４２と、撮影画像２２の画素とが一対一に対応しない場合には、撮影画像２２の画素に対応しない画素４２には、画素４２と対応する撮影画像２２の画素を利用して補間した画素値を割り当てる。
【００３２】
離散球面画像４０を表す画素４２の画素値は、記憶部３７内の複数の記憶セル（画素セル）３７ａに記憶されている。画素４２の画素値が記憶される複数の記憶セル３７ａの配列状態は特に限定されないが、例えば、図６に示すような配列状態とし得る。図６は、記憶部３７内において離散球面画像４０が格納されている記憶セル３７ａの配列状態を示す図面である。図６中の各記憶セル３７ａ内の数値は、図５（ｃ）に示した測地ドーム５０２の各頂点５１の番号に対応する。従って、図６は、図５（ｃ）に示した測地ドーム５０２に双対な離散球面画像４０の画素値の格納状態を示す図面である。
【００３３】
図６に示した離散球面画像４０の各画素４２に対応した記憶セル３７ａの配置状態は、離散球面４１に双対な測地ドーム５０の複数の頂点５１を、図７（ａ）に示したように、２次元状に展開した後、図７（ｂ）に示すように、変形したものに対応する。図７（ａ）は、測地ドーム５０の所定の経線上の複数の頂点５１を基準にして、その頂点５１と同じ緯度の頂点５１が、基準となる頂点５１と同じ行になるように展開した図である。図７（ａ）及び図７（ｂ）では、記憶セル３７ａとの対応関係を示すため、各頂点５１を四角形で表している。図７（ｂ）は、図７（ａ）の頂点５１の配列状態において、各行の頂点５１を中央揃えすることによって得られる頂点５１の配列状態であり、図６に示す記憶セル３７ａの配列状態に対応する。
【００３４】
図６に示す記憶セル３７ａの配列状態では、離散球面画像４０に対して図７（ａ）及び図７（ｂ）に示した変形を行ったものであることから、図６に示す配列状態の記憶セル３７ａに各画素４２の画素値を格納した場合、図６に示す配列状態は、離散球面画像４０の２次元表現に対応する。図８は、図２に示した撮影画像に対応する離散球面画像の２次元表現画像を示す図面である。図８は、カメラ２１，２１のうちの一方の撮影画像を変換した図面である。
【００３５】
なお、各画素４２と記憶セル３７ａとの対応関係並びに各画素４２と撮影画像２２の画素との対応関係を例えばルックアップテーブルに格納しておけば、撮影画像２２から直接、図６に示した配列状態の記憶セル３７ａに、対応する画素４２の画素値を格納できる。図６に示す配列状態は、離散球面画像４０の２次元表現に対応するので、画素４２に対応した記憶セル３７ａに、各画素４２の画素値を格納することが離散球面画像４０を形成することに対応する。
【００３６】
球面勾配算出部３３は、画素４２の球面勾配ベクトルを算出する。図９は、球面勾配ベクトルを算出する原理を説明するための図面である。図９は、離散球面画像４０の一部を抜粋したものである。図９には、球面勾配ベクトルを算出する一つの画素４２と、その周囲の画素４２を示している。図９中の一点鎖線は、測地ドーム法における測地線であり、測地線の交点が測地ドーム５０の頂点５１である。
【００３７】
説明のために、球面勾配ベクトルを算出すべき画素４２を画素Ｖｉと称し、画素Ｖｉに対応する頂点５１を頂点Ｐｉとする。頂点Ｐｉの位置は、画素Ｖｉの中心であり、直交座標系において（Ｘｉ，Ｙｉ，Ｚｉ）で表され得る。そして、画素Ｖｉの位置は、頂点Ｐｉの位置で特定され得る。画素Ｖｉに隣接する画素４２に対応する頂点５１を頂点Ｐｉ，ｊとする。「ｊ」は、画素Ｖｉに隣接する画素４２の個数をＫｉとしたとき、１〜Ｋｉの数である。Ｋｉは、３以上の整数であって、画素４２の形状によって決まる整数である。図５（ｃ）に示した離散球面画像４０において、０分割レベルの頂点５１（図５（ａ）に示す頂点）に対応する画素４２以外の画素４２ではＫｉ＝６であり、０分割レベルの頂点５１に対応する画素４２に対してＫｉ＝５である。画素Ｖｉの角部であって、頂点Ｐｉ，ｊと頂点Ｐｉ，ｊに対して所定方向まわりにおいて隣接している頂点Ｐｉ，ｊ＋１との間にある角部をＣｉ，ｊとする。所定方向まわり（例えば、図９では時計回り）において、角部Ｃｉ，ｊに隣接する角部はＣｉ，ｊ＋１と表す。なお、Ｐｉ，Ｋ＜ｉ＞＋１＝Ｐｉ，１であり、Ｃｉ，Ｋ＜ｉ＞＋１＝Ｃｉ，１である。Ｐｉ，Ｋ＜ｉ＞＋１及びＣｉ，Ｋ＜ｉ＞＋１において＜ｉ＞はＫに対する下付きを表している。また、画素Ｖｉの面積をＡｉとする。
【００３８】
離散球面画像４０の任意の位置の輝度値をＩｓとし、その位置での球面勾配ベクトルをＵｓとすると、球面勾配ベクトルＵｓは、理論的には、次式で表される。
【数３】
2013109643.tif 000005
【００３９】
また、一つの画素Ｖｉに対する球面勾配ベクトルＵｓに対しては次式が成立する。
【数４】
2013109643.tif 000006
式（４）中、∂Ｖｉは画素Ｖｉの境界を表している。式（４）中のベクトルｎは、画素Ｖｉの中心（中心部の点）から境界∂Ｖｉに沿った、外側に向かう単位ベクトルを表している。
【００４０】
式（４）は、次式のように近似され得る。
【数５】
2013109643.tif 000007
式（５）中、Ｕｉは、画素Ｖｉの中心である頂点Ｐｉの位置での球面勾配ベクトルＵｓ（Ｐｉ）である。ａｊは、画素Ｖｉの角部Ｃｉ，ｊと角部Ｃｉ，ｊ＋１との間の画素Ｖｉの辺の長さ、すなわち、角部Ｃｉ，ｊと角部Ｃｉ，ｊ＋１との間の距離である。ベクトルｎｊは、頂点Ｐｉから角部Ｃｉ，ｊに向かう単位ベクトルである。Ｉｓ（Ｃｉ，ｊ）は、角部Ｃｉ，ｊの画素値である。角部Ｃｉ，ｊの画素値は、画素Ｖｉに隣接する画素であって、画素Ｖｉと共に角部Ｃｉ,ｊを構成する画素の画素値Ｉｓ（Ｐｉ，ｊ），Ｉｓ（Ｐｉ，ｊ＋１）を利用して補間した値である。
【００４１】
式（５）より、画素Ｖｉの球面勾配ベクトルＵｉは、次式で得られる。
【数６】
2013109643.tif 000008
図１に示した球面勾配算出部３３は、式（６）を利用して各画素４２の球面勾配ベクトルを算出する。以下、各画素４２の球面勾配ベクトルを単に球面勾配ベクトルＵと称す。式（６）において、Ｉｓ（Ｃｉ，ｊ）は、前述したように、画素値Ｉｓ（Ｐｉ，ｊ），Ｉｓ（Ｐｉ，ｊ＋１）を利用して補間した値であるので、式（６）は、画素Ｖｉに隣接する画素４２の画素値を利用して球面勾配ベクトルを算出していることになる。
【００４２】
エッジ点検出部３４は、球面勾配算出部３３により算出した各画素４２の球面勾配ベクトルＵｓのうち、球面勾配ベクトルＵの大きさが所定値以上である画素４２をエッジ点として検出する。所定値は、計算又は検出誤差などを考慮した値である。
【００４３】
画像出力部３５は、エッジ点検出部３４で検出されたエッジ点に基づく画像を出力する。画像出力部３５は、例えば、離散球面画像形成部３２で形成された離散球面画像４０又はその画像４０の２次元表現の画像を出力したりしてもよい。
【００４４】
図１に示したエッジ点検出装置３０の動作について図１０を利用して説明する。図１０は、エッジ点の検出方法を示すフローチャートである。画像入力部３１が、カメラ２１，２１で撮影された一対の撮影画像２２，２２の画像データを入力画像として受け付ける（撮影画像入力工程Ｓ１）と、離散球面画像形成部３２が離散球面画像４０を生成する（離散球面画像形成工程Ｓ２）。次いで、球面勾配算出部３３は、式（６）を用いて離散球面画像４０を構成する各画素４２に対して球面勾配ベクトルＵを算出する（球面勾配算出工程Ｓ３）。その後、エッジ点検出部３４は、算出された球面勾配ベクトルＵの大きさのうち、所定値以上の大きさの球面勾配ベクトルＵに対応する画素４２をエッジ点として検出する（エッジ点検出工程Ｓ４）。画像出力部３５は、検出されたエッジ点に基づく画像を出力する。なお、画像出力部３５は、他の工程での処理後の画像を適宜出力するようになっていてもよい。
【００４５】
エッジ点検出のための各工程は、記憶部３７に格納されたエッジ点検出部プログラムを実行することによって、画像入力部３１と、離散球面画像形成部３２と、球面勾配算出部３３と、エッジ点検出部３４と、画像出力部３５がそれぞれの機能を実現することによってなされ得る。
【００４６】
上記構成のエッジ点検出装置３０及びエッジ点検出方法では、離散球面画像４０の各画素４２に対して、式（６）に基づいて球面勾配ベクトルＵを算出している。また、式（６）中における画素４２の位置及び画素４２の角部の位置などは、３次元座標系で表すことができる。そのため、３次元座標系における球面勾配ベクトルを直接的に算出し得る。
【００４７】
式（６）の右辺の分母はスカラー量である。そのため、例えば、直交曲線座標系を用いて球面勾配ベクトルＵを算出する場合のようないわゆる極問題（pole problem)が存在しない。通常、カメラ２１の運動を算出する場合などにおいては、直交座標系におけるベクトル表現を用いる。そのため、例えば、球面勾配ベクトル算出用として直交座標系を採用していれば、カメラ２１の運動を算出するための直交座標系への座標変換も必要がない。
【００４８】
そして、エッジ点検出装置３０では、球面勾配算出部３３によって算出された球面勾配ベクトルＵに基づいて、エッジ点を算出可能である。図１１は、図８に示した画像に対するエッジ点の検出結果を示す図面である。図１２は、図２に示した画像に対するエッジ点の検出結果を示す図面である。図１１及び図１２中の白色の各点がエッジ点に対応する。
【００４９】
（第２の実施形態）
図１３は、エッジ点検出装置を利用した直線検出装置を含む撮影システム１１の概略構成を示す図面である。撮影システム１１は、直線検出装置３０１を更に備える点で、撮影システム１０と相違する。直線検出装置３０１は、図１に示したエッジ点検出装置３０の構成において、直線検出部３８を更に備える点で、エッジ点検出装置３０の構成と相違する。直線検出装置３０１は、記憶部３７に格納された直線検出部プログラムを実行することによって、画像入力部３１と、離散球面画像形成部３２と、球面勾配算出部３３と、エッジ点検出部３４と、画像出力部３５、直線検出部３８の各機能を実現する。直線検出部３８以外の機能は、エッジ点検出装置３０の場合と同様であるので、直線検出部３８の説明を中心にして、直線検出装置３０１について説明する。
【００５０】
直線検出部３８による直線検出の原理を説明する。実空間上の直線は、球面画像上に、図１４に示すように、大円の一部として投影される。よって、大円を含む面を、直線が投影された面である直線投影面６０と称す。図１４は、直線の球面画像を表すための球面Ｓに対する投影状態を示す模式図である。図１４では、３つの直線ｌ１，ｌ２，ｌ３の球面画像への投影状態及び各直線ｌ１〜ｌ３の直線投影面６０，６０，６０のうちの一部を模式的に示している。図１４では、各直線ｌ１〜ｌ３に対する直線投影面６０〜６０をそれぞれ直線投影面６０１，６０２，６０３と示している。各直線投影面６０１〜６０３に対してそれぞれ法線ベクトルＮが規定される。
【００５１】
一方、画像中のエッジ点は、通常、輝度の変化が顕著な点として検出される。そのため、エッジ点は、画像中のある線上の点であり得る。そして、実空間の直線上の複数のエッジ点の球面勾配ベクトルＵは、同じ球面勾配ベクトルＵを有しており、各球面勾配ベクトルＵは、エッジ点を含む直線の直線投影面６０の法線ベクトルＮと一致する。
【００５２】
そこで、エッジ点の球面勾配ベクトルＵを、対応する法線ベクトルＮに対して投票し、所定の投票数以上の法線ベクトルＮを抽出すれば、エッジ点が含まれる直線を検出可能である。
【００５３】
図１４では、連続的な球面を利用した球面画像を示しているが、コンピュータ装置では、離散球面画像４０として処理される。離散球面画像４０における各画素４２は、大円を含む何れかの面と略平行となり得る。そのため、直線投影面６０の法線ベクトルＮは、画素４２の位置ベクトルで表され得る。よって、図６に示したような離散球面画像４０の各画素４２に対応づけられた記憶セル３７ａの２次元配列状態は、法線ベクトルＮに対応したセルの配置でもある。従って、記憶部３７内に図６と同様の記憶セル３７ａの配置領域を確保することによって、上記法線ベクトルに対して球面勾配ベクトルを投票する投票領域を直線検出装置３０１に実装できる。
【００５４】
直線検出装置３０１において画像出力部３５は、検出した直線が重畳された離散球面画像４０若しくはそれの二次元表現又は撮影画像２２を出力する。また、画像出力部３５は、エッジ点検出装置３０と同様の画像を出力可能してもよい。
【００５５】
直線検出装置３０１の動作の一例について説明する。図１５は、直線検出方法の一例を示すフローチャートである。直線検出装置３０１では、直線検出装置３０１は、図１０に示した撮影画像入力工程Ｓ１〜エッジ点検出工程Ｓ４と同様にして、エッジ点を算出する。次に、直線検出工程Ｓ６を実施して直線を検出する。すなわち、取得したエッジ点の球面勾配ベクトルＵと、各画素４２の位置ベクトル、すなわち、法線ベクトルＮと比較し、法線ベクトルＮに一致する球面勾配ベクトルＵを、その法線ベクトルＮとしての位置ベクトルの画素４２と対応する記憶セル３７ａに投票する。投票結果において、所定の閾値以上の得票数を有する法線ベクトルＮによって規定される平面を直線投影面６０とし、エッジ点を含む直線を検出する。投票される記憶セル３７ａは、球面勾配ベクトルＵの投票用に記憶部３７に確保された記憶領域内の記憶セル３７ａである。このような投票は、エッジ点のハフ変換に対応するため、投票用の記憶領域は、ハフ空間として機能することになる。
【００５６】
その後、画像出力工程Ｓ５を実行して、検出した直線が重畳された離散球面画像４０もしくはそれの二次元表現又は撮影画像２２を出力する。
【００５７】
図１６〜図１８を参照して上記方法により直線を検出可能である点を、シミュレーション結果を利用してより具体的に説明する。図１６は、シミュレーション用のテストパターンを示す図面である。図１６に示すように、テストパターン７０は、互いに平行な２つの線状パターン７１，７２を有する。図１７は、テストパターン７０の撮影画像（魚眼画像）２２に対応するシミュレーション画像２３を示す図面である。シミュレーションにおいては、テストパターン７０を、視野が１８０度の魚眼レンズで撮影した場合を仮定し、魚眼レンズの射影方式として等距離射影方式を採用して、図１７に示す画像を得た。図１６に示した線状パターン７１，７２に対応する。図１７に示した、撮影画像２２としてのシミュレーション画像２３を入力画像として、直線検出装置３０１は、図１５に示すように、図１０に示した撮影画像入力工程Ｓ１〜エッジ点検出工程Ｓ４と同様にして、エッジ点を算出した後、図１５に示した直線検出工程Ｓ６を実施した。
【００５８】
図１８は、投票結果を示す図面である。図１８に示すように、３つのピークが生じていることが理解され得る。各ピークに対応する記憶セル３７ａを規定することによって、法線ベクトルＮが規定される。図１８において、α軸方向は、図６における記憶セル３７ａの列方向であり、β軸方向は図６における記憶セル３７ａの行方向である。図１７におけるαβ平面が記憶セル３７ａの配列領域であり、図１７においてαβ平面に直交する方向が投票数を示している。
【００５９】
図１６に示したテストパターン７０を視野が１８０度の魚眼レンズで撮影した場合、テストパターンが無限大のパターンを撮影した場合に対応する。この場合、テストパターン７０の外縁は、一つの直線と見なし得る。そのため、テストパターン７０には、３つの直線が存在することになる。そして、図１８に示したように、ヒストグラムでは、３つのピークが生じており、直線を検出できていることが理解され得る。
【００６０】
本実施形態においても、直線検出装置３０１の例は、コンピュータ装置である。直線検出装置３０１は、記憶部３７に格納された直線検出部プログラムを実行することによって、画像入力部３１と、離散球面画像形成部３２と、球面勾配算出部３３と、エッジ点検出部３４と、画像出力部３５の各機能を実現し、上述した直線検出のための各工程をコンピュータに実行せしめる。
【００６１】
以上、本発明の実施形態を説明したが、本発明は上記実施形態に限定されない。例えば、説明のために、上記実施形態では、カメラ２１が有するレンズ部は、魚眼レンズといった広角レンズに限らず、画角が１８０度より小さい他のレンズであってもよい。更に、上記実施形態では、一例として、一対のカメラ２１，２１を利用して全天周の画像を取得する形態を例示した。しかいながら、例えば、一つのカメラ２１による撮影画像についてのみエッジ点検出や直線検出を行ってもよい。
【００６２】
エッジ点検出装置３０及び直線検出装置３１では、画像入力部３１、画像出力部３５、ＣＰＵ３６及び記憶部３７を備えるとした。しかしながら、エッジ点検出装置３０では、離散球面画像形成部３２と、球面勾配算出部３３とを備えていればよい。直線検出装置３１では、離散球面画像形成部３２と、球面勾配算出部３３と、直線検出部３８とを備えていればよい。この場合、画素値の記憶などに利用する記憶領域などは、各構成要素がそれぞれ有していてもよいし、各構成要素が実装されるコンピュータ装置が元々備える記憶領域を利用してもよい。
【００６３】
更に、上記実施形態では、離散球面画像４０を表す各画素４２の画素値の保存方法として、図６に示す記憶セル３７ａの配置状態を例示したが、記憶セル３７ａの配置状態これに限定されない。例えば、図７（ａ）のように展開した状態でもよいし、他の公知の配列状態であってもよい。更に、図７（ａ）の配列状態から図７（ｂ）のような変形に限定されず、例えば、図７（ａ）の列数の異なる行を適宜配列し直して、全体として長方形になるような配列状態であってもよい。なお、全体が長方形の配列状態では、測地ドームにおいて北極及び南極に対応する頂点は削除される場合があるが、複数の画素の２点の削除であるため、画像への影響は低減されていること及び補間により削除した画素の画素値をえてもよい。
【００６４】
離散球面画像４０を形成するための離散球面４１は、測地ドーム法により球面を所定回数分割した測地ドームと双対な離散球面に限定されない。離散球面４１は、複数の画素により構成されていればよい。そして、球面勾配ベクトルは、球面勾配ベクトルを算出すべき画素の画素値と、その画素に隣接する画素の画素値と、その画素を構成する複数の辺の各々の長さ、その画素の面積と、その画素の中心部の点からその画素を構成する複数の角部の各々への単位ベクトルとに基づいて算出されればよい。また、画素の中心部の点は、画素の中心近傍の点であればよい。
【００６５】
上記第１の実施形態では、エッジ点を検出するエッジ点検出装置３０を説明し、第２の実施形態では、そのエッジ点検出装置３０が直線検出部３８を更に備えた直線検出装置３０１について説明した。しかしながら、本発明は、例えば、エッジ点検出装置３０の構成において、エッジ点検出部３４を備えずに図に示すフローチャートで球面勾配ベクトルを算出する工程までを実施する球面勾配算出装置及び球面勾配算出方法に係る。このような球面勾配算出装置及び球面勾配算出方法では、記憶部３７に格納された球面勾配算出プログラムをコンピュータに実行させることによって直線検出装置の各構成要素の機能を実現せしめると共に、球面勾配算出方法の各工程を実行する。
【産業上の利用可能性】
【００６６】
本発明は、球面勾配ベクトルの算出が必要とされる移動ロボット、監視カメラ、レスキュー道具及び自動車といった車両に搭載されるナビゲーション用又は外部確認用のカメラ等に適用可能である。
【符号の説明】
【００６７】
２２…撮影画像、３０…エッジ点検出装置、３１…画像入力部、３２…離散球面画像形成部、３３…球面勾配算出部、３４…エッジ点検出部、４０…離散球面画像、４１…離散球面、４２…画素。
【図１】
2013109643.tif 000011
【図３】
2013109643.tif 000012
【図４】
2013109643.tif 000013
【図５】
2013109643.tif 000014
【図６】
2013109643.tif 000015
【図７】
2013109643.tif 000016
【図９】
2013109643.tif 000017
【図１０】
2013109643.tif 000018
【図１３】
2013109643.tif 000019
【図１４】
2013109643.tif 000020
【図１５】
2013109643.tif 000021
【図１９】
2013109643.tif 000022
【図２】
2013109643.tif 000023
【図８】
2013109643.tif 000024
【図１１】
2013109643.tif 000025
【図１２】
2013109643.tif 000026
【図１６】
2013109643.tif 000027
【図１７】
2013109643.tif 000028
【図１８】
2013109643.tif 000029