以下、本発明を、実施形態ごとに説明するが、本発明は後述する各実施形態に限定されるものではない。なお、以下に参照する各図においては、共通する要素について同じ符号を用い、適宜その説明を省略するものとする。
図1は、各実施形態における画像処理システム100全体のハードウェアの概略構成を示す図である。図1では、例として、端末110と、画像処理装置120とが、インターネットやLANなどのネットワークを介して接続された環境の画像処理システム100を例示している。なお、各装置とネットワークとを接続する方法は、有線または無線のどちらでもよい。
端末110は、例えば、パーソナルコンピュータのような情報処理装置であって、作業者が操作することによって、画像の閲覧や編集、種々の設定などを行うことができる。また、端末110は、画像処理装置120と相互に通信することで、各種画像の送受信を行うことができる。なお、端末110は、撮像装置111から画像を取得し、画像処理装置120に送信することができる。ここで、撮像装置111は、全天球画像、パノラマ画像、魚眼画像などといったいわゆる歪みのある広角画像を撮像する装置である。なお、歪みのある広角画像とは、撮像装置111が中心射影以外の射影方式のレンズを用いて、撮影された画像を意味する。ここで、歪みのある広角画像の一例としては、画角が180度を超えるものが挙げられ、射影方式としては、等距離射影、中心射影、等立体射影、正射影などが挙げられる。また、当該広角画像の歪みに応じて、所定の投影変換が行われる。一般的には、透視投影変換が行われるが、これ以外にも歪みの形に応じて、様々な投影変換が行われる。また、以下に説明する実施形態では、撮像装置111は、全天球画像を撮像するものとして例示するが、特に実施形態を限定するものではない。なお、端末110は、パーソナルコンピュータに限定されず、スマートフォン端末、タブレット端末など、種々の情報処理端末とすることができる。
画像処理装置120は、いわゆるアプリケーションサーバのような装置であって、端末110から全天球画像を受信し、当該全天球画像から部分画像を生成する情報処理装置である。なお、図1に示すようなサーバ装置として構成される画像処理装置120は、一例であって実施形態を限定するものではない。したがって、画像処理装置120は、例えば、パーソナルコンピュータとして構成されてもよいし、端末110の一機能として画像処理を行うものとして構成されてもよい。
次に、各装置のハードウェア構成について説明する。図2は、本実施形態の端末110および画像処理装置120に含まれるハードウェア構成を示す図である。端末110および画像処理装置120は、CPU210と、RAM220と、ROM230と、記憶装置240と、通信I/F250と、モニタ260と、入力装置270とを含んで構成され、各ハードウェアはバスを介して接続されている。
CPU210は、端末110および画像処理装置120の動作を制御するプログラムを実行し、所定の処理を行う装置である。RAM220は、CPU210が実行するプログラムの実行空間を提供するための揮発性の記憶装置であり、プログラムやデータの格納用、展開用として使用される。ROM230は、CPU210が実行するプログラムやファームウェアなどを記憶するための不揮発性の記憶装置である。
記憶装置240は、端末110および画像処理装置120を機能させるOSや各種アプリケーション、設定情報、各種データなどを記憶する、読み書き可能な不揮発性の記憶装置である。通信I/F250は、端末110または画像処理装置120とネットワークとを接続し、ネットワークを介して、他の装置との通信を可能にする。ネットワークを介した通信は、有線通信または無線通信のいずれであってもよく、TCP/IPなどの所定の通信プロトコルを使用し、各種データを送受信できる。
モニタ260は、各種データなどをユーザに対して表示する装置であり、例として、LCD(Liquid Crystal Display)などが挙げられる。入力装置270は、ユーザが端末110または画像処理装置120を操作するための装置であり、例として、キーボード、マウスなどが挙げられる。なお、モニタ260と入力装置270は、それぞれ別個の装置であってもよいし、タッチパネルディスプレイのような両方の機能を備えるものであってもよい。なお、画像処理装置120は、必ずしもモニタ260や入力装置270を備えていなくてもよく、例えば、端末110のモニタ260や入力装置270を介して、画像処理装置120の操作を行ってもよい。
以上、各実施形態にかかる端末110および画像処理装置120に含まれるハードウェア構成について説明した。次に、各実施形態における各ハードウェアによって実行される機能手段について、図3を以て説明する。図3は、各実施形態の端末110および画像処理装置120に含まれるソフトウェアブロック図である。端末110は、画像取得部311、通信部312、表示部313、操作部314の各モジュールを含む。また、画像処理装置120は、画像受信部321、画像解析部322、画像切り出し部323、テーブル作成部324、記憶部325の各モジュールを含む。
まず、端末110について説明する。画像取得部311は、撮像装置111が撮影した全天球画像の画像データを取得する手段である。取得した画像データは、端末110の記憶装置240などに格納される。なお、画像取得部311が取得する画像データには、イメージのデータ以外にも、撮像時における撮像装置111の種々の状況を示すメタデータなどが含まれていてもよい。なお、一般的に、撮像装置111からの画像データの取得は、先に示した通信I/F250などの通信機能を介してや、撮像装置111内に備えられた取り外し可能なメモリ媒体などを介して実施される。
通信部312は、端末110の通信I/F250を制御し、画像処理装置120と通信する手段である。端末110は、通信部312を介して画像処理装置120に全天球画像を送信したり、画像処理装置120から部分画像などのデータを受信したりできる。また、通信部312は、操作部314を介した操作を画像処理装置120に送信することもできる。
表示部313は、端末110のモニタ260の動作を制御し、種々のUI(User Interface)を表示する手段である。例えば表示部313は、画像処理装置120から提供される部分画像を生成する画面などを表示することができる。
操作部314は、端末110の入力装置270を制御し、種々の操作を受け付ける手段である。操作部314が受け付けた操作は、通信部312を介して画像処理装置120に送信することができる。
次に、画像処理装置120について説明する。画像受信部321は、画像処理装置120の通信I/F250を制御し、端末110が送信する全天球画像を受信する手段である。
画像解析部322は、画像受信部321が受信した全天球画像を解析する手段である。画像解析部322は、例えば、全天球画像内の被写体の特徴量に基づく解析によって、物体を検知(検出ともいう)することができる。また、画像解析部322は、検知結果に既存の学習技術などを適用することで、検知した各物体の名称などを特定することができる。ここで、画像解析部322による物体の検知について図4を以て説明する。
図4は、画像解析部322が全天球画像内の物体を検知した結果の例を示す図である。図4は、一般的な屋内空間を撮影した全天球画像の例であり、正距円筒図法形式(Equirectangular形式)で投影された全天球画像を示している。なお、以下に説明する実施形態の各図面で使用される、全天球画像として例示される各画像は、線描に画像処理されたものであるが、特に実施形態を限定するものではなく、明細書上の見やすさの観点から画像処理されているものである点に留意されたい。図4の破線の矩形で示される領域は、特定した物体を示す、いわゆる「バウンディングボックス」である。図4の例では、2つのドア(ドア_1、ドア_2)、窓ガラス、キッチン、スイッチ、電気ソケットの各物体を特定するバウンディングボックスが示されている。また、図4に示すように、解析対象となる全天球画像は、横方向(x方向)と縦方向(y方向)の座標が1で正規化されている。これによって、特定した各物体の位置を同じ座標系で表現することができる。
説明を図3に戻す。画像切り出し部323は、全天球画像の一部の領域を透視投影変換して、部分画像を生成する手段である。画像切り出し部323は、検知された各物体を含む部分画像や、各物体の位置関係から特定される所定の構図の部分画像などを生成することができる。なお、生成される部分画像は、ユーザによる操作部314を介した操作によって、切り出しの範囲や位置などを調整や設定することができる。以下に説明する実施形態では、全天球画像の一部の領域の透視投影変換による部分画像の生成を指して、「切り出し」として参照する場合がある点に留意されたい。
テーブル作成部324は、全天球画像の解析結果、切り出しの候補となる物体を定義する設定情報、全天球画像のジャンルの分類の設定情報など、種々のデータを格納するテーブルを作成する手段である。また、テーブル作成部324は、作成した各種テーブルを記憶部325に格納した上で、各テーブルを構成する項目を適宜更新することができる。なお、説明する実施形態では、便宜的にテーブル作成部324がテーブル形式のデータベースを作成するものとして説明しているが、特に実施形態を限定するものではない。したがって、テーブル形式以外のデータベースを作成、更新する構成であってもよい。
記憶部325は、テーブル作成部324が作成した各種テーブルを格納する記憶手段である。ここで、記憶部325に格納されるテーブルについて図5を以て説明する。
図5は、記憶部325に格納される各種テーブルの例を示す図である。図5(a)は、切り出し候補テーブルの例を示している。図5(b)および(c)は、物体検知結果テーブルの初期状態および変更後の状態の例をそれぞれ示している。
図5(a)の切り出し候補テーブルは、各物体を切り出しの対象とするか否かを定義するテーブルである。図5(a)では、「クローゼット」、「ドア」、「キッチン」、「窓ガラス」、「スイッチ」、「電気ソケット」の各物体についての切り出しの有無が設定されている例を示している。切り出し候補テーブルでは、部分画像の生成が求められる蓋然性の高い物体について、切り出しを行うものとしてデフォルトで設定できる。例えば不動産物件を紹介する全天球画像から部分画像を生成する場合には、顧客による閲覧のニーズが高い物体について、デフォルト切り出しを「有」として設定できる。図5(a)の例では、「クローゼット」、「ドア」、「窓ガラス」について、デフォルト切り出しが「有」と設定がされている。これによって、画像解析の結果、全天球画像内にクローゼット、ドア、窓ガラスの各物体が検知された場合には、当該各物体を切り出しの対象とすることができる。なお、切り出し候補テーブルは、例えば画像処理システム100の管理者が、ニーズや重要度などに応じて任意に設定することができる。
図5(b)の物体検知結果テーブルは、検知された物体について、物体の名称と、位置と、切り出し処理を実行するか否かのフラグとを対応付けて格納するテーブルである。物体検知結果テーブルは、画像解析部322が全天球画像を解析した結果に基づいてテーブル作成部324によって作成される。図5(b)の物体検知結果テーブルは、図4の画像に対応する例を示しており、物体の名称として、「ドア_1」、「ドア_2」、「窓ガラス」、「電気ソケット」、「キッチン」、「スイッチ」が特定されている。また、各物体の位置は、図4に示した正規化した座標に基づいて規定され、バウンディングボックスの左上の座標(x1,y1)と右下の座標(x2,y2)によって定義されている。なお、物体の位置を特定する方法は、上述したものに限定されない。切り出しフラグは、全天球画像から当該物体を含む部分画像を切り出すか否かを設定するフラグであり、図5(b)に例示する初期状態では、全て「無」に設定されている。
図5(c)は、図5(a)の切り出し候補テーブルに基づいて、図5(b)の初期状態から変更された物体検知結果テーブルである。すなわち、図5(a)切り出し候補テーブルでは、「ドア」と「窓ガラス」がデフォルトで切り出すものとして設定されていることから、図5(c)の物体検知結果テーブルでは、「ドア_1」、「ドア_2」、「窓ガラス」について切り出しが「有」と変更される。なお、物体検知結果テーブルにおける切り出しの有無は、後述するように、ユーザの操作によっても更新することができる。
なお、図3において説明したソフトウェアブロックは、CPU210が本実施形態のプログラムを実行することで、各ハードウェアを機能させることにより、実現される機能手段に相当する。また、各実施形態に示した機能手段は、全部がソフトウェア的に実現されても良いし、その一部または全部を同等の機能を提供するハードウェアとして実装することもできる。
さらに、上述した各機能手段は、必ずしも全てが図3に示すような構成で各装置に含まれていなくてもよい。例えば、他の好ましい実施形態では、各機能手段は、端末110と画像処理装置120との協働によって実現されてもよい。
以下では、各実施形態の詳細について説明する。まず、第1の実施形態について説明する。図6は、第1の実施形態における画像の切り出し処理を示すフローチャートである。なお、図6の説明においては、適宜図7〜図9を参照するものとする。画像処理装置120は、ステップS1000から処理を開始する。画像受信部321は、処理の開始に伴って全天球画像を取得する。
ステップS1001では、画像解析部322は、全天球画像を解析し、当該全天球画像内の物体を検知する。また、画像解析部322は、検知した物体の名称や、全天球画像における座標(x1,y1,x2,y2)を特定する。
その後、ステップS1002においてテーブル作成部324は、物体検知結果テーブルを作成する。また、テーブル作成部324は、物体検知結果テーブルの作成とともに、切り出し候補テーブルを参照し、デフォルトで切り出し候補となっている物体について、設定を変更する。これによって、図5(c)に示した状態の物体検知結果テーブルとすることができる。
次にステップS1003では、表示部313は、全天球画像の解析結果に基づいて、切り出し処理画面を表示する。ここで、ステップS1003で表示される切り出し処理画面について図7および図8を以て説明する。図7および図8は、第1の実施形態において表示される切り出し処理画面の例を示す図である。
図7に示すように、切り出し処理画面には、物体検知結果を表示する結果表示フィールド701と、切り出し対象物体を選択する物体選択フィールド702と、切り出される部分画像を表示するプレビューフィールド703と、解像度を選択する解像度選択フィールド704とが含まれる。
結果表示フィールド701には、解析対象となった全天球画像に、物体検知結果が重畳して表示される。
物体選択フィールド702は、物体検知結果テーブルに対応し、物体名と、当該物体を切り出しの対象として選択するチェックボックスとが表示される。図7の物体選択フィールド702は、図5(c)に示した物体検知結果テーブルに基づいて表示されており、図5(c)の切り出しフラグが「有」となっている「ドア_1」、「ドア_2」、「窓ガラス」が、切り出し対象物体としてチェックボックスで選択されている。なお、後述するように、ユーザがチェックボックスを操作することによって、各物体を切り出し対象とするか否かを選択することができる。
プレビューフィールド703には、切り出される部分画像が表示され、これによって、ユーザはどのような部分画像を取得できるかを認識することができる。また、ユーザによるプレビューフィールド703の操作によって、部分画像の拡大・縮小や視点位置の変更などを行うことができる。なお、プレビュー表示され、切り出される部分画像の詳細については後述する。
解像度選択フィールド704には、解像度を選択するラジオボタンが配置され、ユーザは所望の解像度を選択することができる。図7の例では、解像度は「高」、「中」、「低」の3つから選択できる構成となっているが、特に実施形態を限定するものではなく、任意の構成とすることができる。
また、図8は、切り出し処理画面上での操作の例を示している。図8では、物体選択フィールド702において、「キッチン」のチェックボックスを選択する操作が行われた例を示している。さらに、図8では、プレビュー表示対象として「キッチン」が選択される例を示しており、プレビューフィールド703には、キッチンを含む部分画像が表示されている。ここで、ユーザは、操作部314を介してプレビューフィールド703を操作することで、切り出される部分画像を調整することができる。ユーザは、例えば、マウスのクリック、ドラッグアンドドロップ、マウスホイールのスクロール、タッチパネルディスプレイのタップ、ピンチイン/ピンチアウトなどといった種々の操作によって、部分画像の拡大・縮小や視点位置の調整などを行うことができる。これによって、所望の構図の部分画像を切り出すことができる。
説明を図6に戻す。ステップS1003で切り出し処理画面を表示したあと、ステップS1004では、ユーザによる切り出し対象物体の選択の変更があったか否かによって処理を分岐する。ステップS1004における切り出し対象物体の選択の変更とは、例えば図8の切り出し処理画面において説明したように、物体選択フィールド702のチェックボックス操作が挙げられ、デフォルトのチェックボックス状態からチェックの付け外しがあれば、変更があったものと判定する。ステップS1004において切り出し対象物体の選択の変更がない場合には(NO)、ステップS1006に進む。また、ステップS1004において切り出し対象物体の選択の変更があった場合には(YES)、ステップS1005に進む。
ステップS1005では、ユーザの操作による切り出し対象物体の変更に基づいて、物体検知結果テーブルを更新する。ここで、物体検知結果テーブルの更新について図9を以て説明する。図9は、第1の実施形態における物体検知結果テーブルの更新を説明する図である。
図9(a)は、更新前の物体検知結果テーブルの例を示している。図9(a)の物体検知結果テーブルは、切り出し候補テーブルに基づいて初期状態から変更された状態の物体検知結果テーブルであり、図5(c)に示したものと同一である。また、図9(b)は、更新後の物体検知結果テーブルの例を示している。ここで、図8において説明したように、物体選択フィールド702において「キッチン」のチェックボックスが選択された場合について考える。かかる場合には、更新前は「キッチン」の切り出しフラグは「無」となっていたが、「キッチン」にチェックが追加されたため、図9(b)に示すように、更新によって、「キッチン」の切り出しフラグが「有」となる。
再び説明を図6に戻す。ステップS1004において切り出し対象物体の選択の変更がないと判定した後、または、ステップS1005において物体検知結果テーブルを更新した後、ステップS1006に進む。ステップS1006では、画像切り出し部323は、物体検知結果テーブルに基づいて部分画像の切り出し処理を行う。部分画像の切り出しは、全天球画像の透視投影変換によって行われる。ここで、透視投影変換による全天球画像の切り出しについて図10を以て説明する。
図10は、全天球画像からの透視投影変換を説明する図である。図10(a)は、全天球画像と部分画像との対応を示す図である。また、図10(b)は、画像切り出し設定テーブルの例を示している。透視投影変換では、図10(a)に示すように、全天球画像の中心に仮想カメラを配置したものと想定し、仮想カメラの種々のパラメータを設定することで切り出される部分画像を特定する。仮想カメラの視点は、部分画像の中央と一致する。AOV(Angle of View)は、部分画像の画角である。THETAは、仮想カメラの視点の仰角であり、検知結果テーブルに示される位置の座標y1,y2の平均値から算出することができる。PHIは、仮想カメラの視点の円周方向の角度であり、検知結果テーブルに示される位置の座標x1,x2の平均値から算出することができる。このようにしてTHETAおよびPHIを算出することで、検知した物体を中心に配置した部分画像を出力することができる。HEIGHTおよびWIDTHは、出力される部分画像の高さ方向および幅方向の解像度である。後述するが、これらのパラメータは、例えば図7のようなユーザインタフェースにより、ユーザが指定することで修正できる。
図10(b)は、切り出される部分画像の各パラメータを格納する画像切り出し設定テーブルの例を示している。画像切り出し設定テーブルは、テーブル作成部324によって作成される。画像切り出し設定テーブルの最上段には、切り出される部分画像の画像名が格納され、図10(b)の例では、「xxx−001−キッチン」という画像名が設定されている。画像名は任意に設定することができるが、一例として、切り出し元となった全天球画像の画像名に続いて、検知された物体名を付したものとすることができる。なお、画像名の設定は上述したものに限定されず、例えば検知された物品名などを含めて、ファイル名とすることもできる。このようにしてファイル名を設定することで、例えば、対象構造物名、対象空間領域名と、検知物体名を連結したファイル名とでき、これによってユーザが、ファイル名から画像の内容を認識しやすくできる。
また、画像切り出し設定テーブルには、AOV、THETA、PHI、HEIGHT、WIDTHの各項目について、基準値と修正量とが格納される。ここで、各項目の基準値は、ユーザによる部分画像の調整が行われない場合の設定値である。AOVの基準値は、検知された物体の大きさに基づいて設定され、一例としてバウンディングボックスの長辺方向の大きさを所定倍した値とすることができる。このように長辺方向の大きさを所定倍することで、検知された物体に対して適切なマージンを有する部分画像を切り出すことができる。また、ユーザの操作によってプレビューフィールド703上で部分画像が調整された場合には、基準値からの変位量を修正量として格納する。例えば、プレビューフィールド703において部分画像が拡大/縮小された場合にはAOVの修正量が記録され、視点位置が変更された場合にはTHETAおよびPHIの修正量が記録される。HEIGHTおよびWIDTHの基準値は、解像度選択フィールド704において選択された解像度に基づいて高さ方向および幅方向の解像度が格納される。なお、HEIGHTとWIDTHとの比は、出力される部分画像のアスペクト比によって定まる。アスペクト比は、ユーザが任意に設定してもよいし、あらかじめ設定されたアスペクト比の候補の中から全天球画像の解析結果に基づいて選択してもよい。
ここで、全天球画像の解析結果に基づくアスペクト比の設定について図11を以て説明する。図11は、アスペクト比を設定する例を説明する図である。図11(a)は、アスペクト比の設定の概念を説明する数直線である。より具体的には、図11(a)は、検知された物体の短辺の寸法yと長辺の寸法xとの比(y/x)を示すための数直線ある。図11(a)の白色の丸印は、左からそれぞれ、y/xの値が9/16(=0.5625)、3/4(=0.75)、1/1(=1.0)の点を示している。図11(a)の黒色の丸印は、各白丸印の中点を示しており、左側の黒丸印は0.656の点を、右側の黒丸印は0.875の点をそれぞれ示している。また、数直線内における色の濃淡で分けられた各エリアは、部分画像をどのアスペクト比に設定するかを判定する基準を示しており、黒丸印が各エリアの境界となる。例えば、検知された物体の短辺と長辺の比が、数直線上の最も濃い色のエリア(左側のエリア)に含まれる場合には、当該物体の部分画像を9:16のアスペクト比で切り出す。
また、図11(b)は、全天球画像の解析結果の例を示しており、ここでは、検知されたドアが破線の矩形領域(バウンディングボックス)で囲われている例を示しいている。ここでは、画像解析部322が算出したバウンディングボックスの短辺(y)と長辺(x)の比(y/x)が、0.81であった場合を例示している。この場合、バウンディングボックスの比の値は、0.656から0.875の範囲内にあることから、中央のエリアに含まれることとなる。すなわち、y/xの値は、白丸印のうち0.75の点に最も近いことから、長辺方向の寸法が4、短辺方向の寸法が3となるような部分画像を切り出す。
また、解像度選択フィールド704などによってユーザが解像度を指定した場合には、アスペクト比に対応した解像度で以て部分画像を切り出す。
このようにして全天球画像の解析結果に基づいてアスペクト比を設定することで、物体以外のマージン領域を不要に大きくすることがなく、検知された物体の視認性が担保された部分画像を切り出すことができる。
図10および図11に説明したようにして、各種パラメータを設定することで、画像切り出し部323は、当該パラメータに基づく透視投影変換によって部分画像を切り出すことができる。また、透視投影変換によって、全天球画像では歪んで表示されていた物体を、歪みを適切に補正したスチル画像として生成することができる。なお、例えば、パノラマ画像や、魚眼レンズによる魚眼画像についても、同様なパラメータで、適切な射影変換により歪みを補正したスチル画像を生成することができる。例えば、1つの魚眼レンズで撮影された画像は、先に示した全天球画像の半眼の画像に対応し、図10(a)の北半球の部分が対応する座標領域となり、同様のパラメータを用いることになる。また、パノラマ画像では、赤道付近の画像のみとなり、極付近を含まない座標領域となり、同様のパラメータを用いることになる。
説明を図6に戻す。ステップS1006において、全天球画像の透視投影変換によって部分画像を切り出した後、ステップS1007で処理を終了する。なお、切り出された部分画像は、記憶部325に記憶され、または、端末110に提供される。
第1の実施形態においては、上述した処理によって、全天球画像から物体を特定し、当該物体を含む部分画像を切り出すことができる。また、ユーザの操作によって、部分画像を所望の解像度、大きさや構図とすることができる。
ここまで、第1の実施形態について説明した。次に第2の実施形態について説明する。第2の実施形態では、部分画像の切り出しの傾向を集計、蓄積することで、ユーザの所望する部分画像を出力しやすくする。
図12は、第2の実施形態における画像の切り出し処理を示すフローチャートである。なお、図12のフローチャートにおいて、図6に示した第1の実施形態のフローチャートと共通する処理については、適宜その説明を省略するものとする。また、図12の説明に際しては、適宜図13を参照するものとする。図13は、第2の実施形態における各種テーブルの例を示す図である。
画像処理装置120は、ステップS2000から処理を開始する。画像受信部321は、処理の開始に伴って全天球画像を取得する。
次に、ステップS2001において、画像解析部322は、全天球画像を解析し、解析結果に基づいて全天球画像を分類する。全天球画像は、一例として撮影場所のジャンルによって分類される。例えば、不動産物件を紹介するための全天球画像の場合には、居室、浴室、トイレ、玄関などのように、全天球画像の撮影場所による分類をすることができる。また、全天球画像の分類は、解析結果に基づいて特定された物体によって行うことができ、例えば、被写体に浴槽が含まれている場合には、浴室と分類することができる。
その後、テーブル作成部324は、ステップS2002で、ステップS2001の分類結果に基づいて、画像分類テーブルを作成する。画像分類テーブルは、例えば図13(a)に示すような構成とすることができる。図13(a)に示す画像分類テーブルは、画像IDと、画像のジャンルと、集計処理フラグとが対応付けられて格納される。画像IDは、全天球画像を識別するIDである。ジャンルは、画像解析の結果得られた各全天球画像のジャンルを示しており、図13(a)の例では、居室、バルコニー、トイレ、玄関などのジャンルに分類されている。集計処理フラグは、各全天球画像について集計処理を行ったか否かを示すフラグであり、「済」または「未」のいずれかが格納される。
また、第2の実施形態では、切り出し候補テーブルは、ジャンルごとに作成される。図13(b)および(c)は、第2の実施形態におけるジャンル別切り出し候補テーブルを示しており、図13(b)は、ジャンルが居室である場合を、図13(c)は、ジャンルが玄関である場合をそれぞれ示している。ジャンル別切り出し候補テーブルは、図5(a)に示した項目に加えて、ユーザのチェックボックス操作による切り出しが行われた回数を集計する。例えば、デフォルト切り出しが「無」とされていた物体について、ユーザがチェックを入れて部分画像を切り出した場合には、切り出し実行回数を1だけインクリメントする。また、例えば、デフォルト切り出しが「有」とされていた物体について、ユーザがチェックを外した場合には、切り出し実行回数を1だけデクリメントする。このようにして、ユーザ操作による切り出しの有無を集計することができる。
なお、第2の実施形態にあっては、デフォルト切り出し設定は、全天球画像のジャンルごとに設定することができる。例えば、居室と玄関とでは、部分画像として切り出される物体のニーズが異なることから、それぞれの空間においてニーズの高い物体について、デフォルト切り出しを「有」として設定している。図13(b)および(c)の例では、居室は、「クローゼット」、「ドア」、「窓ガラス」についてデフォルト切り出しが「有」と設定され、玄関は、「クローゼット」、「ドア」についてデフォルト切り出しが「有」と設定されている。
説明を図12に戻す。ステップS2002の後、ステップS2003の処理に進む。なお、ステップS2003〜S2008の処理は、図6におけるステップS1001〜S1006の処理と同様であるため、詳細は省略する。
ステップS2008で、全天球画像の透視投影変換によって部分画像を切り出した後、ステップS2009に進む。ステップS2009では、部分画像の切り出し結果を集計し、各種テーブルを更新する。ここで、第2の実施形態におけるテーブルの更新および集計について、図14および図15を以て説明する。図14は、第2の実施形態における切り出し候補テーブルの更新を説明する図である。図15は、第2の実施形態における部分画像切り出しパラメータの集計を説明する図である。
まず、図14について説明する。図14(a)は、ステップS2006における更新後の物体検知結果テーブルであり、「ドア_1」、「ドア_2」、「スイッチ」の部分画像が切り出された例を示している。ここで、テーブル作成部324は、物体検知結果テーブルと、ジャンル別切り出し候補テーブルとを比較し、ユーザ切り出し実行回数を更新する。具体的には、物体検知結果テーブルの切り出しフラグと、ジャンル別切り出し候補テーブルのデフォルト切り出し設定とを物体ごとに比較し、一致している場合には、ユーザ切り出し実行回数はそのままとする。デフォルト切り出し設定が「無」の物体について、切り出しフラグが「有」となっている場合には、ユーザ切り出し実行回数を1だけインクリメントする。デフォルト切り出し設定が「有」の物体について、切り出しフラグが「無」となっている場合には、ユーザ切り出し実行回数を1だけデクリメントする。図14の例では、窓ガラスは、デフォルト切り出し設定が「有」であって、切り出しフラグが「無」であることから、ユーザ切り出し実行回数が−1となる。また、スイッチは、デフォルト切り出し設定が「無」であって、切り出しフラグが「有」であることから、ユーザ切り出し実行回数が+1となる。これによって、ユーザが部分画像として切り出す頻度の高い物体の傾向を集計することができる。
なお、ユーザ切り出し実行回数が所定の条件を満たした場合には、ジャンル別切り出し候補テーブルのデフォルト切り出し設定を変更する構成としてもよい。例えば、デフォルト切り出し設定が「無」となっている物体につき、ユーザ切り出し実行回数が閾値以上となった場合には、当該物体のデフォルト切り出し設定を「有」に変更する。また、デフォルト切り出し設定が「有」となっている物体につき、ユーザ切り出し実行回数が閾値以下となった場合には、当該物体のデフォルト切り出し設定を「無」に変更する。これによって、ユーザの傾向を反映して、切り出し処理画面を表示することができる。
次に、図15について説明する。図15は、複数の部分画像について切り出しパラメータの集計する例を示している。図15(a)は、複数の画像切り出し設定テーブルに基づいてユーザ操作による修正量を蓄積する例を示している。また、図15(b)は、修正量集計テーブルの例を示している。修正量集計テーブルは、複数の全天球画像において検知された同一の物体について、ユーザによってどのように調整されて部分画像が切り出されたかを集計するテーブルである。修正量集計テーブルには、物体ごとに、各種パラメータと、修正量の平均値とが格納される。図15(b)の例では、キッチンの部分画像について、切り出される部分画像の構図をユーザが調整した平均修正量が格納される。このようにして集計された修正量集計テーブルに基づいてプレビューフィールド703に部分画像を表示することで、ユーザが所望する傾向にある構図の部分画像をプレビュー画像として表示でき、ユーザによる調整の負担を軽減できる。
説明を再び図12に戻す。ステップS2009において、切り出し結果を集計した後、ステップS2010において処理を終了する。なお、ステップS2009の集計処理は、画像分類テーブルの集計処理フラグが「未」の画像について行う。また、集計処理が行われた画像は、集計処理フラグを「済」に変更する。これによって、同一の画像について集計処理が重複して行われるのを防止することができる。
以上、説明した第2の実施形態によれば、部分画像の切り出しの傾向を集計、蓄積することで、ユーザの所望する部分画像を出力しやすくできる。
次に、第3の実施形態について説明する。ここまでに説明した第1および第2の実施形態では、検知した物体を含む部分画像を切り出すものであった。第3の実施形態では、より抽象的な構図の部分画像を切り出す構成とする。
図16は、第3の実施形態における物体検知結果の例を示す図である。図16では、乗用車の内部の全天球画像を解析し、物体を検知した結果を示している。図16の例では、破線の矩形領域(バウンディングボックス)で示されるように、2つのドアミラーと、ルームミラーと、ハンドルとが検知されている。
ここで、第1および第2の実施形態のようにして部分画像を切り出すと、図17のような部分画像が得られる。図17は、検知した物体に基づいて部分画像を切り出す例を示す図である。図17(a)は、ハンドルを含む部分画像の例を、図17(b)は、ルームミラーを含む部分画像の例をそれぞれ示している。一方で、検知された物体を含む部分画像ではなく、より抽象的な部分画像を切り出したいというニーズもある。例えば、乗用車内の画像について、助手席側を切り出した部分画像を出力する場合について考える。このように、「助手席側」という抽象的な構図が指定されている場合には、第3の実施形態では、単に物体を含む部分画像を切り出すのではなく、検知された物体に基づいて、部分画像として切り出す範囲を特定する。
以下では、第3の実施形態について、乗用車の内部の全天球画像から、助手席側の部分画像を切り出す場合を例に説明する。図18は、第3の実施形態における画像の切り出し処理を示すフローチャートである。画像処理装置120は、ステップS3000から処理を開始する。画像受信部321は、処理の開始に伴って全天球画像を取得する。なお、以下に説明するフローチャートの各処理は、特に明示のない限り、主として画像解析部322が実行するものとする。但し、画像解析部322が、他の機能手段と協働で各処理を実行することを妨げるものではない点に留意されたい。
ステップS3001では、画像解析部322は、全天球画像を解析し、当該全天球画像内の物体を検知する。また、画像解析部322は、検知した物体の名称や、全天球画像における座標(x1,y1,x2,y2)を特定する。なお、乗用車の車内を撮影した全天球画像の場合には、検知される物体として、ハンドル、ルームミラー、左右のドアミラーなどが想定され得る。
次にステップS3002では、検知されたハンドルの数が1つであるか否かによって処理を分岐する。全天球画像にハンドルが含まれない場合や、ハンドルの数が2以上である場合には(NO)、そもそも乗用車内で撮影されたものでないか、または、助手席側を特定することが困難であり、助手席側の部分画像を切り出す対象として不適格な画像である蓋然性が高いため、処理を中止する。全天球画像から検知されたハンドルの数が1つである場合には(YES)、ステップS3003に進む。
ステップS3003では、検知されたドアミラーの数が2つであるか否かによって処理を分岐する。ドアミラーの数が2つである場合には(YES)、ステップS3004に進む。ドアミラーの数が2つでない場合には(NO)、ステップS3201に進む。なお、ステップS3201以降の処理は、後述する。
ステップS3004において画像解析部322は、ハンドルおよび各ドアミラーの方位角を算出する。ここで、方位角とは、検知された物体のバウンディングボックスの水平方向の中央の角度を指し、例えば、全天球画像の幅と、バウンディングボックスの左右の端部の座標から算出することができる。
次に、ステップS3005では、検知されたルームミラーの数が1つであるか否かによって処理を分岐する。ルームミラーの数が1つである場合には(YES)、ステップS3006に進む。ステップS3006において画像解析部322は、ルームミラーの方位角を算出する。ルームミラーの方位角を算出した後、ステップS3007に進む。
一方で、ルームミラーの数が1つでない場合には(NO)、ステップS3101に進む。ステップS3101では、ルームミラーの数が0であるか否かによって処理を分岐する。ルームミラーの数が0でない場合には(NO)、全天球画像内にルームミラーが2つ以上あることから、処理を中止する。一方で、ルームミラーの数が0である場合には(YES)、ステップS3102に進む。この場合、ドアミラーが2つ検知され、ルームミラーが検知されなかったことから、ステップS3102では、ルームミラーの方位角を推定する。ルームミラーは、一般的に車両の前方中央に設けられることから、左右のドアミラーの間にあるものと推定できる。また、方位角の正の角度を時計回り方向として定義して、0<(右ドアミラー方位角−左ミラー方位角)<πという条件を与えることで、車両の前後を規定できる。そこで、上記の条件を満たすドアミラーについて、各ドアミラーの方位角の平均値を算出することで、車両の前方中央に位置するルームミラーの方位角を推定することができる。ステップS3102でルームミラーの方位角を推定した後、ステップS3007に進む。
ルームミラーの方位角を算出または推定した後、ステップS3007において、ドアミラーの左右を判定する。ドアミラーの左右は、ステップS3004で算出した各ドアミラーの方位角と、ルームミラーの方位角との大小関係から判定することができる。
その後、ステップS3008では、部分画像の切り出し対象となる助手席領域を指定する。なお、撮影された車両が左ハンドル車であるか右ハンドル車であるかを問わず、ドアミラーとハンドルとの位置関係によって、助手席側の領域を特定することができる。例えば、方位角の大小関係が、左ドアミラー、ハンドル、ルームミラー、右ドアミラーの順である場合には、左ハンドル車であると判定できる。この場合には、助手席は右側となることから、右ドアミラーが中心となり、ルームミラーが左端となるような切り出し対象領域を指定する。一方で、方位角の大小関係が、右ドアミラー、ハンドル、ルームミラー、左ドアミラーの順である場合には、右ハンドル車であると判定できる。この場合には、助手席は左側となることから、左ドアミラーが中心となり、ルームミラーが右端となるような切り出し対象領域を指定する。なお、上述したような、ドアミラーが中心となり、ルームミラーが端部に配置される切り出し対象領域は、構図の一例であって、特に実施形態を限定するものではない。
次に、画像切り出し部323は、ステップS3009において、指定された切り出し対象領域に基づいて全天球画像を切り出し、部分画像を生成する。その後、ステップS3010で処理を終了する。ここで、ステップS3009において切り出される部分画像の例を図19に示す。
図19は、第3の実施形態において切り出される部分画像の例を示す図である。図19(a)は、部分画像の切り出し範囲のイメージを示している。また、図19(b)は、車内の全天球画像から助手席側を切り出した部分画像を示している。図19(b)に示すように、部分画像は、左側のドアミラーが部分画像の中心に配置され、ルームミラーが部分画像の右端に配置されるように切り出される。
説明を図18に戻す。ところで、ステップS3003においてドアミラーの数が2つでない場合には(NO)、ステップS3201以降の処理を行う。ステップS3201では、検知されたドアミラーの数が1つであるか否かによって処理を分岐する。ドアミラーの数が1つでない場合には(NO)、全天球画像内のドアミラーの数が0であるか、または、3つ以上であることから、処理を中止する。ドアミラーの数が1つである場合には(YES)、ステップS3202に進む。
ステップS3202では、検知されたルームミラーの数が1つであるか否かによって処理を分岐する。ルームミラーの数が1つでない場合には(NO)、処理を中止する。ルームミラーの数が1つである場合には(YES)、ステップS3203に進む。
ステップS3203では、ハンドルとルームミラーとドアミラーの方位角を算出する。なお、検知されたドアミラーは1つであることから、ステップS3203では、当該検知されたドアミラーの方位角を算出する。
その後、ステップS3204において、検知されていない他のドアミラーの方位角を推定する。一般に、左右のドアミラーは、車両の前後方向の中心線に対して線対称に配置され、ルームミラーは当該中心線上に配置されることから、ルームミラーの方位角および検知されたドアミラーの方位角に基づいて、検知されていないドアミラーの方位角を推定できる。また、ドアミラーの推定と併せて、各ドアミラーの左右を判定することができる。
ステップS3204の後、ステップS3008に進み、上述のように助手席領域を指定し、ステップS3009において、部分画像を切り出す。その後、ステップS3010において処理を終了する。
以上、図18において説明した処理によれば、抽象的な構図の部分画像を切り出すことができる。
なお、上述した例では、乗用車の車内の全天球画像から部分画像を切り出す場合を示して説明したが、特に実施形態を限定するものではない。すなわち、第3の実施形態では、撮影された全天球画像に含まれる各種物体の位置関係に基づいて、所定の構図を特定して、部分画像を切り出すことができる。例えば、野球場をバッターボックスから撮影した全天球画像において、ピッチャーマウンドの部分画像を切り出す場合などに適用され得る。例として、ベースは検知しやすく、ピッチャーマウンドは検知しにくい場合には、1塁ベースおよび3塁ベースを検知し、両者の中間点を算出することで、ピッチャーマウンドの部分画像を切り出す場合などに適用され得る。また、別の例では、特徴的な建造物が複数含まれる全天球画像において、特定の方角の部分画像を切り出す場合、より具体的な例では、東京タワー(登録商標)と東京スカイツリー(登録商標)とを含む全天球画像から南側の部分画像を切り出す場合などに適用され得る。
以上、説明した本発明の実施形態によれば、広角画像から部分画像を生成する画像処理システム、情報処理装置および方法を提供することができる。
上述した本発明の実施形態の各機能は、C、C++、C#、Java(登録商標)等で記述された装置実行可能なプログラムにより実現でき、本実施形態のプログラムは、ハードディスク装置、CD−ROM、MO、DVD、フレキシブルディスク、EEPROM(登録商標)、EPROM等の装置可読な記録媒体に格納して頒布することができ、また他装置が可能な形式でネットワークを介して伝送することができる。
以上、本発明について実施形態をもって説明してきたが、本発明は上述した実施形態に限定されるものではなく、当業者が推考しうる実施態様の範囲内において、本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。