JP7415496B2 - 画像処理装置、プログラム及び画像処理システム - Google Patents

画像処理装置、プログラム及び画像処理システム Download PDF

Info

Publication number
JP7415496B2
JP7415496B2 JP2019218253A JP2019218253A JP7415496B2 JP 7415496 B2 JP7415496 B2 JP 7415496B2 JP 2019218253 A JP2019218253 A JP 2019218253A JP 2019218253 A JP2019218253 A JP 2019218253A JP 7415496 B2 JP7415496 B2 JP 7415496B2
Authority
JP
Japan
Prior art keywords
image
control unit
rectangular parallelepiped
viewing
panoramic
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.)
Active
Application number
JP2019218253A
Other languages
English (en)
Other versions
JP2021089487A (ja
Inventor
直樹 河合
孝夫 近藤
美苗 田中
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.)
Dai Nippon Printing Co Ltd
Original Assignee
Dai Nippon Printing Co 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 Dai Nippon Printing Co Ltd filed Critical Dai Nippon Printing Co Ltd
Priority to JP2019218253A priority Critical patent/JP7415496B2/ja
Publication of JP2021089487A publication Critical patent/JP2021089487A/ja
Application granted granted Critical
Publication of JP7415496B2 publication Critical patent/JP7415496B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Processing Or Creating Images (AREA)
  • Image Processing (AREA)
  • Image Generation (AREA)
  • Closed-Circuit Television Systems (AREA)
  • Studio Devices (AREA)
  • Image Analysis (AREA)

Description

