(57)【要約】【課題】多眼カメラの位置姿勢の推定を支援する。【解決手段】本発明の一態様によれば、画像処理装置は、ベース領域抽出部と、マーカー検出部と、投影位置判定部とを含む。ベース領域抽出部は、少なくとも、予め定められた初期位置姿勢を取った状態の多眼カメラの撮影範囲内に目標物体が設置されていない時に、初期位置姿勢を取る多眼カメラによって撮影された第１の画像群に基づいて生成された基準デプスマップと、撮影範囲内に目標物体が設置されていて、かつマーカーが投影されている時に、初期位置姿勢を取る多眼カメラによって撮影された第２の画像群に基づいて生成された対象デプスマップとで同一のデプスを持つ第１の領域をベース領域として抽出する。マーカー検出部は、マーカーの位置を第２の画像群から検出する。投影位置判定部は、マーカーの位置がベース領域にあるか否かを判定する。【選択図】      図１
2020041802.tif 000002
【特許請求の範囲】
【請求項１】
予め定められた初期位置姿勢を取った状態の多眼カメラの撮影範囲内に目標物体が設置されていない時に、前記初期位置姿勢を取る前記多眼カメラによって撮影された第１の画像群に基づいて生成された基準デプスマップを記憶する記憶部と、
前記撮影範囲内に前記目標物体が設置されていて、かつプロジェクタによってマーカーが投影されている時に、前記初期位置姿勢を取る前記多眼カメラによって撮影された第２の画像群に基づいて対象デプスマップを生成するデプスマップ生成部と、
少なくとも前記基準デプスマップと前記対象デプスマップとで同一のデプスを持つ第１の領域をベース領域として抽出するベース領域抽出部と、
前記マーカーの位置を前記第２の画像群から検出するマーカー検出部と、
前記マーカーの位置が前記ベース領域にあるか否かを判定する投影位置判定部と
を具備する、画像処理装置。
【請求項２】
前記マーカーの位置が前記ベース領域にないと判定された場合に、前記マーカーの再投影位置を前記ベース領域から決定する再投影位置決定部をさらに具備する、請求項１に記載の画像処理装置。
【請求項３】
前記ベース領域と前記マーカーの投影位置とを表す画像データを出力する出力部と、
ユーザ入力を受け付ける入力部と
をさらに具備し、
前記再投影位置決定部は、前記マーカーの位置が前記ベース領域にないと判定された場合に、前記ユーザ入力に基づいて前記再投影位置を決定する、
請求項２に記載の画像処理装置。
【請求項４】
前記再投影位置決定部は、前記マーカーの位置が前記ベース領域にないと判定された場合に、前記撮影範囲内で前記目標物体が設置されないように予め定義された保護領域から前記再投影位置を決定する、請求項２に記載の画像処理装置。
【請求項５】
前記初期位置姿勢とは異なる位置姿勢を取る前記多眼カメラによって撮影された第３の画像群に基づいて前記多眼カメラの位置姿勢を推定する推定部をさらに具備する、請求項１乃至請求項４のいずれか１項に記載の画像処理装置。
【請求項６】
前記ベース領域抽出部は、さらに、前記対象デプスマップのうち前記基準デプスマップの同一位置におけるデプスとの差が略一定であって、前記マーカーよりも広い第２の領域を前記ベース領域として抽出する、請求項１乃至請求項５のいずれか１項に記載の画像処理装置。
【請求項７】
請求項２乃至請求項４のいずれか１項に記載の画像処理装置と、
前記プロジェクタに前記マーカーを前記再投影位置に投影させるためのプロジェクタ制御信号を生成する制御装置と
を具備する、プロジェクタ制御システム。
【請求項８】
請求項１乃至請求項６のいずれか１項に記載の画像処理装置と、
前記多眼カメラの位置および姿勢の少なくとも一方を変更するためのカメラ制御信号を生成する制御装置と
を具備する、カメラ制御システム。
【請求項９】
前記マーカー検出部は、前記カメラ制御信号に基づいて駆動された前記多眼カメラによって撮影された第４の画像群から、前記マーカーの位置の検出を試み、
前記制御装置は、前記第４の画像群から前記マーカーの位置が検出されるまで、前記カメラ制御信号を更新する、
請求項８に記載のカメラ制御システム。
【請求項１０】
予め定められた初期位置姿勢を取った状態の多眼カメラの撮影範囲内に目標物体が設置されていない時に、前記初期位置姿勢を取る前記多眼カメラによって撮影された第１の画像群に基づいて生成された基準デプスマップを記憶する記憶部と、
前記撮影範囲内に前記目標物体が設置されている時に、前記初期位置姿勢を取る前記多眼カメラによって撮影された第２の画像群に基づいて対象デプスマップを生成するデプスマップ生成部と、
少なくとも前記基準デプスマップと前記対象デプスマップとで同一のデプスを持つ第１の領域をベース領域として抽出するベース領域抽出部と、
プロジェクタによってマーカーが投影される投影位置を前記ベース領域から決定する投影位置決定部と
を具備する、画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、３次元計測に用いられる多眼カメラの位置姿勢の推定に関する。
【背景技術】
【０００２】
特許文献１には、複数種類のパターンを計測対象物体に投影して撮影し、投影したパターンと計測対象物体の形状モデルと計測対象物体の概略位置姿勢を示す情報とに基づいて、撮像画像上のパターンの座標値を算出することが記載されている（要約書）。また、特許文献１には、算出された座標値を利用して、撮像画像上の撮影されたパターンと投影されたパターンとを対応づけし、計測対象物体に投影されたパターンと撮像部との距離を求めることも記載されている（要約書）。さらに、特許文献１には、求めた距離と計測対象物体の形状モデルとを用いて計測対象物体の位置姿勢を推定することも記載されている（要約書）。ただし、特許文献１では、パターン投影部のレンズの座標系と撮像部の座標系が固定されているとしており（［００３１］）、撮像部の移動および／または回転によりその座標系が変化した場合に、いかにして変化後の座標系、すなわち撮像部の位置姿勢を求めるのかについては明らかにしていない。
【０００３】
特許文献２には、３つの指標の撮影結果に基づいて、ロボットアームを制御することにより、ロボットハンドを目標撮影点に移動させること、および目標撮影点でさらにマーカーを撮影して、目標撮影点が正確であることを確認できることが記載されている（［００６８］）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１１−１４１１７４号公報
【特許文献２】特開２０１７−７７６１４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献２によれば、指標は、インク印刷により、黒地の板に白円を施して形成される（［００２３］）。すなわち、特許文献２において、指標の位置は固定的であり、ロボットハンドが移動可能な目標撮影点を変更することは容易でない。また、特許文献２によれば、マーカーは、実作業でワークが載置される作業台上に直接設置されるので（［００２５］）、ワークの形状および位置姿勢と、ロボットハンドによって把持されるステレオカメラの位置姿勢次第で、ステレオカメラがマーカーを見失うことがあり得る。かかる場合に、ロボットハンドの移動量を推定することは困難である。
【０００６】
本発明は、多眼カメラの位置姿勢の推定を支援することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一態様によれば、画像処理装置は、記憶部と、デプスマップ生成部と、ベース領域抽出部と、マーカー検出部と、投影位置判定部とを含む。記憶部は、予め定められた初期位置姿勢を取った状態の多眼カメラの撮影範囲内に目標物体が設置されていない時に、初期位置姿勢を取る多眼カメラによって撮影された第１の画像群に基づいて生成された基準デプスマップを記憶する。デプスマップ生成部は、撮影範囲内に目標物体が設置されていて、かつプロジェクタによってマーカーが投影されている時に、初期位置姿勢を取る多眼カメラによって撮影された第２の画像群に基づいて対象デプスマップを生成する。ベース領域抽出部は、少なくとも基準デプスマップと対象デプスマップとで同一のデプスを持つ第１の領域をベース領域として抽出する。マーカー検出部は、マーカーの位置を第２の画像群から検出する。投影位置判定部は、マーカーの位置がベース領域にあるか否かを判定する。
【０００８】
本発明の別の態様によれば、画像処理装置は、記憶部と、デプスマップ生成部と、ベース領域抽出部と、投影位置決定部とを含む。記憶部は、予め定められた初期位置姿勢を取った状態の多眼カメラの撮影範囲内に目標物体が設置されていない時に、初期位置姿勢を取る多眼カメラによって撮影された第１の画像群に基づいて生成された基準デプスマップを記憶する。デプスマップ生成部は、撮影範囲内に目標物体が設置されている時に、初期位置姿勢を取る多眼カメラによって撮影された第２の画像群に基づいて対象デプスマップを生成する。ベース領域抽出部は、少なくとも基準デプスマップと対象デプスマップとで同一のデプスを持つ第１の領域をベース領域として抽出する。投影位置決定部は、プロジェクタによってマーカーが投影される投影位置をベース領域から決定する。
【発明の効果】
【０００９】
本発明によれば、多眼カメラの位置姿勢の推定を支援することができる。
【図面の簡単な説明】
【００１０】
【図１】第１の実施形態に係る画像処理装置を例示するブロック図。
【図２】図１の画像処理装置を含む３次元計測システムを例示する図。
【図３】図２中の多眼カメラが初期位置姿勢を取っている時の撮影画像を例示する図。
【図４】図２中の多眼カメラが初期位置姿勢とは異なる位置姿勢を取っている時の撮影画像を例示する図。
【図５】多眼カメラの位置を推定する技法の説明図。
【図６】図２の３次元計測システムの動作を例示するフローチャート。
【図７】図６のステップＳ２１０の詳細を例示するフローチャート。
【図８】第２の実施形態に係る画像処理装置を例示するブロック図。
【図９】図８の画像処理装置を含む３次元計測システムの動作を例示するフローチャート。
【発明を実施するための形態】
【００１１】
以下、図面を参照しながら実施形態の説明を述べる。なお、以降、説明済みの要素と同一または類似の要素には同一または類似の符号を付し、重複する説明については基本的に省略する。
【００１２】
（第１の実施形態）  
第１の実施形態に係る画像処理装置は、例えば図２に示す３次元計測システムに組み込むことができる。この３次元計測システムは、多眼カメラ１０と、プロジェクタ２０と、プロジェクタ／カメラ制御装置３０と、本実施形態に係る画像処理装置１００とを含む。なお、画像処理装置１００およびプロジェクタ／カメラ制御装置３０の組み合わせを、プロジェクタ制御システム、カメラ制御システム、またはプロジェクタ／カメラ制御システムと呼ぶこともできる。
【００１３】
多眼カメラ１０は、例えばロボットハンドに取り付けられ、被写体６０が設置された台７０を見下ろす形で当該被写体６０を撮影することになる。なお、図２によれば、多眼カメラ１０は２つのカメラを備えているが、３つ以上のカメラを備えていてもよい。
【００１４】
プロジェクタ／カメラ制御装置３０は、多眼カメラ１０およびプロジェクタ２０を制御する。具体的には、プロジェクタ／カメラ制御装置３０は、プロジェクタ２０に、後述されるマーカーの投影、または後述される３次元計測を行うための既定の計測用パターンの投影を命令する。プロジェクタ／カメラ制御装置３０は、プロジェクタ２０によるマーカーの投影位置を制御することもできる。例えば、プロジェクタ／カメラ制御装置３０は、プロジェクタ２０に指定位置へマーカーを投影させるためのプロジェクタ制御信号を生成し、当該プロジェクタ制御信号をプロジェクタ２０へ供給し得る。
【００１５】
また、プロジェクタ／カメラ制御装置３０は、多眼カメラ１０を移動（平行移動）させたり、多眼カメラ１０の姿勢または輻輳角を変更したり、多眼カメラ１０に撮影を命令したりする。ここで、多眼カメラ１０の位置姿勢とは、多眼カメラ１０の位置および姿勢の少なくとも一方を指す。多眼カメラ１０の位置は、例えば予め定められた初期位置姿勢を基準とした、多眼カメラ１０の３次元位置により表現され得る。また、多眼カメラ１０の姿勢は、例えば予め定められた初期位置姿勢を基準とした、多眼カメラ１０のロール、ピッチおよび／またはヨー方向の回転量により表現され得る。プロジェクタ／カメラ制御装置３０は、例えば、多眼カメラ１０の位置および／または姿勢を変更するためのカメラ制御信号を生成し、図示されない多眼カメラ１０の駆動機構へ供給してもよい。駆動機構は、このカメラ制御信号に従って、多眼カメラ１０を駆動することによりその位置および／または姿勢を変更する。
【００１６】
なお、多眼カメラ１０の位置姿勢は、プロジェクタ２０とは独立に変更可能である。すなわち、プロジェクタ／カメラ制御装置３０は、マーカーの投影位置を固定したまま、多眼カメラ１０の位置姿勢を変更することが可能である。
【００１７】
プロジェクタ２０は、プロジェクタ／カメラ制御装置３０からの命令に従って、マーカーおよび／または計測用パターンを投影する。そして、多眼カメラ１０に含まれる（右）カメラ１１および（左）カメラ１２は、プロジェクタ／カメラ制御装置３０からの命令に従って撮影を行い、それぞれ撮影画像を生成する。
【００１８】
画像処理装置１００は、多眼カメラ１０から複数枚の撮影画像を取得し、これら画像に対して後述される種々の処理を行う。例えば、画像処理装置１００は、画像に基づいて、マーカーが適切な位置に投影されているかどうかを判定したり、多眼カメラ１０の位置姿勢を推定したり、多眼カメラ１０における視差、多眼カメラ１０から被写体６０までの距離、被写体６０の３次元形状などを計測したりする。以降、これら視差、距離および／または３次元形状の計測を３次元計測と称する。
【００１９】
画像処理装置１００は、入出力制御、通信制御、読み書き制御、および種々の画像処理（例えば、デプスマップの生成、後述されるベース領域の抽出、マーカーの検出、マーカーの投影位置の判定、マーカーの再投影位置の決定、多眼カメラ１０の位置姿勢の推定、３次元計測など）を行うプロセッサを含む。画像処理装置１００は、さらに、かかる処理を実現するためにプロセッサによって実行されるプログラムおよび当該プログラムによって使用されるデータなどを一時的に格納するメモリを含んでいる。
【００２０】
ここで、プロセッサは、典型的にはＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）および／またはＧＰＵ(Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ)であるが、マイコン、ＦＰＧＡ(Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ)、またはＤＳＰ(Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ)、などであってもよい。
【００２１】
画像処理装置１００は、さらに、例えば多眼カメラ１０などの外部装置に接続するためのインタフェース（Ｉ／Ｆ）を利用可能である。Ｉ／Ｆは、画像処理装置１００に内蔵されていてもよいし、画像処理装置１００に外付けされていてもよい。
【００２２】
Ｉ／Ｆは、例えば、多眼カメラ１０から画像を受け取る。Ｉ／Ｆは、例えば光ファイバケーブル、ＨＤＭＩ（登録商標）（Ｈｉｇｈ−Ｄｅｆｉｎｉｔｉｏｎ  Ｍｕｌｔｉｍｅｄｉａ  Ｉｎｔｅｒｆａｃｅ）ケーブル、などの有線通信Ｉ／Ｆであってもよいし、例えばＢｌｕｅｔｏｏｔｈ（登録商標）、Ｗｉ−Ｆｉ（登録商標）などの無線通信技術を利用する無線通信Ｉ／Ｆであってもよい。
【００２３】
以下、図１を用いて画像処理装置１００の構成例の説明を続ける。  
図１に例示されるように、画像処理装置１００は、画像取得部１０１と、デプスマップ生成部１０２と、ベース領域抽出部１０３と、基準マップ記憶部１０４と、マーカー検出部１０５と、投影位置判定部１０６と、再投影位置決定部１０７と、出力部１０８と、入力部１０９と、位置姿勢推定部１１０と、３次元計測部１１１とを含む。
【００２４】
画像取得部１０１は、多眼カメラ１０に含まれるカメラ１１およびカメラ１２から２枚の画像（以降、単に画像群と称する）を取得する。画像取得部１０１は、取得した画像群を、デプスマップ生成部１０２、マーカー検出部１０５、または３次元計測部１１１へ送る。具体的には、マーカーの投影位置を決定する段階では、画像取得部１０１は、画像群をデプスマップ生成部１０２およびマーカー検出部１０５へ送る。多眼カメラ１０の位置姿勢を推定する段階では、画像取得部１０１は、画像群をマーカー検出部１０５へ送る。３次元計測を行う段階では、画像取得部１０１は、画像群を３次元計測部１１１へ送る。画像取得部１０１は、例えば前述のプロセッサおよびＩ／Ｆに相当し得る。
【００２５】
デプスマップ生成部１０２は、画像取得部１０１から画像群を受け取り、当該画像群に基づいてデプスマップを生成する。具体的には、デプスマップ生成部１０２は、多眼カメラ１０が初期位置姿勢を取った状態で、さらにその撮影範囲内に目標物体としての被写体６０が設置され、かつプロジェクタ２０によってマーカーが投影されている時に、当該多眼カメラ１０によって撮影された画像群に基づいてデプスマップ（以降、対象デプスマップと称する）を生成する。デプスマップ生成部１０２は、生成した対象デプスマップをベース領域抽出部１０３へ送る。デプスマップ生成部１０２は、例えば前述のプロセッサに相当し得る。
【００２６】
ベース領域抽出部１０３は、デプスマップ生成部１０２から対象デプスマップを受け取り、基準マップ記憶部１０４から後述される基準デプスマップを読み出す。ベース領域抽出部１０３は、両者の間で略同一のデプスを持つベース領域を抽出する。ベース領域抽出部１０３は、抽出したベース領域を示すデータを投影位置判定部１０６へ送る。ベース領域抽出部１０３は、例えば前述のプロセッサに相当し得る。
【００２７】
ここで、基準デプスマップは、多眼カメラ１０が初期位置姿勢を取った状態で、さらにその撮影範囲内に目標物体としての被写体６０が設置されていない時に、当該多眼カメラ１０によって撮影された画像群に基づいて生成されたデプスマップである。
【００２８】
すなわち、図２の例であれば、台７０における被写体６０の設置面のうち被写体６０によって遮蔽された部分では、基準デプスマップのデプスよりも対象デプスマップのデプスは小さくなる。他方、台７０における被写体６０の設置面のうち被写体６０によって遮蔽されていない部分では、基準デプスマップのデプスは、誤差を考慮しなければ対象デプスマップのデプスと同一となる。
【００２９】
ベース領域とは、ここで説明した台７０における被写体６０の設置面のように、初期位置姿勢を取った状態の多眼カメラ１０の撮影範囲のうち目標物体としての被写体６０によって遮蔽されない領域を意味する。そして、多眼カメラ１０が初期位置姿勢を取った状態で、さらにその撮影範囲内に目標物体としての被写体６０が設置されていない時に、当該多眼カメラ１０が撮影を行った場合に得られる画像群における各画素に対応する現実空間における３次元位置、例えば台７０における被写体６０の設置面を表す各画素に対応する現実空間における３次元位置、は予め導出され、画像処理装置１００によって参照可能であるとする。故に、マーカーをベース領域に投影し、このマーカーを、初期位置姿勢を取った状態の多眼カメラ１０に撮影させることで、マーカーの画像内位置から当該マーカーの現実空間における３次元位置を高精度に計測することが可能となる。
【００３０】
なお、ベース領域は、初期位置姿勢を取った状態の多眼カメラ１０の撮影範囲のうち目標物体としての被写体６０によって遮蔽されない領域に加えて、この被写体６０の表面の一部が加わってもよい。例えば、目標物体が、任意の３次元形状を有する第１の被写体と、当該第１の被写体が置かれる好ましくは略平面状の設置面を有する箱、板、などの第２の被写体とを含むとする。かかる場合に、この第２の被写体における第１の被写体の設置面のうち第１の被写体によって遮蔽されない領域のように、台７０と略平行でおおよそ平らな面で、マーカーが検出可能な広さを有する部分も追加的なベース領域として抽出され得る。
【００３１】
かかる追加的なベース領域を得るために、ベース領域抽出部１０３は、対象デプスマップのうち基準デプスマップの同一位置におけるデプスとの差が略一定であって、マーカーよりも広い領域を抽出し得る。このように基準デプスマップとのデプス差が略一定でマーカーよりも広い領域を追加的なベース領域として抽出することで、例えば被写体６０が台７０における設置面の大半を遮蔽してしまい当該設置面においてマーカーを投影する十分な広さが確保できない場合であっても、被写体６０の表面にマーカーを投影することができる。ただし、かかる追加的なベース領域にマーカーを投影すると、後述されるマーカーの３次元位置（の例えばＺ値）を第２の被写体のデプスに基づいて再計算する必要があるが、かかる再計算においてデプスの計測誤差もマーカーの３次元位置に付加され得る。
【００３２】
基準マップ記憶部１０４は、基準デプスマップを保存する。基準デプスマップは、ベース領域抽出部１０３によって読み出される。基準マップ記憶部１０４は、例えば前述のメモリに相当し得る。
【００３３】
マーカー検出部１０５は、画像取得部１０１から画像群を受け取り、当該画像群に含まれる各画像からプロジェクタ２０によって投影されているマーカーの位置を検出する。マーカーは、例えば十字形などの既定の形状を有しており、マーカー検出部１０５は、画像群に含まれる各画像においてこの既定の形状にマッチする画素を探索する。マーカー検出部１０５は、検出したマーカーの画像内位置を示す位置データを投影位置判定部１０６または位置姿勢推定部１１０へ送る。具体的には、マーカーの投影位置を決定する段階では、マーカー検出部１０５は、位置データを投影位置判定部１０６へ送る。他方、多眼カメラ１０の位置姿勢を推定する段階では、マーカー検出部１０５は、位置データを位置姿勢推定部１１０へ送る。マーカー検出部１０５は、例えば前述のプロセッサに相当し得る。
【００３４】
投影位置判定部１０６は、ベース領域抽出部１０３からベース領域を示すデータを受け取り、マーカー検出部１０５から画像群に含まれる各画像におけるマーカーの位置を示す位置データを受け取る。投影位置判定部１０６は、マーカーがベース領域に投影されているか否かを判定する。マーカーがベース領域に投影されている場合には、当該マーカーの現実空間における３次元位置を高精度に計測することが可能となるので、後述されるように多眼カメラ１０の位置姿勢を変更したとしても、当該マーカーの現実空間における３次元位置を手がかりに多眼カメラ１０の位置姿勢を推定することができる。他方、マーカーがベース領域に投影されていない場合には、マーカーがベース領域に投影されるように再投影位置を決定する必要がある。
【００３５】
投影位置判定部１０６は、マーカーがベース領域に投影されていると判定した場合に、マーカーの投影位置が決定したことを通知するデータをプロジェクタ／カメラ制御装置３０へ出力する。プロジェクタ／カメラ制御装置３０は、かかるデータを受け取ると、多眼カメラ１０の位置姿勢を変更、例えば多眼カメラ１０を被写体６０に接近させてその細部の計測を支援する。他方、投影位置判定部１０６は、マーカーがベース領域に投影されていないと判定した場合に、再投影位置決定部１０７にマーカーの再投影位置を決定するように指示する。なお、後述されるように、マーカーの再投影位置をユーザに決定させる場合には、投影位置判定部１０６は、ベース領域、マーカーの投影位置などをユーザに視覚的に知覚させるために、例えば対象デプスマップにおいてベース領域およびマーカーの投影位置が強調された画像データなどを出力部１０８へ送ってもよい。投影位置判定部１０６は、例えば前述のプロセッサに相当し得る。
【００３６】
再投影位置決定部１０７は、投影位置判定部１０６からの指示に応じて、マーカーの再投影位置を決定する。具体的には、再投影位置決定部１０７は、マーカーの再投影位置を自動的に決定してもよいし、ユーザ入力に基づいて決定してもよい。前者の例では、再投影位置決定部１０７は、ベース領域中のいずれかの位置をマーカーの再投影位置として決定し得る。なお、初期位置姿勢を取った状態の多眼カメラ１０の撮影範囲内で目標物体としての被写体６０が設置されない保護領域が予め定義されていてもよく、かかる場合に再投影位置決定部１０７はこの保護領域から再投影位置を決定してもよい。保護領域は、例えば、台７０における被写体６０の設置面を囲む枠体上に定められ得る。また、後者の例として、再投影位置決定部１０７は、ユーザ入力データを入力部１０９から受け取り、このユーザ入力データの示す位置をマーカーの再投影位置として決定し得る。再投影位置決定部１０７は、決定した再投影位置を示すデータをプロジェクタ／カメラ制御装置３０へ出力する。プロジェクタ／カメラ制御装置３０は、かかるデータを受け取ると、決定された位置にマーカーを再投影するようプロジェクタ２０を制御する。再投影位置決定部１０７は、例えば前述のプロセッサに相当し得る。
【００３７】
出力部１０８は、投影位置判定部１０６から、例えば、ユーザがマーカーの再投影位置を決定するのを支援するための画像データ、例えばベース領域およびマーカーの現在の投影位置を表す画像データ、を受け取り、これを出力装置４０を介して出力する。出力部１０８は、例えば前述のプロセッサおよびＩ／Ｆに相当し得る。そして、出力装置４０は、例えばディスプレイなどの表示装置を含み得る。出力装置４０は、出力部１０８によって与えられた画像データを出力（表示）する。なお、再投影位置決定部１０７が再投影位置を自動的に決定可能である場合に、出力装置４０および出力部１０８は取り除かれ得る。
【００３８】
入力装置５０は、例えばタッチスクリーン、キーボード、マウスなどのユーザ入力を受け付けるための装置を含んでもよい。そして、入力部１０９は、入力装置５０を介してユーザ入力を受け付け、ユーザ入力データを得る。入力部１０９は、ユーザ入力データを再投影位置決定部１０７へ送る。入力部１０９は、例えば前述のプロセッサおよびＩ／Ｆに相当し得る。なお、再投影位置決定部１０７が再投影位置を自動的に決定可能である場合に、入力装置５０および入力部１０９は取り除かれ得る。
【００３９】
位置姿勢推定部１１０は、マーカー検出部１０５から画像群に含まれる各画像におけるマーカーの位置を示す位置データを受け取り、当該位置データに基づいて多眼カメラ１０の位置姿勢を推定する。位置姿勢推定部１１０は、多眼カメラ１０の推定位置姿勢を示すデータを３次元計測部１１１へ送る。位置姿勢推定部１１０は、例えば前述のプロセッサに相当し得る。
【００４０】
ここで、多眼カメラ１０が初期位置姿勢を取っている時のカメラ１１およびカメラ１２の撮影画像を図３に、多眼カメラ１０が初期位置姿勢とは異なる位置姿勢を取っている時のカメラ１１およびカメラ１２の撮影画像を図４に例示する。図４の各画像におけるマーカー８１およびマーカー８２の位置は、図３の各画像におけるマーカー８１およびマーカー８２の位置とそれぞれ異なっている。しかしながら、図３および図４とで、マーカー８１およびマーカー８２の現実空間における３次元位置は不変であり、しかもその３次元位置は既知である。故に、以下に説明するように、図４の各画像におけるマーカー８１およびマーカー８２の位置と、マーカー８１およびマーカー８２の現実空間における３次元位置とを手がかりに、多眼カメラ１０が位置姿勢を推定することが可能となる。なお、図３および図４の例では、マーカーの数は２つであるが、マーカーの数は最低１つ以上あればよい。
【００４１】
この例では、説明の簡単化のため、図５に示すように、多眼カメラ１０（の中心）は、初期位置であるＯ（０，０，０）から、現在位置Ｏｃｕ（ｔｘ，ｔｙ，ｔｚ）へ移動しており、姿勢は初期姿勢と同じであるとし、また輻輳角θは十分に小さいこととする。
【００４２】
カメラ１１は、多眼カメラ１０の中心から見てｙ軸方向に＋Ｌの位置にあり、カメラ１２は多眼カメラ１０の中心から見てｙ軸方向に−Ｌの位置にある。すなわち、多眼カメラ１０の中心が現在位置Ｏｃｕに移動しているならば、カメラ１１およびカメラ１２はそれぞれ（ｔｘ，ｔｙ＋Ｌ，ｔｚ）および（ｔｘ，ｔｙ−Ｌ，ｔｚ）に移動していることになる。カメラ１１の撮影画像におけるマーカー８１（またはマーカー８２であってもよい。以下同様）の位置を（ｘｒ，ｙｒ）とし、カメラ１２の撮影画像におけるマーカー８１の位置を（ｘｌ，ｙｌ）とする。また、マーカー８１の現実空間における３次元位置を（Ｘ，Ｙ，Ｚ）とする。すなわち、マーカー８１の現実空間における３次元位置から、各画像への射影変換について以下の数式（１）および数式（２）が導出可能である。
【数１】
2020041802.tif 000003
【数２】
2020041802.tif 000004
【００４３】
上記数式（１）より、ｘｌおよびｙｌを以下の数式（３）および数式（４）に示すように導出可能である。
【数３】
2020041802.tif 000005
【数４】
2020041802.tif 000006
【００４４】
同様に、上記数式（２）より、ｘｒおよびｙｒを以下の数式（５）および数式（６）に示すように導出可能である。
【数５】
2020041802.tif 000007
【数６】
2020041802.tif 000008
【００４５】
数式（３）および数式（５）からｔｘの項を消去すると、以下の数式（７）が導かれる。
【数７】
2020041802.tif 000009
【００４６】
故に、ｘｌ≠ｘｒの場合には、ｔｚは以下の通りである。
【数８】
2020041802.tif 000010
【００４７】
他方、ｘｌ＝ｘｒの場合には、ｔｚは以下の通りである。
【数９】
2020041802.tif 000011
【００４８】
ｘｌおよびｘｒの関係に従って場合分けをして、数式（８）または数式（９）のいずれかのｔｚを上記数式（３）および数式（４）にそれぞれ代入することで、ｔｘおよびｔｙを算出することができる。すなわち、マーカー８１の画像内位置である（ｘｌ、ｙｌ）、（ｘｒ，ｙｒ）および当該マーカー８１の現実空間における３次元位置である（Ｘ，Ｙ，Ｚ）から、多眼カメラ１０の現在位置Ｏｃｕ（ｔｘ，ｔｙ，ｔｚ）を推定することができる。
【００４９】
なお、マーカーがベース領域に投影されていたとしても、多眼カメラ１０の位置姿勢を変更すると、マーカーが被写体６０などに遮蔽され検出できなくなるおそれがある。そこで、多眼カメラ１０の位置姿勢を変更する度に、マーカー検出部１０５がその位置姿勢での撮影された画像群からマーカーの検出を試みてもよい。そして、プロジェクタ／カメラ制御装置３０は、マーカー検出部１０５がマーカーを検出できるようになるまで、カメラ制御信号を更新し得る。これにより、多眼カメラ１０の位置姿勢を適切に制御することができる。或いは、多眼カメラ１０の所望の位置姿勢が既に定められており、その位置姿勢が設定された状態でマーカーが検出不能である場合には、マーカーの投影位置の決定をやり直すようにしてもよい。
【００５０】
３次元計測部１１１は、位置姿勢推定部１１０から、多眼カメラ１０の推定位置姿勢を示すデータを受け取る。さらに、３次元計測部１１１は、プロジェクタ２０が３次元計測を行うための既定の計測用パターンを被写体６０に投影している時に、推定時の位置姿勢を保った状態の多眼カメラ１０によって撮影された画像群を受け取る。３次元計測部１１１は、画像群に含まれる複数の画像間で、例えば画素毎に画素ブロックレベルでのマッチングを行う。そして、３次元計測部１１１は、かかるマッチング結果と多眼カメラ１０の推定位置姿勢とに基づいて各画素におけるカメラ１１およびカメラ１２の視差、カメラ１１およびカメラ１２から被写体６０における各画素に対応する点までの距離、および／または被写体６０の３次元形状を推定する。３次元計測部１１１は、例えば、図示されない後段の外部装置へ推定結果を示すデータを出力し得る。３次元計測部１１１は、例えば前述のプロセッサに相当し得る。
【００５１】
以下、図６および図７を用いて、図２の３次元計測システムの動作を説明する。  
まず、被写体６０が台７０に設置される（ステップＳ２０１）。人間が被写体６０を台７０に設置してもよいし、図示されない、ロボット、コンベア、またはその他の機械が被写体６０を台７０に設置してもよい。
【００５２】
他方、プロジェクタ／カメラ制御装置３０は、カメラ制御信号を生成し、図示されない駆動機構に供給することで、多眼カメラ１０を初期位置姿勢に設定する（ステップＳ２０２）。
【００５３】
また、プロジェクタ／カメラ制御装置３０は、プロジェクタ制御信号を生成し、プロジェクタ２０に供給することで、プロジェクタ２０に指定位置へマーカーを投影させる（ステップＳ２０３）。
【００５４】
ステップＳ２０１、ステップＳ２０２およびステップＳ２０３は、図６とは異なる順序で行われてもよいし、並列的に行われてもよい。また、ステップＳ２０１の実行前に、基準デプスマップが生成され、画像処理装置１００の基準マップ記憶部１０４に保存されていることとする。
【００５５】
ステップＳ２０１、ステップＳ２０２およびステップＳ２０３の後に、多眼カメラ１０は、プロジェクタ／カメラ制御装置３０からの命令に従って撮影を行い、画像群を生成する（ステップＳ２０４）。
【００５６】
次に、ステップＳ２０４において得られた画像群に基づいて、ステップＳ２０３において投影されたマーカーについて投影位置判定が行われる（ステップＳ２１０）。この処理の詳細は、図７を用いて後述する。
【００５７】
ステップＳ２１０においてマーカーがベース領域に投影されていることを意味する判定結果が得られたならば処理はステップＳ２２３へ進み、そうでなければ処理はステップＳ２２２へ進む。
【００５８】
ステップＳ２２２において、画像処理装置１００の再投影位置決定部１０７は、ステップＳ２０３において投影されたマーカーの再投影位置を決定する。そして、処理はステップＳ２２３へ進む。
【００５９】
ステップＳ２２３において、プロジェクタ／カメラ制御装置３０は、プロジェクタ２０によるマーカーの投影位置を維持したまま、カメラ制御信号を生成し、図示されない駆動機構に供給することで、多眼カメラ１０の位置姿勢を変更する。そして、多眼カメラ１０は、変更後の位置姿勢を維持しながら再び撮影を行い、画像群を生成する。画像処理装置１００のマーカー検出部１０５はこの画像群に含まれる各画像からマーカーの位置を検出し、画像処理装置１００の位置姿勢推定部１１０は各画像におけるマーカーの位置と、当該マーカーの現実空間における３次元位置とに基づいて、多眼カメラ１０の位置姿勢を推定する（ステップＳ２２４）。
【００６０】
そして、プロジェクタ／カメラ制御装置３０は、プロジェクタ２０に計測用パターンを投影させるとともに、多眼カメラ１０の位置姿勢を維持しながら撮影を行わせる。画像処理装置１００の３次元計測部１１１は、撮影された画像群とステップＳ２２４において得られた多眼カメラ１０の推定位置姿勢とに基づいて３次元計測を行う（ステップＳ２２５）。
【００６１】
以下、図７を用いて、上記ステップＳ２１０の詳細を説明する。  
ステップＳ２１０の処理が開始すると、マーカー検出部１０５は、ステップＳ２０４において撮影された画像群に含まれる各画像からマーカーの位置を検出する（ステップＳ２１１）。
【００６２】
他方、画像処理装置１００のデプスマップ生成部１０２は、ステップＳ２０４において撮影された画像群に基づいて対象デプスマップを生成する（ステップＳ２１２）。また、画像処理装置１００のベース領域抽出部１０３は、同じく画像処理装置１００の基準マップ記憶部１０４から基準デプスマップを読み出す（ステップＳ２１３）。なお、ステップＳ２１２およびステップＳ２１３は、図７とは異なる順序で行われてもよいし、並列的に行われてもよい。
【００６３】
それから、ベース領域抽出部１０３は、ステップＳ２１２において生成された対象デプスマップと、ステップＳ２１３において得られた基準デプスマップと間で略同一のデプスを持つベース領域を抽出する（ステップＳ２１４）。
【００６４】
なお、ステップＳ２１１と、ステップＳ２１２〜ステップＳ２１４とは、図７とは異なる順序で行われてもよいし、並列的に行われてもよい。
【００６５】
画像処理装置１００の投影位置判定部１０６は、ステップＳ２１１において検出されたマーカーの位置が、ステップＳ２１４において抽出されたベース領域にあるか否かを判定し、判定結果を生成する（ステップＳ２１５）。
【００６６】
以上説明したように、第１の実施形態に係る画像処理装置は、前述の基準デプスマップと目標物体としての被写体が設置されている時に生成された対象デプスマップとの間で略同一のデプスを持つベース領域を抽出し、多眼カメラの位置姿勢推定のためのマーカーがこのベース領域に投影されているか否かを判定する。故に、この画像処理装置によれば、ベース領域に投影されたマーカー、すなわちその現実空間における３次元位置が高精度に計測可能なマーカーを利用して、多眼カメラが初期位置姿勢とは異なる位置姿勢を取ったとしてもその位置姿勢を推定することができる。さらに、このマーカーが撮影可能な限りは多眼カメラの位置姿勢を任意に変更したとしても、その変更後の位置姿勢を推定することが可能である。
【００６７】
（第２の実施形態）  
前述の第１の実施形態に係る画像処理装置は、マーカーの仮決めされた投影位置が前述のベース領域にあるか否かを検証し、マーカーがベース領域に投影されていない場合にはマーカーの再投影位置を決定することで、ベース領域にマーカーを投影することを可能とする。他方、第２の実施形態に係る画像処理装置は、これとは異なり、まずはベース領域を抽出し、そのベース領域からマーカーの投影位置を決定する。故に、この画像処理装置によれば、マーカーの投影位置がベース領域にあるか否かを検証せずとも、確実にベース領域にマーカーを投影することができる。
【００６８】
図８に例示されるように、画像処理装置３００は、画像取得部１０１と、デプスマップ生成部１０２と、ベース領域抽出部１０３と、基準マップ記憶部１０４と、マーカー検出部３０５と、出力部３０８と、入力部３０９と、位置姿勢推定部１１０と、３次元計測部１１１、投影位置決定部３１２と、とを含む。
【００６９】
図８の画像取得部１０１は、図１の画像取得部１０１と基本的に類似であるが、マーカーの投影位置を決定する段階において画像群をマーカー検出部３０５へ送る必要がない。また、図８のベース領域抽出部１０３は、図１のベース領域抽出部１０３と基本的に類似であるが、抽出したベース領域を示すデータを投影位置決定部３１２へ送る。
【００７０】
マーカー検出部３０５は、多眼カメラ１０の位置姿勢を推定する段階において、画像取得部１０１から画像群を受け取り、当該画像群からプロジェクタ２０によって投影されているマーカーの位置を検出する。マーカー検出部３０５は、検出したマーカーの画像内位置を示す位置データを位置姿勢推定部１１０へ送る。マーカー検出部３０５は、例えば前述のプロセッサに相当し得る。
【００７１】
投影位置決定部３１２は、ベース領域抽出部１０３からベース領域を示すデータを受け取る。投影位置決定部３１２は、ベース領域からマーカーの投影位置を決定する。具体的には、投影位置決定部３１２は、マーカーの投影位置を自動的に決定してもよいし、ユーザ入力に基づいて決定してもよい。前者の例では、投影位置決定部３１２は、ベース領域中のいずれかの位置をマーカーの投影位置として決定し得る。なお、本実施形態においても前述の保護領域が予め定義されていてもよく、かかる場合に投影位置決定部３１２はこの保護領域から投影位置を決定してもよい。また、後者の例として、投影位置決定部３１２は、ユーザ入力データを入力部３０９から受け取り、このユーザ入力データの示す位置をマーカーの投影位置として決定し得る。なお、投影位置決定部３１２は、ベース領域などをユーザに視覚的に知覚させるために、例えば対象デプスマップにおいてベース領域が強調された画像データなどを出力部３０８へ送ってもよい。
【００７２】
投影位置決定部３１２は、決定した投影位置を示すデータをプロジェクタ／カメラ制御装置３０へ出力する。プロジェクタ／カメラ制御装置３０は、かかるデータを受け取ると、決定された位置にマーカーを投影するようプロジェクタ２０を制御する。さらに、プロジェクタ／カメラ制御装置３０は、多眼カメラ１０の位置姿勢を変更、例えば多眼カメラ１０を被写体６０に接近させてその細部の計測を支援する。投影位置決定部３１２は、例えば前述のプロセッサに相当し得る。
【００７３】
出力部３０８は、投影位置決定部３１２から、例えば、ユーザがマーカーの投影位置を決定するのを支援するための画像データ、例えばベース領域を表す画像データ、を受け取り、これを出力装置４０を介して出力する。出力部３０８は、例えば前述のプロセッサおよびＩ／Ｆに相当し得る。なお、投影位置決定部３１２が投影位置を自動的に決定可能である場合に、出力装置４０および出力部３０８は取り除かれ得る。
【００７４】
入力部３０９は、入力装置５０を介してユーザ入力を受け付け、ユーザ入力データを得る。入力部３０９は、ユーザ入力データを投影位置決定部３１２へ送る。入力部３０９は、例えば前述のプロセッサおよびＩ／Ｆに相当し得る。なお、投影位置決定部３１２が投影位置を自動的に決定可能である場合に、入力装置５０および入力部３０９は取り除かれ得る。
【００７５】
以下、図９を用いて、画像処理装置３００を含む３次元計測システムの動作を説明する。  
まず、被写体６０が台７０に設置される（ステップＳ４０１）。人間が被写体６０を台７０に設置してもよいし、図示されない、ロボット、コンベア、またはその他の機械が被写体６０を台７０に設置してもよい。
【００７６】
他方、プロジェクタ／カメラ制御装置３０は、カメラ制御信号を生成し、図示されない駆動機構に供給することで、多眼カメラ１０を初期位置姿勢に設定する（ステップＳ４０２）。
【００７７】
また、プロジェクタ／カメラ制御装置３０は、プロジェクタ制御信号を生成し、プロジェクタ２０に供給することで、プロジェクタ２０に指定位置へマーカーを投影させる（ステップＳ４０２）。ステップＳ４０１およびステップＳ４０２は、図９とは異なる順序で行われてもよいし、並列的に行われてもよい。また、ステップＳ４０１の実行前に、基準デプスマップが生成され、画像処理装置３００の基準マップ記憶部１０４に保存されていることとする。
【００７８】
ステップＳ４０１およびステップＳ４０２の後に、多眼カメラ１０は、プロジェクタ／カメラ制御装置３０からの命令に従って撮影を行い、画像群を生成する（ステップＳ４０３）。
【００７９】
他方、画像処理装置３００のデプスマップ生成部１０２は、ステップＳ４０３において撮影された画像群に基づいて対象デプスマップを生成する（ステップＳ４０４）。また、画像処理装置３００のベース領域抽出部１０３は、同じく画像処理装置３００の基準マップ記憶部１０４から基準デプスマップを読み出す（ステップＳ４０５）。なお、ステップＳ４０４およびステップＳ４０５は、図９とは異なる順序で行われてもよいし、並列的に行われてもよい。
【００８０】
それから、ベース領域抽出部１０３は、ステップＳ４０４において生成された対象デプスマップと、ステップＳ４０５において得られた基準デプスマップと間で略同一のデプスを持つベース領域を抽出する（ステップＳ４０６）。そして、画像処理装置３００の投影位置決定部３１２は、ステップＳ４０６において抽出されたベース領域から、マーカーの投影位置を決定する（ステップＳ４０７）。
【００８１】
プロジェクタ／カメラ制御装置３０は、プロジェクタ制御信号を生成し、プロジェクタ２０に供給することで、プロジェクタ２０に、ステップＳ４０７において決定された位置へマーカーを投影させる（ステップＳ４０８）。
【００８２】
ステップＳ４０９において、プロジェクタ／カメラ制御装置３０は、プロジェクタ２０によるマーカーの投影位置を維持したまま、カメラ制御信号を生成し、図示されない駆動機構に供給することで、多眼カメラ１０の位置姿勢を変更する。そして、多眼カメラ１０は、変更後の位置姿勢を維持しながら再び撮影を行い、画像群を生成する。画像処理装置３００のマーカー検出部３０５はこの画像群に含まれる各画像からマーカーの位置を検出し、画像処理装置３００の位置姿勢推定部１１０は各画像におけるマーカーの位置と、当該マーカーの現実空間における３次元位置とに基づいて、多眼カメラ１０の位置姿勢を推定する（ステップＳ４１０）。
【００８３】
そして、プロジェクタ／カメラ制御装置３０は、プロジェクタ２０に計測用パターンを投影させるとともに、多眼カメラ１０の位置姿勢を維持しながら撮影を行わせる。画像処理装置３００の３次元計測部１１１は、撮影された画像群とステップＳ４１０において得られた多眼カメラ１０の推定位置姿勢とに基づいて３次元計測を行う（ステップＳ４１１）。
【００８４】
以上説明したように、第２の実施形態に係る画像処理装置は、前述の基準デプスマップと目標物体としての被写体が設置されている時に生成された対象デプスマップとの間で略同一のデプスを持つベース領域を抽出し、このベース領域から多眼カメラの位置姿勢推定のためのマーカーの投影位置を決定する。故に、この画像処理装置によれば、マーカーの投影位置を仮決めせずとも確実にベース領域にマーカーを投影するとともに、このマーカー、すなわちその現実空間における３次元位置が高精度に計測可能なマーカーを利用して、多眼カメラが初期位置姿勢とは異なる位置姿勢を取ったとしてもその位置姿勢を推定することができる。さらに、このマーカーが撮影可能な限りは多眼カメラの位置姿勢を任意に変更したとしても、その変更後の位置姿勢を推定することが可能である。
【００８５】
上述の実施形態は、本発明の概念の理解を助けるための具体例を示しているに過ぎず、本発明の範囲を限定することを意図されていない。実施形態は、本発明の要旨を逸脱しない範囲で、様々な構成要素の付加、削除または転換をすることができる。
【００８６】
上述の実施形態では、いくつかの機能部を説明したが、これらは各機能部の実装の一例に過ぎない。例えば、１つの装置に実装されると説明された複数の機能部が複数の別々の装置に亘って実装されることもあり得るし、逆に複数の別々の装置に亘って実装されると説明された機能部が１つの装置に実装されることもあり得る。
【００８７】
上記各実施形態において説明された種々の機能部は、回路を用いることで実現されてもよい。回路は、特定の機能を実現する専用回路であってもよいし、プロセッサのような汎用回路であってもよい。
【００８８】
上記各実施形態の処理の少なくとも一部は、例えば汎用のコンピュータに搭載されたプロセッサを基本ハードウェアとして用いることでも実現可能である。上記処理を実現するプログラムは、コンピュータで読み取り可能な記録媒体に格納して提供されてもよい。プログラムは、インストール可能な形式のファイルまたは実行可能な形式のファイルとして記録媒体に記憶される。記録媒体としては、磁気ディスク、光ディスク（ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＤＶＤ等）、光磁気ディスク（ＭＯ等）、半導体メモリなどである。記録媒体は、プログラムを記憶でき、かつ、コンピュータが読み取り可能であれば、何れであってもよい。また、上記処理を実現するプログラムを、インターネットなどのネットワークに接続されたコンピュータ（サーバ）上に格納し、ネットワーク経由でコンピュータ（クライアント）にダウンロードさせてもよい。
【符号の説明】
【００８９】
１０・・・多眼カメラ
１１，１２・・・カメラ
２０・・・プロジェクタ
３０・・・プロジェクタ／カメラ制御装置
４０・・・出力装置
５０・・・入力装置
６０・・・被写体
７０・・・台
８１，８２・・・マーカー
１００，３００・・・画像処理装置
１０１・・・画像取得部
１０２・・・デプスマップ生成部
１０３・・・ベース領域抽出部
１０５，３０５・・・マーカー検出部
１０６・・・投影位置判定部
１０７・・・再投影位置決定部
１０８，３０８・・・出力部
１０９，３０９・・・入力部
１１０・・・位置姿勢推定部
１１１・・・３次元計測部
３１２・・・投影位置決定部
【図１】
2020041802.tif 000012
【図２】
2020041802.tif 000013
【図３】
2020041802.tif 000014
【図４】
2020041802.tif 000015
【図５】
2020041802.tif 000016
【図６】
2020041802.tif 000017
【図７】
2020041802.tif 000018
【図８】
2020041802.tif 000019
【図９】
2020041802.tif 000020