(57)【特許請求の範囲】
【請求項１】
複数の画素を含む撮像素子を有し、前記撮像素子の各画素を水平走査方向の行単位で順次露光することで計測対象物を撮像するカメラと、前記カメラの撮像により得られた画像から、前記計測対象物の像を求める演算処理手段と、を備えた画像計測装置において、
前記水平走査方向と交差して配置された互いの相対位置が既知であるかあるいは基準位置が既知の複数の断続的に連なるマーカを有する、前記計測対象物を保持する保持部材を備え、
前記演算処理手段は、前記画像での前記断続的に連なるマーカの位置を検出し、前記断続的に連なるマーカの基準位置に対する、前記画像での前記断続的に連なるマーカの位置の水平走査方向及び／又は垂直走査方向のずれ量を、前記画像の行単位で求めて、前記ずれ量を打ち消すように補正した前記計測対象物の像を求めることを特徴とする画像計測装置。
【請求項２】
前記複数の断続的に連なるマーカが垂直走査方向に沿って前記保持部材に設けられていることを特徴とする請求項１に記載の画像計測装置。
【請求項３】
前記保持部材を、前記撮像素子の撮像面と平行な面内で回転させる回転部を更に備えたことを特徴とする請求項１又は２に記載の画像計測装置。
【請求項４】
前記断続的に連なるマーカの形状は、円形状、＋形状、破線状、濃淡の繰り返し、あるいはのこぎり波状のいずれかを含むことを特徴とする請求項１乃至３のいずれか１項に記載の画像計測装置。
【請求項５】
前記断続的に連なるマーカは、直線上に連なっていることを特徴とする請求項１乃至４のいずれか１項に記載の画像計測装置。
【請求項６】
複数の画素を含む撮像素子を有し、前記撮像素子の各画素を水平走査方向の行単位で順次露光することで計測対象物を撮像するカメラと、前記カメラの撮像により得られた画像から、前記計測対象物の像を求める演算処理手段と、を備えた画像計測装置において、
空間周波数が既知であり水平走査方向と交差して延びる正弦波状のマーカを有する、前記計測対象物を保持する保持部材を備え、
前記演算処理手段は、前記画像におけるマーカの波形から前記空間周波数の１／２よりも低い値の周波数帯域の振動成分を抽出して、前記振動成分を打ち消す水平走査方向の第１の補正量を行単位で求めると共に、前記画像におけるマーカの波形を前記第１の補正量で水平走査方向に行単位で補正し、補正されたマーカの波形の周波数変調成分を抽出して、前記周波数変調成分を打ち消す垂直走査方向の第２の補正量を行単位で求め、前記第１の補正量及び前記第２の補正量で補正した前記計測対象物の像を求めることを特徴とする画像計測装置。
【請求項７】
複数の画素を含む撮像素子を有し、前記撮像素子の各画素を水平走査方向の行単位で順次露光することで計測対象物を撮像するカメラと、前記カメラの撮像により得られた画像から、前記計測対象物の像を求める演算処理手段と、を備えた画像計測装置において、
空間周波数が既知であり水平走査方向と交差して延びる正弦波状の第１のマーカ及び前記第１のマーカに対して９０°の位相差を有する余弦波状の第２のマーカを有する、前記計測対象物を保持する保持部材を備え、
前記演算処理手段は、前記画像における第１のマーカ及び第２のマーカの波形のうちのいずれか一方のマーカの波形から前記空間周波数の１／２よりも低い値の周波数帯域の振動成分を抽出して、前記振動成分を打ち消す水平走査方向の第１の補正量を行単位で求めると共に、前記画像における第１のマーカ及び第２のマーカの波形を前記第１の補正量で水平走査方向に行単位で補正し、補正された第１のマーカ及び第２のマーカの波形を用いて行毎に逆正接を求め、前記逆正接の位相値から垂直走査方向の第２の補正量を行単位で求め、前記第１の補正量及び前記第２の補正量で補正した前記計測対象物の像を求めることを特徴とする画像計測装置。
【請求項８】
複数の画素を含む撮像素子を有し、前記撮像素子の各画素を水平走査方向の行単位で順次露光することで計測対象物を撮像するカメラと、前記カメラの撮像により得られた画像から、前記計測対象物の像を求める演算処理手段と、前記水平走査方向と交差して配置された互いの相対位置が既知であるかあるいは基準位置が既知の複数の断続的に連なるマーカを有する、前記計測対象物を保持する保持部材と、を備えた画像計測装置を用いた画像計測方法であって、
前記演算処理手段が、前記画像での前記断続的に連なるマーカの位置を検出する工程と、
前記演算処理手段が、前記断続的に連なるマーカの基準位置に対する、前記画像での前記断続的に連なるマーカの位置の水平走査方向及び／又は垂直走査方向のずれ量を、前記画像の行単位で求める工程と、
前記演算処理手段が、前記ずれ量を打ち消すように補正した前記計測対象物の像を求める工程と、を備えたことを特徴とする画像計測方法。
【請求項９】
複数の画素を含む撮像素子を有し、前記撮像素子の各画素を水平走査方向の行単位で順次露光することで計測対象物を撮像するカメラと、前記カメラの撮像により得られた画像から、前記計測対象物の像を求める演算処理手段と、空間周波数が既知であり水平走査方向と交差して延びる正弦波状のマーカを有する、前記計測対象物を保持する保持部材と、を備えた画像計測装置を用いた画像計測方法であって、
前記演算処理手段が、前記画像におけるマーカの波形から前記空間周波数の１／２よりも低い値の周波数帯域の振動成分を抽出する工程と、
前記演算処理手段が、前記振動成分を打ち消す水平走査方向の第１の補正量を行単位で求める工程と、
前記演算処理手段が、前記画像におけるマーカの波形を前記第１の補正量で水平走査方向に行単位で補正する工程と、
前記演算処理手段が、補正されたマーカの波形の周波数変調成分を抽出する工程と、
前記演算処理手段が、前記周波数変調成分を打ち消す垂直走査方向の第２の補正量を行単位で求める工程と、
前記演算処理手段が、前記第１の補正量及び前記第２の補正量で補正した前記計測対象物の像を求める工程と、を備えたことを特徴とする画像計測方法。
【請求項１０】
複数の画素を含む撮像素子を有し、前記撮像素子の各画素を水平走査方向の行単位で順次露光することで計測対象物を撮像するカメラと、前記カメラの撮像により得られた画像から、前記計測対象物の像を求める演算処理手段と、空間周波数が既知であり水平走査方向と交差して延びる正弦波状の第１のマーカ及び前記第１のマーカに対して９０°の位相差を有する余弦波状の第２のマーカを有する、前記計測対象物を保持する保持部材と、を備えた画像計測装置を用いた画像計測方法であって、
前記画像における第１のマーカ及び第２のマーカの波形のうちのいずれか一方のマーカの波形から前記空間周波数の１／２よりも低い値の周波数帯域の振動成分を抽出する工程と、
前記演算処理手段が、前記振動成分を打ち消す水平走査方向の第１の補正量を行単位で求める工程と、
前記演算処理手段が、前記画像における第１のマーカ及び第２のマーカの波形を前記第１の補正量で水平走査方向に行単位で補正する工程と、
前記演算処理手段が、補正された第１のマーカ及び第２のマーカの波形を用いて行毎に逆正接を求める工程と、
前記演算処理手段が、前記逆正接の位相値から垂直走査方向の第２の補正量を行単位で求める工程と、
前記演算処理手段が、前記第１の補正量及び前記第２の補正量で補正した前記計測対象物の像を求める工程と、を備えたことを特徴とする画像計測方法。
【請求項１１】
請求項８乃至１０のいずれか１項に記載の画像計測方法の各工程をコンピュータに実行させるためのプログラム。
【請求項１２】
請求項１１に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、行単位で露光転送を行って画像を生成し、画像から計測対象物の像を求める画像計測装置、画像計測方法、プログラム及び記録媒体に関するものである。
【背景技術】
【０００２】
従来、画像を用いて物体の位置や形状などの像を計測することが行われている。その利点として通常の測距センサによる計測と異なり、二次元、またはステレオカメラを用いて三次元の情報を一度に得られることがあげられる。この際撮像に用いられるカメラの撮像素子としては、これまではＣＣＤ（Ｃｈａｒｇｅ  Ｃｏｕｐｌｅｄ  Ｄｅｖｉｃｅ）イメージセンサが主に用いられてきた。近年では高画素カメラを中心に、ＣＭＯＳ（Ｃｏｍｐｌｅｍｅｎｔａｒｙ  Ｍｅｔａｌ  Ｏｘｉｄｅ  Ｓｅｍｉｃｏｎｄｕｃｔｏｒ）イメージセンサもよく用いられるようになってきている。ＣＭＯＳイメージセンサは、画素信号のランダムアクセスが可能である点や、ＣＣＤイメージセンサと比較して読出しを高速化しやすい、低消費電力であるといった優位点がある。
【０００３】
ところで、ＣＭＯＳイメージセンサの駆動方法としては、ローリングシャッタによる駆動方法が一般的である。このシャッタ機能を図２７を参照しながら説明する。
【０００４】
図２７（ａ）は比較対象のＣＣＤイメージセンサの露光、読出しのタイミングを示した図である。各行ｌｉｎｅ＿１〜ｌｉｎｅ＿ｎは同じｒｅｓｅｔ信号で露光を開始し、同じタイミングのｒｅａｄ＿ｏｕｔ信号で読出しを開始する。読み出された信号はＣＣＤイメージセンサによってバケツリレー式に順次伝送されていく。伝送路自体にメモリ機能があるので最終読出しラインが１本でも同時露光が可能となる。この結果、図２７（ｂ）のように動いている物体を撮像した場合でも図形が歪むことはない。このようなシャッタ方式をグローバルシャッタと呼ぶ。
【０００５】
これに対してローリングシャッタを用いたＣＭＯＳイメージセンサの露光、読出しのタイミングを示したのが図２７（ｃ）である。各行ｌｉｎｅ＿１〜ｌｉｎｅ＿ｎは最終読出しラインに同時にデータが来ないようにｒｅｓｅｔ信号、ｒｅａｄ＿ｏｕｔ信号を所定の時間ずらした状態で露光され、また読み出される。この結果ＣＣＤイメージセンサと異なり、二次元配列された多数の画素を画素行ごとに順次走査して画素信号を読み出していく方法となる。このためフレームの上下でほぼ一垂直期間分の時間差が生じ、カメラと被写体との間に相対的な動きがある場合、行ごとに露光時間がずれてしまう。具体的には動いている被写体を撮像すると図２７（ｄ）のように撮像した画像が歪んでしまうという問題があった。特に被写体の動きが速い場合は画像の歪みが大きくなってしまうという問題があった。なおこの問題は、機械的なスリットを垂直方向に走査するフォーカルプレーン方式のシャッタを使ったカメラでも同様に生じる。
【０００６】
この問題を解決する方法として、水平方向に動きのある被写体について、過去のフレームと次のフレームとの差分により被写体の動きベクトル量を検知し、水平方向の画像の歪みを補正する方法が知られている（特許文献１参照）。そして、画像の垂直方向の歪みについては、ジャイロセンサ等の外部センサである手ぶれ検知手段を用いて検知して補正している。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００９−１４１７１７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、上記特許文献１の方法では、水平方向のずれ量については計算により求めることができたが、垂直方向のずれ量についてはジャイロセンサ等、別途外部センサが必要であった。そのため、コストやスペース上で不利な上、カメラ及び被写体の双方に別途外部センサが必要でそれらの同期を取る回路が必要となり、構成が非常に煩雑となっていた。
【０００９】
そこで本発明は、カメラの撮像によって得られた画像を用いて計測対象物の像を求める際に、ジャイロセンサ等の外部センサを用いることなく、画像の歪みを補正した計測結果を得ることを目的とする。
【課題を解決するための手段】
【００１０】
本発明の画像計測装置は、複数の画素を含む撮像素子を有し、前記撮像素子の各画素を水平走査方向の行単位で順次露光することで計測対象物を撮像するカメラと、前記カメラの撮像により得られた画像から、前記計測対象物の像を求める演算処理手段と、を備えた画像計測装置において、前記水平走査方向と交差して配置された互いの相対位置が既知であるかあるいは基準位置が既知の複数の断続的に連なるマーカを有する、前記計測対象物を保持する保持部材を備え、前記演算処理手段は、前記画像での前記断続的に連なるマーカの位置を検出し、前記断続的に連なるマーカの基準位置に対する、前記画像での前記断続的に連なるマーカの位置の水平走査方向及び／又は垂直走査方向のずれ量を、前記画像の行単位で求めて、前記ずれ量を打ち消すように補正した前記計測対象物の像を求めることを特徴とする。
【００１１】
また、本発明の画像計測方法は、複数の画素を含む撮像素子を有し、前記撮像素子の各画素を水平走査方向の行単位で順次露光することで計測対象物を撮像するカメラと、前記カメラの撮像により得られた画像から、前記計測対象物の像を求める演算処理手段と、前記水平走査方向と交差して配置された互いの相対位置が既知であるかあるいは基準位置が既知の複数の断続的に連なるマーカを有する、前記計測対象物を保持する保持部材と、を備えた画像計測装置を用いた画像計測方法であって、前記演算処理手段が、前記画像での前記断続的に連なるマーカの位置を検出する工程と、前記演算処理手段が、前記断続的に連なるマーカの基準位置に対する、前記画像での前記断続的に連なるマーカの位置の水平走査方向及び／又は垂直走査方向のずれ量を、前記画像の行単位で求める工程と、前記演算処理手段が、前記ずれ量を打ち消すように補正した前記計測対象物の像を求める工程と、を備えたことを特徴とする。
【発明の効果】
【００１２】
本発明によれば、撮像素子の撮像により得られた画像を用いて計測対象物の像を求める際に、ジャイロセンサ等の外部センサを用いることなく、画像歪みを補正した計測結果を得ることが可能となる。
【図面の簡単な説明】
【００１３】
【図１】本発明の第１実施形態に係る画像計測装置の概略構成を示す説明図である。
【図２】本発明の第１実施形態において撮像により得られた画像を示す説明図である。
【図３】本発明の第１実施形態においてカメラの撮像素子の垂直走査方向に対してワークが相対的に平行に動いている場合に生じる歪みの形態を示す説明図である。
【図４】本発明の第１実施形態におけるカメラ及びコントローラの機能ブロック図である。
【図５】本発明の第１実施形態におけるワークの形状測定の前にカメラ及びコントローラにより予め行われる動作を示すフローチャートである。
【図６】本発明の第１実施形態におけるカメラ及びコントローラによるワークの位置及び形状を計測する際の動作を示すフローチャートである。
【図７】本発明の第１実施形態におけるずれ量計算部及び補正量計算部の動作を示すフローチャートである。
【図８】本発明の第１実施形態において画像の補正動作を説明するための図である。
【図９】本発明の第２実施形態に係る画像計測装置のカメラ及びコントローラの機能ブロック図である。
【図１０】本発明の第２実施形態におけるカメラ及びコントローラによるワークの位置及び形状を計測する際の動作を示すフローチャートである。
【図１１】本発明の第３実施形態に係る画像計測装置の概略構成を示す説明図である。
【図１２】本発明の第３実施形態におけるワークの形状測定の前にカメラ及びコントローラにより予め行われる動作を示すフローチャートである。
【図１３】本発明の第４実施形態に係る画像計測装置を説明するための図である。
【図１４】本発明の第４実施形態におけるカメラ及びコントローラの機能ブロック図である。
【図１５】本発明の第４実施形態におけるワークの形状測定の前にカメラ及びコントローラにより予め行われる動作を示すフローチャートである。
【図１６】本発明の第４実施形態におけるカメラ及びコントローラによるワークの位置及び形状を計測する際の動作を示すフローチャートである。
【図１７】各種形態のマーカを示す説明図である。
【図１８】本発明の第５実施形態に係る画像計測装置の概略構成及び撮像により得られた画像を示す説明図である。
【図１９】本発明の第５実施形態において画像上のマーカの波形を説明するための図である。
【図２０】本発明の第５実施形態におけるカメラ及びコントローラの機能ブロック図である。
【図２１】本発明の第５実施形態におけるカメラ及びコントローラによるワークの位置及び形状を計測する際の動作を示すフローチャートである。
【図２２】本発明の第６実施形態に係る画像計測装置のカメラ及びコントローラの機能ブロック図である。
【図２３】本発明の第６実施形態におけるカメラ及びコントローラによるワークの位置及び形状を計測する際の動作を示すフローチャートである。
【図２４】本発明の第７実施形態に係る画像計測装置の概略構成及び撮像により得られた画像を示す説明図である。
【図２５】本発明の第７実施形態におけるカメラ及びコントローラの機能ブロック図である。
【図２６】本発明の第７実施形態におけるカメラ及びコントローラによるワークの位置及び形状を計測する際の動作を示すフローチャートである。
【図２７】ＣＣＤイメージセンサ及びＣＭＯＳイメージセンサの露光転送タイミングを説明するための図である。
【発明を実施するための形態】
【００１４】
以下、本発明を実施するための形態を、図面を参照しながら詳細に説明する。
【００１５】
［第１実施形態］
図１は、本発明の第１実施形態に係る画像計測装置の概略構成を示す説明図である。図２は、撮像により得られた画像を示す説明図である。画像計測装置１００は、撮像装置としてのカメラ１と、計測対象物であるワーク６を保持する保持部材４と、カメラ１に接続されたコントローラ５０と、を備えている。
【００１６】
コントローラ５０は、ＣＰＵ５０ａ、ＲＯＭ５０ｂ、ＲＡＭ５０ｃ及びＨＤＤ５０ｄ等を有するコンピュータシステムである。ＲＯＭ５０ｂ又はＨＤＤ５０ｄ等の記憶装置（図１ではＨＤＤ５０ｄ）には、ＣＰＵ５０ａを動作させるプログラムＰが記録されており、ＣＰＵ５０ａは、このプログラムＰに基づいて動作することで、後述する機能ブロックの各部として機能する。つまり、本第１実施形態では、ＣＰＵ５０ａが演算処理手段として機能する。ＲＡＭ５０ｃには、ＣＰＵ５０ａによる計算結果等が一時的に格納される。
【００１７】
カメラ１は、ローリングシャッタ方式により行単位で順次露光を行うデジタルカメラである。このカメラ１は、被写体を撮像するＣＭＯＳイメージセンサである複数の画素を有する撮像素子２１と、カメラ全体を制御する制御部１ａと、撮像素子２１に被写体からの光を集光する不図示の光学系とを備えている。本第１実施形態で被写体は保持部材４及びワーク６である。
【００１８】
撮像素子２１の複数の画素は、２次元のマトリックス状に配置されている。そして、不図示の光学系を介して各画素に入射した光学信号が撮像素子２１の各画素において電気信号に変換される。制御部１ａは、撮像素子２１の各画素を水平走査方向の行単位で順次露光して画素信号（電気信号）を読み出し、コントローラ５０に順次出力する。このカメラ１は、撮像素子２１の撮像面と保持部材４の上面とが平行となるように、床面に立設された支柱２によってワーク６に正対させて支持されている。この撮像素子２１の画素の位置が２次元座標系で定義され、撮像結果である画像における画素データもこの２次元座標系で定義される。
【００１９】
保持部材４は、床面に固定された固定台であり、上面が平面となっている。そして、保持部材４には、連結部５によりワーク６が動かないように固定されている。
【００２０】
この保持部材４の上面には、ワーク６の近傍にワーク６に重ならないようにマーカ群３が設けられている。マーカ群３は、複数のマーカ（本第１実施形態では円形状のドット）３ａからなる。このマーカ群３は、保持部材４又は保持部材４に貼り付ける粘着テープにインク等で描いてもよいし、保持部材４に凹部又は凸部を形成してもよい。本実施形態では、マーカ群３は、保持部材４とは異なる色（例えば黒色）のインクで保持部材４に塗布されている。ここでは、ドット３ａの中心が特徴点となる。
【００２１】
そして、図２（ａ）に示すように、撮像により得られた画像（データ）１０には、実際のマーカ群３に対応する撮像素子２１の画素を基準とした２次元座標系でのマーカ群（データ）１２が含まれている。つまり、画像（データ）１０には、実際のドット３ａに対応する２次元座標系での特徴点となるドット（データ）１２ａが含まれている。また、画像（データ）１０には、実際のワーク６に対応する２次元座標系でのワーク（データ）１１、実際のワーク６上の組み付け部品に対応する２次元座標系での部品（データ）１３，１４，１５が含まれている。
【００２２】
マーカ群３の複数のドット３ａは、カメラ１の撮像素子２１で撮像したときに、画像１０上の複数のドット１２ａが、垂直走査方向、即ち画像１０の縦方向に分散するように、保持部材４の上面に配置されている。具体的には、マーカ群３の複数のドット３ａは、カメラ１の撮像素子２１で撮像したときに、画像１０上の複数のドット１２ａが、ワーク１１の垂直走査方向の範囲を包含するように、保持部材４の上面に配置されている。そして、複数のドット３ａが画像上で垂直走査方向に沿うように保持部材４に設けられているのがよい。本第１実施形態では、複数のドット３ａが画像上で垂直走査方向と平行となるように保持部材４に並んで配置されている。これら複数のドット３ａは、互いに相対位置が既知であり、これらのドット（データ）１２ａが記憶部（記憶装置）であるＨＤＤ５０ｄに記憶される。
【００２３】
ここで、各ドット３ａは、画像１０に歪みがない理想状態における２次元座標系で縦方向に分散する複数のドット１２ａのそれぞれの座標位置（基準位置）が既知であれば、ランダムに配置してもよい。本第１実施形態では、実際の複数のドット３ａは、２次元座標系における仮想直線１２ｂ上に各ドット１２ａの中心（つまり特徴点）が位置するように互いに間隔をあけて保持部材４の上面に配置されている。この仮想直線１２ｂは、垂直走査方向と平行であるのが好ましい。本第１実施形態では、マーカ群３の各ドット３ａの間隔（即ち、画像上のドット１２ａの間隔）は既知であり、ここでは等間隔であるとする。
【００２４】
次に、画像の歪みを補正するための構成について説明する前に、画像歪みが発生する原因と発生形態について説明する。図２７（ｃ）に示したように、本実施形態の撮像素子２１では、行単位で露光タイミングが異なるので、カメラ１に対して相対的に動いているワーク６を撮像した場合、行毎に露光する時刻のワーク６の位置が異なる。そのため、得られた画像１０においてワーク１１が歪む。この画像１０上のワーク１１の歪み方は、実際のワーク６の相対運動の方向とカメラ１の垂直水平走査方向との関係で決まる。
【００２５】
図２（ｂ）はワーク６がカメラ１に対して相対的に静止している状態の画像を示している。また、図２（ｃ）はワーク６がカメラ１に対して画像上で右方向へ一定速度で移動した状態の画像、図２（ｄ）はワーク６がカメラ１に対して画像上で左右方向に振動した状態の画像を示している。また、図２（ｅ）は図２（ｄ）の一部を拡大したものである。図２（ｅ）に示すように、カメラ１の撮像素子２１の水平走査方向に対してワーク６が相対的に水平走査方向に振動している場合は、各行１０ａ〜１０ｈにおいて行単位で動きに応じた水平走査方向（横方向）のずれが生じる。
【００２６】
これに対して図３はカメラ１の撮像素子２１の垂直走査方向に対してワーク６が相対的に平行に動いている場合に生じる歪みの形態を示している。図３（ａ）はワーク６がカメラ１に対して相対的に静止している状態の画像を示している。図３（ｂ）はワーク６がカメラ１に対して画像上で上方へ一定速度で移動した状態の画像、図３（ｃ）はワーク６がカメラ１に対して画像上で上下方向に振動した状態の画像を示している。図３（ｄ）は図３（ｃ）の一部を拡大したものである。この場合、図３（ｂ）のように、画像１０の垂直走査方向に対して伸縮するような変化が生じる。逆に相対運動が下方の場合は図形が伸長する。また図３（ｃ）及び図３（ｄ）のように運動速度に変化がある場合に一様な中間輝度のワークを撮像すると、各行１０ａ〜１０ｈにおいて行単位で粗密が変化する。
【００２７】
例えば、ロボットシステムによる組立作業などでは、ロボットアーム等の搬送装置により組み付け部品を搬送する必要があり、その際の振動をカメラ１や保持部材４が受けてしまう。このため、撮像画像１０に、図２（ｃ）〜図２（ｅ）あるいは図３（ｂ）〜図３（ｄ）に示すような歪みが生じることがある。
【００２８】
そこで、本第１実施形態では、コントローラ５０が画像１０を水平走査方向及び垂直走査方向に補正してワーク６の像として位置及び形状の計測を行うものである。図４は、カメラ１及びコントローラ５０の機能ブロック図である。
【００２９】
図４に示すように、カメラ１は、撮像素子２１及び読み出し部２２を有している。読み出し部２２は、上述した制御部１ａが機能する。また、コントローラ５０は、画像生成部２３、マーカ位置検出部２４、ずれ量計算部２６、補正量計算部２７、画像補正部２８及び計測部２９を有している。具体的には、ＲＯＭ５０ｂ又はＨＤＤ５０ｄ等に記憶されたプログラムＰに基づいて動作するＣＰＵ５０ａが各部２３，２４，２６，２７，２８，２９として機能する。また、コントローラ５０は、記憶部２５を有しており、この記憶部２５は、例えばＨＤＤ５０ｄである。なお、この記憶部２５は、ＨＤＤ５０ｄに限定するものではなく、不図示の書き換え可能な不揮発性メモリ（例えばＥＥＰＲＯＭ等）であってもよく、データを記憶保持できるものであれば、いかなる記憶装置でもよい。
【００３０】
以下、これら各部の動作について図５〜図７に示すフローチャートを参照しながら説明する。まず、ワーク６の形状測定に先立って、画像上でのマーカ１２の基準位置を記憶部２５に記憶させる動作について、図５のフローチャートに沿って説明する。
【００３１】
まず、コントローラ５０のＣＰＵ５０ａは、カメラ１及びワーク６が静止状態であるか否かを判断し（Ｓ１）、静止状態であれば、カメラ１に撮像動作を行うように指令を送る。この静止状態か否かの判断は、タイマによる所定時間の計時が終了したか否かにより判断してもよいし、撮像画像の歪みが収束したか否かで判断してもよい。このようにして、カメラ１及び保持部材４が十分に静止する状態になるまで待機する。
【００３２】
次に、読み出し部２２は、撮像素子２１の各画素を水平走査方向の行単位で順次露光して、画素信号を読み出す（Ｓ２）。この動作は、図２７（ｃ）を用いて説明した動作と同様である。なお、このステップＳ２では、ワーク６がない状態で保持部材４が撮像される。このとき、画像１０上のマーカ１２の各ドット１２ａは、垂直走査方向と平行に等間隔で並んでいることになる。
【００３３】
次に、画像生成部２３は、読み出し部２２により読み出された画素信号から画像を生成する（Ｓ３）。そして、マーカ位置検出部２４は、画像生成部２３で生成された画像における２次元座標系でのマーカ１２の各ドット１２ａの中心（特徴点）の位置を検出する（Ｓ４）。本実施形態では円形のドット３ａを保持部材４に設けているので、既知のハフ変換等を用いた画像処理法で中心位置（特徴点）を容易に検出することができる。特徴点はすべてのドット１２ａに対して検出する。
【００３４】
ＣＰＵ５０ａは、このようにして検出した各ドット１２ａの中心（特徴点）の位置のデータを基準位置のデータとして記憶部２５に記憶させる（Ｓ５：記憶工程）。ここで、本実施形態では、記憶部２５には、予め画像から位置を測定してそのデータを記憶させているが、これに限らず、各ドット１２ａの中心の位置を示すデータを、測定せずに記憶させてもよい。
【００３５】
また、本実施形態では、各ドット１２ａが、垂直走査方向と平行な仮想直線１２ｂ上に等間隔となるように配置されている。したがって、記憶部２５には、複数のドット１２ａのうち、いずれか１つ、例えば最も画像の上部にあるドット１２ａの中心の座標位置と、この座標位置に対する他のドット１２ａの中心の相対位置関係とを記憶させてもよい。いずれにしても、記憶部２５は、撮像素子２１の画素を基準とする２次元座標系（即ち画像上）でのマーカ１２のドット１２ａの中心である特徴点の基準位置を予め記憶したことになる。
【００３６】
次に、実際にワーク６を置いて組み付け作業などを行う場合のワーク６の像として位置及び形状を計測する際の動作について、図６に示すフローチャートに沿って説明する。まず、コントローラ５０のＣＰＵ５０ａは、ワーク６を保持部材４にセット完了したか否かを判断する（Ｓ１１）。つまり、このステップＳ１１では、ワーク６を保持部材４にセットして撮像ができる状態になるまで待機する。
【００３７】
読み出し部２２は、撮像素子２１の各画素を水平走査方向の行単位で順次露光して、画素信号を読み出す（Ｓ１２：読み出し工程）。この動作は、図２７（ｃ）を用いて説明した動作と同様である。この撮像の際、組み付け用の治工具類その他の動きによる外乱を受けてカメラ１又は保持部材４、もしくは双方が動いていてもよい。つまり、カメラ１又は保持部材４が静止するまで待たなくてもよい。したがって、ワーク６の計測に要する時間を短縮することができる。
【００３８】
次に、画像生成部２３は、ステップＳ１２にて読み出し部２２により読み出された画素信号から画像を生成する（Ｓ１３：画像生成工程）。そして、マーカ位置検出部２４は、ステップＳ１３にて画像生成部２３で生成された画像における２次元座標系でのマーカの各ドットの中心（特徴点）の位置を検出する（Ｓ１４：マーカ位置検出工程）。
【００３９】
次に、ずれ量計算部２６は、記憶部２５に記憶されたマーカの各特徴点の基準位置のデータを読み出す。そして、ずれ量計算部２６は、読み出した基準位置のデータと、ステップＳ１４にてマーカ位置検出部２４により検出されたマーカの各特徴点の位置のデータとの水平走査方向及び垂直走査方向の差分を各行について求める。つまり、ずれ量計算部２６は、各行の差分を、水平走査方向及び垂直走査方向のベクトル量として求める。そして、ずれ量計算部２６は、この差分結果を用いて、ステップＳ１３にて画像生成部２３により生成された画像１０の各行のずれ量を求める（Ｓ１５：ずれ量計算工程）。
【００４０】
次に、補正量計算部２７は、ステップＳ１５にてずれ量計算部２６により求められたずれ量を打ち消す補正量を行単位で求める（Ｓ１６：補正量計算工程）。
【００４１】
次に、画像補正部２８は、ステップＳ１６にて補正量計算部２７により求められた補正量で画像生成部２３により生成された画像１０を行単位で補正する（Ｓ１７：画像補正工程）。
【００４２】
この様子を示したのが図８である。図８（ａ）は静止時にワーク６を撮像した画像であり、このとき画像１０上のワーク１１には歪みはない。また画像１０上のマーカ１２のドット１２ａも等間隔で垂直走査方向に並ぶ。一方、実作業時の振動状態で撮像した図８（ｂ）に示す画像１０では、露光したタイミングの違いにより、振動の影響をうけて行単位で左右上下方向（垂直水平走査方向）にワーク１１の位置形状が歪んでいる。
【００４３】
これに対して、ステップＳ１６では、補正量計算部２７が、図８（ｃ）に示すように、各行１０ａ〜１０ｅにおいて矢印で示す補正量（ベクトル量）を行単位で求め、ステップＳ１７では、画像補正部２８が、矢印方向に行単位で補正する。つまり、各行のピクセルの座標位置が補正量で補正されることとなる。なお、便宜上ドット１２ａが存在する行のみを示しているが、実際にはすべての行を補正する。この結果、図８（ｃ）のように歪のない図形を再生できる。
【００４４】
次に、計測部２９は、ステップＳ１７にて画像補正部２８の補正により得られた画像１０を用いて、ワーク６の像として位置及び形状を計測する（Ｓ１８：計測工程）。具体的には、ワーク６の部品の位置及び形状を計測する。これにより、ずれ量を打ち消すように補正したワーク６の像が求められる。
【００４５】
ここで、ステップＳ１５及びＳ１６におけるずれ量計算部２６及び補正量計算部２７の動作について図７に示すフローチャートを参照しながら、詳細に説明する。
【００４６】
まず、ずれ量計算部２６は、特徴点の画像上での位置情報を比較し差分を求める（Ｓ１６１）。ずれ量計算部２６は、補正量を求める行を最初の行から最後の行まで順次選択するよう、補正量を求める行を更新する（Ｓ１６２）。
【００４７】
次に、ずれ量計算部２６は、補正する必要がある行がすべて終わっているか否かを判断し（Ｓ１６３）、終わっている場合（Ｓ１６３：ＹＥＳ）、作業を終了する。ずれ量計算部２６は、終わっていない場合（Ｓ１６３：ＮＯ）、現在の行に特徴点が存在するか否かを判断する（Ｓ１６４）。ずれ量計算部２６は、選択した行に特徴点が存在すれば（Ｓ１６４：ＹＥＳ）、ステップＳ１６１で求めた差分を行のずれ量とする（Ｓ１６５）。そして、補正量計算部２７は、ずれ量計算部２６により求められたずれ量を打ち消す補正量を計算する（Ｓ１６６）。
【００４８】
また、ずれ量計算部２６は、特徴点が存在しなければ（Ｓ１６４：ＮＯ）、上下の行に存在する特徴点から２次元的に補間を行い、その行の垂直走査方向及び水平走査方向のずれ量を求める（Ｓ１６７）。補間法としては、近接する上下１点ずつを用いてリニア補間する方法が知られている。また上下すべての特徴点を用いてスプライン補間しても良い。次いで、補正量計算部２７は、ずれ量計算部２６により求められたずれ量を打ち消す補正量を計算する（Ｓ１６６）。
【００４９】
以上、本第１実施形態によれば、撮像素子２１の撮像により得られた画像を用いてワーク６の像として位置及び形状を計測する際に、ジャイロセンサ等の外部センサを用いることなく、画像歪みを補正することが可能となる。したがって、画像歪みを補正した画像を用いてワーク６の位置及び形状を求めるので、ワーク６の計測精度が向上する。
【００５０】
また、外部センサを用いずに画像の補正をすることができるので、外部センサを省略した分、コストダウンを図ることができ、外部センサを省略した分、省スペース化を図ることができる。そして、カメラ１及び保持部材４の双方に外部センサを設ける必要がなく、更にこれら外部センサに必要な同期回路も不必要となり、構成を簡略化することができる。
【００５１】
［第２実施形態］
次に、本発明の第２実施形態に係る画像計測装置について説明する。図９は、本発明の第２実施形態に係る画像計測装置のカメラ及びコントローラの機能ブロック図である。なお、この図９において、上記第１実施形態の画像計測装置の構成と同様の構成については同一符号を付して詳細な説明を省略する。
【００５２】
本第２実施形態のコントローラ５０Ａは、上記第１実施形態と同様、画像生成部２３、マーカ位置検出部２４、記憶部２５、ずれ量計算部２６、補正量計算部２７及び計測部２９を有しており、更に補正部３０を有している。
【００５３】
コントローラ５０Ａは、上記第１実施形態と同様、図１に示すＣＰＵ５０ａ、ＲＯＭ５０ｂ、ＲＡＭ５０ｃ、ＨＤＤ５０ｄ等を備えている。そして、ＣＰＵ５０ａが、画像生成部２３、マーカ位置検出部２４、ずれ量計算部２６、補正量計算部２７、計測部２９及び補正部３０として機能する。つまり、本第２実施形態では、ＣＰＵ５０ａが演算処理手段として機能する。
【００５４】
図１０は、カメラ１及びコントローラ５０Ａによるワーク６の位置及び形状を計測する際の動作を示すフローチャートである。この図１０において、ステップＳ２１〜Ｓ２３の処理動作は、図６のステップＳ１１〜Ｓ１３の処理動作と同様である。
【００５５】
本第２実施形態では、計測部２９は、ステップＳ２３にて画像生成部２３により生成された画像を用いて、ワーク６の位置及び形状を計測する（Ｓ２４：計測工程）。
【００５６】
また、ステップＳ２５〜Ｓ２７における処理動作は、図１のステップＳ１４〜Ｓ１６における処理動作と同様である。
【００５７】
補正部３０は、ステップＳ２４にて計測部２９により計測されたワーク６の位置及び形状のデータを、ステップＳ２７にて補正量計算部２７により求められた補正量を用いて補正する（Ｓ２８：補正工程）。この計測部２９により求めた計測データは、行毎に補正量で補正される。これにより、ずれ量を打ち消すように補正したワーク６の像が求められる。
【００５８】
以上、本第２実施形態によれば、上記第１実施形態と同様の効果を奏する。つまり、外部センサを用いることなく、画像歪みを補正したワーク６の位置及び形状の計測結果を得ることができる。したがって、ワーク６の位置及び形状の計測精度が向上する。
【００５９】
また、外部センサを用いずに画像の補正をすることができるので、外部センサを省略した分、コストダウンを図ることができ、外部センサを省略した分、省スペース化を図ることができる。そして、カメラ１及び保持部材４の双方に外部センサを設ける必要がなく、更にこれら外部センサに必要な同期回路も不必要となり、構成を簡略化することができる。また、画像の再構成をする手間が省けるので、計算速度の点で有利となる。
【００６０】
なお、上記第１及び第２実施形態では、複数のドット３ａが画面上で垂直走査方向に平行となるように配置される場合について説明したが、これに限定するものではない。複数のドット３ａが水平走査方向に平行となるように配置される場合には、本第１実施形態の効果は期待できないため、複数のドット３ａが画面上で水平走査方向に平行とならなければよい。具体的には、複数のドット３ａが画面上で水平走査方向と交差するように配置されていればよい。その際、これら複数のドット３ａは、一直線上に並んで配置されている必要はなく、垂直走査方向に点在していれば、水平走査方向にずれるように配置されていてもよい。
【００６１】
［第３実施形態］
次に、本発明の第３実施形態に係る画像計測装置について説明する。図１１は、本発明の第３実施形態に係る画像計測装置の概略構成を示す説明図である。なお、この図１１において、上記第１実施形態の画像計測装置の構成と同様の構成については同一符号を付して詳細な説明を省略する。
【００６２】
本第３実施形態では、上記第１実施形態と同様、カメラ１の撮像素子２１の２次元座標系でマーカ群の複数のドットが仮想直線上に配置されるように、マーカ群３が保持部材４に設けられている。
【００６３】
本第３実施形態における画像計測装置１００Ｃは、保持部材４を、２次元座標系で仮想直線が垂直走査方向と平行となるように撮像素子２１の撮像面と平行な面内で回転させる回転部としての回転テーブル７を備えている。
【００６４】
図１２は、ワークの形状測定の前にカメラ１及びコントローラ５０Ｃにより予め行われる動作を示すフローチャートである。この図１２において、ステップＳ３１〜Ｓ３４の処理動作は、図５のステップＳ１〜Ｓ４の処理動作と同様である。
【００６５】
本第３実施形態では、コントローラ５０ＣのＣＰＵ５０ａは、ステップＳ３４にて撮像素子２１の２次元座標系における特徴点の座標位置を検出した後、撮像素子２１の２次元座標系基準で垂直走査方向とマーカが平行になっているか否かを判断する（Ｓ３５）。
【００６６】
ＣＰＵ５０ａは、平行になっていないときにはステップＳ３５で平行になる方向にマーカを移動するよう回転テーブル７を回転させる（Ｓ３６）。
【００６７】
以上のステップＳ３１〜Ｓ３６の動作を、撮像素子２１の２次元座標系において垂直走査方向とマーカが所定の基準より平行となるまで繰り返す。この処理をおこなうことによって、マーカの初期姿勢を記録することを省略することができる。すなわちマークの特徴点の垂直水平方向の変化から直接、補正値を決めることができる。
【００６８】
また、本第３実施形態では、上記第１実施形態と同様、撮像素子２１の撮像により得られた画像を用いてワーク６の位置及び形状を計測する際に、ジャイロセンサ等の外部センサを用いることなく、画像歪みを補正することが可能となる。したがって、ワーク６の位置及び形状の計測精度が向上する。
【００６９】
また、外部センサを用いずに画像の補正をすることができるので、外部センサを省略した分、コストダウンを図ることができ、外部センサを省略した分、省スペース化を図ることができる。そして、カメラ１及び保持部材４の双方に外部センサを設ける必要がなく、更にこれら外部センサに必要な同期回路も不必要となり、構成を簡略化することができる。
【００７０】
なお、回転部は回転テーブル７である場合について説明したが、これに限定するものではなく、例えば保持部材がロボットハンドであり、このロボットハンドにより把持したワークをカメラの軸線まわりに回転させるように動作するロボットアームであってもよい。
【００７１】
［第４実施形態］
次に、本発明の第４実施形態に係る画像計測装置について説明する。図１３は、本発明の第４実施形態に係る画像計測装置を説明するための図であり、図１３（ａ）は、保持部材の説明図、図１３（ｂ）は、保持部材を撮像した画像を示す説明図である。なお、この図１３において、上記第１実施形態の画像計測装置の構成と同様の構成については同一符号を付して詳細な説明を省略する。
【００７２】
本第４実施形態では、保持部材は、固定部４ｂと、固定部４ｂに対して互いに近接又は離間する可動部である一対のフィンガ４ａ，４ｃと、を有するロボットハンド４Ｄである。このロボットハンド４Ｄは不図示のロボットアームの先端に取り付けられていて自在に位置や姿勢を変えられるようになっている。なお、カメラ１は、床面に固定された不図示の取り付け部材に固定されている。
【００７３】
このロボットハンド４Ｄのフィンガ４ａには互いに間隔をあけて配置された複数のドット３ａ１からなるマーカ群３１が設けられており、フィンガ４ｃには互いに間隔をあけて配置された複数のドット３ａ３からなるマーカ群３３が設けられている。固定部４ｂには互いに間隔をあけて配置された複数のドット３ａ２からなるマーカ群３２が設けられている。つまり、ロボットハンド４Ｄには、マーカ群が複数設けられている。
【００７４】
図１３（ｂ）には、このロボットハンド４Ｄをカメラ１に正対する位置に移動させて撮像により得られた画像１０Ｄが図示されている。この画像（データ）１０Ｄには、実際のマーカ群３１〜３３に対応する撮像素子２１を基準とした２次元座標系でのマーカ群（データ）１２１〜１２３が含まれている。つまり、画像（データ）１０Ｄには、実際のドット３ａ１〜３ａ３に対応する２次元座標系での特徴点となるドット（データ）１２ａ１〜１２ａ３が含まれている。
【００７５】
マーカ群３１は、複数のドット３ａ１のそれぞれに対応する撮像素子２１の２次元座標系でのそれぞれのドット１２ａ１が仮想直線１２ｂ１上に互いに間隔をあけて配置されるよう、ロボットハンド４Ｄのフィンガ４ａに設けられている。マーカ群３３は、複数のドット３ａ３のそれぞれに対応する撮像素子２１の２次元座標系でのそれぞれのドット１２ａ３が仮想直線１２ｂ３上に互いに間隔をあけて配置されるよう、ロボットハンド４Ｄのフィンガ４ｃに設けられている。また、マーカ群３２は、複数のドット３ａ２のそれぞれに対応する撮像素子２１の２次元座標系でのそれぞれのドット１２ａ２が仮想直線１２ｂ２上に互いに間隔をあけて配置されるよう、ロボットハンド４Ｄの固定部４ｂに設けられている。
【００７６】
そして、撮像した画像１０Ｄにおいて、互いの仮想直線１２ｂ１，１２ｂ２が交差（図１３（ｂ）では直交）しており、互いの仮想直線１２ｂ２，１２ｂ３が交差（図１３（ｂ）では直交）している。なお、実の各マーカ群３１〜３３は、マーカ同士が重ならないように配置されている。
【００７７】
図１４は、カメラ１及びコントローラ５０Ｄの機能ブロック図である。本第４実施形態では、上記第１実施形態と同様、カメラ１が撮像素子２１及び読み出し部２２を有している。また、コントローラ５０Ｄは、画像生成部２３、マーカ位置検出部２４、マーカ選択部３１、記憶部２５、マーカ抽出部３２、ずれ量計算部２６、補正量計算部２７、画像補正部２８及び計測部２９を有している。
【００７８】
コントローラ５０Ｄは、上記第１実施形態と同様、図１に示すＣＰＵ５０ａ、ＲＯＭ５０ｂ、ＲＡＭ５０ｃ、ＨＤＤ５０ｄ等を備えている。そして、ＣＰＵ５０ａが、画像生成部２３、マーカ位置検出部２４、マーカ選択部３１、マーカ抽出部３２、ずれ量計算部２６、補正量計算部２７、画像補正部２８及び計測部２９として機能する。つまり、本第４実施形態では、ＣＰＵ５０ａが演算処理手段として機能する。
【００７９】
図１５は、ワークの形状測定の前にカメラ１及びコントローラ５０Ｄにより予め行われる動作を示すフローチャートである。まず、この図１５において、ステップＳ４１〜Ｓ４３の処理動作は、図５のステップＳ１〜Ｓ３の処理動作と同様である。マーカ位置検出部２４は、ステップＳ４３にて画像生成部２３により生成された画像における撮像素子２１基準の２次元座標系での複数（全て）のマーカ１２１〜１２３の位置を検出する（Ｓ４４）。
【００８０】
次にマーカ選択部３１は、ステップＳ４４にてマーカ位置検出部２４により検出された複数のマーカ１２１〜１２３のうち、１つのマーカを選択する（Ｓ４５：マーカ選択工程）。その際、マーカ選択部３１は、２次元座標系で垂直走査方向に延びる直線に対して最も平行度の低い仮想直線に配置された複数の特徴点を有するマーカを選択する。つまり、カメラの垂直走査方向、即ち画像の縦方向に最も平行に近い仮想直線に位置するマーカを選択する。図１３では、画像１０Ｄ上、仮想直線１２ｂ１に位置する複数のドット１２ａ１からなるマーカ１２１が選択される。
【００８１】
この仮想直線が撮像素子２１の垂直走査方向と大きくずれていると、補正できる範囲が狭くなり、各行の補正条件が変わってくる可能性があるが、仮想直線が垂直走査方向と平行なほど、広い範囲で行間差が少なくより正確に補正結果を得ることができる。すなわち、複数のマーカから最良のマーカが選択される。
【００８２】
次に、コントローラ５０ＤのＣＰＵ５０ａは、ステップＳ４５にて選択されたマーカ及びステップＳ４５にて選択されたマーカの各特徴点の基準位置を記憶部２５に記憶させる（Ｓ４６：記憶工程）。
【００８３】
なお、本第４実施形態では、撮像画像上のマーカ及びマーカの各特徴点の基準位置のデータを記憶部２５に記憶させているがこれに限定するものではない。撮像動作を行わずに直接記憶部２５に撮像素子２１を基準とする２次元座標系でのマーカ及びこのマーカの各特徴点の基準位置を記憶させてもよい。
【００８４】
また、マーカの姿勢をロボットアームで調整できるので、教示時にいずれかのマーカの姿勢をカメラの垂直走査方向、すなわち画像の縦方向に最も平行にするように調整しても良い。この場合はマーカの初期姿勢を記録することを省略することができる。すなわち行間の相対変化のみで補正値を決めることができる。
【００８５】
図１６は、カメラ１及びコントローラ５０Ｄによるワーク６の位置及び形状を計測する際の動作を示すフローチャートである。この図１６において、ステップＳ５１〜Ｓ５３の処理動作は、図６のステップＳ１１〜Ｓ１３の処理動作と同様である。ただしこの場合、不図示のロボットアームは振動していてもよいが、ロボットハンド４Ｄのフィンガ４ａ，４ｃは静止していてワーク６はフィンガ４ａ，４ｃに対しては固定されている必要がある。次に、マーカ位置検出部２４は、ステップＳ５３にて生成された画像における２次元座標系での複数（全て）のマーカの位置を検出する（Ｓ５４：マーカ位置検出工程）。
【００８６】
次に、マーカ抽出部３２は、ステップＳ５４にてマーカ位置検出部２４により検出された複数のマーカのデータのうち記憶部２５に記憶されているマーカのデータと一致するマーカのデータを抽出する（Ｓ５５：マーカ抽出工程）。つまり、ステップＳ５５では、検出されたマーカが記録されたマーカと同一であるかを比較する。マーカの絶対位置やあらかじめ定めた情報（この場合マーカの形状や大きさをマーカごとに変える）などから判定することができる。もし検出したマーカと記録されているマーカが異なる場合は再度ステップＳ５５を繰り返す。なおあらかじめマーカ同士が明らかに分離できる場合はステップＳ５４を省略できる。
【００８７】
次にずれ量計算部２６は、記憶部２５に記憶されたマーカの各特徴点の基準位置とマーカ抽出部３２により抽出されたマーカの各特徴点の位置との水平走査方向及び垂直走査方向の差分から、画像生成部２３により生成された画像の各行のずれ量を求める（Ｓ５６）。なお、このステップＳ５６の処理動作は図６のステップＳ１５の処理動作と同様である。また、次のステップＳ５７〜Ｓ５９の処理動作も、図６のステップＳ１６〜Ｓ１８の処理動作と同様である。
【００８８】
以上、本第４実施形態では、上記第１実施形態と同様、撮像素子２１の撮像により得られた画像を用いてワーク６の位置及び形状を計測する際に、ジャイロセンサ等の外部センサを用いることなく、画像歪みを補正することが可能となる。したがって、画像歪みを補正した画像を用いてワーク６の位置及び形状を求めるので、ワーク６の計測精度が向上する。
【００８９】
また、外部センサを用いずに画像の補正をすることができるので、外部センサを省略した分、コストダウンを図ることができ、外部センサを省略した分、省スペース化を図ることができる。そして、カメラ１及び保持部材４の双方に外部センサを設ける必要がなく、更にこれら外部センサに必要な同期回路も不必要となり、構成を簡略化することができる。
【００９０】
更に、本第４実施形態では、ロボットハンド４Ｄのフィンガ４ａ，４ｃのみ停止していて、ワーク６がフィンガ４ａ，４ｃに対して固定されていれば、ロボットアームやカメラ１の取り付け部材が振動していても、ワークの計測が可能となる。したがって、作業時間を短縮することができる。
【００９１】
なお、上記第１〜第４実施形態では、マーカ群として、円形のドットが直線状に連なった例を示したが、これに限定されない。複数の特徴点が特定できるものであり、カメラの垂直走査方向に対する姿勢を特定できるものであればいかなるマーカでもよい。例えば、図１７（ａ）に示すような、縦横の直線を組み合わせた＋形状の複数のマーカからなるマーカ群３Ａであってもよい。この場合、＋の交点が特徴点となる。また、図１７（ｂ）に示すような、複数の直線形状のマーカが断続的に連なる破線状のマーカ群３Ｂであってもよい。この場合、各直線マーカの端部が特徴点となる。また、図１７（ｃ）に示すような、のこぎり波状に交差する複数の直線マーカからなるマーカ群３Ｃ、図１７（ｄ）に示すような濃淡の繰り返しの複数のマーカからなるマーカ群３Ｄでも複数の特徴点が得られ、同じ効果が得られる。
【００９２】
［第５実施形態］
図１８は、本発明の第５実施形態に係る画像計測装置の概略構成及び撮像により得られた画像を示す説明図である。画像計測装置１００Ｅは、撮像装置としてのカメラ１と、計測対象物であるワーク６を保持する保持部材４と、カメラ１に接続されたコントローラ５０Ｅと、を備えている。
【００９３】
コントローラ５０Ｅは、ＣＰＵ５０ａ、ＲＯＭ５０ｂ、ＲＡＭ５０ｃ、ＨＤＤ５０ｄ、フェーズロックループ回路（ＰＬＬ回路）５０ｅ及びローパスフィルタ回路（ＬＰＦ回路）５０ｆ等を有するコンピュータシステムである。ＲＯＭ５０ｂ又はＨＤＤ５０ｄ等の記憶装置（図１８ではＨＤＤ５０ｄ）には、ＣＰＵ５０ａを動作させるプログラムＰが記録されており、ＣＰＵ５０ａは、このプログラムＰに基づいて動作することで、後述する機能ブロックの各部として機能する。ＲＡＭ５０ｃには、ＣＰＵ５０ａによる計算結果等が一時的に格納される。ＰＬＬ回路５０ｅは、入力した波形データから波形の基準周波数に対する周波数変調成分を抽出する。ＬＰＦ回路５０ｆは、ＰＬＬ回路５０ｅからの出力波形データから必要な帯域成分のみ取り出す。つまり、本第５実施形態では、ＣＰＵ５０ａ、ＰＬＬ回路５０ｅ及びＬＰＦ回路５０ｆが演算処理手段として機能する。
【００９４】
カメラ１は、ローリングシャッタ方式により行単位で順次露光を行うデジタルカメラである。このカメラ１は、被写体を撮像するＣＭＯＳイメージセンサである複数の画素を有する撮像素子２１と、カメラ全体を制御する制御部１ａと、撮像素子２１に被写体からの光を集光する不図示の光学系とを備えている。本第５実施形態で被写体は保持部材４及びワーク６である。
【００９５】
撮像素子２１の複数の画素は、２次元のマトリックス状に配置されている。そして、不図示の光学系を介して各画素に入射した光学信号が撮像素子２１の各画素において電気信号に変換される。制御部１ａは、撮像素子２１の各画素を水平走査方向の行単位で順次露光して画素信号（電気信号）を読み出し、コントローラ５０Ｅに順次出力する。このカメラ１は、撮像素子２１の撮像面と保持部材４の上面とが平行となるように、床面に立設された支柱２によってワーク６に正対させて支持されている。この撮像素子２１の画素の位置が２次元座標系で定義され、撮像結果である画像における画素データもこの２次元座標系で定義される。
【００９６】
保持部材４は、床面に固定された固定台であり、上面が平面となっている。そして、保持部材４には、連結部５によりワーク６が動かないように固定されている。
【００９７】
この保持部材４の上面には、ワーク６の近傍にワーク６に重ならないようにマーカ３Ｅが設けられている。マーカ３Ｅは、水平走査方向に振幅をもつ正弦波形状の曲線である。このマーカ３Ｅは、保持部材４又は保持部材４に貼り付ける粘着テープにインク等で描いてもよいし、保持部材４に溝又は突起を形成してもよい。本実施形態では、マーカ３Ｅは、保持部材４とは異なる色（例えば黒色）のインクで保持部材４に塗布されている。
【００９８】
そして、図１８（ｂ）に示すように、撮像により得られた画像（データ）１０Ｅには、実際のマーカ３Ｅに対応する撮像素子２１の画素を基準とした２次元座標系でのマーカ（データ）１２Ｅが含まれている。また、画像（データ）１０Ｅには、実際のワーク６に対応する２次元座標系でのワーク（データ）１１、実際のワーク６上の組み付け部品に対応する２次元座標系での部品（データ）１３，１４，１５が含まれている。
【００９９】
マーカ３Ｅは、カメラ１の撮像素子２１で撮像したときに、垂直走査方向、即ち画像１０Ｅの縦方向と平行に延びるように、保持部材４の上面に配置されている。具体的には、マーカ３Ｅは、カメラ１の撮像素子２１で撮像したときに、画像１０Ｅ上のマーカ１２Ｅが、ワーク１１の垂直走査方向の範囲を包含するように、保持部材４の上面に配置されている。
【０１００】
ここで、マーカ３Ｅは、画像１０に歪みがない理想状態における２次元座標系で垂直走査方向に延びるように、保持部材４の上面に配置されている。また、マーカ３Ｅは、撮像素子２１の２次元座標系基準で水平走査方向を正弦波の振幅方向となる形状となっている。そして、マーカ３Ｅの空間周波数が既知であるものとする。即ち、記憶部（記憶装置）であるＨＤＤ５０ｄにマーカ３Ｅの空間周波数のデータが記憶されている。このマーカ３Ｅの空間周波数は補正により除去しようとする画像上の歪周波数より２倍以上高い周波数となるように選ばれる。
【０１０１】
まず、本第５実施形態のマーカ３Ｅがカメラ１と撮像物である保持部材４との間で相対運動がある場合どのような変化が生じるかを説明する。図１９は、画像上のマーカの波形を説明するための図である。図１９（ａ）は振動がない状態で撮像された画像上のマーカ１２Ｅの波形を示しており、図１９（ｂ）はカメラの水平走査方向と同一方向に相対振動があった場合の画像上のマーカ１２Ｅの波形を示している。また、図１９（ｃ）はカメラの水平走査方向と同一方向に相対振動があった場合の振動周波数成分を示す波形を示している。これら図１９（ｂ）に示すマーカ１２Ｅの波形は、図１９（ａ）に示すマーカ１２Ｅの波形に図１９（ｃ）に示す振動周波数成分の波形を足し合わせたものとなる。この図１９（ｂ）に示す波形から図１９（ｃ）に示す波形を抽出し、図１９（ａ）に示す波形に復元できれば補正できたことになる。
【０１０２】
また、図１９（ｄ）は振動がない状態で撮像された画像上のマーカ１２Ｅの波形を示しており、図１９（ｅ）はカメラの垂直走査方向と同一方向に相対振動があった場合の画像上のマーカ１２Ｅの波形を示している。また、図１９（ｆ）はカメラの垂直走査方向と同一方向に相対振動があった場合の振動周波数成分を示す波形を示している。図１９（ｅ）に示すマーカ１２Ｅの波形は、図１９（ｄ）に示すマーカ１２Ｅの波形が図１９（ｆ）の周期で粗密となる形、すなわち図１９（ｄ）に示す波形を、図１９（ｆ）に示す振動波形で周波数変調した形となる。この場合も図１９（ｅ）に示す波形から図１９（ｆ）に示す波形を抽出して図１９（ｄ）に示す波形を復元できれば補正できたことになる。
【０１０３】
さらに、図１９（ｇ）は振動がない状態で撮像された画像上のマーカ１２Ｅの波形を示しており、図１９（ｈ）はカメラの水平走査方向及び垂直走査方向の双方向に相対振動があった場合の画像上のマーカ１２Ｅの波形を示している。また、図１９（ｉ）はカメラの水平走査方向及び垂直走査方向の双方向に相対振動があった場合の振動周波数成分を示す波形を示している。撮像される変化後の波形は横方向の変化と粗密を組み合わせた形となる。この図１９（ｈ）の波形から図１９（ｇ）の波形を再現できれば、どのような場合でも補正が可能となる。
【０１０４】
ここで、実際のマーカ波形の空間周波数をｆ、除去しようとする（想定される）歪（振動）の最大の空間周波数をｆｖであるとする。なお空間周波数ｆは空間周波数ｆｖより２倍以上高い周波数に設定される。除去すべき図１９（ｃ）の水平走査方向の振動成分の周波数ｆｖ以下なのに対して、図１９（ｆ）の除去すべき周波数変調成分はｆ−ｆｖ〜ｆ＋ｆｖである。したがってｆ−ｆｖ＞２ｆｖ−ｆｖ＝ｆｖであるために空間周波数ｆを空間周波数ｆｖに対して２倍以上大きな値に取っておけば、垂直走査方向、水平走査方向それぞれを分離して影響を抽出できる。これを図示したのが図１９（ｊ）である。この図１９（ｊ）は、マーカの波形の計測時の周波数分布を示す図である。この図１９（ｊ）において、縦軸は振動成分の振幅、横軸は周波数を示す。水平走査方向の歪成分は領域（周波数帯域）Ｂ１に含まれ，垂直走査方向の歪成分は領域（周波数帯域）Ｂ２に含まれるので容易に分離することができる。
【０１０５】
図２０は、カメラ１及びコントローラ５０Ｅの機能ブロック図である。図２０に示すように、カメラ１は、撮像素子２１及び読み出し部２２を有している。読み出し部２２は、上述した制御部１ａが機能する。また、コントローラ５０Ｅは、画像生成部２３、マーカ検出部３３、第１の抽出部３４、第１の補正量計算部３５、マーカ波形補正部３６、第２の抽出部３７、第２の補正量計算部３８、画像補正部３９及び計測部４０を有している。具体的には、第２の抽出部３７は、図１８（ａ）に示したＰＬＬ回路５０ｅと、このＰＬＬ回路５０ｅの出力に対して必要な帯域成分のみ取り出すＬＰＦ回路５０ｆとで構成される。また、ＲＯＭ５０ｂ又はＨＤＤ５０ｄ等に記憶されたプログラムＰに基づいて動作するＣＰＵ５０ａが各部２３〜３５，３７〜３９として機能する。
【０１０６】
以下、これら各部の動作について図２１に示すフローチャートを参照しながら説明する。読み出し部２２は、撮像素子２１の各画素を水平走査方向の行単位で順次露光して、画素信号を読み出す（Ｓ６１：読み出し工程）。この動作は、図２７（ｃ）を用いて説明した動作と同様である。この撮像の際、組み付け用の治工具類その他の動きによる外乱を受けてカメラ１又は保持部材４、もしくは双方が動いていてもよい。つまり、カメラ１又は保持部材４が静止するまで待たなくてもよい。したがって、ワーク６の計測に要する時間を短縮することができる。
【０１０７】
次に、画像生成部２３は、ステップＳ６１にて読み出し部２２により読み出された画素信号から画像を生成する（Ｓ６２：画像生成工程）。マーカ検出部３３は、ステップＳ６２にて画像生成部２３により生成された画像におけるマーカの波形を検出する（Ｓ６３：マーカ検出工程）。
【０１０８】
次に、第１の抽出部３４は、ステップＳ６３にてマーカ検出部３３により検出されたマーカの波形から空間周波数ｆの１／２よりも低い値の周波数帯域Ｂ１の振動成分（図１９（ｊ））を抽出する（Ｓ６４：第１の抽出工程）。具体的に説明すると、マーカ波形の空間周波数ｆは、想定される振動の最大の空間周波数ｆｖの２倍以上の値に設定（即ち、ＨＤＤ５０ｄに記憶）されている。したがって、図１９（ｊ）に示すように、空間周波数ｆｖは、マーカ波形の空間周波数ｆの１／２より低いところにある。つまり、水平走査方向に振動する振動成分は、周波数帯域Ｂ１にあり、この周波数帯域Ｂ１の振動成分を抽出することとなる。この周波数帯域Ｂ１の上限は空間周波数ｆｖであり、下限は０である。
【０１０９】
次に、第１の補正量計算部３５は、ステップＳ６４にて第１の抽出部３４により抽出された振動成分を打ち消す水平走査方向の第１の補正量を行単位で計算する（Ｓ６５：第１の補正量計算工程）。この第１の補正量は、ＣＰＵ５０ａにより記憶部（ＨＤＤ５０ｄ）に記憶される。
【０１１０】
次に、マーカ波形補正部３６は、ステップＳ６３にてマーカ検出部３３により検出されたマーカの波形を第１の補正量で水平走査方向に行単位で補正する（Ｓ６６：マーカ波形補正工程）。このように、検出したマーカ波形を補正することで、図１９（ｈ）に示すようなマーカ波形が、水平走査方向の振動成分が除去されて、図１９（ｅ）に示すようなマーカ波形となる。
【０１１１】
次に、第２の抽出部３７は、ステップＳ６６にてマーカ波形補正部３６により補正されたマーカの波形の周波数変調成分を抽出する（Ｓ６７：第２の抽出工程）。つまり、マーカ波形補正部３６により補正されたマーカの波形には、基準周波数である空間周波数ｆの波形に、周波数変調成分が垂直走査方向の振動成分として重畳しているので、この重畳している垂直走査方向の振動成分が抽出される。この第２の抽出部３７は、周波数変調成分を復調するために必要なＰＬＬ回路５０ｅ及びＬＰＦ回路５０ｆからなるハードウエアで構成されている。これらハードウエアが波形データをデジタル量で取り込んでいるので、ソフトウエアで既知の方法で処理を実行する。
【０１１２】
次に、第２の補正量計算部３８は、ステップＳ６７にて第２の抽出部３７により抽出された周波数変調成分を打ち消す垂直走査方向の第２の補正量を行単位で計算する（Ｓ６８：第２の補正量計算工程）。この第２の補正量は、ＣＰＵ５０ａにより記憶部（ＨＤＤ５０ｄ）に記憶される。
【０１１３】
次に、画像補正部３９は、画像生成部２３により生成された画像を、第１の補正量で水平走査方向に行単位で補正すると共に、第２の補正量で垂直走査方向に行単位で補正する（Ｓ６９：画像補正工程）。次に、計測部４０は、ステップＳ６９における画像補正部３９の補正により得られた画像を用いて、ワーク６の像として位置及び形状を計測する（Ｓ７０：計測工程）。これにより、第１の補正量及び第２の補正量で補正したワーク６の像が求められる。
【０１１４】
以上、本第５実施形態では、上記第１実施形態と同様、撮像素子２１の撮像により得られた画像を用いてワーク６の像として位置及び形状を求める際に、ジャイロセンサ等の外部センサを用いることなく、画像歪みを補正することが可能となる。したがって、画像歪みを補正した画像を用いてワーク６の位置及び形状を求めるので、ワーク６の計測精度が向上する。
【０１１５】
また、外部センサを用いずに画像の補正をすることができるので、外部センサを省略した分、コストダウンを図ることができ、外部センサを省略した分、省スペース化を図ることができる。そして、カメラ１及び保持部材４の双方に外部センサを設ける必要がなく、更にこれら外部センサに必要な同期回路も不必要となり、構成を簡略化することができる。
【０１１６】
なお本第５実施形態では、水平走査方向に振幅を持つマーカ３Ｅの例を示したが、垂直走査方向に正弦波状の粗密変化をもつマーカを用いても同様の効果を得ることができる。
【０１１７】
［第６実施形態］
次に、本発明の第６実施形態に係る画像計測装置について説明する。図２２は、本発明の第６実施形態に係る画像計測装置のカメラ及びコントローラの機能ブロック図である。なお、この図２２において、上記第５実施形態の画像計測装置の構成と同様の構成については同一符号を付して詳細な説明を省略する。
【０１１８】
本第６実施形態のコントローラ５０Ｆは、上記第５実施形態と同様、画像生成部２３、マーカ検出部３３、第１の抽出部３４、第１の補正量計算部３５、マーカ波形補正部３６、第２の抽出部３７、第２の補正量計算部３８及び計測部４０を有している。更に、コントローラ５０Ｆは、補正部４１を有している。
【０１１９】
コントローラ５０Ｆは、上記第５実施形態と同様、図１８（ａ）に示すＣＰＵ５０ａ、ＲＯＭ５０ｂ、ＲＡＭ５０ｃ、ＨＤＤ５０ｄ、ＰＬＬ回路５０ｅ及びＬＰＦ回路５０ｆ等を備えている。そして、ＣＰＵ５０ａが、画像生成部２３、マーカ検出部３３、第１の抽出部３４、第１の補正量計算部３５、マーカ波形補正部３６、第２の補正量計算部３８、計測部４０及び補正部４１として機能する。また、ＰＬＬ回路５０ｅ及びＬＰＦ回路５０ｆが、第２の抽出部３７として機能する。本第６実施形態では、ＣＰＵ５０ａ、ＰＬＬ回路５０ｅ及びＬＰＦ回路５０ｆが演算処理手段として機能する。
【０１２０】
図２３は、カメラ１及びコントローラ５０Ｆによるワーク６の位置及び形状を計測する際の動作を示すフローチャートである。この図２３において、ステップＳ７１，Ｓ７２の処理動作は、図２１のステップＳ６１，Ｓ６２の処理動作と同様である。
【０１２１】
本第６実施形態では、計測部４０は、ステップＳ７２にて画像生成部２３により生成された画像を用いて、ワーク６の位置及び形状を計測する（Ｓ７３：計測工程）。
【０１２２】
また、ステップＳ７４〜Ｓ７９における処理動作は、図２１のステップＳ６３〜Ｓ６８における処理動作と同様である。
【０１２３】
次に、ステップＳ３８の処理の終了後、補正部４１は、ステップＳ７３にて計測部４０により計測された位置及び形状のデータを、第１の補正量で水平走査方向に行単位で補正すると共に、第２の補正量で垂直走査方向に行単位で補正する（Ｓ８０：補正工程）。これにより、第１の補正量及び第２の補正量で補正したワーク６の像が求められる。
【０１２４】
以上、本第６実施形態によれば、上記第５実施形態と同様の効果を奏する。つまり、外部センサを用いることなく、画像歪みを補正したワーク６の位置及び形状の計測結果をえることができる。したがって、ワーク６の位置及び形状の計測精度が向上する。
【０１２５】
また、外部センサを用いずに画像の補正をすることができるので、外部センサを省略した分、コストダウンを図ることができ、外部センサを省略した分、省スペース化を図ることができる。そして、カメラ１及び保持部材４の双方に外部センサを設ける必要がなく、更にこれら外部センサに必要な同期回路も不必要となり、構成を簡略化することができる。また、画像の再構成をする手間が省けるので、計算速度の点で有利となる。また、サブピクセルの精度で補正が可能であるのでより高精度な補正が可能となる。
【０１２６】
なお、上記第５及び第６実施形態では、マーカ５Ｅが画像上で垂直走査方向に平行に延びる場合について説明したが、これに限定するものではなく、水平走査方向に平行とならなければよい。具体的には、マーカ５Ｅが画面上で水平走査方向と交差するように配置されていればよい。
【０１２７】
［第７実施形態］
次に、本発明の第７実施形態に係る画像計測装置について説明する。図２４は、本発明の第７実施形態に係る画像計測装置の概略構成及び撮像により得られた画像を示す説明図である。なお、この図２４において、上記第５実施形態の画像計測装置の構成と同様の構成については同一符号を付して詳細な説明を省略する。
【０１２８】
図２４（ａ）に示すように、画像計測装置１００Ｇは、撮像装置としてのカメラ１と、計測対象物であるワーク６を保持する保持部材４と、カメラ１に接続されたコントローラ５０Ｇと、を備えている。
【０１２９】
コントローラ５０Ｇは、ＣＰＵ５０ａ、ＲＯＭ５０ｂ、ＲＡＭ５０ｃ及びＨＤＤ５０ｄ等を有するコンピュータシステムである。ＲＯＭ５０ｂ又はＨＤＤ５０ｄ等の記憶装置（図２４ではＨＤＤ５０ｄ）には、ＣＰＵ５０ａを動作させるプログラムＰが記録されており、ＣＰＵ５０ａは、このプログラムＰに基づいて動作することで、後述する機能ブロックの各部として機能する。ＲＡＭ５０ｃには、ＣＰＵ５０ａによる計算結果等が一時的に格納される。本第７実施形態では、ＣＰＵ５０ａが演算処理手段として機能する。
【０１３０】
本第７実施形態の保持部材４の上面には、空間周波数ｆが既知である正弦波状の第１のマーカ３Ｇ１及び第１のマーカ３Ｇ１に対して９０°の位相差を有する余弦波状の第２のマーカ３Ｇ２が設けられている。
【０１３１】
そして、図２４（ｂ）に示すように、撮像により得られた画像（データ）１０Ｇには、実際のマーカ３Ｇ１，３Ｇ２に対応する撮像素子２１の画素を基準とした２次元座標系でのマーカ（データ）１２Ｇ１，１２Ｇ２が含まれている。また、画像（データ）１０Ｇには、実際のワーク６に対応する２次元座標系でのワーク（データ）１１、実際のワーク６上の組み付け部品に対応する２次元座標系での部品（データ）１３，１４，１５が含まれている。
【０１３２】
これらマーカ３Ｇ１，３Ｇ２は、撮像素子２１の２次元座標系で垂直走査方向に平行に延びるように、即ち、図２４（ｂ）の画像１０Ｇでマーカ１２Ｇ１，１２Ｇ２が垂直走査方向（縦方向）に平行に延びるように、保持部材４に配置されている。また、これらマーカ３Ｇ１，３Ｇ２は、撮像素子２１の２次元座標系基準で水平走査方向（横方向）が振幅方向となる形状となっている。またマーカ３Ｇ１，３Ｇ２の正弦波，余弦波の空間周波数は同一であり、あらかじめ既知であるとする。即ち、記憶部（記憶装置）であるＨＤＤ５０ｄにマーカ３Ｇ１，３Ｇ２の空間周波数のデータが記憶されている。
【０１３３】
図２５は、画像計測装置１００Ｇのカメラ１及びコントローラ５０Ｇの機能ブロック図である。コントローラ５０Ｇは、画像生成部２３、マーカ検出部３３、抽出部３４、第１の補正量計算部３５、マーカ波形補正部３６、逆正接計算部４２、第２の補正量計算部４３、画像補正部３９及び計測部４０を有している。つまり、ＣＰＵ５０ａが、画像生成部２３、マーカ検出部３３、抽出部３４、第１の補正量計算部３５、マーカ波形補正部３６、逆正接計算部４２、第２の補正量計算部４３、画像補正部３９及び計測部４０として機能する。
【０１３４】
図２６は、カメラ１及びコントローラ５０Ｇによるワーク６の位置及び形状を計測する際の動作を示すフローチャートである。以下、カメラ１及びコントローラ５０Ｇの各部の動作について図２６に示すフローチャートを参照しながら説明する。
【０１３５】
図２６において、ステップＳ８１，Ｓ８２の処理動作は、図２１のステップＳ６１，Ｓ６２の処理動作と同様である。マーカ検出部３３は、ステップＳ８２にて画像生成部２３により生成された画像１０Ｇにおける第１のマーカ１２Ｇ１及び第２のマーカ１２Ｇ２の波形を検出する（Ｓ８３：マーカ検出工程）。
【０１３６】
次に、抽出部３４は、ステップＳ８３にてマーカ検出部３３により検出された第１のマーカ１２Ｇ１の波形から空間周波数ｆの１／２よりも低い値の周波数帯域Ｂ１（図１９（ｊ））の振動成分を抽出する（Ｓ８４：抽出工程）。なお、このステップＳ８４では、第１のマーカ１２Ｇ１の波形から振動成分を抽出したが、第２のマーカ１２Ｇ２の波形から振動成分を抽出してもよい。つまり、いずれか一方のマーカの波形から振動成分を抽出すればよい。
【０１３７】
次に、第１の補正量計算部３５は、ステップＳ８４にて抽出部３４により抽出された振動成分を打ち消す水平走査方向の第１の補正量を行単位で計算する（Ｓ８５：第１の補正量計算工程）。この第１の補正量は、ＣＰＵ５０ａにより記憶部（ＨＤＤ５０ｄ）に記憶される。
【０１３８】
次に、マーカ波形補正部３６は、ステップＳ８３にてマーカ検出部３３により検出された第１のマーカ及び第２のマーカの波形を第１の補正量で水平走査方向に行単位で補正する（Ｓ８６：マーカ波形補正工程）。
【０１３９】
次に、逆正接計算部４２は、ステップＳ８６にてマーカ波形補正部３６により補正された第１のマーカ及び第２のマーカの波形を用いて行毎に逆正接を求める（Ｓ８７：逆正接計算工程）。この逆正接の演算結果は、水平走査方向の振動成分を取り除いた画像上の第１のマーカ及び第２のマーカの波形の各行の位相値である。つまり、演算対象の行における第１のマーカの波形の振幅値をＸ、演算対象の行における第２のマーカの波形の振幅値をＹとしたとき、その行の位相値θは、θ＝ｔａｎ−１（Ｘ／Ｙ）で求まる。したがって、逆正接計算部４２は、この演算式を用いて位相値θを求める。このとき逆正接計算部４２は、±１８０°の位相を計測できるように正弦波、余弦波の正負を考慮して位相を求める。
【０１４０】
次に、第２の補正量計算部４３は、ステップＳ８７にて逆正接計算部４２により求められた逆正接の位相値から垂直走査方向の第２の補正量を行単位で計算する（Ｓ８８：第２の補正量計算工程）。具体的に説明すると、第２の補正量計算部４３は、逆正接計算部４２で計算した各行の位相値が、振動のない場合のマーカの波形の位相値の行へ垂直走査方向にずらす量を計算する。例えば、ある行Ｌ１において逆正接計算部４２で計算した位相値が９０°であった場合、振動のない場合の逆正接の演算で求められる位相値９０°の行をＬ２とすれば、この行Ｌ１の画素データを行Ｌ２にずらすための補正量（第２の補正量）を計算する。
【０１４１】
次に、画像補正部３９は、ステップＳ８２にて画像生成部２３により生成された画像を、第１の補正量で水平走査方向に行単位で補正すると共に、第２の補正量で垂直走査方向に行単位で補正する（Ｓ８９：画像補正工程）。これにより、ワーク１１の歪みが解消された画像が得られる。
【０１４２】
次に、計測部４０は、ステップＳ８９における画像補正部３９の補正により得られた画像を用いて、ワーク６の位置及び形状を計測する（Ｓ９０：計測工程）。これにより、補正されたワーク６の像が求められる。
【０１４３】
以上、本第７実施形態によれば、上記第５実施形態と同様の効果を奏する。つまり、外部センサを用いることなく、画像歪みを補正することが可能となる。したがって、画像歪みを補正した画像を用いてワーク６の位置及び形状を求めるので、ワーク６の計測精度が向上する。
【０１４４】
また、外部センサを用いずに画像の補正をすることができるので、外部センサを省略した分、コストダウンを図ることができ、外部センサを省略した分、省スペース化を図ることができる。そして、カメラ１及び保持部材４の双方に外部センサを設ける必要がなく、更にこれら外部センサに必要な同期回路も不必要となり、構成を簡略化することができる。
【０１４５】
また、本第７実施形態では、逆正接を求めることにより直接、行ごとの位相の進み遅れを検出しているので、上記第６実施形態で周波数変調成分を抽出する場合よりも、更なる高速化が期待できる。
【０１４６】
なお、この第７実施形態の場合も元の画像で計測点を求めておいて、計測点のみ垂直水平方向の補正を行っても良い。また、マーカ３Ｇ１，３Ｇ２が画像上で垂直走査方向に平行に延びる場合について説明したが、これに限定するものではなく、水平走査方向に平行とならなければよい。具体的には、マーカ５Ｅが画面上で水平走査方向と交差するように配置されていればよい。
【０１４７】
以上、上記第１〜第７実施形態に基づいて本発明を説明したが、本発明はこれに限定されるものではない。上記第１〜第７実施形態では、コンピュータ読み取り可能なプログラムが記録される記録媒体が、ＲＯＭ又はＨＤＤである場合について説明したが、ＣＤ，ＤＶＤ等の各種記録メディア、ＵＳＢメモリやメモリカード等の不揮発性メモリであってもよい。つまり、コンピュータにプログラムを読み取り可能に記録されるものであればいかなる記録媒体でもよく、これらに限定するものではない。そして、上記第１〜第７実施形態の機能をコンピュータに実現させるプログラムを、ネットワーク又は各種記録媒体を介してコンピュータに供給し、そのコンピュータがプログラムコードを読み出して実行するようにすればよい。この場合、そのプログラム、及び該プログラムを記録したコンピュータ読み取り可能な記録媒体は本発明を構成することになる。
【０１４８】
また、上記第５及び第６実施形態では、第２の抽出部３７が、ＰＬＬ回路５０ｅ及びＬＰＦ回路５０ｆで構成されている場合について説明したが、これに限定するものではない。第２の抽出部３７としての機能を、プログラムに基づいて動作するコンピュータとしてのＣＰＵ５０ａが有していてもよい。
【０１４９】
また、上記第１〜第７実施形態では、画像生成部の機能をＣＰＵ５０ａが有する場合について説明したが、カメラ１が画像生成部の機能を有していてもよい。
【符号の説明】
【０１５０】
１…カメラ、３ａ，３Ｅ…マーカ、３Ｇ１…第１のマーカ、３Ｇ２…第２のマーカ、４，４Ｄ…保持部材、６…ワーク（計測対象物）、２１…撮像素子、５０ａ…ＣＰＵ（演算処理手段）、１００，１００Ｃ，１００Ｅ，１００Ｇ…画像計測装置
【図１】
0005893278.tif 000002
【図２】
0005893278.tif 000003
【図３】
0005893278.tif 000004
【図４】
0005893278.tif 000005
【図５】
0005893278.tif 000006
【図６】
0005893278.tif 000007
【図７】
0005893278.tif 000008
【図８】
0005893278.tif 000009
【図９】
0005893278.tif 000010
【図１０】
0005893278.tif 000011
【図１１】
0005893278.tif 000012
【図１２】
0005893278.tif 000013
【図１３】
0005893278.tif 000014
【図１４】
0005893278.tif 000015
【図１５】
0005893278.tif 000016
【図１６】
0005893278.tif 000017
【図１７】
0005893278.tif 000018
【図１８】
0005893278.tif 000019
【図１９】
0005893278.tif 000020
【図２０】
0005893278.tif 000021
【図２１】
0005893278.tif 000022
【図２２】
0005893278.tif 000023
【図２３】
0005893278.tif 000024
【図２４】
0005893278.tif 000025
【図２５】
0005893278.tif 000026
【図２６】
0005893278.tif 000027
【図２７】
0005893278.tif 000028