(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-01-10
(45)【発行日】2025-01-21
(54)【発明の名称】画像処理装置、画像処理方法、及びプログラム
(51)【国際特許分類】
G06T 3/047 20240101AFI20250114BHJP
G06T 5/80 20240101ALI20250114BHJP
【FI】
G06T3/047
G06T5/80
(21)【出願番号】P 2020208266
(22)【出願日】2020-12-16
【審査請求日】2023-12-12
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】100090273
【氏名又は名称】國分 孝悦
(72)【発明者】
【氏名】大竹 律子
【審査官】佐田 宏史
(56)【参考文献】
【文献】特開2019-125076(JP,A)
【文献】特開2017-225090(JP,A)
【文献】特開2020-071854(JP,A)
【文献】立花 康夫,“魚眼写真での射影法の同定”,電子情報通信学会技術研究報告,日本,社団法人電子情報通信学会,2007年07月30日,Vol.107, No.182,pp.29-34
【文献】Ruiqing Wu et al.,"A piecewise correction method for high-resolution image of wide-angle lens",2013 6th International Congress on Image and Signal Processing (CISP),米国,IEEE,2013年12月16日,pp.331-335
(58)【調査した分野】(Int.Cl.,DB名)
G06T 1/00,3/00-3/18,5/80
H04N 1/387
(57)【特許請求の範囲】
【請求項1】
第一の画像
における実空間上の鉛直線に対応する少なくとも2つの直線を指定する
ユーザからの指示を受け付ける第一の操作手段と、
前記第一の操作手段によって指定された前記少なくとも2つの直線の位置に基づいて、前記第一の画像を第二の画像に補正する補正処理を実行する補正手段と、
前記第一の操作手段によって指定された前記少なくとも2つの直線が前記補正処理において有効か否かを評価する評価手段と、
前記評価手段によって前記少なくとも2つの直線が前記補正処理において有効でないと評価された場合に、前記第一の操作手段によって指定された前記少なくとも2つの直線を修正する第二の操作手段と、有し、
前記補正手段は、
前記評価手段によって前記少なくとも2つの直線が前記補正処理において有効であると評価された場合に、前記少なくとも2つの直線に基づいて前記補正処理を実行
し、
前記補正処理において、前記補正手段は、
前記第一の操作手段に対して指定された前記少なくとも2つの直線の交点に基づいて1点を決定し、
前記決定した1点に基づいて、前記第一の画像を含む扇形領域を決定し、
前記扇形領域に基づいて、前記第一の画像を前記第二の画像に補正することを特徴とする画像処理装置。
【請求項2】
前記補正手段は、前記補正処理において、
前記決定した1点を扇形の中心座標とした扇形であって、前記第一の画像に外接する前記扇形領域を定義し、
前記扇形領域と前記第一の画像とを基に前記第二の画像のサイズを決定し、
前記サイズに合わせて、前記扇形領域から前記第二の画像への座標変換を行うことを特徴とする請求項
1に記載の画像処理装置。
【請求項3】
前記第一の操作手段は、前記第一の画像から実空間上の鉛直線に対応すると推測される少なくとも3つの直線を抽出し、
前記補正手段は、
前記抽出された少なくとも3つの直線の複数の交点を取得し、
前記取得した複数の交点のうち、既定範囲内に座標がある複数の交点の代表値を、前記1点として決定することを特徴とする請求項
1または
2に記載の画像処理装置。
【請求項4】
前記補正手段は、既定範囲内に座標がある複数の交点の座標の平均値または中央値、もしくは前記既定範囲内に座標がある複数の交点の座標の分布が集中する座標を、前記代表値とすることを特徴とする請求項
3に記載の画像処理装置。
【請求項5】
前記既定範囲は、画像の横と縦のいずれか一方の幅の中央を通る直線を中心とする既定幅の範囲であることを特徴とする請求項
3または
4に記載の画像処理装置。
【請求項6】
前記評価手段は、前記少なくとも2つの直線が前記補正処理において有効でないと評価した場合には、ユーザに確認を求める表示を行うことを特徴とする請求項
1に記載の画像処理装置。
【請求項7】
前記評価手段は、前記第一の操作手段に対してユーザにより指定された前記少なくとも2つの直線が、前記第一の画像の所定の辺と交差する場合に、前記少なくとも2つの直線が前記補正処理において有効であると評価することを特徴とする請求項
6に記載の画像処理装置。
【請求項8】
前記評価手段は、前記第一の操作手段に対してユーザにより指定された前記少なくとも2つの直線が、前記補正処理において有効でないと評価した場合には、ユーザに対して直線の追加を要求する表示を行うことを特徴とする請求項
6または
7に記載の画像処理装置。
【請求項9】
前記評価手段は、前記第一の操作手段に対してユーザにより指定された前記少なくとも2つの直線が、前記補正処理において有効でないと評価した場合には、直線を追加するべき推奨領域を示す表示を行うことを特徴とする請求項
6から
8のいずれか1項に記載の画像処理装置。
【請求項10】
前記評価手段は、ユーザによって新たに指定された少なくとも2つの直線と前記第一の画像の所定の辺との交点が、既に設定されている少なくとも2つの直線と前記第一の画像の所定の辺との交点位置に対して、前記第一の画像の所定の辺の中央点を基準に左右対称となる位置になる領域を、前記推奨領域として設定することを特徴とする請求項
9に記載の画像処理装置。
【請求項11】
前記評価手段は、既に設定されている直線と前記第一の画像の所定の辺との交点を境界として、前記第一の画像の中央方向側の領域を、前記推奨領域として設定することを特徴とする請求項1
0に記載の画像処理装置。
【請求項12】
前記評価手段は、前記第一の操作手段に対してユーザにより指定された前記少なくとも2つの直線が、前記第一の画像の所定の辺と交差する場合に、前記少なくとも2つの直線が前記補正処理において有効であると評価することを特徴とする請求項1に記載の画像処理装置。
【請求項13】
画像処理装置が実行する画像処理方法であって、
第一の画像
における実空間上の鉛直線に対応する少なくとも2つの直線を指定する
ユーザからの指示を受け付ける第一の操作工程と、
前記第一の操作工程で指定された前記少なくとも2つの直線の位置に基づいて、前記第一の画像を第二の画像に補正する補正処理を実行する補正工程と、
前記第一の操作工程で指定された前記少なくとも2つの直線が前記補正処理において有効か否かを評価する評価工程と、
前記評価工程で前記少なくとも2つの直線が前記補正処理において有効でないと評価された場合に、前記第一の操作工程で指定された前記少なくとも2つの直線を修正する第二の操作工程と、を有し、
前記補正工程では、
前記評価工程で前記少なくとも2つの直線が前記補正処理において有効であると評価された場合に、前記少なくとも2つの直線に基づいて前記補正処理を実行
し、
前記補正処理において、
前記第一の操作工程で指定された前記少なくとも2つの直線の交点に基づいて1点を決定し、
前記決定した1点に基づいて、前記第一の画像を含む扇形領域を決定し、
前記扇形領域に基づいて、前記第一の画像を前記第二の画像に補正することを特徴とする画像処理方法。
【請求項14】
コンピュータを、請求項1から
12のいずれか1項に記載の画像処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、撮像画像を処理する画像処理技術に関する。
【背景技術】
【0002】
広角レンズによる撮影画像の歪みを補正する技術が従来から知られている。特許文献1には、撮影画像から被写体の矩形領域を検出して歪曲率を算出し、その歪曲率に基づいて広角レンズ歪みの補正を行うための変換パラメータを導出する技術が開示されている。特許文献2には、車両に搭載されたカメラによる撮影画像を車両室内のモニタに表示する際、広範囲の表示を保ちつつレンズ歪みを軽減するために、撮影画像上の位置に従って補正係数を切り替えて歪み補正を行う技術が開示されている。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2015-165629号公報
【文献】特開2013-110712号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1や特許文献2で示された技術では、人が見て違和感の少ない幾何特性に変換することを目的としているため、例えば撮影画像を用いた画像解析処理への入力に適した画像が必ずしも得られるわけではない。
【0005】
そこで本発明は、画像解析処理への入力に適した画像を取得することを目的とする。
【課題を解決するための手段】
【0006】
本発明の画像処理装置は、第一の画像における実空間上の鉛直線に対応する少なくとも2つの直線を指定するユーザからの指示を受け付ける第一の操作手段と、前記第一の操作手段によって指定された前記少なくとも2つの直線の位置に基づいて、前記第一の画像を第二の画像に補正する補正処理を実行する補正手段と、前記第一の操作手段によって指定された前記少なくとも2つの直線が前記補正処理において有効か否かを評価する評価手段と、前記評価手段によって前記少なくとも2つの直線が前記補正処理において有効でないと評価された場合に、前記第一の操作手段によって指定された前記少なくとも2つの直線を修正する第二の操作手段と、有し、前記補正手段は、前記評価手段によって前記少なくとも2つの直線が前記補正処理において有効であると評価された場合に、前記少なくとも2つの直線に基づいて前記補正処理を実行し、前記補正処理において、前記補正手段は、前記第一の操作手段に対して指定された前記少なくとも2つの直線の交点に基づいて1点を決定し、前記決定した1点に基づいて、前記第一の画像を含む扇形領域を決定し、前記扇形領域に基づいて、前記第一の画像を前記第二の画像に補正することを特徴とする。
【発明の効果】
【0007】
本発明によれば、画像解析処理への入力に適した画像を取得できる。
【図面の簡単な説明】
【0008】
【
図1】画像処理装置を含むシステム構成例を示す図である。
【
図2】人物を検出する画像解析処理と画像の歪みとの関係説明に用いる図である。
【
図3】実施形態に係る画像処理のフローチャートである。
【
図4】変換前後の画像を含む平面領域の説明に用いる図である。
【
図5】ユーザによる基準線指定に係る処理のフローチャートである。
【
図7】基準線の確認を促す操作画面例を示す図である。
【
図8】基準線追加を促す操作画面例を示す図である。
【
図9】基準線指定の完了が可能であることを表す操作画面例を示す図である。
【発明を実施するための形態】
【0009】
以下、本発明の実施形態について、図面を参照して説明する。なお、以下の実施形態は本発明を限定するものではなく、また、本実施形態で説明されている特徴の組み合わせの全てが本発明に必須のものとは限らない。また、同一の構成については、同じ符号を付して説明する。
【0010】
<第一の実施形態>
図1は、本実施形態に係る画像処理装置を含むシステムの概略的な構成例を示した図である。
画像処理装置100は、CPU101、ROM102、RAM103、HDD104、ネットワーク制御部105、表示制御部106、および操作制御部107を備える。これら各構成部はシステムバス108を介して互いに接続され、データの送受信が可能である。画像処理装置100は、ネットワーク制御部105を介してネットワーク300と接続し、ネットワーク300を介して撮像装置200および記憶装置400と接続される。また、画像処理装置100は、表示制御部106を介して表示装置130と接続される。さらに画像処理装置100は、操作制御部107を介して操作装置150と接続される。
【0011】
CPU101は、画像処理装置100における動作を統括的に制御するものであり、システムバス108を介して各構成部(102~107)を制御する。またCPU101は、プログラムに基づいて、後述する本実施形態に係る画像処理および画像解析処理等を実行する。
ROM102は、CPU101が処理を実行するために必要な制御プログラム等を記憶する不揮発性メモリである。HDD104は、大容量の記憶装置である。HDD104は、OS(オペレーティングシステム)や、CPU101が本実施形態に係る画像処理や画像解析処理を実行するためのプログラム、画像解析処理に利用するデータや解析結果データなどの各種データを記憶する。なお、当該プログラムは、HDD104のほか、不図示の外部メモリや着脱可能な記憶媒体に記憶されていてもよい。RAM103は、CPU101の主メモリ、ワークエリア等として機能する。すなわちCPU101は、処理の実行に際してROM102やHDD104から必要なプログラム等をRAM103にロードし、当該プログラム等を実行することで各種の機能動作を実現する。
【0012】
ネットワーク制御部105は、ネットワーク300を介して外部装置と通信するためのインターフェースである。外部装置とは、ネットワークカメラ等の撮像装置200、録画データおよびその他データを蓄積するための記憶装置400、その他ネットワークに接続された装置である。
表示制御部106は、画像処理装置100から出力される表示データを表示装置130に表示させるためのインターフェースである。
操作制御部107は、操作装置150を通じてユーザが入力した操作指示情報を画像処理装置100に伝達するためのインターフェースである。操作装置150は、例えばキーボード、マウス、タッチパネルである。なお操作装置150がタッチパネルである場合、タッチパネルは表示装置130の画面と一体に形成されていてもよい。
【0013】
前述した構成において、画像処理装置100の電源がONになると、CPU101はROM102に格納されたブートプログラムを実行し、HDD104からOSをRAM103にロードし、実行する。そして、CPU101は、RAM103にロードしたOSによる制御下で、本実施形態に係る画像処理アプリケーションプログラムをHDD104からRAM103にロードし、実行する。またCPU101は、画像解析処理アプリケーションプログラムをHDD104からRAM103にロードして、実行する。これにより、本実施形態の画像処理装置100は、画像解析装置としても機能する。
【0014】
図2(a)は、広角レンズを用いて取得された撮影画像と、当該撮影画像から人物の検出や人数を推定等する画像解析処理が行われる場合において、撮影画像の歪みとその画像内に写っている被写体との関係を説明するための図である。
図2(a)は、広角レンズで撮影された画像10に対し、本実施形態に係る画像処理を行わずに、被写体の人物を検出する画像解析処理を行った結果の例を示している。
【0015】
図2(a)の例において、破線14で囲まれた人物12とおよび破線15で囲まれた人物13は、画像解析の結果検出された人物であることを示している。画像10の例の場合、実際には3人の人物11,12,13が写っているが、画像解析処理によって検出できたのは人物12と人物13の2人であり、人物11は検出されていない。人物12と人物13は撮影画像において鉛直方向に直立した状態で写っているために画像解析処理で人物として検出されているのに対し、人物11は斜めの状態で写っているため、画像解析処理では人物として検出できていない。つまり
図2(a)の画像10の場合、斜めの状態の人物11を検出できていないため、画像解析処理における解析精度は低い。またこのように人物の検出漏れが生じている場合、人数を推定する画像解析処理における解析精度も低いものとなる。
【0016】
図2(b)は、
図2(a)に例示した画像10内で斜めの人物11のみを回転させて人物21とする画像処理を行った後の画像20に対し、前述同様の画像解析処理を行った結果を示している。回転後の人物21は、画像20内において鉛直方向に直立した状態になっているため、画像解析処理で人物として検出できている。このため
図2(b)の例の場合、人物21は、画像解析の結果検出されたことを表す破線22で囲まれた人物として描かれている。このように、広角レンズで撮影された画像において人物が斜めに写っている場合、その人物の画像上での角度を変えて鉛直方向に直立した状態にすることで、画像解析処理において人物として検出可能となる。しかしながら、画像10内で斜めの人物のみを回転させて画像20を生成する画像処理の場合、回転する領域を決定するための処理が非常に複雑であり、これを画像解析の前処理として行うのは現実的ではない。
【0017】
そこで本実施形態では、画像処理として、広角レンズで撮影された第一の画像上で、実空間上の鉛直線に対応する線を特定する特定処理と、その第一の画像上で特定した少なくとも2つの線の位置に基づいて、第一の画像を第二画像に補正する補正処理とを行う。補正処理においては、実空間上では鉛直方向の被写体であって第一の画像上では斜めになっている被写体が鉛直方向となるように第一の画像を簡易的に幾何変換するための変換係数を、特定処理で取得した少なくとも2つの線の位置に基づいて生成する。そして、その変換係数を用いた幾何変換処理を第一の画像に対して施すことにより、人物等の被写体が画像の垂直方向(鉛直方向)に近づくように補正して、第二の画像を取得する。これにより、画像解析精度が、画像内の被写体の傾きに影響されて低下してしまうのを防ぐことができる。すなわち例えば、広角レンズで撮影した画像上で人物等が斜めに写っていた場合でも、その人物等の検出や数の推定を行う解析精度が低下してしまうのを抑止することができる。
【0018】
図2(c)の画像30は、
図2(a)の画像10(第一の画像)に対して本実施形態の画像処理(簡易的な幾何変換による補正処理)を行った後の画像(第二の画像)であり、当該補正後の画像から人物を検出する画像解析処理を行った結果を示している。
図2(c)において、人物32は
図2(a)の人物12に対応し、同様に、人物33は人物13に、人物31は人物11に対応している。
図2(c)の場合、画像30内の人物31~33の内、特に人物31は、
図2(a)に示した元の画像10内の人物13と比較して多少変形はしているものの、画像30内で鉛直方向に直立した状態になっている。このため、
図2(c)の画像30では、人物32、人物33だけでなく、人物31についても画像解析処理によって人物として検出されている。すなわち
図2(c)の場合、人物32、33がそれぞれ破線34、35で囲まれて描画されていると共に、人物31についても、画像解析で人物として検出されたことを示す破線36によって囲まれている。
【0019】
以下、本実施形態の画像処理装置100が画像解析処理の前処理として実施する、画像処理(幾何変換処理)について説明する。
図3(a)~
図3(c)は、ネットワークカメラ等の撮像装置200または記憶装置400からネットワーク300経由で取得した第一の画像に対し、本実施形態の画像処理装置100が実行する画像処理(幾何変換処理)の流れを示すフローチャートである。なお、以降の各フローチャートにおける各処理は、画像処理装置100のCPU101が、本実施形態に係るプログラムを実行することによる実現されるとする。
【0020】
ステップS301において、CPU101は、処理対象の画像の入力を受け付ける。処理対象の画像は、広角レンズを用いて撮影された画像(第一の画像)であるとする。
次にステップS302において、CPU101は、ステップS301で受け付けた入力画像上で、実空間上で被写体の鉛直方向を示すと推測される直線であって、その後の変換係数算出の際に用いられる基準線を特定する。
【0021】
図3(b)は、ステップS302における基準線決定処理の詳細を示すフローチャートである。
図3(b)のステップS308において、CPU101は、画像内の直線を検出する。直線の検出方法は、一般によく知られている様々な方法のいずれの方法を用いてもよい。一例として、CPU101は、入力画像をグレースケール変換し、各画素値の微分情報を利用してエッジの構成要素となるエッジ画素を抽出する。次にCPU101は、様々な位置や角度の複数の直線を仮想的に定義し、抽出されたエッジ画素が多く載る直線を選択するハフ変換を行う。このとき、被写体が直線であってもレンズによる歪みによって撮影画像上では歪曲することがあるため、仮想的に定義した直線にエッジ画素が載ると判断する許容量を撮影条件に応じて設けておくことにする。またこのとき、選択された直線群の中から、本来であれば選択の必要が無かった直線をノイズとして除去することが望ましい。例えば、CPU101は、直線上のエッジ画素の分布がごく狭い範囲にのみ存在する直線、つまり非常に短い直線の選択を解除する。
【0022】
次にステップS309において、CPU101は、ステップS308で検出した直線群から実空間上では鉛直線であると推測できる所定の条件を満たした直線を抽出する。鉛直線と推測できる所定の条件は、入力画像が広角レンズでの撮影画像であるという前提で定義する。すなわち画像の中央より右側では右上から左下に引かれる角度の直線、画像の中央より左側では左上から右下に引かれる角度の直線が、被写体の鉛直線であるとして抽出される。なお画像内の位置に応じて、鉛直線と判定する角度の範囲を撮影条件も考慮して定義すると、さらに精度を上げることができる。
【0023】
次にステップS310において、CPU101は、ステップS309で実空間上の鉛直線であると推測された直線の中から、後に行われる幾何変換の係数を算出するために利用する直線を特定し、それを基準線として決定する。このとき、CPU101は、実空間上の鉛直線であると推測された直線の本数が既定数(例えば2つ)に満たない場合には、それら全ての直線を基準線とする。一方、実空間上の鉛直線であると推測された直線の本数が既定数以上である場合、CPU101は、画面に対する角度と位置が近い直線が複数あれば、そのうちの代表的な1本を選択して基準線とする。なお、画面に対する角度と位置が近い直線としては、例えば閾値角度範囲内や閾値位置範囲内にあるものを近い直線とする例が考えられる。またCPU101は、ノイズと判断できる特異な直線については基準線の候補から除去する。例えば、CPU101は、1本の直線の方向(角度)が近隣の多くの直線と明らかに異なるなどの場合、その直線を特異な直線であると判断し、基準線の候補から除外する。なお近隣の直線と明らかに異なるか否かについても、例えば角度の閾値範囲等を基に判断すればよい。このようにして、CPU101は、入力画像(第一画像)から、実空間上の鉛直線に対応する直線であって、当該画像内で角度が異なる少なくとも2つ以上(2本以上)の基準線を決定する。
【0024】
図3(b)のステップS310の処理後、つまり
図3(a)のステップS302の処理後、CPU101は、
図3(a)のステップS303へ処理を進める。
ステップS303に進むと、CPU101は、ステップS302で決定した、画像内で角度が異なる2つ(2本)以上の基準線を基に、幾何変換前の仮想的な平面領域として、撮影画像(第一の画像)を含む扇形領域を設定する。そして、CPU101は、その扇形領域の中心座標(扇のかなめに対応する座標)を算出する。画像内で角度が異なる2つ以上の基準線に基づく扇形領域の設定、およびその扇形領域の中心座標の詳細は後述する。
【0025】
図3(c)は、画像内で角度が異なる2つ以上の基準線に基づく扇形領域の設定およびその中心座標を算出する、ステップS303の処理の詳細なフローチャートである。
図3(c)のステップS311において、CPU101は、ステップS302で決定した角度が異なる2つ以上の基準線の全組み合わせにおいて、それら基準線を延長した線が交わる交点の座標を算出する。
【0026】
次にステップS312において、CPU101は、ステップS311で算出した交点のうち、その交点の座標が既定範囲内である交点を抽出する。なおステップS311で算出した交点が1点のみである場合、CPU101は、その1点の交点を抽出する。一方、ステップS311で算出された交点が複数ある場合、CPU101は、それら複数の交点のうち、既定範囲内の交点を抽出する。ここで、既定範囲とは、画像の横と縦のいずれか一方の幅の中央を中心とする既定幅の範囲である。例えば画像の横幅方向をx軸方向とし、画像の縦幅方向をy軸方向(x軸方向に直交する軸)とした場合、画像の横幅中央を通るy軸方向の直線を挟んで、x軸方向上の距離がそれぞれ既定距離である、y軸に平行な2本の直線で挟まれた範囲が既定範囲となる。この場合、CPU101は、交点のx座標が、既定範囲内にある交点を抽出する。なおここでは、画像の横幅中央を通るy軸方向の垂直線からの距離が既定距離内を既定範囲とする例に挙げたが、既定範囲は、画像の縦幅中央を通るx軸方向の垂直線からの距離が既定距離内の範囲となされてもよい。またCPU101は、画像の横幅中央を通る垂直線からの距離が既定距離内の既定範囲と、画像の縦幅中央を通る垂直線からの距離が既定距離内の既定範囲とを、撮影条件等に応じて適宜切り替えて使用してもよい。
【0027】
次にステップS313において、CPU101は、ステップS312で抽出された交点の有無を判断して処理を分岐する。ここで抽出された交点が無い場合、CPU101は、ステップS316へ処理を進め、ステップS316において扇形領域の中心座標が未決定であることを示す情報を生成する。一方、抽出した交点が1つ以上ある場合、CPU101は、ステップS314へ処理を進める。
【0028】
ステップS314に進むと、CPU101は、抽出した交点座標を基に、y座標の代表値を決定する。CPU101は、例えば抽出した全交点のy座標の平均値または中央値を代表値とする。y座標の代表値の決定方法は限定されるものではなく、CPU101は、例えば、抽出した全交点のy座標の分布を基に、多くの交点が集中する付近のy座標を求めて代表値としてもよい。
【0029】
そして次のステップS315において、CPU101は、扇形領域の中心座標を決定する。本実施形態の場合、CPU101は、ステップS314で求めたy座標の代表値を、扇形領域の中心座標のy座標とする。また、CPU101は、画像の横幅方向中央に対応したx座標を、扇形領域の中心座標のx座標とする。そして、CPU101は、扇形領域の中心座標が決定されたことを示す情報を生成する。以上のようにして扇形領域の中心座標算出処理が行われる。
【0030】
図3(c)のフローチャートの処理後、つまり
図3(a)のステップS303の後、CPU101は、
図3(a)のステップS304へ処理を進める。
ステップS304に進むと、CPU101は、扇形領域の中心座標が決定されたか否かによって処理を分岐する。つまりCPU101は、扇形領域の中心座標が決定された場合にはステップS305へ処理を進め、扇形領域の中心座標が決定されなかった場合にはステップS307へ処理を進める。
【0031】
ステップS305に進んだ場合、CPU101は、第一の画像を第二の画像に補正するための幾何変換に用いる変換係数を算出する。このとき、CPU101は、幾何変換前後の平面領域を定義し、座標のマッピングを行うための情報を生成する。CPU101は、扇形領域と第一の画像とを基に第二の画像のサイズを決定し、その決定したサイズに合わせるように扇形領域から第二の画像への座標変換するマッピング処理を行う。なお変換係数の算出は、扇形の中心座標が決定されたときに行ってもよい。
その後、ステップS306において、CPU101は、ステップS305で算出した変換係数を利用したマッピング処理による座標変換を実行することで、第一の画像を幾何変換して第二の画像に補正する。
【0032】
図4(a)~
図4(d)は、扇形の中心座標の算出から幾何変換までの処理、および幾何変換によって第一の画像内の斜めの線が鉛直線に補正された第二の画像が得られるまでの処理の概念説明に用いる図である。
図4(a)は、第一の画像である入力画像と扇形との関係を示した図であり、入力画像は図中に元画像領域40として示されている。扇形領域42は、元画像領域40に外接する扇形状の領域であり、扇のかなめ部に相当する位置が扇形の中心座標41である。つまり前述のステップ303では、図中の中心座標41が、扇形の中心座標として算出される。
【0033】
図4(b)は元画像領域および扇形領域からなる平面領域が幾何変換された後の平面領域を示した図である。本実施形態では、
図4(a)の扇形領域42を矩形領域に変換する幾何変換を行う。変換後矩形領域44は扇形領域42が幾何変換された後の矩形領域であり、変換後画像領域43は元画像領域40が幾何変換された後の領域である。なお変換後矩形領域44のサイズと形状(縦横比)は、元画像領域40と同一であってもよいし、撮影条件やその後の解析処理に必要な解像度に応じて調整されてもよい。例えば扇形領域42の中心角が大きいほど、扇形の円弧部分のサイズが幾何変換によって相対的に縮小する割合が増えるため、解析処理に必要な解像度を確保するために、変換後矩形領域44のサイズを元画像領域40よりも大きく設定するなどの調整を行う。
【0034】
扇形領域42から変換後矩形領域44のような矩形領域へのマッピングは、変換後矩形領域44上で等間隔に定義した座標それぞれに対応する、扇形領域42上での座標を決定することにより行われる。また扇形領域42上の座標は、中心座標41を基準にして、中心角と円弧の半径とに対して等間隔に決定すればよいが、撮影条件によっては半径方向の間隔を被写体の奥行に応じて変化させてもよい。
このような幾何変換が行われることにより、
図4(c)に示す扇形領域42内で実空間内の鉛直線に対応した直線45および直線46は、
図4(d)に示すように変換後矩形領域44の画像上でほぼ鉛直な直線47および直線48に補正される。
【0035】
図3(a)のフローチャートに説明を戻す。
ステップS304において扇形の中心座標が決定されていないと判定されて、ステップS307の処理に進んだ場合、CPU101は、ユーザインターフェース(UI)を介してユーザから入力される追加の基準線の情報を取得する。本実施形態の場合、追加の基準線はユーザからの入力によって与えられるが、その方式は問わない。例えば、ユーザが元画像上の始点と終点の座標情報を直接入力し、CPU101は、それら始点と終点の座標情報によって特定される線の情報を、追加の基準線を表す情報として取得してもよい。また例えば表示装置130に元画像を表示し、その画面上の対応する個所を、操作装置150を介してユーザに指定させ、その指定情報を基に、CPU101が追加の基準線の座標情報に変換してもよい。このステップS307の処理によって、扇形の中心座標を決定するために充分な基準線が取得できれば、CPU101は、ステップS305以降の処理に進むことができる。
【0036】
第一の実施形態の画像処理装置100では、広角レンズで撮影した第一の画像上で実空間上の鉛直方向と推測される基準線を2つ以上定義し、それらの基準線に基づいて第一の画像を幾何変換する補正処理を行って第二の画像を取得する。これにより第一の実施形態の画像処理装置100によれば、画像解析処理への入力に適した画像を得ることができる。
【0037】
<第二の実施形態>
第一の実施形態では、広角レンズでの撮影による歪んだ画像を解析処理に適した特性となるように幾何変換する例を説明した。第二の実施形態では、幾何変換に用いる変換係数(補正係数)を求めるための基準線を、ユーザが直接指定するための操作画面および操作画面表示処理について説明する。
【0038】
図5は、ユーザによる基準線指定のための操作画面に関する処理のフローチャートである。
ステップS501において、CPU101は、操作装置150から操作制御部107を介して入力される情報を基に、ユーザによる基準線追加操作がなされたかを監視している。そしてユーザによる基準線追加操作がなされた場合、CPU101は、ステップS502へ処理を進め、ユーザによって追加された基準線に対する評価を行う。以下の説明では、ユーザによって追加された基準線を追加基準線と呼ぶことにする。
【0039】
図6はステップS502における追加基準線の評価処理の説明に用いる図である。
図6において、太線にて示した基準線610、620、および630は、それぞれユーザによって指定された追加基準線を表している。また
図6中の破線は、ユーザによる追加基準線610、620、および630のそれぞれの延長線を示している。さらに
図6には、それら各追加基準線の延長線と画像600の各辺とが交差した交点611、612、621、622、631、および632が描かれている。例えば、追加基準線610の延長線と画像600の各辺との交点は、交点611および612である。
【0040】
ここで、本実施形態における基準線は実空間上の鉛直方向に対応した線であるため、通常であれば、各基準線の延長線と撮影画像の各辺との交点である2交点のうち1交点は、撮影画像の所定の辺と交差するはずである。例えば、
図6の画像600の横方向が実空間の水平方向に対応している場合、各基準線の延長線と画像の各辺との交点のうち1つの交点は、画像600の下辺と交差するはずである。
【0041】
図6の例の場合、追加基準線610の延長線は交点612において画像600の下辺と交差しており、また追加基準線620の延長線は交点622において画像600の下辺と交差している。このため、これら追加基準線610および620とは、実空間上の被写体の鉛直方向を表す線であると判断できる。本実施形態では、ユーザによる追加基準線のうち、実空間上の被写体の鉛直方向を表す線であると判断できる基準線を、正常基準線と呼ぶことにする。一方で、追加基準線630の延長線は交点631と交点632において画像600の辺と交差しているが、それら交点631および交点632はいずれも画像600の下辺上の点ではない。すなわち追加基準線630は、その延長線が画像600の下辺と交差していないため、実空間上の被写体の鉛直方向に対応した正常基準線ではなく、基準線としては不適な線(つまり異常な基準線)であると判断できる。
【0042】
このように、CPU101は、ステップS502において、追加基準線が画像の所定の辺(
図6の例では下辺)と交差するかどうかを判定することによって、追加基準線が正常基準線かどうかの評価を行う。すなわち
図6の例の場合、CPU101は、追加基準線610、620、および630のうち、追加基準線610および620は正常基準線であると評価し、追加基準線630は正常基準線でない(異常な基準線である)と評価する。
【0043】
そしてステップS503において、CPU101は、ステップS502による評価で全ての追加基準線が正常基準線であると評価されたかどうかを判定する。言い換えると、CPU101は、ステップS502の評価処理において正常基準線でないと評価した追加基準線があるかどうかを判定する。CPU101は、テップS503において、全ての追加基準線が正常基準線であると評価した場合にはステップS507へ処理を進め、一方、正常基準線でないと評価した追加基準線がある場合にはステップS504へ処理を進める。なお、
図6の例の場合、追加基準線630が正常基準線でないと評価されるため、ステップS504の処理に進むことになる。
【0044】
ステップS504に進むと、CPU101は、表示装置130の操作画面上に確認を促すメッセージを表示するように、表示制御部106を制御する。
図7は、確認用のメッセージが表示された操作画面例を示した図である。
図7に示すように、表示装置130の画面700上には、画像表示領域710、OKボタン730、キャンセルボタン740、およびメッセージ720が配置されている。画像表示領域710には撮影された画像が表示され、その画像上にはユーザが指定した追加基準線610、620、630が表示されている。メッセージ720は、正常基準線でないと評価された追加基準線について、ユーザに確認を促す内容のテキストメッセージである。またこのとき、ユーザによる確認の対象となされた追加基準線は、ユーザが確認する必要がある基準線であることを明示するために、他の正常基準線とは異なる表示とする。
図7の場合、正常基準線であると評価された追加基準線610および620は例えば実線で表示されるのに対し、正常基準線でないと評価された追加基準線630は例えば点線で表示された例が示されている。なお、ユーザ確認の対象となる追加基準線の表示方式は、点線に限定されるものではなく、例えば表示色を変えたり、点滅させたりするなど、正常基準線との区別ができればどのような方式でもよい。
図7のような操作画面を表示することにより、ユーザは、確認対象となっている追加基準線に対し修正や変更等の操作を行うか、あるいは確認をして修正しない操作等を行うことができる。
【0045】
次のステップS505において、CPU101は、操作装置150から操作制御部107を介して入力される情報を監視しており、
図7のような基準線確認用の操作画面に対するユーザ操作がなされるまで待機する。CPU101は、ユーザ操作がない場合にはステップS504に処理を戻し、操作があった場合にはステップS506へ処理を進める。
【0046】
ステップS506に進むと、CPU101は、操作装置150から操作制御部107を介してユーザから基準線修正の操作がなされたかを判定して処理を分岐させる。基準線の修正操作がされた場合、CPU101は、ステップS502に処理を戻し、ユーザによって修正された後の基準線に対する評価処理を行う。一方、ユーザによる基準線の修正操作が無く、基準線を確認して処理を進めることを示すユーザ操作がなされた場合、CPU101は、ステップS507へ処理を進める。
【0047】
ステップS507に進むと、CPU101は、正常基準線が2本(2つ)以上設定されているか否かを判定し、設定されている場合にはステップS508へ処理を進める。一方、正常基準線が2本未満である場合には基準線の追加が必要であるため、CPU101は、ステップS510へ処理を進める。
【0048】
ステップS508に進むと、CPU101は、2本以上の正常基準線を利用して変換係数の算出を行う。ここでの処理は、第一の実施形態で説明したステップS303からステップS305の処理であり、それらの説明は省略する。
次にステップS509において、CPU101は、変換係数の算出が正常に完了したか否かを判断して処理を分岐する。CPU101は、変換係数の算出が正常に完了した場合にはステップS511へ処理を進める。一方、変換係数の算出が正常に完了できなかった場合には、基準線の設定を見直す必要があるため、CPU101は、ステップS510へ処理を進める。
【0049】
ステップS510に進むと、CPU101は、基準線の追加をユーザに促す操作画面を表示するための制御を表示制御部106に対して行う。
図8(a)~
図8(d)は、ステップS510の処理によって表示装置130に表示される基準線指定のための操作画面例とその説明に用いる図である。
【0050】
図8(a)は、基準線指定がなされる際の操作画面800の例を示す図であり、実空間上の被写体の鉛直方向に対応した基準線811が既に設定された状態を表している。なお、基準線811は、ユーザにより指定された追加基準線であるとするが、第一の実施形態で説明したように画像内の被写体等を基に特定された基準線であってもよい。操作画面800上には、画像表示領域810、OKボタン820、キャンセルボタン830、およびメッセージ840などが配置される。画像表示領域810には撮影された画像が表示され、ユーザはその画像表示領域810上の任意の位置に基準線を指定することができる。
図8(a)の例では、現時点で指定されている基準線は1本のみであり、直線の基準線811として表示されている。また、前述の第一の実施形態で説明したように、変換係数を算出するためには、基準線が2本以上必要である。すなわち
図8(a)の例のように、現時点で指定されている基準線が2本未満である場合には、新たに基準線を追加指定する必要がある。このため、操作画面800には、基準線の追加指定をユーザに対して促すためのメッセージ840が表示される。
【0051】
またこのとき、画像表示領域810内には、新たに基準線を追加指定することが推奨される領域を、ユーザに明示するための表示がなされる。
図8(a)では、新たに基準線を追加指定することが推奨される領域として、破線で囲われた追加指定推奨領域812が、画像表示領域810内に表示された例を示している。追加指定推奨領域812は、その領域内の何れかの位置に新たに基準線を追加した場合に、その追加した基準線と、設定済みの基準線811との組み合わせによって、前述した扇形の中心座標を決定するのに適していると推定される領域である。なお、
図8(a)の例のように、新たな基準線の追加指定がなされていない状態では、変換係数算出の条件が満たされていないため、OKボタン820は表示されてはいるものの、機能としては無効状態となっている。
【0052】
図8(b)~
図8(d)は、設定済みの基準線811を基にして、画像表示領域810内に追加指定推奨領域812を設定する際の設定手法の例を説明するための図である。
図8(b)の領域850、
図8(c)の領域860、および
図8(d)の領域870は、それぞれが
図8(a)の画像表示領域810を表している。
図8(b)の画像表示領域850内の直線851は設定済みの基準線およびその延長線を表している。同様に、
図8(c)の画像表示領域860内の直線861、および
図8(d)の画像表示領域870内の直線871は、それぞれ設定済みの基準線およびその延長線を表しているとする。
【0053】
ここで新たに追加された基準線は、設定済みの基準線と組み合わせて、扇形の中心座標を算出する際に利用される。このため、追加指定推奨領域は、その領域内に新たに基準線が追加された場合、当該追加された基準線と設定済みの基準線とを組み合わせたときに、扇形の中心座標を決定するのに最も適した基準線が設定されるようになる領域であることが望ましい。本実施形態の場合、追加指定推奨領域は、新たに追加される基準線の延長線と画像の下辺との交点が、設定済みの基準線の延長線と画像の下辺との交点位置に対して、画像下辺の中央点を基準に左右対称となる位置になる領域として設定される。
【0054】
また、基準線を指定する際の目安となされる画像上の被写体は、当該画像上において左右に離れていれば、その画像全体の特徴、つまり画像がどの程度歪んでいるかを表す特徴を推測しやすいと考えらえる。そのため、新たに基準線を追加指定する場合には、設定済みの基準線の延長線と画像の下辺との交点位置よりも、画像の中央方向のx座標を持つ基準線が指定されることが望ましい。このため、例えば
図8(b)に示した画像表示領域850の場合、新たな基準点の追加指定推奨領域は、設定済みの基準線を表した直線851と画像の下辺との交点のx座標を境界として、画像の中央方向側の領域852にする。また例えば
図8(c)に示す画像表示領域860の場合、追加指定推奨領域は、設定済みの基準線を表す直線861と画像の下辺との交点のx座標を境界として、画像の中央方向側の領域862にする。また例えば
図8(d)に示す画像表示領域870の場合は、指定済みの基準線を表す直線871と画像の下辺との交点のx座標を境界とし、画像の中央方向側の領域872にする。
【0055】
図5のフローチャートに説明を戻す。
次にステップS509において、変換係数の算出が正常に完了したと判断してステップS511に進むと、CPU101は、基準線指定操作を完了できることを示す操作画面を表示装置130に表示するように、表示制御部106を制御する。
【0056】
図9は、ステップS511の処理によって表示装置130に表示される基準線指定画面900の例を示した図であり、変換係数算出に必要な基準線の指定が正しくなされた際の画面表示状態を表している。
図9に示すように、基準線指定画面900上には、画像表示領域910、OKボタン930、キャンセルボタン940、およびメッセージ920が配置されている。画像表示領域910には撮影された画像が表示され、変換係数算出に使用可能な基準線610および620が表示されている。メッセージ920は、基準線の指定数が充分であり、この処理を完了可能であることを示すテキストメッセージである。このときのOKボタン930は、ユーザが押下等することで基準線の指定を確定して処理を終了させる機能が有効となっている。
【0057】
ステップS511の後、ステップS512に進むと、CPU101は、操作装置150から操作制御部107を介して入力される情報を基に、ユーザによる基準線の編集(追加、修正)操作を監視する。ここで、CPU101は、ユーザによる基準線の編集操作を検出した場合にはステップS502に処理を戻し、ステップS502以降で基準線の編集操作がなされた場合には、その編集された基準線について前述同様の処理を続行する。
【0058】
また、基準線の編集の監視を行っているとき、ステップS513において、CPU101は、操作装置150から操作制御部107を介してユーザによるOKボタン930の押下がなされたかを監視する。CPU101は、OKボタン930が押下されていない場合にはステップS512に処理を戻し、OKボタン930が押下された場合には
図5のフローチャートの基準線指定処理を終了する。
以上説明したように、第二の実施形態によれば、ユーザによる基準線の指定が正しく行われるように誘導する操作画面を提供することができる。
【0059】
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
上述の実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明は、その技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【0060】
100:画像処理装置、101:CPU、102:ROM、103:RAM、106:表示制御部、130:表示装置、200:撮像装置、400:記憶装置