本発明は、画像処理装置、プログラム及び画像処理システムに関する。
特許文献1では、室内の撮影位置から全周囲方向360°を撮影して得られたパノラマ画像に基づいて室内の仮想環境モデルを生成する技術が提案されている。特許文献1に開示された技術では、パノラマ画像において、仮想空間上の任意の柱が天井面および床面に接する頂点に対応する位置にマーカーが設定され、マーカーに基づいて仮想空間上での視点から柱までの距離および視点の高さが求められる。
特開2000-11172号公報
特許文献1に開示された技術では、仮想空間上の天井面および床面に設定されたマーカーの位置に基づいて、各マーカーの仮想環境モデル上の座標を求める。従って、天井面に設けられたマーカーと床面に設けられたマーカーとを取り違えた場合に適切な仮想環境モデルを生成できないという問題を有する。
本発明は、このような事情に鑑みてなされたものであり、その目的とするところは、撮影された画像から、任意の位置から見た状態の仮想画像を生成するためのテクスチャ画像を適切に生成することが可能な画像処理装置等を提供することにある。
本開示の一態様に係る画像処理装置は、直方体として閉鎖された実空間内で撮影されたパノラマ画像を取得する画像取得部と、前記パノラマ画像上で、前記直方体の鉛直方向の辺に対応する4線分を取得する線分取得部と、取得した前記4線分を高さとする前記直方体の形状を推定する推定部と、推定した前記直方体を構成する各面に、前記パノラマ画像の各画素を対応付けてテクスチャ画像を生成する生成部とを備える。
本開示の一態様によれば、実写画像に基づいて、任意の視点から見た状態の仮想画像を生成するためのテクスチャ画像を適切に生成できる。よって、適切に生成されたテクスチャ画像を用いて仮想画像を生成することができ、仮想画像をユーザに提供することができる。
画像処理システムの構成例を示す模式図である。 カメラ及び登録用端末の構成例を示すブロック図である。 サーバ及び閲覧用端末の構成例を示すブロック図である。 サーバに記憶されるDBの構成例を示す模式図である。 カメラの外観例を示す模式図である。 撮影画像の構成例を説明するための模式図である。 撮影画像の登録処理手順の一例を示すフローチャートである。 登録画面例を示す模式図である。 閲覧用画像の生成処理手順の一例を示すフローチャートである。 閲覧用画像の生成処理を説明するための模式図である。 天頂補正の処理手順の一例を示すフローチャートである。 天頂補正に含まれる回転軸の特定処理手順の一例を示すフローチャートである。 天頂補正に含まれる回転軸の特定処理手順の一例を示すフローチャートである。 天頂補正に含まれる回転量の特定処理手順の一例を示すフローチャートである。 天頂補正を説明するための模式図である。 極座標系及びワールド直交座標系の関係を示す模式図である。 直方体の推定処理手順の一例を示すフローチャートである。 直方体の推定処理を説明するための模式図である。 直方体の推定処理を説明するための模式図である。 直方体の推定処理を説明するための模式図である。 ポリゴンデータを説明するための模式図である。 テクスチャ画像を説明するための模式図である。 テクスチャ画像を説明するための模式図である。 パノラマ画像の再生処理手順の一例を示すフローチャートである。 パノラマ画像の表示画面例を示す模式図である。 実施形態2の画像処理システムの構成例を示す模式図である。
以下に、本開示の画像処理装置、プログラム及び画像処理システムについて、その実施形態を示す図面に基づいて詳述する。
(実施形態1)
図1は、画像処理システムの構成例を示す模式図である。本実施形態の画像処理システム100は、サーバ10(画像処理装置)、登録用端末20、カメラ30及び閲覧用端末40(画像表示装置)を含む。サーバ10、登録用端末20及び閲覧用端末40は、インターネット、公衆通信回線又はLAN(Local Area Network)等のネットワークNに接続可能であり、ネットワークN経由で情報の送受信を行う。登録用端末20及びカメラ30は例えば無線通信可能であり、無線通信にて情報の送受信を直接行う。なお、カメラ30がネットワークNに接続可能である場合、カメラ30及び登録用端末20はネットワークN経由で情報の送受信を行う構成でもよい。
サーバ10は、サーバコンピュータ又はパーソナルコンピュータ等の情報処理装置であり、複数台設けられてもよいし、大型計算機等の1台の装置内に設けられた複数の仮想マシンによって実現されてもよいし、クラウドサーバを用いて実現されてもよい。登録用端末20は、パーソナルコンピュータ又はタブレット端末等であり、複数台設けられてもよい。カメラ30は、撮影装置の一例である。本実施形態においては、カメラ30を用いて、賃貸住宅及び販売住宅等の不動産物件の部屋、ホテル及び民宿等の宿泊施設の部屋等の空間内(実空間内)の任意の位置で撮影を行う。カメラ30を用いて撮影する空間は、博物館、美術館、テーマパーク、アミューズメント施設、観光地、商業施設等であってもよいが、本実施形態では、撮影空間は略直方体形状の部屋とする。カメラ30は、1回のシャッターで前後左右上下の撮影を行う全天球カメラを使用する。
本実施形態では、例えば不動産物件の管理会社の従業員等(パノラマ画像の登録者)が、カメラ30を用いて不動産物件の室内(空間内)で撮影を行う。カメラ30によって撮影された撮影画像(パノラマ画像)は、登録用端末20を介してサーバ10へ送信され、サーバ10の撮影画像DB12a(図3参照)に記録される。なお、カメラ30は撮影によって画像データ(撮影画像データ)を取得するが、以下では画像データを単に画像という場合がある。従って、撮影画像は撮影画像データを意味する場合があり、パノラマ画像はパノラマ画像データを意味する場合がある。撮影画像は、複数の画素を含み、撮影画像データは、各画素の撮影画像中の位置(座標)を示す位置情報と各画素の輝度(画素値)とを対応付けて有する。
サーバ10は、撮影画像DB12aに登録されたパノラマ画像をネットワークN経由で公開しており、不動産物件の部屋を内見したいユーザ(閲覧者)は、閲覧用端末40を用いてサーバ10にアクセスし、所望の部屋のパノラマ画像を閲覧できる。なお、サーバ10は、撮影画像DB12aに登録されたパノラマ画像から、閲覧用端末40で再生するための閲覧用画像を生成し、閲覧用画像を閲覧用端末40に提供する。閲覧用端末40は、スマートフォン、タブレット端末又はパーソナルコンピュータ等の汎用の情報処理装置であり、複数台設けられてもよい。閲覧用端末40は、例えば入力部44(図3参照)を介して撮影空間内の任意の位置(仮想位置)と仮想位置から室内を見た方向との入力を受け付け、受け付けた仮想位置から、受け付けた方向(仮想位置からの視線方向)を見た状態の仮想画像を生成して表示する。なお、閲覧用端末40は、閲覧者が装着して使用するHMD(Head Mounted Display)型の情報処理装置であってもよい。この場合、閲覧用端末40には、各種センサが内蔵され、装着した閲覧者の頭部の位置及び向き(視線方向)を検出し、検出した閲覧者の頭部の位置及び向きに基づいて仮想画像を生成する。また、閲覧用端末40は、汎用の情報処理装置とHMD等の表示装置との組合せでもよく、スマートフォン等の軽量の携帯型情報処理装置と、携帯型情報処理装置を閲覧者の目の前に固定する固定部材との組合せでもよい。
このような構成により、閲覧者は、撮影対象となった部屋の中を仮想的に歩き回り、任意の向きを向いて、部屋の広さ、家具の配置、窓の外の景色等を感覚的に把握することができる。なお、閲覧者は回転可能な椅子に着席した状態で、ジョイスティック等を操作することで仮想視点(仮想位置)及び仮想視点からの向きを移動させてもよい。この場合、転倒及び衝突のおそれなく、部屋の中を仮想的に歩き回り、あるいは飛翔し、任意の向きを向いて、室内空間を把握することができる。
図2は、カメラ30及び登録用端末20の構成例を示すブロック図である。カメラ30は、制御部31、記憶部32、通信部33、シャッターボタン34、撮影部35等を含み、これらはバスを介して相互に接続されている。制御部31は、CPU(Central Processing Unit)、MPU(Micro-Processing Unit)又はGPU(Graphics Processing Unit)等の1又は複数のプロセッサを含む。制御部31は、記憶部32に記憶してある制御プログラムを実行すると共に、バスを介してカメラ30を構成するハードウェア各部の動作を制御する。これにより、制御部31は、カメラ30が行うべき種々の制御処理及び情報処理を実行する。記憶部32は、RAM(Random Access Memory)、フラッシュメモリ、ハードディスク、磁気テープ等を含む。記憶部32は、制御部31が実行する制御プログラム及び制御プログラムの実行に必要な各種のデータ等を予め記憶している。また記憶部32は、制御部31が制御プログラムを実行する際に発生するデータ等を一時的に記憶する。
通信部33は、例えばBluetooth(登録商標)又はWi-Fi等の無線通信を行うためのインタフェースであり、無線通信によって外部装置(例えば登録用端末20)との間で情報の送受信を直接行う。なお、通信部33は、ケーブルを介した有線通信によって外部装置との間で情報の送受信を行うためのインタフェースであってもよい。また通信部33は、無線通信又は有線通信によってネットワークNに接続するためのインタフェースであってもよく、この場合、ネットワークN経由で外部装置との間で情報の送受信を行う。
シャッターボタン34は、静止画を撮影する指示を受け付けるためのボタンである。なお、制御部31は、無線通信によって、又はネットワークNを通じてシャッターボタン34の操作を受け付けてもよい。撮影部35は、撮影を行う光学系及び撮像素子等を有する撮像装置である。制御部31は、シャッターボタン34から受け付けた指示に基づいて撮影部35による撮影を行い、光学系を介して入射した光が撮像素子にて光電変換されて得られたデータに対して各種の画像処理を行い、撮影画像を取得する。カメラ30は、上述した構成のほかに、液晶ディスプレイ等による表示部、ユーザによる各種の操作入力を受け付ける入力部等を有する構成でもよい。
登録用端末20は、制御部21、記憶部22、通信部23、入力部24、表示部25、読み取り部26等を含み、これらはバスを介して相互に接続されている。制御部21は、CPU、MPU又はGPU等の1又は複数のプロセッサを含む。制御部21は、記憶部22に記憶してある制御プログラム22Pを実行すると共に、バスを介して登録用端末20を構成するハードウェア各部の動作を制御する。これにより、制御部21は、登録用端末20が行うべき種々の制御処理及び情報処理を実行する。記憶部22は、RAM、フラッシュメモリ、ハードディスク、SSD(Solid State Drive)等を含む。記憶部22は、制御部21が実行する制御プログラム22P及び制御プログラム22Pの実行に必要な各種のデータ等を予め記憶している。また記憶部22は、制御部21が制御プログラム22Pを実行する際に発生するデータ等を一時的に記憶する。また記憶部22は、ネットワークN経由で公開されているウェブサイトを閲覧するためのウェブブラウザ22aを記憶している。
通信部23は、有線通信又は無線通信によってネットワークNに接続するためのインタフェースであり、ネットワークN経由で外部装置との間で情報の送受信を行う。また通信部23は、無線通信又は有線通信によって外部装置(例えばカメラ30)との間で情報の送受信を直接行うためのインタフェースを有する構成でもよい。入力部24は、マウス及びキーボード等を含み、ユーザ(登録者)による操作入力を受け付け、操作内容に対応した制御信号を制御部21へ送出する。表示部25は、液晶ディスプレイ又は有機ELディスプレイ等であり、制御部21からの指示に従って各種の情報を表示する。入力部24及び表示部25は一体として構成されたタッチパネルであってもよい。
読み取り部26は、CD(Compact Disc)-ROM、DVD(Digital Versatile Disc)-ROM、USB(Universal Serial Bus)メモリ、SD(Secure Digital)カード等を含む可搬型記憶媒体2aに記憶された情報を読み取る。記憶部22に記憶される制御プログラム22P及びデータは、制御部21が読み取り部26を介して可搬型記憶媒体2aから読み取って記憶部22に記憶してもよい。また、記憶部22に記憶される制御プログラム22P及びデータは、制御部21が通信部23を介してネットワークN経由で外部装置からダウンロードして記憶部22に記憶してもよい。更に、制御部21が半導体メモリ2bから制御プログラム22P及びデータを読み出してもよい。
図3は、サーバ10及び閲覧用端末40の構成例を示すブロック図である。サーバ10は、制御部11、記憶部12、通信部13、入力部14、表示部15、読み取り部16等を含み、これらはバスを介して相互に接続されている。これらの各部11~16は、登録用端末20の各部21~26と同様の構成を有するので、構成についての詳細な説明は省略する。なお、サーバ10の記憶部12は、制御プログラム12Pのほかに、後述する撮影画像DB12a及び閲覧用画像DB12bを記憶する。撮影画像DB12a及び閲覧用画像DB12bは、サーバ10に接続された外部の記憶装置に記憶されてもよく、ネットワークNを介してサーバ10が通信可能な外部の記憶装置に記憶されてもよい。
閲覧用端末40は、制御部41、記憶部42、通信部43、入力部44、表示部45等を含み、これらはバスを介して相互に接続されている。これらの各部41~45は、登録用端末20の各部21~25と同様の構成を有するので、構成についての詳細な説明は省略する。なお、閲覧用端末40がHMD型の情報処理装置である場合、閲覧用端末40を装着した閲覧者の頭部の位置及び向きを検出するセンサ部(図示せず)を有する。センサ部は、例えば地磁気センサ、傾きセンサ、GPS(Global Positioning System )センサ等の複数のセンサの組合せであり、閲覧用端末40の位置及び向きを検出する。例えばGPSセンサによって閲覧用端末40の現在位置を検出し、地磁気センサによって閲覧用端末40の向きを検出し、傾きセンサによって閲覧用端末40の重力方向(即ち、鉛直方向の下向き)に対する傾きを検出する。センサ部は、閲覧用端末40の位置及び向きを検出することにより、閲覧用端末40を頭部に装着しているユーザの頭部の位置及び向きを検出する。
図4は、サーバ10に記憶されるDB12a,12bの構成例を示す模式図であり、図4Aは撮影画像DB12aを、図4Bは閲覧用画像DB12bをそれぞれ示す。撮影画像DB12aは、カメラ30を用いて撮影されたパノラマ画像(撮影画像)を記憶する。図4Aに示す撮影画像DB12aは、画像ID列、撮影位置情報列、撮影画像列等を含み、画像IDに対応付けて撮影場所の情報及び撮影画像(パノラマ画像)を記憶する。画像ID列は、撮影画像に割り当てられた識別情報を記憶する。撮影位置情報列は、撮影画像を撮影した場所、部屋、空間に関する情報を記憶し、例えば撮影した部屋の住所、建物名及び部屋番号、ランドマーク名、緯度及び経度等を用いることができる。撮影画像列は、カメラ30を用いて撮影されたパノラマ画像のデータ(撮影画像データ)を記憶する。なお、パノラマ画像のデータ(撮影画像データ)は、撮影画像DB12aに記憶されずに、記憶部12の所定領域又はサーバ10に接続された外部記憶装置に記憶されてもよい。この場合、撮影画像列は、撮影画像(パノラマ画像)のデータを読み出すための情報(例えばデータの記憶場所を示すファイル名)を記憶する。撮影画像DB12aに記憶される画像IDは、サーバ10が新たなパノラマ画像を通信部13にて取得した場合に、制御部11によって発行されて記憶される。撮影情報DB12aに記憶される他の情報は、制御部11が通信部13を介して登録用端末20から取得した場合に、制御部11によって記憶される。なお、撮影位置情報は、登録用端末20からパノラマ画像と共にサーバ10へ送信される。撮影画像DB12aの記憶内容は図4Aに示す例に限定されず、例えば撮影日時、撮影者の情報、撮影対象の空間(部屋)に関する情報等が記憶されてもよい。
閲覧用画像DB12bは、サーバ10がネットワークN経由で提供する閲覧用のパノラマ画像(閲覧用画像)を記憶する。なお、閲覧用画像は、撮影画像DB12aに登録された撮影画像を、サーバ10が所定の画像処理を行うことによって得られたデータであり、具体的にはポリゴンデータ及びテクスチャ画像データを含む。図4Bに示す閲覧用画像DB12bは、撮影画像DB12aと同様の構成を有し、撮影画像DB12aにおける撮影画像の代わりに、撮影画像から生成された閲覧用画像を記憶する。なお、閲覧用画像のデータも、閲覧用画像DB12bに記憶されずに、記憶部12の所定領域又はサーバ10に接続された外部記憶装置に記憶されてもよい。この場合、閲覧用画像列は、閲覧用画像のデータ(ポリゴンデータ及びテクスチャ画像データ)を読み出すための情報(例えばデータの記憶場所を示すファイル名)を記憶する。閲覧用画像DB12bに記憶される画像ID及び撮影位置情報は、サーバ10が撮影画像から閲覧用画像を生成した場合に、この撮影画像に対応する画像ID及び撮影位置情報が制御部11によって撮影画像DB12aから読み出されて記憶される。閲覧用画像DB12bに記憶される閲覧用画像は、制御部11が撮影画像から閲覧用画像を生成した場合に、制御部11によって記憶される。閲覧用画像DB12bの記憶内容は図4Bに示す例に限定されず、例えば処理前の撮影画像の撮影日時、撮影者の情報、撮影対象の空間(部屋)に関する情報等が記憶されてもよい。また、撮影画像DB12a及び閲覧用画像DB12bを1つのDBで構成してもよく、撮影画像DB12aに閲覧用画像を記憶する構成としてもよい。
以下に、本実施形態の画像処理システム100におけるカメラ30及びカメラ30によって撮影されるパノラマ画像について説明する。図5は、カメラ30の外観例を示す模式図である。本実施形態のカメラ30は、略長方形板状の板状部38を有する。本実施形態のカメラ30は、図5に示すように板状部38の長辺方向を上下方向に向けた状態で撮影するので、以後の説明においては、板状部38の長辺方向をカメラ30の上下方向と記載する。また、板状部38の長辺方向を上下方向に向けた状態のカメラ30において、板状部38の第1広面381側をカメラ30の前側(正面側)、第2広面382側をカメラ30の後側(背面側)、板状部38の短辺方向をカメラ30の左右方向とそれぞれ記載する。
カメラ30は、第1広面381の上寄りに、ドーム状の第1レンズ371が設けられている。第2広面382の上寄りに、ドーム状の第2レンズ372が設けられている。第1レンズ371及び第2レンズ372の内側には、図示しない複数のレンズ及びプリズム等の光学部品が配置されており、180度以上の視野角を有する光学系を形成している。以後の説明では、第1レンズ371側の光学系の光軸を第1光軸、第2レンズ372側の光学系の光軸を第2光軸とそれぞれ記載する。第1光軸と第2光軸とは、同一の直線上に配置されている。第1広面381にシャッターボタン34が配置されている。
上述した構成のカメラ30が撮影時に行う処理について説明する。図6は撮影画像の構成例を説明するための模式図である。図6Aは、全天球画像を示す模式図である。図6Bは、図6Aの全天球画像を正距円筒図法により展開した画像を示す模式図である。カメラ30の制御部31は、シャッターボタン34から受け付けた指示に基づいて撮影部35による撮影を行った場合、第1光軸側で撮影した画像と第2光軸側で撮影した画像とを合成することにより、図6Aに示すように撮影位置を撮影中心Cとする全天球画像を生成する。
全天球画像上の各画素の位置を定める座標系について説明する。全天球画像上の画素の位置は、直交座標系及び極座標系により表現することができる。直交座標系は、図5に示した右方向をX軸の正側、上方向をY軸の正側、後ろ方向をZ軸の正側とする右手系の直交座標系を用いる。極座標系は、方位角φ及び天頂角θ、並びに撮影中心Cからの距離rによって座標が示される座標系を用いる。極座標系の方位角は、第2光軸側(Z軸の正側)を基準として、XZ面(カメラ30の前後左右方向を含む平面)内の反時計回りの角度φを示す。第1光軸(Z軸の負側)は、方位角φがπラジアンの位置に存在する。ここでπは円周率を意味する。第2光軸は、方位角φが0ラジアンかつ2πラジアンの位置に存在する。極座標系の天頂角は、撮影中心Cから天頂への上方向(Y軸の正側)を基準として、撮影中心Cを中心として下に向かう角度θを示す。上方向は、天頂角θが0ラジアンの位置に存在する。下方向(Y軸の負側)は、天頂角θがπラジアンの位置に存在する。全天球画像上の任意の画素aの位置は、直交座標系で表した座標(xa ,ya ,za )と、極座標系で表した座標(r,θa ,φa)とによって表現することができる。なお、直交座標系の座標(x,y,z)及び極座標系の座標(r,θ,φ)は以下の(1)式及び(2)式によって相互に変換可能である。
Figure 0007415496000001
カメラ30の制御部31は、全天球画像を方位角φ=0の線に沿って切断して、正距円筒図法により図6Bに示すように横軸を方位角φとし縦軸を天頂角θとする平面に展開した長方形の撮影画像(以下では、パノラマ画像という)を生成する。このパノラマ画像を構成する各画素には、全天球画像における各画素の輝度(画素値)が割り当てられる。なお、図6Bに示すように、長方形(平面)のパノラマ画像は、左下を原点(0,0)とし、原点(0,0)は、方位角φが2πラジアンで天頂角θがπラジアンの位置の画素を示す。また、パノラマ画像は、右方向に方位角φが小さくなり、パノラマ画像の右端は方位角φが0ラジアンの位置の画素であり、上方向に天頂角θが小さくなり、パノラマ画像の上端は天頂角θが0ラジアンの位置の画素である。
例えば登録者は、カメラ30を用いて撮影対象の空間内で撮影を行い、取得したパノラマ画像を登録用端末20に取り込む。このとき、カメラ30の制御部31は、図6Bに示すようなパノラマ画像を通信部33から登録用端末20へ送信する。なお、カメラ30の制御部31は、図6Bに示すパノラマ画像の代わりに、図6Aに示すような全天球画像の撮影画像を登録用端末20へ送信してもよく、この場合、登録用端末20が、全天球画像から、図6Bに示すパノラマ画像を生成する処理を行ってもよい。また、全天球画像からパノラマ画像を生成する処理は、パノラマ画像を記憶するサーバ10で行ってもよい。この場合、カメラ30によって撮影された全天球画像が、登録用端末20によってサーバ10へ送信され、サーバ10が、全天球画像からパノラマ画像を生成する処理を行う。なお、カメラ30は、パノラマ画像と共に撮影中心Cの位置情報(撮影位置の情報)を登録用端末20へ送信してもよく、例えばExif(Exchangeable image file format)形式を使用することにより、撮影位置の情報と撮影画像とを一つのファイルで送信することが可能である。撮影位置の情報は、例えばカメラ30に内蔵されているGPSセンサを用いて取得される。
以下に、本実施形態の画像処理システム100における各装置が行う処理について説明する。図7は、撮影画像の登録処理手順の一例を示すフローチャート、図8は登録画面例を示す模式図である。図7では左側に登録用端末20が行う処理を、右側にサーバ10が行う処理をそれぞれ示す。登録者はまず、撮影対象の部屋内部でカメラ30を用いて撮影を行い、パノラマ画像(撮影画像)を取得する。このとき、カメラ30は、撮影画像と共に撮影位置の情報を取得してもよい。カメラ30の制御部31は、シャッターボタン34からの指示に基づいて撮影部35による撮影を行い、図6Aに示すような全天球画像を生成し、更に全天球画像から図6Bに示すような平面のパノラマ画像を生成する。制御部31は、例えば登録用端末20からの要求に応じて、取得した撮影画像を登録用端末20へ送信する。なお、撮影位置の情報がカメラ30に内蔵されたセンサによって測定される場合、制御部31は、測定した撮影位置の情報も撮影画像と共に登録用端末20へ送信する。
登録用端末20の制御部21は、カメラ30によって取得した撮影画像を取得しておく(S11)。なお、カメラ30が撮影位置の情報も取得している場合、制御部21は、撮影画像と共に撮影位置の情報も取得しておく。登録者は、撮影画像の登録を行う場合、サーバ10が提供するウェブサイトに登録用端末20を用いてアクセスし、ウェブサイトを介してサーバ10に撮影画像の登録を要求する。なお、サーバ10はウェブサーバとしての機能を有しており、撮影画像の登録指示を受け付けるためのウェブサイトをネットワークN経由で公開している。登録用端末20の制御部21は、サーバ10にアクセスし、撮影画像の登録を要求する(S12)。
サーバ10の制御部11は、撮影画像の登録を要求された場合、図8に示すような登録画面を登録用端末20へ送信する(S13)。登録用端末20の制御部21は、サーバ10が送信した登録画面を受信し、受信した登録画面を表示部25に表示する(S14)。図8に示す登録画面は、登録対象の撮影画像(パノラマ画像)を指定するための入力欄25aと、撮影位置(撮影場所)の情報を入力するための入力欄25b,25cとを有する。なお、入力欄25bは、撮影した部屋の住所、建物名及び部屋番号を入力する入力欄を含み、入力欄25cは、撮影位置の緯度及び経度を入力する入力欄を含む。登録画面は、入力欄25aにファイル名が入力されて登録対象の撮影画像が指定された場合、指定された撮影画像が表示され、指定された撮影画像に撮影位置の情報(緯度及び経度)が含まれる場合、撮影位置の緯度及び経度が入力欄25cに表示される。なお、登録用端末20がカメラ30から受信した撮影画像に撮影位置の情報が付加されていない場合、入力欄25cに撮影位置の情報(緯度及び経度)は表示されない。このとき、入力欄25cは空欄でもよく、例えば登録者が入力部24を介して撮影位置の緯度及び経度を入力してもよい。登録者は、登録画面において、撮影場所の住所、建物名及び部屋番号を入力部24から入力欄25bに入力する。登録画面は、画面を介して入力された各情報の登録を指示するための登録ボタンと、登録処理の終了(中止)を指示するためのキャンセルボタンとを有する。登録画面の構成は図8に示す例に限定されず、撮影位置の情報は住所等のほかに、ランドマーク名、店舗名等が入力される構成としてもよい。
制御部21は、登録画面において入力欄25aに対して撮影画像の指定を受け付け、入力欄25bに対して撮影位置の情報(住所等)の入力を受け付ける(S15)。制御部21は、登録画面中の登録ボタンが操作されたか否かに応じて、登録画面を介して入力された情報の登録指示を受け付けたか否かを判断する(S16)。制御部21は、登録指示を受け付けていないと判断した場合(S16:NO)、ステップS15の処理に戻り、登録画面を介した各情報の受付を継続する。登録指示を受け付けたと判断した場合(S16:YES)、即ち、登録画面中の登録ボタンが操作された場合、制御部21は、登録画面を介して受け付けた撮影画像及び撮影位置の情報を対応付けてサーバ10へ送信する(S17)。
サーバ10の制御部11(画像取得部)は、登録用端末20が送信した撮影画像及び撮影位置の情報を受信(取得)し、受信した情報を対応付けて登録する(S18)。具体的には、制御部11は、受信した撮影画像に画像IDを発行し、画像IDに対応付けて、受信した撮影位置の情報及び撮影画像を撮影画像DB12aに記憶する。上述した処理により、撮影対象の部屋で撮影されたパノラマ画像(撮影画像)が、撮影位置の情報と共にサーバ10に登録される。なお、撮影画像は、1つの部屋において異なる複数の撮影位置で撮影してもよいが、それぞれの撮影画像について上述した処理を行うことによって、それぞれの撮影画像をサーバ10に登録する。
次に、上述した処理によってサーバ10の撮影画像DB12aに登録された撮影画像から閲覧用の画像(閲覧用画像)を生成する処理について説明する。図9は、閲覧用画像の生成処理手順の一例を示すフローチャート、図10は、閲覧用画像の生成処理を説明するための模式図である。サーバ10は、以下の処理を記憶部12に記憶してある制御プログラム12Pに従って制御部11によって実行するが、処理の一部を専用のハードウェア回路で実現する構成でもよい。サーバ10の制御部11は、例えば登録用端末20から撮影画像を受信した場合に、受信した撮影画像を撮影画像DB12aに登録すると共に以下の処理を行う。また制御部11は、定期的に、又は撮影画像DB12aにある程度の撮影画像が登録された後に以下の処理を行ってもよい。
サーバ10の制御部11は、処理対象の撮影画像を撮影画像DB12aから読み出す(S21)。なお、登録用端末20から撮影画像を受信した場合に閲覧用画像を生成する場合、制御部11は、登録用端末20から受信して撮影画像DB12aに記憶した撮影画像を読み出す。また、定期的に、又は撮影画像DB12aにある程度の撮影画像が登録された場合に閲覧用画像を生成する場合、制御部11は、閲覧用画像がまだ生成されていない撮影画像(未処理の撮影画像)を撮影画像DB12aから読み出す。制御部11は、読み出した撮影画像を例えば表示部15に表示する(S22)。なお、登録用端末20から撮影画像を受信した場合に閲覧用画像を生成する場合、制御部11は、撮影画像DB12aから読み出した撮影画像を登録用端末20へ送信し、登録用端末20の表示部25に表示してもよい。
制御部11は、表示部15又は登録用端末20の表示部25に表示した撮影画像に、予め設定された箇所にデフォルトの4線分を重畳させて表示する(S23)。図10Aは4線分L0~L3を重畳表示した撮影画像の例を示しており、図10Aに示すように、例えば撮影画像の左右方向に等間隔の位置に、上下方向に伸びる4線分L0~L3が表示される。なお、4線分L0~L3の表示箇所は撮影画像中のどこでもよく、また、表示部15,25の表示領域において、撮影画像の表示領域以外の領域に表示されてもよい。
制御部11(線分取得部)は、撮影画像に重畳表示した4線分L0~L3に対して、撮影空間を直方体形状の部屋と見なした場合に撮影空間の4隅で鉛直方向に存在する4線分(4鉛直線)への移動を受け付け、撮影画像中の4鉛直線を取得する(S24)。図10Bは、図10Aに示した4線分L0~L3を撮影画像中の4鉛直線L0~L3に移動させた後の状態を示している。なお、登録用端末20のユーザ(登録者)又はサーバ10のユーザが、入力部24,14を用いて、表示部25,15に表示されたデフォルトの4線分L0~L3のそれぞれの端点を、表示部25,15に表示された撮影画像上の4鉛直線L0~L3のそれぞれの端点に移動させる指示を行う。これにより、図10Bに示すように、撮影画像において、撮影空間の4隅の4鉛直線L0~L3が設定され、制御部11は、4鉛直線のそれぞれの両端点、即ち、合計8頂点の座標値を取得する。
ここで、図10Bに示すように、撮影画像中の各画素の位置を、画像の左上を原点(0,0)とし、原点から右方向をX軸とし下方向をY軸とした画像座標系の座標(xI ,yI )で表すとする。なお、撮影画像の高さ(上下方向の長さ)はHとし、幅(左右方向の長さ)はWとする。よって、鉛直線L0~L3のそれぞれの両端点(各頂点)の座標値は、画像座標系の座標値(xI ,yI )によって表される。これにより、制御部11は、撮影画像上で、撮影空間(実空間)の4隅で鉛直方向に存在する4線分を特定できる。制御部11は、取得した8頂点の座標値を記憶部12に記憶しておく。
なお、制御部11は、撮影画像DB12aから読み出した撮影画像に基づいて、画像認識処理によって撮影空間上で鉛直方向に存在する4隅の鉛直線(4鉛直線)を自動的に特定してもよい。例えば、略直方体形状の撮影空間(実空間)の4隅で鉛直方向に伸びる4鉛直線に対応する撮影画像中の4線分(4鉛直線)の特徴量を予め抽出して記憶部12に記憶しておき、制御部11は、記憶した特徴量を有する箇所を撮影画像から自動的に抽出することによって、撮影画像中の4鉛直線を特定してもよい。
また制御部11は、撮影画像(パノラマ画像)が入力された場合に、撮影画像中の各画素を、4鉛直線(撮影空間の4鉛直線に対応する4線分)の領域又は他の領域に分類するように学習された学習済みモデルを用いて、撮影画像中の4鉛直線を特定してもよい。ここでの学習済みモデルは、SegNetモデル、FCN(Fully Convolutional Network )モデル、U-Netモデル等のセグメンテーションDNN(Deep Neural Network )を用いて構成することができる。セグメンテーションDNNは、入力画像(撮影画像)と、入力画像中の各画素に対して、4鉛直線であるか否かを示す情報(クラスラベル)が対応付けられたラベル画像とを含む教師データを用いて学習する。セグメンテーションDNNは、教師データに含まれる入力画像が入力された場合に、教師データに含まれるラベル画像を出力するように学習する。学習処理においてセグメンテーションDNNは、入力値に対して行う所定の演算を規定する各種の関数の係数や閾値等のデータを最適化する。これにより、撮影画像(パノラマ画像)が入力された場合に、入力画像中の各画素を、4鉛直線の領域、又は他の領域にそれぞれ分類するように学習したセグメンテーションDNNが得られる。
制御部11が撮影画像に基づいて自動的に撮影画像中の4鉛直線を特定する場合、制御部11は、撮影画像DB12aから読み出した撮影画像を表示部15,25に表示させる必要がなく、図10Aに示すようなデフォルトの4線分を表示させる必要もない。よって、この場合、制御部11は、ステップS22~S23の処理をスキップし、ステップS24で、撮影画像に基づいて撮影画像中の4鉛直線を特定(取得)する。
次に制御部11(補正部)は、ステップS24で取得した4鉛直線に基づいて、ステップS21で読み出した撮影画像に対して天頂補正を行う(S25)。なお、制御部11は、上述した処理によって撮影画像中の4鉛直線(具体的には、4鉛直線の両端点の座標値)を取得した場合、4鉛直線の入力完了を、登録用端末20の入力部24又はサーバ10の入力部14を介して受け付けた後に、ステップS25の処理に移行してもよい。図11は天頂補正の処理手順の一例を示すフローチャート、図12及び図13は天頂補正に含まれる回転軸の特定処理手順の一例を示すフローチャート、図14は天頂補正に含まれる回転量の特定処理手順の一例を示すフローチャート、図15は天頂補正を説明するための模式図である。
ここで天頂補正処理について説明する。図15Aは天頂補正前の撮影画像の例を示し、図15Bは天頂補正後の撮影画像の例を示す。カメラ30の上下方向(板状部38の長辺方向)が実空間上の鉛直方向に対して傾斜している場合、カメラ30の第1光軸及び第2光軸は、実空間上の水平方向に対して傾斜を有する。このような状態で撮影した場合、カメラ30の前後左右方向を含む平面(以下では撮影時平面という)が、実空間上の水平面に対して傾斜を有するので、実空間上の水平面上にある被写体が、撮影画像中の上下方向の中央部に写らず、歪みが生じたパノラマ画像が得られる。そこで、図15Aに示すように歪みが生じたパノラマ画像を、図15Bに示すように実空間上の水平面上にある被写体が、撮影画像中の上下方向の中央部に写るパノラマ画像に補正する天頂補正を行う。なお、図15Bから分かるように、天頂補正後のパノラマ画像では、4鉛直線L0~L3は画像の上下方向に配置される。
天頂補正処理において、制御部11はまず、ステップS24で取得した4鉛直線の両端点である8頂点の座標を取得する(S31)。具体的には制御部11は、記憶部12に記憶した8頂点の座標値を読み出す。そして制御部11は、読み出した8頂点の座標値に基づいて、4鉛直線のそれぞれを表すパラメータを算出する(S32)。ここでは、それぞれの鉛直線を画像の原点(例えば左下端)からの距離ρ及び傾きθで表すパラメータを算出する。よって、制御部11は、4鉛直線のそれぞれについて、各鉛直線を表すパラメータ(θ,ρ)を算出する。なお、傾きθは例えば0~πラジアンの範囲の値とし、距離ρは0~L(Lは画像の対角線の長さ)の範囲の値とする。
次に制御部11は、4鉛直線に基づいて、図15Aに示すようなパノラマ画像を、図15Bに示すようなパノラマ画像に補正するための補正量を特定する。ここでは、撮影画像中の4鉛直線のそれぞれが、図15Bに示すように、補正後の撮影画像(パノラマ画像)において上下方向に配置されるために行うべき天頂補正における補正量を特定する。具体的には、制御部11は、撮影時におけるカメラ30の前後左右方向を含む撮影時平面が、実空間上の水平面に対して傾斜する中心軸(回転軸)及び回転角度(回転量)をそれぞれ特定する。即ち、制御部11は、実空間上の水平面を基準として撮影時平面が回転する中心軸及び回転角度を天頂補正における補正量として特定する。
図10Bから分かるように、4鉛直線のそれぞれの傾きは、パノラマ画像の左右方向の画像幅を1周期とする増減関数で表現でき、画像の上下方向の中央を通る中央ライン上で傾きが最大となる位置が回転の中心(回転軸)であり、その傾きが回転量(回転角度)とすることができる。そこで、4鉛直線のそれぞれの傾きを正弦波で近似することを考える。ここでの正弦波の周期はパノラマ画像の画像幅に一致するため、正弦波は位相φ及び振幅Aの2つのパラメータで特定できる。また、4鉛直線のそれぞれの傾きは、各鉛直線を表すパラメータθ(0≦θ≦π)としてステップS32で算出されている。よって、推定する正弦波は、y=A・sin(x+φ)と表現でき、各鉛直線に基づいて、位相φ及び振幅Aの各組合せに対して投票法を用いて最小二乗法で正弦波を推定する(1回目の推定処理)。なお、θ=0及びθ=πは共に鉛直方向を示すので、後の演算のためにθ>π/2の場合は、θ:=θ-πとし、-π/2≦θ≦π/2の範囲とする。
補正量の特定において、制御部11はまず、撮影時平面が実空間上の水平面に対して傾斜する中心軸(回転軸)の位置を特定する(S33)。具体的には、制御部11は、4鉛直線に基づいて、補正後のパノラマ画像において4鉛直線のそれぞれが画像の上下方向に配置されるために、実空間上の水平面に一致するように撮影時平面を回転すべき回転軸の位置を特定する。図12及び図13に示す回転軸の特定処理において、制御部11はまず、4鉛直線の傾きを近似する正弦波を表す振幅A及び位相φの2つのパラメータを各軸とした2次元配列(投票空間)を設定し、配列中の各要素を全て0に初期化する(S41)。具体的には、制御部11は、投票空間である2次元配列を例えば記憶部12に定義し、配列の各軸に振幅A及び位相φを割り当て、振幅A及び位相φで表される配列(A,φ)中の各要素を全て0に初期化する。なお、配列の分割数Sは例えば、振幅Aについては0~π/2の範囲を1000等分し、位相φについてはパノラマ画像の画像幅0~W(Wは画像の左右方向の長さ)の範囲をW等分(1画素単位)する。配列(A,φ)の各要素には、y=A・sin(x+φ)に対する、各鉛直線の傾きθの誤差(差異)の二乗が累積されて記憶される。
次に制御部11は、推定する正弦波における振幅Aの候補値を0に設定し(S42)、位相φの候補値を0に設定する(S43)。制御部11は、ステップS32でパラメータを算出した4鉛直線のうちの1つを取得し(S44)、取得した鉛直線について、設定した振幅A及び位相φによって表される正弦波に基づく値と、ステップS32で算出された傾きθ(パラメータ)との誤差を算出する(S45)。鉛直線の横位置xC (画像座標系のX座標値)を、各鉛直線がパノラマ画像の中央ラインと交差する位置のX座標値とし、各鉛直線の横位置xC は既知であるから、0~2πに正規化するために、x=2π×xC /Wとする。また投票空間においてφ方向(φ軸)のi番目の位相は2π×i/S(ただし、Sは分割数であり、ここではW)で表される。これらより、配列(A,φ)の要素に対応する鉛直線の横位置xC における正弦波の値は、y=A・sin(2π×xC /W-2π×i/S)となる。従って、制御部11は、このように算出した正弦波の値yと、既にこの鉛直線について算出した傾きθとの差異(誤差)を算出する。
制御部11は、算出した差異(誤差)の二乗(y-θ)2 を算出し、算出した誤差の二乗を配列(A,φ)の要素に加算する(S46)。制御部11は、ステップS32でパラメータを算出した全ての鉛直線に対してステップS45~S46の処理を終了したか否かを判断する(S47)。終了していないと判断した場合(S47:NO)、制御部11はステップS44の処理に戻り、未処理の鉛直線を1つ取得し(S44)、取得した鉛直線についてステップS45~S46の処理を繰り返す。これにより、配列(A,φ)の1つの要素に対して、位相φ及び振幅Aに基づく正弦波による各鉛直線の関数値と、算出された各鉛直線の傾きとの誤差の二乗が累積される。
制御部11は、ステップS32で算出した全ての鉛直線に対してステップS45~S46の処理を終了したと判断した場合(S47:YES)、この時点の位相φにW/S(Wは画像の左右方向の幅、Sは配列の分割数)を加算し(S48)、加算後の位相φがW(画像幅)以上であるか否かを判断する(S49)。加算後の位相φがW未満であると判断した場合(S49:NO)、制御部11はステップS44の処理に戻る。そして制御部11は、この時点の位相φ及び振幅Aに基づいて、ステップS32でパラメータを算出した全ての鉛直線に対してステップS44~S47の処理を繰り返す。
加算後の位相φがW以上であると判断した場合(S49:YES)、制御部11は、この時点の振幅Aにπ/2S(Sは配列の分割数)を加算し(S50)、加算後の振幅Aがπ/2以上であるか否かを判断し(S51)、加算後の振幅Aがπ/2未満であると判断した場合(S51:NO)、ステップS43の処理に戻る。そして制御部11は、この時点の振幅Aに基づいて、ステップS43~S49の処理を繰り返す。このように制御部11は、位相φの候補値をW/Sずつ増加させ、振幅Aの候補値をπ/2Sずつ増加させつつ、ステップS44~S47の処理を行うことにより、配列(A,φ)の各要素に対して、位相φの候補値及び振幅Aの候補値に基づく正弦波による各鉛直線の関数値と、算出された各鉛直線の傾きとの誤差の二乗を累積する。
ステップS50で加算後の振幅Aがπ/2以上であると判断した場合(S51:YES)、即ち、配列(A,φ)の全ての要素に対して全ての鉛直線についての誤差の二乗の累積が完了した場合、制御部11は、配列(A,φ)の要素の中から最小値を特定し、最小値の要素に対応する振幅A及び位相φを、4鉛直線の傾きを近似した正弦波を表す仮パラメータ(At ,φt )に特定する(S52)。なお、ここで特定した仮パラメータ(At ,φt )が1回目の推定結果である。制御部11は、1回目の推定結果を用いて、ロバスト推定と呼ばれる手法によって正弦波を表すパラメータを精査する(2回目の推定処理)。ロバスト推定では、各鉛直線が正弦波の推定に与える影響を、仮パラメータの推定結果(At ,φt )との差異に基づいた重みを用いて表現する。例えば、仮パラメータ(At ,φt )において各鉛直線の横位置xC における正弦波の関数値y=At ・sin(2π×xC /W-φt )と、ステップS32で算出した各鉛直線の傾きθ(パラメータ)との差異d=y-θに対する重みωを、所定の許容値Ωを用いて以下の(3)式のように設定する。なお、許容値Ωは例えば、全鉛直線における差異dの中央値の1.25倍とすることができる。そして制御部11は、以下の(3)式を用いて特定した重みωを用いて、2回目の正弦波の推定処理を行う。
Figure 0007415496000002
よって、制御部11は、1回目の推定処理と同様に、ステップS41~S44と同様の処理を行い(S53~S56)、取得した鉛直線について、仮パラメータが示す正弦波に基づく関数値と、ステップS32で算出された傾きθとの差異に応じた重みを特定する(S57)。また制御部11は、ステップS45と同様の処理を行い(S58)、算出した誤差の二乗に、ステップS57で特定した重みを乗じた値を算出し、配列(A,φ)の対応する要素に加算する(S59)。よって、2回目の推定処理では配列(A,φ)の各要素に対して、各鉛直線について、正弦波の関数y=A・sin(x+φ)と各鉛直線について算出された傾きθとの誤差(差異)の二乗を累積するが、このとき、上記(3)式で表される重みωを掛けた後に加算する。これにより、1回目の推定結果である仮パラメータ(At ,φt )で表される正弦波から許容値Ωよりも離れている鉛直線が正弦波の推定に与える影響を小さくすることができ、より精度の高い正弦波の推定が可能となる。
制御部11は、ステップS32でパラメータを算出した全ての鉛直線に対してステップS57~S59の処理を終了したか否かを判断する(S60)。終了していないと判断した場合(S60:NO)、制御部11はステップS56の処理に戻り、未処理の鉛直線を1つ取得し(S56)、取得した鉛直線についてステップS57~S59の処理を繰り返す。制御部11は、ステップS32でパラメータを算出した全ての鉛直線に対してステップS57~S59の処理を終了したと判断した場合(S60:YES)、ステップS48~S51と同様の処理を行い(S61~S64)、位相φの候補値をW/Sずつ増加させ、振幅Aの候補値をπ/2Sずつ増加させつつ、ステップS56~S60の処理を行う。これにより、配列(A,φ)の各要素に対して、位相φの候補値及び振幅Aの候補値に基づく正弦波による各鉛直線の関数値と、算出された各鉛直線の傾きとの誤差の二乗に、この鉛直線に設定された重みを乗じた値を累積できる。ステップS63で加算後の振幅Aがπ/2以上であると判断した場合(S64:YES)、即ち、配列(A,φ)の全ての要素に対して、全ての鉛直線についての誤差の二乗に重みωを乗じた値の累積が完了した場合、制御部11は、配列(A,φ)の要素の中から最小値を特定し、最小値の要素に対応する振幅A及び位相φを、各鉛直線の傾きを近似した正弦波を表すパラメータ(A,φ)に特定する(S65)。
図15Aは、上述の処理によって推定された正弦波の例を示しており、図15A中の破線は1回目の推定処理によって推定された正弦波を示し、実線は2回目の推定処理によって推定された正弦波を示し、一点破線は画像の中央ラインを示す。上述した処理により、4鉛直線の傾きθを近似した正弦波を推定することができる。なお、2回目の推定処理において、1回目の推定結果である仮パラメータで表される正弦波から離れている鉛直線が正弦波の推定に与える影響を小さくすることにより、信頼性の高い推定結果が得られる。なお、回転軸の特定処理において、制御部11は、ロバスト推定(2回目の推定処理)を行わずに、1回目の推定処理によって得られた正弦波を、4鉛直線の傾きθを近似した正弦波としてもよい。この場合、1回目の推定処理で得られたパラメータである位相φを、天頂補正に用いる補正量(回転軸の位置)としてもよい。
ここで、上述のように算出(推定)した正弦波の位相φは、画像の中央ラインにおいて、正弦波の関数値yが0となる位置(鉛直線の傾きが0である位置)を示しているので、回転軸は、位相φの位置から中央ライン上でπ/2ずれた位置となる。これは、鉛直線の傾きが最大となる中央ライン上の位置が回転軸となるためである。よって、制御部11は、上述のように算出(推定)した正弦波の位相φにπ/2を加算する(φ:=φ+π/2)ことにより、回転軸の位置(位相φ)を特定する。なお、ここまでパノラマ画像の左端をφ=0とし、右端をφ=2πとして扱ってきたが、ステップS35で行う天頂補正で扱う極座標系ではパノラマ画像の左端がφ=2πとなり、右端がφ=0となる。よって、制御部11は、特定した位相(φ:=φ+π/2)を2πから減算して位相φ(φ:=3π/2-φ)を算出し、算出した位相φを、ステップS35で行う天頂補正に用いる補正量(回転軸の位置を示す位相φ)に特定する(S66)。制御部11は、回転軸の特定処理を終了し、図11の処理に戻る。
次に制御部11は、ステップS33で特定した回転軸の位置(位相φ)に基づいて、ステップS35で行う天頂補正に用いる回転量(回転角度)αを特定する(S34)。具体的には、制御部11は、補正後のパノラマ画像において各鉛直線が上下方向に配置されるために、特定した回転軸を中心に撮影時平面を回転すべき回転量を特定する。なお、回転量αの推定においても、投票法を用いて最小二乗法を利用する。即ち、制御部11は、ステップS33で特定した正弦波を基準とした各鉛直線の誤差を算出し、算出した誤差に応じて、上記(3)式に従って各鉛直線に対する重みωを設定する。具体的には、ステップS33で特定した正弦波のパラメータ(A,φ)において各鉛直線の横位置xC における正弦波の関数値y=A・sin(2π×xC /W-φ)と、ステップS32で算出された鉛直線の傾きθとの差異d=y-θに応じて、各鉛直線に対する重みωを設定する。回転量αを推定(特定)する際の最小二乗法による投票処理は、1次元配列を用いること以外は、正弦波を推定する際に用いた投票処理と同様である。
図14に示す回転量の特定処理において、制御部11は、回転量αをパラメータとした1次元配列を設定し、配列α中の各要素を全て0に初期化する(S71)。具体的には、制御部11は、投票空間として1次元配列を例えば記憶部12に定義し、配列α中の各要素を全て0に初期化する。なお、配列の要素数Sを例えば1000とし、±30°(±π/6ラジアン)の範囲の回転量を1000等分する。配列に用いる±30°の範囲は、カメラ30を用いた撮影時に生じる傾きがせいぜい30°以内であるとの前提に基づいて設定しており、この範囲に限定されず、例えば±45°の範囲を用いてもよい。投票空間における配列αにおいて、i番目の回転量αは、α=(i/1000)×(π/3)-(π/6)で表される。配列の各要素には、ステップS33で特定した位相φを中心軸としてそれぞれの回転量αを回転させたときの各鉛直線の回転後(天頂補正後)のパノラマ画像における傾きの二乗に、先に設定しておいた各鉛直線に対する重みωを乗じた値が累積されて記憶される。特定した位相φが示す軸を中心軸として適切な回転量だけ回転させた場合、各鉛直線は天頂補正後のパノラマ画像上で上下方向に配置されるはずであるから、配列の要素の中の最小値に対応する回転量αが、ステップS35で行われる天頂補正に用いる回転量とすることができる。
制御部11は、回転量αの候補値を-π/6に設定する(S72)。制御部11は、ステップS32でパラメータを算出した鉛直線のうちの1つを取得し(S73)、取得した鉛直線について、回転軸の特定処理によって特定したパラメータ(振幅A及び位相φ)が示す正弦波に基づく関数値と、ステップS32で算出された傾きとの差異に応じた重みを特定する(S74)。
制御部11は、取得した鉛直線に対して、ステップS33で特定した回転軸φ及びステップS72で設定した回転量αに基づく天頂補正(回転)を行い(S75)、補正後の鉛直線における傾きを算出する(S76)。具体的には、制御部11は、処理対象の鉛直線の両端点に対応する画素P1,P2を特定し、位相φを回転軸として回転量αだけ回転した回転後(天頂補正後)のパノラマ画像において、端点P1,P2が移動した写像先の画素P1´,P2´の位置を算出する。なお、位相φ及び回転量αに基づく天頂補正(回転)をパノラマ画像に行う場合、パノラマ画像中の端点P1,P2の座標値を画像座標系から、撮影位置を原点としたワールド直交座標系に変換し、ワールド直交座標系において天頂補正を行う。画像座標系からワールド直交座標系に変換する場合、一旦極座標系に変換した後にワールド直交座標系に変換する。
よって、制御部11は、パノラマ画像中の端点P1,P2のそれぞれの画像座標系の座標(xI ,yI )を以下の(4)式によって極座標系の座標(r,θ,φ)に変換する。極座標系における座標値は、画像座標系における座標値と1対1で対応しているので、以下の(4)式により変換可能であり、極座標系における半径rは便宜上1とする。そして制御部11は、端点P1,P2のそれぞれの極座標系の座標(r,θ,φ)を以下の(5)式によってワールド直交座標系の座標(xW ,yW ,zW )に変換する。
Figure 0007415496000003
図16は極座標系及びワールド直交座標系の関係を示す模式図である。ワールド直交座標系には、実空間上の鉛直上方向をYW 軸の正側、実空間上の水平面をXW 軸及びZW 軸で表す3次元の右手系の直交座標系を用いる。図16に示すように極座標系は、実空間上の鉛直上方向(YW 軸の正側)を基準とした天頂角θと、鉛直上方向から見てZW 軸の正側を基準として水平面であるXW W 平面内の反時計回りの方位角φと、原点0からの距離rとによって表される。よって、3次元空間中の任意の位置Pは、ワールド直交座標系の座標(xW ,yW ,zW )と極座標系の座標(r,θ,φ)とで表すことができる。なお、ワールド直交座標系の座標(xW ,yW ,zW )は、以下の(6)式によって極座標系の座標(r,θ,φ)に変換可能である。
Figure 0007415496000004
そして制御部11は、変換したワールド直交座標系の座標(xW ,yW ,zW )に基づいて、パノラマ画像(端点P1,P2)に天頂補正(回転)処理を行う。なお、制御部11は、位相φ及び回転量αに基づく天頂補正を行う場合、まずワールド直交座標系のYW 軸を中心に時計回りにφだけ回転させて、位相φに基づく回転軸を一旦ワールド直交座標系のZW 軸に一致させ、その後、ワールド直交座標系のZW 軸を中心に回転量αだけ回転させる。そして制御部11は、最初のYW 軸を中心とした回転を戻すために、ワールド直交座標系のYW 軸を中心に反時計回りにφだけ回転させ、回転後のパノラマ画像中の端点(画素)P1´,P2´の座標値を再び、座標変換により極座標系を経由して画像座標系の座標値に戻す。これにより、位相φ及び回転量αに基づく天頂補正によって、補正前のパノラマ画像中の端点P1,P2が移動する補正後のパノラマ画像中の画素P1´,P2´の位置が算出される。なお、ワールド直交座標系のYW 軸を中心とした角度θの回転、及びZW 軸を中心とした角度θの回転は、3×3の行列を用いて、以下の(7)式のように表される。よって、回転前のワールド直交座標系の座標(xW ,yW ,zW )から、以下の(8)式により回転後の座標(xW ´,yW ´,zW ´)が得られる。また、ワールド直交座標系の座標(xW ,yW ,zW )は、上記の(6)式によって極座標系の座標(r,θ,φ)に変換され、極座標系の座標(r,θ,φ)は、以下の(9)式により画像座標系の座標(xI ,yI )に変換される。これにより、回転軸φ及び回転量αに基づく天頂補正(回転)によって、補正前のパノラマ画像中の端点P1,P2が移動する補正後のパノラマ画像中の位置P1´,P2´が算出される。
Figure 0007415496000005
制御部11は、上述したように算出した天頂補正後のパノラマ画像中の画素P1´,P2´の座標値に基づいて、線分P1´P2´の傾きを算出する。そして制御部11は、算出した線分P1´P2´の傾きの二乗に、ステップS74で特定した重みを乗じた値を、配列αの対応する要素に加算する(S77)。制御部11は、ステップS32でパラメータを算出した全ての鉛直線に対してステップS74~S77の処理を終了したか否かを判断する(S78)。終了していないと判断した場合(S78:NO)、制御部11はステップS73の処理に戻り、未処理の鉛直線を1つ取得し(S73)、取得した鉛直線についてステップS74~S77の処理を繰り返す。これにより、配列αの1つの要素に対して、ステップS33で特定した回転軸φ及びここでの回転量αに基づく天頂補正を行った後の各鉛直線の傾きの二乗に、各鉛直線に設定された重みを乗じた値が累積される。ステップS32でパラメータを算出した全ての鉛直線に対してステップS74~S77の処理を終了したと判断した場合(S78:YES)、制御部11は、この時点の回転量αにπ/3S(Sは配列の分割数)を加算し(S79)、加算後の回転量αがπ/6以上であるか否かを判断する(S80)。
回転量αがπ/6未満であると判断した場合(S80:NO)、制御部11は、ステップS73の処理に戻る。そして制御部11は、この時点の回転量αに基づいて、ステップS32でパラメータを算出した全ての鉛直線に対してステップS73~S78の処理を繰り返す。制御部11は、回転量αの候補値をπ/3Sずつ増加させつつ、ステップS73~S78の処理を行うことにより、配列αの各要素に対して、ステップS33で特定した回転軸φ及び回転量αの各候補値に基づく天頂補正を行った後のそれぞれの鉛直線の傾きの二乗に、それぞれの鉛直線に設定された重みを乗じた値を累積できる。ステップS79で加算後の回転量αがπ/6以上であると判断した場合(S80:YES)、即ち、配列αの各要素に対して全ての鉛直線について補正後の傾きの二乗に重みωを乗じた値の累積を完了した場合、制御部11は、配列αの要素の中から最小値を特定し、最小値の要素に対応する回転量αを、ステップS35で行う天頂補正に用いる補正量(回転量α)に特定する(S81)。制御部11は、回転量の特定処理を終了し、図11の処理に戻る。
制御部11は、ステップS33で特定した回転軸の位置(位相φ)と、ステップS34で特定した回転量αとに基づく天頂補正を、ステップS21で読み出したパノラマ画像に対して行う(S35)。ここでは、制御部11は、図14中のステップS75の天頂補正と同様の処理をパノラマ画像に対して行う。具体的には、制御部11は、補正前のパノラマ画像中の各画素の画像座標系における座標(xI ,yI )を上記の(4)式によって極座標系の座標(r,θ,φ)に変換し、更に上記の(5)式によってワールド直交座標系の座標(xW ,yW ,zW )に変換する。そして制御部11は、各画素のワールド直交座標系における座標(xW ,yW ,zW )を、ワールド直交座標系のYW 軸を中心に時計回りにφ回転させて、位相φに基づく回転軸をZW 軸に一致させた後、各画素を、ワールド直交座標系のZW 軸を中心に回転角度α回転させ、回転量αに基づく天頂補正(回転)を行う。その後、制御部11は、最初のYW 軸を中心とした回転を戻すために、天頂補正後の各画素を、ワールド直交座標系のYW 軸を中心に反時計回りにφ回転させ、更に天頂補正後の各画素の座標値を、座標変換により極座標系を経由して画像座標系の座標値に戻す。これにより、位相φ及び回転量αに基づく天頂補正によって補正前のパノラマ画像中の各画素が移動する補正後のパノラマ画像中の画素位置が算出される。
そして制御部11は、補正前のパノラマ画像中の各画素の輝度を、それぞれ算出した補正後のパノラマ画像における各位置にコピーし、補正後のパノラマ画像を生成する。なお、パノラマ画像はデジタル画像であるため、上述のように算出した補正後の座標値によっては、補正後のパノラマ画像中の画素の位置を特定できない可能性がある。従って、例えばバイリニア法等の補間演算を行うことによって、補正後のパノラマ画像中の各画素の輝度を、演算によって算出された周囲の画素の輝度に基づいて算出してもよい。また、補正後のパノラマ画像中の各画素の位置から、対応する補正前のパノラマ画像中の各画素の位置を算出し、補正前後での各画素の位置(座標値)を対応付けてもよい。この場合、算出した補正前の画素位置の輝度を、補正後の画素位置にコピーすることにより、補正後のパノラマ画像が得られる。
制御部11は、ステップS35と同様の天頂補正を、ステップS24で取得した4鉛直線に対して行い(S36)、補正前のパノラマ画像中の各鉛直線の両端点が、天頂補正によって移動する天頂補正後のパノラマ画像中の画素位置を算出する。その後、制御部11は天頂補正処理を終了し、図9の処理に戻る。上述した天頂補正により、図15Aに示すように歪んだパノラマ画像が、図15Bに示すようなパノラマ画像に補正される。また、図10Bに示すように設定された4つの鉛直線L0~L3は、図15Bに示すパノラマ画像ではそれぞれ上下方向に伸びる状態となる。
撮影画像及び4鉛直線に対して天頂補正を行った場合、制御部11(推定部)は、天頂補正後の撮影画像に基づいて、天頂補正後の4鉛直線を高さとする直方体の形状を推定する(S26)。図17は直方体の推定処理手順の一例を示すフローチャート、図18~図20は直方体の推定処理を説明するための模式図である。図17に示す直方体の推定処理において、制御部11は、ステップS25の天頂補正処理によって得られた天頂補正後の撮影画像と、天頂補正後の4鉛直線とを取得する(S91)。具体的には、制御部11は、天頂補正後の撮影画像と、天頂補正後の各鉛直線における両端点の撮影画像中の位置(画像座標系の座標値)とを取得する。なお、これらの情報は、天頂補正を行った後に記憶部12に記憶されている。
図18Aは天頂補正後の撮影画像及び4鉛直線L0~L3を示している。天頂補正後の撮影画像において4鉛直線L0~L3は画像の上下方向に配置されており、各鉛直線L0~L3の方位角φは既知である。例えば図18Aに示すように、画像の右端(カメラ30の背面方向)を基準として鉛直線L3の方位角はφ3 、鉛直線L2の方位角はφ2 …と既知である。よって、制御部11(平面推定部)は、4鉛直線L0~L3の方位角φ0 ~φ3 から直方体の平面(縦方向及び横方向)を推定する(S92)。直方体の平面は、図18Bに示すように、撮影位置(撮影中心C)を原点としたワールド直交座標系において実空間上の鉛直方向を示すYW 軸の正側から撮影空間を見たXW W 平面で表すことができる。YW 軸の正側から4鉛直線を見た場合、それぞれの鉛直線は点と見なすことができ、図18Bに示すように鉛直線L0~L3のそれぞれを頂点P0 ~P3 で表すことができる。よって、制御部11は、各頂点P0 ~P3 のXW W 平面上の座標値(ワールド直交座標系の座標値)を算出することによって、直方体の平面(XW W 平面での断面)を推定する。なお、画像の右端はワールド直交座標系におけるZW 軸方向であるので、各鉛直線L0~L3に対応する頂点P0 ~P3 は、ZW 軸の正方向を基準として反時計回りにそれぞれの方位角φの位置で表される。各鉛直線L0~L3は厳密には画像の上下方向に配置されていない場合があるので、例えば各鉛直線L0~L3の両端点のX座標値(画像座標系のX座標値)の平均値から、各鉛直線L0~L3の方位角φ0 ~φ3 を特定(算出)してもよい。
具体的には、制御部11は、天頂補正後の各鉛直線について、鉛直線の両端点のX座標値(画像座標系のX座標値xI )の平均値を算出し、算出したX座標値の平均値を上記の(4)式によって極座標系の座標値φに変換する。よって、制御部11は、鉛直線L0~L3のそれぞれについて極座標系の座標値φ0 ~φ3 を算出する。これにより、XW W 平面において、各鉛直線L0~L3に対応する頂点P0 ~P3 についてZW 軸の正方向を基準とした方位角φ0 ~φ3 が特定された。しかし、各頂点P0 ~P3 について撮影位置(原点C)からの距離D0 ~D3 (図19A参照)は未知であり、各距離D0 ~D3 が求まれば各頂点P0 ~P3 のXW 座標値及びZW 座標値を特定できる。よって、制御部11は、各距離D0 ~D3 を算出する。
ここで、頂点P0 ~P3 を結んだ閉領域は、直方体の平面での断面であるので、図19Aに示すような矩形となる。よって、矩形P0 ,P1 ,P2 ,P3 において、頂点P0 ,P1 を結んだ線分L01と頂点P2 ,P3 を結んだ線分L23とは長さが同じであり、頂点P1 ,P2 を結んだ線分L12と頂点P3 ,P0 を結んだ線分L30とは長さが同じであり、線分L01と線分L12とは直交し、線分L12と線分L23とは直交するという条件が成立する。また、ある頂点を頂点Pk とし、頂点Pk のXW W 平面上の座標値を座標値(xk ,zk )とし、原点Cから頂点Pk までの距離を距離Dk とすると、xk =Dk ・sinφk ,zk =Dk ・cosφk で表される。なお、以降では、sinφk をSk と記載し、cosφk をCk と記載する。また、矩形P0 ,P1 ,P2 ,P3 では、対向する辺のベクトルが一致するので、例えばベクトルP1 0 とベクトルP2 3 とが一致することによって、以下の(10)式及び(11)式が成立する。更に、線分L30(ベクトルP0 3 )と線分L01(ベクトルP0 1 )とが直交するので両者の内積が0になることによって、以下の(12)式が成立する。なお、(12)式をx0 及びz0 について整理すると、以下の(13)式が得られる。
Figure 0007415496000006
推定する直方体は、撮影空間の部屋の相似形であり、矩形P0 ,P1 ,P2 ,P3 の大きさは相対値であるので、例えば距離D0 を1とすると、頂点P0 のXW W 平面上の座標値(x0 ,z0 )は(S0 ,C0 )で表され、頂点P1 の座標値(x1 ,z1 )は(D1 1 ,D1 1 )で表され、頂点P2 の座標値(x2 ,z2 )は(D2 2 ,D2 2 )で表され、頂点P3 の座標値(x3 ,z3 )は(D3 3 ,D3 3 )で表される。よって、上記の(10),(11),(13)式の3式から3つの未知数D1 ~D3 を算出する。まず、(10)式のx0 ~x3 のそれぞれに頂点P0 ~P3 のXW 座標値を代入すると、距離D3 を以下の(14)式で表せる。同様に、(11)式のz0 ~z3 のそれぞれに頂点P0 ~P3 のZW 座標値を代入し、(14)式で表したD3 を代入すると、距離D2 を以下の(15)式で表せる。そして、(14)式に(15)式で表したD2 を代入すると、距離D3 を以下の(16)式で表せる。
Figure 0007415496000007
ここで、(15)式で表したD2 及び(16)式で表したD3 において、それぞれの係数をA2 ,B2 ,A3 ,B3 とすると、D2 =A2 +B2 1 ,D3 =A3 +B3 1 と表せる。そして改めて、(12)式のx0 ~x3 のそれぞれに頂点P0 ~P3 のXW 座標値を代入し、z0 ~z3 のそれぞれに頂点P0 ~P3 のZW 座標値を代入し、更にD3 =A3 +B3 1 を代入し、D1 について整理すると、以下の(17)式が得られる。この(17)式はD1 に関する2次方程式となっているので、2次方程式の解の公式よりD1 を算出できる。なお、D1 は距離なので、正の値となるD1 を算出する。上述した演算によって算出したD1 を、D2 =A2 +B2 1 及びD3 =A3 +B3 1 にそれぞれ代入することによって、D2 及びD3 が算出される。これにより、頂点P0 ~P3 のXW W 平面上の座標値(x0 ,z0 )~(x3 ,z3 )が算出できる。
Figure 0007415496000008
頂点P0 ~P3 のXW W 平面上の座標値が算出できた場合、即ち、直方体のXW W 平面の大きさが推定できた場合、制御部11は、矩形P0 ,P1 ,P2 ,P3 の各辺がXW 座標軸又はZW 座標軸に平行となるように、原点Cを中心に頂点P0 ~P3 (ステップS92で推定したXW W 平面)を回転させる(S93)。例えば制御部11は、線分L12のXW 座標軸に対する傾きΨを算出し、各頂点P0 ~P3 を、原点Cを中心に時計回りにΨだけ回転させる。図19Bは回転後の頂点P0 ´~P3 ´を示す。具体的には、例えば回転後の線分P0 ´P1 ´(線分L01)がZW 座標軸に平行である場合、頂点P0 ´及び頂点P1 ´のXW 座標値が一致する(x0 =x1 )ので、
0 sin(φ0 +Ψ)=D1 sin(φ1 +Ψ)
となるΨを算出する。
なお、回転の前後で距離D0 ~D3 は変化しないので、D0 =1であり、
sin(φ0 +Ψ)=D1 sin(φ1 +Ψ)
が成立する。ここで、加法定理sin(x±y)=sinxcosy±cosxsinyにより、
sinφ0 cosΨ+cosφ0 sinΨ=D1 (sinφ1 cosΨ+cosφ1 sinΨ)
が得られ、全体をcosΨで割ることにより、
sinφ0 +cosφ0 tanΨ=D1 (sinφ1 +cosφ1 tanΨ)
が得られ、tanΨについて整理すると、以下の(18)式が得られる。よって、以下の(19)式のように回転量Ψが算出できる。
Figure 0007415496000009
制御部11は、上述したように算出した回転量Ψを、回転前の各頂点P0 ~P3 の方位角φ0 ~φ3 にそれぞれ加算することによって、回転後の各頂点P0 ´~P3 ´の方位角φ0 ´~φ3 ´を算出できる。頂点Pk (k=0~3)の座標値(xk ,zk )は(Dk sinφk ,Dk cosφk )で表されるので、制御部11は、それぞれ算出した各頂点P0 ´~P3 ´の方位角φ0 ´~φ3 ´と上述した処理で算出した距離D0 ~D3 (なお、D0 =1)とによって回転後の各頂点P0 ´~P3 ´の座標値(x0 ´,z0 ´)~(x3 ´,z3 ´)を算出する。
回転後の各頂点P0 ´~P3 ´の座標値(x0 ´,z0 ´)~(x3 ´,z3 ´)を算出した場合、制御部11は、処理対象の撮影画像、具体的には天頂補正後の撮影画像を、各頂点P0 ~P3 の回転量Ψだけ、左方向にスクロール(移動)しておく(S94)。具体的には、撮影画像全体を、画像の左右幅のΨ/2πだけ左方向に平行移動させ、画像の右端のΨ/2πの領域には、平行移動によって画像の左端から削除したΨ/2πの領域をそのままコピーする。これにより、回転後の直方体において、ZW 座標軸の負方向を画像の中央に一致させることができる。同様に、制御部11は、撮影画像中の4鉛直線をそれぞれ回転量Ψだけ、左方向に移動させる(S95)。ここでは、鉛直線L0~L3の両端点の画像座標系のX座標値xI からΨ/2πを減算する。
次に制御部11(高さ推定部)は、直方体の高さ(ワールド直交座標系のYW 軸方向の長さ)を推定する(S96)。ここでは制御部11は、鉛直線L0~L3のそれぞれの両端点のYW 座標値を算出することによって、直方体の高さを推定する。鉛直線L0~L3の両端点のワールド直交座標系のXW 座標値は、上述の処理によって算出されたx0 ´~x3 ´であり、ZW 座標値は、上述の処理によって算出されたz0 ´~z3 ´である。また、撮影画像中の鉛直線L0~L3の両端点の画像座標系の座標(xI ,yI )はステップS95で算出されている。ここで、図20に示すように正距円筒図法で表されたパノラマ画像では、各画素(各点)の画像座標系の座標値(xI ,yI )から、各画素(各点)の極座標系の天頂角θ及び方位角φを特定できる。従って、制御部11は、撮影画像中の鉛直線L0~L3の両端点の画像座標系の座標(xI ,yI )から上記の(4)式を用いて極座標系の天頂角θ及び方位角φを算出する。なお、極座標系における距離rは未知である。これにより、鉛直線L0~L3の各端点について、ワールド直交座標系の座標(XW ,YW ,ZW )(YW は未知)と、極座標系の座標(θ,φ,r)(rは未知)とで表すことができる。図20では鉛直線L2の天井側の上端点について、ワールド直交座標系の座標(XW ,YW ,ZW )と極座標系の座標(θ,φ,r)とで表せることを示している。
ここで、上記の(6)式の1つ目の式と、上記の(5)式の2つ目の式を変形した式である、r=yw /cosθとからrを消去し、yw について整理すると、以下の(20)式が得られる。この(20)式に、鉛直線L0~L3の各端点について、ワールド直交座標系のXW 座標値及びZW 座標値と、極座標系の天頂角θとを代入することによって、各端点のワールド直交座標系のYW 座標値が得られる。制御部11は、鉛直線L0~L3のそれぞれの各端点について、ワールド直交座標系のYW 座標値を算出する。以上の処理により、各鉛直線L0~L3の両端点のそれぞれについてワールド直交座標系の座標(X0 ,Y0 ,Z0 )~(X3 ,Y3 ,Z3 )が得られる。即ち、撮影空間の直方体における8頂点のワールド直交座標系の座標(XW ,YW ,ZW )が得られ、制御部11は図9の処理に戻る。
Figure 0007415496000010
次に制御部11は、ステップS26の直方体推定で算出した撮影空間の直方体の8頂点に対するワールド直交座標系の座標(XW ,YW ,ZW )に基づいて、直方体を構成する矩形の6面について、各面の4頂点の座標値と各頂点の接続関係とを規定するポリゴンデータを生成する(S27)。図21はポリゴンデータを説明するための模式図である。図21Aは、ワールド直交座標系における直方体を示しており、制御部11は、図21Bに示す頂点データ及びポリゴンデータを生成する。まず制御部11は、図21Aに示すように、推定した直方体の各頂点にそれぞれ頂点ID(V0~V7)を割り当て、各頂点のワールド直交座標系の座標(XW ,YW ,ZW )を、頂点IDに対応付けて記憶する。これにより、図21Bに示すような頂点データが生成される。次に制御部11は、直方体の各面にそれぞれポリゴンID(Po0~Po5)を割り当て、ポリゴンIDに対応付けて、各面の4頂点の頂点ID(第1頂点ID~第4頂点ID)を対応付けて記憶する。また制御部11は、ポリゴンIDに対応付けて、後述するテクスチャ画像に割り当てられるテクスチャIDを記憶する。これにより、図21Bに示すようなポリゴンデータが生成される。
次に制御部11(生成部)は、直方体の各面(各ポリゴン)にパノラマ画像の各画素をマッピングしてテクスチャ画像(テクスチャ画像データ)を生成する(S28)。図22及び図23はテクスチャ画像を説明するための模式図である。図22Aは、ステップS25で天頂補正が行われ、ステップS26の直方体推定で左右方向にスクロールされた撮影画像を示す。制御部11は、図22Aに示す撮影画像(パノラマ画像)を、各ポリゴンの頂点の座標値に基づいて各ポリゴンに写像変換することにより、6面分のテクスチャ画像を生成する。なお、本実施形態では、それぞれのテクスチャ画像を正方形とするが、長方形のテクスチャ画像であってもよい。
制御部11はまず、処理対象のポリゴンについて、頂点データ及びポリゴンデータから、4頂点のワールド直交座標系の座標値を取得する。次に制御部11は、4頂点の座標値に基づいて、このポリゴンを縦方向及び横方向のそれぞれに均等に分割し、例えば1024画素×1024画素を特定し、各画素の座標値(ワールド直交座標系)を算出する。次に制御部11は、各画素のワールド直交座標系の座標値(XW ,YW ,ZW )をそれぞれ、上記の(6)式を用いて極座標系の座標値(θ,φ)に変換し、極座標系の座標値(θ,φ)をそれぞれ、上記の(9)式を用いて画像座標系の座標値(XI ,YI )に変換し、撮影画像中の各座標値(XI ,YI )の画素の画素値(輝度値)をポリゴンの各画素にコピーする。これにより、1つのポリゴンに対するテクスチャ画像が生成され、生成されたテクスチャ画像は、ポリゴンデータに記憶されたテクスチャIDに対応付けて記憶部12に記憶される。例えば図22B中に太線矩形で示す直方体の手前側の面(ポリゴン)内の各画素が、図22A中に太線矩形で示す撮影画像中の領域内の各画素に対応する場合、図22A中の太線矩形内の各画素をコピーすることによって、図22Cに示すようなテクスチャ画像が生成できる。
なお、パノラマ画像はデジタル画像であるため、上述のように算出した画像座標系の座標値によっては、パノラマ画像中の画素の位置を特定できない可能性がある。この場合、例えばバイリニア法、ニアレストネイバー法等の補間演算を行うことにより、算出した座標値の周囲の画素の画素値に基づいて、ポリゴンの各画素の輝度を算出してもよい。また、撮影画像中の各画素の位置から、対応するポリゴン中の各画素の位置を算出し、撮影画像中の各画素の画素値を、算出したポリゴン中の各画素にコピーしてもよい。制御部11は、全てのポリゴンについて上述した処理を行うことにより、直方体の6面分のテクスチャ画像を生成する。図23は6面分のテクスチャ画像を示しており、上側に並ぶ4つのテクスチャ画像は撮影空間(直方体)の4側面に対応しており、下側の左側のテクスチャ画像は撮影空間の上面(天井面)に対応しており、下側の右側のテクスチャ画像は撮影空間の下面(床面)に対応している。
6つのテクスチャ画像を生成した後、制御部11は、ステップS27で生成した頂点データ及びポリゴンデータと、ステップS28で生成した6つのテクスチャ画像とを閲覧用画像として、記憶部12の閲覧用画像DB12bに記憶する(S29)。なお、制御部11は、生成した6つのテクスチャ画像を表示部15又は登録用端末20の表示部25に表示し、入力部14又は24を介してサーバ10又は登録用端末20のユーザからの閲覧用画像の登録指示を受け付けた後に、閲覧用画像DB12bに記憶してもよい。
以上の処理により、カメラ30で撮影された撮影画像から、閲覧用端末40のユーザ(閲覧者)に提供するための閲覧用の画像(閲覧用画像)を生成して記憶部12(閲覧用画像DB12b)に登録することができる。また本実施形態では、撮影画像に対して指定された4鉛直線L0~L3を、撮影空間の直方体を推定する処理だけでなく、撮影画像に行う天頂補正でも利用するので、効率の良い処理が可能である。なお、本実施形態では、サーバ10が、閲覧用画像を記憶しており、閲覧用端末40からの要求に応じて、閲覧用画像を閲覧用端末40に提供する。しかし、サーバ10とは異なる画像提供サーバを設け、画像提供サーバが、サーバ10から閲覧用画像を取得しておき、閲覧用端末40からの要求に応じて、閲覧用画像を閲覧用端末40に提供するように構成することもできる。またサーバ10は、閲覧用画像を生成した後は、閲覧用画像の生成前の撮影画像を撮影画像DB12aから消去してもよい。
次に、サーバ10の閲覧用画像DB12bに登録された閲覧用画像に基づいて、カメラ30で撮影したパノラマ画像を、閲覧用端末40で再生(表示)する際に、サーバ10及び閲覧用端末40が行う処理について説明する。図24は、パノラマ画像の再生処理手順の一例を示すフローチャート、図25は、パノラマ画像の表示画面例を示す模式図である。図24では左側に閲覧用端末40が行う処理を、右側にサーバ10が行う処理をそれぞれ示す。
閲覧者は、サーバ10に登録されているいずれかのパノラマ画像を閲覧したい場合、例えば閲覧用端末40のウェブブラウザ(図示せず)を用いてサーバ10にアクセスし、サーバ10が提供するウェブサイトを介して所望のパノラマ画像(閲覧用画像)の送信を要求する。なお、サーバ10はウェブサーバとしての機能を有しており、パノラマ画像(閲覧用画像)の要求を受け付けるためのウェブサイトをネットワークN経由で公開している。よって、閲覧用端末40の制御部41は、入力部44を介した閲覧者からの指示に従って、サーバ10が提供するウェブサイトを介して、パノラマ画像(閲覧用画像)を要求する(S101)。なお、制御部41は、ウェブブラウザによってサーバ10にアクセスするほかに、サーバ10が提供するウェブサイトにアクセスするためのアプリケーションプログラムを用いてもよい。
サーバ10の制御部11は、閲覧用端末40からいずれかのパノラマ画像を要求された場合、要求されたパノラマ画像(撮影画像)から生成された閲覧用画像を閲覧用画像DB12bから選択して読み出す(S102)。なお、閲覧用端末40の制御部41は、閲覧者が閲覧したいパノラマ画像を撮影した部屋の指定を受け付け、指定された部屋の情報(撮影位置情報)に基づいてパノラマ画像をサーバ10に要求してもよい。この場合、サーバ10の制御部11は、指定された部屋の情報(撮影位置情報)に対応付けて閲覧用画像DB12bに記憶してある閲覧用画像を読み出せばよい。なお、閲覧用画像は、図21Bに示す頂点データ及びポリゴンデータと、図23に示すテクスチャ画像とを含む。
制御部11は、閲覧用画像DB12bから読み出した閲覧用画像と、閲覧用画像を再生(表示)するための閲覧プログラムとを通信部13にて閲覧用端末40へ送信する(S103)。閲覧プログラムは例えばWebGLであり、予め記憶部12に記憶してある。閲覧用端末40の制御部41(取得部)は、サーバ10が送信した閲覧用画像及び閲覧プログラムを通信部43にて受信(取得)し、記憶部42に記憶する(S104)。制御部41は、閲覧プログラムを実行することにより、閲覧用画像に基づいて、撮影空間内の仮想位置から見た状態の仮想画像を生成して表示部45に表示することができる。
例えば制御部41は、予め設定されたデフォルトの仮想位置及び視線方向(向き)を読み出す(S105)。デフォルトの仮想位置及び視線方向は例えば閲覧プログラムに設定されている。そして制御部41は、閲覧プログラム(WebGL)によるレンダリング機能(テクスチャマッピング)を利用して、閲覧用画像(頂点データ、ポリゴンデータ、テクスチャ画像)に基づいて、デフォルトの仮想位置から、デフォルトの視線方向を見た状態の仮想画像を生成する(S106)。具体的には、制御部41(生成部)は、テクスチャ画像の各画素を、仮想位置での各画素位置に対応付けることによって仮想画像を生成する。制御部41は、仮想画像を生成した場合、生成した仮想画像を表示部45に表示する(S107)。
図25は仮想画像の表示例を示しており、制御部41は、仮想画像に重畳させて、視線変更ボタン441及び移動ボタン442を表示する。視線変更ボタン441は、上視線ボタン、下視線ボタン、左視線ボタン及び右視線ボタンの4つのボタンを有しており、それぞれのボタンに対する操作を受け付けた場合、制御部41は、視線方向を上向き、下向き、左向き又は右向きに変更する指示を受け付ける。移動ボタン442は、前ボタン及び後ボタンの2つのボタンを有しており、それぞれのボタンに対する操作を受け付けた場合、制御部41は、仮想位置を前方向又は後方向に変更する指示を受け付ける。なお、移動ボタン442は左方向又は右方向への移動を指示するためのボタンを有していてもよい。閲覧者は、入力部44を介して視線変更ボタン441及び移動ボタン442のいずれかに対する操作を行うことにより、視線方向の変更及び仮想位置の変更を指示することができる。
制御部41(位置取得部)は、入力部44を介して移動ボタン442又は視線変更ボタン441のいずれかに対する操作を受け付けることにより、仮想位置又は視線方向の変更指示を受け付ける。よって、制御部41は、移動ボタン442又は視線変更ボタン441に対する操作によって、仮想位置又は視線方向の変更指示を受け付けたか否かを判断する(S108)。制御部41は、仮想視点又は視線方向の変更指示を受け付けたと判断した場合(S108:YES)、受け付けた変更指示に従って、仮想位置又は視線方向を変更する(S109)。例えば移動ボタン442の前ボタン又は後ボタンが操作された場合、制御部41は、現在の仮想位置を前方向又は後方向に所定距離だけ移動させた位置を仮想位置に設定する。また視線変更ボタン441の上視線ボタン、下視線ボタン、左視線ボタン又は右視線ボタンが操作された場合、制御部41は、現在の視線方向を上方向、下方向、左方向又は右方向に所定角度だけ変更させた方向を視線方向に設定する。その後、制御部41はステップS106の処理に戻り、ステップS106~S107の処理を行う。これにより、変更後の仮想位置から変更後の視線方向を見た状態の仮想画像が生成されて表示部45に表示される。
制御部41は、仮想視点又は視線方向の変更指示を受け付けていないと判断した場合(S108:NO)、入力部44を介してパノラマ画像の閲覧処理の終了指示を受け付けたか否かを判断する(S110)。例えばサーバ10(ウェブサイト)へのアクセスの終了指示を入力部44にて受け付けた場合、制御部41は、パノラマ画像の閲覧処理を終了する指示を受け付けたと判断する。パノラマ画像の閲覧処理の終了指示を受け付けていないと判断した場合(S110:NO)、制御部41はステップS108の処理に戻る。制御部41は、視線変更ボタン441又は移動ボタン442に対する閲覧者からの操作を入力部44にて受け付ける都度、ステップS109、S106~S107の処理を行うことにより、仮想画像を更新して表示する。パノラマ画像の閲覧処理の終了指示を受け付けたと判断した場合(S110:YES)、制御部41は処理を終了する。上述した処理により、カメラ30で撮影された実写データに基づいて、撮影空間内の任意の視点から見た画像(仮想画像)を閲覧者に提供することができる。よって、閲覧者は、撮影空間の部屋の中を仮想的に移動しながら、任意の方向に視線を変えることができ、部屋の広さ、家具の配置、窓の外の景色等を感覚的に把握することができる。
本実施形態では、カメラ30で撮影したパノラマ画像に対して、撮影空間の4隅の4鉛直線を入力することで、天頂補正を行うことができ、また、閲覧用端末40で再生可能な閲覧用画像を生成することができる。撮影空間上の4つの鉛直線を用いて撮影空間の直方体形状を推定するので、それぞれの鉛直線の天井面側の端点と床面側の端点との取り違いが発生せず、適切なテクスチャ画像を生成することができる。よって、適切に生成されたテクスチャ画像に基づいて、任意の位置から見た状態の仮想画像を適切に生成することができる。また本実施形態では、閲覧用端末40が、サーバ10で生成された閲覧用画像(頂点データ及びポリゴンデータ、並びにテクスチャ画像)をダウンロードすることによって、閲覧用端末40で再生処理が行われる。よって、サーバ10は、登録用端末20を介して登録されたパノラマ画像(撮影画像)から閲覧用の画像を生成し、閲覧用の画像を閲覧用端末40に提供すればよい。
本実施形態では、閲覧用端末40として、HMD型の情報処理装置を使用してもよく、この場合、コンピュータ等の操作に不慣れなユーザであっても容易に様々な視点から室内を見た状態の画像を確認できる画像処理システム100を提供できる。本実施形態によると、市販の全天球カメラ等を用いて撮影したJPEG(Joint Photographic Experts Group)形式等の汎用の形式の画像を使用して、様々な視点から室内を見た状態の画像を提供できる画像処理システム100を提供できる。なお、カメラ30は、全天球カメラに限定しない。たとえば、半球型の範囲を撮影可能なカメラであっても、通常の平面画像撮影用のカメラであってもよい。
(実施形態2)
サーバ10で生成された閲覧用画像を、サーバ10とは別のサーバ(閲覧用画像提供サーバ)で閲覧用端末40に提供する画像処理システム100について説明する。本実施形態の画像処理システム100は、実施形態1のサーバ10が行っていた処理のうち、閲覧用画像を閲覧用端末40に提供する処理を別のサーバが行うこと以外は、実施形態1と同様である。図26は、実施形態2の画像処理システム100の構成例を示す模式図である。本実施形態の画像処理システム100は、実施形態1の画像処理システム100と同様の装置に加えて、閲覧用画像をネットワークN経由で提供する閲覧用画像提供サーバ50を備える。閲覧用画像提供サーバ50は、サーバ10と同様の構成を有しており、ネットワークN経由で他の装置との間で情報の送受信を行う。
本実施形態の画像処理システム100では、サーバ10は、図7に示す撮影画像の登録処理を行い、登録用端末20を介して取得した撮影画像(パノラマ画像)を記憶部12(撮影画像DB12a)に登録する。またサーバ10は、図9,11-14,17に示す閲覧用画像の生成処理を行い、登録された撮影画像のそれぞれから閲覧用画像を生成する。ここで、本実施形態のサーバ10は、撮影画像から生成した閲覧用画像を、撮影場所の情報(撮影位置情報)に対応付けて閲覧用画像提供サーバ50へ送信する。具体的には、サーバ10は、図4Bに示すような閲覧用画像DB12bを閲覧用画像提供サーバ50に送信し、閲覧用画像提供サーバ50が、受信した閲覧用画像DB12bを記憶部に記憶する。そして、本実施形態では、閲覧用画像提供サーバ50が、図24に示す閲覧用画像の提供処理を行い、閲覧用端末40からの要求に応じて閲覧用画像を閲覧用端末40に提供する。
本実施形態では、実施形態1のサーバ10が行っていた処理を分散させることにより、サーバ10による処理負担を軽減できる。また、例えば不動産物件を撮影したパノラマ画像を提供対象(閲覧対象)とする場合、地域毎に閲覧用画像提供サーバ50を設け、それぞれの閲覧用画像提供サーバ50が、各地域内の物件の閲覧用画像を管理するように構成してもよい。この場合、例えば不動産会社の従業員が撮影を行い、得られたパノラマ画像をサーバ10に登録し、サーバ10は、登録されたパノラマ画像から閲覧用画像を生成し、生成した閲覧用画像を、撮影対象の物件の地域に対応する閲覧用画像提供サーバ50に登録する。このような構成とした場合、地域毎の閲覧用画像提供サーバ50にて各物件の閲覧用画像を管理できる。
今回開示された実施の形態はすべての点で例示であって、制限的なものではないと考えられるべきである。本発明の範囲は、上記した意味ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
10 サーバ
11 制御部
12 記憶部
13 通信部
20 登録用端末
21 制御部
22 記憶部
23 通信部
30 カメラ
40 閲覧用端末
41 制御部
42 記憶部
43 通信部
100 画像処理システム
12a 撮影画像DB
12b 閲覧用画像DB

