JP2014035589A - 魚眼画像の補正装置及び補正方法 - Google Patents

魚眼画像の補正装置及び補正方法 Download PDF

Info

Publication number
JP2014035589A
JP2014035589A JP2012175265A JP2012175265A JP2014035589A JP 2014035589 A JP2014035589 A JP 2014035589A JP 2012175265 A JP2012175265 A JP 2012175265A JP 2012175265 A JP2012175265 A JP 2012175265A JP 2014035589 A JP2014035589 A JP 2014035589A
Authority
JP
Japan
Prior art keywords
image
pixel
correction
fisheye
pixels
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.)
Granted
Application number
JP2012175265A
Other languages
English (en)
Other versions
JP5947143B2 (ja
Inventor
Naoko Omoto
直子 大本
Kunihiko Suzuki
邦彦 鈴木
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.)
Hitachi Information and Telecommunication Engineering Ltd
Original Assignee
Hitachi Information and Telecommunication Engineering Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Information and Telecommunication Engineering Ltd filed Critical Hitachi Information and Telecommunication Engineering Ltd
Priority to JP2012175265A priority Critical patent/JP5947143B2/ja
Publication of JP2014035589A publication Critical patent/JP2014035589A/ja
Application granted granted Critical
Publication of JP5947143B2 publication Critical patent/JP5947143B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Image Processing (AREA)

Abstract

【課題】魚眼画像を平面画像に補正する際のメモリアクセスに要する時間を減らし、処理時間の短縮を可能とする。
【解決手段】魚眼画像をラスタースキャン順に格納する入力画像フレームメモリ41と、平面画像の画素の画素座標から、それらの画素の画素座標に対応する魚眼画像画素の画素座標を求め、求めた魚眼画像の画素の画素座標を魚眼画像のラスタースキャン順に並び替え、魚眼画像の画素の画素座標と対応する平面画像をの画素の画素座標とを対応付けた入力座標順補正データを予め格納しておく補正情報メモリ421と、魚眼画像のラスターラインの複数ライン分のデータを格納するラインメモリ42と、ラインメモリ内の魚眼画像の複数画素の画素値と、前記入力座標順補正データとを使用して、魚眼画像のラスタースキャン順に、魚眼画像の画素値の平面画像の画素値への補正処理を行う補正処理部43とを備える。
【選択図】図5

Description

