特許第6972089号(P6972089)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ キヤノン株式会社の特許一覧

特許6972089画像処理装置、画像処理方法、及びプログラム
<>
  • 特許6972089-画像処理装置、画像処理方法、及びプログラム 図000007
  • 特許6972089-画像処理装置、画像処理方法、及びプログラム 図000008
  • 特許6972089-画像処理装置、画像処理方法、及びプログラム 図000009
  • 特許6972089-画像処理装置、画像処理方法、及びプログラム 図000010
  • 特許6972089-画像処理装置、画像処理方法、及びプログラム 図000011
  • 特許6972089-画像処理装置、画像処理方法、及びプログラム 図000012
  • 特許6972089-画像処理装置、画像処理方法、及びプログラム 図000013
  • 特許6972089-画像処理装置、画像処理方法、及びプログラム 図000014
  • 特許6972089-画像処理装置、画像処理方法、及びプログラム 図000015
  • 特許6972089-画像処理装置、画像処理方法、及びプログラム 図000016
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6972089
(24)【登録日】2021年11月5日
(45)【発行日】2021年11月24日
(54)【発明の名称】画像処理装置、画像処理方法、及びプログラム
(51)【国際特許分類】
   G06T 5/00 20060101AFI20211111BHJP
【FI】
   G06T5/00 725
