(57)【特許請求の範囲】
【請求項１】
コンピュータによって実行される方法であって、
移動プラットフォームが有するセンサから画像を取得する画像取得ステップと、
前記画像から、前記移動プラットフォームに関連付いたユーザの手足に対応する一つ以上のオブジェクトを検出する検出ステップと、
（１）前記検出したオブジェクトに外接する矩形の寸法に基づいて、当該オブジェクトの信頼度を決定する第１のコンテキストプロセッサ
（２）前記検出したオブジェクトの、前記画像内における位置に基づいて、当該オブジェクトの信頼度を決定する第２のコンテキストプロセッサ
（３）左右の手足の対関係に基づいて、対応するオブジェクトの信頼度を決定する第３のコンテキストプロセッサ
（４）前記画像に対応するタイミングで取得したＣＡＮデータに基づいて、対応するオブジェクトの信頼度を決定する第４のコンテキストプロセッサ
のうちの二つ以上を併用して、前記一つ以上のオブジェクトのそれぞれに対して信頼度を決定する決定ステップと、
前記信頼度に基づいて、前記オブジェクトをフィルタリングするフィルタステップと、
を含み、
前記決定ステップでは、前記コンテキストプロセッサが前記信頼度を決定するために用いるデータをデータベースから取得し、前記コンテキストプロセッサごと、前記センサの位置ごとに異なる前記データを用いて前記信頼度を決定する
方法。
【請求項２】
前記画像に基づいて、前記センサに対応するセンサ位置を推定する推定ステップをさらに含み、
前記決定ステップでは、前記データベースから、推定した前記センサ位置に対応する前記データを取得する、
請求項１に記載の方法。
【請求項３】
前記推定ステップでは、
前記画像から色またはテクスチャに関する特徴を抽出し、
前記特徴および識別モデルを用いて、前記センサ位置を推定する、
請求項２に記載の方法。
【請求項４】
前記センサ位置は、前記センサが所定の位置にある確率を表した情報である、
請求項３に記載の方法。
【請求項５】
コンピュータによって実行される方法であって、
移動プラットフォームが有するセンサから画像を取得する画像取得ステップと、
前記画像から、前記移動プラットフォームに関連付いたユーザの手足に対応する一つ以上のオブジェクトを検出する検出ステップと、
前記画像に対応するタイミングで取得したＣＡＮデータに基づいて、前記一つ以上のオブジェクトのそれぞれに対して信頼度を決定する決定ステップと、
前記信頼度に基づいて、前記オブジェクトをフィルタリングするフィルタステップと、
を含む、方法。
【請求項６】
前記オブジェクトに外接する矩形の位置を補正する補正ステップをさらに含む、
請求項１に記載の方法。
【請求項７】
前記フィルタステップでは、前記オブジェクトごとに、前記コンテキストプロセッサが決定した二つ以上の信頼度を統合し、統合された前記信頼度と所定の閾値とを比較することでフィルタ対象を決定する、
請求項１に記載の方法。
【請求項８】
前記移動プラットフォームは車両であり、
前記フィルタリングされたオブジェクトに関する情報に基づいて、前記車両の運転者に、視聴覚または触覚による指示を提供する提供ステップをさらに含む、
請求項１または５に記載の方法。
【請求項９】
コンピュータによって実行される方法であって、
センサによって取り込まれた画像から検出された手足候補を取得する候補取得ステップと、
検出された手足の寸法に基づいて前記手足候補をランク付けする第１のステップと、
検出された手足の位置に基づいて前記手足候補をランク付けする第２のステップと、
左右の手足の対関係に基づいて前記手足候補をランク付けする第３のステップと、
検出された手足を有するユーザが乗車している車両によって生成されたＣＡＮデータに基づいて前記手足候補をランク付けする第４のステップと、
前記第１から第４のステップにおけるランク付けの結果を集約して信頼度を決定する決定ステップと、
前記信頼度に基づいて、前記手足候補をフィルタリングするフィルタステップと、
を含む、方法。
【請求項１０】
移動プラットフォームが有するセンサから画像を取得する画像取得手段と、
前記画像から、前記移動プラットフォームに関連付いたユーザの手足に対応する一つ以上のオブジェクトを検出する検出手段と、
（１）前記検出したオブジェクトに外接する矩形の寸法に基づいて、当該オブジェクトの信頼度を決定する第１のコンテキストプロセッサ
（２）前記検出したオブジェクトの、前記画像内における位置に基づいて、当該オブジェクトの信頼度を決定する第２のコンテキストプロセッサ
（３）左右の手足の対関係に基づいて、対応するオブジェクトの信頼度を決定する第３のコンテキストプロセッサ
（４）前記画像に対応するタイミングで取得したＣＡＮデータに基づいて、対応するオブ
ジェクトの信頼度を決定する第４のコンテキストプロセッサ
のうちの二つ以上を併用して、前記一つ以上のオブジェクトのそれぞれに対して信頼度を決定する決定手段と、
前記信頼度に基づいて、前記オブジェクトをフィルタリングするフィルタ手段と、
を有し、
前記決定手段は、前記コンテキストプロセッサが前記信頼度を決定するために用いるデータをデータベースから取得し、前記コンテキストプロセッサごと、前記センサの位置ごとに異なる前記データを用いて前記信頼度を決定する、
システム。
【請求項１１】
前記画像に基づいて、前記センサに対応するセンサ位置を推定する推定手段をさらに有し、
前記決定手段は、前記データベースから、推定した前記センサ位置に対応する前記データを取得する、
請求項１０に記載のシステム。
【請求項１２】
前記推定手段は、
前記画像から色またはテクスチャに関する特徴を抽出し、
前記特徴および識別モデルを用いて、前記センサ位置を推定する、
請求項１１に記載のシステム。
【請求項１３】
前記センサ位置は、前記センサが所定の位置にある確率を表した情報である、
請求項１２に記載のシステム。
【請求項１４】
移動プラットフォームが有するセンサから画像を取得する画像取得手段と、
前記画像から、前記移動プラットフォームに関連付いたユーザの手足に対応する一つ以上のオブジェクトを検出する検出手段と、
前記画像に対応するタイミングで取得したＣＡＮデータに基づいて、前記一つ以上のオブジェクトのそれぞれに対して信頼度を決定する決定手段と、
前記信頼度に基づいて、前記オブジェクトをフィルタリングするフィルタ手段と、
を有する、システム。
【請求項１５】
前記オブジェクトに外接する矩形の位置を補正する補正手段をさらに有する、
請求項１０に記載のシステム。
【請求項１６】
前記フィルタ手段は、前記オブジェクトごとに、前記コンテキストプロセッサが決定した二つ以上の信頼度を統合し、統合された前記信頼度と所定の閾値とを比較することでフィルタ対象を決定する、
請求項１０に記載のシステム。
【請求項１７】
前記移動プラットフォームは車両であり、
前記フィルタリングされたオブジェクトに関する情報に基づいて、前記車両の運転者に、視聴覚または触覚による指示を提供する提供手段をさらに有する、
請求項１０または１４に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願への相互参照）
本出願は、"HIERARCHICAL CONTEXT-AWARE EXTREMITY DETECTION"と題し、２０１６年５月２７日に出願された米国特許出願第１５／１６７，９３１号の優先権を主張する。当該出願は、その全体が本明細書中に参照として組み込まれる。
【０００２】
本開示は物体の検出に関する。
【背景技術】
【０００３】
機械が人間の活動を解釈することは、人間と機械の確実な相互作用や人間の挙動予測にとって重要である。車両において、例えば、ユーザの手と車両内の物体（例えば、携帯電話、コーヒーカップ、たばこ、制御パネル、コンパートメントなど）との間の相互作用などの、ドライバーの動きを正確に解釈することで、車両の安全および性能における多くの改善が可能になるはずである。
しかしながら、人間活動を理解するように機械を構成することはささいな努力ではなく、既存のタッチベースおよび視覚ベースのシステムなどの様々な既存の解決策は、遅すぎるか、または計算コストが高すぎる（適切に機能するために高価なハードウェアアップグレードを必要とする）ため、リアルタイム検出が必要とされ得る動的環境に不適当である。
【０００４】
いくつかの手法は、ハンドルに置かれたドライバーの手を検出する。これらのシステムは、ハンドル上のドライバーの手の存在および位置を識別することができる、タッチベースの手の検出手法を使用する場合がある。場合によっては、複数の検知ゾーンを実現するために、ハンドル上に配置された複数のセンサループを含むセンサマットが使用される場合がある。しかしながら、これらの手法は、一般に、ハンドルに置かれたドライバーの手のみを検出することができる。すなわち、車両の運転中、空中を動いている、膝の上に置かれているなどの他の位置にあるドライバーの手を検出することができない。さらに、一般に、これらの手法は、手と、他の可動する身体部位とを区別することができない。
【０００５】
いくつかの手法は、視覚ベースの手の検出アルゴリズムを使用する。例えば、非特許文献１には、カメラを用いて景観画像を取り込む、視覚ベースの手の検出アルゴリズムが記載されている。このアルゴリズムは、画像内に存在する手を識別することが可能である。詳細には、それぞれ、１）手の形状を取り込むテクスチャ情報、２）前腕のような近くの身体部分を取り込むコンテキスト情報、および、３）特徴的な肌の色を取り込む色情報を特定するために、３つの手の検出器が使用される。これらの検出器の出力は、最終判断を行うために組み合わされる。しかしながら、このアルゴリズムは、ドライバーの手と自動車の構成要素との間の相互作用についてのいかなる情報も提供することができない。加えて、このアルゴリズムは、色およびテクスチャに強く基づいているため、結果として、手が塞がれるか、または変形した場合などの、より困難な状況、または変化する明暗状況において適切に機能することができない。このアルゴリズムはまた、各画像が約２分の処理時間を必要とするため、比較的低速であり、自動車および他の車両内で使用されるシステムなどの動的なリアルタイムシステムには不適当である。
【０００６】
非特許文献２に記載されている手法などの別の手法は、車両内の手の活動認識のための視覚ベース対象領域（ＲＯＩ）の手の検出アルゴリズムを提案する。色画像および深度画像上の色、テクスチャ、および包括的な静的特徴を使用することにより、各固定ＲＯＩ内に存在する手の数を特定することができる。しかしながら、このアルゴリズムは、ＲＯＩ
ベースの性質に起因して、各ＲＯＩ内の手の正確な位置を提供することができない。また、他の解決策と同様に、このアルゴリズムは、色およびテクスチャに強く基づいており、より困難な状況、または変化する明暗状況において適切に機能することができない。さらに、このアルゴリズムは、固定された視点（ドライバーの頭の後方）からの固定ＲＯＩ構成を利用し、Ｋｉｎｅｃｔ（登録商標）センサの大きな占有面積を有する。これにより、他のセンサ構成および車両タイプ（例えば、異なるハンドル形状）に対して一般化することが困難になる。このアルゴリズムはまた、比較的遅いフレームレート（約２ｆｐｓ）で動作するため、自動車および他の車両内で使用されるシステムなどの動的なリアルタイムシステムには不適当である。
【０００７】
いくつかのさらなる手法は、スライディングウィンドウ技法を使用して手の検出を実行する。例えば、非特許文献３には、色およびテクスチャの特徴、ならびにスライディングウィンドウ検出フレームワークを活用するベースラインアルゴリズムが記載されており、それらは適合された境界ボックスの形態で手の位置を与えることができる。このアルゴリズムによって使用されるデータセットは、自然な運転状況において観察される課題に対処するように試みるが、その強く色に基づく性質のせいで、このアルゴリズムは、全体的に同じ色を有する他の身体部分（例えば、顔、前腕など）と手を効果的に区別することができない。さらに、他の解決策と同様に、このアルゴリズムは、手を変形するか、または塞ぐ可能性がある困難な明暗状況、または著しい明暗の変化に適応することができない。さらに、このアルゴリズムおよび上記で説明した他の解決策は、細分性を欠く道路についての高度に一般化された情報を利用するように構成される。結果として、これらの解決策は、ドライバーが特定の運転状況を提示されているときに、きめの細かい（例えば、通りレベルの）詳細などのより細かい車道の詳細を説明することができない。
【先行技術文献】
【非特許文献】
【０００８】
【非特許文献１】Mittal, Arpit, Andrew Zisserman, Philip Torr, "Hand Detection Using Multiple Proposals" ,British Machine Vision, 2011
【非特許文献２】Ohn-Bar,Eshed, Mohan Trivedi, "In-vehicle Hand Activity Recognition Using Integration of Regions", IEEE Intelligent Vehicles Symposium(IV), 2013
【非特許文献３】Das, Nikhil, Eshed Ohn-Bar, Mohan M.Trivedi, "On Performance Evaluation of Driver Hand Detection Algorithms:Challenges,Dataset,and Metrics" , Intelligent Transportation Systemsに関する2015年IEEE第18回国際会議,2015
【発明の概要】
【０００９】
本開示に記載される主題の１つの発明的態様によれば、
システムは、１つまたは複数のプロセッサ、ならびに、１つまたは複数のプロセッサによって実行された場合に、
移動プラットフォームの１つまたは複数のセンサから画像データを受信することと、
画像データから１つまたは複数の物体を検出することであって、１つまたは複数の物体が移動プラットフォームに関連付けられたユーザの手足を潜在的に表すことと、
２つ以上のコンテキストプロセッサおよびコンテキストデータベースから取り出されたコンテキストデータを使用して１つまたは複数の物体を処理することであって、１つまたは複数の物体の各々について少なくとも２つの信頼度を作成することと、
１つまたは複数の物体の各々の信頼度に基づいて、考慮から１つまたは複数の物体のうちの少なくとも１つをフィルタリングすることと、
を含む動作をシステムに実行させる命令を記憶する、１つまたは複数のメモリを含む。
【００１０】
一般に、本開示に記載される主題の別の発明的態様は、
移動プラットフォームの１つまたは複数のセンサから画像データを受信することと、
画像データから１つまたは複数の物体を検出することであって、１つまたは複数の物体が移動プラットフォームに関連付けられたユーザの手足を潜在的に表すことと、
２つ以上のコンテキストプロセッサおよびコンテキストデータベースから取り出されたコンテキストデータを使用して１つまたは複数の物体を処理することであって、１つまたは複数の物体の各々について少なくとも２つの信頼度を作成することと、
１つまたは複数の物体の各々の信頼度に基づいて考慮から１つまたは複数の物体のうちの少なくとも１つをフィルタリングすることと、
を含む方法において具現化することができる。
【００１１】
本開示に記載される主題の別の発明的態様は、
１つまたは複数のセンサによって取り込まれた画像から検出された提案された手足を含む初期手足提案を受信することと、
第１のインスタンスにおいて、提案された手足の寸法に基づいて提案された手足をランク付けすることと、
第２のインスタンスにおいて、画像内の提案された手足の位置に基づいて提案された手足をランク付けすることと、
第３のインスタンスにおいて、相互投票(mutual voting)を使用して提案された手足を
ランク付けすることと、
第４のインスタンスにおいて、提案された手足のうちの少なくとも１つに関連付けられたＣＡＮデータを受信することに応答して、提案された手足をランク付けすることと、
第１のインスタンス、第２のインスタンス、第３のインスタンス、および第４のインスタンスのランク付けに関連付けられた信頼度を集約することと、
集約された信頼度に基づいて提案された手足のサブセットを含むフィルタリングされた提案を出力することと、
を含む方法において具現化することができる。
【００１２】
上記その他の実装形態は、各々、場合によっては、以下の特徴および／または動作のうちの１つまたは複数を含む場合がある。
例えば、特徴および／または動作は、
２つ以上のコンテキストプロセッサが、１つまたは複数の物体の各々に境界ボックスを適合させ、境界ボックスに基づいて１つまたは複数の物体の各々についての信頼度を決定するように実行可能なプロセッサ、画像内の物体の各々の位置に基づいて物体の各々についての信頼度を決定するように実行可能なプロセッサ、相互投票を使用して物体の各々についての信頼度を決定するように実行可能なプロセッサ、および画像データに対応する時間に受信されたＣＡＮデータに基づいて物体の各々についての信頼度を決定するように実行可能なプロセッサのうちの２つ以上を含むことと、
画像データから１つまたは複数のセンサに関連付けられたセンサ位置を推定することと、
センサ位置を使用してコンテキストデータベースからコンテキストデータを取り出すことと、
センサ位置を推定することが、画像データから色の特徴およびテクスチャの特徴を抽出し、識別モデルを使用して１つまたは複数の物体についての１つまたは複数の位置の確率を特定し、１つまたは複数の位置の確率に基づいてセンサ位置を特定することを含むことと、
センサ位置がセンサ位置についての確率を含むことと、
フィルタリングされていない物体に関連付けられた境界ボックスの位置を精緻化することと、
考慮から１つまたは複数の物体のうちの少なくとも１つをフィルタリングすることが、１つまたは複数の物体の各々についての少なくとも２つの信頼度を使用して１つまたは複
数の物体の各々についての集約された信頼度を計算し、１つまたは複数の物体の各々についての集約された信頼度をあらかじめ決定されたしきい値と比較することを含むことと、
フィルタリングに基づいて決定された出力に基づいて、車両の１つまたは複数の出力デバイスを介してユーザに、聴覚指示、視覚指示、および触覚指示のうちの１つまたは複数を提供することと、
を含む。
【００１３】
他の態様は、上記その他の発明的態様のための対応する方法、システム、装置、およびコンピュータプログラム製品を含む。
【００１４】
また、本発明に係る方法は、コンピュータによって実行される方法であって、移動プラットフォームが有するセンサから画像を取得する画像取得ステップと、前記画像から、前記移動プラットフォームに関連付いたユーザの手足に対応する一つ以上のオブジェクトを検出する検出ステップと、二つ以上のコンテキストプロセッサを併用して、前記一つ以上のオブジェクトのそれぞれに対して信頼度を決定する決定ステップと、前記信頼度に基づいて、前記オブジェクトをフィルタリングするフィルタステップと、を含む。
【００１５】
本発明に係る方法は、以下の特徴を含んでいてもよい。
例えば、前記決定ステップでは、（１）前記検出したオブジェクトに外接する矩形の寸法に基づいて、当該オブジェクトの信頼度を決定する第１のプロセッサ、（２）前記検出したオブジェクトの、前記画像内における位置に基づいて、当該オブジェクトの信頼度を決定する第２のプロセッサ、（３）左右の手足の対関係に基づいて、対応するオブジェクトの信頼度を決定する第３のプロセッサ、（４）前記画像に対応するタイミングで取得したＣＡＮデータに基づいて、対応するオブジェクトの信頼度を決定する第４のプロセッサ、のうちの二つ以上を併用することを特徴としてもよい。
また、前記コンテキストプロセッサが前記信頼度を決定するために用いるデータを、データベースから取得する取得ステップをさらに含み、前記決定ステップでは、前記コンテキストプロセッサごと、前記センサの位置ごとに異なる前記データを用いて前記信頼度を決定することを特徴としてもよい。
また、前記画像に基づいて、前記センサに対応するセンサ位置を推定する推定ステップをさらに含み、前記決定ステップでは、前記データベースから、推定した前記センサ位置に対応する前記データを取得することを特徴としてもよい。
また、前記推定ステップでは、前記画像から色またはテクスチャに関する特徴を抽出し、前記特徴および識別モデルを用いて、前記センサ位置を推定することを特徴としてもよい。
また、前記センサ位置は、前記センサが所定の位置にある確率を表した情報であることを特徴としてもよい。
また、前記オブジェクトに外接する矩形の位置を補正する補正ステップをさらに含むことを特徴としてもよい。
また、前記フィルタステップでは、前記オブジェクトごとに、前記コンテキストプロセッサが決定した二つ以上の信頼度を統合し、統合された前記信頼度と所定の閾値とを比較することでフィルタ対象を決定することを特徴としてもよい。
また、前記移動プラットフォームは車両であり、前記フィルタリングされたオブジェクトに関する情報に基づいて、前記車両の運転者に、視聴覚または触覚による指示を提供する提供ステップをさらに含むことを特徴としてもよい。
【００１６】
また、本発明の別形態に係る方法は、
コンピュータによって実行される方法であって、センサによって取り込まれた画像から検出された手足候補を取得する候補取得ステップと、検出された手足の寸法に基づいて前記手足候補をランク付けする第１のステップと、検出された手足の位置に基づいて前記手
足候補をランク付けする第２のステップと、左右の手足の対関係に基づいて前記手足候補をランク付けする第３のステップと、検出された手足を有するユーザが乗車している車両によって生成されたＣＡＮデータに基づいて前記手足候補をランク付けする第４のステップと、前記第１から第４のステップにおけるランク付けの結果を集約して信頼度を決定する決定ステップと、前記信頼度に基づいて、前記手足候補をフィルタリングするフィルタステップと、を含むことを特徴とする。
【００１７】
また、本発明に係るシステムは、
移動プラットフォームが有するセンサから画像を取得する画像取得手段と、前記画像から、前記移動プラットフォームに関連付いたユーザの手足に対応する一つ以上のオブジェクトを検出する検出手段と、二つ以上のコンテキストプロセッサを併用して、前記一つ以上のオブジェクトのそれぞれに対して信頼度を決定する決定手段と、前記信頼度に基づいて、前記オブジェクトをフィルタリングするフィルタ手段と、を含むことを特徴とする。
【００１８】
さらなる例として、本技術は、自然な運転状況についての階層型コンテキストアウェアによる手足（例えば、手）検出のためのシステムを含む。システムは、コンテキストの事前推定（例えば、視点検出）と、コンテキストアウェアによる手足検出器と、手足の位置を微調整する後処理（例えば、境界ボックス回帰）とを含む。探索されたコンテキストキューは、ありがちな手足（例えば、手）の形状および位置、ドライバーの習性、ならびに手足の間の関節空間分布などを含む。また、有利なことに、様々なコンテキストチャネルから得られた信頼性が一緒に集約される。例示的な使用事例では、システムは、公的なＶＩＶＡハンドデータセットなどのサンプルデータ、および背景技術セクションに記載された様々な解決策より著しく優れている実証検出結果を評価した。
【００１９】
本開示において提示される新規の技術は、いくつかの点で特に有利である。例えば、本技術は、広範囲の状況（例えば、明暗状況）を有する動的なリアルタイム環境において、手などのキャビン内にある手足を検出できる包括的な解決策を提供する。本技術は、手が車両構成要素または外部の物体と接触しているか否かにかかわらず、ドライバーの動いている手を検出し、位置を特定することができる。さらに、本技術は、ドライバーの手が車両のハンドルと接触していることを必要とせず、ドライバーの各手の位置を正確に特定することができ、効率的であり（例えば、１５ＦＰＳまたはそれより速く動作することができ）、（ハードウェアのアップグレードを必要とせずに）既存のコンピューティングハードウェア上で、動的にリアルタイムで手足を検出することができ、より高い解像度、より正確な手の検出を実現するように車両のコンテキスト的特徴を考慮し、ある特定の対象画像領域に限定されず、覆い隠された、または塞がれた手足を検出することが可能であり、複数の視点から複数の車両内のコンテキストを考慮することによって検出を改善することができ、ドライバー活動認識、注意散漫検出、および高度運転支援システムを含む複数のアプリケーションに適用することができる。
【００２０】
上記の利点は例として提供されたこと、ならびに本技法は多数の他の利点および利益を有することができることを理解されたい。
【００２１】
本開示は、添付図面の図において限定ではなく例として示され、添付図面では、同様の構成要素を参照するために同様の参照番号が使用される。
【図面の簡単な説明】
【００２２】
【図１】手足検出のためのシステム例のブロック図である。
【図２Ａ】コンピューティングデバイス例のブロック図である。
【図２Ｂ】手足検出アプリケーション例のブロック図である。
【図３Ａ】手足を検出し精緻化するための方法例のフローチャートである。
【図３Ｂ】手足を検出し精緻化するためのさらなる方法例のフローチャートである。
【図４】コンテキストアウェア手足処理のための方法例のフローチャートである。
【図５】境界ボックスの注釈付きの車両キャビンの画像の例である。
【図６】空間フィルタリングデータを重ね合わせた画像の例である。
【図７】関節空間分布を示す画像の例である。
【図８】手足と車両制御盤との間の相互作用を示す画像の例である。
【図９】２つの境界ボックスの適用を示す画像の例である。
【図１０】提案された手足を採点するための方法例のフローチャートである。
【図１１】空間モデルアルゴリズム例を表す図である。
【図１２】適合されたモデルのグラフィカル表現例である。
【発明を実施するための形態】
【００２３】
本明細書に記載される技術は、ドライバー（車両運転者）などの人間の手足の活動を検出および解釈し、それに基づいてフィードバックを作成および提供することができる。本明細書で説明される実施形態は人の手に関するが、「手足（extremity）」は、手と足に
限られず、人の脚、首、頭、胴、器具、または他の天然もしくは合成器官を含む場合がある。本明細書に記載されるように、本技術は、車両およびそのドライバーの関連するコンテキスト情報を取り込み、それを使用して、ドライバーの動いている手足の位置を特定することが可能なコンテキストアウェアフレームワークを含む。いくつかの実施形態では、コンテキスト情報は、階層的に取り込むことができる。
【００２４】
本技術は、静止した手、動いている手、車両制御盤を使用する手、塞がれた手、塞がった状況下の手などの様々な状態において、手などのドライバーの手足を検出することができる。本技術は、手足を意味的に認識し、顔または前腕などの他の身体部分とそれらを区別することができ、様々な外部照明状態、手の変形、閉塞、および変化するキャビン内部の環境状況において動作することができる。本技術によって使用されるアルゴリズムは、動的にリアルタイムで動作し、他の解決策と比較して改善された確度および堅牢性を伴い、絶え間なく運転者を監視することができる。
【００２５】
さらに、本技術は車両というコンテキスト内で記載されるが、正確かつ堅牢な手足検出によって恩恵を受けることができる他の領域に対して拡張することができ、それらに適している。例示的な領域には、運転室、コックピット、制御室などが含まれる。多くの場合、これらの領域は、それらの領域のハードウェアまたはソフトウェアの基盤を実質的に変更することなく、本明細書に記載される態様を含むようにアップグレードすることができる。
【００２６】
本技術は、様々なシステム、方法、インターフェース、および他の態様を含む場合がある。図１は、手足検出のための１つの例示的なシステム１００のブロック図である。図示されたシステム１００は、サーバ１０２と、クライアントデバイス１２４と、移動プラットフォーム１１８とを含むが、実際には、１つまたは複数のこれらの構成要素のうちの複数が含まれる場合があることを理解されたい。システム１００のエンティティは、ネットワーク１１２を介して通信可能に結合される。図１に描写されたシステム１００は、例として提供され、本開示によって考察されるシステム１００や他のシステムは、追加の、またはより少ない構成要素を含む場合があり、構成要素を組み合わせ、かつ構成要素のうちの１つもしくは複数をさらなる構成要素に分割することができることなどを理解されたい。例えば、システム１００は、任意の数のサーバ１０２、クライアントデバイス１２４、移動プラットフォーム１１８を含む場合がある。追加または代替として、システム１００は、ユーザから音声コマンドを受信し処理するための音声サーバ、検索クエリに該当する検索結果を提供するための検索サーバなどを含んでもよい。
【００２７】
ネットワーク１１２は、従来のタイプの有線または無線ネットワークであり得るし、スター形構成、トークンリング構成、または他の構成を含む、多数の様々な構成を有する場合がある。さらに、ネットワーク１１２は、１つもしくは複数のローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）（例えばインターネット）、公衆ネットワーク、プライベートネットワーク、仮想ネットワーク、ピアツーピアネットワーク、複数のデバイスがそれを介して通信することができる他の相互接続データパスを含む場合がある。例えば、ネットワーク１１２は、車両対車両ネットワーク、車両対インフラ、インフラ対車両ネットワークなどを含む場合がある。
【００２８】
ネットワーク１１２はまた、様々な異なる通信プロトコルでデータを送るための電気通信ネットワークの一部に結合され、またはそれらを含む場合がある。いくつかの実施形態では、ネットワーク１１２は、ショートメッセージングサービス（ＳＭＳ）、マルチメディアメッセージングサービス（ＭＭＳ）、ハイパーテキスト転送プロトコル（ＨＴＴＰ）、直接データ接続、ＷＡＰ、電子メールなどを介して、データを送受信するためのＢｌｕｅｔｏｏｔｈ（登録商標）通信ネットワークおよび／またはセルラー通信ネットワークを含む。いくつかの実施形態では、ネットワーク１１２は、ＤＳＲＣ、ＷＡＶＥ、８０２．１１ｐ、３Ｇ、４Ｇ、５Ｇ＋ネットワーク、ＷｉＦｉ（登録商標）、または任意の他のワイヤレスネットワークなどの接続を使用するワイヤレスネットワークである。図１は、サーバ１０２、クライアントデバイス１２４、および移動プラットフォーム１１８に結合するネットワーク１１２用の単一ブロックを示すが、ネットワーク１１２は、実際には、上述されたように、任意の数や組合せのネットワークを備える場合があることを理解されたい。
【００２９】
サーバ１０２は、プロセッサ、メモリ、およびネットワーク通信能力（例えば、通信ユニット）を含むハードウェアサーバや仮想サーバを含むことができる。サーバ１０２は、信号線１１０によって表されるように、ネットワーク１１２に通信可能に結合することができる。いくつかの実施形態では、サーバ１０２は、クライアントデバイス１２４および移動プラットフォーム１１８のうちの１つまたは複数との間でデータを送受信することができる。サーバ１０２は、本明細書の中の他の場所でさらに説明されるように、手足検出アプリケーションのインスタンス１０４ａと、コンテキストデータベース１０６と、ナビゲーションデータベース１０８とを含む場合がある。
【００３０】
ナビゲーションデータベース１０８は、ナビゲーション関連データを記憶する手段である。例には、マッピングデータ、経路データ、関心地点、ユーザ旅行履歴などが含まれる。いくつかの実施形態では、ナビゲーション関連データは、各ユーザの運転履歴を記述するナビゲーション履歴データや、ユーザによって以前に行われた走行の履歴に関連付けられた経路データを含む場合がある。ナビゲーション履歴データの非限定的な例として、ユーザが過去に移動した道路区間に関連付けられた道路名のリスト、道路区間の道路タイプ（例えば、都市、地方、住宅地、高速道路など）、道路速度情報（例えば、道路区間の速度制限、ユーザの実際の速度など）、時間情報（例えば、ユーザが道路区間上を以前移動した日付および時刻、ユーザが道路区間上を移動した回数など）、道路区間に関連付けられた運転のしやすさ基準（例えば、低い、適度、高い、容易、困難など）などが含まれる。
【００３１】
図１では、サーバ１０２がコンテキストデータベース１０６およびナビゲーションデータベース１０８を含むものとして示されているが、移動プラットフォーム１１８やクライアントデバイス１２４が、追加または代替として、コンテキストデータやナビゲーション履歴データを記憶する場合があることを理解されたい。例えば、移動プラットフォーム１１８やクライアントデバイス１２４は、コンテキストデータベース１０６やナビゲーションデータベース１０８のインスタンスを含む場合があり、コンテキストデータベース１０
６やナビゲーションデータベース１０８からのデータをキャッシュまたは複製する（例えば、様々な間隔でコンテキストデータやナビゲーション履歴データをダウンロードする）場合があり、様々な増分でサーバ１０２によってプッシュされた最新データを受信する場合などがある。例えば、コンテキストデータやナビゲーション履歴データは、移動プラットフォーム１１８の中に事前に記憶およびインストールされ、セットアップまたは最初の使用時に記憶またはリフレッシュされ、様々な間隔で複製されるなどの場合がある。さらなる実施形態では、コンテキストデータベース１０６やナビゲーションデータベース１０８からのデータは、実行時に要求およびダウンロードされる場合がある。他の適切な変形形態も可能であり、考えられる。
【００３２】
クライアントデバイス１２４は、メモリ、プロセッサ、および通信ユニットを含むコンピューティングデバイスである。クライアントデバイス１２４は、ネットワーク１１２に結合することができ、サーバ１０２および移動プラットフォーム１１８（またはネットワーク１１２に結合されたシステムの任意の他の構成要素）のうちの１つまたは複数との間でデータを送受信することができる。クライアントデバイス１２４の非限定的な例には、ラップトップコンピュータ、デスクトップコンピュータ、タブレットコンピュータ、モバイル電話、携帯情報端末（ＰＤＡ）、モバイル電子メールデバイス、ウェアラブルデバイス、組込み型コンピューティングデバイス、または、情報を処理し、ネットワーク１１２にアクセスすることが可能な任意の他の電子デバイスが含まれる。いくつかの実施形態では、クライアントデバイス１２４は、１つまたは複数のセンサ１２０を含む場合がある。
【００３３】
いくつかの実施形態では、クライアントデバイス１２４は、ユーザ支援アプリケーションのインスタンス１２２ｂを含む場合があり、ユーザ支援アプリケーションのインスタンス１２２ｂは、ナビゲーション機能、探索機能、通知、他の運転関連機能、移動プラットフォーム構成機能などをユーザに提供するように構成された命令を実行する。ユーザ１２８は、線１２６によって示されたように、クライアントデバイス１２４と対話することができる。図１は１つのクライアントデバイス１２４を示すが、システム１００は１つまたは複数のクライアントデバイス１２４を含むことができる。
【００３４】
移動プラットフォーム１１８は、メモリ、プロセッサ、および通信ユニットを有するコンピューティングデバイスを含む。コンピューティングデバイスの例には、１つまたは複数のセンサ、アクチュエータ、モチベータなどの、移動プラットフォーム１１８の他の構成要素に結合された、電子制御ユニット（ＥＣＵ）、組込み型コンピューティングシステム、ワイヤレスコンピューティングデバイス、または他の適切なコントローラのうちの１つまたは複数が含まれ得る。移動プラットフォーム１１８は、信号線１１４を介してネットワーク１１２に結合することができ、サーバ１０２およびクライアントデバイス１２４のうちの１つまたは複数との間でデータを送受信することができる。いくつかの実施形態では、移動プラットフォーム１１８は、ある点から別の点に移動することが可能である。移動プラットフォーム１１８の非限定的な例には、車両、自動車、バス、ボート、飛行機、生体工学インプラント、または、非一時的コンピュータエレクトロニクス（例えば、プロセッサ、メモリ、もしくは非一時的コンピュータエレクトロニクスの任意の組合せ）を有する任意の他のモバイルシステムが含まれる。ユーザ１２８は、線１３０によって表されるように、移動プラットフォーム１１８と対話することができる。ユーザ１２８は、移動プラットフォーム１１８を運転する人間のユーザである。例えば、ユーザ１２８は車両のドライバーであってもよい。移動プラットフォーム１１８は、本明細書の中の他の場所で詳細に記載されるユーザ支援アプリケーションのインスタンス１２２ｃを含む場合がある。図１は１つの移動プラットフォーム１１８を示すが、システム１００は１つまたは複数の移動プラットフォーム１１８を含むことができる。
【００３５】
移動プラットフォーム１１８は、１つまたは複数のセンサ１２０を含む。センサ１２０
は、移動プラットフォーム１１８またはクライアントデバイス１２４に適した任意のタイプのセンサを含む場合がある。センサ１２０は、コンピューティングデバイス（例えば、移動プラットフォーム１１８、クライアントデバイス１２４など）またはその周辺環境の特性を判断することに適した任意のタイプのデータを収集するように構成されてもよい。センサ１２０の非限定的な例には、様々な光学センサ（ＣＣＤ、ＣＭＯＳ、２Ｄ、３Ｄ、光検出と測距（ＬＩＤＡＲ）、カメラなど）、オーディオセンサ、動き検出センサ、気圧計、高度計、熱電対、湿度センサ、ＩＲセンサ、レーダーセンサ、他の光センサ、ジャイロスコープ、加速度計、速度計、ステアリングセンサ、制動センサ、スイッチ、車両インジケータセンサ、ワイパーセンサ、地理位置センサ、トランシーバ、ソナーセンサ、超音波センサ、タッチセンサ、近接センサなどが含まれる。
【００３６】
いくつかの実施形態では、センサ１２０は、人間を表す信号データを取り込むための、ドライバーなどの移動プラットフォーム１１８内の人間を向いたセンサを含む場合がある。いくつかの実施形態では、センサ１２０は、ドライバーの座席においてドライバー（ユーザ）に向けられ、画像を取り込むように構成される、本明細書の中の他の場所で説明される画像センサなどの画像センサを含む。例えば、センサ１２０は、動的環境に適した様々なフレームレート（例えば、１０ＦＰＳ、１５ＦＰＳ、３０ＦＰＳ、６０ＦＰＳ＋）を使用して、画像ストリーム（例えば、ビデオストリーム）のフレームを記録することができ、任意の適用可能な方法を使用して取り込まれたビデオ画像および静止画像を符号化および処理することができる。いくつかの実施形態では、顔面センサは、ユーザ１２８（例えば、ドライバー）の手足の活動（例えば、手や腕の動き、頭の動き、体の動きなど）、または顔の表情（例えば、眼瞼運動、眼球の衝動性運動など）を監視することにより、そのユーザの挙動データを収集することができる。例えば、顔面センサは、下記でさらに詳細に説明されるように、ユーザの手や腕の位置を監視することができる。例示的なフレームレート値は１５ＦＰＳ〜３００ＦＰＳであり得る。さらなる例では、フレームレート値は２２〜３６ＦＰＳ以内（例えば３０ＦＰＳ）であり得るし、（例えば、車両などの移動プラットフォーム１１８内に設置された）ウェブカメラなどのＲＧＢセンサを使用することができる。（コストを最小化する）車両内の既存のＲＧＢセンサを適合させ、使用することができるか、またはそのようなセンサの安価な性質に起因して低いコストでそのようなセンサを設置することができるため、これは有利である。さらに、そのようなセンサからの画像データを処理することは、既存のプロセッサやハードウェアを使用して処理することができ、ハードウェアアップグレードに対する必要性を除去する。
【００３７】
いくつかの実施形態では、センサ１２０は、運転しているユーザの生理学的信号を測定および監視するように構成された１つまたは複数のバイオセンサを含む、生理学的センサを含む。取り込まれる生理学的信号の例として、例えば、心電図検査信号（例えば、ＥＣＧ／ＥＫＧ信号）、呼吸信号、皮膚コンダクタンス、皮膚温度、筋肉の緊張などが含まれ得るが、これらに限られない。
【００３８】
いくつかの実施形態では、センサ１２０は、車両の外部を向いており、外部環境の態様を含む信号データを取り込むように構成された様々なセンサなどの、車道センサを含む。例えば、センサは、外部環境の画像を取り込む画像センサを含む場合があり、動的環境に適したフレームレートを使用して画像ストリームのフレームを記録することができ、任意の適用可能な方法を使用して取り込まれた画像を符号化および処理することができる。例えば、移動プラットフォームのコンテキストでは、センサ１２０は、他の車両、歩行者、車道、空、山、路側構造体、ビルディング、木、動的物体、車道に沿って位置する静的物体（例えば、車線、交通信号、道路標識など）などを含む、移動プラットフォーム１１８のまわりの環境を取り込むことができる。いくつかの実施形態では、１つまたは複数の内部または外部のセンサは、多方向（例えば、ＬＩＤＡＲなど）である。
【００３９】
いくつかの実施形態では、本技術は、下記でより詳細に記載される１つまたは複数のコンテキストプロセッサによる処理のためのセンサ出力を一緒に融合することができる。場合によっては、センサデータの融合により、コンテキストプロセッサがより堅牢なモデルを構築することが可能になる。例えば、生理学的センサからのデータは、人間のドライバーのストレスや弛緩のレベルを表すことができ、ＣＡＮデータは、１つまたは複数の手足を使用する車両の制御盤とのドライバーによる相互作用を表すことができ、検出データは、手足の位置および寸法を表すことができる。コンテキストプロセッサまたは別のアップストリーム構成要素は、時間または時間範囲の所与のインスタンスのために、これらのデータセットのうちの１つまたは複数を融合することができる。融合されたデータは、手足の位置を車両の制御盤、ドライバーの意識、または他の次元と相関させることができ、コンテキストプロセッサによって処理されるモデルは、態様またはそれらの組合せの各々についての次元を含む場合がある。他の変形形態も可能であり、考えられる。
【００４０】
いくつかの実施形態では、センサデータは、後の処理および分析のために、１つまたは複数のデータストア、例えば図２Ａに描写されたデータストア２１２に記憶することができる。
【００４１】
移動プラットフォーム１１８やクライアントデバイス１２４のプロセッサ（例えば、図２Ａ参照）は、センサ１２０によって取り込まれたセンサデータを受信し処理することができる。移動プラットフォーム１１８のコンテキストでは、プロセッサは、自動車などの移動プラットフォーム１１８に実装された電子制御ユニット（ＥＣＵ）を含むか、それに結合されるか、または他の方法でそれに関連付けられる場合があるが、他の移動プラットフォームのタイプも考えられる。ＥＣＵは、センサデータを受信し、手足検出アプリケーション１０４によるアクセスおよび取出しのために、車両動作データとして車両ＣＡＮ（コントローラエリアネットワーク）データストアに記憶することができる。さらなる例では、車両動作データは、（受信および処理された場合に、例えば、車両バス、ＥＣＵなどを介して）手足検出アプリケーション１０４に、より直接的に供給される場合がある。他の適切な変形形態も可能であり、考えられる。さらなる例として、１つまたは複数のセンサ１２０は、道路区間上を移動している移動プラットフォーム１１８（例えば、車両）の内部環境または外部環境のセンサデータを取り込むことができる。手足検出アプリケーション１０４は、本明細書の中の他の場所でさらに説明されるように、（例えば、バス、ＥＣＵなどを介して）センサ１２０からセンサデータ（例えば、画像ストリーム、生または処理された信号データなど）を受信し、それを処理して手足検出関連動作を実行することができる。
【００４２】
サーバ１０２、移動プラットフォーム１１８、クライアントデバイス１２４は、（本明細書では単に１０４とも呼ばれる）手足検出アプリケーションのインスタンス１０４ａ、１０４ｂ、および１０４ｃを含む場合がある。いくつかの構成では、手足検出アプリケーション１０４は、異なる位置における異なるデバイス上にネットワーク１１２を介して分散される場合があり、その場合、クライアントデバイス１２４、移動プラットフォーム１１８、サーバ１０２は、各々、手足検出アプリケーション１０４の（同じ、同様、異なるなどの）態様を備える手足検出アプリケーション１０４のインスタンスを含む場合がある。例えば、手足検出アプリケーションの各インスタンス１０４ａ、１０４ｂ、および１０４ｃは、下記でより詳細に説明される、図２Ｂに描写された副構成要素、これらの副構成要素の様々な変形形態のうちの１つまたは複数を備える場合がある。いくつかの実施形態では、手足検出アプリケーション１０４は、例えば、図２Ｂに描写された構成要素のすべてを備えるネイティブアプリケーションであり得る。
【００４３】
他の変形形態や組合せも可能であり、考えられる。図１に示されたシステム１００は例示的なシステムの代表であり、様々な異なるシステム環境およびシステム構成が考えられ
、本開示の範囲内にあることを理解されたい。例えば、様々な行為や機能をサーバからクライアントに、またはその逆に移動することができ、データは、単一のデータストアに統合されるか、または追加のデータストアの中にさらにセグメント化される場合があり、いくつかの実施形態は、追加のまたはより少ないコンピューティングデバイス、サービス、ネットワークを含む場合があり、様々な機能のクライアントまたはサーバ側を実装する場合がある。さらに、システムの様々なエンティティは、単一のコンピューティングデバイスもしくはシステムの中に統合されるか、または追加のコンピューティングデバイスもしくはシステムの中に分割されるなどの場合がある。
【００４４】
手足検出アプリケーション１０４は、ユーザのシーン精通度を決定するように実行可能なソフトウェアやハードウェア論理を含む。本明細書の中の他の場所で説明されるように、いくつかの実施形態では、所与のユーザについて、手足検出アプリケーション１０４は、センサデータを処理し、道路シーンを記述するマルチレベル署名表現を作成し、道路シーンに対するユーザの精通度を反映する精通度インデックスを作成することができる。いくつかの実施形態では、手足検出アプリケーション１０４は、１つもしくは複数のコンピュータデバイスの１つもしくは複数のプロセッサによって実行可能なソフトウェア、限定はしないが、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、特定用途向け集積回路（ＡＳＩＣ）などのハードウェア、ハードウェアとソフトウェアの組合せなどを使用して実装することができる。手足検出アプリケーション１０４は、少なくとも図２Ｂ〜図１１を参照して下記でより詳細に記載される。
【００４５】
移動プラットフォーム１１８およびクライアントデバイス１２４は、（本明細書では単に１２２とも呼ばれる）ユーザ支援アプリケーションのインスタンス１２２ｂおよび１２２ｃを含む場合がある。いくつかの構成では、ユーザ支援アプリケーション１２２は、異なる位置にある異なるデバイス上にネットワーク１１２を介して分散される場合があり、その場合、移動プラットフォーム１１８やクライアントデバイス１２４は、各々、ユーザ支援アプリケーション１２２の（同じ、同様、異なるなどの）態様を備えるユーザ支援アプリケーション１２２のインスタンスを含む場合がある。
【００４６】
ユーザ支援アプリケーション１２２は、手足検出アプリケーション１０４によって実行される手足の処理に基づいて、ユーザにユーザ支援を提供するように実行可能なソフトウェアやハードウェア論理を含む。いくつかの実施形態では、本明細書の中の他の場所で説明されるように、ユーザ支援アプリケーション１２２は、手足検出アプリケーション１０４の出力に応じて、リアルタイムおよび適切なレベルでユーザに指示を与えることができる。さらなる例として、いくつかの実施形態では、ユーザの移動プラットフォーム１１８やクライアントデバイス１２４上で少なくとも部分的に動作するユーザ支援アプリケーション１２２のインスタンスは、移動プラットフォーム１１８やクライアントデバイス１２４の１つまたは複数の出力デバイス（例えば、スピーカシステム、ディスプレイ上に表示されるグラフィカルユーザインターフェースなど）を介して、ユーザにユーザ支援指示を与えることができる。
【００４７】
いくつかの実施形態では、ユーザ支援アプリケーション１２２は、１つもしくは複数のコンピュータデバイスの１つもしくは複数のプロセッサによって実行可能なソフトウェア、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、特定用途向け集積回路（ＡＳＩＣ）などのハードウェア、ハードウェアとソフトウェアの組合せなどを使用して実装することができる。
【００４８】
図２Ａは、サーバ１０２、移動プラットフォーム１１８、またはクライアントデバイス１２４のいずれかのアーキテクチャを表すことができる、例示的なコンピューティングデバイス２００のブロック図である。
【００４９】
描写されたように、コンピューティングデバイス２００は、１つもしくは複数のプロセッサ２０２、１つもしくは複数のメモリ２０４、１つもしくは複数の通信ユニット２０６、１つもしくは複数のセンサ１２０、１つもしくは複数の入力／出力デバイス２１０、１つもしくは複数のデータストア２１２を含む。コンピューティングデバイス２００の構成要素は、バス２０８によって通信可能に結合される。コンピューティングデバイス２００がサーバ１０２である実施形態では、コンピューティングデバイス２００は、手足検出アプリケーション１０４のインスタンスと、コンテキストデータベース１０６と、ナビゲーションデータベース１０８とを含む。コンピューティングデバイス２００が移動プラットフォーム１１８またはクライアントデバイス１２４である実施形態では、コンピューティングデバイス２００は、ユーザ支援アプリケーション１２２のインスタンスと、手足検出アプリケーション１０４のインスタンスとを含む。これらの実施形態は例にすぎず、本明細書の中の他の場所で説明されるように、他の構成も可能であり、考えられることを理解されたい。さらに、図２Ａに描写されたコンピューティングデバイス２００は例として提供され、コンピューティングデバイス２００は、本開示の範囲から逸脱することなく、他の形態を取り、追加のまたはより少ない構成要素を含む場合があることを理解されたい。例えば、図示されていないが、コンピューティングデバイス２００は、様々なオペレーティングシステム、ソフトウェア構成要素、ハードウェア構成要素、および他の物理構成を含む場合がある。
【００５０】
コンピューティングデバイス２００が移動プラットフォーム１１８に含まれる、または組み込まれる実施形態では、コンピューティングデバイス２００は、プラットフォームバス（例えば、ＣＡＮ）、１つもしくは複数のセンサ（例えば、１つもしくは複数の制御ユニット（例えば、ＥＣＵ、ＥＣＭ、ＰＣＭなど）、自動車用センサ、音響センサ、化学センサ、生体工学センサ、位置センサ（例えば、ＧＰＳ、コンパス、加速度計、ジャイロスコープなど）、スイッチ、およびコントローラ、カメラなど）、エンジン、動力伝達装置、サスペンションコンポーネント、計装、温度調節器、および、必要な任意の他の電気的、機械的、構造的、および機械的な構成要素などの、移動プラットフォーム１１８の様々なプラットフォーム構成要素を含み、またはそれらに結合される場合がある。
【００５１】
プロセッサ２０２は、様々な入出力演算、論理演算、数学演算を実施することにより、ソフトウェア命令を実行することができる。プロセッサ２０２は、例えば、複合命令セットコンピュータ（ＣＩＳＣ）アーキテクチャ、縮小命令セットコンピュータ（ＲＩＳＣ）アーキテクチャ、または命令セットの組合せを実装するアーキテクチャを含む、データ信号を処理する様々なコンピューティングアーキテクチャを有する場合がある。プロセッサ２０２は、実体または仮想であり得るし、シングルコアまたは複数の処理ユニット、もしくはコアを含む場合がある。いくつかの実施形態では、プロセッサ２０２は、電子表示信号を生成し、ディスプレイデバイス（図示せず）に供給し、画像の表示をサポートし、画像を取り込み送信し、様々なタイプの特徴抽出およびサンプリングなどを含む複雑なタスクを実行することができる。いくつかの実施形態では、プロセッサ２０２は、バス２０８を介してメモリ２０４に結合されて、そこからデータおよび命令にアクセスし、その中にデータを記憶することができる。バス２０８は、例えば、メモリ２０４、通信ユニット２０６、センサ１２０、入力／出力デバイス２１０、データストア２１２を含む、コンピューティングデバイス２００の他の構成要素にプロセッサ２０２を結合することができる。
【００５２】
メモリ２０４は、データを記憶し、コンピューティングデバイス２００の他の構成要素にデータアクセスを提供することができる。いくつかの実施形態では、メモリ２０４は、プロセッサ２０２によって実行され得る命令またはデータを記憶することができる。例えば、コンピューティングデバイス２００の構成に応じて、メモリ２０４は、アプリケーション１０４または１２２のうちの１つまたは複数を記憶することができる。メモリ２０４
は、例えば、本明細書に記載された様々なデータ、オペレーティングシステム、ハードウェアドライバー、他のソフトウェアアプリケーション、データベースなどを含む、他の命令およびデータを記憶することも可能である。メモリ２０４は、プロセッサ２０２およびコンピューティングデバイス２００の他の構成要素との通信のために、バス２０８に結合することができる。
【００５３】
メモリ２０４は、プロセッサ２０２によって、またはプロセッサ２０２とともに処理するための、命令、データ、コンピュータプログラム、ソフトウェア、コード、ルーチンなどを、含有、記憶、通信、伝搬、または搬送することができる任意の有形な非一時的装置またはデバイスであり得る、非一時的コンピュータ使用可能（例えば、読取り可能、書込み可能などの）媒体を含む。いくつかの実施形態では、メモリ２０４は、揮発性メモリおよび不揮発性メモリのうちの１つまたは複数を含む。例えば、メモリ２０４は、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）デバイス、スタティックランダムアクセスメモリ（ＳＲＡＭ）デバイス、ディスクリートメモリデバイス（例えば、ＰＲＯＭ、ＦＰＲＯＭ、ＲＯＭ）、ハードディスクドライブ、光ディスクドライブ（ＣＤ、ＤＶＤ、Ｂｌｕ−ｒａｙ（登録商標）など）のうちの１つまたは複数を含む場合があるが、これらに限定されない。メモリ２０４は単一のデバイスであり得るか、または複数のタイプのデバイスおよび構成を含む場合があることを理解されたい。
【００５４】
通信ユニット２０６は、無線接続や有線接続を使用して、（例えば、ネットワーク１１２を介して）通信可能に結合された他のコンピューティングデバイスにデータを送信し、それらからデータを受信する。通信ユニット２０６は、データを送受信するための１つまたは複数の有線インターフェースやワイヤレストランシーバを含む場合がある。通信ユニット２０６は、ネットワーク１１２に結合し、（構成に応じて）クライアントデバイス１２４、移動プラットフォーム１１８、サーバ１０２などの他のコンピューティングノードと通信することができる。通信ユニット２０６は、上記で説明された通信方法などの標準の通信方法を使用して、他のコンピューティングノードとデータを交換することができる。
【００５５】
データストア２１２は、データを記憶する非一時的記憶媒体である。非限定的で例示的な非一時的記憶媒体には、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）デバイス、スタティックランダムアクセスメモリ（ＳＲＡＭ）デバイス、フラッシュメモリ、ハードディスクドライブ、フロッピーディスクドライブ、ディスクベースのメモリデバイス（例えば、ＣＤ、ＤＶＤ、Ｂｌｕ−ｒａｙ（登録商標）など）、フラッシュメモリデバイス、または他の何らかの既知の有形揮発性もしくは不揮発性ストレージデバイスが含まれ得る。図２Ａによって表されるコンピューティングデバイスに応じて、データストアは、コンテキストデータベース１０６またはナビゲーションデータベース１０８のうちの１つまたは複数を表すことができる。
【００５６】
データストア２１２は、コンピューティングデバイス２００、あるいは、別のコンピューティングデバイス、またはコンピューティングデバイス２００とは別個であるが、それに結合されるか、もしくはそれによってアクセス可能なストレージシステムに含まれる場合がある。いくつかの実施形態では、データストア２１２は、サーバ１０２、移動プラットフォーム１１８、クライアントデバイス１２４によって動作可能なデータベース管理システム（ＤＢＭＳ）と共同して、データを記憶することができる。例えば、ＤＢＭＳは、構造化照会言語（ＳＱＬ）のＤＢＭＳ、非ＳＱＬのＤＢＭＳなどを含む可能性がある。場合によっては、ＤＢＭＳは、行と列から構成される多次元テーブルにデータを記憶し、プログラムに基づいた演算を使用して、データの行を操作、すなわち、挿入、照会、更新、削除することができる。
【００５７】
入力／出力（Ｉ／Ｏ）デバイス２１０は、情報を入力および出力するための任意の標準デバイスを含む。非限定的で例示的なＩ／Ｏデバイス２１０には、ユーザ１２８に情報を表示するためのスクリーン（例えば、ＬＥＤベースのディスプレイ）、ユーザ１２８に音声情報を出力するためのオーディオ再生デバイス（例えば、スピーカ）、音声コマンドおよびボイスコマンドを取り込むためのマイクロフォン、キーボード、タッチスクリーン、ポインティングデバイス、視覚インジケータ（例えば、ライト、バックライトディスプレイなど）、器具、振動モータ、または、ユーザ１２８との通信および対話を容易にするための任意の他のＩ／Ｏ構成要素が含まれ得る。入力／出力デバイス２１０は、直接または介在するＩ／Ｏコントローラを介して、コンピューティングデバイス２００に結合することができる。
【００５８】
手足検出アプリケーション１０４は、移動プラットフォーム１１８などの所与の環境、および環境内のオペレータ（例えば、ドライバー）の関連するコンテキスト情報を取り込み、それを使用してオペレータの動いている手足の位置を特定するように実行される、コンテキストアウェアフレームワークである。上述されたように、いくつかの実施形態では、コンテキスト情報は階層的に取り込むことができる。手足検出アプリケーション１０４は、手足検出を実行する際に、移動プラットフォーム１１８のリッチコンテキスト情報を活用して、手の検出の確度および堅牢性を改善することができる。コンテキストデータベース１０６、センサ１２０、介在するコントローラなどに記憶され、それらから取り出され得るコンテキスト情報には、手の形状データ、位置データ、運転の特徴、および移動プラットフォーム１１８のＣＡＮデータが含まれ得る。本明細書に含まれる様々な例および実施形態は、移動プラットフォーム１１８に関して記載されているが、本技術は、本明細書の中の他の場所でさらに説明されるように、他の環境に適用され、適している場合があることを理解されたい。
【００５９】
図２Ｂは、例示的な手足検出アプリケーション１０４のブロック図である。図示されたように、手足検出アプリケーション１０４は、アルゴリズム、方法、行為、機能などの様々な動作を行うための様々な構成要素を含む。例示的な構成要素には、実装形態に応じて、センサ位置推定器２３０、手足検出器２３２、コンテキストアウェアプロセッサ２３４、位置リファイナ２４６が含まれる。コンテキストアウェアプロセッサ２３４は、手足形状フィッタ２３６、手足位置フィルタラ２３８、手足ボーター２４０、ＣＡＮデータプロパゲータ２４２、信頼性アグリゲータ２４４などの、１つまたは複数の副構成要素を含む場合がある。しかしながら、手足検出アプリケーション１０４は、構成エンジン、他のトレーニングエンジン、暗号化エンジンなどの、さらなる構成要素を含む場合があり、これらの構成要素は、単一の構成要素の中に組み合わされるか、またはさらなる構成要素に分割される場合があることを理解されたい。
【００６０】
ユーザ支援アプリケーション１２２は、（例えば、バス２０８や様々なコントローラを介して）手足検出アプリケーション１０４からフィルタリングされた手足提案や出力を受信し、それに基づくユーザ支援（例えば、アラート、触覚、聴覚、視覚などのフィードバック、運転支援など）を、入力／出力デバイス２１０を介してユーザに提供するように実行される。さらなる例として、手足検出アプリケーション１０４は、ドライバーが従事している活動を計算的に推論することができ、ユーザ支援アプリケーション１２２は、その活動に対する支援を提供するようにプロセッサ２０４をプログラムすることができる。例えば、ユーザ支援アプリケーション１２２は、ドライバーの手の現在位置に基づいて、ユーザに手の配置のフィードバックを表示する。フィードバックは、自分の手のうちの１つまたは複数がハンドル上にないことをドライバーに通知する、点灯するインジケータ、グラフィカルユーザインターフェース、または出力デバイスによって提示される他の視覚もしくは触覚のフィードバックの形態であり得る。
【００６１】
別の例では、手足検出アプリケーション１０４は、「ユーザが車両の床または隣の座席から物を探している」と推論することができ、（例えば、出力デバイスを介して聴覚指示や視覚指示を与えることにより）それらの近傍にある物体の位置を特定する際の支援を提供することができる。本明細書の中の他の場所で説明された手足検出と同じまたは同様の方式で、センサ１２０および手足検出アプリケーション１０４を使用して、探している物体が検出され、それらの位置が特定される。活動の他の非限定的な例には、運転中に携帯メールを打つこと、食べ物または飲み物を摂ることなどが含まれ、対応するフィードバックには、警告インジケータ、推奨目的地（例えば、休憩所に車を止めること）、自律車両制御などが含まれ得る。
【００６２】
ユーザ支援アプリケーション１２２、手足検出アプリケーション１０４、その構成要素２３０、２３２、２３４、その副構成要素２３６、２３８、２４０、２４２、２４４、２４６は、ソフトウェア、ハードウェア、または上記の組合せとして実装することができる。いくつかの実施形態では、ユーザ支援アプリケーション１２２、手足検出アプリケーション１０４、その構成要素２３０、２３２、２３４、その副構成要素２３６、２３８、２４０、２４２、２４４、２４６は、ネットワーク１１２、バス２０８、またはプロセッサ２０２により、互いに、またはコンピューティングデバイス２００やシステム１００の他の構成要素に通信可能に結合することができる。
いくつかの実施形態では、構成要素１２２、１０４、その構成要素２３０、２３２、２３４、その副構成要素２３６、２３８、２４０、２４２、２４４、２４６のうちの１つまたは複数は、それらの機能を実現するためにプロセッサ２０２によって実行可能な命令のセットである。
さらなる実施形態では、構成要素１２２、１０４、その構成要素２３０、２３２、２３４、その副構成要素２３６、２３８、２４０、２４２、２４４、２４６のうちの１つまたは複数は、それらの機能を実現するために、メモリ２０４に記憶可能であり、プロセッサ２０２によってアクセス可能かつ実行可能である。上記の実施形態のいずれにおいても、これらの構成要素１２２、１０４、その構成要素２３０、２３２、２３４、その副構成要素２３６、２３８、２４０、２４２、２４４、２４６は、プロセッサ２０２およびコンピューティングデバイス２００の他の構成要素との連携および通信に適合することができる。
【００６３】
いくつかのソフトウェア実施形態では、ユーザ支援アプリケーション１２２および手足検出アプリケーション１０４、その構成要素２３０、２３２、２３４、その副構成要素２３６、２３８、２４０、２４２、２４４、２４６のうちの１つまたは複数は、システムの他の構成要素によって呼び出すことができる１つまたは複数のソフトウェア方法を備える。例えば、これらの構成要素のうちの１つまたは複数は、構成要素のうちの別の１つによってインスタンス化される場合があり、構成要素のうちの別の１つによって呼び出される１つまたは複数の関数を有する場合があり、それらのインスタンスへの１つまたは複数の動作パラメータを受信する場合があり、本明細書で説明されたように処理し、出力を供給する場合などがある。しかしながら、他の変形形態も可能であり、考えられることを理解されたい。
【００６４】
ユーザ支援アプリケーション１２２および手足検出アプリケーション１０４、その構成要素２３０、２３２、２３４、その副構成要素２３６、２３８、２４０、２４２、２４４、２４６の各々は、データを交換するために互いに結合することができ、データを記憶および取り出すために、コンテキストデータベース１０６、ナビゲーションデータベース１０８、メモリ２０４などの他の情報ソース、他のコンピューティングシステムなどに結合することができる。ユーザ支援アプリケーション１２２および手足検出アプリケーション１０４、その構成要素２３０、２３２、２３４、その副構成要素２３６、２３８、２４０、２４２、２４４、２４６については、下記でさらに詳細に記載される。
【００６５】
本明細書における「センサ位置」とは、移動プラットフォーム１１８などのプラットフォームの方位、側面に対する位置、視点などを意味する。センサ位置は、単一のセンサ１２０、またはセンサデータを取り込むために共同作業を行うセンサ１２０のセットに対応する。所与のセンサ１２０またはセンサ１２０のセットのセンサ位置は、センサ（例えば、画像）データを使用して推定することができ、また、事前に定義されてもよい。
【００６６】
図３Ａは、提案された手足を検出し精緻化するための例示的な方法３００のフローチャートである。
なお、本明細書において、「（手足の）提案」とは、手足として検出された物体の候補を意味する。
ブロック３０４において、手足検出器２３２が、１つまたは複数のセンサ１２０から入力画像３０２を受信する。手足検出器２３２は、物体を検出するために入力画像３０２を処理する（物体検出とも呼ばれる）。手足検出器２３２は、入力画像データから物体を特定するための物体検出アルゴリズムを用いてもよい。いくつかの実施形態では、アルゴリズムは、手などの対象の手足の一般的なサイズまたは形状と矛盾している物体を除去する。ほとんどの人の手のサイズおよび形状は、ある特定の範囲に入るので、アルゴリズムは、それらの範囲に入る物体を検出するように適合することができる。
【００６７】
さらなる例として、標準的な汎用の手の検出器を使用して、初期の手の提案を作成することができる。例えば、集約チャネル特徴（ＡＣＦ）物体検出器を使用することができる。ＡＣＦ検出器は、Ｂ個（例えば１個）の正規化勾配マグニチュードチャネル、Ｃ個（例えば６個）の勾配方位チャネル、およびＤ個（例えば３個）のＬＵＶカラーチャネルを含む、Ａ個（例えば１０個）の入力チャネルを利用することができる。入力チャネルを集約および平滑化することによって特徴を作成することができ、決定木（例えば、ＡｄａＢｏｏｓｔ）分類器を分類用に学習することができる。スライディングウィンドウ手法などの様々な手法を使用して、他の検出を実行することができる。
【００６８】
検出アルゴリズムの出力は、初期手足提案３０６としてコンテキストアウェアプロセッサ２３４に供給される。初期手足提案３０６は、入力画像３０２から検出された１つまたは複数の提案された手足を記述する１つまたは複数のデータセットである。
例えば、ＡＣＦ検出器の出力は、検出信頼性に比例するスコア（ＳACF）とともに座標
軸に平行な（ｂｂACFと表記される）境界ボックスのセットである。
ブロック３０８において、コンテキストアウェアプロセッサ２３４が、初期手足提案３０６およびコンテキストデータ３１０を使用して、初期手足提案に含まれる初期物体をフィルタリングする。いくつかの実施形態では、コンテキストデータ３１０は、コンテキストデータベース１０６から取り出される。
コンテキストデータとは、検出した手足を評価するための、事前に準備されたデータである。
【００６９】
いくつかの実施形態では、コンテキストデータはセンサ位置に基づいて特定される。センサ位置は、入力画像３０２に関連付けられたコンテキストデータが要求された場合に、コンテキストアウェアプロセッサ２３４または別の構成要素によって入力３５４として供給される。
センサ位置は、入力画像３０２を供給するセンサ１２０の位置を表すデータである。場合によっては、コンテキストアウェアプロセッサ２３４は、コンテキストデータベース１０６から受信されたコンテキストデータからコンテキストモデルを作成し、コンテキストモデルを使用して初期手足提案に含まれる物体をフィルタリングする。
【００７０】
ブロック３１６において、位置リファイナ２４６は、ブロック３０８においてコンテキ
ストアウェアプロセッサ２３４によって処理された、フィルタリングされた提案された手足を含むフィルタリングされた手足提案３１２を受信する。位置リファイナ２４６は、提案された手足の位置を精緻化し、次いで、出力３１８を作成し供給する。いくつかの実施形態では、「提案された手足の位置を精緻化する」とは、手足の位置を高精度化する処理を意味し、例えば、手足の配置誤差を訂正すること等を意味する。
【００７１】
図３Ｂは、手足を検出し精緻化するためのさらなる例示的な方法３６０のフローチャートである。参照番号３０２、３０４、３０６、３０８、３１０、３１２、３１４、３１６に関連付けられた動作は、図３Ａを参照して上述された動作と実質的に同じであり、それらの構成要素の説明は、簡潔にするためにここでは繰り返さない。
【００７２】
図３Ｂから分かるように、方法３６０は、入力画像３０２を使用してセンサ位置を自動的に推定する。センサ位置を推定するためのプロセスは、以下の通りである。
まず、ブロック３５２において、センサ位置推定器２３０が、入力画像３０２を受信する（符号３５０）。そして、センサ位置推定器２３０は、入力画像から特徴を抽出し、特徴を処理して、入力画像３０２を取り込んだセンサ１２０についてのセンサ位置を推定する。
【００７３】
いくつかの実施形態では、センサ位置推定器２３０は、包括的な色およびテクスチャの特徴を抽出することができる。色の特徴は、画像の明るさおよび優勢な色成分についての情報を符号化することで得られる。いくつかの実施形態では、色の特徴は、複数の様々な色空間（例えば、ＬＡＢおよびＬＵＶ）内の色ヒストグラムを備えてもよい。
【００７４】
テクスチャの特徴は、現在の物体の外観ならびにエッジおよびコーナ検出器による全体的な景観を符号化することで得られる。いくつかの実施形態では、テクスチャの特徴は、配向勾配ヒストグラム（ＨＯＧ）を備えてもよい。
【００７５】
センサ位置推定器２３０は、グリッドを使用して、入力画像から色およびテクスチャの特徴を抽出する。グリッドは、動的に決定されてもよいし、あらかじめ決定されてもよい。例えば、グリッドは８×８のグリッドである。グリッドを使用して特徴を抽出することは、色およびテクスチャの特徴などの詳細情報を特定の対応するグリッド−セル位置と関連付けることができるので、有利である。このグリッド−セル関連付けは、手足の検出および測位の間に特徴を精緻化または位置特定するために使用することができる。
【００７６】
センサ位置推定器２３０は、色およびテクスチャの特徴などの符号化された包括的かつ詳細なローカル情報を識別モデルに供給する。識別モデルは、入力に基づいて、入力に関連付けられたセンサ１２０の視点を識別する。識別モデルは、画像を取り込んだセンサの位置が既知であるトレ−ニングデータを使用して、センサ位置推定のために学習される。いくつかの実施形態では、センサ位置推定器２３０は、方法３６０の繰返し中に処理する画像データを使用して、識別モデルを学習して新しい位置についての推定値を学習し、すでにプログラムされた位置についての推定値を高精度化することができる。
【００７７】
センサ位置推定器２３０は、識別モデルを使用して、入力画像に対応するセンサ位置についての確率を出力するように構成される。以下は、センサ位置の例示的な確率（例えば、背面図−０．６２、正面図−０．１３、側面図−０．０２など）である。この出力は、本明細書の中の他の場所に記載されるように、コンテキストデータを取り出すためのコンテキストデータベースに３５４に供給される。
【００７８】
画像を取り込むセンサ１２０またはセンサ１２０のセットの視点は、コンテキストプロセッサによって使用されるモデルに影響を及ぼす。例えば、視点が変化するにつれて、コ
ンテキストモデルも対応して変化する場合がある。いくつかの実施形態では、入力画像Ｉおよびあらかじめ定義された視点Ｖのセットが与えられた場合に、センサ位置推定器２３０は、以下の式（１）を使用して、最も可能性の高い視点ν*を特定する。
【数１】
0006394735.tif 000002
【００７９】
ここで、Ｇ（Ｉ）は、入力Ｉの包括的な色およびテクスチャの特徴のセットを表記したものである。色の特徴は、グレースケールおよびＬＵＶ色空間内の色ヒストグラムによって表される、明るさおよび優勢な色成分の情報を符号化することで得られる。この例では、色ヒストグラムは、画像全体の８×８のグリッド上で計算され、ヒストグラムごとに６４個のビンを有するが、他のグリッドおよびビンのサイズも適用可能である。テクスチャの特徴は、配向勾配ヒストグラム（ＨＯＧ）によって表される、現在の物体の外観および全体的な景観の情報を符号化することで得られる。ＨＯＧの特徴は、９個の方位を有し、セルが重複しない８×８のグリッドサイズ上で抽出される。色およびテクスチャの特徴は、一緒に連結され、次いで、確率Ｐ（ν｜Ｇ（Ｉ））を推定するために、ＳＶＭモデルに供給される。
【００８０】
最適な視点ν*を特定した後、対応するコンテキスト検出器を呼び出すことができる。
なお、いくつかの車両内アプリケーションでは、視点情報を与えるか、または知ることができ、この場合、視点推定の必要性は無い。
【００８１】
図４は、コンテキストアウェア手足処理の例示的な方法４００のフローチャートである。図示されたように、コンテキストアウェアプロセッサ２３４は、センサ位置３５４に基づいてコンテキストデータを取り出す。より具体的には、コンテキストアウェアプロセッサ２３４は、手足形状フィッタ２３６、手足位置フィルタラ２３８、手足ボーター２４０、ＣＡＮデータプロパゲータ２４２という、２つ以上（この例では４つ）のコンテキストプロセッサを含む。なお、本明細書におけるコンテキストプロセッサは、必ずしもハードウェアプロセッサである必要はない。すなわち、ソフトウェアモジュールによって構成されてもよい。
コンテキストプロセッサの各々は、初期提案３０６を受信し、コンテキストデータベース１０６から様々なコンテキストデータを受信する。
【００８２】
手足形状フィッタ２３６は、手足形状のフィッティング（extremity-shape fitting）
を実行する手段である。より詳細には、手足形状フィッタ２３６は、統計に基づいて境界ボックスをモデル化する。境界ボックスは、初期提案３０６に含まれる所与の検出された物体の境界を定める矩形である。
【００８３】
手足形状フィッタ２３６のモデルは、１，１．５，２など、平均（例えば、中間）値からの標準偏差以内のものなどの、最も普通の人間の手の形状およびサイズ（総称して「寸法」と呼ぶ）の境界を定める境界ボックスなどの、手足境界ボックスについての統計的に普通の形状を学習するように構成される。また、手足形状フィッタ２３６は、モデルを使用して、初期提案３０６に含まれる、検出された手足についての境界ボックスをランク付けすることができる。例えば、境界ボックスは、平均寸法からの偏差のレベルに基づいてランク付けされる場合があり、例えば、普通でない寸法の境界ボックスは、（より高いランクを占めるはずの）より普通の寸法に比べて低くランク付けされる。さらなる例として、他の解決策は、手と同様の色を有する大きい膝の部位を誤検出する可能性があるが、手足形状フィッタ２３６は、普通でないサイズを有するその境界ボックスが、学習されたモデルを使用して低くランク付けされているので、当該膝の部位を除去するはずである。別の例では、薄く長い形状は、通常、手の形状としては珍しく、それらの形状用の境界ボッ
クスは、同様に低くランク付けされるはずである。手足形状フィッタ２３６は、境界ボックス用の対応する信頼度を、信頼性アグリゲータ２４４に出力する。
【００８４】
いくつかの実施形態では、手足形状フィッタ２３６によって使用されるモデルは、グランドトゥルース（ground-truth，正解データの意）に関連付いた手の提案から境界ボックスの分布を推定し、次いで、提案ごとに適合スコアを計算するモデルである。少なくとも図５を参照してさらに詳細に説明されるように、普通でない境界ボックスの形状は低いランクを占めるが、普通の境界ボックスの形状は高いランクを占める。
【００８５】
いくつかの実施形態では、各境界ボックスの分布をモデル化するために、ガウス型混合モデル（ＧＭＭ）が使用される。ＧＭＭモデルは、各視点からの対応するデータを使用してその視点について構築することができる。ＧＭＭモデルは、パラメータθ：＝｛θ1，
θ2，…，θk｝によって特徴付けることができ、ここで、θi：＝｛ωi、μi、Σi｝であり、演繹的確率としてのωi、中間値としてのμi、およびＫ個のガウス型成分のうちの１つの共分散としてのΣiを有する。学習されたＧＭＭモデルθの下で、入力ｘの適合スコ
アは、ｘがＧＭＭモデルによって作成された可能性を特徴付ける、以下の値であり得る。
0006394735.tif 000003
【００８６】
ＧＭＭモデルのトレーニングは、ＥＭアルゴリズムを使用して実現することができる。ＧＭＭモデルをチューニングするために、（過適合を制御する）混合数Ｋおよび（計算コストを制御する）共分散タイプΣなどの２つのハイパーパラメータを使用することができる。両方のハイパーパラメータは、ベイズ情報量基準（ＢＩＣ）を使用して自動的に選択することができる。最適なＧＭＭモデルを用いてトレーニング中の平均適合スコアは、正規化係数γとして記録することができる。学習されたモデルは、以下の式（２）を使用してパラメータ化することができる。
【数２】
0006394735.tif 000004
【００８７】
ここで、ｘは入力された特徴を表し、ｄは入力された次元数を表し、Ｋ*は最適な混合
数を表し、ｃｏｖ*は最適な共分散タイプ（球形、対角線、ひも付き、完全など）を表し
、γは正規化係数を表す。ＧＭＭモデルは、境界ボックスごとに個別に学習される場合があるか、または２つ以上の境界ボックスに対して一緒に学習される場合がある。
【００８８】
使用中、関連する境界ボックスの寸法（例えば、形状）情報は抽出され、学習されたＧＭＭモデルに供給することができる。（γによって除算された）正規化適合スコアは、各形状プロパティの視点から、提案された境界ボックスの信頼性を評価するために使用することができる。Ｓbbsと表記される正規化適合スコアの平均は、手足形状フィッタ２３６
によって出力される。
【００８９】
さらなる例として、図５は、画像から検出された潜在的な手足の物体の境界を定めるための注釈付き境界ボックスが明示された、車両キャビンの例示的な画像５００である。この図は、手足形状フィッタ２３６の形状適合モデルが、普通でない手の提案をどのように除去することができるかを示す。
【００９０】
境界ボックス５０２および境界ボックス５０８は、画像から検出されたドライバーの手と一致する。境界ボックス５１２は、画像から検出された同乗者の手と一致する。その他の境界ボックス５０４および５０６は、ほとんどの人の手の寸法と矛盾する形状をしている。結果として、これらの境界ボックスは、それらのランキングに基づいて手の境界を定
めない可能性があるので、手足形状フィッタ２３６によってフラグが立てられる。より詳細には、境界ボックス５０６は大きすぎると判断され、境界ボックス５０４は普通でないアスペクト比を有すると判断される。この例では、手足形状フィッタ２３６は、破線の境界ボックス５０６および５０４について、対応する低い信頼度を出力し、実線の境界ボックス５０２、５０８、５１２について、向上した高い信頼度を出力する。
【００９１】
図４に戻ると、手足形状フィッタ２３６は、形状データベース４０４から形状データを取り出す。形状データは、様々な手足およびそれらのタイプについての寸法を記述するデータセットを含む。形状データは、既知または普通の手足（例えば、手）の寸法を特徴付けるトレーニングデータの初期セットを含んでもよい。さらに形状データは、動作中に時間とともに学習された手足の寸法やタイプを記述する、機械学習されたデータセットを含んでもよい。
【００９２】
いくつかの実施形態では、センサ１２０の取り込み視点によって、様々な方法で画像が変形される可能性があり、同じもしくは同様の物体が様々な視点から撮られた画像内で様々に現れる場合がある。よって、境界ボックスは、それらが導出される視点に関連付けられる。そのため、様々なセンサ位置についての境界ボックスの寸法は、所与のサイズおよび形状を有する手足に関連付けて記憶することができる。
【００９３】
手足位置フィルタラ２３８は、手足の位置に基づいて、初期提案３０６内の物体をフィルタリングする手段である。空間データベース４０６は、画像フレーム内の位置に対する、手足の存在可能性を取り込む空間データを記憶する。手足位置フィルタラ２３８は、空間データを利用して、初期提案３０６内の手足の提案についての可能性を特定する空間モデルを含む。いくつかの実施形態では、当該モデルは、ドライバーまたは複数のドライバーについての手足の配置の好みに基づいて、そのドライバーの手足（例えば、手）を特徴付けることができる。
【００９４】
いくつかの実施形態では、手足位置フィルタラ２３８は、画像全体にわたって手足の存在の可能性をモデル化する空間モデルを構築する。図６は、モデルの出力としてのサンプル空間分布であり、本明細書の中の他の場所でさらに詳細に説明される。
【００９５】
そのようなモデルを使用して、場合によっては通常フォールスポジティブである、比較的まれな位置にある手の提案を除去することができる。いくつかの実施形態では、様々な視点についての空間分布は著しく異なる場合があるので、空間モデルは視点ごとに学習することができる。
【００９６】
空間分布モデルを構築するために、手足位置フィルタラ２３８は、グランドトゥルース（真の値）ごとに、その周辺領域に一票を投じることができる。投票は、手足の位置、手足のサイズ、および分布係数γwによって一緒に決定することができる。空間モデル作成
プロセスは、図１１に示されるアルゴリズム１によって具現化することができる。例示的な使用事例では、画像内に手の提案が与えられると、その位置は、アルゴリズム１の８行目に示されたように正規化することができる。次いで、空間モデルＭsは、正規化された
手の位置（ｘn，ｙn）において照会することができ、得られたスコアは、Ｓspatialと表
記することができる。このアルゴリズム内のハイパーパラメータは、ウィンドウ分布係数γwである。その値が小さければ小さいほど、より広い影響を各グランドトゥルースの手
が空間モデルに課すことができる。γwの最適値は、グリッド探索プロセスを介して選択
することができる（γw＝２，４，８，１６）。
【００９７】
図６は、手足位置フィルタラ２３８のモデルによって作成され、または空間データベース４０６から取り出された空間データを重ね合わせた例示的な画像６００である。重ね合
わせたデータは、手の存在可能性を視覚的に示す（ＪＥＴ色空間内の）ヒートマップを形成する。この例では、ドライバーは、参照番号６０２、６０４、６０６によって表される、ハンドル上の３つの別々の位置に自分の手を置くことを好む。さらに、所与の位置の中で、手足位置フィルタラ２３８は、確率勾配を特定することができる。例えば、位置６０２、６０４、６０６の各々について、赤の領域は高確率で手が存在することを示し、黄色の領域は適度に高い確率で手が存在することを示し、明るい青は余り高くない確率で手が存在することを示し、暗い青の領域は低確率で手が存在することを示す。この例では、ドライバーは、手を置くハンドル上の２つの好ましい位置６０２および６０４を有し、時々膝の部位６０６に右手を置くことも好む。
【００９８】
図４に戻ると、このようなモデルを使用して、手足位置フィルタラ２３８は、（例えば、しばしばフォールスポジティブである）画像の右上隅などの低確率の（普通でない）位置にある手足提案を除去することができる。これらの確率は、信頼性アグリゲータ２４４向けの信頼度として出力される。
【００９９】
手足ボーター２４０は、画像データ３０６内の複数の手足の存在を評価する手段である。いくつかの実施形態では、手足ボーター２４０は、関節空間分布モデルを使用して、手足の様々な組合せについての信頼性を決定する。様々な手足の組合せについての信頼性は、画像データ内の出現頻度に基づいて、上昇する場合も低下する場合もある。そのモデルは、時間とともに繰り返して、様々な組合せの頻度を学習することができ、信頼性は時間とともに進化する場合がある。様々な組合せ、頻度などを表すデータは、関節空間データベース４０８内の関節空間データとして記憶することができる。
【０１００】
一例として、あるドライバーは、自分の手の両方をハンドルに（例えば、１０時の方向と２時の方向に）置くことを好み、２つの手の間に比較的一定の関係（例えば、距離）をもたらす。手足ボーター２４０は、画像内の手足の組合せとハンドルの寸法（例えば、直径）との関係に基づいて、手足とハンドルの寸法の関係が同じかまたは実質的に同様（例えば、８０％以内）であることを検出することができ、（最大値および最小値、画像内の他の提案された手足や、手足の組合せの値などに関して）組合せまたは組合せに関連付けられた提案された手足に比較的高い信頼度が帰すると考える。
【０１０１】
いくつかの実施形態では、手足ボーター２４０は、グランドトゥルースの手足のペアの間の対関係（距離、角度、正規化されたｘ変位、正規化されたｙ変位など）をモデル化する。手足ボーター２４０は、各々の提案された手足を使用して、構築された対関係に従って他の手足に一票を投じることができる。この方法を、本明細書では「相互投票(mutual voting)」と称する。高い投票スコアを有する手足は、より高くランク付けすることがで
き、その逆も同様である。ランキングを表す信頼度は、本明細書の中の他の場所でさらに詳細に説明されるように、信頼性アグリゲータ２４４に出力される。
【０１０２】
いくつかの実施形態では、手足ボーター２４０は、関節空間分布モデルを構築して、手足（例えば、手）の信頼度を上昇させることができ、それらは、一緒に、より統計的にありそうな構成を形成する。例えば、本明細書の中の他の場所でさらに説明されるように、あるドライバーは、ハンドルに両方の手を置くことを好み、２つの手の間の比較的一定の距離をもたらす。２つの手がハンドルの直径と同様の距離を有して検出された場合、それらの信頼度は、手足ボーター２４０によって上昇する。
【０１０３】
トレーニングに関するいくつかの実施形態では、グランドトゥルースの手足ペアの間の対関係をモデル化することができる。例えば、そのサイズが（ｗi，ｈi）である同じ画像からの（ｘ1，ｙ1）および（ｘ2，ｙ2）に位置する２つのグランドトゥルースの手が与えられると、２つの手は（場合によっては必要な場合）置き換えられて、置き換え後、手２
が手１の右にある（ｘ2＞ｘ1）ことを確認する。この場合、第１の検出は、繰り返される計算を相互対称性から防止するようにモデル化される。置き換え後、２つの手の間の対関係は、１組の４つの値（ｄｘ，ｄｙ，ｄ，β）を使用して特徴付けることができ、ここで、以下の式（３）は、距離、角度、正規化されたｘ変位、および正規化されたｙ変位を記述する。
【数３】
0006394735.tif 000005
【０１０４】
トレーニングデータセットからの画像ごとに、（２つ以上の手足が存在する場合）手足ペアの間の対特徴を抽出することができる。ｎ個の手を含む画像の場合、ｎ（ｎ−１）／２個の対特徴を作成することができる。トレーニング画像からのそのような特徴が抽出され、次いでＧＭＭモデルを使用してモデル化される。ＧＭＭ用の最適なハイパーパラメータは、ＢＩＣを使用して自動的に選択することができる。平均ＧＭＭ適合スコアβは、正規化の目的で記録することができる。適合されたＧＭＭモデルのサンプル結果１２００が、抽出された関係特徴の散布図とともに図１２に示される。この例に示されたように、適合されたＧＭＭモデルは統計的に普通の手のレイアウトを取り込み、そこでは、２つの手は、大部分、ハンドルの直径と同様の距離をおいて水平線内に置かれる。
【０１０５】
さらなる例では、手の各ペア間の相互関係は、トレーニングにおける方法と同じ方法で取り込まれ、次いで、学習されたＧＭＭモデルを使用して適合される場合がある。提案された手ｘごとに、他の手ｙからの適合スコアは、以下の式（４）を使用して集約することができる。
【数４】
0006394735.tif 000006
【０１０６】
ここで、Ｙは現在フレーム内の手の提案を示す。すべての手の提案について等しい優先度を想定することができ、ｐ（ｘ｜ｙ）を近似するためにＧＭＭ適合スコアを使用することができる。βを使用して可能性スコアｐ（ｘ）を正規化することができ、得られたスコアはＳjointと表記することができる。
【０１０７】
図７は、関節空間分布を示す例示的な注釈付きの画像７００を描写する。境界ボックス７０２、７０４、７０６、７０８は、提案された手の位置を表す画像内の物体の境界を表す。これらの境界ボックス７０２、７０４、７０６、７０８の間の矢印は、手の提案間の相互投票方法を示す。より詳細には、破線の矢印は、ありそうにない対関係を示す。一方、ユーザの手の間の通常の距離およびハンドルの直径に対応する、より太い実線の矢印７１０は、ありそうな対関係を示す。そのため、手足ボーター２４０は、ありそうにない対関係に低い信頼度を与え、ありそうな対関係に高い信頼度を与える。
【０１０８】
いくつかの実施形態では、位置リファイナ２４６は、本明細書で説明されたコンテキストデータやモデルに基づいて、最終的な境界ボックスの位置や寸法を微調整する。グランドトゥルース（Ｇ）および提案（Ｐ）のペア、ならびに、提案された境界ボックス（Ｐ）内のローカルの色およびテクスチャの特徴を使用することができる。提案された境界ボックス（Ｐ）のローカルな外観、ならびに対応するグランドトゥルースデータ（Ｇ）に基づいて、位置リファイナ２４６は、ローカルな外観内のある特定のキューを識別した後、提案された境界ボックス（Ｐ）がどのように訂正されるべきかをモデル化する。
【０１０９】
例えば、トレーニングプロセスを介して、位置リファイナ２４６のモデルは、提案された境界ボックス（Ｐ）の右下隅に存在する手足の部分がある場合、境界ボックス（Ｐ’）が手足により良く適合することができ、したがって検出確度を上げるように、境界ボックス（Ｐ）は右下方向に向かってシフトされるべきであることを学習することができる。この手法は、検出のために手全体の存在を必要としないので、部分的に塞がれた手を検出する問題に対処することもできる。
【０１１０】
いくつかの実施形態では、位置リファイナ２４６は、境界ボックス回帰（ＢＢＲ）モデルを使用して、手の提案の配置誤差を訂正する。回帰モデルは、ある特定のキューを観測した後、手足の提案位置を調整するためのモデルである。例えば、手の一部分が境界ボックスの右下隅において観測された場合、手全体をより良く適合させるために、右下方向に向かってシフトさせることができる。手のグランドトゥルースＧi、関連する手の提案Ｐi、およびそのローカルの特徴ΦＰiが与えられると、リッジ回帰モデルω*は、ω*ΦＰ（
ｉ）に従ってシフトするように学習することができ、その結果、投影とグランドトゥルースとの間の誤差は、以下の式（５）において実現されるように、最小化することができる。
【数５】
0006394735.tif 000007
【０１１１】
ローカルの特徴ΦＰ（ｉ）は色を含み、テクスチャの特徴は、ローカルのパッチＰ（ｉ）上で、上述された方式と同じ方式で抽出することができる。正規化パラメータλおよび関連付けのしきい値（Ｐ（ｉ）とＧ（ｉ）との間のＩｎｔｅｒｓｅｃｔｉｏｎ−Ｏｖｅｒ−Ｕｎｉｏｎオーバーラップ）は、検証セット（λ＝１，１０，１００，１０００およびＩｏＵ＝０．１，０．３，０．５）上のグリッド探索を介して最適化することができる。
【０１１２】
図９は、位置リファイナ２４６によって実施されたＢＢＲを使用した、２つの境界ボックスの適合を示す、注釈付きの例示的な画像９００である。白の矩形はＢＢＲを実行する前の初期境界ボックスであり、黒の矩形はＢＢＲを実行した後の精緻化された境界ボックスである。図示されたように、精緻化された境界ボックスは、ドライバーの手により良く適合する。
【０１１３】
図４に戻る。ＣＡＮデータプロパゲータ２４２は、ＣＡＮバスデータを使用して、提案された手足の確度を向上させる手段である。ＣＡＮデータは、画像データに対応する時間に（例えば、ＣＡＮデータと同時に、何分の１秒、１〜２秒以内などに）受信される。いくつかの実施形態では、ＣＡＮデータプロパゲータは、コンテキストデータベース１０６のＣＡＮデータベース４１０から取り出された、またはＣＡＮバスから直接受信されたＣＡＮデータを分析する。例えば、車両制御盤（例えば、マニュアルギアシフト、パネルボタン押下、ウインカー切替え、ステアリングの動きなど）との相互作用を表すトリガ信号を受信した際、ＣＡＮデータプロパゲータ２４２は、対応する制御盤を操作するために手または手足がユーザによって使用されたと想定する。ＣＡＮデータプロパゲータ２４２は、当該情報を使用して、手の位置についての確率分布を伝搬する。分布に基づく信頼度は、手に帰属され、信頼性アグリゲータ２４４に出力される。いくつかの実施形態では、各制御盤は、特定の作業範囲、および作業範囲内の制御盤を操作するための関連付けられた次の手の動きを有する場合がある。作業範囲は、トレーニングデータを使用して、または何回かの繰返しにわたって時間とともに、ＣＡＮデータプロパゲータによって学習されてもよい。
【０１１４】
図８は、例示的な手足８０４および車両制御盤８０２を示す、例示的な注釈付きの画像
８００を描写する。この例では、車両制御盤８０２のパネルボタンが押下されるものとする。ＣＡＮバスを介して、ボタンの押下を示す信号を受信した場合に、ＣＡＮデータプロパゲータ２４２は、画像データ３０６内の、対応する領域の近くに手があることを予想する。より詳細には、ＣＡＮバスデータを復号することを介して、ＣＡＮデータプロパゲータ２４２は、制御パネルボタンが押下されたことを検出し、画像データ内の、ボタン８０２に近接する位置に手足の提案８０４が高い確率で現れると考える。
【０１１５】
コンテキストプロセッサ２３６、２３８、２４０、２４２の各々は、信頼性スコアを出力し、信頼性アグリゲータ２４４は、これらの信頼性スコアの各々を集約し、集約されたスコア全体を計算する。図１０は、提案された手足を採点するための例示的な方法１０００のフローチャートである。
ブロック１００２において、方法１０００は、１つまたは複数のセンサ１２０によって取り込まれた画像から検出された提案された手足を含む初期提案を受信する。
ブロック１００４において、手足形状フィッタ２３６は、提案された手足の寸法や形状の適合度に基づいて、提案された手足をランク付けする。
ブロック１００６において、手足位置フィルタラ２３８は、画像内の提案された手足の位置に基づいて、提案された手足をランク付けする。
ブロック１００８において、手足ボーター２４０は、相互投票を使用して提案された手足をランク付けする。
ブロック１０１０において、ＣＡＮデータプロパゲータ２４２は、制御盤に近接する位置に、１つまたは複数の提案された手足が存在することを示すＣＡＮデータの受信に応答して、提案された手足をランク付けする。
第１のインスタンスにおける手足形状フィッタ２３６、第２のインスタンスにおける手足位置フィルタラ２３８、第３のインスタンスにおける手足ボーター２４０、および第４のインスタンスにおけるＣＡＮデータプロパゲータ２４２によって実行されるランク付けは、連続または並行して実行することができ、信頼性アグリゲータ２４４に出力される信頼度として表すことができ、ブロック１０１２において、信頼性アグリゲータ２４４は、提案された手足の各々についての信頼度を集約し、フィルタリングされた提案３１２を出力する。
【０１１６】
フィルタリングされた提案３１２は、あらかじめ決定されたしきい値を満たし、またはあらかじめ決定された範囲内にある、集約された信頼度を有する手足などの、手足のサブセットを含む。さらなる例として、フィルタリングされた提案３１２は、矩形境界ボックスの座標および集約された信頼性スコアのセットを含む場合がある。
【０１１７】
いくつかの実施形態では、あらかじめ決定されたしきい値は、固定であってもよいし、または信頼性アグリゲータ２４４によって実行された学習、または信頼性アグリゲータ２４４によって計算されたトレンドに基づいて、時間とともに適合されたものであってもよい。さらに、しきい値は、分類（ドライバーのタイプ、ドライバーのサイズ、および形状のカテゴリなど）に基づいて、包括的であるか、個別化されているか、または適用されていてもよい。いくつかの実施形態では、手足は、分布履歴に基づいてフィルタリングすることができる。例えば、手足にそれぞれ関連付けられた集約された信頼性は、平均信頼度と比較することができ、１、１．５、２など、平均値からの標準偏差などのある特定の範囲外にある信頼度を除去することができる。
【０１１８】
いくつかの実施形態では、信頼性アグリゲータ２４４は、様々なチャネルによって生成された信頼度を最適に融合する。提案された境界ボックスｂｂごとに、元のＡＣＦスコアＳACF、ｂｂの形状適合スコアＳbbs、空間フィルタリングスコアＳspatial、および関節
空間分布スコアＳjointが存在する場合がある。信頼性アグリゲータ２４４は、以下の式
：
Ｓ＝α1ＳACF＋α2Ｓbbs＋α3Ｓspatial＋α4Ｓjoint
を使用して、これら４つのスコアを組み合わせるための最適な重みを計算してもよい。スコアの他の組合せ（例えば、上記のスコアのうちの２つ、３つ）も考えられることを理解されたい。場合によっては、ランダム探索技法を使用することができる。例えば、上記の４つの重みは、一様分布（αi〜ｕ（０，０．５））に従ってランダムに初期化するこ
とができる。繰返しごとに、ステップサイズも一様分布（δαi〜ｕ（−０．１，０．１
））に従うことができる。重みは、ステップがジャンプした後に性能における改善が観測されるときはいつでも更新することができる。ランダム探索プロセスは、繰返しのしきい値に達した後、または性能プラトーに達した後のいずれかで終わる場合がある。一例として、ランダム初期化が１０回繰り返され、最終的な最適の重みとして、最も良い性能に達する重みが選ばれる。
【０１１９】
いくつかの実施形態では、信頼性アグリゲータ２４４は、ＧＭＭを使用して、フィルタリングされた提案内の境界ボックスデータをモデル化することができる。例えば、信頼性アグリゲータ２４４は、以下の式を使用してモデリングを実行することができる。
0006394735.tif 000008
【０１２０】
以上の説明では、本発明を十分に理解できるように、多くの詳細について説明した。しかしながら、各実施形態はこれらの具体的な詳細無しでも良いことは当業者にとって明らかであろう。また、説明が不明瞭になることを避けるために、構造や装置をブロック図の形式で表すこともある。たとえば、一実施形態は、ユーザインタフェースおよび特定のハードウェアとともに説明される。しかし、ここでの説明は、データおよびコマンドを受信する任意のタイプの計算装置および任意の周辺機器について適用できる。
【０１２１】
本明細書における「一実施形態」または「ある実施形態」等という用語は、その実施形態と関連づけて説明される特定の特徴・構造・性質が少なくとも本発明の一つの実施形態に含まれることを意味する。「一実施形態における」等という用語は本明細書内で複数用いられるが、これらは必ずしも同一の実施形態を示すものとは限らない。
【０１２２】
以上の詳細な説明の一部は、非一時的（non-transitory）なコンピュータ可読記憶媒体に記憶されたデータビットに対する動作のアルゴリズムおよび記号的表現として提供される。これらのアルゴリズム的な説明および表現は、データ処理技術分野の当業者によって、他の当業者に対して自らの成果の本質を最も効果的に説明するために用いられるものである。なお、本明細書において（また一般に）アルゴリズムとは、所望の結果を得るための論理的な手順を意味する。処理のステップは、物理量を物理的に操作するものである。必ずしも必須ではないが、通常は、これらの量は記憶・伝送・結合・比較およびその他の処理が可能な電気的または磁気的信号の形式を取る。通例にしたがって、これらの信号をビット・値・要素・エレメント・シンボル・キャラクタ・項・数値などとして称することが簡便である。
【０１２３】
なお、これらの用語および類似する用語はいずれも、適切な物理量と関連付いているものであり、これら物理量に対する簡易的なラベルに過ぎないということに留意する必要がある。説明から明らかなように、特に断らない限りは、本明細書において「処理」「計算」「コンピュータ計算（処理）」「判断」「表示」等の用語を用いた説明は、コンピュータシステムや類似の電子的計算装置の動作および処理であって、コンピュータシステムのレジスタやメモリ内の物理的（電子的）量を、他のメモリやレジスタまたは同様の情報ストレージや通信装置、表示装置内の物理量として表される他のデータへ操作および変形する動作および処理を意味する。
【０１２４】
本発明は、本明細書で説明される動作を実行する装置にも関する。この装置は要求される目的のために特別に製造されるものであっても良いし、汎用コンピュータを用いて構成しコンピュータ内に格納されるプログラムによって選択的に実行されたり再構成されたりするものであっても良い。このようなコンピュータプログラムは、コンピュータのシステムバスに接続可能な、例えばフロッピー（登録商標）ディスク・光ディスク・ＣＤ−ＲＯＭ・ＭＯディスク・磁気ディスクなど任意のタイプのディスク、読み込み専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、ＥＰＲＯＭ、ＥＥＰＲＯＭ、磁気カード、フラッシュメモリ、光学式カード、電子的命令を格納するために適した任意のタイプの媒体などの、非一時的なコンピュータ可読記憶媒体に記憶される。
【０１２５】
発明の具体的な実施形態は、完全にハードウェアによって実現されるものでも良いし、完全にソフトウェアによって実現されるものでも良いし、ハードウェアとソフトウェアの両方によって実現されるものでも良い。好ましい実施形態は、ソフトウェアによって実現される。ここでソフトウェアとは、ファームウェア、常駐ソフトウェア、マイクロコードやその他のソフトウェアを含むものである。
【０１２６】
さらに、ある実施形態は、コンピュータが利用あるいは読み込み可能な記憶媒体からアクセス可能なコンピュータプログラムプロダクトの形態を取る。この記憶媒体は、コンピュータや任意の命令実行システムによってあるいはそれらと共に利用されるプログラムコードを提供する。コンピュータが利用あるいは読み込み可能な記憶媒体とは、命令実行システムや装置によってあるいはそれらと共に利用されるプログラムを、保持、格納、通信、伝搬および転送可能な任意の装置を指す。
【０１２７】
プログラムコードを格納・実行するために適したデータ処理システムは、システムバスを介して記憶素子に直接または間接的に接続された少なくとも１つのプロセッサを有する。記憶素子は、プログラムコードの実際の実行に際して使われるローカルメモリや、大容量記憶装置や、実行中に大容量記憶装置からデータを取得する回数を減らすためにいくつかのプログラムコードを一時的に記憶するキャッシュメモリなどを含む。
【０１２８】
入力／出力（Ｉ／Ｏ）装置は、例えばキーボード、ディスプレイ、ポインティング装置などであるが、これらはＩ／Ｏコントローラを介して直接あるいは間接的にシステムに接続される。
【０１２９】
システムにはネットワークアダプタも接続されており、これにより、私的ネットワークや公共ネットワークを介して他のデータ処理システムやリモートにあるプリンタや記憶装置に接続される。モデム、ケーブルモデム、イーサネット（登録商標）は、現在利用可能なネットワークアダプタのほんの一例である。
【０１３０】
最後に、本明細書において提示されるアルゴリズムおよび表示は特定のコンピュータや他の装置と本来的に関連するものではない。本明細書における説明にしたがったプログラムを有する種々の汎用システムを用いることができるし、また要求された処理ステップを実行するための特定用途の装置を製作することが適した場合もある。これら種々のシステムに要求される構成は、以上の説明において明らかにされる。さらに、本発明は、特定のプログラミング言語と関連づけられるものではない。本明細書で説明される本発明の内容を実装するために種々のプログラミング言語を利用できることは明らかであろう。
【０１３１】
実施形態の前述の説明は、例示と説明を目的として行われたものである。したがって、開示された実施形態が本発明の全てではないし、本発明を上記の実施形態に限定するものでもない。本発明は、上記の開示にしたがって、種々の変形が可能である。本発明の範囲は上述の実施形態に限定解釈されるべきではなく、特許請求の範囲にしたがって解釈され
るべきである。本発明の技術に詳しい者であれば、本発明はその思想や本質的特徴から離れることなくその他の種々の形態で実現できることを理解できるであろう。同様に、モジュール・処理・特徴・属性・方法およびその他の本発明の態様に関する名前付けや分割方法は必須なものでものないし重要でもない。また、本発明やその特徴を実装する機構は異なる名前や分割方法や構成を備えていても構わない。さらに、当業者であれば、モジュール・処理・特徴・属性・方法およびその他の本発明の態様は、ソフトウェア、ハードウェア、ファームウェアもしくはこれらの組合せとして実装できることを理解できるであろう。また、本発明をソフトウェアとして実装する場合には、モジュールなどの各要素は、どのような様式で実装されても良い。例えば、スタンドアローンのプログラム、大きなプログラムの一部、異なる複数のプログラム、静的あるいは動的なリンクライブラリー、カーネルローダブルモジュール、デバイスドライバー、その他コンピュータプログラミングの当業者にとって既知な方式として実装することができる。さらに、本発明の実装は特定のプログラミング言語に限定されるものではないし、特定のオペレーティングシステムや環境に限定されるものでもない。以上のように、上記の本発明の説明は限定的なものではなく例示的なものであり、本発明の範囲は添付の特許請求の範囲にしたがって定められる。
【符号の説明】
【０１３２】
１００  システム
１０２  サーバ
１０４  手足検出アプリケーション
１０６  コンテキストデータベース
１０８  ナビゲーションデータベース
１１２  ネットワーク
１１８  移動プラットフォーム
１２０  センサ
１２２  ユーザ支援アプリケーション
１２４  クライアントデバイス
１２８  ユーザ
【図１】
0006394735.tif 000009
【図２Ａ】
0006394735.tif 000010
【図２Ｂ】
0006394735.tif 000011
【図３Ａ】
0006394735.tif 000012
【図３Ｂ】
0006394735.tif 000013
【図４】
0006394735.tif 000014
【図５】
0006394735.tif 000015
【図６】
0006394735.tif 000016
【図７】
0006394735.tif 000017
【図８】
0006394735.tif 000018
【図９】
0006394735.tif 000019
【図１０】
0006394735.tif 000020
【図１１】
0006394735.tif 000021
【図１２】
0006394735.tif 000022