(57)【要約】  一実施形態では、方法は、デバイスによって、シーンに関連する第１のビデオフレームに基づいて、第１の追跡アルゴリズムを使用して第１の追跡データを生成することを含む。第１の追跡データに基づいて拡張現実（ＡＲ）効果が表示され得る。デバイスは、第１の追跡データに関連する第１の信頼性スコアを生成し、第１の信頼性スコアがしきい値を上回ると決定し得る。デバイスは、第１のビデオフレームの後の第２のビデオフレームに基づいて、第１の追跡アルゴリズムを使用して第２の追跡データを生成し得る。デバイスは、関連する第２の信頼性スコアがしきい値を下回ると決定し得る。応答して、デバイスは、第２のビデオフレームの後の第３のビデオフレームに基づいて、第１の追跡アルゴリズムとは異なる第２の追跡アルゴリズムを使用して第３の追跡データを生成し得る。デバイスは、次いで、第３の追跡データに基づいてＡＲ効果を表示し得る。【選択図】図３
2021501933.tif 000002
【特許請求の範囲】
【請求項１】
コンピューティングデバイスによって、
シーンに関連する１つまたは複数の第１のビデオフレームを取得することと、
前記１つまたは複数の第１のビデオフレームに基づいて、第１の追跡アルゴリズムを使用して第１の追跡データを生成することと、
前記第１の追跡データに関連する第１の信頼性スコアを生成することと、
前記第１の追跡データに基づいて拡張現実効果を表示することと、
前記第１の信頼性スコアが第１のしきい値を上回ると決定することと、
前記シーンに関連する１つまたは複数の第２のビデオフレームを取得することであって、前記１つまたは複数の第２のビデオフレームが前記１つまたは複数の第１のビデオフレームの後にある、１つまたは複数の第２のビデオフレームを取得することと、
前記１つまたは複数の第２のビデオフレームに基づいて、前記第１の追跡アルゴリズムを使用して第２の追跡データを生成することと、
前記第２の追跡データに関連する第２の信頼性スコアを生成することと、
前記第２の信頼性スコアが第２のしきい値を下回ると決定することと、
前記シーンに関連する１つまたは複数の第３のビデオフレームを取得することであって、前記１つまたは複数の第３のビデオフレームが前記１つまたは複数の第２のビデオフレームの後にある、１つまたは複数の第３のビデオフレームを取得することと、
前記１つまたは複数の第３のビデオフレームに基づいて、前記第１の追跡アルゴリズムとは異なる第２の追跡アルゴリズムを使用して第３の追跡データを生成することであって、前記第２の追跡アルゴリズムは、前記第２の信頼性スコアが前記第２のしきい値を下回ると前記決定したことに応答して選択される、第３の追跡データを生成することと、
前記第３の追跡データに基づいて前記拡張現実効果を表示することと
を含む、方法。
【請求項２】
前記第３の追跡データに関連する第３の信頼性スコアを生成することと、
前記第３の信頼性スコアが第３のしきい値を下回ると決定することと、
前記シーンに関連する１つまたは複数の第４のビデオフレームを取得することであって、前記１つまたは複数の第４のビデオフレームが前記１つまたは複数の第３のビデオフレームの後にある、１つまたは複数の第４のビデオフレームを取得することと、
前記コンピューティングデバイスのジャイロスコープからのジャイロスコープデータに基づいて前記拡張現実効果を表示することと
をさらに含む、請求項１に記載の方法。
【請求項３】
前記第１の追跡データと、前記第２の追跡データと、前記第３の追跡データとが、前記シーン中の第１のオブジェクトに関連し、前記方法は、
前記第１の追跡アルゴリズム、前記第２の追跡アルゴリズム、または第３の追跡アルゴリズムを使用して、前記シーン中の第２のオブジェクトに関連する第４の追跡データを生成することであって、前記第４の追跡データが、前記１つまたは複数の第１のビデオフレームと、前記１つまたは複数の第２のビデオフレームと、前記１つまたは複数の第３のビデオフレームとに基づく、第４の追跡データを生成することと、
前記第４の追跡データに基づいて第２の拡張現実効果を表示することと
をさらに含む、請求項１に記載の方法。
【請求項４】
前記第１の追跡データに基づいて表示された前記拡張現実効果のフレームの数に基づいて性能スコアを生成することと、
前記性能スコアが基準を満たすと決定することと
をさらに含む、請求項１に記載の方法。
【請求項５】
前記第２の追跡データを、前記第２の追跡アルゴリズムに適合するフォーマットに変換すること
をさらに含み、
前記第３の追跡データを前記生成することが、前記変換された第２の追跡データにさらに基づく、請求項１に記載の方法。
【請求項６】
前記コンピューティングデバイスの１つまたは複数の能力が１つまたは複数の所定の能力標準を下回ると決定することと、
追跡グラニュラリティを低減するように前記第１の追跡アルゴリズムまたは前記第２の追跡アルゴリズムを設定することと
をさらに含む、請求項１に記載の方法。
【請求項７】
前記コンピューティングデバイスの１つまたは複数の能力が１つまたは複数の所定の能力標準を満たすと決定することと、
前記１つまたは複数の能力が前記１つまたは複数の所定の基準を満たすと前記決定したことに基づいて、前記第１の追跡アルゴリズムに関連するソフトウェアをダウンロードすることと
をさらに含む、請求項１に記載の方法。
【請求項８】
前記第１の追跡アルゴリズムが前記第２の追跡アルゴリズムよりも計算コストが高い、請求項１に記載の方法。
【請求項９】
前記第１の追跡アルゴリズムがＳＬＡＭアルゴリズムまたは顔認識アルゴリズムであり、前記第２の追跡アルゴリズムが領域追跡アルゴリズムである、請求項１に記載の方法。
【請求項１０】
前記第１のしきい値と前記第２のしきい値とが同じである、請求項１に記載の方法。
【請求項１１】
１つまたは複数のプロセッサと、前記プロセッサのうちの１つまたは複数に結合された１つまたは複数のコンピュータ可読非一時的記憶媒体とを備えるシステムであって、前記１つまたは複数のコンピュータ可読非一時的記憶媒体は、前記プロセッサのうちの１つまたは複数によって実行されたとき、前記システムに、
シーンに関連する１つまたは複数の第１のビデオフレームを取得することと、
前記１つまたは複数の第１のビデオフレームに基づいて、第１の追跡アルゴリズムを使用して第１の追跡データを生成することと、
前記第１の追跡データに関連する第１の信頼性スコアを生成することと、
前記第１の追跡データに基づいて拡張現実効果を表示することと、
前記第１の信頼性スコアが第１のしきい値を上回ると決定することと、
前記シーンに関連する１つまたは複数の第２のビデオフレームを取得することであって、前記１つまたは複数の第２のビデオフレームが前記１つまたは複数の第１のビデオフレームの後にある、１つまたは複数の第２のビデオフレームを取得することと、
前記１つまたは複数の第２のビデオフレームに基づいて、前記第１の追跡アルゴリズムを使用して第２の追跡データを生成することと、
前記第２の追跡データに関連する第２の信頼性スコアを生成することと、
前記第２の信頼性スコアが第２のしきい値を下回ると決定することと、
前記シーンに関連する１つまたは複数の第３のビデオフレームを取得することであって、前記１つまたは複数の第３のビデオフレームが前記１つまたは複数の第２のビデオフレームの後にある、１つまたは複数の第３のビデオフレームを取得することと、
前記１つまたは複数の第３のビデオフレームに基づいて、前記第１の追跡アルゴリズムとは異なる第２の追跡アルゴリズムを使用して第３の追跡データを生成することであって、前記第２の追跡アルゴリズムは、前記第２の信頼性スコアが前記第２のしきい値を下回ると前記決定したことに応答して選択される、第３の追跡データを生成することと、
前記第３の追跡データに基づいて前記拡張現実効果を表示することと
を含む動作を実施させるように動作可能な命令を備える、システム。
【請求項１２】
前記プロセッサは、前記命令を実行したとき、
前記第３の追跡データに関連する第３の信頼性スコアを生成することと、
前記第３の信頼性スコアが第３のしきい値を下回ると決定することと、
前記シーンに関連する１つまたは複数の第４のビデオフレームを取得することであって、前記１つまたは複数の第４のビデオフレームが前記１つまたは複数の第３のビデオフレームの後にある、１つまたは複数の第４のビデオフレームを取得することと、
前記コンピューティングデバイスのジャイロスコープからのジャイロスコープデータに基づいて前記拡張現実効果を表示することと
を含む動作を実施するようにさらに動作可能である、請求項１１に記載のシステム。
【請求項１３】
前記第１の追跡データと、前記第２の追跡データと、前記第３の追跡データとが、前記シーン中の第１のオブジェクトに関連し、前記プロセッサは、前記命令を実行したとき、
前記第１の追跡アルゴリズム、前記第２の追跡アルゴリズム、または第３の追跡アルゴリズムを使用して、前記シーン中の第２のオブジェクトに関連する第４の追跡データを生成することであって、前記第４の追跡データが、前記１つまたは複数の第１のビデオフレームと、前記１つまたは複数の第２のビデオフレームと、前記１つまたは複数の第３のビデオフレームとに基づく、第４の追跡データを生成することと、
前記第４の追跡データに基づいて第２の拡張現実効果を表示することと
を含む動作を実施するようにさらに動作可能である、請求項１１に記載のシステム。
【請求項１４】
前記プロセッサが、前記命令を実行したとき、
前記第１の追跡データに基づいて表示された前記拡張現実効果のフレームの数に基づいて性能スコアを生成することと、
前記性能スコアが基準を満たすと決定することと
を含む動作を実施するようにさらに動作可能である、請求項１１に記載のシステム。
【請求項１５】
前記プロセッサが、前記命令を実行したとき、
前記第２の追跡データを、前記第２の追跡アルゴリズムに適合するフォーマットに変換すること
を含む動作を実施するようにさらに動作可能であり、
前記第３の追跡データを前記生成することが、前記変換された第２の追跡データにさらに基づく、請求項１１に記載のシステム。
【請求項１６】
ソフトウェアを具現する１つまたは複数のコンピュータ可読非一時的記憶媒体であって、前記ソフトウェアは、実行されたとき、１つまたは複数のプロセッサに、
シーンに関連する１つまたは複数の第１のビデオフレームを取得することと、
前記１つまたは複数の第１のビデオフレームに基づいて、第１の追跡アルゴリズムを使用して第１の追跡データを生成することと、
前記第１の追跡データに関連する第１の信頼性スコアを生成することと、
前記第１の追跡データに基づいて拡張現実効果を表示することと、
前記第１の信頼性スコアが第１のしきい値を上回ると決定することと、
前記シーンに関連する１つまたは複数の第２のビデオフレームを取得することであって、前記１つまたは複数の第２のビデオフレームが前記１つまたは複数の第１のビデオフレームの後にある、１つまたは複数の第２のビデオフレームを取得することと、
前記１つまたは複数の第２のビデオフレームに基づいて、前記第１の追跡アルゴリズムを使用して第２の追跡データを生成することと、
前記第２の追跡データに関連する第２の信頼性スコアを生成することと、
前記第２の信頼性スコアが第２のしきい値を下回ると決定することと、
前記シーンに関連する１つまたは複数の第３のビデオフレームを取得することであって、前記１つまたは複数の第３のビデオフレームが前記１つまたは複数の第２のビデオフレームの後にある、１つまたは複数の第３のビデオフレームを取得することと、
前記１つまたは複数の第３のビデオフレームに基づいて、前記第１の追跡アルゴリズムとは異なる第２の追跡アルゴリズムを使用して第３の追跡データを生成することであって、前記第２の追跡アルゴリズムは、前記第２の信頼性スコアが前記第２のしきい値を下回ると前記決定したことに応答して選択される、第３の追跡データを生成することと、
前記第３の追跡データに基づいて前記拡張現実効果を表示することと
を含む動作を実施させるように動作可能である、１つまたは複数のコンピュータ可読非一時的記憶媒体。
【請求項１７】
前記ソフトウェアは、実行されたとき、前記１つまたは複数のプロセッサに、
前記第３の追跡データに関連する第３の信頼性スコアを生成することと、
前記第３の信頼性スコアが第３のしきい値を下回ると決定することと、
前記シーンに関連する１つまたは複数の第４のビデオフレームを取得することであって、前記１つまたは複数の第４のビデオフレームが前記１つまたは複数の第３のビデオフレームの後にある、１つまたは複数の第４のビデオフレームを取得することと、
前記コンピューティングデバイスのジャイロスコープからのジャイロスコープデータに基づいて前記拡張現実効果を表示することと
を含む動作を実施させるようにさらに動作可能である、請求項１６に記載の媒体。
【請求項１８】
前記第１の追跡データと、前記第２の追跡データと、前記第３の追跡データとが、前記シーン中の第１のオブジェクトに関連し、前記ソフトウェアは、実行されたとき、前記１つまたは複数のプロセッサに、
前記第１の追跡アルゴリズム、前記第２の追跡アルゴリズム、または第３の追跡アルゴリズムを使用して、前記シーン中の第２のオブジェクトに関連する第４の追跡データを生成することであって、前記第４の追跡データが、前記１つまたは複数の第１のビデオフレームと、前記１つまたは複数の第２のビデオフレームと、前記１つまたは複数の第３のビデオフレームとに基づく、第４の追跡データを生成することと、
前記第４の追跡データに基づいて第２の拡張現実効果を表示することと
を含む動作を実施させるようにさらに動作可能である、請求項１６に記載の媒体。
【請求項１９】
前記ソフトウェアは、実行されたとき、前記１つまたは複数のプロセッサに、
前記第１の追跡データに基づいて表示された前記拡張現実効果のフレームの数に基づいて性能スコアを生成することと、
前記性能スコアが基準を満たすと決定することと
を含む動作を実施させるようにさらに動作可能である、請求項１６に記載の媒体。
【請求項２０】
前記ソフトウェアは、実行されたとき、前記１つまたは複数のプロセッサに、
前記第２の追跡データを、前記第２の追跡アルゴリズムに適合するフォーマットに変換すること
を含む動作を実施させるようにさらに動作可能であり、
前記第３の追跡データを前記生成することが、前記変換された第２の追跡データにさらに基づく、請求項１６に記載の媒体。
【請求項２１】
コンピューティングデバイスによって、
シーンに関連する１つまたは複数の第１のビデオフレームを取得することと、
前記１つまたは複数の第１のビデオフレームに基づいて、第１の追跡アルゴリズムを使用して第１の追跡データを生成することと、
前記第１の追跡データに関連する第１の信頼性スコアを生成することと、
前記第１の追跡データに基づいて拡張現実効果を表示することと、
前記第１の信頼性スコアが第１のしきい値を上回ると決定することと、
前記シーンに関連する１つまたは複数の第２のビデオフレームを取得することであって、前記１つまたは複数の第２のビデオフレームが前記１つまたは複数の第１のビデオフレームの後にある、１つまたは複数の第２のビデオフレームを取得することと、
前記１つまたは複数の第２のビデオフレームに基づいて、前記第１の追跡アルゴリズムを使用して第２の追跡データを生成することと、
前記第２の追跡データに関連する第２の信頼性スコアを生成することと、
前記第２の信頼性スコアが第２のしきい値を下回ると決定することと、
前記シーンに関連する１つまたは複数の第３のビデオフレームを取得することであって、前記１つまたは複数の第３のビデオフレームが前記１つまたは複数の第２のビデオフレームの後にある、１つまたは複数の第３のビデオフレームを取得することと、
前記１つまたは複数の第３のビデオフレームに基づいて、前記第１の追跡アルゴリズムとは異なる第２の追跡アルゴリズムを使用して第３の追跡データを生成することであって、前記第２の追跡アルゴリズムは、前記第２の信頼性スコアが前記第２のしきい値を下回ると前記決定したことに応答して選択される、第３の追跡データを生成することと、
前記第３の追跡データに基づいて前記拡張現実効果を表示することと
を含む、方法。
【請求項２２】
前記第３の追跡データに関連する第３の信頼性スコアを生成することと、
前記第３の信頼性スコアが第３のしきい値を下回ると決定することと、
前記シーンに関連する１つまたは複数の第４のビデオフレームを取得することであって、前記１つまたは複数の第４のビデオフレームが前記１つまたは複数の第３のビデオフレームの後にある、１つまたは複数の第４のビデオフレームを取得することと、
前記コンピューティングデバイスのジャイロスコープからのジャイロスコープデータに基づいて前記拡張現実効果を表示することと
をさらに含む、請求項２１に記載の方法。
【請求項２３】
前記第１の追跡データと、前記第２の追跡データと、前記第３の追跡データとが、前記シーン中の第１のオブジェクトに関連し、前記方法は、
前記第１の追跡アルゴリズム、前記第２の追跡アルゴリズム、または第３の追跡アルゴリズムを使用して、前記シーン中の第２のオブジェクトに関連する第４の追跡データを生成することであって、前記第４の追跡データが、前記１つまたは複数の第１のビデオフレームと、前記１つまたは複数の第２のビデオフレームと、前記１つまたは複数の第３のビデオフレームとに基づく、第４の追跡データを生成することと、
前記第４の追跡データに基づいて第２の拡張現実効果を表示することと
をさらに含む、請求項２１または２２に記載の方法。
【請求項２４】
（ｉ）前記第１の追跡データに基づいて表示された前記拡張現実効果のフレームの数に基づいて性能スコアを生成し、
前記性能スコアが基準を満たすと決定すること、あるいは随意に、前記性能スコアが前記基準を満たさないおよび／または前記第２の信頼性スコアが前記第２のしきい値を下回ると決定すると、前記第２の追跡アルゴリズムを選択すること、ならびに
（ｉｉ）前記第２の追跡データを、前記第２の追跡アルゴリズムに適合するフォーマットに変換すること
のうちの少なくとも１つをさらに含み、
前記第３の追跡データを前記生成することが、前記変換された第２の追跡データにさらに基づく、請求項２１から２３のいずれか一項に記載の方法。
【請求項２５】
（ｉ）前記コンピューティングデバイスの１つまたは複数の能力が１つまたは複数の所定の能力標準を下回ると決定し、
追跡グラニュラリティを低減するように前記第１の追跡アルゴリズムまたは前記第２の追跡アルゴリズムを設定すること、および
（ｉｉ）前記コンピューティングデバイスの１つまたは複数の能力が１つまたは複数の所定の能力標準を満たすと決定し、
前記１つまたは複数の能力が前記１つまたは複数の所定の基準を満たすと前記決定したことに基づいて、前記第１の追跡アルゴリズムに関連するソフトウェアをダウンロードすること
のうちの少なくとも１つをさらに含む、請求項２１から２４のいずれか一項に記載の方法。
【請求項２６】
前記第１の追跡アルゴリズムが前記第２の追跡アルゴリズムよりも計算コストが高い、請求項２１から２５のいずれか一項に記載の方法。
【請求項２７】
前記第１の追跡アルゴリズムがＳＬＡＭアルゴリズムまたは顔認識アルゴリズムであり、前記第２の追跡アルゴリズムが領域追跡アルゴリズムであり、および／あるいは
前記第１のしきい値と前記第２のしきい値とが同じである、請求項２１から２６のいずれか一項に記載の方法。
【請求項２８】
１つまたは複数のプロセッサと、前記プロセッサのうちの１つまたは複数に結合された１つまたは複数のコンピュータ可読非一時的記憶媒体とを備えるシステムであって、前記１つまたは複数のコンピュータ可読非一時的記憶媒体は、前記プロセッサのうちの１つまたは複数によって実行されたとき、前記システムに、請求項２１から２７のいずれか一項に記載の方法、および／または
シーンに関連する１つまたは複数の第１のビデオフレームを取得することと、
前記１つまたは複数の第１のビデオフレームに基づいて、第１の追跡アルゴリズムを使用して第１の追跡データを生成することと、
前記第１の追跡データに関連する第１の信頼性スコアを生成することと、
前記第１の追跡データに基づいて拡張現実効果を表示することと、
前記第１の信頼性スコアが第１のしきい値を上回ると決定することと、
前記シーンに関連する１つまたは複数の第２のビデオフレームを取得することであって、前記１つまたは複数の第２のビデオフレームが前記１つまたは複数の第１のビデオフレームの後にある、１つまたは複数の第２のビデオフレームを取得することと、
前記１つまたは複数の第２のビデオフレームに基づいて、前記第１の追跡アルゴリズムを使用して第２の追跡データを生成することと、
前記第２の追跡データに関連する第２の信頼性スコアを生成することと、
前記第２の信頼性スコアが第２のしきい値を下回ると決定することと、
前記シーンに関連する１つまたは複数の第３のビデオフレームを取得することであって、前記１つまたは複数の第３のビデオフレームが前記１つまたは複数の第２のビデオフレームの後にある、１つまたは複数の第３のビデオフレームを取得することと、
前記１つまたは複数の第３のビデオフレームに基づいて、前記第１の追跡アルゴリズムとは異なる第２の追跡アルゴリズムを使用して第３の追跡データを生成することであって、前記第２の追跡アルゴリズムは、前記第２の信頼性スコアが前記第２のしきい値を下回ると前記決定したことに応答して選択される、第３の追跡データを生成することと、
前記第３の追跡データに基づいて前記拡張現実効果を表示することと
を含む動作を実施させるように動作可能な命令を備える、システム。
【請求項２９】
前記プロセッサは、前記命令を実行したとき、
前記第３の追跡データに関連する第３の信頼性スコアを生成することと、
前記第３の信頼性スコアが第３のしきい値を下回ると決定することと、
前記シーンに関連する１つまたは複数の第４のビデオフレームを取得することであって、前記１つまたは複数の第４のビデオフレームが前記１つまたは複数の第３のビデオフレームの後にある、１つまたは複数の第４のビデオフレームを取得することと、
前記コンピューティングデバイスのジャイロスコープからのジャイロスコープデータに基づいて前記拡張現実効果を表示することと
を含む動作を実施するようにさらに動作可能である、請求項２８に記載のシステム。
【請求項３０】
前記第１の追跡データと、前記第２の追跡データと、前記第３の追跡データとが、前記シーン中の第１のオブジェクトに関連し、前記プロセッサは、前記命令を実行したとき、
前記第１の追跡アルゴリズム、前記第２の追跡アルゴリズム、または第３の追跡アルゴリズムを使用して、前記シーン中の第２のオブジェクトに関連する第４の追跡データを生成することであって、前記第４の追跡データが、前記１つまたは複数の第１のビデオフレームと、前記１つまたは複数の第２のビデオフレームと、前記１つまたは複数の第３のビデオフレームとに基づく、第４の追跡データを生成することと、
前記第４の追跡データに基づいて第２の拡張現実効果を表示することと
を含む動作を実施するようにさらに動作可能である、請求項２８または２９に記載のシステム。
【請求項３１】
前記プロセッサは、前記命令を実行したとき、
（ｉ）前記第１の追跡データに基づいて表示された前記拡張現実効果のフレームの数に基づいて性能スコアを生成し、
前記性能スコアが基準を満たすと決定すること、および
（ｉｉ）前記第２の追跡データを、前記第２の追跡アルゴリズムに適合するフォーマットに変換すること
のうちの少なくとも１つを含む動作を実施するようにさらに動作可能であり、
前記第３の追跡データを前記生成することが、前記変換された第２の追跡データにさらに基づく、請求項２８から３０のいずれか一項に記載のシステム。
【請求項３２】
命令を備えるコンピュータプログラムであって、前記命令は、前記プログラムがコンピュータによって実行されたとき、前記コンピュータに、請求項２１から２７のいずれか一項に記載の方法、および／または
シーンに関連する１つまたは複数の第１のビデオフレームを取得することと、
前記１つまたは複数の第１のビデオフレームに基づいて、第１の追跡アルゴリズムを使用して第１の追跡データを生成することと、
前記第１の追跡データに関連する第１の信頼性スコアを生成することと、
前記第１の追跡データに基づいて拡張現実効果を表示することと、
前記第１の信頼性スコアが第１のしきい値を上回ると決定することと、
前記シーンに関連する１つまたは複数の第２のビデオフレームを取得することであって、前記１つまたは複数の第２のビデオフレームが前記１つまたは複数の第１のビデオフレームの後にある、１つまたは複数の第２のビデオフレームを取得することと、
前記１つまたは複数の第２のビデオフレームに基づいて、前記第１の追跡アルゴリズムを使用して第２の追跡データを生成することと、
前記第２の追跡データに関連する第２の信頼性スコアを生成することと、
前記第２の信頼性スコアが第２のしきい値を下回ると決定することと、
前記シーンに関連する１つまたは複数の第３のビデオフレームを取得することであって、前記１つまたは複数の第３のビデオフレームが前記１つまたは複数の第２のビデオフレームの後にある、１つまたは複数の第３のビデオフレームを取得することと、
前記１つまたは複数の第３のビデオフレームに基づいて、前記第１の追跡アルゴリズムとは異なる第２の追跡アルゴリズムを使用して第３の追跡データを生成することであって、前記第２の追跡アルゴリズムは、前記第２の信頼性スコアが前記第２のしきい値を下回ると前記決定したことに応答して選択される、第３の追跡データを生成することと、
前記第３の追跡データに基づいて前記拡張現実効果を表示することと
を含む動作を実施させる、コンピュータプログラム。
【請求項３３】
前記コンピュータプログラムは、実行されたとき、前記コンピュータに、
前記第３の追跡データに関連する第３の信頼性スコアを生成することと、
前記第３の信頼性スコアが第３のしきい値を下回ると決定することと、
前記シーンに関連する１つまたは複数の第４のビデオフレームを取得することであって、前記１つまたは複数の第４のビデオフレームが前記１つまたは複数の第３のビデオフレームの後にある、１つまたは複数の第４のビデオフレームを取得することと、
前記コンピューティングデバイスのジャイロスコープからのジャイロスコープデータに基づいて前記拡張現実効果を表示することと
を含む動作を実施させるようにさらに動作可能である、請求項３２に記載のコンピュータプログラム。
【請求項３４】
前記第１の追跡データと、前記第２の追跡データと、前記第３の追跡データとが、前記シーン中の第１のオブジェクトに関連し、
前記コンピュータプログラムは、実行されたとき、前記コンピュータに、
前記第１の追跡アルゴリズム、前記第２の追跡アルゴリズム、または第３の追跡アルゴリズムを使用して、前記シーン中の第２のオブジェクトに関連する第４の追跡データを生成することであって、前記第４の追跡データが、前記１つまたは複数の第１のビデオフレームと、前記１つまたは複数の第２のビデオフレームと、前記１つまたは複数の第３のビデオフレームとに基づく、第４の追跡データを生成することと、
前記第４の追跡データに基づいて第２の拡張現実効果を表示することと
を含む動作を実施させるようにさらに動作可能である、請求項３２または３３に記載のコンピュータプログラム。
【請求項３５】
前記コンピュータプログラムは、実行されたとき、前記コンピュータに、
（ｉ）前記第１の追跡データに基づいて表示された前記拡張現実効果のフレームの数に基づいて性能スコアを生成し、
前記性能スコアが基準を満たすと決定すること、および
（ｉｉ）前記第２の追跡データを、前記第２の追跡アルゴリズムに適合するフォーマットに変換すること
のうちの少なくとも１つを含む動作を実施させるようにさらに動作可能であり、
前記第３の追跡データを前記生成することが、前記変換された第２の追跡データにさらに基づく、請求項３２から３４のいずれか一項に記載のコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般に、拡張現実効果に関し、特に、オブジェクトを追跡するためのシステムおよび方法に関する。
【背景技術】
【０００２】
拡張現実（ＡＲ）効果は、現実世界のシーンのユーザの視界に重畳されるかまたは組み込まれるコンピュータ生成された視覚効果（たとえば、画像およびアニメーション）である。いくつかのＡＲ効果は、現実世界においてオブジェクトを追跡するように設定され得る。たとえば、コンピュータ生成されたユニコーンが、ビデオにおいてキャプチャされる現実世界のテーブル上に配置され得る。テーブルが（たとえば、カメラが移動することまたはテーブルが運び去られることにより）キャプチャされたビデオにおいて移動するとき、生成されたユニコーンは、テーブルの上に現れ続けるように、テーブルについて行き得る。この効果を達成するために、ＡＲアプリケーションは、追跡アルゴリズムを使用して、現実世界のシーンに現れるオブジェクトの位置および／または配向を追跡し、得られた追跡データを使用して、適切なＡＲ効果を生成し得る。ＡＲ効果は、シーンが観測されている間、リアルタイムまたはほぼリアルタイムで現実世界のシーンを拡張し得るので、追跡データは、ＡＲ効果が望まれるように現れるように、リアルタイムまたはほぼリアルタイムで生成される必要があり得る。
【０００３】
しかしながら、追跡アルゴリズムは、望まれる結果を動的に生成するために著しいハードウェアリソースを必要とし得る。ＡＲアプリケーションは、異なるレベルのリソースおよび能力をもつデバイス上で稼働され得るので、画一的な（ｏｎｅ−ｓｉｚｅ−ｆｉｔｓ−ａｌｌ）手法は、品質の妥協を生じ得る。たとえば、最良であるが（計算要件に関して）最もコストがかかるアルゴリズムを実装するＡＲアプリケーションは、最良ではないデバイス上で著しいラグまたはフレームドロップを伴うＡＲ効果を生成し得る。一方、ＡＲアプリケーションが、代わりに、最適ではない結果をもたらすあまりコストがかからないアルゴリズムを実装する場合、そうすることは、ＡＲアプリケーションが最先端のデバイス上でその潜在能力を十分に発揮して稼働していないことを意味する。ＡＲアプリケーションが稼働するハードウェアに加えて、追跡アルゴリズムが追跡するように求められ得る現実世界のオブジェクトの種類を予測することは、困難であり得る。いくつかの追跡アルゴリズムは、いくつかの特性をもつオブジェクトを追跡するのに他の追跡アルゴリズムよりも好適であり得るので、単一の追跡アルゴリズムを実装するＡＲアプリケーションは、時々、十分に機能しないことがある。たとえば、ＡＲアプリケーションが、極めて正確であるがあまりロバストでない追跡アルゴリズムを実装する場合、ＡＲアプリケーションは、そのアルゴリズムに好適である特定の動作条件に限定され得る。一方、ＡＲアプリケーションがよりロバストであるがあまり正確でない追跡アルゴリズムを実装する場合、ＡＲアプリケーションは、他のより正確な追跡アルゴリズムが利用可能である状況において準最適に機能している。
【発明の概要】
【０００４】
本明細書で説明される実施形態は、ＡＲアプリケーションが、基礎をなすデバイスの能力および現在の動作中環境を仮定して最適なＡＲ効果をもたらすために、異なるアルゴリズム間で動的に切り替えることを可能にするためのシステムおよび方法に関する。これらのアルゴリズム間で切り替えるための特定の実施形態は、（たとえば、正確さおよび／または計算コストに関する）漸進的ダウングレーディング（ｄｏｗｎｇｒａｄｉｎｇ）手法をとる。これが意味することは、アルゴリズムが、最初に、最も高い計算リソースを必要とする高品質アルゴリズムを使用してオブジェクトを追跡することを試み、性能が満足のいくものになるまで、より少ない計算リソースを必要とする次の段階（ｔｉｅｒ）のアルゴリズムにダウングレードし（ｄｏｗｎｇｒａｄｅ）得ることである。したがって、本明細書で説明される特定の実施形態は、ＡＲ効果が生成される様式がリアルタイムの性能および／またはデバイスリソースに基づいて動的に調整し得るので、ＡＲアプリケーションのロバストネスを改善し得る。さらに、追跡アルゴリズムの正確さおよび性能は現実世界のシーンの特性（たとえば、オブジェクトの形状および移動、照明など）にも依存し得るので、最も適切な追跡アルゴリズムは、現実世界のシーンが変化するときに最適な結果をもたらすように、動的に選択され得る。
【０００５】
本明細書で開示される実施形態は例にすぎず、本開示の範囲はそれらに限定されない。特定の実施形態は、上記で開示された実施形態の構成要素、要素、特徴、機能、動作、またはステップのすべてを含むか、いくつかを含むか、またはいずれをも含まないことがある。本発明による実施形態は、特に、方法、記憶媒体、システムおよびコンピュータプログラム製品を対象とする添付の特許請求の範囲で開示され、１つの請求項カテゴリー、たとえば、方法において述べられた任意の特徴は、別の請求項カテゴリー、たとえば、システムにおいても請求され得る。添付の特許請求の範囲における従属関係または参照は、形式上の理由で選定されるにすぎない。ただし、前の請求項への意図的な参照（特に複数の従属関係）から生じる主題も請求され得、その結果、請求項とその特徴との任意の組合せが、開示され、添付の特許請求の範囲で選定された従属関係にかかわらず請求され得る。請求され得る主題は、添付の特許請求の範囲に記載の特徴の組合せだけでなく、特許請求の範囲における特徴の任意の他の組合せをも含み、特許請求の範囲において述べられた各特徴は、特許請求の範囲における任意の他の特徴または他の特徴の組合せと組み合わせられ得る。さらに、本明細書で説明または示される実施形態および特徴のいずれかは、別個の請求項において、ならびに／あるいは、本明細書で説明もしくは示される任意の実施形態もしくは特徴との、または添付の特許請求の範囲の特徴のいずれかとの任意の組合せで請求され得る。
【０００６】
本発明による実施形態は、特に、方法、システムおよびコンピュータプログラムを対象とする添付の特許請求の範囲で開示され、１つの請求項カテゴリー、たとえば、方法において述べられた任意の特徴は、別の請求項カテゴリー、たとえば、システムにおいても請求され得る。添付の特許請求の範囲における従属関係または参照は、形式上の理由で選定されるにすぎない。ただし、前の請求項への意図的な参照（特に複数の従属関係）から生じる主題も請求され得、その結果、請求項とその特徴との任意の組合せが、開示され、添付の特許請求の範囲で選定された従属関係にかかわらず請求され得る。請求され得る主題は、添付の特許請求の範囲に記載の特徴の組合せだけでなく、特許請求の範囲における特徴の任意の他の組合せをも含み、特許請求の範囲において述べられた各特徴は、特許請求の範囲における任意の他の特徴または他の特徴の組合せと組み合わせられ得る。さらに、本明細書で説明または示される実施形態および特徴のいずれかは、別個の請求項において、ならびに／あるいは、本明細書で説明もしくは示される任意の実施形態もしくは特徴との、または添付の特許請求の範囲の特徴のいずれかとの任意の組合せで請求され得る。
【０００７】
本発明による一実施形態では、方法は、コンピューティングデバイスによって、
シーンに関連する１つまたは複数の第１のビデオフレームを取得することと、
１つまたは複数の第１のビデオフレームに基づいて、第１の追跡アルゴリズムを使用して第１の追跡データを生成することと、
第１の追跡データに関連する第１の信頼性スコアを生成することと、
第１の追跡データに基づいて拡張現実効果を表示することと、
第１の信頼性スコアが第１のしきい値を上回ると決定することと、
シーンに関連する１つまたは複数の第２のビデオフレームを取得することであって、１つまたは複数の第２のビデオフレームが１つまたは複数の第１のビデオフレームの後にある、１つまたは複数の第２のビデオフレームを取得することと、
１つまたは複数の第２のビデオフレームに基づいて、第１の追跡アルゴリズムを使用して第２の追跡データを生成することと、
第２の追跡データに関連する第２の信頼性スコアを生成することと、
第２の信頼性スコアが第２のしきい値を下回ると決定することと、
シーンに関連する１つまたは複数の第３のビデオフレームを取得することであって、１つまたは複数の第３のビデオフレームが１つまたは複数の第２のビデオフレームの後にある、１つまたは複数の第３のビデオフレームを取得することと、
１つまたは複数の第３のビデオフレームに基づいて、第１の追跡アルゴリズムとは異なる第２の追跡アルゴリズムを使用して第３の追跡データを生成することであって、第２の追跡アルゴリズムは、第２の信頼性スコアが第２のしきい値を下回ると決定したことに応答して選択される、第３の追跡データを生成することと、
第３の追跡データに基づいて拡張現実効果を表示することと
を含み得る。
【０００８】
本方法は、
第３の追跡データに関連する第３の信頼性スコアを生成することと、
第３の信頼性スコアが第３のしきい値を下回ると決定することと、
シーンに関連する１つまたは複数の第４のビデオフレームを取得することであって、１つまたは複数の第４のビデオフレームが１つまたは複数の第３のビデオフレームの後にある、１つまたは複数の第４のビデオフレームを取得することと、
コンピューティングデバイスのジャイロスコープからのジャイロスコープデータに基づいて拡張現実効果を表示することと
をさらに含み得る。
【０００９】
本方法の一実施形態では、第１の追跡データと、第２の追跡データと、第３の追跡データとが、シーン中の第１のオブジェクトに関連し、本方法は、
第１の追跡アルゴリズム、第２の追跡アルゴリズム、または第３の追跡アルゴリズムを使用して、シーン中の第２のオブジェクトに関連する第４の追跡データを生成することであって、第４の追跡データが、１つまたは複数の第１のビデオフレームと、１つまたは複数の第２のビデオフレームと、１つまたは複数の第３のビデオフレームとに基づく、第４の追跡データを生成することと、
第４の追跡データに基づいて第２の拡張現実効果を表示することと
をさらに含み得る。
【００１０】
本方法は、
（ｉ）第１の追跡データに基づいて表示された拡張現実効果のフレームの数に基づいて性能スコアを生成し、
性能スコアが基準を満たすと決定すること、あるいは随意に、性能スコアが基準を満たさないおよび／または第２の信頼性スコアが第２のしきい値を下回ると決定すると、第２の追跡アルゴリズムを選択すること、ならびに
（ｉｉ）第２の追跡データを、第２の追跡アルゴリズムに適合するフォーマットに変換すること
のうちの少なくとも１つをさらに含み得、
第３の追跡データを生成することが、変換された第２の追跡データにさらに基づく。
【００１１】
本方法は、
（ｉ）コンピューティングデバイスの１つまたは複数の能力が１つまたは複数の所定の能力標準を下回ると決定し、
追跡グラニュラリティを低減するように第１の追跡アルゴリズムまたは第２の追跡アルゴリズムを設定すること、および
（ｉｉ）コンピューティングデバイスの１つまたは複数の能力が１つまたは複数の所定の能力標準を満たすと決定し、
１つまたは複数の能力が１つまたは複数の所定の基準を満たすと決定したことに基づいて、第１の追跡アルゴリズムに関連するソフトウェアをダウンロードすること
のうちの少なくとも１つをさらに含み得る。
【００１２】
第１の追跡アルゴリズムは第２の追跡アルゴリズムよりも計算コストが高くなり得る。
【００１３】
本方法の一実施形態では、
第１の追跡アルゴリズムがＳＬＡＭアルゴリズムまたは顔認識アルゴリズムであり得、第２の追跡アルゴリズムが領域追跡アルゴリズムであり、および／あるいは
第１のしきい値と第２のしきい値とが同じであり得る。
【００１４】
本発明の別の態様によれば、１つまたは複数のプロセッサと、プロセッサのうちの１つまたは複数に結合された１つまたは複数のコンピュータ可読非一時的記憶媒体とを備えるシステムであって、１つまたは複数のコンピュータ可読非一時的記憶媒体は、プロセッサのうちの１つまたは複数によって実行されたとき、システムに、本発明による方法、および／または
シーンに関連する１つまたは複数の第１のビデオフレームを取得することと、
１つまたは複数の第１のビデオフレームに基づいて、第１の追跡アルゴリズムを使用して第１の追跡データを生成することと、
第１の追跡データに関連する第１の信頼性スコアを生成することと、
第１の追跡データに基づいて拡張現実効果を表示することと、
第１の信頼性スコアが第１のしきい値を上回ると決定することと、
シーンに関連する１つまたは複数の第２のビデオフレームを取得することであって、１つまたは複数の第２のビデオフレームが１つまたは複数の第１のビデオフレームの後にある、１つまたは複数の第２のビデオフレームを取得することと、
１つまたは複数の第２のビデオフレームに基づいて、第１の追跡アルゴリズムを使用して第２の追跡データを生成することと、
第２の追跡データに関連する第２の信頼性スコアを生成することと、
第２の信頼性スコアが第２のしきい値を下回ると決定することと、
シーンに関連する１つまたは複数の第３のビデオフレームを取得することであって、１つまたは複数の第３のビデオフレームが１つまたは複数の第２のビデオフレームの後にある、１つまたは複数の第３のビデオフレームを取得することと、
１つまたは複数の第３のビデオフレームに基づいて、第１の追跡アルゴリズムとは異なる第２の追跡アルゴリズムを使用して第３の追跡データを生成することであって、第２の追跡アルゴリズムは、第２の信頼性スコアが第２のしきい値を下回ると決定したことに応答して選択される、第３の追跡データを生成することと、
第３の追跡データに基づいて拡張現実効果を表示することと
を含む動作を実施させるように動作可能な命令を備える、システムが提供される。
【００１５】
本システムの一実施形態では、プロセッサは、命令を実行したとき、
第３の追跡データに関連する第３の信頼性スコアを生成することと、
第３の信頼性スコアが第３のしきい値を下回ると決定することと、
シーンに関連する１つまたは複数の第４のビデオフレームを取得することであって、１つまたは複数の第４のビデオフレームが１つまたは複数の第３のビデオフレームの後にある、１つまたは複数の第４のビデオフレームを取得することと、
コンピューティングデバイスのジャイロスコープからのジャイロスコープデータに基づいて拡張現実効果を表示することと
を含む動作を実施するようにさらに動作可能である。
【００１６】
本システムの一実施形態では、第１の追跡データと、第２の追跡データと、第３の追跡データとが、シーン中の第１のオブジェクトに関連し、プロセッサは、命令を実行したとき、
第１の追跡アルゴリズム、第２の追跡アルゴリズム、または第３の追跡アルゴリズムを使用して、シーン中の第２のオブジェクトに関連する第４の追跡データを生成することであって、第４の追跡データが、１つまたは複数の第１のビデオフレームと、１つまたは複数の第２のビデオフレームと、１つまたは複数の第３のビデオフレームとに基づく、第４の追跡データを生成することと、
第４の追跡データに基づいて第２の拡張現実効果を表示することと
を含む動作を実施するようにさらに動作可能である。
【００１７】
本システムの一実施形態では、プロセッサは、命令を実行したとき、
（ｉ）第１の追跡データに基づいて表示された拡張現実効果のフレームの数に基づいて性能スコアを生成し、
性能スコアが基準を満たすと決定すること、および
（ｉｉ）第２の追跡データを、第２の追跡アルゴリズムに適合するフォーマットに変換すること
のうちの少なくとも１つを含む動作を実施するようにさらに動作可能であり、
第３の追跡データを生成することが、変換された第２の追跡データにさらに基づく。
【００１８】
本発明の別の態様によれば、命令を備えるコンピュータプログラムまたはコンピュータプログラム製品であって、命令は、プログラムがコンピュータによって実行されたとき、コンピュータに、本発明による方法、および／または
シーンに関連する１つまたは複数の第１のビデオフレームを取得することと、
１つまたは複数の第１のビデオフレームに基づいて、第１の追跡アルゴリズムを使用して第１の追跡データを生成することと、
第１の追跡データに関連する第１の信頼性スコアを生成することと、
第１の追跡データに基づいて拡張現実効果を表示することと、
第１の信頼性スコアが第１のしきい値を上回ると決定することと、
シーンに関連する１つまたは複数の第２のビデオフレームを取得することであって、１つまたは複数の第２のビデオフレームが１つまたは複数の第１のビデオフレームの後にある、１つまたは複数の第２のビデオフレームを取得することと、
１つまたは複数の第２のビデオフレームに基づいて、第１の追跡アルゴリズムを使用して第２の追跡データを生成することと、
第２の追跡データに関連する第２の信頼性スコアを生成することと、
第２の信頼性スコアが第２のしきい値を下回ると決定することと、
シーンに関連する１つまたは複数の第３のビデオフレームを取得することであって、１つまたは複数の第３のビデオフレームが１つまたは複数の第２のビデオフレームの後にある、１つまたは複数の第３のビデオフレームを取得することと、
１つまたは複数の第３のビデオフレームに基づいて、第１の追跡アルゴリズムとは異なる第２の追跡アルゴリズムを使用して第３の追跡データを生成することであって、第２の追跡アルゴリズムは、第２の信頼性スコアが第２のしきい値を下回ると決定したことに応答して選択される、第３の追跡データを生成することと、
第３の追跡データに基づいて拡張現実効果を表示することと
を含む動作を実施させる、コンピュータプログラムまたはコンピュータプログラム製品が提供される。
【００１９】
一実施形態では、コンピュータプログラムは、実行されたとき、コンピュータに、
第３の追跡データに関連する第３の信頼性スコアを生成することと、
第３の信頼性スコアが第３のしきい値を下回ると決定することと、
シーンに関連する１つまたは複数の第４のビデオフレームを取得することであって、１つまたは複数の第４のビデオフレームが１つまたは複数の第３のビデオフレームの後にある、１つまたは複数の第４のビデオフレームを取得することと、
コンピューティングデバイスのジャイロスコープからのジャイロスコープデータに基づいて拡張現実効果を表示することと
を含む動作を実施させるようにさらに動作可能である。
【００２０】
一実施形態では、
第１の追跡データと、第２の追跡データと、第３の追跡データとが、シーン中の第１のオブジェクトに関連し、
コンピュータプログラムは、実行されたとき、コンピュータに、
第１の追跡アルゴリズム、第２の追跡アルゴリズム、または第３の追跡アルゴリズムを使用して、シーン中の第２のオブジェクトに関連する第４の追跡データを生成することであって、第４の追跡データが、１つまたは複数の第１のビデオフレームと、１つまたは複数の第２のビデオフレームと、１つまたは複数の第３のビデオフレームとに基づく、第４の追跡データを生成することと、
第４の追跡データに基づいて第２の拡張現実効果を表示することと
を含む動作を実施させるようにさらに動作可能である。
【００２１】
一実施形態では、コンピュータプログラムは、実行されたとき、コンピュータに、
（ｉ）第１の追跡データに基づいて表示された拡張現実効果のフレームの数に基づいて性能スコアを生成し、
性能スコアが基準を満たすと決定すること、および
（ｉｉ）第２の追跡データを、第２の追跡アルゴリズムに適合するフォーマットに変換すること
のうちの少なくとも１つを含む動作を実施させるようにさらに動作可能であり、
第３の追跡データを生成することが、変換された第２の追跡データにさらに基づく。
【図面の簡単な説明】
【００２２】
【図１】画像またはビデオフレーム内にキャプチャされた例示的な現実世界のシーンを示す図である。
【図２】いくつかの関心オブジェクト（ｏｂｊｅｃｔ  ｏｆ  ｉｎｔｅｒｅｓｔ）に関連する追跡データの視覚表現の一例を示す図である。
【図３】ＡＲアプリケーションによって使用される追跡アルゴリズムの動的デグラデーションのための例示的な方法を示す図である。
【図４】例示的なネットワーク環境を示す図である。
【図５】例示的なコンピュータシステムを示す図である。
【発明を実施するための形態】
【００２３】
本明細書で説明される実施形態は、ＡＲアプリケーションが、基礎をなすデバイスの能力および現在の動作中環境を仮定して最適なＡＲ効果をもたらすために、異なるアルゴリズム間で動的に切り替えることを可能にするためのシステムおよび方法に関する。たとえば、ＡＲアプリケーションは、最初に、特定の追跡アルゴリズム（たとえば、以下でさらに詳細に説明される、ＳＬＡＭ）を使用してオブジェクトを追跡することを試み得、特定の追跡アルゴリズムは、オブジェクトがどのくらいうまく追跡されているかにおける信頼性レベルを表す（たとえば、追跡されたポイントの数に基づく）対応する信頼性スコアを出力し得る。信頼性スコアが十分に低い場合、ＡＲアプリケーションは、計算コストがあまり高くない別の追跡アルゴリズム（たとえば、以下でさらに詳細に説明される、領域ベース追跡）を使用することを試み得る。第２の追跡アルゴリズムに関連する信頼性スコアが満足のいくものである場合、ＡＲアプリケーションは、そのアルゴリズムを使用してオブジェクトを追跡し続け得る。しかしながら、信頼性スコアが許容できないレベルまで低下したことを検出する（たとえば、照明状態が変化する）と、ＡＲアプリケーションは、次いで、デバイスのジャイロスコープを使用することに切り替え得る。これが起こるとき、システムは、概念的に、環境の最後の知られているモデルにジャイロスコープデータを適用し、その中の前に検出されたオブジェクトの相対位置が同じままであると仮定し得る。
【００２４】
特定の実施形態では、ＡＲアプリケーションは、モバイルデバイス（たとえば、スマートフォン、タブレット、ラップトップ、ＡＲ眼鏡など）および他のタイプのコンピューティングデバイス（たとえば、デスクトップコンピュータ）を含む、任意のコンピューティングデバイス上で動作するように設定され得る。コンピューティングデバイスは、たとえば、ＣＰＵおよび／またはＧＰＵ、メモリ、キャッシュ、ストレージ、光センサー、ディスプレイ、ならびにＡＲアプリケーションによってもたらされたＡＲ効果の品質に影響を及ぼし得る任意の他のシステムリソースを含む、異なるハードウェアリソースおよび能力を有し得る。特定の実施形態では、ＡＲアプリケーションは、ＡＲアプリケーションが稼働しているデバイスに通信可能に結合されたカメラによってキャプチャされた現実世界のシーンのビデオフレームを取得するように設定され得る。ビデオフレームを処理することによって、ＡＲアプリケーションは、ビデオフレーム内にキャプチャされた現実世界のオブジェクトを追跡し得る。特定の実施形態では、ＡＲアプリケーションは、複数のタイプの追跡アルゴリズムをサポートし得る。
【００２５】
図１は、画像またはビデオフレーム１０５内にキャプチャされた例示的な現実世界のシーン１００を示す。示されたシーン１００は、猫１２０が上にいるボックス１１０を含む。シーン１００は、デスクに座っている人をさらに含み、その人の顔１３０および手１４０が視認できる。特定の実施形態では、ビデオフレーム１０５は連続フレームとともに、関心オブジェクトを追跡するために、１つまたは複数の追跡アルゴリズムを使用して、ＡＲアプリケーションによって処理され得る。特定の実施形態では、関心オブジェクトは、ＡＲアプリケーションのユーザがＡＲアプリケーションを通してタップするかまたは対話するオブジェクトを含み得る（たとえば、ユーザは、ＡＲ効果を特定のオブジェクトに関連付け得る）。特定の実施形態では、関心オブジェクトは、追加または代替として、追跡アルゴリズムによる識別可能または検出可能なオブジェクトを含み得る。
【００２６】
図２は、いくつかの関心オブジェクトに関連する追跡データの視覚表現２００の一例を示す。追跡データの視覚表現２００は、図１に示されている現実世界のシーン１００に関連し得る。たとえば、図２中のボックス２１０が、図１中の現実世界のボックス１１０についての追跡データを表し得、図２中の多角形２２０が、図１中の猫１２０についての追跡データを表し得、図２中の顔メッシュ２３０が、図１中の人の顔１３０についての追跡データを表し得、図２中の円２４０が、図１中の人の手１４０についての追跡データを表し得る。特定の実施形態では、シーン中の関心オブジェクトに関連する追跡データは、コンカレントに動作する１つまたは複数の追跡アルゴリズムを使用して生成され得る。たとえば、ボックス２１０によって表される追跡データは、同時位置特定およびマッピング（ＳＬＡＭ：Ｓｉｍｕｌｔａｎｅｏｕｓ  Ｌｏｃａｌｉｚａｔｉｏｎ  ａｎｄ  Ｍａｐｐｉｎｇ）を使用して生成され得、多角形２２０によって表される追跡データは、領域追跡アルゴリズムを使用して生成され得、顔メッシュ２３０によって表される追跡データは、顔追跡アルゴリズムを使用して生成され得、円２４０によって表される追跡データは、手追跡アルゴリズムを使用して生成され得る。特定の実施形態では、特定のオブジェクトまたは領域を追跡するために使用される追跡アルゴリズムは、シーン中の他のオブジェクトまたは領域を追跡するために使用される任意の他の追跡アルゴリズムとは無関係に切り替えられるかまたは調整され得る。たとえば、人の顔１３０を追跡するために使用される追跡アルゴリズムは、顔追跡アルゴリズムから領域追跡アルゴリズムに動的に切り替え得、他のオブジェクト（たとえば、ボックス１１０、猫１２０、および／または手１４０）を追跡するために使用される追跡アルゴリズムは、不変のままであり得る。
【００２７】
特定の実施形態では、異なるアルゴリズムは異なる程度の計算要件を有し、異なるタイプのシーンに好適であるので、追跡アルゴリズムを動的に切り替えることが望ましいことがある。高い正確さでオブジェクトを追跡する追跡アルゴリズムの一例は、同時位置特定およびマッピング（ＳＬＡＭ）である。高レベルにおいて、ＳＬＡＭは、知られていない環境の３Ｄマップをリアルタイムで生成するために使用される技法である。ＳＬＡＭは、環境の３Ｄモデルを生成することを試みるので、ＳＬＡＭは計算集約的であり、したがって、ＳＬＡＭは、望まれるように機能するためによりハイエンドのデバイスを必要とし得る。ＳＬＡＭ技法は、たとえば、カメラ、ＬｉＤＡＲ、レーダー、ジャイロスコープ、および任意の他の好適なタイプのセンサーを含む、様々なセンサーからのセンサーデータを採用し得る。特定の実施形態では、従来のモバイルフォン上に実装されるＳＬＡＭは、そのフォンの（１つまたは複数の）カメラ、ジャイロスコープ、および／または加速度計を使用し得る。概念的に、ビデオフレームを仮定すれば、ＳＬＡＭは、カメラの相対位置および配向と、シーン中の関心特徴（たとえば、しばしば、エッジ、コーナーなど）とを推定し、その推定を、動きと、得られた特徴観測とに基づいて、反復的に更新し得る。移動によるそれらの特徴の位置偏差に基づいて、ＳＬＡＭは、キャプチャされたシーン中の認識可能なオブジェクトの３Ｄモデルを生成するために三角測量技法を使用し得る。たとえば、カメラが移動するとき、関心特徴に関連するランドマークポイントが移動し得る。そのランドマーク（および他のランドマーク）の移動は、オブジェクトの３Ｄ位置および配向を推定するために使用され得る。
【００２８】
ＳＬＡＭアルゴリズムはランドマーク検出および追跡に基づくので、ＳＬＡＭは、特に、ランドマークとして使用され得る、明らかなエッジ、コーナー、または他の容易に区別できる特徴をもつ静止したオブジェクトを追跡するために有用である。ＳＬＡＭによって生成された３Ｄモデルは、関連する信頼性スコアを有し得る。特定の実施形態では、信頼性スコアは、特定のオブジェクトに関連するランドマークの数に基づき得る。多数の検出可能なランドマークは、ＳＬＡＭがシーン内のオブジェクトを正確に追跡することが可能であることを示し得る。逆に、オブジェクトについてのランドマークの数が（たとえば、シーンが、ほとんど区別できない特徴あるいはオブジェクトおよび／またはカメラによる過剰な移動によって引き起こされる画像ぶれを有することにより）しきい値を下回る場合、システムは、ＳＬＡＭ推定が信用できないと見なし得る。
【００２９】
正確さが高いが計算コストが高いアルゴリズムの別の例は、顔追跡である。特定の実施形態では、顔検出アルゴリズムは、顔特徴（たとえば、眼、鼻、口など）を検出し、それらの特徴にマッピングされたポイントを使用して顔メッシュを生成するために、機械学習モデルを使用し得る。本質的に、顔の３Ｄモデルは、人の顔（および特徴）の移動および配向を追跡するために生成される。特定の実施形態における顔メッシュは、検出された顔の輪郭を近似する複数の（たとえば、３２個、６４個など）多角形（たとえば、三角形、正方形など）の集合であり得る。顔メッシュを使用して、追跡アルゴリズムは、顔メッシュを、各ビデオフレーム中で検出された顔とマッチさせることを試み得る。顔メッシュが、ビデオフレーム中にキャプチャされた顔にどのくらい良く合うかは、（たとえば、距離測定値と、特定の多角形に対応する顔特徴が検出可能であるかどうかとに基づく）信頼性スコアとして表され得る。ユーザの顔が（たとえば、別のオブジェクト、または、ユーザの顔を視界から隠すように顔が向きを変えることにより）遮られるとき、信頼性スコアは低下し得る。特定の実施形態では、信頼性スコアは０または１であり得、０は検出不可能な顔を表し、１は検出可能な顔を表す（またはその逆もある）。
【００３０】
ＡＲアプリケーションが使用し得る別の追跡アルゴリズムは領域追跡アルゴリズムと呼ばれ、領域追跡アルゴリズムは、特定の実施形態によれば、外観ベーストラッカー（ａｐｐｅａｒａｎｃｅ−ｂａｓｅｄ  ｔｒａｃｋｅｒ）である。特定の実施形態における領域追跡アルゴリズムは、主に、（場合によっては、ビデオフレーム中のオブジェクトのロケーションをモデル化するために平面を生成し、３Ｄ空間におけるその平面の配向を決定するためにジャイロスコープデータを使用することの他に）２Ｄピクセルまたはテクスチャ情報を処理する。したがって、領域追跡アルゴリズムは、ＳＬＡＭおよび顔追跡ほど計算コストが高くない追跡アルゴリズムの一例であり得る。さらに、領域追跡アルゴリズムは、外観情報に基づいてオブジェクトを追跡し、特定のジオメトリまたは特徴（たとえば、コーナー、エッジ、眼、鼻など）を有するオブジェクトに依拠しないので、領域追跡アルゴリズムは、異なるタイプのオブジェクト（たとえば、ボトル）にわたってより広い適用可能性を有し得、ぶれに対してより耐性があり得る。領域追跡アルゴリズムはＳＬＡＭおよび顔追跡アルゴリズムほど正確でないことがあるが、領域追跡アルゴリズムは、より速く（より少ない計算リソースを必要とし）、よりロバストであり、静的オブジェクトと（たとえば、オブジェクトが移動することおよび／またはカメラが移動することに起因し得る）移動しているオブジェクトの両方を追跡するのに好適であり得る。
【００３１】
高レベルにおいて、領域追跡アルゴリズムは、オブジェクトに対応するビデオフレーム中の領域を識別しようとし、オブジェクトが次のフレーム中でどのように変わるかを確かめる。特定の実施形態では、領域追跡アルゴリズムは、一連のビデオフレーム中のオブジェクトの連続位置を識別し、追跡し得る。各ビデオフレームのピクセルは、現実世界のオブジェクトに対応し得るセグメントを識別するためにセグメンテーションアルゴリズムを使用して処理され得る。使用される特定のセグメンテーションアルゴリズムは、たとえば、当業者に知られている、動きベースまたは強度ベースであり得る。各識別されたセグメントは、シーン内のそのセグメントの形状およびロケーションを近似するためにラベリングされ、多角形を使用して表され得る。フレーム間の各多角形の動きは、２Ｄアフィン変換であると仮定され得る。オブジェクトの多角形表現と、対応する動きモデル（たとえば、機械学習分類器）とを使用して、多角形が次のフレーム中でどこにおよびどのように現れるかに関する予測が行われ得る。予測は、そのフレーム中で観測された実際のセグメントと比較され得、オブジェクトの多角形および動きモデルは、それに応じて更新され得る。数回の反復にわたって、アルゴリズムは、それぞれのフレーム中に現れる２つの多角形がおそらく同じオブジェクトであることを、あるレベルの信頼性で検出し、その２つの多角形をそのようなものとしてラベリングすることが可能であり得る。しかしながら、信頼性レベルは、オブジェクトが、十分に遮られ（たとえば、別のオブジェクトによって隠され）、現在のモデルの予測アビリティを越えて変えられ、および／または照明状態が著しく変更されて画像処理を妨害する場合、低下し得る。
【００３２】
特定の実施形態では、領域追跡アルゴリズムよりも一層計算コストが低い別の追跡アルゴリズムは、ジャイロスコープデータのみに基づき得る。一般的なモバイルデバイスは内蔵ジャイロスコープを有し、内蔵ジャイロスコープは、関連するモバイルデバイスの配向を記述するジャイロスコープデータを提供する。配向データは純粋にジャイロスコープセンサーに基づき、したがって、画像処理は必要とされない。したがって、リアルタイム配向データは、ローエンドデバイスからでもすぐに利用可能であり得る。特定の実施形態では、ジャイロスコープデータに基づく追跡推定のみが、ベースライン追跡アルゴリズムとして使用され得る。
【００３３】
特定の実施形態では、ＡＲアプリケーションは、異なる特性および計算コストをもつ追跡アルゴリズムを使用するように設定され得る。たとえば、ＡＲアプリケーションは、高い計算コストをもつ追跡アルゴリズム（たとえば、ＳＬＡＭおよび顔追跡アルゴリズム）と、中程度の計算コストをもつ追跡アルゴリズム（たとえば、領域追跡アルゴリズム）と、（たとえば、画像処理なしに、ジャイロスコープデータに基づく）低い計算コストをもつ追跡アルゴリズムとを使用し得る。特定の実施形態では、ＡＲアプリケーションは、追跡アルゴリズムのそれぞれの信頼性スコアに基づいて追跡アルゴリズム間で切り替え得る。たとえば、ＡＲアプリケーションは、最も正確な追跡アルゴリズム（たとえば、ＳＬＡＭまたは顔追跡アルゴリズム）の信頼性スコアが所定のしきい値よりも高い限り、その追跡アルゴリズムを使用することを選び得る。その信頼性スコアが所定のしきい値よりも低い場合、ＡＲアプリケーションは、相対的にあまり計算コストが高くない、相対的にあまり正確でない追跡アルゴリズム（たとえば、領域追跡アルゴリズム）に切り替え得る。特定の実施形態では、ＡＲアプリケーションは、切替えが起こったことにユーザが決して気づくことなしに、ＡＲセッション中に動的にある追跡アルゴリズムから別の追跡アルゴリズムに切り替え得る。
【００３４】
特定の実施形態では、シーン内の異なるオブジェクトまたは領域は、異なるアルゴリズムを使用して追跡され得る。たとえば、ユーザの顔は顔追跡アルゴリズムを使用して追跡され得、テーブルおよび本箱はＳＬＡＭを使用して追跡され得、歩き回るペットは領域追跡を使用して追跡され得る。各オブジェクトに関連する信頼性スコアは、異なるアルゴリズムが使用されるべきであるかどうかを決定するために、独立して生成され、評価され得る。たとえば、テーブルのいくつかの特徴が隠される（たとえば、ユーザによって遮断される）場合、テーブルについてのＳＬＡＭの信頼性スコアは、領域追跡への切替えを正当化するのに十分に低下し得る。これは、それらのそれぞれのオブジェクトまたは領域のために現在使用されている他の追跡アルゴリズムが同じままであるかまたは何らかの好適な追跡アルゴリズムに変化する間に、起こり得る。
【００３５】
図３は、ＡＲアプリケーションによって使用される追跡アルゴリズムの動的デグラデーションのための例示的な方法３００を示す。方法はステップ３１０において始まり得、ＡＲアプリケーションを稼働しているコンピューティングデバイス（たとえばモバイルフォン）が、シーンに関連する１つまたは複数のビデオフレームを取得し得る。ビデオフレームは、リポジトリから、またはデバイスに通信可能に結合されたカメラ（たとえば、モバイルフォンのカメラあるいはラップトップまたはデスクトップコンピュータに取り付けられたウェブカム）から取得され得る。デバイスに通信可能に結合されたカメラの場合、ビデオフレームは、リアルタイムでシーンをキャプチャしていることがある。キャプチャされたシーンは、図１に示されているオブジェクトなど、１つまたは複数のオブジェクトを含み得る。
【００３６】
ステップ３２０において、コンピューティングデバイスは、（１つまたは複数の）ビデオフレームに基づいて、追跡アルゴリズムを使用して追跡データを生成し得る。特定の実施形態では、このステップが、キャプチャされたシーン内のオブジェクトをＡＲアプリケーションが最初に追跡し始めたときに実施されるシナリオでは、追跡アルゴリズムは、ＳＬＡＭまたは顔追跡アルゴリズムなど、高い正確さを（ただし高い計算コストをも）提供する追跡アルゴリズムになるようにデフォルト設定され得る。追加または代替として、使用される追跡アルゴリズムは、たとえば、（たとえば、顔検出分類器を使用する）顔の検出、（ＳＬＡＭを特に好適にし得る）幾何学的形状の検出、移動の検出、または追跡アルゴリズムによって追跡されるのに好適な任意の他の特性など、特定の特性がシーン中に存在するかどうかの決定に基づいて選択され得る。特定の実施形態では、選択されたアルゴリズムは、追加または代替としてデバイス能力に基づき得、デバイス能力は、イミュータブルな（ｉｍｍｕｔａｂｌｅ）ハードウェア能力（たとえば、プロセッサ速度、総メモリなど）および現在利用可能なシステムリソース（たとえば、利用可能な処理帯域幅、利用可能なメモリなど）を含み得る。一例として、デバイス能力が、ＳＬＡＭまたは顔追跡アルゴリズムなど、より高い段階の（ｈｉｇｈｅｒ−ｔｉｅｒｅｄ）アルゴリズムをサポートし得るとＡＲアプリケーションが決定した場合、そのようなアルゴリズムが選択され得る。他の場合、利用可能なリソースで満足に稼働し得る相対的により低い段階の（ｌｏｗｅｒ−ｔｉｅｒｅｄ）アルゴリズムが、代わりに選択され得る。ＳＬＡＭを使用して生成された追跡データは、たとえば、シーンの３Ｄ表現またはシーン内のオブジェクトであり得る。顔追跡アルゴリズムを使用して生成された追跡データは、たとえば、上記で説明されたように、顔メッシュならびにその空間的位置および配向であり得る。
【００３７】
ステップ３３０において、デバイスは、生成された追跡データに関連する信頼性スコアを生成し得る。特定の実施形態では、ステップ３２０において使用された追跡アルゴリズムは、追跡データとともに信頼性スコアを出力し得る。代替または追加として、信頼性スコアは、追跡データがビデオフレームにどのくらい良くマッチするかを測定するように設定されたスコアリングエンジンによって生成され得る。信頼性スコアは、たとえば、その生成された追跡データが正確であることの信頼性のレベルを表し得る。
【００３８】
ステップ３４０において、デバイスは、追跡データに基づいて拡張現実効果を表示し得る。たとえば、ＡＲ効果が、図１に示されているボックス１１０に関連するコンピュータ生成されたアニメーションである場合、そのアニメーションは、図２に示されているようなボックス２１０の３Ｄモデルの位置、寸法、および／または配向に基づく様式でビデオフレーム上に重畳され得る。別の例として、ＡＲ効果が、図１中の人の顔１３０上に配置されるべきであるマスクである場合、マスクは、図２に示されているような顔メッシュ２３０の位置、寸法、および／または配向に基づく様式で表示され得る。ＡＲ効果は追跡データに基づいて表示されるので、ＡＲ効果が、予想されるまたは望まれるように現れるかどうかは、追跡データの正確さに依存する。
【００３９】
ステップ３５０において、デバイスは、ＡＲアプリケーションに従って、追跡データに関連する信頼性スコアがしきい値を上回るかどうか（たとえば、信頼性スコアが１つまたは複数の基準を満たすかどうか）を決定し得る。概念的に、信頼性スコアに基づくそのような決定は、追跡データが正確であるかまたは信用できるかどうかを表す。特定の実施形態では、しきい値基準は、使用される特定の追跡アルゴリズムに関連し得る。たとえば、ＳＬＡＭの信頼性スコアのためのしきい値基準は、顔追跡アルゴリズムおよび／または領域追跡アルゴリズムのしきい値基準とは異なり得る。
【００４０】
信頼性スコアが（現在の追跡アルゴリズムが十分に良く働いていることを示す）しきい値を上回ると決定されるシナリオでは、次いで、プロセスは、後続のビデオフレームが、ちょうど追跡データおよび対応する信頼性スコアを生成するために使用されたものと同じ追跡アルゴリズムを使用して追跡され続けるように、（たとえば、ステップ３１０から開始して）繰り返し得る。たとえば、デバイスは、ステップ３１０において、（１つまたは複数の）前に取得されたビデオフレームの後にある、シーンに関連する（１つまたは複数の）ビデオフレームを取得し得る。次いで、ステップ３２０において、デバイスは、（１つまたは複数の）現在取得されたビデオフレームに基づいて、以前に使用されたものと同じ追跡アルゴリズムを使用して追跡データを生成し得る。使用された最初のアルゴリズムがＳＬＡＭまたは顔追跡アルゴリズムであった早期の例を続けると、同じＳＬＡＭまたは顔追跡アルゴリズムは、それぞれ、（１つまたは複数の）現在取得されたビデオフレームを処理し、（ステップ３３０において）追跡データと、関連する信頼性スコアとを生成するために、再び使用され得る。
【００４１】
しかしながら、新たに生成された信頼性スコアは、今や、しきい値を下回ることがある（信頼性スコアが不十分であることを示すためのしきい値は、信頼性スコアが十分であることを示すためのしきい値と同じであるか、またはそのしきい値とは異なり得る）。信頼性スコアの低下は、様々な要因に起因し得る。たとえば、デバイス上で実行している他のアプリケーションが、リソースについて競合していることがある。別の例として、シーンのいくつかの変化が、追跡アルゴリズムの追跡の正確さに影響を及ぼしていることがある。たとえば、追跡アルゴリズムがＳＬＡＭである場合、カメラの過剰な移動、オブジェクトの移動が追跡されること、および／または、ランドマーク特徴が遮られることは、ランドマーク特徴を追跡するＳＬＡＭのアビリティを損ない得る。顔追跡アルゴリズムの場合、信頼性スコアの低下は、追跡されている顔を別のオブジェクトが遮ること、顔がもはや視認できないシーンにカメラがパンすること、および／または、カメラから離れるほうへ顔が向きを変えることに起因し得る。理由が何であれ、信頼性スコアがしきい値を下回ることは、追跡データがもはや十分に正確でないことがあることを示す。特定の実施形態では、ＡＲ効果は、起こり得る不正確さにもかかわらず、追跡データに基づいて表示され得る。特定の実施形態では、ＡＲ効果は、十分に正確であると見なされた、前に生成された追跡データに基づいて表示され得る。特定の実施形態では、ＡＲ効果は、十分に高い信頼性スコアをもつ次の追跡データに基づいて表示され得る。
【００４２】
（ステップ３５０において）信頼性スコアがしきい値を下回ると決定すると、デバイスは、ステップ３６０において、後続の追跡を実施するために代替追跡アルゴリズムを選択し得る。前に説明されたように、信頼性スコアが低下する１つの理由は、現在のシーン中の特性が現在の追跡アルゴリズムに好適でないことに起因し得る。別の理由は、十分に迅速に追跡データを生成するための時間制約により、システムリソース（たとえば、メモリ、処理パワーなど）の低下が追跡アルゴリズムの品質または正確さに影響を及ぼし得る（たとえば、追跡予測を生成するための処理反復がより少ない）ことであり得る。上記の例を続けると、現在の追跡アルゴリズムが、極めて正確であるが他のサポートされるアルゴリズムほどロバストでないＳＬＡＭである場合、信頼性スコアの低下は、現在のシーン中の特性がＳＬＡＭに好適でないことがある（たとえば、明らかに識別可能なランドマークの過剰な動きおよび／または欠如）を示し得る。特定の実施形態では、信頼性スコアがしきい値を下回ることに応答して、デバイスは、領域追跡アルゴリズムがＳＬＡＭおよび顔追跡アルゴリズムと比較して（あまり正確でないとしても）よりロバストなアルゴリズムであるので、領域追跡アルゴリズムを選択し得る。よりロバストな領域追跡アルゴリズムを使用することは、ＳＬＡＭが現在のシーンで経験する問題に対処するのを助け得る。特定の実施形態では、現在の信頼性スコアが比較されるしきい値は、代替追跡アルゴリズムの信頼性スコアであり得る。たとえば、デバイスは、あらゆるフレームにおいてＳＬＡＭについての信頼性スコアと領域追跡アルゴリズムについての信頼性スコアの両方を計算し、ＳＬＡＭの信頼性スコアが領域追跡の信頼性スコアを下回るとき、ＳＬＡＭから領域追跡に切り替え得る。特定の実施形態では、ＡＲアプリケーションは、ＡＲアプリケーションが実装する追跡アルゴリズムの所定の階層を有し得る。たとえば、ＳＬＡＭと顔追跡アルゴリズムとが、可能な場合、最も好ましく、その後に領域追跡アルゴリズムが続き、最後に、ベースラインアルゴリズムとしてのジャイロスコープベースアルゴリズムであり得る。
【００４３】
ステップ３１０に目を向けると、デバイスは、ビデオの、前に取得されたフレームの後の、シーンに関連する（１つまたは複数の）追加のビデオフレームを再び取得し得る。ステップ３２０において、デバイスは、よりコストが高い追跡アルゴリズム（たとえば、ＳＬＡＭまたは顔追跡アルゴリズム）からの信頼性スコアが不十分であるという決定に応答してステップ３６０において選択された、あまり計算コストが高くない追跡アルゴリズムを使用して、（１つまたは複数の）現在取得されたビデオフレームに基づいて、追跡データを生成し得る。上記で説明された例を続けると、現在の使用のために選択されたアルゴリズムは領域追跡アルゴリズムであり得、その場合、（たとえば、ステップ３３０において）追跡データに関連する信頼性スコアが生成され得、（たとえば、ステップ３４０において）ＡＲ効果が追跡データに基づいて表示され得る。別の例として、領域追跡アルゴリズムを使用する代わりに、デバイスは、（１つまたは複数の）現在取得されたビデオフレームを処理しないジャイロスコープベースアルゴリズムを使用し得る。これは、たとえば、ＡＲアプリケーションが、領域追跡アルゴリズムが（たとえば、限られた利用可能なシステムリソース、あるいは、照明の欠如またはテクスチャの細部をぼやけさせる過剰な照明に起因し得る、ビデオフレーム中の不十分な追跡特徴により）満足に機能しないと決定する場合、起こり得る。別の例として、ＡＲアプリケーションは、単に、領域追跡アルゴリズムを実装しないことがある（言い換えれば、ジャイロスコープベースアルゴリズムは、アルゴリズムの階層において、ＳＬＡＭおよび顔追跡アルゴリズムの後の次位にあり得る）。
【００４４】
特定の実施形態では、ＡＲアプリケーションが、ある追跡アルゴリズム（たとえば、ＳＬＡＭ）から別の追跡アルゴリズム（たとえば、領域追跡アルゴリズム）に遷移するとき、最後のアルゴリズムを使用して生成された既存の追跡データは、処理され、置換アルゴリズムに適合するかまたは置換アルゴリズムに理解できる（ｍａｋｅ  ｓｅｎｓｅ）フォーマットに変換され得る。たとえば、深度情報は、ＳＬＡＭによってモデル化および理解されるが、領域追跡アルゴリズムによってモデル化および理解されない。したがって、ＳＬＡＭから領域追跡アルゴリズムに遷移するとき、デバイスは、ＳＬＡＭ追跡データを、領域追跡アルゴリズムに適合するかまたは領域追跡アルゴリズムによって理解される２Ｄ追跡データに変換し得る。特定の実施形態では、この変換プロセスは、概念的に、３Ｄ空間における関心ポイントからカメラに光線を投影することによって実施され得、光線が（たとえば、シーンの画像面を表す）平面と交差するポイントが、そのポイントの２Ｄ表現であり得る。既存の追跡データの２Ｄバージョンは、次いで、現在の追跡データを生成するために領域追跡アルゴリズムによって使用され得る。同様のプロセスが、特定の実施形態によれば、顔追跡データを２Ｄに変換するために実施され得る。
【００４５】
使用される追跡アルゴリズムが領域追跡アルゴリズムである例を続けると、デバイスは、次いで、ステップ３５０において、領域追跡アルゴリズムからの追跡データに関連する信頼性スコアが領域追跡アルゴリズムのためのしきい値を下回るかどうかを決定し得る。信頼性スコアがしきい値基準を満たす場合、ＡＲアプリケーションは、領域追跡アルゴリズムを使用してオブジェクトを追跡し続け得る。一方、信頼性スコアがしきい値基準を満足することができない場合、ＡＲアプリケーションは、ステップ３６０において、ジャイロスコープベースアルゴリズムなど、あまり計算コストが高くない追跡アルゴリズムを選択し得る。
【００４６】
次の反復において、デバイスは、シーンに関連する（１つまたは複数の）現在のビデオフレームを再び取得し得、（１つまたは複数の）現在のビデオフレームは、ビデオ中の前に取得されたフレームの後のフレームである。しかしながら、ＡＲアプリケーションは、現在、ジャイロスコープベースアルゴリズムを使用するように設定されているので、特定の実施形態における（１つまたは複数の）現在取得されたビデオフレームは、オブジェクトを追跡する目的で処理されない。代わりに、ＡＲアプリケーションは、コンピューティングデバイスのジャイロスコープからのジャイロスコープデータのみに基づいてＡＲ効果を表示し得る。特定の実施形態では、コンピューティングデバイスの加速度計からの加速度計データが、代替または追加として使用され得る。ジャイロスコープデータおよび加速度計データは、それぞれ、デバイスの配向および位置の変化を決定するために使用され得る。概念的に、（加速度計データをも利用し得る）ジャイロスコープベースアルゴリズムは、シーン中のオブジェクトが現実世界において静的なままである（言い換えれば、それらのオブジェクトの相対位置および配向が同じままである）と仮定し得る。しかしながら、変化し得るものは、シーンに対するカメラの位置および配向である。したがって、特定の実施形態では、ジャイロスコープベースアルゴリズムは、カメラの配向および／または位置の変化に基づいて、（たとえば、ＳＬＡＭ、顔追跡アルゴリズム、および／または領域追跡アルゴリズムによって生成されたような）前に生成された追跡データを更新し得る。ＡＲ効果は、次いで、更新された追跡データに基づいて表示され得る。別の実施形態では、前に表示されたＡＲ効果は、前に生成された追跡データを更新することなしに、配向および／または位置データを使用して直接更新され得る。
【００４７】
特定の実施形態では、図３に関して上記で説明されたプロセスは、シーンに現れる各オブジェクトに独立して適用され得る。たとえば、図３に関して上記で説明された例は、図１中のボックス１１０など、シーン中の第１のオブジェクトに関連し得る。ボックス１１０を追跡するために使用される追跡アルゴリズムが変化する間、シーン中の別のオブジェクト（たとえば、図１中の猫１２０）は、特定のアルゴリズム（またはアルゴリズムの異なる進行）を使用して連続的に追跡され得る。たとえば、ボックス１１０の場合、ビデオフレームの第１のセットが、ＳＬＡＭを使用して処理され得、ビデオフレームの第２のセットが、領域追跡アルゴリズムを使用して処理され得、ビデオフレームの第３のセットが、ジャイロスコープベースアルゴリズムを使用して処理され得る。ビデオフレームの第１、第２、および第３のセットは、時間フレームにわたり得る。ボックス１１０を追跡するために使用されるアルゴリズムとは無関係に、猫１２０は、同じ時間フレームを通して領域追跡アルゴリズム（または任意の他の好適な追跡アルゴリズム）を使用して追跡され得る。たとえば、領域追跡アルゴリズムは、ボックス１１０を追跡するために使用されるビデオフレームの同じ第１、第２、および第３のセットを使用して追跡データを生成し得る。猫１２０に関連する別のＡＲ効果は、その時間フレームを通して領域追跡アルゴリズムによって生成された追跡データに基づいて表示され得る。
【００４８】
図３に関して上記で説明されたプロセスは、追跡アルゴリズムをいつ切り替えるべきかを決定するためのメトリックとして信頼性スコアを使用し得るが、メトリックは、代替または追加として、望まれる追跡特性の任意の他の測度に基づき得ることを諒解されたい。たとえば、上述の信頼性スコアは、追跡データの確からしい正確さを表し得る。同じく関連のあり得るものは、追跡アルゴリズムの性能である。特定の実施形態におけるＡＲ効果は、リアルタイムで表示され、拡張されているビデオ中で滑らかなように見える必要があり得るので、追跡アルゴリズムは、十分に迅速にそのタスクを実施する必要がある。特定の実施形態では、性能は、特定の追跡アルゴリズムが使用されている間に生成されたＡＲフレームの数に基づいて測定され得る。測度は、たとえば、フレームレート（たとえば、毎秒１５個のフレームなど、毎秒のフレームの数）および／または時間期間ごとのドロップされたフレームの数（たとえば、毎秒の、３０個のフレームなど、ターゲットよりも小さいフレームの数）に基づき得る。特定の実施形態では、ＡＲアプリケーションは、信頼性スコアおよび性能スコアの一方または両方が、それらのそれぞれの１つまたは複数のしきい値または基準を下回る場合、より高い段階の追跡アルゴリズムからより低い段階の追跡アルゴリズムに切り替えることを決め得る。現在の性能スコアが不適当である状況では、現在のアルゴリズムを置き換えるための置換アルゴリズムの選択は、それらの相対計算コストに基づき得る。たとえば、ＳＬＡＭの性能スコアが不十分である場合、領域追跡などのアルゴリズムが、その相対的により低い計算コストにより、選択され得る。特定の実施形態では、上述の信頼性スコアは、アルゴリズムの正確さと性能の両方を反映するように定義され得る。たとえば、信頼性スコアは、性能を反映するフレームカウント（またはフレームドロップ）、ならびに、使用される追跡アルゴリズムによって出力された追跡の正確さに基づいて、算出され得る。
【００４９】
特定の実施形態は、適切な場合、図３の方法の１つまたは複数のステップを繰り返し得る。本開示は、図３の方法の特定のステップを、特定の順序で行われるものとして説明し、示すが、本開示は、図３の方法の任意の好適なステップが任意の好適な順序で行われることを企図する。その上、本開示は、図３の方法の特定のステップを含む、追跡アルゴリズムの動的デグラデーションのための例示的な方法を説明し、示すが、本開示は、適切な場合、図３の方法のステップのすべてを含むか、いくつかを含むか、またはいずれも含まないことがある、任意の好適なステップを含む、追跡アルゴリズムの動的デグラデーションのための任意の好適な方法を企図する。さらに、本開示は、図３の方法の特定のステップを行う特定の構成要素、デバイス、またはシステムを説明し、示すが、本開示は、図３の方法の任意の好適なステップを行う任意の好適な構成要素、デバイス、またはシステムの任意の好適な組合せを企図する。
【００５０】
上記で説明されたように、特定の実施形態は、最初に、ダウングレーディングの前により正確な追跡アルゴリズムを試み得る。いくつかの状況では、ＡＲアプリケーションは、特定の追跡アルゴリズムを試みる前でも、その特定の追跡アルゴリズムが、望まれる結果をもたらさないと決定し得る。たとえば、上記で説明された、ＳＬＡＭの特定の実施形態は、環境の３Ｄモデルを生成するために、カメラ移動によって引き起こされる特徴ランドマークにおける偏差を使用していることがある。したがって、特定の実施形態では、ＡＲアプリケーションは、開始すると、デバイスのジャイロスコープおよび／または加速度計からのデータに基づいて、カメラが移動しているかどうかを決定し得る。動きが検出されない場合、ＡＲアプリケーションは、ＳＬＡＭではなく領域追跡アルゴリズムを使用することから開始し得る。一方、動きが検出された場合、ＡＲアプリケーションは、上記で説明されたように、ＳＬＡＭから開始し得る。
【００５１】
特定の実施形態では、デバイスが、ＳＬＡＭなど、より計算コストが高いアルゴリズムを利用し得るか否かを初めから決定することによって、さらなるＡＲ最適化が得られ得る。ローエンドデバイスの場合、計算リソースが制限され得るだけでなく、記憶域も制限され得る。したがって、特定の実施形態は、対応するソフトウェアモジュールがデバイス上にダウンロードされる前に、そのデバイスが、計算コストが高い追跡アルゴリズムを扱うための最小システム要件を有するかどうかを決定し得る。たとえば、デバイスは、最初に、アプリケーションストアなど、配信元からＡＲアプリケーションをダウンロードし、インストールし得る。ＡＲアプリケーションは、ＳＬＡＭなど、計算コストが高い追跡アルゴリズムのためのソフトウェアモジュールとバンドルされないことがある。ＡＲアプリケーションが最初に起動するとき、ＡＲアプリケーションは、デバイスの能力が、計算コストが高い追跡アルゴリズムを実行するための最小システム要件（たとえば、処理速度またはクラスのしきい値レベル、メモリのしきい値量など）を満足するかどうかを決定するためにデバイスに照会するように設定され得る。要件が満足される場合、ＡＲアプリケーションは、続いて、追跡アルゴリズムに関連するソフトウェアモジュールをダウンロードし得る。一方、要件が満足されない場合、ＡＲアプリケーションは、ソフトウェアモジュールが使用される可能性が低い（たとえば、ソフトウェアモジュールによって生成された追跡データが、追跡アルゴリズムの継続的使用を保証するのに十分な信頼性スコアまたは性能スコアを有しないことがある）ので、記憶空間を節約するために、ソフトウェアモジュールをダウンロードすることを回避し得る。
【００５２】
特定の実施形態では、ＡＲアプリケーションはまた、デバイスの能力に基づいて追跡アルゴリズムの設定またはパラメータを調整し得る。たとえば、ＡＲアプリケーションは、アプリケーションが稼働しているデバイスの能力を確認するように設定され得る。デバイスの能力は、特定の追跡アルゴリズムを稼働するのに十分であり得るが、その能力は、許容できるスペクトルの下端にあり得、したがって、追跡アルゴリズムは、不適当に機能する危険性がより高くなり得る。これに対処するために、（たとえば、プロセッサ速度またはクラス、メモリサイズなどに基づいて）デバイスの１つまたは複数の能力が１つまたは複数の所定の能力標準を下回ると決定すると、ＡＲアプリケーションは、影響を及ぼされる（１つまたは複数の）追跡アルゴリズムを、追跡グラニュラリティを低減するように設定し得る。たとえば、ＳＬＡＭの場合、追跡オブジェクトのために使用されるランドマークの数が低減され得る。別の例として、顔認識アルゴリズムの場合、顔メッシュにおいて使用される多角形の数が低減され得る。また別の例として、領域追跡アルゴリズムの場合、追跡のために使用される領域またはセグメントの数が低減され得る。
【００５３】
特定の実施形態では、ＡＲアプリケーションはまた、特定のオブジェクトを追跡するために使用されるアルゴリズムをアップグレードし得る。たとえば、周期的に、ＡＲアプリケーションは、バックグラウンドで、より高い段階のアルゴリズム（たとえば、ＳＬＡＭなど、より正確であるがより計算コストが高いアルゴリズム）を使用して、信頼性スコアがそのアルゴリズムへのアップグレーディング（ｕｐｇｒａｄｉｎｇ）を保証するのに十分であるかどうかを確かめることを試み得る。アップグレーディングは、デバイスの能力が不適当であるからではなく、環境または状況要因（たとえば、カメラおよび／またはオブジェクトの突然の移動が、ＳＬＡＭの信頼性スコアが低下することを引き起こしたか、あるいは、突然の明るい光が、領域追跡アルゴリズムの信頼性スコアが低下することを引き起こした）により、ダウングレードが起こった状況において、意味をなし得る。たとえば、より高い段階のアルゴリズムが特定のデバイス上で過去に長い時間期間の間使用されていた場合、ＡＲアプリケーションは、そのようなアルゴリズムを使用することが可能であることを学習していることがあり、したがって、そのようなアルゴリズムを使用することを試み得る。同様に、より低い段階のアルゴリズムとより高い段階のアルゴリズムの両方が、シーン中の異なるオブジェクトを追跡するためにコンカレントに使用されている場合（デバイスが、より高い段階のアルゴリズムをサポートすることが可能であるという指示）、システムは、より低い段階のアルゴリズムを使用して現在追跡されているオブジェクトを追跡するために、より高い段階の追跡アルゴリズムを使用することが可能であるかどうかを確かめることを周期的に試み得る。より高い段階のアルゴリズムが、実際、満足に機能する場合、ＡＲアプリケーションは、より低い段階のアルゴリズムを使用することからより高い段階のアルゴリズムに切り替え得る。
【００５４】
図４は、ソーシャルネットワーキングシステムに関連する例示的なネットワーク環境４００を示す。ネットワーク環境４００は、ネットワーク４１０によって互いに接続された、ユーザ４０１と、クライアントシステム４３０と、ソーシャルネットワーキングシステム４６０と、サードパーティシステム４７０とを含む。図４は、ユーザ４０１、クライアントシステム４３０、ソーシャルネットワーキングシステム４６０、サードパーティシステム４７０、およびネットワーク４１０の特定の構成を示すが、本開示は、ユーザ４０１、クライアントシステム４３０、ソーシャルネットワーキングシステム４６０、サードパーティシステム４７０、およびネットワーク４１０の任意の好適な構成を企図する。限定としてではなく一例として、クライアントシステム４３０、ソーシャルネットワーキングシステム４６０、およびサードパーティシステム４７０のうちの２つまたはそれ以上は、ネットワーク４１０をバイパスして、直接互いに接続され得る。別の例として、クライアントシステム４３０、ソーシャルネットワーキングシステム４６０、およびサードパーティシステム４７０のうちの２つまたはそれ以上は、全体的にまたは部分的に、物理的にまたは論理的に互いとコロケートされ得る。その上、図４は、特定の数のユーザ４０１、クライアントシステム４３０、ソーシャルネットワーキングシステム４６０、サードパーティシステム４７０、およびネットワーク４１０を示すが、本開示は、任意の好適な数のユーザ４０１、クライアントシステム４３０、ソーシャルネットワーキングシステム４６０、サードパーティシステム４７０、およびネットワーク４１０を企図する。限定としてではなく一例として、ネットワーク環境４００は、複数のユーザ４０１と、クライアントシステム４３０と、ソーシャルネットワーキングシステム４６０と、サードパーティシステム４７０と、ネットワーク４１０とを含み得る。
【００５５】
特定の実施形態では、ユーザ４０１は、ソーシャルネットワーキングシステム４６０と、またはソーシャルネットワーキングシステム４６０上で、対話または通信する個人（人間ユーザ）、エンティティ（たとえば、企業、ビジネス、またはサードパーティアプリケーション）、または（たとえば、個人またはエンティティの）グループであり得る。特定の実施形態では、ソーシャルネットワーキングシステム４６０は、オンラインソーシャルネットワークをホストするネットワークアドレス指定可能なコンピューティングシステムであり得る。ソーシャルネットワーキングシステム４６０は、たとえば、ユーザプロファイルデータ、概念プロファイルデータ、ソーシャルグラフ情報、またはオンラインソーシャルネットワークに関係する他の好適なデータなど、ソーシャルネットワーキングデータを生成し、記憶し、受信し、送り得る。ソーシャルネットワーキングシステム４６０は、直接的にまたはネットワーク４１０を介してのいずれかで、ネットワーク環境４００の他の構成要素によってアクセスされ得る。特定の実施形態では、ソーシャルネットワーキングシステム４６０は、ユーザ４０１が、たとえば、適切なプライバシーセッティングをセットすることによって、そのユーザのアクションがソーシャルネットワーキングシステム４６０によってロギングされるか、または他のシステム（たとえば、サードパーティシステム４７０）と共有されることをオプトインまたはオプトアウトすることを可能にする許可サーバ（または（１つまたは複数の）他の好適な構成要素）を含み得る。ユーザのプライバシーセッティングは、ユーザに関連するどの情報がロギングされ得るか、ユーザに関連する情報がどのようにロギングされ得るか、ユーザに関連する情報がいつロギングされ得るか、ユーザに関連する情報を誰がロギングし得るか、ユーザに関連する情報が誰と共有され得るか、およびユーザに関連する情報がどのような目的でロギングまたは共有され得るかを決定し得る。許可サーバは、ブロッキング、データのハッシュ化、匿名化、または適宜に他の好適な技法を通して、ソーシャルネットワーキングシステム４６０のユーザの１つまたは複数のプライバシーセッティングを施行するために使用され得る。特定の実施形態では、サードパーティシステム４７０は、ＡＲアプリケーションをホストするかまたは各追跡アルゴリズムに関連するモジュールを分離することができる、ネットワークアドレス指定可能なコンピューティングシステムであり得る。サードパーティシステム４７０は、直接的にまたはネットワーク４１０を介してのいずれかで、ネットワーク環境４００の他の構成要素によってアクセスされ得る。特定の実施形態では、１つまたは複数のユーザ４０１は、ソーシャルネットワーキングシステム４６０またはサードパーティシステム４７０にアクセスし、そこにデータを送り、そこからデータを受信するために、１つまたは複数のクライアントシステム４３０を使用し得る。クライアントシステム４３０は、直接的に、ネットワーク４１０を介して、またはサードパーティシステムを介して、ソーシャルネットワーキングシステム４６０またはサードパーティシステム４７０にアクセスし得る。限定としてではなく一例として、クライアントシステム４３０は、ソーシャルネットワーキングシステム４６０を介してサードパーティシステム４７０にアクセスし得る。クライアントシステム４３０は、たとえば、パーソナルコンピュータ、ラップトップコンピュータ、セルラー電話、スマートフォン、タブレットコンピュータ、または拡張／仮想現実デバイスなど、任意の好適なコンピューティングデバイスであり得る。
【００５６】
本開示は任意の好適なネットワーク４１０を企図する。限定としてではなく一例として、ネットワーク４１０の１つまたは複数の部分は、アドホックネットワーク、イントラネット、エクストラネット、仮想プライベートネットワーク（ＶＰＮ）、ローカルエリアネットワーク（ＬＡＮ）、ワイヤレスＬＡＮ（ＷＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、ワイヤレスＷＡＮ（ＷＷＡＮ）、メトロポリタンエリアネットワーク（ＭＡＮ）、インターネットの一部分、公衆交換電話網（ＰＳＴＮ）の一部分、セルラー電話ネットワーク、またはこれらのうちの２つまたはそれ以上の組合せを含み得る。ネットワーク４１０は１つまたは複数のネットワーク４１０を含み得る。
【００５７】
リンク４５０は、クライアントシステム４３０と、ソーシャルネットワーキングシステム４６０と、サードパーティシステム４７０とを、通信ネットワーク４１０にまたは互いに接続し得る。本開示は任意の好適なリンク４５０を企図する。特定の実施形態では、１つまたは複数のリンク４５０は、１つまたは複数の、（たとえば、デジタル加入者回線（ＤＳＬ）またはデータオーバーケーブルサービスインターフェース仕様（ＤＯＣＳＩＳ）などの）ワイヤラインリンク、（たとえば、Ｗｉ−Ｆｉまたはワールドワイドインターオペラビリティフォーマイクロウェーブアクセス（ＷｉＭＡＸ）などの）ワイヤレスリンク、または（たとえば、同期光ネットワーク（ＳＯＮＥＴ）または同期デジタルハイアラーキ（ＳＤＨ）などの）光リンクを含む。特定の実施形態では、１つまたは複数のリンク４５０は、各々、アドホックネットワーク、イントラネット、エクストラネット、ＶＰＮ、ＬＡＮ、ＷＬＡＮ、ＷＡＮ、ＷＷＡＮ、ＭＡＮ、インターネットの一部分、ＰＳＴＮの一部分、セルラー技術ベースネットワーク、衛星通信技術ベースネットワーク、別のリンク４５０、または２つまたはそれ以上のそのようなリンク４５０の組合せを含む。リンク４５０は、ネットワーク環境４００の全体にわたって必ずしも同じである必要はない。１つまたは複数の第１のリンク４５０は、１つまたは複数の第２のリンク４５０とは１つまたは複数の点で異なり得る。
【００５８】
図５は例示的なコンピュータシステム５００を示す。特定の実施形態では、１つまたは複数のコンピュータシステム５００は、本明細書で説明または示される１つまたは複数の方法の１つまたは複数のステップを実施する。特定の実施形態では、１つまたは複数のコンピュータシステム５００は、本明細書で説明または示される機能性を提供する。特定の実施形態では、１つまたは複数のコンピュータシステム５００上で稼働しているソフトウェアは、本明細書で説明または示される１つまたは複数の方法の１つまたは複数のステップを実施するか、あるいは本明細書で説明または示される機能性を提供する。特定の実施形態は、１つまたは複数のコンピュータシステム５００の１つまたは複数の部分を含む。本明細書では、コンピュータシステムへの言及は、適切な場合、コンピューティングデバイスを包含し得、その逆も同様である。その上、コンピュータシステムへの言及は、適切な場合、１つまたは複数のコンピュータシステムを包含し得る。
【００５９】
本開示は、任意の好適な数のコンピュータシステム５００を企図する。本開示は、任意の好適な物理的形態をとるコンピュータシステム５００を企図する。限定としてではなく例として、コンピュータシステム５００は、組込み型コンピュータシステム、システムオンチップ（ＳＯＣ）、（たとえば、コンピュータオンモジュール（ＣＯＭ）またはシステムオンモジュール（ＳＯＭ）などの）シングルボードコンピュータシステム（ＳＢＣ）、デスクトップコンピュータシステム、ラップトップまたはノートブックコンピュータシステム、対話型キオスク、メインフレーム、コンピュータシステムのメッシュ、携帯電話、携帯情報端末（ＰＤＡ）、サーバ、タブレットコンピュータシステム、拡張／仮想現実デバイス、あるいはこれらのうちの２つまたはそれ以上の組合せであり得る。適切な場合、コンピュータシステム５００は、１つまたは複数のコンピュータシステム５００を含むか、単一または分散型であるか、複数のロケーションにわたるか、複数のマシンにわたるか、複数のデータセンターにわたるか、あるいは１つまたは複数のネットワーク中の１つまたは複数のクラウド構成要素を含み得るクラウド中に常駐し得る。適切な場合、１つまたは複数のコンピュータシステム５００は、実質的な空間的または時間的制限なしに、本明細書で説明または示される１つまたは複数の方法の１つまたは複数のステップを実施し得る。限定としてではなく一例として、１つまたは複数のコンピュータシステム５００は、リアルタイムでまたはバッチモードで、本明細書で説明または示される１つまたは複数の方法の１つまたは複数のステップを実施し得る。１つまたは複数のコンピュータシステム５００は、適切な場合、異なる時間においてまたは異なるロケーションにおいて、本明細書で説明または示される１つまたは複数の方法の１つまたは複数のステップを実施し得る。
【００６０】
特定の実施形態では、コンピュータシステム５００は、プロセッサ５０２と、メモリ５０４と、ストレージ５０６と、入出力（Ｉ／Ｏ）インターフェース５０８と、通信インターフェース５１０と、バス５１２とを含む。本開示は、特定の構成において特定の数の特定の構成要素を有する特定のコンピュータシステムを説明し、示すが、本開示は、任意の好適な構成において任意の好適な数の任意の好適な構成要素を有する任意の好適なコンピュータシステムを企図する。
【００６１】
特定の実施形態では、プロセッサ５０２は、コンピュータプログラムを作り上げる命令など、命令を実行するためのハードウェアを含む。限定としてではなく一例として、命令を実行するために、プロセッサ５０２は、内部レジスタ、内部キャッシュ、メモリ５０４、またはストレージ５０６から命令を取り出し（またはフェッチし）、それらの命令を復号および実行し、次いで、内部レジスタ、内部キャッシュ、メモリ５０４、またはストレージ５０６に１つまたは複数の結果を書き込み得る。特定の実施形態では、プロセッサ５０２は、データ、命令、またはアドレスのための１つまたは複数の内部キャッシュを含み得る。本開示は、適切な場合、任意の好適な数の任意の好適な内部キャッシュを含むプロセッサ５０２を企図する。限定としてではなく一例として、プロセッサ５０２は、１つまたは複数の命令キャッシュと、１つまたは複数のデータキャッシュと、１つまたは複数のトランスレーションルックアサイドバッファ（ＴＬＢ）とを含み得る。命令キャッシュ中の命令は、メモリ５０４またはストレージ５０６中の命令のコピーであり得、命令キャッシュは、プロセッサ５０２によるそれらの命令の取出しを高速化し得る。データキャッシュ中のデータは、プロセッサ５０２において実行する命令が動作する対象のメモリ５０４またはストレージ５０６中のデータのコピー、プロセッサ５０２において実行する後続の命令によるアクセスのための、またはメモリ５０４もしくはストレージ５０６に書き込むための、プロセッサ５０２において実行された前の命令の結果、あるいは他の好適なデータであり得る。データキャッシュは、プロセッサ５０２による読取りまたは書込み動作を高速化し得る。ＴＬＢは、プロセッサ５０２のための仮想アドレストランスレーション（ｖｉｒｔｕａｌ−ａｄｄｒｅｓｓ  ｔｒａｎｓｌａｔｉｏｎ）を高速化し得る。特定の実施形態では、プロセッサ５０２は、データ、命令、またはアドレスのための１つまたは複数の内部レジスタを含み得る。本開示は、適切な場合、任意の好適な数の任意の好適な内部レジスタを含むプロセッサ５０２を企図する。適切な場合、プロセッサ５０２は、１つまたは複数の算術論理ユニット（ＡＬＵ）を含むか、マルチコアプロセッサであるか、または１つまたは複数のプロセッサ５０２を含み得る。本開示は、特定のプロセッサを説明し、示すが、本開示は任意の好適なプロセッサを企図する。
【００６２】
特定の実施形態では、メモリ５０４は、プロセッサ５０２が実行するための命令、またはプロセッサ５０２が動作する対象のデータを記憶するためのメインメモリを含む。限定としてではなく一例として、コンピュータシステム５００は、ストレージ５０６または（たとえば、別のコンピュータシステム５００などの）別のソースからメモリ５０４に命令をロードし得る。プロセッサ５０２は、次いで、メモリ５０４から内部レジスタまたは内部キャッシュに命令をロードし得る。命令を実行するために、プロセッサ５０２は、内部レジスタまたは内部キャッシュから命令を取り出し、それらの命令を復号し得る。命令の実行中またはその後に、プロセッサ５０２は、（中間結果または最終結果であり得る）１つまたは複数の結果を内部レジスタまたは内部キャッシュに書き込み得る。プロセッサ５０２は、次いで、メモリ５０４にそれらの結果のうちの１つまたは複数を書き込み得る。特定の実施形態では、プロセッサ５０２は、１つまたは複数の内部レジスタまたは内部キャッシュ中の、あるいは（ストレージ５０６または他の場所とは対照的な）メモリ５０４中の命令のみを実行し、１つまたは複数の内部レジスタまたは内部キャッシュ中の、あるいは（ストレージ５０６または他の場所とは対照的な）メモリ５０４中のデータのみに対して動作する。（アドレスバスおよびデータバスを各々含み得る）１つまたは複数のメモリバスが、プロセッサ５０２をメモリ５０４に結合し得る。バス５１２は、以下で説明されるように、１つまたは複数のメモリバスを含み得る。特定の実施形態では、１つまたは複数のメモリ管理ユニット（ＭＭＵ）が、プロセッサ５０２とメモリ５０４との間に常駐し、プロセッサ５０２によって要求されるメモリ５０４へのアクセスを可能にする。特定の実施形態では、メモリ５０４は、ランダムアクセスメモリ（ＲＡＭ）を含む。このＲＡＭは、適切な場合、揮発性メモリであり得る。適切な場合、このＲＡＭは、ダイナミックＲＡＭ（ＤＲＡＭ）またはスタティックＲＡＭ（ＳＲＡＭ）であり得る。その上、適切な場合、このＲＡＭは、シングルポートまたはマルチポートＲＡＭであり得る。本開示は任意の好適なＲＡＭを企図する。メモリ５０４は、適切な場合、１つまたは複数のメモリ５０４を含み得る。本開示は、特定のメモリを説明し、示すが、本開示は任意の好適なメモリを企図する。
【００６３】
特定の実施形態では、ストレージ５０６は、データまたは命令のための大容量ストレージを含む。限定としてではなく一例として、ストレージ５０６は、ハードディスクドライブ（ＨＤＤ）、フロッピーディスクドライブ、フラッシュメモリ、光ディスク、光磁気ディスク、磁気テープ、またはユニバーサルシリアルバス（ＵＳＢ）ドライブ、あるいはこれらのうちの２つまたはそれ以上の組合せを含み得る。ストレージ５０６は、適切な場合、リムーバブルまたは非リムーバブル（または固定）媒体を含み得る。ストレージ５０６は、適切な場合、コンピュータシステム５００の内部または外部にあり得る。特定の実施形態では、ストレージ５０６は、不揮発性ソリッドステートメモリである。特定の実施形態では、ストレージ５０６は、読取り専用メモリ（ＲＯＭ）を含む。適切な場合、このＲＯＭは、マスクプログラムＲＯＭ、プログラマブルＲＯＭ（ＰＲＯＭ）、消去可能ＰＲＯＭ（ＥＰＲＯＭ）、電気的消去可能ＰＲＯＭ（ＥＥＰＲＯＭ）、電気的書き換え可能ＲＯＭ（ＥＡＲＯＭ）、またはフラッシュメモリ、あるいはこれらのうちの２つまたはそれ以上の組合せであり得る。本開示は、任意の好適な物理的形態をとる大容量ストレージ５０６を企図する。ストレージ５０６は、適切な場合、プロセッサ５０２とストレージ５０６との間の通信を可能にする１つまたは複数のストレージ制御ユニットを含み得る。適切な場合、ストレージ５０６は、１つまたは複数のストレージ５０６を含み得る。本開示は、特定のストレージを説明し、示すが、本開示は任意の好適なストレージを企図する。
【００６４】
特定の実施形態では、Ｉ／Ｏインターフェース５０８は、コンピュータシステム５００と１つまたは複数のＩ／Ｏデバイスとの間の通信のための１つまたは複数のインターフェースを提供する、ハードウェア、ソフトウェア、またはその両方を含む。コンピュータシステム５００は、適切な場合、これらのＩ／Ｏデバイスのうちの１つまたは複数を含み得る。これらのＩ／Ｏデバイスのうちの１つまたは複数は、人とコンピュータシステム５００との間の通信を可能にし得る。限定としてではなく一例として、Ｉ／Ｏデバイスは、キーボード、キーパッド、マイクロフォン、モニタ、マウス、プリンタ、スキャナ、スピーカー、スチールカメラ、スタイラス、タブレット、タッチスクリーン、トラックボール、ビデオカメラ、別の好適なＩ／Ｏデバイス、またはこれらのうちの２つまたはそれ以上の組合せを含み得る。Ｉ／Ｏデバイスは１つまたは複数のセンサーを含み得る。本開示は、任意の好適なＩ／Ｏデバイスと、それらのＩ／Ｏデバイスのための任意の好適なＩ／Ｏインターフェース５０８とを企図する。適切な場合、Ｉ／Ｏインターフェース５０８は、プロセッサ５０２がこれらのＩ／Ｏデバイスのうちの１つまたは複数を駆動することを可能にする１つまたは複数のデバイスまたはソフトウェアドライバを含み得る。Ｉ／Ｏインターフェース５０８は、適切な場合、１つまたは複数のＩ／Ｏインターフェース５０８を含み得る。本開示は、特定のＩ／Ｏインターフェースを説明し、示すが、本開示は任意の好適なＩ／Ｏインターフェースを企図する。
【００６５】
特定の実施形態では、通信インターフェース５１０は、コンピュータシステム５００と、１つまたは複数の他のコンピュータシステム５００または１つまたは複数のネットワークとの間の（たとえば、パケットベース通信などの）通信のための１つまたは複数のインターフェースを提供する、ハードウェア、ソフトウェア、またはその両方を含む。限定としてではなく一例として、通信インターフェース５１０は、イーサネットまたは他のワイヤベースネットワークと通信するためのネットワークインターフェースコントローラ（ＮＩＣ）またはネットワークアダプタ、あるいはＷＩ−ＦＩネットワークなどのワイヤレスネットワークと通信するためのワイヤレスＮＩＣ（ＷＮＩＣ）またはワイヤレスアダプタを含み得る。本開示は、任意の好適なネットワークと、そのネットワークのための任意の好適な通信インターフェース５１０とを企図する。限定としてではなく一例として、コンピュータシステム５００は、アドホックネットワーク、パーソナルエリアネットワーク（ＰＡＮ）、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、メトロポリタンエリアネットワーク（ＭＡＮ）、またはインターネットの１つまたは複数の部分、あるいはこれらのうちの２つまたはそれ以上の組合せと通信し得る。これらのネットワークのうちの１つまたは複数の１つまたは複数の部分は、ワイヤードまたはワイヤレスであり得る。一例として、コンピュータシステム５００は、（たとえば、ＢＬＵＥＴＯＯＴＨ  ＷＰＡＮなどの）ワイヤレスＰＡＮ（ＷＰＡＮ）、ＷＩ−ＦＩネットワーク、ＷＩ−ＭＡＸネットワーク、（たとえば、モバイル通信用グローバルシステム（ＧＳＭ）ネットワークなどの）セルラー電話ネットワーク、または他の好適なワイヤレスネットワーク、あるいはこれらのうちの２つまたはそれ以上の組合せと通信し得る。コンピュータシステム５００は、適切な場合、これらのネットワークのいずれかのための任意の好適な通信インターフェース５１０を含み得る。通信インターフェース５１０は、適切な場合、１つまたは複数の通信インターフェース５１０を含み得る。本開示は、特定の通信インターフェースを説明し、示すが、本開示は任意の好適な通信インターフェースを企図する。
【００６６】
特定の実施形態では、バス５１２は、コンピュータシステム５００の構成要素を互いに結合する、ハードウェア、ソフトウェア、またはその両方を含む。限定としてではなく一例として、バス５１２は、アクセラレーテッドグラフィックスポート（ＡＧＰ）または他のグラフィックスバス、拡張業界標準アーキテクチャ（ＥＩＳＡ）バス、フロントサイドバス（ＦＳＢ）、ＨＹＰＥＲＴＲＡＮＳＰＯＲＴ（ＨＴ）相互接続、業界標準アーキテクチャ（ＩＳＡ）バス、ＩＮＦＩＮＩＢＡＮＤ相互接続、ローピンカウント（ＬＰＣ）バス、メモリバス、マイクロチャネルアーキテクチャ（ＭＣＡ）バス、周辺構成要素相互接続（ＰＣＩ）バス、ＰＣＩ−Ｅｘｐｒｅｓｓ（ＰＣＩｅ）バス、シリアルアドバンストテクノロジーアタッチメント（ＳＡＴＡ）バス、ビデオエレクトロニクス規格協会ローカル（ＶＬＢ）バス、または別の好適なバス、あるいはこれらのうちの２つまたはそれ以上の組合せを含み得る。バス５１２は、適切な場合、１つまたは複数のバス５１２を含み得る。本開示は、特定のバスを説明し、示すが、本開示は任意の好適なバスまたは相互接続を企図する。
【００６７】
本明細書では、１つまたは複数のコンピュータ可読非一時的記憶媒体は、適切な場合、（たとえば、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）または特定用途向けＩＣ（ＡＳＩＣ）などの）１つまたは複数の半導体ベースまたは他の集積回路（ＩＣ）、ハードディスクドライブ（ＨＤＤ）、ハイブリッドハードドライブ（ＨＨＤ）、光ディスク、光ディスクドライブ（ＯＤＤ）、光磁気ディスク、光磁気ドライブ、フロッピーディスケット、フロッピーディスクドライブ（ＦＤＤ）、磁気テープ、ソリッドステートドライブ（ＳＳＤ）、ＲＡＭドライブ、セキュアデジタルカードまたはドライブ、任意の他の好適なコンピュータ可読非一時的記憶媒体、あるいはこれらのうちの２つまたはそれ以上の任意の好適な組合せを含み得る。コンピュータ可読非一時的記憶媒体は、適切な場合、揮発性、不揮発性、または揮発性と不揮発性との組合せであり得る。
【００６８】
本明細書では、「または」は、明確に別段に指示されていない限り、またはコンテキストによって別段に指示されていない限り、包括的であり、排他的ではない。したがって、本明細書では、「ＡまたはＢ」は、明確に別段に指示されていない限り、またはコンテキストによって別段に指示されていない限り、「Ａ、Ｂ、またはその両方」を意味する。その上、「および」は、明確に別段に指示されていない限り、またはコンテキストによって別段に指示されていない限り、共同と個別の両方である。したがって、本明細書では、「ＡおよびＢ」は、明確に別段に指示されていない限り、またはコンテキストによって別段に指示されていない限り、「共同でまたは個別に、ＡおよびＢ」を意味する。
【００６９】
本開示の範囲は、当業者が理解するであろう、本明細書で説明または示される例示的な実施形態に対するすべての変更、置換、変形、改変、および修正を包含する。本開示の範囲は、本明細書で説明または示される例示的な実施形態に限定されない。その上、本開示は、本明細書のそれぞれの実施形態を、特定の構成要素、要素、特徴、機能、動作、またはステップを含むものとして説明し、示すが、これらの実施形態のいずれも、当業者が理解するであろう、本明細書のどこかに説明または示される構成要素、要素、特徴、機能、動作、またはステップのうちのいずれかの任意の組合せまたは置換を含み得る。さらに、特定の機能を実施するように適応されるか、構成されるか、実施することが可能であるか、実施するように設定されるか、実施することが可能にされるか、実施するように動作可能であるか、または実施するように動作する、装置またはシステムあるいは装置またはシステムの構成要素に対する添付の特許請求の範囲における参照は、その装置、システム、または構成要素が、そのように適応されるか、構成されるか、可能であるか、設定されるか、可能にされるか、動作可能であるか、または動作する限り、その装置、システム、構成要素またはその特定の機能が、アクティブにされるか、オンにされるか、またはアンロックされるか否かにかかわらず、その装置、システム、構成要素を包含する。さらに、本開示は、特定の実施形態を、特定の利点を提供するものとして説明するかまたは示すが、特定の実施形態は、これらの利点のいずれをも提供しないか、いくつかを提供するか、またはすべてを提供し得る。
【図１】
2021501933.tif 000003
【図２】
2021501933.tif 000004
【図３】
2021501933.tif 000005
【図４】
2021501933.tif 000006
【図５】
2021501933.tif 000007
【国際調査報告】
2021501933.tif 000008
2021501933.tif 000009
2021501933.tif 000010