IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ ライン プラス コーポレーションの特許一覧

特許7295132ニューラルネットワークを利用して状況を認知する拡張現実提供装置、提供方法、およびコンピュータプログラム
<>
  • 特許-ニューラルネットワークを利用して状況を認知する拡張現実提供装置、提供方法、およびコンピュータプログラム 図1
  • 特許-ニューラルネットワークを利用して状況を認知する拡張現実提供装置、提供方法、およびコンピュータプログラム 図2
  • 特許-ニューラルネットワークを利用して状況を認知する拡張現実提供装置、提供方法、およびコンピュータプログラム 図3
  • 特許-ニューラルネットワークを利用して状況を認知する拡張現実提供装置、提供方法、およびコンピュータプログラム 図4
  • 特許-ニューラルネットワークを利用して状況を認知する拡張現実提供装置、提供方法、およびコンピュータプログラム 図5
  • 特許-ニューラルネットワークを利用して状況を認知する拡張現実提供装置、提供方法、およびコンピュータプログラム 図6
  • 特許-ニューラルネットワークを利用して状況を認知する拡張現実提供装置、提供方法、およびコンピュータプログラム 図7
  • 特許-ニューラルネットワークを利用して状況を認知する拡張現実提供装置、提供方法、およびコンピュータプログラム 図8
  • 特許-ニューラルネットワークを利用して状況を認知する拡張現実提供装置、提供方法、およびコンピュータプログラム 図9
  • 特許-ニューラルネットワークを利用して状況を認知する拡張現実提供装置、提供方法、およびコンピュータプログラム 図10a
  • 特許-ニューラルネットワークを利用して状況を認知する拡張現実提供装置、提供方法、およびコンピュータプログラム 図10b
  • 特許-ニューラルネットワークを利用して状況を認知する拡張現実提供装置、提供方法、およびコンピュータプログラム 図10c
  • 特許-ニューラルネットワークを利用して状況を認知する拡張現実提供装置、提供方法、およびコンピュータプログラム 図10d
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-06-12
(45)【発行日】2023-06-20
(54)【発明の名称】ニューラルネットワークを利用して状況を認知する拡張現実提供装置、提供方法、およびコンピュータプログラム
(51)【国際特許分類】
   G06T 7/00 20170101AFI20230613BHJP
   G06T 7/254 20170101ALI20230613BHJP
   G06T 19/00 20110101ALI20230613BHJP
   G06F 3/0346 20130101ALI20230613BHJP
   G06F 3/04815 20220101ALI20230613BHJP
   G06F 3/16 20060101ALI20230613BHJP
