JP2018206205A - 魚眼画像補正方法、魚眼画像補正プログラム及び魚眼画像補正装置。 - Google Patents

魚眼画像補正方法、魚眼画像補正プログラム及び魚眼画像補正装置。 Download PDF

Info

Publication number
JP2018206205A
JP2018206205A JP2017112811A JP2017112811A JP2018206205A JP 2018206205 A JP2018206205 A JP 2018206205A JP 2017112811 A JP2017112811 A JP 2017112811A JP 2017112811 A JP2017112811 A JP 2017112811A JP 2018206205 A JP2018206205 A JP 2018206205A
Authority
JP
Japan
Prior art keywords
image
fisheye
image data
point
fisheye image
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2017112811A
Other languages
English (en)
Inventor
片岡 直人
Naoto Kataoka
直人 片岡
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Murata Machinery Ltd
Original Assignee
Murata Machinery Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Murata Machinery Ltd filed Critical Murata Machinery Ltd
Priority to JP2017112811A priority Critical patent/JP2018206205A/ja
Publication of JP2018206205A publication Critical patent/JP2018206205A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】魚眼カメラで撮影した画像中の注目点を、ユーザの操作によりユーザの所望する方向からみた正視画像を生成し表示する。【解決手段】CPU2は、DRAM3上に展開された魚眼画像データImaをディスプレイ9のウィンドウWi1に表示する。ユーザがマウス8の操作により注目点を指定すると、CPU2は注目点を中心とした正視画像データImb1を生成しディスプレイ9に表示する。ユーザが方向キー71を操作することにより、CPU2は操作に応じた角度α視線軸を上下方向に回転し、角度β視線軸を水平方向に回転し、平行移動量を補正し、さらにスケーリング倍率を補正した正視画像データImb2をDRAM3上に生成し、ディスプレイ9のウィンドウWi2に表示する。【選択図】図13

Description

