(57)【要約】  本実施形態によると、プロセッサが映像を取得する段階、プロセッサが、映像を分析し、映像に含まれる平面に仮想オブジェクトを配置するように映像をレンダリングする段階、映像に含まれる現在フレームを以前フレームと比較することにより、現在フレームの場面転換の有無を決定し、現在フレームの場面転換の有無を考慮した上で映像の状況認知処理の可否を決定する段階、状況認知処理の可否が真（ｔｒｕｅ）と決定される場合、ニューラルネットワークを利用して前記映像および／またはセンサ部から受信されたセンシング値を分析して１つ以上の状況情報を算出する段階、および状況情報を適用した追加コンテンツを生成し、追加コンテンツを提供する段階を含む、ニューラルネットワークを利用して状況を認知する拡張現実提供方法が提供される。
2021520535.tif 000002
【特許請求の範囲】
【請求項１】
ニューラルネットワークを利用して状況を認知する拡張現実提供方法をプロセッサに実行させるためのコンピュータプログラムであって、前記拡張現実提供方法は、
プロセッサが映像を取得する段階と、
前記プロセッサが、前記映像を分析し、前記映像に含まれる平面に仮想オブジェクトを配置するように前記映像をレンダリングする段階と、
前記映像に含まれる現在フレームを以前フレームと比較することにより、前記現在フレームの場面転換の有無を決定することを含む判断基準に基づいて、前記映像に対する状況認知処理の可否を決定する段階と、
前記状況認知処理の可否が真と決定された場合、ニューラルネットワークを利用して前記映像および／またはセンサ部から受信されたセンシング値を分析して１つ以上の状況情報を算出する段階と、
前記状況情報を適用した追加コンテンツを生成し、前記追加コンテンツを提供する段階と、
を含む、コンピュータプログラム。
【請求項２】
前記映像に対する状況認知処理の可否を決定する段階において、前記判断基準は、
前記プロセッサの処理能力が閾値を超過するかを決定することをさらに含む、
請求項１に記載のコンピュータプログラム。
【請求項３】
前記映像に対する状況認知処理の可否を決定する段階において、前記判断基準は、
前記映像の出力フレームレートが平均フレームレート未満であるかを決定することをさらに含む、
請求項１または２に記載のコンピュータプログラム。
【請求項４】
前記場面転換の有無を決定することは、
前記現在フレームのピクセルをカラー値によって分布させた分布図を算出し、前記分布図を前記以前フレームの分布図と比較することにより、場面転換の有無を決定する、
請求項１乃至３のいずれか一項に記載のコンピュータプログラム。
【請求項５】
前記場面転換の有無を決定することは、
前記現在フレームから検出したエッジ情報を利用し、前記エッジ情報を総合して物体の色および形態を抽出し、前記物体の色および形態を利用して場面転換の有無を決定する、
請求項１乃至４のいずれか一項に記載のコンピュータプログラム。
【請求項６】
前記状況情報を算出する段階は、
入力されたユーザ入力に対応して算出する状況情報の種類を、前記ユーザ入力によって限定して取得する、
請求項１乃至５のいずれか一項に記載のコンピュータプログラム。
【請求項７】
前記映像は、カメラによって撮影されるか、他のアプリケーションによって生成されて出力される画像データである、
請求項１乃至６のいずれか一項に記載のコンピュータプログラム。
【請求項８】
前記追加コンテンツを提供する段階は、前記状況情報を含むコンテンツを提供するか、前記状況情報を活用した会話形式の音声発話コンテンツを生成して前記仮想オブジェクトを通じて提供する、
請求項１乃至７のいずれか一項に記載のコンピュータプログラム。
【請求項９】
前記１つ以上の状況情報を算出する段階は、
各状況情報のマッチング確率をさらに含む確率マップの形態で算出し、
各状況情報のマッチング確率に基づいて前記１つ以上の状況情報を順位化して伝達する、
請求項１乃至８のいずれか一項に記載のコンピュータプログラム。
【請求項１０】
１つ以上のプロセッサによって実行可能な命令を含むメモリ、および
前記メモリに結合されて前記命令を実行可能な１つ以上のプロセッサ、を含む映像処理装置であって、
前記メモリは、
映像を取得し、前記映像を分析し、前記映像に含まれる平面に仮想オブジェクトを配置させるように前記映像をレンダリングするレンダリングモジュールと、
前記映像に含まれる現在フレームを以前フレームと比較することにより、前記現在フレームの場面転換の有無を決定することを含む判断基準に基づいて、前記映像に対する状況認知処理の可否を決定する判断モジュールと、
前記状況認知処理の可否が真と決定された場合、ニューラルネットワークを利用して前記映像および／またはセンサ部から受信されたセンシング値を分析して１つ以上の状況情報を算出する状況認知モジュールと、
前記状況情報を適用した追加コンテンツを生成し、前記追加コンテンツを提供する編集モジュールと、を含む、
ニューラルネットワークを利用して状況を認知する拡張現実提供装置。
【請求項１１】
前記判断基準は、前記プロセッサの処理能力が閾値を超過するかを決定することをさらに含む、
請求項１０に記載のニューラルネットワークを利用して状況を認知する拡張現実提供装置。
【請求項１２】
前記判断基準は、
前記映像の出力フレームレートが平均フレームレート未満であるかを決定することをさらに含む、
請求項１０または１１に記載のニューラルネットワークを利用して状況を認知する拡張現実提供装置。
【請求項１３】
前記場面転換の有無を決定することは、
前記現在フレームのピクセルをカラー値によって分布させた分布図を算出し、前記分布図を前記以前フレームの分布図と比較することにより、場面転換の有無を決定する、
請求項１０乃至１２のいずれか一項に記載のニューラルネットワークを利用して状況を認知する拡張現実提供装置。
【請求項１４】
前記場面転換の有無を決定することは、
前記現在フレームから検出したエッジ情報を利用し、前記エッジ情報を総合して物体の色および形態を抽出し、前記物体の色および形態を利用して場面転換の有無を決定する、
請求項１０乃至１３のいずれか一項に記載のニューラルネットワークを利用して状況を認知する拡張現実提供装置。
【請求項１５】
前記状況認知モジュールは、入力されたユーザ入力に対応して算出する状況情報の種類を、前記ユーザ入力によって限定して取得する、
請求項１０乃至１４のいずれか一項に記載のニューラルネットワークを利用して状況を認知する拡張現実提供装置。
【請求項１６】
前記映像は、
カメラによって撮影されるか、他のアプリケーションによって生成されて出力される画像データである、
請求項１０乃至１５のいずれか一項に記載のニューラルネットワークを利用して状況を認知する拡張現実提供装置。
【請求項１７】
前記編集モジュールは、
前記状況情報を含むコンテンツを提供するか、前記状況情報を活用した会話形式の音声発話コンテンツを生成して前記仮想オブジェクトを通じて提供する、
請求項１０乃至１６のいずれか一項に記載のニューラルネットワークを利用して状況を認知する拡張現実提供装置。
【請求項１８】
前記状況認知モジュールは、
各状況情報のマッチング確率をさらに含む確率マップの形態で算出し、各状況情報のマッチング確率に基づいて前記１つ以上の状況情報を順位化して伝達する、
請求項１０乃至１７のいずれか一項に記載のニューラルネットワークを利用して状況を認知する拡張現実提供装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ニューラルネットワークを利用して状況を認知する拡張現実提供装置、提供方法、および方法を実行するためのコンピュータプログラムに関する。
【背景技術】
【０００２】
拡張現実（Ａｕｇｍｅｎｔｅｄ  Ｒｅａｌｉｔｙ：ＡＲ）とは、仮想現実（Ｖｉｒｔｕａｌ  Ｒｅａｌｉｔｙ：ＶＲ）の一分野であって、実際の環境に仮想の事物や情報を合成させ、本来の環境に存在するかのように見せるコンピュータグラフィック技法である。付加情報をもつ仮想世界をリアルタイムで現実世界に合わせて１つの映像として示すことから、複合現実（Ｍｉｘｅｄ  Ｒｅａｌｉｔｙ：ＭＲ）とも呼ばれる。
【０００３】
拡張現実を実現するために撮影映像の各フレームに仮想オブジェクトを追加する過程は、映像のフレームごとに実施されなければならないため、撮影映像の解像度やフレームレートなどに応じて多くのプロセッサの処理能力が必要となることがある。プロセッサの処理能力が制限的であるモバイルコンピュータ装置の場合には、仮想オブジェクトのレンダリング過程とニューラルネットワークを利用して状況情報を算出する過程を同時に実行するのが困難であるという問題がある。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明の実施形態は、制限的な性能のコンピューティングデバイスにおいて、イメージセンサによって取得した映像に拡張現実を提供しながら、ニューラルネットワークを利用してリアルタイムで映像を分析し、分析結果を反映した映像を提供することができる。
【課題を解決するための手段】
【０００５】
本発明の実施形態に係るニューラルネットワークを利用して状況を認知する拡張現実提供方法は、プロセッサが映像を取得する段階、前記プロセッサが、前記映像を分析し、前記映像に含まれる平面に仮想オブジェクトを配置するように前記映像をレンダリングする段階、前記映像に含まれる現在フレームを以前フレームと比較することにより、前記現在フレームの場面転換の有無を決定することを含む判断基準に基づいて、前記映像に対する状況認知処理の可否を決定する段階、前記状況認知処理の可否が真（ｔｒｕｅ）と決定された場合、ニューラルネットワークを利用して前記映像および／またはセンサ部から受信されたセンシング値を分析して１つ以上の状況情報を算出する段階、および前記状況情報を適用した追加コンテンツを生成し、前記追加コンテンツを提供する段階を含んでよい。
【０００６】
前記映像に対する状況認知処理の可否を決定する段階において、前記判断基準は、前記プロセッサの処理能力が閾値を超過するかを決定することをさらに含んでよい。
【０００７】
前記映像に対する状況認知処理の可否を決定する段階において、前記判断基準は、前記映像の出力フレームレートが平均フレームレート未満であるかを決定することをさらに含んでよい。
【０００８】
前記場面転換の有無を決定することは、前記現在フレームのピクセルをカラー値によって分布させた分布図を算出し、前記分布図を前記以前フレームの分布図と比較することにより、場面転換の有無を決定してよい。
【０００９】
前記場面転換の有無を決定することは、前記現在フレームから検出したエッジ情報を利用し、前記エッジ情報を総合して物体の色および形態を抽出し、前記物体の色および形態を利用して場面転換の有無を決定してよい。
【００１０】
前記状況情報を算出する段階は、入力されたユーザ入力に対応して算出する状況情報の種類を、前記ユーザ入力によって限定して取得してよい。
【００１１】
前記映像は、カメラによって撮影されるか、他のアプリケーションによって生成されて出力される画像データであってよい。
【００１２】
前記追加コンテンツを提供する段階は、前記状況情報を含むコンテンツを提供するか、前記状況情報を活用した会話形式の音声発話コンテンツを生成し、前記仮想オブジェクトを通じて提供してよい。
【００１３】
前記１つ以上の状況情報を算出する段階は、各状況情報のマッチング確率をさらに含む確率マップの形態で算出し、各状況情報のマッチング確率に基づいて前記１つ以上の状況情報を順位化して伝達してよい。
【００１４】
本発明の実施形態に係る１つ以上のプロセッサによって実行可能な命令を含むメモリ、および前記メモリに結合されて命令の実行が可能な１つ以上のプロセッサ、を含む映像処理装置であって、前記メモリは、映像を取得し、前記映像を分析し、前記映像に含まれる平面に仮想オブジェクトを配置するように前記映像をレンダリングするレンダリングモジュール、前記映像に含まれる現在フレームを以前フレームと比較することにより、前記現在フレームの場面転換の有無を決定することを含む判断基準に基づいて前記映像に対する状況認知処理の可否を決定する判断モジュール、前記状況認知処理の可否が真（ｔｒｕｅ）と決定された場合、ニューラルネットワークを利用して前記映像および／またはセンサ部から受信されたセンシング値を分析して１つ以上の状況情報を算出する状況認知モジュール、および前記状況情報を適用した追加コンテンツを生成し、前記追加コンテンツを提供する編集モジュールを含んでよい。
【００１５】
前記判断基準は、前記プロセッサの処理能力が閾値を超過するかを決定することをさらに含んでよい。
【００１６】
前記判断基準は、前記映像の出力フレームレートが平均フレームレート未満であるかを決定することをさらに含んでよい。
【００１７】
前記場面転換の有無を決定することは、前記現在フレームのピクセルをカラー値によって分布させた分布図を算出し、前記分布図を前記以前フレームの分布図と比較することにより、場面転換の有無を決定してよい。
【００１８】
前記場面転換の有無を決定することは、前記現在フレームから検出したエッジ情報を利用し、前記エッジ情報を総合して物体の色および形態を抽出し、前記物体の色および形態を利用して場面転換の有無を決定してよい。
【００１９】
前記状況認知モジュールは、入力されたユーザ入力に対応して算出する状況情報の種類を、前記ユーザ入力によって限定して取得してよい。
【００２０】
前記映像は、カメラによって撮影されるか、他のアプリケーションによって生成されて出力される画像データであってよい。
【００２１】
前記編集モジュールは、前記状況情報を含むコンテンツを提供するか、前記状況情報を活用した会話形式の音声発話コンテンツを生成し、前記仮想オブジェクトを通じて提供してよい。
【００２２】
前記状況認知モジュールは、各状況情報のマッチング確率をさらに含む確率マップの形態で算出し、各状況情報のマッチング確率に基づいて前記１つ以上の状況情報を順位化して伝達してよい。
【００２３】
本発明の実施形態に係るコンピュータプログラムは、コンピュータに本発明の実施形態に係る方法のうちのいずれか１つの方法を実行させるために媒体に記録されてよい。
【００２４】
この他にも、本発明を実現するための他の方法、他のシステム、および前記方法を実行するためのコンピュータプログラムを記録するコンピュータ読み取り可能な記録媒体がさらに提供される。
【００２５】
上述したもの以外の他の側面、特徴、利点は、添付の図面、特許請求の範囲、および発明の詳細な説明によって明らかになるであろう。
【発明の効果】
【００２６】
本発明の実施形態に係る、制限的な性能の端末機によって拡張現実と深層学習基盤の映像処理を同時に実行する方法、および該方法を実行するためのコンピュータプログラムは、ニューラルネットワークを利用して映像処理の実行間隔または頻度を調節することにより、コンピューティングデバイスのコンピューティングリソース不足による画面出力の遅延を防ぎ、コンピューティングデバイスの電源消耗を低下させることができる。
【００２７】
また、本発明の実施形態に係る、制限的な性能の端末機によって拡張現実とニューラルネットワーク基盤の映像処理を同時に実行する方法、および該方法を実行するためのコンピュータプログラムは、拡張現実を提供するスレッドにコンピューティングリソースを優先的に割り当てることにより、コンピューティングデバイスのコンピューティングリソース不足による画面出力の遅延を防ぐことができる。
【図面の簡単な説明】
【００２８】
【図１】本発明の実施形態における、システムの構造を示した図である。
【図２】本発明の実施形態における、ニューラルネットワークを利用して状況を認知する拡張現実アプリケーションの構造を示したブロック図である。
【図３】本発明の実施形態における、ニューラルネットワークを利用して状況を認知する拡張現実提供方法を説明するためのフローチャートである。
【図４】レンダリングモジュールの動作を説明するためのフローチャートである。
【図５】判断モジュールの動作を説明するためのフローチャートである。
【図６】制限的なプロセッサによって複数のモジュールが処理される過程を説明するための図である。
【図７】判断モジュールによって現在フレームと以前フレームを比較する動作を説明するための図である。
【図８】判断モジュールによって現在フレームと以前フレームを比較する動作を説明するための図である。
【図９】判断モジュールによって現在フレームと以前フレームを比較する動作を説明するための図である。
【図１０ａ】状況認知モジュールによって取得した状況情報を活用する実施形態を説明するための図である。
【図１０ｂ】状況認知モジュールによって取得した状況情報を活用する実施形態を説明するための図である。
【図１０ｃ】状況認知モジュールによって取得した状況情報を活用する実施形態を説明するための図である。
【図１０ｄ】状況認知モジュールによって取得した状況情報を活用する実施形態を説明するための図である。
【発明を実施するための形態】
【００２９】
本発明は、多様な変換を加えることができ、多様な実施形態を有することができるものであり、特定の実施形態を図に例示しながらより詳しく説明される。本発明の効果や特徴、さらにこれを達成する方法は、図面と共に詳しく後述される実施形態を参照すれば明らかになるであろう。しかし、本発明は、以下で開示される実施形態に限定されてはならず、多様な形態によって実現可能である。
【００３０】
ここで、ニューラルネットワーク（ｎｅｕｒａｌ  ｎｅｔｗｏｒｋ）とは、統計学的機械学習の結果に基づき、イメージ内の多様な属性を抽出して利用することにより、イメージ内のオブジェクトを識別および／または判断するアルゴリズムの集合を意味する。ニューラルネットワークは、ニューラルネットワークに入力されたイメージ内に含まれる多様な属性を抽象化することによってイメージ内のオブジェクトを識別する。ここで、イメージ内の属性を抽象化するということは、イメージから属性を検出し、検出された属性のうちから核心属性を判断することを意味する。
【００３１】
本明細書に開示された拡張現実提供装置は、ハードウェア、またはソフトウェアとハードウェアとの組み合わせによって実現されてよい。例えば、これらは、オペレーティング・システム・カーネル（ｏｐｅｒａｔｉｎｇ  ｓｙｓｔｅｍ  ｋｅｒｎｅｌ）によって、個別のユーザプロセスによって、ネットワークアプリケーション内で限定されたライブラリパケットによって、特殊に構成された機械上またはネットワークインタフェースカード上で実現されてよい。特定の実施形態において、本明細書に開示された技術は、オペレーティングシステムのようなソフトウェア、またはオペレーティングシステム上で実行するアプリケーションによって実現されてよい。
【００３２】
本明細書に開示される拡張現実提供の実施形態（１つ又は複数）のうちの少なくとも一部の実施形態（１つ又は複数）のソフトウェア／ハードウェアハイブリッドの実施形態（１つ又は複数）は、メモリに記録されたコンピュータプログラムによって選択的にアクティブ化されるか、再構成されたプログラミング可能な機械上で実現されてよい。このようなネットワークデバイスは、異なる類型のネットワーク通信プロトコルを活用するように構成されてもよいし、設計可能な多数のネットワークインタフェースを有してもよい。これらの機械のうちの一部のための一般的なアーキテクチャは、本明細書に開示された説明によって示される。より具体的な実施形態によると、本明細書に開示された多様な拡張現実提供の実施形態の特徴および／または機能のうちの少なくとも一部は、エンドユーザコンピュータシステム、コンピュータ、ネットワークサーバまたはサーバシステム、モバイルコンピューティングデバイス（例えば、個人用デジタルアシスタント、モバイル電話機、スマートフォン、ラップトップ、タブレット、またはその他のもの）、消費者電子デバイス、音楽プレイヤ、または任意のその他の適した電子デバイス、ルータ、スイッチ、またはその他のもの、またはこれらの任意の組み合わせのような１つ以上の汎用ネットワークホスト機械上で実現されてよい。少なくとも一部の実施形態において、本明細書に開示された多様な拡張現実提供の実施形態の特徴および／または機能のうちの少なくとも一部は、１つ以上の仮想化されたコンピューティング環境（例えば、ネットワークコンピューティングクラウド、またはその他のもの）で実現されてよい。
【００３３】
図２を参照すると、本明細書に開示された拡張現実提供の特徴および／または機能のうちの少なくとも一部を実現するのに適したコンピューティングデバイス１００を描写したブロック図が示されている。コンピューティングデバイス１００は、例えば、エンドユーザコンピュータシステム、ネットワークサーバまたはサーバシステム、モバイルコンピューティングデバイス（例えば、スマートフォン、ラップトップ、タブレット、またはその他のもの）、消費者電子デバイス、音楽プレイヤ、または任意のその他の適した電子デバイス、またはこれらの任意の組み合わせまたは一部であってよい。コンピューティングデバイス１００は、無線であっても有線であっても、このような通信のための公知プロトコルを利用してインターネットのような通信ネットワークを介し、クライアントおよび／またはサーバのような他のコンピューティングデバイスと通信するように構成されてよい。
【００３４】
一実施形態において、コンピューティングデバイス１００は、中央プロセッシングユニット（ＣＰＵ）１１０、メモリ１３０、入力／出力装置１４０、カメラ１５０を含む。適切なソフトウェアまたはファームウェアの制御下で動作するとき、ＣＰＵ１１０は、特殊に構成されたコンピューティングデバイスまたは機械の機能と関連する特定の機能を実現する責任がある。例えば、少なくとも１つの実施形態において、ユーザの端末機１００は、ＣＰＵ１１０、メモリ１３０、入力／出力装置（Ｉ／Ｏ）１４０、およびカメラ１５０を活用する電子装置として機能するように構成されるか設計されてよい。少なくとも１つの実施形態において、ＣＰＵ１１０は、例えば、オペレーティングシステム、および任意の適切なアプリケーションソフトウェア、ドライバなどを含んでよく、ソフトウェアモジュール／コンポーネントの制御下で拡張現実の仮想オブジェクトのレンダリング、ニューラルネットワークに基づく状況認知、および機能および／または動作のうちの１つ以上を実行するようにしてよい。
【００３５】
ＣＰＵ１１０は、例えば、クアルコム（Ｑｕａｌｃｃｏｍ）またはインテル（Ｉｎｔｅｌ）系列のマイクロプロセッサ、またはＭＩＰＳ系列のマイクロプロセッサからのプロセッサのような、１つ以上のプロセッサ１１０を含んでよい。また、ＣＰＵ１１０は、グラフィック処理のためのプロセッサであるＧＰＵを含んでよい。一部の実施形態において、プロセッサ１１０は、コンピューティングデバイス１００の動作を制御するために特殊に設計されたハードウェア（例えば、ＡＳＩＣ（ａｐｐｌｉｃａｔｉｏｎ−ｓｐｅｃｉｆｉｃ  ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ）、ＥＥＰＲＯＭ（ｅｌｅｃｔｒｉｃａｌｌｙ  ｅｒａｓａｂｌｅ  ｐｒｏｇｒａｍｍａｂｌｅ  ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ）、ＦＰＧＡ（ｆｉｅｌｄ−ｐｒｏｇｒａｍｍａｂｌｅ  ｇａｔｅ  ａｒｒａｙ）など）を含んでよい。特定の実施形態において、メモリ１３０（例えば、不揮発性ＲＡＭおよび／またはＲＯＭ）も、ＣＰＵ１１０の一部分を形成する。しかし、メモリがシステムにカップルリングすることのできる多様な方式がある。メモリブロック１３０は、例えば、データのキャッシングおよび／または記録、命令語のプログラミングなどのような多様な目的のために使用されてよい。図１では１つのＣＰＵ１１０が示されているが、これに限定されてはならず、１つ以上のＣＰＵ１１０が備えらえてよい。
【００３６】
本明細書で使用される用語「プロセッサ」は、当技術分野でプロセッサとして称される集積回路に限定されるものではなく、より広い範囲として、マイクロコントローラ、マイクロコンピュータ、プログラミング可能なロジック制御器、ＡＳＩＣ、および任意のその他のプログラミング可能な回路を指す。
【００３７】
一実施形態において、インタフェース１６０は、インタフェースカードとして提供される。一般的に、これらは、コンピューティングネットワークを介したデータパケットの送信および受信を制御し、時にはコンピューティングデバイス１００とともに使用される他の周辺機器を支援する。提供されるインタフェースとしては、イーサネット（登録商標）インタフェース、フレームリレー（ｆｒａｍｅ  ｒｅｌａｙ）インタフェース、ケーブルインタフェース、ＤＳＬインタフェース、トークンリングインタフェースなどがある。追加で、例えば、ＵＳＢ（ｕｎｉｖｅｒｓａｌ  ｓｅｒｉａｌ  ｂｕｓ）、シリアル（Ｓｅｒｉａｌ）、イーサネット（登録商標）、ＦｉｒｅＷｉｒｅ、ＰＣＩ、パラレル、無線周波数（ＲＦ）、ブルートゥース（登録商標）、近距離通信（例えば、近距離磁気を利用する）、８０２．１１（ＷｉＦｉ）、フレームリレー、ＴＣＰ／ＩＰ、ＩＳＤＮ、高速イーサネットインタフェース、ギガビットイーサネット（登録商標）インタフェース、ＡＴＭ（ａｓｙｎｃｈｒｏｎｏｕｓ  ｔｒａｎｓｆｅｒ  ｍｏｄｅ）インタフェース、ＨＳＳＩ（ｈｉｇｈ−ｓｐｅｅｄ  ｓｅｒｉａｌ  ｉｎｔｅｒｆａｃｅ）インタフェース、ＰＯＳ（Ｐｏｉｎｔ  ｏｆ  Ｓａｌｅ）インタフェース、ＦＤＤＩ（ｆｉｂｅｒ  ｄａｔａ  ｄｉｓｔｒｉｂｕｔｅｄ  ｉｎｔｅｒｆａｃｅ）などのような多様な類型のインタフェースが提供されてよい。一般的に、このようなインタフェース１６０は、適切な媒体との通信のために適切なポートを含んでよい。一部の場合において、これらも独立プロセッサを含んでよく、一部の場合において、揮発性および／または不揮発性メモリ（例えば、ＲＡＭ）を含んでよい。
【００３８】
図１に示されるシステムは、本明細書に記載される本発明の技術を実現するためにコンピューティングデバイス１００に対する１つの特定されたアーキテクチャを例示したものであるが、これが本明細書に記載された特徴および技術のうちの少なくとも一部を実現することのできる唯一のデバイスアーキテクチャでは決してない。例えば、１つまたは任意の多数のプロセッサ１１０を備えるアーキテクチャが使用されてよく、このようなプロセッサ１１０は、単一デバイスに存在してもよいし、任意の多数のデバイスに分散されてもよい。一実施形態において、プロセッサ１１０は、ルーティング演算だけではなく通信も取り扱う。多様な実施形態において、異なる類型の状況情報生成の特徴および／または機能が、クライアントデバイス（例えば、クライアントソフトウェアを実行させる個人用スマートフォン）およびサーバシステム（１つ又は複数）（例えば、以下でより詳しく記載されるサーバシステム）を含む状況情報生成システムで実現されてよい。
【００３９】
ネットワークデバイスの構成とは関係なく、本発明のシステムは、データ、汎用ネットワーク動作のためのプログラム命令語、および／または本明細書に記載された状況情報生成技術の機能に関するその他の情報を記録するように構成された（例えば、メモリブロック６５のような）１つ以上のメモリ、またはメモリモジュールを採用してよい。プログラム命令語は、例えば、オペレーティングシステム、および／または１つ以上のアプリケーションの動作を制御してよい。メモリまたはメモリも、データ構造、広告情報、ユーザクリックおよびインプレッション（ｉｍｐｒｅｓｓｉｏｎ）情報、および／または本明細書に記載されたその他の特定の非プログラム情報を記録するように構成されてよい。
【００４０】
このような情報およびプログラム命令語が本明細書に説明されたシステム／方法を実現するために採用されてよいため、少なくとも一部のネットワークデバイスの実施形態は、例えば、本明細書に記載された多様な動作を実行するために、プログラム命令語や状態情報などを記録するように構成されるか設計される非一時的な機械読み取り可能な記録媒体を含んでよい。このような非一時的な機械読み取り可能な記録媒体の例としては、ハードディスク、フロッピー（登録商標）ディスク、および磁気テープのような磁気媒体、ＣＤ−ＲＯＭのような光媒体、フロプティカルディスク（ｆｌｏｐｔｉｃａｌ  ｄｉｓｋ）のような光磁気媒体、およびＲＯＭ、ＲＡＭ、フラッシュメモリ、メモリスタメモリ（ｍｅｍｏｒｉｓｔｏｒ  ｍｅｍｏｒｙ）、ＲＡＭなどのようにプログラム命令を記録あるいは実行するように特定的に構成されたハードウェアデバイスを含むが、これらに限定されてはならない。プログラム命令語の例としては、例えば、コンパイラによって生成される機械語コード、および解釈器を利用してコンピュータによって実行可能な上位レベルコードを含んだファイルの両方のモードを含む。
【００４１】
図２は、本発明の実施形態における、ニューラルネットワークを利用して状況を認知する拡張現実アプリケーション２００の構造を示したブロック図である。拡張現実アプリケーション２００は、コンピューティングデバイス１００のメモリ１３０に含まれ、プロセッサ１１０の制御によって実行されてよい。拡張現実アプリケーション２００は、カメラによって撮影される映像にオブジェクトを重ねてリアルタイムで表示する拡張現実を提供してよい。より詳しく説明すると、一実施形態によって提供される拡張現実は、コンピューティングデバイス１００の周辺に実際に存在する平面を認識し、認識された平面の属性を決定し、これによる仮想のオブジェクトをカメラによって撮影される映像とともにリアルタイムで表示するものである。拡張現実アプリケーション２００は、ハードウェアまたはソフトウェア的に実現されてよい。拡張現実アプリケーション２００に含まれる構成要素の一部は、ハードウェア的またはソフトウェア的にそれぞれ実現されてよい。
【００４２】
図２に示すように、拡張現実アプリケーション２００は、レンダリングモジュール２１０、判断モジュール２２０、状況認知モジュール２３０、編集モジュール２４０、出力制御モジュール２５０を含んでよい。拡張現実アプリケーション２００は、カメラによって撮影された映像、マイクに入力された音声、センサ部によって取得されたセンシング値などを受信してよい。このとき、拡張現実アプリケーション２００は、音声認識技術により、マイクに入力された音声をテキストに変換してよい。拡張現実アプリケーション２００は、ビジョン認識技術により、撮影された映像を分析してよい。ビジョン認識技術により、映像内に含まれる空間の種類、３次元モデル、物体の種類と位置、顔の位置と特徴点、特徴ベクトルなどが導き出されてよい。拡張現実アプリケーション２００は、ＧＰＳモジュールによって取得された位置情報を利用して現在地情報を導き出してよい。拡張現実アプリケーション２００は、音声、映像、センシング値を総合的に考慮した上でユーザの環境に関する状況情報を取得してよい。
【００４３】
レンダリングモジュール２１０は、入力された映像、イメージに拡張現実を適用する機能を実行する。レンダリングモジュール２１０は、映像に仮想オブジェクトをレンダリングしてよい。レンダリングモジュール２１０は、センサ部（距離センサ、方向センサなど）から前方の複数ポイントまでの距離をそれぞれ取得してよい。レンダリングモジュール２１０は、前方に平面が存在する場合、平面上の複数のポイントまでのそれぞれの距離および方向を取得し、それらの複数のポイントを含む平面情報、例えば、平面を定義することのできる情報として平面方程式や平面ベクトルなどを取得してよい。このとき、センサ部１２０は、赤外線センサであってよく、赤外線を発散して反射する赤外線を受光することでポイントまでの距離を測定してよい。また、センサ部１２０は、超音波センサであってよく、超音波を発散して反射する超音波を受信することで超音波が反射した地点までの距離を測定してよい。センサ部１２０は、加速度センサ、角速度センサ、地磁界センサ、またはこれらのうちの少なくとも２つの組み合わせであってよい。センサ部１２０は、重力方向を認識し、重力方向を基準として端末の向きを測定してよい。
【００４４】
レンダリングモジュール２１０は、カメラによって撮影された映像およびセンサ部によって取得された平面情報を利用して映像に仮想オブジェクトをレンダリングしてよい。仮想オブジェクトは、視覚または聴覚で認識されるように実現されたオブジェクトであり、イメージ、テキスト、サウンドなど、形式に制限はない。仮想オブジェクトは、取得された平面に配置されて表現されてよい。仮想オブジェクトは、ユーザの音声入力またはタッチ入力によって呼び出されてよい。レンダリングモジュール２１０は、ユーザの音声およびタッチ入力によって定められた追加の仮想オブジェクトを生成してレンダリングしてよい。レンダリングモジュール２１０は、映像のフレームレートによって各フレームに１つ以上の仮想オブジェクトを生成してレンダリングしてよい。レンダリングモジュール２１０は、コンピューティングデバイスの１つ以上のプロセッサのうちの１つによって実行されるため、レンダリングモジュール２１０の処理速度、すなわち、レンダリングされて入力／出力装置に表示される速度は、プロセッサの処理能力によって左右される。例えば、プロセッサの処理能力が増加すれば、レンダリングモジュール２１０の処理速度は、増加したプロセッサの処理能力の一定の割合だけ増加し、プロセッサの処理能力が減少すれば、レンダリングモジュール２１０の処理速度は、減少したプロセッサの処理能力の一定の割合だけ減少する。他の実施形態において、レンダリングモジュール２１０の処理速度は、コンピューティングデバイス１００の現在作業中のスレッドに伴って増加あるいは減少してよい。例えば、現在作業中の１つ以上のスレッドに割り当てられたプロセッサの処理能力を除いた残りの処理能力を利用してレンダリングモジュール２１０を動作させてよい。
【００４５】
判断モジュール２２０は、拡張現実が適用された映像に状況認知モジュールの実行の可否、すなわち、実行時点を決定する機能を実行してよい。判断モジュール２２０は、レンダリングモジュール２１０との同時実行によるプロセッサの処理能力の不足による映像の出力遅延を防ぐために状況認知モジュールの実行の可否を決定してよい。これにより、状況認知モジュールの実行頻度が減るようになる。判断モジュール２２０は、入力されたデータ、すなわち、映像、入力された音声、位置情報などを利用して状況認知モジュールの実行の可否を判断してよい。判断モジュール２２０は、入力されたデータを利用して入力されたデータの処理に使用されるプロセッサの処理能力を推論し、プロセッサの処理能力内で、状況認知モジュールの実行による処理速度の遅延がない状況であるかを判断してよい。判断モジュール２２０は、入力されたデータの処理に使用されるプロセッサの処理能力を利用して状況認知モジュールの実行の可否を判断してよい。
【００４６】
判断モジュール２２０は、入力されたデータを利用して取得された映像の場面転換の有無などを含む判断基準に基づき、状況認知モジュールの実行の可否を決定してよい。判断基準は、現在フレームと、現在フレームよりも時間的に以前に取得されたフレーム（以下、以前フレームとする）とを比較することにより、現在フレームに状況認知モジュールを適用するかを決定してよい。判断モジュール２２０は、場面転換の有無を判断するために、現在フレームおよび以前フレームの比較過程を経てよい。
【００４７】
比較過程を具体的に説明すると、判断モジュール２２０は、現在フレームの第１ヒストグラムおよび以前フレームの第２ヒストグラムをそれぞれ算出し、算出された第１および第２ヒストグラムを比較することによって場面転換の有無を判断してよい。このとき、ヒストグラムは、映像の現在フレームのピクセルをカラー値によって分布させた分布図であってよい。より具体的に説明すると、現在フレーム内の第１カラー値を有するピクセル数が以前フレーム内の第１カラー値を有するピクセル数に比べて特定の割合（例えば、５０％）以下と極めて少ないか、特定の割合（１５０％）以上と極めて多い場合、現在フレーム内に場面転換が発生したと判断してよい。現在フレームの第１ヒストグラムを利用して第１範囲内に存在するピクセル数と第２ヒストグラムを利用して第２範囲内に存在するピクセル数とを比較することにより、現在フレームが以前フレームとは異なる場面を持つと判断してよい。
【００４８】
判断モジュール２２０は、映像の現在フレームから検出される物体の色および形態を利用して場面転換の有無を判断してよい。より具体的に説明すると、判断モジュール２２０は、現在フレーム内のエッジ情報を取得し、エッジ情報を総合して物体の色情報および形態情報を抽出してよい。現在フレーム内の物体に関する情報が以前フレーム内の物体に関する情報と一致しない場合、場面転換が発生したものと判断してよい。フレームに存在する物体間の対応の可否は、ＳＩＦＴアルゴリズムを利用して決定されてよい。ＳＩＦＴアルゴリズムを利用することにより、各物体の大きさ、位置、方向が変わっても、変わらない情報を算出することが可能である。場面転換の有無などを含む判断基準は、映像の分析結果およびコンピューティングデバイスのセンサ部によって取得された方向情報、モーション情報を利用して決定してよい。コンピューティングデバイスの方向情報およびモーション情報を利用してコンピューティングデバイスの方向を３次元的に予測し、これに基づいて場面転換の発生の有無を決定してよい。例えば、コンピューティングデバイスの方向情報またはモーション情報が以前に取得された方向情報またはモーション情報と予め設定された閾値以上に差がある場合は、コンピューティングデバイスの方向または位置が物理的に変更されたものと判断し、判断結果に基づいて場面転換の発生の有無を決定してよい。
【００４９】
判断モジュール２２０は、場面転換が発生したと判断された場合、状況認知処理の可否を真（ｔｒｕｅ）と決定し、状況認知モジュールによって映像の状況情報を算出することを要求してよい。
【００５０】
他の実施形態において、判断モジュール２２０は、プロセッサの処理能力を考慮した上で状況認知処理の可否を判断してよい。判断モジュール２２０は、プロセッサの処理能力、および能力値の総合から処理能力を引いた残余能力をモニタリングし、実行されるスレッド、プログラムなどによって使用されるプロセッサの処理能力が予め設定された閾値を超過する場合、すなわち、プロセッサの残余能力が状況認知モジュールを実行させるのに十分でないと判断して状況認知処理の可否を偽（ｆａｌｓｅ）と決定してよい。判断モジュール２２０は、映像出力速度、すなわち、映像出力のフレームレートを考慮した上で状況認知処理の可否を再び判断してよい。映像出力速度の遅延なく正常に処理されるということは、プロセッサまたはメモリに過負荷がかからないことを意味してよい。例えば、映像出力のフレームレートが平均フレームレートよりも低く感知されるということは、コンピューティングデバイスに過負荷が発生したことを意味してよく、このような場合、判断モジュール２２０は、状況認知処理の可否を偽（ｆａｌｓｅ）と判断してよい。
【００５１】
上述のように、判断モジュール２２０は、入力データ、映像の場面転換の有無、プロセッサの性能、処理能力、出力データ、すなわち、映像出力速度を総合して状況認知モジュール２３０の実行の可否、すなわち、状況認知処理の可否を決定する機能を実行し、選択された一部の時点だけに状況認知モジュール２３０を実行してよい。より具体的に説明すると、判断モジュール２２０は、状況認知処理の可否が真（ｔｒｕｅ）である場合、現在フレームおよび状況情報を要求する信号を状況認知モジュールに伝達し、これに対する応答を受信してよい。判断モジュール２２０は、状況認知処理の可否が偽（ｆａｌｓｅ）の場合には状況情報を取得する過程は実行しない。判断モジュールは、状況認知処理の可否が偽（ｆａｌｓｅ）である場合、状況認知モジュール２３０の呼び出しなどを実行しない。判断モジュール２２０の要求に従って、状況認知モジュール２３０は、１つ以上のプロセッサによってレンダリングモジュール２１０とともに実行されてよい。このとき、コンピューティングデバイスのオペレーティングシステム（ＯＳ）は、状況認知モジュール２３０およびレンダリングモジュール２１０の実行のための適切なスケジューリングを実行してよい。残余能力とは、コンピューティングデバイスで実行中のプログラムに割り当てられた処理能力を除いた、使用または割り当てられていない処理能力を意味してよい。
【００５２】
状況認知モジュール２３０は、判断モジュール２２０によって実行されてニューラルネットワークを利用してフレームおよび／またはセンシング値を分析し、分析された結果を利用して状況情報を算出し、算出された状況情報を判断モジュール２２０に伝達してよい。状況認知モジュール２３０は、入力データであるフレームおよび／またはセンシング値に含まれる１つ以上の因子を分類する過程を経て、状況情報という出力データを算出してよい。このとき、入力データであるフレームおよび／またはセンシング値に含まれる１つ以上の因子と出力データである状況情報とがセットで学習される過程を経てよい。入力データであるフレームおよび／またはセンシング値に含まれる１つ以上の因子を分類することは、学習される過程で入力された入力データに含まれる１つ以上の因子と出力データのとの連結を利用してよい。このとき、入力データは、出力データの推論に向かうための隠し（ｈｉｄｄｅｎ）データと連結してよい。ここで、隠しデータとは、入力または出力には含まれないが、分類過程で利用される因子またはデータを意味する。学習された入力データ、隠しデータ、出力データのうちの少なくとも２つの連結を利用して入力データと対応する出力データが算出されてよい。本実施形態に係る入力データは、フレーム、センシング値、サウンドデータなどのような多様な種類であってよい。本実施形態に係る出力データは、１つ以上の属性情報を含む状況情報であってよく、入力データおよび／またはユーザによって要求されるデータによって異なってよい。
【００５３】
状況認知モジュール２３０で利用するニューラルネットワークは、外部のサーバによって事前に訓練されて生成されてよく、状況認知を要求する入力データおよび出力データによって継続的に訓練されてアップデートされてよい。入力されるデータの量が増加するほど、ニューラルネットワークを利用して取得された状況情報の正確度は高まる。また、ニューラルネットワークに含まれた入力データ、隠しデータ、出力データのうちの少なくとも２つの連結関係は、非線形的であってよい。例えば、第１データと第２データとの第１連結は、０または１ではなく０．３のように設定されてよい。第１データと第３データとの第２連結が０．７に設定され、第１データは３対７の割合で第２データまたは第３データに分類されてよい。
【００５４】
状況認知モジュール２３０は、判断モジュール２２０によって呼び出されて実行されてニューラルネットワーク（ｎｅｕｒａｌ  ｎｅｔｗｏｒｋ）に基づいて属性情報別に処理して映像に含まれるフレーム、およびマイクに入力されるサウンドデータに対応する１つ以上の状況情報を算出して提供してよい。状況認知モジュール２３０は、拡張現実アプリケーションの内部に含まれても、他のアプリケーション、オペレーティングシステムに含まれても、外部の装置に含まれてもよい。判断モジュール２２０は、ネットワークを介して状況認知モジュール２３０とデータを送受信してよい。
【００５５】
ここで、状況情報は、コンピューティングデバイスの周辺で発生する多様な属性情報を含んでよい。例えば、状況情報は、周辺場所に関する情報（名称、位置、経路など）、コンピューティングデバイスによって認識される事物に関する情報（名称、商品名、詳細情報など）、コンピューティングデバイスによって認識される人物に関する情報（年齢、感情、相似形など）の情報を含んでよい。本発明の実施形態によると、状況情報は、ニューラルネットワークを利用し、撮影された映像、センシング値、サウンドデータのうちの少なくとも１つから取得されてよい。
【００５６】
編集モジュール２４０は、ニューラルネットワークを利用し、現在フレームの状況情報を適用した追加コンテンツを生成してよい。追加コンテンツは、ユーザによって設定されたキャラクタ、場所、建築物、エフェクトなどのグラフィックデータであってよい。追加コンテンツの具体的な例については、図１０ａ〜図１０ｄを参照しながら説明する。
【００５７】
出力制御モジュール２５０は、レンダリングモジュール２１０および編集モジュール２４０で受信された映像データを出力するように制御する。
【００５８】
本発明の実施形態によると、拡張現実アプリケーションは、制限されたコンピュータ性能下において映像にグラフィックデータを追加する拡張現実を提供しながら、入力された映像、センシング値、サウンドデータに対応する状況情報を生成することができる。拡張現実アプリケーションは、状況情報の生成頻度数を調節することにより、制限的なコンピューティング性能による過負荷を防ぐことができる。拡張現実アプリケーションは、通信網が断絶した状態であっても、外部リソースを使用せずに、入力データに対応する状況情報を算出することができる。
【００５９】
図３は、本発明の実施形態における、ニューラルネットワークを利用して状況を認知する拡張現実提供方法を示したフローチャートである。
【００６０】
段階１１０において、拡張現実アプリケーションは、映像を取得する。ここで、映像は、カメラによってリアルタイムで撮影されたものであってよい。また、映像は、他のアプリケーションによって生成された多様なフレームであってよい。
【００６１】
段階１２０において、拡張現実アプリケーションは、映像に仮想オブジェクトをレンダリングしてよい。本段階の具体的な動作については、図４を参照しながら詳しく説明する。段階１３０において、拡張現実アプリケーションは、映像をダウンサンプリングしてよい。拡張現実アプリケーションは、映像を複数のスケールに変換させてよい。複数のスケールに変換された映像は、以下、スケール空間となってよい。段階１４０において、拡張現実アプリケーションは、ダウンサンプリングされた映像に対して場面転換の有無などを判断してよい。段階１４０の動作は、判断モジュールの動作と同じであるため、詳しい説明は省略する。映像から場面転換が検出される場合、段階１５０において、拡張現実アプリケーションは、状況認知モジュールに入力データの状況情報を要求してよい。段階１６０において、拡張現実アプリケーションは、受信した状況情報を利用して映像を編集してよい。拡張現実アプリケーションは、状況情報を利用して視覚的データを追加で提供してよい。拡張現実アプリケーションは、受信した状況情報の種類に応じて映像の編集方法が異なってよい。映像の編集方法については、図１０ａ〜図１０ｄを参照しながら詳しく説明する。
【００６２】
図４は、レンダリングモジュールの動作を説明するためのフローチャートである。
【００６３】
図４を参照すると、段階１２１において、レンダリングモジュールは、複数のポイントに対する距離を利用して複数のポイントを含む平面に関する平面情報を算出する。レンダリングモジュールは、複数のポイントに対する方向および距離を利用して複数のポイントを含む平面に関する平面情報を算出してよい。
【００６４】
段階１２２において、レンダリングモジュールは、センサ部によって測定された端末の方向情報、および段階１２１で取得された平面情報を利用して平面のノーマルベクトルを取得する。レンダリングモジュールは、方向センサによって測定された端末の方向情報を取得し、先に取得された平面情報と端末の方向情報を利用して平面のノーマルベクトルを取得する。より詳細に説明すると、レンダリングモジュールは、平面情報の基準方向を端末の方向（または、端末に備えられたセンサが示す方向）から方向センサの基準方向に変換する。より詳細に説明すると、レンダリングモジュールは、端末の方向を基準として取得された平面の方向情報を、方向センサによって測定された端末の方向情報（加速度センサによって認識される重力方向を基準とする）だけ移動させることにより、最終的に重力方向を基準とする平面の方向情報を取得する。このように取得された重力方向を基準とする平面の方向情報は、平面のノーマルベクトルとして見なされる。
【００６５】
段階１２３において、レンダリングモジュールは、平面のノーマルベクトルを考慮した上で仮想オブジェクトのパラメータを決定する。レンダリングモジュールは、平面のノーマルベクトルを考慮した上で平面に表示する仮想オブジェクトのパラメータを決定する。オブジェクトは、複数のパラメータを含んでよい。パラメータは、例えば、仮想オブジェクトの色、傾き、カテゴリ、種類、方向、およびオブジェクトに適用されるアニメーションであってよい。例えば、レンダリングモジュールは、平面のノーマルベクトルの方向に対応するように仮想オブジェクトの傾きを設定してよい。
【００６６】
レンダリングモジュールは、平面のノーマルベクトルを考慮した上で平面の属性を区分してよい。また、レンダリングモジュールは、平面の属性を考慮した上で仮想オブジェクトのパラメータを決定してよい。平面の属性は、例えば、平面の種類として、底、壁、天井に区分されてよい。レンダリングモジュールは、平面が底であるか、壁であるか、天井であるかにより、オブジェクトのパラメータが異なるように決定してよい。例えば、レンダリングモジュールは、平面が壁である場合、平面を突き破って出てくる経路でオブジェクトが移動するようにアニメーションパラメータを設定してよい。レンダリングモジュールは、平面が底である場合、底の上を底と平行するように移動するアニメーションパラメータを設定してよい。
【００６７】
レンダリングモジュールは、平面のノーマルベクトルによって決定された平面の属性と平面の方向情報（端末の方向を基準とする）をそれぞれ考慮した上で仮想オブジェクトのパラメータを決定してよい。例えば、レンダリングモジュールは、平面の属性によってオブジェクトの第１パラメータを決定し、平面のノーマルベクトルによって仮想オブジェクトの第２パラメータを決定してよい。例えば、レンダリングモジュールは、平面の属性によってオブジェクトの色を決定し、平面の方向によって仮想オブジェクトの傾きを決定してよい。オブジェクトがアイコンである場合、レンダリングモジュールは、平面の種類によってアイコンの色が相異するように決定し、平面の方向によってアイコンの傾きを決定してよい。傾きは、３次元のアイコン表示情報を２次元にレンダリングして表示するための傾きであるか、アイコンの横／縦の表示の割合であってよい。
【００６８】
段階１２３において、レンダリングモジュールは、連結される入力／出力装置によってオブジェクトを表示する。レンダリングモジュールは、カメラによって撮影された映像から平面を抽出し、平面に仮想オブジェクトを配置させる。仮想オブジェクトの表示方向は、３次元の家具表示情報を２次元にレンダリングして表示するためのものであってよいが、これに限定されてはならず、２次元の家具表示情報を回転および／またはスケーリングして表示するためのものであってよい。仮想オブジェクトのパラメータがアニメーションを含む場合、レンダリングモジュールは、アニメーションを適用させて仮想オブジェクトを表示する。例えば、「壁」属性の平面に対して壁を突き抜けて出てくるアニメーションが設定された仮想オブジェクトを表示する場合、レンダリングモジュールは、オブジェクトに対して不透明な仮想レイヤを平面に重ねて表示し、仮想オブジェクトを仮想レイヤの後ろから前に移動させて表示することにより、仮想オブジェクトが平面を突き破って出てくるようなアニメーションを表示する。仮想レイヤは、仮想オブジェクト以外の他の表示に対しては透明に設定されてよい。
【００６９】
一実施形態によると、レンダリングモジュールは、「天井」属性の平面に対して太陽、月、星のイメージを表示する仮想オブジェクトを設定してよい。一実施形態によると、レンダリングモジュールは、複数の平面間を移動する仮想オブジェクトを設定してよい。例えば、「天井」属性の平面から「底」属性の平面に向かって移動する水滴オブジェクトを設定してよい。水滴オブジェクトが「底」属性の平面に到達すると、該当の平面と同じ方向に広がるアニメーションを含んでよい。
【００７０】
図５は、判断モジュールの動作を説明するためのフローチャートである。
【００７１】
判断モジュール２２０は、状況認知モジュールを利用して状況情報を取得する時点を判断する機能を実行する。判断モジュールにより、本発明の実施形態に係る映像処理方法は、撮影映像に仮想オブジェクトを追加して撮影映像の状況情報による追加コンテンツを同時に提供するにあたり、プロセッサの処理能力を効率的に管理する。
【００７２】
図５を参照すると、段階１４１において、判断モジュール２２０は、映像に含まれるフレームセットのうちから現在フレームを選択する。判断モジュール２２０は、現在フレームを以前フレームと比較することにより、現在フレームの場面転換の発生の有無を決定してよい。現在フレームのカラー値の分布であるヒストグラムを利用し、カラー値によるピクセル数が以前フレームの該当のカラー値によるピクセル数に比べて予め設定された基準の割合以上の差がある場合、現在フレームの場面転換の発生の有無を真（ｔｒｕｅ）と決定してよい。判断モジュール２２０は、現在フレームの出現オブジェクトの形態および色を抽出し、現在フレームの出現オブジェクトと以前フレームの出現オブジェクトとの同一性を判断し、出現オブジェクトが一致する場合、現在フレームの場面転換の発生の有無を真（ｔｒｕｅ）と決定してよい。
【００７３】
上述したように、判断モジュール２２０は、状況認知モジュールの実行頻度を低め、制限的なプロセッサの処理能力を利用することにより、本実施形態に係る拡張現実コンテンツの実現および出力を円滑に行うことが可能となる。
【００７４】
図６は、制限的なプロセッサによって複数のモジュールが処理される過程を説明するための図である。
【００７５】
図６（Ａ）を参照しながら、１つのモジュールがプロセッサによって処理されて入力／出力される過程について説明する。第１モジュール（ｍｏｄｕｌｅ１）は、プロセッサによって第１時間（ｔ１）内に実行され、実行された結果が第２時間（ｔ２）内に入力／出力され、プロセッサによって再び第３時間（ｔ３）内に実行され、実行された結果が第４時間（ｔ４）内に入力／出力される。
【００７６】
図６（Ｂ）を参照しながら、レンダリングモジュール（ｍｏｄｕｌｅ１）および状況認知モジュール（ｍｏｄｕｌｅ２）を同時に実行する過程について説明する。各モジュールは、プロセッサによって処理され、入力／出力装置によって出力される過程を交互に実行してよい。図６（Ｂ）に示すように、各モジュールの入力／出力は、プロセッサの処理能力を使用しなくてもよい。レンダリングモジュール（ｍｏｄｕｌｅ１）がプロセッサによって処理される時間の後に、プロセッサは、状況認知モジュール（ｍｏｄｕｌｅ２）が処理されてよい。この後、レンダリングモジュールの入力／出力時間が経過した後に、プロセッサは、レンダリングモジュール（ｍｏｄｕｌｅ１）を処理するようになる。このとき、レンダリングモジュール（ｍｏｄｕｌｅ１）の処理は、状況認知モジュール（ｍｏｄｕｌｅ２）の実行のためにＴＢ時間だけ遅延するようになる。このような場合、判断モジュール２２０は、レンダリングモジュール（ｍｏｄｕｌｅ１）が入力／出力されている時点に状況認知モジュール（ｍｏｄｕｌｅ２）の実行の可否を判断し、判断結果として実行が必要となる場合にのみ状況認知モジュール（ｍｏｄｕｌｅ２）を実行させてよい。判断モジュールの判断によって状況認知モジュール（ｍｏｄｕｌｅ２）の実行をしない場合、レンダリングモジュール（ｍｏｄｕｌｅ１）の実行の遅滞を防ぐことができる。
【００７７】
判断モジュール２２０は、状況認知モジュールの実行に遅延が生じるか、または状況認知モジュールの処理によってレンダリングモジュールの実行が遅滞することを防ぐことができる。判断モジュール２２０は、状況認知モジュールの実行が必要な時点であるかを判断することにより、制限的なコンピューティングデバイスの性能により、実行されなければならないモジュールの処理が遅延することを防ぐことができる。
【００７８】
図７〜図９は、判断モジュールによって現在フレームおよび以前フレームを比較する動作を説明するための図である。
【００７９】
撮影された映像は、一定の時間区間であって、第１フレームセット（ＳＥＴ１）および第２フレームセット（ＳＥＴ２）に分類されてよい。判断モジュール２２０は、第１フレームセット（ＳＥＴ１）の第１フレーム（ｆ１）を任意に選択し、第２フレームセット（ＳＥＴ２）の第２フレーム（ｆ２）を任意に選択してよい。判断モジュール２２０は、第１フレーム（ｆ１）のピクセルを、カラー値を基準として分布図（Ｈ１）を生成する。第１分布図（Ｈ１）は、第１フレーム（ｆ１）のピクセルをカラー値に従ってカウントし、カラー値別にピクセル数をグラフで示したものである。第２分布図（Ｈ２）も同じ方式によって生成される。図７に示すように、カラー値が異なったとしても、第１分布図（Ｈ１）と第２分布図（Ｈ２）の分布形態を比較して一致するか１０％以内で類似する場合には、場面転換がないと判断してよい。
【００８０】
図８に示すように、判断モジュール２２０は、処理しなければならないデータの量を減らすために、フレームの一領域を抽出して比較してよい。判断モジュール２２０は、第１フレーム（ｆ１）の一領域と第２フレーム（ｆ２）の一領域とを比較することにより、第１フレームおよび第２フレーム間の場面転換の有無を決定してよい。
【００８１】
図９に示すように、判断モジュール２２０は、第１フレームのエッジを抽出し、第２フレームのエッジを抽出し、フレームから抽出したエッジを比較することにより、第１フレームおよび第２フレーム間の場面転換の有無を決定してよい。判断モジュール２２０は、第１フレームのエッジからは出現物体の形状である正方形（ｅｄｇｅ１）を取得し、第２フレームのエッジからは出現物体の形状である円筒形（ｅｄｇｅ２）を取得し、フレームの出現物体の形状を比較することにより、第１フレームおよび第２フレーム間の場面転換の有無を決定してよい。すなわち、判断モジュール２２０は、第１フレームおよび第２フレーム間に場面転換が生じたと判断してよい。
【００８２】
図１０ａ〜図１０ｄは、状況認知モジュールによって取得された状況情報を活用する実施形態を説明した図である。
【００８３】
図１０ａに示すように、拡張現実アプリケーションは、入力／出力装置によって提供される映像に拡張現実をレンダリングしてよい。特に、拡張現実アプリケーションは、撮影される映像に存在する平面を認識し、平面に仮想オブジェクトを配置させてよい。拡張現実アプリケーションは、取得された平面を仮想オブジェクト（ｏｂｊ２）として生成してレンダリングし、キャラクタである仮想オブジェクト（ｏｂｊ１）を前記平面に配置させてよい。このとき、仮想オブジェクト（ｏｂｊ１）は、予め設定された命令信号に応答して生成されてよい。例えば、予め設定された命令信号である「出てこい」が音声またはテキストの形態で入力されれば、仮想オブジェクト（ｏｂｊ１）がレンダリングされてよい。
【００８４】
図１０ｂに示すように、拡張現実アプリケーションは、映像に存在する人物の顔に対して、年齢、感情、相似形情報を状況情報として取得して提供してよい。拡張現実アプリケーションは、ビジョン認識技術を使用することにより、撮影された映像内に人物の顔があるかを判断してよい。撮影された映像内から人物の顔が感知された場合、顔領域ａ２、ａ３は四角形状でオーバーラップされてよい。拡張現実アプリケーションは、人物の顔の感知に応答して仮想オブジェクトとの相互作用を生成してよい。例えば、人物の顔の感知に応答し、仮想オブジェクトは、「何歳に見える？」ａ４、「どんな気分なのか気になる」ａ５、「誰かに似ていない？」ａ６などのような追加コンテンツを音声で提供してよい。拡張現実アプリケーションは、追加コンテンツに対する選択入力によって状況認知モジュールを呼び出し、状況情報を受信してよい。ａ４に対する選択入力により、拡張現実アプリケーションは、状況認知モジュールによって算出された人物の年齢を確率マップとして取得してよい。拡張現実アプリケーションは、確率マップに含まれた年齢および年齢に対する確率値をテキストまたは仮想オブジェクトの音声によって出力してよい。気分情報または相似形情報も、状況認知モジュールによって取得されてよい。
【００８５】
図１０ｃに示すように、拡張現実アプリケーションは、状況認知モジュールによって取得された状況情報に基づき、映像に含まれる事物の名称ａ７を、テキスト、イメージ、音声などの形式で提供してよい。
【００８６】
図１０ｄに示すように、拡張現実アプリケーションは、状況認知モジュールによって取得された状況情報に基づいてユーザと会話してよい。拡張現実アプリケーションは、ハンバーガという状況情報を利用し、仮想オブジェクト「ハンバーガ、お好きですか？」のような会話ａ８を生成してよい。状況情報に含まれる場所、事物などを利用して会話が形成されてよい。
【００８７】
その他にも、地域、位置などのような状況情報が認識された場合、仮想オブジェクトは、地域、位置などに関する会話を発話してよい。
【００８８】
拡張現実アプリケーションは、映像から人物の顔を学習することにより、１回以上感知された人物の顔が感知された場合、このような状況情報を反映して「よく会いますね、嬉しいです！」のような会話を提供してよい。
【００８９】
撮影された映像に障害物が出現するなどの状況情報が算出された場合、仮想オブジェクトは、驚く表情を示すように生成されてよい。
【００９０】
拡張現実アプリケーションによって提供される仮想オブジェクトは、特定の機能をもつように設定されてよい。
【００９１】
例えば、ユーザにより、仮想オブジェクトは、ユーザの命令による出力を提供する「秘書」として設定されてよい。拡張現実アプリケーションは、映像から取得したビジョン分析情報と、位置情報、天気情報のような現実メタ情報に基づいて必要情報を生成し、「秘書」として設定された仮想オブジェクトを通じて提供してよい。
【００９２】
拡張現実アプリケーションは、ユーザによって設定されたゲームキャラクタを仮想オブジェクトに拡張してよい。ゲームキャラクタである仮想オブジェクトは、予め設定されたゲームキャラクタの年齢、性別、趣味、性向などによって行動するように実現されてよい。例えば、撮影された映像から「カフェ」が出力された場合、仮想オブジェクトは、出力された「カフェ」を反映させ、ゲーム上における嗜好に基づいた好きな飲み物である「コーヒー」を注文してという音声を発話するように実現されてよい。
【００９３】
拡張現実アプリケーションは、ユーザによって設定されたペットを仮想オブジェクトに拡張してよい。子犬などのようなペットが設定された仮想オブジェクトは、ペットの特性に基づき、撮影された映像に含まれる「ボール」、「おやつ」などに応じるように実現されてよい。
【００９４】
仮想オブジェクトは、他のアプリケーションとの連携により、撮影された映像から取得された状況情報によって多様な会話を発生させてよい。例えば、仮想オブジェクトは、道案内アプリケーションと連携し、道案内映像から取得された状況情報によって会話を提供してよい。仮想オブジェクトは、道案内映像にある建物、道などに関する情報を音声発話として提供してよい。仮想オブジェクトは、道案内アプリケーションによって提供される音声とは差別される会話形式の音声発話を提供してもよく、同乗する友だち、家族などの役割を実行することにより、運転手に親しみのある会話を伝達する役割を実行してよい。
【００９５】
拡張現実アプリケーションは、リアルタイムで撮影された映像を利用して状況情報を取得し、状況情報（部屋の構造、壁紙の色、大きさ、家具の配置など）を考慮した上でインテリアを推薦してよい。例えば、拡張現実アプリケーションは、空間に適した家具、観葉植物、アクセサリなどを推薦してよい。
【００９６】
上述した装置は、ハードウェア構成要素、ソフトウェア構成要素、および／またはハードウェア構成要素とソフトウェア構成要素との組み合わせによって実現されてよい。例えば、実施形態で説明された装置および構成要素は、例えば、プロセッサ、コントローラ、ＡＬＵ（ａｒｉｔｈｍｅｔｉｃ  ｌｏｇｉｃ  ｕｎｉｔ）、デジタル信号プロセッサ（ｄｉｇｉｔａｌ  ｓｉｇｎａｌ  ｐｒｏｃｅｓｓｏｒ）、マイクロコンピュータ、ＦＰＧＡ（ｆｉｅｌｄ  ｐｒｏｇｒａｍｍａｂｌｅ  ｇａｔｅ  ａｒｒａｙ）、ＰＬＵ（ｐｒｏｇｒａｍｍａｂｌｅ  ｌｏｇｉｃ  ｕｎｉｔ）、マイクロプロセッサ、または命令を実行して応答することができる様々な装置のように、１つ以上の汎用コンピュータまたは特殊目的コンピュータを利用して実現されてよい。処理装置は、オペレーティングシステム（ＯＳ）およびＯＳ上で実行される１つ以上のソフトウェアアプリケーションを実行してよい。また、処理装置は、ソフトウェアの実行に応答し、データにアクセスし、データを格納、操作、処理、および生成してもよい。理解の便宜のために、１つの処理装置が使用されるとして説明される場合もあるが、当業者は、処理装置が複数の処理要素（ｐｒｏｃｅｓｓｉｎｇ  ｅｌｅｍｅｎｔ）および／または複数種類の処理要素を含んでもよいことが理解できるであろう。例えば、処理装置は、複数のプロセッサまたは１つのプロセッサおよび１つのコントローラを含んでよい。また、並列プロセッサ（ｐａｒａｌｌｅｌ  ｐｒｏｃｅｓｓｏｒ）のような、他の処理構成（ｐｒｏｃｅｓｓｉｎｇ  ｃｏｎｆｉｇｕｒａｔｉｏｎ）も可能である。
【００９７】
ソフトウェアは、コンピュータプログラム、コード、命令、またはこれらのうちの１つ以上の組み合わせを含んでもよく、所望するとおりに動作するように処理装置を構成したり、独立的または集合的に（ｃｏｌｌｅｃｔｉｖｅｌｙ）処理装置に命令したりしてよい。ソフトウェアおよび／またはデータは、処理装置に基づいて解釈されたり、処理装置に命令またはデータを提供したりするために、いかなる種類の機械、コンポーネント、物理装置、仮想装置（ｖｉｒｔｕａｌ  ｅｑｕｉｐｍｅｎｔ）、コンピュータ記録媒体または装置、または送信される信号波（ｓｉｇｎａｌ  ｗａｖｅ）に永久的または一時的に具現化（ｅｍｂｏｄｙ）されてよい。ソフトウェアは、ネットワークによって接続されたコンピュータシステム上に分散され、分散された態様で格納されても実行されてもよい。ソフトウェアおよびデータは、１つ以上のコンピュータ読み取り可能な記録媒体に格納されてよい。
【００９８】
実施形態に係る方法は、多様なコンピュータ手段によって実行可能なプログラム命令の形態で実現されてコンピュータ読み取り可能な媒体に記録されてよい。コンピュータ読み取り可能な媒体は、プログラム命令、データファイル、データ構造などを単独でまたは組み合わせて含んでよい。媒体に記録されるプログラム命令は、実施形態のために特別に設計されて構成されたものであっても、コンピュータソフトウェア当業者に公知な使用可能なものであってもよい。コンピュータ読み取り可能な記録媒体の例としては、ハードディスク、フロッピディスク、磁気テープのような磁気媒体、ＣＤ−ＲＯＭ、ＤＶＤのような光媒体、フロプティカルディスク（ｆｌｏｐｔｉｃａｌ  ｄｉｓｋ）のような光磁気媒体、およびＲＯＭ、ＲＡＭ、フラッシュメモリなどのようなプログラム命令を格納して実行するように特別に構成されたハードウェア装置が含まれる。プログラム命令の例は、コンパイラによって生成されるもののような機械語コードだけではなく、インタプリタなどを使用してコンピュータによって実行される高級言語コードを含む。上述したハードウェア装置は、実施形態の動作を実行するために１つ以上のソフトウェアモジュールとして動作するように構成されてもよく、その逆も同じである。
【００９９】
以上のように、実施形態を、限定された実施形態と図面に基づいて説明したが、当業者であれば、上述した記載から多様な修正および変形が可能である。例えば、説明された技術が、説明された方法とは異なる順序で実行されたり、かつ／あるいは、説明されたシステム、構造、装置、回路などの構成要素が、説明された方法とは異なる形態で結合されたりまたは組み合わされたり、他の構成要素または均等物によって代替されたり置換されたとしても、適切な結果を達成することができる。
【０１００】
したがって、異なる実施形態であっても、特許請求の範囲と均等なものであれば、添付される特許請求の範囲に属する。
【産業上の利用可能性】
【０１０１】
本発明の明細書は、ニューラルネットワークを利用して状況を認知する拡張現実提供装置、提供方法、および該方法を実行するためのコンピュータプログラム
に関する。
【図１】
2021520535.tif 000003
【図２】
2021520535.tif 000004
【図３】
2021520535.tif 000005
【図４】
2021520535.tif 000006
【図５】
2021520535.tif 000007
【図６】
2021520535.tif 000008
【図７】
2021520535.tif 000009
【図８】
2021520535.tif 000010
【図９】
2021520535.tif 000011
【図１０ａ】
2021520535.tif 000012
【図１０ｂ】
2021520535.tif 000013
【図１０ｃ】
2021520535.tif 000014
【図１０ｄ】
2021520535.tif 000015
【国際調査報告】
2021520535.tif 000016
2021520535.tif 000017
2021520535.tif 000018
2021520535.tif 000019