【FI】
G06T7/00 350C
G06T7/254 A
G06T19/00 600
G06F3/0346 421
G06F3/04815
G06F3/16 650
G06F3/16 690
【請求項の数】 14
(21)【出願番号】P 2020548651
(86)(22)【出願日】2018-03-12
(65)【公表番号】
(43)【公表日】2021-08-19
(86)【国際出願番号】 KR2018002868
(87)【国際公開番号】W WO2019177181
(87)【国際公開日】2019-09-19
【審査請求日】2021-03-05
【前置審査】
(73)【特許権者】
【識別番号】516014409
【氏名又は名称】ライン プラス コーポレーション
【氏名又は名称原語表記】LINE Plus Corporation
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】チェー,サンジョ
(72)【発明者】
【氏名】パク,ヒチョル
(72)【発明者】
【氏名】ノ,ヒョンジュン
【審査官】三沢 岳志
(56)【参考文献】
【文献】特表2015-526168(JP,A)
【文献】米国特許出願公開第2016/0048723(US,A1)
【文献】特表2012-504830(JP,A)
【文献】特開2017-156886(JP,A)
【文献】特開2008-022442(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00
G06T 7/254
G06T 19/00
G06F 3/0346
G06F 3/04815
G06F 3/16
(57)【特許請求の範囲】
【請求項1】
ニューラルネットワークを利用して状況を認知する拡張現実提供方法をプロセッサに実行させるためのコンピュータプログラムであって、前記拡張現実提供方法は、
プロセッサが映像を取得する段階と、
前記プロセッサが、前記映像を分析し、前記映像に含まれる平面に仮想オブジェクトを配置するように前記映像をレンダリングする段階と、
前記映像に含まれる現在フレームを以前フレームと比較することにより、前記現在フレームの場面転換の有無を決定することを含む判断基準に基づいて、前記仮想オブジェクトが配置された前記映像に対する状況認知処理の可否を決定する段階と、
前記状況認知処理の可否が真と決定された場合、ニューラルネットワークを利用して前記映像および/またはセンサ部から受信されたセンシング値を分析して1つ以上の状況情報を算出する段階と、
前記状況情報を適用した追加コンテンツを生成し、前記追加コンテンツを提供する段階と、
を含み、
前記映像に対する状況認知処理の可否を決定する段階において、前記映像の出力フレームレートが平均フレームレート未満であることを感知すると、前記状況認知処理の可否を偽と決定
前記追加コンテンツを提供する段階は、前記状況情報に基づき、前記映像に含まれる物の名称を、テキスト、イメージ、音声のいずれかの形式で提供するか、または、前記映像に含まれる物の名称を含む会話コンテンツを生成し、前記仮想オブジェクトであるキャラクターがユーザに対して前記会話コンテンツを提供する、
コンピュータプログラム。
【請求項2】
前記映像に対する状況認知処理の可否を決定する段階において、前記判断基準は、
前記プロセッサの処理能力が閾値を超過するかを決定することをさらに含む、
請求項1に記載のコンピュータプログラム。
【請求項3】
前記場面転換の有無を決定することは、
前記現在フレームのピクセルをカラー値によって分布させた分布図を算出し、前記分布図を前記以前フレームの分布図と比較することにより、場面転換の有無を決定する、
請求項1または2に記載のコンピュータプログラム。
【請求項4】
前記場面転換の有無を決定することは、
前記現在フレームから検出したエッジ情報を利用し、前記エッジ情報を総合して物体の色および形態を抽出し、前記物体の色および形態を利用して場面転換の有無を決定する、
請求項1乃至3のいずれか一項に記載のコンピュータプログラム。
【請求項5】
前記状況情報を算出する段階は、
入力されたユーザ入力に対応して算出する状況情報の種類を、前記ユーザ入力によって限定して取得する、
請求項1乃至4のいずれか一項に記載のコンピュータプログラム。
【請求項6】
前記映像は、カメラによって撮影されるか、他のアプリケーションによって生成されて出力される画像データである、
請求項1乃至5のいずれか一項に記載のコンピュータプログラム。
【請求項7】
前記1つ以上の状況情報を算出する段階は、
各状況情報のマッチング確率をさらに含む確率マップの形態で算出し、
各状況情報のマッチング確率に基づいて前記1つ以上の状況情報を順位化して伝達する、
請求項1乃至のいずれか一項に記載のコンピュータプログラム。
【請求項8】
1つ以上のプロセッサによって実行可能な命令を含むメモリ、および
前記メモリに結合されて前記命令を実行可能な1つ以上のプロセッサ、を含む映像処理装置であって、
前記メモリは、
映像を取得し、前記映像を分析し、前記映像に含まれる平面に仮想オブジェクトを配置させるように前記映像をレンダリングするレンダリングモジュールと、
前記映像に含まれる現在フレームを以前フレームと比較することにより、前記現在フレームの場面転換の有無を決定することを含む判断基準に基づいて、前記仮想オブジェクトが配置された前記映像に対する状況認知処理の可否を決定する判断モジュールと、
前記状況認知処理の可否が真と決定された場合、ニューラルネットワークを利用して前記映像および/またはセンサ部から受信されたセンシング値を分析して1つ以上の状況情報を算出する状況認知モジュールと、
前記状況情報を適用した追加コンテンツを生成し、前記追加コンテンツを提供する編集モジュールと、を含み、
前記判断モジュールは、前記映像の出力フレームレートが平均フレームレート未満であることを感知すると、前記状況認知処理の可否を偽と決定
前記追加コンテンツを提供することは、前記状況情報に基づき、前記映像に含まれる物の名称を、テキスト、イメージ、音声のいずれかの形式で提供するか、または、前記映像に含まれる物の名称を含む会話コンテンツを生成し、前記仮想オブジェクトであるキャラクターがユーザに対して前記会話コンテンツを提供する、
ニューラルネットワークを利用して状況を認知する拡張現実提供装置。
【請求項9】
前記判断基準は、前記プロセッサの処理能力が閾値を超過するかを決定することをさらに含む、
請求項に記載のニューラルネットワークを利用して状況を認知する拡張現実提供装置。
【請求項10】
前記場面転換の有無を決定することは、
前記現在フレームのピクセルをカラー値によって分布させた分布図を算出し、前記分布図を前記以前フレームの分布図と比較することにより、場面転換の有無を決定する、
請求項またはに記載のニューラルネットワークを利用して状況を認知する拡張現実提供装置。
【請求項11】
前記場面転換の有無を決定することは、
前記現在フレームから検出したエッジ情報を利用し、前記エッジ情報を総合して物体の色および形態を抽出し、前記物体の色および形態を利用して場面転換の有無を決定する、
請求項乃至10のいずれか一項に記載のニューラルネットワークを利用して状況を認知する拡張現実提供装置。
【請求項12】
前記状況認知モジュールは、入力されたユーザ入力に対応して算出する状況情報の種類を、前記ユーザ入力によって限定して取得する、
請求項乃至11のいずれか一項に記載のニューラルネットワークを利用して状況を認知する拡張現実提供装置。
【請求項13】
前記映像は、
カメラによって撮影されるか、他のアプリケーションによって生成されて出力される画像データである、
請求項乃至12のいずれか一項に記載のニューラルネットワークを利用して状況を認知する拡張現実提供装置。
【請求項14】
前記状況認知モジュールは、
各状況情報のマッチング確率をさらに含む確率マップの形態で算出し、各状況情報のマッチング確率に基づいて前記1つ以上の状況情報を順位化して伝達する、
請求項乃至13のいずれか一項に記載のニューラルネットワークを利用して状況を認知する拡張現実提供装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ニューラルネットワークを利用して状況を認知する拡張現実提供装置、提供方法、および方法を実行するためのコンピュータプログラムに関する。
【背景技術】
【0002】
拡張現実(Augmented Reality:AR)とは、仮想現実(Virtual Reality:VR)の一分野であって、実際の環境に仮想の事物や情報を合成させ、本来の環境に存在するかのように見せるコンピュータグラフィック技法である。付加情報をもつ仮想世界をリアルタイムで現実世界に合わせて1つの映像として示すことから、複合現実(Mixed Reality:MR)とも呼ばれる。
【0003】
拡張現実を実現するために撮影映像の各フレームに仮想オブジェクトを追加する過程は、映像のフレームごとに実施されなければならないため、撮影映像の解像度やフレームレートなどに応じて多くのプロセッサの処理能力が必要となることがある。プロセッサの処理能力が制限的であるモバイルコンピュータ装置の場合には、仮想オブジェクトのレンダリング過程とニューラルネットワークを利用して状況情報を算出する過程を同時に実行するのが困難であるという問題がある。
【発明の概要】
【発明が解決しようとする課題】
【0004】
本発明の実施形態は、制限的な性能のコンピューティングデバイスにおいて、イメージセンサによって取得した映像に拡張現実を提供しながら、ニューラルネットワークを利用してリアルタイムで映像を分析し、分析結果を反映した映像を提供することができる。
【課題を解決するための手段】
【0005】
本発明の実施形態に係るニューラルネットワークを利用して状況を認知する拡張現実提供方法は、プロセッサが映像を取得する段階、前記プロセッサが、前記映像を分析し、前記映像に含まれる平面に仮想オブジェクトを配置するように前記映像をレンダリングする段階、前記映像に含まれる現在フレームを以前フレームと比較することにより、前記現在フレームの場面転換の有無を決定することを含む判断基準に基づいて、前記映像に対する状況認知処理の可否を決定する段階、前記状況認知処理の可否が真(true)と決定された場合、ニューラルネットワークを利用して前記映像および/またはセンサ部から受信されたセンシング値を分析して1つ以上の状況情報を算出する段階、および前記状況情報を適用した追加コンテンツを生成し、前記追加コンテンツを提供する段階を含んでよい。
【0006】
前記映像に対する状況認知処理の可否を決定する段階において、前記判断基準は、前記プロセッサの処理能力が閾値を超過するかを決定することをさらに含んでよい。
【0007】
前記映像に対する状況認知処理の可否を決定する段階において、前記判断基準は、前記映像の出力フレームレートが平均フレームレート未満であるかを決定することをさらに含んでよい。
【0008】
前記場面転換の有無を決定することは、前記現在フレームのピクセルをカラー値によって分布させた分布図を算出し、前記分布図を前記以前フレームの分布図と比較することにより、場面転換の有無を決定してよい。
【0009】
前記場面転換の有無を決定することは、前記現在フレームから検出したエッジ情報を利用し、前記エッジ情報を総合して物体の色および形態を抽出し、前記物体の色および形態を利用して場面転換の有無を決定してよい。
【0010】
前記状況情報を算出する段階は、入力されたユーザ入力に対応して算出する状況情報の種類を、前記ユーザ入力によって限定して取得してよい。
【0011】
前記映像は、カメラによって撮影されるか、他のアプリケーションによって生成されて出力される画像データであってよい。
【0012】
前記追加コンテンツを提供する段階は、前記状況情報を含むコンテンツを提供するか、前記状況情報を活用した会話形式の音声発話コンテンツを生成し、前記仮想オブジェクトを通じて提供してよい。
【0013】
前記1つ以上の状況情報を算出する段階は、各状況情報のマッチング確率をさらに含む確率マップの形態で算出し、各状況情報のマッチング確率に基づいて前記1つ以上の状況情報を順位化して伝達してよい。
【0014】
本発明の実施形態に係る1つ以上のプロセッサによって実行可能な命令を含むメモリ、および前記メモリに結合されて命令の実行が可能な1つ以上のプロセッサ、を含む映像処理装置であって、前記メモリは、映像を取得し、前記映像を分析し、前記映像に含まれる平面に仮想オブジェクトを配置するように前記映像をレンダリングするレンダリングモジュール、前記映像に含まれる現在フレームを以前フレームと比較することにより、前記現在フレームの場面転換の有無を決定することを含む判断基準に基づいて前記映像に対する状況認知処理の可否を決定する判断モジュール、前記状況認知処理の可否が真(true)と決定された場合、ニューラルネットワークを利用して前記映像および/またはセンサ部から受信されたセンシング値を分析して1つ以上の状況情報を算出する状況認知モジュール、および前記状況情報を適用した追加コンテンツを生成し、前記追加コンテンツを提供する編集モジュールを含んでよい。
【0015】
前記判断基準は、前記プロセッサの処理能力が閾値を超過するかを決定することをさらに含んでよい。
【0016】
前記判断基準は、前記映像の出力フレームレートが平均フレームレート未満であるかを決定することをさらに含んでよい。
【0017】
前記場面転換の有無を決定することは、前記現在フレームのピクセルをカラー値によって分布させた分布図を算出し、前記分布図を前記以前フレームの分布図と比較することにより、場面転換の有無を決定してよい。
【0018】
前記場面転換の有無を決定することは、前記現在フレームから検出したエッジ情報を利用し、前記エッジ情報を総合して物体の色および形態を抽出し、前記物体の色および形態を利用して場面転換の有無を決定してよい。
【0019】
前記状況認知モジュールは、入力されたユーザ入力に対応して算出する状況情報の種類を、前記ユーザ入力によって限定して取得してよい。
【0020】
前記映像は、カメラによって撮影されるか、他のアプリケーションによって生成されて出力される画像データであってよい。
【0021】
前記編集モジュールは、前記状況情報を含むコンテンツを提供するか、前記状況情報を活用した会話形式の音声発話コンテンツを生成し、前記仮想オブジェクトを通じて提供してよい。
【0022】
前記状況認知モジュールは、各状況情報のマッチング確率をさらに含む確率マップの形態で算出し、各状況情報のマッチング確率に基づいて前記1つ以上の状況情報を順位化して伝達してよい。
【0023】
本発明の実施形態に係るコンピュータプログラムは、コンピュータに本発明の実施形態に係る方法のうちのいずれか1つの方法を実行させるために媒体に記録されてよい。
【0024】
この他にも、本発明を実現するための他の方法、他のシステム、および前記方法を実行するためのコンピュータプログラムを記録するコンピュータ読み取り可能な記録媒体がさらに提供される。
【0025】
上述したもの以外の他の側面、特徴、利点は、添付の図面、特許請求の範囲、および発明の詳細な説明によって明らかになるであろう。
【発明の効果】
【0026】
本発明の実施形態に係る、制限的な性能の端末機によって拡張現実と深層学習基盤の映像処理を同時に実行する方法、および該方法を実行するためのコンピュータプログラムは、ニューラルネットワークを利用して映像処理の実行間隔または頻度を調節することにより、コンピューティングデバイスのコンピューティングリソース不足による画面出力の遅延を防ぎ、コンピューティングデバイスの電源消耗を低下させることができる。
【0027】
また、本発明の実施形態に係る、制限的な性能の端末機によって拡張現実とニューラルネットワーク基盤の映像処理を同時に実行する方法、および該方法を実行するためのコンピュータプログラムは、拡張現実を提供するスレッドにコンピューティングリソースを優先的に割り当てることにより、コンピューティングデバイスのコンピューティングリソース不足による画面出力の遅延を防ぐことができる。
【図面の簡単な説明】
【0028】
図1】本発明の実施形態における、システムの構造を示した図である。
図2】本発明の実施形態における、ニューラルネットワークを利用して状況を認知する拡張現実アプリケーションの構造を示したブロック図である。
図3】本発明の実施形態における、ニューラルネットワークを利用して状況を認知する拡張現実提供方法を説明するためのフローチャートである。
図4】レンダリングモジュールの動作を説明するためのフローチャートである。
図5】判断モジュールの動作を説明するためのフローチャートである。
図6】制限的なプロセッサによって複数のモジュールが処理される過程を説明するための図である。
図7】判断モジュールによって現在フレームと以前フレームを比較する動作を説明するための図である。
図8】判断モジュールによって現在フレームと以前フレームを比較する動作を説明するための図である。
図9】判断モジュールによって現在フレームと以前フレームを比較する動作を説明するための図である。
図10a】状況認知モジュールによって取得した状況情報を活用する実施形態を説明するための図である。
図10b】状況認知モジュールによって取得した状況情報を活用する実施形態を説明するための図である。
図10c】状況認知モジュールによって取得した状況情報を活用する実施形態を説明するための図である。
図10d】状況認知モジュールによって取得した状況情報を活用する実施形態を説明するための図である。
【発明を実施するための形態】
【0029】
本発明は、多様な変換を加えることができ、多様な実施形態を有することができるものであり、特定の実施形態を図に例示しながらより詳しく説明される。本発明の効果や特徴、さらにこれを達成する方法は、図面と共に詳しく後述される実施形態を参照すれば明らかになるであろう。しかし、本発明は、以下で開示される実施形態に限定されてはならず、多様な形態によって実現可能である。
【0030】
ここで、ニューラルネットワーク(neural network)とは、統計学的機械学習の結果に基づき、イメージ内の多様な属性を抽出して利用することにより、イメージ内のオブジェクトを識別および/または判断するアルゴリズムの集合を意味する。ニューラルネットワークは、ニューラルネットワークに入力されたイメージ内に含まれる多様な属性を抽象化することによってイメージ内のオブジェクトを識別する。ここで、イメージ内の属性を抽象化するということは、イメージから属性を検出し、検出された属性のうちから核心属性を判断することを意味する。
【0031】
本明細書に開示された拡張現実提供装置は、ハードウェア、またはソフトウェアとハードウェアとの組み合わせによって実現されてよい。例えば、これらは、オペレーティング・システム・カーネル(operating system kernel)によって、個別のユーザプロセスによって、ネットワークアプリケーション内で限定されたライブラリパケットによって、特殊に構成された機械上またはネットワークインタフェースカード上で実現されてよい。特定の実施形態において、本明細書に開示された技術は、オペレーティングシステムのようなソフトウェア、またはオペレーティングシステム上で実行するアプリケーションによって実現されてよい。
【0032】
本明細書に開示される拡張現実提供の実施形態(1つ又は複数)のうちの少なくとも一部の実施形態(1つ又は複数)のソフトウェア/ハードウェアハイブリッドの実施形態(1つ又は複数)は、メモリに記録されたコンピュータプログラムによって選択的にアクティブ化されるか、再構成されたプログラミング可能な機械上で実現されてよい。このようなネットワークデバイスは、異なる類型のネットワーク通信プロトコルを活用するように構成されてもよいし、設計可能な多数のネットワークインタフェースを有してもよい。これらの機械のうちの一部のための一般的なアーキテクチャは、本明細書に開示された説明によって示される。より具体的な実施形態によると、本明細書に開示された多様な拡張現実提供の実施形態の特徴および/または機能のうちの少なくとも一部は、エンドユーザコンピュータシステム、コンピュータ、ネットワークサーバまたはサーバシステム、モバイルコンピューティングデバイス(例えば、個人用デジタルアシスタント、モバイル電話機、スマートフォン、ラップトップ、タブレット、またはその他のもの)、消費者電子デバイス、音楽プレイヤ、または任意のその他の適した電子デバイス、ルータ、スイッチ、またはその他のもの、またはこれらの任意の組み合わせのような1つ以上の汎用ネットワークホスト機械上で実現されてよい。少なくとも一部の実施形態において、本明細書に開示された多様な拡張現実提供の実施形態の特徴および/または機能のうちの少なくとも一部は、1つ以上の仮想化されたコンピューティング環境(例えば、ネットワークコンピューティングクラウド、またはその他のもの)で実現されてよい。
【0033】
図2を参照すると、本明細書に開示された拡張現実提供の特徴および/または機能のうちの少なくとも一部を実現するのに適したコンピューティングデバイス100を描写したブロック図が示されている。コンピューティングデバイス100は、例えば、エンドユーザコンピュータシステム、ネットワークサーバまたはサーバシステム、モバイルコンピューティングデバイス(例えば、スマートフォン、ラップトップ、タブレット、またはその他のもの)、消費者電子デバイス、音楽プレイヤ、または任意のその他の適した電子デバイス、またはこれらの任意の組み合わせまたは一部であってよい。コンピューティングデバイス100は、無線であっても有線であっても、このような通信のための公知プロトコルを利用してインターネットのような通信ネットワークを介し、クライアントおよび/またはサーバのような他のコンピューティングデバイスと通信するように構成されてよい。
【0034】
一実施形態において、コンピューティングデバイス100は、中央プロセッシングユニット(CPU)110、メモリ130、入力/出力装置140、カメラ150を含む。適切なソフトウェアまたはファームウェアの制御下で動作するとき、CPU110は、特殊に構成されたコンピューティングデバイスまたは機械の機能と関連する特定の機能を実現する責任がある。例えば、少なくとも1つの実施形態において、ユーザの端末機100は、CPU110、メモリ130、入力/出力装置(I/O)140、およびカメラ150を活用する電子装置として機能するように構成されるか設計されてよい。少なくとも1つの実施形態において、CPU110は、例えば、オペレーティングシステム、および任意の適切なアプリケーションソフトウェア、ドライバなどを含んでよく、ソフトウェアモジュール/コンポーネントの制御下で拡張現実の仮想オブジェクトのレンダリング、ニューラルネットワークに基づく状況認知、および機能および/または動作のうちの1つ以上を実行するようにしてよい。
【0035】
CPU110は、例えば、クアルコム(Qualccom)またはインテル(Intel)系列のマイクロプロセッサ、またはMIPS系列のマイクロプロセッサからのプロセッサのような、1つ以上のプロセッサ110を含んでよい。また、CPU110は、グラフィック処理のためのプロセッサであるGPUを含んでよい。一部の実施形態において、プロセッサ110は、コンピューティングデバイス100の動作を制御するために特殊に設計されたハードウェア(例えば、ASIC(application-specific integrated circuit)、EEPROM(electrically erasable programmable read-only memory)、FPGA(field-programmable gate array)など)を含んでよい。特定の実施形態において、メモリ130(例えば、不揮発性RAMおよび/またはROM)も、CPU110の一部分を形成する。しかし、メモリがシステムにカップルリングすることのできる多様な方式がある。メモリブロック130は、例えば、データのキャッシングおよび/または記録、命令語のプログラミングなどのような多様な目的のために使用されてよい。図1では1つのCPU110が示されているが、これに限定されてはならず、1つ以上のCPU110が備えらえてよい。
【0036】
本明細書で使用される用語「プロセッサ」は、当技術分野でプロセッサとして称される集積回路に限定されるものではなく、より広い範囲として、マイクロコントローラ、マイクロコンピュータ、プログラミング可能なロジック制御器、ASIC、および任意のその他のプログラミング可能な回路を指す。
【0037】
一実施形態において、インタフェース160は、インタフェースカードとして提供される。一般的に、これらは、コンピューティングネットワークを介したデータパケットの送信および受信を制御し、時にはコンピューティングデバイス100とともに使用される他の周辺機器を支援する。提供されるインタフェースとしては、イーサネット(登録商標)インタフェース、フレームリレー(frame relay)インタフェース、ケーブルインタフェース、DSLインタフェース、トークンリングインタフェースなどがある。追加で、例えば、USB(universal serial bus)、シリアル(Serial)、イーサネット(登録商標)、FireWire、PCI、パラレル、無線周波数(RF)、ブルートゥース(登録商標)、近距離通信(例えば、近距離磁気を利用する)、802.11(WiFi)、フレームリレー、TCP/IP、ISDN、高速イーサネットインタフェース、ギガビットイーサネット(登録商標)インタフェース、ATM(asynchronous transfer mode)インタフェース、HSSI(high-speed serial interface)インタフェース、POS(Point of Sale)インタフェース、FDDI(fiber data distributed interface)などのような多様な類型のインタフェースが提供されてよい。一般的に、このようなインタフェース160は、適切な媒体との通信のために適切なポートを含んでよい。一部の場合において、これらも独立プロセッサを含んでよく、一部の場合において、揮発性および/または不揮発性メモリ(例えば、RAM)を含んでよい。
【0038】
図1に示されるシステムは、本明細書に記載される本発明の技術を実現するためにコンピューティングデバイス100に対する1つの特定されたアーキテクチャを例示したものであるが、これが本明細書に記載された特徴および技術のうちの少なくとも一部を実現することのできる唯一のデバイスアーキテクチャでは決してない。例えば、1つまたは任意の多数のプロセッサ110を備えるアーキテクチャが使用されてよく、このようなプロセッサ110は、単一デバイスに存在してもよいし、任意の多数のデバイスに分散されてもよい。一実施形態において、プロセッサ110は、ルーティング演算だけではなく通信も取り扱う。多様な実施形態において、異なる類型の状況情報生成の特徴および/または機能が、クライアントデバイス(例えば、クライアントソフトウェアを実行させる個人用スマートフォン)およびサーバシステム(1つ又は複数)(例えば、以下でより詳しく記載されるサーバシステム)を含む状況情報生成システムで実現されてよい。
【0039】
ネットワークデバイスの構成とは関係なく、本発明のシステムは、データ、汎用ネットワーク動作のためのプログラム命令語、および/または本明細書に記載された状況情報生成技術の機能に関するその他の情報を記録するように構成された(例えば、メモリブロック65のような)1つ以上のメモリ、またはメモリモジュールを採用してよい。プログラム命令語は、例えば、オペレーティングシステム、および/または1つ以上のアプリケーションの動作を制御してよい。メモリまたはメモリも、データ構造、広告情報、ユーザクリックおよびインプレッション(impression)情報、および/または本明細書に記載されたその他の特定の非プログラム情報を記録するように構成されてよい。
【0040】
このような情報およびプログラム命令語が本明細書に説明されたシステム/方法を実現するために採用されてよいため、少なくとも一部のネットワークデバイスの実施形態は、例えば、本明細書に記載された多様な動作を実行するために、プログラム命令語や状態情報などを記録するように構成されるか設計される非一時的な機械読み取り可能な記録媒体を含んでよい。このような非一時的な機械読み取り可能な記録媒体の例としては、ハードディスク、フロッピー(登録商標)ディスク、および磁気テープのような磁気媒体、CD-ROMのような光媒体、フロプティカルディスク(floptical disk)のような光磁気媒体、およびROM、RAM、フラッシュメモリ、メモリスタメモリ(memoristor memory)、RAMなどのようにプログラム命令を記録あるいは実行するように特定的に構成されたハードウェアデバイスを含むが、これらに限定されてはならない。プログラム命令語の例としては、例えば、コンパイラによって生成される機械語コード、および解釈器を利用してコンピュータによって実行可能な上位レベルコードを含んだファイルの両方のモードを含む。
【0041】
図2は、本発明の実施形態における、ニューラルネットワークを利用して状況を認知する拡張現実アプリケーション200の構造を示したブロック図である。拡張現実アプリケーション200は、コンピューティングデバイス100のメモリ130に含まれ、プロセッサ110の制御によって実行されてよい。拡張現実アプリケーション200は、カメラによって撮影される映像にオブジェクトを重ねてリアルタイムで表示する拡張現実を提供してよい。より詳しく説明すると、一実施形態によって提供される拡張現実は、コンピューティングデバイス100の周辺に実際に存在する平面を認識し、認識された平面の属性を決定し、これによる仮想のオブジェクトをカメラによって撮影される映像とともにリアルタイムで表示するものである。拡張現実アプリケーション200は、ハードウェアまたはソフトウェア的に実現されてよい。拡張現実アプリケーション200に含まれる構成要素の一部は、ハードウェア的またはソフトウェア的にそれぞれ実現されてよい。
【0042】
図2に示すように、拡張現実アプリケーション200は、レンダリングモジュール210、判断モジュール220、状況認知モジュール230、編集モジュール240、出力制御モジュール250を含んでよい。拡張現実アプリケーション200は、カメラによって撮影された映像、マイクに入力された音声、センサ部によって取得されたセンシング値などを受信してよい。このとき、拡張現実アプリケーション200は、音声認識技術により、マイクに入力された音声をテキストに変換してよい。拡張現実アプリケーション200は、ビジョン認識技術により、撮影された映像を分析してよい。ビジョン認識技術により、映像内に含まれる空間の種類、3次元モデル、物体の種類と位置、顔の位置と特徴点、特徴ベクトルなどが導き出されてよい。拡張現実アプリケーション200は、GPSモジュールによって取得された位置情報を利用して現在地情報を導き出してよい。拡張現実アプリケーション200は、音声、映像、センシング値を総合的に考慮した上でユーザの環境に関する状況情報を取得してよい。
【0043】
レンダリングモジュール210は、入力された映像、イメージに拡張現実を適用する機能を実行する。レンダリングモジュール210は、映像に仮想オブジェクトをレンダリングしてよい。レンダリングモジュール210は、センサ部(距離センサ、方向センサなど)から前方の複数ポイントまでの距離をそれぞれ取得してよい。レンダリングモジュール210は、前方に平面が存在する場合、平面上の複数のポイントまでのそれぞれの距離および方向を取得し、それらの複数のポイントを含む平面情報、例えば、平面を定義することのできる情報として平面方程式や平面ベクトルなどを取得してよい。このとき、センサ部120は、赤外線センサであってよく、赤外線を発散して反射する赤外線を受光することでポイントまでの距離を測定してよい。また、センサ部120は、超音波センサであってよく、超音波を発散して反射する超音波を受信することで超音波が反射した地点までの距離を測定してよい。センサ部120は、加速度センサ、角速度センサ、地磁界センサ、またはこれらのうちの少なくとも2つの組み合わせであってよい。センサ部120は、重力方向を認識し、重力方向を基準として端末の向きを測定してよい。
【0044】
レンダリングモジュール210は、カメラによって撮影された映像およびセンサ部によって取得された平面情報を利用して映像に仮想オブジェクトをレンダリングしてよい。仮想オブジェクトは、視覚または聴覚で認識されるように実現されたオブジェクトであり、イメージ、テキスト、サウンドなど、形式に制限はない。仮想オブジェクトは、取得された平面に配置されて表現されてよい。仮想オブジェクトは、ユーザの音声入力またはタッチ入力によって呼び出されてよい。レンダリングモジュール210は、ユーザの音声およびタッチ入力によって定められた追加の仮想オブジェクトを生成してレンダリングしてよい。レンダリングモジュール210は、映像のフレームレートによって各フレームに1つ以上の仮想オブジェクトを生成してレンダリングしてよい。レンダリングモジュール210は、コンピューティングデバイスの1つ以上のプロセッサのうちの1つによって実行されるため、レンダリングモジュール210の処理速度、すなわち、レンダリングされて入力/出力装置に表示される速度は、プロセッサの処理能力によって左右される。例えば、プロセッサの処理能力が増加すれば、レンダリングモジュール210の処理速度は、増加したプロセッサの処理能力の一定の割合だけ増加し、プロセッサの処理能力が減少すれば、レンダリングモジュール210の処理速度は、減少したプロセッサの処理能力の一定の割合だけ減少する。他の実施形態において、レンダリングモジュール210の処理速度は、コンピューティングデバイス100の現在作業中のスレッドに伴って増加あるいは減少してよい。例えば、現在作業中の1つ以上のスレッドに割り当てられたプロセッサの処理能力を除いた残りの処理能力を利用してレンダリングモジュール210を動作させてよい。
【0045】
判断モジュール220は、拡張現実が適用された映像に状況認知モジュールの実行の可否、すなわち、実行時点を決定する機能を実行してよい。判断モジュール220は、レンダリングモジュール210との同時実行によるプロセッサの処理能力の不足による映像の出力遅延を防ぐために状況認知モジュールの実行の可否を決定してよい。これにより、状況認知モジュールの実行頻度が減るようになる。判断モジュール220は、入力されたデータ、すなわち、映像、入力された音声、位置情報などを利用して状況認知モジュールの実行の可否を判断してよい。判断モジュール220は、入力されたデータを利用して入力されたデータの処理に使用されるプロセッサの処理能力を推論し、プロセッサの処理能力内で、状況認知モジュールの実行による処理速度の遅延がない状況であるかを判断してよい。判断モジュール220は、入力されたデータの処理に使用されるプロセッサの処理能力を利用して状況認知モジュールの実行の可否を判断してよい。
【0046】
判断モジュール220は、入力されたデータを利用して取得された映像の場面転換の有無などを含む判断基準に基づき、状況認知モジュールの実行の可否を決定してよい。判断基準は、現在フレームと、現在フレームよりも時間的に以前に取得されたフレーム(以下、以前フレームとする)とを比較することにより、現在フレームに状況認知モジュールを適用するかを決定してよい。判断モジュール220は、場面転換の有無を判断するために、現在フレームおよび以前フレームの比較過程を経てよい。
【0047】
比較過程を具体的に説明すると、判断モジュール220は、現在フレームの第1ヒストグラムおよび以前フレームの第2ヒストグラムをそれぞれ算出し、算出された第1および第2ヒストグラムを比較することによって場面転換の有無を判断してよい。このとき、ヒストグラムは、映像の現在フレームのピクセルをカラー値によって分布させた分布図であってよい。より具体的に説明すると、現在フレーム内の第1カラー値を有するピクセル数が以前フレーム内の第1カラー値を有するピクセル数に比べて特定の割合(例えば、50%)以下と極めて少ないか、特定の割合(150%)以上と極めて多い場合、現在フレーム内に場面転換が発生したと判断してよい。現在フレームの第1ヒストグラムを利用して第1範囲内に存在するピクセル数と第2ヒストグラムを利用して第2範囲内に存在するピクセル数とを比較することにより、現在フレームが以前フレームとは異なる場面を持つと判断してよい。
【0048】
判断モジュール220は、映像の現在フレームから検出される物体の色および形態を利用して場面転換の有無を判断してよい。より具体的に説明すると、判断モジュール220は、現在フレーム内のエッジ情報を取得し、エッジ情報を総合して物体の色情報および形態情報を抽出してよい。現在フレーム内の物体に関する情報が以前フレーム内の物体に関する情報と一致しない場合、場面転換が発生したものと判断してよい。フレームに存在する物体間の対応の可否は、SIFTアルゴリズムを利用して決定されてよい。SIFTアルゴリズムを利用することにより、各物体の大きさ、位置、方向が変わっても、変わらない情報を算出することが可能である。場面転換の有無などを含む判断基準は、映像の分析結果およびコンピューティングデバイスのセンサ部によって取得された方向情報、モーション情報を利用して決定してよい。コンピューティングデバイスの方向情報およびモーション情報を利用してコンピューティングデバイスの方向を3次元的に予測し、これに基づいて場面転換の発生の有無を決定してよい。例えば、コンピューティングデバイスの方向情報またはモーション情報が以前に取得された方向情報またはモーション情報と予め設定された閾値以上に差がある場合は、コンピューティングデバイスの方向または位置が物理的に変更されたものと判断し、判断結果に基づいて場面転換の発生の有無を決定してよい。
【0049】
判断モジュール220は、場面転換が発生したと判断された場合、状況認知処理の可否を真(true)と決定し、状況認知モジュールによって映像の状況情報を算出することを要求してよい。
【0050】
他の実施形態において、判断モジュール220は、プロセッサの処理能力を考慮した上で状況認知処理の可否を判断してよい。判断モジュール220は、プロセッサの処理能力、および能力値の総合から処理能力を引いた残余能力をモニタリングし、実行されるスレッド、プログラムなどによって使用されるプロセッサの処理能力が予め設定された閾値を超過する場合、すなわち、プロセッサの残余能力が状況認知モジュールを実行させるのに十分でないと判断して状況認知処理の可否を偽(false)と決定してよい。判断モジュール220は、映像出力速度、すなわち、映像出力のフレームレートを考慮した上で状況認知処理の可否を再び判断してよい。映像出力速度の遅延なく正常に処理されるということは、プロセッサまたはメモリに過負荷がかからないことを意味してよい。例えば、映像出力のフレームレートが平均フレームレートよりも低く感知されるということは、コンピューティングデバイスに過負荷が発生したことを意味してよく、このような場合、判断モジュール220は、状況認知処理の可否を偽(false)と判断してよい。
【0051】
上述のように、判断モジュール220は、入力データ、映像の場面転換の有無、プロセッサの性能、処理能力、出力データ、すなわち、映像出力速度を総合して状況認知モジュール230の実行の可否、すなわち、状況認知処理の可否を決定する機能を実行し、選択された一部の時点だけに状況認知モジュール230を実行してよい。より具体的に説明すると、判断モジュール220は、状況認知処理の可否が真(true)である場合、現在フレームおよび状況情報を要求する信号を状況認知モジュールに伝達し、これに対する応答を受信してよい。判断モジュール220は、状況認知処理の可否が偽(false)の場合には状況情報を取得する過程は実行しない。判断モジュールは、状況認知処理の可否が偽(false)である場合、状況認知モジュール230の呼び出しなどを実行しない。判断モジュール220の要求に従って、状況認知モジュール230は、1つ以上のプロセッサによってレンダリングモジュール210とともに実行されてよい。このとき、コンピューティングデバイスのオペレーティングシステム(OS)は、状況認知モジュール230およびレンダリングモジュール210の実行のための適切なスケジューリングを実行してよい。残余能力とは、コンピューティングデバイスで実行中のプログラムに割り当てられた処理能力を除いた、使用または割り当てられていない処理能力を意味してよい。
【0052】
状況認知モジュール230は、判断モジュール220によって実行されてニューラルネットワークを利用してフレームおよび/またはセンシング値を分析し、分析された結果を利用して状況情報を算出し、算出された状況情報を判断モジュール220に伝達してよい。状況認知モジュール230は、入力データであるフレームおよび/またはセンシング値に含まれる1つ以上の因子を分類する過程を経て、状況情報という出力データを算出してよい。このとき、入力データであるフレームおよび/またはセンシング値に含まれる1つ以上の因子と出力データである状況情報とがセットで学習される過程を経てよい。入力データであるフレームおよび/またはセンシング値に含まれる1つ以上の因子を分類することは、学習される過程で入力された入力データに含まれる1つ以上の因子と出力データのとの連結を利用してよい。このとき、入力データは、出力データの推論に向かうための隠し(hidden)データと連結してよい。ここで、隠しデータとは、入力または出力には含まれないが、分類過程で利用される因子またはデータを意味する。学習された入力データ、隠しデータ、出力データのうちの少なくとも2つの連結を利用して入力データと対応する出力データが算出されてよい。本実施形態に係る入力データは、フレーム、センシング値、サウンドデータなどのような多様な種類であってよい。本実施形態に係る出力データは、1つ以上の属性情報を含む状況情報であってよく、入力データおよび/またはユーザによって要求されるデータによって異なってよい。
【0053】
状況認知モジュール230で利用するニューラルネットワークは、外部のサーバによって事前に訓練されて生成されてよく、状況認知を要求する入力データおよび出力データによって継続的に訓練されてアップデートされてよい。入力されるデータの量が増加するほど、ニューラルネットワークを利用して取得された状況情報の正確度は高まる。また、ニューラルネットワークに含まれた入力データ、隠しデータ、出力データのうちの少なくとも2つの連結関係は、非線形的であってよい。例えば、第1データと第2データとの第1連結は、0または1ではなく0.3のように設定されてよい。第1データと第3データとの第2連結が0.7に設定され、第1データは3対7の割合で第2データまたは第3データに分類されてよい。
【0054】
状況認知モジュール230は、判断モジュール220によって呼び出されて実行されてニューラルネットワーク(neural network)に基づいて属性情報別に処理して映像に含まれるフレーム、およびマイクに入力されるサウンドデータに対応する1つ以上の状況情報を算出して提供してよい。状況認知モジュール230は、拡張現実アプリケーションの内部に含まれても、他のアプリケーション、オペレーティングシステムに含まれても、外部の装置に含まれてもよい。判断モジュール220は、ネットワークを介して状況認知モジュール230とデータを送受信してよい。
【0055】
ここで、状況情報は、コンピューティングデバイスの周辺で発生する多様な属性情報を含んでよい。例えば、状況情報は、周辺場所に関する情報(名称、位置、経路など)、コンピューティングデバイスによって認識される事物に関する情報(名称、商品名、詳細情報など)、コンピューティングデバイスによって認識される人物に関する情報(年齢、感情、相似形など)の情報を含んでよい。本発明の実施形態によると、状況情報は、ニューラルネットワークを利用し、撮影された映像、センシング値、サウンドデータのうちの少なくとも1つから取得されてよい。
【0056】
編集モジュール240は、ニューラルネットワークを利用し、現在フレームの状況情報を適用した追加コンテンツを生成してよい。追加コンテンツは、ユーザによって設定されたキャラクタ、場所、建築物、エフェクトなどのグラフィックデータであってよい。追加コンテンツの具体的な例については、図10a~図10dを参照しながら説明する。
【0057】
出力制御モジュール250は、レンダリングモジュール210および編集モジュール240で受信された映像データを出力するように制御する。
【0058】
本発明の実施形態によると、拡張現実アプリケーションは、制限されたコンピュータ性能下において映像にグラフィックデータを追加する拡張現実を提供しながら、入力された映像、センシング値、サウンドデータに対応する状況情報を生成することができる。拡張現実アプリケーションは、状況情報の生成頻度数を調節することにより、制限的なコンピューティング性能による過負荷を防ぐことができる。拡張現実アプリケーションは、通信網が断絶した状態であっても、外部リソースを使用せずに、入力データに対応する状況情報を算出することができる。
【0059】
図3は、本発明の実施形態における、ニューラルネットワークを利用して状況を認知する拡張現実提供方法を示したフローチャートである。
【0060】
段階110において、拡張現実アプリケーションは、映像を取得する。ここで、映像は、カメラによってリアルタイムで撮影されたものであってよい。また、映像は、他のアプリケーションによって生成された多様なフレームであってよい。
【0061】
段階120において、拡張現実アプリケーションは、映像に仮想オブジェクトをレンダリングしてよい。本段階の具体的な動作については、図4を参照しながら詳しく説明する。段階130において、拡張現実アプリケーションは、映像をダウンサンプリングしてよい。拡張現実アプリケーションは、映像を複数のスケールに変換させてよい。複数のスケールに変換された映像は、以下、スケール空間となってよい。段階140において、拡張現実アプリケーションは、ダウンサンプリングされた映像に対して場面転換の有無などを判断してよい。段階140の動作は、判断モジュールの動作と同じであるため、詳しい説明は省略する。映像から場面転換が検出される場合、段階150において、拡張現実アプリケーションは、状況認知モジュールに入力データの状況情報を要求してよい。段階160において、拡張現実アプリケーションは、受信した状況情報を利用して映像を編集してよい。拡張現実アプリケーションは、状況情報を利用して視覚的データを追加で提供してよい。拡張現実アプリケーションは、受信した状況情報の種類に応じて映像の編集方法が異なってよい。映像の編集方法については、図10a~図10dを参照しながら詳しく説明する。
【0062】
図4は、レンダリングモジュールの動作を説明するためのフローチャートである。
【0063】
図4を参照すると、段階121において、レンダリングモジュールは、複数のポイントに対する距離を利用して複数のポイントを含む平面に関する平面情報を算出する。レンダリングモジュールは、複数のポイントに対する方向および距離を利用して複数のポイントを含む平面に関する平面情報を算出してよい。
【0064】
段階122において、レンダリングモジュールは、センサ部によって測定された端末の方向情報、および段階121で取得された平面情報を利用して平面のノーマルベクトルを取得する。レンダリングモジュールは、方向センサによって測定された端末の方向情報を取得し、先に取得された平面情報と端末の方向情報を利用して平面のノーマルベクトルを取得する。より詳細に説明すると、レンダリングモジュールは、平面情報の基準方向を端末の方向(または、端末に備えられたセンサが示す方向)から方向センサの基準方向に変換する。より詳細に説明すると、レンダリングモジュールは、端末の方向を基準として取得された平面の方向情報を、方向センサによって測定された端末の方向情報(加速度センサによって認識される重力方向を基準とする)だけ移動させることにより、最終的に重力方向を基準とする平面の方向情報を取得する。このように取得された重力方向を基準とする平面の方向情報は、平面のノーマルベクトルとして見なされる。
【0065】
段階123において、レンダリングモジュールは、平面のノーマルベクトルを考慮した上で仮想オブジェクトのパラメータを決定する。レンダリングモジュールは、平面のノーマルベクトルを考慮した上で平面に表示する仮想オブジェクトのパラメータを決定する。オブジェクトは、複数のパラメータを含んでよい。パラメータは、例えば、仮想オブジェクトの色、傾き、カテゴリ、種類、方向、およびオブジェクトに適用されるアニメーションであってよい。例えば、レンダリングモジュールは、平面のノーマルベクトルの方向に対応するように仮想オブジェクトの傾きを設定してよい。
【0066】
レンダリングモジュールは、平面のノーマルベクトルを考慮した上で平面の属性を区分してよい。また、レンダリングモジュールは、平面の属性を考慮した上で仮想オブジェクトのパラメータを決定してよい。平面の属性は、例えば、平面の種類として、底、壁、天井に区分されてよい。レンダリングモジュールは、平面が底であるか、壁であるか、天井であるかにより、オブジェクトのパラメータが異なるように決定してよい。例えば、レンダリングモジュールは、平面が壁である場合、平面を突き破って出てくる経路でオブジェクトが移動するようにアニメーションパラメータを設定してよい。レンダリングモジュールは、平面が底である場合、底の上を底と平行するように移動するアニメーションパラメータを設定してよい。
【0067】
レンダリングモジュールは、平面のノーマルベクトルによって決定された平面の属性と平面の方向情報(端末の方向を基準とする)をそれぞれ考慮した上で仮想オブジェクトのパラメータを決定してよい。例えば、レンダリングモジュールは、平面の属性によってオブジェクトの第1パラメータを決定し、平面のノーマルベクトルによって仮想オブジェクトの第2パラメータを決定してよい。例えば、レンダリングモジュールは、平面の属性によってオブジェクトの色を決定し、平面の方向によって仮想オブジェクトの傾きを決定してよい。オブジェクトがアイコンである場合、レンダリングモジュールは、平面の種類によってアイコンの色が相異するように決定し、平面の方向によってアイコンの傾きを決定してよい。傾きは、3次元のアイコン表示情報を2次元にレンダリングして表示するための傾きであるか、アイコンの横/縦の表示の割合であってよい。
【0068】
段階123において、レンダリングモジュールは、連結される入力/出力装置によってオブジェクトを表示する。レンダリングモジュールは、カメラによって撮影された映像から平面を抽出し、平面に仮想オブジェクトを配置させる。仮想オブジェクトの表示方向は、3次元の家具表示情報を2次元にレンダリングして表示するためのものであってよいが、これに限定されてはならず、2次元の家具表示情報を回転および/またはスケーリングして表示するためのものであってよい。仮想オブジェクトのパラメータがアニメーションを含む場合、レンダリングモジュールは、アニメーションを適用させて仮想オブジェクトを表示する。例えば、「壁」属性の平面に対して壁を突き抜けて出てくるアニメーションが設定された仮想オブジェクトを表示する場合、レンダリングモジュールは、オブジェクトに対して不透明な仮想レイヤを平面に重ねて表示し、仮想オブジェクトを仮想レイヤの後ろから前に移動させて表示することにより、仮想オブジェクトが平面を突き破って出てくるようなアニメーションを表示する。仮想レイヤは、仮想オブジェクト以外の他の表示に対しては透明に設定されてよい。
【0069】
一実施形態によると、レンダリングモジュールは、「天井」属性の平面に対して太陽、月、星のイメージを表示する仮想オブジェクトを設定してよい。一実施形態によると、レンダリングモジュールは、複数の平面間を移動する仮想オブジェクトを設定してよい。例えば、「天井」属性の平面から「底」属性の平面に向かって移動する水滴オブジェクトを設定してよい。水滴オブジェクトが「底」属性の平面に到達すると、該当の平面と同じ方向に広がるアニメーションを含んでよい。
【0070】
図5は、判断モジュールの動作を説明するためのフローチャートである。
【0071】
判断モジュール220は、状況認知モジュールを利用して状況情報を取得する時点を判断する機能を実行する。判断モジュールにより、本発明の実施形態に係る映像処理方法は、撮影映像に仮想オブジェクトを追加して撮影映像の状況情報による追加コンテンツを同時に提供するにあたり、プロセッサの処理能力を効率的に管理する。
【0072】
図5を参照すると、段階141において、判断モジュール220は、映像に含まれるフレームセットのうちから現在フレームを選択する。判断モジュール220は、現在フレームを以前フレームと比較することにより、現在フレームの場面転換の発生の有無を決定してよい。現在フレームのカラー値の分布であるヒストグラムを利用し、カラー値によるピクセル数が以前フレームの該当のカラー値によるピクセル数に比べて予め設定された基準の割合以上の差がある場合、現在フレームの場面転換の発生の有無を真(true)と決定してよい。判断モジュール220は、現在フレームの出現オブジェクトの形態および色を抽出し、現在フレームの出現オブジェクトと以前フレームの出現オブジェクトとの同一性を判断し、出現オブジェクトが一致する場合、現在フレームの場面転換の発生の有無を真(true)と決定してよい。
【0073】
上述したように、判断モジュール220は、状況認知モジュールの実行頻度を低め、制限的なプロセッサの処理能力を利用することにより、本実施形態に係る拡張現実コンテンツの実現および出力を円滑に行うことが可能となる。
【0074】
図6は、制限的なプロセッサによって複数のモジュールが処理される過程を説明するための図である。
【0075】
図6(A)を参照しながら、1つのモジュールがプロセッサによって処理されて入力/出力される過程について説明する。第1モジュール(module1)は、プロセッサによって第1時間(t1)内に実行され、実行された結果が第2時間(t2)内に入力/出力され、プロセッサによって再び第3時間(t3)内に実行され、実行された結果が第4時間(t4)内に入力/出力される。
【0076】
図6(B)を参照しながら、レンダリングモジュール(module1)および状況認知モジュール(module2)を同時に実行する過程について説明する。各モジュールは、プロセッサによって処理され、入力/出力装置によって出力される過程を交互に実行してよい。図6(B)に示すように、各モジュールの入力/出力は、プロセッサの処理能力を使用しなくてもよい。レンダリングモジュール(module1)がプロセッサによって処理される時間の後に、プロセッサは、状況認知モジュール(module2)が処理されてよい。この後、レンダリングモジュールの入力/出力時間が経過した後に、プロセッサは、レンダリングモジュール(module1)を処理するようになる。このとき、レンダリングモジュール(module1)の処理は、状況認知モジュール(module2)の実行のためにTB時間だけ遅延するようになる。このような場合、判断モジュール220は、レンダリングモジュール(module1)が入力/出力されている時点に状況認知モジュール(module2)の実行の可否を判断し、判断結果として実行が必要となる場合にのみ状況認知モジュール(module2)を実行させてよい。判断モジュールの判断によって状況認知モジュール(module2)の実行をしない場合、レンダリングモジュール(module1)の実行の遅滞を防ぐことができる。
【0077】
判断モジュール220は、状況認知モジュールの実行に遅延が生じるか、または状況認知モジュールの処理によってレンダリングモジュールの実行が遅滞することを防ぐことができる。判断モジュール220は、状況認知モジュールの実行が必要な時点であるかを判断することにより、制限的なコンピューティングデバイスの性能により、実行されなければならないモジュールの処理が遅延することを防ぐことができる。
【0078】
図7図9は、判断モジュールによって現在フレームおよび以前フレームを比較する動作を説明するための図である。
【0079】
撮影された映像は、一定の時間区間であって、第1フレームセット(SET1)および第2フレームセット(SET2)に分類されてよい。判断モジュール220は、第1フレームセット(SET1)の第1フレーム(f1)を任意に選択し、第2フレームセット(SET2)の第2フレーム(f2)を任意に選択してよい。判断モジュール220は、第1フレーム(f1)のピクセルを、カラー値を基準として分布図(H1)を生成する。第1分布図(H1)は、第1フレーム(f1)のピクセルをカラー値に従ってカウントし、カラー値別にピクセル数をグラフで示したものである。第2分布図(H2)も同じ方式によって生成される。図7に示すように、カラー値が異なったとしても、第1分布図(H1)と第2分布図(H2)の分布形態を比較して一致するか10%以内で類似する場合には、場面転換がないと判断してよい。
【0080】
図8に示すように、判断モジュール220は、処理しなければならないデータの量を減らすために、フレームの一領域を抽出して比較してよい。判断モジュール220は、第1フレーム(f1)の一領域と第2フレーム(f2)の一領域とを比較することにより、第1フレームおよび第2フレーム間の場面転換の有無を決定してよい。
【0081】
図9に示すように、判断モジュール220は、第1フレームのエッジを抽出し、第2フレームのエッジを抽出し、フレームから抽出したエッジを比較することにより、第1フレームおよび第2フレーム間の場面転換の有無を決定してよい。判断モジュール220は、第1フレームのエッジからは出現物体の形状である正方形(edge1)を取得し、第2フレームのエッジからは出現物体の形状である円筒形(edge2)を取得し、フレームの出現物体の形状を比較することにより、第1フレームおよび第2フレーム間の場面転換の有無を決定してよい。すなわち、判断モジュール220は、第1フレームおよび第2フレーム間に場面転換が生じたと判断してよい。
【0082】
図10a~図10dは、状況認知モジュールによって取得された状況情報を活用する実施形態を説明した図である。
【0083】
図10aに示すように、拡張現実アプリケーションは、入力/出力装置によって提供される映像に拡張現実をレンダリングしてよい。特に、拡張現実アプリケーションは、撮影される映像に存在する平面を認識し、平面に仮想オブジェクトを配置させてよい。拡張現実アプリケーションは、取得された平面を仮想オブジェクト(obj2)として生成してレンダリングし、キャラクタである仮想オブジェクト(obj1)を前記平面に配置させてよい。このとき、仮想オブジェクト(obj1)は、予め設定された命令信号に応答して生成されてよい。例えば、予め設定された命令信号である「出てこい」が音声またはテキストの形態で入力されれば、仮想オブジェクト(obj1)がレンダリングされてよい。
【0084】
図10bに示すように、拡張現実アプリケーションは、映像に存在する人物の顔に対して、年齢、感情、相似形情報を状況情報として取得して提供してよい。拡張現実アプリケーションは、ビジョン認識技術を使用することにより、撮影された映像内に人物の顔があるかを判断してよい。撮影された映像内から人物の顔が感知された場合、顔領域a2、a3は四角形状でオーバーラップされてよい。拡張現実アプリケーションは、人物の顔の感知に応答して仮想オブジェクトとの相互作用を生成してよい。例えば、人物の顔の感知に応答し、仮想オブジェクトは、「何歳に見える?」a4、「どんな気分なのか気になる」a5、「誰かに似ていない?」a6などのような追加コンテンツを音声で提供してよい。拡張現実アプリケーションは、追加コンテンツに対する選択入力によって状況認知モジュールを呼び出し、状況情報を受信してよい。a4に対する選択入力により、拡張現実アプリケーションは、状況認知モジュールによって算出された人物の年齢を確率マップとして取得してよい。拡張現実アプリケーションは、確率マップに含まれた年齢および年齢に対する確率値をテキストまたは仮想オブジェクトの音声によって出力してよい。気分情報または相似形情報も、状況認知モジュールによって取得されてよい。
【0085】
図10cに示すように、拡張現実アプリケーションは、状況認知モジュールによって取得された状況情報に基づき、映像に含まれる事物の名称a7を、テキスト、イメージ、音声などの形式で提供してよい。
【0086】
図10dに示すように、拡張現実アプリケーションは、状況認知モジュールによって取得された状況情報に基づいてユーザと会話してよい。拡張現実アプリケーションは、ハンバーガという状況情報を利用し、仮想オブジェクト「ハンバーガ、お好きですか?」のような会話a8を生成してよい。状況情報に含まれる場所、事物などを利用して会話が形成されてよい。
【0087】
その他にも、地域、位置などのような状況情報が認識された場合、仮想オブジェクトは、地域、位置などに関する会話を発話してよい。
【0088】
拡張現実アプリケーションは、映像から人物の顔を学習することにより、1回以上感知された人物の顔が感知された場合、このような状況情報を反映して「よく会いますね、嬉しいです!」のような会話を提供してよい。
【0089】
撮影された映像に障害物が出現するなどの状況情報が算出された場合、仮想オブジェクトは、驚く表情を示すように生成されてよい。
【0090】
拡張現実アプリケーションによって提供される仮想オブジェクトは、特定の機能をもつように設定されてよい。
【0091】
例えば、ユーザにより、仮想オブジェクトは、ユーザの命令による出力を提供する「秘書」として設定されてよい。拡張現実アプリケーションは、映像から取得したビジョン分析情報と、位置情報、天気情報のような現実メタ情報に基づいて必要情報を生成し、「秘書」として設定された仮想オブジェクトを通じて提供してよい。
【0092】
拡張現実アプリケーションは、ユーザによって設定されたゲームキャラクタを仮想オブジェクトに拡張してよい。ゲームキャラクタである仮想オブジェクトは、予め設定されたゲームキャラクタの年齢、性別、趣味、性向などによって行動するように実現されてよい。例えば、撮影された映像から「カフェ」が出力された場合、仮想オブジェクトは、出力された「カフェ」を反映させ、ゲーム上における嗜好に基づいた好きな飲み物である「コーヒー」を注文してという音声を発話するように実現されてよい。
【0093】
拡張現実アプリケーションは、ユーザによって設定されたペットを仮想オブジェクトに拡張してよい。子犬などのようなペットが設定された仮想オブジェクトは、ペットの特性に基づき、撮影された映像に含まれる「ボール」、「おやつ」などに応じるように実現されてよい。
【0094】
仮想オブジェクトは、他のアプリケーションとの連携により、撮影された映像から取得された状況情報によって多様な会話を発生させてよい。例えば、仮想オブジェクトは、道案内アプリケーションと連携し、道案内映像から取得された状況情報によって会話を提供してよい。仮想オブジェクトは、道案内映像にある建物、道などに関する情報を音声発話として提供してよい。仮想オブジェクトは、道案内アプリケーションによって提供される音声とは差別される会話形式の音声発話を提供してもよく、同乗する友だち、家族などの役割を実行することにより、運転手に親しみのある会話を伝達する役割を実行してよい。
【0095】
拡張現実アプリケーションは、リアルタイムで撮影された映像を利用して状況情報を取得し、状況情報(部屋の構造、壁紙の色、大きさ、家具の配置など)を考慮した上でインテリアを推薦してよい。例えば、拡張現実アプリケーションは、空間に適した家具、観葉植物、アクセサリなどを推薦してよい。
【0096】
上述した装置は、ハードウェア構成要素、ソフトウェア構成要素、および/またはハードウェア構成要素とソフトウェア構成要素との組み合わせによって実現されてよい。例えば、実施形態で説明された装置および構成要素は、例えば、プロセッサ、コントローラ、ALU(arithmetic logic unit)、デジタル信号プロセッサ(digital signal processor)、マイクロコンピュータ、FPGA(field programmable gate array)、PLU(programmable logic unit)、マイクロプロセッサ、または命令を実行して応答することができる様々な装置のように、1つ以上の汎用コンピュータまたは特殊目的コンピュータを利用して実現されてよい。処理装置は、オペレーティングシステム(OS)およびOS上で実行される1つ以上のソフトウェアアプリケーションを実行してよい。また、処理装置は、ソフトウェアの実行に応答し、データにアクセスし、データを格納、操作、処理、および生成してもよい。理解の便宜のために、1つの処理装置が使用されるとして説明される場合もあるが、当業者は、処理装置が複数の処理要素(processing element)および/または複数種類の処理要素を含んでもよいことが理解できるであろう。例えば、処理装置は、複数のプロセッサまたは1つのプロセッサおよび1つのコントローラを含んでよい。また、並列プロセッサ(parallel processor)のような、他の処理構成(processing configuration)も可能である。
【0097】
ソフトウェアは、コンピュータプログラム、コード、命令、またはこれらのうちの1つ以上の組み合わせを含んでもよく、所望するとおりに動作するように処理装置を構成したり、独立的または集合的に(collectively)処理装置に命令したりしてよい。ソフトウェアおよび/またはデータは、処理装置に基づいて解釈されたり、処理装置に命令またはデータを提供したりするために、いかなる種類の機械、コンポーネント、物理装置、仮想装置(virtual equipment)、コンピュータ記録媒体または装置、または送信される信号波(signal wave)に永久的または一時的に具現化(embody)されてよい。ソフトウェアは、ネットワークによって接続されたコンピュータシステム上に分散され、分散された態様で格納されても実行されてもよい。ソフトウェアおよびデータは、1つ以上のコンピュータ読み取り可能な記録媒体に格納されてよい。
【0098】
実施形態に係る方法は、多様なコンピュータ手段によって実行可能なプログラム命令の形態で実現されてコンピュータ読み取り可能な媒体に記録されてよい。コンピュータ読み取り可能な媒体は、プログラム命令、データファイル、データ構造などを単独でまたは組み合わせて含んでよい。媒体に記録されるプログラム命令は、実施形態のために特別に設計されて構成されたものであっても、コンピュータソフトウェア当業者に公知な使用可能なものであってもよい。コンピュータ読み取り可能な記録媒体の例としては、ハードディスク、フロッピディスク、磁気テープのような磁気媒体、CD-ROM、DVDのような光媒体、フロプティカルディスク(floptical disk)のような光磁気媒体、およびROM、RAM、フラッシュメモリなどのようなプログラム命令を格納して実行するように特別に構成されたハードウェア装置が含まれる。プログラム命令の例は、コンパイラによって生成されるもののような機械語コードだけではなく、インタプリタなどを使用してコンピュータによって実行される高級言語コードを含む。上述したハードウェア装置は、実施形態の動作を実行するために1つ以上のソフトウェアモジュールとして動作するように構成されてもよく、その逆も同じである。
【0099】
以上のように、実施形態を、限定された実施形態と図面に基づいて説明したが、当業者であれば、上述した記載から多様な修正および変形が可能である。例えば、説明された技術が、説明された方法とは異なる順序で実行されたり、かつ/あるいは、説明されたシステム、構造、装置、回路などの構成要素が、説明された方法とは異なる形態で結合されたりまたは組み合わされたり、他の構成要素または均等物によって代替されたり置換されたとしても、適切な結果を達成することができる。
【0100】
したがって、異なる実施形態であっても、特許請求の範囲と均等なものであれば、添付される特許請求の範囲に属する。
【産業上の利用可能性】
【0101】
本発明の明細書は、ニューラルネットワークを利用して状況を認知する拡張現実提供装置、提供方法、および該方法を実行するためのコンピュータプログラム
に関する。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10a
図10b
図10c
図10d