明 細 書
3次元形状検出装置、撮像装置、及び、 3次元形状検出プログラム 技術分野
[0001] 本発明は、パターン光を用いて対象物体の 3次元形状を検出する 3次元形状検出 装置、撮像装置、及び、 3次元形状検出プログラムに関する。
背景技術
[0002] 従来より、対象物体としてホワイトボードや書籍等を撮像し、その撮像画像から対象 物体の 3次元形状を検出することで、ホワイトボードや書籍等を、その正面に対して 斜め方向となる位置力 撮像したとしても、あた力も正面力 撮像したように、その撮 像画像を補正する補正手段を備えた撮像装置が知られている。例えば、特開平 9 2 89611号公報 (以下、文献 1と記す)の図 1等には、そのような補正手段を備えた可 搬型のデジタルカメラが開示されて ヽる。
[0003] 上述した補正手段に必要なパラメータとしての対象物体の 3次元形状を検出する技 術として、特許 3282331号公報(以下、文献 2と記す)の第 10段落、図 3等には、ノ ターン光の一例であるスリット光が投光された状態の対象物体を撮像したスリット光投 光時画像と、スリット光が投光されて 、な 、状態の対象物体を撮像したスリット光非投 光時画像との減算を行うことでスリット光を抽出し、その抽出したスリット光に基づいて 対象物体の 3次元形状を検出する据え置き型の 3次元形状測定装置が開示されて いる。
発明の開示
[0004] しかしながら、上述した 3次元形状測定装置は据え置き型で、撮像時の自由度が制 限され不便であるため、 3次元形状測定装置は可搬型であることが望ましい。しかし ながら、 3次元形状測定装置を可搬型とした場合には、「手ぶれ」によってスリット光投 光時画像の撮像位置と、スリット光非投光時画像の撮像位置とがずれる場合がある。 このような場合、当然にスリット光投光時画像とスリット光非投光時画像との間にもず れが生じ、スリット光投光時画像とスリット光非投光時画像との減算を行ったとしても、 正確にスリット光を抽出できな 、と 、う問題点があった。
[0005] 本発明は、上述した問題点を解決するためになされたものであり、パターン光投光 画像内からパターン光の軌跡を構成する画素を検出する検出処理を高速に且つ高 精度に行うことができる 3次元形状検出装置、撮像装置、及び、 3次元形状検出プロ グラムを提供することを目的として ヽる。
[0006] 上記目的を達成する為、本発明の一つの側面によれば、パターン光を投光する投 光手段と、パターン光が投光される状態における対象物体のパターン光投光画像を 撮像する撮像手段と、前記撮像手段によって撮像されたパターン光投光画像から抽 出される前記パターン光の軌跡に基づき、対象物体の 3次元形状を算出する 3次元 形状算出手段とを備え、以下のように構成された 3次元形状検出装置が提供される。 すなわち、この 3次元形状検出装置は、前記パターン光投光画像内から、その X軸 方向に延びる前記パターン光の軌跡の一部を含む第 1領域を設定する第 1領域設 定手段と、前記第 1領域設定手段で設定される第 1領域内から前記パターン光の軌 跡の一部を構成する複数の画素を検出する第 1検出手段と、前記第 1検出手段で検 出される複数の画素に基づき、前記パターン光の軌跡に関する近似曲線を算出する 近似曲線算出手段と、前記近似曲線算出手段で算出される近似曲線に基づき、前 記パターン光投光画像内から前記パターン光の軌跡の残り部分を構成する画素を 検出するための第 2領域を設定する第 2領域設定手段とを備える。前記パターン光 の軌跡は、前記第 1検出手段で検出される複数の画素と、前記第 2領域設定手段で 設定される前記第 2領域内から検出される画素とに基づき抽出される。
[0007] このような構成の 3次元形状検出装置によれば、第 2領域設定手段は、パターン光 の軌跡の残り部分を構成する画素を検出するための第 2領域をパターン光の軌跡に 関する近似曲線に基づき設定する。したがって、第 2領域内には、かかる画素が含ま れる可能性が極めて高ぐ余分な領域内をも検出して、パターン光を構成する画素 以外の画素を検出してしまう等の弊害を抑制することができる。従って、パターン光投 光画像内からパターン光の軌跡を構成する画素を検出する検出処理を高精度に行 うことができるという効果が得られる。
[0008] 本発明の別の側面によれば、パターン光が投光されている状態における対象物体 を撮像したパターン光投光画像から抽出されるパターン光の軌跡に基づき、対象物
体の 3次元形状を算出する 3次元形状算出ステップを備えた 3次元形状検出プロダラ ムであって、以下のように構成されたプログラムが提供される。すなわち、このプロダラ ムは、前記パターン光投光画像内から前記パターン光の軌跡の一部を含む第 1領域 を設定する第 1領域設定ステップと、その第 1領域設定手段で設定される第 1領域内 力 前記パターン光の軌跡の一部を構成する画素を検出する第 1検出ステップと、そ の第 1検出手段で検出される画素に基づき、前記パターン光の軌跡に関する近似曲 線を算出する近似曲線算出ステップと、その近似曲線算出手段で算出される近似曲 線に基づき、前記パターン光投光画像内から前記パターン光の軌跡の残り部分を構 成する画素を検出するための第 2領域を設定する第 2領域設定ステップとを備える。 前記パターン光の軌跡は、前記第 1検出ステップで検出される複数の画素と、前記 第 2領域設定ステップで設定された前記第 2領域内から検出される画素とに基づき抽 出される。
[0009] このような 3次元形状検出プログラムによれば、上述した 3次元形状検出装置による 効果と同様な効果が得られる
図面の簡単な説明
[0010] [図 1]図 1 (a)は撮像装置の外観斜視図であり、図 1 (b)は撮像装置 1の概略断面図 である。
[図 2]図 2は、スリット光投光ユニットの構成を示す図である。
[図 3]図 3 (a)および図 3 (b)は、スリット光の角度幅を説明するための図である。
[図 4]図 4は、撮像装置の電気的構成を示したブロック図である。
[図 5]図 5は、プロセッサでの処理手順を示すフローチャートである。
[図 6]図 6 (a)および図 6 (b)は、スリット光軌跡抽出処理の原理を説明するための図 である。
[図 7]図 7は、スリット光軌跡抽出処理を示すフローチャートである。
[図 8]図 8は、スリット光重心位置計算処理を示すフローチャートである。
[図 9]図 9は、近似曲線算出処理を示すフローチャートである。
[図 10]図 10は、近似曲線を更新する場合の処理を示すフローチャートである。
[図 11]図 11は、スリット光無画像内にぉ 、て対応画素を探索する際の探索範囲を設
定する方法を説明するための図である。
[図 12]図 12 (a)は、スリット光が照射されている状態の原稿 Pの撮像画像を示してい る。図 12 (b)は、スリット光検出位置 cXにおける周辺画素を模式的に示した拡大図 である。
[図 13]図 13は、手ぶれ量を考慮してスリット光無画像内の探索範囲を設定する方法 を説明するための図である。
[図 14]図 14は、図 12 (a)の A部分を模式的に示した拡大図である。
[図 15]図 15は、図 12 (a)の B部分を模式的に示した拡大図である。
[図 16]図 16は、ファイルされた状態の原稿を撮像した撮像画像を示す図である。
[図 17]図 17 (a)および図 17 (b)は、スリット光有画像を示した図である。
[図 18]図 18 (a)および図 18 (b)は、 3次元空間位置算出方法を説明するための図で める。
[図 19]図 19 (a)から図 19 (c)は、原稿姿勢演算の際の座標系を説明するための図で める。
[図 20]図 20は、平面変換処理を示すフローチャートである。
符号の説明
[0011] 1 撮像装置 (3次元形状検出装置を含む)
20 スリット光投光ユニット (パターン光投光手段)
32 CCD画像センサ (撮像手段)
421 カメラ制御プログラム (撮像手段)
422 スリット光軌跡抽出プログラム
423 三角測量演算プログラム
424 原稿姿勢演算プログラム (3次元形状算出手段)
425 平面変換プログラム (平面画像補正手段)
429 近似曲線算出プログラム (近似曲線算出手段)
発明を実施するための最良の形態
[0012] 以下、本発明の好ましい実施例について、添付図面を参照して説明する。図 1 (a) は本発明の撮像装置 1の外観斜視図であり、図 1 (b)は撮像装置 1の概略断面図で
ある。尚、本発明の実施形態としての 3次元形状検出装置は撮像装置 1に含まれる 装置である。本発明の実施形態としての 3次元形状検出プログラムは、撮像装置 1に おいて CPU41 (図 4参照)の制御の下で実行されるプログラムである。
[0013] 撮像装置 1は、方形箱形の本体ケース 10と、本体ケース 10の正面に設けられた結 像レンズ 31と、結像レンズ 31の後方 (撮像装置 1の内部側)に設けられた CCD画像 センサ 32とを有する。撮像装置 1は、更に、結像レンズ 31の下方に設けられたスリット 光投光ユニット 20と、本体ケース 10に内蔵されたプロセッサ 40と、本体ケース 10の 上部に設けられたレリーズボタン 52及びモード切替スィッチ 59と、本体ケース 10に 内蔵されるメモリカード 55とを有する。これらの構成品は図 4に示すように、それぞれ 信号線により繋がっている。
[0014] 更に、撮像装置 1には、撮像装置 1による撮像範囲を使用者が決定する際に利用 するものとして、本体ケース 10の背面に設けられた LCD (Liquid Crystal Displa y) 51と、本体ケース 10の背面力も前面を通して配設されるファインダ 53とが装備さ れている。
[0015] 結像レンズ 31は、複数枚のレンズで構成されている。撮像装置 1はオートフォー力 ス機能を有し、自動で焦点距離及び絞りを調整することにより、外部力ゝらの光が CCD 画像センサ 32上に結像されるよう撮像レンズ 31を駆動する。
[0016] CCD画像センサ 32は、 CCD (Charge Coupled Device)素子などの光電変換 素子がマトリクス状に配列されて構成されている。 CCD画像センサ 32は、表面に結 像される画像の光の色及び強さに応じた信号を生成し、これをデジタルデータに変 換してプロセッサ 40へ出力する。尚、 CCD素子一つ分のデータが画像を形成する 画素の画素データであり、画像データは CCD素子の数の画素データで構成される。
[0017] レリーズボタン 52は、押しボタン式のスィッチで構成されている。このレリーズボタン 52はプロセッサ 40に接続されおり、プロセッサ 40にて使用者によるレリーズボタン 52 の押し下げ操作が検知される。モード切替スィッチ 59は、 2つの位置に切換え可能 なスライドスィッチなどで構成される。このモード切替スィッチ 59の一方のスィッチ位 置は「ノーマルモード」として、他方のスィッチ位置は「補正撮像モード」として検知さ れるようにプロセッサ 40にて割り当てられている。「ノーマルモード」は、撮像した原稿
Pそのものを画像データとするモードである。「補正撮像モード」は、原稿 Pを斜め方 向から撮像した場合に、その画像データを、原稿 Pが正面力ゝら撮像されたよう補正さ れた画像データとするモードである。
[0018] メモリカード 55は、不揮発性で書き換え可能なメモリで構成され、本体ケース 10に 着脱可能である。
[0019] LCD51は、画像を表示する液晶ディスプレイなどで構成され、プロセッサ 40からの 画像信号を受けて画像を表示する。プロセッサ 40から LCD51に対しては、状況に 応じて CCD画像センサ 32で受光したリアルタイムの画像や、メモリカード 55に記憶さ れた画像や、装置の設定内容の文字等を表示するための画像信号が送られる。
[0020] ファインダ 53は、光学レンズで構成される。ファインダ 53は、使用者が撮像装置 1の 後ろ側力もファインダ 53をのぞき込んだ時に、結像レンズ 31が CCD画像センサ 32 上に結像する範囲とほぼ一致する範囲が見えるように構成されている。
[0021] 次に、図 2及び図 3を参照して、スリット光投光ユニット 20について説明する。図 2は 、スリット光投光ユニット 20の構成を示す図である。図 3は、スリット光の角度幅を説明 するための図である。スリット光投光ユニット 20は、レーザーダイオード 21と、コリメ一 トレンズ 22と、アパーチャ 23と、透明平板 24と、シリンドリカルレンズ 25と、反射ミラー 26と、ロッドレンズ 27とを有する。
[0022] レーザーダイオード 21は、赤色レーザー光線を放射する。プロセッサ 40からの指 令に応じて、レーザーダイオード 21におけるレーザー光線の放射及び停止が切り換 えられる。レーザーダイオード 21の出力は、最大出力定格 (例えば 5mW)に対して、 レーザービームの広がり角の個体ばらつきを考慮して、アパーチャ 23を通った箇所 で一定の出力(例えば lmW)を得られるように定格出力が調整されている。
[0023] コリメートレンズ 22は、レーザーダイオード 21からのレーザー光線を、スリット光投光 ユニット 20からの基準距離 VP (例えば 330mm)に焦点を結ぶように集光する。
[0024] アパーチャ 23は、矩形に開口された開口部を有する板で構成され、コリメートレン ズ 22からのレーザー光線を開口部で透過して矩形に整形する。
[0025] 透明平板 24は、無垢のガラス材料などの透明な平板で構成され、裏面に ARコート
(無反射コーティング)が施されている。透明平板 24は、アパーチャ 23からのレーザ
一光線の光軸に直交する面に対して、本体ケース 10の正面側に所定角度 |8 (例え ば 33度)傾斜して配設されている。透明平板 24は、アパーチャ 23から入射するレー ザ一光線のパワーの約 5% (約 50 μ W)を表面で反射して、約 95% (約 950 W)を 透過する。尚、透明平板 24によりレーザー光線が反射される方向(撮像装置 1の前 方へ水平面に対して 33度上向きの方向)を第 2の方向と呼ぶ。
[0026] 透明平板 24の裏面に ARコートを施すことにより、透明平板 24内に入射したレーザ 一光線の透明平板 24から出射する際の反射が少なくなり、透明平板 24内でのレー ザ一光線の損失が少なくなるようになつている。また、透明平板 24で反射するレーザ 一光線の割合を、透明平板 24の材質の屈折率より決まる表面反射率 5%として設定 することにより、通常のハーフミラーで実現する場合に必要な、反射面に金属蒸着膜 を形成するプロセスを省略することができる。
[0027] 反射ミラー 26は、鏡など、レーザー光線を全反射する部材で構成される。反射ミラ 一 26は、透明平板 24を透過したレーザー光線の下流に、本体ケース 10の正面側に 45度傾斜して配設され、レーザー光線を全反射して光路の向きを 90度変える。反射 ミラー 26によりレーザー光線が反射される方向(撮像装置 1の前方へ水平面に対して 0度の向き)を第 1の方向と呼ぶ。
[0028] ロッドレンズ 27は、正の焦点距離が短い円筒形状のレンズで構成され、反射ミラー 26で反射されるレーザー光線の下流に、円筒形状の軸方向が垂直方向になるように 配設されている。そして、反射ミラー 26からレーザー光線が入射されると、図 3 (a)に 示すように、焦点距離が短いため、このレーザー光線がすぐに焦点を越えて広がり、 所定の広がり角度 ε (例えば 48度)のスリット光として第 1の方向へ出射される。尚、 ロッドレンズ 27から出射されるスリット光を第 1スリット光 71と呼ぶ。
[0029] ロッドレンズ 27は、正の焦点距離が短い円筒形状のレンズで構成される。ロッドレン ズ 27は、反射ミラー 26で反射されるレーザー光線の下流に、円筒形状の軸方向が 垂直方向になるように配設されている。ロッドレンズ 27は、焦点距離が短い。したがつ て、図 3 (a)に示すように、ロッドレンズ 27を通過したレーザ光線は、ロッドレンズ 27近 傍の焦点位置から直ちに広がり始め、所定の広がり角度 ε (例えば 48度)のスリット 光として第 1の方向へ出射される。以下では、ロッドレンズ 27から出射されるスリット光
を第 1スリット光 71と呼ぶ。
[0030] シリンドリカルレンズ 25は、負の焦点距離となるように一方向が凹形状となったレン ズである。シリンドリカルレンズ 25は、透明平板 24で反射されたレーザー光線の下流 に、第 2の方向に対してレンズ面が直交するように配設さている。図 3 (b)に示すよう に、シリンドリカルレンズ 25は、透明平板 24から入射されるレーザー光線を、広がり 角度 κで広がるスリット光として出射する。以下では、シリンドリカルレンズ 25から出射 されるスリット光を第 2スリット光 72と呼ぶ。シルンドリカルレンズ 25による広がり角度 κは、第 1スリット光 71の広がり角度 εと第 2スリット光 72の広がり角度 κの比が、透 明平板 24によりレーザー光線が分割される際のパワーの比と同等となるようになって いる。つまり、第 2スリット光 72の広がり角度 κは第 1スリット光の広がり角度 εの 5% ( 2. 4度)となっている。
[0031] これらの構成品によって、スリット光投光ユニット 20は、プロセッサ 40からの指令に 応じて、レーザーダイオード 21からレーザー光線を放射して、第 1の方向へ第 1スリツ ト光 71、及び、第 2の方向へ第 2スリット光 72を、本体ケース 10の結像レンズ 31の下 方に設けられた窓 29から出射する。また、レーザーダイオード 21からは赤色レーザ 一光線が放射されるため、その赤色レーザー光線力も生成される第 1スリット光 71と 第 2スリット光 72とは、その分光成分として RGB空間における R、 G、 B値のうち、主に 赤値 Rカゝら構成されることになる。
[0032] 上述したように構成されるスリット光投光ユニット 20によれば、レーザダイオード 21 力も出力されるパワーのうち、透明平板 24で分割される第 1スリット光 71のパワーは 9 5%に対し、第 2スリット光 72のパワーは約 5%と少ない。し力しながら、角度幅あたり のパワーで見ると、広がり角力 8度の第 1スリット光 71の単位角度あたりのパワーが 約 20 /z WZ度で、広がり角が 2. 4度の第 2スリット光 72の単位角度あたりのパワーも 約 21 WZ度であり、これら 2つのスリット光の単位角度当たりのパワーはほぼ同じ である。原稿 Pが基準距離 VPである 330mmの位置にある白色の用紙の場合、第 1 スリット光 71及び第 2スリット光 72による照度は約 1260ルクスとなり、一般的な室内の 明るさである 500— 1000ルクスの場所でも、スリット光の軌跡と原稿 Pとの輝度差が 十分ある。したがって、後述するスリット光軌跡抽出プログラム 422にてスリット光の軌
跡画像を確実に抽出することができる。
[0033] 図 4は、撮像装置 1の電気的構成を示したブロック図である。撮像装置 1に搭載され たプロセッサ 40は、 CPU41、 ROM42、 RAM43を備えている。
[0034] CPU41は、 ROM42に記憶されたプログラムによる処理に応じて、 RAM43を利用 して、レリーズボタン 52の押し下げ操作の検知、 CCD画像センサ 32からの画像デー タの取り込み、画像データのメモリカード 55への書き込み、モード切替スィッチ 59の 状態検出、スリット光投光ユニット 20によるスリット光の出射切り換え等の各種処理を 行う。
[0035] ROM42には、カメラ制御プログラム 421、スリット光軌跡抽出プログラム 422、三角 測量演算プログラム 423、原稿姿勢演算プログラム 424、平面変換プログラム 425、 輝度分散演算プログラム 426、相互相関係数演算プログラム 427、対応画素検索プ ログラム 428、および近似曲線演算プログラム 429が記憶されている。
[0036] カメラ制御プログラム 421は、図 5に示すフローチャートの処理 (詳細は後述する。 ) を含む撮像装置 1全体の制御に関するプログラムである。スリット光軌跡抽出プロダラ ム 422は、スリット光を投光した原稿 Pの画像からスリット光の軌跡を抽出するプロダラ ムである。三角測量演算プログラム 423は、スリット光軌跡抽出プログラム 422で抽出 されたスリット光の軌跡の各画素に対する 3次元空間位置を演算するプログラムであ る。
[0037] 原稿姿勢演算プログラム 424は、第 1スリット光の軌跡 71a及び第 2スリット光の軌跡 72aの 3次元空間位置から、原稿 Pの 3次元形状を推定して求めるプログラムである。 平面変換プログラム 425は、原稿 Pの位置及び姿勢が与えられて、スリット光無画像 格納部 432に格納された画像データを、原稿 Pの正面力も撮像したような画像に変 換するためのプログラムである。輝度分散演算プログラム 426は、スリット光無画像内 の小領域毎に色値に関する標準偏差を演算するためのプログラムである。
[0038] 相互相関係数演算プログラム 427は、スリット光有画像とスリット光無画像とのズレ 量を演算するためのプログラムである。対応画素検索プログラム 428は、スリット光有 画像内から検出された画素力 スリット光無画像内に存在するカゝ否かを検索するプロ グラムである。近似曲線演算プログラム 429は、第 1スリット光の軌跡 71aの一部を構
成する画素力 第 1スリット光の軌跡 71aに関する近似曲線を演算するプログラムで ある。
[0039] RAM43には、スリット光有画像格納部 431、スリット光無画像格納部 432、検出対 象画素値一時格納部 433、三角測量演算結果格納部 434、原稿姿勢演算結果格 納部 435、スリット光軌跡情報格納部 436、手ぶれ量格納部 437、近似曲線格納部 4 38、およびワーキングエリア 439が記憶領域として割り当てられている。
[0040] スリット光有画像格納部 431とスリット光無画像格納部 432には、 CCD画像センサ 3 2からのスリット光有画像とスリット光無画像の画像データが各々格納される。検出対 象画素値一時格納部 433には、スリット光有画像の内の探索範囲に含まれる各画素 についての、赤値 R力 緑値 Gと青値 Bとの平均を減算して求められる赤差分値 Rdと 輝度値 Yとを乗算して得られる値 (Rd'Y値)が格納される。三角測量演算結果格納 部 434には、スリット光有画像の各ポイントの位置を演算した結果が格納される。
[0041] 原稿姿勢演算結果格納部 435には、原稿 Pの位置及び姿勢の演算結果が格納さ れる。スリット光軌跡情報格納部 436には、後述するスリット光重心位置計算処理に おいて計算される重心位置が格納される。手ぶれ量格納部 437には、相互相関係数 演算プログラム 427によって演算されたスリット光有画像とスリット光無画像とのズレ量 が格納される。近似曲線格納部 438には、近似曲線演算プログラム 429によって演 算された近似曲線が格納される。ワーキングエリア 439には、 CPU41での演算のた めに必要なデータが一時的に格納される。
[0042] 次に、図 5のフローチャートを参照して、上述したように構成された撮像装置 1に関 し、使用者によりレリーズボタン 52が押されて力もの動作について説明する。図 5は、 撮像装置 1のプロセッサ 40での処理手順を示すフローチャートである。尚、スリット光 軌跡抽出処理 (S140)、三角測量演算処理 (S160)、原稿姿勢演算処理 (S170)、 平面変換処理 (S 180)の詳細につ 、ては、後述する。
[0043] 使用者によりレリーズボタン 52が押されると、まず、モード切替スィッチ 59のスィッチ の位置が検知され、そのスィッチの位置が「補正撮像モード」の位置である力否かが 判別される(S110)。判別の結果、スィッチの位置が「補正撮像モード」の位置にある 場合には(S 110: Yes)、スリット光投光ユニット 20に対しレーザーダイオード 21の発
光が指令され、第 1スリット光 71及び第 2スリット光 72が出射されてから、スリット光有 画像として、 CCD画像センサ 32から RGB値で表現された画像データが取得される( S120)。さらに、 S120では、読込まれた画像データが、 RAM43のスリット光有画像 格納部 431に格納される。
[0044] スリット光有画像の画像データが読み込まれると(S120)、次に処理はステップ S13 0に進む。ステップ S130では、スリット光投光ユニット 20に対しレーザーダイオード 2 1の発光停止が指令され、第 1スリット光 71及び第 2スリット光 72が出射されなくなると 、スリット光無画像として CCD画像センサ 32から RGB値で表現された画像データが 読み込まれる。さら〖こ、 S 130では、読み込まれた画像データがスリット光無画像格納 部 432に格納される。
[0045] スリット光無画像の画像データを読み込まれると(S130)、処理はステップ S140に 進みスリット光軌跡抽出処理が実行される。すなわち、ステップ S140では、スリット光 軌跡抽出プログラム 422によりスリット光有画像格納部 431に読込まれたスリット光有 画像の画像データ力ゝら各スリット光の軌跡 71a、 72aを構成する画素が検出され、そ の画素に関するデータが検出対象画素値一時格納部 433に格納される。
[0046] スリット光軌跡抽出処理 (S140)が終了すると、次に収差補正処理 (S150)が実行 される。この収差補正処理によって、光軸からの角度に依存する画像の歪みが補正 される。
[0047] 収差補正処理 (S150)が終了すると、三角測量演算処理 (S160)が実行される。
三角測量演算処理 (S160)では、検出対象画素値一時格納部 433に格納されてい る第 1スリット光の軌跡 71a及び第 2スリット光の軌跡 72aを構成する画素に関し、その 画素毎に 3次元空間位置が三角測量演算プログラム 423により演算される。各画素 についての演算結果は、三角測量演算結果格納部 434に格納される。
[0048] 三角測量演算処理 (S160)が終了すると、原稿姿勢演算処理 (S170)が実行され る。原稿姿勢演算処理 (S 170)では、三角測量演算結果格納部 434に格納された 第 1スリット光 71及び第 2スリット光 72のスリット光の軌跡の 3次元空間位置を用いて、 原稿姿勢演算プログラム 424により、原稿 Pの位置及び姿勢が演算される。この演算 結果は、原稿姿勢演算結果格納部 435に格納される。
[0049] 原稿姿勢演算処理 (SI 70)が終了すると、平面変換処理 (S180)が実行される。 平面変換処理 (S 180)では、原稿 Pの位置及び姿勢から、平面変換プログラム 425 により、スリット光無画像格納部 432に記憶された画像データ力 正面から観察され たような画像の画像データに変換される。
[0050] 平面変換処理 (S180)が終了すると、生成された正立画像の画像データはメモリ力 ード 55に書き込まれ (S190)、当該処理は終了する。
[0051] 一方、 S110における判別の結果力 「補正撮像モード」ではなく「ノーマルモード」 の位置の場合には(S 110 : No)、スリット光投光ユニット 20のレーザーダイオード 21 が発光せず、第 1スリット光 71及び第 2スリット光 72が出射されていない状態で、 CC D画像センサ 32からスリット光無画像が読み込まれる(S200)。次に、その画像デー タはメモリカード 55に書き込まれる(S210)。ステップ S210の後、当該処理を終了す る。
[0052] 次に、図 6乃至図 16を参照して、上述したスリット光軌跡抽出処理 (S 140)につい て具体的に説明する。
[0053] まず、図 6を参照して、スリット光有画像内において、スリット光の軌跡を構成する画 素 (スリット光を含む画素)と、スリット光を含まない画素との差異を明確にして、スリット 光有画像からスリット光を含む画素を高精度で抽出するための抽出原理について説 明する。
[0054] 図 6 (a)は、スリット光が照射されて 、る状態の原稿 Pの撮像画像を示して 、る。原 稿 P上には、原稿の幅方向に複数列に並ぶ文字部分 Mと、矩形状に示した照明反 射部分 Sと、円状に囲んで示す主の色成分として赤 (R)成分を持つ印刷部分 Iと、原 稿 Pの幅方向に延びる第 1、第 2スリット光の軌跡 71a, 72aとが形成されている。また 、原稿 Pの幅方向と直交する方向に延びる 1点鎖線はスリット光検出位置を示し、そ のスリット光検出位置と第 1スリット光の軌跡 71aとの交点をスリット光検出画素 Kとす る。
[0055] 図 6 (b)は、スリット光検出位置(図中の 1点鎖線参照)における所定パラメータ値を 示すグラフであり、スリット光検出位置力も各グラフに向力つて真っ直ぐに延長線を引 いた部分力 そのスリット光検出位置の各所定パラメータ値を示している。すなわち、
図 6 (b)の各グラフの縦軸上の位置は、図 6 (a)の図の縦方向の位置に対応して 、る 。所定パラメータとしてグラフ A1は赤値 R、グラフ A2は赤差分値 Rd、グラフ A3は輝 度値 Y、グラフ Α4は赤差分値 Rdと輝度値 Υとの積値 Rd' Υを採用して 、る。
[0056] 赤差分値 Rdは、赤値 R力ゝら緑値 Gと青値 Bとの平均を減算して算出される。即ち、こ の赤差分値 Rdによって、スリット光検出位置において、スリット光の主成分である R成 分に対応する赤値 Rを他の成分 (G値、 B値)より強調させることができ、赤値 Rが緑値 G、青値 Bと近い値を有する画素は、赤差分値 Rd値が低ぐ逆に、赤値 Rが緑値 G、 青値 Bに比べて高 、画素は、赤差分値 Rd値が高 、値となることを示して 、る。
[0057] 輝度値 Yは、スリット光検出位置における各画素の輝度を示すもので、輝度値 Yは 、 YCbCr空間における Y値であり、 RGB空間力も YCbCr空間へは以下の式で変換 される。 Y = 0. 2989水 R+0. 5866水 G + 0. 1145水 BCb=—0. 1687水 R— 0 . 3312水 G + 0. 5000水 BCr= 0. 5000水 R—0. 4183水 G—0. 0816水 B グラフ A1からは、スリット光検出画素 K、 R成分を持つ印刷部分 I、照明反射部分 S では赤値 Rが高いことが分かる。ここで、赤値 Rの高低を基準に、スリット光検出画素 Κを検出しょうとすると、スリット光検出画素 Κが、 R成分を持つ印刷部分 Iや照明反射 部分 Sに含まれている場合には、赤値 Rについて両者に明確な差異がないので、 R 成分を持つ印刷部分 Iや照明反射部分 Sからスリット光検出画素 Κを正確に検出でき ない。
[0058] グラフ Α2からは、照明反射部分 Sは、スリット光検出画素 K、 R成分を持つ印刷部 分 Iより赤差分値 Rdが低いことが分かる。よって、赤差分値 Rdの高低を基準に、スリツ ト光検出画素 Kを検出すれば、スリット光検出画素 Kが照明反射部分 Sに含まれてい たとしても、赤差分値 Rdに関する両者の差異は明確なので照明反射部分 Sからスリ ット光検出画素 Kを正確に検出することは可能である。しかし、スリット光検出画素 K が R成分を持つ印刷部分 Iに含まれている場合には、赤差分値 Rdに関して両者に明 確な差異がないので、 R成分を持つ印刷部分 Iからスリット光検出画素 Kを正確に検 出できない。
[0059] グラフ A3からは、 R成分を持つ印刷部分 Iが、スリット光検出画素 K、照明反射部分 Sより輝度値 Υが低いことが分かる。よって、輝度値 Υの高低を基準に、スリット光検出
画素 Kを検出すれば、たとえスリット光検出画素 Kが R成分を持つ印刷部分 Iに含ま れていたとしても、輝度値 Yに関する両者の差異は明確なので、 R成分を持つ印刷 部分からスリット光検出画素 Kを検出することは可能である。しかし、スリット光検出画 素が照明反射部分 Sに含まれている場合には、輝度値 Yに関して両者に明確な差異 がないので、照明反射部分 Sからスリット光検出画素 Kを正確に検出できない。
[0060] そこで、グラフ A2およびグラフ A3に示す通り、スリット光検出画素 Kは、赤差分値 R dと輝度値 Yとの両方が、照明反射部分 Sや R成分を持つ印刷部分 Iよりも高 ヽ値を有 していることに着目し、その赤差分値 Rdと輝度値 Yとの積値 Rd'Y (以下 Rd'Y値)の 高低を基準に、スリット光を含む画素を検出することとする。
[0061] グラフ A4に示す通り、スリット光検出位置画素 Kの Rd'Y値は、照明反射部分 Sの R d'Y値や R成分を持つ印刷部分 Iの Rd'Y値よりも高いので、たとえスリット光検出画 素 Kが照明反射部分 Sや R成分を持つ印刷部分 Iに含まれて ヽたとしても、 Rd'Y値 に関する両者の差異は明確なので、照明反射部分 Sや R成分を持つ印刷部分 Iから スリット光検出画素 Kを正確に検出することができる。
[0062] 次に、図 7乃至図 10のフローチャートを参照して、スリット光軌跡抽出処理(図 5の S 140)の具体的な処理の流れを説明する。図 7はスリット光軌跡抽出処理のフローチ ヤートである。
[0063] スリット光軌跡抽出処理では、まず、スリット光有画像とスリット光無画像とのズレ量 が計算される(S701)。
[0064] 両画像におけるズレ量は、スリット光有画像とスリット光無画像とは、同時に撮像され ていないため、その間のユーザの「手ぶれ」等に起因して生ずる。両画像のズレ量は 、相互相関係数演算プログラム 427により 2つの画素間の相互相関係数 ccを計算す ることで得ることができる。尚、相互相関係数 ccは 1一 1の値を持ち、最大の値を持 つ位置がズレ量となる。
[0065] 相互相関係数 ccを計算するに当たっては、画像中の特徴ある部分で計算すること が好ましい。黒べた部分、白べた部分、或いは特定の色によるべた部分等において 相互相関係数 CCを計算しても、相互相関係数 CCに明確な差異が得られないためで ある。そこで、相互相関係数 CCを計算するに前に、スリット光無画像内において特徴
ある部分を探索する探索処理が行われる。
[0066] この探索処理では、図 11に示すように、スリット光無画像を 4つの大領域 1一 4に分 け、更に、その各大領域 1一 4を各大領域内の端 (領域 1では右上、領域 2では左上 、領域 3では左下、領域 4では右下)から中央に向力つて小領域に分け、その小領域 毎に輝度 Yの標準偏差が求められる。輝度 Yの標準偏差 σ Υは輝度分散演算プログ ラム 426により以下の数 1、数 2に示す式を使って計算される。
[0067] 尚、数 1にお!/、て (xc、 yc)は小領域中心画素、 Rdは小領域のサイズを 2等分した サイズを示しており、具体的には、画像サイズが 1200pixel X 1600pixel程度の場 合には、小領域のサイズは 41pixel X 41pixel程度(数 1, 2における Rd= 20)で良 い。
[0068] [数 1]
輝度 Yの標準偏差 S y =
[0069] [数 2]
輝度 Yの平均値
各大領域 1一 4内において最大の標準偏差を有する小領域の中心座標を相互相 関係数 ccを求める中心位置 (xc、 yc)として、スリット光有画像とスリット光無画像の 2 画像の中心座標付近の画素の位置の差を (xd, yd)として、各 (xd, yd)における相 互相関係数 cc (xd, yd)を求め、最大の相互相関係数を持つ場合の (xd, yd)をず れ量とすることができる。
[0070] 尚、計算式 (数 3)では、スリット光有画像とスリット光無画像との画素の位置の差を( xd、 yd)とし、スリット光有画像の画素の輝度を Yl、スリット光無画像の輝度を Υ2とす
る。また、画像サイズが 1200pixel X 1600pixel程度の場合には、相互相関係数 cc を求める範囲も 41pixel X 41pixel (Rc = 20)程度でよ!、。
[0071] [数 3] 相互相関係数 CC ( xd,yd ) =
1 yc + Rc ί xc + Rc 、 _v . _
∑ ] ∑ (Yl(x,y)— YlJ[Y2( χ+xd' y+yd )— Y2
(2Rc + l)2 v =: yc - Rc = xc - Rc J yc + Rc XC + Rc / / 、 yc + Rc [ xc + Rc t ―、 ∑ ' ∑ (Yl(x,y)- Yi ∑ \ ∑ (Y2( x+xd. y+yd )- Y2j y - yc - Rc x = xc - Rc y = yc - Rc x = xc - Rc
(2Rc + l)4 (2Rc + 1)4 再び、図 7に戻って説明を続ける。上述した通りに、スリット光有画像とスリット光無 画像とのズレ量が算出されると(S701)、次に、第 2スリット光の軌跡 72aを抽出する 探索範囲を指定する探索パラメータが設定される(S702)。図 12 (a)は、スリット光が 照射されている状態の原稿 Pの撮像画像を模式的に示す図である。図 12 (a)に示す ように、探索パラメータは第 2スリット光の軌跡 72a上の ccdx方向における cX2と、 cc dy方向の yMin2から yMax2までの範囲として設定される。
[0072] 例えば、画像サイズが 1200pixel (幅 W) X 1600pixel (高さ H)の場合には、 cX2 の値としては、撮像画像の幅 Wの画像中心位置が設定され(図 12 (a)の一点鎖線)、 すなわち cX2 = 599の 1点が設定される。 yMin2から yMax2の範囲としては、撮像 画像の上半分の領域である 0から 799の範囲が設定される。
[0073] ccdx方向に関して cX2を 1点に設定するのは、本実施例では、第 1スリット光の軌 跡 71aにより湾曲 φを算出するため、第 2スリット光の軌跡 72aとしては、傾き Θ (実空 間において X軸を中心とした回転角)を求めるのに用いる ccdy軸上の軌跡座標のみ を抽出すれば良いためである。
[0074] 探索パラメータが設定されると (S702)、後述するスリット光重心位置計算処理が実 行される(S703)。次に、スリット光重心位置計算処理 (S703)で算出される重心位 置の画素に対応する画素が、スリット光無画像内に存在するか否かが検索される (S 704)。
[0075] この検索範囲に関し、例えば、図 13に示すように、スリット光有画像からスリット光を 含む画素として検出された画素力 大領域 4内の (xp、 yp)において見つ力つたとす
る。このような場合には、 S701で算出したスリット光無画像内の大領域 4のズレ量 (dx 4、 dy4)を考慮に入れて、 xp + dx4— Rs≤x≤xp + dx4+Rsと、 yp + dy4-Rs≤y ≤yp + dy4+Rsとの範囲で、検出された画素に対応する画素が探索される。
[0076] 尚、対照物体までの距離が 350mm程度、画像サイズが 1200pixel X 1600pixel 程度の場合、手ぶれ量は数 10ピクセル程度なので、 Rsは数 10ピクセル程度で設定 すれば良い。
[0077] スリット光無画像内を検索した結果、対応する画素が検索された場合には(S705: Yes)、その画素はスリット光有画像にも、スリット光無画像にも共通に存在する画素と いうことになる。即ち、スリット光有画像内において検出された画素は、スリット光を含 む画素とは認められないため、計算された重心位置まわりの画素を抽出対象力も外 し(S706)、再び、 S703力ら S705までの処理力 S繰り返免される。
[0078] 一方、対応する画素がスリット光無画像内で検索されなければ (S705 : No)、その 画素はスリット光無画像には存在せず、スリット光有画像固有の画素ということになる 。即ち、その画素は、スリット光を含む画素であると判定され、その計算された重心位 置がスリット軌跡情報格納部 436に記憶される(S707)。
[0079] 次に、第 1スリット光の軌跡 71aを抽出する探索範囲を指定する探索パラメータが設 定される(S708)。この探索パラメータは、図 12 (a)に示すように、 ccdy方向につい て yMinlから yMaxlの範囲として設定される。
[0080] 具体的には、探索パラメータは、撮像画像の下半分の領域の内、 950から 1599の 範囲で設定される。下半分の全部の領域を設定しないのは、本実施例では、第 1スリ ット光 71は結像レンズ 31の光軸と平行で、且つ、結像レンズ 31より下力も照射される ので、第 1スリット光 71の存在する範囲は、原稿 Pを撮像する場合の使用に耐え得る 原稿 Pと結像レンズ 31との距離力も逆算できるため、探索範囲を予め絞りこみ、高速 に処理させるためである。一方、 ccdx方向については、 cXminから cXmaxの範囲で 設定される。
[0081] 探索パラメータが設定されると(S708)、 ccdx方向の検出位置を表す変数 cXを cX cminに設定し(S709)、その位置において ccdy方向の yMinlから yMaxlまでの範 囲内から、スリット光を含む画素の重心位置を求めるベぐ上述した S703力ら S708
までの処理と同様に、 S711力ら S715の処理力 S実行される。このように、 cX=cXcmi nの位置において、 S711から S715までの処理が終了すると、変数 cXに検出間隔 d Xが加算され(S716)、検出位置 cX=cX+dxの位置において、再び S711力ら S71 5までの処理が繰り返される。この繰り返し処理は、変数 cXの値が cXcmaxに到達す るまで繰り返される(S710)。
[0082] このように、 ccdx方向の cXcminから cXcmaxまでの各検出位置毎に、スリット光を 含む画素の重心位置が計算されると(S710 :No)、次に、近似曲線算出処理 (S717 )が実行される。近似曲線算出処理では、 ccdx方向の残りの範囲における各検出位 置毎にスリット光を含む画素の重心位置が求められる。ステップ S717の後、当該処 理は終了する。
[0083] 次に、図 8のフローチャートを参照して、上述したスリット光重心位置計算処理(図 7 の S703, S711)について具体的に説明する。図 8は、スリット光軌跡抽出処理に含 まれるスリット光重心位置計算処理のフローチャートである。
[0084] スリット光重心位置計算処理は、スリット光を含む画素として検出される画素位置と、 スリット光の輝度中心位置とは、スリット光を構成するレーザー光の特性、撮像対象物 の表面の細かな凹凸により必ずしも一致ないため、検出される画素を中心とする一定 の範囲内で Rd'Y値の重心位置を求め、その重心位置をスリット光を含む画素位置と するための処理である。
[0085] 尚、本実施例では、図 12 (b)に示すように、その一定の範囲内として ccdx方向に X Range = 2, ccdy方向に gRange = 5が設定されて!、る。
[0086] スリット光重心位置計算処理では、まず、与えられた変数 cXについて、 ccdx方向の 探索範囲を示す xMinと xMaxとが設定される(S801)。 xMinは、変数 cXが最小値 cXmin ( =初期値 =0)の場合には、最小値 cXminで設定され、それ以外の場合に は、 cXから xRangeを減算した値( = cX— xRange)で設定される。 xMaxは、変数 cX が最大値 cXmax ( = 1200)の場合には、その最大値 cXmaxで設定され、それ以外 の場合には、 cXに xRangeをカ卩算した値( = cX+xRange)で設定される。よって、 S 703では変数 cXとして cX2が与えられ、 S709では変数 cXとして cXcminが与えられ ることになる。
[0087] ccdx方向の探索範囲が設定される(S801)、 xMin≤ccdx≤xMaxと yMin≤ccd y≤yMaxとの範囲における各画素について赤差分値 Rdと輝度値 Yとが計算される( S802, S803)。次に、その各画素について計算された赤差分値 Rdと輝度値 Yとを 乗算して、各画素について Rd'Y値が計算され、その結果が検出対象画素値一時格 納部 433に記憶される(S804)。
[0088] 次に、与えられた変数 cXの ±xRangeの範囲における検出位置を示す変数 ccXを 初期化し(=xMin) (S805)、その変数 ccXが探索範囲(ccX≤xMax)を超えてい な!、か否かが判定される(S806)。変数 ccXが探索範囲を超えて!/、なければ (S806 : Yes)、更に、変数 ccXが画像範囲(ccX≥0、 ccX< cMAX)を超えていないか否 かが判定される(S807)。変数 ccXが画像範囲をも超えていなければ(S807 :Yes) 、検出対象画素値一時格納部 433に記憶されている探索範囲内の各画素の Rd'Y 値の中から、最大値を有しており、且つ、予め設定した閾値 vThを越えている画素が 検索される(S808)。
[0089] このように処理を行うのは、上述した通りに、最大の Rd'Y値を有する画素は、探索 範囲内でスリット光を含む画素である可能性が極めて高いためである。また、その画 素が閾値 vThを超えて ヽることを条件とするのは、たとえ最大の Rd · Y値を有する画 素であっても、閾値 vThを越えていない画素は、撮像対象物から外れた遠方の物体 にスリット光が当たって 、る画素(この場合、非常に弱 、輝度を持って 、る)である可 能性があり、その画素はスリット光を含む画素の対象候補力も外すことで、より高精度 にスリット光を含む画素を検出するためである。
[0090] 探索範囲内で最大の Rd'Y値を有し、且つ、閾値 vThを越える画素が検索されたら
(S808)、その検索された画素の画素位置士 gRangeの範囲で、 Rd'Y値について の重心位置が計算される(S809)。次に、検出位置が更新され (S810)、上述した S 806から S810までの処理が繰り返えされる。
[0091] このように、 cXの ±xRangeの範囲における変数 ccXの各位置での重心の計算が 終了したと判断された場合には(S806 : No)、 cXの ±xRangeの範囲における各 cc Xで求めた重心位置と、 Rd'Y値とを用いて更に、 ccdy方向についての重心位置が 求められ、それが cXにおけるスリット光軌跡の ccdy値 (Yg)とされる(S811)。ステツ
プ S811の後、当該処理は終了する。
[0092] 尚、重心位置 Ygは下記の数 4に示す式で算出される。
[0093] [数 4]
YrdyMax+gRange
∑ (Rd * Y) * y
2 * gRange + l y= rdy ax-gRange
重心位置 Yg =
1 Yrdy ax+gRange
∑ (Rd * Y)
2 * gRange + 1 y=rdyMax-gRange
このようにスリット光を含む画素を検出することで、たとえスリット光を含む画素力 照 明反射部分 Sに含まれていたとしても、照明反射部分 Sでは赤値 Rが低ぐ Rd'Y値 が低いので、その照明反射部分 Sと最大の Rd'Y値を有するスリット光を含む画素と の差異が明確となり、高精度にスリット光を含む画素を検出できる。
[0094] また、たとえスリット光を含む画素力 R成分を持つ印刷部分 Iに含まれていたとして も、 R成分を持つ印刷部分 Iでは、輝度値 Yが低ぐ Rd'Y値が低いので、その R成分 を持つ印刷部分 Iと最大の Rd'Y値を有するスリット光を含む画素との差異が明確とな り、高精度にスリット光を含む画素を検出できる。
[0095] 上述したスリット光重心位置計算処理を経て、 ccdx方向の cXcminから cXcmaxま での各検出位置毎に、スリット光を含む画素の重心位置が計算されることになる。図 1 4は、図 12 (a)の A部分を示した拡大図である。図 14に示すように、本実施例では、 c cdx方向の cXcminから cXcmaxまでの各検出位置として、画像中心に 1箇所、画像 中心から左側に 4箇所、画像中心から右側に 4箇所の合計 9箇所が設定されており、 各検出位置からスリット光を含む画素の重心位置が計算されることになる。
[0096] 次に、図 9のフローチャートを参照して、上述した近似曲線算出処理(図 7の S717) について詳細に説明する。図 9は、スリット光軌跡抽出処理に含まれる近似曲線算出 処理のフローチャートである。
[0097] 近似曲線算出処理は(S717)、 ccdx方向の cXcminから cXcmaxまでの各検出位 置で求められたスリット光を含む画素の重心位置から、第 1スリット光の軌跡 71aに関 する近似曲線を算出し、その近似曲線に基づいて ccx方向の残りの範囲における各
検出位置でスリット光を含む画素の重心位置を求める処理である。
[0098] 近似曲線算出処理では、まず、算出する近似曲線の次数 N力 S「l」に設定される(S 901)。次数 Nを「1」に設定するのは、 S711から S715で検出される画素の重心位置 は、そのデータ数が少ないため(本実施例では 9点)、この時点で近似曲線の次数を 上げとしまうと算出される近似曲線が振動、発散してしまうので、それを防止するため である。
[0099] 近似曲線の次数 Nを設定すると(S901)、 S715でスリット光軌跡情報格納部 436 に記憶されている複数の画素に関する重心位置力も近似曲線 y=f (x)が算出される (S902)。近似曲線は、測定値 yが m— 1個の変数 x' l, χ" 2, · · ·χ" (m— 1)に依存す る場合、 y=a (0) +a (l) * x" l + a (2) * x' 2+ · · ' a (m— 1) * x" (m— 1)となる線形 の式を当てはめて算出される。
[0100] この近似曲線を算出するためのベースとなる画素の重心位置のデータは、図 7の S 709から S 716の処理によって ccdx方向の画像範囲である cXMinから cXMaxまで の範囲の内、第 1スリット光の軌跡 71aの中央部分を含む cXcminから cXcmaxまで の範囲内から検出された画素力 計算されているので、例えば、画像の端部から検 出された画素力も計算された重心位置力も近似曲線を算出する場合に比べて、原稿 P上の第 1スリット光の軌跡 71aに沿った近似曲線を算出することができる。
[0101] 即ち、操作者は対象物体である原稿 Pを撮像する場合には、原稿 Pが撮像画像の 中央部に位置するように撮像するのが一般的であるため、画像の両端部には、原稿 P以外の背景や不要物等が写り込んでいる可能性が高い。よって、画像の両端部か ら抽出された画素に基づき近似曲線を算出した場合には、原稿 P上の第 1スリット光 の軌跡 71aに沿った近似曲線が算出される可能性は低いのに対し、本実施例のよう に、スリット光有画像内における第 1スリット光の軌跡 71aの中央部分を含む領域から 検出された画素に基づき近似曲線を算出する場合には、原稿 P上の第 1スリット光の 軌跡 71aに沿った近似曲線を算出することができる可能性を高くすることができる。
[0102] 近似曲線 y=f (X)を算出すると、次に、その近似曲線 y=f (X)力も閾値 cTh以上離 れている重心位置の画素が抽出される(S903)。本実施例では、図 14に示すように 、近似曲線力 所定の閾値 cTh以上離れた左から 3番目の画素が抽出される。尚、
本実施例では、所定の閾値 cThとして近似曲線から ± 2mm程度 (dot換算で l lpix el程度: Z = 0の XY平面位置でスリット光の巾が lmm程度の広がりを持ち、その 2倍 程度)が設定されている。
[0103] 次に、その抽出された画素を除いた残りの画素の重心位置から、 S902で算出した 近似曲線 y = f (x)が更新される(S904)。これにより、第 1スリット光の軌跡 71aに関 する近似曲線として一層高精度な近似曲線を算出することができる。
[0104] 近似曲線を更新すると(S 904)、次に、スリット光を含む画素が連続して見つ力もな かった回数を表す変数 UndetectNo (左側用: lUndetectNo,右側用 rUndetect
No)が「0」に設定される(S905)。
[0105] UndetectNoを左側用と右側用とに分けて設定するのは、本実施例では、 ccdx方 向における cXcminと cXcmaxとを挟む左側と右側とを交互に検出位置として設定す るためである。
[0106] この UndetectNoは各検出位置毎にスリット光を含む画素が見つからなかった場 合に S919や S913において「1」カロ算されてゆき、 S908や S920において Undetect Noの値が所定の閾値 udLimitを越えていると判断されると、スリット光の軌跡が急激 に変化したと判断し、それ以降の検出を中止する。
[0107] これは、例えば、図 16に示すように、撮像対象としての原稿 Pがファイルされている ような場合に、一般的には、操作者は原稿 Pが画像の中央部に位置するように撮像 するものの、画像の両側には不要なものが一緒に撮像されてしまう場合がある。
[0108] このような場合、第 1スリット光の軌跡 71aは原稿 P上では画像中心力 左右略対照 に湾曲するような軌跡を執るものの、画像の両端部では、図 16の C部分に示すよう〖こ 、ファイル状況に応じて不規則に変化する軌跡を執る。一方、操作者においても、少 なくとも原稿 Pの部分が正立画像に変換されれば良ぐ画像両端部までを正立画像 に変換することを要求する場合は少な 、。
[0109] そこで、スリット光を含む画素が連続して見つ力もな力つた回数を計数し、その計数 した結果が所定閾値 udLimitを越える場合には、それ以降の検出を中止するで、ス リット光の軌跡が急激に変化する可能性の高い画像両端部における検出を省略して 、必要な部分 (原稿 P上の部分)だけを検出することで、スリット光軌跡抽出処理を高
速ィ匕させるためである。
[0110] 次に、 ccdx方向における cXcminより左側の検出位置を表す変数 clxと、 ccdx方向 における cXcmaxより右側の検出位置を表す変数 crxとが設定される(clx=cXcmin -dx, crx=cXcmax+dx) (S906)。即ち、左側の最初の設定位置としては、 ccdx 方向の cXcminより所定間隔 dxだけ左側の位置が設定され、右側の最初の設定位 置としては、 ccdx方向の cXcmaxより所定間隔 dxだけ右側の位置が設定される。
[0111] その後、本実施例では、左側の最初の検出位置から検出を開始し、左側の最初の 検出位置での検出が終了したら、次に右側の最初の検出位置での検出を開始する 。右側の最初の検出位置での検出が終了したら、次に左側の最初の検出位置から 所定間隔 dxだけ左側の位置に検出位置が設定される。この繰り返し処理は、左側の 検出位置 clxが cXmix、右側の検出位置 crxが cXmaxになるまで実行される(S907
) o
[0112] このように、 S906において ccdx方向の検出位置が設定され、 S907においてその 検出位置が画像範囲内であることが確認されると(S907 : Yes)、先ず、設定された 左側の検出位置 clxが画像範囲の最小値 cXmin以上か否力、或いは、 lUndetect Noが閾値 udLimitより小さいか否かが判定される(S908)。
[0113] 設定された左側の検出位置 clxが画像範囲の最小値 cXminより小さければ、左側 の検出は終了したと判断され、(S908 :Yes)、処理は右側の検出を実行すべく S92 0に移行する。また、 lUndetectNoが閾値 udLimitより大きければ、上述した通りそ の検出位置における検出は中止され、処理は S920に移行する。
[0114] 一方、検出位置 clxが画像範囲の最小値 cXmin以上であり、或いは、 lUndetect Noが閾値 udLimitより小さいと判断されると(S908 : Yes)、検出位置 clxにおける S 904で更新した近似曲線 y=f (x)上の値が計算され (S909)、その値力も検出位置 clxにおける ccdy方向の検出範囲が設定される(S910) (yMin=y— ySRange, yM ax=y+ySRange)。尚、本実施例では、図 15に示すように ySRangeとして、 Z = 0 の XY平面において、スリット光の巾の 2倍とスリット光の許容傾きにより、 12pixel程度 が設定されている。
[0115] 検出位置 clxにおける ccdy方向の検出範囲が設定されると、その範囲内で上述し
たのと同様にスリット光を含む画素を検出すべく S911から S914の処理が実行される
[0116] 即ち、本来、 ccdy方向の検出範囲としては、図 12 (a)に示すように yMinlから yM axlまでの範囲を検出する必要がある所、その ccdy方向の検出範囲を近似曲線から 士 ySRangeの範囲に制限することで、検出処理を高速ィ匕することができる。また、近 似曲線の周辺にはスリット光を含む画素が存在する可能性が極めて高いため、 yMi nlから yMaxlまでの範囲を検出する場合に比べて誤検出する可能性を低減するこ とがでさる。
[0117] S914において計算された重心位置をスリット光軌跡情報格納部 436に格納すると
(S914)、今回探索された画素の重心位置と、過去に探索された画素の重心位置と を使って S904で更新された近似曲線 y=f (X)が再度更新される(S915)。これによ り、第 1スリット光の軌跡 71aに関する近似曲線を一層高精度にすることができる。近 似曲線を更新すると、 lUndetectNoを「0」に設定して(S916)、検出位置 clxにおけ る検出を終了する。
[0118] 一方、 S910で設定された yMINから yMAXの範囲をすベて検索した結果、スリット 光有画像内から検出された画素がスリット光無画像内から検出された場合、即ち、ス リット光を含む画素が検出されなかった場合には(S 918: Yes)、 lUndetectNoに「 1 」が加算され (S919)、検出位置 clxにおける検出を終了する。
[0119] このように検出位置 clxにおける検出を終了すると、次は、右側の検出位置 crxにお ける検出が開始される。尚、検出位置 crxにおいて行われる S920から S931の処理 は、左側の検出位置 clxにおいて行われる S907から S911と同様であるため、その 説明は省略する。
[0120] 上述したように、 ccdx方向の cXcmin— dxから cXmixまでの範囲(左側)、 ccdx方 向の cXcmax + dxから cXmaxまでの範囲(右側)における各検出位置での検出が 終了すると当該処理を終了する。
[0121] 次に、図 10のフローチャートを参照して、図 9のフローチャートにおける S902, S9
03, S915, S927において、探索された画素の重心位置を使って近似曲線 y=f (x) を求める処理にっ 、て説明する。
[0122] 近似曲線 y=f (x)を求める場合には、まず、最小 2乗法を用いて N次の近似曲線 y =f (x)が求められる(S1001)。 S904では 1次の近似曲線 y=f (x)力も求められるこ とになる。次に、検出された画素の重心位置と近似曲線との誤差の標準偏差 σ aが 求められる(S1002)。そして、求められた標準偏差 σ aが所定の閾値 aThより大きい か否かが判定される(S1003)。尚、本実施例では、所定の閾値 aThを 3. 54pixel程 度(Z = 0の XY平面上の換算で、スリット光の巾の広がりが lmm程度であり、その広 力 Sりの標準偏差 σの 2倍である 2 σの値を pixel換算した値)として用いている。その 結果、標準偏差 σ aが閾値 aThより小さければ (S1003 :No)、近似曲線の次数 Nを 上げることなぐ設定されている次数 Nの近似曲線とする。
[0123] 一方、標準偏差 σ aが閾値 aTh以上であれば(S 1003 : Yes)、設定されている次 数 Nが所定の閾値 nTh以上か否かが判定される(S1004)。所定の閾値 nThは、見 開き原稿の片側部分の表面形状で (3次或いはそれ以上)を想定し、本実施例では、 5次としている。その結果、次数 Nが所定の閾値 nTh以上であれば(S 1004 : Yes)、 近似曲線の次数 Nを上げることなく設定されて ヽる次数 Nの近似曲線とし、次数 Nが 所定の閾値 nThより小さければ(S1004: No)、設定されて!、る次数 Nに「1」が加算 される(S1005)。そして、その「1」加算された次数 Nで S1001から S1004までの処 理を繰り返す。
[0124] このように近似曲線を更新する場合に、近似曲線の次数 Nを段階的に高次に設定 することで、たとえ原稿 Pに凹凸がある場合であっても第 1スリット光の軌跡 71aに関 する近似曲線を高精度に算出することができる。
[0125] 次に、図 17及び図 18を参照して、上述した三角測量演算処理(図 5の S160)を具 体的に説明する。三角測量演算処理 (S160)では、検出対象画素値一時格納部 43 3に読込まれた画素データに基づいて、第 1スリット光の軌跡 71a及び第 2スリット光の 軌跡 72aの縦方向のピークが重心計算によって画像データの横方向座標毎に求め られ、このピーク抽出座標に対する 3次元空間位置が次のようにして求められる。
[0126] 図 17は、スリット光有画像を説明するための図である。図 18は、スリット光の 3次元 空間位置を算出する方法を説明するための図である。図 18に示すように撮像される 横方向に湾曲した原稿 Pに対する撮像装置 1の座標系を、結像レンズ 31の光軸方向
を Z軸として、撮像装置 1から基準距離 VP離れた位置を X, Y, Z軸の原点位置として 、撮像装置 1に対して水平方向を X軸、垂直方向を Y軸とする。
[0127] CCD画像センサ 32の X軸方向の画素数を ResX、 Y軸方向の画素数を ResYと呼 び、 X— Y平面に、結像レンズ 31を通して CCD画像センサ 32を投影した位置の上端 を Yftop、下端を Yfbottom、左端を Xfstart、右端を Xfendと呼ぶ。また、結像レン ズ 31の光軸から、スリット光投光ユニット 20から出射される第 1スリット光 71の光軸ま での距離を D、第 1スリット光 71が X-Y平面に交差する Y軸方向の位置を lasl、第 2 スリット光 72が X— Y平面に交差する Y軸方向の位置を las2とする。
[0128] このとき、第 1スリット光の軌跡 71aの画像の画素の 1つに注目した注目点 1の CCD 画像センサ 32上の座標(ccdxl, ccdyl)に対応する 3次元空間位置 (XI, Yl, Z1 )を、 CCD画像センサ 32の結像面上の点と、第 1スリット光 71及び第 2スリット光 72の 出射点と、 X— Y平面に交差する点とで形成される三角形について立てた次の 5つの 連立方程式の解から導き出す。
(1) Yl =-( (lasl + D) /VP) Zl +lasl
(2) Y1 = - ( Ytarget/ VP) Z 1 + Ytarget
(3) XI =- (Xtarget/VP) Zl + Xtarget
(4) Xtarget = Xf start + (ccdxl/ResX) X (Xfend— Xfstart)
尚、本実施例では、第 1スリット光 71が Z軸に対して平行のため lasl =— Dであり、 Y 1 = Dである。
[0129] 同様に、 CCD画像センサ 32上の第 2スリット光の軌跡 72aの画像の画素の一つに 注目した注目点 2の座標(ccdx2, ccdy2)に対応する 3次元空間位置 (X2, Y2, Z2 )を、次に 5つの連立方程式の解力も導き出す。
(1) Y2=-( (las2 + D) /VP) Z2 + las2
(2) Y2=- (Ytarget/VP) Z2+ Ytarget
(3) X2=- (Xtarget/VP) Z2+ Xtarget
(4) Xtarget = Xfstart + (ccdx2/ResX) X (Xfend— Xfstart)
(5) Ytarget = Yftop- (ccdy2/ResY) X (Yftop— Yfbottom)
こうして算出されたスリット光の 3次元空間位置を、三角測量演算結果格納部 434 へ書き込み、当該処理を終了する。
[0130] 次に、図 19を参照して、上述した原稿姿勢演算処理(図 5の S170)を具体的に説 明する。図 19は、原稿姿勢演算の際の座標系を説明するための図である。
[0131] この原稿姿勢演算処理 (S 170)では、例えば、三角測量演算結果格納部 434のデ ータから、第 1スリット光の軌跡 71aに対応する 3次元空間位置の各点を回帰曲線近 似した線を求め、この曲線の X軸方向の位置が「0」における点と、第 2スリット光の軌 跡 72aの X軸方向の位置が「0」における 3次元位置とを結ぶ直線を想定し、この直線 が Z軸と交わる点、つまり、光軸が原稿 Pと交差する点を、原稿 Pの 3次元空間位置 (0 , 0, L)とする(図 19 (a)参照)。そして、この直線が X-Y平面となす角を原稿 Pの X 軸まわりの傾き Θとする。
[0132] また、図 19 (b)に示すように、第 1スリット光の軌跡 71aを回帰曲線近似した線を、 先に求めた X軸まわりの傾き Θ分だけ逆方向に回転変換し、つまり、原稿 Pを X— Y平 面に対して平行にした状態を考える。そして、図 19 (c)に示すように、原稿 Pの X軸方 向の断面形状を、 X— Z平面における原稿 Pの断面について、 Z軸方向の変位を複数 の X軸方向の点で求めてその変位度から、 X軸方向の位置を変数とした X軸方向の 傾きの関数である湾曲 Φ (X)を求め、当該処理を終了する。
[0133] 次に、図 20を参照して、上述した平面変換処理(図 5の S180)を具体的に説明す る。図 20は平面変換処理を示すフローチャートである。
[0134] 平面変換処理では、まず、 RAM43のワーキングエリア 436に当該処理の処理領 域を割り当て、当該処理に用いるカウンタ bの変数が初期値 (b = 0)に設定される(S 1300)。
[0135] 次に、原稿姿勢演算プログラム 425での演算結果による原稿 Pの位置 Lと、傾き Θ と、湾曲 φ (X)とに基づき、スリット光無画像格納部 432に格納されたスリット光無画 像の 4隅の点を、それぞれ、湾曲 φ (X)で Y軸まわりに回転移動し、 X軸まわりに傾き Θだけ回転し、 Z軸方向に位置 Lだけ移動した点で取成される矩形領域 (つまり、原 稿 Pの文字等が書かれた面が略直交方向から観察されたような画像となる矩形領域) を設定すると共に、この矩形領域内に含まれる画素数 aを求める(S1301)。
[0136] 次に、設定された矩形領域を構成する各画素に対応するスリット光無画像上の座 標を求めて、この座標周辺の画素情報から、平面画像の各画素の画素情報を設定 する。つまり、まず、カウンタ bが画素数 aに到達した力否かが判断される(S 1302)。 その結果、カウンタ bが画素数 aに到達していなければ (S 1302 : No)、矩形領域を構 成する 1つの画素を、 Y軸を中心に湾曲 φ (X)回転移動させ(S 1304)、 X軸を中心 に傾き Θ回転移動させ(S 1305)、 Z軸方向に距離 Lだけシフトさせ(S 1306)、求め られた 3次元空間位置は、先の 3角測量の関係式により理想カメラで写された CCD 画像上の座標(ccdcx, ccdcy)に変換し(S1307)、使用している結像レンズ 31の収 差特性に従って、公知のキャリブレーション手法により、実際のカメラで写された CC D画像上の座標(ccdx, ccdy)に変換し(S1308)、この位置にあるスリット光無画像 の画素の状態を求めて、 RAM43のワーキングエリア 436〖こ格納する(S1309)。そ して、次の画素について上述した S 1303から S 1309までの処理を実行すベぐカウ ンタ bに「 1」をカ卩算する(S 1309)。
[0137] こうして、 S1308から S1309までの処理をカウンタ bが画素数 aになるまで繰り返す と(S1302 :Yes)、 S1301において、当該処理を実行するためにワーキングエリア 4 36に割り当てた処理領域を開放して(S 1310)、当該処理を終了する。
[0138] 以上説明したように、「撮像補正モード」における撮像装置 1は、第 1スリット光 71及 び第 2スリット光 72の 2列のスリット光を原稿 Pに投光し、その原稿 Pを結像レンズ 31 によって CCD画像センサ 32に結像させて撮像し、続けて、スリット光が投光されてい な 、原稿 Pの画像を撮像する。
[0139] 次に、この 2つの撮像画像の内、スリット光が原稿 Pに投光された状態を撮像したス リット光有画像から、スリット光の軌跡を抽出する場合には、スリット光の軌跡を構成す る画素の一部の画素を検出し、その検出した画素からスリット光の軌跡に関する近似 曲線を算出する。
[0140] スリット光の軌跡を構成する画素の残り画素を検出するための ccdy方向の検出範 囲は、この近似曲線に基づいて制限されるので、全体として、スリット光を構成する画 素を検出するための処理を高速ィ匕できると共に、スリット光を含む画素が含まれる可 能性が極めて高い範囲だけを検出するので、スリット光を構成する画素以外の画素
を誤検出する可能性を低減でき、高精度にスリット光の軌跡を抽出することができる。
[0141] 撮像装置 1は、このようにしてスリット光の軌跡を抽出して、三角測量原理によりスリ ット光の軌跡各部の 3次元空間位置を演算し、これら力 原稿 Pの位置、傾き、及び 湾曲状態(3次元形状データ)を求め、これらの 3次元形状データとスリット光無画像 の画像データとをメモリカード 55に書込む。
[0142] よって、撮像装置 1によれば、使用者は、モード切替スィッチ 59を「補正撮像モード 」側に切り換え、ファインダ 53、又は、 LCD51で原稿 Pの所望の範囲が撮像範囲に 入っているカゝ確認し、レリーズボタン 52を押して画像を撮影することによって、湾曲な どの形状変形した原稿 Pを斜めから撮像した場合でも、平らな原稿 Pを正面力ゝら撮像 したかのような画像データをメモリカード 55に記憶させることができる。
[0143] 尚、メモリカード 55に記憶された画像データは、 LCD51で表示して撮像内容を確 認したり、メモリカード 55を撮像装置 1から取り外して、外部のパーソナルコンピュータ などにより表示したり、印刷したりして用いることができる。
[0144] 以上実施例に基づき本発明を説明したが、本発明は上記実施例に何ら限定される ものでなぐ本発明の主旨を逸脱しない範囲内で種々の改良変形が可能であること は容易に推察できるものである。
[0145] 例えば、上記実施例では、赤成分を主成分とするスリット光を抽出する場合につい て説明したが、主成分となる成分は赤成分に限定されるものではなぐ緑成分、青成 分を主成分とするスリット光であっても良い。例えば、赤成分を主成分とするスリット光 に代えて緑成分を主成分とするスリット光を抽出する場合には、赤差分値 Rd ( =R— ( G + B/2) )に代えて、緑差分値 Gd ( = G-(R+B/2) )を算出し、 Rd · Y値に代え て Gd'Y値を採用することもできる。
[0146] 上記実施例では、赤差分値 Rdは、赤値 Rから緑値 Gと青値 Bとの平均値を減算す ることにより算出していたが、赤差分値 Rdを算出する方法としては、赤値 Rから緑値 Gと青値 Bとの重み付け平均を減算して算出するようにしても良い。例えば、 Rd=R— (2'G + 1 'B) Z3等の式により算出するようにしても良い。
[0147] 撮像装置 1で撮像する対象物体は、シート状の原稿 Pの他にも、固体ブロックの滑 らかな表面であったり、場合によっては稜線をもつ物体の表面であっても良ぐおよそ
2列のスリット光の軌跡から、その 3次元空間における 3次元形状を希求したい用途に はすべて同様に、対象物体の 3次元形状を検出する効果を発揮することができる。
[0148] 但し、本実施例のように、対象物体がシート状の原稿 Pであれば、第 1スリット光の軌 跡 71aを原稿 Pの断面形状であるとして、原稿 Pの全体の形状を推定し、原稿 Pの湾 曲などの形状変形に対する画像補正をすることができる。また、対象物体がスリット光 の長手方向に対する直交方向に略均一な 3次元形状であれば、スリット光を投光す る位置に含まれる対象物体の突起部など特異な形状により生じる検出姿勢のずれな どを考慮しなくて良ぐスリット光が投光される箇所に気をつかわないでも良いように できる。
[0149] 本実施例の撮像装置 1では、スリット光投光ユニット 20が、第 1スリット光 71と、第 2 スリット光 72の 2列のスリット光を出射するように構成されている力 出射するスリット光 は、 2列に限らず、 3列以上を出射するように構成されるものであっても良い。例えば 、図 17 (b)に示す原稿 Pのスリット光の軌跡画像のように、第 1スリット光 71及び第 2ス リット光 72に加えて、第 2スリット光 72と同様の第 3スリット光が、原稿 Pにて第 2スリット 光 72の上方に投光されるようにスリット光投光ユニット 20が構成されて 、ても良 、。こ のような構成によれば、第 1一第 3スリット光のスリット光の軌跡の各点の位置から、原 稿 Pの縦方向の湾曲形状に対しても推定することができ、これによりスリット無画像を 補正して、更に見やすい画像とすることができる。
[0150] 本実施例では光源に、赤色レーザー光線を放射するレーザーダイオード 21を用い ているが、その他、面発光レーザー、 LED、 EL素子など、光ビームを出力できるもの であれば、いずれを用いるものであっても良い。
[0151] 透明平板 24に代えて、入射するレーザー光線のパワーの所定の割合を所定方向 に回折する回折格子を 1面に形成した透明平板が用いられても良い。このような回折 格子を有する透明平板によれば、回折格子で回折された 1次光のレーザー光線を第 2スリット光 72とし、そのまま透過する 0次光のレーザー光線を第 1スリット光 71とする ことができる。
[0152] スリット光投光ユニット 20から出射されるスリット光は、長手方向に直交する方向に、 急峻に絞り込まれた細線の他に、一定の幅を備えたストライプ状の光パターンでも良
い。つまり、パターン光には本実施例で例示したスリット光の他にも、縞パターン、ブ ロック形状パターン、ドットパターン等様々な幾何学模様を採用することができ、これ らの境界線の軌跡や重心位置の軌跡の連続性を近似関数で抽出することにより、以 上に詳述した効果が同様に得られるものである。
[0153] 第 1スリット光 71と、第 2スリット光 72の位置関係は逆転しても良ぐ第 1の方向つまり 撮像装置 1から見て下側に第 2スリット光 72を、そして、第 2の方向に第 1スリットを形 成すベぐ各光学素子を配設しても良い。
[0154] 撮像装置 1は、スリット光有画像及びスリット光無画像を、結像レンズ 31及び CCD 画像センサ 32を用いて撮像するよう構成されている。このような構成に対して、撮像 装置に、結像レンズ 31及び CCD画像センサ 32の他に、スリット光有画像を撮像する ための結像レンズ及び CCD画像センサが別途追カ卩して設けられて 、ても良 、。この ように構成することにより、スリット光有画像とスリット光無画像とを撮像する間の時間 経過(CCD画像センサ 32の画像データを転送する時間など)を無くすることができ、 スリット光有画像に対してスリット光無画像の撮像範囲のずれが無ぐ検出する対象 物体の 3次元形状の精度が高いものとすることができる。但し、本実施例の撮像装置 1の方が、構成部品が少なぐ小型で安価なものとすることができる。
[0155] 本発明の一つの実施形態において、第 1領域設定手段は、パターン光の軌跡の一 部を含む第 1領域として、ノターン光投光画像内におけるパターン光の軌跡の中央 部分を含む領域を設定するよう構成されて!ヽても良 ヽ。
[0156] このような構成の 3次元形状検出装置によれば、第 1領域設定手段は、第 1領域と してパターン光投光画像内におけるパターン光の軌跡の中央部分を含む領域を設 定する。操作者は対象物体が撮像画像の中央部に位置するように撮像するのがー 般的である。一方、画像の両端部には、対象物体以外の背景や不要な物等が写り込 んでいる可能性が高い。よって、画像の両端部を第 1領域として設定し、その第 1領 域内から抽出された画素に基づき近似曲線を算出した場合には、対象物体上のバタ ーン光の軌跡に沿った近似曲線が算出される可能性は低い。一方、本装置のように 、ノターン光投光画像内におけるパターン光の軌跡の中央部分を含む領域を第 1領 域として設定することで、対象物体上のパターン光の軌跡に沿った近似曲線を算出
することができると!/ヽぅ効果が得られる。
[0157] 本発明の一つの実施形態において、 3次元形状検出装置は、パターン光投光画像 の X軸方向においてパターン光の軌跡の残り部分を構成する画素を検出するための 複数の検出位置を、第 1領域の範囲外からパターン光投光画像の端部に向力つて 設定する検出位置設定手段と、検出位置設定手段で設定される検出位置毎にバタ ーン光の軌跡の残り部分を構成する画素を検出する第 2検出手段と、第 2検出手段 で検出される画素毎に、その画素と、第 1検出手段で検出される複数の画素とに基 づいて近似曲線算出手段で算出される近似曲線を更新する第 1更新手段とを備えて いても良い。この場合、第 2領域設定手段は、検出位置設定手段で設定される検出 位置毎にパターン光投光画像の Y軸方向の領域を制限するものであり、その Y軸方 向の領域は、検出位置設定手段によって最初に設定される検出位置では、近似曲 線算出手段で算出される近似曲線に基づき制限され、次から設定される検出位置で は、第 1更新手段で更新される近似曲線に基づき制限されるよう構成されていても良 い。
[0158] このような構成の 3次元形状検出装置によれば、近似曲線算出手段で算出される 近似曲線は、第 2検出手段で検出される画素毎に、その画素と、第 1検出手段で検 出される複数の画素とに基づいて第 1更新手段によって更新される。したがって、パ ターン光の軌跡に関する近似曲線を高精度に算出することができる。また、近似曲線 が更新された後は、第 2領域設定手段は、その更新された近似曲線に基づき、バタ 一ン光を構成する画素を検出するための Y軸方向の領域を制限するので、パターン 光を含む画素を検出するための検出処理を高速に行うことができるという効果が得ら れる。
[0159] 本発明の一つの実施形態において、検出位置設定手段は、検出位置として、第 1 領域を挟む両側を交互に設定するよう構成されて 、ても良 ヽ。
[0160] このような構成の 3次元形状検出装置によれば、検出位置設定手段は、検出位置と して第 1領域を挟む両側を交互に設定するので、特に、第 1領域を挟む両側におい て略対照に延びるパターン光の軌跡に関する近似曲線を高精度に算出することがで きるという効果が得られる。
[0161] 例えば、第 1領域を挟む両側において略対照に延びるパターン光の軌跡を抽出し ようとする場合に、第 1領域を挟む一方の領域内の全てを検出した後に、他方の領域 内を検出するようとすると、一方の領域における検出軌跡の影響を受け、他方の領域 の最初の検出位置におけるパターン光を含む画素が、第 1領域を挟む一方の領域 力も検出された画素に基づいて算出される近似曲線力 所定の閾値以上離れ正確 にパターン光を含む画素を検出できな 、ケースが発生すると!/、う弊害を防止すること ができる。
[0162] 本発明の一つの実施形態において、 3次元形状検出装置は、検出位置毎に第 2検 出手段によって画素が検出されな力つた回数を計数する計数手段と、計数手段によ つて計数された回数が連続する検出位置において所定回数を超えるか否かを判断 する判断手段と、判断手段によって、計数手段により計数された回数が連続する検 出位置において所定回数を超えると判断された場合には、以後の検出位置における 第 2検出手段による検出を中止する中止手段とを備えていても良い。
[0163] このような構成の 3次元形状検出装置によれば、計数手段によって計数された回数 が連続する検出位置において所定回数を越えると判断された場合には、以後の検 出位置における第 2検出手段による検出は中止手段によって中止される。したがって 、不要な検出を省略して、パターン光の軌跡を抽出するための処理を高速ィ匕させるこ とができると!、う効果が得られる。
[0164] 本発明の一つの実施形態において、 3次元形状検出装置は、第 1検出手段で検出 される複数の画素の内から、近似曲線算出手段で算出される近似曲線に対してバタ 一ン光投光画像の Y軸方向に所定間隔以上離れた画素を抽出する抽出手段をさら に備えていても良い。この場合、パターン光の軌跡は、その抽出手段で抽出される画 素を第 1検出手段で検出される複数の画素から取り除いた残りの画素と、第 2領域設 定手段で設定された第 2領域内から検出される画素とに基づき抽出されるようになつ ていても良い。
[0165] このような構成の 3次元形状検出装置によれば、ノ《ターン光の軌跡は、第 1検出手 段で検出される複数の画素力 抽出手段で抽出される画素を取り除いた残りの画素 と、第 2領域設定手段で設定された第 2領域内から検出される画素とに基づき抽出さ
れる。したがって、第 1検出手段で検出される複数の画素の全部をパターン光の軌跡 を構成する画素とする場合に比べて、高精度にパターン光の軌跡を抽出することが できるという効果が得られる。
[0166] 本発明の一つの実施形態において、 3次元形状検出装置は、抽出手段で抽出さ れる画素を第 1検出手段で検出される複数の画素力 取り除いた残りの画素に基づ き、近似曲線算出手段で算出される近似曲線を更新する第 2更新手段をさらに備え ていても良い。この場合、第 2領域設定手段は、検出位置設定手段によって最初に 設定される検出位置における Y軸方向の領域を第 2更新手段で更新される近似曲線 に基づき制限するよう構成されていても良い。
[0167] このような構成の 3次元形状検出装置によれば、近似曲線算出手段で算出される 近似曲線は、第 1検出手段で検出される複数の画素力 抽出手段で抽出される画素 を取り除いた残りの画素に基づき更新される。したがって、第 1検出手段で検出され る複数の画素に基づき算出される近似曲線に比べて、近似曲線の精度を向上させる ことができる。また、検出位置設定手段によって最初に設定される検出位置における Y軸方向の領域は、更新される近似曲線に基づき制限されるので、 Y軸方向の領域 をより適正な範囲に制限することができるという効果が得られる。
[0168] 本発明の一つの実施形態において、第 1更新手段又は第 2更新手段は、段階的に 高次の近似曲線を算出するよう構成されて 、ても良 、。
[0169] このような構成の 3次元形状検出装置によれば、第 1更新手段又は第 2更新手段は 、段階的に高次の近似曲線を算出するので、凹凸を有する対象物体に投光された パターン光であっても、そのパターン光の軌跡を高精度に抽出することができると 、う 効果が得られる。
[0170] 本発明の一つの実施形態において、撮像装置は、上述のように構成された 3次元 形状検出装置と、 3次元形状検出装置の 3次元形状算出手段により算出される対象 物体の 3次元形状に基づ 、て、その 3次元形状検出装置の撮像手段によって撮像さ れるパターン光が投光されていない状態における対象物体のパターン光非投光画 像を対象物体の所定面の略鉛直方向から観察される平面画像に補正する平面画像 補正手段とを備える。
[0171] このような撮像装置によれば、上述の 3次元検出装置によって高精度に抽出される ノターン光の軌跡に基づ ヽて、ノターン光非投光画像を正確な平面画像に補正す ることができると!/、う効果が得られる。
[0172] 上記実施形態において、図 7のフローチャートの S709, S710の処理は、第 1領域 設定手段或いは第 1領域設定ステップとして位置付けられる。図 7のフローチャートの S711から S715までの処理は、第 1検出手段或いは第 1検出ステップと位置付けら れる。図 9のフローチャートの S902の処理は、近似曲線算出手段或いは近似曲線 算出ステップと位置付けられる。図 9のフローチャートの S909, S910の処理は、第 2 領域設定手段或いは第 2領域設定ステップと位置付けられる。
[0173] 図 9のフローチャートの S906の処理は、検出位置設定手段と位置付けられる。図 9 のフローチャートの S911力ら S914, S923力ら S926の処理は、第 2検出手段と位 置付けられる。図 9のフローチャートの S915や S927の処理は、第 1更新手段と位置 付けられる。
[0174] 図 9のフローチャートの S919, S931の処理は、計数手段と位置付けられる。図 9の フローチャートの S908, S920の処理は、判断手段や中止手段と位置付けられる。
[0175] 図 9のフローチャートの S903の処理は、抽出手段と位置付けられる。図 9のフロー チャートの S904の処理は、第 2更新手段と位置付けられる。