JP5715793B2 - 画像処理装置及び画像処理方法 - Google Patents

画像処理装置及び画像処理方法 Download PDF

Info

Publication number
JP5715793B2
JP5715793B2 JP2010228228A JP2010228228A JP5715793B2 JP 5715793 B2 JP5715793 B2 JP 5715793B2 JP 2010228228 A JP2010228228 A JP 2010228228A JP 2010228228 A JP2010228228 A JP 2010228228A JP 5715793 B2 JP5715793 B2 JP 5715793B2
Authority
JP
Japan
Prior art keywords
image
grid
camera
lut
viewpoint
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2010228228A
Other languages
English (en)
Other versions
JP2012085026A (ja
Inventor
正憲 小崎
正憲 小崎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Alpine Automotive Technology Inc
Original Assignee
Toshiba Alpine Automotive Technology Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Alpine Automotive Technology Inc filed Critical Toshiba Alpine Automotive Technology Inc
Priority to JP2010228228A priority Critical patent/JP5715793B2/ja
Publication of JP2012085026A publication Critical patent/JP2012085026A/ja
Application granted granted Critical
Publication of JP5715793B2 publication Critical patent/JP5715793B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Image Processing (AREA)
  • Studio Devices (AREA)

Description

本発明の実施形態は、車載用カメラ、監視用カメラ等に用いられる画像処理装置及び画像処理方法に関する。
従来、CCDカメラ等の撮像装置(カメラ)で被写体を撮像した場合、撮像レンズの歪曲収差特性の影響により画像が歪むことがあった。特に車載用カメラにおいては、広角の撮像範囲を必要とし、魚眼レンズ等が用いられるため画像歪みを生じていた。このため、画像歪みを信号処理によって補正する画像処理装置が提案されている。例えば特許文献1,2参照。
また撮像した画像のうち、必要な領域を拡大して表示したいという要求もあるが、解像度をあげるには全体の情報量が増えるため、情報量を低減しかつ画像歪みを補正できるようにした画像処理装置が必要となる。また曲線のような複雑な歪を正確に補正するのは難しく、さらに画像の端などでは滑らかな補正ができないという不具合があった。
特開2008−79202号公報 特開2007−288724号公報
本発明が解決しようとする課題は、必要な領域を高解像度で表示しかつ画像歪みを補正可能な画像処理装置を提供することにある。
実施形態に係る画像処理装置は、レンズと撮像素子を含み、被写体を撮像するカメラと、前記カメラで撮像した画像をもとに特定の領域が広く見えるように、前記特定の領域の画像をn次式で拡大処理した第1の画像を取得する信号処理部と、前記カメラによって複数の向きの方眼画像を取得する方眼画像取得手段と、前記方眼画像の格子点を取得し、取得した複数の格子点を用いて、前記信号処理部からの前記第1の画像をn次式で引き伸ばし補正する歪補正手段と、前記歪補正手段によって補正した画像を表示する表示部と、を具備する。
一実施形態に係る画像処理装置の構成を示すブロック図。 車両へのカメラの配置例を示す平面図。 車両のカメラで撮影し特定領域を拡大した画像の一例を示す説明図。 高解像度化したい領域を拡大する一手法を示す説明図。 画像の引き伸ばし処理の一例を示す説明図。 画像の引き伸ばし処理の他の例を示す説明図。 方眼の格子点の取得動作を示す説明図。 格子点よりn次式で画像を引き伸ばす一例を示す説明図。 4つの格子点の中間を導き出す一例を示す説明図。 4つの格子点の中間を導き出す際の動作を示す説明図。 格子点の中間を導き出す一例を示す説明図。 画像の端の補正に関する3次曲線を示す説明図。 画像の端の補正に関する他の3次曲線を示す説明図。 正面画像の画像変換処理を示す説明図。 上下左右の画像の画像変換例を示す説明図。 格子線による格子点位置の予測動作を示す説明図。 格子点による格子点位置の予測動作を示す説明図。 予測した格子点位置の補正動作を示す説明図。 ルックアップテーブル(LUT)の視点位置の特定動作の説明図。 正面のLUTの向きの補正動作を示す説明図。 視点位置の特定の動作を示す説明図。 視点位置の特定の他の動作を示す説明図。 視点位置の特定のさらに他の動作を示す説明図。 視点から面の向きを特定する動作を示す説明図。 視点から面の向きを特定する他の動作を示す説明図。 無限遠点を使用して視点位置を特定する方法を示す説明図。 正六面体にLUTを展開する動作を示す説明図。 正六面体にLUTを展開する他の動作を示す説明図。 正六面体にLUT展開するさらに他の動作を示す説明図。 LUTのつなぎ目の補正動作を示す説明図。 格納する頂点又はn次式の特定動作を示す説明図。 格納した頂点又はn次式よりの画像の展開動作を示す説明図。 正六面体とカメラの位置、画像の展開動作を示す説明図。 正六面体に歪み補正結果が展開された状態を示す説明図。 正面、上下、左右の画像の歪み補正動作を示す説明図。 一実施形態に係る画像処理装置の全体的な動作を示すフローチャート。
以下、発明を実施するための実施形態について図面を参照して詳細に説明する。
図1は、一実施形態に係る画像処理装置の構成を示すブロック図である。図1の実施形態に係る画像処理装置は、画像処理部10と、画像認識表示部20と、前処理部30と、ユーザインターフェイス(I/F)・車両環境部40を備えている。画像処理部10は、レンズ11、撮像素子12、データ変換部13、信号処理部14、画像メモリ15、画像送信部16、補正パラメータデコーダ17、特定領域拡大補正メモリ18、制御用のマイクロコンピュータ19(以下、制御マイコン19という)を含む。
また画像認識表示部20は、画像受信部21、信号処理部22、補正パラメータデコーダ23、歪み補正メモリ24、制御マイコン25、画像認識処理部26、表示処理部27を備え、表示処理部27は表示部28に接続されている。また前処理部30は、補正パラメータエンコーダ31と補正パラメータ導出部32を含む。
画像処理部10のレンズ11は、被写体100からの反射光を集光して撮像素子12に写影する。撮像素子12は、CCDやCMOSセンサ等で構成され、写影された映像をキャプチャしアナログ画像信号を生成する。データ変換部13は、撮像素子12により生成されたアナログ画像信号をデジタル画像信号に変換する。信号処理部14は、データ変換部13、画像メモリ15、補正パラメータデコーダ17、制御マイコン19に接続されている。
信号処理部14は、制御マイコン19からのコマンドに応じて、データ変換部13からのデジタル画像信号を画像メモリ15に格納するとともに、デジタル画像信号に対する補正処理を実行する。信号処理部14で補正したデジタル画像信号は、画像送信部16から画像認識表示部20の画像受信部21に転送される。
また補正パラメータデコーダ17は、制御マイコン19から供給された情報などに応じて、特定領域拡大補正メモリ18から供給された補正量パラメータを信号処理部14に供給する。補正パラメータデコーダ17の処理においては、特定領域拡大補正メモリ18に格納された情報が使用される。尚、制御マイコン19は、ユーザI/F・車両環境部40からの制御信号に応じて、動作を命令するコマンド等を信号処理部14に出力する。
特定領域拡大補正メモリ18は、高解像度化したい領域(特定領域)を引き伸ばして拡大補正するためのn次式、及びn次式を構成するための頂点を記憶したメモリであり、信号処理部14は、高解像度が必要な領域を広くすることができる。
画像受信部21で受信したデジタル画像信号は信号処理部22に供給される。一方、前処理部30の補正パラメータ導出部32は、レンズ11の歪曲収差に関するデータなどから、全画素の各位置に応じた補正データを予め計算する。補正パラメータエンコーダ31は補正パラメータ導出部32に接続され、補正パラメータ導出部32から供給された補正量パラメータをエンコードして補正パラメータデコーダ23に供給する。また、補正パラメータエンコーダ31から供給される補正パラメータ情報は、歪み補正メモリ24にも格納され、補正パラメータデコーダ23の処理においては、歪み補正メモリ24に格納された情報が使用される。
制御マイコン25は、ユーザI/F・車両環境部40からの制御信号に応じて、動作を命令するコマンド等を信号処理部22に出力する。補正パラメータデコーダ23は、補正パラメータエンコーダ31、歪み補正メモリ24,制御マイコン25及び信号処理部22に接続され、補正パラメータデコー23は、制御マイコン25から供給された情報などに応じて、補正パラメータエンコーダ31または歪み補正メモリ24から供給されたエンコードされたデータを各画素に対応した補正量パラメータにデコードし、補正量パラメータを信号処理部22に供給する。
信号処理部22により生成された画像信号は、表示処理部27に供給され、また画像認識処理部26を介して表示処理部27に供給される。表示処理部27は、信号処理部22または画像認識処理部26から供給された画像信号を表示部28に表示する。尚、画像認識表示部20は、方眼画像取得手段と、画像処理部10からの歪ませた画像(第1の画像)をn次式で引き伸ばし補正する歪補正手段の機能を有する。ユーザI/F・車両環境部40は、ユーザ操作に応答して、或いは車両環境(車両の現在位置や進行方向等)に応じて制御マイコン19、25を制御し、画像の歪み補正の処理等を行う。
次にカメラの配置の一例を、図2を参照して説明する。本実施形態では、車両1に4つのカメラA〜Dを配置している。図2は、車両1を真上から見た図であり、例えば車両1の前方部にカメラAを配置し、後方部にカメラBを配置する。また車両1の左側のサイドミラー等にカメラCを配置し、右側のサイドミラー等にカメラDを配置する。
こうして各カメラA〜Dは、車両1の4辺に配置される。各カメラA〜Dは、車両1の全周囲を撮影するため魚眼カメラ等の広角カメラにすると良い。尚、以下の説明では、カメラAを前方カメラ、カメラBを後方カメラ、カメラCを左カメラ、カメラDを右カメラと呼ぶ。またカメラA〜Dを備えた車両1を自車と呼ぶこともある。
以下、実施形態に係る画像処理装置の動作を説明する。尚、以下の説明では車載用のカメラで撮像した画像を処理する場合について、処理項目別に説明する。
[カメラの用意]車載用のカメラで撮影した車両外部映像を表示部28(ディスプレイ)に表示するためには、必要な領域の画像をより高解像度で取得できるカメラが必要になる。したがって画像の解像度を上げればよいが、コストが高くなり、データ量が膨大になるため、画像データの転送や処理に時間がかかり現実的ではない。このため、カメラのレンズの歪み方を加工したり、撮影領域によって撮像素子の大きさや形や配置を加工したり、複数の撮像素子を一つの画素として扱ったりすることにより、より高解像度が必要な領域を大きく取得することができる。
例えば、車両1に対して前後左右にカメラA〜Dを取り付け、前方カメラAは前方の正面向きに設置し、後方カメラBは後方の正面向きに設置し、左カメラC及び右カメラDは、それぞれ真下に向けて設置したとすると、一般的には、各カメラA〜Dからは、図3(a)に示すような画像A1,B1,C1,D1が得られる。
本実施形態では、図3(b)に示すように各カメラA〜Dのレンズの歪み方を加工したり、撮影領域に応じて撮像素子の大きさ、形、配置を加工したりすることにより、撮影した画像をA2,B2,C2,D2のように、高解像度が必要な領域を拡大して画像認識表示部20に転送する。
即ち、前方カメラAの画像A1のうち真横方向と左上方向(右車線は右上方向)の画像領域を大きくし、画像A2で示すように標識や看板のある方向の領域を拡大する。また後方カメラBの画像B1のうち真横方向と真下方向領域を大きくし、画像B2で示すように地面に書かれた文字等を読み取りやすくする。さらに左カメラCと右カメラDの画像C1,D1については、それぞれ車体に対して真後ろ方向と、車体に対して前方から横方向の領域を大きくする。
また、高解像度が必要な領域を拡大して極端に歪ませると補正しにくくなるため、大まかに歪ませ、それを後述するn次式で引き伸ばすようにしてもよい。例えば後方カメラBの画像について言えば、図4(a)のようなカメラ画像に対して、より高解像度化したい領域ほど頂点(図4の黒点で示す)を細かく配置する。それを後述するn次式で引き伸ばすことにより、図4(b)のように高解像度が必要な領域を広くすることができる。
また、状況によって高解像度が必要な領域を変える場合、記憶しておく情報量を少なくするために、特定領域拡大補正メモリ18に複数のパターンでの頂点のみを保存するか、または頂点から得られるn次式、またはn次式と頂点の両方を保存しておいて、信号処理部14で状況に合わせて画像を引き伸ばす計算処理をして転送する画像としてもよい。
引き伸ばす計算処理によって、画素ごとに図5のような座標数と座標とその採用割合をルックアップテーブル(LUT:Look Up Table)として保存しておいて、表示する際に簡単な乗算と加算処理だけを行うようにしてもよい。
その場合、採用割合を面積として求めるのではなく、図6のように求めることもできる。図6(a)の1画素とする領域Sの画像を図6(b)のように変換する場合、領域Sの画像をn・mの領域に分割する。図では横の分割数nを4とし、縦の分割数mを4としている。
次にn・m領域の中心点がどこの座標に一番近いかを特定し、その座標を分割した領域の色情報とする。領域の中心点の求め方は、例えば、一般的な方法である、4つの座標(x, y)(ここでは変換後の座標であるA1,A2,A3,A4)と、座標(X,Y)(ここでは変換前の座標B1,B2,B3,B4)を指定して、下記の式になるようにA,B,C,D,E,F,G,Hの連立方程式を解く。
X = (A・x + B・y + C) / (G・x + H・y + 1)
Y = (D・x + E・y + F) / (G・x + H・y + 1)
導き出された上記の式により、例えばAijの座標はx方向にi番目(i=1〜n)、y方向にj番目(i=1〜m)とすると、(x, y)は、図6(b)のようにA1(0,0)、A2(1,0)、A3(0,1)、A4(1,1)とした場合、下記の式になる。
x=i/n−1/(2・n)
y=j/m−1/(2・m)
上記(x, y)を座標変換式に代入し、変換前の座標(X,Y)が求まるので、その値がどこの座標に一番近いかを、整数になるように四捨五入して計算し求める。
その情報を分割した分(n×m)足し合わせて、その個数(n×m個)で割ることにより、その領域の色情報とする。この場合最初に、出した座標をルックアップテーブル(LUT)として記録しておき、表示する際に簡単な乗算と加算処理を行うだけにしておいてもよい。また、同じ座標となる場合は、座標の個数をルックアップテーブル(LUT)に記録しておき、その個数を乗算してもよい。
このとき計算方法は上記の変換式ではなく、一般的である共1次補間法や、3次たたみこみ補間法や、後述するn次式(ここでのnは分割数ではない)で補完する方法を用いて計算させてもよい。また、変換前のx座標の差が大きい場合は分割数nを増やして、差が小さい場合には減らしてもよい。同様にy座標の差によって分割数mを変更してもよい。このような場合には、一般的な魚眼レンズのような歪み補正計算方法を用いることができなくなるため、複雑な歪み方をした画像でも補正する必要がある。
以上が画像処理部10における転送前の処理である。画像処理部10で処理した画像データは、画像送信部16から画像認識表示部20の画像受信部21に転送される。以下、画像認識処理部20での画像処理について説明する。
[方眼の格子点の取得]先ず、画像の歪みを補正するために方眼を用意する。即ち、予め用意した方眼(格子状のパターン)を撮像素子12によって撮影し、方眼画像を取得する。方眼はレンズ11を通し特定領域を拡大することにより歪曲するため、方眼画像の格子点を図7の(a)〜(e)に示す手順で特定する。図7の格子点の特定について、四角で囲った番号1〜13の手順で説明する。
1.先ず図7(a)に示すように方眼画像の格子線1を見つける。例えば、ある一方向にサーチしながら輝度分布に谷ができるところを探す。そして谷の中心を格子線の1点として決定する。その1点を中心として円状に輝度分布を確認すると、2つ谷が見つかるので、どちらかを線方向として決定する。
2.次に図7(b)で示すように、格子線1に直交する格子線2を見つける。例えば、線方向に対して直角方向(両方)に少しずらし(1)、その位置から線方向に対して少し手前から輝度分布を取得しながら少し線方向に進む(2)。輝度分布に谷ができれば、そこを格子線2と決定する。輝度分布に谷がなければ、線方向に進んだ位置から線方向に向かって直交方向の輝度分布を取得する(3)。輝度分布に谷ができていれば、谷の真ん中を格子線1上の点と仮決定する(4)。格子線がカーブしていることを考慮し、仮決定した点と一つ前の格子点より線方向を更新する(5)。それを繰り返していき格子線2を見つける(6)(7)。
線方向の両隣を確認する理由は、交差する格子線との角度差があまりない場合、片方は進行する直線と同じに見える可能性があり、もう片方は進行する直線とは同じに見えないためである。また、少し手前から確認する理由は、線が曲がっているため少しずつ線方向を補正しながら確認することになるが、進行する線方向を更新した場合、角度が変わるので交差する格子線の確認の隙間ができるのを防ぐためである。
3.次に図7(c)で示すように、格子線1上のn点(例えば4点)を見つける。この場合、格子線2との交点(格子点)を跨いで見つける。格子点を跨がなくてもよいが、跨いだ方が精度がよくなる。
4.また図7(c)で示すように、別の交差する格子線2より、m点(例えば4点)を検出する。
5.格子点と思われる位置から一番近い2点による直線の式(y=ax+b)を、それぞれの格子線より導き出す。
6.2つの式により交わる点を特定する(誤差の大きい格子点)。
7.次に図7(d)で示すように、交わった点が(0,0)になるようにすべての座標をずらす。
8.格子線1(2でもよい)の2点が真横になるようにすべての座標を(0,0)中心でθ回転させる。回転させる理由は、y=(xのn-1次式)とx=(yのm-1次式)にして計算させるためである。例えば、線が(-1,-1),(0,0),(1,-1)となっていた場合y=-x^2と表せるが、x=(yのn次式)とは表せない。そのためxかyは一方の方向に進む必要がある。
式は例えば次のようになる。
θ=atan2(y1-y0,x1-x0) ((x0,y0)と(x1,y1)の直線の真横に対する角度)
X=x・cos(θ)+y・sin(θ)
Y=−x・sin (θ)+y・cos (θ)
9.格子線1のn個の座標より連立方程式を作成し、加減法を用いて解いて、y=(xのn-1次式)を作成する。n=4の場合、
y=a1・x^3+b1・x^2+c1・x+d1となる。
10.格子線2のm個の座標よりx=yのm-1次式を作成する。m=4の場合、x=a2・y^3+b2・y^2+c2・y+d2となる。
11.それぞれの式をf1(x,y)=0,f2(x,y)=0とし、初期値を(0,0)として非連立方程式(ニュートン法)を用いて解く。
12.次に(e)で示すように導き出された解を回転した角度分逆回転させる。
13.ずらした位置分、元に戻す。それが解になる。
[格子点よりn次式で画像引き伸ばす]次に検出された格子点をもとに画像を補正するが、近くの4頂点と隣接する頂点でn次式の計算式を縦2つ横2つ作り出す。そのときn次の計算式を導き出すのにn+1個の格子点が必要になる。
縦の2つのn次式と横の2つのn次式により、特定したい座標の計算式の一例を図8に示す。図8において、左上の頂点を(0,0)とし、右下の頂点を(1,1)とする。ここでは−x側のn次式をg0(y)、+x側のn次式をg1(y)、−y側のn次式をf0(x)、+y側のn次式をf1(x)とする。左上の頂点を(0,0)とすると、導き出したい(a,b)の座標(頂点)は、特許文献1では以下の計算式にしている。
頂点=( ((1-b)・f0(a) + b・f1(a)) + ((1-a)・g0(b) + a・g1(b)) )/2
だが、この計算式ではn次式が大きく曲がっていた場合、導き出したい座標がずれる。例えば図9のように4つの格子点のちょうど中間を導き出す場合を想定する。図9は、真上から見た画像(左上)を、真横から見た状態(右上)と真下から見た状態(左下)を示している。
図9のように、特許文献1ではちょうど中間の座標を導き出す場合、上下の曲線の関数の中間座標での値の中間値と、左右の曲線の関数の中間座標での値の中間値の、2つの中間値の中間値を導き出す座標(点線円内)となっている。しかしながら、導きたい座標(頂点)は、図9の右上又は左下で示すように点線の交点Pである。特許文献1では、上下の曲線の関数と、左右の曲線の関数をそれぞれ独立させて計算しているため、ずれた位置の座標を導き出してしまう。関数が大きく曲がっている場合、導き出したい頂点のずれが大きくなるためである。
以上の問題を解決するために、上下の曲線の関数と、左右の曲線の関数とを関係づけた計算式にする必要がある。関係付ける方法として、比で計算する方法と差で計算する方法がある。
[比で計算する方法]特許文献1での計算式での問題は、例えば、上下の曲線の計算での頂点f0(a),f1(a)を縦の比b:(1−b)で計算してしまっている。縦の比はx=0上では下記のようになる。
(g0(b)−g0(0))/(g0(1)−g0(0)):(g0(1)−g0(b))/(g0(1)−g0(0)
(=d0:(1−d0))
また、x=1上では下記のようになる。
(g1(b)−g1(0))/(g1(1)−g1(0)):(g1(1)−g1(b))/(g1(1)−g1(0))
(=d1:(1−d1))
格子内では上記のそれぞれの計算式を横での比率のaを使用するが、同様に
a:(1−a)とはならない。上記の計算式と同様に、横の比はy=0上では下記のようになる。
(f0(a)−f0(0))/(f0(1)−f0(0)):(f0(1)−f0(a))/(f0(1)−f0(0))
(=c0:(1-c0))
また、y=1上では下記のようになる。
(f1(a)−f1(0))/(f1(1)−f1(0)):(f1(1)−f1(a))/(f1(1)−f1(0))
(=c1:(1−c1))
それぞれの格子線上での比率を、それぞれ式にも示した通りc0,c1,d0,d1とする。c0,c1,d0,d1は上記の式より導き出しておく。また導きだしたい頂点での比率をC(横の比),D(縦の比)とする。図に示すと図10のようになる。
図10のように導き出したい頂点は、
(頂点)=(1−C)・g0(b)+C・g1(b)
=(1−D)・f0(a)+D・f1(a)
のように、2つの計算式で得られる。また、CとDは、
C=(1−D)・c0+D・c1
D=(1−C)・d0+C・d1
となり、Cの式をDの式に代入して、
D=(1−((1−D)・c0+D・c1))・d0+((1−D)・c0+D・c1)・d1、
D=(d0+c0・(d1−d0))/(1−(c0−c1)・(d1−d0))
となる。c0,c1,d0,d1は計算できているので、その値でDを計算し、そのDを頂点の式に代入し頂点を導き出す。また、Cの式を導き出し、Cを頂点の式に代入して頂点を導き出してもよい。また、それぞれ頂点の平均を頂点としてもよい。
[差で計算する方法]片方の向かい合う2つの辺(f0とf1又はg0とg1)の頂点を導き出し、その頂点と格子点とのずれ量を交差する側の比で重みづけした加算値(例えば(f0(a)−f0(0))・(1-b)+(f1(a)−f1(0))・b)を出しておく。次に交差する格子線側では、ずれ量を計算した格子点を通る側の格子線上の頂点を導き出す(例えばg0(b))。そして最後に計算しておいた加算値を加算して頂点としてもよい。このとき、対面側の格子線も計算し、頂点の近さで重みづけする。計算式は下記のようになる。
(頂点)=((f0(a)−f0(0))・(1−b)+(f1(a)−f1(0))・b+g0(b))・(1−a)
+((f0(a)−f0(1))・(1−b)+(f1(a)−f1(1))・b+g1(b))・a
他の方法として、特許文献2のように計算する方法がある。この方法を図11にて簡単に説明する。図11で示すように、f0(x)のさらに−y側にf−1(x)、f1(x)のさらに+y側にf2(x)のn次式の曲線を格子点より作成しておく。その式を用いて導き出したい座標を求める。
先ず、求めたい座標の位置を(a, b)とした場合、f−1(a)、f0(a)、f1(a)、f2(a)をそれぞれ求める。そしてその求めた結果を使って4頂点(−1,f−1(a))、(0,f0(a) )、(1,f1(a) )、(2,f2(a) )を作り出し、その頂点より連立方程式を解いてG(y)の式を作り出す。その式にbを入れたG(b)が求めたい座標となる。このとき、4頂点ではなく、もっと増やした場合もある。
上記の拡張として、逆にg0(y)のさらに−x側にg−1(y)、g1(y)のさらに+x側にg2(y)のn次式の曲線を格子点より作成しておき、同様の計算を行ってF(a)を求めて、座標を導き出す方法もある。また、縦で導き出した座標と、横で導き出した座標の平均である(F(a)+G(b))/2を、導き出したい座標とする方法もある。または、3次たたみ込み補完法を用いた方法もある。
特許文献2のような方法や、3次たたみ込み補完法では、求めたい座標に隣接する4つの格子線上の頂点外の頂点、つまり、図11では(−1,−1),(2,−1),(−1,2),(2,2)が必要となるため、その分計算が増大してしまう。また、特許文献2ではそのつどn次式を作成する必要があるため計算量が増大となる問題がある。
比で計算する方法の例外処理として、計算上分母が0(g0(1)=g0(0), g1(1)=g1(0), f0(1)=f0(0), f1(1)=f1(0))にならないように頂点の位置をずらしておいてもよい。または、差で計算する方法を用いてもよい。または、その時の比はn次式で出すのではなく、もともとの座標位置(a 又はb)としてもよい。他の例外処理が必要な場合として、向かい合う辺上の頂点の差の極性が反転、例えば(g0(0)−g0(1))・(g1(0)−g1(1))<0、または
f0(0)−f0(1))・(f1(0)−f1(1))<0の場合には、2つの頂点の間で最大や最小になる場合に補正が正しく行われないことがある。
その対策のために、向かい合う辺上の頂点の差の極性が反転する場合には、その差の大きさが小さい方(または両方)のn次式が、2つの頂点の間で最大や最小にならないように、頂点の位置を変更、または、n次式を変更(2つの頂点は通るようにする)しておいてもよい。または、交差する格子線側が向かい合う辺上の頂点の差の極性が反転していて2つの頂点の間で最大や最小となるのではないのであれば、先に交差する側のn次式による比を出しておき、その比により頂点を導き出してもよい。辺で統一の処理となるようにするのは、隣の格子との連続性を出すためである。
または、比はn次式で出すのではなく、差で計算する方法を用いてもよい。また、もともとの座標位置(a又は b)(特許文献1のやり方)としてもよい。また、特許文献2のようなやり方でもよい。
上記のような解決方法により、関数が大きく曲がっていた場合にも、上下の曲線の関数と、左右の曲線の関数とを関係づけた計算式にすることにより、誤差は軽減されることになる。誤差が軽減されるということは、保存する格子点数を少なくできるということでもあり、格子点を検出する際にも計算が軽減される。
[画像の端の補正]次に、画像の端の補正について説明する。特許文献1,2の例においては、画像の端の領域では隣接する格子点はあっても、さらに両隣の2点は存在し得ない。そのため画像の端の領域では大きく歪んでしまう。そこで本実施形態では、補正する領域は画像の端にさらに格子点を1つ余分に用意することにより、必ず隣接する2頂点と両隣の2点の最低4頂点を採用させる。両隣を採用することにより、格子点の曲線が大きく歪んでいても格子線で折れ曲がって見えることはなくなる。
具体的には図12、図13を用いて説明する。図12のように頂点が1から6まで用意されていたとする。例えば、図12の実線のように2から3の間の座標は、両隣の2と3、さらに大きい方の座標である4と5を使用して3次曲線を作り出す。
次に図12の点線のように3から4の間の座標は、両隣の3と4、さらに大きい方の座標である5と6を使用して3次曲線を作り出す。この場合、両隣とさらに両隣の頂点は採用していない。この状態で座標を補正させた場合、円Qの位置を見ると分かるが、2から3までは実線、3から4までは点線であるため、3のあたりで折れ曲がったように見えてしまう。
本実施形態では、両隣の座標とさらに両隣の座標の最低4点を使用する。そうした場合、図13のようになる。図13の実線のように2から3の間の座標は、両隣の2と3、さらに両隣の1と4を使用して3次曲線を作り出す。次に図13の点線のように3から4の間の座標は、両隣の3と4、さらに両隣の2と5を使用して3次曲線を作り出す。両隣とさらに両隣の最低4点を使用することにより、円Qの位置が折れ曲がっているように見えなくなる。こうすることで格子点の位置が大きくずれていても、折れ曲がりが少なくなる。
以上のように隣接する2つの格子点と両隣の2つの格子点の最低4つの格子点を採用することにより、曲線誤差が軽減されることが分かる。よって、隣接する2つの格子点と両隣の2つの格子点の最低4つの格子点が存在しない端の領域は、後述するとおり格子点を格子点や格子線より予測して設定し、隣接する2つの格子点と両隣の2つの格子点の最低4つの格子点を存在させる。または、その格子点では補正せず、違う向きに設置した方眼面での格子点により補正させることを考える。
[正面画像の画像変換]方眼は平面なのでカメラの映像の取得範囲が180度以上になる場合には、一つの方眼ではカメラ映像のすべての範囲を歪補正することができない。そのため、カメラに対する方眼の向き位置を変えて設置し、複数の向きの面での補正値を用意する。すべての方向が補正できるようにするには、四面体のように最低4面必要となる。だが、ここでは、重複領域がある程度多い方が正しく補正でき、方眼画像を取得するときに取得する方向が簡単という理由で、四面体ではなく正六面体で補正値の面を用意することにする。
先ず、図14に示すように、正面の画像を取得し、格子点を検出し、色情報ではなく(x,y)の座標情報(ルックアップテーブル)として展開する。このとき、方眼の端は隣接する格子点の両隣に格子点がないため、誤差の大きい領域である。この領域は極力使わないようにする。
[上下左右画像の画像変換]次に、図15(a)に示すように、上下左右の画像をそれぞれ取得する。先ず、上下左右の画像についてそれぞれ表示範囲外まで方眼を配置する。そのとき、方眼の線が表示範囲の境界と平行や直角ではなく斜めに見えるように配置させる。後述する方眼の線の伸びから格子点を予測するためである。また、違うカメラとの補正領域が重複する部分を多くするために、方眼面を真横や真縦ではなく少しカメラの視点を向くようにしてもよい。
次に図15(b)のように視点変換する。理由は、向きがそれぞれ上下左右となっているため、正面の方向に向かうほど方眼が小さくなり、格子点を検出しづらくなるためである。計算の場合わけを減らすために、視点変換後の画像は、図15(c)のように同じような向きの画像になるように変換する。そして図15(d)のように格子点を見つけてから、元の視点位置に変換する。そうすることにより、方眼の小さい領域も大きくなるため格子点が検出しやすくなる。
尚、格子点を見つけるときの座標の右下方向をx座標、左下をy座標とし、画像の変換方向を決定する(図15(e))。そうすることにより、変換後の画像の左上が表示される画像の端と決めることができる。
視点変換は一般的な方法である、4つの元の座標(x, y)と行き先の座標(X, Y)を指定して、下記の式になるようにA,B,C,D,E,F,G,Hの連立方程式を解く。導き出された下記の式により、画像が変換される。
X=(A・x + B・y + C)/(G・x + H・y + 1)
Y=(D・x + E・y + F)/(G・x + H・y + 1)
[格子線による格子点位置の予想]次に、表示範囲のすべてを補正できるように、表示範囲外の格子点を予測する。正しく予測するためには、表示範囲の境界付近の画像の歪みの複雑さに対して細かい方眼である必要がある。まず、格子点から線が伸びていて、その先に格子点が特定できていない場合を説明する。
図16(a)のように、格子点から伸びている線があり、その線の先に格子点が見つかっていない線を見つけ、その線の先端の座標を特定する。座標の特定方法は、図7の格子線を伝って交差する格子線を見つける方法と同じだが、見つかる格子線が太すぎる場合は表示範囲外として、そこまでをその線の先端とする。見つけた先端と、その格子線上の手前の格子点を複数個(たとえば2個)選択しておく。
また図16(a)のように、見つけたい格子点に対して、上記の格子線と交差する格子線に対しても同様に、格子線の先端とその手前の格子点複数個(例えば2個)選択しておく。先端がない場合は、見つけたい格子点の手前の格子点の複数個(例えば3個)でもよい。
上記の2つの格子線上の複数の頂点により、格子点を計算させる。計算方法は前述したが、格子点に伸びている格子線上の頂点が、格子点に対して逆側に存在しないため誤差が大きくなる。そのため、最小2乗法などで計算誤差を減らしてもよい。
[格子点による格子点位置の予想]次に、格子点から伸びている線からだけでは、画像の端まで補正しきれない。そのため、図17(a)で示すように、格子点のみから格子点を予測する。さらに予測した格子点からも予測する。予測する際の格子点の選び方は、交差する2つの格子線のほかに、図17(b)のように、格子線ではなく斜めに進んだ格子点から擬似的な格子線上の格子点を選択してもよい。また、複数斜めにずらした擬似的な格子線上の格子点を選択してもよい。例えば、図17(c)のように1つ目は縦横に2つずれた格子点を、また2つ目は1つずれた格子点を選択するようにする。
また、格子点をn+1個用意し、xとyのそれぞれの座標に対して、予想したい格子点の隣をX=1,さらに隣をX=2と1ポイントずつ増やしていって、Y=(Xのn次式)を作成し、その式でのX=0での値を予想したい格子点としてもよい。また複数からの方向からの計算結果を平均するなどして誤差を減らしてもよい。
[予測した格子点位置の補正]次に予測した格子点が正しいかを伸びている方眼の線より確認し、正しくない場合は補正する。つまり図18の四角で囲った番号1〜5の手順で補正する。以下、1〜5の手順を説明する。
1.予測した格子点も含め、隣接する格子点とさらに両隣の最低4頂点により歪補正した状態のx,yの座標を、ルックアップテーブル(LUT)として用意する。x,yは画像からはみ出す領域(横幅がw,縦幅がhとした場合x<0,y<0、x>=w,y>=hも許容する)も格納しておく。
2.x,yの座標から読み取った輝度情報を格納したTable(画像)も用意する。黒い領域は表示範囲外であり、点線部は歪のある領域であり、斜線部は隣接する格子点の両隣りに格子点が無く誤差の大きい領域である。
3.予想の格子点の右隣と下隣に予想ではない格子点がある場合、予想ではない格子点から伸びている2つの格子線の先端が真横・真縦に伸びるようにする。処理方法として、格子線の先端とその先端元となる格子点が作る直線を、右側と下側で両方作り出す。その直線の交わる位置の座標を予想の格子点位置の座標として上書きし、その値を使って再度歪補正を行う。それを繰り返して、真横・真縦になるように補正する。右か下のどちらかの格子点から線が延びていない場合は、そちら側はずれていないと仮定して処理させる。
4.予想の格子点の右隣に予想ではない格子点があり、さらに右隣に予想ではない格子点がある場合、予想ではない格子点同士からなる線分が直線か判定する。例えば、中間の座標の縦の位置がずれていないか確認する。確認してずれている場合は、予想の格子点が線分のずれ方向に対して逆側にずれているからである。そのため、線分が直線になるように、予想の格子点から線分のずれに対して逆側に何倍か(2倍とか)ずらした位置の座標を、予想の格子点位置の座標として上書きし、その値を使って再度歪補正を行う。それを繰り返して、真横になるように補正する。下側も同様に補正する。
5.上記のように右側の線分を直線にした場合、予想ではない格子点から予想した格子点へ伸びる線が、真横に伸びないことがある。これは、予想した格子点の左側の予想した格子点がずれているためである。そのため、予想ではない格子点から予想した格子点へ伸びる線が、縦にずれた方向に対して逆方向に数倍(3倍とか)、予想ではない格子点の左側の予想ではない格子点の座標からずらした位置の座標を、予想ではない格子点の左側の予想ではない格子点の座標として上書きし、その値を使って再度歪補正を行う。そのとき、左や上の位置から座標を取得するときは、選択できる座標に余裕を持たせるために、その左か上の隣の予想の格子点もずらした位置の座標を取得して補正させる。それを繰り返して、真横になるように歪補正をする。下側も同様に補正する。
上記3、4、5の処理を複数回繰り返し、最後に手動で見ながら補正を行ってもよい。
[それぞれのルックアップテーブル(LUT)の位置関係]カメラの位置がLUTに対して特定されるように、方眼に対して決められた位置にカメラを設置することにより、LUTの視点位置を特定する方法もあるが、後述するように2つのLUTにより視点を特定する方法もある。また、それぞれのLUTの位置関係を決定するためには、カメラ位置だけではなく、相対的な面の向きも特定する必要がある。カメラ位置に関しては相対的に方眼から距離を離せばその分位置精度は高まるが、向きに関しては簡単には決まらない。そのためそれぞれのカメラの向きをLUTより特定する必要があるが、まず2つのLUTにより視点位置を特定する方法を説明する。
[LUTの視点位置特定]正面と上下左右のそれぞれ単体での格子での補正によるLUTは作成したので、次はそれぞれのLUTの関係性から、LUTの視点を特定する。格子画像は真横や真縦になるべく配置するが、配置誤差を持っているのでそれを考慮する。LUTの視点の特定は、視点を決め打ちしてLUTの関係の誤差が少なくなるところに追い込んでいき特定する方法を用いる。
最初にLUTの座標系を決めておく。座標系を図19のようにする。図19のような回転方向での計算式は下記のようになる。
x軸中心回転
x’=x、
y’=y・cos(α)+z・sin(α)、
z’=−y・sin(α) +z・cos(α)
y軸中心回転
x’=x・cos(β)+z・sin(β)、
y’=y、
z’=−x・sin(β)+z・cos(β)
z軸中心回転
x’=x・cos(γ)+y・sin(γ)、
y’=−x・sin(γ)+y・cos(γ)、
z’=z
[正面のルックアップテーブル(LUT)の向き補正]正面のLUTは、z=0の面にし、+z方向を向かせて配置する。LUTの座標などにより、正面のLUTの面の向きがずれているとわかっているなら、向きを補正してz=0の面にカメラの座標を展開しておいてもよい。例えば、図20のように、誤差のない魚眼レンズのカメラを想定した場合、LUTの中心が決まっていて、中心に対する上下左右の座標のずれも決まっている。
その場合、上下左右の4座標に当てはまる座標が正面のLUTのどこになるかを特定する。その特定方法は、ある点を出発点として、近接する上下左右、左上、右上、左下、右下の8つの座標より、目標点との誤差が一番小さい方へ移動していくことにより目標点を求める。導き出した座標から下記の変換式を導き出し、その座標に入っているカメラの座標を展開させる。
X=(A・x + B・y + C) / (G・x + H・y + 1)
Y=(D・x + E・y + F) / (G・x + H・y + 1)
とすることにより、正面のLUTがカメラに対して真正面として使用できる。
[2つのLUTより視点位置の特定(誤差最小での方法)]次に、視点を決め打ちしてLUTの関係の誤差が少なくなるところに追い込んでいき特定する方法を説明する。例えば、図21に示すように、LUT GAをz=0の面に配置する。次に視点を(−1,0,1)とし、視点から見てLUTの右側の真ん中に印MA(0,0,0)を配置する。その印に対して、真上に印MB(0,−1,0)、真下に印MC(0,1,0)があったとする。
図22のように、別のLUT GBで適当に3つの印を直線になるように配置し、真ん中をNA、片側をNB、片側をNCとする。そうした場合、視点から見てMAとNA、MBとNB、MCとNCがそれぞれ一致するように、LUT GBの面の位置や向きを変えた場合、3つの印を軸としての回転は許された状態でGBの面の位置と向きが決定される。
また、図23のように、LUT GBの大きさを縦横同じ比率で変更可能とした場合、MAとNAを同じ位置に配置しても、LUTの大きさを変えることによってMBとNB、MCとNCが視点から見て同じ位置に見えるにすることができる。このときも3つの印を軸としての回転は許される状態である。
以上の状態より、MAとNAを(0,0,0)にしたまま、倍率を戻し、y軸回転してx=0にし、x軸回転してz=0にした状態は、NA,NB,NCがy軸上に並んだ状態になる。面はNA,NB,NCを軸として回転が許される状態である。つまり、y軸回転が許されている状態である。3点のほかにx=0とはならない点を用意することにより、そのy軸回転の特定を可能とさせる。
以上により、正面のLUTに対して縦に並んだ3点と、ほかに1点を用意し、その4点をほかの向きの面での位置を特定すれば、視点からのその面の向きを特定することができるようになる。つまり、図24に示すようになる。図24の四角で囲った番号1〜8の順に説明する。
1.正面のLUT(z=0の面としておく)に対して直線に並んだ3点(真ん中のMAと、MB,MC)と、別に1点(MD)を用意する。
2.別向きのLUT(z=0の面としておく)での、同じ座標となる3点(NA,NB,NC)と1点(ND)の位置を特定する。
3.正面のLUTの直線に並んだ3点の中心の点(MA)が(0,0,0)となるように平行移動させる。
4.正面のLUTのMBが真上、MCが真下(逆でもよい)になるようにz軸回転させる。
5.別向きのLUTの特定した3点の中心を(0,0,0)となるように平行移動させる。
6.別向きのLUTの3点が正面のLUTと同じ縦列(上が上、下が下)になるようにz軸回転させる。
7.別向きのLUTの4点を、φ分y軸回転させ、α分x軸回転させ、β分y軸回転させ、座標をT倍させる。
8.視点からの正面のLUTでの4点と、別向きのLUTの4点が一致して見える。つまり、正面のLUTでの位置を補正した点をM(mx,my,mz)、別向きのLUTで位置と向きと拡大率を補正した点をN(nx,ny,nz)とし、視点をV(vx,vy,vz)とすると、
(mx−vx)/(mz−vz)=(nx−vx)/(nz−vz)…(1)
(my−vy)/(mz−vz)=(ny−vy)/(nz−vz)…(2)
が成り立つことになる。
以上の計算により、面の向きを特定できる。面の向きを特定する方法は下記1〜5のようになる。
1.別のLUTの3点が正面のLUTと同じ縦列(上が上、下が下)になるようにz軸回転まで行った後の座標をP(px,py,pz)とする。その座標をφ分y軸回転させ、α分x軸回転させ、β分y軸回転させ、座標をT倍させて下記のような式を作成する(pz=0)。
nx=T・(px・cos(φ)・cos(β)−py・sin(α)・sin(β)−px・sin(φ)・cos(α)−sin(β))
ny=T・(py・cos(α)−px・sin(φ)・sin(α))
nz=T・(−px・cos(φ)・sin(β)−py・sin(α)・cos(β)−px・sin(φ)・cos(α)・cos(β))
また、縦列の上下2点はpx = 0であるため下記のようになる。
nx = T・(−py・sin(α)・sin(β))
ny = T・(py・cos(α))
nz = T・(−py・sin(α)・cos(β))
2.(1)式に上記の式を代入すると分かるが、βは視点位置から(0,0,0)へのzに対するxの角度であるため、下記のようになる。
β=atan2(vx, vz)、(atan2(a,b)は−π〜+πのbに対するaのタンジェントを返す式)。
3.縦列の上下の2点を(2)式に代入し、T・sin(α)とT・cos(α)の連立方程式を解き、αとTを求める。
4.縦列上の点ではない点を(2)式に代入し、決定されたパラメータを代入し、A0・sin(φ) +A1・cos(φ)+A2=0の式を作成する。
5.三角関数の合成公式によりφを導き出す。ただし、この頂点は縦の3点に対して同じ方向にあるため、φは−π/2より大きくπ/2より小さい必要がある。また、φは2つ解が得られるが、LUTの配置上0度に近い値となるため0に近い値の方を選ぶ。三角関数の合成公式は下記のとおりである。
a・sin(θ)+b・cos(θ)=sqrt(a・a+b・b)・sin(θ+θ0)、
ただし、cos(θ0)=a/sqrt(a・a+b・b)、sin(θ0)=b/sqrt(a・a+b・b)
a・sin(θ)+b・cos(θ)=sqrt(a・a+b・b)・cos(θ−θ1)
ただし、sin(θ1)=a/sqrt(a・a+b・b)、cos(θ1)=b/sqrt(a・a+b・b)
以上により、別のLUTの位置と向きと拡大率(視点からの(0,0,0)に対する奥行き)が特定される。
視点を特定することにより、別のLUTの位置と向きと拡大率が特定される。しかし、視点を正しくない位置に設定した場合、ほかに点を設定して視点からの位置を確認すると、ずれた位置に見えることになる。その特性を利用し、仮に視点を設定して4点で調整し、4点に対して相対位置が決められた配置の別の点(ME)が、どれだけ位置ずれしているか(どれだけ角度がずれているか)の誤差を確認し、誤差が最小となる視点に追い込んでいく。そうすることにより、視点が特定される。そのとき、最初の正面の縦の3点(MA,MB,MC)と他の1点(MD)と誤差確認用の1点(ME)の設定位置は、別の画面でも同じ座標が存在する必要がある。
そのため上下左右にLUTがある場合、例えば、図25のようにMA,MB,MC,MD,MEの位置を、上のLUT用、下のLUT用、左のLUT用、右のLUT用に設定する。同じ計算式が使用できるように、MAが(0,0,0)でMBとMCが縦に配置されるようにz軸回転させると同時に、仮に設定する視点も同様な位置ずらしとz軸回転を行う。そして視点を特定するための誤差を計算させる。誤差は正面とは別の向きの4つLUTによる誤差の合計でもよいし、1つのLUTによる誤差で計算してもよい。そうすることにより視点を特定する。
また、精度を出すために、MA,MB,MC,MD,ME配置の形を変えず大きさ(距離)を変えて、複数の配置により計算して誤差が一番小さくなる位置を視点としてもよい。このとき、LUTの配置の大きさが変わるため、その大きさによって誤差を正規化させてもよい。また、複数の座標を設定してそれらの誤差の合計により視点を特定してもよい。また最小2乗法や特異値分解法などを用いてもよい。
[2つのLUTより視点位置の特定(無限遠点での方法)]誤差を最小に追い込んでいく方法では処理に時間がかかる。そのため、別の方法である無限遠点を使用する方法を以下の1〜10の手順にて説明する。
1.まず、無限遠点を作り出すための座標を設定する。使用するLUTは正面と右側とする。誤差最小での方法と同様に正面のLUTをz=0に配置し、任意の位置の頂点であるMA(0,0,0)を配置し、その真縦に等距離にMB(0,−a,0)、MC(0,a,0)を配置する。
2.MAの真横に等距離にMD(−b,0,0),ME(b,0,0)を配置する。
3.正面に設定したそれぞれの頂点(MA,MB,MC,MD,ME)と同じとなる座標が、右のLUTでどこの位置になるか導き出す(NA,NB,NC,ND,NE)。このときNAは、NBとNCからなる直線と、NDとNEからなる直線の交点としてもよい。
4.NAが(0,0,0)、NBが真上(0,負の数,0)となるように右のLUTを移動、回転する。
5.図26のようにそれぞれの座標位置を導き出す。
NBとNEからなる直線と、NCとNDからなる直線との交点OAの位置を導き出す。NBとNDからなる直線と、NCとNEからなる直線との交点OBの位置を導き出す。OAとOBからなる直線と、NBとNCからなる直線との交点OCの位置を導き出す。OAとOBからなる直線と、NDとNEからなる直線との交点ODの位置を導き出す。
6.誤差最小と同様な回転、倍率変更を下記のように処理方法を用意する。座標をP(px,py,pz)とする。その座標をφ分y軸回転させ、α分x軸回転させ、β分y軸回転させ、座標をT倍させて下記のような式を作成する(pz=0)。
nx=T・(px・cos(φ)・cos(β)−py・sin(α)・sin(β)−px・sin(φ)・cos(α)・sin(β))
ny=T・(py・cos(α)−px・sin(φ)・sin(α))
nz =T・(-px・cos(φ)・sin(β)−py・sin(α)・cos(β)−px・sin(φ)・cos(α)・cos(β))
また、縦列の上下2点はpx=0であるため下記のようになる。
nx=T・(−py・sin(α)・sin(β))、
ny=T・(py・cos(α))、
nz=T・(−py・sin(α)・cos(β))
7.上記のような回転倍率変更処理をしたOCのx座標が視点のx座標となり、同様の処理をしたODのy座標が視点のy座標となる。正面のLUTではMBとMEからなる直線と、MCとMDからなる直線は平行であるため、その2直線の交点は存在しない。だが、面の向きが違う右のLUTでは平行とならず1点に収束する。それが無限遠点となり、視点の位置になる。OCの座標を(0,OCy,0),ODの座標を(ODx, ODy,0)とすると、視点V(vx,vy,vz)は、
vx=T・(−OCy・sin(α)・sin(β))、
vy=T・(ODy・cos(α)−ODx・sin(φ)・sin(α))、
vz=T・(−Cy・sin(α)・cos(β))
となる。
8.視点からのy座標が同じに見えるため、
(my−vy)/(mz−vz)=(ny−vy)/(nz−vz)より、
ny, nz, vy, vzを代入して、NBとNCが該当するようにpx=0とすると下記の式が得られる。
(OCy−ODy)・py・T・cos(α)+py・ODx・T・sin(φ)・sin(α)=(OCy−py)・my
NB(MB)とNC(MC)の座標を代入し、T・cos(α)とT・sin(φ)・sin(α)の連立方程式を解く。得られた解によりvyが導き出される。
9.上記のやり方ではMA,MB,MCがNA,NB,NCと視点から同じ位置に見え、NBとNCからなる直線を軸とした回転がある状態であった。次に、vxを導き出すためにMA,MD,MEがNA,ND,NEと視点から同じ位置に見え、NDとNEからなる直線を軸とした回転がある状態にする。つまりy軸とx軸を入れ替えた処理をする。
3までの処理を行った後、NDが真左(負の数,0,0)になるように右のLUTを移動、回転する。次に5と同様にOA,OB,OC,ODを導き出す。次に上記の方法とはx軸回転とy軸回転が逆になるが、座標をφ’分x軸回転させ、α’分y軸回転させ、β’分x軸回転させ、座標をT’倍させる。その式より、vyを導き出した方法と同様に処理をしてvxを導き出す。
10.次に視点のz座標(vz)を導き出すために、前述した誤差が最小となる方法を用いる。
上記の計算は無限遠点の値が小さくなるように、正面のLUTをある位置を基準に回転や移動をしておいてもよい。その場合、正面のLUTを元の状態で使用する場合には、導き出された視点は、回転させた分や移動させた分を逆に回転、移動する必要がある。
また、複数のLUTから視点を複数導き出し、平均などして視点を決定してもよい。また、複数の座標を設定してそれらの誤差の合計により視点を特定してもよい。また最小2乗法や特異値分解法などを用いてもよい。
[正六面体にLUT展開]次に、それぞれのLUTがばらばらに配置されていると計算上扱いづらいため、正六面体の中心に視点を置き、それぞれの面に展開させる。視点位置は(0,0,0)とする。正面のLUTに対しての視点位置が特定できている場合、正面のLUT以外に対しては視点位置を特定しなくても、下記の変換式を使用することにより正六面体のそれぞれの面にLUTを変換させて貼り付けることができる。
X=(A・x+B・y+C)/(G・x+H・y+1)
Y=(D・x+E・y+F)/(G・x+H・y+1)
そうした場合、正六面体のそれぞれの面に貼り付けた変換後のLUTに対しては、それぞれの面に対する視点位置は特定されることになる。
具体的な貼り付け方法として、図27のように、正面のLUTは回転させていないので、視点のx座標,y座標を中心として、視点から正面のLUTまでの距離をaとした場合、2aの高さと幅が、正六面体の面になるように大きさを変更してz=−aの面に張り付ける。このとき、正六面体の面より広く展開する。
次に、図28のように、別向きのLUTを貼り付ける。例として別向きのLUTを右のLUTとする。右のLUTの移動と回転と拡大率を変更したものを、視点からの角度から正六面体の右側(x=aの面)のどの座標であるかを4座標分導き出す。その座標から下記の変換式を導き出し、その座標に入っているカメラの座標を展開させる。このとき、正六面体の面より広く展開する。
X=(A・x+B・y+C)/(G・x+H・y+1)
Y=(D・x+E・y+F)/(G・x+H・y+1)
または、図29に示すように、視点から正六面体の右面を通り正面のLUTの面に到達したところにある座標を求める。その座標に対する右のLUTの座標の位置を特定する。それを4座標分行い、正六面体の右面を通った位置になるように上記の変換式を導き出し、その座標に入っているカメラの座標を展開させる。このとき、正六面体の面より広く展開しておく。このとき面のつなぎ目が極力同じになるように正面のLUT上の4つの頂点は、正六面体の正面の右上角SA(a,−a,−a)、正六面体の正面の右下角SB(a, a,−a)、上のLUTと右のLUTのつなぎ目(b,−b,−a)、下のLUTと右のLUTのつなぎ目(c, c, −a)を選んでもよい。このとき、aは視点から正面のLUTまでの距離、b>a、c>aとする。
以上、右のLUTに対して補正処理を行ったが、上のLUT、下のLUT、左のLUTも同様の処理を行う。その場合、正面のLUTを回転させて処理をすることにより、ほぼ同じ処理で展開することができる。
[LUTのつなぎ目の補正]次に、面のつなぎ目の誤差を補正する。それぞれの面のつなぎ目は、通常誤差を持った状態になる。このままでは、実際表示させたときに、LUTの途中でずれた表示になってしまう。それを補正するために図30のような処理をする。図30の処理を以下の手順1〜11で説明する。
1.図30(a)のように、それぞれの面のつなぎ目の中間値を用意する。角の場合は3点の中間値を用意する。角の3点は極力同じ値になるように、LUTの補正時の4頂点から視点変換の際に、視点変換の頂点に選んでおく。また、図30(a)ではつなぎ目は展開先の正六面体の辺上だけだが、それぞれの辺の延長線上も補正対象とし、中間値を用意する。図30(a)では裏面に表示領域がないため5面で処理しているが、裏面にも表示領域がある場合は、そこの面も対象となる。
2.中間値を作成したら、それぞれの方向の面のLUTごとに処理を行う。
3.図30(b)のように下のLUTを例にして説明する。まず、e0のデータを作成することを考える。ちなみにa0とd5は同じ値である。画素A0でのずれ量は中間値との差分である(a0−A0)である。
4.A0付近の誤差補正基準となる画素の、補正する位置からの位置ずらし量(x, y)を特定する。基準の画素とするのは、A0付近(画素の位置をずらす大きさを決めておく)でx座標, y座標ともに一番画素ずれの大きい位置 (x座標、y座標の小さいほうのずれが一番大きい方向)を複数確認して決定する。このとき、あまりA0に対して遠い位置で基準位置を決定すると、基準位置が存在しないことがあり、逆に、あまりA0に対して近すぎると、座標のずれが小さすぎて計算誤差によって補正できないので注意する。
また、より正しい予測ではない画素を使用するために、正面のLUT寄りを基準位置として探してもよい。複数の画素で基準の画素を確認する理由は、中間値がずれていても、計算に使用する基準の画素の座標がずれていないと、補正誤差が大きくなるためである。ちなみに、LUTは六面体の面より広く存在しているため、つなぎ目より外側の画素も検索範囲となる。
5.誤差補正基準の画素の値に対して、ずれの割合を計算する。基準の画素をA2とした場合、基準の画素の方向は(+2,0)であり、e0のずれの割合は、
(a0−A0)/(A2−A0)となる。
6.中間値があるところに関して、誤差補正基準の画素の補正する位置からの位置ずらし量(x, y)と、ずれの割合を計算する。
7.中間値がないところでは、同じ辺上の一番近い場所の、誤差補正基準の画素の補正する位置からの位置ずらし量(x, y)をずれの割合とする。
8.同じ辺に中間値がない場合には、面の反対側の辺(線対称)の値、もしくはずれの割合を0とする。
9.面の反対側に値が入っていない場合には、ずれの割合を0とする。
10.補正させるために必要な、誤差補正基準の画素の補正する位置からの位置ずらし量(x, y)と、ずれの割合が決定されたので、線形補完で補正量の計算を行う。(0,0)をLUTの左上(A0の位置)とし、補正したい画素位置を(X, Y) (図30(b)では(2, 3))とし、そのデータを(Ix(X,Y),(Iy(X,Y))とする。画素の横幅をw, 縦幅をh(図30(b)ではともに6)とする。そうした場合、補正量は
補正量(x)=erx・(Ix(X+edx,Y+edy)−Ix(X,Y))・((h−1)−Y)/(h−1)
+frx・(Ix(X+fdx,Y+fdy)−Ix(X,Y))・(X)/(w−1)
+grx・(Ix(X+gdx,Y+gdy)−Ix(X,Y))・(Y)/(h−1)
+hrx・(Ix(X+hdx,Y+hdy)−Ix(X,Y))・((w−1)−X)/(w−1)
補正量(y)=ery・(Iy(X+edx,Y+edy)−Iy(X,Y))・((h−1)−Y)/(h−1)
+fry・(Iy(X+fdx,Y+fdy)−Iy(X,Y))・(X)/(w−1)
+gry・(Iy(X+gdx,Y+gdy)−Iy(X,Y))・(Y)/(h−1)
+hry・(Iy(X+hdx,Y+hdy)−Iy(X,Y))・((w−1)−X)/(w−1)
となる。ただし、
e =−y方向の補正データ(図30(b)ではe2)
edx=eでの位置ずらし量(x)、
edy=eでの位置ずらし量(y)、
erx=eでのxのずれの割合、
ery=eでのyのずれの割合、
f=+x方向の補正データ(図30(b)ではf3)
fdx=fでの位置ずらし量(x)
fdy=fでの位置ずらし量(y)
frx=fでのxのずれの割合
fry=fでのyのずれの割合
g=+y方向の補正データ(図30(b)ではg3)
gdx=gでの位置ずらし量(x)
gdy=gでの位置ずらし量(y)
grx=gでのxのずれの割合
gry=gでのyのずれの割合
h=−x方向の補正データ(図30(b)ではh2)
hdx=hでの位置ずらし量(x)
hdy=hでの位置ずらし量(y)
hrx=hでのxのずれの割合
hry=hでのyのずれの割合
である。つなぎ目より外側(正六面体の面外)にもデータはあるので、同じ計算処理で補正量を決定する。
11.すべての画素の補正量が計算されたら、入っている値に加算する。
[格納する頂点、またはn次式の特定]次に、完成した座標の入ったLUTから、格納しておくための擬似格子点を選ぶ。展開されたLUTをそのままメモリに格納しておいてもよいが、格納しておくメモリを少なくするために、格子点のみ格納しておき、中間の座標は格子点からn次式で展開して計算させる(ここまでは特許文献1と同じ)。しかし、画像にもともとあった格子点の座標では、移動や回転やサイズ変更などが行われ正方形とはなっていないため、計算しづらくなる。
したがって、移動や回転やサイズ変更したLUTを利用する。図31のように正六面体の面の幅を整数(図31では8)で分割し、正方形に分割した頂点を格納する値とする。その際、正六面体の辺上より外側の1点分は選ぶようにする。また、表示範囲外になる領域に関しては、表示外までの曲線が正しくなるように、隣の頂点が表示範囲外となる頂点より表示範囲の外側の2点は選ぶようにする。表示範囲外かの判定は、予想格子点補正時に格子線の存在範囲を取得しておき判定する。
もしくは表示範囲を気にせず、外側の一点分まで取得する。そうすることにより、表示範囲内は近接する頂点とその両隣の最低4点は選ぶことになるので、歪みの少ない画像として展開することができるようになる。また、近接する格子点の両隣に格子点がなかった領域は予測の座標なので誤差が大きい。そのため、頂点の範囲外になるようにLUTを大きめに取得しておく。
以上のようにそれぞれの面について行い、頂点を格納する。このような格納をするのであれば前述したLUTのつなぎ目の補正は、格納する頂点だけ行ってもよい。また、このとき、特許文献1のように頂点を格納するのではなく、頂点から得られる曲線であるn次式を格納しておいてもよい。そうすることにより多少メモリは必要となるが、LUTを展開する際にそのつどn次式を作成する必要がなくなるため計算量が削減される。また、頂点とn次式の両方を格納しておいてもよい。
[格納した頂点、またはn次式より画像の展開]次に、図32のように、頂点より画像を展開する。正六面体のそれぞれの面に対して、格納しておいた頂点でのn次式または格納しておいたn次式により、n次式で画像を変換しておく。近接する頂点とその両隣の最低4頂点を選ぶことができるので、歪みの少ない画像となる。その後、視点と展開したい画像の位置関係を用意しておく。そして、その位置関係に従って展開する。
展開方法は、まず、それぞれの方向の面に対して、視点から展開したい面への4座標を導き出す。そして、その座標から下記の変換式を導き出し、展開したい画像に展開する。
X=(A・x+B・y+C)/(G・x+H・y+1)
Y=(D・x+E・y+F)/(G・x+H・y+1)
次に実施形態の変形例について説明する。
通常、車両にカメラを設置する場合、それぞれのカメラの位置と向きを特定する。だが位置は固定で、向きだけを調整することがある。その場合、計算量の削減が可能となる。
つまり、図33(a)のように、1.事前に、正六面体を決められた位置に固定し(カメラ位置はその中心)、その座標(面方向、その面での位置(x(0〜1), y(0〜1))で、図33(b),(c)のように、複雑な形状の展開先(例えば球などのカーブ面に展開)の画像にLUTを配置しておく。複雑な形状は通常、多数の平面に分割して処理される。
2.図34に示すように、向きの調整結果により、固定された正六面体に、用意しておいた歪補正結果の正六面体をカメラの向きに合わせて歪補正結果を展開する。
3.2で固定された正六面体に歪補正結果が展開されたので、複雑な形状の展開先の固定された正六面体の座標が入ったLUTに、歪み補正結果を反映させる。そうすることにより、複雑な映像表示画面への座標の展開の計算を事前にしておくことが可能となるため、車両にカメラを設置し向きが特定されてからの計算量が削減される。
また、方眼をカメラの位置に対して固定して配置してもよい。逆に固定された方眼の位置に対してカメラを設置してもよい。その場合、それぞれの方向の方眼を別々で取得してもよいが、正面と上下左右(後ろも見えるカメラの場合は後ろも)の決まった位置に、線の部分以外は透けるように方眼を配置してもよい。そうすれば一度に全方位の歪み補正値を決定することができる。
透けさせる理由は、正六面体より外側の格子点も取得して誤差を減らすためである。その場合、それぞれの方向の格子線だとわかるように、それぞれの向きに対して色を変えてもよい。また、上下同士や左右同士は配置上交わることが無いので同じ色としてもよい。
また、カメラを正六面体の中心に配置した場合、カメラから見たそれぞれの方眼の交わり方は決まる。例えば、上下左右の面の無限遠線は正面画像の中心を通る直線になる。その特性を利用する。即ち、
1.図35(a),(b)のように、RGBの成分を正面と上下と左右の3つに分割して、それぞれの向きの方眼を作成する。このとき、上下の方眼と左右の方眼はその位置に配置するのではなく、正面画像の中心が無限遠点になるように視点変換された状態で、正面画像と同じ面に配置する。
また、撮像範囲外の格子点を予測するために、撮像範囲の境界で方眼が斜めになるように方眼を45度傾けておく。また、境界の形状に合わせて、傾ける角度を決定してもよい。図35の黒丸の位置が正面から前後左右に45度の位置と決めているので、それぞれの視点変換された画像は決められた画像位置に変換される。
2.図35(c)のように、3つに分けたRGBのそれぞれの成分を一つの画像として一つにする。
3.図35(d)のように、正面から45度の位置(図35の黒丸)の正方形の部分を正六面体の正面の画像とする。
4.上下左右も同様に面を作成する。
5.作成されたそれぞれの面を正六面体に貼り付けて、正面画像、上下画像、左右画像をRGBのそれぞれの成分のみで格子線、格子点を見つけて歪補正する。
以上のような処理により座標を特定することにより、正六面体の立体物にLUTを貼り付けるだけで、簡単に歪補正することが可能となる。
また、方眼の配置がカメラからの距離が変わってもカメラの角度に対しての位置が変わらなければよいので、球面や四面体などの違う形状の立体に画像を貼り付けて歪補正してもよい。また、正六面体に面を展開したが、もっと増やしても減らしてもよい。
また、レンズが大きい場合などでは、距離によって平面の歪み方が異なる。それに対応するために、地面などの遠い距離に方眼を配置すればよいが、それでは場所をとりすぎる。狭い範囲で処理をするために、下記の1〜4のような処理をする。
1.レンズ位置が固定されるようにカメラを設置する。
2.近い位置で方眼を配置し、歪補正をする。
3.近い位置での結果を用いて一度歪補正した状態で、遠い位置での方眼を歪補正する。ちなみに方眼が、カメラの角度に対して位置は変わらないように、遠い位置での方眼は近い位置に対して大きい方眼となる。遠い位置での歪補正の補正量は近い位置での歪補正との差分になるため、小さな補正値となる。また、遠い位置とは実際に表示されることが多い地面の位置にしてもよい。
4.下準備はできたので、別のカメラでの近い方眼での配置で歪補正する。その結果に用意しておいた遠い位置での補正値を反映させる。
以上のように遠い位置での補正値を反映させてもよいが、反映させた結果となるように近い位置の方眼を歪ませておいてもよい。また以下の1〜9のような変形例も適用することができる。
1.前後左右上下の全方位の見えるカメラに対して使用してもよい。
2.展開する面は六面体ではなく、四面体や角度座標などの球面に展開しておいてもよい。
3.ヘッドアップディスプレイなどのように、車両のフロントガラスに映像を映し出す装置に方眼画像を表示し、運転者の視点付近に設置したカメラ(ヘッドアップディスプレイの表示履歴記録用のカメラでもよい)で歪画像を取得して、その画像より同様な歪補正を行ってもよい。
4.ディスプレイに映すときの画像は、方眼の面と同じではなく向きを変えたり、球面に展開したりして表示する。その場合にも、ディスプレイに表示する展開後の座標を正方形に区切り方眼に見立てて、その頂点を格子点として格納、また、n次式の格子線として格納してもよい。その場合、ディスプレイの外側にも格子点を用意し、表示範囲の端の補正に使用し、歪誤差を極力減らす。
5.複数の温度毎の歪補正パラメータを取得しておいて、温度によってパラメータを切り替えるようにしてもよい。また、違う面に展開しておく場合にも、温度によって複数展開しておいて、温度によって切り替えられるようにしてもよい。また温度が、用意した2つパラメータの中間の場合は、温度によって2つのパラメータの有効率を変えて使用してもよい。
6.レンズの大きさが大きいと、物体の距離によって歪み方が異なる。そのため、物体や地面などの距離がある程度決まっている場合には、その距離になるように方眼を配置して歪補正処理をしてもよい。その場合、物体の距離にしたがって正六面体ではなく直方体になるように処理してもよい。その方が、見た目に歪が少なくなったように処理することが可能となる。歪補正値は直方体のまま使用してもよいし、正六面体に展開しておいて使用してもよい。
7.方眼を広い範囲に設置できない場合などには、カメラの向きをいろいろな方向に変えて複数の向きの方眼を取得しておいて、それぞれの方眼を合体させて一つの向きの大きい方眼を作成してもよい。このとき異なる4つの座標が別の方眼で同じとなる座標を見つけ出し、下記の計算式を利用して一つの向きの方眼として合体させる。また、つなぎ目のずれをなくすために、上述したつなぎ目の補正をしてもよい。
X=(A・x+B・y+C)/(G・x+H・y + 1)
Y=(D・x+E・y+F)/(G・x+H・y+1)
このとき、合体させる基準となる向きは、基本形態では上下左右と正面の5つの向きとする。また、基準となる向きの方眼同士で、それぞれの方眼を拡張して大きくさせてもよい。そうすることにより、それぞれの向きの方眼が広くなくても、別の向きの方眼で同じ座標が存在する領域を広くできるため、基準となる向きの方眼を大きくしなくてすむ。
8.画像の変換式である下記の式を、上述したn次式での方法で行ってもよい。
X = (A・x + B・y + C) / (G・x + H・y + 1)
Y = (D・x + E・y + F) / (G・x + H・y + 1)
9.レンズには色収差があるため、画素センサの色ごと(赤、青、緑、近赤外、遠赤外など)で歪補正してもよい。
図36は、以上述べた画像処理装置の全体的な動作を示すフローチャートである。図36において、S0は歪補正の開始ステップである。ステップS1は特定領域が広くなるレンズを使用しているか否かを判断する。特定領域が広くなるレンズを使用していない場合は、ステップS2で特定領域をn次式で拡大した画像を作成する。
ステップS3では、特定領域が広くなるレンズを使用して撮影した画像又は特定領域をn次式で拡大した画像を取得して画像データを転送する。ステップS4は方眼画像の方向分けループであり、ルックアップテーブル(LUT)を作成する。つまりカメラの向きに対して、複数の向きの方眼画像を取得する。
ステップS5では、撮像領域の境界で方眼線が斜めになるように方眼を設置して、格子点を読み取り、ステップS6では読み取った格子点より、撮像範囲外の格子点を予測する。ステップS7では格子点よりn次式で画像を変換し、ステップS8では格子線の歪み方から予測した格子点を修正する。ステップS9からステップS4のステップに戻り、方眼画像方向分けループを繰り返す。こうして、格子点の見えない領域の格子点を予想して、画像の端のルックアップテーブル(LUT)を補正する。
ステップS10はLUTの視点が特定できているか否かを判断し、特定できていない場合は、ステップS11において、複数(最低2枚)の向きの歪補正したLUTより、カメラの視点を特定する。ステップS12では、特定されたLUTの視点に対して、決まった面の向きに複数のLUTを用意する。例えば正六面体の位置になるようにLUTを移動・回転する。
ステップS13では、用意したLUTを用いて、見たい方向の歪を補正する。つまり正六面体の境界線上でのLUTの座標がずれないように補正する。ステップS14では、補正されたLUTより、その座標を一定の間隔に間引いて面毎にLUTに格納する。また正六面体外の頂点の座標を格納する。もしくは上記の頂点の座標から得られるn次式を格納する。もしくは頂点とn次式の両方を格納する。ステップS15では、歪み補正された画像を表示部に表示し、歪み補正を完了する。
以上述べたように本発明の実施形態によれば、必要な領域の解像度をあげるため、全体の情報量を増やすことなく必要な解像度が得られ、伝送のための情報量も減らすことができる。また、情報量が減るため計算付加を減らすことができる。
また縦横それぞれの計4つのn次式を関連付けて計算させることにより、歪が大きい場合にも正しく補正することができる。歪が大きい場合にも正しく補正されるため、より広い範囲の格子点でも対応できるようになり、保存する格子点を少なくすることができる。
また、周りのn次式を作り出すために頂点は、画像の端でも余分に格子点を格納することにより、近くの2頂点とその両隣の2頂点を採用し最低3次式にする。または、計算量削減のためにその頂点から得られるn次式を格納しておくことにより、歪が大きくても正しく補正される。また、隣に格子点がない領域に余分に格子点を用意する代わりに違う面を用意することにより、より広い範囲で正しく歪補正することができるようになる。
さらに、複数の方向のLUTを取得して関連付けることにより、180度以上となるカメラ映像にも補正値を用意することができる。また複数の方向のLUTにより、LUTの視点位置を特定することができる。また画像の表示範囲外の格子点を予測するため、画像の端も使用できるようになる。
尚、以上の実施形態では、車両用のカメラで撮像した画像を処理する例について述べたが、監視カメラ等で撮像した画像の処理に適用することもできる。また以上の説明に限定されることなく、特許請求の範囲を逸脱しない範囲で種々の変形が可能である。
10…画像処理部
11…レンズ
12…撮像素子
13…データ変換部
14…信号処理部
15…画像メモリ
16…画像送信部
17…補正パラメータデコーダ
18…特定領域拡大補正メモリ
19…制御マイコン
20…画像認識表示部
21…制御用のマイクロコンピュータ
22…信号処理部
23…補正パラメータデコーダ
24…歪み補正メモリ
25…制御マイコン
26…画像認識処理部
27…表示処理部
28…表示部
30…前処理部
31…補正パラメータエンコーダ
32…補正パラメータ導出部
40…ユーザI/F・車両環境部

Claims (7)

  1. レンズと撮像素子を含み、被写体を撮像するカメラと、
    前記カメラで撮像した画像をもとに特定の領域が広く見えるように、前記特定の領域の画像をn次式で拡大処理した第1の画像を取得する信号処理部と、
    前記カメラによって複数の向きの方眼画像を取得する方眼画像取得手段と、
    前記方眼画像の格子点を取得し、取得した複数の格子点を用いて、前記信号処理部からの前記第1の画像をn次式で引き伸ばし補正する歪補正手段と、
    前記歪補正手段によって補正した画像を表示する表示部と、
    を具備する画像処理装置。
  2. 前記方眼画像取得手段は、前記方眼画像を前記表示部に表示したときに、方眼の線が表示画像の表示範囲の境界に対して斜めになる方眼画像を取得することを特徴とする請求項1記載の画像処理装置。
  3. 前記歪補正手段は、
    前記方眼画像の前記表示範囲の外側の格子点を予測する予測手段と、
    前記予測した格子点を用いて前記方眼画像の端のルックアップテーブルを補正する補正手段と、
    前記複数の向きの補正したルックアップテーブルをもとに前記カメラの視点を特定する視点特定手段と、
    前記特定した視点に対して、予め設定した向きに対応配置した複数のルックアップテーブルと、を備え、
    前記複数のルックアップテーブルを用いて見たい方向の前記第1の画像の歪を補正することを特徴とする請求項記載の画像処理装置。
  4. 前記予測手段は、前記複数の向きの方眼画像を視点変換して、それぞれの複数の向きの方眼画像を同じ向きの画像に変換して格子点を予測することを特徴とする請求項3記載の画像処理装置。
  5. 前記歪補正手段は、前記特定された視点に対して正六面体の位置にそれぞれルックアップテーブルを配置することを特徴とする請求項3記載の画像処理装置。
  6. レンズと撮像素子を含み、被写体を撮像するカメラを備え、
    前記カメラで撮像した画像の特定の領域が広く見えるように、信号処理部で前記特定の領域の画像をn次式で拡大処理した第1の画像を取得し、
    前記カメラによって複数の向きの方眼画像を取得し、
    前記方眼画像の格子点を取得し、取得した複数の格子点を用いて、前記信号処理部からの前記第1の画像をn次式で引き伸ばして歪補正し、
    前記補正した画像を表示部に表示することを特徴とする画像処理方法。
  7. 前記歪補正は、
    前記方眼画像の表示範囲の外側の格子点を予測し、
    前記予測した格子点を用いて前記方眼画像の端のルックアップテーブルを補正し、
    前記複数の向きの補正したルックアップテーブルをもとに前記カメラの視点を特定し、
    特定した視点に対して、予め設定した向きに対応して複数のルックアップテーブルを配置し、
    前記複数のルックアップテーブルを用いて見たい方向の前記第1の画像の歪を補正することを特徴とする請求項6記載の画像処理方法。
JP2010228228A 2010-10-08 2010-10-08 画像処理装置及び画像処理方法 Active JP5715793B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010228228A JP5715793B2 (ja) 2010-10-08 2010-10-08 画像処理装置及び画像処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010228228A JP5715793B2 (ja) 2010-10-08 2010-10-08 画像処理装置及び画像処理方法

Publications (2)

Publication Number Publication Date
JP2012085026A JP2012085026A (ja) 2012-04-26
JP5715793B2 true JP5715793B2 (ja) 2015-05-13

Family

ID=46243443

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010228228A Active JP5715793B2 (ja) 2010-10-08 2010-10-08 画像処理装置及び画像処理方法

Country Status (1)

Country Link
JP (1) JP5715793B2 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9472023B2 (en) * 2014-10-06 2016-10-18 Toyota Jidosha Kabushiki Kaisha Safety system for augmenting roadway objects on a heads-up display
US9802539B2 (en) * 2015-04-01 2017-10-31 Robert Bosch Gmbh Distance and direction estimation of a target point from a vehicle using monocular video camera
KR101785027B1 (ko) 2016-01-14 2017-11-06 주식회사 라온텍 화면 왜곡 보정이 가능한 디스플레이 장치 및 이를 이용한 화면 왜곡 보정 방법
JP6473769B2 (ja) * 2017-02-24 2019-02-20 国立大学法人東京工業大学 補正量演算装置、補正装置及び補正量演算方法
WO2019049331A1 (ja) * 2017-09-08 2019-03-14 株式会社ソニー・インタラクティブエンタテインメント キャリブレーション装置、キャリブレーションシステム、およびキャリブレーション方法
US10657396B1 (en) * 2019-01-30 2020-05-19 StradVision, Inc. Method and device for estimating passenger statuses in 2 dimension image shot by using 2 dimension camera with fisheye lens
US20220148138A1 (en) * 2019-03-26 2022-05-12 Sony Semiconductor Solutions Corporation Vehicle-mounted camera apparatus and image distortion correction method
CN111915537A (zh) * 2020-08-13 2020-11-10 歌尔光学科技有限公司 图像处理方法及装置、图像采集装置和可读存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08256295A (ja) * 1994-12-21 1996-10-01 Olympus Optical Co Ltd 画像処理装置
JP4175832B2 (ja) * 2001-05-25 2008-11-05 松下電器産業株式会社 広角画像生成装置
JP2004159186A (ja) * 2002-11-07 2004-06-03 Sony Corp 監視用車載撮像システム

Also Published As

Publication number Publication date
JP2012085026A (ja) 2012-04-26

Similar Documents

Publication Publication Date Title
JP5715793B2 (ja) 画像処理装置及び画像処理方法
CN111750820B (zh) 影像定位方法及其系统
JP6859442B2 (ja) キャリブレーション装置、キャリブレーションシステム、およびキャリブレーション方法
JP6764533B2 (ja) キャリブレーション装置、キャリブレーション用チャート、チャートパターン生成装置、およびキャリブレーション方法
US9858639B2 (en) Imaging surface modeling for camera modeling and virtual view synthesis
KR101265667B1 (ko) 차량 주변 시각화를 위한 3차원 영상 합성장치 및 그 방법
US8587612B2 (en) Method and system for providing augmented reality based on marker tracking, and non-transitory computer-readable medium thereof
JP6079333B2 (ja) 校正装置、方法及びプログラム
JP2022514912A (ja) センサのキャリブレーション方法、装置、システム、車両、機器及び記憶媒体
JP5049975B2 (ja) 3次元モデルデータ生成方法及び3次元モデルデータ生成装置
EP3016065B1 (en) Coordinate computation device and method, and image processing device and method
EP1331605B1 (en) Omnidirectional visual system and method
CN107665483B (zh) 免定标便捷的单目镜头鱼眼图像畸变矫正方法
JP2012253758A (ja) 車両視覚システムの較正方法および車両視覚システム
CN113841384B (zh) 校准装置,用于校准的图表和校准方法
WO2015045329A1 (ja) 車両周辺画像表示装置及びカメラの調整方法
TWI602154B (zh) 環景影像的拼接方法及其系統
JP4679293B2 (ja) 車載パノラマカメラシステム
CN104881869A (zh) 一种移动平台上的实时全景跟踪与拼接方法
US20060008268A1 (en) Three-dimensional image processing apparatus, optical axis adjusting method, and optical axis adjustment supporting method
CN113793266A (zh) 一种多目机器视觉图像拼接方法、系统及存储介质
JP2014092922A (ja) 検出装置、検出方法及び検出プログラム
Rosebrock et al. Generic camera calibration and modeling using spline surfaces
KR101351911B1 (ko) 카메라의 영상 처리 장치 및 방법
JP4548228B2 (ja) 画像データ作成方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130925

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140526

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140603

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140801

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20141104

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141114

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150224

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150316

R150 Certificate of patent or registration of utility model

Ref document number: 5715793

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250