Claims (7)

  1. 直方体として閉鎖された実空間内で撮影された全天球画像を正距円筒図法により展開したパノラマ画像を取得する画像取得部と、
    前記パノラマ画像上で、前記直方体の鉛直方向の辺に対応する4線分を取得する線分取得部と、
    取得した前記4線分を高さとする前記直方体の形状を推定する推定部と、
    推定した前記直方体を構成する各面に、前記パノラマ画像の各画素を対応付けてテクスチャ画像を生成する生成部と
    を備える画像処理装置。
  2. 取得した前記4線分のそれぞれがパノラマ画像の上下方向に存在するように、前記画像取得部が取得した前記パノラマ画像を補正する補正部を備え、
    前記推定部は、補正後のパノラマ画像に基づいて前記直方体の形状を推定する
    請求項1に記載の画像処理装置。
  3. 前記推定部は、
    前記線分取得部が取得した前記4線分に基づいて、前記実空間上の水平面での前記直方体の断面を推定する平面推定部と、
    前記線分取得部が取得した前記4線分、及び推定した前記直方体の断面に基づいて、前記実空間上の鉛直方向における前記直方体の高さを推定する高さ推定部と
    を有する
    請求項1又は2に記載の画像処理装置。
  4. 前記線分取得部は、前記画像取得部が取得したパノラマ画像に対して前記4線分の指定を受け付ける
    請求項1から3までのいずれかひとつに記載の画像処理装置。
  5. 前記線分取得部は、前記画像取得部が取得したパノラマ画像に基づいて、前記パノラマ画像中の前記4線分を特定する
    請求項1から3までのいずれかひとつに記載の画像処理装置。
  6. 直方体として閉鎖された実空間内で撮影された全天球画像を正距円筒図法により展開したパノラマ画像を取得し、
    前記パノラマ画像上で、前記直方体の鉛直方向の辺に対応する4線分を取得し、
    取得した前記4線分を高さとする前記直方体の形状を推定し、
    推定した前記直方体を構成する各面に、前記パノラマ画像の各画素を対応付けてテクスチャ画像を生成する
    処理をコンピュータに実行させるプログラム。
  7. 画像処理装置及び画像表示装置を含む画像処理システムにおいて、
    前記画像処理装置は、
    直方体として閉鎖された実空間内で撮影された全天球画像を正距円筒図法により展開したパノラマ画像を取得する画像取得部と、
    前記パノラマ画像上で、前記直方体の鉛直方向の辺に対応する4線分を取得する線分取得部と、
    取得した前記4線分を高さとする前記直方体の形状を推定する推定部と、
    推定した前記直方体を構成する各面に、前記パノラマ画像の各画素を対応付けてテクスチャ画像を生成する生成部とを備え、
    前記画像表示装置は、
    前記画像処理装置で生成されたテクスチャ画像を取得する取得部と、
    前記実空間内の仮想位置を示す情報を取得する位置取得部と、
    取得した前記テクスチャ画像の各画素を、取得した前記仮想位置での各画素位置に対応付けることで仮想画像を生成する生成部と、
    生成した前記仮想画像を表示する表示部とを備える
    画像処理システム。
