(57)【要約】【課題】付加的な計測装置を用いず、移動体の移動を止めることなく、高速に、また安定して最良の撮像位置で移動体を自動的に撮影できるようにする。【解決手段】画像センサ２の撮像範囲を一定方向に移動するようワーク９の画像を結像させ、撮像位置で画像センサ２によりワーク９の画像を撮像し、所定出力フォーマットの画像データを画像センサ２から出力させる。画像センサ２を、出力フォーマットよりも画素サイズまたは画素密度が小さく、かつ画像センサの撮像範囲の移動体の画像が進入する側に配置された抽出領域の画像データを出力するよう設定する。そして、抽出領域の画像データの画素値に応じて、移動体の位置が撮像位置の手前に到達したか否かを検出する。その移動体の到達を検出した場合、画像センサ２を画像データを上記出力フォーマットで出力するモードに切り換え、画像データを出力させる。【選択図】図１
2015216482.tif 000002
【特許請求の範囲】
【請求項１】
画像センサの撮像面に撮像範囲を一定方向に移動するよう移動体の画像を結像させ、撮像位置で前記画像センサにより前記移動体の画像を撮像し、撮像した所定の画像サイズおよび画素密度を有する出力フォーマットの画像データを前記画像センサから出力させる撮像制御方法において、
制御装置が、前記画像センサの出力モードを、前記出力フォーマットよりも画像サイズまたは画素密度が小さく、かつ前記画像センサの撮像範囲の前記移動体の画像が進入する側に配置された抽出領域の画像データを出力する第１の出力モードに設定する工程と、
前記制御装置が、前記画像センサの出力モードを前記第１の出力モードに設定した状態で、前記画像センサから出力される前記抽出領域の画像データの画素値に応じて、前記抽出領域に撮像されている前記移動体の位置が前記撮像位置の手前に到達したか否かを検出する移動体検出工程と、
前記制御装置が、前記移動体検出工程で前記抽出領域に撮像されている前記移動体の位置が前記撮像位置の手前に到達したことを検出した場合、前記画像センサの出力モードを前記画像センサで撮像されている画像データから前記出力フォーマットの画像データを出力する第２の出力モードに設定する工程と、
を備え、
前記画像センサが前記撮像位置で撮像した前記移動体の画像データを前記第２の出力モードにより前記画像センサから出力させることを特徴とする撮像制御方法。
【請求項２】
請求項１の撮像制御方法において、前記制御装置は、前記移動体検出工程で、前記抽出領域における画像データの行方向に沿った輝度値の変化に基づき、前記移動体の前記撮像位置の手前への到達を検出することを特徴とする撮像制御方法。
【請求項３】
請求項１の撮像制御方法において、前記制御装置は、前記移動体検出工程で、前記抽出領域における画像データの輝度分布を介して検出される重心位置に基づき、前記移動体の前記撮像位置の手前への到達を検出することを特徴とする撮像制御方法。
【請求項４】
請求項１の撮像制御方法において、前記制御装置は、前記移動体の画像が前記撮像範囲に進入する前に前記画像センサの出力モードを前記第１の出力モードに設定して前記撮像範囲を予め撮像して取得した参照画像の画像データと、前記画像センサの出力モードを前記第１の出力モードに設定した状態で前記画像センサより出力される前記抽出領域の画像データとの差分画像を生成し、前記移動体検出工程では前記差分画像の画素値に応じて、前記抽出領域に撮像されている前記移動体の位置が所定の撮像位置に到達したか否かを検出することを特徴とする撮像制御方法。
【請求項５】
請求項１の撮像制御方法において、前記制御装置が、前記移動体検出工程で前記抽出領域に撮像されている前記移動体の位置が前記撮像位置に到達したことを検出した際、前記抽出領域に前記画像センサで撮像されている前記移動体の画像データに基づき、前記撮像位置で撮像した前記移動体の画像データを出力する際の出力フォーマットを決定することを特徴とする撮像制御方法。
【請求項６】
請求項１から５のいずれか１項に記載の各工程を前記制御装置に実行させるための特徴とする撮像制御プログラム。
【請求項７】
請求項６に記載の撮像制御プログラムを格納したコンピュータ読み取り可能な記録媒体。
【請求項８】
請求項１から５のいずれか１項に記載の撮像制御方法によって前記移動体として搬送されるワークを撮像し、前記第２の出力モードによって前記画像センサより出力される画像データに対する画像処理に基づき、前記ワークに対して生産処理または検査処理を行う工程を備えたことを特徴とする生産方法。
【請求項９】
画像センサの撮像面に撮像範囲を一定方向に移動するよう移動体の画像を結像させ、撮像位置で前記画像センサにより前記移動体の画像を撮像し、撮像した所定の画像サイズおよび画素密度を有する出力フォーマットの画像データを前記画像センサから出力させる制御装置を有する撮像装置において、
前記制御装置は、
前記画像センサの出力モードを、前記出力フォーマットよりも画像サイズまたは画素密度が小さく、かつ前記画像センサの撮像範囲の前記移動体の画像が進入する側に配置された抽出領域の画像データを出力する第１の出力モードに設定し、
前記画像センサの出力モードを前記第１の出力モードに設定した状態で、前記画像センサから出力される前記抽出領域の画像データの画素値に応じて、前記抽出領域に撮像されている前記移動体の位置が前記撮像位置の手前に到達したか否かを検出し、
前記抽出領域に撮像されている前記移動体の位置が前記撮像位置の手前に到達したことを検出した場合、前記画像センサの出力モードを前記画像センサで撮像されている画像データから前記出力フォーマットの画像データを出力する第２の出力モードに切り換え、
前記画像センサが前記撮像位置で撮像した前記移動体の画像データを前記第２の出力モードにより前記画像センサから出力させる撮像装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像センサの撮像範囲を一定方向に移動するよう移動体の画像を結像させ、撮像位置で画像センサにより前記移動体の画像を撮像し、撮像した所定の出力フォーマットの画像データを画像センサから出力させる撮像制御方法、および撮像装置に関する。
【背景技術】
【０００２】
従来より、工業製品の組み立てや生産現場において、生産物、部品などのワークを所定の組み付けのための作業位置や検査位置に搬送し、操作するためにロボットやベルトコンベアなどの搬送手段が用いられている。対象物であるワークは、搬送中は任意姿勢の状態である場合が多く、一般には搬送終了後、作業位置において物体の姿勢や位相を計測し、ロボットアームやハンドを用いて適宜姿勢や位相を修正してから、加工や組み立て作業が開始される。
【０００３】
また、検査においても、対象物を検査専用の検査ステーションに送ってから実際の検査を行うのが一般的である。いわゆる外観検査（光学検査ないし画像検査）の場合、対象物をカメラにより撮像して得られた画像データを用いて計測や検査が行われるが、対象物の移動を一旦止めてから計測や検査のための撮像を行うことが多い。しかしこの方法によると、いったん搬送装置を停止するため、搬送装置の加減速時間が余分に必要になり、検査や計測時間が増大してしまうデメリットがあった。
【０００４】
また、搬送中に搬送する対象物を止めずにカメラで撮像し、撮像データに基づき対象物に対する組み立て操作、画像計測や検査を制御する技術も提案されている。この種の装置では、対象物の位置が撮像に適した位置にあることを検知しなければならない。このため、例えば、カメラとは別に離れた位置に光センサなどを設置し、光センサが対象物を検出した後、対象物の移動距離を測定または予測し、一定時間が経過してから対象物の撮像を行う構成が考えられている。
【０００５】
また、計測用のスチルカメラの他に、スチルカメラの撮像領域を包含する撮像領域を持つビデオカメラを設置し、このビデオカメラによりスチルカメラで撮像すべき対象物の動きを捉える構成が知られている（たとえば下記の特許文献１）。この種の構成においては、ビデオカメラの撮像画像に対する画像処理を介して撮像領域への対象物の進入を検知すると、計測用のスチルカメラにレリーズ信号を入力し、撮像を行わせる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１０−１７７８９３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、従来の光センサなどにより対象物の撮像領域への進入を検出する構成では、そのために専用の光センサを配置し、別途、移動距離の測定手段が必要となる。また、対象物の寸法変化によって撮像位置に誤差を生じる可能性があり、さらに対象物の位置に対して予測を用いる場合にはロボットやベルトコンベアなどの搬送装置の速度に変動によっても撮像位置の誤差を生じる問題がある。
【０００８】
また、特許文献１の構成では移動体検出のためビデオカメラを用いており、対象物の位置に関して予測を用いないので、撮像位置はほぼ一定に制御できる。しかしながら、本来、計測や検査に必要ないビデオカメラを付加的に追加する必要があり、余計なコストアップと実装スペースの増大が発生する。また、面倒なスチルカメラとビデオカメラ間の位置合わせ、および正確で高速な同期システムや対象物検出のための画像処理系が必要になる。また、検査などのためスチルカメラの画角内の特定位置で撮像する必要がある場合には、より正確なカメラ間の位置合わせ、同期等が必要となり、簡単安価で現実的なシステムを構成するのが難しい問題がある。
【０００９】
本発明の課題は、以上の問題点に鑑み、撮像装置以外の付加的な計測装置を必要とせず、移動体である対象物の移動を止めることなく、高速に、また安定して最良の撮像位置で移動体を自動的に撮影できるようにすることにある。
【課題を解決するための手段】
【００１０】
上記課題を解決するため、本発明においては、画像センサの撮像面に撮像範囲を一定方向に移動するよう移動体の画像を結像させ、撮像位置で前記画像センサにより前記移動体の画像を撮像し、撮像した所定の画像サイズおよび画素密度を有する出力フォーマットの画像データを前記画像センサから出力させる撮像制御方法において、制御装置が、前記画像センサの出力モードを、前記出力フォーマットよりも画像サイズまたは画素密度が小さく、かつ前記画像センサの撮像範囲の前記移動体の画像が進入する側に配置された抽出領域の画像データを出力する第１の出力モードに設定する工程と、前記制御装置が、前記画像センサの出力モードを前記第１の出力モードに設定した状態で、前記画像センサから出力される前記抽出領域の画像データの画素値に応じて、前記抽出領域に撮像されている前記移動体の位置が前記撮像位置の手前に到達したか否かを検出する移動体検出工程と、前記制御装置が、前記移動体検出工程で前記抽出領域に撮像されている前記移動体の位置が前記撮像位置の手前に到達したことを検出した場合、前記画像センサの出力モードを前記画像センサで撮像されている画像データから前記出力フォーマットの画像データを出力する第２の出力モードに設定する工程と、を備え、前記画像センサが前記撮像位置で撮像した前記移動体の画像データを前記第２の出力モードにより前記画像センサから出力させる構成を特徴とする。
【００１１】
あるいは、本発明においては、画像センサの撮像面に撮像範囲を一定方向に移動するよう移動体の画像を結像させ、撮像位置で前記画像センサにより前記移動体の画像を撮像し、撮像した所定の画像サイズおよび画素密度を有する出力フォーマットの画像データを前記画像センサから出力させる制御装置を有する撮像装置において、前記制御装置は、前記画像センサの出力モードを、前記出力フォーマットよりも画像サイズまたは画素密度が小さく、かつ前記画像センサの撮像範囲の前記移動体の画像が進入する側に配置された抽出領域の画像データを出力する第１の出力モードに設定し、前記画像センサの出力モードを前記第１の出力モードに設定した状態で、前記画像センサから出力される前記抽出領域の画像データの画素値に応じて、前記抽出領域に撮像されている前記移動体の位置が前記撮像位置の手前に到達したか否かを検出し、前記抽出領域に撮像されている前記移動体の位置が前記撮像位置の手前に到達したことを検出した場合、前記画像センサの出力モードを前記画像センサで撮像されている画像データから前記出力フォーマットの画像データを出力する第２の出力モードに切り換え、前記画像センサが前記撮像位置で撮像した前記移動体の画像データを前記第２の出力モードにより前記画像センサから出力させる構成を特徴とする。
【発明の効果】
【００１２】
以上の構成により、本発明によれば、撮像装置以外の付加的な計測装置を必要とせず、移動体の移動を止めることなく、高速に、また安定して最良の撮像位置で移動体を自動的に撮影することができる。特に、移動体の撮像位置はフォーマットよりも画像サイズまたは画素密度が小さく、かつ前記画像センサの撮像範囲の前記移動体の画像が進入する側に配置された抽出領域における画素値に基づき検出される。このため、必要な画素のみを用いて効率よく、高速に移動体の位置を検出できる。
【図面の簡単な説明】
【００１３】
【図１】本発明の第１実施例の撮像制御方法が適用される装置構成を示したブロック図である。
【図２】本発明の第１実施例における撮像制御手順を示したフローチャート図である。
【図３】（ａ）〜（ｃ）は本発明の第１実施例におけるそれぞれ異なる画素選択範囲の例を示した説明図である。
【図４】（ａ）〜（ｃ）は本発明の第１実施例におけるワーク搬送中の画像センサの出力状態を示した説明図である。
【図５】（ａ）および（ｂ）は第１実施例において正反射撮像で撮像された画像の一例を示した説明図である。
【図６】本発明の第２実施例における撮像制御手順を示したフローチャート図である。
【図７】（ａ）〜（ｄ）は本発明の第２実施例において差分画像を生成する場合の動作を示した説明図である。
【図８】本発明の第３実施例における画素選択および出力制御を示した説明図である。
【図９】本発明の第３実施例における異なる出力制御を示した説明図である。
【図１０】図９の画素選択および出力制御により切り出される画像を示した説明図である。
【図１１】本発明の第３実施例におけるさらに異なる出力制御を示した説明図である。
【図１２】本発明の第３実施例においてライン単位のみで切り出が可能なイメージセンサを用いる場合の画像を示した説明図である。
【発明を実施するための形態】
【００１４】
以下、添付図面を参照して、本発明を好適に実施する実施例につき詳細に説明する。以下では、ロボットアームにより対象物であるワークを搬送し、その搬送途中でワークの搬送を停止させることなく、所定の撮像位置でカメラによりワークの画像を撮像するロボット装置ないし生産システムにおける実施例を示す。
【実施例１】
【００１５】
図１は、本発明を採用した撮像装置を用いるロボット装置（あるいはロボットを用いた生産システム）の概略構成を示している。また、図２は本発明の撮像制御の流れをフローチャートとして示している。
【００１６】
図１において、本実施例で移動体として撮像するワーク９は搬送空間３０中をロボットアーム８先端のロボットハンド８１により把持され、矢印３０ａで示すように搬送される。搬送空間３０は、例えば本ロボット装置（あるいはロボットを用いた生産システム）の次工程の作業位置や検査位置に向かう搬送経路であって、この搬送空間３０中の所定の撮像位置で撮像装置１によって搬送中のワーク９の画像を撮像する。
【００１７】
撮像装置１で撮像したワーク９の画像は、画像処理装置６の画像処理を介してワーク９の姿勢（ないし位相）制御や製品検査などに用いられる。撮像装置１で撮像したワーク９の画像データは、所定の画像サイズおよび画素密度を有する出力フォーマットで画像処理装置６に送出される。
【００１８】
画像処理装置６では、ワーク９の姿勢制御や製品検査（良否判定）のために必要な所定の画像処理が行なわれる。この画像処理の内容に関しては本発明の本質には関係しないため、その詳細な説明は省略する。例えば、画像処理装置６で行う画像処理によって取得した姿勢（ないし位相）の検出情報は、例えば画像処理装置６から撮像装置１を含む本ロボット装置（ないし本生産システム）の全体の動作を統轄するシーケンス制御装置７に送信される。
【００１９】
シーケンス制御装置７は受信した姿勢（ないし位相）の検出情報に基づき、例えば下流の作業位置や検査位置にロボットアーム８が移動するまでの間にロボット制御装置８０を介してロボットアーム８を制御する。これにより、ワーク９の姿勢（ないし位相）を次工程における組み立てや加工などの生産処理に適した状態に制御することができる。その場合、シーケンス制御装置７は、例えば画像処理装置６での計測結果をロボット制御装置８０にフィードバックすることにより姿勢（ないし位相）制御を行うことができる。
【００２０】
以上のように、図１に示した撮像装置１を用いた生産システムでは、画像処理装置６の画像処理に基づき、ワーク９に対して所定の生産処理または検査処理を実施することができる。
【００２１】
また、シーケンス制御装置７は、ワーク９が撮像装置１の撮像範囲を通過する前に、撮像装置１を後述の移動体検出のための第１のモード（ワーク９の通過待ち状態）切り換える契機となる制御信号を撮像装置１に送信する。
【００２２】
撮像装置１は、搬送空間３０の方向を向けて配置される撮像光学系２０と、その光軸上に配置された画像センサ２を有する。このような機器配置により、画像センサ２の撮像面に、その撮像範囲を一定方向に移動するよう移動体の画像を結像させ、所定の撮像位置で画像センサ２により前記移動体の画像を撮像する。撮像光学系２０の撮影倍率や撮影距離は、ワーク９の全体（または目的の撮像部位）を画像センサ２の撮像範囲内に捉えることができるよう予め選択（ないし調整）されているものとする。
【００２３】
また、画像処理装置６に送出するワーク９の画像を撮像する撮像位置は、例えば、少なくとも移動体であるワーク９の全体（または目的の撮像部位）を画像センサ２の撮像範囲内に捉えることができる位置である。後述の説明においては、ワーク９の「撮像位置」との用語は、主にワーク９の画像の撮像範囲内における「位置」の意味合いで用い、それが「画像の位置」であることの明示的な説明を省略する場合がある。
【００２４】
ワーク９の（画像の）画像センサ２の撮像範囲内における最適な撮像位置手前への到達は、後述の移動体検出手段５によって検出する。
【００２５】
図１において、撮像装置１のブロック中、破線より上部に示した各小ブロックは、画像センサ２を除くと、破線より下部に示した制御系の制御によって実現される機能ブロックに対応する。図１において、これらの機能ブロックは、画素選択手段３、出力選択手段４、移動体検出手段５となっている。このうち、出力選択手段４は、画像センサ２から出力された画像データを外部の画像処理装置６へ出力するか、移動体検出手段５へ出力するかを選択するよう動作する。
【００２６】
移動体検出手段５は画像センサ２の出力する画像データを入力し、例えば後述する手法によってワーク９の特定の特徴部分を検出し、ワーク９が搬送空間３０中の所定の撮像位置の手前に到達したことを検出する。なお、ここで「撮像位置の手前」というのは、後述の移動体検出手段５による検出処理と、その移動体検出に基づき開始される画像処理装置６への画像データ出力の間には少なくとも１ないし数クロック単位の回路遅延や処理遅延が見込まれるためである。すなわち、移動体検出手段５は、移動体検出直後に画像処理装置６へ画像データを出力した場合に画像データ上でワーク９の画像位置が所定の撮像位置となるように、回路遅延や処理遅延を見込んだ上、その手前の画像位置を検出する。
【００２７】
画素選択手段３は、画像センサ２の画素のうち特定の画素を選択して、後段の出力選択手段４に出力するよう画像センサ２を制御する。ワーク９の所定の撮像位置手前への到達を検出するまでの間は、画素選択手段３が、例えば画像センサ２の中心部などの少ない画素で構成された小さな領域の画素データのみを移動体検出手段５に出力するよう、画像センサ２を制御する。移動体検出手段５は、この小領域の画像を用いて、ワーク９の搬送空間３０中の所定の撮像位置手前への到達を検出する。
【００２８】
移動体検出手段５が所定の撮像位置手前への到達を検出するまでの間、画像センサ２から移動体検出手段５に送出する少ない画素で構成された小さな領域のことを、以下では「抽出領域」という。この抽出領域は、後述の図３以降では参照符号の２０１により示されている。
【００２９】
また、この抽出領域（２０１）から、移動体検出手段５に送出される画素は必ずしも空間的に隣接し連続している必要はない。例えば、抽出領域（２０１）は、１ないし数画素おきに、いわば低解像度で移動体検出手段５に送出される画素群から構成されていてもよい。以下、移動体検出のために移動体検出手段５に送出される抽出領域（２０１）は、上記のような低解像度の画素群で構成される場合も含むものとする。
【００３０】
移動体検出手段５がワーク９の所定の撮像位置手前への到達を検出すると、画素選択手段３は画像処理装置６の画像処理に必要な撮像サイズおよび画素密度を有する出力フォーマットで画素データを出力するよう、画像センサ２の読み出し領域を切り換える。また、移動体検出手段５がワーク９の所定の撮像位置手前への到達を検出すると、これに応じて出力選択手段４は画像センサ２の撮像した画像データが画像処理装置６に送出されるよう、画像データの転送経路を切り換える。
【００３１】
一方、画像センサ２から画像処理装置６の画像処理のために転送されるワーク９を撮像した画像データの出力フォーマットは、ワーク９全体ないし少なくとも測定や検査が必要な所定部位を画角内に含む画像サイズ（縦横画素数）の大きさを有するものとする。また、画像処理装置６へ出力する画像データの出力フォーマットは、そのような間引きのない（あるいは間引き率の小さい）画素密度の高い（高解像度の）画像データであるものとする。以下、画像処理装置６の画像処理のために転送されるワーク９の画像データは、上記の画像処理装置６の画像処理に充分なサイズ、ないし（高）解像度を有する画像データであるものとする。
【００３２】
以上のようにして、画像センサ２に所定の撮像位置においてワーク９を撮像させ、その画像データ中の画像処理装置６の画像処理に必要な撮像サイズに相当する所定の領域の画素データを画像処理装置６に転送することができる。
【００３３】
ワーク９の搬送空間３０中の所定の撮像位置手前への到達は、移動体検出手段５が、上記の抽出領域（２０１）の画素データを用いて検出する。従って、ロボットアーム８によるワーク９の搬送を停止させることなく、ワーク９を搬送空間３０中で高速移動させながら、所定の撮像位置手前への到達を低演算コストで高速に検出することができる。
【００３４】
上記の各機能ブロックは、例えば図１の撮像装置１の破線下部に示したハードウェアによって実現することができる。この撮像装置ハードウェアは、例えば汎用マイクロプロセッサやグラフィックＣＰＵ（ＧＰＵ）などから成るＣＰＵ２１、高速なメモリ素子で構成された画像メモリ２２、と、ＲＯＭ２３、ＲＡＭ２４、インターフェース回路２５などから構成することができる。上記の各機能ブロックは、例えばＲＯＭ２３に格納した後述の制御手順を記述したコンピュータ読み取り可能なプログラムをＣＰＵ２１が実行し、上記ハードウェアの各部を制御することによって実現される。
【００３５】
例えば、画素選択手段３は、ＣＰＵ２１がインターフェース回路２５を介して画像センサ２の出力モードを操作し、画像センサ２の出力画素領域の範囲を指定することにより実現される。この場合、画素選択手段３により切り換えられる画像センサ２の出力モードの１つは移動体検出手段５の検出対象である上記の抽出領域２０１の画素データを出力する第１の出力モードである。また、もう１つの出力モードは、画像処理装置６の画像処理に必要な画像サイズ（縦横画素数）および画素密度の出力フォーマットで画素データを出力する第２の出力モードである。
【００３６】
特に第１の出力モードにおいて設定される抽出領域２０１は、上記の画像処理装置６への出力に用いられる出力フォーマットよりも画像サイズまたは画素密度が小さく、また、図３のように画像センサ２の撮像範囲の前記移動体の画像が進入する側に配置される。
【００３７】
移動体検出手段５は、ＣＰＵ２１が画像センサ２から出力される上記の抽出領域（２０１）の画像を解析するソフトウェアを実行することにより構成される。その際、画像センサ２から出力される撮像データは、例えば下記のデータ転送ハードウェアなどを介して画像メモリ２２に高速に転送され、ＣＰＵ２１が画像メモリ２２上の画像データを解析する。なお、本実施例では、移動体検出手段５の機能を実現するＣＰＵ２１は画像メモリ２２上の画像データを解析するものとした。しかしながら、例えばＣＰＵ２１および画像センサ２が画像ストリーム処理機能を有する場合には、画像メモリ２２を介さずにＣＰＵ２１が抽出領域（２０１）の画像データを解析するよう構成してもよい。
【００３８】
インターフェース回路２５は、シーケンス制御装置７との通信を行うための例えばシリアルポートなどの他、出力選択手段４を構成するマルチプレクサやＤＭＡコントローラなどのデータ転送ハードウェアを含む。特にインターフェース回路２５の上記データ転送ハードウェアは、出力選択手段４の機能を実現するもので、例えば、画像センサ２から画像メモリ２２への転送、あるいは撮像された画像データの画像処理装置６への転送に用いられる。
【００３９】
以下、撮像装置１を構成する主にハードウェアについてさらに説明する。
【００４０】
画像センサ２はワーク９の特徴を十分とらえることのできる解像度を有するものとする。画像処理装置６は撮像装置１から出力された十分に高解像度の画像に対して所定の画像処理を行なう。この画像処理の詳細は公知の手法によって行えばよく、その詳細な説明は省略するが、画像処理結果は例えばシーケンス制御装置７に送信され、ロボットアーム８によるワーク９の姿勢制御に用いられる。これにより、ロボットアーム８によるワーク９の高速搬送を停止することなく、搬送中に下流の作業ないし検査位置までに必要な姿勢制御を行うことができる。また、画像処理装置６の画像処理は、ワーク９の製品検査などにも利用される。その場合、例えば、組み立てが完成ないし半完成状態にあるワーク９の特徴部分を解析することによって、ワーク９の状態を検査し、あるいはさらにワーク９の良否判定を行うことができる。
【００４１】
画像センサ２は多数の画素を平面上に配置して成る公知のイメージセンサデバイスから構成され、センサ面に結像した画像を画素ごとのデジタルデータとして出力する。このようなセンサは一般にはラスタスキャンすることによってデータが取り出される。すなわち２次元の画像を水平方向に順次取り出し（水平スキャン）、次いでその直角方向に水平スキャンを繰り返す（垂直スキャン）ことにより画像データを得る。
【００４２】
画像センサ２を構成するイメージセンサとしては、ＣＣＤ（Ｃｈａｒｇｅ  Ｃｏｕｐｌｅｄ  Ｄｅｖｉｃｅ）センサを用いることができる。また、近年では、ＣＭＯＳ（Ｃｏｍｐｌｅｍｅｎｔａｒｙ  Ｍｅｔａｌ  Ｏｘｉｄｅ  Ｓｅｍｉｃｏｎｄｕｃｔｏｒ）センサも広く用いられている。これらのイメージセンサうち、ＣＣＤセンサは全画素を同時に露光するグローバルシャッタを備えているため移動体を撮像するのに向いている。これに対してＣＭＯＳセンサは水平スキャンごとに露光タイミングをずらして画像データを出力するローリングシャッタが一般的である。これらのシャッタ方式は、いずれも画素データの読み出し制御によって実現されるいわゆる電子シャッタ方式である。特に、ローリングシャッタのイメージセンサで移動体を撮像すると水平方向ごとに露光タイミングが異なるため実際の形状から歪んでしまう問題がある。ただし、ＣＭＯＳセンサでも画素ごとに一時的にデータを保存する機構を有するデバイスがあって、このようなセンサではグローバルシャッタ読み出しを実現でき、移動体を撮像しても出力画像が歪まない。
【００４３】
従って、本実施例では、移動体を扱うため、画像センサ２に用いるデバイスとしては、グローバルシャッタを基本とするＣＣＤセンサ、もしくはグローバルシャッタ読み出しが可能なＣＭＯＳセンサが望ましい。ただし形状の変化が問題とならないような画像処理を画像処理装置６で行うのであれば、その場合は通常のローリングシャッタ式のＣＭＯＳセンサを用いることも可能である。
【００４４】
ここで、図２のフローチャートを参照して、本実施例における撮像制御手順を説明する。図２の制御手順は、例えば撮像装置１のＣＰＵ２１が実行する制御プログラムとしてＲＯＭ２３などに格納しておくことができる。
【００４５】
図２のステップＳ１は、シーケンス制御装置７からの入力待ち状態を示しており、この状態では、画像センサ２および出力選択手段４は出力オフ状態に制御する。
【００４６】
ステップＳ２では、ＣＰＵ２１はシーケンス制御装置７からの入力状態を調べ、次のワーク９の撮像装置１の撮像空間への到来を予告する通知を受信しているか否かを判定する。シーケンス制御装置７はロボットアーム８によるワーク９の搬送を制御しており、ワーク９を撮像装置１の撮像空間を通過させる前に、撮像装置１にその旨を予告する通知を所定の信号形式によって送信する。この時、例えば、様々な異なる種類のワーク９を取り扱うような生産システムにおいては、必要に応じて、ワーク９の種類やサイズなどの情報を上記の予告通知信号に含めて撮像装置１、ないし画像処理装置６に送信することができる。ステップＳ２で当該の予告通知が到来するとステップＳ３に進み、予告通知が到来していなければステップＳ１に復帰してシーケンス制御装置７からの入力待ち状態を継続させる。
【００４７】
ステップＳ２で予告通知を受信すると、ステップＳ３において画素選択手段３による画素選択制御を行う。具体的には、インターフェース回路２５を介して画像センサ２にアクセスし、画像センサ２を移動体検出のための抽出領域（２０１）の画素を出力する第１のモードに切り換え、画像センサ２の出力をオンに制御する。また、出力選択手段４を構成するインターフェース回路２５のデータ転送ハードウェアを制御して、画像センサ２の出力を移動体検出手段５側に送出させるように切り換える。これにより、例えば、抽出領域（２０１）の画素データが画像メモリ２２の所定領域に刻々と転送され、ＣＰＵ２１のソフトウェアによって構成される移動体検出手段５の画像解析（後述）によって、ワーク９の位置を検出する処理が開始される。なお、ステップＳ３では、ワークの種類や形状ごとに異なる画像サイズや画素密度を有する抽出領域（２０１）を選択するような制御を行うこともできる。
【００４８】
ステップＳ４では、移動体検出手段５によってワーク９が撮像装置１の撮像光学系２０前方の所定の撮像位置手前に到達したか否かを検出する。例えばＣＰＵ２１のソフトウェアによって構成される移動体検出手段５の画像解析による移動体検出のいくつかの具体例については、後で詳述する。
【００４９】
移動体検出手段５がワーク９が撮像装置１の前方の撮像位置手前に到達したと判定した場合にはステップＳ５に進み、撮像位置手前への到達を検出していない間はステップＳ３にループする。
【００５０】
ワーク９が撮像装置１の前方の撮像位置手前に到達したと判定した場合、ステップＳ５において、画像センサ２を画像処理装置６の画像処理に必要な所定の撮像サイズに相当する画素領域の画素を出力する第２のモードに切り換える。ここでは、例えば、画像センサ２の出力画素領域をワーク９全体ないしは所定の検査部位を含む（が撮像された）範囲に切り換える。また、出力選択手段４を構成するインターフェース回路２５のデータ転送ハードウェアを制御して、画像センサ２の出力を画像処理装置６側に送出させるように切り換える。
【００５１】
続いて、ステップＳ６において、画像センサ２から画像処理装置６に対して画像処理に必要な所定の撮像サイズに相当する画素領域の画像データを転送する。この時、画像データは、画像メモリ２２をバッファ領域として用いて転送されるか、あるいはハードウェア的に可能であれば画像センサ２から画像処理装置６に直接転送される。このようにして、画像センサ２からワーク９（の所定部位）を撮像した１枚の大サイズの、あるいは高解像度の画像が出力される。
【００５２】
画像センサ２が撮像したワーク９の画像データが画像処理装置６に転送されると上述のステップＳ１へ復帰する。ステップＳ１では、画素選択手段３はシーケンス制御装置７からの入力待ち状態に、また画像センサ２および出力選択手段４は出力オフ状態に切り換えられる。
【００５３】
以下、図３以降を参照して、図２のステップＳ３において、画素選択手段３の制御により移動体検出手段５の検出対象として画像センサ２に出力させる抽出領域２０１の構成例につき説明する。
【００５４】
図３（ａ）〜（ｃ）は画素選択手段３の画素選択処理によって、移動体検出手段５の検出対象として画像センサ２に出力させる抽出領域２０１の異なる構成をそれぞれ示している。図３（ａ）〜（ｃ）（あるいは図４以降も同様）において、参照符号の２００は画像センサ２によって撮像される有効な撮像範囲（全画角）を示している。
【００５５】
また、図３（ａ）〜（ｃ）において、矢印３０ａは図１と同様にロボットアーム８によるワーク９の搬送方向を示している。なお、以下の各図では、ワーク９は例えばリング（環）状の物体として示してあるが、このワーク９の形状はあくまでも一例であり、本発明の構成要素ではない。また、以下の各図では、ワーク９のその円周をほぼ４等分した位置にボルト、スタッド、突起などの構造物に対応する小さい円を図示してあるが、この図示も単にワーク９の姿勢や位相を示すためのもので、同様に本発明を構成する要素ではない。
【００５６】
図３（ａ）〜（ｃ）において、抽出領域２０１は斜線によって示した範囲である。図３（ａ）の抽出領域２０１は、ワーク９が移動すると予測される範囲を切り出す場合に設定されるもので、抽出領域２０１は撮像範囲２００中にほぼワーク９の幅（直径）に相当する幅（図中上下方向）で、移動方向に対して帯状に設定されている。
【００５７】
なお、撮像範囲２００中に示したワーク９の大きさと、それに対応する抽出領域２０１の大きさはあくまでも一例であり、撮像装置１の撮影距離や撮像光学系２０の撮影倍率によって適宜決定すべきものであるのはいうまでもない。このことは、以下の説明においても同様である。
【００５８】
図３（ａ）において、抽出領域２０１は撮像範囲２００中で比較的大きな領域を占めており、移動体検出手段５のソフトウェアが抽出領域２０１を解析する場合には比較的多数の画素データにアクセスしなければならない。このような場合には、斜線で示した抽出領域２０１として、全面積中の画素を全て出力する必要はなく、例えば前述のような画素の間引き出力を行うことができる。画像センサ２を構成するデバイスによっては、この画素の間引き出力を行うモードを用いることができる場合がある。このような間引き出力を行うことにより、図３（ａ）のように抽出領域２０１を比較的大きな面積に渡り設定する場合でも、その範囲の全画素を画像センサ２から出力する必要がなく、画像データ転送レート（例えばフレームレート）を向上させることができる。また、移動体検出手段５を構成するソフトウェアの負担も小さくて済み、その位置検出周期も向上できることから、高精度にワークが画像処理に最適な撮像位置に来たことを検知できる。
【００５９】
また、本実施例において、移動体検出手段５を構成するソフトウェアによりワーク９を移動体検出する場合、その目的は画像処理装置６が行う画像処理で必要な部位を撮像する撮像位置手前へワーク９が到達したことを検出することである。従って、必ずしも抽出領域２０１の出力画角内に例えばワーク９の幅がすべて含まれている必要はなく、従って、例えば図３（ｂ）のようにワーク９が通過する領域の一部に抽出領域２０１を設定することもできる。その場合、抽出領域２０１の大きさは、例えば移動体検出手段５が抽出領域２０１の画素データを用いて確実にワーク９（の位置）を検出できる程度の画素を含む大きさに設定する必要がある。
【００６０】
図３（ｂ）のような抽出領域２０１の設定でも、例えば移動中のワーク９の前端（図中右側）が検出できれば、ワーク９の位置も推測できる。従って、抽出領域２０１はこの前端位置の検出に充分な幅（図中上下方向）に取れば抽出領域２０１から出力される画素数を低減でき、移動体検出手段５を構成するソフトウェアの負担を軽減できる。また、高い転送レートで抽出領域２０１の画素を転送することができ、従って移動体検出手段５の検出周期も大きく取れるため、移動体検出手段５によって高精度にワーク９の位置を検出することができる。
【００６１】
なお、使用しているセンサがＣＣＤセンサの場合は、水平方向にライン（行）単位で画素を選択し、切り出すことしかできない場合が多いが、ＣＭＯＳセンサの場合は一般に任意位置サイズの切り出しが可能であることが多い。このため、図３（ｃ）に示すようにワーク９の撮像位置手前への到達を検出するのに必要ない領域を抽出領域２０１から除いて設定することもできる。
【００６２】
図３（ｃ）では、抽出領域２０１の幅（図中上下方向）は図３（ｂ）と同じであるが、撮像範囲２００中、抽出領域２０１は矢印３０ａで示される方向でワーク９が進入してくる側（図中左側）にのみ配置している。図３（ａ）〜（ｃ）において、ワーク９は撮像範囲２００の中央に図示してあるが、例えばこの位置は画像処理装置６に転送する画像の撮像位置である。そして、図３（ｃ）の抽出領域２０１は、撮像範囲２００のワーク９の進入側の左端から撮像範囲２００の中央の撮像位置においてワーク９の像をほぼカバーできるような長さに取られ、図中右側のワーク９の搬出側は省略されている。
【００６３】
このように、図３（ｃ）の如く、ワーク９の所定の撮像位置への到達の検出に必要のない移動方向に対して、撮像位置より先（図中右側）の画素を出力しないように画素選択手段３で設定することができる。図３（ｃ）のように設定された抽出領域２０１によれば、図３（ｂ）よりもさらに画素データ転送量と転送レートを向上させることができ、移動体検出手段５による検出周期およびその検出精度を向上させることができる。
【００６４】
以下では、例えばＣＰＵ２１のソフトウェアによって構成される移動体検出手段５の処理例につき説明する。
【００６５】
図４（ａ）、（ｂ）、（ｃ）は、ワーク搬送中の画像センサ２の時刻ｔｌ、ｔｍ、ｔｎでの出力画素とその水平方向の列画素輝度をそれぞれ示している。抽出領域（２０１）に相当する水平な５ライン（ａ〜ｅ）分に渡り、画像センサ２が撮像したアナログ画像信号を示している。また、図４（ａ）〜（ｃ）の左側は画素の輝度をハッチングにより示し、右側はそれに対応する輝度をグラフ表示で示している。なお、ここで画像センサ２は水平方向にスキャンされた後、次の行のスキャンを行うよう動作し、水平スキャン方向とワーク９の搬送方向が一致するように配置されている。画像センサ２は、各ライン（ａ〜ｅ）上に画成された画素座標からその位置における各ライン（行）上の輝度値を出力する。
【００６６】
図４（ａ）〜（ｃ）において、時系列はｔｌ＜ｔｍ＜ｔｎであり、ｔｌの方が古く、ｔｎの方が新しい画像データに相当する。図４（ａ）の時刻ｔｌはワーク９が画角の端に到達した時刻、また、図４（ｃ）の時刻ｔｎは、所定の撮像位置の近傍にワーク９が到達した時刻にほぼ相当する。図４（ｂ）の時刻ｔｍは時刻ｔｌ〜ｔｎの中間の時刻に相当する。
【００６７】
画像センサ２からの出力情報は上記のような態様で得られるが、移動体検出手段５のソフトウェアによって所定の撮像位置手前にワーク９が到達したことを検出するには、以下のようにいくつかの検出方法が考えられる。
【００６８】
なお、下記の検出処理は、抽出領域２０１中の画像データに対して実行される。抽出領域２０１の画像データ中の各画素は、画像メモリ２２の例えば行（ライン）および列（コラム）の２次元アドレスを介してその位置（座標）を特定できるものとする。
【００６９】
＜検出方法その１＞
１−１）移動体が存在しそうな位置として、ラインごとに輝度変化が大きい位置を検出する。
【００７０】
１−２）その中で最も進行方向よりのラインのエッジ（列）位置と、あらかじめ求めておいたワーク９が計測するための最適位置にあるときのワーク９の先端位置を比較する。
【００７１】
１−３）上記の比較の結果、差異が所定の値より小さければ、最適位置と判断する。
【００７２】
＜検出方法その２＞
２−１）ラインごとに輝度変化が大きい位置、すなわち移動体が存在すると思われる位置を検出する。
【００７３】
２−２）その中で最も進行方向よりのラインのエッジ（列）位置と、進行方向と反対よりのラインのエッジ（列）位置を求めその中点を計算する。
【００７４】
２−３）上記により求めた中点とあらかじめ求めておいた計測するためのワーク９が最適位置にあるときのワーク位置の中点を比較する。
【００７５】
２−４）上記の比較の結果、上記の差異が所定の値より小さければ、最適位置と判断する。
【００７６】
＜検出方法その３＞
３−１）検出方法その２で示した先端と後端の中点を求める代わりに、先端と後端のエッジ間隔が最も広いラインの重心位置を求める。ここで水平ライン上の重心位置は画像データの輝度分布を介して取得することができる。この重心位置は、例えばｎ列目の画素輝度とその列位置ｎを用いて
Σ（（ｎ列目の画素輝度）Ｘ（列位置ｎ））／Σ（ｎ列目の画素輝度）  …（１）
と求めることができる。
【００７７】
３−２）上記により求めた重心と、あらかじめ求めておいた計測するためのワーク９が最適位置にあるときのワーク位置の重心を比較する。
【００７８】
３−３）上記の比較の結果、上記の差異が所定の値より小さければ、最適位置と判断する。
【００７９】
移動体検出手段５によるワーク９の位置検出においては、取りこぼしを防ぐためワーク位置検出の頻度を高めたいので、画像取得間隔の間に終了するためにできるだけ計算量の少ない処理が望ましい。その意味においては、上記の３つの検出方法はいずれも計算量が比較的少なく、また画像センサ２の水平スキャンと同期して逐次演算が可能であり、所定の撮像位置手前にワーク９が到達したことを検出するために適している。画像センサ２から画像データが出力される間隔の間で、ほぼリアルタイムに最適位置を検出することができる。
【００８０】
なお、上記の移動体検出手段５の行なう検出方法はあくまでも一例であり、移動体検出手段５によるワーク９の撮像位置検出方式の細部は当業者において適宜変更することができる。例えば、移動体検出手段５のソフトウェアを実行するＣＰＵ２１の画像処理能力が高い場合には、より高度な２次元パターンマッチングなどの相関計算をリアルタイムに実施し、ワークの特定の形状を検出する手法を採用することもできる。
【００８１】
以上のようにして、本実施例によれば、外部センサなどの付加的な要素を必要とせず移動体としてのワーク９の位置検出を行い、撮像装置１により最適な位置でワーク９を撮像し、その画像を画像処理装置６に送出することができる。特に、本実施例においては、移動体検出時、および画像処理時に用いるワーク９の画像を、いずれも同一の撮像光学系２０、および同一の画像センサ２を介して取得することができる。このため、非常に高精度にワーク９の撮像位置を決定することができる。
【００８２】
なお、撮像位置を精密に決める必要がある用途としては、照明装置（不図示）によりスポット照明光を照射し、正反射を用いて撮像装置１によってワーク９の画像を撮像する検査計測の用途が考えられる。図５（ａ）、（ｂ）は、このようなスポット照明光を照射し、正反射を用いて図１の撮像装置１によってワーク９の画像を撮像する様子を示している。図５（ａ）、（ｂ）において、円形のスポット照明光によって撮像装置１により正反射成分で構成された画像を撮像できる正反射撮像領域Ｒは円形の破線で示してある。この円形の正反射撮像領域Ｒは、例えば撮像光学系２０前方の所定の撮像位置において、撮像光学系２０の光軸とほぼ中心が一致するように設定される。また、図５（ａ）、（ｂ）において、スポット照明光によって照明されたワーク９はハッチング以外の部分として図示されており、その周囲のハッチングの部分はスポット照明光の当っている物体が存在しない範囲で暗く撮像される。
【００８３】
このような撮像方式では、正反射領域と所定の位置を少しでも外してしまうとワーク９の全体が図５（ｂ）に示すように明い像として撮像されなくなってしまう。これに対して、図５（ａ）のように、正反射撮像領域Ｒがカバーする所定の撮像位置にワーク９が存在する場合は、ワーク９のディテールも含めて画像センサ２で撮像でき、その画像データを画像処理装置６に転送することができる。しかしながら、図５（ｂ）のような撮像状況では、ワーク９の画像全体が画角内に収まっているが、ワーク９上のディテールは正反射撮像領域Ｒから幾分外れており、例えば画像処理装置６正確な検査計測は不可能である。
【００８４】
本実施例によれば、図３（ａ）〜（ｃ）に示したような抽出領域２０１のいずれの設定においても、ワーク９の撮像位置手前への到達を高精度に検出することができる。そして、特に、正反射撮像を行う場合でも図５（ｂ）のような画像が取得されることを確実に防止することができる。
【００８５】
なお、撮像装置１を構成するハードウェア部材の選定によっては、画素選択手段３が画像センサ２の選択画素を切り替える速度が問題になる場合がある。その場合には、例えば抽出領域２０１の大きさや位置、画素数などを適当に設定することにより位置検出のための撮像フレームレートを上げることで対応が可能である。
【００８６】
また、上述のように、移動体検出手段５は、ワーク９の所定の撮像位置手前の位置への到達を検出するが、この「手前」の位置をどれだけ（例えば何ピクセル）手前に取るか、ということが問題となる場合がある。上述の説明では、移動体検出手段が所定の撮像位置の手前を検出したら、直ちに画像センサ２の読み出しモード切り換えと、出力選択手段４による転送方向の切り換えを行うものとしている。この条件では、移動体検出手段５による検出位置は、所定の撮像位置よりも上記の読み出しモード切り換えと、転送方向の切り換えに必要な遅延時間にワーク９（の像）が移動する量（例えばピクセル数）だけ「手前」に取っておけばよい、ということになる。その場合、例えば、読み出しモード切り換えと、転送方向の切り換え終了が何らかの理由によって余計に遅延する可能性を考慮して、「手前」の量を大目に見積もってもよい。あるいは、十分小さな回路遅延を見込めるなどの場合には、「手前」の量を０に取って、移動体検出手段５が撮像位置自体を検出するようにしてもよい。このように、回路遅延時間に対応して、移動体検出手段５による検出位置をどれだけ「手前」に取るかは、設計条件やシステムの仕様に応じて当業者が適宜決定してかまわない。また、より厳密な撮像位置制御が必要な用途、例えば検査計測では、移動体検出の位置を読み出しモードおよび転送方向の切り換え時間内のワーク９（像）の移動量よりもさらに余計に「手前」に取っておく、といった措置を講じることができる。また、そのような撮像位置制御が厳密な用途では、移動体検出を行う抽出領域２０１を所定の撮像位置よりもかなり余裕をもってワーク９の進入側手前に設定するような措置を講じてもよい。上記のような移動体検出手段５の検出位置や、抽出領域２０１の設定範囲による調整は予めワーク９の移動速度や回路が必要とする読み出しモードおよび転送方向の切り換え時間を勘案して行うことができる。
【００８７】
なお、図２に示した制御手順において、ワークが１種類の場合は、図２の手順Ｓ６から手順Ｓ１へ戻るのではなく、直接、手順Ｓ３へダイレクトに復帰するような制御を行なっても良い。このような制御切り換えにより、１種類のワークを高速に搬送している場合などにおいて、ワーク９の待ち受け状態での画素選択状態を切り替える必要がないため、高速なシーケンスを実行可能となりスループットを向上させることができる場合がある。
【００８８】
以上のようにして、本実施例によれば、撮像装置以外の付加的な計測装置を必要とせず、対象物であるワークの移動を止めることなく、高速に、また安定して最良の撮像位置でワークを自動的に撮影し、その画像データを画像処理装置に転送することができる。また、本実施例によれば、従来技術では画像処理装置の画像処理で行うようなワークの位置検出を、撮像装置１の画像センサ２の転送制御を利用し、小さな抽出領域２０１を設定することにより実現している。このため、画像処理およびそれに基づくワークの姿勢（位相）や搬送制御、あるいは製品検査などの処理効率を大きく向上できる、という優れた効果がある。
【実施例２】
【００８９】
図６は本実施例における撮像制御手順を示している。本実施例では、差分画像演算を行い、生成した差分画像に対して、移動体検出を行う。
【００９０】
図６は、図２の前半部の処理を置き換えるフローチャートで、本実施例の撮像制御手順が前提とするハードウェア構成は第１実施例において図１に示したものと同じでよい。従って、以下では部材名や機能ブロックの参照符号には第１実施例と同じものを用いる。図６の制御手順は、上述同様に例えば撮像装置１のＣＰＵ２１が実行する制御プログラムとしてＲＯＭ２３などに格納しておくことができる。
【００９１】
ステップＳ１１において、ＣＰＵ２１はシーケンス制御装置７からのワーク搬送開始信号が入力されているかを判定する。ワークが搬送開始されるまではこの状態で待機する。
【００９２】
ステップＳ１２では、ワーク搬送が開始された直後において、撮像装置１の画角にワーク９（ないしそれを把持したロボットアーム８など）が進入していない状態の画像を撮像し、その画像データを参照画像として画像メモリ２２の所定領域に記憶する。この時、画素選択手段３による画像センサ２の出力領域の指定は、例えば図３（ａ）〜（ｃ）などに示した抽出領域２０１のいずれかと同じにしておく。これにより、抽出領域２０１の部分の画像データが参照画像として画像メモリ２２に記憶される。
【００９３】
なお、この時、参照画像として画像メモリ２２に記憶させるのは、画像センサ２の撮像範囲２００の全画面領域でもよく、また、画像処理装置６に転送すべき位置、サイズの領域でも良い。しかしながら、後述のステップＳ１３〜Ｓ１５を通じて移動体検出手段５による移動体検出は第１実施例と同様に、抽出領域２０１の部分に対してのみ行うため、参照画像として記憶させるのは抽出領域２０１の部分のみで充分である。
【００９４】
図７（ａ）〜（ｄ）は、本実施例において画像センサ２で撮像される画像の例を示している。図７（ａ）〜（ｄ）では、理解を容易にするため、敢えて抽出領域２０１を示さず、画像センサ２の撮像範囲２００の全画面領域の画像を示している。
【００９５】
図７（ａ）はステップＳ１１で画像メモリ２２に記憶されるワーク９が到来していない状態で撮像された参照画像の例で、画面中には搬送空間３０の背景（円形、矩形、３角形などにより模式的に図示）が写り込んでいる。これに対し、ワーク９が画像センサ２の画角に進入してくると、ワーク９は図７（ｂ）のように撮像される。この図７（ｂ）の撮像状態のままだと、背景の写り込みによって移動体検出において誤認識を生じ、ワーク９の位置検出に誤差を生じる可能性がある。
【００９６】
ここで、図７（ａ）の参照画像と、図７（ｂ）のワーク９の進入時の画像に対して、例えば両者の画像の画素ごとに画素値（例えば輝度値）を減算することなどによって差分画像演算を行う。この差分画像演算により、図７（ｄ）のように図７（ｂ）の画像にしか存在しないワーク９の部分のみを画情報として有する図７（ｄ）のような差分画像を生成することができる。このとき、背景部分に関しては図７（ａ）、（ｂ）いずれの画像にも存在するため、一方、ワーク９がまだ進入していない段階では、図７（ａ）の参照画像と実質的に同じ画像が撮像される。この画像と図７（ａ）の差分を取ると、図７（ｃ）のように参照画像に写っている背景の画情報はほぼ全てキャンセルされる。上記のような差分画像演算を移動体検出前に介在させることによって、外乱情報として作用する可能性のある例えば背景の画情報を除去でき、移動体検出における誤認識の可能性を低減し、より確実にワーク９の撮像位置手前への到達を検出することができる。
【００９７】
図６において、上に概略を示した差分画像演算は、ステップＳ１３において実行される。ステップＳ１３では、まず画素選択手段３によって参照画像と同様に設定された抽出領域２０１の設定で、画像センサ２の撮像画像データを新しく読み出す。そして、画像メモリ２２に格納されている抽出領域２０１に対応する大きさの参照画像と、同じ抽出領域２０１の設定で画像センサ２から新しく読み出した画像データとの差分画像を生成する。差分画像の生成は、参照画像と、画像センサ２から新しく読み出した画像データが格納されている画像メモリ２２のそれぞれ対応する画素アドレスの画素値（例えば輝度値）どうしの減算演算によって行える。このような差分画像演算は、単純な減算演算によって行うことができ、低演算コストで高速に実行できる。生成された差分画像は予め差分画像のために割り当てておいた画像メモリ２２の所定領域に格納する。
【００９８】
そして、ステップＳ１４において、ステップＳ１３で生成した差分画像に対して移動体検出手段５による移動体検出処理を行なう。この移動体検出処理は、第１実施例で説明したのと同様の手法により実施することができる。差分画像は、画素選択手段３によって設定された抽出領域２０１の部分の大きさで生成されるため、第１実施例で説明した通り、極めて高速に実行することができる。
【００９９】
続くステップＳ１５は図２のステップＳ４に該当する処理で、ステップＳ１４で検出したワーク９の位置が、所定の撮像位置に一致しているか否かを判定する。ここでワーク９の現在位置と、所定の撮像位置の差異が所定の値より大きければステップＳ１３に復帰する。ステップＳ１３では、また新しく画像センサ２から抽出領域２０１の部分の画像データを取得し、その画像で差分画像が生成される。
【０１００】
一方、ステップＳ１５において、ワーク９の現在位置と、所定の撮像位置の差異が所定の値以内であれば最適位置と判断する。この場合は、図２のステップＳ５の処理に移行する。ステップＳ５では、第１実施例で説明した通り、画像センサ２の出力モードを画像処理装置６の画像処理に必要な所定の撮像サイズに相当する画素領域の画素を出力するよう切り換える。また、出力選択手段４を構成するインターフェース回路２５の制御により、画像センサ２の出力を画像処理装置６側に送出させるように切り換える。そして、図２のステップＳ６において、画像処理装置６に対してその画像処理に必要な所定の撮像サイズに相当する画素領域の画像データを転送する。
【０１０１】
以上のようにして、画素選択手段３の設定する抽出領域２０１に紛らわしい構造物や背景の画像が写り込むような環境においても、このような移動体検出に関して外乱として作用するようなノイズ情報を移動体検出処理の前に取り除くことができる。第１実施例に記載した制御のみ実施する場合には被写界深度をワークのみに合うよう設定したり照明を工夫して背景を写さないようにする必要があった。しかしながら、本実施例の差分画像演算を利用する手法ではそのような配慮をほぼ不要とし、より確実かつ高い信頼性でワーク９の位置検出を行うことがきる。そして、撮像装置１により最適な位置でワーク９を撮像し、その画像を画像処理装置６に送出することができる。
【０１０２】
なお、以上の説明では、ステップＳ１２において、ワーク９の搬送が開始された直後の画像を参照画像として取得している。このようにワーク９の搬送開始後、（毎回）参照画像を取得すれば、照明条件や機構配置などに関わる経時変化や環境変化に対応することができ、ワーク９の背景に相当する外乱情報を確実に除去できる。しかしながら、図１に示したような装置全体の照明条件や機構配置などに関わる経時変化や環境変化が小さいと認められるような場合には、ステップＳ１２の参照画像取得は、実際の生産ライン稼働時とは異なるオフライン状態で実行しておくようにしてもよい。そして、その後、実際にワーク９を取り扱う生産ラインの稼働時は、同じ参照画像を使い続けるようにしてもよい。その場合、ステップＳ１２の参照画像取得は、例えば、生産ラインの主電源投入に伴なう初期化時などに行う手法が考えられる。
【０１０３】
なお、上記のように生産ライン稼働時とは異なるオフライン状態で参照画像を取得する構成は、オンライン状態では必ずワーク９やロボットアーム８などの搬送手段が撮像装置１の画角内の一部に入ってしまうような環境における実施に適している。そのような環境では、オンライン状態では参照画像取得が困難である可能性がある。しかしながら、オフライン状態で参照画像を取得する構成によれば、本実施例で必要な参照画像を確実に取得でき、より確実かつ高い信頼性でワーク９の位置検出を行うことがきる。
【実施例３】
【０１０４】
本実施例は、画素選択手段３により抽出領域２０１を指定して行なう移動体検出手段５による移動体検出の処理過程ないしその結果を利用して、画像処理装置６に転送する画像の範囲を決定する技術に関するものである。
【０１０５】
本実施例でも、実施例１および２と同様、ハードウェア構成は図１のものを利用できる。本実施例は、画像センサ２に、例えば行、列方向に部分画像領域の切り出し出力を指定できるＣＭＯＳセンサのようなイメージセンサを用いる場合に、特に好適に実施することができる。
【０１０６】
画素選択手段３により抽出領域２０１を指定して行なう移動体検出手段５による移動体検出の処理手順それ自体は、第１または第２実施例で説明した図２または図６に示した処理手順をそのまま利用できる。
【０１０７】
画像処理装置６に転送する画像の範囲を決定するステップは、図２のステップＳ５に相当する。このステップにおいて、第１および第２実施例では、画像処理装置６に対する画像データ転送においては、画素選択手段３によって、画像処理装置６に出力すべき所定の出力フォーマットに相当する転送領域に切り換える旨、説明した。しかしながら、本実施例では、その前段階で画素選択手段３により抽出領域２０１を指定して行なう移動体検出手段５による移動体検出の処理過程ないしその結果を利用して、画像処理装置６に転送する画像の範囲を決定する。
【０１０８】
以下、図８以降を参照して、本実施例において、画像処理装置６に転送する画像の範囲を決定する手法を説明する。
【０１０９】
図８は、第１または第２実施例で説明した手法によって、ワーク９が所定の撮像位置手前に到達していることを検出した時点、すなわち、画素選択手段３による画像読み出し領域の切り換え直前の時点で画像センサ２上に写っているワーク９を示している。ここで、図８において、ワーク９の移動方向に対して最も右側の先端の列（コラム）位置をＦ、最も左側で後端の列位置をＢ、それらを検出した画像上の行（ライン）位置をＫとする。これらのＦ、Ｂ、Ｋの各位置は例えば画像メモリ２２中の座標に相当し、例えば行（ライン）、列（コラム）方向のピクセルを単位で表現されるものとする。
【０１１０】
また、この例では、画素選択手段３は移動体検出のため、画像センサ２からの読み出し範囲として、斜線で図示した抽出領域２０１が設定されているものとする。本実施例では、上記の抽出領域設定を利用して、画像処理装置６に転送すべき画像を切り出す範囲を決定する。
【０１１１】
図９は、画素選択手段３の制御によって画像処理装置６に転送すべき画像を切り出す転送範囲２０４の一例を示している。図９は最も単純な方法で、上述した移動体検出によって取得したワーク９の先端の列位置（Ｆ）と後端の列位置（Ｂ）を利用する。すなわち、画素選択手段３で画像センサ２の出力範囲として列Ｂから列Ｆ＋ＦＦまでの転送範囲２０４を指定し、この範囲（図９の斜線の範囲）の画像を画像処理装置６に転送する。
【０１１２】
図９において、ＦＦは列Ｆアドレスにワーク９の移動を考慮して余裕を取るためのマージンで、例えば画素選択手段３の出力範囲切り換えに伴い発生する時間δｔの間にワーク９（破線）が移動すると予測される幅に対して余裕をもったピクセル幅に定める。このＦＦの量は、あらかじめワーク９の予測速度から求めておいてもよい。あるいは、ワーク９の移動速度は例えば画像センサ２のアクセスに用いられるクロックなどを基準として移動体検出処理中に実測することもできる。例えば、ワーク９の移動速度は、抽出領域２０１に対する移動体検出においてあるタイミングで検出されたワーク９の前端の位置と、その直前のタイミングで検出された前端の位置、および上記クロックに基づく計時情報から計算できる。
【０１１３】
上記のように撮像範囲に進入してくるワーク９の先端側に、ワーク速度や画素選択手段３の出力範囲切り換えに必要な時間δｔに基づいてＦＦのピクセル幅のマージンを取っておくことにより、確実にワーク９を転送範囲２０４中に捉えることができる。すなわち、ワーク９先端の列位置（Ｆ）、後端列位置（Ｂ）を検出してからδｔ秒後の切り出し時の先端列位置をＦ’、後端列位置をＢ′とすると、
Ｆ’＜Ｆ＋ＦＦ  かつ  Ｂ’＞Ｂ  …（２）
が満たされる。特に、Ｆ、Ｂは移動体検出において検出されたワーク９の前端と後端の検出情報に基づき取得したピクセル位置であるから、図１０に示すように転送範囲２０４中で、ライン幅方向にはほぼワーク９の画像情報のみが含まれることになる。そして、この転送範囲２０４の部分のみを画素選択手段３により指定して画像センサ２から画像処理装置６に画像データを転送することによって、画像データの転送効率を大きく向上することができる。
【０１１４】
上記の転送制御によって、すなわち、図１０（ないし図９）に示すように、ライン方向には切り出し画像の列Ｂから列Ｆ＋ＦＦの間にほぼワーク９の画像を解析するに充分な幅のみでワーク９が写っている部分のみを画像処理装置６に転送できる。従って、出力領域や解像度の切り換えが遅い、あるいは画素出力速度の遅いイメージセンサを画像センサ２に用いている場合などにおいても、効率よく画像を切り出し、画像処理装置６に転送することができる。なお、例えばワーク９の移動速度に対して切り出し範囲や解像度の切り換えが十分速いイメージセンサを画像センサ２に用いている場合は上記のマージン幅であるＦＦをより小さく設定することができる。そのような高性能のイメージセンサを用いている、あるいはワーク９の速度が比較的遅い、などの条件によっては、マージン幅であるＦＦの値は、０または１ピクセル程度とすることができる。
【０１１５】
図１１（ａ）、（ｂ）は、画像処理装置６に転送する転送範囲２０４に関し、さらに行方向にも制限を加えて転送範囲２０４のサイズをさらに小さくした例を示している。
【０１１６】
図１１（ａ）において、図中のＷ（Ｗ／２＋Ｗ／２）は画像上のワーク９の像高が収まるように定めた画像上の行（ライン）数に相当する。このＷ（Ｗ／２＋Ｗ／２）は、ワーク９の実寸、撮像光学系２０の倍率の他、さらにばらつきや撮像誤差などを考慮し、最もワーク９が大きく写ると想定される像高（行数）に適当なマージンを加えた量である。特に、図示のようにワーク９が円形の外周を有し高さおよび幅が等しく撮像されることが判っている場合には、上記のＷ（またはＷ／２）の値は、上記の移動体検出において検出したＦ、Ｂの各位置間の距離に基づき決定することもできる。転送行（ライン）数であるＷの指定は、移動体検出で検出した画像上のワーク前端位置の座標（Ｆ、Ｋ）に対応する行（ライン）Ｋに対してＫ−Ｗ／２からＫ＋Ｗ／２の範囲の行を切り出すよう画素選択手段３によって転送範囲を指定することにより行える。
【０１１７】
また、上記のＦ、Ｂの各位置については、図８〜図９で説明したのと同様に移動体検出において検出したワーク９の前端および後端の位置情報を利用して決定する。画素選択手段３によって、図１１（ａ）のような転送範囲２０４を設定して画像センサ２から画像処理装置６に画像データを転送させることによって、画像処理装置６への転送効率を図９、図１０の例よりもさらに向上することができる。
【０１１８】
なお、上下非対称なワークの場合や、ワークが画面内である位相範囲で回転した状態で撮像されることがあらかじめ判明している場合には、転送範囲２０４の高さ方向の大きさを図１１（ｂ）のよう決定することが考えられる。図１１（ｂ）において、Ｗ１、Ｗ２は、ワーク９の前端（列位置はＦ）および後端（列位置はＢ）を検出したラインから、それぞれ上方および下方に向かって最もワーク９が大きく写ると想定される範囲の行（ライン）数に相当する。このようなＷ１、Ｗ２の値は、それぞれワーク９の実寸、撮像光学系２０の倍率の他、撮影時のワーク９の位相にさらにばらつきや撮像誤差などを考慮して決定することができる。そして、ワーク９の前端（列位置はＦ）および後端（列位置はＢ）を検出したラインから、それぞれ上方および下方に向かってＷ１、Ｗ２だけ離れた上端および下端ラインを求め、この上端から下端ラインまでの間を転送範囲２０４の高さ方向の範囲とする。
【０１１９】
また、Ｆ、Ｂの各位置については、上記同様に移動体検出において検出したワーク９の前端および後端の位置情報を利用して決定する。このように、移動体検出によりワーク９の撮像位置手前への到達を検出した時のワーク９の位置情報を利用し、画素選択手段３によって図１１（ｂ）のような転送範囲２０４を設定する。そして、この転送範囲２０４の画像データを画像センサ２から画像処理装置６を転送させることによって、画像処理装置６への転送効率を著しく向上することができる。
【０１２０】
なお、図１１（ｂ）において、撮像時のワーク９の実際の位相（姿勢）が不明である場合、上記のライン数情報であるＷ１、Ｗ２は、ワーク９の位相（姿勢）を推測することによって決定するようにしてもよい。ワーク９の位相（姿勢）は、例えば、ワーク９の前端（Ｆ）および後端（Ｂ）を検出したライン間の距離（ライン数）などを利用して推定できる。例えば、あらかじめ粗く定めておいたＷ１、Ｗ２の値を、ワーク９の前端（Ｆ）および後端（Ｂ）を検出したライン間の距離（ライン数）の大きさに応じた求めた乗数を適宜乗算することによって調整する、といった手法を用いてもよい。
【０１２１】
なお、多くのＣＣＤセンサのように列の切り出しを行えず、ライン単位でのみ出力領域を指定できるイメージセンサを画像センサ２として用いている場合には、画素選択手段３によって図１２のような転送範囲２０４を設定してもよい。図１２では、図１１（ａ）で説明した、ワーク９の像高に相当するＷ（ワーク９の前端および後端を検出したラインの上下Ｗ／２＋Ｗ／２）の範囲のラインを出力するよう転送範囲２０４（斜線）を設定している。このような転送範囲２０４の設定により、ライン単位でのみ出力領域を指定できるイメージセンサを画像センサ２に用いる場合でも、画像処理装置６への転送効率を向上することができる。
【０１２２】
以上のように、本実施例によれば、移動体検出によりワーク９の撮像位置手前への到達を検出した時のワーク９の位置情報を利用し、画素選択手段３によって画像処理装置６へ転送すべき画像データの転送範囲２０４を設定している。そして、この転送範囲２０４の画像データを画像センサ２から画像処理装置６を転送させることによって、画像処理装置６への転送効率を著しく向上することができる。本実施例によれば、画像処理装置６への画像データの転送量を削減できるので、例えばインターフェース回路２５に通信の性能が高くないデバイスを用いている場合でも画像処理全体に係わる遅延を少なくすることができる。従って、画像処理装置６の画像処理を利用したワーク９の姿勢制御や検査を高速かつ確実に実施できる、という優れた効果がある。
【０１２３】
以上、３つの実施例を示したが、本発明の撮像制御は、ロボット装置などを搬送手段として用い、対象物としてのワークを移動させながら撮像し、撮像した画像に対する画像処理に基づき工程を制御する生産システムにおいて好適に実施することができる。なお、上記各実施例の撮像制御は、撮像装置１のＣＰＵ２１により実行するようになっており、本発明の各制御機能を実現するソフトウェアのプログラムは例えば上述の通りＲＯＭ２３に予め格納しておくことができる。また、本発明を実施するための撮像制御プログラムは、コンピュータ読み取り可能な記録媒体であれば、いかなる記録媒体に記録されていてもよい。本発明を構成するプログラムは、予めＲＯＭ２３に格納しておく他、撮像装置１に対して何らかのコンピュータ読み取り可能な記録媒体を用いて供給することができる。その場合、プログラムを供給するためのコンピュータ読み取り可能な記録媒体としては、例えば各種フラッシュメモリデバイス、着脱式のＨＤＤやＳＳＤ、光学ディスクなど、任意の外部記憶デバイスを用いることができるのはいうまでもない。いずれにしても、コンピュータ読み取り可能な記録媒体から読み出された撮像制御プログラム自体が上述した実施例の機能を実現することになり、その場合プログラム自体、ないしそのプログラムを記録した記録媒体も本発明を構成することになる。
【０１２４】
なお、以上では、ワークの搬送手段としてロボットアームを用いる構成を例示したが、他の搬送手段、たとえばベルトコンベアなどがワークの搬送手段に用いられる場合でも、上述と同様のハードウェア構成および撮像制御を実施できるのはいうまでもない。
【符号の説明】
【０１２５】
１…撮像装置、２…画像センサ、３…画素選択手段、４…出力選択手段、５…移動体検出手段、６…画像処理装置、７…シーケンス制御装置、８…ロボットアーム、９…ワーク、２１…ＣＰＵ、２２…画像メモリ、２３…ＲＯＭ（プログラムメモリ）
【図１】
2015216482.tif 000003
【図２】
2015216482.tif 000004
【図３】
2015216482.tif 000005
【図４】
2015216482.tif 000006
【図５】
2015216482.tif 000007
【図６】
2015216482.tif 000008
【図７】
2015216482.tif 000009
【図８】
2015216482.tif 000010
【図９】
2015216482.tif 000011
【図１０】
2015216482.tif 000012
【図１１】
2015216482.tif 000013
【図１２】
2015216482.tif 000014