本発明は、魚眼画像の補正装置及び補正方法に係り、特に、魚眼レンズによって撮影された魚眼画像を平面画像に補正する魚眼画像の補正装置及び補正方法に関する。
魚眼レンズを使用して撮影された魚眼画像は、非常に広範囲を撮影した画像を得ることができる。しかし、魚眼レンズを使用して撮影された魚眼画像は、その中心から端に向かうほど、大きく歪んだものとなっているいるため、通常、平面画像に補正してから使用されている。魚眼レンズは、監視カメラ等に多く使用されており、監視カメラにより撮影された画像は、撮影の直後に歪みが取り除かれているのが望ましく、リアルタイムでの補正が求められている。
魚眼画像の歪を補正して平面画像に補正する従来技術として、例えば、特許文献1等に記載された技術が知られている。この特許文献1に記載の従来技術は、魚眼画像から平面画像へ補正するハードウェアによる画像変換用演算装置に関するものであり、撮影された魚眼画像は、輝度情報、色情報(以下では、これらをまとめて単に画素値または画素データということとする)を持つ多数の画素により構成されている。そして、魚眼レンズにより撮影された魚眼画像は、その画素をラスタースキャン順にフレームメモリに格納し、魚眼画像を補正して得ることができる平面画像の画素の各座標に対応する魚眼画像上の各画素の座標を求め、求められた魚眼画像上の各画素の座標をもとに周辺の複数画素の画素値をフレームメモリから取得し、魚眼画像の画素の画素値から平面画像の画素の画素値への補正を行うというものである。そして、この特許文献1に記載の従来技術は、平面画像の全ての画素に対して、平面画像のラスタースキャン順に1画素ずつ前述の処理を行うことにより、魚眼画像から平面画像への補正を完了させている。
しかし、特許文献1に記載の従来技術による魚眼画像から平面画像への補正装置は、魚眼画像の画素の画素値をフレームメモリから取得する際のメモリアクセスに長い時間を要するという問題点を有している。この理由としては、通常、フレームメモリにはDRAM等のメモリが用いられることが多く、特に、DRAMは、アドレスが連続していないデータへのアクセス(ランダムアクセス)に時間がかかるという性質があることが挙げられる。
また、前述した特許文献1の従来技術における魚眼画像上のある画素の座標の周辺画素はラスタースキャン順の同一ライン上に配置されていないため、フレームメモリの連続したアドレスに格納されている可能性が低いことが挙げられる。これらの理由により、特許文献1に記載された従来技術は、フレームメモリから魚眼画像の画素を読み出すための時間が長くなり、魚眼画像から平面画像への補正に時間がかかるという問題を生じさせている。
前述したような特許文献1に記載の従来技術での問題点を解決することができる他の従来技術として、例えば、特許文献2等に記載された技術が知られている。この特許文献2に記載された従来技術は、魚眼画像を格子状に分割して、分割した領域内の画素をラスタースキャン順にフレームメモリの連続したアドレスに格納したブロックの中から数ブロックをフレームメモリからキャッシュメモリに格納して、平面画像への補正を行うようにすることにより、メモリアクセスに要する時間を短縮することを可能としたものである。
特許文献2に記載の従来技術は、キャッシュメモリを利用することにより、メモリアクセスに要する時間を短縮することができるものである。しかし、この特許文献2に記載の従来技術も、前述した特許文献1に記載の従来技術の場合と同様に、平面画像のブロック内の画素の画素座標をラスタースキャン順に魚眼画像の画素の画素座標に変換し、平面画像のブロック内の画素の画素値をラスタースキャン順に補正していくため、補正に必要な魚眼画像のブロックをランダムにアクセス(斜めに走査)しながら補正を行わなければならず、余分なメモリアクセスが生じる可能性があるという問題点を解決することができるものではない。
図1は特許文献2に記載の従来技術における魚眼画像から平面画像への補正方法を説明する図であり、以下、図1を参照して、前述した特許文献2に記載の従来技術での問題点を説明する。
図1において、魚眼レンズにより撮影された魚眼画像1は、図1(a)に示しているように、レンズを中心として水平方向の全周にわたる画像が円形の範囲の撮影された画像となっている。そして、特許文献2に記載の従来技術では、図1(a)に示しているような魚眼画像1を、図1(b)に示しているような平面画像2に補正するものとしている。図1(a)、図1(b)に示している矢印付きの実線は、それぞれの画像におけるラスタースキャンの方向を示している。
図1(b)に示している平面画像2を複数のブロック(4角のブロックとして示されている)に分け、それらのブロックのブロックA〜Dに着目して見たとき、対応する魚眼画像1のブロックは、図1(a)に円形で示しているブロックA〜Dとなっているものとする。そして、特許文献2に記載の従来技術により、魚眼画像1の円形で示しているブロックA〜Dを平面画像2の4角で示しているブロックA〜Dに補正するものとする。
そのような補正を行う場合、魚眼画像1が任意の大きさのブロックに分けられ、ブロックに含まれる魚眼画像の複数の画素を用いて補正が行われることになる。この魚眼画像1が任意の大きさに分けられた図1(a)に点線で示す9個のブロックを拡大して示しているのが図1(c)に示す図である。
魚眼画像1の円形で示しているブロックAを平面画像2の4角で示しているブロックAに補正するためには、図1(c)に示す魚眼画像の9個のブロックの内の丸付き数字で示すブロック4、5、7、8のブロックに含まれる各画素の画素値のデータがキャッシュメモリに格納されている必要があり、魚眼画像1の円形で示しているブロックBを平面画像2の4角で示しているブロックBに補正するためには、魚眼画像の丸付き数字で示すブロック2、3、5、6のブロックに含まれる各画素の画素値のデータがキャッシュメモリに格納されている必要がある。キャッシュメモリに格納することができるブロック数が4とした場合、平面画像のブロックAからブロックBに補正対象が移ると、キャッシャメモリにどのブロックのデータが必要かを調べて、キャッシュメモリに格納されていた魚眼画像の丸付き数字で示すブロックの4、7、8のブロックを魚眼画像の丸付き数字で示すブロック2、3、6に入れ替えなくてはならないことになる。
このとき、魚眼画像の丸付き数字で示すブロック7、8に関しては、ブロック内の大部分の画素値のデータは、補正に使用されずにキャッシュメモリから削除される。また、平面画像の右端のブロックまで補正が終了し、1つ下の左端のブロックに補正対象が移った際に、魚眼画像の丸付き数字で示すブロック7、8は再びフレームメモリから読み出されて、キャッシュメモリに格納される。
このように、キャッシュメモリに格納される魚眼画像1のブロック内の画素値のデータは、補正で使用されずに書き換えられる画素が含まれていたり、同じブロックが何回もフレームメモリから読み出されることになってしまう。
また、通常、補正して平面画像を構成する1画素の画素値のデータを得るために、魚眼画像上の複数の画素の画素値のデータを必要とする。このため、前述の特許文献2に記載の従来技術は、キャッシュメモリ上に必要なデータが存在するかどうかの問い合わせを複数回行わなくてはならず、処理時間が増大してしまうという問題点を生じる。
特開2000−235645号公報 特開2010−176547号公報
前述で説明したように、特許文献1、2に記載の従来技術は、その何れの従来技術も、フレームメモリから魚眼画像の画素を読み出すための時間が長くなり、魚眼画像から平面画像への補正に時間がかかるという問題点を有するものであった。
本発明の目的は、前述した従来技術の問題点を解決し、メモリアクセス回数を最小限にすることにより魚眼画像から平面画像への補正にかかる時間を短縮することができるようにした魚眼画像の補正装置及び補正方法を提供することにある。
本発明によれば前記目的は、魚眼レンズで撮影された魚眼画像を平面画像に補正する魚眼画像の補正装置において、魚眼画像をラスタースキャン順に格納する入力画像フレームメモリと、平面画像を構成する全ての画素の画素座標から、それらの画素の画素座標に対応する魚眼画像を構成する画素の画素座標を求め、求めた魚眼画像を構成する画素の画素座標を魚眼画像のラスタースキャン順に並び替え、魚眼画像を構成する画素の画素座標と対応する平面画像を構成する画素座標とを対応付けた入力座標順補正データを予め格納しておく補正情報メモリと、前記魚眼画像のラスターラインの複数ライン分のデータを格納するラインメモリと、前記ラインメモリ内の魚眼画像の複数画素の画素値と、前記入力座標順補正データとを使用して、魚眼画像のラスタースキャン順に、魚眼画像の画素値の平面画像の画素値への補正処理を行う補正処理部とを備えることにより達成される。
本発明によれば、魚眼画像から平面画像への補正を行う際に、魚眼画像を格納しているメモリに対するメモリアクセスに要する時間を削減することができ、魚眼画像から平面画像への補正にかかる時間を短縮することができる。
特許文献2に記載の従来技術における魚眼画像から平面画像への補正方法を説明する図である。 魚眼画像及び座標変換に用いる魚眼レンズの仮想球面と補正後の平面画像との関係を説明する図である。 魚眼画像から平面画像への補正方法の本発明での考え方を説明する図である。 入力座標順補正データの例とその作成手順とを説明する図である。 本発明一実施形態による魚眼画像を平面画像に補正する魚眼画像の補正装置の機能構成を示すブロック図である。 ラインメモリの構成と入力フレームメモリからラインメモリへデータをバッファする読み出しとを説明する図である。 ラインメモリから画像データを読み出し、平面画像への補正処理を行う処理手順を説明する図である。 出力画像フレームメモリへ補正後の平面画像の画素をキャッシャメモリから格納する方法を説明する図である。 本発明の実施形態による魚眼画像を平面画像に補正する魚眼画像の補正装置の処理動作を説明するフローチャートである。
以下、本発明による魚眼画像の補正装置及び補正方法の実施形態を図面により詳細に説明する。以下に説明する本発明の実施形態は、円周魚眼レンズで撮影された円形の魚眼画像を平面画像に補正するものとしており、魚眼画像と平面画像との画像サイズは、共に、640×480画素であるとする。魚眼画像から平面画像への画素値の補正には、バイキュービック法やバイリニア法等の周知の補間演算を使用することができるが、ここではバイキュービック法を用いることとして説明を進める。
図2は魚眼画像及び座標変換に用いる魚眼レンズの仮想球面と補正後の平面画像との関係を説明する図、図3は魚眼画像から平面画像への補正方法の本発明での考え方を説明する図、図4は入力座標順補正データの例とその作成手順とを説明する図であり、本発明をその実施形態により詳細に説明する前に、まず、これらの図を参照して、本発明での補正方法の考え方について説明する。
まず、図2を参照して、魚眼画像を構成する各画素の画素座標の値(以下、単に、座標値という)を画像補正後の平面画像を構成する各画素の座標値に補正する方法について説明する。
図2に示しているように、魚眼レンズを持つ魚眼カメラによる撮影を行うと、魚眼レンズの水平方向の全周180度から魚眼レンズの上方に見ることができる全てが魚眼画像1として円形に撮影される。前述の魚眼レンズの上方に見ることができる全ては、図2に示す魚眼レンズの仮想球面に配置されるものとして考えることができる。そして、この仮想球面に1点で接する平面が修正した補正後の平面画像2となる。
その平面画像2上のある1つの点、すなわち、平面画像2を構成するある1つの点の画素の座標値を3次元で座標変換することにより、魚眼画像1上のある1つの点、すなわち、魚眼画像1を構成するある1つの点の画素の座標値を求めることができる。前述の平面画像2を構成する画素の座標値を3次元で座標変換して魚眼画像1を構成する画素の座標値を求める方法としては、複数の方法がすでに知られており、例えば、「透視投影」と呼ばれている方法がある。本発明では、平面画像、魚眼画像間の座標変換の方法としては、どのような方法を使用してもよい。
一方、魚眼画像の平面画像への補正は、魚眼画像を構成する各画素の画素値を平面画像を構成する各画素の画素値に補正しなければならない。本発明では、この画素値の補正を、図2により説明したような平面画像2を構成する画素の座標値を3次元で座標変換して魚眼画像1を構成する画素の座標値を求めて対応付けられた座標値を用いて、魚眼画像1を構成する各画素の座標値に対応する平面画像2を構成する画素の画素値への補正を行うことにより、魚眼画像の平面画像への補正を行う。画素値を補正する方法としては、各種の方法が知られており、どのような方法を用いてもよいが、本発明では、前述したように、バイキュービック法と呼ばれる方法を使用することとする。
バイキュービック法を用いる場合、座標変換で求めた魚眼画像1の画素の座標値の周辺の4×4画素(16画素)を用いて、平面画像2の対応する座標値の画素の画素値を求める。その際、本発明では、魚眼画像1のラスタースキャン順に補正処理を行う。次に、魚眼画像から平面画像への補正方法の本発明での考え方を図3を参照して説明する。
一般に、画像データは、メモリ上にラスタースキャン順に格納されるのが普通であり、本発明においても、図3(c)に示すように、魚眼画像1は、ラスタースキャン順にメモリに格納される。図3(c)内に、ラスタースキャン順の方向を示す矢印付きの実線の上の小さい丸で囲んだ部分を拡大して示しているのが図3(a)である。そして、いま、図3(a)に示す魚眼画像1上の白抜きの数字1〜4で示す画素の画素値を、平面画像2上の対応する画素の画素値に、魚眼画像1のラスタースキャン順に処理するものとする。
この場合、魚眼画像1上のラスタースキャン順にある白抜きの数字1〜4で示す画素それぞれの画素座標に対応する平面画像2の画素座標の位置は、平面画像2のラスタースキャン順とはならず、図3(b)に示すように、近くにある別のラスターライン上に白抜きの数字1〜4で示すような位置となる。図3(b)に示すように平面画像2に変換した後の画素が配置されたものの全体の様子を示しているのが図3(d)であり、魚眼画像のラスタースキャン順の方向が、矢印で示す実線のように、中央部を除いて曲がったものとなる。
本発明では、魚眼画像1のラスタースキャン順に処理することとしているので、魚眼画像1のメモリへの格納時のアドレス順に画素値を読み出しながら補正処理を行うことが可能となる。このとき、画素値の変換を行って魚眼画像1を平面画像2に補正するため、例えば、白抜きの数字1で示す魚眼画像1上の画素の画素値の補正のためには、図3(a)に白抜きの数字1で示す魚眼画像1上の画素の周辺の4×4画素(16画素)を後述する補正装置内に取り込んで処理を行なうことになる。そして、魚眼画像1上の隣り合う座標にある白抜きの数字2で示す画素に対する補正を行う場合、各画素の座標の周辺16画素は、部分的に白抜きの数字1で示す画素の補正処理に使用されたものと重複するため、補正に使用した周辺16画素と次に必要となる周辺16画素で重複しない画素のみをメモリから読み出せばよく、毎回16画素を読み出す必要もなくすことができる。
前述で説明したように、本発明は、公知の座標変換により、平面画像2のある画素の座標に対応する魚眼画像1の画素の座標を求めることができる。しかし、平面画像2の座標から魚眼画像1の座標が決まるので、各画素の画素値の補正の都度、平面画像2の画素の座標に対応する魚眼画像1の画素の座標を求めていたのでは、魚眼画像1の画素の画素値の補正処理をラスタースキャン順に処理することはできない。そこで、本発明は、画素値の補正処理を行う前に入力座標順補正データ3を作成しておくこととする。
入力座標順補正データ3とは、図4(b)に示すような魚眼画像1の画素座標と平面画像2の対応する画素座標とを魚眼画像1のラスタースキャン順に記したデータである。このよな入力座標順補正データ3を作成する際には、図2により説明した方法に従った座標変換を行うことにより、まず、平面画像2のラスタースキャン順に、平面画像2を構成する全ての画素の座標に対して、対応する魚眼画像1の座標を求める座標変換処理を行なって、求めた結果を入力した図4(a)に示すような出力座標順補正データを作成する。図4(a)には、平面画像2を構成する画素の座標(11、5)、(12、5)、(13、5)に対応する魚眼画像1を構成する画素の座標が、(192.92、111.41)、(193.24、109.53)、(193.62、107.65)として求められたとして出力座標順補正データを示している。
次に、前述で求められた出力座標順補正データの魚眼画像1の座標の整数値をもとに、魚眼画像1の画素をラスタースキャン順に並び替えるソート処理を行って、図4(b)に示すような入力座標順補正データ3を作成する。この入力座標順補正データ3は、魚眼画像1の各画素について、魚眼画像1の画素のx座標、魚眼画像1の画素のy座標、平面画像2の画素のx座標、平面画像2の画素のy座標の4つの座標を1組としたデータを、魚眼画像1のラスタースキャン順に並べたデータである。
そして、本発明は、画素値の補正を行う際に、前述した入力座標順補正データ3の上から順番に1画素ずつ補正処理を行っていくことにより、魚眼画像1に対する各画素の画素値の補正を魚眼画像1のラスタースキャン順に処理することができる。
入力座標順補正データ3は、図2により説明した投影方法、視点、レンズの変更がない場合、魚眼画像1と平面画像2との対応する画素の座標は変わらないため、同一のデータを使用することができる。後述する補正装置を使用して画素値の補正を行う際には、全てのパターンの入力座標順補正データ3を作成し、メモリに保存しておき、補正の際に必要なデータを選択し、そのデータを補正に用いることができ、座標変換に入力座標順補正データ3を用意しておくことにより、補正処理にかかる時間を短縮することができる。
図5は本発明一実施形態による魚眼画像を平面画像に補正する魚眼画像の補正装置の機能構成例を示すブロック図であり、以下、これについて説明する。
本発明の実施形態による魚眼画像の補正装置4は、図5に示すように、魚眼レンズが搭載されたカメラにより撮影された魚眼画像1を格納するための入力画像フレームメモリ41と、補正処理を行う際に使用する入力画像フレームメモリ41内の魚眼画像1の画素をバッファしておくラインメモリ42と、図4により説明した入力座標順補正データ3を記憶しておく補正情報メモリ421と、魚眼画像1から平面画像2への補正を行う補正処理部43と、補正後の平面画像2の一部を一時的に蓄積するためのキャッシュメモリ44と、平面画像2を格納するための出力画像フレームメモリ45とを備えて構成される。補正処理部43は、処理に必要な画素データをラインメモリ42から取得してバッファする画素バッファ431と、補正演算を行う補正演算部433と、画素バッファ431内の画素データを補正演算部433に渡して補正演算を行わせる制御、補正処理部43全体の制御を行う制御部432とを有して構成されている。
前述において、魚眼画像の補正装置4は、DRAM等による主メモリ、CPU、HDD、SRAM等の記憶装置を備え、必要に応じてキーボード、マウス等の入力装置、表示装置を備えて構成されればよく、FPGAボードのハードウェア上に構築するのがよい。このようにハードウェアとして構成された魚眼画像の補正装置4は、カメラに中に収容して、カメラと一体に構成することができる。また、前述の魚眼画像の補正装置4は、よく知られる情報処理装置、例えば、PC等の中に構築することができる。
前述したように構成される魚眼画像の補正装置4において、魚眼レンズが搭載されたカメラなどから送信されてきた魚眼画像1のデータは、まず、ラスタースキャン順に入力画像フレームメモリ41に格納される。その後、入力画像フレームメモリ41からラインメモリ42に画像データがバッファされ、ラインメモリ42にバッファされた画像データと補正情報メモリ421内の入力座標順補正データ3とをもとに、補正処理部43が魚眼画像1の各画素の画素値を平面画像2の画素の画素値への補正処理を行う。補正後の画像データは、キャッシュメモリ44に一定量が蓄積された後、出力画像フレームメモリ45に格納され、補正完了後にモニタ等のデバイスである表示装置に出力される。
図6はラインメモリの構成と入力フレームメモリからラインメモリへデータをバッファするデータの読み出しとを説明する図であり、次に、これについて説明する。
ラインメモリ42は、入力画像フレームメモリ41に格納されている魚眼画像をバッファするためのメモリであり、高速に1画素を読み書きすることができるSRAMを用い、魚眼画像の複数の水平ラインのデータを格納できるように構成される。そして、ラインメモリ42は、魚眼画像1の水平1ライン分のデータを格納することができる複数本のラインメモリにより構成される。このため、ラインメモリ42は、画素値の補正のために必要な垂直方向の画素数+1以上の個数を補正装置4内に備えなければならない。バイキュービック法の場合、周辺の4×4画素を用いて補正を行うので、5個以上のラインメモリ42が必要となる。本発明では、図6に示すように、5個のラインメモリA〜Eを用いるものとする。
入力画像フレームメモリ41からラインメモリ42へデータをバッファするデータの読み出しに際しては、魚眼画像1の上から順番に1ラインずつ入力画像フレームメモリ41からラインメモリ42に画像データを格納していく。そして、4個のラインメモリA〜Dに画像データを格納し終えたら、それらのラインメモリA〜Dから必要な画像データを取り出し、補正処理部43で補正を行いつつ、次のラインの画像データを残っているラインメモリEに格納していく。補正処理部43での処理は、ラインメモリA〜Dから画素バッファ431にデータを移し、それらの画像データを用いて補正演算部433が補正を行う処理となる。
図6(a)には、ラインメモリA〜Dに、n〜n+3ライン目の4ライン分の画像データが格納済みであり、ラインメモリEに、n+4ライン目の画像データが格納中である状態を示している。この状態で、補正処理部43から読み出しの要求があると、入力画像フレームメモリ41は、その要求に応じて、格納されたn〜n+3目のラインの画像データを補正処理部43に送る。補正処理部43が、n〜n+3ライン目の画像の画素データを必要とする画素の補正処理が終了するまでの間に、ラインメモリEには、入力画像フレームメモリ41からn+4ライン目の画像データが格納されることになる。
補正処理部43は、n〜n+3ライン目の画像の画素データを必要とする補正が全て完了したら、ラインメモリのB〜Eに格納されているn+1〜n+4ライン目の4ライン分の画像データの読み出しを要求し、取得したn+1〜n+4ライン目の4ライン分の画像データを用いて補正を開始する。このとき、図6(b)に示すように、ラインメモリAは、格納されていたnライン目の画像の画素データを破棄し、n+5ライン目の画像の画素データを格納する処理を開始する。
前述で説明したように、ラインメモリ42のうちの4個は、補正処理に必要な画像データが格納済みとされた状態で、補正処理部43に画像データを送るのに使用され、残りのラインメモリ1個は、後に必要となるラインの画像データを入力画像フレームメモリ41から取得するために使用される。
図7はラインメモリから画像データを読み出し、平面画像への補正処理を行う処理手順を説明する図であり、次に、これについて説明する。
補正処理部43は、(水平方向の周辺画素数+α)×(垂直方向の周辺画素数)の画素を保持することができる画素バッファ431を有している。本発明の実施形態では、画素値の補正にバイキュービック法を用いることとしているので、画素バッファ431は、図7に示すように、(4+1)×4画素の20画素を保持することができるように構成されている。
いま、n画素目の画素の画素値の補正を行おうとするものとすると、魚眼画像1の水平座標191〜195、垂直座標110〜113の20画素が補正処理部43内の画素バッファ431に保持されることになる。この場合、入力座標順補正データ3を参照すると、n画素目の魚眼画像1の座標は、水平座標192.91、垂直座標111.41であるので、補正演算部433は、画素バッファ431に保持した画素の中から水平座標191〜194、垂直座標110〜113の16画素の画素値を用いて、平面画像2の水平座標11、垂直座標5の画素値を求める。
補正演算部433の補正演算で得られた、平面画像2の水平座標11、垂直座標5の画素の画素値は、平面画像2の座標から算出された出力画像フレームメモリ45のアドレスに基づいて、キャッシュメモリ44に蓄積された後、出力画像フレームメモリ45へ格納される。また、補正処理部43内の画素バッファ431に保持されている20画素はそのまま保持し続けられる。
次に、n+1画素目の魚眼画像1の処理に移ると、n+1画素目の魚眼画像1の座標は水平座標192.97、垂直座標111.60であるので、補正演算部433は、n画素目の処理の場合と同一の16画素の画素値を用いて前述と同様に補正処理を行う。また、n+2画素目の魚眼画像1の処理に移ると、n+2画素目の魚眼画像1の座標は水平座標193.03、垂直座標111.79となるので、補正演算部433は、n画素目、n+1画素目のときの補正で必要であった16画素から、右に1つずれた水平座標192〜195の画素の画素値を用いて補正処理を行う。このとき、保持された20画素の中の左端の水平座標191の4画素が不要となる。本発明の実施形態では、魚眼画像1のラスタースキャン順に処理を行うとしているため、後の補正にこれらの4画素が使用されることはない。そこで、n+3画素目画素値の補正を行う際に、不要となる左端の4画素を破棄し、画素バッファ431保持している画素の右隣の水平座標196の4画素がそれぞれのラインメモリ42より取り出されて画素バッファ431に格納される。これにより、補正処理部43は、魚眼画像1の水平座標192〜196、垂直座標110〜113の20画素を画素バッファ431に保持し、補正演算部433は、水平座標192〜195、垂直座標110〜113の16画素の画素値を用いて、魚眼画像のn+2画素目に対応する平面画像2の水平座標14、垂直座標8の画素の画素値を求めることができる。
前述したように、補正処理部43は、その内部に補正に使用する周辺画素より水平方向に多くの画素を保持し、保持した画素の左端の画素が不要となったら、それらの画素を破棄し、ラインメモリ42から新たに右隣の画素のデータを読み出して保持する。こうすることにより、処理が水平方向に遷移している間、補正処理部43には補正に必要となる周辺画素が常に保持されていることとなり、補正処理部43は、滞りなく補正処理を行うことができる。もし、補正の範囲が広範囲で水平方向への遷移が1画素以上になる場合、水平方向に保持する画素数や、1つのラインメモリから1度に取り出す画素数を増加させることにより対応可能である。また、保持している画素を全て入れ替えるとしても、ラインメモリにバッファされている画素であるため、処理時間が大幅に増大することはない。
図8は出力画像フレームメモリ45へ補正後の平面画像2の画素をキャッシャメモリ44から格納する方法を説明する図であり、次に、これについて説明する。
平面画像2の画素は、図3に示して説明したように、1画素ずつ、画像の中心を原点とした放物線状に上部から下部に向けて出力される。そのため、キャッシャメモリ44からは、出力画像フレームメモリ45のアドレス順に画素が出力されない。出力画像フレームメモリ45へのキャッシャメモリ44からのアクセス回数を削減するため、本発明の実施形態では、キャッシュメモリ44に出力画像フレームメモリ45の連続したアドレスに格納する画素が蓄積された後、それらの画素をまとめて出力画像フレームメモリ45へ格納する。このため、本発明の実施形態で使用するキャッシュメモリ44は、ライトバック方式のものとする。
出力画像フレームメモリ45へのキャッシャメモリ44からの書き込みは、キャッシュラインを入れ替えるタイミングとする。このとき、入れ替えるキャッシュラインが全て補正後の画素に書きかえられていると、書き込み先のアドレスへは1回のアクセスのみとすることができ、同一のアドレスのデータを数回キャッシュしないで済むことになる。キャッシュラインが1つ(ダイレクトマップ方式)の場合、画像の半分をキャッシュラインサイズにすると実現することができるが、キャッシュメモリの容量が大きくなりすぎてしまう。そこで、本発明の実施形態では、複数のキャッシュライン(セットアソシアティブ方式)で画素を蓄積するようにする。これにより、キャッシャメモリの容量をダイレクトマップ方式よりは小さいものとすることができる。
図8に示すように、セットアソシアティブ方式を用いる場合、平面画像2の垂直方向を均等に分割し、分割した1ブロックをキャッシュラインとする。画像サイズ640×480の平面画像2への補正で、魚眼画像1の1ラインを補正すると、最大で平面画像2の約100ラインにわたる画素を出力するとした場合、32ライン単位で分割し、4キャッシュラインを格納できる4wayセットアソシアティブ方式のキャッシュメモリを使用すればよいことになる。本発明の実施形態では、このほかの場合でも、画像サイズやレンズの歪曲収差などから最適となるキャッシュラインサイズとway数を求め、効率のよいメモリアクセスを実現できるようにすることができる。
キャッシュラインを入れ替える際、複数あるキャッシュラインの中から1つを選ばなくてはならない。本発明の実施形態では、平面画像2の上のラインから順番に補正後の画素が揃っていくので、最も前に入れ替えを行ったキャッシュラインと入れ替えばよく、キャッシュラインの入れ替えにはラウンドロビン方式を用いることとした。
図9は本発明の実施形態による魚眼画像を平面画像に補正する魚眼画像の補正装置の処理動作を説明するフローチャートであり、次に、これについて説明する。なお、補正処理を開始するに当り、事前に入力座標順補正データを作成し、作成された入力座標順補正データ3が補正情報メモリに格納されているものとする。
(1)補正処理が開始されると、入力画像フレームメモリ41に魚眼レンズ搭載カメラで撮影された魚眼画像1の1フレーム分の画像データの全てがラスタースキャン順に格納され、入力画像フレームメモリ41への画像データの格納が終了すると、入力座標順補正データ3が補正情報メモリから読み出される(ステップ901、902)。
(2)読み出された入力座標順補正データ3が魚眼画像1のラインの先頭の画素を示しており、この画素から補正処理を行っていくのか否かを判定し、入力座標順補正データ3が魚眼画像1のラインの先頭の画素を示していた場合、入力画像フレームメモリ41からラインメモリ42に画素データを格納する処理を開始する(ステップ903、904)。
(3)補正処理に必要な魚眼画像のライン数の画像データを入力画像フレームメモリ41から読み出してラインメモリ42内に格納する処理を続け、補正処理に必要な魚眼画像のライン数の画像データがラインメモリ42に格納されたら、残っているラインメモリ42へフレームメモリ41からの画素データの格納を続けながら、画素バッファ431に補正処理に必要な魚眼画像の画素データをラインメモリ42から読み出して格納する処理を開始する(ステップ905、907)。
(3)ステップ903の判定で、入力座標順補正データ3が魚眼画像1のラインの先頭の画素を示していなかった場合、その座標値で補正をするに当って、画素バッファ431内に不要な画素データがあるか否かを判定し、不要な画素データがあった場合、ステップ907の処理に移って、画素バッファ431に補正処理に必要な魚眼画像の画素データをラインメモリ42から読み出して格納する処理を開始する(ステップ906、907)。
(4)ステップ907の処理により画素バッファ431に補正に必要な画素数分の画素データが格納されたことを監視し、補正に必要な画素数分の画素データが格納されたことが確認できたら、あるいは、ステップ906の判定で、画素バッファ431内に不要な画素データがなかった場合、補正演算部433が、バイキュービック法を用い、画素バッファ431内の画素データを使用して補正演算を行い、魚眼画像1から平面画像2へ補正する演算を行う。補正後の平面画像を構成する画素の画素データは、キャッシュメモリ44に格納される(908〜910)。
(5)その後、キャッシャメモリ44内のキャッシュラインの全ての画素についての補正が完了しているか否かを判定し、補正が完了しているキャッシュラインがある場合、そのキャッシュラインの画素の画素データを出力画像フレームメモリ45へ格納する(ステップ911、912)。
(6)出力画像フレームメモリ45へ格納されたキャッシュラインの画素の画素データが最終画素の画素データであるか否かを判定し、最終画素であった場合、補正処理を終了する(ステップ913)。
(7)ステップ911の判定で、キャッシャメモリ44内のキャッシュラインの全ての画素についての補正が完了していなかった場合、あるいは、ステップ913の判定で、出力画像フレームメモリ45へ格納されたキャッシュラインの画素の画素データが最終画素の画素データでなかった場合、ステップ902からの処理に移行して処理を続ける。
前述で説明したように、本発明の実施形態は、入力される画像である魚眼画像1のラスタースキャン順に補正処理を行って、ラインメモリ42とキャッシュメモリ44を用いた補正装置4で、魚眼画像1を平面画像2に補正するものであり、これにより、メモリアクセス回数を削減することができ、補正にかかる処理時間を短縮することができる。また、前述した本発明の実施形態は、魚眼画像1から平面画像2への補正に特化して本発明を説明したが、本発明は、魚眼レンズ以外で撮影された画像の歪みを補正することにも、適応可能である。
前述した本発明の実施形態での処理は、本発明による魚眼画像の補正装置を構成するFPGAボード等のハードウェア内で実行させることができ、また、魚眼画像の補正装置がPC等の内部に構成去れる場合、プログラムにより構成し、PCが備えるCPUに実行させることができ、また、それらのプログラムは、FD、CDROM、DVD等の記録媒体に格納して提供することができ、また、ネットワークを介してディジタル情報により提供することができる。
前述した本発明の実施形態は、魚眼画像を平面画像に補正する際に、魚眼画像のラスタースキャン順に補正を行い、ライン単位で魚眼画像の画素の画素データを入力画像フレームメモリからバッファすることにより、同一のデータを何度も入力画像フレームメモリから読み出す必要をなくすことができる。また、本発明の実施形態は、魚眼画像のラスタースキャン順に処理を行うものであるため、補正に必要となる画素を予め推定することが可能となり、補正処理を行う前に必要となる画素を用意しておくことができるので、処理が滞ることがない。また、本発明の実施形態は、平面画像に補正した画素をキャッシュメモリに蓄積してから、アドレスが連続する数画素を一度に出力画像フレームメモリへ書き込むこととしているので、メモリアクセス回数を少なくすることができる。
前述から判るように本発明の実施形態によれば、魚眼画像から平面画像への補正を行う際に、魚眼画像を格納しているメモリに対するメモリアクセスに要する時間を削減することができ、魚眼画像から平面画像への補正にかかる時間を短縮することができる。
1 魚眼画像
2 平面画像
3 入力座標順補正データ
4 補正装置
41 入力画像フレームメモリ
42 ラインメモリ
43 補正処理部
44 キャッシュメモリ
45 出力画像フレームメモリ
421 補正情報メモリ
431 画素バッファ
432 制御部
433 補正演算部