JP2019218253A 2019-12-02 2019-12-02 画像処理装置、プログラム及び画像処理システム Active JP7415496B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019218253A JP7415496B2 (ja) 2019-12-02 2019-12-02 画像処理装置、プログラム及び画像処理システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019218253A JP7415496B2 (ja) 2019-12-02 2019-12-02 画像処理装置、プログラム及び画像処理システム

Publications (2)

Publication Number Publication Date
JP2021089487A JP2021089487A (ja) 2021-06-10
JP7415496B2 true JP7415496B2 (ja) 2024-01-17

Family

ID=76220345

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019218253A Active JP7415496B2 (ja) 2019-12-02 2019-12-02 画像処理装置、プログラム及び画像処理システム

Country Status (1)

Country Link
JP (1) JP7415496B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114882040B (zh) * 2022-07-12 2022-09-06 山东中治环境工程设备有限公司 一种基于模板匹配的污水处理检测方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000011172A (ja) 1998-06-17 2000-01-14 Olympus Optical Co Ltd 仮想環境生成方法および装置、並びに仮想環境生成プログラムを記録した記録媒体
JP2018081571A (ja) 2016-11-17 2018-05-24 株式会社Nttファシリティーズ 撮影位置特定システム、撮影位置特定方法、及びプログラム
JP2019190962A (ja) 2018-04-24 2019-10-31 大成建設株式会社 画像水平調整装置及びそのプログラム、並びに、図面生成システム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000011172A (ja) 1998-06-17 2000-01-14 Olympus Optical Co Ltd 仮想環境生成方法および装置、並びに仮想環境生成プログラムを記録した記録媒体
JP2018081571A (ja) 2016-11-17 2018-05-24 株式会社Nttファシリティーズ 撮影位置特定システム、撮影位置特定方法、及びプログラム
JP2019190962A (ja) 2018-04-24 2019-10-31 大成建設株式会社 画像水平調整装置及びそのプログラム、並びに、図面生成システム