この発明は魚眼カメラで撮影した魚眼画像を正視図に補正する画像処理に関する。
広角カメラは一つのカメラで広い範囲が撮影できるので、周辺を監視するために車両等に搭載されている。広角カメラで撮影した画像を、特定の視点から見た俯瞰図に変換する技術が知られている(特許文献1)。特許文献1では、車体後方に取り付けられた広角カメラで撮影されたが画像を、車体後部上方の仮想視点から見下ろす画像に変換して、モニタに表示している。
特許文献1の画像の変換では、撮影画像を三次元投影モデルに従って仮想視点から見た出力画像に変換する。これには、撮影画像の画素の位置座標と出力画像の画素の位置座標との対応を示す変換アドレス(マッピングメモリテーブル)を格納したアドレスメモリを用いることが開示されている。
特開2004−21307号
広角カメラよりさらに画角の広い魚眼カメラでは、より大きな範囲が一つのカメラで撮影できる。魚眼撮影画像に含まれる任意の被写体を、任意の視点から見ることができれば便利である。しかし、特許文献1では、仮想視点と仮想視点から見る方向は1つに固定されており、撮影画像をマッピングテーブルで出力画像に変換していたが、この方法は任意の視点、任意の方向から見た画像に変換する際には適用が困難である。
この発明は上記に鑑みなされたもので、コンピュータを用いて魚眼カメラで撮影された画像(以下、魚眼画像という)を、コンピュータを用いて任意の視点、任意の方向からみた画像に変換する魚眼画像処理方法、魚眼画像補正プログラム及び魚眼画像補正装置を提供すること目的としている。
この発明の一観点にかかる魚眼画像補正方法はコンピュータを用いて実現するものであり下記のステップ(a)〜(h)を備えている。
(a)魚眼画像データをメモリに展開するステップ、
(b)前記メモリ上に展開された魚眼画像データをディスプレイに表示するステップ、
(c)ユーザインタフェースを介して、ディスプレイに表示された魚眼画像内の注目点の指定を受け付けるステップ、
(d)前記注目点を中心となるように視線軸を回転させ、回転させた視線軸に直交し、半径Rの仮想球面に接する投影面に魚眼画像を投影して第1の正視画像データを前記メモリ上に生成するステップ、
(e)第1の正視画像データを前記ディスプレイに表示するステップ、
(f)前記ユーザインタフェースからの入力に基づき、視線移動量を決定するステップと、
(g)決定された視線移動量に基づき、魚眼画像データより第2の正視画像データを前記メモリ上に生成するステップと、
(h)第2の正視画像データをディスプレイに表示するステップ
上記(f)〜(h)の処理を繰り返すことにより、ユーザは注目点を所望する方向から見た正視画像を生成することができる。
一実施形態においては、第1の正視画像データを生成するステップ(d)が、下記のステップ(d1)及び(d2)を含んでいる。
(d1)前記魚眼画像の中心を通る視線軸が水平であり、前記注目点の座標から上下方向の回転角度θの値、左右方向の回転角度φの値を算出するステップ、
(d2)前記回転角度θ、φの値に行列演算式を適用して第1の正視画像データ内の座標点に対応する点の画像データを前記メモリ上に展開された魚眼画像データから求めるステップ。
一実施形態においては、前記ステップ(f)のステップが以下の(f1)〜(f4)のステップを含んでいる。
(f1)前記ユーザインタフェースにより第1の正視画像の視線軸を上下方向に角度α回転させる指示を受け付けるステップ、
(f2)前記ユーザインタフェースにより第1の正視画像の視線軸を左右方向に角度β回転させる指示を受け付けるステップ、
(f3)決定された角度α、βより、視線軸の平行移動量を算出するステップと、
(f4) 前記決定された角度より、スケーリング倍率Scを算出するステップ ここで、角度α、βは共に正又は負の値をとるものとする。
一実施形態においては、前記第2の正視画像データを生成するステップは、
前記視線軸の平行移動量及びスケーリング倍率Scを考慮しつつ、上下方向の回転角度(θ+α)、左右方向の回転角度(φ+β)に行列演算式を適用し、前記魚眼画像データから第2の正視画像データを生成する。
一実施形態において、前記ステップ(g)は、
(g1)第2の正視画像の座標点(u,v)について、第2の正視画像の中心座標(u0,v0)からの距離がスケーリング倍率分大きくなる座標点(u’,v’)を算出するステップと、
(g2)座標点(u’,v’)に前記行列演算式を適用し、左右方向の平行移動量Δu,上下方向の平行移動量Δvを減算し、魚眼画像中の対応点(x,y)を決定するステップと、
(g3)前記対応点(x、y)の画素値を算出するステップと、
(g4)算出された画素値を第2の正視画像の座標点(u,v)の画素値とするステップを備えている。
一実施形態においては、ステップ(g)において
前記左右方向の平行移動量Δuは、
Δu=−R×tanαで算出され、
前記左右方向の平行移動量Δuは、
Δv=−R×SQRT(1+(tanα)^2)×tanβで算出され、
前記スケーリング倍率Scは
Sc=SQRT(1+(tanα)^2+(tanβ)^2)で算出される
ここで、SQRT()は引数の平方根を求める関数であり、()^2は引数の2乗を求める関数である。
この発明の一観点にかかる魚眼画像補正プログラムは、プロセッサ、メモリ、ユーザインタフェース、ビデオインタフェースを備えたコンピュータに適用され、魚眼画像データを前記メモリに展開し、前記メモリ上に展開された魚眼画像データを前記ビデオインタフェースから出力し、ユーザインタフェースを介して、魚眼画像内の注目点の指定を受け付け、前記注目点を中心となるように視線軸を回転させ、視線軸に直交し、半径Rの仮想球面に接する投影面に魚眼画像を投影して第1の正視画像データを前記メモリ上に生成し、第1の正視画像データを前記ビデオインタフェースから出力し、前記ユーザインタフェースからの入力に基づき、視線移動量を決定し、決定された視線移動量に基づき、魚眼画像データより第2の正視画像データを前記メモリ上に生成し、第2の正視画像データをビデオインタフェースから出力することを前記プロセッサに実行させる。
この明細書において、ユーザインタフェースはコンピュータに直接接続される入力機器であってもよいし、コンピュータにLAN(Local Area Network)やインターネットによって接続される他のコンピュータ(クライアント)に接続される入力機器も含むものとする。またビデオインタフェースは、ディスプレイケーブルを介してディスプレイに画像データ(又はアナログ画像信号)を出力することのみならず、LANやインターネットを介してクライアントのディスプレイに画像データを出力することも含むものとする。
この発明の一観点にかかる魚眼画像補正装置は、プロセッサ、メモリ、ユーザインタフェース、ビデオインタフェースを備え、魚眼画像を補正する魚眼画像補正装置であり、前記プロセッサは、魚眼画像データを前記メモリに展開し、前記メモリ上に展開された魚眼画像データを前記ビデオインタフェースから出力し、ユーザインタフェースを介して、魚眼画像内の注目点の指定を受けつけ、前記注目点を中心となるように視線軸を回転させ、視線軸に直交し、半径Rの仮想球面に接する投影面に魚眼画像を投影して第1の正視画像データを前記メモリ上に生成し、前記ユーザインタフェースからの入力に基づき、視線移動量を決定し、決定された視線移動量に基づき、魚眼画像データより第2の正視画像データを前記メモリ上に生成し、第2の正視画像データをビデオインタフェースから出力するよう構成される。
本発明によれば、ユーザはユーザインタフェースを操作することによりディスプレイに表示された魚眼画像に写っている注目点を指定し、さらにユーザインタフェースを操作することにより、注目点をユーザの所望する方向より見た正視画像を得ることができる。
正射影魚眼レンズの仮想球面モデルを説明する図である。 魚眼カメラで撮影しようとする被写体を説明する図である。 図2の被写体を魚眼カメラで撮影した画像である。 (a)は光軸が水平な場合の仮想球面モデルにおける視線軸の回転を説明する図であり、(b)はその変換式を示す図である。 (a)投影面に投射された像の拡大を説明する図、(b)はその倍率を導くための式を示す図である。 (a)図3の魚眼カメラで撮影した画像から、視線軸を回転して描画した正視図の一例を示し、(b)はその変換式を示す図である。 (a)は光軸が垂直上方向きの場合の仮想球面モデルにおける視線軸の回転を説明する図であり、(b)はその変換式を示す図である。 (a)はX軸回りに視線軸を角度α回転した状態を説明する図、(b)はその変換式を説明する図である。 (a)はY軸回りに視線軸を角度β回転した状態を説明する図、(b)はその変換式を説明する図である。 投影面に射影された像の大きさの変化を説明する図である。 (a)は、図10での各点の位置関係を説明する図、(b)はスケーリング倍率を導出する計算式を説明する図である。 (a)は視線軸回転を行った後の状態での正視図であり、(b)は(a)の正視図から視線軸の平行移動を行って注目点が中心に位置する状態での正視図である。 この発明の実施例で使用するパーソナルコンピュータの構成を説明するブロック図である。 実施例に係るパーソナルコンピュータのディスプレイに表示される魚眼画像のウィンドウを示す図である。 (a)は実施例に係るパーソナルコンピュータのディスプレイに表示される注目点を中心とした正視図を表示するウィンドウの図、(b)は視線軸移動が施された正視図を表示するウィンドウの図である。 実施例に係る魚眼補正アプリケーションの動作を説明するフロー図である。 実施例に係る魚眼補正アプリケーションの動作を説明するフロー図である。 実施例に係る魚眼補正アプリケーションの動作を説明するフロー図である。 (a)スケーリング倍率補正のための座標変換を説明する図、(b)は座標変換式を示す図である。 実施例に係る演算処理のための数式をまとめて示す図である。 等距離射影方式を説明する図である。 画角が180°を超える場合を説明する図である。
発明の実施の形態を、図1〜図22を参照しながら以下に説明する。まず、この発明の画像処理の原理について説明する。
魚眼カメラに用いられる魚眼レンズには、正射影方式、等距離射影方式、立体射影方式、等立体角射影方式の4つの方式のレンズが知られている。この発明は、方式の違いを補正することでいずれの方式の魚眼レンズにも適用可能であるが、ここでは正射影方式の魚眼レンズについて図1を参照しながら説明する。
(正射影方式の説明)
図1は、レンズの表面(半球面)Sに入射した光がレンズで屈折し、平面H上に投影されているというモデルを示している。このモデルは「仮想球面モデル」と呼ばれている。図1中、符号Rは半球面の半径、符号Axはレンズの光軸である。光軸Axと平面Hとの交差する点をO、光軸Axと仮想球面Sが交差する点をPとする。光軸Axに対して角度ψで入射する光線Lは、レンズにより屈折して光軸Axと平行な光線L’ として平面Hに投射される。光線L’ が平面Hに投射された点Aとすれば、点Oと点Aを結ぶ距離rは、魚眼レンズの焦点距離fとするとfsinψで表される。以下、説明を簡単にするためにfはRに等しいものとする。
r = Rsinψ ・・・・(0)
平面Hに投影された画像を仮想球面S上に配置し、その一部を平面に投影して、魚眼画像から正視画像を生成することができる。図1では、仮想球面Sと光軸Axの交点Pで仮想球面Sに接する投影面PLを示しており、投影面PLは平面Hと平行となる。平面Hに投影されたA点に対応する投影面PL上の点A’は、入射光Lと投影面PLとの交点となる。
(視線軸回転:前提)
図1では、表面Sと光軸Axとの交点Pで仮想球面Sに接する平面PLについて考察したが、任意の点で仮想球面Sに接する平面について、正視画像を描画することができる。すなわち、レンズの光軸Axは変わらないが、見かけ上カメラを回転したようにして任意の方向の正視画像を生成することができる。
この場合光軸Axを水平又は垂直に据え付けると、正視画像を生成する処理が簡単となる。ここでは、光軸Axを水平に設定した例を説明する。図2は、被写体の正視画像を示している。被写体は廊下がT字状に交差するところを見ており、廊下の左右の壁面W1、W2、中央の壁面W3、天井C及び床Fが見えている。向かって右の壁面W2には矩形のパネル状の物体Dが配置されている。この状態では、物体Dは斜め方向から見ていることとなる。図2中Xは左右方向の水平軸、Yは上下方向の垂直軸を示している。Z軸はO点を通って紙面垂直方向(前後方向)に伸びており、レンズの光軸と一致している。
図3は、図2の被写体を視野角180°の魚眼レンズで撮影した画像を示している。魚眼レンズは、二次元CCD(Charge Coupled Device、図示せず)上に円形の像を結ぶが、画像データとしては矩形状のラスタ画像として出力されるため、円形の像(イメージサークル)の外方部分は黒として処理されている。
図3では、撮影画像の上下・左右が絶対的に決まっているので、カメラの視線軸回転は、X軸回りの回転Tx(見上げる、見下ろす)とY軸回りの回転Ty(左を向く、右を向く)だけを考慮すればよいこととなる。X軸回りの回転が「上下方向」の回転となり、Y軸回りの回転が「左右方向」の回転となる。なお、光軸を垂直になるようレンズをセットした場合については後述する。
図4(a)は、図1の仮想球面モデルを斜め後方から見た図であり、仮想球面S上のP点において投影面PL0が点接触している状態を表している。P点は、O点を中心としてX軸回りに角度θ、Y軸回りに角度φ回転した位置にある。P点及びO点を通る直線は投影面PL0の法線nとなる。投影面PL0には、U軸、V軸による直交座標が設定されている。
投影面PL上に仮想球面Sの正射影を投影した場合には、座標(u,v)及び仮想球面Sの半径Rと仮想球面Sの座標(x, y, z)との間には、図4(b)に示す(1)式の関係があることが知られているので、座標(u,v)から元の座標(x,y)を求め、求めた座標(x,y)の画素値を投影面PLの座標(u,v)にマッピングすることで、正射影の画像を得ることができる。つまり、P点が光軸上に来るように仮想球面Sを回転した状態の正射影画像を得ることができる。ただし、この状態では魚眼レンズ固有の見え方の歪が残っている。そこで、人の目で見た時と同じような自然な見え方にするために、中心射影による正視画像を生成する。
点Pを中心とした正視画像について図5(a)(b)を参照しながら説明する。まず、点Pで仮想球面Sに接触する投影面PL0を想定する。この投影面PL0上には2次元直交座標系UVがある。仮想球面S上の点P1の像は、投影面PL0上のP1’ に投影される。点P1’ の座標を(u1,v1,R)とし、P点からのオフセットu*, v*をそれぞれ、
u*=u1−u ・・・・(1.2a)
v*=v1−v ・・・・(1.2b)
とする。
投影面PL0における点Pと点P1’ との距離L1は、三平方の定理により、
L1=SQRT((u*)^2+(v*)^2) ・・・・(1.2)
と表される。SQRT()は、引数の平方根を示す関数であり、()^2は引数の2乗を示す関数である。なお、図面中の式で平方根を表すには根号√を使用している。一方仮想球面S上の点P1と仮想球面Sの中心点Oとの距離L2は、三平方の定理により、式(1.3)で表される。
L2=SQRT((L1)^2+(R)^2)
=SQRT((u*)^2+(v*)^2+(R)^2) ・・・・(1.3)
点Oと点Pを結ぶ線分から点P1の距離をL0とすると、三角形の相似の関係からL0とL1との比L1/L0は、点Oと点Pとの距離Rと、点Oと点P1’ との距離L2とで表せ、この値をSc0とすると(1.4)式の関係がある。
Sc0 =L1/L0=L2/R
=SQRT((u*)^2+(v*)^2+(R)^2)/R・・・(1.4)
このSc0を以下、倍率と呼ぶ。倍率Sc0の値は投影画像の中心(u*=0,v*=0)でのみ1となり、その他の点(u,v)では1より大きくなる(1≦Sc0)。そこで、投影面PL0上の中心からの距離を1/Sc0倍すれば、元のXY平面に投影された画像と同じ大きさにすることができる。倍率Sc0は、(1,4)式で示されるように、u*, v*の関数であり、中心点Pから離れるほど大きくなる。
(x、y、z)=(1/Sc0)(u*, v*,R)・・・(1.5)
倍率Sc0を考慮した(1)式を、(1.6)式として図5(b)に示す。なお、後述の図6(a)のように投影画像の中心点にUV座標の原点を一致させると、オフセット値u*, v*は座標値u,vと同じとなる。
(1.5)式の関係を(1)式に適用すれば、(1,6)式となる。この(1,6)式を用いて、投影面PL0上の点(u,v)に対応するXY平面上の点(x、y)を求め、その位置での画素の値を投影面PL0上にマッピングすれば、点Pを中心とした正視画像を描画することができる。
図3に示した画像において、物体Dを中心にした正視画像を生成したい場合には、物体DはX軸上にあるのでY軸回りの回転Tyだけを考慮すればよい。X軸回りの回転Txはなく角度θは0となり、Y軸回りに角度φ1回転させることになるので、sinθ=0、cosθ=1となり、図6(b)に示す(2)式で表すことができる。この(2)式は、(1.4)式で表される倍率Sc0を考慮したものとなっている。図6(a)は、(2)式を用いて生成された正視画像を示しており、物体Dの像d1が正視画像の中央に位置するようになっている。
次に、Z軸(光軸)が垂直な場合について図7を参照しながら説明する。この場合はXY平面が水平であって、Z軸回りの回転(周囲を見回す)角度ψとX軸回りの回転(レンズの向きが上向きならば見下ろす、レンズの向きが下向きならば見上げる)角度θのみを考慮すればよい。仮想球面S上のP点が、Z軸回りに角度ψ、X軸回りに角度θと回転したものであるとするならば、P点で仮想球面Sに接する投影面PL0’ 上の正視画像の座標u,vと仮想球面Sの座標(x、y、z)との関係は、(1.1)式で表すことができる。
(視線軸移動:X軸回りの回転)
図6(a)において、物体Dの像d1は正視画像の中央には来ているが、物体Dはもともと斜め前方に存在していたものであるから傾斜した状態で生成されている。物体Dに垂直な方向からみた正視画像を見たい場合には、視線軸回転と平行移動とを行う必要がある(以下、視線軸の回転と平行移動をまとめて「視線軸移動」という場合がある)。視線軸移動についてX軸回りの回転を角度α、Y軸回りの回転を角度β、U軸方向の平行移動量をΔu、V軸方向の平行移動量をΔvとする。
まず、X軸回りに角度α回転する処理について図8(a)を参照しながら説明する。図8(a)中、Y’ 軸、Z’ 軸は、図4(a)のY軸、Z軸より、X軸回りに角度θ、Y軸回りに角度φ回転した状態での座標軸であり、図示しないがX’ 軸はO点を通って紙面垂直下方に伸びている。Z’ 軸上に物体Dの像d1が位置している。物体Dの像d1がZ’ 軸と交差する点をP1とする。投影面PL1は、Z’ 軸に対してY’Z’ 平面内で角度ξ傾いている。そこで、角度α(=π- ξ)視線軸を回転し、かつO点を平行移動量ΔuだけU軸上を移動させてO1点とすると、このO1点より物体Dをその法線方向nからみることができる。物体Dの像d2は、Q1点で仮想球面Sに接触する投影面PL2上にあり、投影面PL1上の物体Dの像d1より大きくなっている。
X軸回りの角度αの回転後の投影面PL2の(u, v)座標は、図8(b)の(3)式から逆算した魚眼画像の座標(x、y)に対応する。なお、(3)式において、sin(θ+α)は、加法定理によりsinθcosα+cosθsinαと計算することもできる。また、cos(θ+α)も加法定理により、cosθcosα−sinθsinαと計算することもできる。
一方、平行移動量ΔUは、仮想球面Sの半径Rと角度αより、以下の(4)式で表される。
Δu= −R×tanα・・・(4)
また、投影面PL2はZ’ 軸と点Mで交差するが、点Oと点Mとの距離R1は以下の(5)式で表せる。
R1=R/cosα=R×SQRT(1+(tanα)^2)・・・(5)
1+(tanα)^2は1よりも大きいので、R1は仮想球面Sの半径Rより大きくなる。
(視線軸移動:Y軸回りの回転)
次に、Y軸回りの回転を、図9を参照しながら説明する。図9(a)において、Y’ 軸は点Oを通り、紙面垂直上方に向いている。このY’ 軸の周りに視線軸を角度β回転し平行移動量Δv移動させることにより、物体Dの像d2を法線方向からとらえることができる。さきにX軸回りの回転により仮想球面の半径はR1となっている。Oを中心にR1を半径とする仮想球面をS1とする。図9(a)で、点Oと点Q2との距離、点O2と点P3との距離は共にR1となっている。
まず、視線軸をY’ 軸まわりに角度β回転させる。角度β回転させた視線軸が仮想球面S1と接する点をQ2とする。点Q2で仮想球面S1に接触する投影面PL3に投影される物体Dの像はd3となる。元のXYZ座標(x,y,z)と投影面PL3のUV座標(u,v、R)との間には、図9(b)の(6)式であらわされる。角度θにはX’ 軸回り回転角α、角度φにはY’ 軸回りの回転角βがそれぞれ加えられている。投影面PL3上のUV座標(u,v)から(6)式により座標(x,y)を逆算し、得られた(x、y)の画素データを投影面PL3の座標(u、v)にマッピングする。
次に、視線軸を平行移動量Δv平行移動する。Δvは、下記の(7)式で表される。
Δv=−R1×tanβ=−R×SQRT(1+(tanα)^2)×tanβ・・・(7)
(視線軸移動:スケーリング)
上述のように投影面PL3上に投影された物体Dの像d3は、元の投影面PL1の対象物の像d1よりも拡大されている。図10及び図11を用いて、スケーリング倍率Scを求める方法について説明する。
図10は、投影面PL4上にある像d4の中心がP4の位置で仮想球面Sと交差している。像d4を、Q点で接し、Z軸と直交する投影面PL5上に投影した像をd5とし、その中心点をP5とする。仮想球面Sの半径をRとすると、仮想球面Sの中心点Oと点Qとの距離、及び中心点Oと点P4との間の距離はRとなる。図11(b)の(8.1)式にこの関係が示されている。
ここで、図11(a)に示すように、点Oと点P5を結ぶ直線がX軸まわりに角度α1、Y軸回りに角度β1回転しているとすると、点P5のY軸座標点P5Yと点Qとの距離は(8.2)式に示すようにRtanα1となる。また、点P5のX軸座標点P5xと点Qとの距離は、(8.3)式にRtanβ1となる。三平方の定理を適用し、点Qと点P5の距離は(8.4)式で表すことができる。
点O、点Q、点P5で構成される三角形は点Qにおいて直角となるので、再び三平方の定理を適用し、点Oと点P5の距離は(8.5)式で表される。(8.6)式で表されるように点Oと点P5の距離を点Oと点P4との距離で除したものが、拡大倍率Scとなる。以下、この拡大倍率Scをスケーリング倍率と呼ぶ。PL3に投影される画像を1/Sc倍することにより、投影された画像のスケールが図4の投影面PL0に投影された像と同じになる。
ここで、図6(a)に示したケースに、視線軸移動を適用した例を図12に示す。この場合、X軸回りの回転はないため角度αは0となると共にtanαも0となり、Y軸回りの回転のみを考慮すればよい。Y軸回りに角度β2回転させれば、注目物Dをその法線方向から見ることができるとする。
まず、Y軸回りに角度β2回転させた状態の正視図を図12(a)に示す。視線軸移動を行うことにより、物体Dを法線方向から見えようになっている。しかし、物体Dの像d3の中心P3は、図12(a)の中心から左方向にΔvずれている。また、全体的にスケーリング倍率Sc拡大された状態で描画される。ここで、Δv,Scは下記のように表される。
Δv= −Rtanβ2 ・・・・(7.1)
Sc=SQRT(1+(tanβ2)^2) ・・・・(8.61)
そこで、Δvだけ画像をU軸正方向に移動し、倍率1/Scで縮小すると図12(b)のような正視図が得られる。これで、物体Dの像d3が中央に位置し、物体Dを法線方向からみた正視図が完成する。
図2、図6(a)、図12(a)及び図12(b)において、注目物Dは平面状のパネルであるとして説明した。実際に、ユーザが観察したい注目物は平面のみならず立体物も有り得る。また、ユーザは必ずしも法線方向からだけ見たいだけではなく、その対象物の特徴をよく表す方向から見たい場合も少なくない。従って、前記角度α、βはユーザが調整することにより、ユーザの見たい方向を決定するような方法が望ましい。以下、この発明の実施例を図13〜19を参照しながら説明する。前提として、魚眼画像は、光軸が水平で正射影方式の魚眼レンズで撮影されたものとする。
この実施例では、1台のパーソナルコンピュータ(以下PCという)で本発明の魚眼画像補正処理を実行する場合について説明する。図13は、この実施例に用いるPC1の構成を示すブロック図である。CPU(Central Processing Unit)2は魚眼補正処理を実行する主体となる構成要素であり、バス2aを介して、主記憶装置であるDDRSDRAM(Double-Data-Rate Synchronous Dynamic Random Access Memory、以下DRAMという)3が接続されている。CPU2には、チップセット4がバス2bを介して接続される。チップセット4は、USB(Universal Serial Bus)ポート4a、補助記憶装置を接続するためのSATA(Serial Advanced Technology Attachment)インタフェース4b、ビデオインタフェース4c、ネットワークインタフェース4dを有している。
USBポート4aには、キーボード7、マウス8などの周辺機器が接続される。キーボード7は、方向キー71を備えており、符号72は、方向キー71を拡大して示している。SATAインタフェース4bには、補助記憶装置としてハードディスクドライブ(Hard Disk Drive、以下HDDと略称する)5が接続されている。なお、HDDに代えてソリッドステートドライブ(Solid State Drive;SSD)を適用することもできる。ビデオインタフェース4cには、ディスプレイ9が接続される。ネットワークインタフェース4dにはLAN(Local Area Network)インタフェース6が接続され、LAN10にPC1が接続される。LAN10は、ルーター11を介してクラウド12に接続される。LAN10は有線LAN、無線LANいずれであってもよい。
DRAM3には、オペレーティングシステム(Operating System; OS)、各種ミドルウェア、各種ドライバ等がCPU2で実行可能に展開される。これらは、HDD5に圧縮されて記憶されており、PC1の起動時にCPU2がHDD5から読みし、DRAM3上に展開する。
HDD5には、後述の魚眼画像補正アプリケーションApも格納されており、ユーザが魚眼画像補正アプリケーションApの起動を指示すると、CPU2が魚眼画像補正アプリケーションApをHDD5から読みだしDRAM3上に展開する。図13中の符号Apは、DRAM3上に展開された魚眼画像補正アプリケーションApのインスタンス(実体)を概念的に示している。
LAN10には、ネットワーク魚眼カメラCa1を接続することができる。また、USBを介して魚眼カメラCa2を接続することもできる。
(魚眼画像データの取得)
魚眼画像補正処理を行うには、そのもととなる魚眼画像ファイルを取得する必要がある。カメラから取得する場合には、LAN10上のネットワーク魚眼カメラCa1、USB接続の魚眼カメラCa2から画像ファイルを取得することができる。さらに、クラウド12上のネットワーク魚眼カメラ(図示せず)からも画像ファイルを取得することが可能である。また、図13では図示していないが、近距離無線通信(NFC:Near Field radio Communication)により魚眼カメラから魚眼画像ファイルを取得してもよい。
既に魚眼画像ファイルを格納している、LAN10上の図示しないサーバ、ストレージ、他のPC等から魚眼画像ファイルを取得してもよい。同様に、クラウド12上のサーバ13やストレージ14から魚眼画像ファイルをダウンロードしてもよい。また魚眼画像ファイルを記憶している、USBフラッシュメモリ、メモリーカード、光ディスク(CD(Compact Disk)、DVD(Digital Versatile Disc)等)から魚眼画像ファイルを読み込むようにしてもよい。
CPU2は、このように取得した魚眼画像ファイルをHDD5に書き込んで保持する。魚眼画像ファイルApは、魚眼画像補正アプリケーションを起動してから、取得しても構わない。魚眼画像ファイルには、一般的な画像ファイル型式、ビットマップ、Jpeg(Joint Photographic Experts Group)、PNG(Portable Network Graphics)、TIFF(Tagged Image File Format)等を適用することができる。魚眼カメラで撮影した動画(MPEG(Moving Picture Experts Group)、ITU−T勧告H.264等)からキャプチャした画像も補正処理の対象とすることができる。なお、魚眼画像はモノクローム、カラーどちらでもよい。
(魚眼画像補正アプリケーション)
次に魚眼補正処理について図16〜20を参照しながら説明する。
ユーザが、キーボード7やマウス8を用いて魚眼画像補正アプリ―ケーションApを起動すると、CPU2は、魚眼画像補正アプリケーションApをHDD5より読み出し、DRAM3上に展開する。次に、ユーザは魚眼画像補正の対象となる魚眼画像ファイルを指定する。CPU2は、指定された魚眼画像ファイルHDD5等から読みだし、DRAM3上に画像データとして展開する。魚眼画像補正アプリ―ケーションApが展開された魚眼画像データImaをウィンドウWi1としてディスプレイ9に表示する(ステップ(以下STという)1)。
図14は、魚眼画像をウィンドウWi1に表示した状態を示している。図中Oは、魚眼レンズの仮想球面の中心を示し、魚眼レンズの光軸が点Oを通り紙面垂直方向に伸びている。図3では、X軸及びY軸が点Oを通り、点Oで直交するように示している。しかし、コンピュータで画像処理する際には、画像の左上の点O’を原点としてX軸、Y軸を設定するのが望ましい。コンピュータのディスプレイ画面上では、Y軸の向きが仮想球面モデルとは逆になる。仮想球面の半径をRとすると点OのXY座標は(R、R)となる。なお、X軸、Y軸はディスプレイ9上には表示する必要はないので破線で示している。
ユーザがウィンドウWi1の魚眼画像上にマウスポインタMPを移動すると、マウスポインタMPの周囲に正方形の正視画像を切り出す目安となる線Ltが表示される。ユーザがマウス8の左ボタンをクリックすると、CPU2はそのときマウスポインタMPが指している点を注目点Pと認識する(ST2)。注目点PのXY座標を(xt、yt)とする。CPU2は、座標(xt、yt)を中心とした正視画像データImb1をDRAM3上に生成する。
魚眼画像を撮影したレンズが正射影レンズの場合には、正視画像を生成するときのX軸回りの回転角度θ、Y軸回りの角度φには以下の(9)、(10)の関係が成り立つ。
(xt−R)/R = sin θ ・・・(9)
(yt−R)/R = sin φ ・・・(10)
(9)式にarcsin関数を適用して、角度θを求める。cosθやtanθはsinθから求めることができるので、計算上は角度θの値自体を必ずしも求める必要はない。(10)式の角度φについても同様である。
角度θ、φが得られたら(1.6)式を用いて、CPU2は注目点Pを中心とする正視画像データImb1をDRAM3上に生成し、図15(a)に示すようにウィンドウWi2により第1の正視画像としてディスプレイ9に表示する(ST3)。このウィンドウW2で表示される第1の正視画像の原点も左上の角とされ、U軸、V軸が破線で示すように設定される。U軸、V軸もディスプレイ9には表示されない。正視画像上の座標(u、v)に(1.6)式を適用し、魚眼画像における座標(x、y)を逆算する。
なお、UV座標系の点(u、v)から(1.6)式を用いてXY座標系の点(x,y)を逆算して求めるが、u,vは整数であっても、x、yは整数とならないことが多い。すなわち、座標点(x、y)は魚眼画像中の画素の位置とは一致することが少ないこととなる。そこで、CPU2は座標点(x、y)近傍の複数の画素の値を、座標点(x、y)との距離に基づき加重平均をとるなどして座標点(u,v)の画素の値を決定する。また、座標点(x,y)が、イメージサークル外に位置した場合には、画素の値として黒が設定される。
注目点の位置には物体Dの像d1が表示されているが、この対象物を異なる角度から見たい場合には、ユーザは方向キー71を操作して視線軸を移動する。まず、CPU2はU軸回りの回転角度α、V軸回りの回転角度βを共に0と設定する(ST4)。次に、CPU2は、方向キー71が押されたかどうかを判定する(ST5)。いずれかの方向キーが押された場合には、CPU2はST6の判定に分岐する。ST6では、CPU2は押された方向キーがいずれの方向キーかを判別する。
ST6で押された方向キーが上方向キー7aであった場合には、CPU2はST7の処理に分岐し、角度αから角度Δαを減算する。押された方向キーが右方向キーであった場合には、CPU2はST8の処理に分岐し、角度βに角度Δβを減算する。角度Δα、Δβは、一回の方向キーの操作での視線軸の回転角度であり、適切な正の値に設定される。
ST6の判定で押された方向キーが左方向キー7dであった場合には、CPU2はST9に分岐し、角度βから角度Δβを減算する。押された方向キーが下方向キー7bであった場合にはST10に分岐し、角度αに角度Δαを加算する。ST7、ST8、ST9、ST10のいずれかの処理の後、CPU2は、図17のST11の処理に進む。
視点移動の処理は、前述のように、視線軸を回転した正視画像、平行移動量を修正した正視画像、画像の拡大を補正した正視画像と、順に正視画像を生成してもよい。しかし、コンピュータの計算処理においては、魚眼画像から視線軸移動、平行移動量の補正、スケーリング倍率の補正がなされた正視画像を直接生成することができる。
まず、スケーリング倍率の補正について図19を参照しながら説明する。図19のUV平面上の破線で囲まれた正方形の図形は正視画像を描画しようとする領域Arである。以下、説明を簡単にするため、座標(u,v)のu,vはそれぞれ整数であるとする。また、領域Arの一辺はN(整数)であるとする。
領域Arの中心点をPcとし、その座標を(u0,v0)とする。領域内の任意の点P6の座標を(u,v)としたとき、スケーリング倍率の補正を考慮しなければ、(u,v)に(6)式を適用して、(u,v)に対応する魚眼画像の座標(x、y)を求めればよい。拡大の補正を考慮する場合には、PcとP6を結ぶ直線を延長した線上にP7を設定する。PcとP6との距離をL6、PcとP7の距離をL7とした場合に、以下の(12)式の関係を満たすようにP7を設定する。
L7 = Sc×L6 ・・・・(12)
座標u’とuとの間には、(13.1)式に示す関係がある。同様に座標v’とvとの間には、(13.2)式に示す関係がある。この2式からそれぞれu’、v’を求める式が(14.1)、(14.2)で表される。点P7の座標を(u’,v’)とし、座標(u’,v’)に対応する魚眼画像の座標(x,y)に対応する画素値を、座標(u,v)にマッピングする。この処理を、領域Ar内の全ての座標点に施すことにより、拡大を補正した正視画像が得られる。
また、(6)式に平行移動量Δu,Δvを考慮した行列式は図20の(6.1)式ようになる。(6.1)式ではu,vにかえて、u’,v’が使われている。u’,v’とu,vとの関係は、前述のようにそれぞれ(14.1)式、(14.2)式の関係がある。また、Δuは図8(b)の(4)式、Δvは図9(b)の(7)式で求めることができる。CPU2は、平行移動量Δu,Δv及びスケーリング倍率Scを算出し、DRAM3に保持する(ST11)。
次に、CPU2は、u及びvをそれぞれ0とする(ST12)。CPU2は、u、vそれぞれに(14.1)式、(14.2)式を適用してu’、v’を算出する(ST13)。さらに、CPU2は、算出されたu’、v’に図20の(6.1)式を適用して、x、yを求める(ST14)。CPU2は、魚眼画像データの座標(x、y)に対応する画素値を求め、正視画像データの座標(u,v)にマッピングする(ST15)。上述のように、x、yは整数とならないことが多い、すなわち魚眼画像中の画素の位置とは一致することは少ないため、座標(x、y)近傍の画素の画素値からマッピングする画素値を算出する。
CPU2は、ST16に進みuがNに等しいかどうか判定する。ST16の判定がNOの場合には、CPU2はST18に進みuに1を加え(uのインクリメント)し、ST13の処理に戻る。一方、ST16の判定がYESなった場合、すなわちU方向の1ラインの処理が終了した場合には、CPU2はST17に分岐する。
ST17では、CPU2がNに等しいかどうか判定する。ST17の判定がNOの場合には、CPU2はST19に分岐してvに1を加え(vのインクリメント)、ST13の処理に戻る。ST17の判定がYESとなった場合には、領域Ar内のすべての座標(u,v)についてマッピングが終わり、DRAM3上に視線軸を移動した正視画像データImb2の生成が完了したこととなる。CPU2は、正視画像データImb2をDRAM3より読み出し、図15(b)に示すように第2の正視画像としてウィンドウWi2に表示する(ST20)。
この実施例では、正視画像データImb2は、DRAM3上の正視画像データImb1に上書きされる。また、ウィンドウWi2に表示されていた第1の正視画像は、第2の正視画像に上書きされる。なお、第1の正視画像データImb1とは、DRAM3の別の領域に第2の正視画像データImb2を生成し、第2の正視画像は別のウィンドゥで表示することもできる。
ST20の処理の後、CPU2は再び方向キー71が押されたか否かを判定する(図18、ST21)。ST21の判定がYESの場合には、CPU2はST6の処理に戻る。ユーザはウィンドウWi2に表示された画像をみて、さらに方向キー71を操作することができる。ユーザが見たい画像が得られるまで、CPU2はST6からST20の処理を繰り返す。CPU2は、方向キーの操作を繰り返して得られた正視画像データを新しい第2の正視画像としてウィンドウWi2に表示する。
この実施例では、新しく生成された正視画像データImb2は、DRAM3上で前の正視画像データに上書きされる。なお、新しく生成された正視画像データを前の画像データとはDRAM3上で別の領域に書き込み、複数の第2の正視画像をディスプレイに並べて表示することもできる。
また、ユーザはウィンドウWi2に表示された画像を拡大、又は縮小して表示させることもできる。例えば、キーボードのファンクションキーFnを拡大、ファクションキーFmを縮小に割り当てておく。CPU2がFn,Fmいずれかのファンクションキーが操作されたことを検知した場合には(図18、ST22、YES)、操作されたファンクションキーに応じて、拡大又は縮小した画像をウィンドウWi2に表示する(ST23)。
ST22判定がNOの場合には、CPU2はST24の判定に分岐する。ST24では、CPU2はユーザがファイルの書き出しを指示したかどうかを判定する。ST24の判定がNOの場合には、CPU2はST26の判定に分岐する。ST24の判定がYESの場合には、CPU2はST25の判定に分岐する。ST25では、CPU2はウィンドウWi2に表示されている正視画像をユーザが選択したファイル形式でHDD5等に書き出す。また、CPU2は、ウィンドウWi2に表示されている画像を図示しないプリンタに転送し印刷することもできる。
ST24の判定がNOの場合、又はST25の処理が終了した場合、CPU2はST26に進み、ユーザが魚眼画像補正アプリ―ケーションApの終了を指示したかどうか判定する。この判定がNOの場合には、CPU2はST21の判定に戻る。ST26の判定がYESの場合には、CPU2は、ウィンドウWi1,Wi2を閉じ魚眼画像補正アプリ―ケーションApを終了する(ST27)。
ST7からST10で、視線軸を回転する角度のピッチをΔα、Δβとしたが、実際には細かく視線軸を回転して微調節したい場合もある。そこで、微調整モードを設け、微調整モードにおいてはピッチが例えばΔα/10、Δβ/10で視線軸を回転することができるようにすると便利である。ユーザが特定のキーを操作することにより、微調整モードへの移行、又は微調整モードの解除をする。あるいは、シフトキーを押しながら方向キー71を押した場合には、ピッチがΔα/10、Δβ/10となるよう構成してもよい。
(他の魚眼レンズ方式に対する考察)
上記実施例では、魚眼レンズが正射影方式である場合について説明した。魚眼レンズには、正射影方式の他に、等距離射影方式、立体射影方式、等立体角射影方式が知られている。ここでは、図21を参照しながら、等距離射影(Equidistant Projection)方式について説明する。等距離射影方式は、入射光Leが光軸Axとなす角度ψと、入射光Leが平面Hに到達する点Aeと平面Hの原点Oeとの距離reが(15)式で示す比例関係にある射影方式である。ここで角度ψの単位はラジアンである。
re = R×ψ ・・・・(15)
正射影方式での魚眼画像中の点Aの座標(x、y)を等距離射影方式での魚眼画像中の座標(xe,ye)への変換を考察する。正射影方式では座標Aと中心点Oとの距離rは(0)式によりRsinψであるので、距離reと距離rとの関係は、
re/r = ψ/sin ψ ・・・・(16)
で表せる。等距離射影の座標(xe,ye)はそれぞれ以下の(17.1)(17.2)式で表すことができる。
xe=(ψ/sin ψ)x ・・・・(17.1)
ye=(ψ/sin ψ)y ・・・・(17.2)
点Oと点Aとの距離rは
r = SQRT((x)^2+(y)^2) ・・・・(18)
であるので、(0)式より
sin ψ = r/R
=(SQRT((x)^2+(y)^2) )/R ・・・・(19)
ψ = arcsin(SQRT((x)^2+(y)^2) )/R ・・・(19.1)
正射影方式で中心点Oからの距離が最大となる場合(ψ=π/2)では、距離の最大値rmaxは、
rmax = R ・・・・(20.1)
等距離射影方式では中心点Oeからの距離の最大値remax(ψ=π/2)は、
remax = R×π/2 ・・・・(20.2)
となり、変換後の表示倍率がπ/2となるため、R×2/πに縮小した仮想球面として視線軸を回転することにより、魚眼画像と同じ倍率で見える正視画像を生成することができる。
なお、前記魚眼画像中の注目点の座標が指定されたとき、座標(x、y)の値から角度θ、φの値は下記の(15.1)(15.2)式から三角関数を用いることなく算出することができる。角度θ、φの単位はラジアンである。
θ = x/R ・・・・(15.1)
φ = y/R ・・・・(15.2)
立体射影方式(Stereographic Projection)の場合には、詳細は省略するが、魚眼画像の中心からの距離rsは、
rs = 2R×tan(ψ/2) ・・・・(21)
となり、rsの最大値rsmaxは2Rとなるため、1/2に縮小した仮想球面として視線軸を回転することにより、魚眼画像と同じ倍率で見える正視画像を生成することができる。
等立体角射影(Equisolid Angle Projection)の場合には、魚眼画像の中心からの距離reaは、
rea=2R×sin(ψ/2) ・・・・(22)
となり、reaの最大値rea maxはSQRT(2)となるため、1/SQRT(2)に縮小した仮想球面として視線軸を回転することにより、魚眼画像と同じ倍率で見える正視画像を生成することができる。
(180°以上の画角)
上述の等距離射影方式、立体射影方式及び等立体角射影方式の場合には、画角が180°を超える魚眼レンズが存在する。このような画角が180°を超える魚眼レンズにおいて、画角が180°を越える部分の扱いについて、等距離射影方式について図22を参照しながら説明する。
図22(a)において破線の円周D1は画角が180°の境界を示している。実線の円周D2は実際に得られる魚眼画像のイメージサークルの境界を示している。二点鎖線で示す円D3は、画角が360°となる位置を示している。この円周D3は実際には点であるが画角180°の境界で折り返して仮想的に円周として示している。
画角が180°を超えて撮影された点の座標は円D1と円D2との間のリング状の領域に位置する。この範囲の点E’の座標(x’, y’)を求めるためには、まず点E’と原点Oを結ぶ直線L8を想定する。直線L8上にあり、画角180°の円D1の円周と対称な点E(x、y)を想定する。直線L8が円周D1と交わる点をEmとすると、点Emと点E’との距離と、点Emと点Eとの距離は等しくなる。
点Eと点Oとの距離deは、図22(b)中の(23)式で表せる。一方、距離de’ は(24)式で表せる。座標x’ と座標xとは原点Oからの距離に比例する関係にあるので、座標x’ は(25)式で表せる。同様に座標y’ は(26)式で表すことができる。
等立体角射影方式の場合には(22)式で示されるようにsin(ψ/2)を含んでいるので、画角が0〜π/2とπ/2〜πとの間で画素密度が対称となり、等距離射影方式と同様の補正を適用することができる。
立体角射影方式の場合には、等距離射影方式の座標点から計算することができる。等距離射影の座標の中心からの距離をd1、立体角射影の座標の中心からの距離をd2とすると、以下の(27)式の関係が知られている。
d2/d1 = tan((π/4)・d1)/d1 ・・・・(27)
この式を用いて、立体角射影の座標点を計算することができる。
(システム構成の他の変形例)
(1)上記実施例では、パーソナルコンピュータPCを用いた例を説明しているが、いわゆるタブレットやスマートフォンでもこの発明を実施することが可能である。ダブレットやスマートにはカメラが内蔵されているが、市販のレンズキットを装着することにより魚眼画像を撮影することもできる。撮影した魚眼画像について、この発明の魚眼画像補正を行うことができる。そのときのユーザインタフェースとしては、表示部上に設けられたタッチパネルを利用し、表示されたボタンに触れることなどによって操作することが可能である。
(2)WEBサーバに、この発明の魚眼画像補正アプリケーションを実装する。クライアントがこのWEBサーバにアクセスすると、ブラウザのウェブUIにより、魚眼画像ファイルの選択、魚眼画像の注目点の指定、視線軸移動の操作を行うことができる。魚眼画像、正視画像は、ブラウザのウィンドウ内に表示され、生成された正視画像はユーザの選択したローケーションに保存することができる。
(付記事項)
上記実施形態より、さらに以下の技術的思想が抽出される。
(1)魚眼レンズを用いて撮影された魚眼画像を、コンピュータを用いて補正する方法であって、
魚眼画像データをメモリに展開するステップと、
前記メモリ上に展開された魚眼画像データをディスプレイに表示するステップと、
ユーザインタフェースを介して、ディスプレイに表示された魚眼画像内の注目点の指定を受け付けるステップと、
前記注目点を中心となるように視線軸を回転させ、回転させた視線軸に直交し、半径Rの仮想球面に接する投影面に魚眼画像を投影して第1の正視画像データを前記メモリ上に生成するステップと、
第1の正視画像データを前記ディスプレイに表示するステップと、
前記ユーザインタフェースからの入力に基づき、第1の正視画像の視線軸を回転させた第1の中間正視画像データを生成するステップと、
前記視線軸の回転に伴い発生した注目点と第1の中間正視画像の中心点との平行移動量を補正し、注目点を中心とした第2の中間正視画像データを生成するステップと、
第2の中間正視画像データの前記視線軸の回転に伴い発生した画像のスケーリング倍率を補正した第2の正視画像データをメモリ上に生成するステップと、
第2の正視画像データを前記ディスプレイに表示するステップを備えた魚眼画像補正方法。
(2)ユーザインタフェースからの入力に基づき、第2の正視画像の倍率を変換して表示する魚眼画像補正方法。
2:CPU(プロセッサ)
3:DRAM(メモリ)
4:チップセット
4c:ビデオインタフェース
7:キーボード(ユーザインタフェース)
71:方向キー
7a:上方向キー
7b:下方向キー
7c:右方向キー
7d:左方向キー
8:マウス(ユーザインタフェース)
9:ディスプレイ
Ca1:ネットワーク魚眼カメラ
Ca2:USB魚眼カメラ
MP:マウスポインタ
PL0、PL0’、PL1、PL2、PL3、PL4、PL5:投影面
R:仮想球面の半径
S:仮想球面
Sc:スケーリング倍率
Wi1:(魚眼画像表示用の)ウィンドウ
Wi2:(正視画像表示用の)ウィンドウ
α、θ:X軸回りの回転角
β、φ:Y軸回りの回転角
Δu:U軸方向の平行移動量
Δv:V軸方向の平行移動量
Ap:魚眼画像補正アプリケーション
Ima:魚眼画像データ
Imb1:第1の正視画像データ
Imb2:第2の正視画像データ