Claims (7)

  1. 魚眼レンズで撮影された魚眼画像を平面画像に補正する魚眼画像の補正装置において、
    魚眼画像をラスタースキャン順に格納する入力画像フレームメモリと、
    平面画像を構成する全ての画素の画素座標から、それらの画素の画素座標に対応する魚眼画像を構成する画素の画素座標を求め、求めた魚眼画像を構成する画素の画素座標を魚眼画像のラスタースキャン順に並び替え、魚眼画像を構成する画素の画素座標と対応する平面画像を構成する画素座標とを対応付けた入力座標順補正データを予め格納しておく補正情報メモリと、
    前記魚眼画像のラスターラインの複数ライン分のデータを格納するラインメモリと、
    前記ラインメモリ内の魚眼画像の複数画素の画素値と、前記入力座標順補正データとを使用して、魚眼画像のラスタースキャン順に、魚眼画像の画素値の平面画像の画素値への補正処理を行う補正処理部と、
    を備えることを特徴とする魚眼画像の補正装置。
  2. 前記補正処理部により魚眼画像から補正した平面画像の一部を一時的に格納するキャッシュメモリと、
    平面画像を格納する出力画像フレームメモリと、
    をさらに備えることを特徴とする請求項1記載の魚眼画像の補正装置。
  3. 前記ラインメモリは、魚眼画像の画素値を平面画像の画素値への補正に必要な魚眼画像の垂直方向の画素数+1個以上の、それぞれが魚眼画像の水平方向1ライン分の画素データを格納可能なSRAMを用いて構成されることを特徴とする請求項1記載の魚眼画像の補正装置。
  4. 魚眼レンズで撮影された魚眼画像を平面画像に補正する魚眼画像の補正方法において、
    魚眼画像をラスタースキャン順に入力画像フレームメモリに格納するステップと、
    平面画像を構成する全ての画素の画素座標から、それらの画素の画素座標に対応する魚眼画像を構成する画素の画素座標を求め、求めた魚眼画像を構成する画素の画素座標を魚眼画像のラスタースキャン順に並び替え、魚眼画像を構成する画素の画素座標と対応する平面画像を構成する画素座標とを対応付けた入力座標順補正データを予め補正情報メモリに格納しておくステップと、
    前記魚眼画像のラスターラインの複数ライン分のデータをラインメモリに格納するステップと、
    前記ラインメモリ内の魚眼画像の複数画素の画素値と、前記入力座標順補正データとを使用して、魚眼画像のラスタースキャン順に、魚眼画像の画素値の平面画像の画素値への補正を補正処理部で行うステップと、
    を有することを特徴とする魚眼画像の補正方法。
  5. 前記入力画像フレームメモリから垂直方向の必要な画素数分の画素データを前記ラインメモリに格納した後、それらのラインメモリから画素データを読み出して魚眼画像の画素値を平面画像の画素値への補正を行いながら、空いているラインメモリに次のラインの画素データを格納することを特徴とする請求項4記載の魚眼画像の補正方法。
  6. 前記入力座標順補正データの上から順番に、魚眼画像の座標の周辺画素の複数の画素を前記ラインメモリから読み出して魚眼画像の画素値の平面画像の画素値への補正を行い、魚眼画像の座標に対応する平面画像の座標から出力画像フレームメモリのアドレスを求め、魚眼画像の画素値を平面画像の画素値への補正を行った平面画像のデータを出力フレームメモリへ格納することを特徴とする請求項4記載の魚眼画像の補正方法。
  7. 前記平面画像のデータの出力フレームメモリへの格納を平面画像の垂直方向を均等に分割したブロックをキャッシュラインとするセットアソシアティブ方式のキャッシャメモリを介して行い、キャッシュラインの入れ替えをラウンドロビン方式で行い、出力画像フレームメモリへの更新をライトバック方式で行うことを特徴とする請求項6記載の魚眼画像の補正方法。
