(57)【要約】【課題】  従来よりも検索時間を速くすることができて、検索精度を高めることも可能で、しかも入力画像ごとの推定に要する時間を概ね均等にできるデータベースの高速検索方法を提供する。【解決手段】データベースＤＢを、真値をクラス分けの際の基準として自己組織化を行って複数のデータを複数のクラスに分け、且つ複数のクラスに含まれる複数のデータのそれぞれの推定量を代表する代表推定量を複数のクラスに対してそれぞれ有している構成とする。第１の検索ステップで、未知のデータの推定量と複数の代表推定量との対比により該当するクラスを決定する。次に第２の検索ステップにより、第１の検索ステップで決定されたクラスに含まれる複数のデータのそれぞれの推定値と未知のデータの推定値との対比により該当するデータを決定する。【選択図】  図２２
2006294018.tif 000002
【特許請求の範囲】
【請求項１】
真値と推定量とが組になった複数のデータが自己組織化により複数のクラスにより分けられて保存されているデータベースから、ある推定量を持った複数の未知の入力データに対応する最類似データを高速で検索するデータベースの高速検索方法であって、
前記データベースの構造を、前記真値をクラス分けの際の基準として前記自己組織化を行って前記複数のデータを前記複数のクラスに分け、且つ前記複数のクラスに含まれる複数のデータのそれぞれの推定量を代表する代表推定量を前記複数のクラスに対してそれぞれ有している構造とし、
前記未知の入力データの前記推定量と複数の前記代表推定量との対比により該当する前記クラスを決定する第１の検索ステップと、
前記第１の検索ステップで決定された前記クラスに含まれる複数のデータのそれぞれの前記推定値と前記未知の入力データの前記推定値との対比により該当する前記最類似データを決定する第２の検索ステップとからなることを特徴とするデータベースの高速検索方法。
【請求項２】
真値と推定量とが組になった複数のデータが自己組織化により複数のクラスにより分けられて保存されているデータベースから、ある推定量を持った複数の未知の入力データに対応する最類似データを高速で検索するデータベースの高速検索方法であって、
前記データベースの構造を、前記真値をクラス分けの際の基準として前記自己組織化を行って前記複数のデータを第１段階の複数のクラスに分け、前記第１段階の複数のクラスにそれぞれ分けられた複数のデータを、前記真値をクラス分けの際の基準として前記自己組織化を行って、さらに第２段階の複数のクラスに分け、さらに必要に応じて前の段階の複数のクラスに分けられた複数のデータを、前記真値をクラス分けの際の基準として前記自己組織化を行って、さらに次の段階の複数のクラスに分ける多重自己組織化を行い、各段階における前記複数のクラスに含まれる複数のデータのそれぞれの推定量を代表する代表推定量を各段階における前記複数のクラスに対してそれぞれ設けた構造とし、
前記未知の入力データの前記推定量と複数の前記代表推定量との対比により該当する前記クラスを決定する第１の検索ステップと、
前記第１の検索ステップで決定された前記クラスに含まれる複数のデータのそれぞれの前記推定値と前記未知の入力データの前記推定値との対比により該当する前記最類似データを決定する第２の検索ステップとからなることを特徴とするデータベースの高速検索方法。
【請求項３】
真値と推定量とが組になった複数のデータが自己組織化により複数のクラスにより分けられて保存されているデータベースから、ある推定量を持った複数の未知の入力データに対応する最類似データを高速で検索するデータベースの高速検索方法であって、
前記データベースの構造を、前記真値をクラス分けの際の基準として前記自己組織化を行って前記複数のデータを第１段階の複数のクラスに分け、前記第１段階の複数のクラスにそれぞれ分けられた複数のデータを、前記真値または推定量をクラス分けの際の基準として前記自己組織化を行って、さらに第２段階の複数のクラスに分け、さらに必要に応じて前の段階の複数のクラスに分けられた複数のデータを、前記真値または推定量をクラス分けの際の基準として前記自己組織化を行って、さらに次の段階の複数のクラスに分ける多重自己組織化を行い、各段階における前記複数のクラスに含まれる複数のデータのそれぞれの推定量を代表する代表推定量を各段階における前記複数のクラスに対してそれぞれ設けた構造とし、
前記未知の入力データの前記推定量と複数の前記代表推定量との対比により該当する前記クラスを決定する第１の検索ステップと、
前記第１の検索ステップで決定された前記クラスに含まれる複数のデータのそれぞれの前記推定値と前記未知の入力データの前記推定値との対比により該当する前記最類似データを決定する第２の検索ステップとからなることを特徴とするデータベースの高速検索方法。
【請求項４】
複数のデータは時系列で取得されたデータであり、また前記複数の未知の入力データも時系列で取得されたデータであり、
前記第１の検索ステップでは、前回の検索で決定された一つのクラスと該一つのクラスの前記代表推定量と近似する代表推定量を有する１以上の他のクラスだけを、次回の第１の検索ステップにおける検索対象のクラスとすることを特徴とする請求項１または２に記載のデータベースの高速検索方法。
【請求項５】
前記自己組織化において、データが特徴空間内に均等に存在し、また各クラスが概ね同数のデータを持つように、クラスの自己増殖及び自己消滅が導入されている請求項１または２に記載のデータベースの高速検索方法。
【請求項６】
動作指令に応じて動作するロボットの駆動方法であって、
ロボットに対応する動作物と、前記動作物に設けられて前記動作物の動きを検出する複数のセンサと、前記複数のセンサの出力に基づいて前記動作指令を発生する動作指令発生装置とを用い、前記動作物に所定の動作を行わせたときの前記複数のセンサの出力に基づいて前記動作指令発生装置が発生する前記動作指令を事前収集動作指令として記憶する第１のステップと、
前記動作物またはその擬似物に前記所定の動作と同じ動作をさせたときの前記動作物またはその擬似物の複数の画像データを時系列で取得する第２のステップと、
前記複数の画像データに含まれる画像データと前記事前収集動作指令とを対応付けて対応データとして画像対応動作指令記憶手段に記憶する第３のステップと、
前記ロボットを動作させるために、前記動作物またはその擬似物に所望の動作を行わせ、その際に前記動作物またはその擬似物の動作画像データを時系列でロボット動作用画像データとして取得する第４のステップと、
前記ロボット動作用画像データに含まれる前記動作画像データに対応する画像データを前記画像対応動作指令記憶手段に記憶している前記複数の画像データから時系列で特定し、特定した前記画像データに対応する前記事前収集動作指令を前記動作指令として前記ロボットに与える第５のステップとからなるロボットの駆動方法であって、
前記第１のステップで収集する事前収集動作指令は、前記複数のセンサの出力に対応した複数の真値から構成され、
前記第３のステップは、前記複数の画像データのそれぞれについて特徴量を演算する演算ステップと、複数の前記対応データを複数のクラスに分ける基準として前記複数の真値を用いて自己組織化を行い前記複数の対応データを前記複数のクラスに分ける自己組織化ステップと、１つの前記クラスに含まれる複数の前記対応データのそれぞれの前記特徴量を代表する代表特徴量を決定する代表特徴量決定ステップと、前記複数の真値及び前記特徴量を含む前記対応データを前記複数のクラスに分け且つ該複数のクラスに対応する複数の前記代表特徴量と一緒に前記画像対応動作指令記憶手段に記憶する記憶ステップを含んで構成されており、
前記第５のステップは、前記動作画像データから求めた特徴量を前記複数の前記代表特徴量と対比して対応する前記クラスを検索する第１の検索ステップと、前記動作画像データから求めた前記特徴量を前記第１の検索ステップで検索した前記クラスに含まれる前記複数の対応データ中の前記複数の特徴量と対比して前記画像データを特定する第２の検索ステップとを含んで構成されていることを特徴とするロボットの駆動方法。
【請求項７】
動作指令に応じて動作するロボットの駆動方法であって、
ロボットに対応する動作物と、前記動作物に設けられて前記動作物の動きを検出する複数のセンサを用い、前記動作物に所定の動作を行わせたときの前記複数のセンサの出力を事前収集動作指令として記憶する第１のステップと、
前記動作物またはその擬似物に前記所定の動作と同じ動作をさせたときの前記動作物またはその擬似物の複数の画像データを時系列で取得する第２のステップと、
前記複数の画像データに含まれる画像データと前記事前収集動作指令とを対応付けて対応データとして画像対応動作指令記憶手段に記憶する第３のステップと、
前記ロボットを動作させるために、前記動作物またはその擬似物に所望の動作を行わせ、その際に前記動作物またはその擬似物の動作画像データを時系列でロボット動作用画像データとして取得する第４のステップと、
前記ロボット動作用画像データに含まれる前記動作画像データに対応する画像データを前記画像対応動作指令記憶手段に記憶している前記複数の画像データから時系列で特定し、特定した前記画像データに対応する前記事前収集動作指令を前記動作指令として前記ロボットに与える第５のステップとからなるロボットの駆動方法であって、
前記第１のステップで収集する前記事前収集動作指令は、前記複数のセンサの出力に対応した複数の真値から構成され、
前記第３のステップは、前記複数の画像データのそれぞれについて特徴量を演算する演算ステップと、複数の前記対応データを複数のクラスに分ける基準として、少なくとも最初の段階では前記複数の真値を用いて自己組織化を行って前記複数の対応データをｎ段階（ｎは２以上の整数）の前記複数のクラスに分ける多重自己組織化ステップと、１つの前記クラスに含まれる複数の前記対応データのそれぞれの前記特徴量を代表する代表特徴量を決定する代表特徴量決定ステップと、前記複数の真値及び前記特徴量を含む前記対応データを前記複数のクラスに分け且つ該複数のクラスに対応する複数の前記代表特徴量と一緒に前記画像対応動作指令記憶手段に記憶する記憶ステップを含んで構成されており、
前記第５のステップは、前記動作画像データから求めた特徴量を前記複数の前記代表特徴量と対比して対応する前記クラスを検索する第１の検索ステップと、前記動作画像データから求めた前記特徴量を前記第１の検索ステップで検索した前記クラスに含まれる前記複数の対応データ中の前記複数の特徴量と対比して前記画像データを特定する第２の検索ステップとを含んで構成されていることを特徴とするロボットの駆動方法。
【請求項８】
前記第５のステップの前記第１の検索ステップでは、前回の検索で決定された一つのクラスと該一つのクラスの前記代表特徴量と近似する代表特徴量を有する１以上の他のクラスだけを、次回の第１の検索ステップにおける検索対象のクラスとすることを特徴とする請求項６または７に記載のロボットの駆動方法。
【請求項９】
前記第１の検索ステップ及び第２の検索ステップでは、データの対比にユークリッド距離を用いている請求項６または７に記載のロボットの駆動方法。
【発明の詳細な説明】
【技術分野】
【０００１】
データベースの高速検索方法及びこの高速検索方法を用いたロボットの駆動方法に関するものである。
【背景技術】
【０００２】
特開２００４−４６６１２号公報等には、自己組織化技術を用いてデータベースを構築し、データの検索を高速化する技術が記載されている。従来は、自己組織化をする場合に、特にデータベースに蓄積されるデータの種類を考慮していない。そのため自己組織化の基準とするデータの精度が、検索精度に大きな影響を与えている。
【０００３】
また特開２００５−１４１６６号公報に示されるロボットハンドの駆動方法や、ＰＣＴ／ＪＰ２００４／１６９６８に示されたロボットの駆動方法のように、データベースに蓄積されたデータを用いてロボットを駆動する場合には、データベースから所望のデータを高速で検索することや、検索に要する時間の均等化が望まれている。
【特許文献１】特開２００４−４６６１２号公報
【特許文献２】特開２００５−１４１６６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来公知の自己組織化により構築されたデータベースを利用する場合には、検索時間を速くしてしかも検索精度を高めることには、限界があった。
【０００５】
本発明の目的は、従来よりも検索時間を速くすることができてしかも検索精度を高めることができるデータベースの高速検索方法を提供することにある。
【０００６】
本発明の更に他の目的は、検索に要する時間の均等化が可能なデータベースの高速検索方法を提供することにある。
【０００７】
本発明の他の目的は、データベースの高速検索方法を利用したロボットの駆動方法を提供することにある。
【課題を解決するための手段】
【０００８】
本発明は、真値と推定量とが組になった複数のデータが自己組織化により複数のクラスにより分けられて保存されているデータベースから、ある推定量を持った未知のデータに対応するデータを高速で検索するデータベースの高速検索方法を対象とする。ここで真値とは、センサ等から出力された変動しないまたは確定した値である。また推定量とは、演算によって求める特徴量等のように、条件が異なることによって変動する量のことである。本発明の方法では、真値をクラス分けの際の基準として自己組織化を行って複数のデータを複数のクラスに分け、且つ複数のクラスに含まれる複数のデータのそれぞれの推定量を代表する代表推定量を複数のクラスに対してそれぞれ有している構造のデータベースを用いる。なお自己組織化において、クラスの自己増殖及び自己消滅を導入すると、データが特徴空間内に均等に存在し、また各クラスが概ね同数のデータを持つようになるので、特徴空間内にクラスがまんべんなく分散配置され、かつ各クラスに含まれるデータの数に偏りが無くなって、検索に要する時間の均等化が可能になる。
【０００９】
なおデータベースの構造を、真値をクラス分けの際の基準として自己組織化を行って前記複数のデータを第１段階の複数のクラスに分け、第１段階の複数のクラスにそれぞれ分けられた複数のデータを、真値をクラス分けの際の基準として自己組織化を行って、さらに第２段階の複数のクラスに分け、さらに必要に応じて前の段階の複数のクラスに分けられた複数のデータを、真値をクラス分けの際の基準として自己組織化を行って、さらに次の段階の複数のクラスに分ける多重自己組織化を行い、各段階における複数のクラスに含まれる複数のデータのそれぞれの推定量を代表する代表推定量を各段階における複数のクラスに対してそれぞれ設けた構造としてもよい。なおこの多重自己組織化は、前述のように本願明細書によって定義されたものである。このような多重自己組織化を実行すると、さらに検索時間を速くしてしかも検索精度を高めることができる。
【００１０】
また第２段階以降のクラス分けでは、クラス分けの基準として真値だけでなく、推定量を用いてもよい。第１段階のクラス分けにおいて、クラス分けの基準として真値を用いるだけで、他の段階では推定量をクラス分けの基準として用いたとしても、推定量のみをクラス分けの基準とする場合と比べると、検索時間を速くして、しかも検索精度を高めることができ、更に検索に要する時間の均等化を図ることが可能になる。
【００１１】
検索の対象が推定量である場合、従来の考え方であれば、推定量を自己組織化におけるクラス分けの基準として使用する。しかしながら推定量は条件によって変動する量であって、条件の定め方によってその量の精度は低下する。そこで本発明では、変動しない確定した真値をクラス分けの基準として使用して、クラス分けを行ったデータベースを使用する。また多層自己組織化を利用する場合にも、少なくとも最初の段階のクラス分けにおいて、真値をクラス分けの基準として使用して、クラス分けを行ったデータベースを使用する。これによってクラス分けの精度は向上する。そして本発明では、推定量を検索対象とするため、複数のクラスに含まれる複数のデータのそれぞれの推定量を代表する代表推定量を複数のクラスに対してそれぞれ定めることとした。この代表推定量を定めることによって、真値をクラス分けの基準として用いても、クラスを基準とした検索が可能になる。そこで本発明では、まず第１の検索ステップで、未知の入力データの推定量と複数の代表推定量との対比により該当するクラスを決定する。次に第２の検索ステップにより、第１の検索ステップで決定されたクラスに含まれる複数のデータのそれぞれの推定値と未知の入力データの推定値との対比により該当する最類似データを決定する。このように２段階の検索を実行すると、データベース内の全てのデータを検索対象とする必要がないので、データの検索を高速で行うことができる。
【００１２】
また複数のデータが時系列で取得されたデータであり、複数の未知の入力データも時系列で取得されたデータである場合には、次のようにすると、更に検索の高速化を図ることができる。すなわち第１の検索ステップで、前回の検索で決定された一つのクラスと該一つのクラスの代表推定量と近似する代表推定量を有する１以上の他のクラスだけを、次回の第１の検索ステップにおける検索対象のクラスとすることである。ロボットの動作に関するデータのように、時系列で取得されるデータは、殆どの場合、連続して変化する。そのため、前回のデータと次回のデータとが極端に相違することはない。したがって前述のように、次回の検索の際に前回の検索で決定された一つのクラスと該一つのクラスの代表推定量と近似する代表推定量を有する１以上の他のクラスだけを、次回の第１の検索ステップにおける検索対象のクラスとして、検索対象とするクラスを減らしても、検索不能になるといった事態が発生することはない。したがって時系列で取得するデータの検索については、前述のようにすると、更に高速化を図ることができる。
【００１３】
本発明のデータベースの高速検索方法は、種々の用途に適用が可能である。特に、ロボットの駆動方法に本発明のデータベースの高速検索方法を適用すると、膨大なデータを蓄積したデータベースを用いても、迅速に必要なデータを検索することができ、リアルタイムで遅延なくロボットを駆動制御することが可能になる。具体的に本発明のロボットの駆動方法では、以下の第１乃至第５のステップを実行することによりロボットを駆動する。第１のステップでは、ロボットに対応する動作物と、この動作物に設けられて動作物の動きを検出する複数のセンサと、これら複数のセンサの出力に基づいて動作指令を発生する動作指令発生装置とを用いる。そして動作物に所定の動作を行わせたときの複数のセンサの出力に基づいて動作指令発生装置が発生する動作指令を事前収集動作指令として記憶する。ここで動作物とは、典型的には人間自体または人間の手や足等の動作する部位等であるが、動作物は人間以外の動物等でもよい。また事前収集動作指令は、複数のセンサの出力に基づく複数の値（真値）であり、例えば複数のセンサが角度を検出するセンサであれば、この事前収集動作指令は、複数のセンサが検出した角度に対応する値であってもよい。したがって事前収集動作指令がセンサの出力に対応するものであれば、複数のセンサが動作指令発生装置を兼ねることなる。
【００１４】
第２のステップでは、動作物またはその擬似物に所定の動作と同じ動作をさせたときの動作物またはその擬似物の複数の画像データを時系列で取得する。ここで「動作物またはその擬似物」における「動作物」とは第１のステップの動作物と同じものでもよいが、同様の形状及び構造を有し（言換えると、同じ場所に同じ関節があり）且つ同じ動作を行い得るものであれば別の動作物であってもよい。また「動作物またはその擬似物」における「その擬似物」とは、その動作物をコンピュータグラフィック技術等の擬似物生成技術を用いて作成したものや、その動作物の人形等である。この場合疑似物の画像データは、疑似画像データである。特にコンピュータグラフィック技術を用いる場合の疑似物の画像データは、コンピュータグラフィック画像データである。複数の画像データを時系列で取得する方法または手法は、任意であり、単眼カメラ、両眼カメラのいずれにより撮影したものであってもよい。
【００１５】
動作物が人間の手である場合、第２のステップでは、疑似物の複数の画像データに、人間の手に現れる個人差を考慮した画像データを含めておくと、後述する第５のステップにおける画像データの特定精度を高めることができる。ここで個人差が生じる相違要素には、拇指以外の４指の基節位置の曲率、拇指基節の張り出し具合、隣り合う二本の指の開き具合、開いた二本の指の基準角度の違い、拇指の反り具合等がある。このような個人差は、コンピュータグラフィック技術等の擬似物生成技術を用いて疑似物の画像データ（疑似画像データ）を作成する場合には、前述の相違要素をパラメータとして既に作成した基本となる疑似物の画像データを変更することにより簡単に得ることができる。したがって個人差を考慮した画像データの作成は、難しいものではなく、簡単である。
【００１６】
また第２のステップで作成する複数の画像データには、疑似物の複数の画像データの解像度を変えて作成した複数の解像度変更画像データを含めてもよい。これは画像データの解像度を変えたほうが、画像の特徴が現れやすくなるものもあるからである。画像データの解像度は、基本となる画像データがあれば、簡単に変更することは可能である。
【００１７】
第３のステップでは、第２のステップで得た複数の画像データに含まれる各画像データと事前収集動作指令とを対応付けて画像対応動作指令記憶手段（データベース）に記憶する。なお擬似物の画像データを用いる場合には、第３のステップでは、実際に撮影した画像だけでなく、第２のステップで取得した前の画像データと後の画像データとの間の未作成（未撮影）の画像データをコンピュータグラフィック技術により作成したものも対象とする。この場合には、未作成の画像データに対応する事前収集動作指令を、前の画像データに対応する事前収集動作指令と後の画像データに対応する事前収集動作指令とに基づいて推定により作成し、これを未作成の画像データと対応付けて記憶することができる。このようにすれば、少ない実際の画像データを用いて、より多くの画像データと事前収集動作指令との対応データを得ることができ、対応データ（画像データと事前収集動作指令とを対応付けたもの）の収集が大幅に簡単になる。
【００１８】
また第３のステップは、対応データを取得するために、演算ステップと、自己組織化ステップと、代表特徴量決定ステップと記憶ステップとを含んで構成される。演算ステップでは、複数の画像データのそれぞれについて特徴量を演算する。自己組織化ステップでは、複数の対応データを複数のクラスに分ける基準として複数の真値を用いて自己組織化を行い複数の対応データを複数のクラスに分ける。代表特徴量決定ステップでは、１つのクラスに含まれる複数の対応データのそれぞれの特徴量（推定量）を代表する代表特徴量（代表推定量）を決定する。なおこの自己組織化ステップにおいて、前述の多重自己組織化を行って複数の対応データをｎ段階（ただしｎは２以上の整数）の複数のクラスに分けても良いのは勿論である。この自己組織化ステップにおいて、少なくとも最初の段階において、複数の真値を用いて自己組織化を行えばよく、残りの段階では、画像データの特徴量をクラス分けの基準として用いることもできる。このようにしても全て画像データの特徴量をクラス分けの基準とする場合と比べれば、検索速度及び検索精度を向上させることが可能であり、また推定に要する時間を概ね均等にすることができる。
【００１９】
そして記憶ステップでは、複数の真値及び特徴量を含む対応データを複数のクラスに分け且つ該複数のクラスに対応する複数の代表特徴量と一緒に画像対応動作指令記憶手段（データベース）に記憶する。ここでセンサの出力が角度に相当するものであれば、複数の真値は複数の角度に相当するものである。
【００２０】
第４のステップでは、ロボットを動作させるために、動作物またはその擬似物に所望の動作を行わせ、その際に動作物またはその擬似物の画像データを時系列でロボット動作用画像データとして取得する。動作物にセンサを装着する必要はない。そして第５のステップでは、ロボット動作用画像データに含まれる動作画像データに対応する画像データを画像対応動作指令記憶手段に記憶している複数の画像データ（対応データ）から時系列で特定する。なおロボット動作用画像データに含まれる動作画像データと画像対応動作指令記憶手段に記憶されている複数の画像データとの対応は、画像データから演算により求めた特徴量を用いて、例えば類似度に基づいて判断することができる。したがって対応データには、各画像データの特徴量を含めている。類似度の求め方は任意であり、特定の方法に限定されるものではない。そして第５のステップでは、特定した画像データに対応する事前収集動作指令を動作指令としてロボットに与える。
【００２１】
なお人間型ロボットにおいて不良設定性が多いのは、手である。したがってロボットハンドの駆動に本発明を適用すると、従来よりも簡単にロボットハンドを駆動することができる。なおこの場合、動作物としては人間の手またはその擬似物が用いられることになる。そして第１のステップでは、人間の手に装着するデータグローブを用いる。このデータグローブは、グローブ本体にロボットの手の動作部に対応した人間の手の動作部の動きを検出する位置に複数のセンサが装着された構造を有している。
【００２２】
なお第１のステップは事前に行う作業であるため、第１のステップを切り離して、ロボットを駆動する装置に用いられる駆動方法においては、第２乃至第５のステップだけを用いてロボットを駆動することができるのは当然である。
【発明の効果】
【００２３】
本発明によれば、複数のクラスに含まれる複数のデータのそれぞれの推定量を代表する代表推定量を複数のクラスに対してそれぞれ定めているので、真値をクラス分けの基準として用いても、クラスを基準とした検索が可能になる。また本発明では、第１の検索ステップで、未知のデータの推定量と複数の代表推定量との対比により該当するクラスを決定し、第２の検索ステップにより、第１の検索ステップで決定されたクラスに含まれる複数のデータのそれぞれの推定値と未知のデータの推定値との対比により該当するデータを決定するので、２段階の検索を実行することにより、データベース内の全てのデータを検索対象とすることなく、データの検索を高速で行うことができる。
【００２４】
また複数のデータが時系列で取得されたデータであり、複数の未知のデータも時系列で取得されたデータである場合には、第１の検索ステップで、前回の検索で決定された一つのクラスと該一つのクラスの代表推定量と近似する代表推定量を有する複数の他のクラスだけを、次回の第１の検索ステップにおける検索対象のクラスとすることにより、検索対象とするクラスを減らして、更に高速化を図ることができる。
【発明を実施するための最良の形態】
【００２５】
以下図面を参照して本発明のデータベースの高速検索方法をロボットの駆動方法に適用した実施の形態について説明する。なお実施の形態について説明する前に、本実施の形態で用いる技術の基礎について説明する。両眼あるいは単眼カメラによるヒト手指の３次元形状を推定する場合には、手指の形状が複雑で、しかも自己遮蔽も多く、形状の認識における不良設定性が存在する。そのため、赤外線レンジセンサや複数台のコンピュータを用いた並列計算装置といった周辺機器類を使用しない限り、高速で且つ高精度に推定することはできない。
【００２６】
そこで、発明者らは、形状が複雑で自己遮蔽の多いヒトの手の形状推定とロボット制御を同時に解決できる非常に有効な、場合によっては唯一の方法が、人間の見まね能力であると考えて、人と同じような精度と処理速度で手指動作の再現が可能なロボットハンドの制御方法の開発を行った。そしてこの開発において、データベースから高速でデータを検索しなければならに問題に直面し、本発明の検索方法を発明した。
【００２７】
以下、この開発に係わる本発明のロボットの駆動方法についての実施例を説明し、併せて本発明のデータベースの高速検索方法についての実施例を説明する。まず本実施の形態で用いる多指ロボットハンド（ロボット）の機構について説明する。図１は、発明者等が開発した本実施の形態で制御の対象とする公知の多指ロボットハンド１の平面図であり、図２は図１のロボットハンドの内部に配置されたアクチュエータ２（エンコーダ内蔵型超小形モータ）の配置構成を示す図である。なおこの多指ロボットハンドの詳細は、特開２００３−１１７８７３号公報に示されている。この多指ロボットハンド１の各関節の可動範囲は、親指の内外旋が１２０°であり、内外転が６０°である。そして各５本指の屈曲、伸展は第２関節に連動して行われ、第２関節の可動範囲は１１２°であり、第１関節は第２関節の可動範囲の７／１０倍、第３関節は第２関節の可動範囲の５／７倍となっている。指の開閉は薬指に連動して、人指し指、小指が動き、中指は動かない。また薬指の開閉可動範囲は１５°であり、人指し指は１３°であり、小指は３１°である。これらの構成によって、拇指と小指の接触が可能になり人の手指の可動域を十分に実現できている。
【００２８】
各関節のアクチュエータ２には、ＤＣマイクロモータを使用している。各指の第２関節、拇指の内外旋、内外転部位と拇指以外の４指間の開閉（アブダクション）用に掌の内部にそれぞれアクチュエータ２が設置されている。各関節の制御は、図示しない制御用計算機からの指令を受けて動作し、内部にＤ／Ａコンバータや、小型サーボモータ専用ドライバー（マイクロサーボ）が配置された駆動装置３を介して、各アクチュエータ２のモータにかける電圧を変化させることで行う。各アクチュエータ２のモータには、インクリメンタルシャフトエンコーダが内蔵されている。このエンコーダの出力は、軸速度、回転方向の検出の他に、位置制御に使用できる。各関節の角度情報は、ギヤを介して分解能を挙げたエンコーダを介して図示しない制御用計算機にフィードバックされる機構を持っている。
【００２９】
図３は、遠隔指令装置として使用するデータグローブ４の一例の概略構成を示す図である。このデータグローブ４には、手袋形の本体の関節部分を中心にして約１６箇所の位置に分散して位置センサが備えられた構成を有している。具体的には、Ｖｉｒｔｕａｌ  ｔｅｃｈｎｏｌｏｇｉｅｓ社製のｃｙｂｅｒｇｌｏｖｅ（商標）をデータグローブとして用いている。このデータグローブのセンサ５は、拇指を除く各指のＭＰ（中手指節関節），ＰＩＰ（近位指節間関節）に一つずつ、拇指にはＭＰ、ＰＩＰ、ＤＩＰ（遠位節間関節）についており、また各指の間にあるアブダクションを計測するセンサと掌の中央のセンサとで計１６ヶ所に設置されている各センサ５はそれぞれ歪曲（ひずみ）度を数値化して３０〜４０Ｈｚで出力する仕様を有している。掌の中央に設置されているセンサ５は掌全体の歪曲度を計測するものであり、対する人型ロボットハンドにはその機構は備わっていないため、この実施の形態では、この中央のセンサ５は使用しない。
【００３０】
人の手指動作を操作者が手に装着したデータグローブによりデータ化し、これを計算機に取り込んで多指型ロボットハンドの制御指令値に変換すれば、データグローブを装着した操作者の手の動作と同様の動作をロボットハンドで実現させることができる。
【００３１】
データグローブによるロボットハンドの制御法において、一つの簡単な方法としては、サイバーグローブから出力されるデータを３次元座標位置に変換しロボットハンドの関節と対になる部分の角度情報を時系列で取り出し、それをロボットハンドに実行させて、ロボットハンドを動作させるという手段がある。しかし、この方法を用いるとデータグローブの各センサから出力される１６個の値がそれぞれ各関節のＸ座標、Ｙ座標、Ｚ座標、ピッチ角、ヨー角、ロール角に変換され、一単位時刻あたり１００ものデータが生成されることとなり、これからロボットハンドの動作に必要な８関節分のデータを抽出して使用することは計算効率や時間効率を考える面からも最適ではない。
【００３２】
人の手指は拇指を除く四指に至って、他の四指の影響を少なからず受ける。その特徴を定量的に表すこともこの制御方法及び装置において重要であると考える。そこでデータグローブで得られるデータからロボットハンド制御用の指令値への変換式に本発明の実施の形態では、重回帰式を用いる。
【００３３】
ロボットハンドの各関節に対し重回帰式、すなわちすべてのデータグローブからの出力の重み付き線形和によりそれぞれのロボットハンドの関節を記述するためには、まず重回帰分析を行い偏回帰係数を求める必要がある。そこで重回帰分析用のデータを取得するためにデータグローブ装着者は予め定めた時系列関節角度パターンに従って関節角度指令値を駆動装置３に入力して、ロボットハンドを動作させる。なお駆動装置３に指令を与える制御装置は、ロボットハンド１にあらかじめ重回帰分析に有効な動作を行わせる予め定めた時系列関節角度パターンの関節角度指令値を記憶している。そしてこのロボットハンドの動作に従い即ち倣って、データグローブを装着した操作者には、データグローブを装着した手において、指の屈伸、アブダクション等の動作を事前に行ってもらう。本発明では、このようにして計測したデータグローブ４の出力と計測に用いたロボットハンドの時系列関節角度パターンとを重回帰分析にかけ、各関節ごとの偏回帰係数を導き出す。下記の式は本実施の形態で用いる重回帰式である。
【数１】
2006294018.tif 000003
【００３４】
ここで、目的変数θｉはロボットハンド１での制御対象となる関節各度の指令値、説明変数ｘinはデータグローブ４からの出力値、ａinは偏回帰係数、ａ0nは残差である。この重回帰式で出される値はデータグローブ４での各指の関節角度の値であるので、この値をロボットハンドの角度指令値として制御を行えばよいことになる。
【００３５】
図４には、事前収集動作指令を得る際に用いる多指ロボットハンドの制御装置と本発明のデータベースの高速検索方法を採用したロボットの駆動方法を用いてロボットハンドを駆動する装置の構成の一例の概略構成を示してある。図４に示した動作指令を事前に収集する際に用いる制御装置では、関節角度を指示する関節角度指令値ｙに応じて動作するアクチュエータを備えたｋ個（ｋは正の整数）の関節を有する多指ロボットハンド１を制御するものとする。そしてデータグローブ４は、操作者の手に装着されて操作者の手の動きに応じてｎ個（ｎは正の整数）の出力信号ｘｎを出力する遠隔指令装置を構成している。この多指ロボットハンドの制御装置は、対応関係決定手段６と制御信号発生手段７とを備えている。対応関係決定手段６は、ｋ個の関節のためのｋ個の関節角度指令値ｙそれぞれについて、各関節角度指令値ｙとｎ個の出力信号ｘｎとの間の対応関係を予め定めるように構成されている。具体的には、対応関係決定手段６は、時系列関節角度パターン記憶手段６１と、サンプリング手段６２と、偏回帰係数導出手段６３と、重回帰式決定手段６４とを備えている。
【００３６】
サンプリング手段６３は、ｋ個の関節（実際にはアクチュエータ２）にそれぞれ予め定めた時系列関節角度パターン記憶手段６１に記憶した時系列関節角度パターンに従って関節角度指令値を入力して多指ロボットハンド１を動作させた状態において、多指ロボットハンド１の動きに倣うように操作者がデータグローブ４を操作したときにｎ個の出力信号ｘｎを時系列でｍ回（ｍはｎより大きい正の整数）サンプリングする。サンプリング手段６２はサンプリングを開始する前に時系列関節角度パターン記憶手段６１に指令を与え、時系列関節角度パターン記憶手段６１は駆動装置３に予め定めた関節角度指令値を出力する。なお時系列関節角度パターンは、Ｎ次元空間をまんべんなく動くような任意の関数指令を多指ロボットハンドの関節（アクチュエータ）に与えるように構成するのが好ましい。駆動手段３は、これを受けて多指ロボットハンド１を動作させる。
【００３７】
偏回帰係数導出手段６３は、時系列関節角度パターン記憶手段６１に記憶した時系列関節角度パターンと、サンプリング手段６２から出力されるｍ回のサンプリングにより求めたｍ組のｎ個の出力信号ｘｎとに基づいて重回帰分析を行い、ｋ個の関節のそれぞれについて偏回帰係数を導出する。
【００３８】
重回帰式決定手段６４、偏回帰係数導出手段６３が定めたｋ個の関節毎の偏回帰係数を用いて、ｋ個の関節毎の関節角度指令値ｙとｎ個の出力信号ｘｎとの間の対応関係を定めるｋ個の重回帰式を決定する。
【００３９】
そして制御信号発生手段７は、対応関係決定手段６の重回帰式決定手段６４が求めた対応関係とｎ個の出力信号ｘｎとに基づいて、ｋ個の関節角度指令値ｙを求め、ｋ個の関節角度指令値ｙを示す制御信号（動作指令）を多指ロボットハンドのｋ個の関節を駆動するための駆動装置３に出力するように構成されている。この制御信号発生手段７は、重回帰式決定手段６４が求めたｋ個の重回帰式を対応関係として用い、ｎ個の出力信号ｘｎを入力としてｋ個の関節角度指令値ｙを求める。これらｋ個の関節角度指令値ｙが動作指令（データベースの高速検索方法における真値）となる。なおデータグローブ４の動きに応じて制御指令発生手段７からは処理速度に応じた時間間隔で動作指令が出力される。なお図４の例においては、対応関係決定手段６及び制御信号発生手段７により動作物（操作者の手）に所定の動作を行わせたときの複数のセンサの出力に基づいて動作指令を発生する動作指令発生装置が構成されている。
【００４０】
図６と図５乃至図７を用いて、ロボットハンドを駆動する方法の一例を説明する。第１のステップでは、事前収集動作指令記憶装置８が、データグローブ４を嵌めた手（動作物）に所定の動作を行わせたときのデータグローブ４の複数のセンサ５の出力に基づいて動作指令発生装置（６，７）が発生する動作指令を事前収集動作指令（データベースの高速検索方法における真値）として記憶する。この記憶動作をコンピュータを用いて実現する場合に用いるソフトウエアのアルゴリズムを図５に示す。
【００４１】
第２のステップでは、図６に示すように、単眼カメラまたは両眼カメラ等からなるカメラ９によりデータグローブ４を手に装着して事前収集動作指令を取得するときと同じ動作（所定の動作）を人の手Ｈで行う。そしてこのときの手（動作物）Ｈの画像データを時系列で取得する。なおこの画像データの取得は、事前収集動作指令を取得するのと同時に行ってもよいが、後から行ってもよい。図６の例では、手Ｈで「グー」の形を作った状態の画像データをとり、この画像データに基づいてコンピュータグラフィック技術で手の擬似物の画像データＰＤ１を作成する。そして手Ｈで「パー」の形を作った状態の画像データをとり、この画像データに基づいてコンピュータグラフィック技術で手の擬似物の画像データＰＤｎを作成する。「グー」から「パー」まで変化するまでの間の過程の画像を実際に撮影してもよいが、図６のようにその間の画像をコンピュータグラフィック技術で作成してもよい。このようにして作成した画像データは、画像データ記憶装置１０に記憶される。なおこの画像データは、データ処理が行われたデータであり、画像データから得た特徴量も画像データの一部として記憶される。この特徴量が、本発明のデータベースの高速検索方法における推定量に該当する。
【００４２】
第３のステップでは、第２のステップで得た複数の画像データに含まれる各画像データ（特徴量を含む）と事前収集動作指令記憶装置８に記憶された事前収集動作指令（真値）とを対応付けて、対応データとして画像対応動作指令記憶手段１１に記憶する。本例では、画像対応動作指令記憶手段１１が高速検索の対象となるデータベースである。
【００４３】
第３のステップは、対応データを取得するために、演算ステップと、自己組織化ステップと、代表特徴量決定ステップと記憶ステップとを実行する。演算ステップでは、複数の画像データのそれぞれについて特徴量を演算する。自己組織化ステップでは、複数の対応データを複数のクラスに分ける基準として複数の事前収集動作指令（真値）を用いて自己組織化を行い複数の対応データを複数のクラスに分ける。代表特徴量決定ステップでは、１つのクラスに含まれる複数の対応データのそれぞれの特徴量（推定量）を代表する代表特徴量（代表推定量）を決定する。そして記憶ステップでは、複数の真値及び特徴量を含む対応データを複数のクラスに分け且つ該複数のクラスに対応する複数の代表特徴量と一緒に画像対応動作指令記憶手段１１（データベース）に記憶する。なお第３のステップで採用する演算ステップと、自己組織化ステップと、代表特徴量決定ステップと記憶ステップ自己組織化については、後の実施の形態の説明の中において併せて説明する。
【００４４】
なお本例では、画像対応動作指令記憶手段１１は、実際に撮影した画像のデータとこの画像から得た各画像データの特徴量だけでなく、時系列で取得した前の画像データＰＤ１と後の画像データＰＤｎとの間の未作成の画像データをコンピュータグラフィック技術により作成する場合には、作成した画像データに対応する事前収集動作指令を前の画像データＰＤ１に対応する事前収集動作指令と後の画像データＰＤｎに対応する事前収集動作指令とに基づいて推定により作成して未作成の画像データ及びこの画像データの特徴量と対応付けて記憶することができる。このようにすれば、少ない画像データによりより多くの画像データと事前収集動作指令との対応データを得ることができ、基礎データ（画像データと事前収集動作指令とを対応付けたデータ）の収集が大幅に簡単になる。
【００４５】
第１から第３までのステップは、ロボットハンドを駆動するための事前作業として実施される。なお自由度ごとに５度刻みの精度の関節角度制御をロボットハンドの駆動において実現しようとすると、１億個（２０の７乗）程度の数の画像が必要となるが、上述のようにコンピュータグラフィック技術を用いれば、基礎データの収集は簡単になる。この場合に用いることができるＣＧ編集ソフトウエアとしては「Poser 5（Curious Labs Incorporated製）」を使用することができる。このソフトウエアを用いれば、データグローブ出力から得られた関節データから、撮像した手指２次元画像と類似した理想的な手指ＣＧ画像を補間生成することができる。そして補間生成した画像データに対応する事前収集動作指令は、関節角度の線形補間により生成することができる。なお、画像１枚あたりの手指ＣＧのファイルサイズは５kB程度である。
【００４６】
第４のステップ及び第５のステップは、実際にロボットハンドを駆動する際のステップである。第４のステップでは、ロボットハンドを動作させるために、手で所望の動作を行い。図６に示すように、その際の手の画像データをカメラ１２を用いて時系列でロボット動作用画像データとして取得する。このロボット動作用画像データ（動作画像データ）は、ロボット動作用画像データ記憶装置１３に記憶される。そして第５のステップでは、ロボット動作用画像データに含まれる動作画像データ（未知の画像データ）に対応する画像データを画像対応動作指令記憶手段１１に記憶している複数の画像データから演算により求めた特徴量から時系列で特定する。この特定作業（検索作業）は、画像データ特定及び動作指令発生装置１４で行う。この例では、ロボット動作用画像データに含まれる動作画像データの特徴量と画像対応動作指令記憶手段に記憶されている複数の画像データの特徴量との対応は、両者の特徴量の類似度に基づいて判断する。類似度の求め方は任意である。そして第５のステップでは、特定した画像データに対応する事前収集動作指令を動作指令として駆動装置３に与え、駆動装置３の出力で多指ロボットハンドを駆動する。第４及び第５のステップの主要部をコンピュータ用いて実現する場合のソフトウエアの一例のアルゴリズムは図１０に示す通りである。
【００４７】
画像データ特定及び動作指令発生装置１４で画像データの検索に使用する画像データの特徴量を抽出する技術としては、例えば、高次局所自己相関関数を用いる特徴量抽出技術を利用することができる。高次局所自己相関関数については、１９９３年発行の電総研研究報告，ｊ９５７の１２６頁乃至１４０に「柔らかな情報処理のための統計的手法の応用に関する研究」と題する論文に詳しく説明されている。手指２次元画像の特徴抽出には，高次局所自己相関関数を用いた。画面内の対象画像をｆ（ｒ）とすると、Ｎ次自己相関関数は変位方向（ａ１，ａ２，…ａｎ）に対して次式のように定義される。
【数２】
2006294018.tif 000004
【００４８】
実証試験では、高次自己相関係数の次数Ｎを２とし、また変位方向を参照点ｒの周りの局所的な３×３画素の領域に限定した。これより、平行移動による等価な特徴を除くと特徴Ｍの数は後に説明する図１２に示す２５個になる。図１２中の黒の四角は、局所パターンの対応する画素の位置に対応する。各特徴量の計算は、局所パターンの対応する画素の値の積を全画素に対して足し合わせることで得られる。
【００４９】
上記の方法によれば、実際にロボットハンド１を動かすために、ロボットハンド１に対応する手の画像を得るだけで、センサを使用することなく、手の動きと同じ動作を、見まねにより不良設定性を解消してロボットハンドに動作させることができる。
【００５０】
上記実施の形態では、第３のステップで実際に人の手の画像を撮影しているが、すべてコンピュータグラフィック技術により手の画像データ（手の擬似物の画像データ）を作成してもよいのは勿論である。画像データの特定のために、高次局所自己相関関数を用いる特徴量抽出技術を用いる場合、画像全体について特徴量を抽出せずに、精度を高めるために画像をいくつかの分割画像に分けて分割画像単位で特徴量を抽出してもよい。
【００５１】
次に、本発明の別の実施の形態について説明する。この実施の形態では、前述の実施の形態とは異なって、図８に示すように、データグローブを嵌めた手の上にさらに無地（無模様：一色）の手袋（被覆物）を嵌めて、前述の第１のステップと第２のステップとを同時に実施する。図８において、下側の図がデータグローブを嵌めた手であり、上側の図がデータグローブを嵌めた手の上に手袋を嵌めた図である。図９は、事前にデータベースを作成する際の手順を示すフローチャートであり、図１０は図９のフローチャートの詳細を示すフローチャートである。
【００５２】
まずビデオカメラ１０９で、手袋を嵌めた状態の手を撮影する。本実施の形態では、高速ビデオカメラ１０９で撮影した手画像データおよびデータグローブから得た角度データを用いてデータベースを構築する。そのために画像データと角度データとを組にして取得する。本実施の形態では、モノクロ高速度カメラ（ＭＥＧＡＰＬＵＳ社製、ＥＳ３１０／Ｔ）を使い、解像度を３２０＊２４０画素として、手指が画面内に十分な大きさで映っている状態を想定する。また角度データの測定には、Ｖｉｒｔｕａｌ  Ｔｅｃｈｎｏｌｏｇｉｅｓ社製の「ＣｙｂｅｒＧｌｏｖｅ」（商標）と呼ばれるデータグローブを用いた。そして手袋は、白一色で無模様のものを用いた。手袋をデータグローブの上に嵌めることにより、データグローブ固有の画像特徴（センサの形状やグローブの形状）が出るのを防止している。前の実施の形態と異なって、白手袋を撮影すると、ヒトの手とは色が違い、画像としても違うものとなる。しかしながら、手袋を嵌めた手の画像データであっても、後に説明するように、特徴量化により一般の手画像として扱うことができる。なおデータベース作成に際しては、背景画像が影響を及ぼさないようにするために、背面に無模様一色のスクリーンを用いて撮影を行う。そして連続する複数の画像データと一緒に、データグローブから取得した手指角度データを組にして１次データベースを作成する。必要十分な情報を得るために、手を連続的に動かして必要な画像データと角度データを同時に取得して、保存する。
【００５３】
本実施の形態では、１次データベースの画像データを、実際に撮影した手画像の推定に必要な特徴量へと変換する画像処理を行なう。この画像処理のために背景除去、解像度変更、エッジ抽出、輪郭抽出（特徴量抽出）を行なう。
【００５４】
まず画像の解像度を変更する。今回取得した画像は３２０×２４０の画素値を持つ画像である。しかしこれをそのまま用いて各種画像処理を施して推定処理をするには、計算に時間がかかる。また人間が推定する際には、本実施の形態で用いた画像のサイズより小さくとも推定が可能である。そこで本実施の形態では、解像度を、３２０×２４０の画素値から６４×６４のサイズに変更する。解像度変更後の画素値は次式により得られる。
【数３】
2006294018.tif 000005
【００５５】
ここでｇｒ（ｉ、ｊ）は解像度変更後のｉ行ｊ列番目の画素値である。ｇｏ（ｉ、ｊ）は、解像度変更前のｉ行ｊ列番目の画素値である。この式では、縦についても３２０で計算しているが、これは変更後の画素値を６４×６４にしているため縦横比を合わせるためである。またｋ、ｌについてはｉ×３２０／６４から（ｉ＋１）×３２０／６４−１まで計算し、ｒはｋの個数×ｌの個数とする。
【００５６】
次に画像情報から背景除去を行う。あらかじめ取得しておいた背景画像を用いて対象画像との差分を取る。その差分が閾値以上の場合は対象画像の画素を使い、以下ならば０とする。
【００５７】
次に背景を除去した以上の操作で得られた解像度変更画像を用いてエッジ抽出を行なう。この作業で推定に必要な特徴を抜き出す。具体的にはソーベルフィルタで解像度変更画像をフィルタ処理する。その後、この画像の最外周のみを二値化することでエッジを抽出する。
【００５８】
ソーベルフィルタによる処理は、次式で表現できる。
【数４】
2006294018.tif 000006
【００５９】
ここでｆｒ（ｉ、ｊ）は下記の式で表すことができる。
【数５】
2006294018.tif 000007
【００６０】
上記式において、ｆｉ（ｉ、ｊ）は処理前の横ｉ番目、縦ｊ番目の画素を示す。ｆｓが処理後の最終的な値となる。
【００６１】
ここでの画像の最外周の二値化は、輪郭抽出で輪郭が途切れないように、比較的低い閾値で二値化することを意味する。この最後の画像処理として、エッジ抽出で得られた二値化画像上を走査することで輪郭抽出を行う。前段階のエッジ抽出により得た画像を輪郭として使用しない理由として、環境光の変化を上げることができる。実際の推定時とデータベース作成時とでは、環境光や人の肌の色等に違いがある。ましてやデータベース作成時には白手袋を使用しているため、エッジ抽出を行っても、エッジの値や幅などが実際の画像のエッジとは異なってくる。その結果、データベースの画像データと実際の画像データとを比較するとき（推定時）とで、両者のエッジには大幅な相違が生じる可能性がある。そこで輪郭抽出を行って、エッジの幅や値を一定にする。輪郭抽出は、データベースから得られる情報と推定時に得られる情報との差を少なくし、環境の影響などを排除することで、推定時の誤差を減少させるために採用する。図１１は、エッジ抽出後に輪郭抽出を行って得た解像度変更後の画像である。
【００６２】
なお最外周のみ二値化するための輪郭抽出アルゴリズムでは、画像を上から走査していき、最初の１２７の点を始点とした。始点から左回りに近傍画素を探索して行き、１２７の点があればそこへ移動し、値を２５５に書き換える。移動後は前回の位置を参考にして探索開始地点を８パターンに分けて探索を継続する。始点に再び戻った時点で輪郭を抽出したと判断し、探索を終了させる。最後に残りの点は輪郭ではないので１２７の点は全て０とする。
【００６３】
次に輪郭抽出を行った画像データの特徴量化を実施する（特徴量決定のための演算ステップ）。本実施の形態では、Ｏｔｓｕ等（Ｎ．Ｏｔｓｕ  ａｎｄ  Ｔ．Ｋｕｒｉｔａ，“Ａ  ｎｅｗ  ｓｃｈｅｍｅ  ｆｏｒ  ｐｒａｃｔｉｃａｌ，  ｆｌｅｘｉｂｌｅ  ａｎｄ  ｉｎｔｅｌｌｉｇｅｎｔ  ｖｉｓｉｏｎ  ｓｙｓｔｅｍｓ，”Ｐｒｏｃ．ＩＡＰＲ．Ｗｏｒｋｓｈｏｐ  ｏｎ  Ｃｏｍｐｕｔｅｒ  Ｖｉｓｉｏｎ，ｐｐ．４３１−４３５，１９９８．）が提案している高次局所自己相関関数を特徴量化に使用した。高次局所自己相関特徴は、画像の認識や計測のために有効な特徴であり、下記の式で定義される高次相関関数について、参照点とその近傍についての計算をしたものである。
【数６】
2006294018.tif 000008
【００６４】
上記式でｘＮはＮ次元でのｒ点近傍の相関関数である。一般に自然画像を処理対象とする場合には、対象点回りの画素が重要になるため、係数Ｎを２次までとする。また、平行移動すると等価なものになるものを除くと、図１２に示す２５の特徴量で表現できる。ただしＮｏ．１からＮｏ．５までは、Ｎｏ．６以降の特徴量に比べスケールが小さいので、スケールを合わせる必要がある。Ｎｏ．２〜Ｎｏ．５までは、参照点の画素をさらにかけあわせ、Ｎｏ．１は参照点の画素の２乗をかけることで他の特徴量にスケールを一致させる。
【００６５】
本実施の形態では、図１３に示すように、画像の画面を縦８分割、横８分割（６４分割）にした。そして、計６４分割した分割画面に対して、それぞれ画素全てを参照点として、高次局所自己相関関数によって２５の特徴量に次元低減を行なった。すなわち、全体の画像で考えれば、２５×画面分割数の特徴量により、その全体画像の特徴量化を行うことができる。
【００６６】
このようにして１つの画像データを特徴量化した画像データとデータグローブからの角度データ（事前収集動作指令に対応）を組みにした対応データを一次データベースに記憶する。そしてすべての手指形状のパターン（画像データの特徴量と角度）の記録を行い、最後にデータベースの構築を行う。
【００６７】
データベースの構築は、図１４に示すコンピュータのアルゴリズムに従って、自己組織化を用いて実行される。一次データベースに記録されているデータは、図１５に示すように、各データ１〜ｎが角度と特徴量とデータ番号とを少なくとも有している。なおここで角度は、データグローブから得られた複数の角度データの全てまたは代表的な１以上の部分の角度である。説明を容易にするため、以下の説明ではこの角度を代表的な１つの角度として説明する。また特徴量は、前述の特徴量の演算により求められた全体画像の特徴量である。
【００６８】
この例では、対応データに含まれる角度（真値）と特徴量（推定量）のうち、角度をクラス分けの基準にして自己組織化を行う（自己組織化ステップ）。図１６の概念図に示すように、例えば最初に３つのクラス１〜３を用意し、各クラスのクラス分けの基準となる角度を５°，２４°及び４０°としたとする。クラス分けにおいては、各クラスの基準となる角度と、各データ１〜ｎの角度の角度差をユークリッド距離を用いて計算する。図１６においては、理解を容易にするために単なる角度差として示してある。例えばデータ１の角度１２°をクラス１乃至３の基準となる角度との差をとると、−７°、１２°及び２８°となる。ここで最も角度差が小さくなるクラスを選ぶ。図１６の例では、クラス１が最も角度差が小さくなる。そこでデータ１はクラス１に所属することを決定する。ここで所属するとは、データ番号が各クラスに記録されることを意味し、データの内容全てがクラスに記録されることを意味しない。そしてクラス１の基準となる角度を、データ１の角度に近付けるように更新する。すなわちクラス１の角度を例えば、次のように改める。なお下記の式において係数は便宜的に０．２とする。この係数は１以下の正の数である。
【００６９】
クラス１の更新角度＝現在角度−（データの角度−現在角度）×係数
＝５−（１２−５）×０．２＝６．４
このようにデータ１をクラス１に所属させることにより、クラス１の基準となる角度は更新される。なお本実施の形態では、各クラスに対して基準となる角度が近い関係を有する別の１以上のクラスを子クラスとして定義する。例えば、図１６ではクラス２，３がクラス１の子クラスとして定義されるものとする。このような子クラスを定義した場合には、親クラスであるクラス１の基準となる角度の更新と併せて、子クラス２及び３の基準となる角度２４°及び４０°の更新も行う。この更新の計算には前述の計算式を用いる。子クラスの基準となる角度の更新が終了したら、全てのクラス間の角度差をユークリッド距離で計算し、各クラスの子クラスとして距離が近いｎ個のクラスを定義する。クラスの数が多くなった場合には、例えばｎを４程度にしてもよい。
【００７０】
次に各クラスのデータの数を確認する。各クラスのデータ数が予め定めた基準数Ｋより大きければ、後に説明するクラスの増殖を行う。なおこの基準数Ｋは、使用するコンピュータの性能により決定される。たとえば、使用する計算機の性能によりリアルタイム処理が可能な検索回数が１秒あたり２，０００回であり、毎回の未知データ入力に対して１０クラスの検索を行うとしたら、１クラスあたりのデータ数Ｋは２００個となる。反対に、毎回の学習の最後には各クラスのデータ数が予め定めた基準数Ｌより小さいか否かを確認し、小さければ該当クラスの削減を行う。この基準数Ｌも、使用するコンピュータの性能により決定される。図１７は、クラスの自己増殖と自己削減を模擬的に示した図である。ここで自己増殖では、クラス１をコピーして別のクラス１を作成する。なおこの別のクラス１には新たなクラス番号が付されることになる。自己増殖したクラスの最初の基準となる角度及び所属するデータのデータ番号の内容は同じである。しかし後に前述のクラス分けが実施されると、自己増殖したクラスの基準となる角度及び内容は変わってくる。このような自己増殖が行われると、同じデータが複数のクラスに所属することになるが、後に説明するように全てのデータについて繰り返しクラス分けが実施されるため、最終的に一つのデータが複数のクラスに所属することはなくなる。このようにして１つのデータの所属の決定動作が、全てのデータｉの所属が決まるまで繰り返される。この動作が繰り返されているうちに、各クラスの基準となる角度が変わり、またクラスの自己増殖または自己削減が行われる。
【００７１】
全てのデータｉのクラス分けが終了したときに、各クラスの基準となる角度の更新の幅が、予め定めた幅（角度差）より大きいときには、クラス分けが不十分であると判断して、再度全てのデータｉについてのクラス分けて行う。そしてクラスの基準となる角度の更新の幅が、予め定めた幅（角度差）より小さくなった時点でクラス分けを終了する。なおこの予め定めた幅とは、例えば、前々回と前回の学習結果の差と、前回と今回の学習結果の差とを比べた時に、両者の差が絶対値の総和で０．０１％以下となった時である。
【００７２】
図１８はクラス分けが終了したときのクラス１の内容を概念的に示す図である。更新を繰り返して基準となる角度と、子クラスが決まる。ここで実際にデータベースを完成するためには、クラス１に所属するデータの代表的な特徴量（代表特徴量即ち代表推定量）を決める必要がある。代表特徴量は、例えば所属するデータの特徴量の平均値とすることができる（代表特徴量決定ステップ）。この代表特徴量は、後の高速検索において使用される。図１９は、完成したデータベースの一つのクラス１の内容を概念的に示している。データベースが完了した時点で各クラスには、基準となる角度と、代表特徴量と、子クラスと、所属するデータの角度と特徴量がそれぞれ記録される。図２０は完成し自己組織化により完成したデータベースの構成を概念的に示す図である。なお実線で囲んだクラス１乃至３が親と子の関係になるクラスである。この親子関係は、後の検索の際の高速化のために使用される。
【００７３】
次に、上記のようにして作成したデータベース（画像対応動作指令記憶手段）を利用して、実際に撮影した手の画像から手指角度を推定する方法について説明する。図２１は検索時の手順を示すアルゴリズムであり、図２２はその具体的なアルゴリズムである。まず検索すなわち推定時には、データベース作成時と同様に高速カメラで動く手の画像（動作画像データ）を取得する。そして取得した動作画像データに対し、データベース作成時と同様の画像処理を施し特徴量を抽出する。そしてこの動作画像データの特徴量とデータベースに記憶されている対応データの特徴量とを後述の処理により比較し、動作画像データと最も近い画像データと組になる角度データを、その動作画像データに対応する動作指令として出力する。
【００７４】
特に、データベースとの照合処理または検索処理では、データベースにクラス分けされて記憶されている画像データの特徴量全てに対して、動作画像データの特徴量との間の距離算出を行なうのではなく、図２２に示すように動作画像データの特徴量（未知のデータの推定量）とデータベースに記録されている複数のクラスの代表特徴量（代表推定量）との対比により検索の対象となるクラスを決定する（第１の検索ステップ：クラスタリング）。このクラスの決定には、ユークリッド距離の計算を用いればよい。
【００７５】
前述のように、各クラスに対して子クラスが定義されている場合には、該当するクラスとその子クラスとが検索の対象となるクラスである。そして該当するクラスに所属する複数のデータと推定の対象となる画像のデータ（特徴量）との対比を行う。具体的には、推定の対象となるデータの特徴量と該当するクラスに所属するデータの特徴との距離を求める。この例では、距離の算出は単純なユークリッド距離で行なった。最終的な距離は、下記式より算出した。
【数７】
2006294018.tif 000009
【００７６】
上記式において、ｘriは候補ｒの高次局所自己相関関数による特徴量ｉ、ｘtiは時刻ｔでの高次局所自己相関関数による特徴量ｉである。Ｅｒを最小にするデータｒの角度を、その動作画像データの推定角度とした。ただし、角度の大幅に違うものの中に特徴量の近いデータが紛れ込むことがあるので、前回（ｔ−１時刻）の推定角度との比較を行って角度制限を行う。具体的には、距離が近いものについて、下記式で示す評価関数Ａｐが規定値を超える場合には、推定候補から除外した。そして評価関数Ａｐが規定値以内であれば、その推定角度を採用することとする。
【数８】
2006294018.tif 000010
【００７７】
ここでａｎｇi(t)は時刻ｔのｉ番目の角度データである。また、データグローブから得られる角度情報は２４となっている。以上の操作により現在の推定角度を求める。
【００７８】
前述のように、自己組織化されたデータベースを用いると、各クラスには、画像データの並びにおいて、手の形状の近い画像データに関するデータが集まるようになる。これを利用することで距離計算の対象データを削減することができる。なお親のクラスに該当するデータが無ければ、子クラスに所属するデータについても距離計算を行う。
【００７９】
なおロボットの動きのように連続している動き（時系列の動き）の動作画像は、前回の動作画像と次回の動作画像が近似したものとなる。したがって次回の動作画像に対応するデータを推定（検索）する場合の第１の検索ステップでは、前回の推定（検索）ステップで決定された一つのクラスと該一つのクラスの代表特徴量（代表推定量）と近似する代表特徴量を有する１以上の他のクラスだけを、次回の第１の検索ステップにおける検索対象のクラスとしてもよい。このようにすると第１の検索ステップにおいて該当するクラスを決定する時間が短くなる。
【００８０】
図２３は、前回の推定結果を利用する場合で、図２２の第２の検索ステップとは異なる方法で該当クラス内のデータとの照合を行う場合のアルゴリズムを示している。このアルゴリズムでは、前回の推定結果に決定されたデータが所属するクラスの周囲の各クラスの代表特徴量と次回の動作画像のデータ（特徴量）との間の特徴量差をユークリッド距離を用いて計算する。そして最も特徴量差が小さくなるクラス（最近傍クラス）に所属する複数のデータの角度と前回の推定結果のデータの角度差をユークリッド距離を用いて計算する。そして角度差が予め定めた閾値以上のものを除外して、推定候補データとする。次に、これら推定候補データと動作画像のデータ間の特徴量差をユークリッド距離を用いて計算し、最も特徴量差が小さくなるデータを推定結果即ち検索結果とする。そしてこの推定結果のデータの角度を動作指令として用いる。
【００８１】
図４に示した最初の実施の形態における画像対応動作指令記憶手段１１は、図８以降に示した二番目の実施の形態におけるデータベースと同様に、図１４〜図２０に示した自己組織化技術と同じ技術を用いてクラス分けされたデータベースとして構成されている。そして画像データ特定及び動作指令発生装置１４による入力画像データの特徴量と記憶している画像データの特徴量との対比は、図２１乃至図２３で説明した二番目の実施の形態におけるデータベースの照合と同じ方法を用いて実行できる。
【００８２】
上記実施の形態では、特徴量を求めるにあたって、高次局所自己相関関数を用いた。しかしながらその他の特徴量の求め方を採用することができるのは勿論である。例えば、廣池敦、武者義則著の「大規模な画像集合のための表現モデル」（日本写真学会誌、６６巻、１号、９３〜１０１頁、２００３年発行）に記載の特徴量ベクトルの求め方を採用することもできる。
【００８３】
上記二つの実施の形態は、本発明のデータベースの高速検索方法を、ロボットの制御方法におけるデータの検索に用いたものである。しかしながら、本発明のデータベースの高速検索方法は、その他の用途で使用されるデータベースの検索にも当然にして適用できるものであって、ロボットの制御方法に適用されることに限定されるものではない。
【００８４】
上記実施の形態では、データベースの階層構造を１段階のクラス分けにより構成している。しかしながら図２４に概念を示すように、データベースの階層構造をｎ段階のクラス分け（または多段階の樹状構造）により構成してもよい。このようなｎ段階のクラス分けを行う場合には、データベースを構成するに当たって、まず真値をクラス分けの際の基準として自己組織化を行って前記複数のデータを第１段階の複数のクラスに分けるクラス分けを行う［図２４の（１）］。次に、第１段階の複数のクラスにそれぞれ分けられた複数のデータを、真値をクラス分けの基準として自己組織化を行って、さらに第２段階の複数のクラスに分けるクラス分けを行う［図２４の（２）］。さらに必要に応じて前の段階の複数のクラスに分けられた複数のデータを、真値をクラス分けの際の基準として自己組織化を行って、さらに次の段階の複数のクラスに分けるクラス分けを行う［図２４の（３）及び（４）］。このような多段階のクラス分けを多重自己組織化と言う。そして各段階における複数のクラスに含まれる複数のデータのそれぞれの推定量を代表する代表推定量を、各段階における複数のクラスに対してそれぞれ設ける。データ構造は、概念的には、図２５に示すように、各クラスの中に分けられて存在している。なお図２５中の（１）及び（２）が、図２４中の（１）及び（２）のレベルに相当するものである。このような多段階構造のデータベースを用いた場合には、実験によると、１段階のクラス分けを行った場合と比べて、検索速度は３倍程度速くなることが確認されている。
【００８５】
また上記実施の形態では、図１２に示すように、２５種類の局所パターンを用いて特徴量を求めている。しかしながら図２６に示すような１５種類の局所パターンを用いると、精度を大幅に落すことなく、特徴量計算速度を大幅に速くすることができる。なお図２６に示した１５種類の局所パターンは、画像全体あるいは領域を限定して特徴量化を行うのではなく、画像の輪郭に沿って特徴量化する場合に有効に使用できる局所パターンである。
【００８６】
なお図２４乃至図２５に示した多重自己組織化によるデータベース及び図２６に示した局所パターンは、ロボットの駆動方法に用、いるデータベースを構築する際にも当然にして適用できるものであり、このようなデータベースを使用することはロボットの制御速度の向上に大きく貢献する。
【００８７】
なお多層自己組織化を利用する場合には、少なくとも最初のクラス分けで、真値をクラス分けの際の基準として用いればよく、２段階以降のクラス分けで、推定量（ロボットの駆動制御においては画像データの特徴量）をクラス分けの際の基準として用いてもよい。このようにしても、最初の段階で真値をクラス分けの際の基準として用いることにより、全てのクラス分けの基準として推定量を用いる場合と比べて、検索速度及び検索精度を高めることができ、更に推定に要する時間を概ね均等にすることができる。
【図面の簡単な説明】
【００８８】
【図１】発明者等が開発した本実施の形態で制御の対象とする公知の多指ロボットハンドの平面図である。
【図２】図１のロボットハンドの内部に配置されたアクチュエータ（エンコーダ内蔵型超小形モータ）の配置構成を示す図である。
【図３】遠隔指令装置として使用するデータグローブの一例の概略構成を示す図である。
【図４】事前収集動作指令を得る際に用いる多指ロボットハンドの制御装置と本発明のデータベースの高速検索方法を採用したロボットの駆動方法を用いてロボットハンドを駆動する装置の構成の一例の概略構成を示す図である。
【図５】記憶動作をコンピュータを用いて実現する場合に用いるソフトウエアのアルゴリズムを示す図である。
【図６】カメラによりデータグローブを手に装着して事前収集動作指令を取得するときと同じ動作（所定の動作）を人の手で行って事前収集動作指令を取得する過程を説明するために用いる図である。
【図７】入力画像データに対応する画像データを特定する過程のアルゴリズムを示す図である。
【図８】データグローブを嵌めた手の上にさらに無地（無模様：一色）の手袋（被覆物）を嵌めて、必要なデータを得ることを説明するために用いる図である。
【図９】事前にデータベースを作成する際の手順を示すフローチャートである。
【図１０】図９のフローチャートの詳細を示すフローチャートである。
【図１１】エッジ抽出後に輪郭抽出を行って得た解像度変更後の画像である。
【図１２】２５種類の特徴量を表現する図である。
【図１３】全体画像の特徴量化を説明するために用いる図である。
【図１４】自己組織化をコンピュータを用いて行う際のソフトウエアのアルゴリズムを示す図である。
【図１５】一次データベースに記録されているデータの内容を概念的に示す図である。
【図１６】自己組織化におけるクラス分けを説明するために用いる図である。
【図１７】自己組織化における増殖と消滅を説明するために用いる図である。
【図１８】クラス分けが完了したときのクラスの記憶内容を概念的に示す図である。
【図１９】自己組織化により作られたデータベースのクラスの記憶内容を概念的に示す図である。
【図２０】自己組織化により作られたデータベース内の各クラスの関係を示す図である。
【図２１】検索時の手順を示すアルゴリズムを示す図である。
【図２２】図２１の具体的なアルゴリズムを示す図である。
【図２３】検索時の異なる手順を示すアルゴリズムを示す図である。
【図２４】多重自己組織化の概念を説明するために用いる図である。
【図２５】多重自己組織化によりクラス分けが完了したときのクラスの記憶内容を概念的に示す図である。
【図２６】画像の輪郭形状の特徴量を計算するのに適した局所パターンを示す図である。
【符号の説明】
【００８９】
１  多指ロボットハンド
３  駆動装置
４  データグローブ
６  対応関係決定手段
８  事前収集動作指令記憶装置
１０  画像データ記憶装置
１１  画像対応動作指令記憶手段（データベース）
【図１】
2006294018.tif 000011
【図２】
2006294018.tif 000012
【図３】
2006294018.tif 000013
【図４】
2006294018.tif 000014
【図５】
2006294018.tif 000015
【図７】
2006294018.tif 000016
【図９】
2006294018.tif 000017
【図１０】
2006294018.tif 000018
【図１２】
2006294018.tif 000019
【図１４】
2006294018.tif 000020
【図１５】
2006294018.tif 000021
【図１６】
2006294018.tif 000022
【図１７】
2006294018.tif 000023
【図１８】
2006294018.tif 000024
【図１９】
2006294018.tif 000025
【図２０】
2006294018.tif 000026
【図２１】
2006294018.tif 000027
【図２２】
2006294018.tif 000028
【図２３】
2006294018.tif 000029
【図２４】
2006294018.tif 000030
【図２５】
2006294018.tif 000031
【図２６】
2006294018.tif 000032
【図６】
2006294018.tif 000033
【図８】
2006294018.tif 000034
【図１１】
2006294018.tif 000035
【図１３】
2006294018.tif 000036