(57)【特許請求の範囲】
【請求項１】
物体に参照光を投射する投光手段と、
物体像を結像して電気信号に変換する撮影手段とを備え、
前記参照光を投射せずに前記物体を撮影する２次元画像入力と、
前記参照光を投射して前記物体の形状を計測する３次元入力とを行う３次元入力装置であって、
前記撮影手段は、入射した光の通過を制限する絞りを有し、
前記２次元画像入力を行うときの前記絞りの絞り値と、前記３次元入力を行うときの前記絞りの絞り値とを独立に設定し、それによって前記物体像における被写界深度を独立に調整する制御手段を備え、
前記制御手段は、前記２次元画像入力を行うときに、被写界深度が大きくなるように前記絞りの絞り値を調整する
ことを特徴とする３次元入力装置。
【請求項２】
物体に参照光を投射する投光手段と、
物体像を結像して電気信号に変換する撮影手段とを備え、
前記参照光を投射せずに前記物体を撮影する２次元画像入力と、
前記参照光を投射して前記物体の形状を計測する３次元入力とを行う３次元入力装置であって、
前記撮影手段は、入射した光の通過を制限する絞りを有し、
前記２次元画像入力を行うときの前記絞りの絞り値と、前記３次元入力を行うときの前記絞りの絞り値とを独立に設定し、それによって前記物体像における被写界深度を独立に調整する制御手段を備え、
前記制御手段は、前記３次元入力を行うときに、前記輝度比における背景光成分の割合が小さくなるように前記絞りの絞り値を調整する
ことを特徴とする３次元入力装置。
【請求項３】
物体に参照光を投射する投光手段と、
物体像を結像して電気信号に変換する撮影手段とを備え、
前記参照光を投射せずに前記物体を撮影する２次元画像入力と、
前記参照光を投射して前記物体の形状を計測する３次元入力とを行う３次元入力装置であって、
前記撮影手段は、入射した光の通過を制限する絞りを有し、
前記２次元画像入力を行うときの前記絞りの絞り値と、前記３次元入力を行うときの前記絞りの絞り値とを独立に設定する制御手段を備えており、
前記制御手段は、３次元入力に際して、最小光量の参照光を投射したときの絞り開放での受光量に基づいて仮の絞り値を決め、最大光量の参照光を投射したときの仮の絞り値での受光量の適否を判定し、適正であれば仮の絞り値を計測時の絞り値とし、適正でなければ最大光量の参照光を投射したときの受光量が適正になるまで仮の絞り値の修正と受光量の適否の判定を繰り返す
ことを特徴とする３次元入力装置。
【請求項４】
前記撮像手段は、前記２次元画像入力のための受光デバイスと、前記３次元入力のための受光デバイスと、これら受光デバイスに共通の結像レンズ系と、当該結像レンズ系を通過した光を各受光デバイスに振り分ける光学部材とを有しており、
前記絞りは、前記結像レンズ系と前記光学部材との間の光路内に配置されている
請求項１ないし請求項３のいずれかに記載の３次元入力装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、物体に参照光を投射して物体形状を計測する３次元入力装置に関する。
【０００２】
【従来の技術】
レンジファインダと呼称される非接触型の３次元入力装置は、接触型に比べて高速の計測が可能であることから、ＣＧシステムやＣＡＤシステムへのデータ入力、身体計測、ロボットの視覚認識などに利用されている。
【０００３】
レンジファインダに好適な計測方法としてスリット光投影法（光切断法ともいう）が知られている。この方法は、物体を光学的に走査して距離画像（３次元画像）を得る方法であり、特定の参照光を照射して物体を撮影する能動的計測方法の一種である。距離画像は、物体上の複数の部位の３次元位置を示す画素の集合である。スリット光投影法では、参照光として投射ビームの断面が直線帯状であるスリット光が用いられる。
【０００４】
レンジファインダの中には２次元カラー撮影機能を有したものがある。撮影された２次元画像は、内蔵又は外付けのディスプレイによってモニタ表示され、ユーザーが３次元計測の画角を決める際の参考情報として利用される。また、３次元計測と同一の画角で２次元撮影が行われ、得られた２次元画像が３次元データと合わせて計測結果として出力され又は記憶される。２次元画像を見れば計測した物体が何であるかをユーザーが容易に認識することができ、２次元画像を利用して３次元データの修正や加工を行うこともできる。
【０００５】
【発明が解決しようとする課題】
従来のレンジファインダでは、物体で反射して光電変換の受光面に入射する参照光の光量をできるだけ多くするため、受光光路内に絞りは設けられていなかった。そして、２次元撮影については電子シャッタによる自動露光制御を行い、３次元計測については参照光の投射強度を調整することによって、受光面における入射光量が最適化されていた。このような構成であることから、２次元撮影では被写界深度を大きくすることができず、レンズの収差を無視できないという問題があった。Ｓ／Ｎ比が小さいという問題もあった。また、３次元計測では、投射強度を小さくした場合に背景光の影響が大きくなって計測の精度が低下するという問題があった。
【０００６】
本発明は、３次元計測と２次元撮影とをそれぞれに適した露出及び被写界深度で行い、出力データの品質を高めることを目的としている。
【０００７】
【課題を解決するための手段】
請求項１の発明の装置は、物体に参照光を投射する投光手段と、物体像を結像して電気信号に変換する撮影手段とを備え、前記参照光を投射せずに前記物体を撮影する２次元画像入力と、前記参照光を投射して前記物体の形状を計測する３次元入力とを行う３次元入力装置であって、前記撮影手段は、入射した光の通過を制限する絞りを有し、前記２次元画像入力を行うときの前記絞りの絞り値と、前記３次元入力を行うときの前記絞りの絞り値とを独立に設定し、それによって前記物体像における被写界深度を独立に調整する制御手段を備え、前記制御手段は、前記２次元画像入力を行うときに、被写界深度が大きくなるように前記絞りの絞り値を調整する。
請求項２の３次元入力装置においては、２次元画像入力を行うときの前記絞りの絞り値と、前記３次元入力を行うときの前記絞りの絞り値とを独立に設定し、それによって前記物体像における被写界深度を独立に調整する制御手段を備え、前記制御手段は、前記３次元入力を行うときに、前記輝度比における背景光成分の割合が小さくなるように前記絞りの絞り値を調整する。
【０００８】
請求項３の発明の３次元入力装置において、前記制御手段は、３次元入力に際して、最小光量の参照光を投射したときの絞り開放での受光量に基づいて仮の絞り値を決め、最大光量の参照光を投射したときの仮の絞り値での受光量の適否を判定し、適正であれば仮の絞り値を計測時の絞り値とし、適正でなければ最大光量の参照光を投射したときの受光量が適正になるまで仮の絞り値の修正と受光量の適否の判定とを繰り返す。
請求項４の発明の３次元入力装置において、前記撮影手段は、前記２次元画像入力のための受光デバイスと、前記３次元入力のための受光デバイスと、これら受光デバイスに共通の結像レンズ系と、当該結像レンズ系を通過した光を各受光デバイスに振り分ける光学部材とを有しており、前記絞りは、前記結像レンズ系と前記光学部材との間の光路内に配置されている。
【０００９】
【発明の実施の形態】
図１は本発明に係る計測システム１の構成図である。
計測システム１は、スリット光投影法によって立体計測を行う３次元カメラ（レンジファインダ）２と、３次元カメラ２の出力データを処理するホスト３とから構成されている。
【００１０】
３次元カメラ２は、物体Ｑ上の複数のサンプリング点の３次元位置を特定する計測データとともに、物体Ｑのカラー情報を示す２次元画像及びキャリブレーションに必要なデータを出力する。三角測量法を用いてサンプリング点の座標を求める演算処理はホスト３が担う。
【００１１】
ホスト３は、ＣＰＵ３ａ、ディスプレイ３ｂ、キーボード３ｃ、及びマウス３ｄなどから構成されたコンピュータシステムである。ＣＰＵ３ａには計測データ処理のためのソフトウェアが組み込まれている。ホスト３と３次元カメラ２との間では、オンライン及び可搬型の記録メディア４によるオフラインの両方の形態のデータ受渡しが可能である。記録メディア４としては、光磁気ディスク（ＭＯ）、ミニディスク（ＭＤ）、メモリカードなどがある。
【００１２】
図２は３次元カメラ２の外観を示す図である。
ハウジング２０の前面に投光窓２０ａ及び受光窓２０ｂが設けられている。投光窓２０ａは受光窓２０ｂに対して上側に位置する。内部の光学ユニットＯＵが射出するスリット光（所定幅ｗの帯状のレーザビーム）Ｕは、投光窓２０ａを通って計測対象の物体（被写体）に向かう。スリット光Ｕの長さ方向Ｍ１の放射角度φは固定である。物体の表面で反射したスリット光Ｕの一部が受光窓２０ｂを通って光学ユニットＯＵに入射する。また、光学ユニットＯＵには“背景光”の変動を検出するためのフリッカセンサとして光電変換回路が組み込まれている。背景光とは、物体を照らすスリット光Ｕ以外の光である。なお、光学ユニットＯＵは、投光軸と受光軸との相対関係を適正化するための２軸調整機構を備えている。
【００１３】
ハウジング２０の上面には、ズーミングボタン２５ａ，２５ｂ、手動フォーカシングボタン２６ａ，２６ｂ、及びシャッタボタン２７が設けられている。図２（ｂ）のように、ハウジング２０の背面には、液晶ディスプレイ２１、カーソルボタン２２、セレクトボタン２３、キャンセルボタン２４、アナログ出力端子３２、デジタル出力端子３３、及び記録メディア４の着脱口３０ａが設けられている。
【００１４】
液晶ディスプレイ（ＬＣＤ）２１は、操作画面の表示手段及び電子ファインダとして用いられる。撮影者は背面の各ボタン２１〜２４によって撮影モードの設定を行うことができる。アナログ出力端子３２からは、２次元画像信号が例えばＮＴＳＣ形式で出力される。ディジタル出力端子３３は例えばＳＣＳＩ端子である。
【００１５】
図３は３次元カメラ２の機能構成を示すブロック図である。図中の実線矢印は電気信号の流れを示し、破線矢印は光の流れを示している。
３次元カメラ２は、上述の光学ユニットＯＵを構成する投光側及び受光側の２つの光学系４０，５０、及びフリッカセンサ７６を有している。
【００１６】
光学系４０において、半導体レーザ（ＬＤ）４１が射出する波長６７０ｎｍのレーザビームは、投光レンズ系４２を通過することによってスリット光Ｕとなり、ガルバノミラー（走査手段）４３によって偏向される。半導体レーザ４１のドライバ４４、投光レンズ系４２の駆動系４５、及びガルバノミラー４３の駆動系４６は、システムコントローラ６１によって制御される。
【００１７】
光学系５０に入射した光は、ズームユニット５１と絞り７５とを順に経た後、ビームスプリッタ５２で分光される。半導体レーザ４１の発振波長帯域の光は、計測用のセンサ５３に入射する。可視帯域の光は、モニタ用のカラーセンサ５４に入射する。センサ５３及びカラーセンサ５４は、どちらもＣＣＤエリアセンサである。なお、ＣＣＤセンサは、積分領域（蓄積領域）及び転送領域を有しており、積分領域での積分動作が完了すると複数の画素の電荷を転送領域へ一括に移し、転送領域から外部へ各画素の電荷を順次出力する。図示のとおり、絞り７５はズームユニット５１とビームスプリッタ５２との間に配置されており、センサ５３及びカラーセンサ５４の両方に対する光量調整手段となっている。絞り７５を制御するレンズコントローラ５８には、システムコントローラ６１から絞り値が与えられる。ズームユニット５１は内焦型であり、入射光の一部がオートフォーカシング（ＡＦ）に利用される。ＡＦ機能は、ＡＦセンサ５７とレンズコントローラ５８とフォーカシング駆動系５９とによって実現される。ズーミング駆動系６０は電動ズーミングのために設けられている。
【００１８】
フリッカセンサ７６は、ホトトランジスタ、ホトダイオードといった光電変換デバイスを主体に構成されており、背景光の変動成分に応じた信号をフリッカ検出器７７へ出力する。フリッカ検出器７７は、フリッカセンサ７６からの信号に基づいて背景光の変動周期を検出し、検出結果をシステムコントローラ６１へ通知する。具体的には入力信号を２値化し、背景光の変動に同期したパルスを出力する。
【００１９】
３次元カメラ２における物体情報の流れは次のとおりである。
まず、センサ５３による撮像情報は、ドライバ５５からのクロックに同期して出力処理回路６２へ転送される。出力処理回路６２は、センサ５３の出力する各画素の光電変換信号を増幅する増幅器、及び光電変換信号を８ビットの受光データに変換するＡＤ変換部を有している。出力処理回路６２で得られた受光データは重心演算回路７３に入力されて一時的に記憶される。その際のアドレス指定はメモリ制御回路６３Ａが行う。重心演算回路７３は、入力された受光データに基づいて３次元位置を算出するための基となるデータを算出し、それを出力用メモリ６４に出力する。また、重心演算回路７３は、計測対象の物体の形状に対応した濃淡画像（距離画像）を生成し、それを表示用メモリ７４に出力する。ＬＣＤ２１の画面は、表示用メモリ７４に記憶された濃淡画像、カラー画像メモリ６９に記憶されたカラー画像などを表示する。重心演算回路７３の構成及び動作については後で詳述する。
【００２０】
一方、カラーセンサ５４による撮像情報は、ドライバ５６からのクロックに同期してカラー処理回路６７へ転送される。カラー処理を受けた撮像情報は、ＮＴＳＣ変換回路７０及びアナログ出力端子３２を経てオンライン出力され、又はディジタル画像生成部６８で量子化されてカラー画像メモリ６９に格納される。その後、カラー画像メモリ６９からＳＣＳＩコントローラ６６へカラー画像データが転送され、ディジタル出力端子３３からオンライン出力され、又は計測データと対応づけて記録メディア４に格納される。なお、カラー画像は、センサ５３による距離画像と同一の画角の像であり、ホスト３側におけるアプリケーション処理に際して参考情報として利用される。カラー情報を利用する処理としては、例えばカメラ視点の異なる複数組の計測データを組み合わせて３次元形状モデルを生成する処理、３次元形状モデルの不要の頂点を間引く処理などがある。システムコントローラ６１は、図示しないキャラクタジェネレータに対して、ＬＣＤ２１の画面上に適切な文字や記号を表示するための指示を与える。
【００２１】
図４は投光レンズ系４２の構成を示す模式図である。図４（ａ）は正面図であり、図４（ｂ）は側面図である。
投光レンズ系４２は、コリメータレンズ４２１、バリエータレンズ４２２、及びエキスパンダレンズ４２３の３つのレンズから構成されている。半導体レーザ４１が射出したレーザビームに対して、次の順序で適切なスリット光Ｕを得るための光学的処理が行われる。まず、コリメータレンズ４２１によってビームが平行化される。次にバリエータレンズ４２２によってレーザビームのビーム径が調整される。最後にエキスパンダレンズ４２３によってビームがスリット長さ方向Ｍ１に拡げられる。
【００２２】
バリエータレンズ４２２は、撮影距離及び撮影の画角に係わらず、センサ５３に３以上の複数画素分の幅のスリット光Ｕを入射させるために設けられている。駆動系４５は、システムコントローラ６１の指示に従って、センサ５３上でのスリット光Ｕの幅ｗを一定に保つようにバリエータレンズ４２２を移動させる。バリエータレンズ４２２と受光側のズームユニット５１とは連動する。
【００２３】
ガルバノミラー４３による偏向の以前にスリット長を拡げることにより、偏向の後で行う場合に比べてスリット光Ｕの歪みを低減することができる。エキスパンダレンズ４２３を投光レンズ系４２の最終段に配置することにより、すなわちガルバノミラー４３に近づけることにより、ガルバノミラー４３を小型化することができる。
【００２４】
図５は計測システム１における３次元位置の算出の原理図である。同図では理解を容易にするため、受光量のサンプリングについて５回分のみが示されている。
【００２５】
センサ５３の撮像面Ｓ２上で複数画素分となる比較的に幅の広いスリット光Ｕを物体Ｑに照射する。具体的にはスリット光Ｕの幅を５画素分とする。スリット光Ｕは、サンプリング周期毎に撮像面Ｓ２上で１画素ピッチｐｖだけ移動するように、図５の上から下に向かって偏向され、それによって物体Ｑが走査される。サンプリング周期毎にセンサ５３から１フレーム分の受光データ（光電変換情報）が出力される。なお、この偏向は実際には等角速度で行われる。
【００２６】
撮像面Ｓ２の１つの画素ｇに注目すると、本実施形態においては、走査中に行う３２回のサンプリングによって３２回分の受光データが得られる。これら３２回分の受光データに対する重心演算によって、注目画素ｇがにらむ範囲の物体表面をスリット光Ｕの光軸が通過するタイミング（時間重心Ｎｐｅａｋ又は重心ｉｐ）を求める。
【００２７】
物体Ｑの表面が平面であって光学系の特性によるノイズがない場合には、注目画素ｇの受光量は、図５（ｂ）に示すように、スリット光Ｕが通過するタイミングにおいて多くなり、通常、正規分布に近くなる。同図のようにｎ回目とその１つ前の（ｎ−１）回目の間のタイミングで受光量が最大であった場合には、そのタイミングが時間重心Ｎｐｅａｋとほぼ一致する。
【００２８】
求めた時間重心Ｎｐｅａｋにおけるスリット光の照射方向と、注目画素に対するスリット光の入射方向との関係に基づいて、物体Ｑの位置（座標）を算出する。これにより、撮像面の画素ピッチｐｖで規定される分解能より高い分解能の計測が可能となる。
【００２９】
なお、注目画素ｇの受光量は物体Ｑの反射率に依存する。しかし、サンプリングの各受光量の相対比は受光の絶対量に係わらず一定である。つまり、物体色の濃淡は計測精度に影響しない。
【００３０】
図６はセンサ５３の読出し範囲を示す図である。
図６のように、センサ５３における１フレームの読出しは、撮像面Ｓ２の全体ではなく、高速化を図るために撮像面Ｓ２の一部である有効受光領域（帯状画像）Ａｅのみを対象に行われる。有効受光領域Ａｅは、ある照射タイミングでの撮像面Ｓ２における物体Ｑの計測可能距離範囲ｄ’（図１８参照）に対応する領域であり、スリット光Ｕの偏向に伴ってフレーム毎に１画素分ずつシフトする。本実施形態では、有効受光領域Ａｅのシフト方向の画素数は３２に固定されている。ＣＣＤエリアセンサの撮影像の一部のみを読み出す手法は、特開平７−１７４５３６号公報に開示されている。
【００３１】
図７はセンサ５３の撮像面Ｓ２におけるラインとフレームとの関係を示す図、図８〜１０は各フレームの受光データの記憶状態を示す図である。
図７に示すように、撮像面Ｓ２の最初のフレーム１には、ライン１からライン３２までの３２（ライン）×２００画素分の受光データが含まれる。フレーム２はライン２からライン３３まで、フレーム３はライン３からライン３４までというように、フレーム毎に１ライン分だけシフトされる。フレーム３２はライン３２からライン６３までである。なお、上述したように１ラインを２００画素としている。
【００３２】
これらフレーム１からフレーム３２までの受光データが、出力処理回路６２を介して重心演算回路７３の内部のメモリ７３０に順次転送され、図８に示す状態で記憶される。つまり、メモリ７３０には、フレーム１、２、３…の順に受光データが記憶される。各フレームに含まれるライン３２のデータは、フレーム１については３２ライン目、フレーム２については３１ライン目というように、フレーム毎に１ラインづつ上方にシフトされている。フレーム１からフレーム３２までの受光データがメモリ７３０に記憶されると、ライン３２の各画素について、時間重心Ｎｐｅａｋの算出が行われる。
【００３３】
ライン３２についての演算が行われている間に、フレーム３３の受光データがメモリ７３０に転送されて記憶される。図９に示すように、フレーム３３の受光データは、メモリ７３０のフレーム３２の次の領域に記憶される。フレーム３３のデータがメモリ７３０に記憶されると、これらフレーム２からフレーム３３までに含まれるライン３３の各画素について、時間重心Ｎｐｅａｋの算出が行われる。
【００３４】
ライン３３についての演算が行われている間に、フレーム３４の受光データがメモリ７３０に転送されて記憶される。図１０に示すように、フレーム３４の受光データは、フレーム１の記憶されていた領域に上書きされる。この時点ではフレーム１のデータは処理済であるため、上書きにより消去しても差し支えないからである。フレーム３４のデータがメモリ７３０に記憶されると、ライン３４の各画素について、時間重心Ｎｐｅａｋの算出が行われる。フレーム３４の受光データについての処理が終わると、フレーム３５の受光データがフレーム２の記憶されていた領域に上書きされる。
【００３５】
このようにして、最終のラインであるライン２３１まで、合計２００ライン分についての時間重心Ｎｐｅａｋの算出が行われる。
上述のように、メモリ７３０に記憶された受光データのうち、順次不要になったデータの記憶された領域に新規の受光データを上書きして記憶するので、メモリ７３０の容量が低減される。
【００３６】
次に、重心演算回路７３の構成及び重心演算回路７３による時間重心Ｎｐｅａｋの算出処理について説明する。
図１１は時間重心Ｎｐｅａｋの概念を示す図、図１２は重心演算回路７３の構成を示すブロック図、図１３はデータ転送のタイミングの概念を示す図である。
【００３７】
図１１に示すように、時間重心Ｎｐｅａｋは３２回のサンプリングによって得られた３２個の受光データについての重心である。各画素についての３２個の受光データに、１〜３２のサンプリング番号を付す。ｉ番の受光データはｘｉで表される。ｉは１〜３２の整数である。このとき、ｉは、１つの画素について、その画素が有効受光領域Ａｅに入ってからのフレーム数を示している。
【００３８】
１〜３２番の受光データｘ１〜ｘ３２についての重心ｉｐは、３２個の受光データについて、ｉ・ｘｉの総和Σｉ・ｘｉをｘｉの総和Σｘｉで除すことにより求められる。すなわち、
【００３９】
【数１】
0004111592.tif 000002
【００４０】
となる。
重心演算回路７３は、メモリ７３０から読み出したデータに基づいて、各画素についての重心ｉｐ（すなわち時間重心Ｎｐｅａｋ）を算出する。ただし、メモリ７３０から読み出したデータをそのまま用いるのではなく、各データから定常光データｋｓを減算した値（その値が負になるときは０）を用いる。つまり、センサ５３から出力される受光データに対して、定常光データｋｓの分だけ差し引いてオフセットを与えるのである。
【００４１】
定常光データｋｓは、スリット光Ｕが入射していないときの画素の受光データに基づいて算出されるデータである。定常光データｋｓは、予め定めた固定値を用いてもよく、又はセンサ５３から出力されるデータを用いてリアルタイムで求めてもよい。固定値とする場合には、センサ５３の出力が８ビット（２５６階調）である場合に、例えば「５」「６」又は「１０」などとする。リアルタイムで求める場合には、１つの注目画素についての３２個の受光データの前後各２画素分の受光データのそれぞれの平均値を求め、平均値の小さい方を定常光データｋｓとすればよい。その理由は、有効受光領域Ａｅの前後のいずれかにおいてはスリット光Ｕが入射していないから、これによってスリット光Ｕが入射していないときの受光データをリアルタイムで確実に求めることができるからである。また、前後各２画素分の受光データの平均値の大きい方を定常光データｋｓとしてもよい。３２個の受光データの前の２画素分の受光データの平均値、又は３２個の受光データの後の２画素分の受光データの平均値を用いてもよい。１画素分の受光データを用いてもよい。さらに、物体Ｑの形状又は受光データに含まれるノイズの状態によっては、それらの値にさらに所定値（例えば「５」）を加算した値を定常光データｋｓとして用い、これによりオフセットを大きくし、不要なノイズ成分をいっそう確実にカットするようにしてもよい。なお、それらの場合に、１フレームの大きさは、３６ライン又は３４ライン又は３３ラインとなるが、重心ｉｐの算出には３２ライン分の３２個のデータを用いればよい。
【００４２】
図１２のように、重心演算回路７３は、メモリ７３０、定常光データ記憶部７３１、減算部７３２、第１加算部７３３、第２加算部７３４、及び除算部７３５からなる。これらはハード回路により構成されるが、これらの全部又は一部をソフトウエアにより構成することも可能である。
【００４３】
定常光データ記憶部７３１は定常光データｋｓを記憶する。減算部７３２は受光データから定常光データｋｓを減算する。ここで、減算部７３２から出力されるデータをあらためて受光データｘｉとする。第１加算部７３３は、ｉ・ｘｉをｉ＝１〜３２について加算し、その合計値を出力する。第２加算部７３４は、ｘｉをｉ＝１〜３２について加算し、その合計値を出力する。除算部７３５は、第１加算部７３３の出力値を第２加算部７３４の出力値で除し、重心ｉｐを出力する。除算部７３５から出力された重心ｉｐは、表示用メモリ７４に記憶される。また、第１加算部７３３の出力値及び第２加算部７３４の出力値は、出力用メモリ６４の所定エリア６４ａ，６４ｂに記憶される。出力用メモリ６４に記憶されたデータは、ＳＣＳＩコントローラ６６を介してディジタル出力端子３３からホスト３に出力され、又は記録メディア４に格納される。ホスト３において、これらのデータに基づいて３次元位置演算処理が行われ、またこれらのデータの信頼性が判定される。
【００４４】
重心演算回路７３では、３２個のデータが入力された時点で、除算部７３５が重心ｉｐを出力する。続いて、２画素目のデータ、３画素目のデータというように、２００画素目のデータまで順に処理を行い、ライン３２についての重心ｉｐの算出を終了する。ライン３２についての重心ｉｐの算出を終えると、続いて、ライン３３、ライン３４、ライン３５というように、ライン２３１まで計２００ラインの全部について重心ｉｐの算出を行う。
【００４５】
表示用メモリ７４に記憶された重心ｉｐは、ＬＣＤ２１の画面に表示される。重心ｉｐは、計測対象の物体Ｑの表面の位置に関連し、物体Ｑの表面の位置が３次元カメラ２に近い場合に重心ｉｐの値が大きくなり、遠い場合に重心ｉｐの値が小さくなる。したがって、重心ｉｐを濃度データとして濃淡画像を表示させることにより距離分布を表現することができる。
【００４６】
このような重心ｉｐの精度を高めるため、３次元カメラ２では次のとおり背景光を考慮した制御が行われる。
図１４は背景光の変動の影響を説明するための図、図１５は背景光の変動による重心ｉｐのずれの防止方法を説明するための図である。
【００４７】
例えば蛍光灯で照明された室内のように背景光量が周期的に変化する環境で計測を行う場合には、センサ５３のフレーム周期と背景光の変動周期との干渉によりセンサ５３の出力には図１４（ｂ）に斜線で示すようにフレーム毎に異なるオフセット成分（背景光成分）が生じる。このような状態で図１４（ａ）に示す分布のスリット光が入射したとすると、センサ５３には図１４（ｃ）に示す分布の光が入射することになる。この結果、センサ５３によるフレーム周期の積分で得られた各フレームの受光データは図１４（ｄ）のようになる。これらの受光データに基づいた算出した重心ｉｐ’と本来の重心ｉｐとの間にはズレが生じてしまう。
【００４８】
このズレを防止するため、システムコントローラ６１はフリッカ検出器７７で検出した背景光の変動周波数ｆ［Ｈｚ］に対してセンサ５３のフレーム周波数がｆ／ｍ［Ｈｚ］になるようにドライバ５５を制御する。ｍは任意の整数である。つまり、センサ５３のフレーム周期を背景光の変動周期のｍ倍とする。図１５ではｍ＝１、すなわちｆ［Ｈｚ］のフレーム周波数でセンサ５３を駆動する場合を表している。
【００４９】
フレーム周期と背景光の変動周期とが一致するので、各フレームのオフセット成分は図１５（ｂ）のようにフレーム間で均等になる。このため、背景光とスリット光を加算したセンサ５３の入射光は、図１５（ｃ）のように周期的に変化するものの、入射光をフレーム周期で積分して得られた受光データは図１５（ｄ）のように全てのフレームについて一定のオフセット成分が重畳した値となるため、これらの受光データに基づく重心演算の結果は本来の重心ｉｐと一致する。
【００５０】
次に、３次元カメラ２及びホスト３の動作を計測の手順と合わせて説明する。上述したように、計測のサンプリング点数を２００×２６２とする。すなわち、撮像面Ｓ２におけるスリットＵの幅方向の画素数は２６２であり、実質的なフレーム数Ｎは２３１である。
【００５１】
ユーザー（撮影者）は、ＬＣＤ２１が表示するカラーモニタ画像を見ながら、カメラ位置と向きを決め、画角を設定する。その際に必要に応じてズーミング走査を行う。これらの操作が行われている間は、レンズコントローラ５８はカラーセンサ５４に対する絞り調整を行い、ＬＣＤ２１は露出制御されたカラーモニタ画像を表示する。ユーザーが計測（距離画像の取得）の開始を指示すると、レンズコントローラ５８はセンサ５３への入射光量が最適になるように絞り値を調整する。なお、カラー画像メモリ６９に格納するカラー画像の取得に際しては、レンズコントローラ５８はカラーセンサ５４への入射光量が最適になるように絞り値を調整する。距離画像の取得とカラー画像の取得は同時には行われず、距離画像の取得期間の直前又は直後のタイミングでカラー画像が取得される。
【００５２】
このように絞り値をカラー画像と距離画像とで切り換えることにより、次の効果が生じる。
〔１〕受光レンズの色収差によるピントのボケの影響を受けない被写界深度を確保できる。
〔２〕距離画像の測定レンジの全域に渡ってピントが合う。
〔３〕距離画像の背景光成分とレーザ光成分の輝度比を一定に制御できる。
〔４〕カラー画像のダイナミックレンジを確保し、且つＳ／Ｎ比を高めることが可能となる。
【００５３】
図１６は３次元カメラ２におけるデータの流れを示す図、図１７はホスト３における３次元位置演算の処理手順を示すフローチャート、図１８は光学系の各点と物体Ｑとの関係を示す図である。
【００５４】
ユーザーによる画角選択操作（ズーミング）に応じて、ズームユニット５１のバリエータ部の移動が行われる。また、フォーカシング部の移動による手動又は自動のフォーカシングが行われる。フォーカシングの過程でおおよその対物間距離ｄ0 が測定される。
【００５５】
このような受光系のレンズ駆動に呼応して、投光側のバリエータレンズ４２２の移動量が図示しない演算回路によって算出され、算出結果に基づいてバリエータレンズ４２２の移動制御が行われる。
【００５６】
システムコントローラ６１は、レンズコントローラ５８を介して、フォーカシングエンコーダ５９Ａの出力（繰り出し量Ｅｄ）及びズーミングエンコーダ６０Ａの出力（ズーム刻み値ｆｐ）を読み込む。システムコントローラ６１の内部において、歪曲収差テーブルＴ１、主点位置テーブルＴ２、及び像距離テーブルＴ３が参照され、繰り出し量Ｅｄ及びズーム刻み値ｆｐに対応した撮影条件データがホスト２へ出力される。ここでの撮影条件データは、歪曲収差パラメータ（レンズ歪み補正係数ｄ１，ｄ２）、前側主点位置ＦＨ、及び像距離ｂである。前側主点位置ＦＨは、ズームユニット５１の前側端点Ｆと前側主点Ｈとの距離で表される。前側端点Ｆは固定であるので、前側主点位置ＦＨにより前側主点Ｈを特定することができる。
【００５７】
システムコントローラ６１は、半導体レーザ４１の出力（レーザ強度）及びスリット光Ｕの偏向条件（走査開始角、走査終了角、偏向角速度）を算定する。この算定方法を詳しく説明する。
【００５８】
まず、おおよその対物間距離ｄ0 に平面物体が存在するものとして、センサ５３の中央で反射光を受光するように投射角設定を行う。以下で説明するレーザ強度の算定のためのパルス点灯は、この設定された投射角で行う。
【００５９】
次に、レーザ強度を算定する。レーザ強度の算定に際しては、人体を計測する場合があるので、安全性に対する配慮が不可欠である。そこで、最初に最小強度ＬＤｍｉｎでＬＤ４１をパルス点灯し、センサ５３の出力を取り込む。このとき、絞り７５は絞り値Ｆ（ＯＰＥＮ）の開放状態となるように制御される。取り込んだ複数画素分の信号のうちの最大値ＭＡＸ［Ｓｏｎ（ＬＤｍｉｎ），Ｆ（ＯＰＥＮ）］と適正レベルＳｔｙｐとの比を算出し、仮の絞り値Ｆ（ＬＤ１）を設定する。この絞り値Ｆ（ＬＤ１）はレーザ強度が最大のときの入射光を最も絞り込むことのできる値である。
【００６０】
【数２】
0004111592.tif 000003
【００６１】
続いて、レーザ強度ＬＤを安全レベル限界の最大値ＬＤｍａｘとし、絞り値Ｆ（ＬＤ１）で再びパルス点灯してセンサ５３の出力を取り込む。取り込んだ信号［Ｓｏｎ（ＬＤｍａｘ），Ｆ（ＬＤ１）］が適正レベルＳｔｙｐ又はそれに近い値であれば、絞り値Ｆ（ＬＤ１）を計測時の絞り値Ｆｓと決める。他の場合には、ＭＡＸ［Ｓｏｎ（ＬＤｍａｘ，Ｆ（ＬＤ１））］から再びＦ（ＬＤ１）を再計算し、新たな絞り値Ｆ（ＬＤ１）でのセンサ５３の出力と適正レベルＳｔｙｐを比較する。センサ５３の出力が許容範囲内の値となるまで、絞り値Ｆ（ＬＤ１）の仮設定と適否の確認を繰り返す。
【００６２】
なお、センサ５３の出力の取り込みは撮像面Ｓ２の全面を対象に行う。これはオートフォーカシング（ＡＦ）による受動的な距離計算では、スリット光Ｕの受光位置を高精度に推定することが難しいためである。センサ５３における電荷の積分時間は１フィールド時間（例えば１／６０秒）であり、実際の計測時に於ける積分時間より長い。このため、パルス点灯を行うことにより計測時と等価なセンサ出力を得る。
【００６３】
次に、投射角と、レーザ強度が決定したときのスリット光Ｕの受光位置とから三角測量によって対物間距離ｄを決定する。
最後に、決定された対物間距離ｄに基づいて、偏向条件を算出する。偏向条件の算定に際しては、対物間距離ｄの測距基準点である受光系の前側主点Ｈと投光の起点ＡとのＺ方向のオフセットｄｏｆｆを考慮する。また、走査方向の端部においても中央部と同様の計測可能距離範囲ｄ’を確保するため、所定量（例えば８画素分）のオーバースキャンを行うようにする。走査開始角ｔｈ１、走査終了角ｔｈ２、偏向角速度ωは、次式で表される。
【００６４】
ｔｈ１＝ｔａｎ-1〔β×ｐｖ（ｎｐ／２＋８）＋Ｌ）／（ｄ＋ｄｏｆｆ）〕  ×１８０／π
ｔｈ２＝ｔａｎ-1〔−β×ｐｖ（ｎｐ／２＋８）＋Ｌ）／（ｄ＋ｄｏｆｆ）〕×１８０／π
ω＝（ｔｈ１−ｔｈ２）／ｎｐ
β：撮像倍率（＝ｄ／実効焦点距離ｆｒｅａｌ）
ｐｖ：画素ピッチ
ｎｐ：撮像面Ｓ２のＹ方向の有効画素数
Ｌ：基線長
このようにして算出された条件で次に本発光に移り、物体Ｑの走査（スリット投影）が行われ、上述の出力処理回路６２、及び重心演算回路７３を経て出力用メモリ６４に記憶されたデータＤ６２がホスト２へ送られる。同時に、偏向条件（偏向制御データ）及びセンサ５３の仕様などを示す装置情報Ｄ１０も、ホスト３へ送られる。表１は３次元カメラ２がホスト３へ送る主なデータをまとめたものである。
【００６５】
【表１】
0004111592.tif 000004
【００６６】
図１７のように、ホスト３においては、３次元位置演算処理が実行され、これによって２００×２００個のサンプリング点（画素）の３次元位置（座標Ｘ，Ｙ，Ｚ）が算定される。サンプリング点はカメラ視線（サンプリング点と前側主点Ｈとを結ぶ直線）とスリット面（サンプリング点を照射するスリット光Ｕの光軸面）との交点である。
【００６７】
図１７において、まず３次元カメラ２から送られてきたｘｉの総和Σｘｉが所定値を上回っているかどうかを判定する（＃１１）。ｘｉが小さい場合、つまりスリット光成分の総和Σｘｉが所定の基準に満たない場合には誤差を多く含んでいるので、その画素については３次元位置の算出を実行しない。そして、その画素については「エラー」を示すデータを設定して記憶する（＃１７）。Σｘｉが所定値を上回っている場合には十分な精度が得られるので、３次元位置の算出を実行する。
【００６８】
３次元位置の算出に先立って、スリット光Ｕの通過タイミングｎｏｐを算出する（＃１２）。通過タイミングｎｏｐは、ｉ＝１〜３２について（Σｉ・ｘｉ）／（Σｘｉ）を計算して重心ｉｐ（時間重心Ｎｐｅａｋ）を求め、これにライン番号を加算することによって算出される。
【００６９】
すなわち、算出された重心ｉｐは、その画素の出力が得られている３２フレーム内のタイミングであるので、ライン番号を加えることによって走査開始からの通過タイミングｎｏｐに変換する。具体的には、ライン番号は、最初に算出されるライン３２の画素については「３２」、次のライン３３については「３３」となる。注目画素ｇのラインが１つ進む毎にライン番号は１つ増大する。しかし、これらの値は他の適当な値とすることが可能である。その理由は、３次元位置を算出する際に、係数である後述の（３）式におけるＸ軸周りの回転角（ｔｈｅ１）及びＸ軸周りの角速度（ｔｈｅ４）などをキャリブレーションにより適切に設定することができるからである。
【００７０】
そして３次元位置算出を行う（＃１３）。算出された３次元位置は、その画素に対応するメモリ領域に記憶し（＃１４）、次の画素について同様の処理を行う（＃１６）。総ての画素についての処理が終わると終了する（＃１５でイエス）。
【００７１】
次に、３次元位置の算出方法について説明する。
カメラ視線方程式は次の（１）式及び（２）式である。
（ｕ−ｕ０）＝（ｘｐ）＝（ｂ／ｐｕ）×〔Ｘ／（Ｚ−ＦＨ）〕  …（１）
（ｖ−ｖ０）＝（ｙｐ）＝（ｂ／ｐｖ）×〔Ｙ／（Ｚ−ＦＨ）〕  …（２）
ｂ：像距離
ＦＨ：前側主点位置
ｐｕ：撮像面における水平方向の画素ピッチ
ｐｖ：撮像面における垂直方向の画素ピッチ
ｕ：撮像面における水平方向の画素位置
ｕ０：撮像面における水平方向の中心画素位置
ｖ：撮像面における垂直方向の画素位置
ｖ０：撮像面における垂直方向の中心画素位置
スリット面方程式は（３）式である。
【００７２】
【数３】
0004111592.tif 000005
【００７３】
幾何収差は画角に依存する。歪はほぼ中心画素を中心として対象に生じる。したがって、歪み量は中心画素からの距離の関数で表される。ここでは、距離の３次関数で近似する。２次の補正係数をｄ１、３次の補正係数をｄ２とする。補正後の画素位置ｕ’，ｖ’は（４）式及び（５）式で与えられる。
【００７４】
0004111592.tif 000006
上述の（１）式及び（２）式において、ｕに代えてｕ’を代入し、ｖに代えてｖ’を代入することにより、歪曲収差を考慮した３次元位置を求めることができる。なお、キャリブレーションについては、電子情報通信学会研究会資料ＰＲＵ91-113［カメラの位置決めのいらない画像の幾何学的補正］小野寺・金谷、電子情報通信学会論文誌Ｄ-II vol. J74-D-II No.9 pp.1227-1235,'91/9 ［光学系の３次元モデルに基づくレンジファインダの高精度キャリブレーション法］植芝・吉見・大島、などに詳しい開示がある。
【００７５】
図１９は３次元カメラ２の制御の概略を示すフローチャートである。
システムコントローラ６１は、電源投入時の初期化が終わると、シャッタボタン２７がオンされるまで２次元の撮影とその撮影像の表示とを繰り返す（＃２１〜＃２４）。そして、システムコントローラ６１は、シャッタボタン２７のオンに呼応して、予備測定（＃２５）、２次元画像入力（＃２６）、３次元測定（＃２７）、及び出力制御（＃２８）の各処理を順に実行する。出力制御ルーチンでは、ホスト３又は記録メディア４へのデータ出力、及び距離画像の表示の制御を行う。
【００７６】
図２０は２次元画像入力サブルーチンのフローチャートである。
カラー画像の撮像に適した絞り値を設定し、ドライバ５６を制御してカラー画像を取得する（＃２２１、＃２２２）。
【００７７】
図２１は予備測定サブルーチンのフローチャートである。
このルーチンでは、まず上述した要領で絞り値Ｆｓを決める（＃２５１〜＃２５６）。すなわち、絞り７５を開放して最小レーザ強度でスリット光を投射し、そのときのセンサ５３の出力から仮の絞り値を設定する。そして、最大レーザ強度でスリット光を投射し、センサ５３の出力が許容範囲になるまで仮の絞り値を変えてスリット光を投射する一連の処理を繰り返す。センサ５３の出力が許容範囲になるれば、そのときの仮の絞り値を測定に用いる絞り値Ｆｓとする。
【００７８】
次に、フリッカ検出器７７の出力に基づいて背景光の変動周期を検知する（＃２５７）。例えばフリッカ検出器７７が出力するパルスのエッジ間隔をカウントすればよい。通常、背景光の変動周波数は商用電源周波数（５０／６０Ｈｚ）であるので、予想される複数の周期のいずれであるかを判別する処理を行ってもよい。
【００７９】
図２２は３次元測定サブルーチンのフローチャートである。
予備測定で得られた情報に基づいて、絞り７５、センサ５３のフレーム周期、及び走査速度（スリット光Ｕの偏向速度）を設定し、その後に測定を行う（＃２７１〜＃２７４）。絞り７５の設定には予備測定処理で決めた絞り値Ｆｓを適用し、フレーム周期の設定には背景光の変動周期の検知結果を適用する。走査速度はフレーム周期を短くするときには速く、逆に長くするときには遅くする。
【００８０】
上述の実施形態によると、スリット光Ｕの通過タイミングｎｏｐを受光量のピークタイミングに基づいて検出するのではなく、有効受光領域Ａｅに入っている所定期間（本実施形態では３２ライン分の期間）内における重心演算で算出される重心ｉｐに基づいて検出するので、ノイズの影響を受け難い。また、予め決められた期間の出力を使用するので、ピーク検出回路が不要である。
【００８１】
上述の実施形態においては、所定期間を有効受光領域Ａｅに入っている全期間である３２ライン分としたので、計測可能距離範囲ｄ’内にある物体Ｑに対して確実に時間重心Ｎｐｅａｋを算出することができる。しかし、例えば、受光量のピークの存在する前後における適当な期間、例えばピークの前後１５ライン分、１０ライン分、５ライン分などとすることも可能である。このように、所定期間をピークとの関連で定めることとすると、物体Ｑの表面からの正規の検出光以外の光による影響を少なくすることができる。
【００８２】
上述の実施形態では、データＤ６２に基づいて３次元位置を算出したが、重心演算回路７３で求めた重心ｉｐのデータに基づいて３次元位置を算出してもよい。また、３次元位置を算出する演算をホスト３が担うものであるが、３次元カメラ２に３次元位置を算出する演算機能を設けてもよい。３次元位置をルックアップテーブル方式で算定することも可能である。受光側の光学系５０において、ズームユニット５１に代えて交換レンズによって撮像倍率を変更してもよい。その他、３次元カメラ２、ホスト３、又は計測システム１の全体又は各部の構成、処理内容又は順序、処理タイミングなどは、本発明の主旨に沿って適宜変更することができる。
【００８３】
【発明の効果】
請求項１ないし請求項４の発明によれば、３次元計測と２次元撮影とをそれぞれに適した露出及び被写界深度で行うことができ、出力データの品質を高めることができる。
【図面の簡単な説明】
【図１】本発明に係る計測システムの構成図である。
【図２】３次元カメラの外観を示す図である。
【図３】３次元カメラの機能構成を示すブロック図である。
【図４】投光レンズ系の構成を示す模式図である。
【図５】計測システムにおける３次元位置の算出の原理図である。
【図６】センサの読出し範囲を示す図である。
【図７】センサの撮像面におけるラインとフレームとの関係を示す図である。
【図８】各フレームの受光データの記憶状態を示す図である。
【図９】各フレームの受光データの記憶状態を示す図である。
【図１０】各フレームの受光データの記憶状態を示す図である。
【図１１】時間重心の概念を示す図である。
【図１２】重心演算回路の構成を示すブロック図である。
【図１３】データ転送のタイミングの概念を示す図である。
【図１４】背景光の変動の影響を説明するための図である。
【図１５】背景光の変動による重心ｉｐのずれの防止方法を説明するための図である。
【図１６】３次元カメラにおけるデータの流れを示す図である。
【図１７】ホストにおける３次元位置演算の処理手順を示すフローチャートである。
【図１８】光学系の各点と物体との関係を示す図である。
【図１９】３次元カメラの制御の概略を示すフローチャートである。
【図２０】２次元画像入力サブルーチンのフローチャートである。
【図２１】予備測定サブルーチンのフローチャートである。
【図２２】３次元測定サブルーチンのフローチャートである。
【符号の説明】
２  ３次元カメラ（３次元入力装置）
４０  光学系（投光手段）
５０  光学系（撮影手段）
５１  ズームユニット（結像レンズ系）
５２  ビームスプリッタ（光学部材）
５３  センサ（受光デバイス）
５４  カラーセンサ（受光デバイス）
６１  システムコントローラ（制御手段）
７５  絞り
Ｕ  スリット光（参照光）
Ｑ  物体
【図１】
0004111592.tif 000007
【図２】
0004111592.tif 000008
【図３】
0004111592.tif 000009
【図４】
0004111592.tif 000010
【図５】
0004111592.tif 000011
【図６】
0004111592.tif 000012
【図７】
0004111592.tif 000013
【図８】
0004111592.tif 000014
【図９】
0004111592.tif 000015
【図１０】
0004111592.tif 000016
【図１１】
0004111592.tif 000017
【図１２】
0004111592.tif 000018
【図１３】
0004111592.tif 000019
【図１４】
0004111592.tif 000020
【図１５】
0004111592.tif 000021
【図１６】
0004111592.tif 000022
【図１７】
0004111592.tif 000023
【図１８】
0004111592.tif 000024
【図１９】
0004111592.tif 000025
【図２０】
0004111592.tif 000026
【図２１】
0004111592.tif 000027
【図２２】
0004111592.tif 000028