以下に、本発明にかかる算出方法、算出プログラムおよび情報処理装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
図1は、本実施例1に係るシステムの一例を示す図である。図1に示すように、このシステムは、センサ10A、センサ10Bと、情報処理装置100とを有する。センサ10Aおよびセンサ10Bの測距の方向を、壁15の方向とする。センサ10Aおよびセンサ10Bは、横方向に並んで配置されている。情報処理装置100は、センサ10Aおよびセンサ10Bに接続される。
図2は、壁の外観の一例を示す図である。図2に示すように、この壁15には、複数のマークが配置されている。たとえば、壁15上において、センサ10Aの測距可能な範囲を範囲15Aとし、センサ10Bの測距可能な範囲を範囲15Bとする。
たとえば、マーク15-11~15-19は、水平方向に並んでいる。マーク15-24~15-26は、水平方向に並んでいる。マーク15-31~15-39は、水平方向に並んでいる。マーク15-11~15-19を通る直線、マーク15-24~15-26を通る直線、マーク15-31~15-39を通る直線は、それぞれ平行となる。
また、マーク15-14,15-24,15-34を通る直線と、マーク15-11~15-19を通る直線とのなす角度を90度とする。マーク15-15,15-25,15-35を通る直線と、マーク15-11~15-19を通る直線とのなす角度を90度とする。マーク15-16,15-26,15-36を通る直線と、マーク15-11~15-19を通る直線とのなす角度を90度とする。
センサ10Aは、レーザ光を照射して、被写体(壁15)を構成する点群とセンサ10Aとの距離を測距する測定装置である。また、センサ10Aは、可視画像を撮影する。センサ10Aは、第1距離画像情報を、情報処理装置100に出力する。第1距離画像情報は、被写体(壁15)を構成する点群とセンサ10Aとの距離の情報と、可視画像の情報を含む。本実施例で記載する可視画像は、一般的なカメラによって撮像される画像に対応するものである。
センサ10Bは、レーザ光を照射して、被写体(壁15)を構成する点群とセンサ10Bとの距離を測距する測定装置である。また、センサ10Bは、可視画像を撮影する。センサ10Bは、第2距離画像情報を、情報処理装置100に出力する。第2距離画像情報は、被写体(壁15)を構成する点群とセンサ10Bとの距離の情報と、可視画像の情報を含む。
図3は、各距離画像情報に含まれる点群の一例を示す図である。図3では一例として、各点群を反射強度に応じて示す。点群16Aは、センサ10Aにより測距された点群である。点群16Bは、センサ10Bにより測距された点群である。
図4は、各可視画像の一例を示す図である。図4において、画像18Aは、センサ10Aに撮影される可視画像である。画像18Bは、センサ10Bに撮影される可視画像である。
図1の説明に戻る。情報処理装置100は、第1距離画像情報と、第2距離画像情報とを基にして、センサ10Aにより測距された点群と、センサ10Bにより測距された点群との位置合わせを行うためのパラメータを算出する装置である。パラメータには、回転角度と並進距離とが含まれる。
情報処理装置100は、各点群の位置合わせを行う場合には、第1距離画像情報および第2距離画像情報から、回転合わせ用のベクトルと、並進合わせ用の点を検出する。
本実施例1では、第1距離画像情報から検出する回転合わせ用のベクトルを「第1ベクトル」、「第2ベクトル」と表記する。第1距離画像情報から検出する並進合わせ用の点を、「第1並進用点」と表記する。
また、第2距離画像情報から検出する回転合わせ用のベクトルを「第3ベクトル」、「第4ベクトル」と表記する。第2距離画像情報から検出する並進合わせ用の点を、「第2並進用点」と表記する。
ここで、第1ベクトルと第3ベクトルとは「条件1」を満たすものとする。条件1は「第1ベクトルの方向と第3ベクトルの方向とは、実空間上で同じ方向である。」という条件である。なお、第1ベクトルの位置と第3ベクトルの位置とは、実空間上で同じでなくてもよい。第1ベクトルの長さと、第3ベクトルの長さとは、実空間上で同じでなくてもよい。
第2ベクトルと第4ベクトルとは「条件2」を満たすものとする。条件2は「第2ベクトルの方向と第4ベクトルの方向とは、実空間上で同じ方向である」という条件である。なお、第2ベクトルの位置と第4ベクトルの位置とは、実空間上で同じでなくてもよい。第2ベクトルの長さと、第4ベクトルの長さとは、実空間上で同じでなくてもよい。
第1ベクトル(第3ベクトル)と第2ベクトル(第4ベクトル)とは「条件3」を満たすものとする。条件3は「第1ベクトル(第3ベクトル)と第2ベクトル(第4ベクトル)とは、実空間上で同じ方向ではなく、かつ、逆方向ではない」という条件である。第1ベクトル(第3ベクトル)と第2ベクトル(第4ベクトル)とのなす角度は、90度に近い角度であることが望ましい。
第1並進用点と、第2並進用点とは「条件4」を満たすものとする。条件4は「第1並進用点の位置と、第2並進用点の位置とは、実空間上で同じ位置である」という条件である。
本実施例1に係る情報処理装置100は、センサ10A、10Bの可視画像に基づくインストラクション画面を生成して表示し、ユーザから、第1~第4ベクトルの始点および終点、第1、2並進用点の選択を受け付ける。ユーザは、第1~第4ベクトルの始点および終点、第1、2並進用点を選択する場合には、上記の条件1~4を満たすようにする。
図5は、本実施例1に係るインストラクション画面の一例を示す図(1)である。図5に示すインストラクション画面20は、センサ10Aの可視画像に基づき生成される画面である。ユーザは、インストラクション画面20を参照し、情報処理装置100の入力装置を操作して、第1ベクトルの始点と、第1ベクトルの終点とを選択する。図5に示す例では、第1ベクトルの始点として点20aが選択され、第1ベクトルの終点として点20bが選択されている。
図示を省略するが、情報処理装置100は、センサ10Bの可視画像に基づき、第3ベクトルの選択を受け付けるインストラクション画面を表示する。ユーザは、かかるインストラクション画面を参照し、第3ベクトルの始点と、第3ベクトルの終点とを選択する。ユーザは、第1ベクトルと第3ベクトルとを選択する場合には、第1ベクトルと第3ベクトルとが条件1を満たすようにする。
図6は、本実施例1に係るインストラクション画面の一例を示す図(2)である。図6に示すインストラクション画面21は、センサ10Aの可視画像に基づき生成される画面である。ユーザは、インストラクション画面21を参照し、情報処理装置100の入力装置を操作して、第2ベクトルの始点と、第2ベクトルの終点とを選択する。図6に示す例では、第2ベクトルの始点として点20aが選択され、第2ベクトルの終点として点20cが選択されている。
図示を省略するが、情報処理装置100は、センサ10Bの可視画像に基づき、第4ベクトルの選択を受け付けるインストラクション画面を表示する。ユーザは、かかるインストラクション画面を参照し、第4ベクトルの始点と、第4ベクトルの終点とを選択する。ユーザは、第2ベクトルと第4ベクトルとを選択する場合には、第2ベクトルと第4ベクトルとが条件2を満たすようにする。ユーザは、第1ベクトルと第2ベクトルとが、条件3を満たすようにする。ユーザは、第3ベクトルと第4ベクトルとが、条件3を満たすようにする。
図7は、本実施例1に係るインストラクション画面の一例を示す図(3)である。図7に示すインストラクション画面22は、センサ10Aの可視画像に基づき生成される画面である。ユーザは、インストラクション画面22を参照し、情報処理装置100の入力装置を操作して、第1並進用点を選択する。図7に示す例では、第1並進用点として、点20aが選択されている。
図示を省略するが、情報処理装置100は、センサ10Bの可視画像に基づき、第2並進用点を受け付けるインストラクション画面を表示する。ユーザは、かかるインストラクション画面を参照し、第2並進用点を選択する。ユーザは、第1並進用点の位置と、第2並進用点の位置とが、条件4を満たすようにする。
上記のように、情報処理装置100は、インストラクション画面を表示して、ユーザから、第1ベクトルの始点および終点、第2ベクトルの始点および終点、第1並進用点を受け付ける。また、情報処理装置100は、インストラクション画面を表示して、ユーザから、第3ベクトルの始点および終点、第4ベクトルの始点および終点、第2並進用点を受け付ける。
情報処理装置100は、第1~第4ベクトル、第1、2並進用点を基にして、センサ10Aに測距された点群と、センサ10Bに測距された点群との位置合わせするためのパラメータを算出する。このように、第1~第4ベクトル、第1、2並進用点を特定するための指示を、インストラクション画面を用いて、ユーザから受け付けることで、センサ10Aの測距範囲と、センサ10Bの測距範囲との共通範囲に含まれる3次元点群の数が少なく、十分特徴的な形をしていない場合でも、位置合わせを行うことができる。
続いて、本実施例1に係る情報処理装置100の構成の一例について説明する。図8は、本実施例1に係る情報処理装置の構成を示す機能ブロック図である。図8に示すように、この情報処理装置100は、インタフェース部110と、入力部120と、表示部130と、記憶部140と、制御部150とを有する。
インタフェース部110は、センサ10Aおよびセンサ10Bから情報を受信する通信装置である。インタフェース部110は、センサ10Aから、第1距離画像情報を受信し、受信した第1距離画像情報を、制御部150に出力する。インタフェース部110は、センサ10Bから、第2距離画像情報を受信し、受信した第2距離画像情報を、制御部150に出力する。また、インタフェース部110は、後述する採点装置と接続していてもよい。
入力部120は、各種の情報を情報処理装置100に入力するための入力装置である。たとえば、入力部120は、キーボードやマウス、タッチパネル等に対応する。ユーザは、図5~図7に示したインストラクション画面を参照し、入力部120を操作して、第1ベクトルの始点および終点、第2ベクトルの始点および終点、第1並進用点を選択する。また、ユーザは、入力部120を操作して、第3ベクトルの始点および終点、第4ベクトルの始点および終点、第2並進用点を選択する。
表示部130は、制御部150から出力される各種の情報を表示する表示装置である。たとえば、表示部130は、液晶ディスプレイ、タッチパネル等に対応する。たとえば、表示部は、図5~図7に示したインストラクション画面を表示する。
記憶部140は、距離画像テーブル140aと、パラメータ140bとを有する。記憶部140は、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ(Flash Memory)などの半導体メモリ素子や、HDD(Hard Disk Drive)などの記憶装置に対応する。
距離画像テーブル140aは、センサ10Aから出力される第1距離画像情報と、センサ10Bから出力される第2距離画像情報とを保持するテーブルである。図9は、本実施例1に係る距離画像テーブルのデータ構造の一例を示す図である。
図9に示すように、この距離画像テーブル140aは、第1距離画像情報と、第2距離画像情報とを有する。第1距離画像情報には、センサ10Aに測距された点群の座標情報(各点の3次元座標)と、センサ10Aに撮影された可視画像の情報とを有する。各点群は、可視画像の各位置に対応付けられているものとする。図示を省略するが、各点には、点を一意に識別する番号が付与される。
第2距離画像情報には、センサ10Bに測距された各点群の座標情報(各点の3次元座標)と、センサ10Bに撮影された可視画像の情報とを有する。各点群は、可視画像の各位置に対応付けられているものとする。図示を省略するが、各点には、点を一意に識別する番号が付与される。
パラメータ140bは、センサ10Aに測距される点群と、センサ10Bに測距される点群との位置合わせを行うためのパラメータである。パラメータ140bには、位置合わせ回転角度の情報と、位置合わせ並進距離の情報とが含まれる。
制御部150は、第1取得部150aと、提供部150bと、第2取得部150cと、算出部150dと、出力部150eとを有する。制御部150は、CPU(Central Processing Unit)やMPU(Micro Processing Unit)などによって実現できる。また、制御部150は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などのハードワイヤードロジックによっても実現できる。
第1取得部150aは、インタフェース部110を介して、センサ10Aから第1距離画像情報を取得し、取得した第1距離画像情報を距離画像テーブル140aに登録する。第1取得部150aは、センサ10Bから第2距離画像情報を取得し、取得した第2距離画像情報を距離画像テーブル140aに登録する。
第1取得部150aは、第1距離画像情報を距離画像テーブル140aに登録する場合に、各点群とセンサ10Aとの距離の情報を、3次元座標情報に変換する。たとえば、第1取得部150aは、距離の情報を、3次元座標情報に変換する場合に、距離を3次元座標に変換する変換テーブルを利用する。
第1取得部150aは、第2距離画像情報を距離画像テーブル140aに登録する場合に、各点群とセンサ10Bとの距離の情報を、3次元座標情報に変換する。たとえば、第1取得部150aは、距離の情報を、3次元座標情報に変換する場合に、距離を3次元座標に変換する変換テーブルを利用する。
提供部150bは、インストラクション画面の情報を生成し、インストラクション画面の情報を、表示部130に出力することで、インストラクション画面を表示させる処理部である。表示部130に表示されるインストラクション画面は、図5~図7等に示したインストラクション画面20,21,22等に対応する。
提供部150bは、距離画像テーブル140aに格納された可視画像を基にして、インストラクション画面を生成する。提供部150bは、第1ベクトル、第2ベクトル、第1並進用点の選択を受けるためのインストラクション画面を、第1距離画像情報の可視画像を用いて生成する。提供部150bは、インストラクション画面の情報を生成する場合に、第1ベクトルの始点および終点を選択するのか、第2ベクトルの始点および終点を選択するのか、第1並進用点を選択するのかを区別するコメントを付与する。
提供部150bは、第3ベクトル、第4ベクトル、第2並進用点の選択を受けるためのインストラクション画面を、第2距離画像情報の可視画像を用いて生成する。提供部150bは、インストラクション画面の情報を生成する場合に、第3ベクトルの始点および終点を選択するのか、第4ベクトルの始点および終点を選択するのか、第2並進用点を選択するのかを区別するコメントを付与する。
第2取得部150cは、インストラクション画面に対してユーザに選択された情報を基にして、第1ベクトル、第2ベクトル、第1並進用点、第3ベクトル、第4ベクトル、第2並進用点を取得する処理部である。
提供部150bにより、第1ベクトルの始点および終点を選択するインストラクション画面が表示部130に表示されると、ユーザは、入力部120を操作して、第1ベクトルの始点および終点を選択する。第2取得部150cは、入力部120から、第1ベクトルの始点および終点の情報を取得する。図5に示す例では、点20aが始点として選択され、点20bが終点として選択されている。入力部120により選択される、第1ベクトルの始点および終点の情報は、可視画像の座標に対応する。
第2取得部150cは、距離画像テーブル140aの第1距離画像情報を基にして、インストラクション画面でユーザに選択された第1ベクトルの始点に対応する点の識別情報を、各点群から特定する。第1ベクトルの始点に対応する点の識別情報を、「第1始点識別情報」と表記する。
第2取得部150cは、距離画像テーブル140aの第1距離画像情報を基にして、インストラクション画面でユーザに選択された第1ベクトルの終点に対応する点の識別情報を、各点群から特定する。第1ベクトルの終点に対応する点の識別情報を、「第1終点識別情報」と表記する。
提供部150bにより、第2ベクトルの始点および終点を選択するインストラクション画面が表示部130に表示されると、ユーザは、入力部120を操作して、第2ベクトルの始点および終点を選択する。第2取得部150cは、入力部120から、第2ベクトルの始点および終点の情報を取得する。図6に示す例では、点20aが始点として選択され、点20cが終点として選択されている。入力部120により選択される、第2ベクトルの始点および終点の情報は、可視画像の座標に対応する。
第2取得部150cは、距離画像テーブル140aの第1距離画像情報を基にして、インストラクション画面でユーザに選択された第2ベクトルの始点に対応する点の識別情報を、各点群から特定する。第2ベクトルの始点に対応する点の識別情報を、「第2始点識別情報」と表記する。
第2取得部150cは、距離画像テーブル140aの第1距離画像情報を基にして、インストラクション画面でユーザに選択された第2ベクトルの終点に対応する点の識別情報を、各点群から特定する。第2ベクトルの終点に対応する点の識別情報を、「第2終点識別情報」と表記する。
提供部150bにより、第1並進用点を選択するインストラクション画面が表示部130に表示されると、ユーザは、入力部120を操作して、第1並進用点を選択する。第2取得部150cは、入力部120から、第1並進用点の情報を取得する。図7に示す例では、点20aが第1並進用点として選択されている。入力部120により選択される、第1並進用点の情報は、可視画像の座標に対応する。
第2取得部150cは、距離画像テーブル140aの第1距離画像情報を基にして、インストラクション画面でユーザに選択された第1並進用点に対応する点の識別情報を、各点群から特定する。第1並進用点に対応する点の識別情報を、「第1並進点識別情報」と表記する。
第2取得部150cは、第1始点識別情報、第1終点識別情報、第2始点識別情報、第2終点識別情報、第1並進点識別情報を、算出部150dに出力する。
提供部150bにより、第3ベクトルの始点および終点を選択するインストラクション画面が表示部130に表示されると、ユーザは、入力部120を操作して、第3ベクトルの始点および終点を選択する。第2取得部150cは、入力部120から、第3ベクトルの始点および終点の情報を取得する。入力部120により選択される、第3ベクトルの始点および終点の情報は、可視画像の座標に対応する。
第2取得部150cは、距離画像テーブル140aの第2距離画像情報を基にして、インストラクション画面でユーザに選択された第3ベクトルの始点に対応する点の識別情報を、各点群から特定する。第3ベクトルの始点に対応する点の識別情報を、「第3始点識別情報」と表記する。
第2取得部150cは、距離画像テーブル140aの第2距離画像情報を基にして、インストラクション画面でユーザに選択された第3ベクトルの終点に対応する点の識別情報を、各点群から特定する。第3ベクトルの終点に対応する点の識別情報を、「第3終点識別情報」と表記する。
提供部150bにより、第4ベクトルの始点および終点を選択するインストラクション画面が表示部130に表示されると、ユーザは、入力部120を操作して、第4ベクトルの始点および終点を選択する。第2取得部150cは、入力部120から、第4ベクトルの始点および終点の情報を取得する。入力部120により選択される、第4ベクトルの始点および終点の情報は、可視画像の座標に対応する。
第2取得部150cは、距離画像テーブル140aの第2距離画像情報を基にして、インストラクション画面でユーザに選択された第4ベクトルの始点に対応する点の識別情報を、各点群から特定する。第4ベクトルの始点に対応する点の識別情報を、「第4始点識別情報」と表記する。
第2取得部150cは、距離画像テーブル140aの第2距離画像情報を基にして、インストラクション画面でユーザに選択された第4ベクトルの終点に対応する点の識別情報を、各点群から特定する。第4ベクトルの終点に対応する点の識別情報を、「第4終点識別情報」と表記する。
提供部150bにより、第2並進用点を選択するインストラクション画面が表示部130に表示されると、ユーザは、入力部120を操作して、第2並進用点を選択する。第2取得部150cは、入力部120から、第2並進用点の情報を取得する。入力部120により選択される、第2並進用点の情報は、可視画像の座標に対応する。
第2取得部150cは、距離画像テーブル140aの第2距離画像情報を基にして、インストラクション画面でユーザに選択された第2並進用点に対応する点の識別情報を、各点群から特定する。第2並進用点に対応する点の識別情報を、「第2並進点識別情報」と表記する。
第2取得部150cは、第3始点識別情報、第3終点識別情報、第4始点識別情報、第4終点識別情報、第2並進点識別情報を、算出部150dに出力する。
算出部150dは、第1ベクトル、第2ベクトル、第3ベクトル、第4ベクトル、第1並進点、第2並進点を基にして、位置合わせのための回転角度および並進距離を算出する処理部である。算出部150dは、算出した回転角度および並進距離の情報をパラメータ140bとして、記憶部140に記憶する。パラメータ140bに含まれる位置合わせのための回転角度および並進距離を適宜、「位置合わせ回転角度」、「位置合わせ並進距離」と表記する。
たとえば、算出部150dは、次の処理を実行することで、各ベクトルの始点および終点の3次元座標、各並進用点の3次元座標を特定する。
算出部150dは、第1始点識別情報および第1終点識別情報と、距離画像テーブル140aの第1距離画像情報とを基にして、第1ベクトルの始点および終点の3次元座標を検出し、第1ベクトルを特定する。算出部150dは、第2始点識別情報および第2終点識別情報と、第1距離画像情報とを基にして、第2ベクトルの始点および終点の3次元座標を検出し、第2ベクトルを特定する。算出部150dは、第1並進識別情報と、第1距離画像情報とを基にして、第1並進用点の3次元座標を特定する。
算出部150dは、第3始点識別情報および第3終点識別情報と、距離画像テーブル140aの第2距離画像情報とを基にして、第3ベクトルの始点および終点の3次元座標を検出し、第3ベクトルを特定する。算出部150dは、第4始点識別情報および第4終点識別情報と、第2距離画像情報とを基にして、第4ベクトルの始点および終点の3次元座標を検出し、第2ベクトルを特定する。算出部150dは、第2並進識別情報と、第2距離画像情報とを基にして、第2並進用点の3次元座標を特定する。
図10は、第1~第4ベクトルおよび第1、2並進用点の一例を示す図である。図10において、点群16Aは、センサ10Aにより測距された点群である。点群16Bは、センサ10Bにより測距された点群である。点群16Aのベクトル16A-1は、第1ベクトルである。点群16Aのベクトル16A-2は、第1ベクトルである。点17Aは、第1並進用点である。
点群16Aのベクトル16B-3は、第3ベクトルである。点群16Bのベクトル16B-4は、第4ベクトルである。点17Bは、第2並進用点である。
続いて、算出部150dは、第1ベクトル、第2ベクトル、第3ベクトル、第4ベクトルをそれぞれ単位ベクトル化する。たとえば、算出部150dは、第1ベクトルを、第1ベクトルの長さで割ることで、第1ベクトルを単位ベクトル化する。他のベクトルについても同様にして、単位ベクトル化する。以下の説明では、単位ベクトル化した第1ベクトル、第2ベクトル、第3ベクトル、第4ベクトルをそれぞれ、単に、第1ベクトル、第2ベクトル、第3ベクトル、第4ベクトルと表記する。
算出部150dは、第1ベクトル、第2ベクトル、第3ベクトル、第4ベクトルの各始点を、3次元座標の原点の位置に移動させる。
算出部150dは、式(1)の合計距離Dが最小となる第3ベクトルの回転角度を算出する。式(1)において、D13は、第1ベクトルの終点と、第3ベクトルの終点との距離を示す。D24は、第2ベクトルの終点と、第4ベクトルの終点との距離を示す。たとえば、回転角度には、X回転角度、Y回転角度、Z回転角度を有する。X回転角度は、x軸周りの回転角度(ロール)に対応する。Y回転角度は、y軸周りの回転角度(ピッチ)に対応する。Z回転角度は、z軸周りの回転角度(ヨー)を示す。
D=D13+D24・・・(1)
算出部150dは、第1ベクトルおよび第2ベクトルを固定し、第3ベクトルの回転角度を変更して、最小となる合計距離Dを算出する。たとえば、算出部150dは、X回転角度、Y回転角度、Z回転角度を少しずつ変更して、合計距離Dを算出する処理を繰り返し実行し、合計距離Dが最小となるX回転角度、Y回転角度、Z回転角度を探索する。なお、算出部150dは、第3ベクトルと第4ベクトルとの位置関係を維持する。すなわち、第3ベクトルに対する回転角度の変更に合わせて、第4ベクトルの回転角度を変更する。合計距離Dが最小となる回転角度が「位置合わせ回転角度」となる。
算出部150dは、位置合わせ回転角度を算出すると、並進距離を算出する処理を行う。算出部150dは、第2並進用点の3次元座標を、位置合わせ回転角度だけ回転させる。算出部150dは、位置合わせ回転角度だけ回転させた第2並進用点の3次元座標と、第1並進用点の3次元座標との差分を、位置合わせ並進距離として算出する。位置合わせ並進距離には、X並進距離、Y並進距離、Z並進距離が含まれる。
X並進距離は、第1並進用点のx座標と、第2並進用点のx座標との差分である。Y並進距離は、第1並進用点のy座標と、第2並進用点のy座標との差分である。Z並進距離は、第1並進用点のz座標と、第2並進用点のz座標との差分である。
算出部150dは、上記処理により算出した位置合わせ回転角度と、位置合わせ並進距離とを、パラメータ140dとして、記憶部140に記憶する。
出力部150eは、パラメータ140bを、採点装置等の外部装置に出力する処理部である。
次に、本実施例1に係る情報処理装置100の処理手順の一例について説明する。図11は、本実施例1に係る情報処理装置の処理手順を示すフローチャートである。図11に示すように、この情報処理装置100の第1取得部150aは、センサ10A、10Bから第1距離画像情報、第2距離画像情報を取得する(ステップS101)。
情報処理装置100の提供部150bは、インストラクション画面の情報を生成し、インストラクション画面を表示部130に表示させる(ステップS102)。
情報処理装置100の第2取得部150cは、ユーザによる選択を基にして、センサ10Aの点群から、第1ベクトルの始点および終点、第2ベクトルの始点および終点、第1並進用点を取得する(ステップS103)。第2取得部150cは、ユーザによる選択を基にして、センサ10Bの点群から、第3ベクトルの始点および終点、第4ベクトルの始点および終点、第2並進用点を取得する(ステップS104)。
情報処理装置100の算出部150dは、第1~第4ベクトルを単位ベクトルに変換する(ステップS105)。算出部150dは、始点が3次元座標の原点となるように、第1~第4ベクトルを移動させる(ステップS106)。
算出部150dは、合計距離Dが最小となるセンサ10Bの終点の回転角度(位置合わせ回転角度)を算出する(ステップS107)。算出部150dは、第2並進用点を、位置合わせ回転角度だけ回転させる(ステップS108)。
算出部150dは、第1並進用点の座標と、回転させた第2並進用点の座標との差分を並進距離(位置合わせ並進距離)として算出する(ステップS109)。算出部150dは、位置合わせ回転角度と、位置合わせ並進距離とをパラメータ140bとして記憶部140に記憶させる(ステップS110)。
次に、本実施例1に係る情報処理装置100の効果について説明する。情報処理装置100は、インストラクション画面を表示して、条件1~4を満たす第1~第4ベクトル、第1、2並進用点を取得し、第1~第4ベクトル、第1、2並進用点を基にして、センサ10Aに測距された点群と、センサ10Bに測距された点群との位置合わせするためのパラメータを算出する。このように、条件1~4を満たす第1~第4ベクトル、第1、2並進用点を特定するための選択を、インストラクション画面を用いて、ユーザから受け付けることで、センサ10Aの測距範囲と、センサ10Bの測距範囲との共通範囲に含まれる3次元点群の数が少なく、十分特徴的な形をしていない場合でも、位置合わせを行うことができる。
ところで、実施例1で用いるマーカは、図2に示した壁15に埋め込まれているものではなく、持ち運び可能なものであってもよい。図12は、持ち運び可能なマーカ配置台の一例を示す図である。図12に示すマーカ配置台30は、マーカ30-1~30-4が含まれる。マーカ30-1~30-3は、水平方向に並んでいる。マーカ30-1~30-3を通る直線と、マーカ30-1および30-4を通る直線とのなす角度を90度とする。センサ10Aの測距可能な範囲を、範囲30Aとする。センサ10Bの測距可能な範囲を、範囲30Bとする。
情報処理装置100は、マーカ配置台30の可視画像を基にして、インストラクション画面の情報を生成し、表示部130に表示させる。情報処理装置100は、インストラクション画面を参照するユーザから、第1~第4ベクトルの始点および終点、第1、2並進用点の選択を受け付ける。
続いて、本実施例1に示した情報処理装置100が算出したパラメータ140bを用いて、体操を行う選手の演技を採点する採点装置の一例について説明する。ここでは、採点装置について説明を行うが、採点装置に限らず、複数のセンサを用いて被写体のセンシングを行う装置であれば、情報処理装置100が算出したパラメータ140bを利用することが可能である。
図13は、採点装置の構成を示す機能ブロック図である。図13に示すように、この採点装置200は、センサ10A、センサ10B、表示装置250に接続される。センサ10A、センサ10Bは、図1に示したセンサ10A、センサ10Bに対応する。図12に示すセンサ10A,10Bの配置状況と、図1に示したセンサ10A,10Bの配置状況とは同一であるものとする。設置状況は、センサ10A,10Bの配置位置、センサの方向を示す。センサ10A,10Bは、選手7Aを含めて、第1距離画像情報、第2距離画像情報を測定する。
表示装置250は、採点装置から出力される情報を表示する表示装置である。表示装置250は、たとえば、液晶ディスプレイ、タッチパネル等に対応する。
採点装置200は、記憶部201、取得部202、位置合わせ部203、認識部204、出力部205を有する。
記憶部201は、パラメータ140bを有する。記憶部201は、RAM、ROM、フラッシュメモリなどの半導体メモリ素子や、HDDなどの記憶装置に対応する。パラメータ140bは、図8で説明したパラメータ140bに対応する情報である。
取得部202は、センサ10Aから第1距離画像情報を取得し、センサ10bから第2距離画像情報を取得する。取得部202は、第1距離画像情報と第1背景フレームとを基にして、第1距離画像情報に含まれる被写体6を構成する第1点群を抽出する。取得部202は、第2距離画像情報と第2背景フレームとを基にして、第2距離画像情報に含まれる被写体6を構成する第2点群を抽出する。取得部202は、第1点群の座標情報と、第1点群の座標情報とを、位置合わせ部203に出力する。ここで、第1背景フレームは、被写体6を含まない第1距離画像情報を示すものであり、事前に設定される。第2背景フレームは、被写体6を含まない第2距離画像情報を示すものであり、事前に設定される。
位置合わせ部203は、パラメータ140bを基にして、第1点群と第2点群との位置合わせを行う処理部である。位置合わせ部203は、第2点群に含まれる各点の座標を、パラメータ140bに含まれる位置合わせ回転角度、位置合わせ並進距離に基づいて位置合わせする。位置合わせ部203は、位置合わせした第2点群と、第1点群との情報を、認識部204に出力する。
認識部204は、位置合わせされた第2点群および第1点群を組み合わせて、被写体6の骨格を認識する処理部である。認識部204は、時刻毎に被写体6の骨格の位置を検出し、骨格の位置の推移と採点基準を定義したテーブル(図示略)とを比較して、被写体6の演技を採点する。認識部204は、採点結果の情報を、出力部205に出力する。たとえば、採点結果の情報には、D(Difficulty)スコア、E(Execution)スコアが含まれる。
出力部205は、採点結果の情報を基にして、採点画面情報を生成する処理部である。出力部205は、採点画面情報を、表示装置250に出力して表示させる。図14は、採点画面の一例を示す図である。図14に示すように、採点画面情報65には、領域65a,65b,65cが含まれる。
領域65aは、Dスコア、Eスコア等の採点結果を表示する領域である。領域65bは、カメラ等により撮影された被写体6の映像を表示する領域である。領域65cは、位置合わせされた第一点群および第二点群から推定される骨格の情報を基にして推定される3Dモデルを表示する領域である。
続いて、採点装置200の位置合わせ部203の処理手順の一例について説明する。図15は、採点装置の位置合わせ部の処理手順を示すフローチャートである。図15に示す例では、第2点群の位置合わせを行う場合について説明するが、第1点群も第2点群と同様にして位置合わせが行われる。
図15に示すように、採点装置200の位置合わせ部203は、第2点群をX並進距離分、並進させる(ステップS201)。位置合わせ部203は、第2点群をY並進距離分、並進させる(ステップS202)。位置合わせ部203は、第2点群をZ並進距離分、並進させる(ステップS203)。
位置合わせ部203は、X軸を中心に、第2点群をX回転角度分、回転させる(ステップS204)。位置合わせ部203は、Y軸を中心に、第2点群をY回転角度分、回転させる(ステップS205)。位置合わせ部203は、Z軸を中心に、第2点群をZ回転角度分、回転させる(ステップS206)。
上記のように、採点装置200は、情報処理装置100により生成されるパラメータ140bを基にして、センサ10A,10Bにより測定される点群の位置合わせを行うことで、被写体全体の点群を正確に特定でき、採点精度を向上させることができる。
図16は、位置合わせ後の第1点群と第2点群との一例を示す図である。図16では説明の便宜上、図3に示した点群16A(第1点群)と、点群16B(第2点群)との位置合わせ結果を示す。図16に示すように、各マーカの位置が精度よく一致している。
なお、本実施例1では、情報処理装置100と、採点装置200とが別々の装置で実現される場合について説明したがこれに限定されるものではない。たとえば、情報処理装置100の機能に、採点装置200の機能が含まれていてもよい。すなわち、情報処理装置100の制御部150に、採点装置200の位置合わせ部203、認識部240、出力部205等が含まれていてもよい。
次に、本実施例2に係る情報処理装置について説明する。本実施例2に係る情報処理装置は、実施例1と同様にして、センサ10Aとセンサ10Bに接続される。
本実施例2に係る情報処理装置は、マーカの中心座標を自動で検出する。また、一つ一つのマーカを異なる形状で予め決められた位置関係で配置しておくことで、各マークの形状を認識して、条件1~4を満たす第1~第4ベクトル、第1、2並進用点を自動で検出する。このような処理を実行することで、ユーザが条件1~4を満たすように各ベクトル、並進用点を選択しなくても、位置合わせを行うためのパラメータを算出することができる。
図17は、本実施例2で用いるマーカの一例を示す図である。図17に示すように、壁35には、マーカ35-1~35-4が含まれる。マーカ35-1~35-3は、水平方向に並んでいる。マーカ35-1~35-3を通る直線と、マーカ35-1および35-4を通る直線とのなす角度を90度とする。センサ10Aの測距可能な範囲を、範囲35Aとする。センサ10Bの測距可能な範囲を、範囲35Bとする。
マーカ35-1~35-4はそれぞれ固有の形状を有している。マーカ35-1は「3角形」である。マーカ35-2は「4角形(ダイヤ)」である。マーカ35-3は「5角形」である。マーカ35-4は「6角形」である。
図18は、本実施例2に係る情報処理装置の構成を示す機能ブロック図である。図18に示すように、この情報処理装置300は、インタフェース部210と、入力部320と、表示部330と、記憶部340と、制御部350とを有する。
インタフェース部210は、センサ10Aおよびセンサ10Bから情報を受信する通信装置である。インタフェース部210は、センサ10Aから、第1距離画像情報を受信し、受信した第1距離画像情報を、制御部350に出力する。インタフェース部210は、センサ10Bから、第2距離画像情報を受信し、受信した第2距離画像情報を、制御部350に出力する。また、インタフェース部210は、実施例1で説明した採点装置200と接続していてもよい。
入力部320は、各種の情報を情報処理装置100に入力するための入力装置である。たとえば、入力部120は、キーボードやマウス、タッチパネル等に対応する。ユーザは、入力部120を操作して、各種の情報を入力する。
表示部330は、制御部350から出力される各種の情報を表示する表示装置である。たとえば、表示部330は、液晶ディスプレイ、タッチパネル等に対応する。
記憶部340は、距離画像テーブル340aと、パラメータ340bとを有する。記憶部340は、RAM、ROM、フラッシュメモリなどの半導体メモリ素子や、HDDなどの記憶装置に対応する。
距離画像テーブル340aは、センサ10Aから出力される第1距離画像情報と、センサ10Bから出力される第2距離画像情報とを保持するテーブルである。距離画像テーブル340aのデータ構造は、図9に示した距離画像テーブル140aのデータ構造と同様である。
パラメータ340bは、センサ10Aに測距される点群と、センサ10Bに測距される点群との位置合わせを行うためのパラメータである。パラメータには、位置合わせ回転角度の情報と、位置合わせ並進距離の情報とが含まれる。
マーカ定義情報340cは、各マーカの特徴と、各ベクトルの始点、終点、並進用点との対応関係を示す情報である。図19は、マーカ定義情報のデータ構造の一例を示す図である。図19に示すように、マーカ定義情報は、マーカ特徴と、各ベクトルの始点および終点、並進用点とをオンオフのフラグで関連付ける。オンは、関連づけが有効であり、オフは関連づけが無効であることを示す。
たとえば、マーカ特徴「3角形」のマーカは、第1ベクトルの始点となることが定義される。マーカ特徴「4角形」のマーカは、第1ベクトルの終点、第2ベクトルの始点、第3ベクトルの始点、第4ベクトルの始点、並進用点となることを定義される。マーカ特徴「5角形」のマーカは、第3ベクトルの終点となることが定義される。マーカ特徴「6角形」のマーカは、第2ベクトルの終点、第4ベクトルの終点となることが定義される。
図18の説明に戻る。制御部350は、第1取得部350aと、第2取得部350bと、算出部350cと、出力部350dとを有する。制御部350は、CPUやMPUなどによって実現できる。また、制御部350は、ASICやFPGAなどのハードワイヤードロジックによっても実現できる。
第1取得部350aは、インタフェース部310を介して、センサ10Aから第1距離画像情報を取得し、取得した第1距離画像情報を距離画像テーブル340aに登録する。第1取得部350aは、センサ10Bから第2距離画像情報を取得し、取得した第2距離画像情報を距離画像テーブル340aに登録する。第1取得部350aに関するその他の説明は、実施例1で説明した第1取得部150aに関する説明と同様である。
第2取得部350bは、第1、2距離画像情報の各可視画像と、マーカ定義情報340cとを基にして、第1ベクトル、第2ベクトル、第1並進用点、第3ベクトル、第4ベクトル、第2並進用点を取得する処理部である。
第2取得部350bは、距離画像テーブル340aの可視画像に対して、多角形(3角形、4角形、5角形、6角形)のテンプレートとのパターンマッチングを実行し、3角形、4角形、5角形、6角形のマーカを検出する。第2取得部350bは、マーカ定義情報340cを基にして、どのマーカが、いずれのベクトルの始点、終点、いずれの並進用点に対応するかを判定し、第1ベクトル、第2ベクトル、第1並進用点、第3ベクトル、第4ベクトル、第2並進用点を取得する。
第2取得部350bは、第1距離画像情報の可視画像上の3角形のマーカ(マーカの中心)に含まれる点(第1ベクトルの始点)を選択する。第2取得部350bは、3角形のマーカに含まれる点が複数存在する場合には、いずれか一つの点を選択する。第2取得部350bは、距離画像テーブル340aの第1距離画像情報を基にして、選択した点(第1ベクトルの始点)に対応する点の識別情報を、各点群から特定する。第1ベクトルの始点に対応する点の識別情報を、「第1始点識別情報」と表記する。
第2取得部350bは、第1距離画像情報の可視画像上の4角形のマーカ(マーカの中心)に含まれる点(第1ベクトルの終点、第2ベクトルの始点、第1並進用点)を選択する。第2取得部350bは、4角形のマーカに含まれる点が複数存在する場合には、いずれか一つの点を選択する。
第2取得部350bは、距離画像テーブル340aの第1距離画像情報を基にして、選択した点(第1ベクトルの終点、第2ベクトルの始点、第1並進用点)に対応する点の識別情報を、各点群から特定する。第1ベクトルの終点に対応する点の識別情報を、「第1終点識別情報」と表記する。第2ベクトルの始点に対応する点の識別情報を「第2始点識別情報」と表記する。第1並進用点に対応する点の識別情報を「第1並進点識別情報」と表記する。図17に示す例では、第1終点識別情報、第2始点識別情報、第1並進点識別情報に示される点は、同じ点となる。
第2取得部350bは、第1距離画像情報の可視画像上の6角形のマーカ(マーカの中心)に含まれる点(第2ベクトルの終点)を選択する。第2取得部350bは、6角形のマーカに含まれる点が複数存在する場合には、いずれか一つの点を選択する。第2取得部350bは、距離画像テーブル340aの第1距離画像情報を基にして、選択した点(第2ベクトルの終点)に対応する点の識別情報を、各点群から特定する。第2ベクトルの終点に対応する点の識別情報を、「第2終点識別情報」と表記する。
第2取得部350bは、第2距離画像情報の可視画像上の4角形のマーカ(マーカの中心)に含まれる点(第3ベクトルの始点、第4ベクトルの始点、第2並進用点)を選択する。第2取得部350bは、4角形のマーカに含まれる点が複数存在する場合には、いずれか一つの点を選択する。
第2取得部350bは、距離画像テーブル340aの第2距離画像情報を基にして、選択した点(第3ベクトルの始点、第4ベクトルの始点、第2並進用点)に対応する点の識別情報を、各点群から特定する。第3ベクトルの始点に対応する点の識別情報を、「第3始点識別情報」と表記する。第4ベクトルの始点に対応する点の識別情報を、「第4始点識別情報」と表記する。第2並進用点に対応する点の識別情報を「第2並進点識別情報」と表記する。図17に示す例では、第3始点識別情報、第4始点識別情報、第2並進点識別情報に示される点は、同じ点となる。
第2取得部350bは、第2距離画像情報の可視画像上の5角形のマーカ(マーカの中心)に含まれる点(第3ベクトルの終点)を選択する。第2取得部350bは、5角形のマーカに含まれる点が複数存在する場合には、いずれか一つの点を選択する。第2取得部350bは、距離画像テーブル340aの第2距離画像情報を基にして、選択した点(第3ベクトルの終点)に対応する点の識別情報を、各点群から特定する。第3ベクトルの終点に対応する点の識別情報を、「第3終点識別情報」と表記する。
第2取得部350bは、第2距離画像情報の可視画像上の6角形のマーカ(マーカの中心)に含まれる点(第4ベクトルの終点)を選択する。第2取得部350bは、6角形のマーカに含まれる点が複数存在する場合には、いずれか一つの点を選択する。第2取得部350bは、距離画像テーブル340aの第2距離画像情報を基にして、選択した点(第4ベクトルの終点)に対応する点の識別情報を、各点群から特定する。第4ベクトルの終点に対応する点の識別情報を、「第4終点識別情報」と表記する。
第2取得部350bは、第1始点識別情報、第1終点識別情報、第2始点識別情報、第2終点識別情報、第1並進点識別情報を、算出部350cに出力する。第2取得部350bは、第3始点識別情報、第3終点識別情報、第4始点識別情報、第4終点識別情報、第2並進点識別情報を、算出部350cに出力する。
算出部350cは、第1ベクトル、第2ベクトル、第3ベクトル、第4ベクトル、第1並進点、第2並進点を基にして、位置合わせのための回転角度および並進距離を算出する処理部である。算出部350cは、算出した回転角度および並進距離の情報をパラメータ340bとして、記憶部340に記憶する。算出部350cの処理は、実施例1で説明した算出部150dの処理と同様である。
出力部350dは、パラメータ340bを、実施例1で説明した採点装置200等の外部装置に出力する処理部である。
次に、本実施例2に係る情報処理装置300の処理手順の一例について説明する。図20は、本実施例2に係る情報処理装置の処理手順を示すフローチャートである。図20に示すように、この情報処理装置300の第1取得部350aは、センサ10A、10Bから第1距離画像情報、第2距離画像情報を取得する(ステップS301)。
情報処理装置300の第2取得部350bは、マーカ定義情報340cを基にして、センサ10Aの点群から、第1ベクトルの始点および終点、第2ベクトルの始点および終点、第1並進用点を取得する(ステップS302)。第2取得部350bは、マーカ定義情報340cを基にして、センサ10Bの点群から、第3ベクトルの始点および終点、第4ベクトルの始点および終点、第2並進用点を取得する(ステップS303)。
情報処理装置300の算出部350cは、第1~第4ベクトルを単位ベクトルに変換する(ステップS304)。算出部350cは、始点が3次元座標の原点となるように、第1~第4ベクトルを移動させる(ステップS305)。
算出部350cは、合計距離Dが最小となるセンサ10Bの終点の回転角度(位置合わせ回転角度)を算出する(ステップS306)。算出部350cは、第2並進用点を、位置合わせ回転角度だけ回転させる(ステップS307)。
算出部350cは、第1並進用点の座標と、回転させた第2並進用点の座標との差分を並進距離(位置合わせ並進距離)として算出する(ステップS308)。算出部350cは、位置合わせ回転角度と、位置合わせ並進距離とをパラメータ340bとして記憶部340に記憶させる(ステップS309)。
次に、本実施例2に係る情報処理装置300の効果について説明する。情報処理装置300は、一つ一つのマーカを異なる形状で予め決められた位置関係で配置しておくことで、各マークの形状を認識して、条件1~4を満たす第1~第4ベクトル、第1、2並進用点を自動で検出する。このような処理を実行することで、ユーザが条件1~4を満たすように各ベクトル、並進用点を選択しなくても、位置合わせを行うためのパラメータを算出することができる。
なお、本実施例2では、情報処理装置300と、採点装置200とが別々の装置で実現される場合について説明したがこれに限定されるものではない。たとえば、情報処理装置300の機能に、採点装置200の機能が含まれていてもよい。すなわち、情報処理装置300の制御部350に、採点装置200の位置合わせ部203、認識部240、出力部205等が含まれていてもよい。
実施例1で説明したように、センサ10A、10B間において、実空間上で水平方向と垂直方向とのベクトル(第1~第4ベクトルの始点および終点)及び実空間上で同じ位置(第1、2並進用点)を取得することができれば、位置合わせを行うことができる。実施例1では、壁15にマーカを配置する場合について説明したが、第1~第4ベクトルの始点および終点、第1、2並進用点を既存の器具や被写体から取得できる場合には、既存の器具や被写体から取得してもよい。
本実施例3に係る情報処理装置は、体操の平行台が水平であること、選手が直立して一旦動きをとめている瞬間があること等を利用し、インストラクション画面を表示して、ユーザから、第1~第4ベクトルの始点および終点、第1、2並進用点の選択を受け付ける。
図21は、平行台で演技する選手を示す図である。図21において、センサ10Aの測距可能な範囲を範囲45Aとする。センサ10Bの測距可能な範囲を範囲45Bとする。平行台46は、平行であるため、水平ベクトル46A、46B(第1ベクトル、第3ベクトル)を取得することができる。
平行台46上で、選手が演技を行っており、時刻T1における選手を選手47T1とする。時刻T2における選手を選手47T2とする。時刻T3における選手を選手47T3とする。時刻T1において、選手47T1は直立しているため、垂直ベクトル47A(第2ベクトル)を取得することができる。時刻T3において、選手47T3は直立しているため、垂直ベクトル47B(第4ベクトル)を取得することができる。
また、時刻T2において、範囲45Aと範囲45Bとが重複する領域で、選手47T2が位置しており、並進合わせ用の点47C(第1並進用点、第2並進用点)を取得することができる。なお、同じ位置であれば、範囲45Aと範囲45Bとが重複する領域から、点47C以外の点を並進合わせ用の点として取得してもよい。
図22は、本実施例3に係るインストラクション画面の一例を示す図(1)である。図22に示すインストラクション画面50は、センサ10Aの可視画像に基づき生成される画面である。ユーザは、インストラクション画面50を参照し、情報処理装置400の入力装置を操作して、第1ベクトルの始点と、第1ベクトルの終点とを選択する。図22に示す例では、第1ベクトルの始点として点20aが選択され、第1ベクトルの終点として点50bが選択されている。
図示を省略するが、情報処理装置400は、センサ10Bの可視画像に基づき、第3ベクトルの選択を受け付けるインストラクション画面を表示する。ユーザは、かかるインストラクション画面を参照し、第3ベクトルの始点と、第3ベクトルの終点とを選択する。ユーザは、第1ベクトルと第3ベクトルとを選択する場合には、第1ベクトルと第3ベクトルとが条件1を満たすようにする。
図23は、本実施例3に係るインストラクション画面の一例を示す図(2)である。図23に示すインストラクション画面51は、センサ10Aの可視画像に基づき生成される画面である。ユーザは、インストラクション画面51を参照し、情報処理装置400の入力装置を操作して、第2ベクトルの始点と、第2ベクトルの終点とを選択する。図23に示す例では、第2ベクトルの始点として点51aが選択され、第2ベクトルの終点として点51bが選択されている。
図示を省略するが、情報処理装置400は、センサ10Bの可視画像に基づき、第4ベクトルの選択を受け付けるインストラクション画面を表示する。ユーザは、かかるインストラクション画面を参照し、第4ベクトルの始点と、第4ベクトルの終点とを選択する。ユーザは、第2ベクトルと第4ベクトルとを選択する場合には、第2ベクトルと第4ベクトルとが条件2を満たすようにする。ユーザは、第1ベクトルと第2ベクトルとが、条件3を満たすようにする。ユーザは、第3ベクトルと第4ベクトルとが、条件3を満たすようにする。
図24は、本実施例3に係るインストラクション画面の一例を示す図(3)である。図24に示すインストラクション画面52は、センサ10Aの可視画像に基づき生成される画面である。ユーザは、インストラクション画面52を参照し、情報処理装置400の入力装置を操作して、第1並進用点を選択する。図24に示す例では、第1並進用点として、点52aが選択されている。
図示を省略するが、情報処理装置400は、センサ10Bの可視画像に基づき、第2並進用点を受け付けるインストラクション画面を表示する。ユーザは、かかるインストラクション画面を参照し、第2並進用点を選択する。ユーザは、第1並進用点の位置と、第2並進用点の位置とが、条件4を満たすようにする。
上記のように、情報処理装置400は、実施例1で説明したマーカの代わりに、体操の平行台が水平であること、選手が直立して一旦動きをとめている瞬間があること等を利用し、インストラクション画面を表示する。このため、実施例1で説明したようなマーカを用いなくても、第1~第4ベクトル、第1、2並進用点を取得することができる。
続いて、本実施例3に係る情報処理装置400の構成の一例について説明する。図25は、本実施例3に係る情報処理装置の構成を示す機能ブロック図である。図25に示すように、この情報処理装置400は、インタフェース部410と、入力部420と、表示部430と、記憶部440と、制御部450とを有する。
インタフェース部410は、センサ10Aおよびセンサ10Bから情報を受信する通信装置である。インタフェース部410は、センサ10Aから、第1距離画像情報を受信し、受信した第1距離画像情報を、制御部450に出力する。インタフェース部410は、センサ10Bから、第2距離画像情報を受信し、受信した第2距離画像情報を、制御部450に出力する。また、インタフェース部110は、後述する採点装置と接続していてもよい。
入力部420は、各種の情報を情報処理装置400に入力するための入力装置である。たとえば、入力部420は、キーボードやマウス、タッチパネル等に対応する。ユーザは、図22~図24に示したインストラクション画面を参照し、入力部420を操作して、第1ベクトルの始点および終点、第2ベクトルの始点および終点、第1並進用点を選択する。また、ユーザは、入力部420を操作して、第3ベクトルの始点および終点、第4ベクトルの始点および終点、第2並進用点を選択する。
表示部430は、制御部450から出力される各種の情報を表示する表示装置である。たとえば、表示部430は、液晶ディスプレイ、タッチパネル等に対応する。たとえば、表示部は、図22~図24に示したインストラクション画面を表示する。
記憶部440は、距離画像テーブル440aと、パラメータ440bとを有する。記憶部440は、RAM、ROM、フラッシュメモリなどの半導体メモリ素子や、HDDなどの記憶装置に対応する。
距離画像テーブル440aは、センサ10Aから出力される各時刻の第1距離画像情報と、センサ10Bから出力される各時刻の第2距離画像情報とを保持するテーブルである。図26は、本実施例3に係る距離画像テーブルのデータ構造の一例を示す図である。
図26に示すように、この距離画像テーブル440aは、テーブル441,442を有する。テーブル441は、時刻と、かかる時刻にセンサ10Aに測距された第1距離画像情報とを対応付けるテーブルである。テーブル442は、時刻と、かかる時刻にセンサ10Bに測距された第2距離画像情報とを対応付けるテーブルである。第1距離画像情報および第2距離画像情報に関する説明は、実施例1で説明したものと同様である。
パラメータ440bは、センサ10Aに測距される点群と、センサ10Bに測距される点群との位置合わせを行うためのパラメータである。パラメータ440bには、位置合わせ回転角度の情報と、位置合わせ並進距離の情報とが含まれる。
制御部450は、第1取得部450aと、提供部450bと、第2取得部450cと、算出部450dと、出力部450eとを有する。制御部450は、CPUやMPUなどによって実現できる。また、制御部450は、ASICやFPGAなどのハードワイヤードロジックによっても実現できる。
第1取得部450aは、インタフェース部410を介して、各時刻において、センサ10Aから第1距離画像情報を取得し、取得した第1距離画像情報を距離画像テーブル440aのテーブル441に登録する。第1取得部150aは、各時刻において、センサ10Bから第2距離画像情報を取得し、取得した第2距離画像情報を距離画像テーブル440aのテーブル442に登録する。
第1取得部450aは、第1距離画像情報を距離画像テーブル440aのテーブル441に登録する場合に、各点群とセンサ10Aとの距離の情報を、3次元座標情報に変換する。たとえば、第1取得部450aは、距離の情報を、3次元座標情報に変換する場合に、距離を3次元座標に変換する変換テーブルを利用する。
第1取得部450aは、第2距離画像情報を距離画像テーブル440aのテーブル442に登録する場合に、各点群とセンサ10Bとの距離の情報を、3次元座標情報に変換する。たとえば、第1取得部450aは、距離の情報を、3次元座標情報に変換する場合に、距離を3次元座標に変換する変換テーブルを利用する。
提供部450bは、インストラクション画面の情報を生成し、インストラクション画面の情報を、表示部430に出力することで、インストラクション画面を表示させる処理部である。表示部430に表示されるインストラクション画面は、図22~図24等に示したインストラクション画面50,51,52等に対応する。
提供部450bは、距離画像テーブル440aに格納された可視画像を基にして、インストラクション画面を生成する。提供部450bは、第1ベクトルの選択を受けるためのインストラクション画面を、第1距離画像情報の可視画像を用いて生成する。提供部450bは、インストラクション画面の情報を生成する場合に、第1ベクトルの始点および終点を選択する旨のコメントを付与する。
提供部450bは、第2ベクトルの選択を受け付けるためのインストラクション画面を生成する場合には、次の処理を行う。提供部450bは、テーブル441の各時刻の第1距離画像情報(可視画像)のうち、垂直方向に所定の長さ以上のエッジを有する可視画像を選択する。たとえば、垂直方向に所定の長さ以上のエッジを有する可視画像には、直立した選手が含まれている。提供部450bは、選択した可視画像を用いて、第2ベクトルの選択を受け付けるためのインストラクション画面を生成する。提供部450bは、インストラクション画面の情報を生成する場合に、第2ベクトルの始点および終点を選択する旨のコメントを付与する。
提供部450bは、第1並進用点の選択を受け付けるためのインストラクション画面を生成する場合には、次の処理を行う。提供部450bは、テーブル441の各時刻の第1距離画像情報(可視画像)のうち、範囲45Aおよび範囲45Bの重複する重複領域において、選手が含まれる可視画像を選択する。たとえば、提供部450bは、重複領域について、背景画像を保持しておき、可視画像の重複領域と、背景画像との差分を用いて、重複画像に選手が含まれるか否かを判定してもよい。提供部450bは、選択した可視画像を用いて、第1並進用点の選択を受け付けるためのインストラクション画面を生成する。提供部450bは、インストラクション画面の情報を生成する場合に、第1並進用点を選択する旨のコメントを付与する。
提供部450bは、第3ベクトルの選択を受けるためのインストラクション画面を、第2距離画像情報の可視画像を用いて生成する。提供部450bは、インストラクション画面の情報を生成する場合に、第3ベクトルの始点および終点を選択する旨のコメントを付与する。
提供部450bは、第4ベクトルの選択を受け付けるためのインストラクション画面を生成する場合には、次の処理を行う。提供部450bは、テーブル442の各時刻の第2距離画像情報(可視画像)のうち、垂直方向に所定の長さ以上のエッジを有する可視画像を選択する。たとえば、垂直方向に所定の長さ以上のエッジを有する可視画像には、直立した選手が含まれている。提供部450bは、選択した可視画像を用いて、第4ベクトルの選択を受け付けるためのインストラクション画面を生成する。提供部450bは、インストラクション画面の情報を生成する場合に、第4ベクトルの始点および終点を選択する旨のコメントを付与する。
提供部450bは、第2並進用点の選択を受け付けるためのインストラクション画面を生成する場合には、次の処理を行う。提供部450bは、テーブル442の各時刻の第2距離画像情報(可視画像)のうち、範囲45Aおよび範囲45Bの重複する重複領域において、選手が含まれる可視画像を選択する。たとえば、提供部450bは、重複領域について、背景画像を保持しておき、可視画像の重複領域と、背景画像との差分を用いて、重複画像に選手が含まれるか否かを判定してもよい。提供部450bは、選択した可視画像を用いて、第2並進用点の選択を受け付けるためのインストラクション画面を生成する。提供部450bは、インストラクション画面の情報を生成する場合に、第2並進用点を選択する旨のコメントを付与する。
第2取得部450cは、インストラクション画面に対してユーザに選択された情報を基にして、第1ベクトル、第2ベクトル、第1並進用点、第3ベクトル、第4ベクトル、第2並進用点を取得する処理部である。第2取得部450cは、実施例1の第2取得部150cと同様の処理を行い、第1始点識別情報、第1終点識別情報、第2始点識別情報、第2終点識別情報、第1並進点識別情報を特定する。第2取得部450cは、実施例1の第2取得部150cと同様の処理を行い、第3始点識別情報、第3終点識別情報、第4始点識別情報、第4終点識別情報、第2並進点識別情報を特定する。
第2取得部450cは、第1始点識別情報、第1終点識別情報、第2始点識別情報、第2終点識別情報、第1並進点識別情報、第3始点識別情報、第3終点識別情報、第4始点識別情報、第4終点識別情報、第2並進点識別情報を、算出部450dに出力する。
算出部450dは、第1ベクトル、第2ベクトル、第3ベクトル、第4ベクトル、第1並進点、第2並進点を基にして、位置合わせのための回転角度および並進距離を算出する処理部である。算出部450dは、算出した回転角度および並進距離の情報をパラメータ440bとして、記憶部440に記憶する。算出部450dの処理は、実施例1で説明した算出部150dの処理と同様である。
出力部450eは、パラメータ440bを、実施例1で説明した採点装置200等の外部装置に出力する処理部である。
次に、本実施例3に係る情報処理装置400の処理手順の一例について説明する。図27は、本実施例3に係る情報処理装置の処理手順を示すフローチャートである。図27に示すように、この情報処理装置400の第1取得部450aは、センサ10A、10Bから各時刻の第1距離画像情報、第2距離画像情報を取得する(ステップS401)。
情報処理装置400の提供部450bは、インストラクション画面を生成するための可視画像を選択する(ステップS402)。提供部450bは、インストラクション画面の情報を生成し、インストラクション画面を表示部430に表示させる(ステップS403)。
情報処理装置400の第2取得部450cは、ユーザによる選択を基にして、センサ10Aの点群から、第1ベクトルの始点および終点、第2ベクトルの始点および終点、第1並進用点を取得する(ステップS404)。第2取得部450cは、ユーザによる選択を基にして、センサ10Bの点群から、第3ベクトルの始点および終点、第4ベクトルの始点および終点、第2並進用点を取得する(ステップS405)。
情報処理装置400の算出部450dは、第1~第4ベクトルを単位ベクトルに変換する(ステップS406)。算出部450dは、始点が3次元座標の原点となるように、第1~第4ベクトルを移動させる(ステップS407)。
算出部450dは、合計距離Dが最小となるセンサ10Bの終点の回転角度(位置合わせ回転角度)を算出する(ステップS408)。算出部450dは、第2並進用点を、位置合わせ回転角度だけ回転させる(ステップS409)。
算出部450dは、第1並進用点の座標と、回転させた第2並進用点の座標との差分を並進距離(位置合わせ並進距離)として算出する(ステップS410)。算出部450dは、位置合わせ回転角度と、位置合わせ並進距離とをパラメータ440bとして記憶部440に記憶させる(ステップS411)。
次に、本実施例3に係る情報処理装置400の効果について説明する。情報処理装置400は、実施例1で説明したマーカの代わりに、体操の平行台が水平であること、選手が直立して一旦動きをとめている瞬間があること等を利用し、インストラクション画面を表示する。このため、実施例1で説明したようなマーカを用いなくても、第1~第4ベクトル、第1、2並進用点を取得することができる。そして、これにより、センサ10A、センサ10Bの位置合わせを行うことができる。
なお、本実施例3では、平行台、選手を用いて、第1~第4ベクトル、第1、2並進用点を取得する場合について説明を行ったがこれに限定されるものではない。情報処理装置400は、第1~第4ベクトルの始点および終点、第1、2並進用点を取得可能な他の器具や被写体から取得してもよい。
本実施例3では、情報処理装置400と、採点装置200とが別々の装置で実現される場合について説明したがこれに限定されるものではない。たとえば、情報処理装置400の機能に、採点装置200の機能が含まれていてもよい。すなわち、情報処理装置400の制御部450に、採点装置200の位置合わせ部203、認識部240、出力部205等が含まれていてもよい。
次に、本実施例4に係る情報処理装置について説明する。本実施例4に係る情報処理装置は、実施例1と同様にして、センサ10Aとセンサ10Bに接続される。
図28は、本実施例4で用いるマーカの一例を示す図である。図28に示すように、マーカ配置台30には、マーカ30-1,30-2,30-3,30-4が含まれる。マーカ30-1~30-4にはそれぞれ複数のシールが付与されている。各シールは、再帰反射するシールである。センサ10Aの測距可能な範囲を、範囲30Aとする。センサ10Bの測距可能な範囲を、範囲30Bとする。
たとえば、マーカ30-1には、各角にシール30-1a,30-1b,30-1c,30-1dが配置されている。マーカ30-2には、各角にシール30-2a,30-2b,30-2c,30-2dが配置されている。マーカ30-3には、各角にシール30-3a,30-3b,30-3c,30-3dが配置されている。マーカ30-4には、各角にシール30-4a,30-4b,30-4c,30-4dが配置されている。
図29は、シールが付与された各マーカの反射強度画像の一例を示す図である。図29に示す例では、反射強度が大きい領域が、反射強度の小さい領域よりも明るくなる。たとえば、反射強度画像60において、領域61a,61b,61c,61dは、シール30-1a,30-1b,30-1c,30-1dが配置された領域である。領域62a,62b,62c,62dは、シール30-2a,30-2b,30-2c,30-2dが配置された領域である。領域63a,63b,63c,63dは、シール30-3a,30-3b,30-3c,30-3dが配置された領域である。領域64a,64b,64c,64dは、シール30-4a,30-4b,30-4c,30-4dが配置された領域である。
本実施例4に係るセンサ10Aは、レーザ光を照射して、被写体を構成する点群とセンサ10Aとの距離を測距する測定装置である。センサ10Aは、可視画像を撮影する。また、センサ10Aは、レーザ光の反射強度を測定する。センサ10Aは、第1距離画像情報を、情報処理装置に出力する。第1距離画像情報は、被写体を構成する点群とセンサ10Aとの距離の情報と、可視画像の情報と、反射強度の情報とを含む。
本実施例4に係るセンサ10Bは、レーザ光を照射して、被写体を構成する点群とセンサ10Bとの距離を測距する測定装置である。センサ10Bは、可視画像を撮影する。また、センサ10Bは、レーザ光の反射強度を測定する。センサ10Bは、第2距離画像情報を、情報処理装置に出力する。第2距離画像情報は、被写体を構成する点群とセンサ10Aとの距離の情報と、可視画像の情報と、反射強度の情報とを含む。
本実施例4に係る情報処理装置は、マーカ配置台30の可視画像を基にして、インストラクション画面の情報を生成し、表示部に表示させる。情報処理装置は、インストラクション画面を参照するユーザから、第1~第4ベクトルの始点および終点、第1、2並進用点の選択を受け付ける。
続いて、情報処理装置は、センサ10A,10Bから順次入力される反射強度の情報を基にして、各マーカに配置された各シールの位置を特定し、各シールの位置を基にして、各マーカの位置を算出する処理を繰り返し実行する。情報処理装置は、各マーカの位置を基にして、ユーザに選択された第1~第4ベクトルの始点および終点、第1、2並進用点の位置を補正する処理を行う。情報処理装置が、かかる処理を実行することにより、ユーザに選択された第1~第4ベクトルの始点および終点、第1、2並進用点の位置が正確でない場合や、選択された後に何らかの影響で、マーカの位置がずれた場合でも最適な第1~第4ベクトルの始点および終点、第1、2並進用点の位置を特定することができる。
図30は、本実施例4に係る情報処理装置の構成を示す機能ブロック図である。図30に示すように、この情報処理装置500は、インタフェース部510と、入力部520と、表示部530と、記憶部540と、制御部550とを有する。
インタフェース部510は、センサ10Aおよびセンサ10Bから情報を受信する通信装置である。インタフェース部510は、センサ10Aから、第1距離画像情報を受信し、受信した第1距離画像情報を、制御部550に出力する。インタフェース部510は、センサ10Bから、第2距離画像情報を受信し、受信した第2距離画像情報を、制御部550に出力する。また、インタフェース部510は、実施例1で説明した採点装置200と接続していてもよい。
入力部520は、各種の情報を情報処理装置500に入力するための入力装置である。たとえば、入力部520は、キーボードやマウス、タッチパネル等に対応する。ユーザはインストラクション画面を参照し、入力部520を操作して、第1ベクトルの始点および終点、第2ベクトルの始点および終点、第1並進用点を選択する。また、ユーザは、入力部520を操作して、第3ベクトルの始点および終点、第4ベクトルの始点および終点、第2並進用点を選択する。
表示部530は、制御部550から出力される各種の情報を表示する表示装置である。たとえば、表示部530は、液晶ディスプレイ、タッチパネル等に対応する。たとえば、表示部は、インストラクション画面を表示する。
記憶部540は、距離画像テーブル540aと、パラメータ540bと、特定テーブル540cとを有する。記憶部540は、RAM、ROM、フラッシュメモリなどの半導体メモリ素子や、HDDなどの記憶装置に対応する。
距離画像テーブル540aは、センサ10Aから出力される各時刻の第1距離画像情報と、センサ10Bから出力される各時刻の第2距離画像情報とを保持するテーブルである。距離画像テーブル540aのデータ構造は、実施例3の図26で説明した距離画像テーブル440aのデータ構造と同様である。なお、各時刻の第1距離画像情報は、センサ10Aが測定した距離の情報、可視画像の情報、反射強度の情報を含む。各時刻の第2距離画像情報は、距離の情報、可視画像の情報、反射強度の情報を含む。
パラメータ540bは、センサ10Aに測距される点群と、センサ10Bに測距される点群との位置合わせを行うためのパラメータである。パラメータ540bには、位置合わせ回転角度の情報と、位置合わせ並進距離の情報とが含まれる。
特定テーブル540cは、第1~第4ベクトルの始点および終点、第1、2並進用点の座標を特定する場合に用いられるテーブルである。図31は、特定テーブルのデータ構造の一例を示す図である。図31に示すように、この特定テーブル540cは、座標テーブル541と、座標テーブル542とを有する。座標テーブル541は、第1~第4ベクトルの始点および終点について、インストラクション画面で選択された座標、各時刻の反射強度の情報から特定された座標の情報を保持するテーブルである。座標テーブル542は、第1、第2並進用点について、インストラクション画面で選択された座標、各時刻の反射強度の情報から特定された座標の情報を保持するテーブルである。
座標テーブル541は、ベクトル種別、選択始点座標、選択終点座標、候補始点座標、候補終点座標を対応付ける。ベクトル種別は、ベクトルの種別を示す情報である。ベクトル種別は、第1ベクトル、第2ベクトル、第3ベクトル、第4ベクトルのうち、いずれかのベクトルとなる。選択始点座標は、インストラクション画面でユーザに選択されるベクトルの始点の座標を示す。選択終点座標は、インストラクション画面でユーザに選択されるベクトルの終点の座標を示す。候補始点座標は、反射強度の情報に基づき算出されるベクトルの始点の座標を示す。候補終点座標は、反射強度の情報に基づき算出されるベクトルの終点の座標を示す。たとえば、候補始点座標および候補終点座標は、時刻毎に算出される。
座標テーブル542は、並進用点種別、選択座標、候補座標を対応付ける。並進点種別は、並進用点の種別を示す情報である。並進用点の種別は、第1並進用点、第2並進用点のいずれかとなる。選択座標は、インストラクション画面でユーザに選択される並進用点の座標を示す。候補座標は、反射強度の情報に基づき算出される並進用点の座標を示す。たとえば、候補座標は、時刻毎に算出される。
図30の説明に戻る。制御部550は、第1取得部550aと、提供部550bと、第2取得部550cと、算出部550dと、出力部550eとを有する。制御部550は、CPUやMPUなどによって実現できる。また、制御部550は、ASICやFPGAなどのハードワイヤードロジックによっても実現できる。
第1取得部550aは、インタフェース部510を介して、時刻毎にセンサ10Aから出力される第1距離画像情報を取得し、取得した第1距離画像情報を距離画像テーブル540aに登録する。第1取得部150aは、時刻毎にセンサ10Bから出力される第2距離画像情報を取得し、取得した第2距離画像情報を距離画像テーブル140aに登録する。第1取得部550aに関するその他の説明は、実施例1で説明した第1取得部150aに関する説明と同様である。
提供部550bは、インストラクション画面の情報を生成し、インストラクション画面の情報を、表示部530に出力することで、インストラクション画面を表示させる処理部である。たとえば、提供部550bは、入力部520からインストラクション画面の表示要求を受け付けた場合に、かかる要求を受け付けた時刻に対応する第1距離画像情報の可視化画像を用いて、第1ベクトル、第2ベクトル、第1並進用点の選択を受けるためのインストラクション画面を生成する。また、提供部55bは、インストラクション画面の表示要求を受け付けた場合に、かかる要求を受け付けた時刻に対応する第2距離画像情報の可視化画像を用いて、第3ベクトル、第4ベクトル、第2並進用点の選択を受けるためのインストラクション画面を生成する。
提供部550bがインストラクション画面を生成するその他の処理は、実施例1で説明した提供部150bの処理と同様である。
第2取得部550cは、インストラクション画面に対してユーザに選択された情報を基にして、第1ベクトル、第2ベクトル、第1並進用点、第3ベクトル、第4ベクトル、第2並進用点を取得する処理部である。
第2取得部550cが、インストラクション画面によりユーザに選択される第1~第4ベクトルの選択始点座標および選択終点座標、第1、2並進用点の選択座標を特定する処理について説明する。
提供部550bにより、第1ベクトルの始点および終点を選択するインストラクション画面が表示部530に表示されると、ユーザは、入力部520を操作して、第1ベクトルの始点および終点を選択する。第2取得部550cは、入力部520から、第1ベクトルの始点および終点の情報を取得する。入力部520により選択される、第1ベクトルの始点および終点の情報は、可視画像の座標に対応する。
第2取得部550cは、距離画像テーブル540aの第1距離画像情報を基にして、インストラクション画面でユーザに選択された第1ベクトルの始点に対応する点の座標を特定し、特定した座標を、ベクトル種別「第1ベクトル」の「選択始点座標」として、座標テーブル541に登録する。
第2取得部550cは、距離画像テーブル540aの第1距離画像情報を基にして、インストラクション画面でユーザに選択された第1ベクトルの終点に対応する点の座標を特定し、特定した座標を、ベクトル種別「第1ベクトル」の「選択終点座標」として、座標テーブル541に登録する。
提供部550bにより、第2ベクトルの始点および終点を選択するインストラクション画面が表示部530に表示されると、ユーザは、入力部520を操作して、第2ベクトルの始点および終点を選択する。第2取得部550cは、入力部520から、第2ベクトルの始点および終点の情報を取得する。第2ベクトルの始点および終点の情報は、可視画像の座標に対応する。
第2取得部550cは、距離画像テーブル540aの第1距離画像情報を基にして、インストラクション画面でユーザに選択された第2ベクトルの始点に対応する点の座標を特定し、特定した座標を、ベクトル種別「第2ベクトル」の「選択始点座標」として、座標テーブル541に登録する。
第2取得部550cは、距離画像テーブル540aの第1距離画像情報を基にして、インストラクション画面でユーザに選択された第1ベクトルの終点に対応する点の座標を特定し、特定した座標を、ベクトル種別「第2ベクトル」の「選択終点座標」として、座標テーブル541に登録する。
提供部550bにより、第1並進用点を選択するインストラクション画面が表示部530に表示されると、ユーザは、入力部520を操作して、第1並進用点を選択する。第2取得部550cは、入力部520から、第1並進用点の情報を取得する。入力部520により選択される、第1並進用点の情報は、可視画像の座標に対応する。
第2取得部550cは、距離画像テーブル540aの第1距離画像情報を基にして、インストラクション画面でユーザに選択された第1並進用点に対応する点の座標を特定し、特定した座標を、並進用点種別「第1並進用点」の「選択座標」として、座標テーブル542に登録する。
提供部550bにより、第3ベクトルの始点および終点を選択するインストラクション画面が表示部530に表示されると、ユーザは、入力部520を操作して、第3ベクトルの始点および終点を選択する。第2取得部550cは、入力部520から、第3ベクトルの始点および終点の情報を取得する。入力部520により選択される、第3ベクトルの始点および終点の情報は、可視画像の座標に対応する。
第2取得部550cは、距離画像テーブル540aの第2距離画像情報を基にして、インストラクション画面でユーザに選択された第3ベクトルの始点に対応する点の座標を特定し、特定した座標を、ベクトル種別「第3ベクトル」の「選択始点座標」として、座標テーブル541に登録する。
第2取得部550cは、距離画像テーブル540aの第2距離画像情報を基にして、インストラクション画面でユーザに選択された第3ベクトルの終点に対応する点の座標を特定し、特定した座標を、ベクトル種別「第3ベクトル」の「選択終点座標」として、座標テーブル541に登録する。
提供部550bにより、第4ベクトルの始点および終点を選択するインストラクション画面が表示部530に表示されると、ユーザは、入力部520を操作して、第4ベクトルの始点および終点を選択する。第2取得部550cは、入力部520から、第4ベクトルの始点および終点の情報を取得する。入力部520により選択される、第4ベクトルの始点および終点の情報は、可視画像の座標に対応する。
第2取得部550cは、距離画像テーブル540aの第2距離画像情報を基にして、インストラクション画面でユーザに選択された第4ベクトルの始点に対応する点の座標を特定し、特定した座標を、ベクトル種別「第4ベクトル」の「選択始点座標」として、座標テーブル541に登録する。
第2取得部550cは、距離画像テーブル540aの第2距離画像情報を基にして、インストラクション画面でユーザに選択された第4ベクトルの終点に対応する点の座標を特定し、特定した座標を、ベクトル種別「第4ベクトル」の「選択終点座標」として、座標テーブル541に登録する。
提供部550bにより、第2並進用点を選択するインストラクション画面が表示部530に表示されると、ユーザは、入力部520を操作して、第2並進用点を選択する。第2取得部550cは、入力部520から、第2並進用点の情報を取得する。入力部520により選択される、第2並進用点の情報は、可視画像の座標に対応する。
第2取得部550cは、距離画像テーブル540aの第2距離画像情報を基にして、インストラクション画面でユーザに選択された第2並進用点に対応する点の座標を特定し、特定した座標を、並進用点種別「第2並進用点」の「選択座標」として、座標テーブル542に登録する。
上記の処理により、座標テーブル541には、ベクトル種別「第1ベクトル~第4ベクトル」の選択始点座標、選択終点座標が登録される。座標テーブル542には、並進用点種別「第1並進用点、第2並進用点」の選択座標が登録される。
第2取得部550cが、第1~第4ベクトルの候補始点座標および候補終点座標、第1、2並進用点の選択座標を特定する処理について説明する。ここでは一例として、インストラクション画面を基にして、第1ベクトルの始点としてマーカ30-1が選択され、第1ベクトルの終点としてマーカ30-2が選択されたものとする。第2ベクトルの始点としてマーカ30-2が選択され、第2ベクトルの終点としてマーカ30-4が選択されたものとする。第1並進用点として、マーカ30-2が選択されたものとする。
インストラクション画面を基にして、第3ベクトルの始点としてマーカ30-2が選択され、第3ベクトルの終点としてマーカ30-3が選択されたものとする。第4ベクトルの始点としてマーカ30-2が選択され、第4ベクトルの終点としてマーカ30-4が選択されたものとする。第2並進用点として、マーカ30-2が選択されたものとする。
第2取得部550cは、時刻Tn+1の第1距離画像情報に含まれる反射強度の情報(反射強度画像)を2値化する。時刻Tnは、インストラクション画面を生成した第1距離画像情報に対応する時刻とする。
たとえば、第2取得部550cは、反射強度画像において、反射強度が予め定められる閾値未満となる部分を0に設定し、閾値以上となる部分を1に設定する。第2取得部550cは、2値化した反射強度画像において、1となる部分をラベリングする。図29に示す反射強度画像60では、ラベリングされる領域が、領域61a~61d,62a~62d,64a~64d(63a~63dは、センサ10Aの測距範囲に含まれない)となる。
第2取得部550cは、座標テーブル541の各ベクトル種別の選択始点座標、選択主点座標と、ラベリングされた領域の座標とを比較して、距離の近い、ベクトル種別と、ラベリングされた領域との対応付けを行う。
たとえば、図29において、領域61a~61dは、ベクトル種別「第1ベクトル」の選択始点座標に最も近いため、領域61a~61dは、ベクトル種別「第1ベクトル」の始点座標に対応付けられる。第2選択部550cは、領域61aの中心座標および領域61cの中心座標を結ぶ線分と、領域61bの中心座標および領域61dの中心座標とを結ぶ線分との交点の座標を、ベクトル種別「第1ベクトル」に対応する一つの候補始点座標として特定し、座標テーブル541に登録する。
領域62a~62dは、ベクトル種別「第1ベクトル」の選択終点座標に最も近いため、領域62a~62dは、ベクトル種別「第1ベクトル」の終点座標に対応付けられる。第2選択部550cは、領域62aの中心座標および領域62cの中心座標を結ぶ線分と、領域62bの中心座標および領域62dの中心座標とを結ぶ線分との交点の座標を、ベクトル種別「第1ベクトル」に対応する一つの候補終点座標として特定し、座標テーブル541に登録する。
領域62a~62dは、ベクトル種別「第2ベクトル」の選択始点座標に最も近いため、領域62a~62dは、ベクトル種別「第2ベクトル」の始点座標に対応付けられる。第2選択部550cは、領域62aの中心座標および領域62cの中心座標を結ぶ線分と、領域62bの中心座標および領域62dの中心座標とを結ぶ線分との交点の座標を、ベクトル種別「第2ベクトル」に対応する一つの候補始点座標として特定し、座標テーブル541に登録する。
領域64a~64dは、ベクトル種別「第2ベクトル」の選択終点座標に最も近いため、領域64a~64dは、ベクトル種別「第2ベクトル」の終点座標にも対応付けられる。第2選択部550cは、領域64aの中心座標および領域64cの中心座標を結ぶ線分と、領域64bの中心座標および領域64dの中心座標とを結ぶ線分との交点の座標を、ベクトル種別「第2ベクトル」に対応する一つの候補終点座標として特定し、座標テーブル541に登録する。
領域62a~62dは、並進用点種別「第1並進用点」の選択座標に最も近いため、領域62a~62dは、並進用点種別「第1並進用点」の座標に対応付けられる。第2選択部550cは、領域62aの中心座標および領域62cの中心座標を結ぶ線分と、領域62bの中心座標および領域62dの中心座標とを結ぶ線分との交点の座標を、並進用点種別「第1並進用点」に対応する一つの候補座標として特定し、座標テーブル542に登録する。
第2取得部550cは、時刻Tn+2、Tn+3、Tn+4、Tn+5の第1距離画像情報についても上記処理を実行することで、第1ベクトル、第2ベクトルに対応する複数の候補始点座標、複数の候補終点座標を、座標テーブル541に登録する。また、第2取得部550cは、第1並進用点に対応する複数の候補座標を、座標テーブル542に登録する。
第2取得部550cは、時刻Tn+1の第2距離画像情報に含まれる反射強度の情報(反射強度画像)を2値化する。時刻Tnは、インストラクション画面を生成した第2距離画像情報に対応する時刻とする。
たとえば、第2取得部550cは、反射強度画像において、反射強度が予め定められる閾値未満となる部分を0に設定し、閾値以上となる部分を1に設定する。第2取得部550cは、2値化した反射強度画像において、1となる部分をラベリングする。図29に示す反射強度画像60では、ラベリングされる領域が、領域62a~62d,63a~63d,64a~64d(61a~61dは、センサ10Bの測距範囲に含まれない)となる。
第2取得部550cは、座標テーブル541の各ベクトル種別の選択始点座標、選択主点座標と、ラベリングされた領域の座標とを比較して、距離の近い、ベクトル種別と、ラベリングされた領域との対応付けを行う。
たとえば、図29において、領域62a~62dは、ベクトル種別「第3ベクトル」の選択始点座標に最も近いため、領域62a~62dは、ベクトル種別「第3ベクトル」の始点座標に対応付けられる。第2選択部550cは、領域62aの中心座標および領域62cの中心座標を結ぶ線分と、領域62bの中心座標および領域62dの中心座標とを結ぶ線分との交点の座標を、ベクトル種別「第3ベクトル」に対応する一つの候補始点座標として特定し、座標テーブル541に登録する。
領域63a~63dは、ベクトル種別「第3ベクトル」の選択終点座標に最も近いため、領域63a~63dは、ベクトル種別「第3ベクトル」の終点座標に対応付けられる。第2選択部550cは、領域63aの中心座標および領域63cの中心座標を結ぶ線分と、領域63bの中心座標および領域63dの中心座標とを結ぶ線分との交点の座標を、ベクトル種別「第3ベクトル」に対応する一つの候補終点座標として特定し、座標テーブル541に登録する。
領域62a~62dは、ベクトル種別「第4ベクトル」の選択始点座標に最も近いため、領域62a~62dは、ベクトル種別「第4ベクトル」の始点座標に対応付けられる。第2選択部550cは、領域62aの中心座標および領域62cの中心座標を結ぶ線分と、領域62bの中心座標および領域62dの中心座標とを結ぶ線分との交点の座標を、ベクトル種別「第4ベクトル」に対応する一つの候補始点座標として特定し、座標テーブル541に登録する。
領域64a~64dは、ベクトル種別「第4ベクトル」の選択終点座標に最も近いため、領域64a~64dは、ベクトル種別「第4ベクトル」の終点座標にも対応付けられる。第2選択部550cは、領域64aの中心座標および領域64cの中心座標を結ぶ線分と、領域64bの中心座標および領域64dの中心座標とを結ぶ線分との交点の座標を、ベクトル種別「第4ベクトル」に対応する一つの候補終点座標として特定し、座標テーブル541に登録する。
領域62a~62dは、並進用点種別「第2並進用点」の選択座標に最も近いため、領域62a~62dは、並進用点種別「第2並進用点」の座標に対応付けられる。第2選択部550cは、領域62aの中心座標および領域62cの中心座標を結ぶ線分と、領域62bの中心座標および領域62dの中心座標とを結ぶ線分との交点の座標を、並進用点種別「第2並進用点」に対応する一つの候補座標として特定し、座標テーブル542に登録する。
第2取得部550cは、時刻Tn+2、Tn+3、Tn+4、Tn+5の第2距離画像情報についても上記処理を実行することで、第3ベクトル、第4ベクトルに対応する複数の候補始点座標、複数の候補終点座標を、座標テーブル541に登録する。また、第2取得部550cは、第2並進用点に対応する複数の候補座標を、座標テーブル542に登録する。
第2取得部550cが、上記処理を実行することで、図31に示した、座標テーブル541,542に各座標が登録される。
第2取得部550cは、あるベクトル種別の選択始点座標と、このベクトル種別に対応する複数の候補始点座標とを比較し、選択始点座標に最も近い距離の候補始点座標を、ベクトルの最終的な始点座標として特定する。第2取得部550cは、あるベクトル種別の選択終点座標と、このベクトル種別に対応する複数の候補終点座標とを比較し、選択終点座標に最も近い距離の候補終点座標を、ベクトルの最終的な終点座標として特定する。
たとえば、第2取得部550cは、ベクトル種別「第1ベクトル」に対応する選択始点座標と、各候補始点座標とを比較し、最も近い候補始点座標を、第1ベクトルの最終的な始点座標として特定する。第2取得部550cは、ベクトル種別「第1ベクトル」に対応する選択終点座標と、各候補終点座標とを比較し、最も近い候補終点座標を、第1ベクトルの最終的な終点座標として特定する。
第2取得部550cは、他のベクトル種別「第2ベクトル、第3ベクトル、第4ベクトル」についても、同様の処理を行うことで、最終的な始点座標、終点座標を特定する。
第2取得部550cは、ある並進用点種別の選択座標と、この並進用点種別に対応する複数の候補座標とを比較し、選択座標に最も近い距離の候補座標を、並進用点の最終的な座標として特定する。
たとえば、第2取得部550cは、並進用点種別「第1並進用点」に対応する選択座標と、各候補座標とを比較し、最も近い候補座標を、第1並進用点の最終的な座標として特定する。第2取得部550cは、並進用点種別「第2並進用点」に対応する選択座標と、各候補座標とを比較し、最も近い候補座標を、第2並進用点の最終的な座標として特定する。
第2選択部550cは、距離画像テーブル540aの第1距離画像情報を基にして、第1ベクトルの最終的な始点座標に対応する点の識別情報を、各点群から特定する。第1ベクトルの始点に対応する点の識別情報を、「第1始点識別情報」と表記する。第2取得部550cは、距離画像テーブル540aの第1距離画像情報を基にして、第1ベクトルの最終的な終点座標に対応する点の識別情報を、各点群から特定する。第1ベクトルの終点に対応する点の識別情報を、「第1終点識別情報」と表記する。
第2選択部550cは、距離画像テーブル540aの第1距離画像情報を基にして、第2ベクトルの最終的な始点座標に対応する点の識別情報を、各点群から特定する。第2ベクトルの始点に対応する点の識別情報を、「第2始点識別情報」と表記する。第2取得部550cは、距離画像テーブル540aの第1距離画像情報を基にして、第2ベクトルの最終的な終点座標に対応する点の識別情報を、各点群から特定する。第2ベクトルの終点に対応する点の識別情報を、「第2終点識別情報」と表記する。
第2選択部550cは、距離画像テーブル540aの第2距離画像情報を基にして、第3ベクトルの最終的な始点座標に対応する点の識別情報を、各点群から特定する。第3ベクトルの始点に対応する点の識別情報を、「第3始点識別情報」と表記する。第2取得部550cは、距離画像テーブル540aの第2距離画像情報を基にして、第3ベクトルの最終的な終点座標に対応する点の識別情報を、各点群から特定する。第3ベクトルの終点に対応する点の識別情報を、「第3終点識別情報」と表記する。
第2選択部550cは、距離画像テーブル540aの第2距離画像情報を基にして、第4ベクトルの最終的な始点座標に対応する点の識別情報を、各点群から特定する。第4ベクトルの始点に対応する点の識別情報を、「第4始点識別情報」と表記する。第2取得部550cは、距離画像テーブル540aの第2距離画像情報を基にして、第4ベクトルの最終的な終点座標に対応する点の識別情報を、各点群から特定する。第4ベクトルの終点に対応する点の識別情報を、「第4終点識別情報」と表記する。
第2取得部550cは、距離画像テーブル540aの第1距離画像情報を基にして、第1並進用点の最終的な座標に対応する点の識別情報を、各点群から特定する。第1並進用点に対応する点の識別情報を、「第1並進点識別情報」と表記する。
第2取得部550cは、距離画像テーブル540aの第2距離画像情報を基にして、第2並進用点の最終的な座標に対応する点の識別情報を、各点群から特定する。第2並進用点に対応する点の識別情報を、「第2並進点識別情報」と表記する。
第2取得部550cは、第1始点識別情報、第1終点識別情報、第2始点識別情報、第2終点識別情報、第1並進点識別情報を、算出部550dに出力する。第2取得部550cは、第3始点識別情報、第3終点識別情報、第4始点識別情報、第4終点識別情報、第2並進点識別情報を、算出部550dに出力する。
算出部550dは、第1ベクトル、第2ベクトル、第3ベクトル、第4ベクトル、第1並進点、第2並進点を基にして、位置合わせのための回転角度および並進距離を算出する処理部である。算出部550dは、算出した回転角度および並進距離の情報をパラメータ540bとして、記憶部540に記憶する。算出部550dの処理は、実施例1で説明した算出部150dの処理と同様である。
出力部550eは、パラメータ540bを、実施例1で説明した採点装置200等の外部装置に出力する処理部である。
次に、本実施例4に係る情報処理装置400の処理手順の一例について説明する。図32および図33は、本実施例4に係る情報処理装置の処理手順を示すフローチャートである。図32に示すように、情報処理装置400の第1取得部550aは、センサ10A、10Bから第1距離画像情報、第2距離画像情報を取得する(ステップS501)。
情報処理装置500の提供部550bは、インストラクション画面の情報を生成し、インストラクション画面を表示部530に表示させる(ステップS502)。
情報処理装置500の第2取得部550cは、ユーザによる選択を基にして、センサ10Aの点群から、第1ベクトルの始点および終点、第2ベクトルの始点および終点、第1並進用点を取得する(ステップS503)。第2取得部550cは、ユーザによる選択を基にして、センサ10Bの点群から、第3ベクトルの始点および終点、第4ベクトルの始点および終点、第2並進用点を取得する(ステップS504)。
第2取得部550cは、次の第1距離画像情報の反射強度画像、次の第2距離画像情報の反射距離画像情報を取得する(ステップS505)。第2取得部550cは、第1距離画像情報の反射強度画像、第2距離画像情報の反射距離画像情報を2値化する(ステップS506)。
第2取得部550cは、2値化した反射強度画像をラベリングし、ラベリングした各領域を、第1~第4ベクトルの始点および終点、第1、2並進用点の座標に対応付ける(ステップS507)。
第2取得部550cは、第1ベクトルの候補始点座標および候補終点座標、第2ベクトルの候補始点座標および候補終点座標、第1並進用点の候補座標を特定テーブル540cに登録する(ステップS508)。第2取得部550cは、第3ベクトルの候補始点座標および候補終点座標、第4ベクトルの候補始点座標および候補終点座標、第2並進用点の候補座標を特定テーブル540cに登録する(ステップS509)。
情報処理装置500は、第1距離画像情報および第2距離画像情報を、所定回数(予め設定される回数)取得してない場合には(ステップS510,No)、ステップS505に移行する。一方、情報処理装置500は、第1距離画像情報および第2距離画像情報を、所定回数取得した場合には(ステップS510,Yes)、図33のステップS511に移行する。
図33の説明に移行する。
第2取得部550cは、第1ベクトルの選択始点座標および選択終点座標、第2ベクトルの選択始点座標および選択終点、第1並進用点の選択座標と、各候補座標とを比較する(ステップS511)。第2取得部550cは、第1ベクトルの始点座標および終点座標、第2ベクトルの始点座標および終点座標、第1並進用点の座標を決定する(ステップS512)。
第2取得部550cは、第3ベクトルの選択始点座標および選択終点座標、第4ベクトルの選択始点座標および選択終点、第2並進用点の選択座標と、各候補座標とを比較する(ステップS513)。第2取得部550cは、第4ベクトルの始点座標および終点座標、第4ベクトルの始点座標および終点座標、第2並進用点の座標を決定する(ステップS514)。
情報処理装置500の算出部550dは、第1~第4ベクトルを単位ベクトルに変換する(ステップS515)。算出部550dは、始点が3次元座標の原点となるように、第1~第4ベクトルを移動させる(ステップS516)。
算出部550dは、合計距離Dが最小となるセンサ10Bの終点の回転角度(位置合わせ回転角度)を算出する(ステップS517)。算出部550dは、第2並進用点を、位置合わせ回転角度だけ回転させる(ステップS518)。
算出部550dは、第1並進用点の座標と、回転させた第2並進用点の座標との差分を並進距離(位置合わせ並進距離)として算出する(ステップS519)。算出部550dは、位置合わせ回転角度と、位置合わせ並進距離とをパラメータ540bとして記憶部540に記憶させる(ステップS520)。
次に、本実施例4に係る情報処理装置500の効果について説明する。情報処理装置500は、センサ10A,10Bから順次入力される反射強度画像を基にして、各マーカに配置された各シールの座標を特定し、各シールの座標を基にして、各マーカの座標を算出する処理を繰り返し実行する。情報処理装置500は、各マーカの位置を基にして、ユーザに選択された第1~第4ベクトルの始点および終点、第1、2並進用点の座標を補正する処理を行う。情報処理装置500が、かかる処理を実行することにより、ユーザに選択された第1~第4ベクトルの始点および終点、第1、2並進用点の位置が正確でない場合や、選択された後に何らかの影響で、マーカの位置がずれた場合でも最適な第1~第4ベクトルの始点および終点、第1、2並進用点の位置を特定することができる。
次に、実施例に示した情報処理装置100,300,400,500、採点装置200と同様の機能を実現するコンピュータのハードウェア構成の一例について説明する。図34は、本実施例に係る情報処理装置と同様の機能を実現するコンピュータのハードウェア構成の一例を示す図である。
図34に示すように、コンピュータ600は、各種演算処理を実行するCPU601と、ユーザからのデータの入力を受け付ける入力装置602と、ディスプレイ603とを有する。また、コンピュータ600は、記憶媒体からプログラム等を読み取る読み取り装置604と、有線または無線ネットワークを介して、外部装置等との間でデータの授受を行うインタフェース装置605とを有する。インタフェース装置605は、センサ10A,10B等に接続される。また、採点装置200に接続されていてもよい。コンピュータ600は、各種情報を一時記憶するRAM606と、ハードディスク装置607とを有する。そして、各装置601~607は、バス608に接続される。
ハードディスク装置607は、第1取得プログラム607a、提供プログラム607b、第2取得プログラム607c、算出プログラム607d、出力プログラム607eを有する。CPU601は、第1取得プログラム607a、提供プログラム607b、第2取得プログラム607c、算出プログラム607d、出力プログラム607eを読み出してRAM406に展開する。
第1取得プログラム607aは、第1取得プロセス606aとして機能する。提供プログラム607bは、提供プロセス606bとして機能する。第2取得プログラム607cは、第2取得プロセス606cとして機能する。算出プログラム607dは、算出プロセス607dとして機能する。出力プログラム607eは、出力プロセス607eとして機能する。
第1取得プロセス606aの処理は、第1取得部150a,350a,450a,550aの処理に対応する。提供プロセス606bの処理は、提供部150b,450b,550bの処理に対応する。第2取得プロセス606cの処理は、第2取得部150c,350b,450c,550cの処理に対応する。算出プロセス606dの処理は、算出部150d,350c,450d,550dの処理に対応する。出力プロセス606eの処理は、出力部150e,350d,450e,550eの処理に対応する。
なお、各プログラム607a~607eについては、必ずしも最初からハードディスク装置507に記憶させておかなくてもよい。例えば、コンピュータ600に挿入されるフレキシブルディスク(FD)、CD-ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に各プログラムを記憶させておく。そして、コンピュータ600が各プログラム607a~607eを読み出して実行するようにしてもよい。
図35は、本実施例に係る採点装置と同様の機能を実現するコンピュータのハードウェア構成の一例を示す図である。
図35に示すように、コンピュータ700は、各種演算処理を実行するCPU701と、ユーザからのデータの入力を受け付ける入力装置702と、ディスプレイ703とを有する。また、コンピュータ700は、記憶媒体からプログラム等を読み取る読み取り装置704と、有線または無線ネットワークを介して、外部装置等との間でデータの授受を行うインタフェース装置705とを有する。コンピュータ700は、各種情報を一時記憶するRAM706と、ハードディスク装置707とを有する。そして、各装置701~707は、バス708に接続される。
ハードディスク装置707は、取得プログラム707a、位置合わせプログラム707b、認識プログラム707c、出力プログラム707dを有する。CPU701は、取得プログラム707a、位置合わせプログラム707b、認識プログラム707c、出力プログラム707dを読み出してRAM706に展開する。
取得プログラム707aは、取得プロセス706aとして機能する。位置合わせプログラム707bは、位置合わせプロセス706bとして機能する。認識プログラム707cは、認識プロセス706cとして機能する。出力プロセス706aの処理は、出力部350dの処理に対応する。
なお、各プログラム707a~707dについては、必ずしも最初からハードディスク装置707に記憶させておかなくてもよい。例えば、コンピュータ700に挿入されるフレキシブルディスク(FD)、CD-ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に各プログラムを記憶させておく。そして、コンピュータ700が各プログラム707a~707dを読み出して実行するようにしてもよい。