画像変換装置および画像変換方法
【課題】 魚眼レンズを用いた撮影により得られた歪曲円形画像を平面正則画像に変換する際に、ユーザの直観的な操作によりパラメータ設定を行い、演算負担を軽減させる。
【解決手段】 XY平面上の歪曲円形画像S上にドーム状の仮想球面Hを定義し、歪曲円形画像S上において、ユーザに、切出中心点P(x0,y0)と補助点Q(x1,y1)を指定させる。点Pの真上の交点G(x0,y0,z0)を求め、仮想球面Hに対する接平面S2上にUV平面を定義する。U軸とX軸とのなす角φは、2点P,Qを通る参照直線JとX軸とのなす角θに基づいて決定する。座標値x0,y0,z0と角度φをパラメータとして含む正射影方式の変換演算式を利用して、座標(u,v)と座標(x,y)とを対応づけ、2点P,Q間の距離を変換倍率mとして、歪曲円形画像Sの点Pの近傍部分をUV平面上の平面正則画像に変換する。
【解決手段】 XY平面上の歪曲円形画像S上にドーム状の仮想球面Hを定義し、歪曲円形画像S上において、ユーザに、切出中心点P(x0,y0)と補助点Q(x1,y1)を指定させる。点Pの真上の交点G(x0,y0,z0)を求め、仮想球面Hに対する接平面S2上にUV平面を定義する。U軸とX軸とのなす角φは、2点P,Qを通る参照直線JとX軸とのなす角θに基づいて決定する。座標値x0,y0,z0と角度φをパラメータとして含む正射影方式の変換演算式を利用して、座標(u,v)と座標(x,y)とを対応づけ、2点P,Q間の距離を変換倍率mとして、歪曲円形画像Sの点Pの近傍部分をUV平面上の平面正則画像に変換する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像変換装置および画像変換方法に関し、特に、魚眼レンズを用いた撮影により得られた歪曲円形画像の一部分を切り出して、平面正則画像に変換する処理を行う技術に関する。
【背景技術】
【0002】
魚眼レンズを用いると、メカニカルな動作機構なしに、半球状の全方位を示す円形画像を得ることができる。このため、奇抜な効果を狙った風景写真などを撮影する際に広く利用されている。ただ、魚眼レンズを用いた撮影で得られる画像は、歪曲した円形の画像になるため、芸術写真などの用途にはそのまま利用することが可能かもしれないが、一般的な用途には不向きである。
【0003】
そこで、魚眼レンズを用いた撮影により得られた歪曲円形画像の一部分を切り出して、平面正則画像に変換する処理を行う装置が提案されている。たとえば、下記の特許文献1には、コンピュータを利用して歪曲円形画像の一部分を平面正則画像にリアルタイムで変換する技術が開示されている。このような変換技術を利用すれば、魚眼レンズを用いて撮影した歪曲円形画像からなる動画を、平面正則画像からなる動画としてリアルタイムで観察することが可能になり、180°の画角をもった監視システムなどへの応用が期待できる。
【特許文献1】特許第3051173号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
魚眼レンズを用いた撮影により得られた歪曲円形画像の一部分を切り出して、平面正則画像に変換する処理を行うためには、変換対象となる部分が歪曲円形画像のどの部分であり(切り出しの位置)、当該部分をどのような向きに表示した平面正則画像が必要であり(切り出しの向き)、どの程度の範囲までを変換対象とするか(変換倍率)、といったパラメータを設定する必要がある。もちろん、これらのパラメータは、ユーザの希望に応じて任意に設定することが可能である。
【0005】
しかしながら、前掲の特許文献などに開示されている従来の画像変換装置では、切り出しの位置や向きを、オイラー角と呼ばれる3つの角度により指定し、変換倍率も別途指定する必要があったため、ユーザの立場から見た操作性が悪いという問題がある。
【0006】
オイラー角は、歪曲円形画像上にドーム状の仮想球面を定義し、この仮想球面上の所望の接点に接する平面正則画像形成面を定義したときに、当該接点の位置を方位角αおよび天頂角βで表し、平面正則画像の向きを平面傾斜角ψで表したものである。このような3つの角度α,β,ψが、三次元空間上に定義される角度であるのに対し、ユーザが実際に目にしている歪曲円形画像は二次元平面上に表示されている画像である。したがって、ユーザにとって、3つの角度α,β,ψをパラメータとして指定する操作は、決して直観的な操作と言えるものではない。
【0007】
従来の画像変換装置のもうひとつの問題点は演算負担である。上述したオイラー角α,β,ψをパラメータとして指定した場合、当然ながら、これらオイラー角α,β,ψをパラメータとして含む変換演算式を用いた演算が必要になる。ところが、そのような変換演算式は、3つの角度α,β,ψに関する三角関数を含んだ複雑な式になるため、システムに対してかなり大きな演算負担を課することになる。特に、リアルタイムで変換処理を行う必要がある用途に用いる場合、三角関数演算を高速で行うことが可能な高機能なハードウエアが必要になり、製品コストの低減を阻む重要な問題になる。
【0008】
そこで本発明は、魚眼レンズを用いた撮影により得られた歪曲円形画像を平面正則画像に変換する際に、ユーザの直観的な操作により必要なパラメータ設定が可能になり、しかも演算負担を軽減させることが可能な画像変換装置および画像変換方法を提供することを目的とする。
【課題を解決するための手段】
【0009】
(1) 本発明の第1の態様は、魚眼レンズを用いた撮影により得られた歪曲円形画像の一部分を切り出して、平面正則画像に変換する処理を行う画像変換装置において、
二次元XY直交座標系上の座標(x,y)で示される位置に配置された多数の画素の集合体によって構成され、XY座標系の原点Oを中心とし半径Rをもった歪曲円形画像を格納する歪曲円形画像格納部と、
二次元UV直交座標系上の座標(u,v)で示される位置に配置された多数の画素の集合体によって構成される平面正則画像を格納する平面正則画像格納部と、
歪曲円形画像格納部に格納されている歪曲円形画像をディスプレイに表示する歪曲円形画像表示部と、
ディスプレイに表示されている歪曲円形画像上における、切出中心点Pの位置および切り出し向きをユーザの指示に基づいて入力する指示入力部と、
二次元XY直交座標系を含む三次元XYZ直交座標系において、原点Oを中心とし半径Rをもった仮想球面を定義したときに、切出中心点Pを通りZ軸に平行な直線と仮想球面との交点Gの位置座標(x0,y0,z0)を求める交点演算部と、
交点Gにおいて仮想球面に接する接平面上に定義すべき二次元UV直交座標系のU軸方向を向いたベクトルUと、二次元XY直交座標系のX軸方向を向いたベクトルXと、のなす角として与えられる平面傾斜角φを、切り出し向きに基づいて決定する角度決定部と、
位置座標(x0,y0,z0)および平面傾斜角φをパラメータとして含む正射影方式の変換演算式を利用して、座標(u,v)と座標(x,y)とを対応づけ、座標(u,v)で示される位置に配置された平面正則画像上の画素の画素値を、対応する座標(x,y)で示される位置に配置された歪曲円形画像上の参照画素の画素値に基づいて決定することにより、歪曲円形画像から切出中心点Pを中心として平面傾斜角φによって示される向きに切り出された部分画像についての平面正則画像を生成する演算を行い、生成された平面正則画像を平面正則画像格納部に格納する変換演算部と、
を設けるようにしたものである。
【0010】
(2) 本発明の第2の態様は、上述した第1の態様に係る画像変換装置において、
変換演算部が、正射影方式の変換演算式として、
x=R[(u−x0)A+(v−y0)B+(w−z0)E]/
√((u−x0)2+(v−y0)2+(w−z0)2)
y=R[(u−x0)C+(v−y0)D+(w−z0)F]/
√((u−x0)2+(v−y0)2+(w−z0)2)
ここで、
A=1−(1−cosφ)(y02+z02)
B=−z0sinφ+x0y0(1−cosφ)
C=z0sinφ+x0y0(1−cosφ)
D=1−(1−cosφ)(z02+x02)
E=y0sinφ+z0x0(1−cosφ)
F=−x0sinφ+y0x0(1−cosφ)
w=mR(但し、mは所定の変換倍率)
なる式を用いるようにしたものである。
【0011】
(3) 本発明の第3の態様は、上述した第1または第2の態様に係る画像変換装置において、
指示入力部が、歪曲円形画像上に引かれた参照直線Jを定義するための指示を入力する機能を有し、
角度決定部が、参照直線JとX軸とのなす角θ(但し、両者平行の場合はθ=0°とする)に基づいて平面傾斜角φを決定するようにしたものである。
【0012】
(4) 本発明の第4の態様は、上述した第3の態様に係る画像変換装置において、
指示入力部が、歪曲円形画像上において、切出中心点Pと補助点Qとの2点の位置を指定するための指示を入力する機能を有し、切出中心点Pと補助点Qとを結ぶ直線を参照直線Jとするようにしたものである。
【0013】
(5) 本発明の第5の態様は、上述した第3の態様に係る画像変換装置において、
指示入力部が、参照直線JとX軸とのなす角θを示す数値を所定の入力画面上で入力する機能と、切出中心点Pの位置を歪曲円形画像上で指定するための指示を入力する機能と、を有するようにしたものである。
【0014】
(6) 本発明の第6の態様は、上述した第3〜第5の態様に係る画像変換装置において、
角度決定部が、参照直線JとX軸とのなす角θを近似的に平面傾斜角φとするようにしたものである。
【0015】
(7) 本発明の第7の態様は、上述した第2の態様に係る画像変換装置において、
指示入力部が、ユーザの指示に基づいて変換倍率mを入力する機能を有し、
変換演算部が、指示入力部によって入力された変換倍率mを用いた演算を行うようにしたものである。
【0016】
(8) 本発明の第8の態様は、上述した第7の態様に係る画像変換装置において、
指示入力部が、歪曲円形画像上において、切出中心点Pと補助点Qとの2点の位置を指定するための指示を入力する機能を有し、切出中心点Pと補助点Qとの距離dに基づいて、m=k/d(kは所定の比例定数)として与えられる数値を変換倍率mとするようにしたものである。
【0017】
(9) 本発明の第9の態様は、上述した第1〜第8の態様に係る画像変換装置において、
変換演算部が、座標(u,v)で示される位置に配置された平面正則画像上の画素の画素値を決定する際に、対応する座標(x,y)で示される位置の近傍に配置された歪曲円形画像上の複数の参照画素の画素値に対する補間演算を行うようにしたものである。
【0018】
(10) 本発明の第10の態様は、上述した第1〜第9の態様に係る画像変換装置において、
歪曲円形画像格納部に格納されている画像が、正射影方式の魚眼レンズによって撮影された正射影画像ではなく、非正射影方式の魚眼レンズによって撮影された非正射影画像である場合に、非正射影画像上の座標を正射影画像上の座標に変換する第1の座標変換式と、正射影画像上の座標を非正射影画像上の座標に変換する第2の座標変換式と、を利用して、
交点演算部が、切出中心点Pの座標を第1の座標変換式を用いて変換し、変換後の座標を用いて交点の位置座標(x0,y0,z0)を求める処理を行い、
変換演算部が、正射影方式の変換演算式を用いて座標(u,v)に対応する座標(x,y)を求めた後、座標(x,y)を第2の座標変換式を用いて変換し、変換後の座標を用いて歪曲円形画像上の参照画素の位置を特定するようにしたものである。
【0019】
(11) 本発明の第11の態様は、上述した第10の態様に係る画像変換装置において、
歪曲円形画像格納部に格納されている画像が、等距離射影方式の魚眼レンズによって撮影された等距離射影画像である場合に、
交点演算部が、等距離射影画像上の座標(x′,y′)を正射影画像上の座標(x,y)に変換する第1の座標変換式として、
x=sinc(π/2・√(x′2+y′2))×π/2・x′
y=sinc(π/2・√(x′2+y′2))×π/2・y′
なる式を用い、
変換演算部が、正射影画像上の座標(x,y)を等距離射影画像上の座標(x′,y′)に変換する第2の座標変換式として、
x′=2/π・x/sinc(π/2・√(x2+y2))
y′=2/π・y/sinc(π/2・√(x2+y2))
なる式を用いるようにしたものである。
【0020】
(12) 本発明の第12の態様は、上述した第1〜第11の態様に係る画像変換装置を、コンピュータにプログラムを組み込むことにより構成したものである。
【0021】
(13) 本発明の第13の態様は、上述した第1〜第11の態様に係る画像変換装置の構成要素となる変換演算部として機能する電子回路を、半導体集積回路に組み込むようにしたものである。
【0022】
(14) 本発明の第14の態様は、上述した第1〜第11の態様に係る画像変換装置と、魚眼レンズを用いたカメラと、平面正則画像を画面上に表示するモニタ装置と、を組み合わせ、カメラを用いた撮影により得られた歪曲円形画像が歪曲円形画像格納部へと格納され、平面正則画像格納部に得られた平面正則画像がモニタ装置によって表示されるように構成することにより、魚眼監視システムを実現するようにしたものである。
【0023】
(15) 本発明の第15の態様は、上述した第2の態様に係る画像変換装置において、
変換演算部が、
「関数f(c)=1/c」の値を様々な変数cの値について対応づけた第1の関数テーブルと、「関数f(ξ)=1/√ξ」の値を様々な変数ξの値について対応づけた第2の関数テーブルと、を有し、
a=u−x0,b=v−y0,c=w−z0、
ξ=(a/c)2+(b/c)2+1
なる演算を行うことにより、cおよびξの値を求め、
第1の関数テーブルおよび第2の関数テーブルを参照することにより、求めたc,ξの値に対応する関数f(c),f(ξ)の値を求め、
正射影方式の変換演算式における
√((u−x0)2+(v−y0)2+(w−z0)2)
なる値を、f(c)×f(ξ)なる演算により求めるようにしたものである。
【0024】
(16) 本発明の第16の態様は、上述した第1〜第11の態様に係る画像変換装置において、
変換演算部が、
所定の有効桁数に応じた間隔Wの離散値をとる変数tのうち、偶数変数tについて、所定の関数f(t)の値を対応づけた偶数関数テーブルと、
有効桁数に応じた間隔Wの離散値をとる変数tのうち、奇数変数tについて、所定の関数f(t)の値を対応づけた奇数関数テーブルと、
有効桁数からなる上位ビットと、有効桁数より下位の桁を示す下位ビットと、によって構成される変数tを格納するTレジスタと、
上位ビットが偶数である場合には、上位ビットで示される偶数変数tについて対応づけられている関数f(t)の値を偶数関数テーブルから読み出し、上位ビットが奇数である場合には、上位ビットで示される奇数変数tよりも大きい最小の偶数変数tについて対応づけられている関数f(t)の値を偶数関数テーブルから読み出す偶数読出部と、
上位ビットが奇数である場合には、上位ビットで示される奇数変数tについて対応づけられている関数f(t)の値を奇数関数テーブルから読み出し、上位ビットが偶数である場合には、上位ビットで示される偶数変数tよりも大きい最小の奇数変数tについて対応づけられている関数f(t)の値を奇数関数テーブルから読み出す奇数読出部と、
偶数関数テーブルもしくは奇数関数テーブルから読み出された関数f(t)の値を格納するAレジスタと、
偶数関数テーブルもしくは奇数関数テーブルから読み出された関数f(t)の値を格納するBレジスタと、
上位ビットが偶数である場合には、偶数読出部が読み出した関数f(t)の値をAレジスタに格納するとともに、奇数読出部が読み出した関数f(t)の値をBレジスタに格納し、上位ビットが奇数である場合には、奇数読出部が読み出した関数f(t)の値をAレジスタに格納するとともに、偶数読出部が読み出した関数f(t)の値をBレジスタに格納する偶奇セレクタと、
Aレジスタに格納されている値をf(A)とし、Bレジスタに格納されている値をf(B)とし、下位ビットで示される値をδとして、補間後の関数f(t)の値を、f(t)=((W−δ)/W)×f(A)+(δ/W)×f(B)なる演算によって求める補間演算部と、
を有し、補間演算部によって求められた補間後の関数f(t)の値を利用して演算を行うようにしたものである。
【0025】
(17) 本発明の第17の態様は、上述した第11の態様に係る画像変換装置において、
交点演算部が、第1の座標変換式における関数sinc(t)を、
sinc(t)=1−t2/3!+t4/5!−t6/7!+t8/9!− ....
なるテイラー展開した形式の式に基づいて演算し、
変換演算部が、第2の座標変換式における関数1/sinc(t)を、所定の係数値a2,a4,a6,a8, ....を用いた
1/sinc(t)=1+a2t2+a4t4+a6t6+a8t8+ ....
なる形式の式に基づいて演算するようにしたものである。
【0026】
(18) 本発明の第18の態様は、上述した第2の態様に係る画像変換装置において、
変換演算部が、cosφの値を、ベクトルUとベクトルXとの内積を、ベクトルUの大きさとベクトルXの大きさとの積で除することにより求めるようにしたものである。
【0027】
(19) 本発明の第19の態様は、上述した第2の態様に係る画像変換装置において、
指示入力部が、歪曲円形画像上に引かれた参照直線Jを定義するための指示を入力する機能を有し、
変換演算部が、参照直線Jの方向を向いたベクトルJを定義し、cosφの値を、ベクトルJとベクトルXとの内積を、ベクトルJの大きさとベクトルXの大きさとの積で除することにより求めるようにしたものである。
【0028】
(20) 本発明の第20の態様は、上述した第2の態様に係る画像変換装置において、
変換演算部が、sinφの値を、sinφ=√(1−cos2φ)なる演算により求めるようにしたものである。
【0029】
(21) 本発明の第21の態様は、魚眼レンズを用いた撮影により得られた歪曲円形画像の一部分を切り出して、平面正則画像に変換する処理を行う画像変換装置において、
二次元XY直交座標系上の座標(x,y)で示される位置に配置された多数の画素の集合体によって構成された歪曲円形画像を格納する歪曲円形画像格納部と、
二次元UV直交座標系上の座標(u,v)で示される位置に配置された多数の画素の集合体によって構成される平面正則画像を格納する平面正則画像格納部と、
歪曲円形画像格納部に格納されている歪曲円形画像をディスプレイに表示する歪曲円形画像表示部と、
ディスプレイに表示されている歪曲円形画像上において、切出中心点Pと補助点Qとの2点の位置をユーザの指示に基づいて入力し、切出中心点Pと補助点Qとを結ぶ直線を参照直線Jと認識し、切出中心点Pと補助点Qとの距離dに基づいて、m=k/d(kは所定の比例定数)として与えられる数値を変換倍率mと認識する指示入力部と、
座標(u,v)と座標(x,y)とを対応づける変換演算式を利用して、座標(u,v)で示される位置に配置された平面正則画像上の画素の画素値を、対応する座標(x,y)で示される位置に配置された歪曲円形画像上の参照画素の画素値に基づいて決定することにより、歪曲円形画像から切出中心点Pを中心として参照直線Jに応じた向きに切り出された部分画像について、変換倍率mに基づいてスケーリングされた平面正則画像を生成する演算を行い、生成された平面正則画像を平面正則画像格納部に格納する変換演算部と、
を設けるようにしたものである。
【0030】
(22) 本発明の第22の態様は、魚眼レンズを用いた撮影により得られた歪曲円形画像の一部分を切り出して、平面正則画像に変換する処理を行う画像変換装置において、
二次元XY直交座標系上の座標(x,y)で示される位置に配置された多数の画素の集合体によって構成された歪曲円形画像を格納する歪曲円形画像格納部と、
二次元UV直交座標系上の座標(u,v)で示される位置に配置された多数の画素の集合体によって構成される平面正則画像を格納する平面正則画像格納部と、
歪曲円形画像格納部に格納されている歪曲円形画像をディスプレイに表示する歪曲円形画像表示部と、
所定の入力画面上において、参照直線JとX軸とのなす角として定義される角度θと、変換倍率mと、をユーザの指示に基づいて入力するとともに、前記ディスプレイに表示されている歪曲円形画像上において、切出中心点Pの位置をユーザの指示に基づいて入力する指示入力部と、
座標(u,v)と座標(x,y)とを対応づける変換演算式を利用して、座標(u,v)で示される位置に配置された平面正則画像上の画素の画素値を、対応する座標(x,y)で示される位置に配置された歪曲円形画像上の参照画素の画素値に基づいて決定することにより、歪曲円形画像から切出中心点Pを中心として参照直線Jに応じた向きに切り出された部分画像について、変換倍率mに基づいてスケーリングされた平面正則画像を生成する演算を行い、生成された平面正則画像を平面正則画像格納部に格納する変換演算部と、
を設けるようにしたものである。
【0031】
(23) 本発明の第23の態様は、魚眼レンズを用いた撮影により得られた歪曲円形画像の一部分を切り出して、平面正則画像に変換する処理を行う画像変換方法において、
二次元XY直交座標系上の座標(x,y)で示される位置に配置された多数の画素の集合体によって構成され、XY座標系の原点Oを中心とし半径Rをもった歪曲円形画像を、歪曲円形画像格納部に格納する段階と、
歪曲円形画像格納部に格納されている歪曲円形画像をディスプレイに表示する段階と、
ディスプレイに表示されている歪曲円形画像上における、切出中心点Pの位置および切り出し向きをユーザの指示に基づいて入力する段階と、
二次元XY直交座標系を含む三次元XYZ直交座標系において、原点Oを中心とし半径Rをもった仮想球面を定義したときに、切出中心点Pを通りZ軸に平行な直線と仮想球面との交点Gの位置座標(x0,y0,z0)を求める段階と、
交点Gにおいて仮想球面に接する接平面上に定義すべき二次元UV直交座標系のU軸方向を向いたベクトルUと、二次元XY直交座標系のX軸方向を向いたベクトルXと、のなす角として与えられる平面傾斜角φを、切り出し向きに基づいて決定する段階と、
位置座標(x0,y0,z0)および平面傾斜角φをパラメータとして含む正射影方式の変換演算式を利用して、座標(u,v)と座標(x,y)とを対応づけ、座標(u,v)で示される位置に配置された多数の画素の集合体によって構成される平面正則画像上の各画素の画素値を、対応する座標(x,y)で示される位置に配置された歪曲円形画像上の参照画素の画素値に基づいて決定することにより、歪曲円形画像から切出中心点Pを中心として平面傾斜角φによって示される向きに切り出された部分画像についての平面正則画像を生成する演算を行う段階と、
をコンピュータもしくは電子回路に実行させるようにしたものである。
【0032】
(24) 本発明の第24の態様は、上述した第23の態様に係る画像変換方法において、
正射影方式の変換演算式として、
x=R[(u−x0)A+(v−y0)B+(w−z0)E]/
√((u−x0)2+(v−y0)2+(w−z0)2)
y=R[(u−x0)C+(v−y0)D+(w−z0)F]/
√((u−x0)2+(v−y0)2+(w−z0)2)
ここで、
A=1−(1−cosφ)(y02+z02)
B=−z0sinφ+x0y0(1−cosφ)
C=z0sinφ+x0y0(1−cosφ)
D=1−(1−cosφ)(z02+x02)
E=y0sinφ+z0x0(1−cosφ)
F=−x0sinφ+y0x0(1−cosφ)
w=mR(但し、mは所定の変換倍率)
なる式を用いるようにしたものである。
【0033】
(25) 本発明の第25の態様は、上述した第23または第24の態様に係る画像変換方法において、
ディスプレイに表示されている歪曲円形画像上において、切出中心点Pと補助点Qとの2点の位置を指定するための指示を入力し、切出中心点Pと補助点Qとを結ぶ直線を参照直線Jとし、この参照直線JとX軸とのなす角θ(但し、両者平行の場合はθ=0°とする)に基づいて平面傾斜角φを決定するようにしたものである。
【0034】
(26) 本発明の第26の態様は、上述した第23または第24の態様に係る画像変換方法において、
ディスプレイに表示されている歪曲円形画像上において、切出中心点Pの位置を指定するための指示を入力するとともに、所定の入力画面上において、歪曲円形画像上の参照直線JとX軸とのなす角θを入力し、この角θに基づいて平面傾斜角φを決定するようにしたものである。
【発明の効果】
【0035】
本発明に係る画像変換装置を用いたユーザは、魚眼レンズを用いた撮影により得られた歪曲円形画像上における切出中心点Pの位置および切り出し向きを指示すればよいので、直観的な操作により、変換に必要なパラメータ設定が可能になる。しかも、変換演算は、ユーザの指示入力に基づいて導出された仮想球面上の接点の座標値(x0,y0,z0)および平面傾斜角φをパラメータとして用いる比較的単純な変換演算式を用いて行われるため、演算負担を軽減させることも可能になる。
【発明を実施するための最良の形態】
【0036】
以下、本発明を図示する実施形態に基づいて説明する。
【0037】
<<< §1.画像変換処理の基本原理 >>>
はじめに、魚眼レンズを用いた撮影により得られた歪曲円形画像の一般的な特徴と、その一部分を切り出して、平面正則画像に変換する処理の基本原理を説明する。図1は、正射影方式の魚眼レンズを用いた撮影により歪曲円形画像Sを形成する基本モデルを示す斜視図である。一般に、魚眼レンズは、その投影方式によって複数の種類に分けられるが、この図1に示すモデルは、正射影方式の魚眼レンズについてのものである(正射影方式以外の魚眼レンズに本発明を適用する手法は、§5で述べる)。
【0038】
図1には、三次元XYZ直交座標系におけるXY平面上に歪曲円形画像Sが形成された例が示されている。なお、ここでは、後述する変換演算式との整合性を確保するために、図示のとおり、Z軸を図の下方にとり、Z軸の負の領域側にドーム状の仮想球面H(半球)を定義した例を示すことにする。
【0039】
XY平面上に形成された歪曲円形画像Sは、座標系の原点Oを中心とした半径Rの円を構成する画像であり、Z軸の負の領域側における180°の画角をもった領域に存在する像を歪ませて記録したものに相当する。図2は、魚眼レンズを用いた撮影によって得られた歪曲円形画像Sの一例を示す平面図である。このように、歪曲円形画像Sには、Z軸の負の領域側に存在するすべての像が記録されることになるが、その中心部分と周囲部分とでは、像の縮尺倍率が異なっており、記録された像の形状は歪んだものになる。なお、図2に示す歪曲円形画像Sは、魚眼レンズを用いた撮影により得られた歪曲円形画像の一般的なイメージを示すものであり、実際の魚眼レンズを用いて得られる正確な画像を示すものではない。
【0040】
実際の魚眼レンズは、複数の凸レンズや凹レンズを組み合わせた光学系によって構成されるが、その光学的な特性は、図1に示すような仮想球面Hによってモデル化することができることが知られている。すなわち、歪曲円形画像Sの上面に、半径Rをもったドーム状の仮想球面H(半球)を配置したモデルを考えれば、正射影方式の魚眼レンズの光学的特性は、仮想球面H上の任意の点H(x,y,z)に対して法線方向から入射する入射光線L1は、Z軸に平行な入射光線L2として、XY平面上の点S(x,y)へ向かう振る舞いをする、と考えてよい。逆言すれば、図2において歪曲円形画像S上の点S(x,y)に位置する画素は、図1に示す入射光線L1の延長線上に存在する物体上の1点を示していることになる。
【0041】
もちろん、実際の魚眼レンズで生じている光学的現象は、複数の凸レンズや凹レンズによる屈折により、撮像対象となる物体の特定の点が、XY平面上の特定の点S(x,y)上に結像する現象ということになるが、画像変換処理などを行う上では、図1に示すような仮想球面Hを用いたモデルに置き換えた議論を行っても何ら支障はない。したがって、前掲の特許文献に開示されている画像変換処理でも、このようなモデルを前提とした手法が示されており、本発明における以下の説明においても、このようなモデルを前提とした説明を行うことにする。
【0042】
本発明に係る画像変換装置の目的は、歪曲円形画像S上の一部分を切り出して、平面正則画像に変換する処理を行うことである。たとえば、図2に示す歪曲円形画像Sを見たユーザが、その左下に描かれている女性の画像を、歪みのない正しい画像で観察したいと考えたとしよう。このような場合、ユーザは、歪曲円形画像Sのどの部分を切り出して変換を行うべきかを指定する必要がある。たとえば、図3にハッチングを施して示すような切出領域Eを変換対象とすべき領域として指定するのであれば、最も直観的な指定方法は、その中心点P(x0,y0)の位置を指定する方法であろう。本発明では、このようにしてユーザが指定する点Pを、切出中心点Pと呼ぶことにする。
【0043】
ここでは、切出中心点P(x0,y0)を中心とした切出領域E内の画像を、平面正則画像に変換するために、次のようなモデルを考える。図4は、このモデルにおいて、歪曲円形画像Sを含むXY座標系と、平面正則画像Tを含むUV座標系との関係を示す斜視図である。図示のとおり、歪曲円形画像Sは、三次元XYZ直交座標系のXY平面上に定義されているので、歪曲円形画像S自身は、二次元XY直交座標系上に定義された画像である。そこで、この歪曲円形画像S上に定義された切出中心点P(x0,y0)を通りZ軸に平行な直線と仮想球面Hとの交点Gを考える。この交点Gは、いわば切出中心点P(x0,y0)の真上の点であり、その位置座標は(x0,y0,z0)である。
【0044】
次に、この交点G(x0,y0,z0)において、仮想球面Hに接する接平面を定義し、この接平面上に二次元UV直交座標系を定義する。そして、平面正則画像Tを、この二次元UV直交座標系上の画像として求めることにする。図4に示す例の場合、交点G(x0,y0,z0)が原点となるようにUV座標系が定義されている。結局、このモデルにおけるUV座標系の原点は、仮想球面H上のいずれかに設定され、UV座標系を構成するUV平面は、この原点位置における仮想球面Hに対する接平面に一致する。
【0045】
UV座標系の原点となる交点G(x0,y0,z0)の位置は、図示のとおり、方位角αと天頂角βとによって特定することができる。ここで、方位角α(0≦α<360°)は、切出中心点P(x0,y0)とXY座標系の原点Oとを結ぶ直線とX軸とのなす角であり、天頂角β(0≦β≦90°)は、UV座標系の原点となる点G(x0,y0,z0)とXY座標系の原点Oとを結ぶ直線とZ軸とのなす角である。
【0046】
このように、UV平面は、方位角αと天頂角βとを指定することによって特定することができるが、UV座標系を決定するには、更にもう1つのパラメータを指定する必要がある。このパラメータは、点Gを中心とした接平面上での回転ファクター(U軸の向き)を示すものであり、一般に平面傾斜角と呼ばれている。通常、この平面傾斜角は、「点Gを通り、XY平面に平行で、かつ、直線OGに直交する軸」を基準軸として、当該基準軸とU軸とのなす角ψとして定義される(基準軸は、方位角αと天頂角βに依存して変化する)。これに対して、本発明では、上記角ψの代わりに、X軸を基準としたときのU軸の向きを示す角度φを用いることにする(基準軸は、常にX軸に固定される)。具体的には、本発明でパラメータとして用いる角度φは、図4に示すように、U軸とX′軸とのなす角度として定義される。ここで、X′軸は、交点G(x0,y0,z0)を通りX軸に平行な軸である。要するに、角度φは、UV座標系においてU軸方向を向いたベクトルUと、XY座標系においてX軸方向を向いたベクトルXと、を定義したときに、ベクトルUとベクトルXとのなす角度として定義される角になる。このように、「本発明において用いられる角度φ」は、「従来の一般的な平面傾斜角ψ」とは異なる方法で定義される角度であるが、いずれもUV座標系の回転ファクターを示すパラメータという点において共通するため、ここでは角度φについても「平面傾斜角」という用語を用いることにする。
【0047】
図5は、UV座標系上に定義された平面正則画像Tと平面傾斜角φとの関係を示す平面図である。ここに示す例の場合、平面正則画像Tは、UV座標系の原点G(x0,y0,z0)を中心とするUV平面上の矩形として定義されており、その長辺はU軸に平行、短辺はV軸に平行になっている。平面傾斜角φは、上述したとおり、U軸とX′軸とのなす角であるから、図5に示す例の場合、UV平面上での平面正則画像Tの回転ファクターを示すパラメータということになる。
【0048】
結局、図4に示す平面正則画像Tを形成するためのUV座標系の位置および向きは、方位角α,天頂角β,平面傾斜角φという3つの角度からなるパラメータを設定することにより一義的に決定される。この3つの角度は、一般にオイラー角と呼ばれている(上述したとおり、平面傾斜角φについては、従来の一般的な平面傾斜角ψとは、若干、定義方法が異なっている)。
【0049】
さて、本発明において実行される画像変換処理は、結局、XY座標系からUV座標系への座標変換ということになる。そこで、XY座標系とUV座標系との幾何学的な位置関係を、もう少し詳しく見てみよう。図6の斜視図に示されているように、XY平面上の歪曲円形画像Sを、方位角αによって示される方向に対して、天頂角βだけ傾斜すると、傾斜面S1が得られる。ここで、図示のとおり、XY座標系の原点OからUV座標系の原点Gへ向かう方向に法線ベクトルnを定義し、傾斜面S1をこの法線ベクトルnの方向に距離Rだけ平行移動させると、接平面S2が得られることになる。移動距離Rは、歪曲円形画像Sの半径であり、仮想球面Hの半径でもある。
【0050】
接平面S2は、点Gにおいて仮想球面Hに接する平面であり、法線ベクトルnは、点Gにおける仮想球面Hの法線方向を示すベクトルである。そして、UV座標系は、この接平面S2上に定義される座標系であり、点Gを原点とし、U軸とX′軸(X軸を平行移動した軸)とのなす角が平面傾斜角φとなるように定義された二次元直交座標系である。図7は、図6の斜視図に示されている各構成要素を水平方向から見た図である。前述したとおり、点G(x0,y0,z0)は、歪曲円形画像S上に定義された切出中心点P(x0,y0)を通りZ軸に平行な直線と仮想球面Hとの交点として定まる点であり、その位置は方位角αおよび天頂角βによって定まる。一方、図8は、図6の斜視図に示されている各構成要素を上方から見た図である。図に示す交点G(x0,y0,z0)は、仮想球面H上の点であり、XY平面の上方に位置している。そして、この交点G(x0,y0,z0)における仮想球面Hに対する接平面上にUV座標系が定義される。このとき、U軸とX′軸とのなす角がφとなるように、U軸の向きが定められる。
【0051】
図9は、UV座標系上に定義された平面正則画像Tを示す平面図である。ここでは、この平面正則画像T上の任意の点をUV座標系の座標値u,vを用いて、T(u,v)と表すことにする。前述したとおり、ここに示すモデルでは、UV座標系の原点T(0,0)の位置は、点G(x0,y0,z0)に一致する。一方、図10は、XY座標系上に定義された歪曲円形画像Sを示す平面図である。ここでは、この歪曲円形画像S上の任意の点をXY座標系の座標値x,yを用いて、S(x,y)と表すことにする。
【0052】
本発明に係る画像変換装置は、図10に示すように、ユーザが歪曲円形画像S上の1点P(x0,y0)の位置を切出中心点として指定すると(実際には、後述するように、切り出し向きの指定も行う)、その近傍の切出領域E内の歪曲した画像を正則画像に変換し、図9に示すUV座標系上に定義された平面正則画像Tとして出力する機能を有している。このような画像変換を行うためには、UV座標系上の1点T(u,v)とXY座標系上の1点S(x,y)との間に1対1の対応関係を定義しておく必要がある。このような対応関係は、実際には、変換演算式として表現することができる。
【0053】
このような変換演算式は、三次元XYZ座標系の空間内に配置されたUV座標系の位置および向きが決定すれば、一義的に定義することが可能である。たとえば、図4に示すような特定のUV座標系が定義されており、その上に何らかの平面正則画像Tが配置されていたとする。この場合、この平面正則画像Tを撮影対象となる物体と考え、図示のモデルに相当する魚眼レンズを用いて、当該物体を撮影すれば、XY平面上に歪曲円形画像Sが得られることになる。このとき、撮影対象物体となる平面正則画像T上の任意の点T(u,v)の歪曲円形画像S上での結像位置S(x,y)は、図1で説明した魚眼レンズの光学的な基本特性に基づいて決定できる。すなわち、点T(u,v)からの光線L1が法線方向から入射するような仮想球面H上の点H(x,y,z)を求めれば、結像位置はS(x,y)として与えられることになる。
【0054】
結局、UV座標系の位置および向きが決定すれば、UV座標系上の1点T(u,v)とXY座標系上の1点S(x,y)との間に1対1の対応関係を定義することができ、そのような対応関係は変換演算式として表現することができる。歪曲円形画像Sの一部を平面正則画像Tに変換する画像変換処理は、この変換演算式を用いた座標変換演算によって行うことができる。たとえば、図9に示す平面正則画像Tにおける任意の1点T(u,v)に位置する画素の画素値は、図10に示す歪曲円形画像S上の対応点S(x,y)に位置する画素の画素値に基づいて決定すればよい。これが歪曲円形画像の一部を平面正則画像に変換する画像変換処理の基本原理である。
【0055】
<<< §2.変換演算式の比較 >>>
上述したとおり、UV座標系上の1点T(u,v)とXY座標系上の1点S(x,y)とを対応づける変換演算式は、三次元XYZ座標系の空間内に配置されたUV座標系の位置および向きが決定しなければ一義的には定義できないが、UV座標系の位置および向きをパラメータ値として含む形の変換演算式であれば、定義することは可能である。
【0056】
たとえば、図11に式(1)〜(9)として示されている変換演算式は、前掲の特許文献に開示されている式である。この変換演算式は、UV座標系の位置を示すパラメータα,βと、UV座標系の向きを示すパラメータψとを含む式になっている。これら3つのパラメータは、§1で述べたオイラー角、すなわち、方位角α,天頂角β,平面傾斜角ψである。ここで、平面傾斜角ψは、従来の一般的な方法によって定義された回転ファクターを示すパラメータであり、図4において、「点Gを通り、XY平面に平行で、かつ、直線OGに直交する軸(図示されていない)」を基準軸として、当該基準軸とU軸とのなす角ψとして定義される角度である(前述したとおり、本発明では、角ψの代わりに、図4に示すように、U軸とX′軸とのなす角φを用いることになる)。
【0057】
具体的には、
x=R(uA+vB+wE)/
√(u2+v2+w2) 式(1)
は、UV座標系上の1点T(u,v)の座標値u,vを用いて、XY座標系上の対応点S(x,y)のx座標値を求めるための式であるが、A,B,Eは、それぞれ、
A=cosψcosα−sinψsinαcosβ 式(3)
B=−sinψcosα−cosψsinαcosβ 式(4)
E=sinβsinα 式(7)
なる数式で求まる値であり、オイラー角α,β,ψの三角関数を用いた演算によって決定されることになる。
【0058】
同様に、
y=R(uC+vD+wF)/
√(u2+v2+w2) 式(2)
は、UV座標系上の1点T(u,v)の座標値u,vを用いて、XY座標系上の対応点S(x,y)のy座標値を求めるための式であるが、C,D,Fは、それぞれ、
C=cosψsinα+sinψcosαcosβ 式(5)
D=−sinψsinα+cosψcosαcosβ 式(6)
F=−sinβcosα 式(8)
なる数式で求まる値であり、オイラー角α,β,ψの三角関数を用いた演算によって決定されることになる。
【0059】
なお、式(1),(2)におけるwは、
w=mR 式(9)
で与えられる値である。ここで、Rは、歪曲円形画像Sの半径であり、mは変換倍率である。変換倍率mは、座標値u,vのスケーリングと、座標値x,yのスケーリングとの関係を示すものであり、変換倍率mを大きく設定すればするほど、平面正則画像Tには拡大された画像が求められる。実際には、平面正則画像Tの大きさ(たとえば、縦横の画素数)には制限があるため、変換倍率mを大きく設定すればするほど、歪曲円形画像Sの切出領域Eは小さくなる。
【0060】
結局、図11に示す式において、Rの値は歪曲円形画像Sの半径として既知であり、mの値はユーザによって指定された(もしくは、予め固定された)変換倍率値として既知であるから、ユーザがオイラー角α,β,ψを指定することにより、UV座標系の位置および向きを決定してやれば、図11に示す変換演算式において、座標値x,yを算出するための未知数はu,vのみになる。したがって、この変換演算式を用いれば、平面正則画像Tにおける任意の1点T(u,v)に対応する歪曲円形画像S上の対応点S(x,y)を決定することができる。
【0061】
前掲の特許文献に開示されている画像変換の方法は、この図11に示す変換演算式を用いて、歪曲円形画像Sの一部を平面正則画像Tに変換するものである。しかしながら、このような変換演算式に基づいて変換演算を行う従来の画像変換装置には、前述したように、2つの問題がある。
【0062】
第1の問題は、ユーザの立場から見た操作性の問題である。図11に示す変換演算式に基づく演算を実行するためには、ユーザはオイラー角α,β,ψを指定する操作を行う必要がある。ところが、オイラー角α,β,ψは、三次元空間上に定義される角度であるのに対し、ユーザが実際に目にしている歪曲円形画像Sは二次元平面上に表示されている画像である。したがって、ユーザにとって、3つの角度α,β,ψをパラメータとして指定する操作は、決して直観的な操作と言えるものではない。このような点において、前掲の特許文献に開示されている従来の画像変換装置は、ユーザの立場からは、必ずしも使い易い装置とは言えない。
【0063】
第2の問題は、図11に示す変換演算式に基づく演算が、かなり負担の大きな演算になる点である。図11に示す式(3)〜(8)には、多数の三角関数の項が含まれている。一般に、三角関数の演算は、演算器やコンピュータにとって、かなり負担の大きな演算である。特に、リアルタイムでの変換処理が要求される場合、三角関数演算を高速で行うことが可能な高機能なハードウエアが必要になり、製品コストもそれだけ高騰せざるを得ない。
【0064】
本発明の最も重要な特徴は、図11に示す従来の変換演算式の代わりに、図12に示す新たな変換演算式(以下、本発明の変換演算式という。その数学的な導出プロセスは、§7で述べる。)を用いて演算を行う点にある。いずれの演算式も、平面正則画像Tにおける任意の1点T(u,v)に対応する歪曲円形画像S上の対応点S(x,y)を決定するための式であり、1組の変数値u,vを代入することにより、1組の関数値x,yが求まる、という点では共通する。しかしながら、図12に式(11)〜(19)として示されている本発明の変換演算式では、図11に式(1)〜(9)として示されている従来の変換演算式に比べて、三角関数の出現頻度がかなり減少していることがわかる。その理由は、3つの角度である方位角、天頂角、平面傾斜角のうち、方位角と天頂角が陽に使われていないからである。
【0065】
具体的には、
x=R[(u−x0)A+(v−y0)B+(w−z0)E]/
√((u−x0)2+(v−y0)2+(w−z0)2) 式(11)
は、UV座標系上の1点T(u,v)の座標値u,vを用いて、XY座標系上の対応点S(x,y)のx座標値を求めるための式である。ここで、A,B,Eは、それぞれ、
A=1−(1−cosφ)(y02+z02) 式(13)
B=−z0sinφ+x0y0(1−cosφ) 式(14)
E=y0sinφ+z0x0(1−cosφ) 式(17)
なる数式で求まる値である。この数式に含まれている三角関数は、平面傾斜角φについてのsinφおよびcosφのみである。
【0066】
同様に、
y=R[(u−x0)C+(v−y0)D+(w−z0)F]/
√((u−x0)2+(v−y0)2+(w−z0)2) 式(12)
は、UV座標系上の1点T(u,v)の座標値u,vを用いて、XY座標系上の対応点S(x,y)のy座標値を求めるための式である。ここで、C,D,Fは、それぞれ、
C=z0sinφ+x0y0(1−cosφ) 式(15)
D=1−(1−cosφ)(z02+x02) 式(16)
F=−x0sinφ+y0x0(1−cosφ) 式(18)
なる数式で求まる値である。この数式に含まれている三角関数は、やはり平面傾斜角φについてのsinφおよびcosφのみである。
【0067】
なお、式(11),(12)におけるwが、
w=mR 式(19)
で与えられる値であり、Rが歪曲円形画像Sの半径、mが変換倍率である点は、従来の変換演算式と同様である。
【0068】
結局、図11に示す式に含まれていた方位角αおよび天頂角βに関する三角関数は、図12に示す式には全く含まれていないことになる。その代わりに、図12に示す式には、点Gの座標値(x0,y0,z0)が含まれている。これは、UV座標系の位置を示すパラメータとして、図11に示す従来の式では、方位角αと天頂角βを用いているのに対して、図12に示す本発明の式では、点Gの座標値(x0,y0,z0)を用いているためである。
【0069】
図4に示すように、UV座標系の原点となる点G(x0,y0,z0)は、切出中心点P(x0,y0)を通りZ軸に平行な直線と仮想球面Hとの交点として定義される点である。ここで、切出中心点P(x0,y0)の位置は、ユーザの指定(歪曲円形画像Sのどの部分を切り出して、平面正則画像に変換して欲しいかという要求)に基づいて設定される点であるから、結局、交点G(x0,y0,z0)も、ユーザの要望に応じて設定される点ということになる。そして、この交点Gを特定する方法として、図11に示す従来の式は、方位角αおよび天頂角βという2つの角度を用いた式であるのに対して、図12に示す本発明の式は、(x0,y0,z0)という座標値を用いた式ということになる。また、図11に示す従来の式で用いられている平面傾斜角ψは、図4において「点Gを通り、XY平面に平行で、かつ、直線OGに直交する軸(図示されていない)」を基準軸として、当該基準軸とU軸とのなす角ψとして定義されるのに対して、図12に示す本発明の式で用いられている平面傾斜角φは、図4に示すように、U軸とX′軸とのなす角として定義される。
【0070】
このように、交点Gの位置を方位角αおよび天頂角βを用いて表現し、平面傾斜角ψを用いた従来の変換演算式(図11)と、交点Gの位置を(x0,y0,z0)なる座標値を用いて表現し、平面傾斜角φを用いた本発明の変換演算式(図12)とは、幾何学的には等価な式ということができる。しかしながら、演算器を組み合わせて構成したハードウエアや、コンピュータ用ソフトウエアによって、実際の演算処理を行うという観点では、この2つの変換演算式には大きな違いがある。すなわち、従来の変換演算式(図11)に基づく演算を行うためには、多数の三角関数演算(式(3)〜(8))を行う必要があるのに対して、本発明の変換演算式(図12)を用いれば、三角関数演算は大幅に低減される(式(13)〜(18))。
【0071】
また、ユーザの操作性という観点から見ると、方位角αおよび天頂角βをパラメータとして設定する操作に比べて、点Gの座標値(x0,y0,z0)をパラメータとして設定する操作の方が、はるかに直観的であり良好な操作性が得られる。上述したとおり、点Gは、切出中心点P(x0,y0)を通りZ軸に平行な直線と仮想球面Hとの交点として定義される点であるから、ユーザは、歪曲円形画像S上において、切出中心点P(x0,y0)の位置を指定する操作を行えば、座標値z0は交点を求める演算によって自動的に求めることができる。もちろん、切出中心点P(x0,y0)の位置を指定する操作は、ディスプレイに表示された歪曲円形画像S上の1点をクリックするなどの直観的な操作で行うことができる。更に、従来の平面傾斜角ψに比べて、本発明の平面傾斜角φは、常にX軸という固定軸を基準として定義される角であるため、§3で詳述するように、ユーザは、歪曲円形画像S上において角φを直観的に指定することが可能になる。
【0072】
このように、本発明に係る画像変換装置では、従来の変換演算式(図11)に基づく演算に代えて、本発明の変換演算式(図12)に基づく演算を行うようにしたため、魚眼レンズを用いた撮影により得られた歪曲円形画像Sを平面正則画像Tに変換する際に、ユーザの直観的な操作により必要なパラメータ設定が可能になり、しかも演算負担を軽減させることが可能になる。
【0073】
<<< §3.本発明におけるパラメータ設定法 >>>
本発明の変換演算式に基づく演算を行うためには、図12の各式に示されているとおり、平面傾斜角φ、交点Gの座標値(x0,y0,z0)、歪曲円形画像Sの半径R、変換倍率mをパラメータとして設定する必要がある。別言すれば、これらのパラメータの値が既知であれば、式(11)および式(12)に所定の変数値u,vを与えることにより、関数値x,yを算出することができるので、UV座標系上の任意の1点T(u,v)に対応するXY座標系上の対応点S(x,y)を特定することができ、歪曲円形画像Sを平面正則画像Tに変換する処理が可能になる。
【0074】
ここで、上記パラメータφ,x0,y0,z0,R,mのうち、z0の値は交点を求める幾何学的な演算によって自動的に求めることができるので、ユーザが入力する必要はない。また、半径Rは、撮影に用いた魚眼レンズに固有の数値であるから、予め当該固有値を用いた演算を行うようにしておけば、ユーザが入力する必要はない。もちろん、半径Rの値が異なる複数種類の魚眼レンズで撮影した歪曲円形画像に適宜対応できるようにしておくのであれば、用いた魚眼レンズに応じて、それぞれ異なるRの値をユーザに入力させればよい。その場合でも、単なる数値を入力するだけの操作であるから、ユーザの操作負担は軽微なものである。
【0075】
そこで、ここでは、残りのパラメータφ,x0,y0,mを、ユーザに効率的に設定させるユニークな実施例を述べることにする。この実施例は、ユーザと画像変換装置との間の理想的なマンマシンインターフェイスを提案するものである。
【0076】
ここで述べるパラメータ設定法の特徴は、図13に示すように、XY座標系上に定義されている歪曲円形画像Sをユーザに提示し、この画像上で2点P,Qを指定させる点にある。この方法では、この2点P(x0,y0),Q(x1,y1)の位置情報に基づいて、パラメータφ,x0,y0,mの値を設定することができる。具体的には、点P(x0,y0)の座標値(x0,y0)は、そのままパラメータx0,y0の値として用いられる。また、2点P,Q間の距離dの値は、変換倍率mを決定するために利用される。すなわち、変換倍率mは、所定の比例定数kを用いて、m=k/dなる値により決定される。2点P,Q間の距離dは、点Pの座標値(x0,y0)と点Qの座標値(x1,y1)とを用いて、d=√((x0−x1)2+(y0−y1)2)なる演算によって算出できる。更に、2点P,Qを結ぶ直線を参照直線Jとし、この参照直線JとX軸とのなす角θを求めれば(但し、両者平行の場合はθ=0°とする)、この角度θに基づいて、平面傾斜角φを決定することができる(具体的な方法は後述する)。
【0077】
このようにして、ユーザが、ディスプレイの画面に表示されている歪曲円形画像Sを見ながら、当該画像上で、2点P,Qをマウスクリックなどの方法で指定する操作を行うと、4つのパラメータφ,x0,y0,mが決定されることになる。ここで、2点P,Qのもつ意味を考えてみよう。まず点Pは、これまで述べてきた切出中心点P(x0,y0)に他ならない。図10に示す例のように、ユーザが指定した切出中心点P(x0,y0)の近傍の切出領域E内の歪曲画像が、平面正則画像に変換されることになる。したがって、ユーザは、歪曲円形画像Sの「ここを中心とした部分」を正則画像に変換したい、という要求を、切出中心点P(x0,y0)の位置として入力する操作を行えばよい。
【0078】
一方、点Qは、「切り出し向き」と「変換倍率」とを指定するための点であり、ここでは補助点Qと呼ぶことにする。「切り出し向き」は、切出中心点Pと補助点Qとの位置関係に基づいて決定される。別言すれば、2点P,Qを結ぶ参照直線Jが、「切り出し向き」を示すことになる。後述するように、平面傾斜角φは、参照直線JとX軸とのなす角θに基づいて決定されるので、結局、図13に示す参照直線Jの向きは、図5に示すU軸の向きを左右するパラメータということになる。図13に示されているXY平面上で参照直線Jが時計回りに回転すれば、図5に示されている接平面上でU軸も時計回りに回転することになり、図10に示されている切出領域Eも時計回りに回転することになる。したがって、ユーザは、切出中心点P(x0,y0)の位置を指定する入力を行った後、この切出中心点P(x0,y0)に対して所望の相対位置に補助点Q(x1,y1)を指定する入力操作を行うことにより、歪曲円形画像Sの「こっち方向を横向きにとった」正則画像を得たい、という要求を伝えることができる。
【0079】
「変換倍率」は、上述したとおり、2点P,Q間の距離dを用い、m=k/dなる式で決定される。通常、平面正則画像Tをディスプレイの画面に表示する場合、その表示領域の寸法は固定されている。このため、変換倍率mを大きく設定すればするほど、平面正則画像Tはディスプレイ上で拡大されて表示されることになるが、表示されている平面正則画像Tに対応する切出領域Eの面積は小さくなる。したがって、比例定数kの値を、ディスプレイの表示画面の大きさ(ここで示す例の場合、U軸方向に対応する画面の画素数)を考慮した適当な値に設定しておけば、補助点Qの位置を、ほぼ切出領域Eの境界を示すパラメータとして利用することが可能である。
【0080】
このような方法で各パラメータ値の設定を行えば、たとえば、図13に示す歪曲円形画像Sの切出中心点P(x0,y0)の位置は、図9に示す平面正則画像Tの原点T(0,0)に対応し、図13に示す参照直線Jの向きは、図9に示すU軸の向きに対応し、図13に示す補助点Q(x1,y1)の位置は、図9に示す境界点Bに対応することになる。別言すれば、ユーザは、図9に示すような所望の平面正則画像Tを頭の中で想定しながら、原点T(0,0)の位置に表示すべき部分を、歪曲円形画像S上において切出中心点P(x0,y0)として指定し、境界点Bの位置に表示すべき部分を、歪曲円形画像S上において補助点Q(x1,y1)として指定すればよいので、所望の平面正則画像Tを念頭に入れた極めて直観的な指示入力操作を行うことが可能になる。
【0081】
図14は、具体的な歪曲円形画像上で2点P,Qを指定することにより、切出中心点P、切り出し向きを示す角度θ、変換倍率mの3つのパラメータを設定する例を示す平面図である。ここでは、図示のとおり、歪曲円形画像の一部分に歪んだ顔の画像が表示されており、ユーザが、この顔を囲む切出領域Eの部分について、平面正則画像Tを得たいと要望した場合を考えてみよう。この場合、ユーザは、まず、顔の中心付近に切出中心点P(x0,y0)を指定し、続いて、頭頂部付近に補助点Q(x1,y1)を指定する入力操作を行えばよい。すると、図示のような参照直線Jが定義され、X軸とのなす角θが認識され、このθに基づいて平面傾斜角φが決定され、UV座標系の位置と向き(U軸の向き)が決定される。
【0082】
図15は、このようなパラメータ設定に基づいて得られる平面正則画像Tを示す平面図である。図15に示す点P,Qは、図14に示す切出中心点P(x0,y0)および補助点Q(x1,y1)に対応する点である。平面正則画像T上に表示されている顔が横向きになっているのは、図14において、補助点Q(x1,y1)の位置を顔の頭頂部付近に指定したためである。すなわち、図14に示す2点P,Qを結ぶ参照直線Jの方向が、平面正則画像TにおけるU軸方向となるような画像変換が行われたためである。
【0083】
平面正則画像T上に正立状態の顔を得たい場合、ユーザは、図14において、まず、顔の中心付近に切出中心点P(x0,y0)を指定し、続いて、顔の右側離隔位置に補助点Q′(x2,y2)を指定する入力操作を行えばよい。すると、図示のような参照直線J′が定義され、X軸とのなす角θ′が認識され、このθ′に基づいて平面傾斜角φが決定され、UV座標系の位置と向き(U軸の向き)が決定される。
【0084】
図16は、このようなパラメータ設定に基づいて得られる平面正則画像Tを示す平面図である。図16に示す点P,Q′は、図14に示す切出中心点P(x0,y0)および補助点Q′(x2,y2)に対応する点である。平面正則画像T上に表示されている顔が正立像になっているのは、図14において、補助点Q′(x2,y2)の位置を顔の右側離隔位置に指定したためである。すなわち、図14に示す2点P,Q′を結ぶ参照直線J′の方向が、平面正則画像TにおけるU軸方向となるような画像変換が行われたためである。
【0085】
図15に示す画像も図16に示す画像も、同一のディスプレイに表示された画像であり、いずれも横方向の寸法がa(水平方向の画素数がa個)、縦方向の寸法がb(垂直方向の画素数がb個)である。ただ、両画像では、変換倍率mの値が異なっており、図15に示す画像の方が、図16に示す画像よりも拡大されている。これは、図14において、2点P,Q間距離よりも、2点P,Q′間距離の方が大きくなるように補助点の位置指定がなされたためである。図14において、補助点Q(x1,y1)を指定した場合の切出領域Eは図示のとおりであるが、補助点Q′(x2,y2)を指定した場合の切出領域E′(図示省略)は、切出領域Eよりも広い領域になる。このため、切出領域Eについての正則画像を表示した図15に示す例に比べて、切出領域E′についての正則画像を表示した図16に示す例の場合、画像の拡大倍率は低くなる。
【0086】
このように、変換倍率mを、2点P,Q間距離dを用いて、m=k/dなる式で定め、比例定数kを適当な値に設定してやれば、補助点Qの位置を平面正則画像Tの境界を定めるパラメータとして利用することができるので、ユーザに直観的な入力操作を提供する上では好都合である。ユーザは、図9に示すような所望の平面正則画像Tにおける原点T(0,0)および境界点Bの位置に対応する点として、歪曲円形画像S上において切出中心点P(x0,y0)および補助点Q(x1,y1)の位置を指定する入力操作を行うことにより、所望の切出領域Eに対応した平面正則画像Tを得ることが可能になる。
【0087】
最後に、切り出し向きを示す角度θ(図13に示す参照直線JとX軸とのなす角であり、両者平行の場合はθ=0°とする)に基づいて、平面傾斜角φを決定する具体的な方法を述べる。図17は、この角度θと平面傾斜角φとの関係を示す斜視図である。角度θは、XY平面上に位置する参照直線JとX軸とのなす角であるのに対して、平面傾斜角φは、UV平面上のU軸方向を向いたベクトルUとXY平面上のX軸方向を向いたベクトルXとのなす角として定義される角度である。図17には、接平面S2上のU軸を傾斜面S1上まで平行移動したU′軸(ベクトルU′)を考え、U′軸とX軸とのなす角度として、平面傾斜角φを示している。
【0088】
このように、参照直線JがXY平面上の直線であるのに対して、U′軸は傾斜面S1上の軸であるので、天頂角β=0の場合にはθ=φが成り立つが、β>0の場合には両者は等しくならない。角度θに基づいて、平面傾斜角φの正確な値を決定するためには、図18に示すように、方位角αおよび天頂角βをパラメータとして用いた演算式
φ=f(θ) 式(21)
を用いた演算を行う必要がある(関数fは、図6や図17に示す幾何学的配置に基いて一義的に決定されることになるが、三角関数を用いた複雑な式で示される。)。
【0089】
ただ、実用上は、切り出し向きを示す角度θを、近似的に平面傾斜角φとして用いても、大きな支障は生じない。これは、本発明で用いる平面傾斜角φは、図4に示すように、U軸とX′軸とのなす角として定義された角であり、X軸を基準として定義された角になっているためである。もちろん、角度θの値を近似的に平面傾斜角φの値として用いると、ユーザが意図したU軸の方向(参照直線Jによって示される切り出し方向)と、実際に定義されるUV座標系のU軸の方向との間に若干のずれが生じることになる。このため、実際に得られる平面正則画像Tは、ユーザが意図した切出領域E内の画像と若干相違する。しかしながら、このような相違は、単に、画像のトリミング枠の相違にすぎない。しかも、ユーザが指定した参照直線Jの方向(すなわち、補助点Qの位置)は、通常、ユーザが希望する大まかな切り出し方向を示す指標にすぎないので、実際の切り出し方向が多少ずれていたとしても、実用上は、ユーザに違和感を与えることはない。このような理由から、本発明の一般的な実施形態では、切り出し向きを示す角度θを、そのまま平面傾斜角φの値として近似させて問題はない。
【0090】
<<< §4.画像変換装置の基本構成 >>>
ここでは、図19のブロック図を参照しながら、本発明の基本的な実施形態に係る画像変換装置の基本構成を説明する。図19において、一点鎖線で囲った部分が、本発明に係る画像変換装置100である。この装置は、魚眼レンズを用いた撮影により得られた歪曲円形画像Sの一部分を切り出して、平面正則画像Tに変換する処理を行う機能を有しており、図19には、魚眼レンズを用いたカメラ10によって撮影された歪曲円形画像Sが、デジタルデータとして、この画像変換装置100内に取り込まれている。
【0091】
歪曲円形画像格納部110は、このような歪曲円形画像Sを格納するための構成要素であり、メモリやハードディスク装置などの記憶装置によって構成される。ここで、歪曲円形画像Sは、たとえば、図2に例示するように、二次元XY直交座標系上の座標(x,y)で示される位置に配置された多数の画素の集合体によって構成され、XY座標系の原点Oを中心とし半径Rをもった円形の画像になる。
【0092】
一方、平面正則画像格納部120は、変換処理後の平面正則画像Tをデジタルデータとして格納するための構成要素であり、やはりメモリやハードディスク装置などの記憶装置によって構成される。ここで、平面正則画像Tは、たとえば、図15や図16に例示するように、二次元UV直交座標系上の座標(u,v)で示される位置に配置された多数の画素の集合体によって構成される画像になる。この平面正則画像格納部120内の平面正則画像Tを変換画像デジタルデータとして出力すれば、ディスプレイの画面上に図15や図16に例示するような平面正則画像Tを表示させることができる。
【0093】
変換演算部130は、図12に示す本発明の変換演算式を利用して、座標(u,v)と座標(x,y)とを対応づけ、座標(u,v)で示される位置に配置された平面正則画像T上の画素の画素値を、対応する座標(x,y)で示される位置に配置された歪曲円形画像S上の参照画素の画素値に基づいて決定する機能を有し、歪曲円形画像格納部110内に格納されている歪曲円形画像Sに基づいて、平面正則画像Tを作成する演算を行い、生成された平面正則画像Tを平面正則画像格納部120に格納する。§2で述べたとおり、本発明の変換演算式に基づく演算を行うには、いくつかのパラメータを設定する必要がある。以下の各構成要素は、このパラメータ設定を行うためのものである。
【0094】
歪曲円形画像表示部140は、歪曲円形画像格納部110に格納されている歪曲円形画像Sをディスプレイに表示する構成要素であり、図2に示すような画像がディスプレイの画面上に表示される。
【0095】
指示入力部150は、ディスプレイに表示されている歪曲円形画像S上において、図13に示すように、切出中心点Pと補助点Qとの2点の位置を指定するための指示を入力する。具体的には、指示入力部150は、マウスなどのポインティングデバイスと、これを制御するための制御装置によって構成され、ユーザが、マウスなどを用いてディスプレイ画面上でポインタを移動させられるようにし、マウスクリックなどの操作が行われた時点のポインタの位置座標を読み込む機能を有している。
【0096】
たとえば、ユーザが第1回目にクリックしたときのポインタの位置を切出中心点Pの位置として取り込み、第2回目にクリックしたときのポインタの位置を補助点Qの位置として取り込むようにしておけば、ユーザは続けて2回のクリック操作を行うことにより、切出中心点Pおよび補助点Qの位置を指示する入力を行うことができる。あるいは、「ドラッグアンドドロップ」操作で両点を指定させることもできる。この場合、ユーザがマウスボタンを押し込んだ時点でのポインタの位置を切出中心点Pの位置として取り込み、ユーザがマウスボタンを押した状態のままポインタを移動させ、マウスボタンを放した時点でのポインタの位置を補助点Qの位置として取り込むようにすればよい。
【0097】
要するに、指示入力部150は、歪曲円形画像表示部140によって表示されている歪曲円形画像S上における、切出中心点Pおよび補助点Qの位置を指定するユーザからの何らかの指示入力に基づいて、その座標値P(x0,y0)およびQ(x1,y1)を取り込む機能をもっていれば、具体的にどのような装置を用いて構成してもかまわない。
【0098】
指示入力部150が入力した2点P,Qの位置は、既に§3で説明したとおり、切出中心点Pの位置、切り出し向きを示す角度θ、変換倍率mという3つのパラメータを設定するために利用される。まず、切出中心点Pの位置としては、点Pの座標値(x0,y0)そのものが用いられる。また、角度θの値は、2点P,Qを結ぶ参照直線JとX軸とのなす角度として決定される。実際には、座標値P(x0,y0)およびQ(x1,y1)を用いた幾何学的な演算により、角度θの値を算出することができる。そして、変換倍率mは、2点P,Q間の距離dを、d=√((x0−x1)2+(y0−y1)2)なる演算で求めた後、予め設定された比例定数を用いて、m=k/dなる演算を行うことにより算出することができる。
【0099】
なお、変換倍率mを固定値にする場合には、当該固定値を変換演算部130内に予め設定しておけばよいので、指示入力部150においてmの値を決定する必要はない。この場合、変換倍率mは、ユーザが指定可能なパラメータにはならないので、ユーザが行う補助点Qの位置指定操作は、切り出し向きを示す角度θ(すなわち、参照直線Jの向き)を指定する意味だけをもち、2点P,Q間の距離dは何ら意味をもたないことになる。別言すれば、この場合、指示入力部150は、切出中心点Pの位置および切り出し向きをユーザの指示に基づいて入力する機能のみを有し、変換倍率mを入力する機能はもたないことになる。
【0100】
ただ、実用上は、変換倍率mを固定するよりも、ユーザの要望に応じて可変とし、変換倍率mに基づいてスケーリングされた平面正則画像Tが得られるようにした方が使い勝手は向上する。したがって、実際には、前述したように、指示入力部150に、ユーザの指示に基づいて変換倍率mを入力する機能をもたせ、変換演算部130が、指示入力部150によって入力された変換倍率mを用いた演算を行うようにするのが好ましい。
【0101】
さて、交点演算部160は、指示入力部150によって入力された切出中心点Pの位置(x0,y0)に基づいて、点Gの位置座標(x0,y0,z0)を求める処理を行う。ここで、点Gは、図4に示すとおり、三次元XYZ直交座標系において、原点Oを中心とし半径Rをもった仮想球面Hを定義したときに、切出中心点Pを通りZ軸に平行な直線と仮想球面Hとの交点として与えられる点である。実際には、点Pの座標値x0,y0と点Gの座標値x0,y0とは同一の値であるから、交点演算部160が行うべき演算処理は、点Gの座標値z0を求めるための幾何学演算のみである。
【0102】
一方、角度決定部170は、図4に示すとおり、交点G(x0,y0,z0)において仮想球面Hに接する接平面上に定義すべき二次元UV直交座標系のU軸方向を向いたベクトルUと、二次元XY直交座標系のX軸方向を向いたベクトルXと、のなす角として与えられる平面傾斜角φを、指示入力部150が入力した切り出し向き(すなわち、角度θ)に基づいて決定する処理を行う。角度θと角度φとの関係は、図18に示す式によって定義されるので、角度決定部170は、この式に基づいて、平面傾斜角φを算出すればよい。もっとも、実用上は、§3で述べたとおり、切り出し向きを示す角度θを、そのまま平面傾斜角φの値として近似させても問題はない。その場合、角度決定部170は、参照直線JとX軸とのなす角θを、そのまま平面傾斜角φとして変換演算部130へ与える処理を行えばよい。
【0103】
さて、§2で述べたとおり、図12に示す本発明の変換演算式は、位置座標(x0,y0,z0)および平面傾斜角φをパラメータとして含む正射影方式の変換演算式であり、変換演算部130が、この変換演算式を利用して、座標(u,v)に対応する座標(x,y)を求めるためには、6つのパラメータφ,x0,y0,z0,R,mを決定しておく必要がある。ここで、パラメータφは、角度決定部170から与えられ、パラメータx0,y0,z0は、交点演算部160から与えられ、パラメータmは、指示入力部150から与えられる。そして、パラメータRは、歪曲円形画像格納部110に格納されている歪曲円形画像Sの半径値として既知である。
【0104】
結局、変換演算部130には、上記6つのパラメータφ,x0,y0,z0,R,mがすべて用意されることになる。こうして、変換演算部130は、座標(u,v)で示される位置に配置された平面正則画像T上の画素の画素値を、対応する座標(x,y)で示される位置に配置された歪曲円形画像S上の参照画素の画素値に基づいて決定することにより、歪曲円形画像Sから切出中心点Pを中心として平面傾斜角φによって示される向きに切り出された部分画像についての平面正則画像Tを生成する演算処理を実行することができる。
【0105】
なお、歪曲円形画像Sは、二次元XY直交座標系上の座標(x,y)で示される位置に配置された多数の画素の集合体によって構成された画像であり、実際には、所定ピッチで縦横に配列された多数の格子点の位置に、それぞれ固有の画素値を定義したデジタルデータによって構成されている。このため、変換演算部130による演算結果として得られた対応座標(x,y)の位置は、通常、複数の格子点の間の位置になる。たとえば、歪曲円形画像Sが、ピッチ1で縦横に配列された多数の格子点位置の画素値を定義したデジタルデータによって構成されている場合、いずれの格子点も、その座標値は整数値になる。よって、変換演算部130による演算結果として得られた対応座標xおよびyの値が小数を含む値であると(多くの場合はそうなるであろう)、対応座標(x,y)の位置は、複数の格子点の間の位置になり、対応する画素値を1つに決めることはできない。
【0106】
したがって、実際には、変換演算部130が、座標(u,v)で示される位置に配置された平面正則画像T上の画素の画素値を決定する際には、対応する座標(x,y)で示される位置の近傍に配置された歪曲円形画像S上の複数の参照画素の画素値に対する補間演算を行う必要がある。このような補間演算を行う方法としては、たとえば、バイリニア補間法、バイキュービック・スプライン補間法など、様々な方法が公知であるため、ここでは詳しい説明は省略する。なお、魚眼レンズを用いたカメラ10として、単板撮像素子を内蔵したカメラを用いた場合、高精度な補間を行うためには、歪曲円形画像Sとして、いわゆるRAWモードと呼ばれる画像データを用いるのが極めて好ましい。また、魚眼レンズによっては、色収差が目立つ製品もあるので、必要に応じて、用いた魚眼レンズの色収差を測定しておき、変換演算部130による演算時に、色収差を補正する演算を行うことも可能である。
【0107】
本発明に係る画像変換装置は、特に、監視カメラ、会議室用カメラ、車載用カメラ、管内プローブ用カメラなどに魚眼レンズを組み込んで用いるシステムへの利用に最適である。このようなシステムでは、動画をリアルタイムで取り扱う必要があり、ユーザが任意に指定した切出領域内の画像を、即座に平面正則画像に変換して表示させる必要がある。本発明に係る画像変換装置では、演算負担が大幅に軽減されるため、平面正則画像へのリアルタイムでの変換処理が可能になる。
【0108】
以上、本発明の基本的な実施形態に係る画像変換装置の基本構成を、図19のブロック図を参照しながら説明したが、この画像変換装置は、汎用のコンピュータに、専用のプログラムを組み込むことによって構成することが可能である。その場合、歪曲円形画像格納部110や平面正則画像格納部120は、当該コンピュータ用の記憶装置によって構成し、歪曲円形画像表示部140や指示入力部150は、当該コンピュータ用のディスプレイやマウスおよびこれらを制御するハードウエアやソフトウエアによって構成すればよい。また、変換演算部130,交点演算部160,角度決定部170は、専用のプログラムに基づくコンピュータの演算機能によって実現されることになる。
【0109】
もちろん、この画像変換装置は、様々な演算器やレジスタなどを組み合わせた専用のハードウエア論理回路により構成することも可能である。具体的には、少なくとも変換演算部130として機能する部分を電子回路によって構成し、当該電子回路を組み込んだ半導体集積回路を設計すればよい。このようなハードウエア論理回路により変換演算部130を構成する上で有効な様々な工夫は、§6において述べることにする。
【0110】
また、図19に示す画像変換装置100と、魚眼レンズを用いたカメラ10と、図示されていないモニタ装置と、を用意し、カメラ10を用いた撮影により得られた歪曲円形画像Sが歪曲円形画像格納部110へと格納され、平面正則画像格納部120に得られた平面正則画像Tがモニタ装置によって表示されるようにすれば、魚眼監視システムを実現することが可能になる。カメラ10として、デジタルビデオカメラを用いるようにすれば、リアルタイムで撮影した歪曲円形画像に基づいて、任意の一部分の平面正則画像をリアルタイムでモニタ装置の画面上に得ることが可能である。
【0111】
<<< §5.非正射影画像への適用 >>>
さて、本発明の最も重要な特徴は、§2で述べたとおり、座標変換の演算に、図12に示す変換演算式を用いる点であるが、この変換演算式は、正射影方式の変換演算式であり、撮影に用いた魚眼レンズの射影方式が正射影方式であることを前提とした式である。ところが、実際に市販されている魚眼レンズは、必ずしも正射影方式のレンズとは限らない。実際、魚眼レンズの投影方式としては、等距離射影方式、立体射影方式、等立体角射影方式など、様々な方式が知られており、用途に応じて、これら様々な射影方式をとる魚眼レンズが利用されている。ここでは、このような非正射影方式の魚眼レンズによって撮影された非正射影画像に対して本発明を適用する方法を説明する。
【0112】
正射影方式の魚眼レンズの光学的特性は、既に述べたとおり、図1に示すようなモデルによって説明することができる。すなわち、仮想球面H上の任意の入射点H(x,y,z)に対して、その法線方向から入射する入射光線L1は、Z軸に平行な方向に進む入射光線L2として、XY平面上の点S(x,y)へ到達する、という特性である。図20は、この正射影方式の魚眼レンズにおける入射光の投影状態を示す正面図である。図示のとおり、天頂角βをもった仮想球面H上の入射点H(x,y,z)に対して、その法線方向から入射した入射光線L1は、Z軸に平行な方向に進む入射光線L2として、XY平面上の点S(x,y)へ到達している。
【0113】
ここで、入射点H(x,y,z)の天頂角βと、当該入射点H(x,y,z)を経た入射光線L2がXY平面上で到達する到達点S(x,y)の原点Oからの距離rと、の関係は、正射影方式の魚眼レンズを用いた撮影によって形成される正射影画像の場合、r=f・sinβなる式で表される。ここで、fは、魚眼レンズに固有の定数である。これに対して、たとえば、等距離射影方式の魚眼レンズを用いた撮影によって形成される等距離射影画像の場合、両者の関係は、r=f・βなる式で表されることになる。
【0114】
図21は、正射影方式の魚眼レンズを用いて形成される正射影画像と、等距離射影方式の魚眼レンズを用いて形成される等距離射影画像と、の関係を示す斜視図である。図に同心円状に示す線は、同一の天頂角βをもつ入射点を経た入射光線についてのXY平面上での到達点の集合を示している。図21(a) に示す正射影画像の場合、r=f・sinβなる式が成り立つため、隣接する同心円状の線の配置間隔は、中心から周囲に向かうほど小さくなってゆく。これに対して、図21(b) に示す等距離射影画像の場合、r=f・βなる式が成り立つため、同心円状の線は、中心から周囲に向かって等間隔に配置される。
【0115】
このように、正射影画像と等距離射影画像とは、いずれも歪曲円形画像という点では共通するものの、その歪みの状態が両者では異なっているため、当然ながら、平面正則画像に変換するために用いる変換演算式も異なったものになる。したがって、正射影画像を平面正則画像に変換する場合には、図12に示す変換演算式を用いることができるが、等距離射影画像などの非正射影画像を平面正則画像に変換する場合には、それぞれについての専用の変換演算式を用いる必要がある。
【0116】
しかしながら、正射影方式の魚眼レンズの光学的特性は、図20に示すような仮想球面Hを用いたモデルとして取り扱うことができるため、図12に示すような変換演算式を定義することができるが、非正射影方式の魚眼レンズの光学的特性は、このような仮想球面Hを用いたモデルとして取り扱うことはできない。このため、仮に、何らかの変換演算式が定義できたとしても、その式の形態は極めて複雑なものになると予想される。
【0117】
そこで本願発明者は、非正射影画像を直接的に平面正則画像に変換する変換演算式を用いる代わりに、非正射影画像を、一旦、正射影画像に変換し、図12に示す正射影方式の変換演算式を用いて、座標(u,v)に対応する座標(x,y)を求める方法の着想に至った。以下、非正射影画像として、等距離射影画像を用いた場合を例にとって、この方法を説明する。
【0118】
図21に示すように、正射影画像上の任意の1点と、等距離射影画像上の特定の1点とは、相互に1対1の対応関係を定義することができる(図の破線は、この対応関係を示している)。具体的には、等距離射影画像上の任意の1点の座標を(x′,y′)とし、これに対応する正射影画像上の特定の1点の座標を(x,y)とすれば、両者間には、図22の上段に示すように、
x=sinc(π/2・√(x′2+y′2))×π/2・x′ 式(31)
y=sinc(π/2・√(x′2+y′2))×π/2・y′ 式(32)
なる式が成り立つ。逆に、正射影画像上の任意の1点の座標を(x,y)とし、これに対応する等距離射影画像上の特定の1点の座標を(x′,y′)とすれば、両者間には、図22の下段に示すように、
x′=2/π・x/sinc(π/2・√(x2+y2)) 式(33)
y′=2/π・y/sinc(π/2・√(x2+y2)) 式(34)
が成り立つ。
【0119】
これら式(31)〜(34)において、変数をtとしたときの関数sinc(t)は、シンク関数(カージナルサイン)と呼ばれる関数であり、sinc(t)=sin(t)/tとして定義される。但し、t=0の場合の関数値は、sinc(0)=1と定義される。結局、上記式(31),(32)は、等距離射影画像上の座標(x′,y′)を正射影画像上の座標(x,y)に変換する式(以下、第1の座標変換式と言う)であり、上記式(33),(34)は、正射影画像上の座標(x,y)を等距離射影画像上の座標(x′,y′)に変換する式(以下、第2の座標変換式と言う)ということになる。
【0120】
そこで、図19に示す歪曲円形画像格納部110に格納されている画像が、等距離射影方式の魚眼レンズによって撮影された等距離射影画像である場合には、歪曲円形画像表示部140によって、ディスプレイ上にこの等距離射影画像をそのまま表示させるようにし、指示入力部150によって、この等距離射影画像上で、2点P,Qの指定入力を行うようにする。続いて、交点演算部160では、切出中心点Pの座標(x0′,y0′)を第1の座標変換式(式(31)および(32))を用いて座標(x0,y0)に変換し、この変換後の座標を用いて交点Gの位置座標(x0,y0,z0)を求める処理を行うようにする。そして、変換演算部130では、これまで述べてきた実施形態と全く同様に、図12に示す正射影方式の変換演算式を用いて座標(u,v)に対応する座標(x,y)を求める処理を行う。但し、求めた座標(x,y)をそのまま用いて参照画素の位置を決定する代わりに、当該座標(x,y)を第2の座標変換式(式(33)および(34))を用いて座標(x′,y′)に変換し、この変換後の座標を用いて、歪曲円形画像格納部110に格納されている等距離射影画像上の参照画素の位置を特定するようにする。
【0121】
このような方法を採れば、歪曲円形画像格納部110に格納されている画像が、等距離射影方式の魚眼レンズによって撮影された等距離射影画像である場合にも、図12に示す正射影方式の変換演算式を用いた変換処理を適用することが可能になる。もちろん、この方法は、等距離射影画像への適用に限定されるものではなく、非正射影画像一般に広く適用することが可能である。
【0122】
すなわち、一般論として説明すれば、歪曲円形画像格納部110に格納されている画像が、正射影方式の魚眼レンズによって撮影された正射影画像ではなく、非正射影方式の魚眼レンズによって撮影された非正射影画像である場合には、非正射影画像上の座標を正射影画像上の座標に変換する第1の座標変換式と、正射影画像上の座標を非正射影画像上の座標に変換する第2の座標変換式と、を利用した処理を行う。まず、交点演算部160には、切出中心点Pの座標(x0′,y0′)を第1の座標変換式を用いて座標(x0,y0)に変換させる。そして、更に、変換後の座標を用いて交点の位置座標(x0,y0,z0)を求める処理を実行させる。一方、変換演算部130には、図12に示す正射影方式の変換演算式を用いて座標(u,v)に対応する座標(x,y)を求めた後、この座標(x,y)を第2の座標変換式を用いて座標(x′,y′)に変換し、変換後の座標を用いて歪曲円形画像格納部110に格納されている非正射影画像上の参照画素の位置を特定させればよい。
【0123】
<<< §6.演算負担を更に軽減する工夫 >>>
§2で述べたとおり、図11に示す従来の変換演算式に代えて、図12に示す本発明の変換演算式を用いると、三角関数の演算負担を大幅に軽減させることができるが、ここでは、この演算負担を更に軽減する工夫をいくつか述べておく。ここに述べる演算手法の工夫は、特に、様々な演算器やレジスタなどを組み合わせた専用のハードウエア論理回路により変換演算部130を構成する場合に、回路構成を単純にする上で効果的である。
【0124】
<6−1:式(11),(12)の分母演算に関する工夫>
図12の式(11),(12)には、三角関数演算は含まれていないが、分母には、3組の2乗演算項と開平演算項とが含まれている。これらの演算負担をできるだけ軽減させるためには、分母の式の形を若干変更すればよい。
【0125】
すなわち、式(11),(12)の分母の部分のみを抜き出すと、
1/√((u−x0)2+(v−y0)2+(w−z0)2)
なる形の式になるが、ここで、
a=u−x0,b=v−y0,c=w−z0
とおくと、上記式は、次のような形になる。
1/√(a2+b2+c2)
この式に対して、図23の上段に示すような変形を行うと、
1/c・1/√((a/c)2+(b/c)2+1) 式(41)
が得られる。変形前の式には、a2,b2,c2という3組の2乗演算項が含まれていたが、変形後の式(41)では、2乗演算項は(a/c)2,(b/c)2の2組に減っている。ここで、
(a/c)2+(b/c)2+1=ξ
とおくと、図23の下段に示すような式(42)が得られる。
1/√(a2+b2+c2)=1/c・1/√ξ 式(42)
一般に、逆数演算「1/c」や逆開平数演算「1/√ξ」は、比較的負担が大きな演算処理である。このような演算負担を軽減する上で非常に効果的な方法は、関数テーブルを用いる方法である。すなわち、予め「関数f(c)=1/c」の値を様々な変数cの値について対応づけた第1の関数テーブルT1と、「関数f(ξ)=1/√ξ」の値を様々な変数ξの値について対応づけた第2の関数テーブルT2と、を用意しておき、これら関数テーブルを参照することにより、実際には演算を行うことなしに関数値を求めるようにすればよい。
【0126】
図24は、このような関数テーブルT1,T2の構成を示す図である。図24(a) に示す関数テーブルT1には、cがとるであろうと予想される範囲について、所定の精度で、個々のcの値に対応するf(c)の値(1/cの値)が掲載されている。同様に、図24(b) に示す関数テーブルT2には、ξがとるであろうと予想される範囲について、所定の精度で、個々のξの値に対応するf(ξ)の値(1/√ξの値)が掲載されている。
【0127】
変換演算部130内に、このような関数テーブルT1,T2を用意しておけば、cおよびξの値に基づいて、実際の演算を行うことなしに、1/cの値および1/√ξの値を得ることができる。結局、図12の式(11),(12)の分母部分
1/√((u−x0)2+(v−y0)2+(w−z0)2)
の演算を行うには、
a=u−x0,b=v−y0,c=w−z0
なる演算によって、a,b,cを求めた後、
ξ=(a/c)2+(b/c)2+1
なる演算を行うことによりξの値を求め、図24に示す第1の関数テーブルT1および第2の関数テーブルT2を参照することにより、求めたc,ξの値に対応する関数f(c)=1/c,f(ξ)=1/√ξの値を求め、
√((u−x0)2+(v−y0)2+(w−z0)2)
=f(c)×f(ξ)
なる演算を行えばよい。
【0128】
平面正則画像Tの大きさの上限を設定しておけば、座標値u,vの値は、たとえば、0≦u≦R、0≦v≦Rの範囲に制限することが可能であり、変換倍率mの値も、たとえば、0.1≦m≦10程度に制限することが可能である。このような制限を行えば、cの値やξの値を所定範囲内に抑えることができるので、図24に示す関数テーブルT1,T2に用意すべき変数c,ξの値も所定範囲内に抑えることができる。
【0129】
なお、必要に応じて、(a/c)2や(b/c)2という2乗演算項についても関数テーブルを用いて実際の演算を省略することも可能であるが、一般に、2乗演算は通常の乗算よりも演算器のハードウエア構成が単純になるので、実用上は、2乗演算項については、2乗演算器を用いて実際に演算を行うようにすれば十分である。
【0130】
<6−2:テーブルを用いた補間演算に関する工夫>
上述したように、関数テーブルを利用して実際の演算処理を省略する手法は、演算負担を軽減するための非常に効果的な方法である。しかしながら、関数テーブルを参照することにより得られる関数値の精度を高めるためには、テーブルに掲載する変数値および関数値に十分な有効桁数を確保する必要が生じ、テーブルのデータ容量がそれだけ増大するという弊害がある。このような弊害を避けるために、通常、補間演算の手法が利用される。
【0131】
図25は、図24に示すような関数テーブルを参照する場合の線形補間の方法を示す図である。ここでは、変数tに対応する関数値f(t)を求める場合を考える。図示のt軸は変数tを示す軸であり、理論的には、変数tはこのt軸上の任意の値をとることになる。しかしながら、関数テーブルに掲載する変数tの値は、所定の有効桁数に応じた間隔Wの離散値にせざるを得ない。図25には、間隔Wをもった離散値として、t軸上にA,B,Cなる値をプロットし、それぞれについて関数値f(A),f(B),f(C)を定義した例が示されている。この例の場合、関数テーブルに掲載される変数tの値は、A,B,Cといった離散値になり、関数値f(t)の値も、f(A),f(B),f(C)といった値になる。
【0132】
このように離散的な変数tについての関数値f(t)しか定義されていない関数テーブルを用いて、任意の変数tに対応する関数値f(t)を求めるためには、次のような線形補間を行えばよい。たとえば、変数tが、A<t<Bなる範囲内の値であった場合、関数値f(t)は、
f(t)=((W−δ)/W)×f(A)+(δ/W)×f(B)
式(43)
なる式に基づいて算出することができる。ここで、δ=(t−A)であり、離散的な変数Aに対する端数部分に相当する値である。
【0133】
ここでは、変換演算部130に、この式(43)に基づく補間演算を実行させるのに適したハードウエア構成の一例を、図26のブロック図を参照しながら説明する。図示のとおり、ここに示すハードウエアは、Tレジスタ21,偶数関数テーブル22,奇数関数テーブル23,偶数読出部24,奇数読出部25,偶奇セレクタ26,偶奇セレクタ27,Aレジスタ28,Bレジスタ29,補間演算部30,補間値レジスタ31によって構成されている。
【0134】
このハードウエア構成の重要な特徴は、本来は1つの関数テーブルに収容されるべき変数tおよび関数値f(t)のデータを、偶数関数テーブル22と奇数関数テーブル23とに分けて収容した点にある。ここで、偶数関数テーブル22は、所定の有効桁数に応じた間隔Wの離散値をとる変数tのうち、偶数変数tについて、所定の関数f(t)の値を対応づけたテーブルになっており、奇数関数テーブル23は、上記有効桁数に応じた間隔Wの離散値をとる変数tのうち、奇数変数tについて、所定の関数f(t)の値を対応づけたテーブルになっている。
【0135】
ここでは、説明の便宜上、4ビットの小数部分で示される「0.1000〜0.1111」の範囲をとる変数tについて、関数テーブルを用意した具体例について説明する。図示のとおり、偶数関数テーブル22には、偶数をとる変数tのみ、すなわち、「0.1000」,「0.1010」,「0.1100」,「0.1110」が収容されており、それぞれに対応する関数値f(t)が収容されている(図では、関数値は省略し、便宜上「********」なるデータで示している)。一方、奇数関数テーブル23には、奇数をとる変数tのみ、すなわち、「0.1001」,「0.1011」,「0.1101」,「0.1111」が収容されており、それぞれに対応する関数値f(t)が収容されている。
【0136】
このように、関数テーブル22,23には、4ビットの有効桁数をもった変数tの離散値が収容されているが、ここでは、演算対象となる任意の変数tとして、8ビットの有効桁数をもったデータが与えられた場合を考えてみる。Tレジスタ21は、このような8ビットの有効桁数をもった変数tを格納するためのレジスタである。すなわち、このTレジスタ21には、4ビットの有効桁数(関数テーブルにおける変数tの有効桁数)からなる上位ビットと、この有効桁数より下位の桁である4ビットを示す下位ビットと、によって構成される変数tが格納されることになる。図には、一例として、任意の変数tの上位ビットとして、「0.1010」なる有効桁数4ビットのデータと、下位ビットとして、任意のビット「****」が格納された状態が示されている。
【0137】
Tレジスタ21の上位ビットは、関数テーブル22,23の読み出し対象となる変数tを特定するために利用され、該当する変数tに対応して収容されている関数値f(t)の値が、偶数読出部24および奇数読出部25によって読み出される。
【0138】
具体的には、偶数読出部24は、Tレジスタ21の上位ビットが偶数である場合には、当該上位ビットで示される偶数変数tについて対応づけられている関数f(t)の値を偶数関数テーブル22から読み出し、Tレジスタ21の上位ビットが奇数である場合には、当該上位ビットで示される奇数変数tよりも大きい最小の偶数変数tについて対応づけられている関数f(t)の値を偶数関数テーブル22から読み出す処理を行う。たとえば、図示の例の場合、Tレジスタ21の上位ビット「0.1010」は偶数であるから、偶数読出部24は、当該上位ビット「0.1010」で示される偶数変数tについて対応づけられている関数f(t)の値を偶数関数テーブル22から読み出すことになる。もし、Tレジスタ21の上位ビットが「0.1011」(奇数変数)であった場合、当該上位ビット「0.1011」は偶数関数テーブル22には収容されていない。そこで、偶数読出部24は、当該奇数変数「0.1011」よりも大きい最小の偶数変数である「0.1100」について対応づけられている関数f(t)の値を偶数関数テーブル22から読み出すことになる。
【0139】
一方、奇数読出部25は、Tレジスタ21の上位ビットが奇数である場合には、当該上位ビットで示される奇数変数tについて対応づけられている関数f(t)の値を奇数関数テーブル23から読み出し、Tレジスタ21の上位ビットが偶数である場合には、当該上位ビットで示される偶数変数tよりも大きい最小の奇数変数tについて対応づけられている関数f(t)の値を奇数関数テーブル23から読み出す処理を行う。たとえば、図示の例の場合、Tレジスタ21の上位ビット「0.1010」は偶数であるから、当該上位ビット「0.1010」は奇数関数テーブル23には収容されていない。そこで、奇数読出部25は、当該偶数変数「0.1010」よりも大きい最小の奇数変数である「0.1011」について対応づけられている関数f(t)の値を奇数関数テーブル23から読み出すことになる。もし、Tレジスタ21の上位ビットが「0.1011」(奇数変数)であった場合、奇数読出部25は、当該上位ビット「0.1011」で示される偶数変数tについて対応づけられている関数f(t)の値を奇数関数テーブル23から読み出すことになる。
【0140】
このような方法で、各関数テーブル22,23から関数値f(t)を読み出すようにすると、読み出された2つの関数値は、互いに隣接する離散的な変数に対応する関数値となる。たとえば、図25に示すt軸上で隣接する2つの変数AおよびBに対応する関数値f(A),f(B)が読み出されることになる。しかも、Tレジスタに収容されている8ビットの精度をもった変数tは、A≦t<Bである。そこで、これら2つの関数値f(A),f(B)を、それぞれAレジスタ28およびBレジスタ29に格納し、補間演算部30において、
f(t)=((W−δ)/W)×f(A)+(δ/W)×f(B)
式(43)
に基づく演算を行えば、補間値f(t)を得ることができる。ここで、Wは、Tレジスタ21に格納されている変数tの上位ビットを構成する所定の有効桁数に基づいて定まる離散値の間隔であり、δは、Tレジスタ21に格納されている変数tの下位ビットで示される端数部分である。
【0141】
要するに、補間演算部30は、Aレジスタ28に格納されている値をf(A)とし、Bレジスタ29に格納されている値をf(B)とし、Tレジスタ21の下位ビットで示される値をδとして、式(43)に基づく演算を実行し、補間値f(t)を算出することになる。こうして算出された補間値f(t)は、補間値レジスタ31に格納される。変換演算部130は、この補間値レジスタ31に格納された補間値f(t)を用いて、必要な演算を行うことになる。
【0142】
ただ、式(43)に基づく演算を行うためには、変数A<変数Bとしたときの関数値f(A)をAレジスタ28に格納し、関数値f(B)をBレジスタ29に格納する必要がある。ところが、偶数読出部24が偶数関数テーブル22から読み出した関数値と、奇数読出部25が奇数関数テーブル23から読み出した関数値とのいずれを、関数値f(A)あるいは関数値f(B)とすべきかは、Tレジスタ21の上位ビットが偶数であるか奇数であるか、別言すれば、当該上位ビットのLSB(以下、偶奇ビットと呼ぶ)によって決まる。
【0143】
そこで、当該上位ビットが偶数である場合には(偶奇ビットが0の場合には)、偶数読出部24が読み出した関数f(t)の値をAレジスタ28に格納し、奇数読出部25が読み出した関数f(t)の値をBレジスタ29に格納すればよい。逆に、当該上位ビットが奇数である場合には(偶奇ビットが1の場合には)、奇数読出部25が読み出した関数f(t)の値をAレジスタ28に格納するとともに、偶数読出部24が読み出した関数f(t)の値をBレジスタに格納すればよい。
【0144】
そのために、偶奇セレクタ26は、偶数読出部24および奇数読出部25からそれぞれ読み出された関数f(t)に対して、Tレジスタ21から与えられる偶奇ビットに応じて取捨選択を行い、選択された一方をAレジスタ28に格納する処理を行う。すなわち、偶奇セレクタ26は、偶奇ビットが0の場合は偶数読出部24から読み出された関数f(t)を選択し、偶奇ビットが1の場合は奇数読出部25から読み出された関数f(t)を選択し、選択された関数f(t)をAレジスタ28に格納する。
【0145】
同様に、偶奇セレクタ27は、偶数読出部24および奇数読出部25からそれぞれ読み出された関数f(t)に対して、Tレジスタ21から与えられる偶奇ビットに応じて取捨選択を行い、選択された一方をBレジスタ29に格納する処理を行う。すなわち、偶奇セレクタ27は、偶奇ビットが0の場合は奇数読出部25から読み出された関数f(t)を選択し、偶奇ビットが1の場合は偶数読出部24から読み出された関数f(t)を選択し、選択された関数f(t)をBレジスタ29に格納する。
【0146】
<6−3:式(13)〜(18)の三角関数演算に関する工夫>
続いて、図12の式(13)〜(18)に含まれる三角関数演算の負担を軽減する工夫を述べる。これらの式には、cosφとsinφという三角関数が含まれている。このような三角関数の値を求める演算器のハードウエアはかなり複雑になるので、実用上は、できるだけ三角関数演算を避けるのが好ましい。
【0147】
§3で述べたとおり、切り出し向きを示す角度θ(ユーザが指定した2点P,Qの位置に基づいて定まる角度)と、変換演算式で用いられる平面傾斜角φとは、本来は異なるものであるが、実用上は、切り出し向きを示す角度θを、そのまま平面傾斜角φの値として近似させて用いても問題はない。このように、θ=φとする実施形態では、cosφ=cosθとなるので、次のような原理により、三角関数演算を行うことなしに、cosφの値を求めることができる。
【0148】
切り出し向きを示す角度θは、図13に示すように、ユーザがXY平面上で2点P,Qを指定することにより決定される角度である。そこで、図27に示すように、ユーザが点P(x0,y0)および点Q(x1,y1)の指定を行い、指示入力部150によって、座標値(x0,y0),(x1,y1)が取り込まれたものとしよう。
【0149】
図27に示すとおり、2点P,Qを結ぶ直線として参照直線Jが定められ、切り出し向きを示す角度θは、この参照直線JとX軸とのなす角度として定義される。そこで、図示のとおり、参照直線Jの方向を向いたベクトルJと、X軸方向を向いたベクトルXとを定義する。図示の例では、ベクトルJは、2点P,Qを両端点とするベクトルとなっているが、ベクトルの大きさは任意でかまわない。同様に、ベクトルXは、2点P,P′を両端点とするベクトルとなっている。点Pと点P′のY座標値は同じであるから、点P′の座標値はP(x2,y0)となる。また、図では、便宜上、両ベクトルJ,Xの始点を点P(x0,y0)の位置に揃えて示しているため、角度θは、点P(x0,y0)を頂点とした角になっている。
【0150】
さて、ここで、ベクトルJとベクトルXの内積は、図27に示すように、
(J→)・(X→)=cosθ・(絶対値J→)・(絶対値X→)
式(51)
で示される。なお、本明細書中では、電子出願の制約上、ベクトルJを(J→)という記号で標記し、その絶対値を(絶対値J→)と標記することにする(図27には、通常の方法で標記した式を掲載する)。この式をcosθについてとけば、
cosθ=(J→)・(X→)/((絶対値J→)・(絶対値X→))
式(52)
を得る。
【0151】
ここで、ベクトルXを単位ベクトルとすれば、
(絶対値X→)=1、 x2=x0+1 式(53)
である。また、
(絶対値J→)=√((x1−x0)2+(y1−y0)2)
式(54)
であるから、式(52)の分母の値は、式(53),(54)に基づいて算出できる。一方、式(52)の分子の値は、ベクトルJとベクトルXの内積として
(J→)・(X→)=x1・x2+y1・y0
式(55)
なる式で算出できる。
【0152】
結局、cosθの値は、ユーザが指定した2点P,Q(x1,y1)の座標値(x0,y0),(x1,y1)に基づく加減乗除算、2乗演算、開平演算によって求めることができるので、三角関数演算を避けることができる。要するに、変換演算部130は、参照直線Jの方向を向いたベクトルJを用いて、cosφの値を、ベクトルJとベクトルXとの内積を、ベクトルJの大きさとベクトルXの大きさとの積で除する演算によって求めることができる。
【0153】
なお、以上述べた取り扱いは、切り出し向きを示す角度θを、平面傾斜角φの値として近似させた場合の取り扱いであり、U軸の方向を向いたベクトルUの代わりに、参照直線Jの方向を向いたベクトルJを近似的に用いた取り扱いということになる。このような近似を行わない場合は、ベクトルUの向きを計算によって求めた上で、cosφの値を、ベクトルUとベクトルXとの内積を、ベクトルUの大きさとベクトルXの大きさとの積で除することにより求めるようにすればよい。
【0154】
こうして、cosφの値を求めることができれば、sinφの値は、
sinφ=√(1−cos2φ) 式(56)
なる演算によって求めることができるので、結局、図12の式(13)〜(18)に含まれる三角関数cosφおよびsinφの値は、三角関数演算を全く行うことなしに算出することができる。これは演算器のハードウエア構成を単純化する上で極めて効果的である。
<6−4:式(31)〜(34)の関数演算に関する工夫>
§5では、本発明を非正射影方式の魚眼レンズを用いて撮影された非正射影画像に適用する方法を説明した。この方法では、図22に示すように、
x=sinc(π/2・√(x′2+y′2))×π/2・x′ 式(31)
y=sinc(π/2・√(x′2+y′2))×π/2・y′ 式(32)
なる第1の座標変換式と、
x′=2/π・x/sinc(π/2・√(x2+y2)) 式(33)
y′=2/π・y/sinc(π/2・√(x2+y2)) 式(34)
なる第2の座標変換式とを用いた演算が必要になる。
【0155】
既に述べたとおり、上記各式において、変数をtとしたときの関数sinc(t)は、シンク関数(カージナルサイン)と呼ばれる関数であり、sinc(t)=sin(t)/tとして定義される。但し、t=0の場合の関数値は、sinc(0)=1と定義される。ここでは、この関数sinc(t)に関する演算項の演算負担を軽減させるための方法を述べる。
【0156】
いま、図28の上段に示すように、関数g(t),h(t)を次のように定義する。
g(t)=sinc(t)=sin(t)/t
但し、g(0)=sinc(0)=1 式(61)
h(t)=1/sinc(t)=t/sin(t)
但し、h(0)=1 式(62)
ここで、sin(t)をテイラー展開すると、図28の中段に示すように、
sin(t)=t−t3/3!+t5/5!−t7/7!+t9/9!− ....
式(63)
なる形式になるので、結局、
g(t)=1−t2/3!+t4/5!−t6/7!+t8/9!− ....
式(64)
なる形式の式が得られる。
【0157】
また、図28の下段に示すように、h(t)を、係数a2,a4,a6,a8, ....を用いて、
h(t)=1+a2t2+a4t4+a6t6+a8t8+ ....
式(65)
なる形式の式で表現することを考えると、h(t)=1/g(t)であるから、上掲の式(64)から、
h(t)=1/(1−t2/3!+t4/5!−t6/7!+t8/9!− ....)
式(66)
が得られる。式(65)と式(66)から、
1=(1+a2t2+a4t4+a6t6+a8t8+ ....)×
(1−t2/3!+t4/5!−t6/7!+t8/9!− ....)
式(67)
になるので、これを解くと、
h(t)=1+(1/6)t2+(7/360)t4+(31/15120)t6+(127/604800)t8+ ....
式(68)
なる式が得られる。
したがって、交点演算部160が、第1の座標変換式(31),(32)を演算する場合に、関数sinc(t)を、
sinc(t)=1−t2/3!+t4/5!−t6/7!+t8/9!− ....
なるテイラー展開した形式の式に基づいて演算するようにすれば、三角関数演算を避けることができる。しかも、t=0の場合、上記式の右辺の値は1になるため、sinc(0)=1という数学的な定義とも合致した関数値を得ることができる。なお、上記式の右辺には、理論的には無限個の項が含まれることになるが、もちろん、実用上は、必要な有効桁数が得られる項までの計算を行えば十分である。
【0158】
同様に、変換演算部130が、第2の座標変換式(33),(34)を演算する場合に、関数1/sinc(t)を、所定の係数値a2,a4,a6,a8, ....を用いた
1/sinc(t)=1+a2t2+a4t4+a6t6+a8t8+ ....
なる形式の式に基づいて演算するようにすれば、三角関数演算を避けることができる。ここで、係数a2,a4,a6,a8, ....の値は、式(68)のように具体的な数値として求めることができるので、演算器には、これらの具体的な数値を格納しておくようにすればよい。この式においても、t=0の場合、右辺の値は1になるため、1/sinc(0)=1という数学的な定義とも合致した関数値を得ることができる。やはり上記式の右辺には、理論的には無限個の項が含まれることになるが、実用上は、必要な有効桁数が得られる項までの計算を行えば十分である。
【0159】
<<< §7.変換演算式を導出する数学的プロセス >>>
以上、§1〜§6において、本発明に係る画像変換装置を実施する上での最良の形態を述べた。ここでは、図12に示す本発明の変換演算式を導出する数学的なプロセスを図29および図30に示す数式を参照しながら簡単に説明しておく。この図12に示す変換演算式は、幾何学的には、図11に示す変換演算式と等価であり、両者の相違は、平面傾斜角ψとφの定義の相違も含めたパラメータの設定のしかたのみである。いずれの変換演算式も、図1に示すような光学的特性をもった正射影方式の魚眼レンズを用いて形成される正射影画像S上の任意の点S(x,y)と、平面正則画像T上の特定の点T(u,v)との対応関係を示す式であり、幾何学的な解析を行うことにより導出することができる。ただ、三角関数を含む繁雑な式を取り扱う必要があるため、通常、行列式を用いた解析がなされる。以下、若干、数学的な知識を必要とする説明になるが、この行列式を用いた変換演算式の導出プロセスを述べる。
【0160】
図6において、UV座標系は接平面S2上に定義され、そのU軸の向きは、平面傾斜角φで決定される。そして、このUV座標系の原点は、点G(x0,y0,z0)として与えられる。そこで、XYZ座標系の原点Oを始点として、UV座標系の原点Gを終点とする回転ベクトルN(x0,y0,z0)を定義すれば、XYZ座標系の空間内に配置される特定のUV座標系は、この回転ベクトルN(x0,y0,z0)と平面傾斜角φ(回転ベクトルN回りの回転ファクター)とによって規定される。このように、特定のUV座標系は、回転ベクトルNと、当該回転ベクトル回りの回転ファクターφ(平面傾斜角)とによって規定されるので、回転行列として表現することができる。
【0161】
本発明では、二次元UV座標系が定義できれば十分であるが、ここでは、UV平面に対して垂直なW軸を更に加えた、三次元UVW座標系を考えてみる。たとえば、図6に示す例の場合、W軸は、点G(x0,y0,z0)から原点Oに向かう方向の軸として定義される。そうすると、ここで求めるべき変換演算式は、三次元XYZ座標系と三次元UVW座標系との間の座標変換を行う式ということになる(図12の式(19)に示すwは、実はこのW軸に沿った座標値に相当する値である)。
【0162】
ここでは、仮想球面Hの半径R=1として、回転ベクトルNが単位ベクトルであるものとし、更に、座標系の回転のみを考慮して変換式の導出ができるように、三次元UVW座標系の原点Gの位置が、三次元XYZ座標系の原点Oの位置に重なるように、三次元UVW座標系を平行移動した状態で、両座標系の相互関係を考えることにする。すなわち、図6において、接平面S2上に位置するUV座標系は、傾斜面S1上に平行移動させられることになる。
【0163】
いま、回転ベクトルN=(x,y,z)と回転角φによって定義される三次元回転行列をR(φ,N)とする。そして、図29の式(71)に示すように、回転ベクトルN=(x,y,z)に対して、交代行列と呼ばれる行列Sを考える。ここで、行列の右肩の符号Tは転置行列を意味するものである。すると、行列S2は式(72)、行列S3は式(73)のようになる。
【0164】
一方、行列Sについての指数行列expSは、式(74)に示すような展開形で定義される。ここで、Eは単位行列である。式(74)は式(75)のように変形できるので、回転角φを乗じた指数行列exp(φS)は、図30の式(76)のように変形でき、式(77)を得ることができる。この行列exp(φS)が、三次元回転行列表現R(φN)=R(φ,N)になるので、式(77)に、式(71),(72)を代入して計算すると、式(78)が得られる。この式(78)の最後に示す3行3列の行列式の各要素は、三次元XYZ座標系と三次元UVW座標系との間の座標変換を行う際の係数値になる。この行列式の9つの要素を、A〜Iの記号に置き換えると、式(79)が得られる。
【0165】
図12の式(13)〜(18)に示されている項A〜Fは、この式(79)に示されているA〜Fに対応するものである。本発明での変換対象となる画像は、XY平面上に配置された歪曲円形画像であるため、図12の式(11)によりx座標値、図12の式(12)によりy座標値が求められれば足り、z座標値は常に0になるため、式(79)の要素G,H,Iは利用されない。
【0166】
なお、図12の式(11),(12)において、u,v,wの代わりに、「u−x0」,「v−y0」,「w−z0」が用いられているのは、上述したように、この導出プロセスが、図6において、接平面S2上に位置するUV座標系を、傾斜面S1上に平行移動させた状態で行われたためである。実際には、UV座標系の原点は、XYZ座標系の原点Oに位置するわけではなく、点G(x0,y0,z0)に位置している。式(11),(12)の項「u−x0」,「v−y0」,「w−z0」における座標値x0,y0,z0の減算は、この平行移動した原点の位置を補正するためのものである。
【0167】
<<< §8.パラメータ設定法の変形例 >>>
最後に、本発明におけるパラメータ設定法の変形例を述べておく。既に§3において、パラメータφ,x0,y0,mを、ユーザに効率的に設定させる基本的な実施例を述べた。この§3で述べた方法の骨子は、図13に示すように、XY座標系上に定義されている歪曲円形画像Sをユーザに提示し、この画像上で2点P,Qを指定させ、点P(x0,y0)の座標値(x0,y0)を、そのままパラメータx0,y0の値として用い、2点P,Q間の距離dを用いて、m=k/dなる式により変換倍率mを決定し、更に、2点P,Qを結ぶ直線を参照直線Jとし、この参照直線JとX軸とのなす角θ(切り出し向き)を求め、この角度θに基づいて、平面傾斜角φを決定する(実用上は、近似的に、φ=θとする)というものである。
【0168】
これに対して、ここで説明する変形例は、変換倍率mおよび切り出し向きを示す角度θを予め別個に設定しておき、歪曲円形画像S上では、1点P(x0,y0)のみを指定させる方法である。この変形例では、まず、図19に示す指示入力部150が、ディスプレイ画面上に図31に示すような「向き・倍率の設定画面151」を表示する。図示の例の場合、ユーザは、キーボードなどの入力デバイスを用いて、角度θ設定入力欄152にθの値を入力し、倍率m設定入力欄153にmの値を入力する操作を行うことになる。具体的には、たとえば、入力欄152にはθの値を「30°」のように入力し、入力欄153にはmの値を「2」のように入力すればよい。こうして入力したθは、歪曲円形画像S上に引くべき参照直線Jの向きを定義する値になる。もちろん、θおよびmの入力方法としては、この他にも様々な方法を採ることが可能である。たとえば、画面上に数値を増減させる矢印マークを表示させ、この矢印マークをクリックするユーザの操作により特定の数値を指定させてもよい。
【0169】
このように、何らかの方法で、変換倍率mおよび切り出し向きを示す角度θを設定させるようにすれば、歪曲円形画像S上では、切出中心点P(x0,y0)のみを指定させればよい。図32は、このような切出中心点Pを設定する操作を示す平面図である。図32では図示が省略されているが、実際には、図の円内には歪曲円形画像Sが表示されており、ユーザは、たとえば、マウスクリックなどにより、この歪曲円形画像S内の任意の1点を切出中心点P(x0,y0)として指定する操作を行うことになる。ユーザが切出中心点P(x0,y0)の位置を指定すると、当該点Pを通り、X軸と角度θ(前述の操作によって入力欄152に入力した角度値)をなす直線として、図に一点鎖線で示すような参照直線Jを定めることができ、この参照直線Jの方向を基準として、画像の切り出しが行われることになる。
【0170】
この§8で述べるパラメータ設定法の変形例は、常に、切り出し向き(参照直線Jの方向)を固定した状態で、様々な位置の平面正則画像を得るような用途に最適である。たとえば、図33の側面図に示すように、本発明を建物の壁面に取り付けられた監視カメラに利用した実施形態を考えてみる。図示のとおり、路面210上に建てられた建物220の壁面に、監視カメラ230が取り付けられており、図に一点鎖線で示すような視野を監視する業務を行うものとしよう。ここで、監視カメラ230が通常のレンズを備えたカメラの場合であれば、この監視カメラ230の位置から撮影した画像は、たとえば、図34に示すような通常の平面正則画像になる。ところが、より視野を広げるために、監視カメラ230として魚眼レンズを用いたカメラを用いると、XY平面上には、図35に示すような歪曲円形画像Sが得られることになる。
【0171】
ここで、図2に示す歪曲円形画像Sと図35に示す歪曲円形画像Sとを比較してみると、両者はいずれも魚眼レンズを備えたカメラで撮影した画像であるが、前者は、光軸が鉛直方向となるようにカメラを設置し、周囲360°にわたる地上の景色を撮影することにより得られる画像であるのに対し、後者は、光軸が水平方向となるようにカメラを設置し、建物220の片側の景色を撮影することにより得られる画像であることがわかる。したがって、変換後にUV座標系上に得られる平面正則画像が、自然界の天地に応じた正しい方向を向くように指定することを考えると、前者の場合、切り出し向き(角度θで規定される参照直線Jの向き)を、切出中心点の位置に応じて、様々な方向に指定する必要があるのに対して、後者の場合、常にX軸に平行な向きに設定すればよいことがわかる。
【0172】
したがって、図33に示すような環境で、魚眼レンズ付き監視カメラ230を用いて得られた歪曲円形画像Sを変換する用途に本発明を利用する場合には、たとえば、図31に示すような方法で、切り出し向きを示す角度θを予め0°に設定させ、変換倍率mについても所定の数値を予め設定させておき、図35に示す歪曲円形画像S上では、切出中心点Pの位置指定のみを行わせるようにするのが好ましい。本発明において、θは、参照直線JとX軸とのなす角として定義される角度であり、前述したように、θ=0°の場合は、参照直線JとX軸とが平行であることを示す。よって、θ=0°という設定が行われている場合、参照直線Jは、ユーザが指定した切出中心点Pを通りX軸に平行な直線ということになる。
【0173】
図36は、予めθ=0°という設定が行われている場合において、図35に示す歪曲円形画像S上における切出中心点の指定操作を示す平面図である。たとえば、ユーザが、図示のような歪曲円形画像Sをディスプレイ画面上で見ながら、路面上の1点P1の近傍を平面正則画像として視認したいと考えた場合は、当該点P1をクリック操作などで切出中心点として指定する操作を行えばよい。そうすれば、点P1を通りX軸に平行な参照直線J1が切り出し向きを示す直線ということになる。同様に、遠方のビルの1点P2の近傍を平面正則画像として視認したいと考えた場合は、当該点P2をクリック操作などで切出中心点として指定する操作を行えばよい。そうすれば、点P2を通りX軸に平行な参照直線J2が切り出し向きを示す直線ということになる。
【0174】
図36に示すとおり、参照直線J1,J2は、いずれも自然界の水平面に沿った方向になり、ほぼこの方向にU軸の向きが定義されることになる。したがって、最終的に得られる平面正則画像は、いずれも切出中心点P1,P2を中心として、自然界の天地に応じた正しい方向を向いた画像になる。また、ユーザは、歪曲円形画像Sを見ながら、「平面正則画像として視認したい領域の中心」を切出中心点Pとして指定するだけの単純な操作を行えばよいので、良好な操作性が得られる。
【図面の簡単な説明】
【0175】
【図1】正射影方式の魚眼レンズを用いた撮影により歪曲円形画像Sを形成する基本モデルを示す斜視図である。
【図2】魚眼レンズを用いた撮影によって得られた歪曲円形画像Sの一例を示す平面図である(歪曲円形画像Sの一般的なイメージを示すものであり、正確な画像を示すものではない)。
【図3】歪曲円形画像Sの一部分に切出領域Eを定義した例を示す平面図である。
【図4】歪曲円形画像Sを含むXY座標系と、平面正則画像Tを含むUV座標系との関係を示す斜視図である。
【図5】UV座標系上に定義された平面正則画像Tと平面傾斜角φとの関係を示す平面図である。
【図6】XY座標系からUV座標系への座標変換の原理を示す斜視図である。
【図7】図6の斜視図に示されている各構成要素を水平方向から見た図である。
【図8】図6の斜視図に示されている各構成要素を上方から見た図である。
【図9】UV座標系上に定義された平面正則画像Tを示す平面図である。
【図10】XY座標系上に定義された歪曲円形画像Sを示す平面図である。
【図11】オイラー角α,β,φをパラメータとして用いた従来の一般的な変換演算式を示す図である。
【図12】回転軸を示す座標値(x0,y0,z0)と平面傾斜角φ(回転軸まわりの回転角)をパラメータとして用いた本発明に係る変換演算式を示す図である。
【図13】XY平面上の2点P,Qを指定することにより、切出中心点、切り出し向きを示す角度θ(平面傾斜角φを決定するために用いられる角度)、変換倍率mの3つのパラメータを設定する原理を示す平面図である。
【図14】具体的な歪曲円形画像上で2点P,Qもしくは2点P,Q′を指定することにより、切出中心点、切り出し向きを示す角度θ、変換倍率mの3つのパラメータを設定する例を示す平面図である。
【図15】図14に示す例において、2点P,Qを指定した場合に得られる平面正則画像Tを示す平面図である。
【図16】図14に示す例において、2点P,Q′を指定した場合に得られる平面正則画像Tを示す平面図である。
【図17】図13に示す切り出し向きを示す角度θと平面傾斜角φとの関係を示す斜視図である。
【図18】切り出し向きを示す角度θに基づいて平面傾斜角φを算出する演算式を示す図である。
【図19】本発明に係る画像変換装置の基本構成を示すブロック図である。
【図20】正射影方式の魚眼レンズにおける入射光の投影状態を示す正面図である。
【図21】正射影方式の魚眼レンズを用いて形成される正射影画像と、等距離射影方式の魚眼レンズを用いて形成される等距離射影画像と、の関係を示す斜視図である。
【図22】等距離射影画像上の座標と正射影画像上の座標との間で座標変換を行うための変換式を示す図である。
【図23】図12に示す本発明に係る変換演算式の演算負担を軽減するために用いられる式を示す図である。
【図24】図12に示す本発明に係る変換演算式の演算負担を軽減するために用いられる関数テーブルを示す図である。
【図25】図24に示すような関数テーブルを参照する場合の線形補間の方法を示す図である。
【図26】図25に示す線形補間を実行するためのハードウエア構成要素を示すブロック図である。
【図27】図12に示す本発明に係る変換演算式の演算負担を軽減するために用いられる別な式を示す図である。
【図28】図22に示す座標変換の演算負担を軽減するために用いられる式を示す図である。
【図29】図12に示す本発明に係る変換演算式を導出するための数学的プロセスを示す図である。
【図30】図12に示す本発明に係る変換演算式を導出するための数学的プロセスを示す別な図である。
【図31】本発明の変形例に係るパラメータ設定法において、ディスプレイ画面上に表示される「向き・倍率の設定画面」を示す平面図である。
【図32】XY平面上の1点Pを指定することにより、切出中心点を設定する操作を示す平面図である。
【図33】本発明を建物の壁面に取り付けられた監視カメラに利用した実施形態を示す側面図である。
【図34】図33に示す監視カメラ230として、通常のレンズを備えたカメラを用いた場合に得られる撮影画像の一例を示す平面図である。
【図35】図33に示す監視カメラ230として、魚眼レンズを備えたカメラを用いた場合に得られる撮影画像(歪曲円形画像S)の一例を示す平面図である。
【図36】図35に示す歪曲円形画像S上における切出中心点の指定操作を示す平面図である。
【符号の説明】
【0176】
10:魚眼レンズを用いたカメラ
21:Tレジスタ
22:偶数関数テーブル
23:奇数関数テーブル
24:偶数読出部
25:奇数読出部
26:偶奇セレクタ
27:偶奇セレクタ
28:Aレジスタ
29:Bレジスタ
30:補間演算部
31:補間値レジスタ
100:画像変換装置
110:歪曲円形画像格納部
120:平面正則画像格納部
130:変換演算部
140:歪曲円形画像表示部
150:指示入力部
151:向き・倍率の設定画面
152:角度θ設定入力欄
153:倍率m設定入力欄
160:交点演算部
170:角度決定部
210:路面
220:建物
230:監視カメラ
a:ディスプレイの横方向寸法(水平方向の画素数)
b:ディスプレイの縦方向寸法(垂直方向の画素数)
B:境界点
d:2点PQ間の距離
E:切出領域
f:魚眼レンズに固有の定数
f(t):変数tに対する関数値
G(x0,y0,z0):点Pを通りZ軸に平行な直線と仮想球面Hとの交点
H:仮想球面
H(x,y,z):仮想球面H上の入射点
J,J′,J1,J2:参照直線
L1,L2:入射光線
m:変換倍率
n:法線ベクトル
N:回転ベクトル
O:三次元XYZ直交座標系の原点
P(x0,y0),P1,P2:切出中心点
P′(x2,y0):補助点
Q(x1,y1),Q′(x2,y2):補助点
R:歪曲円形画像Sの半径(仮想球面Hの半径)
r:歪曲円形画像Sの中心点からの距離
S:歪曲円形画像
S1:傾斜面
S2:接平面
S(x,y):歪曲円形画像S上の点
t:変数
T:平面正則画像
T(u,v):平面正則画像T上の点
T1,T2:関数テーブル
U:二次元UV直交座標系の座標軸
U′:U軸に平行な軸
V:二次元UV直交座標系の座標軸
W:変数tの離散値間隔
X:三次元XYZ直交座標系の座標軸
X′:X軸に平行な軸
Y:三次元XYZ直交座標系の座標軸
Z:三次元XYZ直交座標系の座標軸
α:方位角
β:天頂角
δ:下位ビットで示される端数
θ,θ′:切り出し向きを示す角度
φ,ψ:平面傾斜角
ξ:変数
【技術分野】
【0001】
本発明は、画像変換装置および画像変換方法に関し、特に、魚眼レンズを用いた撮影により得られた歪曲円形画像の一部分を切り出して、平面正則画像に変換する処理を行う技術に関する。
【背景技術】
【0002】
魚眼レンズを用いると、メカニカルな動作機構なしに、半球状の全方位を示す円形画像を得ることができる。このため、奇抜な効果を狙った風景写真などを撮影する際に広く利用されている。ただ、魚眼レンズを用いた撮影で得られる画像は、歪曲した円形の画像になるため、芸術写真などの用途にはそのまま利用することが可能かもしれないが、一般的な用途には不向きである。
【0003】
そこで、魚眼レンズを用いた撮影により得られた歪曲円形画像の一部分を切り出して、平面正則画像に変換する処理を行う装置が提案されている。たとえば、下記の特許文献1には、コンピュータを利用して歪曲円形画像の一部分を平面正則画像にリアルタイムで変換する技術が開示されている。このような変換技術を利用すれば、魚眼レンズを用いて撮影した歪曲円形画像からなる動画を、平面正則画像からなる動画としてリアルタイムで観察することが可能になり、180°の画角をもった監視システムなどへの応用が期待できる。
【特許文献1】特許第3051173号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
魚眼レンズを用いた撮影により得られた歪曲円形画像の一部分を切り出して、平面正則画像に変換する処理を行うためには、変換対象となる部分が歪曲円形画像のどの部分であり(切り出しの位置)、当該部分をどのような向きに表示した平面正則画像が必要であり(切り出しの向き)、どの程度の範囲までを変換対象とするか(変換倍率)、といったパラメータを設定する必要がある。もちろん、これらのパラメータは、ユーザの希望に応じて任意に設定することが可能である。
【0005】
しかしながら、前掲の特許文献などに開示されている従来の画像変換装置では、切り出しの位置や向きを、オイラー角と呼ばれる3つの角度により指定し、変換倍率も別途指定する必要があったため、ユーザの立場から見た操作性が悪いという問題がある。
【0006】
オイラー角は、歪曲円形画像上にドーム状の仮想球面を定義し、この仮想球面上の所望の接点に接する平面正則画像形成面を定義したときに、当該接点の位置を方位角αおよび天頂角βで表し、平面正則画像の向きを平面傾斜角ψで表したものである。このような3つの角度α,β,ψが、三次元空間上に定義される角度であるのに対し、ユーザが実際に目にしている歪曲円形画像は二次元平面上に表示されている画像である。したがって、ユーザにとって、3つの角度α,β,ψをパラメータとして指定する操作は、決して直観的な操作と言えるものではない。
【0007】
従来の画像変換装置のもうひとつの問題点は演算負担である。上述したオイラー角α,β,ψをパラメータとして指定した場合、当然ながら、これらオイラー角α,β,ψをパラメータとして含む変換演算式を用いた演算が必要になる。ところが、そのような変換演算式は、3つの角度α,β,ψに関する三角関数を含んだ複雑な式になるため、システムに対してかなり大きな演算負担を課することになる。特に、リアルタイムで変換処理を行う必要がある用途に用いる場合、三角関数演算を高速で行うことが可能な高機能なハードウエアが必要になり、製品コストの低減を阻む重要な問題になる。
【0008】
そこで本発明は、魚眼レンズを用いた撮影により得られた歪曲円形画像を平面正則画像に変換する際に、ユーザの直観的な操作により必要なパラメータ設定が可能になり、しかも演算負担を軽減させることが可能な画像変換装置および画像変換方法を提供することを目的とする。
【課題を解決するための手段】
【0009】
(1) 本発明の第1の態様は、魚眼レンズを用いた撮影により得られた歪曲円形画像の一部分を切り出して、平面正則画像に変換する処理を行う画像変換装置において、
二次元XY直交座標系上の座標(x,y)で示される位置に配置された多数の画素の集合体によって構成され、XY座標系の原点Oを中心とし半径Rをもった歪曲円形画像を格納する歪曲円形画像格納部と、
二次元UV直交座標系上の座標(u,v)で示される位置に配置された多数の画素の集合体によって構成される平面正則画像を格納する平面正則画像格納部と、
歪曲円形画像格納部に格納されている歪曲円形画像をディスプレイに表示する歪曲円形画像表示部と、
ディスプレイに表示されている歪曲円形画像上における、切出中心点Pの位置および切り出し向きをユーザの指示に基づいて入力する指示入力部と、
二次元XY直交座標系を含む三次元XYZ直交座標系において、原点Oを中心とし半径Rをもった仮想球面を定義したときに、切出中心点Pを通りZ軸に平行な直線と仮想球面との交点Gの位置座標(x0,y0,z0)を求める交点演算部と、
交点Gにおいて仮想球面に接する接平面上に定義すべき二次元UV直交座標系のU軸方向を向いたベクトルUと、二次元XY直交座標系のX軸方向を向いたベクトルXと、のなす角として与えられる平面傾斜角φを、切り出し向きに基づいて決定する角度決定部と、
位置座標(x0,y0,z0)および平面傾斜角φをパラメータとして含む正射影方式の変換演算式を利用して、座標(u,v)と座標(x,y)とを対応づけ、座標(u,v)で示される位置に配置された平面正則画像上の画素の画素値を、対応する座標(x,y)で示される位置に配置された歪曲円形画像上の参照画素の画素値に基づいて決定することにより、歪曲円形画像から切出中心点Pを中心として平面傾斜角φによって示される向きに切り出された部分画像についての平面正則画像を生成する演算を行い、生成された平面正則画像を平面正則画像格納部に格納する変換演算部と、
を設けるようにしたものである。
【0010】
(2) 本発明の第2の態様は、上述した第1の態様に係る画像変換装置において、
変換演算部が、正射影方式の変換演算式として、
x=R[(u−x0)A+(v−y0)B+(w−z0)E]/
√((u−x0)2+(v−y0)2+(w−z0)2)
y=R[(u−x0)C+(v−y0)D+(w−z0)F]/
√((u−x0)2+(v−y0)2+(w−z0)2)
ここで、
A=1−(1−cosφ)(y02+z02)
B=−z0sinφ+x0y0(1−cosφ)
C=z0sinφ+x0y0(1−cosφ)
D=1−(1−cosφ)(z02+x02)
E=y0sinφ+z0x0(1−cosφ)
F=−x0sinφ+y0x0(1−cosφ)
w=mR(但し、mは所定の変換倍率)
なる式を用いるようにしたものである。
【0011】
(3) 本発明の第3の態様は、上述した第1または第2の態様に係る画像変換装置において、
指示入力部が、歪曲円形画像上に引かれた参照直線Jを定義するための指示を入力する機能を有し、
角度決定部が、参照直線JとX軸とのなす角θ(但し、両者平行の場合はθ=0°とする)に基づいて平面傾斜角φを決定するようにしたものである。
【0012】
(4) 本発明の第4の態様は、上述した第3の態様に係る画像変換装置において、
指示入力部が、歪曲円形画像上において、切出中心点Pと補助点Qとの2点の位置を指定するための指示を入力する機能を有し、切出中心点Pと補助点Qとを結ぶ直線を参照直線Jとするようにしたものである。
【0013】
(5) 本発明の第5の態様は、上述した第3の態様に係る画像変換装置において、
指示入力部が、参照直線JとX軸とのなす角θを示す数値を所定の入力画面上で入力する機能と、切出中心点Pの位置を歪曲円形画像上で指定するための指示を入力する機能と、を有するようにしたものである。
【0014】
(6) 本発明の第6の態様は、上述した第3〜第5の態様に係る画像変換装置において、
角度決定部が、参照直線JとX軸とのなす角θを近似的に平面傾斜角φとするようにしたものである。
【0015】
(7) 本発明の第7の態様は、上述した第2の態様に係る画像変換装置において、
指示入力部が、ユーザの指示に基づいて変換倍率mを入力する機能を有し、
変換演算部が、指示入力部によって入力された変換倍率mを用いた演算を行うようにしたものである。
【0016】
(8) 本発明の第8の態様は、上述した第7の態様に係る画像変換装置において、
指示入力部が、歪曲円形画像上において、切出中心点Pと補助点Qとの2点の位置を指定するための指示を入力する機能を有し、切出中心点Pと補助点Qとの距離dに基づいて、m=k/d(kは所定の比例定数)として与えられる数値を変換倍率mとするようにしたものである。
【0017】
(9) 本発明の第9の態様は、上述した第1〜第8の態様に係る画像変換装置において、
変換演算部が、座標(u,v)で示される位置に配置された平面正則画像上の画素の画素値を決定する際に、対応する座標(x,y)で示される位置の近傍に配置された歪曲円形画像上の複数の参照画素の画素値に対する補間演算を行うようにしたものである。
【0018】
(10) 本発明の第10の態様は、上述した第1〜第9の態様に係る画像変換装置において、
歪曲円形画像格納部に格納されている画像が、正射影方式の魚眼レンズによって撮影された正射影画像ではなく、非正射影方式の魚眼レンズによって撮影された非正射影画像である場合に、非正射影画像上の座標を正射影画像上の座標に変換する第1の座標変換式と、正射影画像上の座標を非正射影画像上の座標に変換する第2の座標変換式と、を利用して、
交点演算部が、切出中心点Pの座標を第1の座標変換式を用いて変換し、変換後の座標を用いて交点の位置座標(x0,y0,z0)を求める処理を行い、
変換演算部が、正射影方式の変換演算式を用いて座標(u,v)に対応する座標(x,y)を求めた後、座標(x,y)を第2の座標変換式を用いて変換し、変換後の座標を用いて歪曲円形画像上の参照画素の位置を特定するようにしたものである。
【0019】
(11) 本発明の第11の態様は、上述した第10の態様に係る画像変換装置において、
歪曲円形画像格納部に格納されている画像が、等距離射影方式の魚眼レンズによって撮影された等距離射影画像である場合に、
交点演算部が、等距離射影画像上の座標(x′,y′)を正射影画像上の座標(x,y)に変換する第1の座標変換式として、
x=sinc(π/2・√(x′2+y′2))×π/2・x′
y=sinc(π/2・√(x′2+y′2))×π/2・y′
なる式を用い、
変換演算部が、正射影画像上の座標(x,y)を等距離射影画像上の座標(x′,y′)に変換する第2の座標変換式として、
x′=2/π・x/sinc(π/2・√(x2+y2))
y′=2/π・y/sinc(π/2・√(x2+y2))
なる式を用いるようにしたものである。
【0020】
(12) 本発明の第12の態様は、上述した第1〜第11の態様に係る画像変換装置を、コンピュータにプログラムを組み込むことにより構成したものである。
【0021】
(13) 本発明の第13の態様は、上述した第1〜第11の態様に係る画像変換装置の構成要素となる変換演算部として機能する電子回路を、半導体集積回路に組み込むようにしたものである。
【0022】
(14) 本発明の第14の態様は、上述した第1〜第11の態様に係る画像変換装置と、魚眼レンズを用いたカメラと、平面正則画像を画面上に表示するモニタ装置と、を組み合わせ、カメラを用いた撮影により得られた歪曲円形画像が歪曲円形画像格納部へと格納され、平面正則画像格納部に得られた平面正則画像がモニタ装置によって表示されるように構成することにより、魚眼監視システムを実現するようにしたものである。
【0023】
(15) 本発明の第15の態様は、上述した第2の態様に係る画像変換装置において、
変換演算部が、
「関数f(c)=1/c」の値を様々な変数cの値について対応づけた第1の関数テーブルと、「関数f(ξ)=1/√ξ」の値を様々な変数ξの値について対応づけた第2の関数テーブルと、を有し、
a=u−x0,b=v−y0,c=w−z0、
ξ=(a/c)2+(b/c)2+1
なる演算を行うことにより、cおよびξの値を求め、
第1の関数テーブルおよび第2の関数テーブルを参照することにより、求めたc,ξの値に対応する関数f(c),f(ξ)の値を求め、
正射影方式の変換演算式における
√((u−x0)2+(v−y0)2+(w−z0)2)
なる値を、f(c)×f(ξ)なる演算により求めるようにしたものである。
【0024】
(16) 本発明の第16の態様は、上述した第1〜第11の態様に係る画像変換装置において、
変換演算部が、
所定の有効桁数に応じた間隔Wの離散値をとる変数tのうち、偶数変数tについて、所定の関数f(t)の値を対応づけた偶数関数テーブルと、
有効桁数に応じた間隔Wの離散値をとる変数tのうち、奇数変数tについて、所定の関数f(t)の値を対応づけた奇数関数テーブルと、
有効桁数からなる上位ビットと、有効桁数より下位の桁を示す下位ビットと、によって構成される変数tを格納するTレジスタと、
上位ビットが偶数である場合には、上位ビットで示される偶数変数tについて対応づけられている関数f(t)の値を偶数関数テーブルから読み出し、上位ビットが奇数である場合には、上位ビットで示される奇数変数tよりも大きい最小の偶数変数tについて対応づけられている関数f(t)の値を偶数関数テーブルから読み出す偶数読出部と、
上位ビットが奇数である場合には、上位ビットで示される奇数変数tについて対応づけられている関数f(t)の値を奇数関数テーブルから読み出し、上位ビットが偶数である場合には、上位ビットで示される偶数変数tよりも大きい最小の奇数変数tについて対応づけられている関数f(t)の値を奇数関数テーブルから読み出す奇数読出部と、
偶数関数テーブルもしくは奇数関数テーブルから読み出された関数f(t)の値を格納するAレジスタと、
偶数関数テーブルもしくは奇数関数テーブルから読み出された関数f(t)の値を格納するBレジスタと、
上位ビットが偶数である場合には、偶数読出部が読み出した関数f(t)の値をAレジスタに格納するとともに、奇数読出部が読み出した関数f(t)の値をBレジスタに格納し、上位ビットが奇数である場合には、奇数読出部が読み出した関数f(t)の値をAレジスタに格納するとともに、偶数読出部が読み出した関数f(t)の値をBレジスタに格納する偶奇セレクタと、
Aレジスタに格納されている値をf(A)とし、Bレジスタに格納されている値をf(B)とし、下位ビットで示される値をδとして、補間後の関数f(t)の値を、f(t)=((W−δ)/W)×f(A)+(δ/W)×f(B)なる演算によって求める補間演算部と、
を有し、補間演算部によって求められた補間後の関数f(t)の値を利用して演算を行うようにしたものである。
【0025】
(17) 本発明の第17の態様は、上述した第11の態様に係る画像変換装置において、
交点演算部が、第1の座標変換式における関数sinc(t)を、
sinc(t)=1−t2/3!+t4/5!−t6/7!+t8/9!− ....
なるテイラー展開した形式の式に基づいて演算し、
変換演算部が、第2の座標変換式における関数1/sinc(t)を、所定の係数値a2,a4,a6,a8, ....を用いた
1/sinc(t)=1+a2t2+a4t4+a6t6+a8t8+ ....
なる形式の式に基づいて演算するようにしたものである。
【0026】
(18) 本発明の第18の態様は、上述した第2の態様に係る画像変換装置において、
変換演算部が、cosφの値を、ベクトルUとベクトルXとの内積を、ベクトルUの大きさとベクトルXの大きさとの積で除することにより求めるようにしたものである。
【0027】
(19) 本発明の第19の態様は、上述した第2の態様に係る画像変換装置において、
指示入力部が、歪曲円形画像上に引かれた参照直線Jを定義するための指示を入力する機能を有し、
変換演算部が、参照直線Jの方向を向いたベクトルJを定義し、cosφの値を、ベクトルJとベクトルXとの内積を、ベクトルJの大きさとベクトルXの大きさとの積で除することにより求めるようにしたものである。
【0028】
(20) 本発明の第20の態様は、上述した第2の態様に係る画像変換装置において、
変換演算部が、sinφの値を、sinφ=√(1−cos2φ)なる演算により求めるようにしたものである。
【0029】
(21) 本発明の第21の態様は、魚眼レンズを用いた撮影により得られた歪曲円形画像の一部分を切り出して、平面正則画像に変換する処理を行う画像変換装置において、
二次元XY直交座標系上の座標(x,y)で示される位置に配置された多数の画素の集合体によって構成された歪曲円形画像を格納する歪曲円形画像格納部と、
二次元UV直交座標系上の座標(u,v)で示される位置に配置された多数の画素の集合体によって構成される平面正則画像を格納する平面正則画像格納部と、
歪曲円形画像格納部に格納されている歪曲円形画像をディスプレイに表示する歪曲円形画像表示部と、
ディスプレイに表示されている歪曲円形画像上において、切出中心点Pと補助点Qとの2点の位置をユーザの指示に基づいて入力し、切出中心点Pと補助点Qとを結ぶ直線を参照直線Jと認識し、切出中心点Pと補助点Qとの距離dに基づいて、m=k/d(kは所定の比例定数)として与えられる数値を変換倍率mと認識する指示入力部と、
座標(u,v)と座標(x,y)とを対応づける変換演算式を利用して、座標(u,v)で示される位置に配置された平面正則画像上の画素の画素値を、対応する座標(x,y)で示される位置に配置された歪曲円形画像上の参照画素の画素値に基づいて決定することにより、歪曲円形画像から切出中心点Pを中心として参照直線Jに応じた向きに切り出された部分画像について、変換倍率mに基づいてスケーリングされた平面正則画像を生成する演算を行い、生成された平面正則画像を平面正則画像格納部に格納する変換演算部と、
を設けるようにしたものである。
【0030】
(22) 本発明の第22の態様は、魚眼レンズを用いた撮影により得られた歪曲円形画像の一部分を切り出して、平面正則画像に変換する処理を行う画像変換装置において、
二次元XY直交座標系上の座標(x,y)で示される位置に配置された多数の画素の集合体によって構成された歪曲円形画像を格納する歪曲円形画像格納部と、
二次元UV直交座標系上の座標(u,v)で示される位置に配置された多数の画素の集合体によって構成される平面正則画像を格納する平面正則画像格納部と、
歪曲円形画像格納部に格納されている歪曲円形画像をディスプレイに表示する歪曲円形画像表示部と、
所定の入力画面上において、参照直線JとX軸とのなす角として定義される角度θと、変換倍率mと、をユーザの指示に基づいて入力するとともに、前記ディスプレイに表示されている歪曲円形画像上において、切出中心点Pの位置をユーザの指示に基づいて入力する指示入力部と、
座標(u,v)と座標(x,y)とを対応づける変換演算式を利用して、座標(u,v)で示される位置に配置された平面正則画像上の画素の画素値を、対応する座標(x,y)で示される位置に配置された歪曲円形画像上の参照画素の画素値に基づいて決定することにより、歪曲円形画像から切出中心点Pを中心として参照直線Jに応じた向きに切り出された部分画像について、変換倍率mに基づいてスケーリングされた平面正則画像を生成する演算を行い、生成された平面正則画像を平面正則画像格納部に格納する変換演算部と、
を設けるようにしたものである。
【0031】
(23) 本発明の第23の態様は、魚眼レンズを用いた撮影により得られた歪曲円形画像の一部分を切り出して、平面正則画像に変換する処理を行う画像変換方法において、
二次元XY直交座標系上の座標(x,y)で示される位置に配置された多数の画素の集合体によって構成され、XY座標系の原点Oを中心とし半径Rをもった歪曲円形画像を、歪曲円形画像格納部に格納する段階と、
歪曲円形画像格納部に格納されている歪曲円形画像をディスプレイに表示する段階と、
ディスプレイに表示されている歪曲円形画像上における、切出中心点Pの位置および切り出し向きをユーザの指示に基づいて入力する段階と、
二次元XY直交座標系を含む三次元XYZ直交座標系において、原点Oを中心とし半径Rをもった仮想球面を定義したときに、切出中心点Pを通りZ軸に平行な直線と仮想球面との交点Gの位置座標(x0,y0,z0)を求める段階と、
交点Gにおいて仮想球面に接する接平面上に定義すべき二次元UV直交座標系のU軸方向を向いたベクトルUと、二次元XY直交座標系のX軸方向を向いたベクトルXと、のなす角として与えられる平面傾斜角φを、切り出し向きに基づいて決定する段階と、
位置座標(x0,y0,z0)および平面傾斜角φをパラメータとして含む正射影方式の変換演算式を利用して、座標(u,v)と座標(x,y)とを対応づけ、座標(u,v)で示される位置に配置された多数の画素の集合体によって構成される平面正則画像上の各画素の画素値を、対応する座標(x,y)で示される位置に配置された歪曲円形画像上の参照画素の画素値に基づいて決定することにより、歪曲円形画像から切出中心点Pを中心として平面傾斜角φによって示される向きに切り出された部分画像についての平面正則画像を生成する演算を行う段階と、
をコンピュータもしくは電子回路に実行させるようにしたものである。
【0032】
(24) 本発明の第24の態様は、上述した第23の態様に係る画像変換方法において、
正射影方式の変換演算式として、
x=R[(u−x0)A+(v−y0)B+(w−z0)E]/
√((u−x0)2+(v−y0)2+(w−z0)2)
y=R[(u−x0)C+(v−y0)D+(w−z0)F]/
√((u−x0)2+(v−y0)2+(w−z0)2)
ここで、
A=1−(1−cosφ)(y02+z02)
B=−z0sinφ+x0y0(1−cosφ)
C=z0sinφ+x0y0(1−cosφ)
D=1−(1−cosφ)(z02+x02)
E=y0sinφ+z0x0(1−cosφ)
F=−x0sinφ+y0x0(1−cosφ)
w=mR(但し、mは所定の変換倍率)
なる式を用いるようにしたものである。
【0033】
(25) 本発明の第25の態様は、上述した第23または第24の態様に係る画像変換方法において、
ディスプレイに表示されている歪曲円形画像上において、切出中心点Pと補助点Qとの2点の位置を指定するための指示を入力し、切出中心点Pと補助点Qとを結ぶ直線を参照直線Jとし、この参照直線JとX軸とのなす角θ(但し、両者平行の場合はθ=0°とする)に基づいて平面傾斜角φを決定するようにしたものである。
【0034】
(26) 本発明の第26の態様は、上述した第23または第24の態様に係る画像変換方法において、
ディスプレイに表示されている歪曲円形画像上において、切出中心点Pの位置を指定するための指示を入力するとともに、所定の入力画面上において、歪曲円形画像上の参照直線JとX軸とのなす角θを入力し、この角θに基づいて平面傾斜角φを決定するようにしたものである。
【発明の効果】
【0035】
本発明に係る画像変換装置を用いたユーザは、魚眼レンズを用いた撮影により得られた歪曲円形画像上における切出中心点Pの位置および切り出し向きを指示すればよいので、直観的な操作により、変換に必要なパラメータ設定が可能になる。しかも、変換演算は、ユーザの指示入力に基づいて導出された仮想球面上の接点の座標値(x0,y0,z0)および平面傾斜角φをパラメータとして用いる比較的単純な変換演算式を用いて行われるため、演算負担を軽減させることも可能になる。
【発明を実施するための最良の形態】
【0036】
以下、本発明を図示する実施形態に基づいて説明する。
【0037】
<<< §1.画像変換処理の基本原理 >>>
はじめに、魚眼レンズを用いた撮影により得られた歪曲円形画像の一般的な特徴と、その一部分を切り出して、平面正則画像に変換する処理の基本原理を説明する。図1は、正射影方式の魚眼レンズを用いた撮影により歪曲円形画像Sを形成する基本モデルを示す斜視図である。一般に、魚眼レンズは、その投影方式によって複数の種類に分けられるが、この図1に示すモデルは、正射影方式の魚眼レンズについてのものである(正射影方式以外の魚眼レンズに本発明を適用する手法は、§5で述べる)。
【0038】
図1には、三次元XYZ直交座標系におけるXY平面上に歪曲円形画像Sが形成された例が示されている。なお、ここでは、後述する変換演算式との整合性を確保するために、図示のとおり、Z軸を図の下方にとり、Z軸の負の領域側にドーム状の仮想球面H(半球)を定義した例を示すことにする。
【0039】
XY平面上に形成された歪曲円形画像Sは、座標系の原点Oを中心とした半径Rの円を構成する画像であり、Z軸の負の領域側における180°の画角をもった領域に存在する像を歪ませて記録したものに相当する。図2は、魚眼レンズを用いた撮影によって得られた歪曲円形画像Sの一例を示す平面図である。このように、歪曲円形画像Sには、Z軸の負の領域側に存在するすべての像が記録されることになるが、その中心部分と周囲部分とでは、像の縮尺倍率が異なっており、記録された像の形状は歪んだものになる。なお、図2に示す歪曲円形画像Sは、魚眼レンズを用いた撮影により得られた歪曲円形画像の一般的なイメージを示すものであり、実際の魚眼レンズを用いて得られる正確な画像を示すものではない。
【0040】
実際の魚眼レンズは、複数の凸レンズや凹レンズを組み合わせた光学系によって構成されるが、その光学的な特性は、図1に示すような仮想球面Hによってモデル化することができることが知られている。すなわち、歪曲円形画像Sの上面に、半径Rをもったドーム状の仮想球面H(半球)を配置したモデルを考えれば、正射影方式の魚眼レンズの光学的特性は、仮想球面H上の任意の点H(x,y,z)に対して法線方向から入射する入射光線L1は、Z軸に平行な入射光線L2として、XY平面上の点S(x,y)へ向かう振る舞いをする、と考えてよい。逆言すれば、図2において歪曲円形画像S上の点S(x,y)に位置する画素は、図1に示す入射光線L1の延長線上に存在する物体上の1点を示していることになる。
【0041】
もちろん、実際の魚眼レンズで生じている光学的現象は、複数の凸レンズや凹レンズによる屈折により、撮像対象となる物体の特定の点が、XY平面上の特定の点S(x,y)上に結像する現象ということになるが、画像変換処理などを行う上では、図1に示すような仮想球面Hを用いたモデルに置き換えた議論を行っても何ら支障はない。したがって、前掲の特許文献に開示されている画像変換処理でも、このようなモデルを前提とした手法が示されており、本発明における以下の説明においても、このようなモデルを前提とした説明を行うことにする。
【0042】
本発明に係る画像変換装置の目的は、歪曲円形画像S上の一部分を切り出して、平面正則画像に変換する処理を行うことである。たとえば、図2に示す歪曲円形画像Sを見たユーザが、その左下に描かれている女性の画像を、歪みのない正しい画像で観察したいと考えたとしよう。このような場合、ユーザは、歪曲円形画像Sのどの部分を切り出して変換を行うべきかを指定する必要がある。たとえば、図3にハッチングを施して示すような切出領域Eを変換対象とすべき領域として指定するのであれば、最も直観的な指定方法は、その中心点P(x0,y0)の位置を指定する方法であろう。本発明では、このようにしてユーザが指定する点Pを、切出中心点Pと呼ぶことにする。
【0043】
ここでは、切出中心点P(x0,y0)を中心とした切出領域E内の画像を、平面正則画像に変換するために、次のようなモデルを考える。図4は、このモデルにおいて、歪曲円形画像Sを含むXY座標系と、平面正則画像Tを含むUV座標系との関係を示す斜視図である。図示のとおり、歪曲円形画像Sは、三次元XYZ直交座標系のXY平面上に定義されているので、歪曲円形画像S自身は、二次元XY直交座標系上に定義された画像である。そこで、この歪曲円形画像S上に定義された切出中心点P(x0,y0)を通りZ軸に平行な直線と仮想球面Hとの交点Gを考える。この交点Gは、いわば切出中心点P(x0,y0)の真上の点であり、その位置座標は(x0,y0,z0)である。
【0044】
次に、この交点G(x0,y0,z0)において、仮想球面Hに接する接平面を定義し、この接平面上に二次元UV直交座標系を定義する。そして、平面正則画像Tを、この二次元UV直交座標系上の画像として求めることにする。図4に示す例の場合、交点G(x0,y0,z0)が原点となるようにUV座標系が定義されている。結局、このモデルにおけるUV座標系の原点は、仮想球面H上のいずれかに設定され、UV座標系を構成するUV平面は、この原点位置における仮想球面Hに対する接平面に一致する。
【0045】
UV座標系の原点となる交点G(x0,y0,z0)の位置は、図示のとおり、方位角αと天頂角βとによって特定することができる。ここで、方位角α(0≦α<360°)は、切出中心点P(x0,y0)とXY座標系の原点Oとを結ぶ直線とX軸とのなす角であり、天頂角β(0≦β≦90°)は、UV座標系の原点となる点G(x0,y0,z0)とXY座標系の原点Oとを結ぶ直線とZ軸とのなす角である。
【0046】
このように、UV平面は、方位角αと天頂角βとを指定することによって特定することができるが、UV座標系を決定するには、更にもう1つのパラメータを指定する必要がある。このパラメータは、点Gを中心とした接平面上での回転ファクター(U軸の向き)を示すものであり、一般に平面傾斜角と呼ばれている。通常、この平面傾斜角は、「点Gを通り、XY平面に平行で、かつ、直線OGに直交する軸」を基準軸として、当該基準軸とU軸とのなす角ψとして定義される(基準軸は、方位角αと天頂角βに依存して変化する)。これに対して、本発明では、上記角ψの代わりに、X軸を基準としたときのU軸の向きを示す角度φを用いることにする(基準軸は、常にX軸に固定される)。具体的には、本発明でパラメータとして用いる角度φは、図4に示すように、U軸とX′軸とのなす角度として定義される。ここで、X′軸は、交点G(x0,y0,z0)を通りX軸に平行な軸である。要するに、角度φは、UV座標系においてU軸方向を向いたベクトルUと、XY座標系においてX軸方向を向いたベクトルXと、を定義したときに、ベクトルUとベクトルXとのなす角度として定義される角になる。このように、「本発明において用いられる角度φ」は、「従来の一般的な平面傾斜角ψ」とは異なる方法で定義される角度であるが、いずれもUV座標系の回転ファクターを示すパラメータという点において共通するため、ここでは角度φについても「平面傾斜角」という用語を用いることにする。
【0047】
図5は、UV座標系上に定義された平面正則画像Tと平面傾斜角φとの関係を示す平面図である。ここに示す例の場合、平面正則画像Tは、UV座標系の原点G(x0,y0,z0)を中心とするUV平面上の矩形として定義されており、その長辺はU軸に平行、短辺はV軸に平行になっている。平面傾斜角φは、上述したとおり、U軸とX′軸とのなす角であるから、図5に示す例の場合、UV平面上での平面正則画像Tの回転ファクターを示すパラメータということになる。
【0048】
結局、図4に示す平面正則画像Tを形成するためのUV座標系の位置および向きは、方位角α,天頂角β,平面傾斜角φという3つの角度からなるパラメータを設定することにより一義的に決定される。この3つの角度は、一般にオイラー角と呼ばれている(上述したとおり、平面傾斜角φについては、従来の一般的な平面傾斜角ψとは、若干、定義方法が異なっている)。
【0049】
さて、本発明において実行される画像変換処理は、結局、XY座標系からUV座標系への座標変換ということになる。そこで、XY座標系とUV座標系との幾何学的な位置関係を、もう少し詳しく見てみよう。図6の斜視図に示されているように、XY平面上の歪曲円形画像Sを、方位角αによって示される方向に対して、天頂角βだけ傾斜すると、傾斜面S1が得られる。ここで、図示のとおり、XY座標系の原点OからUV座標系の原点Gへ向かう方向に法線ベクトルnを定義し、傾斜面S1をこの法線ベクトルnの方向に距離Rだけ平行移動させると、接平面S2が得られることになる。移動距離Rは、歪曲円形画像Sの半径であり、仮想球面Hの半径でもある。
【0050】
接平面S2は、点Gにおいて仮想球面Hに接する平面であり、法線ベクトルnは、点Gにおける仮想球面Hの法線方向を示すベクトルである。そして、UV座標系は、この接平面S2上に定義される座標系であり、点Gを原点とし、U軸とX′軸(X軸を平行移動した軸)とのなす角が平面傾斜角φとなるように定義された二次元直交座標系である。図7は、図6の斜視図に示されている各構成要素を水平方向から見た図である。前述したとおり、点G(x0,y0,z0)は、歪曲円形画像S上に定義された切出中心点P(x0,y0)を通りZ軸に平行な直線と仮想球面Hとの交点として定まる点であり、その位置は方位角αおよび天頂角βによって定まる。一方、図8は、図6の斜視図に示されている各構成要素を上方から見た図である。図に示す交点G(x0,y0,z0)は、仮想球面H上の点であり、XY平面の上方に位置している。そして、この交点G(x0,y0,z0)における仮想球面Hに対する接平面上にUV座標系が定義される。このとき、U軸とX′軸とのなす角がφとなるように、U軸の向きが定められる。
【0051】
図9は、UV座標系上に定義された平面正則画像Tを示す平面図である。ここでは、この平面正則画像T上の任意の点をUV座標系の座標値u,vを用いて、T(u,v)と表すことにする。前述したとおり、ここに示すモデルでは、UV座標系の原点T(0,0)の位置は、点G(x0,y0,z0)に一致する。一方、図10は、XY座標系上に定義された歪曲円形画像Sを示す平面図である。ここでは、この歪曲円形画像S上の任意の点をXY座標系の座標値x,yを用いて、S(x,y)と表すことにする。
【0052】
本発明に係る画像変換装置は、図10に示すように、ユーザが歪曲円形画像S上の1点P(x0,y0)の位置を切出中心点として指定すると(実際には、後述するように、切り出し向きの指定も行う)、その近傍の切出領域E内の歪曲した画像を正則画像に変換し、図9に示すUV座標系上に定義された平面正則画像Tとして出力する機能を有している。このような画像変換を行うためには、UV座標系上の1点T(u,v)とXY座標系上の1点S(x,y)との間に1対1の対応関係を定義しておく必要がある。このような対応関係は、実際には、変換演算式として表現することができる。
【0053】
このような変換演算式は、三次元XYZ座標系の空間内に配置されたUV座標系の位置および向きが決定すれば、一義的に定義することが可能である。たとえば、図4に示すような特定のUV座標系が定義されており、その上に何らかの平面正則画像Tが配置されていたとする。この場合、この平面正則画像Tを撮影対象となる物体と考え、図示のモデルに相当する魚眼レンズを用いて、当該物体を撮影すれば、XY平面上に歪曲円形画像Sが得られることになる。このとき、撮影対象物体となる平面正則画像T上の任意の点T(u,v)の歪曲円形画像S上での結像位置S(x,y)は、図1で説明した魚眼レンズの光学的な基本特性に基づいて決定できる。すなわち、点T(u,v)からの光線L1が法線方向から入射するような仮想球面H上の点H(x,y,z)を求めれば、結像位置はS(x,y)として与えられることになる。
【0054】
結局、UV座標系の位置および向きが決定すれば、UV座標系上の1点T(u,v)とXY座標系上の1点S(x,y)との間に1対1の対応関係を定義することができ、そのような対応関係は変換演算式として表現することができる。歪曲円形画像Sの一部を平面正則画像Tに変換する画像変換処理は、この変換演算式を用いた座標変換演算によって行うことができる。たとえば、図9に示す平面正則画像Tにおける任意の1点T(u,v)に位置する画素の画素値は、図10に示す歪曲円形画像S上の対応点S(x,y)に位置する画素の画素値に基づいて決定すればよい。これが歪曲円形画像の一部を平面正則画像に変換する画像変換処理の基本原理である。
【0055】
<<< §2.変換演算式の比較 >>>
上述したとおり、UV座標系上の1点T(u,v)とXY座標系上の1点S(x,y)とを対応づける変換演算式は、三次元XYZ座標系の空間内に配置されたUV座標系の位置および向きが決定しなければ一義的には定義できないが、UV座標系の位置および向きをパラメータ値として含む形の変換演算式であれば、定義することは可能である。
【0056】
たとえば、図11に式(1)〜(9)として示されている変換演算式は、前掲の特許文献に開示されている式である。この変換演算式は、UV座標系の位置を示すパラメータα,βと、UV座標系の向きを示すパラメータψとを含む式になっている。これら3つのパラメータは、§1で述べたオイラー角、すなわち、方位角α,天頂角β,平面傾斜角ψである。ここで、平面傾斜角ψは、従来の一般的な方法によって定義された回転ファクターを示すパラメータであり、図4において、「点Gを通り、XY平面に平行で、かつ、直線OGに直交する軸(図示されていない)」を基準軸として、当該基準軸とU軸とのなす角ψとして定義される角度である(前述したとおり、本発明では、角ψの代わりに、図4に示すように、U軸とX′軸とのなす角φを用いることになる)。
【0057】
具体的には、
x=R(uA+vB+wE)/
√(u2+v2+w2) 式(1)
は、UV座標系上の1点T(u,v)の座標値u,vを用いて、XY座標系上の対応点S(x,y)のx座標値を求めるための式であるが、A,B,Eは、それぞれ、
A=cosψcosα−sinψsinαcosβ 式(3)
B=−sinψcosα−cosψsinαcosβ 式(4)
E=sinβsinα 式(7)
なる数式で求まる値であり、オイラー角α,β,ψの三角関数を用いた演算によって決定されることになる。
【0058】
同様に、
y=R(uC+vD+wF)/
√(u2+v2+w2) 式(2)
は、UV座標系上の1点T(u,v)の座標値u,vを用いて、XY座標系上の対応点S(x,y)のy座標値を求めるための式であるが、C,D,Fは、それぞれ、
C=cosψsinα+sinψcosαcosβ 式(5)
D=−sinψsinα+cosψcosαcosβ 式(6)
F=−sinβcosα 式(8)
なる数式で求まる値であり、オイラー角α,β,ψの三角関数を用いた演算によって決定されることになる。
【0059】
なお、式(1),(2)におけるwは、
w=mR 式(9)
で与えられる値である。ここで、Rは、歪曲円形画像Sの半径であり、mは変換倍率である。変換倍率mは、座標値u,vのスケーリングと、座標値x,yのスケーリングとの関係を示すものであり、変換倍率mを大きく設定すればするほど、平面正則画像Tには拡大された画像が求められる。実際には、平面正則画像Tの大きさ(たとえば、縦横の画素数)には制限があるため、変換倍率mを大きく設定すればするほど、歪曲円形画像Sの切出領域Eは小さくなる。
【0060】
結局、図11に示す式において、Rの値は歪曲円形画像Sの半径として既知であり、mの値はユーザによって指定された(もしくは、予め固定された)変換倍率値として既知であるから、ユーザがオイラー角α,β,ψを指定することにより、UV座標系の位置および向きを決定してやれば、図11に示す変換演算式において、座標値x,yを算出するための未知数はu,vのみになる。したがって、この変換演算式を用いれば、平面正則画像Tにおける任意の1点T(u,v)に対応する歪曲円形画像S上の対応点S(x,y)を決定することができる。
【0061】
前掲の特許文献に開示されている画像変換の方法は、この図11に示す変換演算式を用いて、歪曲円形画像Sの一部を平面正則画像Tに変換するものである。しかしながら、このような変換演算式に基づいて変換演算を行う従来の画像変換装置には、前述したように、2つの問題がある。
【0062】
第1の問題は、ユーザの立場から見た操作性の問題である。図11に示す変換演算式に基づく演算を実行するためには、ユーザはオイラー角α,β,ψを指定する操作を行う必要がある。ところが、オイラー角α,β,ψは、三次元空間上に定義される角度であるのに対し、ユーザが実際に目にしている歪曲円形画像Sは二次元平面上に表示されている画像である。したがって、ユーザにとって、3つの角度α,β,ψをパラメータとして指定する操作は、決して直観的な操作と言えるものではない。このような点において、前掲の特許文献に開示されている従来の画像変換装置は、ユーザの立場からは、必ずしも使い易い装置とは言えない。
【0063】
第2の問題は、図11に示す変換演算式に基づく演算が、かなり負担の大きな演算になる点である。図11に示す式(3)〜(8)には、多数の三角関数の項が含まれている。一般に、三角関数の演算は、演算器やコンピュータにとって、かなり負担の大きな演算である。特に、リアルタイムでの変換処理が要求される場合、三角関数演算を高速で行うことが可能な高機能なハードウエアが必要になり、製品コストもそれだけ高騰せざるを得ない。
【0064】
本発明の最も重要な特徴は、図11に示す従来の変換演算式の代わりに、図12に示す新たな変換演算式(以下、本発明の変換演算式という。その数学的な導出プロセスは、§7で述べる。)を用いて演算を行う点にある。いずれの演算式も、平面正則画像Tにおける任意の1点T(u,v)に対応する歪曲円形画像S上の対応点S(x,y)を決定するための式であり、1組の変数値u,vを代入することにより、1組の関数値x,yが求まる、という点では共通する。しかしながら、図12に式(11)〜(19)として示されている本発明の変換演算式では、図11に式(1)〜(9)として示されている従来の変換演算式に比べて、三角関数の出現頻度がかなり減少していることがわかる。その理由は、3つの角度である方位角、天頂角、平面傾斜角のうち、方位角と天頂角が陽に使われていないからである。
【0065】
具体的には、
x=R[(u−x0)A+(v−y0)B+(w−z0)E]/
√((u−x0)2+(v−y0)2+(w−z0)2) 式(11)
は、UV座標系上の1点T(u,v)の座標値u,vを用いて、XY座標系上の対応点S(x,y)のx座標値を求めるための式である。ここで、A,B,Eは、それぞれ、
A=1−(1−cosφ)(y02+z02) 式(13)
B=−z0sinφ+x0y0(1−cosφ) 式(14)
E=y0sinφ+z0x0(1−cosφ) 式(17)
なる数式で求まる値である。この数式に含まれている三角関数は、平面傾斜角φについてのsinφおよびcosφのみである。
【0066】
同様に、
y=R[(u−x0)C+(v−y0)D+(w−z0)F]/
√((u−x0)2+(v−y0)2+(w−z0)2) 式(12)
は、UV座標系上の1点T(u,v)の座標値u,vを用いて、XY座標系上の対応点S(x,y)のy座標値を求めるための式である。ここで、C,D,Fは、それぞれ、
C=z0sinφ+x0y0(1−cosφ) 式(15)
D=1−(1−cosφ)(z02+x02) 式(16)
F=−x0sinφ+y0x0(1−cosφ) 式(18)
なる数式で求まる値である。この数式に含まれている三角関数は、やはり平面傾斜角φについてのsinφおよびcosφのみである。
【0067】
なお、式(11),(12)におけるwが、
w=mR 式(19)
で与えられる値であり、Rが歪曲円形画像Sの半径、mが変換倍率である点は、従来の変換演算式と同様である。
【0068】
結局、図11に示す式に含まれていた方位角αおよび天頂角βに関する三角関数は、図12に示す式には全く含まれていないことになる。その代わりに、図12に示す式には、点Gの座標値(x0,y0,z0)が含まれている。これは、UV座標系の位置を示すパラメータとして、図11に示す従来の式では、方位角αと天頂角βを用いているのに対して、図12に示す本発明の式では、点Gの座標値(x0,y0,z0)を用いているためである。
【0069】
図4に示すように、UV座標系の原点となる点G(x0,y0,z0)は、切出中心点P(x0,y0)を通りZ軸に平行な直線と仮想球面Hとの交点として定義される点である。ここで、切出中心点P(x0,y0)の位置は、ユーザの指定(歪曲円形画像Sのどの部分を切り出して、平面正則画像に変換して欲しいかという要求)に基づいて設定される点であるから、結局、交点G(x0,y0,z0)も、ユーザの要望に応じて設定される点ということになる。そして、この交点Gを特定する方法として、図11に示す従来の式は、方位角αおよび天頂角βという2つの角度を用いた式であるのに対して、図12に示す本発明の式は、(x0,y0,z0)という座標値を用いた式ということになる。また、図11に示す従来の式で用いられている平面傾斜角ψは、図4において「点Gを通り、XY平面に平行で、かつ、直線OGに直交する軸(図示されていない)」を基準軸として、当該基準軸とU軸とのなす角ψとして定義されるのに対して、図12に示す本発明の式で用いられている平面傾斜角φは、図4に示すように、U軸とX′軸とのなす角として定義される。
【0070】
このように、交点Gの位置を方位角αおよび天頂角βを用いて表現し、平面傾斜角ψを用いた従来の変換演算式(図11)と、交点Gの位置を(x0,y0,z0)なる座標値を用いて表現し、平面傾斜角φを用いた本発明の変換演算式(図12)とは、幾何学的には等価な式ということができる。しかしながら、演算器を組み合わせて構成したハードウエアや、コンピュータ用ソフトウエアによって、実際の演算処理を行うという観点では、この2つの変換演算式には大きな違いがある。すなわち、従来の変換演算式(図11)に基づく演算を行うためには、多数の三角関数演算(式(3)〜(8))を行う必要があるのに対して、本発明の変換演算式(図12)を用いれば、三角関数演算は大幅に低減される(式(13)〜(18))。
【0071】
また、ユーザの操作性という観点から見ると、方位角αおよび天頂角βをパラメータとして設定する操作に比べて、点Gの座標値(x0,y0,z0)をパラメータとして設定する操作の方が、はるかに直観的であり良好な操作性が得られる。上述したとおり、点Gは、切出中心点P(x0,y0)を通りZ軸に平行な直線と仮想球面Hとの交点として定義される点であるから、ユーザは、歪曲円形画像S上において、切出中心点P(x0,y0)の位置を指定する操作を行えば、座標値z0は交点を求める演算によって自動的に求めることができる。もちろん、切出中心点P(x0,y0)の位置を指定する操作は、ディスプレイに表示された歪曲円形画像S上の1点をクリックするなどの直観的な操作で行うことができる。更に、従来の平面傾斜角ψに比べて、本発明の平面傾斜角φは、常にX軸という固定軸を基準として定義される角であるため、§3で詳述するように、ユーザは、歪曲円形画像S上において角φを直観的に指定することが可能になる。
【0072】
このように、本発明に係る画像変換装置では、従来の変換演算式(図11)に基づく演算に代えて、本発明の変換演算式(図12)に基づく演算を行うようにしたため、魚眼レンズを用いた撮影により得られた歪曲円形画像Sを平面正則画像Tに変換する際に、ユーザの直観的な操作により必要なパラメータ設定が可能になり、しかも演算負担を軽減させることが可能になる。
【0073】
<<< §3.本発明におけるパラメータ設定法 >>>
本発明の変換演算式に基づく演算を行うためには、図12の各式に示されているとおり、平面傾斜角φ、交点Gの座標値(x0,y0,z0)、歪曲円形画像Sの半径R、変換倍率mをパラメータとして設定する必要がある。別言すれば、これらのパラメータの値が既知であれば、式(11)および式(12)に所定の変数値u,vを与えることにより、関数値x,yを算出することができるので、UV座標系上の任意の1点T(u,v)に対応するXY座標系上の対応点S(x,y)を特定することができ、歪曲円形画像Sを平面正則画像Tに変換する処理が可能になる。
【0074】
ここで、上記パラメータφ,x0,y0,z0,R,mのうち、z0の値は交点を求める幾何学的な演算によって自動的に求めることができるので、ユーザが入力する必要はない。また、半径Rは、撮影に用いた魚眼レンズに固有の数値であるから、予め当該固有値を用いた演算を行うようにしておけば、ユーザが入力する必要はない。もちろん、半径Rの値が異なる複数種類の魚眼レンズで撮影した歪曲円形画像に適宜対応できるようにしておくのであれば、用いた魚眼レンズに応じて、それぞれ異なるRの値をユーザに入力させればよい。その場合でも、単なる数値を入力するだけの操作であるから、ユーザの操作負担は軽微なものである。
【0075】
そこで、ここでは、残りのパラメータφ,x0,y0,mを、ユーザに効率的に設定させるユニークな実施例を述べることにする。この実施例は、ユーザと画像変換装置との間の理想的なマンマシンインターフェイスを提案するものである。
【0076】
ここで述べるパラメータ設定法の特徴は、図13に示すように、XY座標系上に定義されている歪曲円形画像Sをユーザに提示し、この画像上で2点P,Qを指定させる点にある。この方法では、この2点P(x0,y0),Q(x1,y1)の位置情報に基づいて、パラメータφ,x0,y0,mの値を設定することができる。具体的には、点P(x0,y0)の座標値(x0,y0)は、そのままパラメータx0,y0の値として用いられる。また、2点P,Q間の距離dの値は、変換倍率mを決定するために利用される。すなわち、変換倍率mは、所定の比例定数kを用いて、m=k/dなる値により決定される。2点P,Q間の距離dは、点Pの座標値(x0,y0)と点Qの座標値(x1,y1)とを用いて、d=√((x0−x1)2+(y0−y1)2)なる演算によって算出できる。更に、2点P,Qを結ぶ直線を参照直線Jとし、この参照直線JとX軸とのなす角θを求めれば(但し、両者平行の場合はθ=0°とする)、この角度θに基づいて、平面傾斜角φを決定することができる(具体的な方法は後述する)。
【0077】
このようにして、ユーザが、ディスプレイの画面に表示されている歪曲円形画像Sを見ながら、当該画像上で、2点P,Qをマウスクリックなどの方法で指定する操作を行うと、4つのパラメータφ,x0,y0,mが決定されることになる。ここで、2点P,Qのもつ意味を考えてみよう。まず点Pは、これまで述べてきた切出中心点P(x0,y0)に他ならない。図10に示す例のように、ユーザが指定した切出中心点P(x0,y0)の近傍の切出領域E内の歪曲画像が、平面正則画像に変換されることになる。したがって、ユーザは、歪曲円形画像Sの「ここを中心とした部分」を正則画像に変換したい、という要求を、切出中心点P(x0,y0)の位置として入力する操作を行えばよい。
【0078】
一方、点Qは、「切り出し向き」と「変換倍率」とを指定するための点であり、ここでは補助点Qと呼ぶことにする。「切り出し向き」は、切出中心点Pと補助点Qとの位置関係に基づいて決定される。別言すれば、2点P,Qを結ぶ参照直線Jが、「切り出し向き」を示すことになる。後述するように、平面傾斜角φは、参照直線JとX軸とのなす角θに基づいて決定されるので、結局、図13に示す参照直線Jの向きは、図5に示すU軸の向きを左右するパラメータということになる。図13に示されているXY平面上で参照直線Jが時計回りに回転すれば、図5に示されている接平面上でU軸も時計回りに回転することになり、図10に示されている切出領域Eも時計回りに回転することになる。したがって、ユーザは、切出中心点P(x0,y0)の位置を指定する入力を行った後、この切出中心点P(x0,y0)に対して所望の相対位置に補助点Q(x1,y1)を指定する入力操作を行うことにより、歪曲円形画像Sの「こっち方向を横向きにとった」正則画像を得たい、という要求を伝えることができる。
【0079】
「変換倍率」は、上述したとおり、2点P,Q間の距離dを用い、m=k/dなる式で決定される。通常、平面正則画像Tをディスプレイの画面に表示する場合、その表示領域の寸法は固定されている。このため、変換倍率mを大きく設定すればするほど、平面正則画像Tはディスプレイ上で拡大されて表示されることになるが、表示されている平面正則画像Tに対応する切出領域Eの面積は小さくなる。したがって、比例定数kの値を、ディスプレイの表示画面の大きさ(ここで示す例の場合、U軸方向に対応する画面の画素数)を考慮した適当な値に設定しておけば、補助点Qの位置を、ほぼ切出領域Eの境界を示すパラメータとして利用することが可能である。
【0080】
このような方法で各パラメータ値の設定を行えば、たとえば、図13に示す歪曲円形画像Sの切出中心点P(x0,y0)の位置は、図9に示す平面正則画像Tの原点T(0,0)に対応し、図13に示す参照直線Jの向きは、図9に示すU軸の向きに対応し、図13に示す補助点Q(x1,y1)の位置は、図9に示す境界点Bに対応することになる。別言すれば、ユーザは、図9に示すような所望の平面正則画像Tを頭の中で想定しながら、原点T(0,0)の位置に表示すべき部分を、歪曲円形画像S上において切出中心点P(x0,y0)として指定し、境界点Bの位置に表示すべき部分を、歪曲円形画像S上において補助点Q(x1,y1)として指定すればよいので、所望の平面正則画像Tを念頭に入れた極めて直観的な指示入力操作を行うことが可能になる。
【0081】
図14は、具体的な歪曲円形画像上で2点P,Qを指定することにより、切出中心点P、切り出し向きを示す角度θ、変換倍率mの3つのパラメータを設定する例を示す平面図である。ここでは、図示のとおり、歪曲円形画像の一部分に歪んだ顔の画像が表示されており、ユーザが、この顔を囲む切出領域Eの部分について、平面正則画像Tを得たいと要望した場合を考えてみよう。この場合、ユーザは、まず、顔の中心付近に切出中心点P(x0,y0)を指定し、続いて、頭頂部付近に補助点Q(x1,y1)を指定する入力操作を行えばよい。すると、図示のような参照直線Jが定義され、X軸とのなす角θが認識され、このθに基づいて平面傾斜角φが決定され、UV座標系の位置と向き(U軸の向き)が決定される。
【0082】
図15は、このようなパラメータ設定に基づいて得られる平面正則画像Tを示す平面図である。図15に示す点P,Qは、図14に示す切出中心点P(x0,y0)および補助点Q(x1,y1)に対応する点である。平面正則画像T上に表示されている顔が横向きになっているのは、図14において、補助点Q(x1,y1)の位置を顔の頭頂部付近に指定したためである。すなわち、図14に示す2点P,Qを結ぶ参照直線Jの方向が、平面正則画像TにおけるU軸方向となるような画像変換が行われたためである。
【0083】
平面正則画像T上に正立状態の顔を得たい場合、ユーザは、図14において、まず、顔の中心付近に切出中心点P(x0,y0)を指定し、続いて、顔の右側離隔位置に補助点Q′(x2,y2)を指定する入力操作を行えばよい。すると、図示のような参照直線J′が定義され、X軸とのなす角θ′が認識され、このθ′に基づいて平面傾斜角φが決定され、UV座標系の位置と向き(U軸の向き)が決定される。
【0084】
図16は、このようなパラメータ設定に基づいて得られる平面正則画像Tを示す平面図である。図16に示す点P,Q′は、図14に示す切出中心点P(x0,y0)および補助点Q′(x2,y2)に対応する点である。平面正則画像T上に表示されている顔が正立像になっているのは、図14において、補助点Q′(x2,y2)の位置を顔の右側離隔位置に指定したためである。すなわち、図14に示す2点P,Q′を結ぶ参照直線J′の方向が、平面正則画像TにおけるU軸方向となるような画像変換が行われたためである。
【0085】
図15に示す画像も図16に示す画像も、同一のディスプレイに表示された画像であり、いずれも横方向の寸法がa(水平方向の画素数がa個)、縦方向の寸法がb(垂直方向の画素数がb個)である。ただ、両画像では、変換倍率mの値が異なっており、図15に示す画像の方が、図16に示す画像よりも拡大されている。これは、図14において、2点P,Q間距離よりも、2点P,Q′間距離の方が大きくなるように補助点の位置指定がなされたためである。図14において、補助点Q(x1,y1)を指定した場合の切出領域Eは図示のとおりであるが、補助点Q′(x2,y2)を指定した場合の切出領域E′(図示省略)は、切出領域Eよりも広い領域になる。このため、切出領域Eについての正則画像を表示した図15に示す例に比べて、切出領域E′についての正則画像を表示した図16に示す例の場合、画像の拡大倍率は低くなる。
【0086】
このように、変換倍率mを、2点P,Q間距離dを用いて、m=k/dなる式で定め、比例定数kを適当な値に設定してやれば、補助点Qの位置を平面正則画像Tの境界を定めるパラメータとして利用することができるので、ユーザに直観的な入力操作を提供する上では好都合である。ユーザは、図9に示すような所望の平面正則画像Tにおける原点T(0,0)および境界点Bの位置に対応する点として、歪曲円形画像S上において切出中心点P(x0,y0)および補助点Q(x1,y1)の位置を指定する入力操作を行うことにより、所望の切出領域Eに対応した平面正則画像Tを得ることが可能になる。
【0087】
最後に、切り出し向きを示す角度θ(図13に示す参照直線JとX軸とのなす角であり、両者平行の場合はθ=0°とする)に基づいて、平面傾斜角φを決定する具体的な方法を述べる。図17は、この角度θと平面傾斜角φとの関係を示す斜視図である。角度θは、XY平面上に位置する参照直線JとX軸とのなす角であるのに対して、平面傾斜角φは、UV平面上のU軸方向を向いたベクトルUとXY平面上のX軸方向を向いたベクトルXとのなす角として定義される角度である。図17には、接平面S2上のU軸を傾斜面S1上まで平行移動したU′軸(ベクトルU′)を考え、U′軸とX軸とのなす角度として、平面傾斜角φを示している。
【0088】
このように、参照直線JがXY平面上の直線であるのに対して、U′軸は傾斜面S1上の軸であるので、天頂角β=0の場合にはθ=φが成り立つが、β>0の場合には両者は等しくならない。角度θに基づいて、平面傾斜角φの正確な値を決定するためには、図18に示すように、方位角αおよび天頂角βをパラメータとして用いた演算式
φ=f(θ) 式(21)
を用いた演算を行う必要がある(関数fは、図6や図17に示す幾何学的配置に基いて一義的に決定されることになるが、三角関数を用いた複雑な式で示される。)。
【0089】
ただ、実用上は、切り出し向きを示す角度θを、近似的に平面傾斜角φとして用いても、大きな支障は生じない。これは、本発明で用いる平面傾斜角φは、図4に示すように、U軸とX′軸とのなす角として定義された角であり、X軸を基準として定義された角になっているためである。もちろん、角度θの値を近似的に平面傾斜角φの値として用いると、ユーザが意図したU軸の方向(参照直線Jによって示される切り出し方向)と、実際に定義されるUV座標系のU軸の方向との間に若干のずれが生じることになる。このため、実際に得られる平面正則画像Tは、ユーザが意図した切出領域E内の画像と若干相違する。しかしながら、このような相違は、単に、画像のトリミング枠の相違にすぎない。しかも、ユーザが指定した参照直線Jの方向(すなわち、補助点Qの位置)は、通常、ユーザが希望する大まかな切り出し方向を示す指標にすぎないので、実際の切り出し方向が多少ずれていたとしても、実用上は、ユーザに違和感を与えることはない。このような理由から、本発明の一般的な実施形態では、切り出し向きを示す角度θを、そのまま平面傾斜角φの値として近似させて問題はない。
【0090】
<<< §4.画像変換装置の基本構成 >>>
ここでは、図19のブロック図を参照しながら、本発明の基本的な実施形態に係る画像変換装置の基本構成を説明する。図19において、一点鎖線で囲った部分が、本発明に係る画像変換装置100である。この装置は、魚眼レンズを用いた撮影により得られた歪曲円形画像Sの一部分を切り出して、平面正則画像Tに変換する処理を行う機能を有しており、図19には、魚眼レンズを用いたカメラ10によって撮影された歪曲円形画像Sが、デジタルデータとして、この画像変換装置100内に取り込まれている。
【0091】
歪曲円形画像格納部110は、このような歪曲円形画像Sを格納するための構成要素であり、メモリやハードディスク装置などの記憶装置によって構成される。ここで、歪曲円形画像Sは、たとえば、図2に例示するように、二次元XY直交座標系上の座標(x,y)で示される位置に配置された多数の画素の集合体によって構成され、XY座標系の原点Oを中心とし半径Rをもった円形の画像になる。
【0092】
一方、平面正則画像格納部120は、変換処理後の平面正則画像Tをデジタルデータとして格納するための構成要素であり、やはりメモリやハードディスク装置などの記憶装置によって構成される。ここで、平面正則画像Tは、たとえば、図15や図16に例示するように、二次元UV直交座標系上の座標(u,v)で示される位置に配置された多数の画素の集合体によって構成される画像になる。この平面正則画像格納部120内の平面正則画像Tを変換画像デジタルデータとして出力すれば、ディスプレイの画面上に図15や図16に例示するような平面正則画像Tを表示させることができる。
【0093】
変換演算部130は、図12に示す本発明の変換演算式を利用して、座標(u,v)と座標(x,y)とを対応づけ、座標(u,v)で示される位置に配置された平面正則画像T上の画素の画素値を、対応する座標(x,y)で示される位置に配置された歪曲円形画像S上の参照画素の画素値に基づいて決定する機能を有し、歪曲円形画像格納部110内に格納されている歪曲円形画像Sに基づいて、平面正則画像Tを作成する演算を行い、生成された平面正則画像Tを平面正則画像格納部120に格納する。§2で述べたとおり、本発明の変換演算式に基づく演算を行うには、いくつかのパラメータを設定する必要がある。以下の各構成要素は、このパラメータ設定を行うためのものである。
【0094】
歪曲円形画像表示部140は、歪曲円形画像格納部110に格納されている歪曲円形画像Sをディスプレイに表示する構成要素であり、図2に示すような画像がディスプレイの画面上に表示される。
【0095】
指示入力部150は、ディスプレイに表示されている歪曲円形画像S上において、図13に示すように、切出中心点Pと補助点Qとの2点の位置を指定するための指示を入力する。具体的には、指示入力部150は、マウスなどのポインティングデバイスと、これを制御するための制御装置によって構成され、ユーザが、マウスなどを用いてディスプレイ画面上でポインタを移動させられるようにし、マウスクリックなどの操作が行われた時点のポインタの位置座標を読み込む機能を有している。
【0096】
たとえば、ユーザが第1回目にクリックしたときのポインタの位置を切出中心点Pの位置として取り込み、第2回目にクリックしたときのポインタの位置を補助点Qの位置として取り込むようにしておけば、ユーザは続けて2回のクリック操作を行うことにより、切出中心点Pおよび補助点Qの位置を指示する入力を行うことができる。あるいは、「ドラッグアンドドロップ」操作で両点を指定させることもできる。この場合、ユーザがマウスボタンを押し込んだ時点でのポインタの位置を切出中心点Pの位置として取り込み、ユーザがマウスボタンを押した状態のままポインタを移動させ、マウスボタンを放した時点でのポインタの位置を補助点Qの位置として取り込むようにすればよい。
【0097】
要するに、指示入力部150は、歪曲円形画像表示部140によって表示されている歪曲円形画像S上における、切出中心点Pおよび補助点Qの位置を指定するユーザからの何らかの指示入力に基づいて、その座標値P(x0,y0)およびQ(x1,y1)を取り込む機能をもっていれば、具体的にどのような装置を用いて構成してもかまわない。
【0098】
指示入力部150が入力した2点P,Qの位置は、既に§3で説明したとおり、切出中心点Pの位置、切り出し向きを示す角度θ、変換倍率mという3つのパラメータを設定するために利用される。まず、切出中心点Pの位置としては、点Pの座標値(x0,y0)そのものが用いられる。また、角度θの値は、2点P,Qを結ぶ参照直線JとX軸とのなす角度として決定される。実際には、座標値P(x0,y0)およびQ(x1,y1)を用いた幾何学的な演算により、角度θの値を算出することができる。そして、変換倍率mは、2点P,Q間の距離dを、d=√((x0−x1)2+(y0−y1)2)なる演算で求めた後、予め設定された比例定数を用いて、m=k/dなる演算を行うことにより算出することができる。
【0099】
なお、変換倍率mを固定値にする場合には、当該固定値を変換演算部130内に予め設定しておけばよいので、指示入力部150においてmの値を決定する必要はない。この場合、変換倍率mは、ユーザが指定可能なパラメータにはならないので、ユーザが行う補助点Qの位置指定操作は、切り出し向きを示す角度θ(すなわち、参照直線Jの向き)を指定する意味だけをもち、2点P,Q間の距離dは何ら意味をもたないことになる。別言すれば、この場合、指示入力部150は、切出中心点Pの位置および切り出し向きをユーザの指示に基づいて入力する機能のみを有し、変換倍率mを入力する機能はもたないことになる。
【0100】
ただ、実用上は、変換倍率mを固定するよりも、ユーザの要望に応じて可変とし、変換倍率mに基づいてスケーリングされた平面正則画像Tが得られるようにした方が使い勝手は向上する。したがって、実際には、前述したように、指示入力部150に、ユーザの指示に基づいて変換倍率mを入力する機能をもたせ、変換演算部130が、指示入力部150によって入力された変換倍率mを用いた演算を行うようにするのが好ましい。
【0101】
さて、交点演算部160は、指示入力部150によって入力された切出中心点Pの位置(x0,y0)に基づいて、点Gの位置座標(x0,y0,z0)を求める処理を行う。ここで、点Gは、図4に示すとおり、三次元XYZ直交座標系において、原点Oを中心とし半径Rをもった仮想球面Hを定義したときに、切出中心点Pを通りZ軸に平行な直線と仮想球面Hとの交点として与えられる点である。実際には、点Pの座標値x0,y0と点Gの座標値x0,y0とは同一の値であるから、交点演算部160が行うべき演算処理は、点Gの座標値z0を求めるための幾何学演算のみである。
【0102】
一方、角度決定部170は、図4に示すとおり、交点G(x0,y0,z0)において仮想球面Hに接する接平面上に定義すべき二次元UV直交座標系のU軸方向を向いたベクトルUと、二次元XY直交座標系のX軸方向を向いたベクトルXと、のなす角として与えられる平面傾斜角φを、指示入力部150が入力した切り出し向き(すなわち、角度θ)に基づいて決定する処理を行う。角度θと角度φとの関係は、図18に示す式によって定義されるので、角度決定部170は、この式に基づいて、平面傾斜角φを算出すればよい。もっとも、実用上は、§3で述べたとおり、切り出し向きを示す角度θを、そのまま平面傾斜角φの値として近似させても問題はない。その場合、角度決定部170は、参照直線JとX軸とのなす角θを、そのまま平面傾斜角φとして変換演算部130へ与える処理を行えばよい。
【0103】
さて、§2で述べたとおり、図12に示す本発明の変換演算式は、位置座標(x0,y0,z0)および平面傾斜角φをパラメータとして含む正射影方式の変換演算式であり、変換演算部130が、この変換演算式を利用して、座標(u,v)に対応する座標(x,y)を求めるためには、6つのパラメータφ,x0,y0,z0,R,mを決定しておく必要がある。ここで、パラメータφは、角度決定部170から与えられ、パラメータx0,y0,z0は、交点演算部160から与えられ、パラメータmは、指示入力部150から与えられる。そして、パラメータRは、歪曲円形画像格納部110に格納されている歪曲円形画像Sの半径値として既知である。
【0104】
結局、変換演算部130には、上記6つのパラメータφ,x0,y0,z0,R,mがすべて用意されることになる。こうして、変換演算部130は、座標(u,v)で示される位置に配置された平面正則画像T上の画素の画素値を、対応する座標(x,y)で示される位置に配置された歪曲円形画像S上の参照画素の画素値に基づいて決定することにより、歪曲円形画像Sから切出中心点Pを中心として平面傾斜角φによって示される向きに切り出された部分画像についての平面正則画像Tを生成する演算処理を実行することができる。
【0105】
なお、歪曲円形画像Sは、二次元XY直交座標系上の座標(x,y)で示される位置に配置された多数の画素の集合体によって構成された画像であり、実際には、所定ピッチで縦横に配列された多数の格子点の位置に、それぞれ固有の画素値を定義したデジタルデータによって構成されている。このため、変換演算部130による演算結果として得られた対応座標(x,y)の位置は、通常、複数の格子点の間の位置になる。たとえば、歪曲円形画像Sが、ピッチ1で縦横に配列された多数の格子点位置の画素値を定義したデジタルデータによって構成されている場合、いずれの格子点も、その座標値は整数値になる。よって、変換演算部130による演算結果として得られた対応座標xおよびyの値が小数を含む値であると(多くの場合はそうなるであろう)、対応座標(x,y)の位置は、複数の格子点の間の位置になり、対応する画素値を1つに決めることはできない。
【0106】
したがって、実際には、変換演算部130が、座標(u,v)で示される位置に配置された平面正則画像T上の画素の画素値を決定する際には、対応する座標(x,y)で示される位置の近傍に配置された歪曲円形画像S上の複数の参照画素の画素値に対する補間演算を行う必要がある。このような補間演算を行う方法としては、たとえば、バイリニア補間法、バイキュービック・スプライン補間法など、様々な方法が公知であるため、ここでは詳しい説明は省略する。なお、魚眼レンズを用いたカメラ10として、単板撮像素子を内蔵したカメラを用いた場合、高精度な補間を行うためには、歪曲円形画像Sとして、いわゆるRAWモードと呼ばれる画像データを用いるのが極めて好ましい。また、魚眼レンズによっては、色収差が目立つ製品もあるので、必要に応じて、用いた魚眼レンズの色収差を測定しておき、変換演算部130による演算時に、色収差を補正する演算を行うことも可能である。
【0107】
本発明に係る画像変換装置は、特に、監視カメラ、会議室用カメラ、車載用カメラ、管内プローブ用カメラなどに魚眼レンズを組み込んで用いるシステムへの利用に最適である。このようなシステムでは、動画をリアルタイムで取り扱う必要があり、ユーザが任意に指定した切出領域内の画像を、即座に平面正則画像に変換して表示させる必要がある。本発明に係る画像変換装置では、演算負担が大幅に軽減されるため、平面正則画像へのリアルタイムでの変換処理が可能になる。
【0108】
以上、本発明の基本的な実施形態に係る画像変換装置の基本構成を、図19のブロック図を参照しながら説明したが、この画像変換装置は、汎用のコンピュータに、専用のプログラムを組み込むことによって構成することが可能である。その場合、歪曲円形画像格納部110や平面正則画像格納部120は、当該コンピュータ用の記憶装置によって構成し、歪曲円形画像表示部140や指示入力部150は、当該コンピュータ用のディスプレイやマウスおよびこれらを制御するハードウエアやソフトウエアによって構成すればよい。また、変換演算部130,交点演算部160,角度決定部170は、専用のプログラムに基づくコンピュータの演算機能によって実現されることになる。
【0109】
もちろん、この画像変換装置は、様々な演算器やレジスタなどを組み合わせた専用のハードウエア論理回路により構成することも可能である。具体的には、少なくとも変換演算部130として機能する部分を電子回路によって構成し、当該電子回路を組み込んだ半導体集積回路を設計すればよい。このようなハードウエア論理回路により変換演算部130を構成する上で有効な様々な工夫は、§6において述べることにする。
【0110】
また、図19に示す画像変換装置100と、魚眼レンズを用いたカメラ10と、図示されていないモニタ装置と、を用意し、カメラ10を用いた撮影により得られた歪曲円形画像Sが歪曲円形画像格納部110へと格納され、平面正則画像格納部120に得られた平面正則画像Tがモニタ装置によって表示されるようにすれば、魚眼監視システムを実現することが可能になる。カメラ10として、デジタルビデオカメラを用いるようにすれば、リアルタイムで撮影した歪曲円形画像に基づいて、任意の一部分の平面正則画像をリアルタイムでモニタ装置の画面上に得ることが可能である。
【0111】
<<< §5.非正射影画像への適用 >>>
さて、本発明の最も重要な特徴は、§2で述べたとおり、座標変換の演算に、図12に示す変換演算式を用いる点であるが、この変換演算式は、正射影方式の変換演算式であり、撮影に用いた魚眼レンズの射影方式が正射影方式であることを前提とした式である。ところが、実際に市販されている魚眼レンズは、必ずしも正射影方式のレンズとは限らない。実際、魚眼レンズの投影方式としては、等距離射影方式、立体射影方式、等立体角射影方式など、様々な方式が知られており、用途に応じて、これら様々な射影方式をとる魚眼レンズが利用されている。ここでは、このような非正射影方式の魚眼レンズによって撮影された非正射影画像に対して本発明を適用する方法を説明する。
【0112】
正射影方式の魚眼レンズの光学的特性は、既に述べたとおり、図1に示すようなモデルによって説明することができる。すなわち、仮想球面H上の任意の入射点H(x,y,z)に対して、その法線方向から入射する入射光線L1は、Z軸に平行な方向に進む入射光線L2として、XY平面上の点S(x,y)へ到達する、という特性である。図20は、この正射影方式の魚眼レンズにおける入射光の投影状態を示す正面図である。図示のとおり、天頂角βをもった仮想球面H上の入射点H(x,y,z)に対して、その法線方向から入射した入射光線L1は、Z軸に平行な方向に進む入射光線L2として、XY平面上の点S(x,y)へ到達している。
【0113】
ここで、入射点H(x,y,z)の天頂角βと、当該入射点H(x,y,z)を経た入射光線L2がXY平面上で到達する到達点S(x,y)の原点Oからの距離rと、の関係は、正射影方式の魚眼レンズを用いた撮影によって形成される正射影画像の場合、r=f・sinβなる式で表される。ここで、fは、魚眼レンズに固有の定数である。これに対して、たとえば、等距離射影方式の魚眼レンズを用いた撮影によって形成される等距離射影画像の場合、両者の関係は、r=f・βなる式で表されることになる。
【0114】
図21は、正射影方式の魚眼レンズを用いて形成される正射影画像と、等距離射影方式の魚眼レンズを用いて形成される等距離射影画像と、の関係を示す斜視図である。図に同心円状に示す線は、同一の天頂角βをもつ入射点を経た入射光線についてのXY平面上での到達点の集合を示している。図21(a) に示す正射影画像の場合、r=f・sinβなる式が成り立つため、隣接する同心円状の線の配置間隔は、中心から周囲に向かうほど小さくなってゆく。これに対して、図21(b) に示す等距離射影画像の場合、r=f・βなる式が成り立つため、同心円状の線は、中心から周囲に向かって等間隔に配置される。
【0115】
このように、正射影画像と等距離射影画像とは、いずれも歪曲円形画像という点では共通するものの、その歪みの状態が両者では異なっているため、当然ながら、平面正則画像に変換するために用いる変換演算式も異なったものになる。したがって、正射影画像を平面正則画像に変換する場合には、図12に示す変換演算式を用いることができるが、等距離射影画像などの非正射影画像を平面正則画像に変換する場合には、それぞれについての専用の変換演算式を用いる必要がある。
【0116】
しかしながら、正射影方式の魚眼レンズの光学的特性は、図20に示すような仮想球面Hを用いたモデルとして取り扱うことができるため、図12に示すような変換演算式を定義することができるが、非正射影方式の魚眼レンズの光学的特性は、このような仮想球面Hを用いたモデルとして取り扱うことはできない。このため、仮に、何らかの変換演算式が定義できたとしても、その式の形態は極めて複雑なものになると予想される。
【0117】
そこで本願発明者は、非正射影画像を直接的に平面正則画像に変換する変換演算式を用いる代わりに、非正射影画像を、一旦、正射影画像に変換し、図12に示す正射影方式の変換演算式を用いて、座標(u,v)に対応する座標(x,y)を求める方法の着想に至った。以下、非正射影画像として、等距離射影画像を用いた場合を例にとって、この方法を説明する。
【0118】
図21に示すように、正射影画像上の任意の1点と、等距離射影画像上の特定の1点とは、相互に1対1の対応関係を定義することができる(図の破線は、この対応関係を示している)。具体的には、等距離射影画像上の任意の1点の座標を(x′,y′)とし、これに対応する正射影画像上の特定の1点の座標を(x,y)とすれば、両者間には、図22の上段に示すように、
x=sinc(π/2・√(x′2+y′2))×π/2・x′ 式(31)
y=sinc(π/2・√(x′2+y′2))×π/2・y′ 式(32)
なる式が成り立つ。逆に、正射影画像上の任意の1点の座標を(x,y)とし、これに対応する等距離射影画像上の特定の1点の座標を(x′,y′)とすれば、両者間には、図22の下段に示すように、
x′=2/π・x/sinc(π/2・√(x2+y2)) 式(33)
y′=2/π・y/sinc(π/2・√(x2+y2)) 式(34)
が成り立つ。
【0119】
これら式(31)〜(34)において、変数をtとしたときの関数sinc(t)は、シンク関数(カージナルサイン)と呼ばれる関数であり、sinc(t)=sin(t)/tとして定義される。但し、t=0の場合の関数値は、sinc(0)=1と定義される。結局、上記式(31),(32)は、等距離射影画像上の座標(x′,y′)を正射影画像上の座標(x,y)に変換する式(以下、第1の座標変換式と言う)であり、上記式(33),(34)は、正射影画像上の座標(x,y)を等距離射影画像上の座標(x′,y′)に変換する式(以下、第2の座標変換式と言う)ということになる。
【0120】
そこで、図19に示す歪曲円形画像格納部110に格納されている画像が、等距離射影方式の魚眼レンズによって撮影された等距離射影画像である場合には、歪曲円形画像表示部140によって、ディスプレイ上にこの等距離射影画像をそのまま表示させるようにし、指示入力部150によって、この等距離射影画像上で、2点P,Qの指定入力を行うようにする。続いて、交点演算部160では、切出中心点Pの座標(x0′,y0′)を第1の座標変換式(式(31)および(32))を用いて座標(x0,y0)に変換し、この変換後の座標を用いて交点Gの位置座標(x0,y0,z0)を求める処理を行うようにする。そして、変換演算部130では、これまで述べてきた実施形態と全く同様に、図12に示す正射影方式の変換演算式を用いて座標(u,v)に対応する座標(x,y)を求める処理を行う。但し、求めた座標(x,y)をそのまま用いて参照画素の位置を決定する代わりに、当該座標(x,y)を第2の座標変換式(式(33)および(34))を用いて座標(x′,y′)に変換し、この変換後の座標を用いて、歪曲円形画像格納部110に格納されている等距離射影画像上の参照画素の位置を特定するようにする。
【0121】
このような方法を採れば、歪曲円形画像格納部110に格納されている画像が、等距離射影方式の魚眼レンズによって撮影された等距離射影画像である場合にも、図12に示す正射影方式の変換演算式を用いた変換処理を適用することが可能になる。もちろん、この方法は、等距離射影画像への適用に限定されるものではなく、非正射影画像一般に広く適用することが可能である。
【0122】
すなわち、一般論として説明すれば、歪曲円形画像格納部110に格納されている画像が、正射影方式の魚眼レンズによって撮影された正射影画像ではなく、非正射影方式の魚眼レンズによって撮影された非正射影画像である場合には、非正射影画像上の座標を正射影画像上の座標に変換する第1の座標変換式と、正射影画像上の座標を非正射影画像上の座標に変換する第2の座標変換式と、を利用した処理を行う。まず、交点演算部160には、切出中心点Pの座標(x0′,y0′)を第1の座標変換式を用いて座標(x0,y0)に変換させる。そして、更に、変換後の座標を用いて交点の位置座標(x0,y0,z0)を求める処理を実行させる。一方、変換演算部130には、図12に示す正射影方式の変換演算式を用いて座標(u,v)に対応する座標(x,y)を求めた後、この座標(x,y)を第2の座標変換式を用いて座標(x′,y′)に変換し、変換後の座標を用いて歪曲円形画像格納部110に格納されている非正射影画像上の参照画素の位置を特定させればよい。
【0123】
<<< §6.演算負担を更に軽減する工夫 >>>
§2で述べたとおり、図11に示す従来の変換演算式に代えて、図12に示す本発明の変換演算式を用いると、三角関数の演算負担を大幅に軽減させることができるが、ここでは、この演算負担を更に軽減する工夫をいくつか述べておく。ここに述べる演算手法の工夫は、特に、様々な演算器やレジスタなどを組み合わせた専用のハードウエア論理回路により変換演算部130を構成する場合に、回路構成を単純にする上で効果的である。
【0124】
<6−1:式(11),(12)の分母演算に関する工夫>
図12の式(11),(12)には、三角関数演算は含まれていないが、分母には、3組の2乗演算項と開平演算項とが含まれている。これらの演算負担をできるだけ軽減させるためには、分母の式の形を若干変更すればよい。
【0125】
すなわち、式(11),(12)の分母の部分のみを抜き出すと、
1/√((u−x0)2+(v−y0)2+(w−z0)2)
なる形の式になるが、ここで、
a=u−x0,b=v−y0,c=w−z0
とおくと、上記式は、次のような形になる。
1/√(a2+b2+c2)
この式に対して、図23の上段に示すような変形を行うと、
1/c・1/√((a/c)2+(b/c)2+1) 式(41)
が得られる。変形前の式には、a2,b2,c2という3組の2乗演算項が含まれていたが、変形後の式(41)では、2乗演算項は(a/c)2,(b/c)2の2組に減っている。ここで、
(a/c)2+(b/c)2+1=ξ
とおくと、図23の下段に示すような式(42)が得られる。
1/√(a2+b2+c2)=1/c・1/√ξ 式(42)
一般に、逆数演算「1/c」や逆開平数演算「1/√ξ」は、比較的負担が大きな演算処理である。このような演算負担を軽減する上で非常に効果的な方法は、関数テーブルを用いる方法である。すなわち、予め「関数f(c)=1/c」の値を様々な変数cの値について対応づけた第1の関数テーブルT1と、「関数f(ξ)=1/√ξ」の値を様々な変数ξの値について対応づけた第2の関数テーブルT2と、を用意しておき、これら関数テーブルを参照することにより、実際には演算を行うことなしに関数値を求めるようにすればよい。
【0126】
図24は、このような関数テーブルT1,T2の構成を示す図である。図24(a) に示す関数テーブルT1には、cがとるであろうと予想される範囲について、所定の精度で、個々のcの値に対応するf(c)の値(1/cの値)が掲載されている。同様に、図24(b) に示す関数テーブルT2には、ξがとるであろうと予想される範囲について、所定の精度で、個々のξの値に対応するf(ξ)の値(1/√ξの値)が掲載されている。
【0127】
変換演算部130内に、このような関数テーブルT1,T2を用意しておけば、cおよびξの値に基づいて、実際の演算を行うことなしに、1/cの値および1/√ξの値を得ることができる。結局、図12の式(11),(12)の分母部分
1/√((u−x0)2+(v−y0)2+(w−z0)2)
の演算を行うには、
a=u−x0,b=v−y0,c=w−z0
なる演算によって、a,b,cを求めた後、
ξ=(a/c)2+(b/c)2+1
なる演算を行うことによりξの値を求め、図24に示す第1の関数テーブルT1および第2の関数テーブルT2を参照することにより、求めたc,ξの値に対応する関数f(c)=1/c,f(ξ)=1/√ξの値を求め、
√((u−x0)2+(v−y0)2+(w−z0)2)
=f(c)×f(ξ)
なる演算を行えばよい。
【0128】
平面正則画像Tの大きさの上限を設定しておけば、座標値u,vの値は、たとえば、0≦u≦R、0≦v≦Rの範囲に制限することが可能であり、変換倍率mの値も、たとえば、0.1≦m≦10程度に制限することが可能である。このような制限を行えば、cの値やξの値を所定範囲内に抑えることができるので、図24に示す関数テーブルT1,T2に用意すべき変数c,ξの値も所定範囲内に抑えることができる。
【0129】
なお、必要に応じて、(a/c)2や(b/c)2という2乗演算項についても関数テーブルを用いて実際の演算を省略することも可能であるが、一般に、2乗演算は通常の乗算よりも演算器のハードウエア構成が単純になるので、実用上は、2乗演算項については、2乗演算器を用いて実際に演算を行うようにすれば十分である。
【0130】
<6−2:テーブルを用いた補間演算に関する工夫>
上述したように、関数テーブルを利用して実際の演算処理を省略する手法は、演算負担を軽減するための非常に効果的な方法である。しかしながら、関数テーブルを参照することにより得られる関数値の精度を高めるためには、テーブルに掲載する変数値および関数値に十分な有効桁数を確保する必要が生じ、テーブルのデータ容量がそれだけ増大するという弊害がある。このような弊害を避けるために、通常、補間演算の手法が利用される。
【0131】
図25は、図24に示すような関数テーブルを参照する場合の線形補間の方法を示す図である。ここでは、変数tに対応する関数値f(t)を求める場合を考える。図示のt軸は変数tを示す軸であり、理論的には、変数tはこのt軸上の任意の値をとることになる。しかしながら、関数テーブルに掲載する変数tの値は、所定の有効桁数に応じた間隔Wの離散値にせざるを得ない。図25には、間隔Wをもった離散値として、t軸上にA,B,Cなる値をプロットし、それぞれについて関数値f(A),f(B),f(C)を定義した例が示されている。この例の場合、関数テーブルに掲載される変数tの値は、A,B,Cといった離散値になり、関数値f(t)の値も、f(A),f(B),f(C)といった値になる。
【0132】
このように離散的な変数tについての関数値f(t)しか定義されていない関数テーブルを用いて、任意の変数tに対応する関数値f(t)を求めるためには、次のような線形補間を行えばよい。たとえば、変数tが、A<t<Bなる範囲内の値であった場合、関数値f(t)は、
f(t)=((W−δ)/W)×f(A)+(δ/W)×f(B)
式(43)
なる式に基づいて算出することができる。ここで、δ=(t−A)であり、離散的な変数Aに対する端数部分に相当する値である。
【0133】
ここでは、変換演算部130に、この式(43)に基づく補間演算を実行させるのに適したハードウエア構成の一例を、図26のブロック図を参照しながら説明する。図示のとおり、ここに示すハードウエアは、Tレジスタ21,偶数関数テーブル22,奇数関数テーブル23,偶数読出部24,奇数読出部25,偶奇セレクタ26,偶奇セレクタ27,Aレジスタ28,Bレジスタ29,補間演算部30,補間値レジスタ31によって構成されている。
【0134】
このハードウエア構成の重要な特徴は、本来は1つの関数テーブルに収容されるべき変数tおよび関数値f(t)のデータを、偶数関数テーブル22と奇数関数テーブル23とに分けて収容した点にある。ここで、偶数関数テーブル22は、所定の有効桁数に応じた間隔Wの離散値をとる変数tのうち、偶数変数tについて、所定の関数f(t)の値を対応づけたテーブルになっており、奇数関数テーブル23は、上記有効桁数に応じた間隔Wの離散値をとる変数tのうち、奇数変数tについて、所定の関数f(t)の値を対応づけたテーブルになっている。
【0135】
ここでは、説明の便宜上、4ビットの小数部分で示される「0.1000〜0.1111」の範囲をとる変数tについて、関数テーブルを用意した具体例について説明する。図示のとおり、偶数関数テーブル22には、偶数をとる変数tのみ、すなわち、「0.1000」,「0.1010」,「0.1100」,「0.1110」が収容されており、それぞれに対応する関数値f(t)が収容されている(図では、関数値は省略し、便宜上「********」なるデータで示している)。一方、奇数関数テーブル23には、奇数をとる変数tのみ、すなわち、「0.1001」,「0.1011」,「0.1101」,「0.1111」が収容されており、それぞれに対応する関数値f(t)が収容されている。
【0136】
このように、関数テーブル22,23には、4ビットの有効桁数をもった変数tの離散値が収容されているが、ここでは、演算対象となる任意の変数tとして、8ビットの有効桁数をもったデータが与えられた場合を考えてみる。Tレジスタ21は、このような8ビットの有効桁数をもった変数tを格納するためのレジスタである。すなわち、このTレジスタ21には、4ビットの有効桁数(関数テーブルにおける変数tの有効桁数)からなる上位ビットと、この有効桁数より下位の桁である4ビットを示す下位ビットと、によって構成される変数tが格納されることになる。図には、一例として、任意の変数tの上位ビットとして、「0.1010」なる有効桁数4ビットのデータと、下位ビットとして、任意のビット「****」が格納された状態が示されている。
【0137】
Tレジスタ21の上位ビットは、関数テーブル22,23の読み出し対象となる変数tを特定するために利用され、該当する変数tに対応して収容されている関数値f(t)の値が、偶数読出部24および奇数読出部25によって読み出される。
【0138】
具体的には、偶数読出部24は、Tレジスタ21の上位ビットが偶数である場合には、当該上位ビットで示される偶数変数tについて対応づけられている関数f(t)の値を偶数関数テーブル22から読み出し、Tレジスタ21の上位ビットが奇数である場合には、当該上位ビットで示される奇数変数tよりも大きい最小の偶数変数tについて対応づけられている関数f(t)の値を偶数関数テーブル22から読み出す処理を行う。たとえば、図示の例の場合、Tレジスタ21の上位ビット「0.1010」は偶数であるから、偶数読出部24は、当該上位ビット「0.1010」で示される偶数変数tについて対応づけられている関数f(t)の値を偶数関数テーブル22から読み出すことになる。もし、Tレジスタ21の上位ビットが「0.1011」(奇数変数)であった場合、当該上位ビット「0.1011」は偶数関数テーブル22には収容されていない。そこで、偶数読出部24は、当該奇数変数「0.1011」よりも大きい最小の偶数変数である「0.1100」について対応づけられている関数f(t)の値を偶数関数テーブル22から読み出すことになる。
【0139】
一方、奇数読出部25は、Tレジスタ21の上位ビットが奇数である場合には、当該上位ビットで示される奇数変数tについて対応づけられている関数f(t)の値を奇数関数テーブル23から読み出し、Tレジスタ21の上位ビットが偶数である場合には、当該上位ビットで示される偶数変数tよりも大きい最小の奇数変数tについて対応づけられている関数f(t)の値を奇数関数テーブル23から読み出す処理を行う。たとえば、図示の例の場合、Tレジスタ21の上位ビット「0.1010」は偶数であるから、当該上位ビット「0.1010」は奇数関数テーブル23には収容されていない。そこで、奇数読出部25は、当該偶数変数「0.1010」よりも大きい最小の奇数変数である「0.1011」について対応づけられている関数f(t)の値を奇数関数テーブル23から読み出すことになる。もし、Tレジスタ21の上位ビットが「0.1011」(奇数変数)であった場合、奇数読出部25は、当該上位ビット「0.1011」で示される偶数変数tについて対応づけられている関数f(t)の値を奇数関数テーブル23から読み出すことになる。
【0140】
このような方法で、各関数テーブル22,23から関数値f(t)を読み出すようにすると、読み出された2つの関数値は、互いに隣接する離散的な変数に対応する関数値となる。たとえば、図25に示すt軸上で隣接する2つの変数AおよびBに対応する関数値f(A),f(B)が読み出されることになる。しかも、Tレジスタに収容されている8ビットの精度をもった変数tは、A≦t<Bである。そこで、これら2つの関数値f(A),f(B)を、それぞれAレジスタ28およびBレジスタ29に格納し、補間演算部30において、
f(t)=((W−δ)/W)×f(A)+(δ/W)×f(B)
式(43)
に基づく演算を行えば、補間値f(t)を得ることができる。ここで、Wは、Tレジスタ21に格納されている変数tの上位ビットを構成する所定の有効桁数に基づいて定まる離散値の間隔であり、δは、Tレジスタ21に格納されている変数tの下位ビットで示される端数部分である。
【0141】
要するに、補間演算部30は、Aレジスタ28に格納されている値をf(A)とし、Bレジスタ29に格納されている値をf(B)とし、Tレジスタ21の下位ビットで示される値をδとして、式(43)に基づく演算を実行し、補間値f(t)を算出することになる。こうして算出された補間値f(t)は、補間値レジスタ31に格納される。変換演算部130は、この補間値レジスタ31に格納された補間値f(t)を用いて、必要な演算を行うことになる。
【0142】
ただ、式(43)に基づく演算を行うためには、変数A<変数Bとしたときの関数値f(A)をAレジスタ28に格納し、関数値f(B)をBレジスタ29に格納する必要がある。ところが、偶数読出部24が偶数関数テーブル22から読み出した関数値と、奇数読出部25が奇数関数テーブル23から読み出した関数値とのいずれを、関数値f(A)あるいは関数値f(B)とすべきかは、Tレジスタ21の上位ビットが偶数であるか奇数であるか、別言すれば、当該上位ビットのLSB(以下、偶奇ビットと呼ぶ)によって決まる。
【0143】
そこで、当該上位ビットが偶数である場合には(偶奇ビットが0の場合には)、偶数読出部24が読み出した関数f(t)の値をAレジスタ28に格納し、奇数読出部25が読み出した関数f(t)の値をBレジスタ29に格納すればよい。逆に、当該上位ビットが奇数である場合には(偶奇ビットが1の場合には)、奇数読出部25が読み出した関数f(t)の値をAレジスタ28に格納するとともに、偶数読出部24が読み出した関数f(t)の値をBレジスタに格納すればよい。
【0144】
そのために、偶奇セレクタ26は、偶数読出部24および奇数読出部25からそれぞれ読み出された関数f(t)に対して、Tレジスタ21から与えられる偶奇ビットに応じて取捨選択を行い、選択された一方をAレジスタ28に格納する処理を行う。すなわち、偶奇セレクタ26は、偶奇ビットが0の場合は偶数読出部24から読み出された関数f(t)を選択し、偶奇ビットが1の場合は奇数読出部25から読み出された関数f(t)を選択し、選択された関数f(t)をAレジスタ28に格納する。
【0145】
同様に、偶奇セレクタ27は、偶数読出部24および奇数読出部25からそれぞれ読み出された関数f(t)に対して、Tレジスタ21から与えられる偶奇ビットに応じて取捨選択を行い、選択された一方をBレジスタ29に格納する処理を行う。すなわち、偶奇セレクタ27は、偶奇ビットが0の場合は奇数読出部25から読み出された関数f(t)を選択し、偶奇ビットが1の場合は偶数読出部24から読み出された関数f(t)を選択し、選択された関数f(t)をBレジスタ29に格納する。
【0146】
<6−3:式(13)〜(18)の三角関数演算に関する工夫>
続いて、図12の式(13)〜(18)に含まれる三角関数演算の負担を軽減する工夫を述べる。これらの式には、cosφとsinφという三角関数が含まれている。このような三角関数の値を求める演算器のハードウエアはかなり複雑になるので、実用上は、できるだけ三角関数演算を避けるのが好ましい。
【0147】
§3で述べたとおり、切り出し向きを示す角度θ(ユーザが指定した2点P,Qの位置に基づいて定まる角度)と、変換演算式で用いられる平面傾斜角φとは、本来は異なるものであるが、実用上は、切り出し向きを示す角度θを、そのまま平面傾斜角φの値として近似させて用いても問題はない。このように、θ=φとする実施形態では、cosφ=cosθとなるので、次のような原理により、三角関数演算を行うことなしに、cosφの値を求めることができる。
【0148】
切り出し向きを示す角度θは、図13に示すように、ユーザがXY平面上で2点P,Qを指定することにより決定される角度である。そこで、図27に示すように、ユーザが点P(x0,y0)および点Q(x1,y1)の指定を行い、指示入力部150によって、座標値(x0,y0),(x1,y1)が取り込まれたものとしよう。
【0149】
図27に示すとおり、2点P,Qを結ぶ直線として参照直線Jが定められ、切り出し向きを示す角度θは、この参照直線JとX軸とのなす角度として定義される。そこで、図示のとおり、参照直線Jの方向を向いたベクトルJと、X軸方向を向いたベクトルXとを定義する。図示の例では、ベクトルJは、2点P,Qを両端点とするベクトルとなっているが、ベクトルの大きさは任意でかまわない。同様に、ベクトルXは、2点P,P′を両端点とするベクトルとなっている。点Pと点P′のY座標値は同じであるから、点P′の座標値はP(x2,y0)となる。また、図では、便宜上、両ベクトルJ,Xの始点を点P(x0,y0)の位置に揃えて示しているため、角度θは、点P(x0,y0)を頂点とした角になっている。
【0150】
さて、ここで、ベクトルJとベクトルXの内積は、図27に示すように、
(J→)・(X→)=cosθ・(絶対値J→)・(絶対値X→)
式(51)
で示される。なお、本明細書中では、電子出願の制約上、ベクトルJを(J→)という記号で標記し、その絶対値を(絶対値J→)と標記することにする(図27には、通常の方法で標記した式を掲載する)。この式をcosθについてとけば、
cosθ=(J→)・(X→)/((絶対値J→)・(絶対値X→))
式(52)
を得る。
【0151】
ここで、ベクトルXを単位ベクトルとすれば、
(絶対値X→)=1、 x2=x0+1 式(53)
である。また、
(絶対値J→)=√((x1−x0)2+(y1−y0)2)
式(54)
であるから、式(52)の分母の値は、式(53),(54)に基づいて算出できる。一方、式(52)の分子の値は、ベクトルJとベクトルXの内積として
(J→)・(X→)=x1・x2+y1・y0
式(55)
なる式で算出できる。
【0152】
結局、cosθの値は、ユーザが指定した2点P,Q(x1,y1)の座標値(x0,y0),(x1,y1)に基づく加減乗除算、2乗演算、開平演算によって求めることができるので、三角関数演算を避けることができる。要するに、変換演算部130は、参照直線Jの方向を向いたベクトルJを用いて、cosφの値を、ベクトルJとベクトルXとの内積を、ベクトルJの大きさとベクトルXの大きさとの積で除する演算によって求めることができる。
【0153】
なお、以上述べた取り扱いは、切り出し向きを示す角度θを、平面傾斜角φの値として近似させた場合の取り扱いであり、U軸の方向を向いたベクトルUの代わりに、参照直線Jの方向を向いたベクトルJを近似的に用いた取り扱いということになる。このような近似を行わない場合は、ベクトルUの向きを計算によって求めた上で、cosφの値を、ベクトルUとベクトルXとの内積を、ベクトルUの大きさとベクトルXの大きさとの積で除することにより求めるようにすればよい。
【0154】
こうして、cosφの値を求めることができれば、sinφの値は、
sinφ=√(1−cos2φ) 式(56)
なる演算によって求めることができるので、結局、図12の式(13)〜(18)に含まれる三角関数cosφおよびsinφの値は、三角関数演算を全く行うことなしに算出することができる。これは演算器のハードウエア構成を単純化する上で極めて効果的である。
<6−4:式(31)〜(34)の関数演算に関する工夫>
§5では、本発明を非正射影方式の魚眼レンズを用いて撮影された非正射影画像に適用する方法を説明した。この方法では、図22に示すように、
x=sinc(π/2・√(x′2+y′2))×π/2・x′ 式(31)
y=sinc(π/2・√(x′2+y′2))×π/2・y′ 式(32)
なる第1の座標変換式と、
x′=2/π・x/sinc(π/2・√(x2+y2)) 式(33)
y′=2/π・y/sinc(π/2・√(x2+y2)) 式(34)
なる第2の座標変換式とを用いた演算が必要になる。
【0155】
既に述べたとおり、上記各式において、変数をtとしたときの関数sinc(t)は、シンク関数(カージナルサイン)と呼ばれる関数であり、sinc(t)=sin(t)/tとして定義される。但し、t=0の場合の関数値は、sinc(0)=1と定義される。ここでは、この関数sinc(t)に関する演算項の演算負担を軽減させるための方法を述べる。
【0156】
いま、図28の上段に示すように、関数g(t),h(t)を次のように定義する。
g(t)=sinc(t)=sin(t)/t
但し、g(0)=sinc(0)=1 式(61)
h(t)=1/sinc(t)=t/sin(t)
但し、h(0)=1 式(62)
ここで、sin(t)をテイラー展開すると、図28の中段に示すように、
sin(t)=t−t3/3!+t5/5!−t7/7!+t9/9!− ....
式(63)
なる形式になるので、結局、
g(t)=1−t2/3!+t4/5!−t6/7!+t8/9!− ....
式(64)
なる形式の式が得られる。
【0157】
また、図28の下段に示すように、h(t)を、係数a2,a4,a6,a8, ....を用いて、
h(t)=1+a2t2+a4t4+a6t6+a8t8+ ....
式(65)
なる形式の式で表現することを考えると、h(t)=1/g(t)であるから、上掲の式(64)から、
h(t)=1/(1−t2/3!+t4/5!−t6/7!+t8/9!− ....)
式(66)
が得られる。式(65)と式(66)から、
1=(1+a2t2+a4t4+a6t6+a8t8+ ....)×
(1−t2/3!+t4/5!−t6/7!+t8/9!− ....)
式(67)
になるので、これを解くと、
h(t)=1+(1/6)t2+(7/360)t4+(31/15120)t6+(127/604800)t8+ ....
式(68)
なる式が得られる。
したがって、交点演算部160が、第1の座標変換式(31),(32)を演算する場合に、関数sinc(t)を、
sinc(t)=1−t2/3!+t4/5!−t6/7!+t8/9!− ....
なるテイラー展開した形式の式に基づいて演算するようにすれば、三角関数演算を避けることができる。しかも、t=0の場合、上記式の右辺の値は1になるため、sinc(0)=1という数学的な定義とも合致した関数値を得ることができる。なお、上記式の右辺には、理論的には無限個の項が含まれることになるが、もちろん、実用上は、必要な有効桁数が得られる項までの計算を行えば十分である。
【0158】
同様に、変換演算部130が、第2の座標変換式(33),(34)を演算する場合に、関数1/sinc(t)を、所定の係数値a2,a4,a6,a8, ....を用いた
1/sinc(t)=1+a2t2+a4t4+a6t6+a8t8+ ....
なる形式の式に基づいて演算するようにすれば、三角関数演算を避けることができる。ここで、係数a2,a4,a6,a8, ....の値は、式(68)のように具体的な数値として求めることができるので、演算器には、これらの具体的な数値を格納しておくようにすればよい。この式においても、t=0の場合、右辺の値は1になるため、1/sinc(0)=1という数学的な定義とも合致した関数値を得ることができる。やはり上記式の右辺には、理論的には無限個の項が含まれることになるが、実用上は、必要な有効桁数が得られる項までの計算を行えば十分である。
【0159】
<<< §7.変換演算式を導出する数学的プロセス >>>
以上、§1〜§6において、本発明に係る画像変換装置を実施する上での最良の形態を述べた。ここでは、図12に示す本発明の変換演算式を導出する数学的なプロセスを図29および図30に示す数式を参照しながら簡単に説明しておく。この図12に示す変換演算式は、幾何学的には、図11に示す変換演算式と等価であり、両者の相違は、平面傾斜角ψとφの定義の相違も含めたパラメータの設定のしかたのみである。いずれの変換演算式も、図1に示すような光学的特性をもった正射影方式の魚眼レンズを用いて形成される正射影画像S上の任意の点S(x,y)と、平面正則画像T上の特定の点T(u,v)との対応関係を示す式であり、幾何学的な解析を行うことにより導出することができる。ただ、三角関数を含む繁雑な式を取り扱う必要があるため、通常、行列式を用いた解析がなされる。以下、若干、数学的な知識を必要とする説明になるが、この行列式を用いた変換演算式の導出プロセスを述べる。
【0160】
図6において、UV座標系は接平面S2上に定義され、そのU軸の向きは、平面傾斜角φで決定される。そして、このUV座標系の原点は、点G(x0,y0,z0)として与えられる。そこで、XYZ座標系の原点Oを始点として、UV座標系の原点Gを終点とする回転ベクトルN(x0,y0,z0)を定義すれば、XYZ座標系の空間内に配置される特定のUV座標系は、この回転ベクトルN(x0,y0,z0)と平面傾斜角φ(回転ベクトルN回りの回転ファクター)とによって規定される。このように、特定のUV座標系は、回転ベクトルNと、当該回転ベクトル回りの回転ファクターφ(平面傾斜角)とによって規定されるので、回転行列として表現することができる。
【0161】
本発明では、二次元UV座標系が定義できれば十分であるが、ここでは、UV平面に対して垂直なW軸を更に加えた、三次元UVW座標系を考えてみる。たとえば、図6に示す例の場合、W軸は、点G(x0,y0,z0)から原点Oに向かう方向の軸として定義される。そうすると、ここで求めるべき変換演算式は、三次元XYZ座標系と三次元UVW座標系との間の座標変換を行う式ということになる(図12の式(19)に示すwは、実はこのW軸に沿った座標値に相当する値である)。
【0162】
ここでは、仮想球面Hの半径R=1として、回転ベクトルNが単位ベクトルであるものとし、更に、座標系の回転のみを考慮して変換式の導出ができるように、三次元UVW座標系の原点Gの位置が、三次元XYZ座標系の原点Oの位置に重なるように、三次元UVW座標系を平行移動した状態で、両座標系の相互関係を考えることにする。すなわち、図6において、接平面S2上に位置するUV座標系は、傾斜面S1上に平行移動させられることになる。
【0163】
いま、回転ベクトルN=(x,y,z)と回転角φによって定義される三次元回転行列をR(φ,N)とする。そして、図29の式(71)に示すように、回転ベクトルN=(x,y,z)に対して、交代行列と呼ばれる行列Sを考える。ここで、行列の右肩の符号Tは転置行列を意味するものである。すると、行列S2は式(72)、行列S3は式(73)のようになる。
【0164】
一方、行列Sについての指数行列expSは、式(74)に示すような展開形で定義される。ここで、Eは単位行列である。式(74)は式(75)のように変形できるので、回転角φを乗じた指数行列exp(φS)は、図30の式(76)のように変形でき、式(77)を得ることができる。この行列exp(φS)が、三次元回転行列表現R(φN)=R(φ,N)になるので、式(77)に、式(71),(72)を代入して計算すると、式(78)が得られる。この式(78)の最後に示す3行3列の行列式の各要素は、三次元XYZ座標系と三次元UVW座標系との間の座標変換を行う際の係数値になる。この行列式の9つの要素を、A〜Iの記号に置き換えると、式(79)が得られる。
【0165】
図12の式(13)〜(18)に示されている項A〜Fは、この式(79)に示されているA〜Fに対応するものである。本発明での変換対象となる画像は、XY平面上に配置された歪曲円形画像であるため、図12の式(11)によりx座標値、図12の式(12)によりy座標値が求められれば足り、z座標値は常に0になるため、式(79)の要素G,H,Iは利用されない。
【0166】
なお、図12の式(11),(12)において、u,v,wの代わりに、「u−x0」,「v−y0」,「w−z0」が用いられているのは、上述したように、この導出プロセスが、図6において、接平面S2上に位置するUV座標系を、傾斜面S1上に平行移動させた状態で行われたためである。実際には、UV座標系の原点は、XYZ座標系の原点Oに位置するわけではなく、点G(x0,y0,z0)に位置している。式(11),(12)の項「u−x0」,「v−y0」,「w−z0」における座標値x0,y0,z0の減算は、この平行移動した原点の位置を補正するためのものである。
【0167】
<<< §8.パラメータ設定法の変形例 >>>
最後に、本発明におけるパラメータ設定法の変形例を述べておく。既に§3において、パラメータφ,x0,y0,mを、ユーザに効率的に設定させる基本的な実施例を述べた。この§3で述べた方法の骨子は、図13に示すように、XY座標系上に定義されている歪曲円形画像Sをユーザに提示し、この画像上で2点P,Qを指定させ、点P(x0,y0)の座標値(x0,y0)を、そのままパラメータx0,y0の値として用い、2点P,Q間の距離dを用いて、m=k/dなる式により変換倍率mを決定し、更に、2点P,Qを結ぶ直線を参照直線Jとし、この参照直線JとX軸とのなす角θ(切り出し向き)を求め、この角度θに基づいて、平面傾斜角φを決定する(実用上は、近似的に、φ=θとする)というものである。
【0168】
これに対して、ここで説明する変形例は、変換倍率mおよび切り出し向きを示す角度θを予め別個に設定しておき、歪曲円形画像S上では、1点P(x0,y0)のみを指定させる方法である。この変形例では、まず、図19に示す指示入力部150が、ディスプレイ画面上に図31に示すような「向き・倍率の設定画面151」を表示する。図示の例の場合、ユーザは、キーボードなどの入力デバイスを用いて、角度θ設定入力欄152にθの値を入力し、倍率m設定入力欄153にmの値を入力する操作を行うことになる。具体的には、たとえば、入力欄152にはθの値を「30°」のように入力し、入力欄153にはmの値を「2」のように入力すればよい。こうして入力したθは、歪曲円形画像S上に引くべき参照直線Jの向きを定義する値になる。もちろん、θおよびmの入力方法としては、この他にも様々な方法を採ることが可能である。たとえば、画面上に数値を増減させる矢印マークを表示させ、この矢印マークをクリックするユーザの操作により特定の数値を指定させてもよい。
【0169】
このように、何らかの方法で、変換倍率mおよび切り出し向きを示す角度θを設定させるようにすれば、歪曲円形画像S上では、切出中心点P(x0,y0)のみを指定させればよい。図32は、このような切出中心点Pを設定する操作を示す平面図である。図32では図示が省略されているが、実際には、図の円内には歪曲円形画像Sが表示されており、ユーザは、たとえば、マウスクリックなどにより、この歪曲円形画像S内の任意の1点を切出中心点P(x0,y0)として指定する操作を行うことになる。ユーザが切出中心点P(x0,y0)の位置を指定すると、当該点Pを通り、X軸と角度θ(前述の操作によって入力欄152に入力した角度値)をなす直線として、図に一点鎖線で示すような参照直線Jを定めることができ、この参照直線Jの方向を基準として、画像の切り出しが行われることになる。
【0170】
この§8で述べるパラメータ設定法の変形例は、常に、切り出し向き(参照直線Jの方向)を固定した状態で、様々な位置の平面正則画像を得るような用途に最適である。たとえば、図33の側面図に示すように、本発明を建物の壁面に取り付けられた監視カメラに利用した実施形態を考えてみる。図示のとおり、路面210上に建てられた建物220の壁面に、監視カメラ230が取り付けられており、図に一点鎖線で示すような視野を監視する業務を行うものとしよう。ここで、監視カメラ230が通常のレンズを備えたカメラの場合であれば、この監視カメラ230の位置から撮影した画像は、たとえば、図34に示すような通常の平面正則画像になる。ところが、より視野を広げるために、監視カメラ230として魚眼レンズを用いたカメラを用いると、XY平面上には、図35に示すような歪曲円形画像Sが得られることになる。
【0171】
ここで、図2に示す歪曲円形画像Sと図35に示す歪曲円形画像Sとを比較してみると、両者はいずれも魚眼レンズを備えたカメラで撮影した画像であるが、前者は、光軸が鉛直方向となるようにカメラを設置し、周囲360°にわたる地上の景色を撮影することにより得られる画像であるのに対し、後者は、光軸が水平方向となるようにカメラを設置し、建物220の片側の景色を撮影することにより得られる画像であることがわかる。したがって、変換後にUV座標系上に得られる平面正則画像が、自然界の天地に応じた正しい方向を向くように指定することを考えると、前者の場合、切り出し向き(角度θで規定される参照直線Jの向き)を、切出中心点の位置に応じて、様々な方向に指定する必要があるのに対して、後者の場合、常にX軸に平行な向きに設定すればよいことがわかる。
【0172】
したがって、図33に示すような環境で、魚眼レンズ付き監視カメラ230を用いて得られた歪曲円形画像Sを変換する用途に本発明を利用する場合には、たとえば、図31に示すような方法で、切り出し向きを示す角度θを予め0°に設定させ、変換倍率mについても所定の数値を予め設定させておき、図35に示す歪曲円形画像S上では、切出中心点Pの位置指定のみを行わせるようにするのが好ましい。本発明において、θは、参照直線JとX軸とのなす角として定義される角度であり、前述したように、θ=0°の場合は、参照直線JとX軸とが平行であることを示す。よって、θ=0°という設定が行われている場合、参照直線Jは、ユーザが指定した切出中心点Pを通りX軸に平行な直線ということになる。
【0173】
図36は、予めθ=0°という設定が行われている場合において、図35に示す歪曲円形画像S上における切出中心点の指定操作を示す平面図である。たとえば、ユーザが、図示のような歪曲円形画像Sをディスプレイ画面上で見ながら、路面上の1点P1の近傍を平面正則画像として視認したいと考えた場合は、当該点P1をクリック操作などで切出中心点として指定する操作を行えばよい。そうすれば、点P1を通りX軸に平行な参照直線J1が切り出し向きを示す直線ということになる。同様に、遠方のビルの1点P2の近傍を平面正則画像として視認したいと考えた場合は、当該点P2をクリック操作などで切出中心点として指定する操作を行えばよい。そうすれば、点P2を通りX軸に平行な参照直線J2が切り出し向きを示す直線ということになる。
【0174】
図36に示すとおり、参照直線J1,J2は、いずれも自然界の水平面に沿った方向になり、ほぼこの方向にU軸の向きが定義されることになる。したがって、最終的に得られる平面正則画像は、いずれも切出中心点P1,P2を中心として、自然界の天地に応じた正しい方向を向いた画像になる。また、ユーザは、歪曲円形画像Sを見ながら、「平面正則画像として視認したい領域の中心」を切出中心点Pとして指定するだけの単純な操作を行えばよいので、良好な操作性が得られる。
【図面の簡単な説明】
【0175】
【図1】正射影方式の魚眼レンズを用いた撮影により歪曲円形画像Sを形成する基本モデルを示す斜視図である。
【図2】魚眼レンズを用いた撮影によって得られた歪曲円形画像Sの一例を示す平面図である(歪曲円形画像Sの一般的なイメージを示すものであり、正確な画像を示すものではない)。
【図3】歪曲円形画像Sの一部分に切出領域Eを定義した例を示す平面図である。
【図4】歪曲円形画像Sを含むXY座標系と、平面正則画像Tを含むUV座標系との関係を示す斜視図である。
【図5】UV座標系上に定義された平面正則画像Tと平面傾斜角φとの関係を示す平面図である。
【図6】XY座標系からUV座標系への座標変換の原理を示す斜視図である。
【図7】図6の斜視図に示されている各構成要素を水平方向から見た図である。
【図8】図6の斜視図に示されている各構成要素を上方から見た図である。
【図9】UV座標系上に定義された平面正則画像Tを示す平面図である。
【図10】XY座標系上に定義された歪曲円形画像Sを示す平面図である。
【図11】オイラー角α,β,φをパラメータとして用いた従来の一般的な変換演算式を示す図である。
【図12】回転軸を示す座標値(x0,y0,z0)と平面傾斜角φ(回転軸まわりの回転角)をパラメータとして用いた本発明に係る変換演算式を示す図である。
【図13】XY平面上の2点P,Qを指定することにより、切出中心点、切り出し向きを示す角度θ(平面傾斜角φを決定するために用いられる角度)、変換倍率mの3つのパラメータを設定する原理を示す平面図である。
【図14】具体的な歪曲円形画像上で2点P,Qもしくは2点P,Q′を指定することにより、切出中心点、切り出し向きを示す角度θ、変換倍率mの3つのパラメータを設定する例を示す平面図である。
【図15】図14に示す例において、2点P,Qを指定した場合に得られる平面正則画像Tを示す平面図である。
【図16】図14に示す例において、2点P,Q′を指定した場合に得られる平面正則画像Tを示す平面図である。
【図17】図13に示す切り出し向きを示す角度θと平面傾斜角φとの関係を示す斜視図である。
【図18】切り出し向きを示す角度θに基づいて平面傾斜角φを算出する演算式を示す図である。
【図19】本発明に係る画像変換装置の基本構成を示すブロック図である。
【図20】正射影方式の魚眼レンズにおける入射光の投影状態を示す正面図である。
【図21】正射影方式の魚眼レンズを用いて形成される正射影画像と、等距離射影方式の魚眼レンズを用いて形成される等距離射影画像と、の関係を示す斜視図である。
【図22】等距離射影画像上の座標と正射影画像上の座標との間で座標変換を行うための変換式を示す図である。
【図23】図12に示す本発明に係る変換演算式の演算負担を軽減するために用いられる式を示す図である。
【図24】図12に示す本発明に係る変換演算式の演算負担を軽減するために用いられる関数テーブルを示す図である。
【図25】図24に示すような関数テーブルを参照する場合の線形補間の方法を示す図である。
【図26】図25に示す線形補間を実行するためのハードウエア構成要素を示すブロック図である。
【図27】図12に示す本発明に係る変換演算式の演算負担を軽減するために用いられる別な式を示す図である。
【図28】図22に示す座標変換の演算負担を軽減するために用いられる式を示す図である。
【図29】図12に示す本発明に係る変換演算式を導出するための数学的プロセスを示す図である。
【図30】図12に示す本発明に係る変換演算式を導出するための数学的プロセスを示す別な図である。
【図31】本発明の変形例に係るパラメータ設定法において、ディスプレイ画面上に表示される「向き・倍率の設定画面」を示す平面図である。
【図32】XY平面上の1点Pを指定することにより、切出中心点を設定する操作を示す平面図である。
【図33】本発明を建物の壁面に取り付けられた監視カメラに利用した実施形態を示す側面図である。
【図34】図33に示す監視カメラ230として、通常のレンズを備えたカメラを用いた場合に得られる撮影画像の一例を示す平面図である。
【図35】図33に示す監視カメラ230として、魚眼レンズを備えたカメラを用いた場合に得られる撮影画像(歪曲円形画像S)の一例を示す平面図である。
【図36】図35に示す歪曲円形画像S上における切出中心点の指定操作を示す平面図である。
【符号の説明】
【0176】
10:魚眼レンズを用いたカメラ
21:Tレジスタ
22:偶数関数テーブル
23:奇数関数テーブル
24:偶数読出部
25:奇数読出部
26:偶奇セレクタ
27:偶奇セレクタ
28:Aレジスタ
29:Bレジスタ
30:補間演算部
31:補間値レジスタ
100:画像変換装置
110:歪曲円形画像格納部
120:平面正則画像格納部
130:変換演算部
140:歪曲円形画像表示部
150:指示入力部
151:向き・倍率の設定画面
152:角度θ設定入力欄
153:倍率m設定入力欄
160:交点演算部
170:角度決定部
210:路面
220:建物
230:監視カメラ
a:ディスプレイの横方向寸法(水平方向の画素数)
b:ディスプレイの縦方向寸法(垂直方向の画素数)
B:境界点
d:2点PQ間の距離
E:切出領域
f:魚眼レンズに固有の定数
f(t):変数tに対する関数値
G(x0,y0,z0):点Pを通りZ軸に平行な直線と仮想球面Hとの交点
H:仮想球面
H(x,y,z):仮想球面H上の入射点
J,J′,J1,J2:参照直線
L1,L2:入射光線
m:変換倍率
n:法線ベクトル
N:回転ベクトル
O:三次元XYZ直交座標系の原点
P(x0,y0),P1,P2:切出中心点
P′(x2,y0):補助点
Q(x1,y1),Q′(x2,y2):補助点
R:歪曲円形画像Sの半径(仮想球面Hの半径)
r:歪曲円形画像Sの中心点からの距離
S:歪曲円形画像
S1:傾斜面
S2:接平面
S(x,y):歪曲円形画像S上の点
t:変数
T:平面正則画像
T(u,v):平面正則画像T上の点
T1,T2:関数テーブル
U:二次元UV直交座標系の座標軸
U′:U軸に平行な軸
V:二次元UV直交座標系の座標軸
W:変数tの離散値間隔
X:三次元XYZ直交座標系の座標軸
X′:X軸に平行な軸
Y:三次元XYZ直交座標系の座標軸
Z:三次元XYZ直交座標系の座標軸
α:方位角
β:天頂角
δ:下位ビットで示される端数
θ,θ′:切り出し向きを示す角度
φ,ψ:平面傾斜角
ξ:変数
【特許請求の範囲】
【請求項1】
魚眼レンズを用いた撮影により得られた歪曲円形画像の一部分を切り出して、平面正則画像に変換する処理を行う画像変換装置であって、
二次元XY直交座標系上の座標(x,y)で示される位置に配置された多数の画素の集合体によって構成され、前記XY座標系の原点Oを中心とし半径Rをもった歪曲円形画像を格納する歪曲円形画像格納部と、
二次元UV直交座標系上の座標(u,v)で示される位置に配置された多数の画素の集合体によって構成される平面正則画像を格納する平面正則画像格納部と、
前記歪曲円形画像格納部に格納されている歪曲円形画像をディスプレイに表示する歪曲円形画像表示部と、
前記ディスプレイに表示されている歪曲円形画像上における、切出中心点Pの位置および切り出し向きをユーザの指示に基づいて入力する指示入力部と、
前記二次元XY直交座標系を含む三次元XYZ直交座標系において、原点Oを中心とし半径Rをもった仮想球面を定義したときに、前記切出中心点Pを通りZ軸に平行な直線と前記仮想球面との交点Gの位置座標(x0,y0,z0)を求める交点演算部と、
前記交点Gにおいて前記仮想球面に接する接平面上に定義すべき前記二次元UV直交座標系のU軸方向を向いたベクトルUと、前記二次元XY直交座標系のX軸方向を向いたベクトルXと、のなす角として与えられる平面傾斜角φを、前記切り出し向きに基づいて決定する角度決定部と、
前記位置座標(x0,y0,z0)および前記平面傾斜角φをパラメータとして含む正射影方式の変換演算式を利用して、座標(u,v)と座標(x,y)とを対応づけ、座標(u,v)で示される位置に配置された平面正則画像上の画素の画素値を、対応する座標(x,y)で示される位置に配置された歪曲円形画像上の参照画素の画素値に基づいて決定することにより、前記歪曲円形画像から前記切出中心点Pを中心として前記平面傾斜角φによって示される向きに切り出された部分画像についての平面正則画像を生成する演算を行い、生成された平面正則画像を前記平面正則画像格納部に格納する変換演算部と、
を備えることを特徴とする画像変換装置。
【請求項2】
請求項1に記載の画像変換装置において、
変換演算部が、正射影方式の変換演算式として、
x=R[(u−x0)A+(v−y0)B+(w−z0)E]/
√((u−x0)2+(v−y0)2+(w−z0)2)
y=R[(u−x0)C+(v−y0)D+(w−z0)F]/
√((u−x0)2+(v−y0)2+(w−z0)2)
ここで、
A=1−(1−cosφ)(y02+z02)
B=−z0sinφ+x0y0(1−cosφ)
C=z0sinφ+x0y0(1−cosφ)
D=1−(1−cosφ)(z02+x02)
E=y0sinφ+z0x0(1−cosφ)
F=−x0sinφ+y0x0(1−cosφ)
w=mR(但し、mは所定の変換倍率)
なる式を用いることを特徴とする画像変換装置。
【請求項3】
請求項1または2に記載の画像変換装置において、
指示入力部が、歪曲円形画像上に引かれた参照直線Jを定義するための指示を入力する機能を有し、
角度決定部が、前記参照直線JとX軸とのなす角θ(但し、両者平行の場合はθ=0°とする)に基づいて平面傾斜角φを決定することを特徴とする画像変換装置。
【請求項4】
請求項3に記載の画像変換装置において、
指示入力部が、歪曲円形画像上において、切出中心点Pと補助点Qとの2点の位置を指定するための指示を入力する機能を有し、前記切出中心点Pと前記補助点Qとを結ぶ直線を参照直線Jとすることを特徴とする画像変換装置。
【請求項5】
請求項3に記載の画像変換装置において、
指示入力部が、参照直線JとX軸とのなす角θを示す数値を所定の入力画面上で入力する機能と、切出中心点Pの位置を歪曲円形画像上で指定するための指示を入力する機能と、を有することを特徴とする画像変換装置。
【請求項6】
請求項3〜5のいずれかに記載の画像変換装置において、
角度決定部が、参照直線JとX軸とのなす角θを近似的に平面傾斜角φとすることを特徴とする画像変換装置。
【請求項7】
請求項2に記載の画像変換装置において、
指示入力部が、ユーザの指示に基づいて変換倍率mを入力する機能を有し、
変換演算部が、前記指示入力部によって入力された変換倍率mを用いた演算を行うことを特徴とする画像変換装置。
【請求項8】
請求項7に記載の画像変換装置において、
指示入力部が、歪曲円形画像上において、切出中心点Pと補助点Qとの2点の位置を指定するための指示を入力する機能を有し、前記切出中心点Pと前記補助点Qとの距離dに基づいて、m=k/d(kは所定の比例定数)として与えられる数値を変換倍率mとすることを特徴とする画像変換装置。
【請求項9】
請求項1〜8のいずれかに記載の画像変換装置において、
変換演算部が、座標(u,v)で示される位置に配置された平面正則画像上の画素の画素値を決定する際に、対応する座標(x,y)で示される位置の近傍に配置された歪曲円形画像上の複数の参照画素の画素値に対する補間演算を行うことを特徴とする画像変換装置。
【請求項10】
請求項1〜9のいずれかに記載の画像変換装置において、
歪曲円形画像格納部に格納されている画像が、正射影方式の魚眼レンズによって撮影された正射影画像ではなく、非正射影方式の魚眼レンズによって撮影された非正射影画像である場合に、前記非正射影画像上の座標を前記正射影画像上の座標に変換する第1の座標変換式と、前記正射影画像上の座標を前記非正射影画像上の座標に変換する第2の座標変換式と、を利用して、
交点演算部が、切出中心点Pの座標を前記第1の座標変換式を用いて変換し、変換後の座標を用いて交点の位置座標(x0,y0,z0)を求める処理を行い、
変換演算部が、正射影方式の変換演算式を用いて座標(u,v)に対応する座標(x,y)を求めた後、前記座標(x,y)を前記第2の座標変換式を用いて変換し、変換後の座標を用いて歪曲円形画像上の参照画素の位置を特定することを特徴とする画像変換装置。
【請求項11】
請求項10に記載の画像変換装置において、
歪曲円形画像格納部に格納されている画像が、等距離射影方式の魚眼レンズによって撮影された等距離射影画像である場合に、
交点演算部が、等距離射影画像上の座標(x′,y′)を正射影画像上の座標(x,y)に変換する第1の座標変換式として、
x=sinc(π/2・√(x′2+y′2))×π/2・x′
y=sinc(π/2・√(x′2+y′2))×π/2・y′
なる式を用い、
変換演算部が、正射影画像上の座標(x,y)を等距離射影画像上の座標(x′,y′)に変換する第2の座標変換式として、
x′=2/π・x/sinc(π/2・√(x2+y2))
y′=2/π・y/sinc(π/2・√(x2+y2))
なる式を用いることを特徴とする画像変換装置。
【請求項12】
請求項1〜11のいずれかに記載の画像変換装置としてコンピュータを機能させるためのプログラム。
【請求項13】
請求項1〜11のいずれかに記載の画像変換装置の構成要素となる変換演算部として機能する電子回路が組み込まれた半導体集積回路。
【請求項14】
請求項1〜11のいずれかに記載の画像変換装置と、魚眼レンズを用いたカメラと、平面正則画像を画面上に表示するモニタ装置と、を備え、
前記カメラを用いた撮影により得られた歪曲円形画像が歪曲円形画像格納部へと格納され、平面正則画像格納部に得られた平面正則画像が前記モニタ装置によって表示されるように構成されていることを特徴とする魚眼監視システム。
【請求項15】
請求項2に記載の画像変換装置において、
変換演算部が、
「関数f(c)=1/c」の値を様々な変数cの値について対応づけた第1の関数テーブルと、「関数f(ξ)=1/√ξ」の値を様々な変数ξの値について対応づけた第2の関数テーブルと、を有し、
a=u−x0,b=v−y0,c=w−z0、
ξ=(a/c)2+(b/c)2+1
なる演算を行うことにより、cおよびξの値を求め、
前記第1の関数テーブルおよび前記第2の関数テーブルを参照することにより、求めたc,ξの値に対応する関数f(c),f(ξ)の値を求め、
正射影方式の変換演算式における
√((u−x0)2+(v−y0)2+(w−z0)2)
なる値を、f(c)×f(ξ)なる演算により求めることを特徴とする画像変換装置。
【請求項16】
請求項1〜11のいずれかに記載の画像変換装置において、
変換演算部が、
所定の有効桁数に応じた間隔Wの離散値をとる変数tのうち、偶数変数tについて、所定の関数f(t)の値を対応づけた偶数関数テーブルと、
前記有効桁数に応じた前記間隔Wの離散値をとる変数tのうち、奇数変数tについて、所定の関数f(t)の値を対応づけた奇数関数テーブルと、
前記有効桁数からなる上位ビットと、前記有効桁数より下位の桁を示す下位ビットと、によって構成される変数tを格納するTレジスタと、
前記上位ビットが偶数である場合には、前記上位ビットで示される偶数変数tについて対応づけられている関数f(t)の値を前記偶数関数テーブルから読み出し、前記上位ビットが奇数である場合には、前記上位ビットで示される奇数変数tよりも大きい最小の偶数変数tについて対応づけられている関数f(t)の値を前記偶数関数テーブルから読み出す偶数読出部と、
前記上位ビットが奇数である場合には、前記上位ビットで示される奇数変数tについて対応づけられている関数f(t)の値を前記奇数関数テーブルから読み出し、前記上位ビットが偶数である場合には、前記上位ビットで示される偶数変数tよりも大きい最小の奇数変数tについて対応づけられている関数f(t)の値を前記奇数関数テーブルから読み出す奇数読出部と、
前記偶数関数テーブルもしくは前記奇数関数テーブルから読み出された関数f(t)の値を格納するAレジスタと、
前記偶数関数テーブルもしくは前記奇数関数テーブルから読み出された関数f(t)の値を格納するBレジスタと、
前記上位ビットが偶数である場合には、前記偶数読出部が読み出した関数f(t)の値を前記Aレジスタに格納するとともに、前記奇数読出部が読み出した関数f(t)の値を前記Bレジスタに格納し、前記上位ビットが奇数である場合には、前記奇数読出部が読み出した関数f(t)の値を前記Aレジスタに格納するとともに、前記偶数読出部が読み出した関数f(t)の値を前記Bレジスタに格納する偶奇セレクタと、
前記Aレジスタに格納されている値をf(A)とし、前記Bレジスタに格納されている値をf(B)とし、前記下位ビットで示される値をδとして、補間後の関数f(t)の値を、f(t)=((W−δ)/W)×f(A)+(δ/W)×f(B)なる演算によって求める補間演算部と、
を有し、前記補間演算部によって求められた補間後の関数f(t)の値を利用して演算を行うことを特徴とする画像変換装置。
【請求項17】
請求項11に記載の画像変換装置において、
交点演算部が、第1の座標変換式における関数sinc(t)を、
sinc(t)=1−t2/3!+t4/5!−t6/7!+t8/9!− ....
なるテイラー展開した形式の式に基づいて演算し、
変換演算部が、第2の座標変換式における関数1/sinc(t)を、所定の係数値a2,a4,a6,a8, ....を用いた
1/sinc(t)=1+a2t2+a4t4+a6t6+a8t8+ ....
なる形式の式に基づいて演算することを特徴とする画像変換装置。
【請求項18】
請求項2に記載の画像変換装置において、
変換演算部が、cosφの値を、ベクトルUとベクトルXとの内積を、ベクトルUの大きさとベクトルXの大きさとの積で除することにより求めることを特徴とする画像変換装置。
【請求項19】
請求項2に記載の画像変換装置において、
指示入力部が、歪曲円形画像上に引かれた参照直線Jを定義するための指示を入力する機能を有し、
変換演算部が、参照直線Jの方向を向いたベクトルJを定義し、cosφの値を、ベクトルJとベクトルXとの内積を、ベクトルJの大きさとベクトルXの大きさとの積で除することにより求めることを特徴とする画像変換装置。
【請求項20】
請求項2に記載の画像変換装置において、
変換演算部が、sinφの値を、sinφ=√(1−cos2φ)なる演算により求めることを特徴とする画像変換装置。
【請求項21】
魚眼レンズを用いた撮影により得られた歪曲円形画像の一部分を切り出して、平面正則画像に変換する処理を行う画像変換装置であって、
二次元XY直交座標系上の座標(x,y)で示される位置に配置された多数の画素の集合体によって構成された歪曲円形画像を格納する歪曲円形画像格納部と、
二次元UV直交座標系上の座標(u,v)で示される位置に配置された多数の画素の集合体によって構成される平面正則画像を格納する平面正則画像格納部と、
前記歪曲円形画像格納部に格納されている歪曲円形画像をディスプレイに表示する歪曲円形画像表示部と、
前記ディスプレイに表示されている歪曲円形画像上において、切出中心点Pと補助点Qとの2点の位置をユーザの指示に基づいて入力し、前記切出中心点Pと前記補助点Qとを結ぶ直線を参照直線Jと認識し、前記切出中心点Pと前記補助点Qとの距離dに基づいて、m=k/d(kは所定の比例定数)として与えられる数値を変換倍率mと認識する指示入力部と、
座標(u,v)と座標(x,y)とを対応づける変換演算式を利用して、座標(u,v)で示される位置に配置された平面正則画像上の画素の画素値を、対応する座標(x,y)で示される位置に配置された歪曲円形画像上の参照画素の画素値に基づいて決定することにより、前記歪曲円形画像から前記切出中心点Pを中心として前記参照直線Jに応じた向きに切り出された部分画像について、前記変換倍率mに基づいてスケーリングされた平面正則画像を生成する演算を行い、生成された平面正則画像を前記平面正則画像格納部に格納する変換演算部と、
を備えることを特徴とする画像変換装置。
【請求項22】
魚眼レンズを用いた撮影により得られた歪曲円形画像の一部分を切り出して、平面正則画像に変換する処理を行う画像変換装置であって、
二次元XY直交座標系上の座標(x,y)で示される位置に配置された多数の画素の集合体によって構成された歪曲円形画像を格納する歪曲円形画像格納部と、
二次元UV直交座標系上の座標(u,v)で示される位置に配置された多数の画素の集合体によって構成される平面正則画像を格納する平面正則画像格納部と、
前記歪曲円形画像格納部に格納されている歪曲円形画像をディスプレイに表示する歪曲円形画像表示部と、
所定の入力画面上において、参照直線JとX軸とのなす角として定義される角度θと、変換倍率mと、をユーザの指示に基づいて入力するとともに、前記ディスプレイに表示されている歪曲円形画像上において、切出中心点Pの位置をユーザの指示に基づいて入力する指示入力部と、
座標(u,v)と座標(x,y)とを対応づける変換演算式を利用して、座標(u,v)で示される位置に配置された平面正則画像上の画素の画素値を、対応する座標(x,y)で示される位置に配置された歪曲円形画像上の参照画素の画素値に基づいて決定することにより、前記歪曲円形画像から前記切出中心点Pを中心として前記参照直線Jに応じた向きに切り出された部分画像について、前記変換倍率mに基づいてスケーリングされた平面正則画像を生成する演算を行い、生成された平面正則画像を前記平面正則画像格納部に格納する変換演算部と、
を備えることを特徴とする画像変換装置。
【請求項23】
魚眼レンズを用いた撮影により得られた歪曲円形画像の一部分を切り出して、平面正則画像に変換する処理を行う画像変換方法であって、
二次元XY直交座標系上の座標(x,y)で示される位置に配置された多数の画素の集合体によって構成され、前記XY座標系の原点Oを中心とし半径Rをもった歪曲円形画像を、歪曲円形画像格納部に格納する段階と、
前記歪曲円形画像格納部に格納されている歪曲円形画像をディスプレイに表示する段階と、
前記ディスプレイに表示されている歪曲円形画像上における、切出中心点Pの位置および切り出し向きをユーザの指示に基づいて入力する段階と、
前記二次元XY直交座標系を含む三次元XYZ直交座標系において、原点Oを中心とし半径Rをもった仮想球面を定義したときに、前記切出中心点Pを通りZ軸に平行な直線と前記仮想球面との交点Gの位置座標(x0,y0,z0)を求める段階と、
前記交点Gにおいて前記仮想球面に接する接平面上に定義すべき二次元UV直交座標系のU軸方向を向いたベクトルUと、前記二次元XY直交座標系のX軸方向を向いたベクトルXと、のなす角として与えられる平面傾斜角φを、前記切り出し向きに基づいて決定する段階と、
前記位置座標(x0,y0,z0)および前記平面傾斜角φをパラメータとして含む正射影方式の変換演算式を利用して、座標(u,v)と座標(x,y)とを対応づけ、座標(u,v)で示される位置に配置された多数の画素の集合体によって構成される平面正則画像上の各画素の画素値を、対応する座標(x,y)で示される位置に配置された歪曲円形画像上の参照画素の画素値に基づいて決定することにより、前記歪曲円形画像から前記切出中心点Pを中心として前記平面傾斜角φによって示される向きに切り出された部分画像についての平面正則画像を生成する演算を行う段階と、
をコンピュータもしくは電子回路によって実行させることを特徴とする画像変換方法。
【請求項24】
請求項23に記載の画像変換方法において、
正射影方式の変換演算式として、
x=R[(u−x0)A+(v−y0)B+(w−z0)E]/
√((u−x0)2+(v−y0)2+(w−z0)2)
y=R[(u−x0)C+(v−y0)D+(w−z0)F]/
√((u−x0)2+(v−y0)2+(w−z0)2)
ここで、
A=1−(1−cosφ)(y02+z02)
B=−z0sinφ+x0y0(1−cosφ)
C=z0sinφ+x0y0(1−cosφ)
D=1−(1−cosφ)(z02+x02)
E=y0sinφ+z0x0(1−cosφ)
F=−x0sinφ+y0x0(1−cosφ)
w=mR(但し、mは所定の変換倍率)
なる式を用いることを特徴とする画像変換方法。
【請求項25】
請求項23または24に記載の画像変換方法において、
ディスプレイに表示されている歪曲円形画像上において、切出中心点Pと補助点Qとの2点の位置を指定するための指示を入力し、前記切出中心点Pと前記補助点Qとを結ぶ直線を参照直線Jとし、この参照直線JとX軸とのなす角θ(但し、両者平行の場合はθ=0°とする)に基づいて平面傾斜角φを決定することを特徴とする画像変換方法。
【請求項26】
請求項23または24に記載の画像変換方法において、
ディスプレイに表示されている歪曲円形画像上において、切出中心点Pの位置を指定するための指示を入力するとともに、所定の入力画面上において、前記歪曲円形画像上の参照直線JとX軸とのなす角θを入力し、前記角θに基づいて平面傾斜角φを決定することを特徴とする画像変換方法。
【請求項1】
魚眼レンズを用いた撮影により得られた歪曲円形画像の一部分を切り出して、平面正則画像に変換する処理を行う画像変換装置であって、
二次元XY直交座標系上の座標(x,y)で示される位置に配置された多数の画素の集合体によって構成され、前記XY座標系の原点Oを中心とし半径Rをもった歪曲円形画像を格納する歪曲円形画像格納部と、
二次元UV直交座標系上の座標(u,v)で示される位置に配置された多数の画素の集合体によって構成される平面正則画像を格納する平面正則画像格納部と、
前記歪曲円形画像格納部に格納されている歪曲円形画像をディスプレイに表示する歪曲円形画像表示部と、
前記ディスプレイに表示されている歪曲円形画像上における、切出中心点Pの位置および切り出し向きをユーザの指示に基づいて入力する指示入力部と、
前記二次元XY直交座標系を含む三次元XYZ直交座標系において、原点Oを中心とし半径Rをもった仮想球面を定義したときに、前記切出中心点Pを通りZ軸に平行な直線と前記仮想球面との交点Gの位置座標(x0,y0,z0)を求める交点演算部と、
前記交点Gにおいて前記仮想球面に接する接平面上に定義すべき前記二次元UV直交座標系のU軸方向を向いたベクトルUと、前記二次元XY直交座標系のX軸方向を向いたベクトルXと、のなす角として与えられる平面傾斜角φを、前記切り出し向きに基づいて決定する角度決定部と、
前記位置座標(x0,y0,z0)および前記平面傾斜角φをパラメータとして含む正射影方式の変換演算式を利用して、座標(u,v)と座標(x,y)とを対応づけ、座標(u,v)で示される位置に配置された平面正則画像上の画素の画素値を、対応する座標(x,y)で示される位置に配置された歪曲円形画像上の参照画素の画素値に基づいて決定することにより、前記歪曲円形画像から前記切出中心点Pを中心として前記平面傾斜角φによって示される向きに切り出された部分画像についての平面正則画像を生成する演算を行い、生成された平面正則画像を前記平面正則画像格納部に格納する変換演算部と、
を備えることを特徴とする画像変換装置。
【請求項2】
請求項1に記載の画像変換装置において、
変換演算部が、正射影方式の変換演算式として、
x=R[(u−x0)A+(v−y0)B+(w−z0)E]/
√((u−x0)2+(v−y0)2+(w−z0)2)
y=R[(u−x0)C+(v−y0)D+(w−z0)F]/
√((u−x0)2+(v−y0)2+(w−z0)2)
ここで、
A=1−(1−cosφ)(y02+z02)
B=−z0sinφ+x0y0(1−cosφ)
C=z0sinφ+x0y0(1−cosφ)
D=1−(1−cosφ)(z02+x02)
E=y0sinφ+z0x0(1−cosφ)
F=−x0sinφ+y0x0(1−cosφ)
w=mR(但し、mは所定の変換倍率)
なる式を用いることを特徴とする画像変換装置。
【請求項3】
請求項1または2に記載の画像変換装置において、
指示入力部が、歪曲円形画像上に引かれた参照直線Jを定義するための指示を入力する機能を有し、
角度決定部が、前記参照直線JとX軸とのなす角θ(但し、両者平行の場合はθ=0°とする)に基づいて平面傾斜角φを決定することを特徴とする画像変換装置。
【請求項4】
請求項3に記載の画像変換装置において、
指示入力部が、歪曲円形画像上において、切出中心点Pと補助点Qとの2点の位置を指定するための指示を入力する機能を有し、前記切出中心点Pと前記補助点Qとを結ぶ直線を参照直線Jとすることを特徴とする画像変換装置。
【請求項5】
請求項3に記載の画像変換装置において、
指示入力部が、参照直線JとX軸とのなす角θを示す数値を所定の入力画面上で入力する機能と、切出中心点Pの位置を歪曲円形画像上で指定するための指示を入力する機能と、を有することを特徴とする画像変換装置。
【請求項6】
請求項3〜5のいずれかに記載の画像変換装置において、
角度決定部が、参照直線JとX軸とのなす角θを近似的に平面傾斜角φとすることを特徴とする画像変換装置。
【請求項7】
請求項2に記載の画像変換装置において、
指示入力部が、ユーザの指示に基づいて変換倍率mを入力する機能を有し、
変換演算部が、前記指示入力部によって入力された変換倍率mを用いた演算を行うことを特徴とする画像変換装置。
【請求項8】
請求項7に記載の画像変換装置において、
指示入力部が、歪曲円形画像上において、切出中心点Pと補助点Qとの2点の位置を指定するための指示を入力する機能を有し、前記切出中心点Pと前記補助点Qとの距離dに基づいて、m=k/d(kは所定の比例定数)として与えられる数値を変換倍率mとすることを特徴とする画像変換装置。
【請求項9】
請求項1〜8のいずれかに記載の画像変換装置において、
変換演算部が、座標(u,v)で示される位置に配置された平面正則画像上の画素の画素値を決定する際に、対応する座標(x,y)で示される位置の近傍に配置された歪曲円形画像上の複数の参照画素の画素値に対する補間演算を行うことを特徴とする画像変換装置。
【請求項10】
請求項1〜9のいずれかに記載の画像変換装置において、
歪曲円形画像格納部に格納されている画像が、正射影方式の魚眼レンズによって撮影された正射影画像ではなく、非正射影方式の魚眼レンズによって撮影された非正射影画像である場合に、前記非正射影画像上の座標を前記正射影画像上の座標に変換する第1の座標変換式と、前記正射影画像上の座標を前記非正射影画像上の座標に変換する第2の座標変換式と、を利用して、
交点演算部が、切出中心点Pの座標を前記第1の座標変換式を用いて変換し、変換後の座標を用いて交点の位置座標(x0,y0,z0)を求める処理を行い、
変換演算部が、正射影方式の変換演算式を用いて座標(u,v)に対応する座標(x,y)を求めた後、前記座標(x,y)を前記第2の座標変換式を用いて変換し、変換後の座標を用いて歪曲円形画像上の参照画素の位置を特定することを特徴とする画像変換装置。
【請求項11】
請求項10に記載の画像変換装置において、
歪曲円形画像格納部に格納されている画像が、等距離射影方式の魚眼レンズによって撮影された等距離射影画像である場合に、
交点演算部が、等距離射影画像上の座標(x′,y′)を正射影画像上の座標(x,y)に変換する第1の座標変換式として、
x=sinc(π/2・√(x′2+y′2))×π/2・x′
y=sinc(π/2・√(x′2+y′2))×π/2・y′
なる式を用い、
変換演算部が、正射影画像上の座標(x,y)を等距離射影画像上の座標(x′,y′)に変換する第2の座標変換式として、
x′=2/π・x/sinc(π/2・√(x2+y2))
y′=2/π・y/sinc(π/2・√(x2+y2))
なる式を用いることを特徴とする画像変換装置。
【請求項12】
請求項1〜11のいずれかに記載の画像変換装置としてコンピュータを機能させるためのプログラム。
【請求項13】
請求項1〜11のいずれかに記載の画像変換装置の構成要素となる変換演算部として機能する電子回路が組み込まれた半導体集積回路。
【請求項14】
請求項1〜11のいずれかに記載の画像変換装置と、魚眼レンズを用いたカメラと、平面正則画像を画面上に表示するモニタ装置と、を備え、
前記カメラを用いた撮影により得られた歪曲円形画像が歪曲円形画像格納部へと格納され、平面正則画像格納部に得られた平面正則画像が前記モニタ装置によって表示されるように構成されていることを特徴とする魚眼監視システム。
【請求項15】
請求項2に記載の画像変換装置において、
変換演算部が、
「関数f(c)=1/c」の値を様々な変数cの値について対応づけた第1の関数テーブルと、「関数f(ξ)=1/√ξ」の値を様々な変数ξの値について対応づけた第2の関数テーブルと、を有し、
a=u−x0,b=v−y0,c=w−z0、
ξ=(a/c)2+(b/c)2+1
なる演算を行うことにより、cおよびξの値を求め、
前記第1の関数テーブルおよび前記第2の関数テーブルを参照することにより、求めたc,ξの値に対応する関数f(c),f(ξ)の値を求め、
正射影方式の変換演算式における
√((u−x0)2+(v−y0)2+(w−z0)2)
なる値を、f(c)×f(ξ)なる演算により求めることを特徴とする画像変換装置。
【請求項16】
請求項1〜11のいずれかに記載の画像変換装置において、
変換演算部が、
所定の有効桁数に応じた間隔Wの離散値をとる変数tのうち、偶数変数tについて、所定の関数f(t)の値を対応づけた偶数関数テーブルと、
前記有効桁数に応じた前記間隔Wの離散値をとる変数tのうち、奇数変数tについて、所定の関数f(t)の値を対応づけた奇数関数テーブルと、
前記有効桁数からなる上位ビットと、前記有効桁数より下位の桁を示す下位ビットと、によって構成される変数tを格納するTレジスタと、
前記上位ビットが偶数である場合には、前記上位ビットで示される偶数変数tについて対応づけられている関数f(t)の値を前記偶数関数テーブルから読み出し、前記上位ビットが奇数である場合には、前記上位ビットで示される奇数変数tよりも大きい最小の偶数変数tについて対応づけられている関数f(t)の値を前記偶数関数テーブルから読み出す偶数読出部と、
前記上位ビットが奇数である場合には、前記上位ビットで示される奇数変数tについて対応づけられている関数f(t)の値を前記奇数関数テーブルから読み出し、前記上位ビットが偶数である場合には、前記上位ビットで示される偶数変数tよりも大きい最小の奇数変数tについて対応づけられている関数f(t)の値を前記奇数関数テーブルから読み出す奇数読出部と、
前記偶数関数テーブルもしくは前記奇数関数テーブルから読み出された関数f(t)の値を格納するAレジスタと、
前記偶数関数テーブルもしくは前記奇数関数テーブルから読み出された関数f(t)の値を格納するBレジスタと、
前記上位ビットが偶数である場合には、前記偶数読出部が読み出した関数f(t)の値を前記Aレジスタに格納するとともに、前記奇数読出部が読み出した関数f(t)の値を前記Bレジスタに格納し、前記上位ビットが奇数である場合には、前記奇数読出部が読み出した関数f(t)の値を前記Aレジスタに格納するとともに、前記偶数読出部が読み出した関数f(t)の値を前記Bレジスタに格納する偶奇セレクタと、
前記Aレジスタに格納されている値をf(A)とし、前記Bレジスタに格納されている値をf(B)とし、前記下位ビットで示される値をδとして、補間後の関数f(t)の値を、f(t)=((W−δ)/W)×f(A)+(δ/W)×f(B)なる演算によって求める補間演算部と、
を有し、前記補間演算部によって求められた補間後の関数f(t)の値を利用して演算を行うことを特徴とする画像変換装置。
【請求項17】
請求項11に記載の画像変換装置において、
交点演算部が、第1の座標変換式における関数sinc(t)を、
sinc(t)=1−t2/3!+t4/5!−t6/7!+t8/9!− ....
なるテイラー展開した形式の式に基づいて演算し、
変換演算部が、第2の座標変換式における関数1/sinc(t)を、所定の係数値a2,a4,a6,a8, ....を用いた
1/sinc(t)=1+a2t2+a4t4+a6t6+a8t8+ ....
なる形式の式に基づいて演算することを特徴とする画像変換装置。
【請求項18】
請求項2に記載の画像変換装置において、
変換演算部が、cosφの値を、ベクトルUとベクトルXとの内積を、ベクトルUの大きさとベクトルXの大きさとの積で除することにより求めることを特徴とする画像変換装置。
【請求項19】
請求項2に記載の画像変換装置において、
指示入力部が、歪曲円形画像上に引かれた参照直線Jを定義するための指示を入力する機能を有し、
変換演算部が、参照直線Jの方向を向いたベクトルJを定義し、cosφの値を、ベクトルJとベクトルXとの内積を、ベクトルJの大きさとベクトルXの大きさとの積で除することにより求めることを特徴とする画像変換装置。
【請求項20】
請求項2に記載の画像変換装置において、
変換演算部が、sinφの値を、sinφ=√(1−cos2φ)なる演算により求めることを特徴とする画像変換装置。
【請求項21】
魚眼レンズを用いた撮影により得られた歪曲円形画像の一部分を切り出して、平面正則画像に変換する処理を行う画像変換装置であって、
二次元XY直交座標系上の座標(x,y)で示される位置に配置された多数の画素の集合体によって構成された歪曲円形画像を格納する歪曲円形画像格納部と、
二次元UV直交座標系上の座標(u,v)で示される位置に配置された多数の画素の集合体によって構成される平面正則画像を格納する平面正則画像格納部と、
前記歪曲円形画像格納部に格納されている歪曲円形画像をディスプレイに表示する歪曲円形画像表示部と、
前記ディスプレイに表示されている歪曲円形画像上において、切出中心点Pと補助点Qとの2点の位置をユーザの指示に基づいて入力し、前記切出中心点Pと前記補助点Qとを結ぶ直線を参照直線Jと認識し、前記切出中心点Pと前記補助点Qとの距離dに基づいて、m=k/d(kは所定の比例定数)として与えられる数値を変換倍率mと認識する指示入力部と、
座標(u,v)と座標(x,y)とを対応づける変換演算式を利用して、座標(u,v)で示される位置に配置された平面正則画像上の画素の画素値を、対応する座標(x,y)で示される位置に配置された歪曲円形画像上の参照画素の画素値に基づいて決定することにより、前記歪曲円形画像から前記切出中心点Pを中心として前記参照直線Jに応じた向きに切り出された部分画像について、前記変換倍率mに基づいてスケーリングされた平面正則画像を生成する演算を行い、生成された平面正則画像を前記平面正則画像格納部に格納する変換演算部と、
を備えることを特徴とする画像変換装置。
【請求項22】
魚眼レンズを用いた撮影により得られた歪曲円形画像の一部分を切り出して、平面正則画像に変換する処理を行う画像変換装置であって、
二次元XY直交座標系上の座標(x,y)で示される位置に配置された多数の画素の集合体によって構成された歪曲円形画像を格納する歪曲円形画像格納部と、
二次元UV直交座標系上の座標(u,v)で示される位置に配置された多数の画素の集合体によって構成される平面正則画像を格納する平面正則画像格納部と、
前記歪曲円形画像格納部に格納されている歪曲円形画像をディスプレイに表示する歪曲円形画像表示部と、
所定の入力画面上において、参照直線JとX軸とのなす角として定義される角度θと、変換倍率mと、をユーザの指示に基づいて入力するとともに、前記ディスプレイに表示されている歪曲円形画像上において、切出中心点Pの位置をユーザの指示に基づいて入力する指示入力部と、
座標(u,v)と座標(x,y)とを対応づける変換演算式を利用して、座標(u,v)で示される位置に配置された平面正則画像上の画素の画素値を、対応する座標(x,y)で示される位置に配置された歪曲円形画像上の参照画素の画素値に基づいて決定することにより、前記歪曲円形画像から前記切出中心点Pを中心として前記参照直線Jに応じた向きに切り出された部分画像について、前記変換倍率mに基づいてスケーリングされた平面正則画像を生成する演算を行い、生成された平面正則画像を前記平面正則画像格納部に格納する変換演算部と、
を備えることを特徴とする画像変換装置。
【請求項23】
魚眼レンズを用いた撮影により得られた歪曲円形画像の一部分を切り出して、平面正則画像に変換する処理を行う画像変換方法であって、
二次元XY直交座標系上の座標(x,y)で示される位置に配置された多数の画素の集合体によって構成され、前記XY座標系の原点Oを中心とし半径Rをもった歪曲円形画像を、歪曲円形画像格納部に格納する段階と、
前記歪曲円形画像格納部に格納されている歪曲円形画像をディスプレイに表示する段階と、
前記ディスプレイに表示されている歪曲円形画像上における、切出中心点Pの位置および切り出し向きをユーザの指示に基づいて入力する段階と、
前記二次元XY直交座標系を含む三次元XYZ直交座標系において、原点Oを中心とし半径Rをもった仮想球面を定義したときに、前記切出中心点Pを通りZ軸に平行な直線と前記仮想球面との交点Gの位置座標(x0,y0,z0)を求める段階と、
前記交点Gにおいて前記仮想球面に接する接平面上に定義すべき二次元UV直交座標系のU軸方向を向いたベクトルUと、前記二次元XY直交座標系のX軸方向を向いたベクトルXと、のなす角として与えられる平面傾斜角φを、前記切り出し向きに基づいて決定する段階と、
前記位置座標(x0,y0,z0)および前記平面傾斜角φをパラメータとして含む正射影方式の変換演算式を利用して、座標(u,v)と座標(x,y)とを対応づけ、座標(u,v)で示される位置に配置された多数の画素の集合体によって構成される平面正則画像上の各画素の画素値を、対応する座標(x,y)で示される位置に配置された歪曲円形画像上の参照画素の画素値に基づいて決定することにより、前記歪曲円形画像から前記切出中心点Pを中心として前記平面傾斜角φによって示される向きに切り出された部分画像についての平面正則画像を生成する演算を行う段階と、
をコンピュータもしくは電子回路によって実行させることを特徴とする画像変換方法。
【請求項24】
請求項23に記載の画像変換方法において、
正射影方式の変換演算式として、
x=R[(u−x0)A+(v−y0)B+(w−z0)E]/
√((u−x0)2+(v−y0)2+(w−z0)2)
y=R[(u−x0)C+(v−y0)D+(w−z0)F]/
√((u−x0)2+(v−y0)2+(w−z0)2)
ここで、
A=1−(1−cosφ)(y02+z02)
B=−z0sinφ+x0y0(1−cosφ)
C=z0sinφ+x0y0(1−cosφ)
D=1−(1−cosφ)(z02+x02)
E=y0sinφ+z0x0(1−cosφ)
F=−x0sinφ+y0x0(1−cosφ)
w=mR(但し、mは所定の変換倍率)
なる式を用いることを特徴とする画像変換方法。
【請求項25】
請求項23または24に記載の画像変換方法において、
ディスプレイに表示されている歪曲円形画像上において、切出中心点Pと補助点Qとの2点の位置を指定するための指示を入力し、前記切出中心点Pと前記補助点Qとを結ぶ直線を参照直線Jとし、この参照直線JとX軸とのなす角θ(但し、両者平行の場合はθ=0°とする)に基づいて平面傾斜角φを決定することを特徴とする画像変換方法。
【請求項26】
請求項23または24に記載の画像変換方法において、
ディスプレイに表示されている歪曲円形画像上において、切出中心点Pの位置を指定するための指示を入力するとともに、所定の入力画面上において、前記歪曲円形画像上の参照直線JとX軸とのなす角θを入力し、前記角θに基づいて平面傾斜角φを決定することを特徴とする画像変換方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【図31】
【図32】
【図33】
【図34】
【図35】
【図36】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【図31】
【図32】
【図33】
【図34】
【図35】
【図36】
【公開番号】特開2009−176273(P2009−176273A)
【公開日】平成21年8月6日(2009.8.6)
【国際特許分類】
【出願番号】特願2008−258125(P2008−258125)
【出願日】平成20年10月3日(2008.10.3)
【出願人】(000002897)大日本印刷株式会社 (14,506)
【Fターム(参考)】
【公開日】平成21年8月6日(2009.8.6)
【国際特許分類】
【出願日】平成20年10月3日(2008.10.3)
【出願人】(000002897)大日本印刷株式会社 (14,506)
【Fターム(参考)】
[ Back to top ]