Claims (20)

  1. 魚眼レンズを用いて撮影された魚眼画像を、コンピュータを用いて補正する方法であって、
    魚眼画像データをメモリに展開するステップと、
    前記メモリ上に展開された魚眼画像データをディスプレイに表示するステップと、
    ユーザインタフェースを介して、ディスプレイに表示された魚眼画像内の注目点の指定を受け付けるステップと、
    前記注目点を中心となるように視線軸を回転させ、回転させた視線軸に直交し、半径Rの仮想球面に接する投影面に魚眼画像を投影して第1の正視画像データを前記メモリ上に生成するステップと、
    第1の正視画像データを前記ディスプレイに表示するステップと、
    前記ユーザインタフェースからの入力に基づき、視線移動量を決定するステップと、
    決定された視線移動量に基づき、魚眼画像データより第2の正視画像データを前記メモリ上に生成するステップと、
    第2の正視画像データをディスプレイに表示するステップを備えたことを特徴とする魚眼画像補正方法。
  2. 請求項1に記載の魚眼画像補正方法において、第1の正視画像データを生成するステップは、
    前記魚眼画像の中心を通る視線軸が水平であり、前記注目点の座標から上下方向の回転角度θの値、左右方向の回転角度φの値を算出するステップと
    前記回転角度θ、φの値に行列演算式を適用して第1の正視画像データ内の座標点に対応する点の画素データを前記メモリ上に展開された魚眼画像データから求めるステップを備えた魚眼画像補正方法。
  3. 請求項2に記載の魚眼画像補正方法において、前記視線移動量を決定するステップは、
    前記ユーザインタフェースにより第1の正視画像の視線軸を上下方向に角度α回転させる指示を受け付けるステップ、
    前記ユーザインタフェースにより第1の正視画像の視線軸を左右方向に角度β回転させる指示を受け付けるステップ、
    決定された角度より、視線軸の平行移動量を算出するステップと、
    前記決定された角度より、スケーリング倍率を算出するステップを備えている魚眼画像補正方法。
  4. 請求項3記載の魚眼画像補正方法において、前記第2の正視画像データを生成するステップは、
    前記視線軸の平行移動量及びスケーリング倍率Scを考慮しつつ、上下方向の回転角度(θ+α)、左右方向の回転角度(φ+β)に行列演算式を適用し、前記魚眼画像データから第2の正視画像データを生成する魚眼画像補正方法。
  5. 請求項4記載の魚眼画像補正方法において、前記魚眼画像データから第2の正視画像データを生成するステップは、
    第2の正視画像の座標点(u,v)について、第2の正視画像の中心座標点(u0,v0)からの距離がスケーリング倍率分大きくなる座標点(u’,v’)を算出するステップと、
    座標点(u’,v’)に前記行列演算式を適用し、左右方向の平行移動量Δu,上下方向の平行移動量Δvを減算し、魚眼画像中の対応点(x,y)を決定するステップと、
    前記対応点(x、y)の画素値を算出するステップと、
    算出された画素値を第2の正視画像の座標点(u,v)の画素値とするステップを備えた魚眼画像補正方法。
  6. 請求項5記載の魚眼画像補正方法において、
    前記左右方向の平行移動量Δuは、
    Δu=−R×tanαで算出され、
    前記左右方向の平行移動量Δuは、
    Δv=−R×SQRT(1+(tanα)^2)×tanβで算出され、
    前記スケーリング倍率Scは
    Sc=SQRT(1+(tanα)^2+(tanβ)^2)で算出される魚眼画像補正方法。
  7. プロセッサ、メモリ、ユーザインタフェース、ビデオインタフェースを備えたコンピューターにより、魚眼レンズを用いて撮影された魚眼画像を補正する魚眼画像補正プログラムであって、
    魚眼画像データを前記メモリに展開し、
    前記メモリ上に展開された魚眼画像データを前記ビデオインタフェースから出力し、
    ユーザインタフェースを介して、魚眼画像内の注目点の指定を受け付け、
    前記注目点を中心となるように視線軸を回転させ、視線軸に直交し、半径Rの仮想球面に接する投影面に魚眼画像を投影して第1の正視画像データを前記メモリ上に生成し、
    第1の正視画像データを前記ビデオインタフェースから出力し、
    前記ユーザインタフェースからの入力に基づき、視線移動量を決定し、
    決定された視線移動量に基づき、魚眼画像データより第2の正視画像データを前記メモリ上に生成し、
    第2の正視画像データをビデオインタフェースから出力することを前記プロセッサに実行させる魚眼画像補正プログラム。
  8. 請求項7に記載の魚眼画像補正プログラムにおいて、
    前記魚眼画像の中心を通る視線軸が水平であり、前記注目点の座標から上下方向の回転角度θの値、左右方向の回転角度φの値を算出し、
    前記回転角度θ、φの値に行列演算式を適用して第1の正視画像データ内の座標点に対応する点の画素データを前記メモリ上に展開された魚眼画像データから求めることを前記プロセッサに実行させる魚眼補正プログラム。
  9. 請求項8に記載の魚眼画像補正プログラムにおいて、
    前記ユーザインタフェースにより第1の正視画像の視線軸を上下方向に角度α回転させる指示を受け付け、
    前記ユーザインタフェースにより第1の正視画像の視線軸を左右方向に角度β回転させる指示を受け付け、
    決定された角度より、視線軸の平行移動量を算出し、
    前記決定された角度より、スケーリング倍率を算出することを前記プロセッサに実行させる魚眼画像補正プログラム。
  10. 請求項9記載の魚眼画像補正プログラムにおいて、
    前記ユーザインタフェースにより第1の正視画像の視線軸を上下方向に角度α回転させる指示を受け付け、
    前記ユーザインタフェースにより第1の正視画像の視線軸を左右方向に角度β回転させる指示を受け付け、
    前記視線軸の平行移動量及びスケーリング倍率を考慮しつつ、上下方向の回転角(φ+α)、左右方向の回転角(θ+β)に行列演算式を適用し、前記魚眼画像データから第2の正視画像データを生成することを前記プロセッサに実行させる魚眼画像補正プログラム。
  11. 請求項10記載の魚眼画像補正プログラムにおいて、
    第2の正視画像の座標点(u,v)について、第2の正視画像の中心座標(u0,v0)からの距離がスケーリング倍率分大きくなる座標点(u’,v’)を算出し、
    座標点(u’,v’)に前記行列演算式を適用し、左右方向の平行移動量Δu,上下方向の平行移動量Δvを減算し、魚眼画像中の対応点(x,y)を決定し、
    前記対応点(x、y)の画素値を算出し、
    算出された画素値を第2の正視画像の座標点(u,v)の画素値とすることを前記プロセッサに実行させる魚眼画像補正プログラム。
  12. 請求項11記載の魚眼画像補正プログラムにおいて、
    前記左右方向の平行移動量Δuは、
    Δu=−R×tanαで算出し、
    前記左右方向の平行移動量Δuは、
    Δv=−R×SQRT(1+(tanα)^2)×tanβで算出し、
    前記スケーリング倍率Scは
    Sc=SQRT(1+(tanα)^2+(tanβ)^2)で算出することを前記プロセッサに実行させる魚眼画像補正プログラム。
  13. プロセッサ、メモリ、ユーザインタフェース、ビデオインタフェースを備え、魚眼画像を補正する魚眼画像補正装置であって、
    前記プロセッサは、
    魚眼画像データを前記メモリに展開し、
    前記メモリ上に展開された魚眼画像データを前記ビデオインタフェースから出力し、
    ユーザインタフェースを介して、魚眼画像内の注目点の指定を受け付け、
    前記注目点を中心となるように視線軸を回転させ、視線軸に直交し、半径Rの仮想球面に接する投影面に魚眼画像を投影して第1の正視画像データを前記メモリ上に生成し、
    第1の正視画像データを前記ビデオインタフェースから出力し、
    前記ユーザインタフェースからの入力に基づき、視線移動量を決定し、
    決定された視線移動量に基づき、魚眼画像データより第2の正視画像データを前記メモリ上に生成し、
    第2の正視画像データをビデオインタフェースから出力するよう構成されることを特徴とする魚眼画像補正装置。
  14. 請求項13記載の魚眼画像補正装置において、前記プロセッサは、
    前記魚眼画像の中心を通る視線軸が水平であり、前記注目点の座標から上下方向の回転角度θの値、左右方向の回転角度θの値を算出し、
    第1の値及び第2の値に行列演算式を適用して第1の正視画像データ内の座標点に対応する点の画素データを前記メモリ上に展開された魚眼画像データから求めるよう構成される魚眼画像補正装置。
  15. 請求項14に記載の魚眼画像補正装置において、前記プロセッサは、
    前記ユーザインタフェースからの入力に基づき、前記視線軸の回転角度を決定し、
    決定された角度より、視線軸の平行移動量を算出し、
    前記決定された角度より、スケーリング倍率を算出するよう構成される魚眼画像補正装置。
  16. 請求項15記載の魚眼画像補正装置において、前記プロセッサは、
    前記ユーザインタフェースにより第1の正視画像の視線軸を上下方向に角度α回転させる指示を受け付け、
    前記ユーザインタフェースにより第1の正視画像の視線軸を左右方向に角度β回転させる指示を受け付け、
    前記視線軸の平行移動量及びスケーリング倍率を考慮しつつ、上下方向の回転角度(θ+α)、左右方向の回転角度(φ+β)に行列演算式を適用し、前記魚眼画像データから第2の正視画像データを生成するよう構成される魚眼画像補正装置。
  17. 請求項16記載の魚眼画像補正装置において、前記プロセッサは、
    第2の正視画像の座標点(u,v)をについて、第2の正視画像の中心座標(u0,v0)からの距離がスケーリング倍率分大きくなる座標点(u’,v’)を算出し、
    座標点(u’,v’)に前記行列演算式を適用し、左右方向の平行移動量Δu,上下方向の平行移動量Δvを減算し、魚眼画像中の対応点(x,y)を決定し、
    対応点(x、y)の画素値を算出し、
    算出された画素値を第2の正視画像の座標点(u,v)の画素値とするよう構成される魚眼画像補正装置。
  18. 請求項17記載の魚眼画像補正装置において、前記プロセッサは、
    前記左右方向の平行移動量Δuは、
    Δu=−R×tanαで算出し、
    前記左右方向の平行移動量Δuは、
    Δv=−R×SQRT(1+(tanα)^2)×tanβで算出し、
    前記スケーリング倍率Scは
    Sc=SQRT(1+(tanα)^2+(tanβ)^2)で算出するよう構成される魚眼画像補正装置。
  19. 請求項13ないし18いずれか1項に記載の魚眼画像補正装置において、
    魚眼レンズを通して魚眼画像を撮影するカメラを備えた魚眼画像補正装置。
  20. 請求項13ないし19いずれか1項に記載の魚眼画像補正装置において、
    前記ビデオインタフェースから出力されるビデオ信号を表示するディスプレイを備えたことを特徴とする魚眼画像補正装置。
