(57)【要約】【課題】  蓄積時間を一行読出し時間単位で制御を行うＣＭＯＳセンサのローリングシャッタ制御において、ユーザによって設定された蓄積時間が撮像装置内部で読出し時間単位に換算されても、設定に対する実際の蓄積時間を正確に把握することを可能とする撮像装置を提供する。【解決手段】  撮像装置は、ローリングシャッタ制御で撮像する撮像センサを含む撮像手段と、前記撮像センサの蓄積時間の設定値である第１の蓄積時間を特定するための信号を入力する入力手段と、前記第１の蓄積時間に基づく第２の蓄積時間で撮像を行うよう前記撮像手段を制御する制御手段と、前記第１の蓄積時間と前記第２の蓄積時間との差異時間情報を出力する出力手段を有する、ことを特徴とする【選択図】  図１
2016082495.tif 000002
【特許請求の範囲】
【請求項１】
ローリングシャッタ制御で撮像する撮像センサを含む撮像手段と、
前記撮像センサの蓄積時間の設定値である第１の蓄積時間を特定するための信号を入力する入力手段と、
前記第１の蓄積時間に基づく第２の蓄積時間で撮像を行うよう前記撮像手段を制御する制御手段と、
前記第１の蓄積時間と前記第２の蓄積時間との差異時間情報を出力する出力手段を有する、
ことを特徴とする撮像装置。
【請求項２】
前記入力手段には、前記第１の蓄積時間が入力され、
前記撮像装置は、前記第１の蓄積時間に基づき第２の蓄積時間を設定する設定手段を有する、
ことを特徴とする請求項１に記載の撮像装置。
【請求項３】
前記入力手段は、設定する蓄積時間の長さの時間の開始を示す開始信号と終了を示す終了信号が入力される、ことを特徴とする請求項１に記載の撮像装置。
【請求項４】
前記開始信号から前記終了信号までの間の時間を計時する計時手段を備え、
前記設定手段は、前記計時手段で計時された時間を前記第１の蓄積時間とする、
ことを特徴とする請求項３に記載の撮像装置。
【請求項５】
前記第２の蓄積時間と前記第１の蓄積時間との間の差分処理を行う演算手段を有し、
前記出力手段は、前記演算手段による差分処理で得られた値を前記差異時間情報として外部に出力する、
ことを特徴とする請求項１、２、４のいずれか１項に記載の撮像装置。
【請求項６】
前記開始信号が入力されてから前記撮像センサが蓄積状態に入るまでの第１の差異時間と、前記終了信号が入力されてから前記撮像センサが蓄積終了するまでの第２の差異時間の差を演算する演算手段を有し、
前記出力手段は、前記演算手段による差分処理の結果を前記差異時間情報として外部に出力する、
ことを特徴とする請求項３又は４に記載の撮像装置。
【請求項７】
前記入力手段はバルブシャッタである、ことを特徴とする請求項３、４、６のいずれか１項に記載の撮像装置。
【請求項８】
前記設定手段は、設定された読出し領域の一行読出しに必要な時間の整数倍となる時間を第２の蓄積時間として設定する、ことを特徴とする請求項１乃至３のいずれか１項に記載の撮像装置。
【請求項９】
前記設定手段は、前記第１の蓄積時間を、設定された読出し領域の一行読出し時間で除算した商の小数点第１位を丸め処理して得られた整数と前記一行読出し時間との積として得られた時間を第２の蓄積時間として設定する、ことを特徴とする請求項８に記載の撮像装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、撮像装置に関し、特にマシンビジョンカメラ等で蓄積時間を外部から細かく設定可能な撮像装置に関する。
【背景技術】
【０００２】
工場の製造ラインにおいて自動検査用の画像入力用の撮像装置が用いられてきている。これはマシンビジョンカメラとも呼ばれ、コンピュータ等の制御装置から撮像装置を操作し、被検物を撮影し、撮影画像をコンピュータに出力するものである。コンピュータでは撮影画像をソフトウェアで解析し、被検物に外観上の不具合が無いか自動で判断する。
【０００３】
液晶ディスプレイなどの検査などでは被検物を静止状態で低ノイズ画像を撮影し解析する様な要求がある。つまり、被検体の広い発光ダイナミックレンジでの発光確認のために、撮影の蓄積時間を細かく変更しながら繰り返し撮影を行い、検査をするが、低ノイズの画像が撮影出来れば撮影回数を減らすことが可能となり、検査時間が短縮されるからである。そして、蓄積時間設定も細かく設定可能な撮像装置であることも要求されている。
【０００４】
低ノイズ撮影を可能とするため、ＣＭＯＳセンサをローリングシャッタ制御で駆動する撮像装置が製品化されている。また、各種検査のニーズにより、特許文献１のような、撮影画面の中で被検物を撮影している一部の領域のみを読み出しする機能（部分領域読出し機能）が搭載されている撮像装置がある。また、特許文献２ではＣＭＯＳセンサのローリングシャッタ制御において蓄積時間を行読出し時間単位で設定可能な制御の技術が記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平９−２１４８３６号公報
【特許文献２】特許第５０１０６５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述の特許文献に開示された従来技術では、以下のような課題がある。
【０００７】
ＣＭＯＳセンサを特許文献２のようなローリングシャッタ制御において蓄積時間を行読出し時間単位で可変に制御した場合、検査工程設計者などのユーザが設定した蓄積時間通りに内部設定されない場合がある。例えば行読出し時間が３０マイクロ秒である場合に、ユーザが蓄積時間として５０マイクロ秒を設定した場合、カメラ内部での実蓄積時間は６０マイクロ秒で動作することになる。
【０００８】
これは検査システムの工程設計者などユーザにとっては、５０マイクロ秒で動作させているつもりで予備測定を行い、蓄積時間を例えば１マイクロ秒伸ばしてその変化を測定するとした場合、実蓄積時間が同じ６０マイクロ秒で動作していることを気付かず誤った判断をする可能性がある。
【０００９】
更に、特許文献１の様な一部領域読出しを併せ行うことで、行読出し時間が短くなり、蓄積時間の設定分解能が変化し複雑になる。例えば上記の設定蓄積時間５０マイクロ秒の状態で行方向１／２の一部領域読出し設定を行うことで、行読出し時間が１５マイクロ秒となったとすると、実蓄積時間は４５マイクロ秒で動作することになる。つまり、ユーザの設定した蓄積時間に対し実蓄積時間が行読出し時間によって変動してしまうことになる。
【００１０】
そこで、本発明の目的は、マシンビジョンカメラの実際に作動している実蓄積時間を工程設計者等ユーザが把握可能な撮像装置を提供することにある。
【課題を解決するための手段】
【００１１】
本発明の撮像装置は、ローリングシャッタ制御で撮像する撮像センサを含む撮像手段と、前記撮像センサの蓄積時間の設定値である第１の蓄積時間を特定するための信号を入力する入力手段と、前記第１の蓄積時間に基づく第２の蓄積時間で撮像を行うよう前記撮像手段を制御する制御手段と、前記第１の蓄積時間と前記第２の蓄積時間との差異時間情報を出力する出力手段を有する、ことを特徴とする。
【発明の効果】
【００１２】
マシンビジョンカメラの実際に作動している実蓄積時間を工程設計者等ユーザが把握可能となり、詳細な蓄積時間設定する際に有用な情報として使える効果がある。
【図面の簡単な説明】
【００１３】
【図１】実施例１の構成図
【図２】実施例１のフローチャート
【図３】撮像センサの部分領域読出しのイメージ
【図４】実施例２の構成図
【図５】実施例２のタイミングチャート
【発明を実施するための形態】
【００１４】
［実施例１］
以下に、本発明の好ましい実施の形態を、添付の図面に基づいて詳細に説明する。図１は、本発明の実施形態にかかわる構成図である。以下の説明では、本発明を分かり易くするために本発明の主要な部位のみ図示し、本発明の特徴ではない部位は省略する。
【００１５】
１００は、マシンビジョンカメラなどの撮像装置である。撮像装置１００の内部には以下の部材が構成される。１０１は外部からカメラ操作情報を受信し、また、カメラの状態などを外部へ送信するコマンド送受信部である。なお、外部から入力される情報は、撮像センサの蓄積時間を特定するためのコマンドである「蓄積時間設定コマンド」及び「トリガコマンド」、画像情報の読出し領域を設定するための「部分領域情報コマンド」、及び、後述する設定誤差の出力要否に関する問い合わせのための「設定誤差問合せコマンド」、の４コマンドとする。１０２はコマンド送受信部１０１（蓄積時間入力手段）を介して入力された蓄積時間設定値（第１の蓄積時間）を受けて実蓄積時間情報（第２の蓄積時間）を算出する実蓄積時間算出部（蓄積時間設定手段）である。１０３は実蓄積時間算出部１０２からの実蓄積時間情報と、コマンド送受信部１０１からのトリガコマンド、部分領域情報を受け、撮像センサ１０４を駆動するタイミングを生成するタイミング発生部（制御手段）である。また、撮像センサ１０４は本発明ではＣＭＯＳエリアセンサ等で、Ｘ−Ｙアドレスを指定することで一部領域の画素データのみを読み出すことができるものとする。このためタイミング発生部１０３には不図示の、行方向のＸアドレスカウンタ及び列方向のＹアドレスカウンタが存在している。また、撮像センサ１０４は行単位での蓄積開始制御を行うローリングシャッタ制御であるとする。
【００１６】
１０５は撮像センサから出力された画像信号を処理する画像処理部であり、１０６は画像処理部１０５からの画像信号を外部に出力する画像出力部である。更に１０７はコマンド送受信部１０１から出力される蓄積時間設定値と、実蓄積時間算出部１０２から出力される実蓄積時間情報との誤差（差異時間情報）を算出する設定誤差算出部である。
【００１７】
図２は撮像装置１００の動作を示すフローチャートであり、これを用いて動作について説明する。処理ステップＳ２００で処理が開始されると、処理ステップＳ２０１で撮像装置１００内の初期化を行う。本実施例における初期化の内容は、外部からの撮影トリガにより撮像センサ１０４の全画素を読み出す状態への設定とする。
【００１８】
処理ステップＳ２０２では外部からコマンド送受信部１０１に入力された読出し領域に関するコマンドが部分領域情報か否かを確認し、部分領域情報であった場合、処理ステップＳ２０３へ進み、部分領域情報を記憶する。そしてこの情報をタイミング発生部１０３に出力する。
【００１９】
ここで部分領域情報とは、図３に示すように撮像センサ１０４の一部の領域のみの画像を出力するための情報であり、同図のように開始座標（Ｓｘ，Ｓｙ）、終了座標（Ｅｘ，Ｅｙ）などを指定するものである。
【００２０】
その後処理ステップＳ２０４では得られた部分領域情報から、一行で読出す画素数（図３の例ではＥｘ−（Ｓｘ−１））から一行読出し時間を算出し、その結果を記憶し、処理ステップＳ２０５へ進む。併せて一行読出し時間は、実蓄積時間算出部１０２へ出力する。一方処理ステップＳ２０２で部分領域情報を受信しなかった場合についても処理ステップＳ２０５へ進む。
【００２１】
処理ステップＳ２０５では、外部からコマンド送受信部１０１に入力されたコマンドが蓄積時間設定か判定する。判定結果でコマンドが蓄積時間設定の場合は、処理ステップＳ２０６へ進み、実蓄積時間算出部１０２の処理を行う。すなわち、処理ステップＳ２０６において蓄積時間設定値を記憶し、更に処理ステップＳ２０７では蓄積時間設定値を処理ステップＳ２０４で記憶した一行読出し時間で除算処理を行い、実蓄積時間として記憶する。この際小数点第１位を四捨五入、切り捨て、切り上げの処理（丸め処理）を行い整数値として記憶する。すなわち、実蓄積時間は、一行読出し時間の整数（ｎ）倍の時間を示す整数値ｎとして記憶され、時間の単位で表現すると、一行読出し時間とｎとの積（一行読出し時間×ｎ）と表すことができる。その後、処理ステップＳ２０８へ進む。一方処理ステップＳ２０５で蓄積時間設定を受信しなかった場合も処理ステップＳ２０８へ進む。
【００２２】
処理ステップＳ２０８において、設定誤差算出部１０７は、上記の過程で記憶された、蓄積時間設定値と実蓄積時間（実時間換算値、一行読出し時間×ｎ）との差分を算出し、蓄積時間誤差値として記憶する。その後処理ステップＳ２０９で外部からコマンド送受信部１０１に入力されたコマンドとして設定誤差時間問合せが受信されているか確認し、そうであった場合、処理ステップＳ２１０へ進む。そしてステップＳ２０８で演算され記憶された蓄積時間誤差値を外部へ送信し、処理ステップＳ２１１へ進む。一方処理ステップＳ２０９で蓄積時間設定を受信しなかった場合も処理ステップＳ２１１へ進む。
【００２３】
処理ステップＳ２１１では、外部からコマンド送受信部１０１に入力されたコマンドとしてトリガコマンドが受信されているか確認し、そうであった場合、処理ステップＳ２１２へ進む。ここで、トリガコマンドは撮像装置１００に撮影実行を指示するコマンドである。処理ステップＳ２１２では上記の過程で記憶された、部分領域情報、実蓄積時間に従った条件で撮影を行う。すなわち、タイミング発生部１０３ではコマンド送受信部１０１の出力である部分領域情報に従った状態にＸ−Ｙアドレス発生カウンタの状態をセットする。そしてトリガコマンド入力で撮像センサ１０４を蓄積状態とし、同時にＸアドレスすなわち行方向のカウンタを起動し蓄積時間を一行読出し時間単位の時間としてカウントする。その上の行数計時カウンタはＹアドレスカウンタを利用してもよいし、別途構成しても構わない。また、蓄積時間を一行読出し時間単位とする理由は各行の蓄積時間を合わせるために行っている。このときＸアドレスのカウンタ動作は撮像センサには与えられないように動作する。そして蓄積は、カウントした行数が実蓄積時間算出部１０２より与えられた実蓄積時間に対応する行数である上記の整数（ｎ）と等しくなるまで行われ、その後、タイミング発生部１０３は撮像センサ１０４へ画素信号読出しのタイミングを出力する。すなわち、Ｘ−Ｙアドレスカウンタを再スタートさせ、撮像センサ１０４に出力することで部分領域情報に従った範囲の画素信号を読み出す。
【００２４】
読み出された画素信号は、画像処理部１０５で所定の補正処理、画像処理、出力フォーマット化などの処理を行い、画像出力部１０６（誤差出力手段）を介して外部へ出力される。
【００２５】
上記のような一連の撮影処理を終えた後、処理を処理ステップＳ２１２から処理ステップＳ２０２へ戻す。一方処理ステップＳ２１１で蓄積時間設定を受信しなかった場合も、処理を処理ステップＳ２０２へ戻す。以降、繰り返しの処理を行う。
【００２６】
以上、述べたとおり、本発明によれば、撮像装置１００の蓄積時間に対する設定誤差を出力することで、ユーザが設定した蓄積時間と実際の蓄積時間との差異を把握可能な撮像装置を提供することが可能となる。
【００２７】
なお、本実施例では、フロ−チャートで説明したが、並列に処理を行って構わない。
【００２８】
［実施例２］
図４に本発明の実施例２の構成図を示す。実施例１と同等の部分については同じ番号を与え、説明は省略する。
【００２９】
本実施例の特徴となるところは、バルブ撮影など、蓄積時間情報をトリガパルスの状態がアクティブの期間で蓄積時間を定められる場合でも蓄積時間の設定値と実蓄積時間との差異である設定誤差を出力できるところにある。
【００３０】
図４を用いて動作を説明する。図４において、１０８はバルブ撮影のトリガパルスを外部から入力するバルブシャッタ入力部（蓄積時間入力手段）であり、１０９はバルブシャッタ入力部１０８に入力されたトリガパルスのアクティブ時間を計時する設定蓄積時間計時部（設定時間計時手段）である。そして１１０はタイミング発生部１０３（制御手段）から出力されるタイミングパルスから実蓄積時間を計時する実蓄積時間計時部である。
【００３１】
図５のタイミングチャートと合わせ、動作を説明する。
【００３２】
バルブシャッタ入力部１０８に入力されているトリガパルスが図５の（Ａ）のように時刻ｔ０にアクティブ状態に遷移すると（開始信号が入力されると）、タイミング発生部１０３で撮像センサ１０４を蓄積状態にするように駆動パルスを発生させる。そしてアクティブ状態遷移から遅延を伴った、時刻ｔ１で撮像センサ１０４は図５の（Ｂ）のように先頭行から順次蓄積状態に移行する。時刻ｔ０から時刻ｔ１までのタイムラグは、撮影条件を考慮した補正設定や、信号処理による遅延に起因する。
【００３３】
バルブシャッタ入力部１０８にトリガパルスが入力される前には事前に読出し領域が設定されていて、設定された読出し領域に応じて一行あたりの読出し時間が確定する。画素データの読出しは、一行毎にシーケンシャルに実行され、全ての行が同じ蓄積時間で蓄積されるので、時刻ｔ１で最初の行の蓄積を開始した後、次の行以降の蓄積は、一行読出し時間の経過ごとに、開始される。
【００３４】
その後、時刻ｔ２においてトリガパルスがインアクティブ状態に遷移すると（終了信号が入力されると）、タイミング発生部１０３で撮像センサ１０４を読出し状態にするように駆動パルスを発生させる。そしてインアクティブ状態遷移から信号処理等に起因する遅延を伴った、時刻ｔ３で撮像センサ１０４は先頭行から順次読出し状態に移行する。
【００３５】
本実施例では、バルブシャッタ入力部１０８からトリガパルスが入力されて蓄積時間が確定する。バルブシャッタ入力部１０８によって設定される蓄積時間（ｔ１〜ｔ３）は、撮像センサの全ての行から読み出す時間（ｔ３〜ｔ４）に比べて長い。従って、ｔ３の時点で全ての行の蓄積は既に開始されていて蓄積状態にあるので、ある行の蓄積終了（読出し開始）と他の行の蓄積開始の同期を図る必要はない。そのため、トリガパルスがインアクティブ状態になった時は、タイミング調整をする必要なく信号処理の遅れのみで読出し開始を実行する。
【００３６】
設定蓄積時間計時部１０９はトリガパルスのアクティブ時間を計時する。つまり図５の（Ｃ）のように時刻ｔ０から時刻ｔ２の時間を撮像装置１００のシステムクロック等でカウントし時間を測定する。
【００３７】
一方、実蓄積時間計時部１１０は、実際の蓄積時間である時刻ｔ１から時刻ｔ３の期間を撮像装置１００のシステムクロック等でカウントし時間を測定する。
【００３８】
そして設定誤差算出部で設定蓄積時間計時部１０９、実蓄積時間計時部１１０の差分を算出し、誤差時間としてコマンド送受信部１０１を介し外部出力する。
【００３９】
なお、諸条件により、バルブシャッタ入力部１０８によって設定される蓄積時間（ｔ１〜ｔ３）が、撮像センサの全ての行から読み出す時間（ｔ３〜ｔ４、すなわち、ｔ１〜ｔ５）に比べて短い場合は、実施例１と同様に、一行読出し時間の整数倍となるように、実蓄積時間を設定する。すなわち、蓄積時間設定値であるトリガパルスがアクティブ状態であった時間（ｔ２−ｔ０）を一行読出し時間で除算し、その商の小数点第１位の四捨五入、切り捨て、切り上げ等の処理（丸め処理）をして整数ｎを得る。さらに、実蓄積時間（ｔ３−ｔ１）が一行読出し時間の整数ｎ倍の時間に対応する時間となる時刻ｔ３を決め、蓄積を終了させる。これによって、ある行の蓄積終了（読出し開始）と他の行の蓄積開始の同期を図ることが可能となる。
【００４０】
この様な構成をとることで、バルブ撮影など、蓄積時間情報をトリガパルスの状態がアクティブの時間で蓄積時間を定める場合でも、設定した蓄積時間（トリガパルスがアクティブの時間）と実際の蓄積時間との差異（設定誤差）を差異時間情報として出力することが可能となる。
【００４１】
なお、本実施例では入力されたトリガパルスと実際の蓄積時間を計時し、差分値を得ているが、アップダウンカウンタ等を構成することで誤差値を求めても構わない。
【００４２】
また、トリガパルスと実際の蓄積時間との差異となる処理部、すなわち図５の時刻ｔ０からｔ１までの時間と、時刻ｔ２からｔ３までの時間を計時し、それぞれの時間に基づいた誤差値を出力しても構わない。例えば、時刻ｔ０からｔ１までの時間（第１の差異時間）と、時刻ｔ２からｔ３までの時間（第２の差異時間）との差分処理を行い、その差を差異時間情報として出力するようにしても構わない。
【００４３】
または、トリガパルスがアクティブ状態／インアクティブ状態へ変化した時刻（ｔ０、ｔ２）、蓄積開示時刻ｔ１、蓄積終了時刻（読出開始時刻）ｔ３を記憶し、設定蓄積時間をｔ２−ｔ０で求め、実蓄積時間をｔ３−ｔ１で求める。こうして得られた設定蓄積時間と実蓄積時間との差を差異時間情報として出力しても良い。
【００４４】
本実施例では誤差時間の要素として信号処理による遅延を例としたが、撮影前のノイズ低減処理のための撮影準備期間なども誤差要因に含まれる。
【符号の説明】
【００４５】
１００  撮像装置
１０１  コマンド送受信部（蓄積時間入力手段）
１０２  実蓄積時間算出部（蓄積時間設定手段）
１０７  設定誤差算出部
１０９  設定蓄積時間計時部（設定時間計時手段）
１１０  実蓄積時間計数部
【図１】
2016082495.tif 000003
【図２】
2016082495.tif 000004
【図３】
2016082495.tif 000005
【図４】
2016082495.tif 000006
【図５】
2016082495.tif 000007