ところで、カメラのキャリブレーションを精度よく行うためには、校正用パターンを様々な角度で撮影画像のより多くの部分を用いて撮影する必要がある。特許文献1では、カメラを動かす手の動きと表示された校正用パターンの動きとが一致するようになるものの、どのような撮影画像を取り込むべきかユーザが判断する際の参考にはならない。
本発明は、こうした課題を解決するためになされたものであり、その主たる目的は、ユーザによる産業用カメラのキャリブレーションの操作を支援する支援装置において、どのような撮影画像を取り込むべきかユーザが判断することを支援することにある。
上記課題を解決するための第1の手段は、
予め設定された所定領域を撮影するカメラと、前記カメラにより撮影中の前記所定領域の画像である所定画像を表示する表示装置と、前記カメラにより校正用パターンを撮影した複数の撮影画像に基づいて前記カメラのキャリブレーションを行う処理装置と、を備えるシステムに適用される、産業用カメラのキャリブレーション操作支援装置であって、
前記キャリブレーションに用いる画像として取り込んだ前記複数の撮影画像における前記校正用パターンの位置を、前記所定画像に重ね合わせて前記表示装置により表示させる。
上記構成によれば、カメラは、予め設定された所定領域を撮影する。表示装置は、カメラにより撮影中の所定領域の画像である所定画像を表示する。処理装置は、カメラにより校正用パターンを撮影した複数の撮影画像に基づいて、カメラのキャリブレーションを行う。
ここで、産業用カメラのキャリブレーション操作支援装置は、キャリブレーションに用いる画像として取り込んだ複数の撮影画像における校正用パターンの位置を、所定画像に重ね合わせて表示装置により表示させる。このため、ユーザは、所定領域のうちどの位置に校正用パターンを配置した撮影画像を既に取り込み済みか把握することができる。したがって、ユーザは、未だ配置していない位置に校正用パターンを配置して撮影画像を取り込むことが容易になるため、どのような撮影画像を取り込むべきかユーザが判断することを支援することができる。
第2の手段は、
予め設定された所定領域を撮影するカメラと、前記カメラにより撮影中の前記所定領域の画像である所定画像を表示する表示装置と、前記カメラにより校正用パターンを撮影した複数の撮影画像に基づいて前記カメラのキャリブレーションを行う処理装置と、を備えるシステムに適用される、産業用カメラのキャリブレーション操作支援装置であって、
前記キャリブレーションに用いる画像として取り込んだ前記複数の撮影画像における前記校正用パターンが、前記所定領域において前記キャリブレーションの精度を向上させる効果の分布を、前記所定画像に重ね合わせて前記表示装置により表示させる。
上記構成によれば、産業用カメラのキャリブレーション操作支援装置は、キャリブレーションに用いる画像として取り込んだ複数の撮影画像における校正用パターンが、所定領域においてキャリブレーションの精度を向上させる効果(以下、「精度向上効果」という)の分布を、所定画像に重ね合わせて表示装置により表示させる。このため、ユーザは、既に取り込んだ複数の撮影画像における校正用パターンが、精度向上効果を所定領域のうちどの部分にどの程度及ぼしているか把握することができる。したがって、ユーザは、精度向上効果が不足している位置に校正用パターンを配置して撮影画像を取り込むことが容易になるため、どのような撮影画像を取り込むべきかユーザが判断することを支援することができる。
第3の手段では、前記校正用パターンは複数の特徴点を含み、前記効果の分布は、各特徴点の位置を頂点として前記頂点から離れるほど小さくなる所定値を各位置で合計した各合計値の分布である。こうした構成によれば、所定領域において精度向上効果の分布を、各特徴点の位置で最も大きくなり、各特徴点から離れるほど小さくなる所定値を用いて容易に表すことができる。さらに、所定値を各位置で合計した各合計値の分布として精度向上効果の分布を表すため、取り込んだ撮影画像の数が多くなった場合でも、精度向上効果の分布を求める処理が複雑化することを抑制することができる。
具体的には、第4の手段のように、前記所定値は、前記各特徴点の位置を頂点とした各正規分布に基づく値である、といった構成を採用することができる。こうした構成によれば、所定領域において各特徴点が及ぼす精度向上効果を、各特徴点から離れた位置まで反映させることができる。したがって、精度向上効果が所定領域のうちどの部分にどの程度及んでいるかを、定量的に把握し易くなる。
第5の手段では、前記所定値は、前記所定領域の全体において0よりも大きい値である。こうした構成によれば、所定領域において精度向上効果が0になる部分が生じることを避けることができる。したがって、精度向上効果が所定領域のうちどの部分にどの程度及んでいるかを、さらに定量的に把握し易くなる。
第6の手段では、前記所定領域において前記校正用パターンに対応する領域内における前記各合計値の総和が最も小さくなる前記校正用パターンの位置を、前記所定領域において前記校正用パターンを配置すべき位置として、前記所定画像に重ね合わせて前記表示装置により表示させる。
上記構成によれば、所定値を各位置で合計した各合計値を、校正用パターンに対応する領域内で足し合わせた総和が最も小さくなる校正用パターンの位置、すなわち既に取り込んだ撮影画像の校正用パターンによる精度向上効果が最も小さい校正用パターンの位置を、所定領域において校正用パターンを配置すべき位置とすることができる。そして、所定領域において校正用パターンを配置すべき位置が、所定画像に重ね合わせて表示装置により表示される。したがった、カメラにより校正用パターンを撮影する際に、どの位置に校正用パターンを配置すべきかをユーザが容易に理解することができる。
カメラのキャリブレーションが未実行の場合は、キャリブレーション操作支援装置は、撮影画像に基づいて3次元空間における校正用パターンの各特徴点の位置を正確に算出することができない。このため、キャリブレーション操作支援装置は、3次元空間としての所定領域において、精度向上効果の分布を正確に把握することができない。
この点、第7の手段では、前記所定領域を2次元平面とみなし、前記各特徴点の位置を前記2次元平面上の位置とみなして、前記効果の分布を前記所定画像に重ね合わせて前記表示装置により表示させる。こうした構成によれば、カメラのキャリブレーションが未実行の場合であっても、キャリブレーション操作支援装置は、2次元平面としての所定領域において精度向上効果の分布を把握して表示することができる。したがって、ユーザは、キャリブレーションを実行する際に、どのような撮影画像を取り込むべきか判断することが容易となる。
上述したように、カメラのキャリブレーションが未実行の場合は、キャリブレーション操作支援装置は、3次元空間としての所定領域において精度向上効果の分布を正確に把握することができない。ひいては、3次元空間としての所定領域において、校正用パターンを配置すべき正確な位置を所定画像に重ね合わせて表示することが難しい。
この点、第7の手段を前提として、第8の手段では、前記2次元平面としての前記所定領域において前記校正用パターンを配置すべき位置を、前記所定画像に重ね合わせて前記表示装置により表示させる。こうした構成によれば、カメラのキャリブレーションが未実行の場合であっても、キャリブレーション操作支援装置は、2次元平面としての所定領域において、精度向上効果の分布を把握すること、ひいては校正用パターンを配置すべき位置を所定画像に重ね合わせて表示することができる。
カメラのキャリブレーションの実行後は、キャリブレーションにより取得されたカメラに関するパラメータを用いて、撮影画像に基づいて3次元空間における校正用パターンの各特徴点の位置を正確に算出することができる。
そこで、第9の手段では、前記キャリブレーションの実行後に、前記キャリブレーションにより取得された前記カメラに関するパラメータを用いて、前記所定領域を3次元空間とみなし、前記各特徴点の位置を前記3次元空間内の位置とみなして、前記効果の分布を前記所定画像に重ね合わせて前記表示装置により表示させる。こうした構成によれば、産業用カメラのキャリブレーション操作支援装置は、3次元空間としての所定領域において、精度向上効果の分布を正確に把握して表示することができる。したがって、ユーザは、3次元空間としての所定領域において、精度向上効果が不足している位置に校正用パターンを配置して撮影画像を取り込むことが容易になる。
第10の手段では、前記3次元空間としての前記所定領域において前記校正用パターンを配置すべき位置を、前記所定画像に重ね合わせて前記表示装置により表示させる。
上記構成によれば、ユーザは、カメラにより校正用パターンを撮影する際に、3次元空間としての所定領域において、どの位置に校正用パターンを配置すべきかを容易に理解することができる。
第11の手段では、前記所定領域において前記校正用パターンを配置すべき位置を、前記所定画像に重ね合わせて前記表示装置により表示させる。こうした構成によれば、カメラにより校正用パターンを撮影する際に、どの位置に校正用パターンを配置すべきかをユーザが容易に理解することができる。
第12の手段では、前記キャリブレーションに用いる画像として取り込んだ前記複数の撮影画像における前記校正用パターンの高さを、前記所定画像に重ね合わせて前記表示装置により表示させる。こうした構成によれば、ユーザは、どのような高さに校正用パターンを配置した撮影画像を既に取り込み済みか把握することができる。したがって、ユーザは、未だ配置していない高さに校正用パターンを配置して撮影画像を取り込むことが容易になるため、どのような撮影画像を取り込むべきかユーザが判断することを支援することができる。
第13の手段では、前記所定領域において前記校正用パターンを配置すべき高さを、前記所定画像に重ね合わせて前記表示装置により表示させる。こうした構成によれば、カメラにより校正用パターンを撮影する際に、どの高さに校正用パターンを配置すべきかをユーザが容易に理解することができる。
第14の手段では、前記キャリブレーションに用いる画像として取り込んだ前記複数の撮影画像における前記校正用パターンの傾きを、前記所定画像に重ね合わせて前記表示装置により表示させる。こうした構成によれば、ユーザは、どのような傾きに校正用パターンを配置した撮影画像を既に取り込み済みか把握することができる。したがって、ユーザは、未だ配置していない傾きに校正用パターンを配置して撮影画像を取り込むことが容易になるため、どのような撮影画像を取り込むべきかユーザが判断することを支援することができる。
第15の手段では、前記所定領域においてどのような傾きで前記校正用パターンを配置すべきかを、前記所定画像に重ね合わせて前記表示装置により表示させる。こうした構成によれば、カメラにより校正用パターンを撮影する際に、どのような傾きで校正用パターンを配置すべきかをユーザが容易に理解することができる。
第16の手段では、前記所定領域において前記校正用パターンの配置状態が所定条件を満たした場合に、前記カメラにより撮影した前記撮影画像を前記キャリブレーションに用いる画像として取り込む。こうした構成によれば、ユーザはキャリブレーションに用いる画像を取り込むための操作を行う必要がなく、ユーザの手間を減らすことができる。
第17の手段では、前記キャリブレーションに用いる画像として取り込んだ前記複数の撮影画像の数が所定数を超えた場合に、前記処理装置により前記キャリブレーションを行わせる。こうした構成によれば、ユーザがキャリブレーションのための操作を行う必要がなく、ユーザの手間を減らすことができる。
(第1実施形態)
以下、ロボット(産業機械)による部品の組み付け工程(ワークに対する作業工程)に用いられるシステムに具現化した第1実施形態について、図面を参照して説明する。
図1に示すように、システム10は、カメラ11、処理装置12、表示装置13等を備えている。
カメラ11(産業用カメラ)は、静止画及び動画を撮影可能であり、撮影した画像のデータを処理装置12へ送信する。カメラ11は、予め設定された所定領域20を撮影するように、スタンド11a等により固定されている。所定領域20は、ロボットによる部品の組み付け工程において、部品の組み付け(ワークに対する作業)が行われる領域であり、所定の横幅、奥行、高さを有している。
表示装置13は、液晶画面等により構成されており、処理装置12から入力した信号に基づいて画像を表示する。
処理装置12は、CPU、ROM、RAM、操作部、記憶装置、入出力インターフェース等を備えたコンピュータである。CPUは、ROMやRAMに格納されているプログラムやデータを用いて、種々の制御を実行する。操作部は、キーボードやマウス等により構成されており、ユーザの操作を受け付けることにより、各種の指示をCPUに入力する。記憶装置は、各種のプログラム及びデータを記憶する。
処理装置12は、カメラ11により撮影した所定画像25(撮影画像)を、表示装置13により表示させる。所定画像25は、カメラ11により現在撮影している(撮影中)の所定領域20の画像である。図1は、所定領域20内に校正用パターン30が配置されている状態を示している。
校正用パターン30は、周知の任意の構成を採用することができ、例えば板状に形成され、所定のマーカ30aが所定の配列で記されている。校正用パターン30は、カメラ11のレンズ中心、焦点距離等のカメラパラメータを求める処理、すなわちカメラ11のキャリブレーションに用いられる。
処理装置12は、カメラ11により校正用パターン30を撮影した複数の撮影画像に基づいて、カメラ11のキャリブレーションを行う。詳しくは、カメラ11は所定領域20を連続的に撮影しており、処理装置12はカメラ11により撮影した所定画像25を表示装置13により連続的に表示させている。しかし、その段階では所定画像25は、キャリブレーションに用いられる画像として処理装置12に取り込まれていない。なお、カメラ11が所定領域20の撮影を開始した時に、処理装置12は、キャリブレーションが可能か否かを判定してもよい。キャリブレーションが可能か否かは、例えばカメラ11による撮影画像の輝度や、ピント、遮蔽物の有無等に基づいて判定することができる。処理装置12は、キャリブレーションが可能であると判定した場合に、キャリブレーションを実行させる指示を表示装置13により表示させてもよい。処理装置12は、キャリブレーションが可能でないと判定した場合に、カメラ11による撮影条件を修正する指示を表示装置13により表示させてもよい。また、処理装置12は、キャリブレーションを実行させる指示を表示装置13により表示させた後に、所定期間内にキャリブレーションが開始されなかった場合に、キャリブレーションを実行させる指示を表示装置13により再度表示させてもよい。
処理装置12は、所定領域20において校正用パターン30の配置状態が所定条件を満たした場合に、カメラ11により撮影した所定画像25をキャリブレーションに用いる画像として取り込む。すなわち、ユーザは、キャリブレーションに用いる所定画像25を処理装置12に取り込む際に、所定画像25を処理装置12に取り込ませるための操作を行う必要がない。
詳しくは、処理装置12は、カメラ11により撮影した撮影画像のデータに基づいて、校正用パターン30の位置を特定する。校正用パターン30の位置を特定する方法については後述する。処理装置12は、特定した校正用パターン30の位置が、精度よくキャリブレーションを行うために望ましい複数の位置範囲のいずれかに含まれる場合に、上記所定条件を満たしたと判定する。望ましい複数の位置範囲は、例えば所定画像25において、四隅付近と中央付近に設定されている。
次に、システム10に適用され、ユーザによるカメラ11のキャリブレーションの操作を支援する支援装置について説明する。本実施形態では、支援装置(産業用カメラのキャリブレーション操作支援装置)は、処理装置12により構成されている。
図2は、撮影中の校正用パターン30と、取り込んだ撮影画像における校正用パターン30の位置を示す画像である。処理装置12は、キャリブレーションに用いる画像として取り込んだ複数の撮影画像における校正用パターン30の位置を、所定画像25に重ね合わせて表示装置13により表示させる。
詳しくは、処理装置12は、キャリブレーションに用いる画像として取り込んだ撮影画像のデータに基づいて、複数のマーカ30aの位置を特定する。例えば処理装置12は、特定した複数のマーカ30aが存在する領域の輪郭線31(外形線)を、校正用パターン30の位置として特定する。そして、輪郭線31を破線で表示させる。輪郭線32,33は、校正用パターン30を、輪郭線31とは別の位置に配置して撮影した撮影画像における校正用パターン30の位置を表している。
上記のように、取り込んだ撮影画像に既に含まれている校正用パターン30の位置として、輪郭線31〜33が表示される。このため、ユーザは、取り込んだ撮影画像に未だ含まれていない校正用パターン30の位置として、次にどの位置に校正用パターン30を配置すべきか容易に判断することができる。ユーザにより所定領域20において校正用パターン30が望ましい位置に配置されると、処理装置12は上記所定条件が満たされたと判定して、カメラ11により撮影した所定画像25をキャリブレーションに用いる画像として取り込む。
そして、処理装置12は、キャリブレーションに用いる画像として取り込んだ複数の撮影画像の数が所定数を超えた場合に、その都度キャリブレーションを行う。処理装置12は、取り込んだ複数の撮影画像の数が一度所定数を超えた場合は、新たな撮影画像を取り込む度にキャリブレーションを行う。これにより、キャリブレーションを行う毎に、キャリブレーションの精度が向上する。キャリブレーションを行う方法は周知であるため、ここでは記載を省略する。その後、処理装置12は、キャリブレーション結果として得られた上記カメラパラメータが適正範囲の値になった時に、キャリブレーションを行う一連の処理を終了する。なお、処理装置12は、キャリブレーションに必要な撮影画像の上記所定数や、現在取り込み済みの撮影画像の数等を、表示装置13により表示させてもよい。また、処理装置12は、現在得られているカメラパラメータの上記適正範囲の値に対する達成度や不足度を、表示装置13により表示させてもよい。
以上詳述した本実施形態は、以下の利点を有する。
・処理装置12(産業用カメラのキャリブレーション操作支援装置)は、キャリブレーションに用いる画像として取り込んだ複数の撮影画像における校正用パターン30の位置を、所定画像25に重ね合わせて表示装置13により表示させる。このため、ユーザは、所定領域20のうちどの位置に校正用パターン30を配置した撮影画像を既に取り込み済みか把握することができる。したがって、ユーザは、未だ配置していない位置に校正用パターン30を配置して撮影画像を取り込むことが容易になるため、どのような撮影画像を取り込むべきかユーザが判断することを支援することができる。
・処理装置12は、所定領域20において校正用パターン30の配置状態が所定条件を満たした場合に、カメラ11により撮影した撮影画像をキャリブレーションに用いる画像として取り込む。こうした構成によれば、ユーザはキャリブレーションに用いる画像を取り込むための操作を行う必要がなく、ユーザの手間を減らすことができる。
・キャリブレーションに用いる画像として取り込んだ複数の撮影画像の数が所定数を超えた場合に、処理装置12はキャリブレーションを行う。こうした構成によれば、ユーザがキャリブレーションのための操作を行う必要がなく、ユーザの手間を減らすことができる。
なお、上記実施形態を、以下のように変更して実施することもできる。上記実施形態と同一の部分については、同一の符号を付すことにより説明を省略する。
・処理装置12は、所定領域20において校正用パターン30を配置すべき位置を、所定画像25に重ね合わせて表示装置13により表示させることもできる。具体的には、処理装置12は、精度よくキャリブレーションを行うために望ましい複数の位置範囲のうち、校正用パターン30が配置された撮影画像を取り込んでいない位置範囲のいずれか、あるいはそのいずれかの位置範囲内の所定位置を、所定画像25に重ね合わせて表示装置13により表示させる。こうした構成によれば、カメラ11により校正用パターン30を撮影する際に、どの位置に校正用パターン30を配置すべきかをユーザが容易に理解することができる。
・処理装置12は、キャリブレーションに用いる画像として取り込んだ複数の撮影画像における校正用パターン30の高さを、所定画像25に重ね合わせて表示装置13により表示させることもできる。具体的には、処理装置12は、キャリブレーションに用いる画像として取り込んだ撮影画像のデータに基づいて、校正用パターン30の各部の高さを特定する。そして、処理装置12は、上記輪郭線31〜33の内部を、各部の高さに応じた色で表示させる。こうした構成によれば、ユーザは、どのような高さに校正用パターン30を配置した撮影画像を既に取り込み済みか把握することができる。したがって、ユーザは、未だ配置していない高さに校正用パターン30を配置して撮影画像を取り込むことが容易になるため、どのような撮影画像を取り込むべきかユーザが判断することを支援することができる。なお、校正用パターン30の各部の高さの平均値を算出し、輪郭線31〜33の内部を高さの平均値に応じた色で表示させたり、高さの平均値を数値表示させたりすることもできる。
・処理装置12は、所定領域20において校正用パターン30を配置すべき高さを、所定画像25に重ね合わせて表示装置13により表示させることもできる。具体的には、処理装置12は、精度よくキャリブレーションを行うために望ましい複数の高さ範囲のうち、校正用パターン30が配置された撮影画像を取り込んでいない高さ範囲のいずれか、あるいはそのいずれかの高さ範囲内の所定位置を、所定画像25に重ね合わせて表示装置13により表示させる。こうした構成によれば、カメラ11により校正用パターン30を撮影する際に、どの高さに校正用パターン30を配置すべきかをユーザが容易に理解することができる。また、ユーザにより所定領域20において校正用パターン30が望ましい高さに配置されると、処理装置12は上記所定条件が満たされたと判定して、カメラ11により撮影した所定画像25をキャリブレーションに用いる画像として取り込むとよい。
・処理装置12は、キャリブレーションに用いる画像として取り込んだ複数の撮影画像における校正用パターン30の傾きを、所定画像25に重ね合わせて表示装置13により表示させることもできる。上記と同様に、処理装置12は、上記輪郭線31〜33の内部を、各部の高さに応じた色で表示させる。ユーザは、輪郭線31〜33の内部の色の変化度合に基づいて、校正用パターン30の傾きを把握することができる。こうした構成によれば、ユーザは、どのような傾きに校正用パターン30を配置した撮影画像を既に取り込み済みか把握することができる。したがって、ユーザは、未だ配置していない傾きに校正用パターン30を配置して撮影画像を取り込むことが容易になるため、どのような撮影画像を取り込むべきかユーザが判断することを支援することができる。なお、校正用パターン30の各部の高さに基づいて校正用パターン30の傾きを算出し、算出した傾きを数値表示させることもできる。
・処理装置12は、所定領域20においてどのような傾きで校正用パターン30を配置すべきかを、所定画像25に重ね合わせて表示装置13により表示させることもできる。具体的には、処理装置12は、精度よくキャリブレーションを行うために望ましい複数の傾き範囲のうち、校正用パターン30が配置された撮影画像を取り込んでいない傾き範囲のいずれか、あるいはそのいずれかの傾き範囲内の所定傾き値を、所定画像25に重ね合わせて表示装置13により表示させる。こうした構成によれば、カメラ11により校正用パターン30を撮影する際に、どのような傾きで校正用パターン30を配置すべきかをユーザが容易に理解することができる。また、ユーザにより所定領域20において校正用パターン30が望ましい傾きで配置されると、処理装置12は上記所定条件が満たされたと判定して、カメラ11により撮影した所定画像25をキャリブレーションに用いる画像として取り込むとよい。
(第2実施形態)
以下、処理装置12が、キャリブレーションに用いる画像として取り込んだ複数の撮影画像における校正用パターン30が、所定領域20においてキャリブレーションの精度を向上させる効果(以下、「精度向上効果」という)の分布を、所定画像25に重ね合わせて表示装置13により表示させるようにした第2実施形態について、図面を参照して説明する。なお、第1実施形態と同一の部分については、同一の符号を付すことにより説明を省略する。
図3は、撮影中の校正用パターン30及び所定直線Lを示す画像である。校正用パターン30は、長方形(矩形)板状に形成され、複数の特徴点30bが全体として長方形状の配列(所定の配列)で記されている。ここでは、所定領域20を2次元平面とみなし、各特徴点30bの位置をその2次元平面上の位置とみなしている。所定直線Lは、その2次元平面において校正用パターン30に重なるように引いた任意の直線である。
図4は、図3の所定直線L上に存在する特徴点30bを示す模式図である。ここでは、4つの特徴点30bが所定直線L上に存在する。
図5は、図4の所定直線L上における精度向上効果の分布の比較例を示すグラフである。各特徴点30bは、それぞれの位置においてキャリブレーションの精度を向上させる効果を奏する。そこで、校正用パターン30において、複数の特徴点30bが存在する領域(上記輪郭線31の内部)で精度向上効果を1.0とし、特徴点30bが存在しない領域域(上記輪郭線31の外部)で精度向上効果を0として、精度向上効果を数値化している。この場合は、輪郭線31の内部でなければ、校正用パターン30に近くても遠くても精度向上効果は0となる。このため、輪郭線31の外部において、校正用パターン30に近い位置と校正用パターン30から遠い位置とで、精度向上効果の違いを示すことができない。
図6は、図4の所定直線L上における精度向上効果の分布を示すグラフである。ここでは、各特徴点30bの位置を頂点として頂点から離れるほど小さくなる所定値として、精度向上効果を数値化している。詳しくは、所定値は、各特徴点30bの位置を頂点とした各正規分布30cに基づく値である。すなわち、所定値は、所定領域20の全体において0よりも大きい値である。そして、精度向上効果の分布30dは、上記所定値を各位置で合計した各合計値の分布である。この場合は、輪郭線31の外部において、校正用パターン30に近いほど精度向上効果が大きくなり、校正用パターン30から遠いほど精度向上効果が小さくなる。このため、輪郭線31の外部において、校正用パターン30に近い位置と校正用パターン30から遠い位置とで、精度向上効果の違いを示すことができる。なお、図6では所定直線L上における上記所定値を2次元のグラフとして示しているが、上記所定値は円錐状の3次元のグラフである。
図7は、キャリブレーション操作支援の手順を示すフローチャートである。この一連の処理は、処理装置12により実行される。
まず、カメラ11により所定領域20を撮影させる(S10)。
続いて、各特徴点30bの2次元位置を特定する(S11)。詳しくは、カメラ11により撮影中の所定領域20の画像である所定画像25(撮影画像)において、所定領域20を2次元平面とみなし、各特徴点30bの位置をその2次元平面上の位置とみなして、2次元平面上における各特徴点30bの位置(以下、「2次元位置」という)を特定する。
続いて、走査用長方形を未作成であるか否か判定する(S12)。図8に示すように、走査用長方形40は、複数の特徴点30bが存在する領域の輪郭線31(図示略)に対応する長方形(図形)である。この判定において、走査用長方形を未作成でないと判定した場合(S12:NO)、S14の処理へ進む。一方、この判定において、走査用長方形を未作成であると判定した場合(S12:YES)、走査用長方形40を作成する(S13)。詳しくは、特定した各特徴点30bの2次元位置に基づいて、最も外側の各特徴点30bを通る長方形を作成する。
続いて、画像取り込み条件(所定条件)が成立したか否か判定する(S14)。詳しくは、後述する校正用パターン30の目標配置位置、若しくは目標配置位置の近傍の位置に校正用パターン30が配置されている場合に、画像取り込み条件が成立したと判定し、それ以外の場合に画像取り込み条件が成立していないと判定する。なお、校正用パターン30の位置は、特定した各特徴点30bの2次元位置に基づいて算出する。この判定において、画像取り込み条件が成立していないと判定した場合(S14:NO)、S10の処理から再度実行する。
一方、S14の判定において、画像取り込み条件が成立していると判定した場合(S14:YES)、カメラ11により撮影中の所定領域20の画像(所定画像25)を取り込む(S15)。
続いて、キャリブレーションを実行可能か否か判定する(S16)。詳しくは、取り込んだ複数の撮影画像の数が所定数を超えた場合に、キャリブレーションを実行可能であると判定する。そして、取り込んだ複数の撮影画像の数が一度所定数を超えた後は、新たな撮影画像を取り込む度にキャリブレーションを実行可能であると判定する。一方、取り込んだ複数の撮影画像の数が所定数を超えていない場合に、キャリブレーションを実行可能でないと判定する。この判定において、キャリブレーションを実行可能でないと判定した場合(S16:NO)、S18の処理へ進む。一方、この判定において、キャリブレーションを実行可能であると判定した場合(S16:YES)、キャリブレーションを実行する(S17)。なお、カメラ11のキャリブレーションが未実行の場合は、処理装置12は、撮影画像に基づいて3次元空間における校正用パターン30の各特徴点30bの位置を正確に算出することができない。このため、処理装置12は、3次元空間としての所定領域20において、精度向上効果の分布を正確に把握することができない。
続いて、2次元平面上に精度向上効果の分布を作成する(S18)。図9は、図8の所定画像25に対応する精度向上効果の分布を示す模式図である。校正用パターン30の中央に近付くほど、精度向上効果の等高線51が高い値を示す線になっている。
続いて、精度向上効果の分布を重ね合わせて表示する(S19)。図10は、複数の取り込み画像における校正用パターン30の位置を示す模式図である。ここでは、輪郭線31,32によって校正用パターン30の位置を示している。図11は、図10の所定画像25に対応する精度向上効果の分布を示す模式図であり、複数の精度向上効果を重ね合わせて表示している。2つの校正用パターン30の中央に近付くほど、精度向上効果が高くなっている。2つの校正用パターン30の中央から離れた位置では精度向上効果の違いが分かりにくくなっているが、2つの校正用パターン30の中央から離れるほど、精度向上効果が低くなっている。図12は、図11の精度向上効果の分布を対数表示に変換して示す模式図である。同図では、2つの校正用パターン30の中央から離れるほど、精度向上効果が低くなっていることが明確に示されている。
続いて、2次元平面上における校正用パターン30の目標配置位置を表示する(S20)。図13は、校正用パターン30の目標配置位置を探索する態様を示す模式図である。ここでは、説明の便宜上、1つの校正用パターン30による精度向上効果の分布を示している。走査用長方形40の位置を変化させながら(走査)、走査用長方形40内の精度向上効果の総和が最も小さくなる位置を探索する。すなわち、所定領域20において校正用パターン30に対応する領域内における各位置の精度向上効果の各合計値の総和が最も小さくなる校正用パターン30の位置を、所定領域20において校正用パターン30を配置すべき位置とする。そして、走査用長方形40内の精度向上効果の総和が最も小さくなる位置を、所定画像25に重ね合わせて表示装置13により表示させる。図14は、校正用パターン30の目標配置位置60を示す模式図である。目標配置位置60は、走査用長方形40と同一の長方形により表示されている。
続いて、キャリブレーションを実行済みであるか否か判定する(S21)。この判定において、キャリブレーションを実行済みでないと判定した場合(S21:NO)、S26の処理へ進む。一方、この判定において、キャリブレーションを実行済みであると判定した場合(S21:YES)、各特徴点30bの3次元位置を特定する(S22)。詳しくは、キャリブレーションにより取得されたカメラ11に関するパラメータを用いて、所定領域20を3次元空間とみなし、各特徴点30bの位置を3次元空間内の位置(3次元位置)として特定する。なお、カメラ11のキャリブレーションの実行後は、キャリブレーションにより取得されたカメラ11に関するパラメータを用いて、撮影画像に基づいて3次元空間における校正用パターン30の各特徴点30bの位置を正確に算出することができる。
続いて、3次元空間内に精度向上効果の分布を作成する(S23)。詳しくは、S18及び図9と同様の処理を、3次元空間に適用して実行する。
続いて、精度向上効果の分布(高さ及び傾き)を重ね合わせて表示する(S24)。詳しくは、S19及び図10〜12の処理と同様の処理を、3次元空間に適用して実行する。
続いて、3次元空間内における校正用パターン30の目標配置位置を表示する(S25)。詳しくは、S20及び図13,14と同様の処理を3次元空間に適用して実行し、校正用パターン30の目標配置位置(高さ及び傾き)を3次元の位置として表示する。なお、所定領域20において校正用パターン30に対応する領域内における各位置の精度向上効果の各合計値の総和が最も小さくなる校正用パターン30の位置に加えて、精度向上効果の各合計値の総和が2番目に小さくなる校正用パターン30の位置等を目標配置位置として表示してもよい。
続いて、キャリブレーションを実行済みであるか否か判定する(S26)。この判定において、キャリブレーションを実行済みでないと判定した場合(S26:NO)、S31の処理へ進む。一方、この判定において、キャリブレーションを実行済みであると判定した場合(S26:YES)、校正用パターン30の傾きを特定する(S27)。詳しくは、各特徴点30bの3次元位置を特定し、各特徴点30bが通る平面の傾き、すなわち校正用パターン30の傾きを特定する。図15は、校正用パターン30の傾きを示す模式図である。ここでは、x軸回りの傾きRx、y軸回りの傾きRy、及びz軸回りの傾きRzのうち、傾きRx及び傾きRyを特定する。z軸回りの傾きRzは、精度向上効果に及ぼす影響が小さいため、省略している。例えば、配置状態P1では、傾きRx=0゜、傾きRy=0°である。配置状態P2では、傾きRx=20°、傾きRy=20°である。
続いて、校正用パターン30の傾き分布を作成する(S28)。詳しくは、特定した傾きRx,Ryを頂点として頂点から離れるほど値が小さくなる分布を、正規分布に基づいて作成する。
続いて、傾き分布を重ね合わせて表示する(S29)。図16は、校正用パターン30の傾き分布を示す模式図である。同図では、配置状態P1による傾き分布と、配置状態P2による傾き分布とが重ね合わせて表示されている。
続いて、校正用パターン30の目標配置角度を表示する(S30)。詳しくは、図16の傾き分布に基づいて、傾きRx,Ryが−45°から45°の範囲内において、分布の値が最も小さい配置角度を目標配置角度として表示する。なお、傾きRx,Ryが−45°から45°の範囲から外れると、校正用パターン30を認識できなくなるおそれがある。
続いて、終了条件が成立したか否か判定する(S31)。詳しくは、以下の少なくとも1つが成立した場合に終了条件が成立したと判定し、以下のいずれも成立していない場合に終了条件が成立していないと判定する。
・ユーザが終了操作を実行した
・取り込んだ複数の撮影画像の数が終了判定数を超えた
・RMS(再投影誤差)が閾値以下である
・RMSの前回値と今回値との差分が閾値以下である
・所定領域20において精度向上効果の最小値が判定値以上である
・所定領域20において精度向上効果の最小値が判定値以上となった領域の割合が所定割合以上である
上記判定において、終了条件が成立していないと判定した場合(S31:NO)、S10の処理から再度実行する。一方、上記判定において、終了条件が成立したと判定した場合(S31:YES)、この一連の処理を終了する(END)。
以上詳述した本実施形態は、以下の利点を有する。ここでは、第1実施形態と異なる利点のみを述べる。
・カメラ11の処理装置12は、キャリブレーションに用いる画像として取り込んだ複数の撮影画像における校正用パターン30が、所定領域20においてキャリブレーションの精度を向上させる効果(精度向上効果)の分布を、所定画像25に重ね合わせて表示装置13により表示させる。このため、ユーザは、既に取り込んだ複数の撮影画像における校正用パターン30が、精度向上効果を所定領域20のうちどの部分にどの程度及ぼしているか把握することができる。したがって、ユーザは、精度向上効果が不足している位置に校正用パターン30を配置して撮影画像を取り込むことが容易になるため、どのような撮影画像を取り込むべきかユーザが判断することを支援することができる。
・校正用パターン30は複数の特徴点30bを含み、精度向上効果の分布は、各特徴点30bの位置を頂点として頂点から離れるほど小さくなる所定値を各位置で合計した各合計値の分布である。こうした構成によれば、所定領域20において精度向上効果の分布を、各特徴点30bの位置で最も大きくなり、各特徴点30bから離れるほど小さくなる所定値を用いて容易に表すことができる。さらに、所定値を各位置で合計した各合計値の分布として精度向上効果の分布を表すため、取り込んだ撮影画像の数が多くなった場合でも、精度向上効果の分布を求める処理が複雑化することを抑制することができる。
・所定値は、各特徴点30bの位置を頂点とした各正規分布に基づく値である。こうした構成によれば、所定領域20において各特徴点30bが及ぼす精度向上効果を、各特徴点30bから離れた位置まで反映させることができる。したがって、精度向上効果が所定領域20のうちどの部分にどの程度及んでいるかを、定量的に把握し易くなる。
・所定値は、所定領域20の全体において0よりも大きい値である。こうした構成によれば、所定領域20において精度向上効果が0になる部分が生じることを避けることができる。したがって、精度向上効果が所定領域20のうちどの部分にどの程度及んでいるかを、さらに定量的に把握し易くなる。
・所定値を各位置で合計した各合計値を、校正用パターン30に対応する領域内で足し合わせた総和が最も小さくなる校正用パターン30の位置、すなわち既に取り込んだ撮影画像の校正用パターン30による精度向上効果が最も小さい校正用パターン30の位置を、所定領域20において校正用パターン30を配置すべき位置とすることができる。そして、所定領域20において校正用パターン30を配置すべき位置が、所定画像25に重ね合わせて表示装置13により表示される。したがった、カメラ11により校正用パターン30を撮影する際に、どの位置に校正用パターン30を配置すべきかをユーザが容易に理解することができる。
・所定領域20を2次元平面とみなし、各特徴点30bの位置を2次元平面上の位置とみなして、精度向上効果の分布を所定画像25に重ね合わせて表示装置13により表示させる。こうした構成によれば、カメラ11のキャリブレーションが未実行の場合であっても、処理装置12は、2次元平面としての所定領域20において精度向上効果の分布を把握して表示することができる。したがって、ユーザは、キャリブレーションを実行する際に、どのような撮影画像を取り込むべきか判断することが容易となる。
・2次元平面としての所定領域20において校正用パターン30を配置すべき位置を、所定画像25に重ね合わせて表示装置13により表示させる。こうした構成によれば、カメラ11のキャリブレーションが未実行の場合であっても、処理装置12は、2次元平面としての所定領域20において、精度向上効果の分布を把握すること、ひいては校正用パターン30を配置すべき位置を所定画像25に重ね合わせて表示することができる。
・キャリブレーションの実行後に、キャリブレーションにより取得されたカメラ11に関するパラメータを用いて、所定領域20を3次元空間とみなし、各特徴点30bの位置を3次元空間内の位置とみなして、精度向上効果の分布を所定画像25に重ね合わせて表示装置13により表示させる。こうした構成によれば、カメラ11の処理装置12は、3次元空間としての所定領域20において、精度向上効果の分布を正確に把握して表示することができる。したがって、ユーザは、3次元空間としての所定領域20において、精度向上効果が不足している位置に校正用パターン30を配置して撮影画像を取り込むことが容易になる。
・3次元空間としての所定領域20において校正用パターン30を配置すべき位置を、所定画像25に重ね合わせて表示装置13により表示させる。こうした構成によれば、ユーザは、カメラ11により校正用パターン30を撮影する際に、3次元空間としての所定領域20において、どの位置に校正用パターン30を配置すべきかを容易に理解することができる。
なお、所定値は、各特徴点30bの位置を頂点とした各正規分布に基づく値に限らず、各特徴点30bの位置を頂点とした指数分布や三角分布に基づく値にすることもできる。すなわち、所定値として、各特徴点30bの位置を頂点として、頂点から離れるほど小さくなる値を採用することができる。また、校正用パターン30に各特徴点30bが一様に配置された構成に限らず、校正用パターン30の中心に近いほど特徴点30bの密度が高くなる構成等を採用することもできる。また、所定値として、校正用パターン30の中心から離れるほど小さくなる値や、輪郭線31から離れるほど小さくなる値を採用することもできる。
また、第1,第2実施形態を、以下のように変更して実施することもできる。第1,第2実施形態と同一の部分については、同一の符号を付すことにより説明を省略する。
・校正用パターン30の位置として、輪郭線31〜33に限らず、輪郭線31〜33の角部のみを表示させたり、校正用パターン30の中心を表示させたりすることもできる。
・キャリブレーションに用いる画像を取り込むための操作を、ユーザが行うようにすることもできる。
・キャリブレーションのための操作を、ユーザが行うようにすることもできる。
・カメラ11(産業用カメラ)は、ロボット(産業機械)の手先等に固定されていてもよい。その場合、カメラ11が予め設定された所定領域20を撮影するようにロボットの姿勢を制御した状態で、カメラ11のキャリブレーションを行えばよい。そして、その状態において、校正用パターン30を撮影する位置や角度が変化するように、ロボットの姿勢を制御することができる。
・処理装置12の機能をカメラ11が備え、カメラ11により産業用カメラのキャリブレーション操作支援装置が構成されていてもよい。また、処理装置12の機能を表示装置13が備え、表示装置13によりカメラのキャリブレーション操作支援装置が構成されていてもよい。
・また、上記実施形態、及び各変更例を適宜組み合わせて実施することもできる。