JP2017112811A 2017-06-07 2017-06-07 魚眼画像補正方法、魚眼画像補正プログラム及び魚眼画像補正装置。 Pending JP2018206205A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017112811A JP2018206205A (ja) 2017-06-07 2017-06-07 魚眼画像補正方法、魚眼画像補正プログラム及び魚眼画像補正装置。

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017112811A JP2018206205A (ja) 2017-06-07 2017-06-07 魚眼画像補正方法、魚眼画像補正プログラム及び魚眼画像補正装置。

Publications (1)

Publication Number Publication Date
JP2018206205A true JP2018206205A (ja) 2018-12-27

Family

ID=64957279

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017112811A Pending JP2018206205A (ja) 2017-06-07 2017-06-07 魚眼画像補正方法、魚眼画像補正プログラム及び魚眼画像補正装置。

Country Status (1)

Country Link
JP (1) JP2018206205A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112150554A (zh) * 2019-06-28 2020-12-29 杭州海康威视数字技术股份有限公司 画面显示方法、装置、终端和存储介质
CN112184543A (zh) * 2020-09-30 2021-01-05 湖北安泰泽善科技有限公司 一种用于鱼眼摄像头的数据展示方法和装置
CN112308768A (zh) * 2020-10-19 2021-02-02 武汉中科通达高新技术股份有限公司 一种数据处理方法、装置、电子设备以及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007055335A1 (ja) * 2005-11-11 2007-05-18 Sony Corporation 画像処理装置、画像処理方法、そのプログラム及びそのプログラムを記録した記録媒体

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007055335A1 (ja) * 2005-11-11 2007-05-18 Sony Corporation 画像処理装置、画像処理方法、そのプログラム及びそのプログラムを記録した記録媒体

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112150554A (zh) * 2019-06-28 2020-12-29 杭州海康威视数字技术股份有限公司 画面显示方法、装置、终端和存储介质
CN112150554B (zh) * 2019-06-28 2023-08-04 杭州海康威视数字技术股份有限公司 画面显示方法、装置、终端和存储介质
CN112184543A (zh) * 2020-09-30 2021-01-05 湖北安泰泽善科技有限公司 一种用于鱼眼摄像头的数据展示方法和装置
CN112184543B (zh) * 2020-09-30 2024-04-16 湖北安泰泽善科技有限公司 一种用于鱼眼摄像头的数据展示方法和装置
CN112308768A (zh) * 2020-10-19 2021-02-02 武汉中科通达高新技术股份有限公司 一种数据处理方法、装置、电子设备以及存储介质
CN112308768B (zh) * 2020-10-19 2023-09-08 武汉中科通达高新技术股份有限公司 一种数据处理方法、装置、电子设备以及存储介质

