(57)【特許請求の範囲】
【請求項１】
コンピュータに、
基準マーカとオブジェクト識別子との対応関係を示すマーカ情報に基づいて、カメラから連続的に出力される撮像画像から、基準マーカを識別する基準マーカ識別部と、
前記識別された基準マーカと、前記基準マーカに対応して定められた位置情報とによって、前記撮像画像における１つ又は複数の構造化マーカの起点を特定する起点特定部と、
前記起点から連続する前記１つ又は複数の構造化マーカの状態を判定する構造化マーカ判定部と、
前記識別された基準マーカに対応する前記オブジェクト識別子によって識別されるオブジェクトに対して、前記１つ又は複数の構造化マーカの前記判定された状態に応じた操作指示を出力する操作指示部と、
を実現させるためのプログラム。
【請求項２】
請求項１に記載のプログラムであって、
前記コンピュータに、
前記基準マーカに対応して定められる複数の点に基づいて、前記識別された基準マーカの姿勢を判定する姿勢判定部と、
前記判定された姿勢に基づいて、前記識別された基準マーカが所定の姿勢となるように前記撮像画像を正規化する正規化部と、
をさらに実現させ、
前記構造化マーカ判定部は、前記正規化された撮像画像において、前記１つ又は複数の構造化マーカの状態を判定する、
プログラム。
【請求項３】
請求項１又は２に記載のプログラムであって、
前記基準マーカ識別部は、複数の基準マーカを識別し、
前記起点特定部は、前記複数の基準マーカのそれぞれについて、前記１つ又は複数の構造化マーカの起点を特定し、
前記構造化マーカ判定部は、前記複数の基準マーカのそれぞれについて、前記１つ又は複数の構造化マーカの状態を判定し、
前記操作指示部は、前記複数の基準マーカのそれぞれについて、前記基準マーカに対応する前記オブジェクト識別子によって識別されるオブジェクトに対して、前記１つ又は複数の構造化マーカの前記判定された状態に応じた操作指示を出力する、
プログラム。
【請求項４】
請求項１又は２に記載のプログラムであって、
前記基準マーカ識別部は、複数の基準マーカを識別するとともに、当該複数の基準マーカから、所定の優先条件に基づいて、少なくとも１つの基準マーカを選択し、
前記起点特定部は、前記少なくとも１つの基準マーカのそれぞれについて、前記１つ又は複数の構造化マーカの起点を特定し、
前記構造化マーカ判定部は、前記少なくとも１つの基準マーカのそれぞれについて、前記１つ又は複数の構造化マーカの状態を判定し、
前記操作指示部は、前記少なくとも１つの基準マーカのそれぞれについて、前記基準マーカに対応する前記オブジェクト識別子によって識別されるオブジェクトに対して、前記１つ又は複数の構造化マーカの前記判定された状態に応じた操作指示を出力する、
プログラム。
【請求項５】
請求項４に記載のプログラムであって、
前記基準マーカ識別部は、前記複数の基準マーカのそれぞれの識別精度に応じた前記所定の優先条件に基づいて、前記少なくとも１つの基準マーカを選択する、
プログラム。
【請求項６】
請求項５に記載のプログラムであって、
前記基準マーカ識別部は、前記コンピュータ及び１つ又は複数の他のコンピュータにおける前記複数の基準マーカのそれぞれの識別精度に応じた前記所定の優先条件に基づいて、前記少なくとも１つの基準マーカを選択する、
プログラム。
【請求項７】
請求項４に記載のプログラムであって、
前記基準マーカ識別部は、前記オブジェクトの優先順位を示す前記所定の優先条件に基づいて、前記少なくとも１つの基準マーカを選択する、
プログラム。
【請求項８】
基準マーカとオブジェクト識別子との対応関係を示すマーカ情報に基づいて、カメラから連続的に出力される撮像画像から、基準マーカを識別する基準マーカ識別部と、
前記識別された基準マーカと、前記基準マーカに対応して定められた位置情報とによって、前記撮像画像における１つ又は複数の構造化マーカの起点を特定する起点特定部と、
前記起点から連続する前記１つ又は複数の構造化マーカの状態を判定する構造化マーカ判定部と、
前記識別された基準マーカに対応する前記オブジェクト識別子によって識別されるオブジェクトに対して、前記１つ又は複数の構造化マーカの前記判定された状態に応じた操作指示を出力する操作指示部と、
を備える画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム及び画像処理装置に関する。
【背景技術】
【０００２】
近年、カメラ等の撮像装置を用いて物体を撮像し、この撮像された物体の状態をユーザからの情報入力に用いるシステムが注目されている。このような技術の一例が特許文献１に開示されている。特許文献１に開示されているシステムでは、ユーザが着用しているグローブの画像に基づいて、ユーザの手の動きが検出される。具体的には、グローブには、手のひらと各指先にマーカが設けられており、これらのマーカの状態を認識することによってユーザの手の動きが検出される。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】国際公開第２０１５／１３９７５０号
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１に開示される手法を用いることにより、グローブ等に付されたマーカの状態を認識し、ユーザの手の動きを検出することができる。しかしながら、複数のユーザが存在する場合に、どのユーザの手であるかを判断することができない。即ち、カメラで撮像された画像に含まれるグローブが、どのユーザのものであるかを判断することができない。そのため、例えば、撮像される空間で、グローブを着用した複数のユーザが参加してゲームを行う場合において、識別されたマーカの状態に応じて、どのオブジェクトに対して操作指示を行えばよいかを判断することができない。
【０００５】
本発明はこのような事情に鑑みてなされたものであり、識別されたマーカがどのオブジェクトに対応するものであるかを判断し、当該オブジェクトに対してマーカの状態に応じた操作指示を出力可能とすることを目的とする。
【課題を解決するための手段】
【０００６】
本発明の一側面に係るプログラムは、コンピュータに、基準マーカとオブジェクト識別子との対応関係を示すマーカ情報に基づいて、カメラから連続的に出力される撮像画像から、基準マーカを識別する基準マーカ識別部と、識別された基準マーカと、基準マーカに対応して定められた位置情報とによって、撮像画像における１つ又は複数の構造化マーカの起点を特定する起点特定部と、起点から連続する１つ又は複数の構造化マーカの状態を判定する構造化マーカ判定部と、識別された基準マーカに対応するオブジェクト識別子によって識別されるオブジェクトに対して、１つ又は複数の構造化マーカの判定された状態に応じた操作指示を出力する操作指示部と、を実現させる。
【０００７】
なお、本発明において、「部」とは、単に物理的手段を意味するものではなく、その「部」が有する機能をソフトウェアによって実現する場合も含む。また、１つの「部」や装置が有する機能が２つ以上の物理的手段や装置により実現されても、２つ以上の「部」や装置の機能が１つの物理的手段や装置により実現されてもよい。
【発明の効果】
【０００８】
本発明によれば、識別されたマーカがどのオブジェクトに対応するものであるかを判断し、当該オブジェクトに対してマーカの状態に応じた操作指示を出力可能となる。
【図面の簡単な説明】
【０００９】
【図１】本発明の一実施形態である画像処理システム１００の構成を示す図である。
【図２】画像処理システム１００の利用イメージを説明するための図である。
【図３】手袋２００に付されたマーカの一例を示す図である。
【図４】マーカ情報の一例を示す図である。
【図５】基準マーカの識別を説明するための図である。
【図６】起点及び基準点の特定を説明するための図である。
【図７】起点及び基準点をミーンシフトにより補正する例を示す図である。
【図８】撮像画像の正規化の一例を説明するための図である。
【図９】構造化マーカの状態の判定を説明するための図である。
【図１０】構造化マーカの状態を迷路探索アルゴリズムを利用して判定する例を示す図である。
【図１１】構造化マーカの状態を説明するための図である。
【図１２】構造化マーカの状態のパターンの一例を示す図である。
【図１３】３つの画像処理装置１１０ａ〜１１０ｃを用いて４つの手袋２００ａ〜２００ｄに付されたマーカを処理している状態を示す図である。
【図１４】識別精度に基づいて基準マーカ５００を選択するための精度情報テーブルの一例を示す図である。
【図１５Ａ】画像処理システム１００における処理の一例を示すフローチャートである。
【図１５Ｂ】構造化マーカ９００の状態判定処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下、図面を参照して本発明の一実施形態について説明する。図１は、本発明の一実施形態である画像処理システム１００の構成を示す図である。画像処理システム１００は、画像処理装置１１０、カメラ１２０、及びディスプレイ１３０を備える。カメラ１２０及びディスプレイ１３０は、画像処理装置１１０に内蔵されていてもよい。また、画像処理装置１１０は、マーカ情報記憶部１４０、基準マーカ識別部１４１、起点特定部１４２、姿勢情報再演算部１４３、正規化部１４４、構造化マーカ判定部１４５、及び操作指示部１４６を備える。また、基準マーカ識別部１４１は、姿勢情報演算部１５０を含む。画像処理装置１１０は、例えば、スマートフォンやタブレット端末、パーソナルコンピュータ等の情報処理装置である。画像処理装置１１０は、プロセッサ及びメモリを備え、メモリに格納されたプログラムを実行することにより、図１に示す各部を含む様々な機能を実現することができる。
【００１１】
図２は、画像処理システム１００の利用イメージを説明するための図である。図２に示す例では、ユーザは手袋２００を着用している。この手袋２００には、後述するマーカが付されている。手袋２００に付されたマーカはカメラ１２０によって認識され、その認識結果に応じて、ＡＲ空間（視錐台）２１０におけるオブジェクト２２０に対する操作指示が行われる。例えば、ユーザの指の動きに連動するようにオブジェクト２２０が描画される。
【００１２】
図３は、手袋２００に付されたマーカの一例を示す図である。図３に示すように、手袋２００には、基準マーカ（Ｆｉｄｕｃｉａｌ  Ｍａｒｋｅｒ）３００及び構造化マーカ（Ｓｔｒｕｃｔｕｒｅｄ  Ｍａｒｋｅｒｓ）３１０（３１０ａ〜３１０ｅ）が設けられている。基準マーカ３００及び構造化マーカ３１０は、手袋２００の色に対してコントラストが比較的大きい色であることが好ましい。例えば、手袋２００の色が黒である場合、基準マーカ３００及び構造化マーカ３１０の色を白とすることができる。
【００１３】
基準マーカ３００は、オブジェクト２２０を識別するためのものであり、状態の変化が比較的小さい領域（もしくは状態の変化がないことが前提の領域）である手のひらの部分に設けられている。ここで、状態の変化の一例としてあげられるのは、変形である。構造化マーカ３１０（３１０ａ〜３１０ｅ）は、その状態によってオブジェクト２２０に対する操作指示を行うためのものであり、状態の変化が比較的大きい領域（もしくは状態の変化があることが前提の領域）である指の部分に設けられている。
【００１４】
なお、本実施形態では、マーカが付される物体の一例として手袋２００を示すが、マーカが付される物体は手袋２００に限られず、状態の変化が比較的小さい領域と状態の変化が比較的大きい領域とを有する任意の物体を採用することができる。例えば、シャツの胸の部分に基準マーカ３００を付し、シャツの袖の部分に構造化マーカ３１０を付してもよい。また例えば、可動腕を有する人型構造物の胴体部分に基準マーカを付し、腕部分に構造化マーカを付してもよい。また、図３において、基準マーカ３００は、いくつかの図形の群によって示されているが、これは一例であり、一つの図形のみによって示されていてもよく、構造化マーカ３１０も一例である。すなわち、マーカの形状には任意の形状を採用することができる。また、本実施形態では、構造化マーカ３１０が基準マーカ３００とは別個に設けられている例を説明するが、構造化マーカは、基準マーカを含んでもよい。具体的には、基準マーカ３００及び構造化マーカ３１０の組を、構造化マーカとすることもできる。
【００１５】
図１に戻り、画像処理装置１１０の各部の説明を行う。マーカ情報記憶部１４０には、基準マーカと、オブジェクト２２０を識別するためのオブジェクトＩＤとの対応関係を示すマーカ情報が予め記憶されている。図４は、マーカ情報の一例を示す図である。図４に示すように、マーカ情報は、基準マーカの特徴を示す基準マーカ情報４００、構造化マーカの特徴を示す構造化マーカ情報４１０、基準マーカの姿勢を再演算する際の基準点の特徴を示す基準点情報４２０、及びオブジェクト２２０を識別するためのオブジェクトＩＤ４３０を含む。
【００１６】
基準マーカ情報４００は、例えば、基準マーカの画像の特徴を示す情報（例えば特徴量ベクトル）を含む。構造化マーカ情報４１０は、例えば、基準マーカに対する構造化マーカの起点の位置関係を示す起点位置情報や、構造化マーカの画像の特徴を示す情報（例えば特徴量ベクトル）を含む。基準点情報４２０は、基準マーカに対する基準点の位置関係を示す基準点位置情報を含む。マーカ情報において、基準マーカ情報４００は、オブジェクトＩＤ４３０ごとに異なっている。なお、マーカ情報記憶部１４０は、画像処理装置１１０の外部に設けられてもよい。例えば、マーカ情報記憶部１４０は、クラウドのサーバに設けられていてもよい。
【００１７】
基準マーカ識別部１４１は、マーカ情報記憶部１４０に記憶されているマーカ情報に基づいて、カメラ１２０から連続的に出力される撮像画像から、基準マーカを識別する。図５は、基準マーカの識別を説明するための図である。図５に示すように、基準マーカ識別部１４１は、撮像画像内において基準マーカ５００を識別する。この基準マーカ５００とは、後述するように、基準マーカ情報４００と所定の類似度を有する画像領域を撮像画像内から識別したものと言える。この識別は、撮像画像内での基準マーカ５００の存在の有無の検出のみならず、姿勢情報演算部１５０による姿勢情報の演算をともなって行われる。姿勢情報とは、位置、角度、距離などを含めた概念である。撮像画像からの基準マーカ５００の存在の有無の検出および姿勢情報の演算は、既知の画像処理技術（Ｃｏｍｐｕｔｅｒ  Ｖｉｓｉｏｎ）を適宜用いることで実現可能であるので詳細な説明は割愛するが、例えば、マーカ情報記憶部１４０に記憶されている基準マーカ情報４００に対して所定の類似性を満たす特徴点の群を撮像画像から検出し、これらの特徴点を用いてＰｎＰ（Ｐｅｒｓｐｅｃｔｉｖｅ  Ｎ−Ｐｏｉｎｔ）問題を解く演算を行うことで実現される。また、基準マーカ識別部１４１は、基準マーカ５００を識別した際に、基準マーカ情報４００との類似度に基づいて、識別精度を示す精度情報を出力する。基準マーカ識別部１４１は、他の画像処理装置と精度情報を共有するために、クラウドのサーバや他の画像処理装置に精度情報を送信する。精度情報は、例えば、識別された基準マーカ５００に対応するオブジェクトＩＤと、識別精度（例えば、０〜１の範囲の値）とを含む。また、基準マーカ情報４００として複数種類の情報（例えば、Ｆ１、Ｆ２、・・・）がマーカ情報記憶部１４０に記憶されている場合、基準マーカ識別部１４１は、撮像画像内において、複数の基準マーカ５００を識別する。複数の基準マーカ５００が識別された場合、基準マーカ識別部１４１は、各基準マーカ３００に関する精度情報を出力する。
【００１８】
起点特定部１４２は、識別された基準マーカ５００と、マーカ情報記憶部１４０に記憶されている構造化マーカ情報４１０とに基づいて、撮像画像における１つ又は複数の構造化マーカの起点を特定する。また、起点特定部１４２は、識別された基準マーカ５００と、この基準マーカ５００を識別するための基準マーカ情報４００と対応付けられてマーカ情報記憶部１４０に記憶されている基準点情報４２０とによって、撮像画像における１つ又は複数の基準点を特定する。図６は、起点及び基準点の特定を説明するための図である。基準マーカに対する構造化マーカの起点の位置関係は、マーカ情報記憶部１４０に記憶されている構造化マーカ情報４１０に含まれる起点位置情報によって示される。また、基準マーカに対する基準点の位置関係は、マーカ情報記憶部１４０に記憶されている基準点情報によって示される。基準マーカ５００に対する起点６００及び基準点６１０の位置関係は、基準マーカ５００の姿勢によって変化する。そこで、起点特定部１４２は、起点位置情報及び基準点情報を、姿勢情報演算部１５０により演算された姿勢情報で変換することにより、基準マーカ５００に対応する起点６００及び基準点６１０を特定する。なお、図６では基準点が１つしか示されていないが、基準点は複数存在する。図６の例では、起点６００ａ，６００ｂ，６００ｅは基準点を兼ねている。
【００１９】
ところで、手のひらは、実際は変形するものであるため、基準マーカ５００と、起点６００及び基準点６１０との位置関係は、カメラ１２０によって撮像される瞬間の手袋の状態によって変化する。そのため、特定された起点６００及び基準点６１０の位置は、予め設計された理想の位置とは異なっている可能性がある。そこで、起点特定部１４２は、例えば、ミーンシフト（Ｍｅａｎ  Ｓｈｉｆｔ）により起点６００及び基準点６１０を補正する。
【００２０】
図７は、起点６００及び基準点６１０をミーンシフトにより補正する例を示す図である。図７において、点７００（７００ａ〜７００ｃ）は、起点又は基準点に対応する。また、図７において、領域７１０は、起点又は基準点を含む領域である。起点特定部１４２は、特定された点７００ａを中心とする所定の大きさの円７２０ａを規定する。起点特定部１４２は、この円７２０ａ内において、構造化マーカの色（例えば、白色）を基準とした重心の点７００ｂを求める。続いて、起点特定部１４２は、この重心の点７００ｂを中心とする円７２０ｂを規定する。さらに、起点特定部１４２は、この円７２０ｂ内における重心の点７００ｃを求め、重心の点７００ｃを中心とする円７２０ｃを規定する。図７に示す例では、領域７１０は、構造化マーカの他の箇所よりも幅が広くなっているため、ミーンシフトの処理を繰り返していくことにより、重心７００が領域７１０の中心付近に収束し、点７００が補正される。即ち、最初に特定された点７００ａが領域７１０内の点７００ｃに補正される。この補正は、数値演算によって求められた起点６００及び基準点に関する情報を、実際の手の状態を画像化した撮像画像の特徴を利用して、より正確な情報へ変換するものと言える。
【００２１】
姿勢情報再演算部１４３は、補正された基準点６１０（起点６００の一部を含む）に基づいて、基準マーカ５００の姿勢情報を再度求める。具体的には、姿勢情報再演算１４３は、姿勢情報演算部１５０により演算された姿勢情報を、補正された基準点６１０を用いて再演算する。姿勢情報の再演算は、例えば、マーカ情報記憶部１４０に記憶されている基準点位置情報と、補正された基準点６１０とに基づいて、ＰｎＰ問題を解く演算を行うことにより実現される。この再演算により、より正しい姿勢情報が求められる。
【００２２】
正規化部１４４は、姿勢情報再演算部１４３によって再演算された姿勢情報に基づいて、識別された基準マーカ５００が所定の姿勢となるように撮像画像を正規化する。なお、撮像画像の正規化においては、撮像画像内の構造化マーカの状態判定を容易にするために、撮像画像の座標情報の変換が行われる。
【００２３】
図８は、撮像画像の正規化の一例を説明するための図である。撮像画像８００ａには、手袋の画像が含まれている。前述したように、姿勢情報再演算部１４３により、撮像画像８００ａにおいては、補正された基準点６００ａ，６００ｂ，６００ｅ，６１０に基づいて、姿勢情報が再演算されている。この再演算された姿勢情報に基づいて、正規化部１４４は、基準マーカ５００が所定の姿勢によって示される情報となるように、撮像画像８００ａの座標値を変換し、撮像画像８００ｂを生成する。図８に示す例では、所定の姿勢は、手のひらが正面を向き、手首が下側となる姿勢である。このような正規化は、例えば、ホモグラフィ変換により行うことができる。そして、このように正規化を行うことにより、撮像画像内の構造化マーカの状態判定が容易となる。例えば、正規化後の撮像画像８００ｂにおいては、起点６００からどの方向に構造化マーカが形成されているかは手袋のデザインから自明である。そのため、構造化マーカ判定部１４５が構造化マーカの状態を判定する際に用いるアルゴリズムを設計する際、これが容易になる。
【００２４】
構造化マーカ判定部１４５は、正規化後の撮像画像において、起点６００から連続する構造化マーカの状態を判定する。図９は、構造化マーカの状態の判定を説明するための図である。図９に示すように、構造化マーカ判定部１４５は、起点６００（６００ａ〜６００ｅ）から連続する領域を探索することにより、構造化マーカ９００（９００ａ〜９００ｅ）の状態を判定することができる。具体的には、構造化マーカ判定部１４５は、マーカ情報記憶部１４０に記憶されている構造化マーカ情報４１０に基づいて、正規化後の撮像画像内の起点６００を出発地点として、撮像画像内を探索することにより、構造化マーカ９００の状態を判定する。構造化マーカ情報４１０は、構造化マーカ９００の状態判定に用いるアルゴリズムを特定する情報を含む。
【００２５】
図１０は、構造化マーカの状態を迷路探索アルゴリズム（Ｗａｌｌ  Ｆｏｌｌｏｗｅｒ）を利用して判定する例を示す図である。構造化マーカ判定部１４５は、正規化後の撮像画像において、起点６００を出発地点として、ある方向（例えば、図１０に示す矢印Ａ１の方向）に探索を進める。そして、コントラストが大きく変化する点（例えば、図１０に示すＸ点）に達すると、構造化マーカ判定部１４５は、基準マーカ５００とは反対の方向（例えば、図１０に示すＡ２の方向）に探索方向を変更する。このように、構造化マーカ判定部１４５は、構造化マーカ９００の端部を迷路の壁と見なして、この壁にそって探索を進めることにより、構造化マーカ９００の方向及び長さを演算する。もちろん、迷路探索アルゴリズムは一例であり、起点６００を出発地点としてコントラストが大きく変化している境界を、撮像画像から検知することを利用した様々な手法を採用可能である。具体的には、構造化マーカ判定部１４５は、マーカ情報記憶部１４０に記憶されている構造化マーカ情報４１０に基づいて、構造化マーカ９００の状態判定に用いるアルゴリズムを選択することができる。
【００２６】
構造化マーカ判定部１４５は、各構造化マーカ９００の方向及び長さを演算することにより、複数の構造化マーカ９００により規定される、構造化マーカ９００の状態を判定することができる。図１１は、構造化マーカの状態を説明するための図である。図１１に示すように、構造化マーカ９００の状態には、各構造化マーカ９００の方向及び長さ１１００（１１００ａ〜１１００ｅ）、隣接する構造化マーカ９００間の角度１１１０（１１１０ａ〜１１１０ｄ）、隣接する構造化マーカ９００の先端間の距離１１２０（１１２０ａ〜１１２０ｄ）が含まれる。
【００２７】
また、構造化マーカ判定部１４５は、複数の構造化マーカ９００の状態をパターンとして認識することもできる。図１２は、構造化マーカ９００の状態のパターンの一例を示す図である。図１２には、４つのパターンが示されている。いずれのパターンも、薬指と小指は折られており、構造化マーカ９００ｄ，９００ｅは認識されていない。パターン０１は、親指（構造化マーカ９００ａ）と人差し指（構造化マーカ９００ｂ）が離れ、人差し指（構造化マーカ９００ｂ）と中指（構造化マーカ９００ｃ）が接触している状態である。パターン０２は、親指（構造化マーカ９００ａ）と人差し指（構造化マーカ９００ｂ）が離れ、人差し指（構造化マーカ９００ｂ）と中指（構造化マーカ９００ｃ）も離れている状態である。パターン０３は、親指（構造化マーカ９００ａ）と人差し指（構造化マーカ９００ｂ）が接触し、人差し指（構造化マーカ９００ｂ）と中指（構造化マーカ９００ｃ）が離れている状態である。パターン０４は、親指（構造化マーカ９００ａ）と人差し指（構造化マーカ９００ｂ）が接触し、人差し指（構造化マーカ９００ｂ）と中指（構造化マーカ９００ｃ）も接触している状態である。このように、構造化マーカ判定部１４５は、複数の構造化マーカ９００の状態をパターンとして認識することもできる。
【００２８】
画像処理システム１００では、複数の画像処理装置１１０を用いて、複数の手袋２００に付されたマーカを同時に処理することができる。この点について説明する。図１３は、３つの画像処理装置１１０ａ〜１１０ｃを用いて４つの手袋２００ａ〜２００ｄに付されたマーカを処理している状態を示す図である。このような状態において、各画像処理装置１１０が、全ての手袋２００ａ〜２００ｄについて構造化マーカの状態判定を行うことは効率が悪い。そこで、画像処理システム１００では、各画像処理装置１１０の基準マーカ識別部１４１が、撮像画像内の基準マーカ５００（手袋２００ａ〜２００ｄに付された基準マーカ３００ａ〜３００ｄに対応）から、所定の優先条件に基づいて、構造化マーカ９００の状態判定を行う対象とする基準マーカ５００を選択することができる。所定の優先条件としては、例えば、基準マーカ５００の識別精度や、予め登録されたオブジェクトＩＤを用いることができる。
【００２９】
図１４は、識別精度に基づいて基準マーカ５００を選択するための精度情報テーブルの一例を示す図である。精度情報テーブルは、画像処理装置１１０（Ｄ１，Ｄ２，・・・，Ｄｍ）とオブジェクトＩＤ（Ａ１，Ａ２，・・・，Ａｎ）のマトリクスであり、各セルには、識別精度を示す０〜１の値が設定されている。ここでは、値が１に近いほど識別精度が高いものとする。なお、オブジェクトＩＤは、基準マーカ５００に対応するものである。精度情報テーブルは、例えば、各画像処理装置１１０において保持される。このような精度情報テーブルは、例えば、各画像処理装置１１０の基準マーカ識別部１４１が、基準マーカ５００の識別精度を他の画像処理装置に送信することにより生成することができる。
【００３０】
例えば、各画像処理装置１１０の基準マーカ識別部１４１は、オブジェクトＡ１〜Ａｎの中から、識別精度が所定の基準値以上のものを選択することができる。なお、画像処理装置１１０において選択可能なオブジェクトの数には上限値を設定してもよい。この上限値は、画像処理装置１１０の処理能力等に応じて可変であってもよい。また例えば、複数のオブジェクトＡ１〜Ａｎのそれぞれについて、オブジェクトの識別精度が最も高い画像処理装置１１０が当該オブジェクトを選択するように構成してもよい。
【００３１】
操作指示部１４６は、基準マーカ識別部１４１により識別された基準マーカ５００に対応するオブジェクトＩＤによって識別されるオブジェクトに対して、構造化マーカ判定部１４５により判定された構造化マーカ９００の状態に応じた操作指示を出力する。なお、オブジェクトは、オブジェクトＩＤによって識別可能であり、操作指示を受け付けることが可能な任意のものを対象とすることができる。例えば、オブジェクトは、オブジェクトＩＤによって識別されるユーザの手のオブジェクトであってもよい。この場合、操作指示部１４６は、例えば、構造化マーカ９００の状態に応じて、ディスプレイ１３０に表示される手のオブジェクトにおける指の動きを制御することができる。また例えば、オブジェクトは、オブジェクトＩＤによって識別されるゲームのキャラクタであってもよい。この場合、操作指示部１４６は、例えば、構造化マーカ９００の状態に応じて、ディスプレイ１３０に表示されるキャラクタの動作を制御することができる。
【００３２】
図１５Ａ及び図１５Ｂは、画像処理システム１００における処理の一例を示すフローチャートである。なお、画像処理システム１００に複数の画像処理装置１１０が存在する場合、図１５Ａ及び図１５Ｂに示す処理は、各画像処理装置１１０において実行される。
【００３３】
図１５Ａに示すように、まず、基準マーカ識別部１４１は、マーカ情報記憶部１４０に記憶されたマーカ情報を読み出す（Ｓ１５０１）。このマーカ情報は、図４に示すように、基準マーカ情報４００、構造化マーカ情報４１０、基準点情報４２０、及びオブジェクトＩＤ４３０を含む。そして、基準マーカ識別部１４１は、カメラ１２０から連続的に出力される撮像画像を取得する（Ｓ１５０２）。そして、基準マーカ識別部１４１は、基準マーカ情報記憶部１４０に記憶されている基準マーカ情報４００に基づいて、撮像画像から、基準マーカ５００を識別する（Ｓ１５０３）。このとき、基準マーカ識別部１４１の姿勢情報演算部１５０は、識別された基準マーカ５００と、マーカ情報記憶部１４０に記憶されている基準マーカ情報４００とに基づいて、ＰｎＰ問題を解くことにより、基準マーカ５００の姿勢情報の演算も行う（Ｓ１５０４）。
【００３４】
起点特定部１４２は、識別された基準マーカ５００と、マーカ情報記憶部１４０に記憶されている構造化マーカ情報４１０とに基づいて、撮像画像における１つ又は複数の構造化マーカの起点６００を特定する（Ｓ１５０５）。また、起点特定部１４２は、識別された基準マーカ５００と、マーカ情報記憶部１４０に記憶されている基準点情報４２０とに基づいて、撮像画像における複数の基準点６１０を特定する（Ｓ１５０６）。その後、起点特定部１４２は、ミーンシフトにより起点６００及び基準点６１０を補正する（Ｓ１５０７）。
【００３５】
続いて、姿勢情報再演算部１４３は、補正された基準点６１０（起点６００の一部を含む）と、マーカ情報記憶部１４０に記憶されている基準点位置情報とに基づいて、ＰｎＰ問題を解くことにより、基準マーカ５００の姿勢情報を再演算する（Ｓ１５０８）。そして、正規化部１４４は、再演算された姿勢情報に基づいて、識別された基準マーカ５００が所定の姿勢となるように、例えばホモグラフィ変換によって、撮像画像を正規化する（Ｓ１５０９）。
【００３６】
構造化マーカ判定部１４５は、正規化後の撮像画像において、構造化マーカの状態判定処理を実行する（Ｓ１５１０）。図１５Ｂに示すように、構造化マーカ判定部１４５は、マーカ情報記憶部１４０に記憶されている構造化マーカ情報４１０に基づいて、構造化マーカ９００の状態判定に用いるアルゴリズムを選択する（Ｓ１５２０）。そして、構造化マーカ判定部１４５は、選択されたアルゴリズムを用いて、正規化後の撮像画像内の起点６００を出発地点として撮像画像内を探索することにより、構造化マーカ９００の状態を判定する（Ｓ１５２１）。構造化マーカ判定部１４５は、全ての構造化マーカ９００の状態判定が完了したかどうか判断し（Ｓ１５２２）、完了していない場合は（Ｓ１５２２：Ｎ）、アルゴリズム選択（Ｓ１５２０）及び状態判定（Ｓ１５２１）を繰り返し実行する。全ての構造化マーカ９００の状態判定が完了すると（Ｓ１５２２：Ｙ）、操作指示部１４６は、全ての構造化マーカ９００に基づいて、オブジェクトに対する操作指示内容を演算する（Ｓ１５２３）。その後、図１５Ａに示す処理に戻り、操作指示部１４６は、演算された操作指示内容に基づいて、オブジェクトに対して操作指示を行う（Ｓ１５３０）。
【００３７】
上述の処理が、処理終了が指示されるまでの間（Ｓ１５３１：Ｎ）、カメラ１２０から出力され続ける撮像画像に対してリアルタイムに実行される。そして、例えば、ユーザ操作によって処理終了が指示されると（Ｓ１５０９：Ｙ）、処理が終了する。
【００３８】
以上、本発明の一実施形態について説明した。上述したように、本実施形態によれば、基準マーカとオブジェクトＩＤとの対応関係を示すマーカ情報に基づいて、カメラ１２０から連続的に出力される撮像画像から、基準マーカ５００が識別される。そして、識別された基準マーカ５００と、基準マーカに対応して定められた起点位置情報とによって、撮像画像における１つ又は複数の構造化マーカの起点６００が特定される。その後、起点６００から連続する１つ又は複数の構造化マーカ９００の状態が判定される。そして、識別された基準マーカ５００に対応するオブジェクトＩＤによって識別されるオブジェクトに対して、１つ又は複数の構造化マーカ９００の判定された状態に応じた操作指示が出力される。このように、本実施形態によれば、識別された基準マーカ５００がどのオブジェクトに対応するものであるかを判断し、当該オブジェクトに対して構造化マーカ９００の状態に応じた操作指示を出力することができる。
【００３９】
また、本実施形態によれば、姿勢情報演算部１５０及び姿勢情報再演算部１４３が、基準マーカ５００に対応する複数の基準点に基づいて、識別された基準マーカ５００の姿勢を演算（判定）する。その後、演算された姿勢に基づいて、識別された基準マーカ５００が所定の姿勢となるように撮像画像が正規化される。そして、正規化された撮像画像において、１つ又は複数の構造化マーカ９００の状態が判定される。このように、基準マーカ５００が所定の姿勢となるように撮像画像を正規化した後に、構造化マーカ９００の状態を判定することにより、構造化マーカ９００の状態を判定する際の計算量を削減することができる。なお、本実施形態では、姿勢情報演算部１５０及び姿勢情報再演算部１４３によって、基準マーカ５００の姿勢を判定する姿勢判定部を実現する例を示したが、姿勢情報再演算部１４３は必須ではない。すなわち、姿勢情報演算部１５０により演算された姿勢情報の再演算を行わずに撮像画像の正規化を行ってもよい。
【００４０】
また、本実施形態によれば、識別された複数の基準マーカ５００から、所定の優先条件に基づいて、構造化マーカ９００の状態判定の対象とする少なくとも１つの基準マーカ５００を選択することができる。これにより、例えば、複数の画像処理装置１１０において処理負荷を分散させることが可能となる。
【００４１】
なお、本実施形態は、本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明は、その趣旨を逸脱することなく、変更／改良され得るととともに、本発明にはその等価物も含まれる。
【符号の説明】
【００４２】
１００  画像処理システム
１１０  画像処理装置
１２０  カメラ
１３０  ディスプレイ
１４０  マーカ情報記憶部
１４１  基準マーカ識別部
１４２  起点特定部
１４３  姿勢情報再演算部
１４４  正規化部
１４５  構造化マーカ判定部
１４６  操作指示部
１５０  姿勢情報演算部
２００  手袋
２１０  ＡＲ空間
２２０  オブジェクト
３００，５００  基準マーカ
３１０，９００  構造化マーカ
６００  起点
６１０  基準点
【要約】
【課題】オブジェクトに対する多種類の命令を素早く小さい面積で精度よく入力する。
【解決手段】プログラムは、コンピュータに、基準マーカとオブジェクト識別子との対応関係を示すマーカ情報に基づいて、カメラから連続的に出力される撮像画像から、基準マーカを識別する基準マーカ識別部と、識別された基準マーカと、基準マーカに対応して定められた位置情報とによって、撮像画像における１つ又は複数の構造化マーカの起点を特定する起点特定部と、起点から連続する１つ又は複数の構造化マーカの状態を判定する構造化マーカ判定部と、識別された基準マーカに対応するオブジェクト識別子によって識別されるオブジェクトに対して、１つ又は複数の構造化マーカの判定された状態に応じた操作指示を出力する操作指示部と、を実現させる。
【選択図】図１５Ａ【図１】
0005988286.tif 000002
【図２】
0005988286.tif 000003
【図３】
0005988286.tif 000004
【図４】
0005988286.tif 000005
【図５】
0005988286.tif 000006
【図６】
0005988286.tif 000007
【図７】
0005988286.tif 000008
【図８】
0005988286.tif 000009
【図９】
0005988286.tif 000010
【図１０】
0005988286.tif 000011
【図１１】
0005988286.tif 000012
【図１２】
0005988286.tif 000013
【図１３】
0005988286.tif 000014
【図１４】
0005988286.tif 000015
【図１５Ａ】
0005988286.tif 000016
【図１５Ｂ】
0005988286.tif 000017