(57)【要約】【課題】比較的少ない演算リソースで高精度な幾何変換を実現する。【解決手段】２次元座標位置に応じて記録されたデータに幾何変換を行う画像処理装置であって、第１の座標から第２の座標への変換処理を線形変換と非線形変換とに分解する制御手段であって、線形変換及び非線形変換の変換パラメータを決定する制御手段と、第１の座標に対し線形変換を行って、第３の座標を算出する線形変換手段と、第１の座標に対し非線形変換を行って、第４の座標を算出する非線形変換手段と、第３の座標と第４の座標を合成して、第２の座標を算出する合成手段とを有し、制御手段は、第３の座標で構成される第３の四角形が第２の四角形に近い四角形となるように、変換パラメータを決定し、線形変換手段および非線形変換手段それぞれに変換パラメータを設定することを特徴とする。【選択図】図１
2020038730.tif 000002
【特許請求の範囲】
【請求項１】
２次元座標位置に応じて記録されたデータに幾何変換を行う画像処理装置であって、
第１の座標から第２の座標への変換処理を線形変換と非線形変換とに分解する制御手段であって、前記線形変換及び前記非線形変換の変換パラメータを決定する制御手段と、
前記第１の座標に対し前記線形変換を行って、第３の座標を算出する線形変換手段と、
前記第１の座標に対し前記非線形変換を行って、第４の座標を算出する非線形変換手段と、
前記第３の座標と前記第４の座標を合成して、前記第２の座標を算出する合成手段と
を有し、前記制御手段は、前記第３の座標で構成される第３の四角形が前記第２の四角形に近い四角形となるように、前記変換パラメータを決定し、前記線形変換手段および前記非線形変換手段それぞれに前記変換パラメータを設定することを特徴とする画像処理装置。
【請求項２】
前記制御手段は、前記第１の座標で構成される第１の四角形の四頂点座標及び前記第２の座標で構成される第２の四角形の四頂点座標を取得し、取得した四頂点座標に基づいて前記変換パラメータを決定することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記制御手段は、前記第３の四角形の四頂点のうちの３点が前記第２の四角形の四頂点のうちの３点と一致するように、前記変換パラメータを決定することを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記制御手段は、前記第３の四角形の四頂点と前記第２の四角形の四頂点との距離の絶対値和が最小となるように、前記変換パラメータを決定することを特徴とする請求項２に記載の画像処理装置。
【請求項５】
前記制御手段は、前記第３の四角形の面積のうち前記第２の四角形の面積と重複する領域の面積の割合が最大となるように、前記変換パラメータを決定することを特徴とする請求項２に記載の画像処理装置。
【請求項６】
前記制御手段は、前記変換処理を前記線形変換と前記非線形変換の加算に分解し、前記合成手段は前記第３の座標と前記第４の座標を加算して前記第２の座標を算出することを特徴とする請求項１乃至５のいずれか１項に記載の画像処理装置。
【請求項７】
前記制御手段は、前記変換処理を前記線形変換と前記非線形変換の乗算に分解し、前記合成手段は前記第３の座標と前記第４の座標を乗算して前記第２の座標を算出することを特徴とする請求項１乃至５のいずれか１項に記載の画像処理装置。
【請求項８】
前記線形変換はアフィン変換で表現可能な変換であり、前記非線形変換はアフィン変換で表現不可能な変換であることを特徴とする請求項１乃至７のいずれか１項に記載の画像処理装置。
【請求項９】
前記非線形変換の演算精度は、前記線形変換の演算精度よりも低いことを特徴とする請求項１乃至８のいずれか１項に記載の画像処理装置。
【請求項１０】
前記非線形変換の演算結果の絶対値は、前記線形変換の演算結果の絶対値よりも小さいことを特徴とする請求項１乃至９のいずれか１項に記載の画像処理装置。
【請求項１１】
前記２次元座標位置に応じて記録されたデータは画像データであり、前記変換処理は前記幾何変換後の画像の座標から前記幾何変換前の画像の座標への変換処理であり、前記幾何変換前の画像の座標に従って前記データを外部メモリから読み取る手段をさらに有することを特徴とする請求項１乃至１０のいずれか１項に記載の画像処理装置。
【請求項１２】
前記２次元座標位置に応じて記録されたデータは画像データであり、前記変換処理は前記幾何変換前の画像の座標から前記幾何変換後の画像の座標への変換処理であり、前記幾何変換後の画像の座標に従って前記データを外部メモリに書き込む手段をさらに有することを特徴とする請求項１乃至１０のいずれか１項に記載の画像処理装置。
【請求項１３】
複数の画像データを合成する画像処理装置であって、
複数の画像データを幾何変換する画像幾何変換手段と、
属性データを幾何変換する属性データ幾何変換手段と、
前記属性データ幾何変換手段で幾何変換された前記属性データに基づき、前記画像幾何変換手段で幾何変換された前記複数の画像データを合成する画像合成手段と
を有し、
前記属性データ幾何変換手段は、
第１の座標から第２の座標への変換処理を線形変換と非線形変換とに分解する制御手段であって、前記線形変換及び前記非線形変換の変換パラメータを決定する制御手段と、
前記第１の座標に対し前記線形変換を行って、第３の座標を算出する線形変換手段と、
前記第１の座標に対し前記非線形変換を行って、第４の座標を算出する非線形変換手段と、
前記第３の座標と前記第４の座標を合成して、前記第２の座標を算出する合成手段と
を有し、前記制御手段は、前記第３の座標で構成される第３の四角形が前記第２の四角形に近い四角形となるように、前記変換パラメータを決定し、前記線形変換手段および前記非線形変換手段それぞれに前記変換パラメータを設定することを特徴とする画像処理装置。
【請求項１４】
２次元座標位置に応じて記録されたデータに幾何変換を行う画像処理方法であって、
第１の座標から第２の座標への変換処理を線形変換と非線形変換とに分解する制御工程であって、前記線形変換及び前記非線形変換の変換パラメータを決定する制御工程と、
前記第１の座標に対し、前記制御工程で決定された前記線形変換の前記変換パラメータに従って前記線形変換を行うことで、第３の座標を算出する線形変換工程と、
前記第１の座標に対し、前記制御工程で決定された前記非線形変換の前記変換パラメータに従って前記非線形変換を行うことで、第４の座標を算出する非線形変換工程と、
前記第３の座標と前記第４の座標を合成して、前記第２の座標を算出する合成工程と
を有し、前記制御工程は、前記第３の座標で構成される第３の四角形が前記第２の四角形に近い四角形となるように、前記変換パラメータを決定することを特徴とする画像処理方法。
【請求項１５】
コンピュータを、請求項１乃至１３に記載の画像処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、２次元座標位置に応じて記録されたデータに幾何変換を実行する技術に関するものである。
【背景技術】
【０００２】
従来、デジタルカメラやプリンタ、プロジェクタなどデジタル画像を扱う機器では、デジタル画像に座標変換による幾何変換処理がしばしば実行されている。例えば、プリンタでは印刷の解像度に合わせて入力画像の拡大処理（高解像度化処理）が行われている。監視カメラでは、被写体に向かって斜め方向から撮影する場合に、建物などの長方形の被写体が台形に歪むため台形を長方形となるよう補正すること（パースペクティブ補正）や、画像内の注目領域を拡大処理することなどがある。プロジェクタでは投影画像を投影面に合わせるようキーストーン補正処理などが行われている。幾何変換処理において、拡大縮小、回転、スキュー及び平行移動といった線形な座標変換を線形変換、それ以外の座標変換を非線形変換と呼ぶこととする。
【０００３】
幾何変換処理は高速化のためにしばしばハードウェアで実装される。線形変換は比較的少ない演算リソースで実装可能であるが、非線形変換は除算など複雑な演算が必要になるため、回路規模が大きくなるという課題がある。特に近年の画像の高解像度化（８Ｋなど）に伴って座標の取り得る値域も拡大しており、高精度な座標変換の実現のためには大規模な演算回路などが必要となっている。
【０００４】
そこで、例えば特許文献１では、まず画像を複数の三角形領域に分割する。そして、分割された領域ごとに頂点の対応からアフィン変換（線形変換）を行う。これにより、画像全体では所望の非線形変換を近似した変換を実現している。また、特許文献２では、Ｘ線診断装置において全撮影角度に対応する歪み補正のための補正テーブルをあらかじめメモリに用意しておく。必要に応じて現在の撮影角度に対応する補正テーブルをアドレス発生器にセットすることで非線形変換を実現している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００４−２２７４７０号公報
【特許文献２】特開２０００−２２４４８１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記特許文献１に記載の手法では、領域ごとにアフィン変換用のパラメータを設定する必要があり、パラメータの算出自体が煩雑になる。また、領域の境界における不整合により画質劣化を引き起こす可能性がある。上記特許文献２に記載の手法はＸ線診断装置など撮影角度が限定されている機器では有効であるが、一般的なカメラなど撮影角度の自由度が高い機器では全撮影角度に対応する補正テーブルを用意しておくことは現実的でない。
【０００７】
本発明は以上の状況に鑑みてなされたものであって、比較的少ない演算リソースで高精度な幾何変換を実現することを目的とする。
【課題を解決するための手段】
【０００８】
本発明に係る画像処理装置は、２次元座標位置に応じて記録されたデータに幾何変換を行う画像処理装置であって、第１の座標から第２の座標への変換処理を線形変換と非線形変換とに分解する制御手段であって、前記線形変換及び前記非線形変換の変換パラメータを決定する制御手段と、前記第１の座標に対し前記線形変換を行って、第３の座標を算出する線形変換手段と、前記第１の座標に対し前記非線形変換を行って、第４の座標を算出する非線形変換手段と、前記第３の座標と前記第４の座標を合成して、前記第２の座標を算出する合成手段とを有し、前記制御手段は、前記第３の座標で構成される第３の四角形が前記第２の四角形に近い四角形となるように、前記変換パラメータを決定し、前記線形変換手段および前記非線形変換手段それぞれに前記変換パラメータを設定することを特徴とする。
【発明の効果】
【０００９】
本発明によれば、高精度な幾何変換を比較的少ない演算リソースで実現できる。
【図面の簡単な説明】
【００１０】
【図１】実施形態１における画像処理部の構成例を示す図である。
【図２】実施形態１における幾何変換の例を示す図である。
【図３】実施形態１における中間四角形を説明するための図である。
【図４】実施形態１における四角形の四頂点の座標変換例を示す図である。
【図５】実施形態１における座標変換処理の分解方法を説明するための図である。
【図６】実施形態２における座標合成部の構成例を示す図である。
【図７】実施形態２における座標変換処理の分解方法を説明するための図である。
【図８】実施形態３における画像合成部の構成例を示す図である。
【図９】実施形態１における変換パラメータ計算のフローチャートである。
【図１０】実施形態５における幾何変換の例を示す図である。
【発明を実施するための形態】
【００１１】
以下、本発明の実施形態について、図面を参照して説明する。なお、以下の実施の形態は特許請求の範囲に関わる本発明を限定するものではなく、また、本実施の形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
【００１２】
＜実施形態１＞
（画像処理部の構成）
図１は本実施形態における画像処理部１００の構成例を示す図である。本実施形態において、メモリ上の入力画像に対して幾何変換後の画像をストリーミング出力する例を説明する。本実施形態では、幾何変換後の画像における各画素の座標から幾何変換前の画像における座標を算出し、算出した幾何変換前の画像の座標に対応する画素値を、入力画像から算出する。
【００１３】
幾何変換後の画像の座標は第１の座標（Ｉｘ，Ｉｙ）として、座標入力ポート１５０よりラスタ順に入力される。ここで幾何変換後の画像の幅をＷ画素とし、高さをＨ画素とそると、幾何変換後の画像は、Ｗ画素×Ｈ画素の画素からなる。第１の座標（Ｉｘ，Ｉｙ）は、Ｉｙ＝０．５としてＩｘが０．５から（Ｗ−０．５）に達するまで１インクリメントしながら順に入力される。またＩｘが（Ｗ−０．５）に達すると、Ｉｙが１インクリメントされ、Ｉｙ＝０．5の時と同様、Ｉｘが順にインクリメントされた値が入力されていく。なおここでは画素の重心位置を座標とするため、（Ｉｘ，Ｉｙ）＝（０．５、０．５）を開始点として１インクリメントする。座標線形変換部１１０及び座標非線形変換部１２０は、座標入力ポート１５０より入力される第１の座標（Ｉｘ，Ｉｙ）にそれぞれ所定の線形変換処理及び非線形変換処理を行う。すなわち、座標線形変換部１１０では第１の座標（Ｉｘ，Ｉｙ）に線形変換を施して、線形変換結果の座標（Ｆｘ，Ｆｙ）を出力する。座標非線形変換部１２０では第１の座標（Ｉｘ，Ｉｙ）に非線形変換を施して、非線形変換結果の座標（Ｇｘ，Ｇｙ）を出力する。ここで線形変換とは、拡大縮小、回転、スキュー、平行移動といった線形な座標変換を意味しており、非線形変換とはそれ以外の変換を意味している。
【００１４】
座標合成部１３０では座標線形変換部１１０から出力される線形変換結果の座標（Ｆｘ，Ｆｙ）と、座標非線形変換部１２０から出力される非線形変換結果の座標（Ｇｘ，Ｇｙ）とを合成して、第２の座標（Ｈｘ，Ｈｙ）を算出する。算出される第２の座標は、幾何変換前の入力画像における位置を示す座標であり、画像入出力部１４０に渡される。座標線形変換部１１０の線形変換及び座標非線形変換部１２０の非線形変換に用いられる変換パラメータはそれぞれ制御部１８０（ＣＰＵなど）によって求められて設定される。変換パラメータの設定の詳細については後述する。
【００１５】
画像入出力部１４０は、入力画像を一時的に記憶する外部メモリ（図示せず）にアクセス可能であり、入力画像における座標（Ｈｘ，Ｈｙ）に位置する画素値を画像入力ポート１６０経由で外部メモリから取得する。取得した画素値は、第１の座標（Ｉｘ，Ｉｙ）の画素値として画像出力ポート１７０へ出力する。なお、座標合成部１３０により算出される座標値Ｈｘ，Ｈｙは整数とは限らない。そのため、各座標値が整数でない場合に、入力画像における座標（Ｈｘ，Ｈｙ）近傍の複数の画素の画素値を外部メモリから取得し、補間演算を行うことにより座標（Ｈｘ，Ｈｙ）に該当する画素値を求める。画像出力ポート１７０へ出力された画素は、さらにフィルタ処理など他の画像処理部へ入力されても良いし、そのまま外部メモリに書き戻しても良い。ここで画像処理部１００のうち、制御部１８０以外の各構成はハードウェア（回路）として実装する。
【００１６】
（幾何変換の例）
本実施形態では、幾何変換の具体例としてパースペクティブ補正（あおり補正）の例を説明する。図２は、パースペクティブ補正を示す図である。図２（ａ）がパースペクティブ補正前の四角形を示しており、図２（ｂ）がパースペクティブ補正後の四角形を示している。パースペクティブ補正前の四角形２１０は台形状であり、四頂点の座標をそれぞれ（０，０），（１６００，２００），（１６００，１０００），（０，１２００）とする。パースペクティブ補正後の四角形２２０は長方形であり、四頂点の座標はそれぞれ（０，０），（１６００，０），（１６００，１２００），（０，１２００）とする。デジタルカメラなどの撮影装置が、被写体に対して光軸を傾けて撮影すると、得られる撮影画像は、図２（ａ）に示すように被写体が歪んだ画像になってしまう。そこで撮影画像に対してパースペクティブ補正をすることで、図２（ｂ）に示すように被写体を正面から平行に撮影した画像に変換する。補正対象の撮影画像自体は、各画素に画素値が格納されたデータであり四角形であるが、撮影画像に含まれる一部領域である図２（ａ）のような四角形を、図２（ｂ）に示す四角形に変換することで、歪みを低減した画像を得られる。処理対象の撮影画像に対して、どのようなパースペクティブ補正を実行するかは、撮影時の撮影装置のモードやユーザによる指定によって決定される。
【００１７】
本実施形態において、補正対象の画像データは外部メモリに格納されているとする。図１の座標入力ポート１５０へは補正後の四角形２２０の座標をラスタ順に入力する。すなわち、補正後の四角形２２０の座標が第１の座標（Ｉｘ，Ｉｙ）として入力され、これに対応する補正前の四角形２１０の座標が第２の座標（Ｈｘ，Ｈｙ）として算出される。本実施形態では、第１の座標（Ｉｘ，Ｉｙ）⇒第２の座標（Ｈｘ，Ｈｙ）という非線形な座標変換を線形成分と非線形成分に分解し、座標線形変換部１１０及び座標非線形変換部１２０ではそれぞれ第１の座標（Ｉｘ，Ｉｙ）に対して線形変換及び非線形変換を行う。そして、得られた線形変換結果と非線形変換結果を合成することで、第２の座標（Ｈｘ，Ｈｙ）を算出する。
【００１８】
（座標変換処理）
図３は、本実施形態において、座標変換を線形変換と非線形変換とにより実現する方法を説明するための図である。制御部１８０は、座標変換を線形変換と非線形変換に分解するために、まず図３に示すように、中間データとしてＰ０’、Ｐ１’、Ｐ２’、Ｐ３’によって定義される四角形３１０（以降、中間四角形と呼ぶ）を設定する。制御部１８０は、点Ｐ０，Ｐ１、Ｐ２、Ｐ３によって定義されるパースペクティブ補正前の四角形２１０と、点Ｑ０，Ｑ１，Ｑ２、Ｑ３によって定義されるパースペクティブ補正後の四角形３２０に基づいて、中間四角形３１０を決定する。線形変換処理によりパースペクティブ補正後の四角形から中間四角形までの変換を行い、非線形変換処理により、中間四角形からパースペクティブ補正前の四角形までの変換を行うことになる。線形変換処理により主な変換処理を行い、非線形変換処理の演算を少なくさせることが望ましい。そこで制御部１８０は、第１の座標で構成される四角形２２０から線形変換の範囲内であり、かつ第２の座標で構成される四角形２１０（Ｐ０／Ｐ１／Ｐ２／Ｐ３）の形状に近い四角形として、中間四角形を算出する。中間四角形３１０は座標線形変換部１１０の線形変換結果で構成される。
【００１９】
図４は、四角形の四頂点の座標変換例を示す図である。図４において、列４１０は第１の座標を示す列であり、第１の座標で構成される四角形２２０の四頂点座標を示している。列４３０は第２の座標を示す列であり、第２の座標で構成される四角形２１０の四頂点座標を示している。列４２０は、列４１０の各座標に関して上段で線形変換結果、下段で非線形変換結果を示しており、上段と下段の座標の和は列４３０で示した四角形２１０の四頂点座標となる。つまり、第１の座標（Ｉｘ，Ｉｙ）⇒第２の座標（Ｈｘ，Ｈｙ）という非線形変換を第１の座標（Ｉｘ，Ｉｙ）⇒線形変換後の座標（Ｆｘ，Ｆｙ）という線形変換と第１の座標（Ｉｘ，Ｉｙ）⇒非線形変換後の座標（Ｇｘ，Ｇｙ）という非線形変換の２つに分解する。
【００２０】
上記変換を実現する座標線形変換部１１０、座標非線形変換部１２０の構成について詳細に説明する。ここで、代表的な線形変換であるアフィン変換が適用された場合の座標線形変換部１１０を説明する。アフィン変換で表現可能な変換を線形変換とし、アフィン変換で表現不可能な変換を非線形変換とする。座標線形変換部１１０は式（１）に示したアフィン変換関数を演算可能なリソースを備える回路であるとする。
【００２１】
【数１】
2020038730.tif 000003
【００２２】
ここで、アフィン係数ａ，ｂ，ｃ，ｄ，ｅ，ｆは制御部１８０によって設定される変換パラメータである。図３で示した中間四角形３１０を得るには、ａ＝１．０，ｂ＝０．０，ｃ＝０．０，ｄ＝０．８３３，ｅ＝０．０，ｆ＝１００．０とすることで所望の線形変換を実現することができる。
【００２３】
座標非線形変換部１２０では、四角形の四頂点のＵＶ値を基にバイリニア補間を用いたＵＶマッピングにより非線形変換を実現する。この場合の非線形変換関数を式（２）に示す。
【００２４】
【数２】
2020038730.tif 000004
【００２５】
ここで、パラメータ（Ｕ０，Ｖ０），（Ｕ１，Ｖ１），（Ｕ２，Ｖ２），（Ｕ３，Ｖ３）は第１の座標となる四頂点座標（０，０），（Ｗ，０），（Ｗ，Ｈ），（０，Ｈ）を非線形変換した場合の座標である。各パラメータ（Ｕ０，Ｖ０），（Ｕ１，Ｖ１），（Ｕ２，Ｖ２），（Ｕ３，Ｖ３）は、それぞれ制御部１８０によって設定される変換パラメータである。本実施形態において、図４で示したように、第１の座標（列４１０）を非線形変換により差分（列４２０の下段）へ変換するので、制御部１８０は次のように四角形の四頂点のＵＶ値を設定することで所望の非線形変換を実現することができる。すなわち、（Ｕ０，Ｖ０）＝（０．０，−１００．０），（Ｕ１，Ｖ１）＝（０．０，１００．０），（Ｕ２，Ｖ２）＝（０．０，−１００．０），（Ｕ３，Ｖ３）＝（０．０，１００．０）と設定する。また、本実施形態においてＷ＝１６００，Ｈ＝１２００とするが、これに限定されず、W，Ｈを１０２４，４０９６などの２のべき乗に限定することで除算をシフト演算で実現するとしても良い。
【００２６】
座標合成部１３０では、式（１）による線形変換結果の座標（Ｆｘ，Ｆｙ）と式（２）による非線形変換結果の座標（Ｇｘ，Ｇｙ）とを加算する。すなわち式（３）で表される。
【００２７】
【数３】
2020038730.tif 000005
【００２８】
次に座標変換の演算精度について説明する。上記で説明したように、制御部１８０は、線形変換で求める線形変換後の座標（Ｆｘ，Ｆｙ）をできるだけ第２の座標（Ｈｘ，Ｈｙ）に近い値に設定する。その結果、その差分である非線形変換後の座標（Ｇｘ，Ｇｙ）の絶対値が取りうる範囲（値域）は、線形変換後の座標（Ｆｘ，Ｆｙ）に比べて小さくすることができる。例えば上記パースペクティブ補正の例では図４に示したように線形変換後の座標（Ｆｘ，Ｆｙ）の絶対値は非線形変換後の座標（Ｇｘ，Ｇｙ）の絶対値の１０倍以上となっている。演算誤差は演算結果の絶対値に比例すると考えれば、第２の座標（Ｈｘ，Ｈｙ）に含まれる誤差は、座標線形変換部１１０起因の誤差の影響が支配的となる。そのため、座標線形変換部１１０の演算精度を座標非線形変換部１２０の演算精度より高く設けることにより、高精度な座標変換を実現することができる。ここで演算精度とは、固定小数点であれば小数点以下のビット数としても良いし、浮動小数点であれば仮数部のビット数としても良い。
【００２９】
（変換パラメータの設定）
制御部１８０は、取得した四頂点座標に基づいて座標変換処理を線形変換と非線形変換に分解する。図９（ａ）は、制御部１８０は実行する処理のフローチャートである。制御部１８０はＣＰＵであり、ＲＯＭ（不図示）から図９に示すフローチャートを実現できるプログラムを読み出すことにより、ソフトウェアによって以降の処理は実現する。まずステップＳ９０１において制御部１８０は、パースペクティブ補正前の四角形を定義する４頂点と、パースペクティブ補正後の四角形を定義する４頂点を取得する。ここでは、補正対象の画像のうち、主な被写体である建造物を検出し、建造物の４頂点が歪みのない画像になるように生成するとする。そこで制御部１８０は、被写体である建造物の４頂点の座標を、パースペクティブ補正前の四角形を定義する４頂点として取得する。また、パースペクティブ補正後の４頂点は、撮影時のモードやユーザ指定、補正対象の画像などにより予め決定される。
【００３０】
ステップＳ９０２において制御部１８０は、ステップＳ９０１において取得した２つの４頂点から、中間四角形を決定する。図９（ｂ）は、ステップＳ９０２における処理のさらに詳細なフローチャートである。まずステップＳ９０５において、パースペクティブ補正後の四角形の頂点Q０〜Q３を候補中間四角形の初期値として設定する。次にステップＳ９０６において制御部１８０は、候補中間四角形の座標それぞれと、パースペクティブ補正前の四角形の頂点Ｐ０〜Ｐ３それぞれとの差分を算出する。このとき、差分を算出する頂点は、互いに最も近い位置の頂点である。
【００３１】
次にステップＳ９０７において、次の候補中間四角形となる四角形を探索する。具体的には、現在の候補中間四角形のうち少なくとも１つの頂点のＸ座標もしくはＹ座標を、対応する補正前の四角形の頂点に１近付ける操作を行う。この時、上記操作は線形変換の範囲内で行う。このような操作が可能な新たな中間四角形が見つかれば、ステップＳ９０８に進み、次の候補中間四角形として設定し、ステップＳ９０６に戻る。新たな候補中間四角形がなければ、全ての候補中間四角形の差分を算出したとしてステップＳ９０９に進む。全ての候補中間四角形についてパースペクティブ補正前の四角形の頂点Ｐ０〜Ｐ３との差分を算出すると、ステップＳ９０９において差分が最小値の候補中間四角形を、中間四角形として決定する。図３の例では、中間四角形３１０の四頂点の座標は、（０，１００），（１６００，１００），（１６００，１１００），（０，１１００）となる。
【００３２】
図９（ａ）に戻り、ステップＳ９０３において制御部１８０は、線形変換処理に実行させるためのパラメータであるアフィン係数ａ，ｂ，ｃ，ｄ，ｅ，ｆを、式（１）と中間四角形の座標に基づいて算出し、座標線形変換部１１０にパラメータを設定する。
【００３３】
またステップＳ９０４において制御部１８０は、非線形変換処理に実行させるためのパラメータをパースペクティブ補正前の４頂点の座標と、中間四角形の座標とに基づいて算出し、座標非線形変換部１１０にパラメータを設定する。座標非線形変換部１２０は、線形変換結果で構成される中間四角形３１０と第２の座標で構成される四角形２１０までの変換処理をする。ここで制御部１８０は、パラメータを、線形変換結果で構成される中間四角形３１０と第２の座標で構成される四角形２１０の差分から算出する。図３の例では、中間四角形３１０の四頂点座標と四角形２１０の四頂点座標の差分は、（Ｐ０−Ｐ０’），（Ｐ１−Ｐ１’），（Ｐ２−Ｐ２’），（Ｐ３−Ｐ３’）となる。式（２）の（Ｕ０，Ｖ０），（Ｕ２，Ｖ２）、（Ｕ１，Ｖ１），（Ｕ３，Ｖ３）に各差分を代入してパラメータを算出する。
【００３４】
以上により、制御部１８０による変換処理の分解を完了する。以上の通り制御部１８０は、座標変換処理の開始前に算出した分解の結果（変換パラメータ）を、座標線形変換部１１０及び座標非線形変換部１２０それぞれに設定する。上記で説明したように，非線形変換結果の座標（Ｇｘ，Ｇｙ）の絶対値が小さい方が精度の観点から望ましい。そこで本実施形態では、中間四角形の四頂点と最終的な演算結果である四角形２１０の四頂点の距離の絶対値和（｜Ｐ０−Ｐ０’｜＋｜Ｐ１−Ｐ１’｜＋｜Ｐ２−Ｐ２’｜＋｜Ｐ３−Ｐ３’｜）が最小となる中間四角形５２０を求めた。
【００３５】
（実施形態１の効果）
次にこれら座標変換処理を実現する演算リソースについて説明する．一般に、非線形変換を単体で実現すると、非線形変換は除算など複雑な演算を含むため、高精度にするには回路規模が大きくなる。本実施形態の構成では、非線形変換の精度を落としても影響が少ないため、比較的小さい回路規模で実現できる。なお本実施形態では、座標線形変換部１１０、座標非線形変換部１２０、座標合成部１３０、画像入出力部１４０それぞれを回路により実現する場合を例に説明した。しかしながらハードウェア化せずにプログラムとして実行する場合でも、同様に演算することで効果を得られる。座標変換のために複雑な演算を高精度に行う演算コストが高い場合、演算の遅延時間増大や消費電力の増大など好ましくない状況を招く。そこで、本実施形態の適用によって演算コストを低減し、上記状況を改善することができる。
【００３６】
以上説明したように、上記実施形態では所望の座標変換処理を２つの変換に分解し、それぞれ座標を独立に変換した後に両者の結果を合成する構成とした。２つの変換はそれぞれ、演算精度、演算結果の値域、演算関数（式（１）と式（２））が異なる変換とした。これにより、最終的な演算結果の精度と回路規模との両立ができた。
【００３７】
＜変形例１＞
上記実施形態１では、メモリ上の入力画像に対して幾何変換後の画像をストリーミング出力する例を説明したが、これに限られない。例えば逆にストリーミング入力の画像に対して幾何変換後の画像をメモリ上に書き込むようにしても良い。一般に、入力画像・出力画像のいずれかがストリーミング（ラスタ順）で、もう一方がランダムアクセスになる場合、ストリーミング側の座標を座標入力ポート１５０から入力し、その座標を変換した結果を基にランダムアクセスする構成とすれば良い。
【００３８】
本変形例において、画像入力ポート１６０から入力画像の画素をラスタ順に入力する場合を説明する。座標入力ポート１５０には上記実施形態１において出力画像の座標が第１の座標として入力されていたが、本変形例では入力画像の座標を第１の座標として入力することとなる。この場合に、算出される第２の座標は出力画像の座標となり、画像入出力部１４０に渡される。そして、画像入出力部１４０は、渡された出力画像の座標に対応するメモリアドレスへ入力画像の画素を書き込む。なお、画像入出力部１４０には数ライン分画像を一時的に記憶するラインバッファを備えても良い。
【００３９】
＜実施形態２＞
実施形態１では、候補となる中間四角形の全てについて、パースペクティブ補正前の４頂点との差分し、差分が最小となる候補を中間四角形として決定した。実施形態２では、パースペクティブ補正前の４頂点のうち３頂点を用いて、非線形変換結果の座標（Ｇｘ，Ｇｙ）の絶対値が小さくなるよう座標変換処理を分解する方法について説明する。図５（ａ）は、本実施形態における座標変換処理の分解方法を説明するための図である。一般に線形変換の範囲内で任意の３点を合わせる座標変換処理が可能である。そこで制御部１８０は、第２の座標で構成される四角形２１０の四頂点のうち３点（Ｐ０，Ｐ１，Ｐ３）に合わせるように線形変換した結果得られる四角形を中間四角形として算出する。従って実施形態２では、第１の座標で構成される四角形２２０の四頂点のうち３点（Ｑ０，Ｑ１，Ｑ３）は、第２の座標で構成される四角形２１０の四頂点のうち３点（Ｐ０，Ｐ１，Ｐ３）に合わせた中間四角形５１０に線形変換される。中間四角形５１０の四頂点はＰ０，Ｐ１，Ｐ２’，Ｐ３となる。
【００４０】
図９（ｃ）は、実施形態２における制御部１８０が実行する処理のフローチャートである。まずステップＳ９１０において、第２の座標で構成される四角形２１０の四頂点を取得し、４頂点のうち、任意の３頂点（ここではＰ０，Ｐ１，Ｐ３）を選択する。
【００４１】
ステップＳ９１１において制御部１８０は、Ｑ０，Ｑ１，Ｑ３の座標及びＰ０，Ｐ１，Ｐ３の座標をそれぞれ式（１）の（Ｉｘ，Ｉｙ）及び（Ｆｘ，Ｆｙ）に代入して得られる方程式を解くことによって、アフィン係数を求める。制御部１８０は、算出したアフィン係数を座標線形変換部１１０に設定する。次に、ステップＳ９１２において制御部１８０は、求めたアフィン係数を用いて、中間四角形５１０の残り１点（Ｐ２’）の座標も計算する。
【００４２】
ステップＳ９１３において制御部１８０は、座標非線形変換部１２０の変換パラメータ（非線形変換関数を表す式（２）における（Ｕ０，Ｖ０），（Ｕ１，Ｖ１），（Ｕ２，Ｖ２），（Ｕ３，Ｖ３））を、Ｐ２’及びＰ２の座標に基づいて算出し、設定する。具体的に、式（２）の（Ｕ２，Ｖ２）に（Ｐ２−Ｐ２’）の座標を設定し、式（２）の（Ｕ０，Ｖ０），（Ｕ１，Ｖ１），（Ｕ３，Ｖ３）に（０．０，０．０）を設定すれば良い。以上により、実施形態２における座標変換処理の分解処理を完了する。この場合、非線形変換により１点（Ｐ２’をＰ２に）のみ合わせるので、分解自体の計算量（すなわち制御部１８０の負荷）が比較的少ない方法となる。
【００４３】
なお、さらに別の分解方法でもよい。図５（ｂ）では、重複領域（斜線部）に着目し、中間四角形の総面積のうち、最終的な演算結果である四角形２１０と重複する領域の割合が最大（あるいは近似的に最大）となる中間四角形５３０を求めている。
【００４４】
以上の中間四角形５１０，５２０，５３０はいずれも図２（ｂ）に示した四角形２２０から線形変換の範囲内である。そのため、座標線形変換部１１０に変換パラメータを適切に設定することで線形変換結果として座標を算出することができる。座標非線形変換部１２０は最終的な演算結果である四角形２１０と中間四角形の差分のみを非線形変換結果として計算するように変換パラメータが設定される。いずれの中間四角形の場合も差分の絶対値は比較的小さいことが期待できる。なお、分解方法は上記で説明した例に限定されず、他の方法で求めた変換パラメータを用いて座標変換処理を行っても良い。
【００４５】
＜変形例２＞
上記実施形態１では、座標線形変換部１１０はアフィン変換、座標非線形変換部１２０はＵＶ値をバイリニア補間でマッピングすることとしたが、他の演算でも良い。例えば、座標線形変換部１１０は単純な拡大縮小のみを行うとしても良い。この時、線形変換として、式（４）を実行することとなる。
【００４６】
【数４】
2020038730.tif 000006
【００４７】
ここでａは拡大縮小率を表すパラメータとなる。この場合であっても回転や平行移動がないユースケースなどでは十分であり、更なる回路規模低減が可能である。
【００４８】
また、例えば、座標非線形変換部１２０は奥行きを考慮したＵＶマッピングを行うとしても良い。この時、非線形変換として、式（５）を実行することとなる。
【００４９】
【数５】
2020038730.tif 000007
【００５０】
ここで、Ｚ０，Ｚ１，Ｚ２，Ｚ３はそれぞれ四頂点のデプス（奥行き方向の座標）であり、その他のパラメータは式（２）と同等である。このようにすることでより正確なＵＶ値のマッピングが可能になるが、除算が増えるなど演算は複雑化する。しかし上記実施形態１で説明した構成により座標非線形変換部１２０は、その精度が座標線形変換部１１０に比べて低くても最終結果に与える影響が軽微のため、複雑な演算であっても比較的少ない回路規模で実装できる。
【００５１】
＜実施形態３＞
上記実施形態１では座標合成部１３０にて、線形変換結果（Ｆｘ，Ｆｙ）と非線形変換結果（Ｇｘ，Ｇｙ）の加算を実行したが、他の演算を実行しても良く、例えば乗算や比較（大きい方を選択など）を実行可能な構成としても良い。この場合の座標合成部１３０の構成例を図６に示す。図６に示したように、入力である線形変換結果（Ｆｘ，Ｆｙ）と非線形変換結果（Ｇｘ，Ｇｙ）に対して加算、乗算、比較のいずれかの結果を出力する構成となっている。演算の選択は制御部１８０から制御する。このような構成とすることでより多様な座標変換を実現できる。
【００５２】
例えば、図２で示した四角形２２０の座標から四角形２１０の座標への変換処理を線形変換と非線形変換の乗算に分解する例を説明する。これは、例えば図７に示した中間四角形７１０を用いて実現できる。すなわち、中間四角形７１０の座標を座標線形変換部１１０で求め、座標非線形変換部１２０で四頂点の座標が（１．０，１．０），（１．０，０．６７），（１．０，０．６７），（１．０，１．０）となるよう非線形変換を行う。座標合成部１３０で線形変換結果と非線形変換結果を乗算する。このようにすることで、中間四角形７１０の左端（Ｐ０，Ｐ３）は等倍で、右にいくにつれてＹ方向に縮み、右端（Ｐ１’，Ｐ２’）はＹ方向に２／３となる変形が実現できる。以上のように、線形変換と非線形変換の乗算により所望の座標変換が実現できる。
【００５３】
＜実施形態４＞
本実施形態では、上記実施形態で説明した幾何変換を画像合成処理に適用する例を示す。図８は本実施形態における画像合成部８００の構成例を示す図である。画像幾何変換部８１０は、動画を構成する複数の画像（フレーム）をメモリ（図示せず）から読み出して、所定の幾何変換処理を実行した後、合成部８３０に順次供給する。属性データ幾何変換部８２０は属性マップをメモリ（図示せず）から読み出して、所定の幾何変換処理を実行した後、合成部８３０に順次供給する。ここで属性マップとは、画像の分割領域ごとに解析処理で算出した属性データ（メタデータ）を分割領域の２次元座標位置に応じて記録するものであり，例えばフレーム間の動き量などを記録するデータである。合成部８３０では、画素ごとに順次合成処理し、合成結果を出力する。合成処理の際に、属性データに応じて適応的に処理パラメータを切り替える。画像合成処理は、例えばＨＤＲ合成処理であり、同じシーンを撮影した露光時間の違う複数の画像に対して、動き量（属性データ）を基に合成割合を決定し、ブレンド処理する。
【００５４】
画像幾何変換部８１０では例えば動画を撮影する際の撮影装置のブレを補正する処理を実行する。具体的には、最初のフレームで設定した四角形の４頂点に対応する４頂点を、後続の各フレームから検出し、検出した四角形が所定の長方形となるよう変形する。
一方、属性マップは例えば画像（幾何変換前の画像）の６４×６４領域ごとに１つの動き量が算出された結果であるとすれば、属性マップは画像に比べ解像度が１／６４ということになる。すなわち合成部８３０へ画素に対応した属性データを入力するには、属性データ幾何変換部８２０では、上記ブレ補正に相当する幾何変換に加えて６４倍の拡大（画像と属性マップの解像度の違いを吸収する処理）となる変換を実行すれば良い。
【００５５】
以上のような構成において、画像幾何変換部８１０は一般的な射影変換により実装し、属性データ幾何変換部８２０は実施形態１における画像処理部１００を用いて実装する。属性データ幾何変換部８２０の具体的な設定方法を説明する。変換後の四角形（第１の座標）は上記画像幾何変換部８１０と同じ（上記所定の長方形）とする。変形前の四角形（第２の座標）は検出した上記４頂点の座標を１／６４倍して用いる。
【００５６】
本実施形態において、実施形態１の画像処理部１００とは違って変形するのは画像データではなく属性データに幾何変換を適用することであるが，２次元座標位置に応じて記録されたデータ群であれば同様に適用することができる。一般に、高倍率の拡大縮小処理を実現するには、座標算出に高い演算精度が必要になり、特に非線形変換の場合は演算が複雑なので演算コストが高くなることが懸念される。しかし本実施形態の属性データ幾何変換部８２０を用いることによって６４倍の拡大は線形変換のため、座標線形変換部１１０で高精度に変換し、残差のみを座標非線形変換部１２０で求める。これにより演算コストを比較的低く抑えることができる。
【００５７】
＜実施形態５＞
上記実施形態１では、変換パラメータを変換前後の四頂点座標に基づいて決定したが、これに限らない。例えば画像撮影機器に距離センサ等が具備されており、被写体までの距離情報が利用可能な場合、距離情報を基に変換パラメータを求めても良い。例として、建物などの平面状の被写体に対して、正面から上方にあおり撮影をする場合に関して図１０を用いて説明する。図１０（ａ）に図示したように、カメラの視野の下端Ｐ１までの距離をｄ１、カメラの視野の上端Ｐ２までの距離をｄ２とする。この時、撮影画像は図１０（ｂ）のように上端にいくにしたがって水平方向に縮小されたような画像となる。図中の点線は補助線であり、鉛直方向を示している。これを図１０（ｃ）のように補正する。すなわち画像下端Ｐ１では水平方向に等倍であり、画像上端Ｐ２では水平方向にｄ２／ｄ１倍するような処理となる。以降ではＲ＝ｄ２／ｄ１として説明する。
【００５８】
以上のような変形を行う場合、線形変換成分を大きくするには、例えば線形変換部１１０で画像全体を水平方向に（Ｒ＋１）／２倍（すなわち下端の倍率と上端の倍率の平均）するなどが考えられる。具体的には、アフィン係数をａ＝（Ｒ＋１）／２，ｂ＝０．０，ｃ＝０．０，ｄ＝１．０，ｅ＝W×（Ｒ−１）／４，ｆ＝０．０などとすれば良い。ここで、Ｗは画像幅である。非線形変換のパラメータは、線形変換のパラメータが決定すれば、実施形態１と同様に最終的な演算結果（図１０（ｃ））との残差から求めることができる。
【００５９】
以上説明したように、本実施形態では被写体までの距離情報を基に変換パラメータを求める例を示した。なお、変換パラメータは距離情報以外にもジャイロセンサの値やレンズのズーム値などを用いて算出しても良い。機器が固定され、ユースケースが限定されている場合などは、複数のパラメータセットを予め記憶しておき、ユースケースに応じて選択的に切り替える構成としても良い。
【００６０】
＜その他の実施例＞
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【００６１】
また、本発明は上述した実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲内において、種々の変形、変更して実施することができる。
【符号の説明】
【００６２】
１１０  座標線形変換部
１２０  座標非線形変換部
１３０  座標合成部
１８０  制御部
８１０  画像幾何変換部
８２０  属性データ幾何変換部
８３０  合成部
【図１】
2020038730.tif 000008
【図２】
2020038730.tif 000009
【図３】
2020038730.tif 000010
【図４】
2020038730.tif 000011
【図５】
2020038730.tif 000012
【図６】
2020038730.tif 000013
【図７】
2020038730.tif 000014
【図８】
2020038730.tif 000015
【図９】
2020038730.tif 000016
【図１０】
2020038730.tif 000017