JP2012175265A 2012-08-07 2012-08-07 魚眼画像の補正装置及び補正方法 Active JP5947143B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012175265A JP5947143B2 (ja) 2012-08-07 2012-08-07 魚眼画像の補正装置及び補正方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012175265A JP5947143B2 (ja) 2012-08-07 2012-08-07 魚眼画像の補正装置及び補正方法

Publications (2)

Publication Number Publication Date
JP2014035589A true JP2014035589A (ja) 2014-02-24
JP5947143B2 JP5947143B2 (ja) 2016-07-06

Family

ID=50284572

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012175265A Active JP5947143B2 (ja) 2012-08-07 2012-08-07 魚眼画像の補正装置及び補正方法

Country Status (1)

Country Link
JP (1) JP5947143B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016163189A (ja) * 2015-03-02 2016-09-05 セイコーエプソン株式会社 画像処理装置、画像処理方法及び表示装置
US10652487B2 (en) 2018-03-15 2020-05-12 Kabushiki Kaisha Toshiba Image processing apparatus and image processing method
KR102242339B1 (ko) * 2019-11-27 2021-04-20 한국전자기술연구원 실시간 영상 왜곡 보정 장치 및 방법
CN115049535A (zh) * 2022-05-24 2022-09-13 张全胜 鱼眼镜头有效区域获取与图像精细校正方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07200780A (ja) * 1993-12-28 1995-08-04 Hitachi Medical Corp 画像歪補正方法およびそのための装置
JP2010176547A (ja) * 2009-01-30 2010-08-12 Dainippon Printing Co Ltd 画像処理装置に含まれる制御装置、制御方法、及び制御処理プログラム
JP2012010125A (ja) * 2010-06-25 2012-01-12 Panasonic Electric Works Co Ltd 映像信号処理装置、仮想現実感生成システム
JP2012023666A (ja) * 2010-07-16 2012-02-02 Renesas Electronics Corp 画像変換装置及び画像変換システム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07200780A (ja) * 1993-12-28 1995-08-04 Hitachi Medical Corp 画像歪補正方法およびそのための装置
JP2010176547A (ja) * 2009-01-30 2010-08-12 Dainippon Printing Co Ltd 画像処理装置に含まれる制御装置、制御方法、及び制御処理プログラム
JP2012010125A (ja) * 2010-06-25 2012-01-12 Panasonic Electric Works Co Ltd 映像信号処理装置、仮想現実感生成システム
JP2012023666A (ja) * 2010-07-16 2012-02-02 Renesas Electronics Corp 画像変換装置及び画像変換システム

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016163189A (ja) * 2015-03-02 2016-09-05 セイコーエプソン株式会社 画像処理装置、画像処理方法及び表示装置
US10652487B2 (en) 2018-03-15 2020-05-12 Kabushiki Kaisha Toshiba Image processing apparatus and image processing method
KR102242339B1 (ko) * 2019-11-27 2021-04-20 한국전자기술연구원 실시간 영상 왜곡 보정 장치 및 방법
CN115049535A (zh) * 2022-05-24 2022-09-13 张全胜 鱼眼镜头有效区域获取与图像精细校正方法
CN115049535B (zh) * 2022-05-24 2024-01-12 杭州追形视频科技有限公司 鱼眼镜头有效区域获取与图像精细校正方法