【請求項の数】14
【全頁数】16
(21)【出願番号】特願2019-224688(P2019-224688)
(22)【出願日】2019年12月12日
(62)【分割の表示】特願2016-47605(P2016-47605)の分割
【原出願日】2016年3月10日
(65)【公開番号】特開2020-38730(P2020-38730A)
(43)【公開日】2020年3月12日
【審査請求日】2019年12月20日
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】110001243
【氏名又は名称】特許業務法人 谷・阿部特許事務所
(72)【発明者】
【氏名】芦田 純平
【審査官】 山田 辰美
(56)【参考文献】
【文献】 特開平06−131452(JP,A)
【文献】 特開2005−269449(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 5/00
IEEE Xplore
(57)【特許請求の範囲】
【請求項1】
2次元座標位置に応じて記録されたデータに幾何変換を行う画像処理装置であって、
第1の座標から第2の座標への変換処理を、前記第1の座標から第3の座標に変換する線形変換の結果と、前記第1の座標から第4の座標に変換する非線形変換の結果との合成になるようにするために、前記線形変換及び前記非線形変換の変換パラメータを決定する制御手段と、
前記線形変換の変換パラメータに基づく前記線形変換で前記第3の座標を算出する線形変換手段と、
前記非線形変換の変換パラメータに基づく前記非線形変換で、前記第4の座標を算出する非線形変換手段と、
前記第3の座標と前記第4の座標を合成して、前記第2の座標を算出する合成手段と
を有することを特徴とする画像処理装置。
【請求項2】
前記制御手段は、前記第1の座標で構成される第1の四角形の四頂点座標及び前記第2の座標で構成される第2の四角形の四頂点座標を取得し、取得した四頂点座標に基づいて前記変換パラメータを決定することを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記制御手段は、前記第3の座標で構成される第3の四角形の四頂点のうちの3点が前記第2の四角形の四頂点のうちの3点と一致するように、前記変換パラメータを決定することを特徴とする請求項2に記載の画像処理装置。
【請求項4】
前記制御手段は、前記第3の座標で構成される第3の四角形の四頂点と前記第2の四角形の四頂点との距離の絶対値和が最小となるように、前記変換パラメータを決定することを特徴とする請求項2に記載の画像処理装置。
【請求項5】
前記制御手段は、前記第3の座標で構成される第3の四角形の面積のうち前記第2の四角形の面積と重複する領域の面積の割合が最大となるように、前記変換パラメータを決定することを特徴とする請求項2に記載の画像処理装置。
【請求項6】
前記制御手段は、前記変換処理を前記線形変換と前記非線形変換の加算に分解し、前記合成手段は前記第3の座標と前記第4の座標を加算して前記第2の座標を算出することを特徴とする請求項1乃至5のいずれか1項に記載の画像処理装置。
【請求項7】
前記制御手段は、前記変換処理を前記線形変換と前記非線形変換の乗算に分解し、前記合成手段は前記第3の座標と前記第4の座標を乗算して前記第2の座標を算出することを特徴とする請求項1乃至5のいずれか1項に記載の画像処理装置。
【請求項8】
前記線形変換はアフィン変換で表現可能な変換であり、前記非線形変換はアフィン変換で表現不可能な変換であることを特徴とする請求項1乃至7のいずれか1項に記載の画像処理装置。
【請求項9】
前記非線形変換の演算のビット数は、前記線形変換のビット数よりも少ないことを特徴とする請求項1乃至8のいずれか1項に記載の画像処理装置。
【請求項10】
前記2次元座標位置に応じて記録されたデータは画像データであり、前記変換処理は前記幾何変換後の画像の座標から前記幾何変換前の画像の座標への変換処理であり、前記幾何変換前の画像の座標に従って前記データを外部メモリから読み取る手段をさらに有することを特徴とする請求項1乃至のいずれか1項に記載の画像処理装置。
【請求項11】
前記2次元座標位置に応じて記録されたデータは画像データであり、前記変換処理は前記幾何変換前の画像の座標から前記幾何変換後の画像の座標への変換処理であり、前記幾何変換後の画像の座標に従って前記データを外部メモリに書き込む手段をさらに有することを特徴とする請求項1乃至のいずれか1項に記載の画像処理装置。
【請求項12】
複数の画像データを合成する画像処理装置であって、
複数の画像データを幾何変換する画像幾何変換手段と、
属性データを幾何変換する属性データ幾何変換手段と、
前記属性データ幾何変換手段で幾何変換された前記属性データに基づき、前記画像幾何変換手段で幾何変換された前記複数の画像データを合成する画像合成手段と
を有し、
前記属性データ幾何変換手段は、
第1の座標から第2の座標への変換処理を、前記第1の座標から第3の座標に変換する線形変換の結果と、前記第1の座標から第4の座標に変換する非線形変換の結果との合成になるようにするために、前記線形変換及び前記非線形変換の変換パラメータを決定する制御手段と、
前記線形変換の変換パラメータに基づく前記線形変換で前記第3の座標を算出する線形変換手段と、
前記非線形変換の変換パラメータに基づく前記非線形変換で、前記第4の座標を算出する非線形変換手段と、
前記第3の座標と前記第4の座標を合成して、前記第2の座標を算出する合成手段と
を有することを特徴とする画像処理装置。
【請求項13】
2次元座標位置に応じて記録されたデータに幾何変換を行う画像処理方法であって、
第1の座標から第2の座標への変換処理を、前記第1の座標から第3の座標に変換する線形変換の結果と、前記第1の座標から第4の座標に変換する非線形変換の結果との合成になるようにするために、前記線形変換及び前記非線形変換の変換パラメータを決定する制御工程と、
前記制御工程で決定された前記線形変換の前記変換パラメータに基づく前記線形変換で前記第3の座標を算出する線形変換工程と、
前記制御工程で決定された前記非線形変換の前記変換パラメータに基づく前記非線形変換で、前記第4の座標を算出する非線形変換工程と、
前記第3の座標と前記第4の座標を合成して、前記第2の座標を算出する合成工程と
を有することを特徴とする画像処理方法。
【請求項14】
コンピュータを、請求項1乃至12のいずれか1項に記載の画像処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、2次元座標位置に応じて記録されたデータに幾何変換を実行する技術に関するものである。
【背景技術】
【0002】
従来、デジタルカメラやプリンタ、プロジェクタなどデジタル画像を扱う機器では、デジタル画像に座標変換による幾何変換処理がしばしば実行されている。例えば、プリンタでは印刷の解像度に合わせて入力画像の拡大処理(高解像度化処理)が行われている。監視カメラでは、被写体に向かって斜め方向から撮影する場合に、建物などの長方形の被写体が台形に歪むため台形を長方形となるよう補正すること(パースペクティブ補正)や、画像内の注目領域を拡大処理することなどがある。プロジェクタでは投影画像を投影面に合わせるようキーストーン補正処理などが行われている。幾何変換処理において、拡大縮小、回転、スキュー及び平行移動といった線形な座標変換を線形変換、それ以外の座標変換を非線形変換と呼ぶこととする。
【0003】
幾何変換処理は高速化のためにしばしばハードウェアで実装される。線形変換は比較的少ない演算リソースで実装可能であるが、非線形変換は除算など複雑な演算が必要になるため、回路規模が大きくなるという課題がある。特に近年の画像の高解像度化(8Kなど)に伴って座標の取り得る値域も拡大しており、高精度な座標変換の実現のためには大規模な演算回路などが必要となっている。
【0004】
そこで、例えば特許文献1では、まず画像を複数の三角形領域に分割する。そして、分割された領域ごとに頂点の対応からアフィン変換(線形変換)を行う。これにより、画像全体では所望の非線形変換を近似した変換を実現している。また、特許文献2では、X線診断装置において全撮影角度に対応する歪み補正のための補正テーブルをあらかじめメモリに用意しておく。必要に応じて現在の撮影角度に対応する補正テーブルをアドレス発生器にセットすることで非線形変換を実現している。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2004−227470号公報
【特許文献2】特開2000−224481号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、上記特許文献1に記載の手法では、領域ごとにアフィン変換用のパラメータを設定する必要があり、パラメータの算出自体が煩雑になる。また、領域の境界における不整合により画質劣化を引き起こす可能性がある。上記特許文献2に記載の手法はX線診断装置など撮影角度が限定されている機器では有効であるが、一般的なカメラなど撮影角度の自由度が高い機器では全撮影角度に対応する補正テーブルを用意しておくことは現実的でない。
【0007】
本発明は以上の状況に鑑みてなされたものであって、比較的少ない演算リソースで高精度な幾何変換を実現することを目的とする。
【課題を解決するための手段】
【0008】
本発明に係る画像処理装置は、2次元座標位置に応じて記録されたデータに幾何変換を行う画像処理装置であって、第1の座標から第2の座標への変換処理を、前記第1の座標から第3の座標に変換する線形変換の結果と、前記第1の座標から第4の座標に変換する非線形変換の結果との合成になるようにするために、前記線形変換及び前記非線形変換の変換パラメータを決定する制御手段と、前記線形変換の変換パラメータに基づく前記線形変換で前記第3の座標を算出する線形変換手段と、前記非線形変換の変換パラメータに基づく前記非線形変換で、前記第4の座標を算出する非線形変換手段と、前記第3の座標と前記第4の座標を合成して、前記第2の座標を算出する合成手段とを有することを特徴とする。
【発明の効果】
【0009】
本発明によれば、高精度な幾何変換を比較的少ない演算リソースで実現できる。
【図面の簡単な説明】
【0010】
図1】実施形態1における画像処理部の構成例を示す図である。
図2】実施形態1における幾何変換の例を示す図である。
図3】実施形態1における中間四角形を説明するための図である。
図4】実施形態1における四角形の四頂点の座標変換例を示す図である。
図5】実施形態1における座標変換処理の分解方法を説明するための図である。
図6】実施形態2における座標合成部の構成例を示す図である。
図7】実施形態2における座標変換処理の分解方法を説明するための図である。
図8】実施形態3における画像合成部の構成例を示す図である。
図9】実施形態1における変換パラメータ計算のフローチャートである。
図10】実施形態5における幾何変換の例を示す図である。
【発明を実施するための形態】
【0011】
以下、本発明の実施形態について、図面を参照して説明する。なお、以下の実施の形態は特許請求の範囲に関わる本発明を限定するものではなく、また、本実施の形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
【0012】
<実施形態1>
(画像処理部の構成)
図1は本実施形態における画像処理部100の構成例を示す図である。本実施形態において、メモリ上の入力画像に対して幾何変換後の画像をストリーミング出力する例を説明する。本実施形態では、幾何変換後の画像における各画素の座標から幾何変換前の画像における座標を算出し、算出した幾何変換前の画像の座標に対応する画素値を、入力画像から算出する。
【0013】
幾何変換後の画像の座標は第1の座標(Ix,Iy)として、座標入力ポート150よりラスタ順に入力される。ここで幾何変換後の画像の幅をW画素とし、高さをH画素とそると、幾何変換後の画像は、W画素×H画素の画素からなる。第1の座標(Ix,Iy)は、Iy=0.5としてIxが0.5から(W−0.5)に達するまで1インクリメントしながら順に入力される。またIxが(W−0.5)に達すると、Iyが1インクリメントされ、Iy=0.5の時と同様、Ixが順にインクリメントされた値が入力されていく。なおここでは画素の重心位置を座標とするため、(Ix,Iy)=(0.5、0.5)を開始点として1インクリメントする。座標線形変換部110及び座標非線形変換部120は、座標入力ポート150より入力される第1の座標(Ix,Iy)にそれぞれ所定の線形変換処理及び非線形変換処理を行う。すなわち、座標線形変換部110では第1の座標(Ix,Iy)に線形変換を施して、線形変換結果の座標(Fx,Fy)を出力する。座標非線形変換部120では第1の座標(Ix,Iy)に非線形変換を施して、非線形変換結果の座標(Gx,Gy)を出力する。ここで線形変換とは、拡大縮小、回転、スキュー、平行移動といった線形な座標変換を意味しており、非線形変換とはそれ以外の変換を意味している。
【0014】
座標合成部130では座標線形変換部110から出力される線形変換結果の座標(Fx,Fy)と、座標非線形変換部120から出力される非線形変換結果の座標(Gx,Gy)とを合成して、第2の座標(Hx,Hy)を算出する。算出される第2の座標は、幾何変換前の入力画像における位置を示す座標であり、画像入出力部140に渡される。座標線形変換部110の線形変換及び座標非線形変換部120の非線形変換に用いられる変換パラメータはそれぞれ制御部180(CPUなど)によって求められて設定される。変換パラメータの設定の詳細については後述する。
【0015】
画像入出力部140は、入力画像を一時的に記憶する外部メモリ(図示せず)にアクセス可能であり、入力画像における座標(Hx,Hy)に位置する画素値を画像入力ポート160経由で外部メモリから取得する。取得した画素値は、第1の座標(Ix,Iy)の画素値として画像出力ポート170へ出力する。なお、座標合成部130により算出される座標値Hx,Hyは整数とは限らない。そのため、各座標値が整数でない場合に、入力画像における座標(Hx,Hy)近傍の複数の画素の画素値を外部メモリから取得し、補間演算を行うことにより座標(Hx,Hy)に該当する画素値を求める。画像出力ポート170へ出力された画素は、さらにフィルタ処理など他の画像処理部へ入力されても良いし、そのまま外部メモリに書き戻しても良い。ここで画像処理部100のうち、制御部180以外の各構成はハードウェア(回路)として実装する。
【0016】
(幾何変換の例)
本実施形態では、幾何変換の具体例としてパースペクティブ補正(あおり補正)の例を説明する。図2は、パースペクティブ補正を示す図である。図2(a)がパースペクティブ補正前の四角形を示しており、図2(b)がパースペクティブ補正後の四角形を示している。パースペクティブ補正前の四角形210は台形状であり、四頂点の座標をそれぞれ(0,0),(1600,200),(1600,1000),(0,1200)とする。パースペクティブ補正後の四角形220は長方形であり、四頂点の座標はそれぞれ(0,0),(1600,0),(1600,1200),(0,1200)とする。デジタルカメラなどの撮影装置が、被写体に対して光軸を傾けて撮影すると、得られる撮影画像は、図2(a)に示すように被写体が歪んだ画像になってしまう。そこで撮影画像に対してパースペクティブ補正をすることで、図2(b)に示すように被写体を正面から平行に撮影した画像に変換する。補正対象の撮影画像自体は、各画素に画素値が格納されたデータであり四角形であるが、撮影画像に含まれる一部領域である図2(a)のような四角形を、図2(b)に示す四角形に変換することで、歪みを低減した画像を得られる。処理対象の撮影画像に対して、どのようなパースペクティブ補正を実行するかは、撮影時の撮影装置のモードやユーザによる指定によって決定される。
【0017】
本実施形態において、補正対象の画像データは外部メモリに格納されているとする。図1の座標入力ポート150へは補正後の四角形220の座標をラスタ順に入力する。すなわち、補正後の四角形220の座標が第1の座標(Ix,Iy)として入力され、これに対応する補正前の四角形210の座標が第2の座標(Hx,Hy)として算出される。本実施形態では、第1の座標(Ix,Iy)⇒第2の座標(Hx,Hy)という非線形な座標変換を線形成分と非線形成分に分解し、座標線形変換部110及び座標非線形変換部120ではそれぞれ第1の座標(Ix,Iy)に対して線形変換及び非線形変換を行う。そして、得られた線形変換結果と非線形変換結果を合成することで、第2の座標(Hx,Hy)を算出する。
【0018】
(座標変換処理)
図3は、本実施形態において、座標変換を線形変換と非線形変換とにより実現する方法を説明するための図である。制御部180は、座標変換を線形変換と非線形変換に分解するために、まず図3に示すように、中間データとしてP0’、P1’、P2’、P3’によって定義される四角形310(以降、中間四角形と呼ぶ)を設定する。制御部180は、点P0,P1、P2、P3によって定義されるパースペクティブ補正前の四角形210と、点Q0,Q1,Q2、Q3によって定義されるパースペクティブ補正後の四角形320に基づいて、中間四角形310を決定する。線形変換処理によりパースペクティブ補正後の四角形から中間四角形までの変換を行い、非線形変換処理により、中間四角形からパースペクティブ補正前の四角形までの変換を行うことになる。線形変換処理により主な変換処理を行い、非線形変換処理の演算を少なくさせることが望ましい。そこで制御部180は、第1の座標で構成される四角形220から線形変換の範囲内であり、かつ第2の座標で構成される四角形210(P0/P1/P2/P3)の形状に近い四角形として、中間四角形を算出する。中間四角形310は座標線形変換部110の線形変換結果で構成される。
【0019】
図4は、四角形の四頂点の座標変換例を示す図である。図4において、列410は第1の座標を示す列であり、第1の座標で構成される四角形220の四頂点座標を示している。列430は第2の座標を示す列であり、第2の座標で構成される四角形210の四頂点座標を示している。列420は、列410の各座標に関して上段で線形変換結果、下段で非線形変換結果を示しており、上段と下段の座標の和は列430で示した四角形210の四頂点座標となる。つまり、第1の座標(Ix,Iy)⇒第2の座標(Hx,Hy)という非線形変換を第1の座標(Ix,Iy)⇒線形変換後の座標(Fx,Fy)という線形変換と第1の座標(Ix,Iy)⇒非線形変換後の座標(Gx,Gy)という非線形変換の2つに分解する。
【0020】
上記変換を実現する座標線形変換部110、座標非線形変換部120の構成について詳細に説明する。ここで、代表的な線形変換であるアフィン変換が適用された場合の座標線形変換部110を説明する。アフィン変換で表現可能な変換を線形変換とし、アフィン変換で表現不可能な変換を非線形変換とする。座標線形変換部110は式(1)に示したアフィン変換関数を演算可能なリソースを備える回路であるとする。
【0021】
【数1】
【0022】
ここで、アフィン係数a,b,c,d,e,fは制御部180によって設定される変換パラメータである。図3で示した中間四角形310を得るには、a=1.0,b=0.0,c=0.0,d=0.833,e=0.0,f=100.0とすることで所望の線形変換を実現することができる。
【0023】
座標非線形変換部120では、四角形の四頂点のUV値を基にバイリニア補間を用いたUVマッピングにより非線形変換を実現する。この場合の非線形変換関数を式(2)に示す。
【0024】
【数2】
【0025】
ここで、パラメータ(U0,V0),(U1,V1),(U2,V2),(U3,V3)は第1の座標となる四頂点座標(0,0),(W,0),(W,H),(0,H)を非線形変換した場合の座標である。各パラメータ(U0,V0),(U1,V1),(U2,V2),(U3,V3)は、それぞれ制御部180によって設定される変換パラメータである。本実施形態において、図4で示したように、第1の座標(列410)を非線形変換により差分(列420の下段)へ変換するので、制御部180は次のように四角形の四頂点のUV値を設定することで所望の非線形変換を実現することができる。すなわち、(U0,V0)=(0.0,−100.0),(U1,V1)=(0.0,100.0),(U2,V2)=(0.0,−100.0),(U3,V3)=(0.0,100.0)と設定する。また、本実施形態においてW=1600,H=1200とするが、これに限定されず、W,Hを1024,4096などの2のべき乗に限定することで除算をシフト演算で実現するとしても良い。
【0026】
座標合成部130では、式(1)による線形変換結果の座標(Fx,Fy)と式(2)による非線形変換結果の座標(Gx,Gy)とを加算する。すなわち式(3)で表される。
【0027】
【数3】
【0028】
次に座標変換の演算精度について説明する。上記で説明したように、制御部180は、線形変換で求める線形変換後の座標(Fx,Fy)をできるだけ第2の座標(Hx,Hy)に近い値に設定する。その結果、その差分である非線形変換後の座標(Gx,Gy)の絶対値が取りうる範囲(値域)は、線形変換後の座標(Fx,Fy)に比べて小さくすることができる。例えば上記パースペクティブ補正の例では図4に示したように線形変換後の座標(Fx,Fy)の絶対値は非線形変換後の座標(Gx,Gy)の絶対値の10倍以上となっている。演算誤差は演算結果の絶対値に比例すると考えれば、第2の座標(Hx,Hy)に含まれる誤差は、座標線形変換部110起因の誤差の影響が支配的となる。そのため、座標線形変換部110の演算精度を座標非線形変換部120の演算精度より高く設けることにより、高精度な座標変換を実現することができる。ここで演算精度とは、固定小数点であれば小数点以下のビット数としても良いし、浮動小数点であれば仮数部のビット数としても良い。
【0029】
(変換パラメータの設定)
制御部180は、取得した四頂点座標に基づいて座標変換処理を線形変換と非線形変換に分解する。図9(a)は、制御部180は実行する処理のフローチャートである。制御部180はCPUであり、ROM(不図示)から図9に示すフローチャートを実現できるプログラムを読み出すことにより、ソフトウェアによって以降の処理は実現する。まずステップS901において制御部180は、パースペクティブ補正前の四角形を定義する4頂点と、パースペクティブ補正後の四角形を定義する4頂点を取得する。ここでは、補正対象の画像のうち、主な被写体である建造物を検出し、建造物の4頂点が歪みのない画像になるように生成するとする。そこで制御部180は、被写体である建造物の4頂点の座標を、パースペクティブ補正前の四角形を定義する4頂点として取得する。また、パースペクティブ補正後の4頂点は、撮影時のモードやユーザ指定、補正対象の画像などにより予め決定される。
【0030】
ステップS902において制御部180は、ステップS901において取得した2つの4頂点から、中間四角形を決定する。図9(b)は、ステップS902における処理のさらに詳細なフローチャートである。まずステップS905において、パースペクティブ補正後の四角形の頂点Q0〜Q3を候補中間四角形の初期値として設定する。次にステップS906において制御部180は、候補中間四角形の座標それぞれと、パースペクティブ補正前の四角形の頂点P0〜P3それぞれとの差分を算出する。このとき、差分を算出する頂点は、互いに最も近い位置の頂点である。
【0031】
次にステップS907において、次の候補中間四角形となる四角形を探索する。具体的には、現在の候補中間四角形のうち少なくとも1つの頂点のX座標もしくはY座標を、対応する補正前の四角形の頂点に1近付ける操作を行う。この時、上記操作は線形変換の範囲内で行う。このような操作が可能な新たな中間四角形が見つかれば、ステップS908に進み、次の候補中間四角形として設定し、ステップS906に戻る。新たな候補中間四角形がなければ、全ての候補中間四角形の差分を算出したとしてステップS909に進む。全ての候補中間四角形についてパースペクティブ補正前の四角形の頂点P0〜P3との差分を算出すると、ステップS909において差分が最小値の候補中間四角形を、中間四角形として決定する。図3の例では、中間四角形310の四頂点の座標は、(0,100),(1600,100),(1600,1100),(0,1100)となる。
【0032】
図9(a)に戻り、ステップS903において制御部180は、線形変換処理に実行させるためのパラメータであるアフィン係数a,b,c,d,e,fを、式(1)と中間四角形の座標に基づいて算出し、座標線形変換部110にパラメータを設定する。
【0033】
またステップS904において制御部180は、非線形変換処理に実行させるためのパラメータをパースペクティブ補正前の4頂点の座標と、中間四角形の座標とに基づいて算出し、座標非線形変換部110にパラメータを設定する。座標非線形変換部120は、線形変換結果で構成される中間四角形310と第2の座標で構成される四角形210までの変換処理をする。ここで制御部180は、パラメータを、線形変換結果で構成される中間四角形310と第2の座標で構成される四角形210の差分から算出する。図3の例では、中間四角形310の四頂点座標と四角形210の四頂点座標の差分は、(P0−P0’),(P1−P1’),(P2−P2’),(P3−P3’)となる。式(2)の(U0,V0),(U2,V2)、(U1,V1),(U3,V3)に各差分を代入してパラメータを算出する。
【0034】
以上により、制御部180による変換処理の分解を完了する。以上の通り制御部180は、座標変換処理の開始前に算出した分解の結果(変換パラメータ)を、座標線形変換部110及び座標非線形変換部120それぞれに設定する。上記で説明したように,非線形変換結果の座標(Gx,Gy)の絶対値が小さい方が精度の観点から望ましい。そこで本実施形態では、中間四角形の四頂点と最終的な演算結果である四角形210の四頂点の距離の絶対値和(|P0−P0’|+|P1−P1’|+|P2−P2’|+|P3−P3’|)が最小となる中間四角形520を求めた。
【0035】
(実施形態1の効果)
次にこれら座標変換処理を実現する演算リソースについて説明する.一般に、非線形変換を単体で実現すると、非線形変換は除算など複雑な演算を含むため、高精度にするには回路規模が大きくなる。本実施形態の構成では、非線形変換の精度を落としても影響が少ないため、比較的小さい回路規模で実現できる。なお本実施形態では、座標線形変換部110、座標非線形変換部120、座標合成部130、画像入出力部140それぞれを回路により実現する場合を例に説明した。しかしながらハードウェア化せずにプログラムとして実行する場合でも、同様に演算することで効果を得られる。座標変換のために複雑な演算を高精度に行う演算コストが高い場合、演算の遅延時間増大や消費電力の増大など好ましくない状況を招く。そこで、本実施形態の適用によって演算コストを低減し、上記状況を改善することができる。
【0036】
以上説明したように、上記実施形態では所望の座標変換処理を2つの変換に分解し、それぞれ座標を独立に変換した後に両者の結果を合成する構成とした。2つの変換はそれぞれ、演算精度、演算結果の値域、演算関数(式(1)と式(2))が異なる変換とした。これにより、最終的な演算結果の精度と回路規模との両立ができた。
【0037】
<変形例1>
上記実施形態1では、メモリ上の入力画像に対して幾何変換後の画像をストリーミング出力する例を説明したが、これに限られない。例えば逆にストリーミング入力の画像に対して幾何変換後の画像をメモリ上に書き込むようにしても良い。一般に、入力画像・出力画像のいずれかがストリーミング(ラスタ順)で、もう一方がランダムアクセスになる場合、ストリーミング側の座標を座標入力ポート150から入力し、その座標を変換した結果を基にランダムアクセスする構成とすれば良い。
【0038】
本変形例において、画像入力ポート160から入力画像の画素をラスタ順に入力する場合を説明する。座標入力ポート150には上記実施形態1において出力画像の座標が第1の座標として入力されていたが、本変形例では入力画像の座標を第1の座標として入力することとなる。この場合に、算出される第2の座標は出力画像の座標となり、画像入出力部140に渡される。そして、画像入出力部140は、渡された出力画像の座標に対応するメモリアドレスへ入力画像の画素を書き込む。なお、画像入出力部140には数ライン分画像を一時的に記憶するラインバッファを備えても良い。
【0039】
<実施形態2>
実施形態1では、候補となる中間四角形の全てについて、パースペクティブ補正前の4頂点との差分し、差分が最小となる候補を中間四角形として決定した。実施形態2では、パースペクティブ補正前の4頂点のうち3頂点を用いて、非線形変換結果の座標(Gx,Gy)の絶対値が小さくなるよう座標変換処理を分解する方法について説明する。図5(a)は、本実施形態における座標変換処理の分解方法を説明するための図である。一般に線形変換の範囲内で任意の3点を合わせる座標変換処理が可能である。そこで制御部180は、第2の座標で構成される四角形210の四頂点のうち3点(P0,P1,P3)に合わせるように線形変換した結果得られる四角形を中間四角形として算出する。従って実施形態2では、第1の座標で構成される四角形220の四頂点のうち3点(Q0,Q1,Q3)は、第2の座標で構成される四角形210の四頂点のうち3点(P0,P1,P3)に合わせた中間四角形510に線形変換される。中間四角形510の四頂点はP0,P1,P2’,P3となる。
【0040】
図9(c)は、実施形態2における制御部180が実行する処理のフローチャートである。まずステップS910において、第2の座標で構成される四角形210の四頂点を取得し、4頂点のうち、任意の3頂点(ここではP0,P1,P3)を選択する。
【0041】
ステップS911において制御部180は、Q0,Q1,Q3の座標及びP0,P1,P3の座標をそれぞれ式(1)の(Ix,Iy)及び(Fx,Fy)に代入して得られる方程式を解くことによって、アフィン係数を求める。制御部180は、算出したアフィン係数を座標線形変換部110に設定する。次に、ステップS912において制御部180は、求めたアフィン係数を用いて、中間四角形510の残り1点(P2’)の座標も計算する。
【0042】
ステップS913において制御部180は、座標非線形変換部120の変換パラメータ(非線形変換関数を表す式(2)における(U0,V0),(U1,V1),(U2,V2),(U3,V3))を、P2’及びP2の座標に基づいて算出し、設定する。具体的に、式(2)の(U2,V2)に(P2−P2’)の座標を設定し、式(2)の(U0,V0),(U1,V1),(U3,V3)に(0.0,0.0)を設定すれば良い。以上により、実施形態2における座標変換処理の分解処理を完了する。この場合、非線形変換により1点(P2’をP2に)のみ合わせるので、分解自体の計算量(すなわち制御部180の負荷)が比較的少ない方法となる。
【0043】
なお、さらに別の分解方法でもよい。図5(b)では、重複領域(斜線部)に着目し、中間四角形の総面積のうち、最終的な演算結果である四角形210と重複する領域の割合が最大(あるいは近似的に最大)となる中間四角形530を求めている。
【0044】
以上の中間四角形510,520,530はいずれも図2(b)に示した四角形220から線形変換の範囲内である。そのため、座標線形変換部110に変換パラメータを適切に設定することで線形変換結果として座標を算出することができる。座標非線形変換部120は最終的な演算結果である四角形210と中間四角形の差分のみを非線形変換結果として計算するように変換パラメータが設定される。いずれの中間四角形の場合も差分の絶対値は比較的小さいことが期待できる。なお、分解方法は上記で説明した例に限定されず、他の方法で求めた変換パラメータを用いて座標変換処理を行っても良い。
【0045】
<変形例2>
上記実施形態1では、座標線形変換部110はアフィン変換、座標非線形変換部120はUV値をバイリニア補間でマッピングすることとしたが、他の演算でも良い。例えば、座標線形変換部110は単純な拡大縮小のみを行うとしても良い。この時、線形変換として、式(4)を実行することとなる。
【0046】
【数4】
【0047】
ここでaは拡大縮小率を表すパラメータとなる。この場合であっても回転や平行移動がないユースケースなどでは十分であり、更なる回路規模低減が可能である。
【0048】
また、例えば、座標非線形変換部120は奥行きを考慮したUVマッピングを行うとしても良い。この時、非線形変換として、式(5)を実行することとなる。
【0049】
【数5】
【0050】
ここで、Z0,Z1,Z2,Z3はそれぞれ四頂点のデプス(奥行き方向の座標)であり、その他のパラメータは式(2)と同等である。このようにすることでより正確なUV値のマッピングが可能になるが、除算が増えるなど演算は複雑化する。しかし上記実施形態1で説明した構成により座標非線形変換部120は、その精度が座標線形変換部110に比べて低くても最終結果に与える影響が軽微のため、複雑な演算であっても比較的少ない回路規模で実装できる。
【0051】
<実施形態3>
上記実施形態1では座標合成部130にて、線形変換結果(Fx,Fy)と非線形変換結果(Gx,Gy)の加算を実行したが、他の演算を実行しても良く、例えば乗算や比較(大きい方を選択など)を実行可能な構成としても良い。この場合の座標合成部130の構成例を図6に示す。図6に示したように、入力である線形変換結果(Fx,Fy)と非線形変換結果(Gx,Gy)に対して加算、乗算、比較のいずれかの結果を出力する構成となっている。演算の選択は制御部180から制御する。このような構成とすることでより多様な座標変換を実現できる。
【0052】
例えば、図2で示した四角形220の座標から四角形210の座標への変換処理を線形変換と非線形変換の乗算に分解する例を説明する。これは、例えば図7に示した中間四角形710を用いて実現できる。すなわち、中間四角形710の座標を座標線形変換部110で求め、座標非線形変換部120で四頂点の座標が(1.0,1.0),(1.0,0.67),(1.0,0.67),(1.0,1.0)となるよう非線形変換を行う。座標合成部130で線形変換結果と非線形変換結果を乗算する。このようにすることで、中間四角形710の左端(P0,P3)は等倍で、右にいくにつれてY方向に縮み、右端(P1’,P2’)はY方向に2/3となる変形が実現できる。以上のように、線形変換と非線形変換の乗算により所望の座標変換が実現できる。
【0053】
<実施形態4>
本実施形態では、上記実施形態で説明した幾何変換を画像合成処理に適用する例を示す。図8は本実施形態における画像合成部800の構成例を示す図である。画像幾何変換部810は、動画を構成する複数の画像(フレーム)をメモリ(図示せず)から読み出して、所定の幾何変換処理を実行した後、合成部830に順次供給する。属性データ幾何変換部820は属性マップをメモリ(図示せず)から読み出して、所定の幾何変換処理を実行した後、合成部830に順次供給する。ここで属性マップとは、画像の分割領域ごとに解析処理で算出した属性データ(メタデータ)を分割領域の2次元座標位置に応じて記録するものであり,例えばフレーム間の動き量などを記録するデータである。合成部830では、画素ごとに順次合成処理し、合成結果を出力する。合成処理の際に、属性データに応じて適応的に処理パラメータを切り替える。画像合成処理は、例えばHDR合成処理であり、同じシーンを撮影した露光時間の違う複数の画像に対して、動き量(属性データ)を基に合成割合を決定し、ブレンド処理する。
【0054】
画像幾何変換部810では例えば動画を撮影する際の撮影装置のブレを補正する処理を実行する。具体的には、最初のフレームで設定した四角形の4頂点に対応する4頂点を、後続の各フレームから検出し、検出した四角形が所定の長方形となるよう変形する。
一方、属性マップは例えば画像(幾何変換前の画像)の64×64領域ごとに1つの動き量が算出された結果であるとすれば、属性マップは画像に比べ解像度が1/64ということになる。すなわち合成部830へ画素に対応した属性データを入力するには、属性データ幾何変換部820では、上記ブレ補正に相当する幾何変換に加えて64倍の拡大(画像と属性マップの解像度の違いを吸収する処理)となる変換を実行すれば良い。
【0055】
以上のような構成において、画像幾何変換部810は一般的な射影変換により実装し、属性データ幾何変換部820は実施形態1における画像処理部100を用いて実装する。属性データ幾何変換部820の具体的な設定方法を説明する。変換後の四角形(第1の座標)は上記画像幾何変換部810と同じ(上記所定の長方形)とする。変形前の四角形(第2の座標)は検出した上記4頂点の座標を1/64倍して用いる。
【0056】
本実施形態において、実施形態1の画像処理部100とは違って変形するのは画像データではなく属性データに幾何変換を適用することであるが,2次元座標位置に応じて記録されたデータ群であれば同様に適用することができる。一般に、高倍率の拡大縮小処理を実現するには、座標算出に高い演算精度が必要になり、特に非線形変換の場合は演算が複雑なので演算コストが高くなることが懸念される。しかし本実施形態の属性データ幾何変換部820を用いることによって64倍の拡大は線形変換のため、座標線形変換部110で高精度に変換し、残差のみを座標非線形変換部120で求める。これにより演算コストを比較的低く抑えることができる。
【0057】
<実施形態5>
上記実施形態1では、変換パラメータを変換前後の四頂点座標に基づいて決定したが、これに限らない。例えば画像撮影機器に距離センサ等が具備されており、被写体までの距離情報が利用可能な場合、距離情報を基に変換パラメータを求めても良い。例として、建物などの平面状の被写体に対して、正面から上方にあおり撮影をする場合に関して図10を用いて説明する。図10(a)に図示したように、カメラの視野の下端P1までの距離をd1、カメラの視野の上端P2までの距離をd2とする。この時、撮影画像は図10(b)のように上端にいくにしたがって水平方向に縮小されたような画像となる。図中の点線は補助線であり、鉛直方向を示している。これを図10(c)のように補正する。すなわち画像下端P1では水平方向に等倍であり、画像上端P2では水平方向にd2/d1倍するような処理となる。以降ではR=d2/d1として説明する。
【0058】
以上のような変形を行う場合、線形変換成分を大きくするには、例えば線形変換部110で画像全体を水平方向に(R+1)/2倍(すなわち下端の倍率と上端の倍率の平均)するなどが考えられる。具体的には、アフィン係数をa=(R+1)/2,b=0.0,c=0.0,d=1.0,e=W×(R−1)/4,f=0.0などとすれば良い。ここで、Wは画像幅である。非線形変換のパラメータは、線形変換のパラメータが決定すれば、実施形態1と同様に最終的な演算結果(図10(c))との残差から求めることができる。
【0059】
以上説明したように、本実施形態では被写体までの距離情報を基に変換パラメータを求める例を示した。なお、変換パラメータは距離情報以外にもジャイロセンサの値やレンズのズーム値などを用いて算出しても良い。機器が固定され、ユースケースが限定されている場合などは、複数のパラメータセットを予め記憶しておき、ユースケースに応じて選択的に切り替える構成としても良い。
【0060】
<その他の実施例>
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
【0061】
また、本発明は上述した実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲内において、種々の変形、変更して実施することができる。
【符号の説明】
【0062】
110 座標線形変換部
120 座標非線形変換部
130 座標合成部
180 制御部
810 画像幾何変換部
820 属性データ幾何変換部
830 合成部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10