(57)【要約】      （修正有）【課題】人の三次元骨格表現を生成するためのシステム、ロボット及び方法を提供する。【解決手段】方法は、二次元画像から該二次元画像内に存在する人物の二次元骨格表現を生成することを含む。二次元骨格表現は複数の関節と該複数の関節の個々の関節の間の複数のリンクとを備える。更に、該複数のリンクの１つ又は複数のリンクの周囲にコーンを配置することと、該二次元骨格表現の該１つ又は複数のリンクの周囲に配置された該コーンと交差する深さクラウドの複数のポイントを識別することとを含む。該深さクラウドの該複数のポイントは、深さセンサによって生成され、各ポイントは深さ情報を提供する。また、方法は、該コーンと交差する該複数のポイントの深さ情報を用いて該二次元骨格表現を三次元空間内に投影し、それによって該人物の該三次元骨格表現を生成することを含む。【選択図】図２
2019061679.tif 000002
【特許請求の範囲】
【請求項１】
人物の三次元骨格表現を生成する方法であって、
二次元画像から、前記二次元画像内に存在する人物の二次元骨格表現を生成するステップであって、前記二次元骨格表現は複数の関節と前記複数の関節の個々の関節の間の複数のリンクとを備える、ステップと、
前記複数のリンクの１つ以上のリンクの周囲にコーンを配置するステップと、
前記複数のリンクの前記１つ以上のリンクの周囲に配置された前記コーンと交差する深さクラウドのポイントを識別するステップであって、前記深さクラウドのポイントは、深さセンサによって生成され、各ポイントが深さ情報を提供する、ステップと、
前記複数のリンクの前記１つ以上のリンクの周囲に配置された前記コーンと交差する前記深さクラウドのポイントの深さ情報を用いて前記二次元骨格表現を三次元空間内に投影し、それによって前記人物の前記三次元骨格表現を生成するステップと、を含む方法。
【請求項２】
前記二次元骨格表現を三次元空間内に投影するステップは、前記複数のリンクの前記１つ以上のリンクの周囲に配置された前記コーンと交差する前記深さクラウドの全てのポイントの深さ情報を平均するステップを含む、請求項１に記載の方法。
【請求項３】
少なくとも部分的に前記三次元骨格表現に基づいてユーザを認証するステップを更に含む、請求項１または２に記載の方法。
【請求項４】
前記ユーザを認証するステップは、
前記三次元骨格表現から前記ユーザのポーズ又は歩行を入手するステップと、
複数の登録ユーザに対する複数の記憶されたポーズ又は複数の記憶された歩行を備える記憶域にアクセスするステップと、
前記ユーザの前記ポーズ又は前記歩行を前記複数の記憶されたポーズ又は前記複数の記憶された歩行の１つと照合するステップと、を含む、請求項３に記載の方法。
【請求項５】
前記三次元骨格表現から歩行情報を記録するステップを更に含む、請求項１から４の何れか一項に記載の方法。
【請求項６】
１つ以上のセンサから画像データを入手するステップを更に含み、前記画像データは前記二次元画像を含む、請求項１から５の何れか一項に記載の方法。
【請求項７】
プロセッサと、前記プロセッサによって実行されたときに、前記プロセッサに、請求項１から６の何れか一項に記載の方法を完了させる機械可読命令を備えた非一時的記憶装置とを備える、ロボット。
【請求項８】
アームと、前記アームの端部に配置されたエンドエフェクタとを更に含み、前記機械可読命令が更に前記プロセッサに、更に、
前記人物の手に保持された対象物を決定させ、
前記人物の前記三次元骨格表現から三次空間内の前記人物の前記手の場所を決定させる、請求項７に記載のロボット。
【請求項９】
前記機械可読命令が更に前記アーム及びエンドエフェクタを前記人物の前記手の方へ移動させ前記対象物を把持させる、請求項７または８に記載のロボット。
【請求項１０】
前記プロセッサと通信可能に接続された複数のセンサを更に備え、前記複数のセンサが前記二次元画像を提供する、請求項７から９の何れか一項に記載のロボット。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、その全内容を参照により本明細書に援用される「三次元骨格表現を生成するためのシステム、ロボット及び方法」と題された２０１７年９月２６日出願の米国仮特許出願第６２／５６３４２７号明細書に対する優先権を主張する。
【０００２】
本明細書に説明する実施形態は、概ね、物体の認識に関し、特に、ある環境における人の三次元骨格表現を生成するためのシステム、ロボット及び方法に関する。
【背景技術】
【０００３】
コンピュータビジョンを用いて画像内の人物の存在を決定することができる。例えば、ロボットは、コンピュータビジョンを用いて、ある空間で人と共生できるようにある環境内の人物の存在を決定することができる。すなわち、ロボットはコンピュータビジョンに依拠して人間のポーズ、向き、又は同種のものを決定して人間と対話することができる。ただし、既存のシステム及び方法は、必ずしもコンピュータビジョンを活用してポーズ、向き、又は同種のものを適当に推定することができない。更に、既存のコンピュータビジョンシステムは該人間の顔が不明瞭なときには特定の人間を認証することができない場合がある。
【発明の概要】
【課題を解決するための手段】
【０００４】
一実施形態では、人物の三次元骨格表現を生成する方法は、二次元画像から該二次元画像内に存在する人物の二次元骨格表現を生成することを含み、該二次元骨格表現は複数の関節と該複数の関節の個々の関節の間の複数のリンクとを備える。この方法は、該複数のリンクの１つ又は複数のリンクの周囲にコーンを配置することと、該二次元骨格の該１つ又は複数のリンクの周囲に配置された該コーンと交差する深さクラウドの複数のポイントを識別することとを更に含み、該深さクラウドの該複数のポイントは深さセンサによって生成され、各ポイントは深さ情報を提供する。またこの方法は、該複数のリンクの１つ又は複数のリンクの周囲に配置された該コーンと交差する該深さクラウドの該複数のポイントの深さ情報を用いて該二次元骨格表現を三次元空間内に投影し、それによって該人物の該三次元骨格表現を生成することを含む。
【０００５】
別の実施形態では、ロボットは、プロセッサと、該プロセッサによって実行されたときに、該プロセッサに二次元画像から該二次元画像内に存在する人物の二次元骨格表現を生成させる機械可読命令を記憶する非一時的記憶装置とを含み、該二次元骨格表現は複数の関節と該複数の関節の個々の関節の間の複数のリンクとを備える。該機械可読命令は更に、該プロセッサに該複数のリンクの１つ又は複数のリンクの周囲にコーンを配置させ、該二次元骨格の該１つ又は複数のリンクの周囲に配置された該コーンと交差する深さクラウドの複数のポイントを識別させ、該深さクラウドの該複数のポイントは深さセンサによって生成され、各ポイントは深さ情報を提供する。該機械可読命令は更に、該プロセッサに、該複数のリンクの１つ又は複数のリンクの周囲に配置された該コーンと交差する該深さクラウドの該複数のポイントの深さ情報を用いて該二次元骨格表現を三次元空間内に投影させ、それによって該人物の該三次元骨格表現を生成させる。
【０００６】
別の実施形態では、システムはプロセッサと非一時的プロセッサ可読記憶装置とを含む。該非一時的プロセッサ可読記憶装置は、該プロセッサによって実行されたときに、該プロセッサに二次元画像から該二次元画像内に存在する人物の二次元骨格表現であって、複数の関節と該複数の関節の個々の関節の間の複数のリンクとを備える二次元骨格表現を生成させる１つ又は複数の機械可読命令を含む。該非一時的プロセッサ可読記憶装置は更に、該プロセッサによって実行されたときに、該プロセッサに該複数のリンクの１つ又は複数のリンクの周囲にコーンを配置させ、該二次元骨格の該１つ又は複数のリンクの周囲に配置された該コーンと交差する深さクラウドの複数のポイントであって、深さセンサによって生成され、各ポイントが深さ情報を提供する深さクラウドの複数のポイントを識別させる１つ又は複数の機械可読命令を含む。該非一時的プロセッサ可読記憶装置はまた、該プロセッサによって実行されたときに、該プロセッサに該複数のリンクの１つ又は複数のリンクの周囲に配置された該コーンと交差する該深さクラウドの該複数のポイントの深さ情報を用いて該二次元骨格表現を三次元空間内に投影させ、それによって該人物の該三次元骨格表現を生成させる１つ又は複数の機械可読命令を含む。
【０００７】
本発明の実施形態によって提供される上記及び追加の特徴は以下の詳細な説明を図面と合わせて読むことでより深く理解できよう。
【図面の簡単な説明】
【０００８】
図面に示す実施形態は本質的に例示的で説明のためのものであり、本開示を限定するものではない。例示的な実施形態の以下の詳細な説明は、同様の構造が同様の参照番号で示される以下の図面と合わせて読むことで理解できる。
【図１】図１は、本明細書に説明し例示する１つ又は複数の実施形態による例示的なロボットの概略図である。
【図２】図２は、本明細書に説明し例示する１つ又は複数の実施形態による人間の三次元骨格表現を生成する例示的な工程のフローチャートを示す。
【図３】図３は、本明細書に説明し例示する１つ又は複数の実施形態によるセンサによって検知される人物の例示的な二次元画像の概略図である。
【図４】図４は、本明細書に説明し例示する１つ又は複数の実施形態による図３の該二次元画像内の該人物の例示的な二次元骨格表現の概略図である。
【図５】図５は、本明細書に説明し例示する１つ又は複数の実施形態による図４に示す該二次元骨格表現の例示的なアーム部分の概略図である。
【図６】図６は、本明細書に説明し例示する１つ又は複数の実施形態による深さクラウドの交差ポイントを備える図４に示す該二次元骨格表現の例示的なアーム部分の概略図である。
【図７】図７は、本明細書に説明し例示する１つ又は複数の実施形態による三次元空間内の図１に示す人物の三次元骨格表現の例示的な画像の概略図である。
【図８Ａ】図８Ａは、本明細書に示し説明する１つ又は複数の実施形態によるディスプレイに表示される例示的な三次元骨格を示す。
【図８Ｂ】図８Ｂは、本明細書に示し説明する１つ又は複数の実施形態によるディスプレイに表示される別の例示的な三次元骨格を示す。
【図８Ｃ】図８Ｃは、本明細書に示し説明する１つ又は複数の実施形態によるディスプレイに表示される更に別の例示的な三次元骨格を示す。
【図９】図９は、本明細書に説明し例示する１つ又は複数の実施形態による例示的なロボットのコンポーネントの概略図である。
【発明を実施するための形態】
【０００９】
本明細書に開示された実施形態は深さ情報を含む人の三次元（３Ｄ）骨格表現を生成するためのシステム及び方法を対象とする。３Ｄ骨格表現を用いて人物が３Ｄ空間のどこに位置するかを決定できる。更に、実施形態を用いて３Ｄ空間内の人物の推定３Ｄポーズを検知することができる。特に、人物の二次元（２Ｄ）骨格表現が赤−緑−青（ＲＧＢ）画像データから生成される。次いで、２Ｄ骨格表現は深さセンサから入手した深さ情報等の深さ情報と合成される。限定的にではなく一例として、ＲＧＢ画像データ及び深さ情報は２Ｄ  ＲＧＢ画像と深さ情報の両方を単一データパッケージ内に作成する２Ｄ  ＲＧＢ−Ｄカメラから入手することができる。その結果、人物の３Ｄポーズに関する情報を提供する人物の３Ｄ骨格表現が得られる。限定的にではなく一例として、３Ｄ骨格はリアルタイムに動画を用いて生成できる。
【００１０】
本明細書に説明する３Ｄ骨格表現は様々な用途に利用できる。１つの非限定的な用途では、ロボットは人間を様々なタスクで支援するために３Ｄ骨格表現を用いて環境内の人物の場所とポーズとを決定できる。一例では、ロボットを家庭、特別養護施設、及び病院等の人間居住空間内に配備できる。それらのロボットは支援及び付き添い全般のために人間と同じ空間を共有できる。例えば、ロボットは老人、障がい者、又はけが人等の物理的支援が必要な人物の家庭に配備できる。ロボットは移動可能であってもよく、例えば、人物のために対象物を取ってくるのに使用できるアクチュエータを有していてもよい。そのようなロボットは、人物がロボットを活用して他人の支援への依存を軽減できるため、人物により独立した気分を与えることができる。したがって、本開示の実施形態は、ロボットが３Ｄ骨格表現を用いて人の場所とポーズとを決定することで環境内の人と対話することを支援できる。本明細書で環境は人間を支援するロボットの分野の文脈で記述されているが、実施形態はそれに限定されないことを理解されたい。
【００１１】
本明細書に記載された実施形態は、概ね、ある環境を映像化し人間が存在するか否か、また該人間の特定の特徴（すなわち、ポーズ）を決定するための様々な工程を実行するために特に採用された特殊な機械（すなわち、ロボット）上で使用することができる。ただし、本開示は特殊な機械に限定されない。すなわち、本明細書に記載されたある種の実施形態は１つ又は複数のセンサと通信可能に接続された汎用コンピューティング装置上で使用できる。そのような実施形態では、本明細書に記載されたシステム及び方法は、ある環境内に人間が存在するか否か、人間のポーズの様子、及び／又は同種のものをより正確に認識し、且つ、人間の顔がセンサによって正確に感知されない（すなわち、人間がセンサに正対していない、又は人間の顔が別の理由で不明瞭なために）場合においても人間の識別を正確に決定する能力を汎用コンピューティング装置に提供することで。汎用コンピューティング装置の機能性を改善することができる。
【００１２】
図１を参照すると、実施形態による概ね１００で示される例示的なロボットを家庭等の人間居住空間内に配備できる。ロボット１００は、環境内の隅々までロボットを移動させる電動式ホイール１０６（又はスキー、ウィング、ロータ、コンティニュアストラック、若しくは同種のもの等の他のモビリティコンポーネント）と、対象物を把持し且つ／又は操作できるエンドエフェクタ１０５（例えば、グリッパ、ロボットハンド、及び／又は同種のもの）を有する１つ又は複数のアーム１０４とを有する。更に、ロボット１００は環境を感知して、その結果、ロボット１００が対象物を検知し、対象物を操作し、環境をナビゲートする際に支援するセンサデータを生成できる複数のセンサ１０２を有する。複数のセンサ１０２は、これに限定されないが、カメラ（例えば、ＣＣＤカメラ）、赤外線センサ、深さセンサ、近接センサ、タクタイルセンサ、ライダーセンサ、レーダセンサ、タイムオブフライトセンサ、及び同種のものを含んでいてもよい。複数のセンサ１０２は２Ｄ  ＲＧＢ画像と深さ情報とを生成できてもよい。一例では、少なくともセンサの１つは１パッケージに収容されたＲＧＢ−Ｄセンサである。別の例では、２Ｄ  ＲＧＢ画像データ及び深さ情報は別々のセンサによって生成される。図１に示すロボット１００は例示的な目的のためにのみ提供されていることと、ロボットの構成は本開示によって限定されないこととを理解されたい。
【００１３】
本明細書で上述したように、図１に示すロボット１００は特に人物の３Ｄ骨格表現を作成するように構成されていてもよい。図１及び２を参照すると、人物の３Ｄ骨格表現を作成するための例示的な工程のフローチャート１３０が図示されている。図１に示すように、ロボット１００（又は他のコンピューティング装置）は環境内の人物１０を映像化できる。更に図１及び２を参照すると、センサ１０２は人物に関するデータを生成する。すなわち、ＲＧＢセンサ（例えば、ＣＣＤカメラ）はブロック１３１で人物１０の２Ｄ画像１０´（図３）を生成する。更に、深さセンサは環境（図示せず）内の複数のポイントの深さクラウドも生成する。深さセンサ及びＲＧＢセンサは図１に示すように単一のセンサ１０２として提供してもよいし、又は別々のセンサとして提供してもよい。
【００１４】
図１〜５を概ね参照すると、その一例が図４及び５に示された人物１０の２Ｄ骨格表現２０が作成される（図２のブロック１３２）。図４は２Ｄ骨格表現２０の全体図であり、一方、図５は図４に示す２Ｄ骨格表現２０の腕２２を示す部分図である。更に図１〜５を参照すると、２Ｄ骨格表現２０は、例えば、肩関節２４、肘関節２３、及び手首２６等の複数の関節を含んでいてもよい。本明細書に特に記載されない他の関節も２Ｄ骨格表現２０の範囲内であると考えられる。肩関節２４と肘関節２３との間のリンク２５（例えば、上腕骨を表す）及び肘関節２３と手首２６との間のリンク２７（例えば、尺骨及び橈骨を表す）等のリンクが関節の間に提供される。２Ｄ骨格表現２０を生成するための任意の周知の又は未考案の方法を使用することができる。例えば、２Ｄ骨格表現はマイクロソフトＣＯＣＯ（Ｍｉｃｒｏｓｏｆｔ  Ｃｏｒｐ．、Ｒｅｄｍｏｎｄ  ＷＡ）データセット、及び／又は同種のものと組み合わせたＭＡＴＬＡＢ（Ｍａｔｈｗｏｒｋｓ、Ｎａｔｉｃｋ  ＭＡ）を用いて作成できる。
【００１５】
次いで、図２に示すフローチャート１３０のブロック１３３で、直径ｄを有するコーンＣが図４及び５に示すように２Ｄ骨格表現２０内のリンクの各々の周囲に位置する。コーンＣは、各リンクがコーンＣの中心を通過するようにリンクの周囲に配置された１つ又は複数のコンピュータ生成リング構造を含む。直径ｄは、概ね、リンクに対応する人間の部位の推定サイズに基づいて選択される。例えば、リンクが人間の腕に対応する場合、コーンＣの直径ｄは人間の腕の推定径に対応するように選択できる。したがって、コーンＣはそのサイズが概ねそれぞれの部位に対応していなければならない。したがって、直径ｄは本開示によって限定されない。限定的にではなく一例として、直径ｄは約３センチメートルから約５センチメートルであってもよい。以下に詳述するように、コーンＣは検知された人物に関する深さクラウドを作成するために配置される。
【００１６】
図６を参照すると、コーンＣを有する２Ｄ骨格表現２０は深さセンサから受け取った深さ情報と合成される。例えば、深さセンサ（例えば、センサ１０２）はシーン内に複数のポイント３０を有する深さクラウドを作成する。限定的にではなく一例として、ポイント３０は、深さセンサによって投射され、人物１０（図１）に投射される赤外線レーザビームによって生成されてもよい。すなわち、深さセンサは概ね人物１０へ向かう方向に光（例えば、１つ又は複数のレーザビーム）を発することができる（図１）。少なくとも光の一部は人物１０（図１）及び／又は人物１０を取り囲む対象物／人によって反射される。反射した光は深さセンサからはポイント３０として見える。
【００１７】
図２及び６を参照すると、コーンＣと交差する深さポイントがブロック１３４で決定される。図６はコーンＣ及びリンク２７を取り囲む他の領域へのポイント３０の投影を示す。特に、ポイント３０は交差ポイント３０ａと非交差ポイント３０ｂとを含む。交差ポイント３０ａは概ねコーンＣと交差するポイントであり、非交差ポイント３０ｂは概ねコーンＣと交差しない（すなわち、コーンＣの外側に位置する）ポイントである。今回の分析ではコーンＣと交差する交差ポイント３０ａのみを考慮する。例示のために、図６は人物１０の腕２２のコーンＣと交差する交差ポイント３０ａ及び周囲の少数の非交差ポイント３０ｂのみを示す。ただし、それ以外にも２Ｄ骨格表現２０の外側に多数の非交差ポイント３０ｂがあることを理解されたい。更に、そのような非交差ポイント３０ｂは特定のコーンＣに対してのみ非交差であってもよい。すなわち、ある特定のポイントがリンク２５（図５）の周囲のコーンＣに対する非交差ポイント３０ｂである一方でリンク２７（図５）の周囲のコーンＣに対する交差ポイント３０ａであってもよい。特定のポイントが非交差ポイント３０ｂのとき、そのようなポイントは２Ｄ骨格表現を決定する目的では考慮されない。深さクラウドの各々の交差ポイント３０ａは２Ｄ骨格表現２０に関する深さ情報を提供する。特に、各々の交差ポイント３０ａはそれが投影された対象物から深さセンサまでの距離を提供する。すなわち、深さセンサと各々の特定の１つの交差ポイント３０ａとの距離は、以下に記載するように決定できる。
【００１８】
交差ポイント３０ａからの深さ情報を用いて２Ｄ骨格表現２０が深さセンサ（例えば、図１に示すセンサ１０２）からどの程度離れているかを決定できる。一例では、総平均深さが２Ｄ骨格表現２０のコーンＣと交差する全ての交差ポイント３０ａの深さ情報から決定される（図２のブロック１３５）。すなわち、深さは、角度計算、タイムオブフライト計算、及び／又は同種のものを含む距離センサからの距離を計算する任意の方法によって交差ポイント３０ａの各々について計算される。深さ計算値は全てまとめて平均されて総平均深さが得られる。図７は、２Ｄ骨格表現２０のコーンＣと交差する全ての交差ポイント３０ａの総平均に基づくセンサ１０２から深さＤの位置にある３Ｄ骨格表現２０´の概略図である。別の例では、深さは２Ｄ骨格表現２０の特定の部分について個別に決定される。例えば、どの交差ポイント３０ａが人物の左腕と交差しているかについて決定し、左腕上のそれらの交差ポイント３０ａの各々について深さを決定し、左腕の全ての深さ情報を平均して左腕の平均深さを決定できる。同様に、右腕の全ての深さ情報を平均して右腕の平均深さを決定でき、右足の全ての深さ情報を平均して右足の平均深さを決定でき、同種のものについて上記の決定が可能である。更に、いくつかの実施形態では、２Ｄ骨格表現２０の深さは、用途によっては２Ｄ骨格表現２０の各リンクの小さい部分、又は交差ポイント３０ａのレベル等の更に細かい粒度で決定できる。２Ｄ骨格表現２０のコーンＣと交差する交差ポイント３０ａからの深さを決定する別の方法も使用できることを理解されたい。
【００１９】
このように、ＲＧＢ−Ｄセンサを使用して３Ｄ空間内の骨格表現の場所を決定できる。更に、実施形態で３Ｄ骨格表現２０´を用いて人物のポーズを決定できる（図２のブロック１３６）。例えば、推定ポーズを用いて人物がどの方向を向いているか、人物の姿勢、人物の両腕がどこに位置するか、人物の両腕の配置、人物又はその特定の部位が動いているか否か、及び同種のものを決定できる。非限定的な例では、人物のポーズは、概ね、ロボット１００と人物との間の対象物の受け渡しを調整してロボット１００が対象物に正確に接触し、受け渡しのために対象物を適当に配置し、人物が対象物を把持したら対象物を離す動作を確実にするためにロボット１００を使用できる。本明細書に記載する３Ｄ骨格表現２０´を用いて、３Ｄ空間内の人物の手の場所がロボット１００が必要に応じてアクセスできる記憶域に記憶される。また、ロボット１００は人物が保持している、又は人物の横にある特定の対象物を突き止められるように対象物認識能力を備えていてもよい。例えば、人物がロボット１００に対してりんごを右手で差し出した場合、ロボットはユーザがりんごを保持していること、３Ｄ空間内のりんごの場所、りんごの向き、及び／又は同種のものを検知し、３Ｄ骨格表現２０´を用いて人物の右手を突き止めることができる。次いで、ロボット１００はこの情報を用いて人物の右手からりんごを自然な動きで掴み取る特定の移動コマンドを決定し実行することができる。
【００２０】
２Ｄ骨格表現２０又は３Ｄ骨格表現２０´（集合的に「骨格表現」と呼ぶ）のフィルタリングを実施してセンサ１０２から見た人物の正確な表現を提供できる。例えば、歴史的骨格表現を記憶域又は同種のものに記憶し、有効な骨格表現を表す規則を作成できる。例えば、同じ人物の両腕を表すリンクは概ね相互に一定の比率の範囲内であってもよく（例えば、一方の腕のリンクは他方の腕のリンクより大幅に大きくてはならない）、両足を表すリンクは両腕に釣り合った範囲内でなければならず、骨格表現のリンクは人間がとることができるポーズに対応していなければならない（例えば、人間の両腕を一定の方法で後ろに折り曲げることはできない）。
【００２１】
検知された骨格表現（深さ情報を含む２Ｄ骨格表現２０又は３Ｄ骨格表現２０´）が歴史的データに基づく規則の１つに違反した（例えば、両腕のサイズ又はそれぞれの場所が実際と対応しない）ときには、是正措置を講じることができる。例えば、別の測定値を採用して不正確な測定値を無視するか、又は違反した１つ又は複数の規則を満足するように１つ又は複数のリンクを変更できる。こうして、ある種の所定の規則を適用することによって骨格表現をフィルタリングすることができる。
【００２２】
いくつかの実施形態では、３Ｄ骨格表現２０´を用いて特定の人物を識別することもできる。顔認識は特定の人物を識別するための技法である。ただし、人物の顔がカメラ等のセンサの明瞭な視界に入っているとは限らない。したがって、ロボット工学分野では、人物がロボットに正対していない、さもなければロボット１００がアクセスできる画像センサに正対している場合でも人物が誰であるかを認識するようにロボット１００をプログラミングすることはできない。いくつかの実施形態では、登録ユーザ及び各ユーザのそれぞれの３Ｄ骨格表現２０´に関する情報を含むデータベースを作成できる。３Ｄ骨格表現２０´のリンク及び関節は指紋に良く似た人物の一意的な識別子に対応できる。ユーザは様々なポーズのいくつかの３Ｄ骨格表現２０´を登録することで登録ユーザになることができる。次いで、ロボット１００（又は他のコンピューティング装置）は、例えば、関節間のリンクの長さ、関節の場所、別のリンクに対する１つのリンクの長さの比率、及び／又は同種のもの等の３Ｄ骨格表現２０´の様々な属性を用いて識別を作成することができる。そのような属性は概ね登録ユーザに一意的である。別の例として、ロボット１００（又は他のコンピューティング装置）は３Ｄ骨格表現２０´によってユーザの歩行を記録できる。すなわち、歩行に関する情報を決定し記憶できるように人物の動画像（及びその３Ｄ骨格表現２０´）を記録できる。人物の歩行は人物に関する識別情報を提供する。したがって、識別のために、人物の歩行もデータベース内に記憶することができる。
【００２３】
したがって、人物１０の映像化に際して、ロボット１００（又は他のコンピューティング装置）はデータベースにアクセスしてユーザを任意の数の方法で識別することができる。したがって、ユーザはその顔が見えなくても識別できる。更に、識別されたユーザの３Ｄ骨格表現２０´の周知の属性をリアルタイムに適用して現在生成中の３Ｄ骨格表現２０´でこれまでに発生する可能性があったあらゆるエラーを補正する（例えば、骨格表現の任意の１つのリンクの長さのエラーを補正する、歩行を補正する、又は同種のものを補正する）ことができる。
【００２４】
図８Ａ〜８Ｃは、任意の数の用途にロボット又はコンピューティング装置によって表示でき、又は他の方法で使用できる３Ｄ骨格表現２０´の例示的な画像を示す。特に、図８Ａは、３Ｄ空間７０内の特定のユーザの３Ｄ骨格表現２０´を示す。図８Ｂ及び８Ｃは、３Ｄ空間７０内の人物１０´のＤ画像に重畳された３Ｄ骨格表現２０´を示す。図８Ｂ及び８Ｃに示すように、３Ｄ骨格表現２０´の形状、サイズ、及び配置は人物１０´の形状、サイズ、及び配置に対応する。３Ｄ空間７０内に存在する他の対象物８０（家具、対象物、及び／又は同種のもの等）は人物１０´の一部ではないと決定され、ロボット１００（図１）によって無視される。
【００２５】
図９を参照すると、ロボット１００のコンポーネントの概略が示されている。上記のように、本明細書に記載された３Ｄ骨格表現２０´の機能性はロボット工学分野に限定されず、１つ又は複数のセンサ１０２及びコンピューティング装置を用いて実行できる。また、ロボット１００は図９に示すコンポーネントより多くのコンポーネント及び／又は代替のコンポーネントを含んでいてもよく、図９は例示的な目的でのみ提供されることを理解されたい。ロボット１００は、概ね、プロセッサ１１０と、通信経路１１１と、ネットワークインタフェースハードウェア１１２と、複数のセンサ１０２と、１つ又は複数の記憶モジュール１１４と、複数の入力及び出力１１５と、複数のアクチュエータ１１６と、ロケーションセンサ１１７とを含む。
【００２６】
通信経路１１１は、例えば、導電ワイヤ、導電トレース、光導波路、又は同種のもの等の信号伝送能力がある任意の媒体から形成できる。更に、通信経路１１１は信号伝送能力がある媒体の組み合わせから形成できる。一実施形態では、通信経路１１１は、プロセッサ、記憶域、センサ、入力装置、出力装置、及び通信装置等のコンポーネントへの電気的データ信号の送信を可能にするように協働する導電トレース、導電ワイヤ、コネクタ、及びバスの組み合わせを含む。したがって、通信経路１１１はバスであってもよい。更に、「信号」という用語は、媒体を通して進行可能なＤＣ、ＡＣ、正弦波、三角波、方形波、振動、及び同種のもの等の波形（例えば、電気、光、磁気、機械又は電磁波形）を意味することに留意されたい。通信経路１１１はロボット１００の様々なコンポーネントと通信可能に接続されている。本明細書で使用する「通信可能に接続されている」という用語は、接続されたコンポーネントが、例えば、導電媒体を介した電気信号、空気を介した電磁信号、光導波路を介した光信号、及び／又は同種のもの等のデータ信号を相互に送受信可能であるということを意味する。
【００２７】
本明細書に記載するように、ロボット１００のプロセッサ１１０は、これに限定されないが、人の３Ｄ骨格表現２０´を生成するための機械可読命令を含む機械可読命令を実行できる任意の装置であってもよい。したがって、プロセッサ１１０は、制御装置、集積回路、マイクロチップ、コンピュータ、又は他の任意のコンピューティング装置であってもよい。プロセッサ１１０は通信経路１１１によってロボット１００の他のコンポーネントと通信可能に接続されている。したがって、通信経路１１１は任意の数のプロセッサと相互に通信可能に接続でき、通信経路１１１に接続されたコンポーネントが分散コンピューティング環境で動作できるようにする。特に、コンポーネントの各々はデータを送信及び／又は受信できるノードとして動作できる。図９に示す実施形態は単一のプロセッサ１１０を含むが、他の実施形態は各々が特定のタスク又はタスクのセットを完了するように構成された複数の専用プロセッサを含む複数のプロセッサを含んでいてもよい。
【００２８】
ネットワークインタフェースハードウェア１１２は通信経路１１１に接続され、プロセッサ１１０と通信可能に接続されている。ネットワークインタフェースハードウェア１１２はネットワークを介してデータを送信及び／又は受信できる任意の装置であってもよい。したがって、ネットワークインタフェースハードウェア１１２は任意の有線又は無線通信を送信及び／又は受信するための通信送受信機として構成された無線通信モジュールを含んでいてもよい。例えば、ネットワークインタフェースハードウェア１１２は、他のネットワーク及び／又は装置と通信するためのアンテナ、モデム、ＬＡＮポート、Ｗｉ−Ｆｉカード、ＷｉＭａｘカード、ＬＴＥカード、モバイル通信ハードウェア、近距離通信ハードウェア、衛星通信ハードウェア、及び／又は任意の有線又は無線ハードウェアを含んでいてもよい。一実施形態では、ネットワークインタフェースハードウェア１１２は、例えば、Ｂｌｕｅｔｏｏｔｈ、８０２．１１規格、Ｚｉｇｂｅｅ、Ｚ−ｗａｖｅ、及び同種のもの等の無線通信プロトコルに従って動作するように構成されたハードウェアを含んでいてもよい。例えば、ネットワークインタフェースハードウェア１１２は、ポータブル電子装置との間でＢｌｕｅｔｏｏｔｈ通信を送受信するためのＢｌｕｅｔｏｏｔｈ送受信モジュールを含んでいてもよい。また、ネットワークインタフェースハードウェア１１２は、ＲＦＩＤタグに問い合わせを行なって呼び出すように構成された無線周波数識別（「ＲＦＩＤ」）リーダを含んでいてもよい。ネットワークインタフェースハードウェア１１２は、接続されたモバイル装置、３Ｄ骨格表現２０´を表示するか又は他の方法で利用するディスプレイ及び他の装置等の他の電子装置へ３Ｄ骨格表現２０´を送信するように構成されていてもよい。
【００２９】
複数のセンサ１０２はプロセッサ１１０と通信可能に接続されていてもよい。複数のセンサ１０２は、本明細書に記載するＲＧＢ及び深さセンサと、ロボット１００に環境に関する情報を提供できる任意のタイプのセンサとを含んでいてもよい。複数のセンサは、これに限定されないが、カメラ（例えば、ＲＧＢ  ＣＣＤカメラ）、赤外線センサ、深さセンサ、近接センサ、タクタイルセンサ、ライダーセンサ、レーダセンサ、タイムオブフライトセンサ、慣性測定装置（例えば、１つ又は複数の加速度計及びジャイロスコープ）、及び同種のものを含んでいてもよい。本明細書に記載するように、センサ１０２から入手したデータを用いて３Ｄ骨格表現２０´を作成できる。
【００３０】
ロボット１００の記憶モジュール１１４は通信経路１１１に接続され、プロセッサ１１０と通信可能に接続されている。記憶モジュール１１４は、プロセッサ１１０による機械可読命令へのアクセスと実行とが可能なように機械可読命令を記憶できるＲＡＭ、ＲＯＭ、フラッシュ記憶装置、ハードドライブ、又は任意の非一時的記憶装置を備えていてもよい。機械可読命令は、例えば、プロセッサによって直接実行できる機械語、又は機械可読命令にコンパイル又はアセンブルして記憶モジュール１１４に記憶できるアセンブリ言語、オブジェクト指向プログラミング（ＯＯＰ）言語、スクリプト言語、マイクロコード、及び同種のもの等の任意の世代（例えば、１ＧＬ、２ＧＬ，３ＧＬ，４ＧＬ、又は５ＧＬ）の任意のプログラミング言語で記述された論理又はアルゴリズムを備えていてもよい。或いは、機械可読命令は、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）構成若しくは特定用途向け集積回路（ＡＳＩＣ）、又はそれらの同等物によって実行される論理等のハードウェア記述言語（ＨＤＬ）で書き込まれてもよい。したがって、本明細書に説明する機能性は、予めプログラミングされたハードウェア要素、又は、ハードウェアコンポーネントとソフトウェアコンポーネントとの組み合わせとして、任意の従来のコンピュータプログラミング言語で実行されてもよい。図９に示す実施形態は単一の記憶モジュール１１４を含むが、他の実施形態は複数の記憶モジュールを含んでいてもよい。また記憶モジュール１１４は、本明細書に記載するように、センサデータを記憶してもよい。
【００３１】
記憶モジュール１１４は、プロセッサによって実行されて本明細書に記載する様々な機能性を実行する能力がある機械可読命令を記憶する。また、記憶モジュール１１４は、本明細書に記載するように、ユーザ識別のために登録済み３Ｄ骨格表現２０´のデータベースを記憶することができる。３Ｄ骨格表現２０´を生成するための他のデータ及び本明細書に記載する他の機能性も記憶モジュール１１４内に記憶できる。更に、いくつかの実施形態では、３Ｄ骨格表現２０´を生成し記憶するためのデータをリモートで、例えばリモートサーバ（図示せず）に記憶することができる。
【００３２】
入力及び出力装置１１５は任意の数の入力装置及び出力装置を含んでいてもよい。例示的な入力装置は、これに限定されないが、キーボード、ボタン、スイッチ、ノブ、タッチパッド、タッチスクリーン、マイクロフォン、赤外線ジェスチャセンサ、マウス装置、及び同種のものを含む。
【００３３】
複数のアクチュエータ１１６は、例えば、ロボットが空間をナビゲートし、且つ／又は対象物を操作することを可能にする機械的アクチュエータを含んでいてもよい。いくつかの実施形態では、アクチュエータ１１６は、ロボットに空間内を移動させる電動ホイールアセンブリ及び／又は他のモビリティ装置（ウィング、プロペラ、ロータ、スキー、コンティニュアストラック等）を含んでいてもよい。また、アクチュエータはロボット１００のアーム１０４及びエンドエフェクタ１０５を動かすように制御可能なモータ又は同種のものを含んでいてもよい。
【００３４】
ロケーションセンサ１１７は通信経路１１１に接続され、プロセッサ１１０と通信可能に接続されている。ロケーションセンサ１１７は場所を示す出力を生成できる任意の装置であってもよい。いくつかの実施形態では、ロケーションセンサ１１７はグローバルポジショニングシステム（ＧＰＳ）センサを含むが、実施形態はそれに限定されない。いくつかの実施形態では、ロケーションセンサ１１７は、場所がネットワークインタフェースハードウェアとの間で送受信される信号から少なくとも部分的に決定できる（例えば、ＷｉＦｉ信号強度を用いて距離を決定する）ように、ネットワークインタフェースハードウェア１１２内に統合してもよい。ロボット１００がその場所を決定しない実施形態又は場所が他の方法で（例えば、他の装置から受信した情報に基づいて）決定される実施形態等のいくつかの実施形態はロケーションセンサ１１７を含んでいなくもよい。また、ロケーションセンサ１１７は、１つ又は複数の無線信号アンテナから受信した無線信号によってロボット１００及びユーザの場所を三角測量できる無線信号センサとして構成してもよい。
【００３５】
ロボット１００は図９に示していないコンポーネントを含んでいてもよいことを理解されたい。例えば、ロボット１００はバッテリ駆動であってもよい。バッテリはロボット１００が後程使用するための電気エネルギーを蓄積できる任意の装置であってもよい。いくつかの実施形態では、バッテリはリチウムイオンバッテリ又はニッケルカドミウムバッテリ等の充電式バッテリである。バッテリが充電式バッテリである実施形態では、ロボット１００はバッテリを充電するための充電ポートを含んでいてもよい。
【００３６】
本開示の実施形態はある環境内の人の３Ｄ骨格表現２０´を生成するように構成されていることを理解されたい。一実施形態では、ロボットは人物が３Ｄ空間内のどこに位置するかを理解し、経路の計画立案及びパターン作成の把握、人物識別、ユーザ認証、及びその他の機能性を支援するための人物の３Ｄ骨格表現２０´を生成する１つ又は複数のセンサを含む。本明細書に記載する３Ｄ骨格表現２０´は２Ｄ  ＲＧＢ画像から２Ｄ骨格表現２０を生成することによって作成される。２Ｄ骨格表現２０は深さセンサから入手した深さ情報を用いて３Ｄ空間内に投影される。ＲＧＢセンサ及び深さセンサは別々のセンサであってもよく、又は単一パッケージ内の１つのセンサであってもよい。
【００３７】
本開示の実施形態の結果として、本明細書に記載する工程を実行するためのシステムの機能性が向上する。これは本明細書に記載する実施形態によってそのようなシステムが空間内の人間の存在、その動き、ポーズ、及び同種のものをより正確に感知できることによる。更に、本明細書に記載するシステムは、そのようなシステムが人間の顔を見ることなく人間を認証できるため、機能性を向上させている。
【００３８】
本明細書において、特定の実施形態を示し説明してきたが、請求項に記載の主題の趣旨及び範囲から逸脱することなく、様々な他の変更及び修正ができることを理解されたい。更に、請求項に記載の主題の様々な態様を本明細書に説明してきたが、そのような態様は、組み合わせて利用される必要はない。したがって、添付の特許請求の範囲は、請求項に記載の主題の範囲内にある全てのそのような変更及び修正に及ぶものとする。
【００３９】
例１
人物の三次元骨格表現を生成する方法であって、
二次元画像から、該二次元画像内に存在する人物の二次元骨格表現であって、複数の関節と該複数の関節の個々の関節の間の複数のリンクとを備える二次元骨格表現を生成することと、
該複数のリンクの１つ又は複数のリンクの周囲にコーンを配置することと、
該複数のリンクの該１つ又は複数のリンクの周囲に配置された該コーンと交差する深さクラウドの複数のポイントであって、深さセンサによって生成され、各ポイントが深さ情報を提供する深さクラウドの複数のポイントを識別することと、
該複数のリンクの該１つ又は複数のリンクの周囲に配置された該コーンと交差する該深さクラウドの該複数のポイントの深さ情報を用いて該二次元骨格表現を三次元空間内に投影し、それによって該人物の該三次元骨格表現を生成することとを含む方法。
例２
該二次元骨格表現を三次元空間内に投影することが該複数のリンクの該１つ又は複数のリンクの周囲に配置された該コーンと交差する該深さクラウドの全ての該複数のポイントの深さ情報を平均することを含む例１に記載の方法。
例３
少なくとも部分的に該三次元骨格表現に基づいてユーザを認証することを更に含む例１に記載の方法。
例４
該ユーザを認証することが、
該三次元骨格表現から該ユーザのポーズ又は歩行を入手することと、
複数の登録ユーザの複数の記憶されたポーズ又は複数の記憶された歩行を備える記憶域にアクセスすることと、
該ユーザの該ポーズ又は該歩行を該複数の記憶されたポーズ又は該複数の記憶された歩行の１つと照合することとを含む例３に記載の方法。
例５
該三次元骨格表現から入手した歩行情報を記録することを更に含む例１に記載の方法。
例６
１つ又は複数のセンサから該二次元画像を備える画像データを入手することを更に含む例１に記載の方法。
例７
ロボットであって、
プロセッサと、機械可読命令を記憶する非一時的記憶装置とを備え、該機械可読命令が、該プロセッサによって実行されたときに、該プロセッサに、
二次元画像から該二次元画像内に存在する人物の二次元骨格表現であって、複数の関節と該複数の関節の個々の関節の間のリンクとを備える二次元骨格表現を生成させ、
該複数のリンクの１つ又は複数のリンクの周囲にコーンを配置させ、
該複数のリンクの該１つ又は複数のリンクの周囲に配置された該コーンと交差する深さクラウドの複数のポイントであって、深さセンサによって生成され、各ポイントが深さ情報を提供する深さクラウドの複数のポイントを識別させ、
該複数のリンクの該１つ又は複数のリンクの周囲に配置された該コーンと交差する該深さクラウドの該複数のポイントの深さ情報を用いて該二次元骨格表現を三次元空間内に投影させ、それによって該人物の三次元骨格表現を生成させるロボット。
例８
該二次元骨格表現を三次元空間内に投影することが該１つ又は複数のリンクの周囲に配置された該コーンと交差する該深さクラウドの全ての該複数のポイントの深さ情報を平均することを含む例７に記載のロボット。
例９
該機械可読命令が更に該プロセッサに少なくとも部分的に該三次元骨格表現に基づいてユーザを認証させる例７に記載のロボット。
例１０
該プロセッサにユーザを認証させる該機械可読命令が更に該プロセッサに
該三次元骨格表現から該ユーザのポーズ又は歩行を入手させ、
複数の登録ユーザの複数の記憶されたポーズ又は複数の記憶された歩行を備える記憶域にアクセスさせ、
該ユーザの該ポーズ又は該歩行を該複数の記憶されたポーズ又は該複数の記憶された歩行の１つと照合させる例９に記載のロボット。
例１１
該機械可読命令が更に該プロセッサに該三次元骨格表現から入手した歩行情報を記録させる例７に記載のロボット。
例１２
アームと、該アームの端部に配置されたエンドエフェクタとを更に備え、該機械可読命令が更に該プロセッサに
該人物の手に保持された対象物を決定させ、
該人物の該三次元骨格表現から三次空間内の該人物の該手の場所を決定させる例７に記載のロボット。
例１３
該機械可読命令が更に該アーム及びエンドエフェクタを該人物の該手の方へ移動させ該対象物を把持させる例１２に記載のロボット。
例１４
該プロセッサと通信可能に接続された複数のセンサを更に備え、該複数のセンサが該二次元画像を提供する例１２に記載のロボット。
例１５
システムであって、
プロセッサと、
非一時的プロセッサ可読記憶装置とを備え、該非一時的プロセッサ可読記憶装置が１つ又は複数の機械可読命令を備え、該１つ又は複数の機械可読命令が、該プロセッサによって実行されたときに、該プロセッサに、
二次元画像から、該二次元画像内に存在する人物の二次元骨格表現であって、複数の関節と該複数の関節の個々の関節の間の複数のリンクとを備える二次元骨格表現を生成させ、
該複数のリンクの１つ又は複数のリンクの周囲にコーンを配置させ、
該複数のリンクの該１つ又は複数のリンクの周囲に配置された該コーンと交差する深さクラウドの複数のポイントであって、深さセンサによって生成され、各ポイントが深さ情報を提供する深さクラウドの複数のポイントを識別させ、
該複数のリンクの該１つ又は複数のリンクの周囲に配置された該コーンと交差する該深さクラウドの該複数のポイントの深さ情報を用いて該二次元骨格表現を三次元空間内に投影させ、それによって該人物の三次元骨格表現を生成させるシステム。
例１６
該プロセッサに該二次元骨格表現を三次元空間内に投影させる該１つ又は複数の機械可読命令が、更に、該プロセッサに該複数のリンクの該１つ又は複数のリンクの周囲に配置された該コーンと交差する該深さクラウドの全ての該複数のポイントの深さ情報を平均させる例１５に記載のシステム。
例１７
該１つ又は複数の機械可読命令が更に該プロセッサに少なくとも部分的に該三次元骨格表現に基づいてユーザを認証させる例１５に記載のシステム。
例１８
該機械可読命令が更に該プロセッサに該三次元骨格表現から入手した歩行情報を記録させる例１５に記載のシステム。
例１９
該機械可読命令が更に該プロセッサに
該人物の手に保持された対象物を決定させ、
該人物の該三次元骨格表現から三次空間内の該人物の該手の場所を決定させる例１５に記載のシステム。
例２０
該プロセッサと通信可能に接続された複数のセンサを更に備え、該複数のセンサが該二次元画像を提供する例１５に記載のシステム。
【図１】
2019061679.tif 000003
【図２】
2019061679.tif 000004
【図３】
2019061679.tif 000005
【図４】
2019061679.tif 000006
【図５】
2019061679.tif 000007
【図６】
2019061679.tif 000008
【図７】
2019061679.tif 000009
【図８Ａ】
2019061679.tif 000010
【図８Ｂ】
2019061679.tif 000011
【図８Ｃ】
2019061679.tif 000012
【図９】
2019061679.tif 000013
【外国語明細書】
2019061679000001.pdf