(57)【要約】【課題】三次元計測センサの回路規模を小さくする。【解決手段】センサを構成する光検出器１０の行列において、同一行に属する光検出器１０の出力は同一の信号ライン１２に接続される。各光検出器１０の出力は、水平走査回路１４の走査により、光切断法のスリット光が実質的に停止状態と見なせる程度の短い水平走査期間の間に、左から右に順に信号ライン１２に読み出される。位置検出部１８は、水平走査期間の開始時点から信号ライン１２上の信号の最大ピークを検知するまでの時間を求める。この時間は、その行の走査開始側の端部からスリット光のピークを検出した光検出器１０までの距離を示す。記録処理部２２は、位置検出部１８が求めた距離の値を、スリット光の投影角度を示すカウンタ２０の値と対応づけて記録する。【選択図】図２
2006112978.tif 000002
【特許請求の範囲】
【請求項１】
光切断法による三次元形状の計算のための情報を取得するセンサであって、
光検出器が行列状に配列されて構成される光検出器アレイと、
光検出器アレイの行ごとに設けられ、対応する行に属する光検出器の出力に接続された行信号ラインと、
光検出器アレイの光検出器を列単位で選択し、選択された各光検出器の出力信号をそれぞれ対応する行信号ラインへと出力させると共に、光切断法のために走査されるスリット光の光検出器アレイ上での像が実質上静止していると見なせる程度に短い行走査期間の間に、選択する列を行の一方端から他方端へと順に切り換える行走査回路と、
行信号ラインごとに設けられる受光位置検出回路であって、行走査期間ごとに、対応する行信号ラインを流れる信号の、その行走査期間におけるピークを検出し、このピークを検出したタイミングに基づき、その行走査期間での光検出器アレイの当該行における受光位置の情報を求める受光位置検出回路と、
行走査期間ごとに各受光位置検出回路が求めた受光位置の情報を出力する出力回路と、
を備える三次元計測センサ。
【請求項２】
前記行走査回路の動作基準であるクロック信号をカウントするカウンタを更に備え、
前記各受光位置検出回路が、前記ピークを検出したタイミングにおける前記カウンタのカウント値を前記受光位置の情報として出力する、
請求項１記載の三次元計測センサ。
【請求項３】
前記行走査回路の動作基準であるクロック信号をカウントするカウンタと、
前記カウンタのカウント値に対応する受光位置の情報を記憶したルックアップテーブルと、
を更に備え、
前記各受光位置検出回路は、前記カウンタのカウント値に対応する受光位置の情報を前記ルックアップテーブルから読み出して出力する、
請求項１記載の三次元計測センサ。
【請求項４】
前記各受光位置検出回路が、前記ピークを検出したタイミングに基づき、前記受光位置に対応する信号レベルを有する信号を前記受信位置の情報として生成する、請求項１記載の三次元計測センサ。
【請求項５】
前記各受光位置検出回路が、
対応する前記行信号ライン上の信号のピークレベルを保持するピークホールド回路と、
該ピークホールド回路の出力を微分する微分回路と、
所定の基準信号を積分する積分回路と、
前記微分回路の出力がオンレベルになった時に前記積分回路が蓄積した電荷を放電させ、前記微分回路の出力がオフレベルにある間は前記積分回路に電荷を蓄積させる制御素子と、
を備え、前記出力回路は、前記行走査期間完了時の前記積分回路の出力を前記受光位置の情報として出力する、請求項４記載の三次元計測センサ。
【請求項６】
前記受光位置検出回路が、
対応する前記行信号ライン上の信号のピークレベルを保持するピークホールド回路と、
該ピークホールド回路の出力を微分する微分回路と、
行走査期間の開始からの経過時刻に応じた信号レベルを持つ受光位置信号を生成する受光位置信号生成回路と、
前記微分回路の出力によってトリガされ、トリガの時点における前記受光位置信号をサンプリングして保持するサンプルホールド回路と、
を備え、前記出力回路は、前記行走査期間完了時に前記サンプルホールド回路が保持する信号を、前記受光位置の情報として出力する、請求項４記載の三次元計測センサ。
【請求項７】
計測対象に対するスリット光の投影角度を求めるための角度カウンタと、
行走査期間において各受光位置検出回路が求めた受光位置の情報を、その行走査期間における前記角度カウンタのカウント値と対応づけて記憶する記憶処理部と、
を更に備える請求項１〜６のいずれか１項に記載の三次元計測センサ。
【請求項８】
計測対象に対するスリット光の投影角度を求めるための角度カウンタと、
行走査期間において各受光位置検出回路が求めた受光位置の情報と、その行走査期間完了時の前記ピークホールド回路の出力とを、その行走査期間における前記角度カウンタのカウント値と対応づけて記憶する記憶処理部と、
を更に備える請求項５又は６に記載の三次元計測センサ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、対象物の三次元形状を計測するためのセンサに関する。
【背景技術】
【０００２】
光学系を利用した三次元物体の形状計測は、様々な産業分野で利用されつつある。その中で、実用性が高いと考えられている手法として光切断法がある。光切断法では、スリット状又はスポット状の光を対象物に照射したときの対象物表面の反射光をカメラで捉え、光源とカメラの位置関係から、三角測量の原理で対象物表面の各点の三次元座標を求める。
【０００３】
光切断法による三次元形状計測のための装置として、例えば、非特許文献１（特に「３．２．３  イメージエンコーダ」参照）に示される装置がある。この装置では、対象物に対してスリット光を掃引したときの画像をＣＣＤカメラで撮像し、そのカメラの出力するビデオ信号をイメージエンコーダに入力する。イメージエンコーダには、そのビデオ信号の他に、スリット光の投光角度を示すコード化信号が入力される。イメージエンコーダは、入力されるビデオ信号に対して、各画素ごとに輝度のピークホールド処理をリアルタイムで行うと共に、そのピークホールド処理により各画素が最大輝度を取ったタイミングを検出し、そのタイミングにおけるコード化信号を当該画素のコード化値として記憶することで、光切断法が適用可能なコード化画像を形成する。
【０００４】
しかし、この非特許文献１に示される装置は、ＣＣＤカメラの１読出走査期間の間は、スリット光の投影位置が実質的に変化しないことを前提としており、物体の形状計測にはスリット光の位置を徐々に変えながらその読出走査を繰り返し行わなければならない。一般的なＣＣＤカメラは読出走査が１／３０秒や１／６０秒程度なので、この装置で１つの物体の三次元形状を求めるには非常に時間がかかり、動いている物体には実質上適用できない。
【０００５】
このような問題に対し、本発明の発明者の一人は、特許文献１に示す装置を提案した。この装置は光検出器ごとに要素メモリを備えた非走査型の撮像素子を備えており、各要素メモリは時間経過信号ｔを伝えるバスに接続されている。そして、光検出器がスリット光を検出した時に発する受光出力をトリガとして要素メモリに与え、これにより要素メモリがその時バスから供給されている時間経過信号ｔの値をラッチする。この構成によれば、対象物に対してスリット光を１回掃引する間に、撮像素子の各要素メモリには、対応する光検出器にスリット光が当たった時刻に対応する情報が記憶される。すなわちこの装置では、スリット光１掃引の間に撮像素子の要素メモリ群に対し、非特許文献１のイメージエンコーダの生成するコード化画像と同等の情報が蓄積される。したがって、スリット光１掃引につき１度撮像素子のメモリ群の読出走査を行えばよい。このように、特許文献１の装置によれば、撮像素子の読出走査と同等の速度でスリット光を掃引しても形状計測ができるので、リアルタイムに近い形状計測が可能になった。
【０００６】
しかし、この特許文献１の装置では、撮像素子の各光検出器ごとに要素メモリを設ける必要があるため、撮像素子の大型化を招いたり、製造のしやすさの点で不利になったりといった問題があった。
【０００７】
また、上記問題の解決のために別のアプローチをとった従来技術として、非特許文献２に示すものがある。これは撮像素子を高速読み出しすることでリアルタイム対応能力を高めようとするものであり、光検出器アレイに加えて、各画素（４色の光検出器で１画素）ごとに４フレーム分の信号を記憶できるアナログメモリアレイと、そのメモリアレイの列ごとに比較器及び出力ラッチと、を備えたＣＭＯＳセンサを用いている。このセンサでは、各画素の信号が３．３ｋｆｐｓ（キロ・フレーム毎秒）の高いフレームレートで読み出され、読み出された信号がアナログメモリアレイの対応フレームのセルに記憶される。そして、アレイ各列の画素ごとに順に、その列の比較器によりアナログメモリアレイに記憶された４フレーム分の信号のうちの時間的に後の２フレーム分の和から前の２フレーム分の和を引いた差信号を求め、この信号が０の時は出力ラッチに値「０」を保持させ、その信号が負値から０になった時（これがスリット光のピークが当該画素上にあるタイミングである）には出力ラッチに「１」を保持させる。各列の出力ラッチを高速に読み出せば、１フレーム（光検出器アレイの１読出走査期間）ごとに、各画素にスリット光のピークが当たっているか否かを求めることができる。フレームの番号がスリット光の投影角度に対応しており、このセンサにより各画素が何フレーム目でスリット光ピークを検出したかが分かるので、対象物の三次元形状を求めることができる。
【０００８】
非特許文献２のセンサは、アナログメモリアレイや比較器、出力ラッチなどの回路構成を光検出器アレイの外に設けることにより、光検出器アレイの開口率の向上を見込めるが、１画素当たり４フレーム分のアナログ信号メモリが必要であり、素子全体としての回路規模が大きくなるという問題がある。１画素当たり４フレーム分というのが仮に一例であるとしても、同一画素の受光信号の時間的な差分からスリット光のピークを求めるという原理を採用している以上、１画素当たり少なくとも２フレーム分のアナログ信号メモリは必要である。
【０００９】
また、特許文献２には、三次元計測のための撮像素子として、複数の画素が二次元配列され、各画素がスリット光の撮像面上での掃引方向に長い形状を有し、掃引方向と直交する方向に隣り合う画素同士が掃引方向にずれて配置されているものが開示されている。また、この文献には、隣接する画素の出力値を比較してその差分が反転した撮像素子上での空間位置を記憶することで、スリット光がどの画素に当たっているかを特定する方式が開示されている（第７段落及び第２６段落参照）。
【００１０】
しかしながら、特許文献２にはその方式を実現するための具体的なハードウエア回路構成は示されていない。
【００１１】
また、特許文献３には、対象物の三次元形状を求めるための装置として、０次モーメント演算器と１次モーメント演算器とにより、ライトパターン光が伸びる方向における各位置での該方向に対して垂直の方向での０次モーメント、１次モーメントを、受光素子アレイにて略同時刻に得られた出力信号に相当するデジタル信号を積分して求める装置が開示されている。この装置では、光検出器アレイの各受光素子の光電出力を、それぞれ多値のデジタル信号に変換し、そのデジタル信号に対してモーメント演算処理を施している。
【００１２】
特許文献３の装置は、各受光素子の光電出力をアナログ・デジタル変換したり、得られたデジタル値をパラレル読み出ししたりするなど、様々な処理のために複雑な回路構成が必要であり、製造コストが高かった。
【００１３】
【非特許文献１】吉澤徹編「三次元光学１−光三次元計測」，初版，株式会社新技術コミュニケーションズ，１９９３年３月，ｐ．３８−５１
【非特許文献２】杉山寿伸、外３名，「カラー動画撮像と実時間３次元計測が可能なＣＭＯＳセンサー」，社団法人映像情報メディア学会技術報告，社団法人映像情報メディア学会，２００２年３月１８日，第２６巻，第２６号，ｐ．１−６
【特許文献１】特公平６−０２５６５３号公報
【特許文献２】特開２００１−０５３２６１号公報
【特許文献３】特開２００２−３６５０２２号公報
【発明の開示】
【発明が解決しようとする課題】
【００１４】
本発明は、比較的簡素な回路構成で対象の三次元形状の計測に用いるデータを収集できるセンサを提供する。
【課題を解決するための手段】
【００１５】
本発明に係る三次元計測センサは、光切断法による三次元形状の計算のための情報を取得するセンサであって、光検出器が行列状に配列されて構成される光検出器アレイと、光検出器アレイの行ごとに設けられ、対応する行に属する各光検出器の出力に接続された行信号ラインと、光検出器アレイの光検出器を列単位で選択し、選択された各光検出器の出力信号をそれぞれ対応する行信号ラインへと出力させると共に、光切断法のために走査されるスリット光の光検出器アレイ上での像が実質上静止していると見なせる程度に短い行走査期間の間に、選択する列を行の一方端から他方端へと順に切り換える行走査回路と、行信号ラインごとに設けられる受光位置検出回路であって、行走査期間ごとに、対応する行信号ラインを流れる信号の、その行走査期間におけるピークを検出し、このピークを検出したタイミングに基づき、その行走査期間での光検出器アレイの当該行における受光位置の情報を求める受光位置検出回路と、行走査期間ごとに各受光位置検出回路が求めた受光位置の情報を出力する出力回路と、を備える。
【００１６】
ここで、行走査回路での光検出器の「列単位で」の選択は、１列ごとに限るものではなく、連続する複数の列をまとめて選択するようにしてもよい。
【００１７】
本発明の好適な態様では、前記各受光位置検出回路が、対応する前記行信号ライン上の信号のピークレベルを保持するピークホールド回路と、該ピークホールド回路の出力を微分する微分回路と、所定の基準信号を積分する積分回路と、前記微分回路の出力がオンレベルになった時に前記積分回路が蓄積した電荷を放電させ、前記微分回路の出力がオフレベルにある間は前記積分回路に電荷を蓄積させる制御素子と、を備え、前記出力回路は、前記行走査期間完了時の前記積分回路の出力を前記受光位置の情報として出力する。
【００１８】
本発明の別の好適な態様では、前記受光位置検出回路が、対応する前記行信号ライン上の信号のピークレベルを保持するピークホールド回路と、該ピークホールド回路の出力を微分する微分回路と、行走査期間の開始からの経過時刻に応じた信号レベルを持つ受光位置信号を生成する受光位置信号生成回路と、前記微分回路の出力によってトリガされ、トリガの時点における前記受光位置信号をサンプリングして保持するサンプルホールド回路と、を備え、前記出力回路は、前記行走査期間完了時に前記サンプルホールド回路が保持する信号を、前記受光位置の情報として出力する。
【００１９】
更に好適な態様では、三次元計測センサは、計測対象に対するスリット光の投影角度を求めるための角度カウンタと、行走査期間において各受光位置検出回路が求めた受光位置の情報と、その行走査期間完了時の前記ピークホールド回路の出力値とを、その行走査期間における前記角度カウンタのカウント値と対応づけて記憶する記憶処理部と、を更に備える。
【００２０】
この態様の三次元形状センサは、三角法の原理に基づく三次元座標の計算のための基礎となるデータとして、角度カウンタの値と受光位置の情報を提供することができる。更に、このセンサが提供する受光位置の情報とピークホールド回路の出力値を組み合わせれば、計測対象の輝度分布を示す輝度画像を形成することができる。
【発明を実施するための最良の形態】
【００２１】
以下、図面を参照しつつ本発明の好適な実施の形態を説明する。
【００２２】
まず、本発明に係る三次元計測センサが適用される光切断法による三次元形状計測の原理を、図１を参照して説明する。
【００２３】
図１に示すように、光切断法では、レーザ１及びレンズ系２等からなる光源からスリット光５を発し、そのスリット光５をポリゴンミラーなどの偏向装置３などで反射させて対象物体４に投影する。これにより対象物体４の表面がスリット状に照明される。対象物体４の表面からの反射光は、撮像装置７のレンズ系で集束され、撮像素子の撮像面８に結像する。撮像面８には、対象物体４表面のスリット状の被照明部分６に対応するスリット状部分９のみが明るく、他の部分は暗くなった像が形成される。このとき、対象物体４上の被照明部分６上の点の三次元座標は、その点に対応する撮像面８上のスリット状部分９上の点の二次元位置、光源（レーザ１）と撮像面８の位置、及びその時のスリット光５の投影方向（角度）から三角測量の原理で求められる。そして、偏向装置３の反射面を回転させることにより、スリット光５で対象物体４の表面を一方端から他方端へと走査する。原理上、対象物体４表面のすべての点（もちろん光学系の構成上影になる部分は除く）は、この１回の走査の間に一回だけスリット光により照明されるので、上述の三角測量の原理でその三次元位置を特定できる。
【００２４】
以上、概略を説明したが、光切断法の原理や大まかなシステム構成については、上述の各先行技術文献（特に非特許文献１）や、井口征治・佐藤宏介共著「三次元画像計測」，初版，昭晃堂，１９９０年１１月２０日発行，ｐ３６−４０（２．２．２  スリット光投影法）に示されており、周知のものであるので、これ以上の説明は省く。
【００２５】
本実施形態では、この光切断法による三次元形状計測に好適な三次元計測センサを提供する。本実施形態の計測原理を、図２を参照して説明する。
【００２６】
本実施形態の装置は、撮像面８上の各画素（光検出器）の位置にスリット光が入射した時刻のデータを生成する。画素にスリット光が入射した時刻はスリット光の投影角度を示す。各画素の撮像面８上での位置及び光源の位置は既知なので、その時刻が分かれば、その画素に対応する対象物体４上の点の三次元座標が計算できる。この考え方自体は、特許文献１と同じものである。特許文献１の方式では、スリット光の入射を検出してその時刻を保持する回路を画素ごとに設ける点がコストその他の点で問題であったので、本実施形態ではその点の改善を目指す。
【００２７】
図２に模式的に示すのは、撮像装置７の撮像面８に並んだ光検出器１０（例えばフォトダイオード）の行列（アレイ）のうちの１つの行である。この行に属する各光検出器１０は、共通の信号ライン１２に接続されており、光の検出により生じた検出信号をその信号ライン１２に出力な構成となっている。
【００２８】
ここでは、この行の方向が、光切断法でスリット光を走査する方向と同じであるものとする。すなわちこれは、行の方向がスリット光走査方向と平行になるように撮像装置７を設置した場合である。この場合、撮像面８上のスリット光の像は、撮像面８の光検出器１０の行列の各行を横切ることになる。なお、ここでスリット光の走査方向と言っているのは、偏向装置３によるスリット光の走査に応じて撮像装置７の撮像面に結像されるスリット光が移動する方向のことである。
【００２９】
このような光検出器１０群の並ぶ行に対しある瞬間に入射するスリット光の強度パターンは、例えば図示の入射強度パターン１００のように、１つの急峻なピークを持ったパターンとなる。１本のスリット光が行を横切っているからである。したがって、スリット光が静止していると見なせるほどの短い時間の間に、行の読出走査、すなわち、各光検出器１０の出力を行の一方端から他方端へと順に１つずつ信号ライン１２に読み出す走査を行えば、信号ライン１２には図示のように１つの大きなピークをもつ出力信号２００が流れることになる（なお、厳密には、信号を出力する光検出器１０を順に切り換えていくため信号ライン１２上の出力信号は図示のような滑らかなものとはならないが、大略的な傾向は図示の通りである）。なお、図示例は、左から右に順に光検出器１０を選択していったときの出力信号２００である。
【００３０】
そして、１回の読出走査（すなわち水平走査（或いは行走査））の開始時点からピークまでの時間Ａ、或いはピークから読出走査の終了時点までの時間Ｂを計測すれば、１行の中でのピークの位置を求めることができる。
【００３１】
１行の読出走査は、水平走査回路１４により行われる。水平走査回路１４は例えばパラレル出力のシフトレジスタで構成される。この場合、シフトレジスタのうちの１段をＨ（ハイ）レベル（"1"）とし他の段をＬ（ロー）レベル("0")として、それをタイミング制御部１６から供給されるクロック信号に従って一方端から他方端へと順にシフトしていく。そして、各段の出力により、それぞれ対応する各光検出器１０の出力と信号ライン１２との間を断続するスイッチを開閉する。なお図示の瞬間は、左から５番目の光検出器１０に対応する段のみがハイレベルなので、その５番目の光検出器１０の出力（０に近い低いレベルの信号）が信号ライン１２に出力される。
【００３２】
この信号ライン１２上の信号を位置検出部１８で処理することで、その時点でのその行における入射光のピークの位置を求める。ピーク位置は、例えば、水平走査回路１４のシフト動作の基準とするクロック信号をカウンタでカウントし、信号のピークを検出したタイミングでのそのカウンタのカウント値を取得することにより求めることができる。カウンタを１水平走査期間ごとにクリアするようにすれば、カウンタの値は水平走査の開始時点からピーク検出時点までの時間Ａを示す。なお、ピーク位置の求め方はこれに限るものではなく、後で他の例も説明する。
【００３３】
以上のような構成により、行上での入射光のピーク位置が求められる。このピーク位置を、記録処理部２２が、スリット光の投影角度を求めるためのカウンタ２０のカウント値と対応づけて記録する。このカウンタ２０は、例えば、水平走査回路１４の１水平走査期間ごとに１つカウントアップし、スリット光の１回の走査が終了するごとにカウント値をクリアすればよい。
【００３４】
以上、１行の構成を説明したが、この行を複数並べれば、撮像面８の画素行列（アレイ）を構成できる。この場合、水平走査回路１４，タイミング制御部１６，カウンタ２０及び記録処理部２２はそれら複数の行に対して１つ設ければよい。
【００３５】
また以上では、１水平走査期間における処理を説明したが、この処理をスリット光の走査期間の間繰り返せば、スリット光走査の間に各画素位置に対してスリット光が入射した時刻のデータを求めることができる。これにより、対象物体４全体の三次元形状の計算に必要な基礎データが収集できる。
【００３６】
なお、以上では、画素行列の行の方向をスリット走査方向に平行にした場合を説明したが、原理的にはスリット光の像が行列の各行を横切れば上記のデータ収集処理が実行できるので、平行にする場合がもっとも良好な態様ではあるが、必ずしも平行でなくてもかまわない。
【００３７】
また以上では、１行の中で同時に読み出すのは１つの光検出器１０のみであったが、感度向上等のために隣り合う複数個の光検出器１０の出力を同時に読み出すようにすることもできる。
【００３８】
次に、図３を参照して、本実施形態の三次元計測センサの回路構成の例を説明する。図２の原理構成における構成要素に該当する回路要素には、それぞれ同一の符号を付す。
【００３９】
図３に示す回路構成では、画素回路１１が行列状に配列されており、同じ行（水平ライン）に属する複数（図示例では４個）の画素回路１１は、共通の信号ライン１２に接続されている。図示は省略するが、画素回路１１は、光検出器１０と、その光検出器１０の出力と信号ライン１２との間を断続するためのスイッチを備えている。このスイッチは、水平走査回路１４からアドレスライン１５を介して供給される制御信号に応じ、オン・オフされる。同じ列に属する複数（図示例では４個）の画素回路１１同士のスイッチは、共通のアドレスライン１５に接続され、同時にオン・オフされる。水平走査回路１４は、画素回路１１群の列のうちの１列（又は連続する所定数の列）のアドレスライン１５にのみオン信号（例えばＨレベル信号）を供給し、他の列にはオフ信号（例えばＬレベル）の信号を供給する。そして、水平走査回路１４は、オン信号を供給する列を、一方向（例えば右から左）に向かって、タイミング制御部１６から与えられるクロック信号に応じて一定周期ごとに１列ずつ、シフトしていく。このようなシフト動作により、１水平走査期間の間に、行列の一方の行端から他方の行端までの各列が順に選択されることになる。このような水平走査により、各行の信号ライン１２に対し、それぞれその行における入射光の強度ピークの位置を示す図２に例示したような出力信号が出力される。
【００４０】
各信号ライン１２は、それぞれピークホールド回路３０に接続され、ピークホールド回路３０の出力はタイミング検出回路３２の入力に接続される。これらピークホールド回路３０及びタイミング検出回路３２の組が、図２の原理構成における位置検出部１８に該当する。
【００４１】
ピークホールド回路３０は、信号ライン１２から入力される信号のピーク値を保持して出力する。各ピークホールド回路３０の出力は、それぞれ対応するタイミング検出回路３２に入力される。タイミング検出回路３２は、ピークホールド回路３０の出力に基づきピークタイミング信号を生成し、生成したピークタイミング信号から、距離信号を生成して出力する。距離信号は、当該信号ライン１２に対応する画素の行においてもっとも明るい画素（すなわちスリット光が入射している画素）から、その行の一方の端部（この例では右端）までの距離を示す信号である。
【００４２】
ピークホールド回路３０及びタイミング検出回路３２の回路構成の一例を、図４を参照して説明する。
【００４３】
図示例のピークホールド回路３０は、入出力のインピーダンス変換のための２つのボルテージホロワ回路とピーク電圧保持のための容量Ｃ１から構成される、一般的なピークホールド回路である。信号ライン１２は、第１のボルテージホロワ回路を構成するオペアンプＯＰ１の非反転入力端子に接続される。オペアンプＯＰ１の出力端子は整流用のダイオードＤ１のアノードに接続される。ダイオードＤ１のカソード側は、オペアンプＯＰ１の反転入力端子に接続され、これにより第１のボルテージホロワ回路が構成される。また、ダイオードＤ１のカソード側は、第２のボルテージホロワ回路のオペアンプＯＰ２の非反転入力端子に接続される。このダイオードＤ１のアノード側に接続されたオペアンプＯＰ２の非反転入力端子には、ピーク電圧保持用の容量Ｃ１の一端が接続され、この容量Ｃ１の他端はグランド端子に接続されている。オペアンプＯＰ２の出力端子は、そのオペアンプＯＰ２自身の反転入力端子に接続され、これにより第２のボルテージホロワ回路が構成される。このオペアンプＯＰ２の出力端子からの出力が、ピークホールド回路３０の出力となる。
【００４４】
タイミング検出回路３２は、微分回路３２２と距離信号生成回路３２４から構成される。
【００４５】
微分回路３２２は、オペアンプを用いた一般的な微分回路である。微分回路３２２を構成する容量Ｃ２の一方端がピークホールド回路３０の出力に接続され、他方端がオペアンプＯＰ３の反転入力端子に接続されている。オペアンプＯＰ３の非反転入力端子はグランドに接続され、出力端子はそのオペアンプＯＰ３の反転入力端子に接続されている。オペアンプＯＰ３の出力端子からは、ピークホールド回路３０の出力信号を微分した信号が出力される。
【００４６】
距離信号生成回路３２４は、トランジスタＴＲ１、容量Ｃ３、抵抗Ｒ１、オペアンプＯＰ４から構成される。例示の回路におけるトランジスタＴＲ１はＮＰＮ型であり、ベースが、微分回路３２２の出力、すなわちオペアンプＯＰ３の出力端子に接続され、エミッタがグランドに接続されている。またトランジスタＴＲ１のコレクタはオペアンプＯＰ４の非反転入力端子に接続される。このトランジスタＴＲ１のコレクタに接続されたオペアンプＯＰ４の非反転入力端子には抵抗Ｒ１の一端が接続され、抵抗Ｒ１の他端はタイミング制御部１６の水平走査信号出力端子に接続されている。水平走査信号は、水平走査期間を示す信号であり、例えば水平走査期間の間Ｈレベルとなる信号である。また、オペアンプＯＰ４の非反転入力端子には、抵抗Ｒ１を介して入力される水平走査信号に応じて電荷を蓄積する容量Ｃ３の一端が接続される。容量Ｃ３の他端はグランドに接続される。オペアンプＯＰ４の出力端子は、そのオペアンプＯＰ４自身の反転入力端子に接続され、ボルテージホロワ回路を構成している。このオペアンプＯＰ４の出力端子からの出力信号が、画素の行における入射光のピーク位置からその行の端部までの距離を示す距離信号である。
【００４７】
次に、ピークホールド回路３０とタイミング検出回路３２の動作を、図５の信号タイミングチャートを参照しながら説明する。
【００４８】
図５において、（ａ）は、タイミング制御部１６から距離信号生成回路３２４に供給される水平走査信号のタイミングチャートである。この水平走査信号は、センサの水平走査期間の間Ｈレベルとなり、その後次の水平走査期間が始まるまではリセットされてＬレベルとなる。
【００４９】
（ｂ）は、ピークホールド回路３０への入力信号、すなわち信号ライン１２上の信号と、ピークホールド回路３０の出力信号のタイミングチャートである。水平走査により光検出信号を出力する光検出器１０を順に切り換えていくので、信号ライン１２からの入力信号は、図に実線で示すようにいくつかのピークを持つ信号となり、入射光のピークが入射した光検出器１０から信号が出力されるタイミングで最大のピークとなる。ピークホールド回路３０の出力信号は、破線で示すような信号となる（破線が見えない区間は、実線と重なっているものと理解されたい）。
【００５０】
（ｃ）は、微分回路３２２の出力信号のタイミングチャートである。この信号は、（ｂ）において破線で示したピークホールド出力信号を微分した信号なので、信号ライン１２からの入力信号のピーク値がホールドされている期間は間はＬレベルとなり、ホールドされた値よりも入力信号のレベルが上がると、Ｈレベルとなる。入力信号の最大ピークに達するまでには何度かレベルの上下があるが、最大ピークを越えた後はその水平走査期間の最後までずっとＬレベルである。
【００５１】
（ｄ）は、距離信号生成回路３２４から出力される距離信号のタイミングチャートである。距離信号は、水平走査信号により容量Ｃ３に蓄積された電荷に応じたレベルの信号となる。ここで、微分回路３２２の出力信号（以下、微分出力という）がＨレベルになってトランジスタＴＲ１がオン状態になると、容量Ｃ３に蓄積された電荷がトランジスタＴＲ１を通ってグランドに放電される。したがって、微分出力がＨレベルになるごとに、距離信号のレベルは最低値（０）にリセットされる。しかし、信号ライン１２からの入力信号が最大のピークに到達した以降は、水平走査期間の終わりまで微分出力がＨレベルとなることはないので、その間容量Ｃ３には電荷が徐々に蓄積されいき、時間の経過に従って距離信号のレベルは増大していく。したがって、水平走査期間の終了時点では、スリット光が入射した光検出器１０の位置から行の終端位置までの距離（図２における時間Ｂに対応）に対応したレベルの距離信号が出力されることになる。
【００５２】
再び図３に戻り、タイミング検出回路３２から出力される距離信号は、Ａ／Ｄ変換器３４でデジタルデータに変換される。Ａ／Ｄ変換器３４として、例えば１行の画素数以上の分解能を持つビット数のものをもちいれば、行上でのスリット光の入射位置を画素単位以上の精度で判別可能なデータに変換できる。
【００５３】
Ａ／Ｄ変換器３４の後段にはラッチ（図示省略）が設けられており、この距離信号を示すデジタルデータは、水平走査期間の終了のタイミングでそのラッチ回路にラッチされる。これにより、各行の終端のラッチには、水平走査期間の終了時点では、それぞれ対応する行における入射光のピーク位置を示す距離信号の大きさを示すデジタルデータが保持されることになる。また、次の水平走査期間の開始のタイミングで、そのラッチの値はクリアされる。このような動作を実現するため、ラッチ回路には、例えばタイミング制御部１６から、水平走査信号が供給され、水平走査信号の立ち下がりタイミングでＡ／Ｄ変換器３４の出力をラッチし、立ち上がりタイミングでラッチしたデータをクリアする。
【００５４】
図２に示した記録処理部２２は、水平走査期間の終了後、次の水平走査期間の開始までに、これら各行のラッチの保持するデータを順にデータ出力ライン３６を介して読み出す。そして、各行のラッチごとに、そのラッチから取得したデータ（これはその行での入射光のピーク位置、すなわち最高輝度位置を示す）と、その行の番号と、その時点でのスリット光投影角度を示すカウンタ２０のカウント値との組合せを、所定の記憶装置に記憶する。この動作をスリット光１走査の期間繰り返せば、対象物体４の三次元形状を計算するのに必要なデータが揃うことになる。すなわち、水平走査期間ごとに得られた各行の行番号及び各行の最高輝度位置の組合せに対応する画素位置（すなわち何行何列目の画素か）を特定し、その画素位置に対応する画素の値として、対応するカウント値のデータを採用すればよい。これにより、撮像面の画素ごとにその画素が最高輝度となったときのカウント値（スリット光の投影角度と等価）を示す画像（「投影角度画像」と呼ぶ）を生成することができる。後続の処理装置では、この投影角度画像と、光源及び撮像装置の既知の配置位置情報に基づき、対象物体４の三次元形状を計算できる。
【００５５】
なお、図４で説明したピークホールド回路３０とタイミング検出回路３２を備える位置検出部１８の構成において、ピークホールド回路３０の出力信号は、タイミング検出回路３２に入力されるだけでなく、そのまま出力して輝度信号として用いることもできる。この場合、その輝度信号を図示省略したＡ／Ｄ変換器でデジタル値に変換した後、図示省略したラッチ回路に入力する。すなわち、この場合、距離信号のためのＡ／Ｄ変換器３４及びラッチ回路と同様、輝度信号用のＡ／Ｄ変換器及びラッチ回路を行ごとに設けるのである。ラッチ回路は、水平走査信号の立ち下がりのタイミングでＡ／Ｄ変換器の出力をラッチし、次の立ち上がりのタイミングでクリアする。記録処理部２２は、それら各行のラッチ回路の保持するデータ（輝度値）を、水平走査信号がリセットレベルにある期間（すなわち水平走査期間終了後から次の水平走査期間の開始までの期間）に順に読み出し、これを対応する行の番号と、カウンタ２０のカウント値とを対応づけて所定の記憶装置に記憶する。この動作を、スリット光の走査期間の間繰り返せば、カウンタ２０のカウント値ごとに、そのカウント値のタイミングでの各行の最高輝度の値が得られることになる。
【００５６】
ここで、前述したように記録処理部２２はカウンタ２０の各カウント値に対応する各行の距離信号のデータ（すなわち入射光のピーク位置）を記録しているので、これから各カウント値に対応するタイミングにおける各行での最高輝度の位置がわかる。したがって、各カウンタ値のタイミングごと（すなわちスリット光の投影角度ごと）に、そして行ごとに、最高輝度値とその最高輝度値をとる行上での位置との組み合わせを求めることができる。したがって、その組合せを、スリット光の走査期間にわたって収集し、画素行列の各行各列の画素にマッピングすれば、その期間における各画素の最高輝度からなる画像（「輝度画像」と呼ぶ）を得ることができる。この画像は、（スリット光ではない）通常の光源で対象物体４を照明したときに得られる画像に近いものになる。
【００５７】
なお、以上では、距離信号のデータ値と、輝度信号のデータ値とを、記録処理部２２で個別に記録するとして説明したが、これらを併せてカウンタ２０のカウント値に対応づけて記録するようにすることも好適である。
【００５８】
次に図６を参照して、本実施形態の三次元計測センサを用いた計測装置の構成例を説明する。
【００５９】
図６の例では、計測装置１００は、計測回路チップ１１０，光学系１２０，走査・制御装置１３０，ライン状光源１３２，偏向装置１３４を備えている。光学系１２０は、レンズなどの光学部品からなるシステムであり、対象物体からの反射光を計測センサ１１２の撮像面に結像させる。計測センサ１１２は、図３に例示した回路群、すなわち画素回路１１の行列、水平走査回路１４，ピークホールド回路３０，タイミング検出回路３２，Ａ／Ｄ変換器３４及びラッチ回路を備えたセンサである。処理回路１１４は、図２の構成におけるタイミング制御部１６やカウンタ２０，記録処理部２２の機能と、スリット光の操作制御のための機能を提供する回路である。処理回路１１４は、前述の投影角度画像を（輝度画像を生成する場合は輝度画像も）後段の画像取り込み装置２００に出力する。
【００６０】
これら計測センサ１１２や処理回路１１４は、それぞれワン・チップに集積することができる。また計測センサ１１２と処理回路１１４とをまとめてワン・チップ化し、計測回路チップ１００として構成することもできる。
【００６１】
走査・制御装置１３０は、スリット光の走査制御を行う回路であり、処理回路１１４から供給される水平走査信号や走査クロック信号などの各種制御信号に応じ、スリット光を発するライン状光源１３２のオン・オフ制御や、偏向装置１３４におけるミラーの偏向角度の制御を行う。
【００６２】
画像取り込み装置２００は、処理回路１１４から投影角度画像や輝度画像を取得し、投影角度画像から対象物体４の三次元形状を計算する。画像取り込み装置２００は、計算した三次元形状や輝度画像を、付属の表示装置に表示したり、ファイルとして保存したりすることができる。
【００６３】
以上、本発明の好適な実施の形態を説明した。以上説明したように、本実施形態の三次元計測センサは、比較的小さい回路規模で、特許文献１や非特許文献２に示された従来技術と同等の投影角度画像を生成することができる。例えば非特許文献２の回路構成では、画素ごとに４フレーム分のフレームメモリと比較回路が必要となるのに対し、本実施形態では、画素の行ごとにピークホールド回路３０，タイミング検出回路３２，Ａ／Ｄ変換回路３４等を設ければ足りるので、非特許文献２よりも回路規模を小さくできる。
【００６４】
なお、図３，４等に示した回路構成はあくまで一例に過ぎず、本発明の範囲内で様々な変形が可能である。
【００６５】
例えば図３，４等に示した構成では、距離信号を生成するのに水平走査信号を積分したが、これはあくまで一例である。この代替となる構成として図７及び図８にそれぞれ示す構成がある。
【００６６】
図７の構成において、波形メモリ４０には、図４の距離信号生成回路３２４で生成される距離信号の時間波形と同等の波形データを登録されている。登録する波形データは、水平走査期間内での入射光のピーク位置を求めるためのカウンタのカウンタ値（すなわち水平走査期間の開始からの経過時間）を横軸にとり、それら各カウンタ値に対し、そのカウンタ値のタイミングで入射光の最大ピークを検出した場合に水平走査期間の終了時点において出力される距離信号の値を縦軸の値としてプロットした波形データである。
【００６７】
タイミング制御部１６から発せられる水平走査のクロックに従い、この波形メモリ４０に登録された距離信号の値が順に出力される。この値は、Ｄ／Ａ変換器（ＤＡＣ）４２によりアナログ信号に変換され、各行のサンプルホールド回路４４に入力される。
【００６８】
このサンプルホールド回路４４には、サンプル・ホールド動作を制御するための制御信号として、ピークタイミング検出信号、すなわち図４の構成における微分回路３２２の出力信号が与えられる。ここで、微分回路３２２の出力は、図５の（ｃ）に示したように、信号ライン１２からの入力信号が水平走査期間における最大ピークに達するまでの間は、小さいピークに応じてレベルの上下を繰り返すが、最大のピークに達した時点でＨレベルからＬレベルに立ち下がった以降は水平走査期間の終了時点までＬレベルを維持する。したがって、サンプルホールド回路４４が矩形パルスの立ち下がりにおいてＤ／Ａ変換器４２から入力される信号をホールドするようにすれば、最終的な水平走査期間の終了時点では、サンプルホールド回路４４からは、図４の距離信号生成回路３２４と同じ大きさの距離信号が出力されることになる。
【００６９】
このように図７の構成は、図３及び図４の構成における距離信号生成回路３２４を、波形メモリ４０，Ｄ／Ａ変換器４２，及びサンプルホールド回路４４に代えたものと捉えることができる。サンプルホールド回路４４以降の構成は図示を省略したが、これは図３と図４を用いて説明した上記実施形態と同様の構成でよい。このような構成でも図３及び図４と同様の処理が実行可能なことは了解されるであろう。
【００７０】
図７は波形メモリ４０から読み出した距離信号のレベル値をいったんアナログ信号に変換しサンプルホールド回路４４にてホールドしたが、図８の構成は距離（すなわち入射光のピーク位置）をデジタル値のまま処理するものである。
【００７１】
図８の構成では、図３及び図４の構成における距離信号生成回路３２４，Ａ／Ｄ変換器３４及びラッチ回路（図示省略）に代えて、カウンタ５０，ルックアップテーブル（ＬＵＴ）５２，及びデジタルメモリ５４が設けられている。
【００７２】
図８の構成において、カウンタ５０は、水平走査期間の開始時にリセットされ、タイミング制御部１６から供給される水平走査のためのクロック信号をカウントアップする。このカウンタ５０のカウント値は水平走査期間の開始時点から入射光のピークの検出時点までの時間を示し、これは原理的には、画素行列の行の走査開始側の端から、その行における入射光のピークの位置までの距離に比例する。したがって、原理的には、カウンタ５０のカウント値を、ピークタイミング検出信号、すなわち微分回路３２２の出力、の立ち下がりのタイミングでデジタルメモリ５４にラッチすれば、信号ライン１２からの入力信号の最大のピークまでの小さなピークに対応する微分出力の上下で何度かデジタルメモリ５４に保持されるカウンタ値は更新される可能性はあるものの、最大のピーク以降は更新されないので、水平走査期間の終了時点では、その行における入射光のピーク位置を原理的に示すカウンタ値がデジタルメモリ５４に保持されていることになる。したがって、水平走査期間の終了時点で各行のデジタルメモリ５４が保持する値を読み出せば、その期間における各行の最高輝度位置の情報を得ることができる。
【００７３】
ただし、水平走査期間の開始時点からの入射光のピーク検出時点までの経過時間と、行の走査開始側端部から入射光のピーク位置までの距離とは必ずしも比例するとは限らない。また、その経過時間と距離との関係に計測センサごとの個体差ができることも考えられる。そこで、図８の例では、そのような経過時間と距離との関係の非線形性や個体差を吸収すべく、ＬＵＴ５２を設けている。ＬＵＴ５２には、カウンタ５０のカウント値に対応する「行の走査開始側端部から入射光のピーク位置までの距離」の値が登録されている。ＬＵＴ５２は、カウンタ５０から入力されるカウント値に対応する距離の値を出力する。この距離の値が、ピークタイミング検出信号の立ち下がりのタイミングでデジタルメモリ５４にラッチされるわけである。このようにＬＵＴ５２を用いることで、より正確なピーク位置の情報を求めることができる。
【００７４】
このような構成でも図３及び図４と同様の処理が実行可能なことは了解されるであろう。
【００７５】
なお、上述のようにＬＵＴ５２を用いることにより個体差等を校正する効果が得られるが、図７の構成でも、波形メモリ４０に登録する波形データを調整することで同様の校正効果を得ることができる。また、図３及び図４のセンサ構成では、三角法に基づく座標演算を行う後段の演算装置に距離信号の値と実際のピーク位置との関係を示すルックアップテーブルを持たせ、Ａ／Ｄ変換器３４でデジタル化されたデータを、その演算装置で補正してから座標演算を行うようにすれば、同様の校正が可能である。
【００７６】
図９に、更に別の回路構成の例を示す。図９において、図３と同じ構成要素には同一符号を付し、詳細な説明は省略する。
【００７７】
図９の回路構成において、タイミング制御・水平走査部１４ａは、図３の回路構成における水平走査回路１４とタイミング制御部１６とを合わせたものであり、図示の都合上、このようにまとめて表示した。
【００７８】
図９の構成は、図３の構成におけるピークホールド回路３０，タイミング検出回路３２，Ａ／Ｄ変換器３４及びデータラッチの代わりに、Ａ／Ｄ変換器６０，データラッチ６２，コンパレータ６４，データメモリ６６，カウンタ回路６８を備える。このうちＡ／Ｄ変換器６０，データラッチ６２，コンパレータ６４及びデータメモリ６６は、各信号ライン１２に対して１つずつ設けられる。
【００７９】
Ａ／Ｄ変換器６０は、信号ライン１２を流れる信号を、所定のサンプルタイミングごとにサンプリングし、デジタル値に変換して出力する。Ａ／Ｄ変換器６０の出力は、コンパレータ６４とデータラッチ６２に入力される。コンパレータ６４は、Ａ／Ｄ変換器６０の出力と、データラッチ６２から供給されるデジタル値とを比較する。そして、比較の結果前者が後者より大きければＨレベルの信号を、前者が後者より小さければＬレベルの信号を出力する。データラッチ６２は、コンパレータ６４からＨレベルの信号が入力された場合、そのときＡ／Ｄ変換器６０から供給されているデジタル値をラッチする。また、コンパレータ６４からＬレベルの信号が入力されているときは、データラッチ６２は、以前から保持しているデジタル値を保持し続ける。またデータラッチ６２は、１水平走査期間の終了後、次の１水平走査期間が始まるまでの間にリセットされる。このようなデータラッチ６２の動作によれば、１水平走査期間内のある時点では、データラッチ６２には、そのラッチ６２に対応する信号ライン１２を流れた信号のその時点まで（より厳密にはその時点の直前のサンプルタイミング以前）の最大値が保持されることになる。コンパレータ６４は、データラッチ６２が保持するその最大値と、現サンプルタイミングでの信号ライン１２上の信号の値とを比較するのである。したがって、コンパレータ６４からは、図５の（ｃ）の微分出力とほぼ同様の信号が出力されることになる。
【００８０】
カウンタ回路６８は、１水平走査期間の開始から終了まで、一定間隔でカウント値をカウントアップしていく。カウント値のカウント間隔は、１ライン上の個々の画素回路１１を識別出来る時間間隔（すなわち水平走査期間を１ラインの画素数で割った時間）より短い期間とする。カウンタ回路６８のカウント値は、１水平走査期間の終了から次の１水平走査期間の開始までの間に、タイミング制御・水平走査部１４ａから入力されるタイミング信号に応じてリセットされる。したがって、カウンタ回路６８が出力するカウント値は、１ライン上での水平方向位置を示した値となる。カウンタ回路６８のカウント値は、各信号ライン１２に対応するデータメモリ６６に供給されている。データメモリ６６は、そのカウント値を、コンパレータ６４から入力される信号の立ち下がりのタイミングでラッチする。
【００８１】
このような回路構成によれば、１水平走査期間終了時点では、各データメモリ６６には、それぞれ対応する信号ライン１２上でのスリット光の入射位置に相当するカウント値が保持されることになる。以降の処理は、図３の構成と同じでよい。
【００８２】
この回路構成でも、図３，７，８の構成と同様に、三次元形状の情報を求めることができる。
【００８３】
更に別の回路構成を図１０に示す。図１０において、図９に示した要素に相当する要素には同一符号を付して詳細な説明を省略する。
【００８４】
上記図９の回路構成では、各信号ライン１２の信号をＡ／Ｄ変換器６０でデジタル化し、コンパレータ６４で比較していたが、この図１０の回路構成では、その比較をアナログで実行する。以下詳細に説明する。
【００８５】
信号ライン１２を流れる信号は、コンパレータ７２とラッチ７０に入力される。コンパレータ７２は、信号ライン１２上の信号と、ラッチ７０から供給される信号とを比較し、比較の結果前者が後者より大きければＨレベルの信号を、前者が後者より小さければＬレベルの信号を出力する。ラッチ７０は、コンパレータ７２からＨレベルの信号が入力された場合、そのとき信号ライン１２から供給されている信号を保持する。このようなラッチ７０はサンプル・ホールド回路として構成することができ、コンパレータ７２の出力がこの回路に対するサンプル動作を指示するトリガ信号となる。また、コンパレータ７２からＬレベルの信号が入力されているときは、ラッチ７０は、以前から保持している信号レベルを保持し続け、その信号をコンパレータ７２に供給する。またラッチ７０は、１水平走査期間の終了後、次の１水平走査期間が始まるまでの間にリセットされる。
【００８６】
このような回路構成でも、図９の回路構成におけるコンパレータ６４の出力と同様の信号をコンパレータ７２からデータメモリ６６に供給することができる。したがって、図９と同様、１水平走査期間終了時点では、各データメモリ６６には、それぞれ対応する信号ライン１２上でのスリット光の入射位置に相当するカウント値が保持されることになる。以降の処理は、図３の構成と同じでよい。したがって、この回路構成でも、図３，７，８，９の構成と同様に、三次元形状の情報を求めることができる。
【００８７】
以上説明したように、本発明に各実施形態によれば、非特許文献２や特許文献１に示された回路構成よりも簡素な回路構成で、同等のデータを獲得することができる三次元形状計測センサ、及びこれを用いた計測装置を提供することができる。
【図面の簡単な説明】
【００８８】
【図１】光切断法による三次元形状計測の原理を説明するための図である。
【図２】実施形態における三次元計測センサの計測原理を説明するための図である。
【図３】実施形態における三次元計測センサの回路構成例を示す図である。
【図４】ピークホールド回路とタイミング検出回路の回路構成例を示す図である。
【図５】図３の回路構成例の各部での信号のタイミングチャートを示す図である。
【図６】実施形態のセンサを用いた三次元形状計測装置のシステム構成例を示す図である。
【図７】三次元計測センサの回路構成の別の例の主要部を示す図である。
【図８】三次元計測センサの回路構成の更に別の例の主要部を示す図である。
【図９】三次元計測センサの回路構成の更に別の例の主要部を示す図である。
【図１０】三次元計測センサの回路構成の更に別の例の主要部を示す図である。
【符号の説明】
【００８９】
１０  光検出器、１１  画素回路、１２  信号ライン、１４  水平走査回路、１５  アドレスライン、１６  タイミング制御部、１８  位置検出部、２０  カウンタ、２２  記録処理部、３０  ピークホールド回路、３２  タイミング検出回路、３４  Ａ／Ｄ変換器、３６  データ出力ライン。
【図１】
2006112978.tif 000003
【図２】
2006112978.tif 000004
【図３】
2006112978.tif 000005
【図４】
2006112978.tif 000006
【図５】
2006112978.tif 000007
【図６】
2006112978.tif 000008
【図７】
2006112978.tif 000009
【図８】
2006112978.tif 000010
【図９】
2006112978.tif 000011
【図１０】
2006112978.tif 000012