Similar Documents

Publication Publication Date Title
US10437545B2 (en) Apparatus, system, and method for controlling display, and recording medium
JP6044328B2 (ja) 画像処理システム、画像処理方法およびプログラム
WO2017020150A1 (zh) 一种图像处理方法、装置及摄像机
JP2010062790A (ja) 画像変換装置
JP5743016B2 (ja) 画像を生成する装置および方法
JP2002057879A (ja) 画像処理装置と画像処理方法及びコンピュータ読み取り可能な記録媒体
KR20030065379A (ko) 전방위 시각 시스템, 화상처리방법, 제어프로그램, 및판독가능한 기록매체
CN113643414B (zh) 一种三维图像生成方法、装置、电子设备及存储介质
JP2018206205A (ja) 魚眼画像補正方法、魚眼画像補正プログラム及び魚眼画像補正装置。
JP2019164782A (ja) 画像処理装置、撮影システム、画像処理方法、及びプログラム
JP2019075766A (ja) 画像処理装置、撮影システム、画像処理方法、及びプログラム
JP6719596B2 (ja) 画像生成装置、及び画像表示制御装置
JP6314672B2 (ja) 表示処理装置、表示処理方法、及びプログラム
JP2018109946A (ja) 表示装置、プログラム、表示方法
JP2019029721A (ja) 画像処理装置、画像処理方法およびプログラム
JP2019164783A (ja) 画像処理装置、撮影システム、画像処理方法、及びプログラム
JP2019185757A (ja) 画像処理装置、撮影システム、画像処理方法、及びプログラム
JP6394682B2 (ja) 方法および画像処理装置
WO2021149509A1 (ja) 撮像装置、撮像方法、及び、プログラム
JP6992829B2 (ja) 画像処理システム、画像処理方法およびプログラム
CN110786017B (zh) 分发图像生成方法
JP6103942B2 (ja) 画像データ処理装置及び画像データ処理プログラム
JP7302647B2 (ja) 画像処理システム、画像処理方法およびプログラム
JP7335335B2 (ja) 情報処理装置、情報処理方法、及びプログラム
US11985294B2 (en) Information processing apparatus, information processing method, and program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200424

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210519

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210604

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20211203