Also Published As

Publication number Publication date
JP5947143B2 (ja) 2016-07-06

Similar Documents

Publication Publication Date Title
JP4781229B2 (ja) 歪曲収差補正装置、撮像装置、及び歪曲収差補正装置の制御方法
JP6845173B2 (ja) 画像処理装置及び画像処理方法
JP6058963B2 (ja) 全周カメラ
KR102287773B1 (ko) 파노라마 비디오 압축 방법 및 장치
JP5947143B2 (ja) 魚眼画像の補正装置及び補正方法
JP4124096B2 (ja) 画像処理方法および画像処理装置、並びにプログラム
JP7170478B2 (ja) 画像処理装置、画像処理方法及び画像処理プログラム
JP2010176547A (ja) 画像処理装置に含まれる制御装置、制御方法、及び制御処理プログラム
JP2009164674A (ja) ディストーション補正装置
JP6324174B2 (ja) 画像処理装置および画像処理方法
TWI627603B (zh) 影像視角轉換方法及其系統
US8509568B2 (en) Image processing apparatus and image processing method
CN110738615B (zh) 鱼眼图像校正方法、装置、系统及可存储介质
JP6762775B2 (ja) 画像処理装置、撮像装置、制御方法及びプログラム
JP6273881B2 (ja) 画像処理装置、画像処理方法、及びプログラム
US9781353B2 (en) Image processing apparatus, electronic apparatus, and image processing method
JP6563358B2 (ja) 画像処理装置及び画像処理方法
JP6440465B2 (ja) 画像処理装置、画像処理方法及びプログラム
JP2018005389A (ja) 画像変形回路、画像処理装置、及び画像変形方法
JP6562687B2 (ja) 画像変形装置、画像処理方法、およびプログラム
JP6045247B2 (ja) 画像処理装置、その制御方法、および制御プログラム
JP2015069272A (ja) 画像変形装置および画像変形方法
JP2005020087A (ja) 画像処理装置
JP2013126130A (ja) 画像処理装置、画像処理方法および画像処理プログラム
JP2013187630A (ja) 画像処理装置及び方法、並びに撮像装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150604

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160518

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: 20160531

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160602

R150 Certificate of patent or registration of utility model

Ref document number: 5947143

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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