Also Published As

Publication number Publication date
JP2021089487A (ja) 2021-06-10

Similar Documents

Publication Publication Date Title
WO2021036353A1 (zh) 基于拍照的3d建模系统及方法、自动3d建模装置及方法
US10645284B2 (en) Image processing device, image processing method, and recording medium storing program
Ventura et al. Wide-area scene mapping for mobile visual tracking
JP6572618B2 (ja) 情報処理装置、情報処理プログラム、情報処理方法、端末装置、設定方法、設定プログラム
WO2020191109A1 (en) System and method for virtual modeling of indoor scenes from imagery
US10290049B1 (en) System and method for multi-user augmented reality shopping
KR20130138247A (ko) 신속 3d 모델링
JP2010109783A (ja) 電子カメラ
CN110874818A (zh) 图像处理和虚拟空间构建方法、装置、系统和存储介质
JP7196421B2 (ja) 情報処理装置、情報処理システム、情報処理方法及びプログラム
KR102197615B1 (ko) 증강 현실 서비스를 제공하는 방법 및 증강 현실 서비스를 제공하기 위한 서버
JP2017212510A (ja) 画像管理装置、プログラム、画像管理システム及び情報端末
US11062422B2 (en) Image processing apparatus, image communication system, image processing method, and recording medium
US8509522B2 (en) Camera translation using rotation from device
KR101574636B1 (ko) 면형방식 디지털 항공카메라로 촬영한 시계열 항공사진을 입체시하여 좌표를 연동하고 변화지역을 판독하는 시스템
JP6720778B2 (ja) 画像管理システム、画像管理方法、及びプログラム
JP7415496B2 (ja) 画像処理装置、プログラム及び画像処理システム
KR102389762B1 (ko) 디지털 트윈 연동 증강현실 카메라를 통한 공간 형성 및 인식 시스템 및 그 방법
WO2022040868A1 (zh) 全景拍摄方法、电子设备及存储介质
JP6816614B2 (ja) 画像出力プログラム、画像出力方法および画像出力装置
JP7439398B2 (ja) 情報処理装置、プログラム及び情報処理システム
JP2020071854A (ja) 画像処理装置、画像処理方法及びプログラム
JP2008219390A (ja) 画像閲覧装置
US9852542B1 (en) Methods and apparatus related to georeferenced pose of 3D models
US20230005213A1 (en) Imaging apparatus, imaging method, and program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20221027

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230927

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20231003

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20231101

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20231218

R150 Certificate of patent or registration of utility model

Ref document number: 7415496

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150