(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-12-15
(45)【発行日】2022-12-23
(54)【発明の名称】拡張現実アプリケーションに関するシステム及び方法
(51)【国際特許分類】
G06T 19/00 20110101AFI20221216BHJP
G01B 11/00 20060101ALI20221216BHJP
G06V 20/20 20220101ALI20221216BHJP
【FI】
G06T19/00 600
G01B11/00 H
G06V20/20
(21)【出願番号】P 2019166898
(22)【出願日】2019-09-13
【審査請求日】2021-12-06
(32)【優先日】2019-06-11
(33)【優先権主張国・地域又は機関】CA
(73)【特許権者】
【識別番号】517084612
【氏名又は名称】スクウェア エニックス、リミテッド
【氏名又は名称原語表記】SQUARE ENIX,LTD.,
(74)【代理人】
【識別番号】100083138
【氏名又は名称】相田 伸二
(72)【発明者】
【氏名】アンソニー レーダン
(72)【発明者】
【氏名】レナウド ベダード
【審査官】岡本 俊威
(56)【参考文献】
【文献】米国特許出願公開第2019/0102601(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 19/00
G01B 11/00-11/30
G06V 20/20
(57)【特許請求の範囲】
【請求項1】
カメラを持った演算装置上で実行される拡張現実アプリケーションにおいて、実世界オブジェクトの位置を決定する方法であり、該方法は、以下のステップから構成される、
前記カメラを用いて画像情報を補足する、該画像情報は、実世界場面の画像を有する、
コンピュータビジョンモデルを使用して前記画像内の実世界オブジェクトを検知し、該実世界オブジェクトに関連する外接図形を生成する、
前記画像に関する点群を受け取る、
前記外接図形の幾何学形状及び画像情報を使用して、仮想視錐台を生成する、
前記視錐台内に位置する点のグループを検出する、及び、
前記点のグループの前記カメラからの代表距離を演算する。
【請求項2】
請求項1記載の方法において、前記画像情報は、前記カメラの位置、前記カメラの方向、アスペクト比、ビューポートのピクセル寸法、視野、前方クリッピング面及び後方クリッピング面の内、一つ以上を有する。
【請求項3】
請求項1又は2記載の方法において、前記外接図形は、矩形である。
【請求項4】
請求項1乃至3の内いずれか1項記載の方法において、前記演算装置は、スマートフォンである。
【請求項5】
請求項1乃至4の内いずれか1項記載の方法において、前記コンピュータビジョンモデルは、オブジェクトのタイプを識別するオブジェクト名前ラベルを決定することが出来る。
【請求項6】
請求項5記載の方法において、前記コンピュータビジョンモデルは、更に、前記オブジェクト名前ラベルに関連した、演算された確実性の程度に関する確実性係数を決定することが出来る。
【請求項7】
請求項6記載の方法において、該方法は更に、前記演算された確実性の程度が所定の閾値以下の場合には、オブジェクトが検知されていないものと決定するステップを有する。
【請求項8】
請求項1乃至7の内いずれか1項記載の方法において、該方法は更に、前記点のグループを検出するステップの前に、受け取った点群をプレフィルタリングするステップを有する。
【請求項9】
請求項8記載の方法において、前記プレフィルタリングのステップは、各点の前記カメラからの距離に基づいて行われる。
【請求項10】
請求項8又は9記載の方法において、前記画像に関する点群を受け取るステップは、更に、前記点群の各点についての信頼値を受け取るステップを有し、前記プレフィルタリングステップは、該点の信頼値に基づいて行われる。
【請求項11】
請求項2乃至10の内いずれか1項記載の方法において、前記画像情報は、スクリーン寸法、変換データ及び視野を含み、前記外接図形の幾何学形状及び前記画像情報を用いて前記仮想視錐台を生成するステップは、前記スクリーン寸法、変換データ及び視野を用いて、スクリーン空間からバーチャル空間内に前記外接図形の側面を投影するステップを有する。
【請求項12】
請求項1乃至11の内いずれか1項記載の方法において、前記点のグループの前記カメラからの代表距離を演算するステップは、更に、前記カメラからの前記点のグループの中央値の距離を決定するステップを含む。
【請求項13】
請求項1乃至11の内いずれか1項記載の方法において、前記点のグループの前記カメラからの代表距離を演算するステップは、更に,前記カメラからの前記点のグループの平均距離を決定するステップを含む。
【請求項14】
請求項1乃至13の内いずれか1項記載の方法において、該方法は更に、前記外接図形の中央点を前記演算された距離に投影し、前記オブジェクトの最終的な見積もり3D位置を決定するステップを含む。
【請求項15】
請求項1乃至14の内いずれか1項記載の方法において、該方法は、更に、前記オブジェクトの外接容積を見積もるステップを有する。
【請求項16】
請求項15記載の方法において、前記オブジェクトの外接容積を見積もるステップは、更に、前記外接図形を前記計算された距離に投影し、該投影された外接図形の範囲を包含する外接容積を生成するステップを有する。
【請求項17】
システム上で実行される拡張現実アプリケーションにおいて、実世界オブジェクトの位置を決定するシステムであって、該システムは、
画像情報を補足するカメラを有し、該画像情報は、実世界場面の画像を有しており、更に、
処理体を有し、該処理体は、
実世界オブジェクトに関連した外接図形を生成することのできるコンピュータビジョンモデルを使用して、前記画像内の実世界オブジェクトを検知し、
前記画像に関連する点群を受け取り、
前記外接図形の幾何学形状及び画像情報を用いて、仮想視錐台を生成し、
前記視錐台内に位置する点のグループを識別し、
前記点のグループの前記カメラからの代表距離を計算するように構成される。
【請求項18】
処理装置が実行可能な指令を格納した、処理装置が読み取り可能な記録媒体であって、該指令は、処理装置により実行されると、該処理装置とカメラを有する演算装置に、拡張現実アプリケーションを実行させることが出来、
前記拡張現実アプリケーションは、
前記カメラを用いて画像情報を補足し、該画像情報は、実世界場面の画像を有しており、
実世界オブジェクトに関連した外接図形を生成することのできるコンピュータビジョンモデルを使用して、前記画像内の実世界オブジェクトを検知し、
該画像に関連する点群を受け取り、
前記外接図形の幾何学形状及び前記画像情報を用いて、仮想視錐台を生成し、
前記視錐台内に位置する点のグループを識別し、
前記点のグループのカメラからの代表距離を計算するように構成される。
【請求項19】
請求項18記載の処理装置が読み取り可能な記録媒体において、前記画像情報は、前記カメラの位置、前記カメラの方向、アスペクト比、ビューポートのピクセル寸法、視野、前方クリッピング面及び後方クリッピング面の内、一つ以上を有する。
【請求項20】
請求項18又は19記載の処理装置が読み取り可能な記録媒体において、前記外接図形は、矩形である。
【請求項21】
請求項18乃至20の内いずれか1項記載の処理装置が読み取り可能な記録媒体において、前記演算装置は、スマートフォンである。
【請求項22】
請求項18至21の内いずれか1項記載の処理装置が読み取り可能な記録媒体において、前記コンピュータビジョンモデルは、更にオブジェクトのタイプを識別するオブジェクト名前ラベルを決定することが出来る。
【請求項23】
請求項22記載の処理装置が読み取り可能な記録媒体において、前記コンピュータビジョンモデルは、更に、前記オブジェクト名前ラベルに関連した、演算された確実性の程度に関する確実性係数を決定することが出来る。
【請求項24】
請求項23記載の処理装置が読み取り可能な記録媒体において、拡張現実アプリケーションは、更に、
前記演算された確実性の程度が所定の閾値以下の場合には、オブジェクトが検知されていないものと決定するように構成される。
【請求項25】
請求項23又は24記載の処理装置が読み取り可能な記録媒体において、拡張現実アプリケーションは、更に、前記点のグループを検出するステップの前に、受け取った点群をプレフィルタリングするスように構成される。
【請求項26】
請求項25記載の処理装置が読み取り可能な記録媒体において、前記プレフィルタリングのステップは、各点の前記カメラからの距離に基づいて行われる。
【請求項27】
請求項25又は26記載の処理装置が読み取り可能な記録媒体において、拡張現実アプリケーションは、更に、前記点群の各点の信頼値を受け取り、前記プレフィルタリングは、該受け取った点の信頼値に基づいて行われるように構成される。
【請求項28】
請求項19至27の内いずれか1項記載の処理装置が読み取り可能な記録媒体において、記画像情報は、スクリーン寸法、変換データ及び視野を含み、拡張現実アプリケーションは、更に、前記スクリーン寸法、変換データ及び視野を用いて、スクリーン空間からバーチャル空間内に前記外接図形の側面を投影することで、前記外接図形の幾何学形状及び前記画像情報を用いて仮想視錐台を生成するように構成される。
【請求項29】
請求項18至28の内いずれか1項記載の処理装置が読み取り可能な記録媒体において、拡張現実アプリケーションは、更に、前記カメラからの前記点のグループの中央値の距離を決定することで、前記点のグループの前記カメラからの代表距離を演算するように構成される。
【請求項30】
請求項18至28の内いずれか1項記載の処理装置が読み取り可能な記録媒体において、拡張現実アプリケーションは、更に、前記カメラからの前記点のグループの平均距離を決定することで、前記点のグループの前記カメラからの代表距離を演算するように構成される。
【請求項31】
請求項18至30の内いずれか1項記載の処理装置が読み取り可能な記録媒体において、拡張現実アプリケーションは、更に、前記外接図形の中央点を前記演算された距離に投影し、前記オブジェクトの最終的な見積もり3D位置を決定するように構成される。
【請求項32】
請求項18至31の内いずれか1項記載の処理装置が読み取り可能な記録媒体において、拡張現実アプリケーションは、更に、前記オブジェクトの外接容積を見積もるように構成される。
【請求項33】
請求項32記載の処理装置が読み取り可能な記録媒体において、拡張現実アプリケーションは、更に、前記外接図形を前記計算された距離に投影し、該投影された外接図形の範囲を包含する外接容積を生成することで、前記オブジェクトの外接容積を見積もるように構成される。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、拡張現実アプリケーションに関わり、特に拡張現実アプリケーション内で、実世界オブジェクトの位置及び/又は大きさを見積もるためのシステム及び方法に関する。
【背景技術】
【0002】
拡張現実(AR)は、ユーザの実世界風景上に、コンピュータが生成したバーチャル画像をオーバーレイすることを目的とした一連の技術として開発された。スマートフォンなどのモバイル機器におけるグローバルポジショニングシステム(GPS)チップ、デジタルコンパス及び加速度計の広範な使用により、モバイルARアプリケーションが成長して来ている。こうしたモバイル機器は、通常、パーソナルコンピュータよりも大幅に低い処理能力しか持たないにもかかわらず、その携帯性がモバイルARアプリケーションの普及の大きな要因となっている。
【0003】
モバイル技術が洗練されるに従って、多くのARアプリケーションは、バーチャル素子を実世界場面上に単にオーバーレイするにとどまらず、バーチャル及び実世界オブジェクトとの間のリアルタイム及び聴覚的な相互作用を導入することでその機能性を向上させてきた。従って、モバイルARアプリケーションではバーチャル及び実世界素子の継ぎ目のない混合の要求が増大している。
【0004】
こうした相互作用を実行することは、例えば、実世界オブジェクトの位置をバーチャル世界と実世界間の、相互作用のアンカーポイントとして使用する、例えば、オブジェクトの位置を、インテリジェントエージェント(IA)の地点情報として使用して、そこからの資源を検証し、及び/又は集める、ばかりか、例えば、実世界のカップにバーチャルなペンを位置させるなどの、バーチャルな視覚及び/又は聴覚素子を実世界オブジェクトの周囲に配置することが含まれる。
【0005】
既知の画像追跡システムは大きな欠点を有している。例えば、画像及びオブジェクト認識システムは、検知された画像及びオブジェクトをそれぞれプレスキャンされた画像又はオブジェクトで比較する必要があり、システムが前もってスキャンされた画像/オブジェクトを持っていない場合、当該画像/オブジェクトの認識が出来ない。更に、これらのシステムは、検知された画像/オブジェクトの画像を見るためには、画像/オブジェクトスキャンが近似した特性で(例えば、照明状態、大きさ)で行われる必要がある。
【0006】
バーチャル及び実世界素子の混合が増加していることと、殆どのモバイル機器の処理能力及び通信速度が限られていること及び前述の既知の方法における欠点とが結びついて、実世界オブジェクトの位置及び/又は大きさをARアプリケーション内で見積もるための改良された方法及びシステムの必要性が高まっている。
【発明の概要】
【0007】
本発明の第1の観点によれば、カメラを持った演算装置上で実行される拡張現実アプリケーションにおいて、実世界オブジェクトの位置を決定する方法を提供するものである。本方法は、カメラを用いて画像情報を補足し、該画像情報は、実世界の場面の画像を有しており、該画像内の実世界オブジェクトを、該実世界オブジェクトに関連した外接形状を生成することのできるコンピュータビジョンモデルを使用して、検知するステップを有する。本方法は、更に、該画像に関する点群を取得し、前記外接形状の幾何学形状及び画像情報を用いて、仮想視錐台を生成するステップを含む。本方法は、更に、前記視錐台内に位置する点のグループを識別し、前記点のグループのカメラからの代表距離を計算するステップを含む。
【0008】
本発明の他の観点によれば、システム上で実行される拡張現実アプリケーションにおいて、実世界オブジェクトの位置を決定するシステムを提供するものである。該システムは、画像情報を補足するカメラを有し、該画像情報は、実世界場面の画像を有している。該システムは、実世界オブジェクトに関連した外接図形を生成することのできるコンピュータビジョンモデルを使用して、前記画像内の実世界オブジェクトを検知する処理体を有する。該処理体は、更に、該画像に関連する点群を受け取り、前記外接図形の幾何学形状及び画像情報を用いて、仮想視錐台を生成することができる。前記処理体は、更に、前記視錐台内に位置する点のグループを識別し、前記点のグループのカメラからの代表距離を計算することができる。
【0009】
発明の他の観点によれば、処理装置が実行可能な指令を格納した、処理装置が読み取り可能な記録媒体を提供するものであり、該指令は、処理装置により実行されると、処理装置とカメラを有する演算装置に、拡張現実アプリケーションを実行させることが出来る。拡張現実アプリケーションは、カメラを用いて画像情報を補足し、該画像情報は、実世界場面の画像を有しており、実世界オブジェクトに関連した外接図形を生成することのできるコンピュータビジョンモデルを使用して、前記画像内の実世界オブジェクトを検知することが出来る。拡張現実アプリケーションは、更に、該画像に関連する点群を受け取り、前記外接図形の幾何学形状及び画像情報を用いて、仮想視錐台を生成することが出来る。拡張現実アプリケーションは、更に、前記視錐台内に位置する点のグループを識別し、前記点のグループのカメラからの代表距離を計算することができる。
【0010】
本発明の他の観点及び特徴は、添付した図面と共に本発明の実施例の記述を参照することで、当業者にとって明らかになる。
【図面の簡単な説明】
【0011】
【
図1】
図1は、実世界オブジェクトの位置をモバイルARアプリケーションで決定するステップの一例を示すフローチャート。
【
図2】
図2は、コンピュータビジョンの出力による実世界オブジェクトの多数のデータセットの一例を示す図。
【
図3】
図3は、
図2のオブジェクトから選択された一つのオブジェクトの2D外接矩形からの3D視錐台の構成を示す、3つの透視図の一例を示す図。
【
図4】
図4は、選択されたオブジェクトの捉えられたAR点群のフィルターされた点を示す3つの透視図の一例であり、フィルターが掛けられた点は、
図3の視錐台内に位置決めされている。
【
図5】
図5は、
図4のフィルターされた点の決定された代表深さ平面の、二つの透視図の一例を示す図。
【
図6】
図6は、オブジェクトの外接矩形の中心点を
図4の代表深さ平面上に投影して決定された選択されたオブジェクトの最終的に見積もられた3D位置の、二つの透視図の一例を示す図。
【
図7】
図7は、
図6の投影された外接矩形の範囲を含む半径を持った外接球を生成して、外接容積の見積もりをする3つの透視図の一例を示す図。
【
図8】
図8は、オブジェクトが以前に検知されたものでるか否かを決定するステップを示すフローチャートの一例を示す図。
【
図9】
図9は、
図8の方法を例示的なオブジェクトに適用した3つの透視図の一例を示す図。
【0012】
添付した図は、例示的で非限定的な実施例を示すものであり、限定的なものではない。
【発明を実施するための形態】
【0013】
図1は、ARアプリケーションで実世界オブジェクトの位置を見積もる方法100を示す、1実施例である。
【0014】
図10は、
図1の方法を実行するのに適したシステムの一例を示す、概略ブロック図である。システムは、オブジェクト検知モジュール(ODM)1001、コンピュータビジョンプラグイン(CVP)1003及びARアプリケーションプログラムインターフェース(AR API)1002を含むARアプリケーション1000を有する。ある実施例では、ODM1001は、
図1の方法を、CVP及びAR APIと共に実行するソフトウェア処理ブロックである。
【0015】
CVPは、コンピュータビジョンマシンラーニングのような、ODMにコンピュータビジョン機能を加えるどのようなソフトウェア要素であってもよく、AR APIはポイントクラウド(点群)データなどのAR機能をODMに与える、又はアクセスし得る、どのようなソフトウェア要素であってもよい。コンピュータビジョン機能の例としては、TensorFlowTM Lite on AndroidTMオペレーティングシステム及びCoreMLTM on iOSTMオペレーティングシステムにより提供されるものを含む。拡張現実機能の例としては、ARCoreTM on AndroidTMオペレーティングシステム及びARKitTM on iOSTMオペレーティングシステムにより提供されるものを含む。
【0016】
ある実施例では、ARアプリケーションは、カメラが実装されたモバイル機器で実行される。ARアプリケーション1000が連続的にイニシャライズされた後、ARセッションがステップ101を実行し、ODM1001は、装置カメラ映像(即ち、ビデオフレーム)から画像を補足する。次に、ステップ102で、AR APIが、ARセッションが追跡している(即ち、ポイントクラウド(点群)及び他のAR関連のデータが利用可能)ことを報告すると、ODM1001はCVPに、ステップ103で前もって備えられているコンピュータビジョンモデル(CVM)を使用して最近に補足された画像を処理する要求を送る。
【0017】
ある実施例では、これは補足された画像内で、CVMが識別したオブジェクトを持つことで達成される。CVMで補足された画像を処理することで、検知されたオブジェクト201
Xのリストが得られるが、それらはそれぞれ関連するデータのセットを持っている。
図2に示すように、ある実施例では、各オブジェクトのデータのセットは、名前ラベル203
X(例えば、マウス203
1,カップ203
2,ボトル203
3)、確実性係数204
X(例えば、0~100)及び2D外接矩形202
X(例えば、前記モデルに供給されたフレームに関連するピクセル座標内)を含む。名前ラベル203
Xは、例えば、形、色、質感及び相対的な大きさなどに基づいて、識別されたオブジェクトのタイプについて、該モデルが決定したものを示す。確実性係数204
Xは、該モデルが決定したオブジェクトのタイプに関する確実性のレベルを表す。2D外接矩形202
X(または、他の適当な外接図形)は、各オブジェクトの物理的な境界のあらましを示す。ある実施例では、各オブジェクトについてのデータのセットには、更なるデータを含めることが出来る。更に他の実施例では、オブジェクト201
Xを外接するために、外接円又は外接三角形などの他の図形を使用することができる。更に他の実施例では、カメラの視点から、各オブジェクト201
Xの輪郭をなぞる形で外接図形を生成することが出来る(オブジェクトのセグメンテーションとしても既知である)。
【0018】
ある実施例では、ステップ104では、ODM1001は、カメラ位置、カメラの方向、アスペクト比、ビューポートのピクセル寸法(幅/高さ)、視野、前方クリップ面及び後方クリップ面を含むカメラデータスナップショットを保存する。ステップ104では、以下に述べるステップを実行するのに有益な更なる情報も保存することが出来る。
【0019】
ステップ105では、AR点群をAR API1002から受け取るが、このAR点群スナップショットは、ステップ106でODM1001により保存される。ステップ106で保存されたAR点群スナップショットは、ステップ104で保存されたカメラスナップショット及びステップ101の装置カメラ映像から捕られた画像と一致するものである。AR点群は、実世界オブジェクトの表面の特徴に基づいてAR API1002により連続的に生成された、3D空間内のデータポイントのセットである。一旦生成されると、AR点群は、実世界空間内にバーチャル特性をアンカーするためのリファレンスを提供することが出来る。
【0020】
ある実施例では、方法は、点群のプレフィルターリングステップ(ステップ107)を有する。特に、ある実施例では、AR API1002により供給される点群の信頼値は、特定の閾値を下回る点を除外するために使用することが出来る。例えば、ある点の信頼値が60%以下の場合、当該点の見積もり深さは(Z値)、
図1の方法の目的には、正確性が不十分である。
【0021】
ある実施例では、プレフィルタリングは、カメラから閾距離(例えば、5m)以上の点は、点が遠くなればなるほど不正確なものとなる傾向があるので、除外するように構成される。距離ベースのプレフィルタリングは、近接場及び/又は室内での適用に関しては、特に有効である(即ち、オブジェクトが近接している場合)。
【0022】
ある実施例では、ODM1001は、検知されたものと考えられるオブジェクトに関して、プレフィルタリング後に残す点群の点の最小数を要求する。点群のプレフィルタリングは、
図1の方法の正確性を向上させることが出来る。ステップ108では、ODM1001は、CVP1003が、CVMの結果を呼び戻すのを待つ。上記したように、CVMの結果は、検知されたオブジェクトのリストを含み、それぞれのオブジェクトは関連するデータを持っている。
【0023】
CVP1003による特定された各オブジェクトについて、ステップ109~114の一つ以上が実行される。ある実施例では、決定は、ステップ109でなされ、それは、あるオブジェクト201Xについての確実性係数204Xが所定の閾値(例えば、65%)以上であるか否かにより行われる。あるオブジェクト201Xの確実性係数204Xが所定の閾値を下回った場合、ステップ111で当該オブジェクトは無視され、該オブジェクトに関する本方法は、終了する。しかしながら、ある実施例では、ステップ109で、あるオブジェクトの確実性係数204Xが所定の閾値以下ではない場合、2D外接矩形202Xが、以下に述べるように、ARアプリケーションのビューポート内であるか否かを決定する。
【0024】
ARアプリケーションで使用される視野(即ち、ARアプリケーションカメラのビューポート)は、モバイル機器のカメラの最大視野よりも小さい。その結果、ARアプリケーションのビデオフィードは、モバイル機器のカメラのビデオフィードよりも少ない情報量となる。そうしたシナリオのもと、ARアプリケーションは、モバイル機器が供給可能なフルサイズのビデオフィードを補足し、CVMへの入力として使用している。結果が返されたとき、何らかの検知されたオブジェクトがARアプリケーションのピューポート内にフィットするか否かを決定することがなされる。ある実施例では、該決定は、あるオブジェクトがカメラのビューポートのどれだけ外に位置しうるかの許容度に関してなされる。こうして、部分的なオブジェクトの検知(例えば、CVMがキーボードを、その番号パッドのみが視野にあるときに、検知する)を避けるために、本方法は、ステップ112に入る前に、2D外接矩形202XがARアプリケーションカメラのビューポート内にあることを保証するようにすることも出来る。もし、2D外接矩形202XがARアプリケーションカメラのビューポート内に無い場合には、該オブジェクトはステップ111で無視され、本方法はそのオブジェクトについては終了する。
【0025】
従って、与えられたオブジェクト201Xに起因する確実性係数204Xが所定の閾値を下回ることなく、該オブジェクト201Xの2D外接矩形202XがARアプリケーションカメラのビューポート内にある時、方法は、ステップ112に進む。
【0026】
ステップ112において、
図3に示すように、四つの面(例えば、上、下、右及び左)の視錐台300が、与えられたオブジェクトの外接矩形202
Xの四つの側面を、スクリーン寸法、変換データ及びカメラフレームデータのメモリスナップショットからのビューデータのフィールドを用いて、スクリーン空間からバーチャル空間に投影することで、形成される。なお、異なる外接形状(例えば、三角又は円)の場合、対応する幾何学形状を持った視錐台となる。ある実施例では、このステップは、全ての点群の点のスクリーン空間位置を演算して、これらが外接矩形内にあるか否かを決定することが出来る。これは演算的に負荷が高いので、いくつかの点は演算に使用しないようにすることも出来る。
【0027】
図3に、2D外接矩形202
Xからの3D視錐台300の形成を示す。ここで、外側の線は、カメラフレーム200のカメラ視錐台301を示し、内側の線300は外接矩形202
Xから形成された視錐台を示す。特に、四つの面(上、下、右、左)からなるバーチャル視錐台は、スクリーン空間から2D外接矩形202
Xの四辺を、スクリーン寸法、変換、及び上記したカメラデータスナップショットからの視野を用いて、世界空間に投影することで形成される。
図3の左の図に、カメラフレーム200とオブジェクト201
Xの外接矩形202
Xを示す。
図3の他の二つの図は、それぞれ側面図及び平面図である。図及び上記した記述からも明らかなように、ここで規定する単語「視錐台」とは、視野の視錐台の部分、あるいは視覚のピラミッドを表しており、遠方又は近くの平面で切った錐台が要求されるものではない。更に、近くの平面で切った錐台及び/又は遠くの平面で切った錐台の実施例では、そうした切頭平面は任意の適当な位置に位置させることができる。
【0028】
図4に示すように、ステップ113で、ステップ106で補足されたAP点群はステップ112で生成された視錐台300によってフィルターされ、視錐台300内にある点のセットが得られる。言い換えれば、視錐台300の外にある全ての点は、フィルターアウトされる。これにより、カメラの視点から初期の外接矩形202
X内に含まれた全ての点を効率的に得ることが出来る。
図4には、四角で図形的に示された点が視錐台300内に位置し、円で図形的に示された点が視錐台300外に位置している。
【0029】
ある実施例では、ステップ114で、フィルターされた点の数(即ち、最初の又はプレフィルタされた点群がステップ113でフィルターされた後に、残った点の数)が前述の最小点数以上であるか否かの決定も行うことが出来る。もし、フィルターされた点の数が前述の最小点数以上無い場合には、当該オブジェクトはステップ111で無視され、該オブジェクトに関する本方法は、終了する。
【0030】
ある実施例では、ステップ115から117で、オブジェクトの位置がフィルターされたAR点群のデータを用いて演算される。最初に、ステップ115で、ODM1001がカメラに関して、各フィルターされた点(例えば、視錐台300内の各残留点)の深さを演算する。そして、
図5に示すように、ステップ116で、オブジェクトに関して代表深さ500を計算し、又は選択することができる。代表深さを決定する例としては、限定的なものでは無いが、フィルターされた点の幾何学的な中央値を決定し、フィルターされた点の重心を決定し、カメラに関してフィルターされた点の平均深さを決定し、そしてカメラに関してフィルターされた点の中央値の深さを決定することを含む。
【0031】
フィルターされた点の幾何学的な中央値を決定することに関連した演算負荷を軽減するために、そしてフィルターされた点の重心を決定すること又はフィルターされた点の平均深さを計算することに関連して、遠い点の影響をさけるために、カメラに関してフィルターされた点の中央値の深さを決定するようなより簡単な方法を使用することが、有利である。例えば、
図5に、カメラに関してフィルターされた点の中央値の深さを決定することによる、代表深さ平面500の計算を示す。
【0032】
最後に、
図6に示すように、外接矩形202
Xの中央点が選択された深さ平面500に投影され、オブジェクト201
Xの最終的な見積もり3D位置を得る。なお、AR APIは静的な実又はバーチャル位置と方向を示すために使用されるARアンカーの概念も含んでいる。この概念は、AR世界が発展しても、点が移動しないようにする必要がある。ある実施例では、オブジェクト201
Xの決定された位置600はオブジェクト201
Xに関連したARアンカーに変換され、その位置は静的に保持される。
【0033】
ある実施例では、一旦、オブジェクトの位置が上記した方法で見積もられると、該方法は、更にオブジェクト201
Xの大きさを(又は、外接容積)を見積もることが出来る。ある実施例では、
図7に示すように、外接容積は決定された位置600に外接矩形202
Xを投影し、投影された外接矩形700の範囲を包含する半径を持った外接球701を生成することで見積もることができる。
【0034】
好適な実施例では、外接容積は、決定された位置600に外接矩形202Xを投影し、最も大きな外接寸法(即ち、幅、高さ、どちらか大きな値)を採用した半径を持った外接球701を生成することで、見積もられる。ある例では、点は更に外接球によりフィルターされ、極端に端にあるものを、外接箱の正確性を高めるために除外する。外接箱は、決定された位置に投影された視錐台の四つの隅点を含むと共に、他のフィルターされた点も含む。
【0035】
ある実施例では、
図8及び
図9に示すように、本方法は、前に検知されたオブジェクトを処理する方向に進む。前に検知されたオブジェクトの再検知(即ち、すでに検知されたオブジェクトを新しいオブジェクトとして検知すること)を避ける処理、及び位置及び境界に関してオブジェクトモデルの正確性を向上させる処理を行う。従って、
図8に示すように、本方法は、前に検知したオブジェクトを処理するステップに入り、この処理は、新たに検知されたオブジェクトが前に検知したオブジェクトであるか否かを決定し、任意的に、前に生成したオブジェクトモデルを改良すべきかどうかを決定する見地で行う。
【0036】
図8に示すように、
図1の方法は、ステップ801で実行されうる。次に、ステップ802で、ある外接球が、前に述べたように、投影された外接矩形700の寸法の、最も大きな値を用いた半径を有する外接球に関したものであるかを決定する。ステップ803では、該外接球が他の前に検知された外接球と重なっているか否かについて決定する。もし外接球が他の前に検知された外接球と重なっている場合には、該オブジェクトは前に検知されたものと判明し、本方法は、以下に述べるステップ805に入る。
【0037】
しかしながら、外接球が他の前に検知された外接球と重ならないものと決定された場合には、ステップ804で、前に検知されたオブジェクトの外接容積が、ステップ801の間に形成された視錐台に関連するオブジェクトについてのものであるか否かを決定する。ある実施例では、あるラベル203Xを持った前に検知されたオブジェクト201Xが、もし該オブジェクトが視錐台内で交差したり、含まれていたりして、ステップ801間で構成された視錐台と関連している場合、該視錐台に関連するオブジェクトは同じラベル203Xを持つ(即ち、前に検知されたオブジェクトと本方法で提供されたコンピュータビジョンモデルは同じラベル203Xを持つ)。もし、これらの条件が合えば、オブジェクトは前に検知されたものとされ、本方法は、以下に述べるステップ805へ入る。しかしながら、前に検知されたオブジェクトがステップ801間で構築された視錐台に関連していないものと決定された場合には、該オブジェクトは、前に検知されたものとはされない。ある実施例では、ステップ804は、ステップ803の前に実行することが出来る。
【0038】
図9に、いくつかの前に検知されたオブジェクト903,904,905,906及び907及び二つの視錐台901及び902が例として示されている。前に検知されたオブジェクト903及び906は視錐台901又は902のいずれとも交差したりまた、含まれていない。前に検知されたオブジェクト904及び905は視錐台901に完全に含まれており、前に検知されたオブジェクト905及び907は視錐台902と交差している。従って、もし前に検知されたオブジェクト904が、視錐台901と関連したコンピュータビジョンモデルとして、同じラベル203
Xを持っていると、 前に検知されたオブジェクト904は視錐台901と関連していると考えられる。同様に、もし前に検知されたオブジェクト907が、視錐台902と関連したコンピュータビジョンモデルとして、同じラベル203
Xを持っていると、 前に検知されたオブジェクト907は視錐台902と関連していると考えられる。もし前に検知されたオブジェクト905が、視錐台901と関連したコンピュータビジョンモデルとして、同じラベル203
Xを持っていると、 前に検知されたオブジェクト905は視錐台901と関連していると考えられる。しかしながら、もし前に検知されたオブジェクト905が、視錐台902と関連したコンピュータビジョンモデルとして、同じラベル203
Xを持っていると、 前に検知されたオブジェクト905は視錐台902と関連していると考えられる。
【0039】
もし、ステップ803又はステップ804で、オブジェクトが前に検知されたものと判明した場合、新たにフィルターされたデータ(点及び外接矩形)を使用して、位置を調整し、また該オブジェクトの外接容積を広げ/小さくする調整をすることができる。従って、ある実施例では、ステップ805を持った
図8の方法は、オブジェクトモデルを改良するためになされる。ある実施例では、ステップ805は、新たに検知された点を含み、及び/又は異なる角度から見た外接矩形の外側にある前に検知された点を除外する。ある実施例では、前に検知された点の除外は、何らかのAR APIが供給する点のIDを用いて行うことができる。
【0040】
記述及び図面は、単に本発明の原則を示すものである。当業者であれば、ここで明示又は記述されなかったが、本発明の原則を実現する多様な変形を工夫することが出来るが、それらは、添付したクレームに規定されるように、本発明の範囲内である。
【0041】
更に、ここで述べた全ての例は、読者に本発明の原則を理解してもらうためのものであり、こうした特別な例及び条件に限定して解釈すべきものではない。例えば、ここでの開示は、多様な机の上のオブジェクトの分析に関して、本発明の実施例を述べている。しかしながら、当業者であれば、本発明は、他の環境にある他のタイプ及び形態のオブジェクトを検出するために使用することが出来ることは自明である。
【0042】
更に、本発明の特定の例ばかりか、原則、観点、実施例への言及はその均等物をも包含するものである。例えば、「モジュール」、「プラグイン」、又は「アプリケーションプログラムインタフェース」などとラベル付けされた機能ブロックを含む、図面に示された多様な素子の機能は、適当なソフトウェアに関連するソフトウェアを実行することの出来るハードウェアばかりか、専用のハードウェアを使用することで実現することができる。
【0043】
更に、前述の記述は、モバイル装置に関して述べたが、当業者にとって、前述の方法のステップは、ビデオカメラ、デジタルカメラ、赤外線カメラ、デスクトップコンピュータ、ラップトップコンピュータ、タブレット、スマートフォン、スマートウオッチ又は他のウエアラブル端末など、多様な演算装置により達成することができる。ここで、ある実施例はプログラム格納装置、即ち、デジタルデータ格納媒体を含むものであるが、それらは機械又はコンピュータ可読なものであり、機械が実行可能な又はコンピュータが実行可能な指示のプログラムをエンコードするものであり、それら指示は上記した方法の全て又は一部を達成するものである。実施例は、上記した方法のステップを達成するためにプログラムされたコンピュータをも含むものである。
【0044】
ここで述べた実施例の何らかの特徴は、実装時にここで述べた他の実施例の特徴と組み合わせることができる。ある実施例の運転に必要な追加的な素子は記述されていないか、図示されていない。これは、それらが当業者にとって自明の範囲のものだからである。更に、ある実施例は、ここで特に開示されていない何らかの素子を備える必要も無く、またそれらの素子を欠いても、及び/又はそれらの素子が無くても機能する。