JP2005148813A - 3次元形状検出装置、撮像装置、及び、3次元形状検出プログラム - Google Patents

3次元形状検出装置、撮像装置、及び、3次元形状検出プログラム Download PDF

Info

Publication number
JP2005148813A
JP2005148813A JP2003381104A JP2003381104A JP2005148813A JP 2005148813 A JP2005148813 A JP 2005148813A JP 2003381104 A JP2003381104 A JP 2003381104A JP 2003381104 A JP2003381104 A JP 2003381104A JP 2005148813 A JP2005148813 A JP 2005148813A
Authority
JP
Japan
Prior art keywords
slit light
detection
dimensional shape
locus
image
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2003381104A
Other languages
English (en)
Other versions
JP2005148813A5 (ja
Inventor
Hiroyuki Sasaki
博幸 佐々木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Brother Industries Ltd
Original Assignee
Brother Industries Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Brother Industries Ltd filed Critical Brother Industries Ltd
Priority to JP2003381104A priority Critical patent/JP2005148813A/ja
Priority to PCT/JP2004/016632 priority patent/WO2005045363A1/ja
Publication of JP2005148813A publication Critical patent/JP2005148813A/ja
Priority to US11/431,033 priority patent/US7365301B2/en
Publication of JP2005148813A5 publication Critical patent/JP2005148813A5/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01BMEASURING LENGTH, THICKNESS OR SIMILAR LINEAR DIMENSIONS; MEASURING ANGLES; MEASURING AREAS; MEASURING IRREGULARITIES OF SURFACES OR CONTOURS
    • G01B11/00Measuring arrangements characterised by the use of optical techniques
    • G01B11/24Measuring arrangements characterised by the use of optical techniques for measuring contours or curvatures
    • G01B11/25Measuring arrangements characterised by the use of optical techniques for measuring contours or curvatures by projecting a pattern, e.g. one or more lines, moiré fringes on the object
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • G06T7/521Depth or shape recovery from laser ranging, e.g. using interferometry; from the projection of structured light

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Physics & Mathematics (AREA)
  • Optics & Photonics (AREA)
  • Theoretical Computer Science (AREA)
  • Length Measuring Devices By Optical Means (AREA)
  • Image Processing (AREA)
  • Image Analysis (AREA)

Abstract

【課題】 スリット光投光画像内からスリット光の軌跡を構成する画素を検出する検出処理を高速に且つ高精度に行うことができる3次元形状検出装置、撮像装置、及び、3次元形状検出プログラムを提供すること。
【解決手段】 第1スリット光の軌跡の一部を構成する画素を検出した後、その検出された画素に基づき第1スリット光の軌跡に関する近似曲線を算出し(S902)、その近似曲線に基づき、残りの第1スリット光の軌跡を構成する画素を検出するための検出領域を制限し(S909,S910)、その制限された検出領域内から残りの第1スリット光の軌跡を構成する画素を検出する(S911からS914)。
【選択図】 図9

Description

本発明は、光ビームを用いて対象物体の3次元形状を検出する3次元形状検出装置、撮像装置、及び、3次元形状検出プログラムに関する。
従来より、対象物体としてホワイトボードや書籍等を撮像し、その撮像画像から対象物体の3次元形状を検出することで、ホワイトボードや書籍等を、その正面に対して斜め方向となる位置から撮像したとしても、あたかも正面から撮像したように、その撮像画像を補正する補正手段を備えた撮像装置が知られており、例えば、特許文献1には、そのような補正手段を備えた可搬型のデジタルカメラが開示されている。
また、上述した補正手段に必要なパラメータとしての対象物体の3次元形状を検出する技術として、特許文献2には、スリット光が投光された状態の対象物体を撮像したスリット光投光時画像と、スリット光が投光されていない状態の対象物体を撮像したスリット光非投光時画像との減算を行うことでスリット光を抽出し、その抽出したスリット光に基づいて対象物体の3次元形状を検出する据え置き型の3次元形状測定装置が開示されている。
特開平9−289611号公報(図1等) 特許3282331号公報(第10段落、図3等)
しかしながら、上述した3次元形状測定装置は据え置き型で、撮像時の自由度が制限され不便であるため、3次元形状測定装置は可搬型であることが望ましいが、可搬型とした場合には、「手ぶれ」によってスリット光投光時画像の撮像位置と、スリット光非投光時画像の撮像位置とがズレる場合がある。かかる場合には、当然にスリット光投光時画像とスリット光非投光時画像との間にもズレが生じ、スリット光投光時画像とスリット光非投光時画像との減算を行ったとしても、正確にスリット光を抽出できないという問題点があった。
そこで、スリット光投光時画像とスリット光非投光時画像との減算を行うことなくスリット光投光時画像だけからスリット光を抽出する方法として、スリット光を赤外領域とする方法があるものの、その方法では、光学系を赤外領域と可視領域との2系統を用意する必要があり、可搬型としての装置の大型化、構造の複雑化、コストアップ等の問題を招来する。
よって、可視領域のスリット光を照射したスリット光投光時画像から正確にスリット光を抽出できることが望ましいが、一般照明環境下で撮像された画像におけるスリット光の軌跡部分と他の部分とでは輝度や彩度が近似しており、明らかな差異が得られず、特に、スリット光と近い色で印刷された印刷部分や照明の反射部分では、その傾向が強く、スリット光を高精度に検出するのが困難であるという問題点があった。
また、スリット光の出力を上げることでスリット光の検出精度を向上させることも考えられるが、かかる場合には、スリット光発生装置の大型化によるコストアップや、安全性への配慮も生ずるという問題点があった。
かかる問題点を解決すべく、本願出願人は、特願2003‐337066号において、スリット光を構成する主な色値に対応する色値に関する高低を表す色値パラメータと、輝度に関する高低を表す輝度パラメータとから強調パラメータを算出し、その強調パラメータに基づいて、スリット光投光画像内からスリット光を含む画素を検出することで、スリット光投光画像内から高精度にスリット光を抽出する技術を提案している。
しかしながら、かかる方法では、スリット光投光画像内からスリット光を含む画素を検出するための検出領域が広く設定されていたため高速に検出処理を実行することができないという問題点があった。また、その検出領域が広く設定されていたために依然として誤検出する可能性があった。
本発明は、上述した問題点を解決するためになされたものであり、スリット光投光画像内からスリット光の軌跡を構成する画素を検出する検出処理を高速に且つ高精度に行うことができる3次元形状検出装置、撮像装置、及び、3次元形状検出プログラムを提供することを目的としている。
この目的を達成するために請求項1記載の3次元形状検出装置は、光ビームを出力する光出力手段と、その光出力手段から出力される光ビームを所定角度で平面状に放射される光束であるスリット光に変換し、そのスリット光を対象物体へ投光するスリット光投光手段と、そのスリット光投光手段からスリット光が投光されている状態における対象物体のスリット光投光画像を撮像する撮像手段と、その撮像手段によって撮像されたスリット光投光画像から抽出されるスリット光の軌跡に基づき、対象物体の3次元形状を算出する3次元形状算出手段と、前記スリット光投光画像内から、そのX軸方向に延びる前記スリット光の軌跡の一部を含む第1領域を設定する第1領域設定手段と、その第1領域設定手段で設定される第1領域内から前記スリット光の軌跡の一部を構成する複数の画素を検出する第1検出手段と、その第1検出手段で検出される複数の画素に基づき、前記スリット光の軌跡に関する近似曲線を算出する近似曲線算出手段と、その近似曲線算出手段で算出される近似曲線に基づき、前記スリット光投光画像内から前記スリット光の軌跡の残り部分を構成する画素を検出するための第2領域を設定する第2領域設定手段とを備え、前記スリットの軌跡は、前記第1検出手段で検出される複数の画素と、前記第2領域設定手段で設定された前記第2領域内から検出される画素とに基づき抽出される。
請求項2記載の3次元形状検出装置は、請求項1記載の3次元形状検出装置において、前記第1領域設定手段は、前記スリット光の軌跡の一部を含む第1領域として、前記スリット光投光画像内における前記スリット光の軌跡の中央部分を含む領域を設定する。
請求項3記載の3次元形状検出装置は、請求項1又は2に記載の3次元形状検出装置において、前記スリット光投光画像のX軸方向において前記スリット光の軌跡の残り部分を構成する画素を検出するための複数の検出位置を、前記第1領域の範囲外から前記スリット光投光画像の端部に向かって設定する検出位置設定手段と、その検出位置設定手段で設定される検出位置毎に前記スリット光の軌跡の残り部分を構成する画素を検出する第2検出手段と、その第2検出手段で検出される画素毎に、その画素と、前記第1検出手段で検出される複数の画素とに基づいて前記近似曲線算出手段で算出される近似曲線を更新する第1更新手段とを備え、前記第2領域設定手段は、前記検出位置設定手段で設定される検出位置毎に前記スリット光投光画像のY軸方向の領域を制限するものであり、そのY軸方向の領域は、前記検出位置設定手段によって最初に設定される検出位置では、前記近似曲線算出手段で算出される近似曲線に基づき制限され、次から設定される検出位置では、前記第1更新手段で更新される近似曲線に基づき制限される。
請求項4記載の3次元形状検出装置は、請求項3に記載の3次元形状検出装置において、前記検出位置設定手段は、前記検出位置として、前記第1領域を挟む両側を交互に設定する。
請求項5記載の3次元形状検出装置は、請求項3又は4に記載の3次元形状検出装置において、前記検出位置毎に前記第2検出手段によって画素が検出されなかった回数を計数する計数手段と、その計数手段によって計数された回数が連続する検出位置において所定回数を超えるか否かを判断する判断手段と、その判断手段によって前記計数手段によって計数された回数が連続する検出位置において所定回数を超えると判断された場合には、以後の検出位置における前記第2検出手段による検出を中止する中止手段とを備えている。
請求項6記載の3次元形状検出装置は、請求項1から5のいずれかに記載の3次元形状検出装置において、前記第1検出手段で検出される複数の画素の内から、前記近似曲線算出手段で算出される近似曲線に対して前記スリット光投光画像のY軸方向に所定間隔以上離れた画素を抽出する抽出手段を備え、前記スリットの軌跡は、その抽出手段で抽出される画素を前記第1検出手段で検出される複数の画素から取り除いた残りの画素と、前記第2領域設定手段で設定された第2領域内から検出される画素とに基づき抽出される。
請求項7記載の3次元形状検出装置は、請求項1から6のいずれかに記載の3次元形状検出装置において、前記抽出手段で抽出される画素を前記第1検出手段で検出される複数の画素から取り除いた残りの画素に基づき、前記近似曲線算出手段で算出される近似曲線を更新する第2更新手段を備え、前記第2領域設定手段は、前記検出位置設定手段によって最初に設定される検出位置におけるY軸方向の領域を前記第2更新手段で更新される近似曲線に基づき制限する。
請求項8記載の3次元形状検出装置は、請求項3から6のいずれかに記載の3次元形状検出装置において、前記第1更新手段又は前記第2更新手段は、段階的に高次の近似曲線を算出する。
この目的を達成するために請求項9記載の撮像装置は、請求項1から8のいずれかに記載の3次元形状検出装置と、その3次元形状検出装置の3次元形状算出手段により算出される対象物体の3次元形状に基づいて、その3次元形状検出装置の撮像手段によって撮像されるスリット光が投光されていない状態における対象物体のスリット光非投光画像を対象物体の所定面の略鉛直方向から観察される平面画像に補正する平面画像補正手段とを備えている。
この目的を達成するために請求項10記載の3次元形状検出プログラムは、スリット光が投光されている状態における対象物体を撮像したスリット光投光画像から抽出されるスリット光の軌跡に基づき、対象物体の3次元形状を算出する3次元形状算出ステップと、前記スリット光投光画像内から前記スリット光の軌跡の一部を含む第1領域を設定する第1領域設定ステップと、その第1領域設定手段で設定される第1領域内から前記スリット光の軌跡の一部を構成する画素を検出する第1検出ステップと、その第1検出手段で検出される画素に基づき、前記スリット光の軌跡に関する近似曲線を算出する近似曲線算出ステップと、その近似曲線算出手段で算出される近似曲線に基づき、前記スリット光投光画像内から前記スリット光の軌跡の残り部分を構成する画素を検出するための第2領域を設定する第2領域設定ステップとを備え、前記スリットの軌跡は、前記第1検出ステップで検出される複数の画素と、前記第2領域設定ステップで設定された前記第2領域内から検出される画素とに基づき抽出される。
請求項1記載の3次元形状検出装置によれば、第2領域設定手段は、スリット光の軌跡の残り部分を構成する画素を検出するための第2領域をスリット光の軌跡に関する近似曲線に基づき設定するので、第2領域内には、かかる画素が含まれる可能性が極めて高く、余分な領域内をも検出して、スリット光を構成する画素以外の画素を検出してしまう等の弊害を抑制することができる。従って、スリット光投光画像内からスリット光の軌跡を構成する画素を検出する検出処理を高精度に行うことができるという効果がある。
請求項2記載の3次元形状検出装置によれば、請求項1に記載の3次元形状検出装置の奏する効果に加え、第1領域設定手段は、第1領域としてスリット光投光画像内におけるスリット光の軌跡の中央部分を含む領域を設定する。操作者は対象物体が撮像画像の中央部に位置するように撮像するのが一般的である。一方、画像の両端部には、対象物体以外の背景や不要な物等が写り込んでいる可能性が高い。よって、画像の両端部を第1領域として設定し、その第1領域内から抽出された画素に基づき近似曲線を算出した場合には、対象物体上のスリット光の軌跡に沿った近似曲線が算出される可能性は低い。一方、本装置にように、スリット光投光画像内におけるスリット光の軌跡の中央部分を含む領域を第1領域として設定することで、対象物体上のスリット光の軌跡に沿った近似曲線を算出することができるという効果がある。
請求項3記載の3次元形状検出装置によれば、請求項1又は2に記載の3次元形状検出装置の奏する効果に加え、近似曲線算出手段で算出される近似曲線は、第2検出手段で検出される画素毎に、その画素と、第1検出手段で検出される複数の画素とに基づいて第1更新手段によって更新されるので、スリット光の軌跡に関する近似曲線を高精度に算出することができる。また、近似曲線が更新された後は、第2領域設定手段は、その更新された近似曲線に基づき、スリット光を構成する画素を検出するためのY軸方向の領域を制限するので、スリット光を含む画素を検出するための検出処理を高速に行うことができるという効果がある。
請求項4記載の3次元形状検出装置によれば、請求項3に記載の3次元形状検出装置の奏する効果に加え、検出位置設定手段は、検出位置として第1領域を挟む両側を交互に設定するので、特に、第1領域を挟む両側において略対照に延びるスリット光の軌跡に関する近似曲線を高精度に算出することができるという効果がある。
例えば、第1領域を挟む両側において略対照に延びるスリット光の軌跡を抽出しようとする場合に、第1領域を挟む一方の領域内の全てを検出した後に、他方の領域内を検出するようとすると、一方の領域における検出軌跡の影響を受け、他方の領域の最初の検出位置におけるスリット光を含む画素が、第1領域を挟む一方の領域から検出された画素に基づいて算出される近似曲線から所定の閾値以上離れ正確にスリット光を含む画素を検出できないケースが発生するという弊害を防止することができる。
請求項5記載の3次元形状検出装置によれば、請求項3又は4に記載の3次元形状検出装置の奏する効果に加え、計数手段によって計数された回数が連続する検出位置において所定回数を越えると判断された場合には、以後の検出位置における第2検出手段による検出は中止手段によって中止されるので、不要な検出を省略して、スリット光の軌跡を抽出するための処理を高速化させることができるという効果がある。
請求項6記載の3次元形状検出装置によれば、請求項1から5のいずれかに記載の3次元形状検出装置の奏する効果に加え、スリットの軌跡は、第1検出手段で検出される複数の画素から抽出手段で抽出される画素を取り除いた残りの画素と、第2領域設定手段で設定された第2領域内から検出される画素とに基づき抽出されるので、第1検出手段で検出される複数の画素の全部をスリット光の軌跡を構成する画素とする場合に比べて、高精度にスリット光の軌跡を抽出することができるという効果がある。
請求項7記載の3次元形状検出装置によれば、請求項1から6のいずれかに記載の3次元形状検出装置の奏する効果に加え、近似曲線算出手段で算出される近似曲線は、第1検出手段で検出される複数の画素から抽出手段で抽出される画素取り除いた残りの画素に基づき更新されるので、第1検出手段で検出される複数の画素に基づき算出される近似曲線に比べて、近似曲線の精度を向上させることができる。また、検出位置設定手段によって最初に設定される検出位置におけるY軸方向の領域は、更新される近似曲線に基づき制限されるので、Y軸方向の領域をより適正な範囲に制限することができるという効果がある。
請求項8記載の3次元形状検出装置によれば、請求項3から6のいずれかに記載の3次元形状検出装置の奏する効果に加え、第1更新手段又は第2更新手段は、段階的に高次の近似曲線を算出するので、凹凸を有する対象物体に投光されたスリット光であっても、そのスリット光の軌跡を高精度に抽出することができるという効果がある。
請求項9記載の撮像装置によれば、請求項1から8のいずれかに記載の3次元形状検出装置と同様な効果を奏することができると共に、請求項1から8のいずれかに記載の3次元検出装置装置によって高精度に抽出されるスリット光の軌跡に基づいて、スリット光非投光画像を正確な平面画像に補正することができるという効果がある。
請求項10記載の3次元形状検出プログラムによれば、請求項1記載の3次元形状検出装置と同様な効果を奏することができるという効果がある。
以下、本発明の好ましい実施例について、添付図面を参照して説明する。図1(a)は本発明の撮像装置1の外観斜視図であり、(b)は撮像装置1の概略断面図である。尚、本発明の3次元形状検出装置は撮像装置1に含まれる装置であり、本発明の3次元形状検出プログラムは撮像装置1のCPU41(図4参照)によって制御されるプログラムである。
撮像装置1は、方形箱形の本体ケース10と、本体ケース10の正面に設けられた結像レンズ31と、結像レンズ31の後方(撮像装置1の内部側)に設けられたCCD画像センサ32と、結像レンズ31の下方に設けられたスリット光投光ユニット20と、本体ケース10に内蔵されたプロセッサ40と、本体ケース10の上部に設けられたレリーズボタン52及びモード切替スイッチ59と、本体ケース10に内蔵されるメモリカード55とで構成され、これらの構成品は図4に示すように、それぞれ信号線により繋がっている。
その他にも、撮像装置1には、撮像装置1による撮像範囲を使用者が決定する際に利用するものとして、本体ケース10の背面に設けられたLCD(Liquid Crystal Display)51と、本体ケース10の背面から前面を通して配設されるファインダ53とが装備されている。
結像レンズ31は、複数枚のレンズで構成され、オートフォーカス機能を有し、自動で焦点距離及び絞りを調整して外部からの光をCCD画像センサ32上に結像する。
CCD画像センサ32は、CCD(Charge Coupled Device)素子などの光電変換素子がマトリクス状に配列されてなる構成で、表面に結像される画像の光の色及び強さに応じた信号を生成し、これをデジタルデータに変換してプロセッサ40へ出力する。尚、CCD素子一つ分のデータが画像を形成する画素の画素データであり、画像データはCCD素子の数の画素データで構成される。
レリーズボタン52は、押しボタン式のスイッチで構成され、プロセッサ40に接続されおり、プロセッサ40にて使用者による押し下げ操作が検知される。 モード切替スイッチ59は、2つの位置に切換え可能なスライドスイッチなどで構成され、一方のスイッチ位置を「ノーマルモード」、他方のスイッチ位置を「補正撮像モード」として検知されるようにプロセッサ40にて割り当てられている。「ノーマルモード」は、撮像した原稿Pそのものを画像データとするモードであり、「補正撮像モード」は、原稿Pを斜め方向から撮像した場合に、その画像データを原稿Pを正面から撮像したような補正された画像データとするモードである。
メモリカード55は、不揮発性で書き換え可能なメモリで構成され、本体ケース10に着脱可能である。
LCD51は、画像を表示する液晶ディスプレイなどで構成され、プロセッサ40からの画像信号を受けて画像を表示する。そして、プロセッサ40からは、状況に応じてCCD画像センサ32で受光したリアルタイムの画像や、メモリカード55に記憶された画像や、装置の設定内容の文字等を表示するための画像信号が送られて来る。
ファインダ53は、光学レンズで構成され、撮像装置1の後ろ側から使用者がのぞき込んだ時に、結像レンズ31がCCD画像センサ32上に結像する範囲とほぼ一致する範囲が見えるようになっている。
次に、図2及び図3を参照して、スリット光投光ユニット20について説明する。図2は、スリット光投光ユニット20の構成を示す図である。図3は、スリット光の角度幅を説明するための図である。スリット光投光ユニット20は、レーザーダイオード21と、コリメートレンズ22と、アパーチャ23と、透明平板24と、シリンドリカルレンズ25と、反射ミラー26と、ロッドレンズ27とで構成されている。
レーザーダイオード21は、赤色レーザー光線を放射する。そして、プロセッサ40からの指令に応じて、レーザー光線の放射及び停止を切り換える。また、レーザーダイオード21の出力は、最大出力定格(例えば5mW)に対して、レーザービームの広がり角の個体ばらつきを考慮して、アパーチャ23を通った箇所で一定の出力(例えば1mW)を得られるように定格出力が調整されている。
コリメートレンズ22は、レーザーダイオード21からのレーザー光線を、スリット光投光ユニット20からの基準距離VP(例えば330mm)に焦点を結ぶように集光する。
アパーチャ23は、矩形に開口された板で構成され、コリメートレンズ22からのレーザー光線を開口部で透過して矩形に整形する。
透明平板24は、無垢のガラス材料などの透明な平板で構成され、裏面にARコート(無反射コーティング)が施され、アパーチャ23からのレーザー光線の光軸に直交する面に対して、本体ケース10の正面側に所定角度β(例えば33度)傾斜して配設されて、アパーチャ23から入射するレーザー光線のパワーの約5%(約50μW)を表面で反射して、約95%(約950μW)を透過する。尚、透明平板24でレーザー光線を反射した方向(撮像装置1の前方へ水平面に対して33度上向き)を第2の方向と呼ぶ。
透明平板24の裏面にARコートを施すことにより、透明平板24内に入射したレーザー光線の透明平板24から出射する際の反射が少なくなり、透明平板24内でのレーザー光線の損失が少なくなるようになっている。また、透明平板24で反射するレーザー光線の割合を、透明平板24の材質の屈折率より決まる表面反射率5%として設定することにより、通常のハーフミラーで実現する場合に必要な反射面に金属蒸着膜を形成するプロセスを省略することができる。
反射ミラー26は、鏡など、レーザー光線を全反射する部材で構成され、透明平板24を透過したレーザー光線の下流に、本体ケース10の正面側に45度傾斜して配設され、レーザー光線を全反射して光路の向きを90度変える。このレーザー光線を反射した方向(撮像装置1の前方へ水平面に対して0度の向き)を第1の方向と呼ぶ。
ロッドレンズ27は、正の焦点距離が短い円筒形状のレンズで構成され、反射ミラー26で反射されるレーザー光線の下流に、円筒形状の軸方向が垂直方向になるように配設されている。そして、反射ミラー26からレーザー光線が入射されると、図3(a)に示すように、焦点距離が短いため、このレーザー光線がすぐに焦点を越えて広がり、所定の広がり角度ε(例えば48度)のスリット光として第1の方向へ出射される。尚、ロッドレンズ27から出射されるスリット光を第1スリット光71と呼ぶ。
シリンドリカルレンズ25は、負の焦点距離となるように一方向が凹形状となったレンズであり、透明平板24で反射されたレーザー光線の下流に、第2の方向に対してレンズ面が直交するように配設さている。そして、透明平板24から入射されるレーザー光線を、図3(b)に示すように、透明平板24でレーザー光線を分割したパワーの比に対して、第1スリット光71の広がり角度εとの比が同等になるような広がり角度κ(つまり、広がり角度εの5%(2.4度))で、第2の方向に広がるスリット光として出射する。尚、シリンドリカルレンズ25から出射されるスリット光を第2スリット光72と呼ぶ。
これらの構成品によって、スリット光投光ユニット20は、プロセッサ40からの指令に応じて、レーザーダイオード21からレーザー光線を放射して、第1の方向へ第1スリット光71、及び、第2の方向へ第2スリット光72を、本体ケース10の結像レンズ31の下方に設けられた窓29から出射する。また、レーザーダイオード21からは赤色レーザー光線が放射されるため、その赤色レーザー光線から生成される第1スリット光71と第2スリット光72とは、その分光成分としてRGB空間におけるR、G、B値のうち、主に赤値Rから構成されることになる。
上述したように構成されるスリット光投光ユニット20によれば、レーザダイオード21から出力されるパワーのうち、透明平板24で分割される第1スリット光71のパワーは95%に対し、第2スリット光72のパワーは約5%と少ないが、角度幅あたりのパワーで見ると、広がり角が48度の第1スリット光71の単位角度あたりのパワーが約20μW/度で、広がり角が2.4度の第2スリット光72の単位角度あたりのパワーも約21μW/度であり、ほぼ変わらない。そして、原稿Pが基準距離VPである330mmの位置にある白色の用紙の場合、第1スリット光71及び第2スリット光72による照度は約1260ルクスとなり、一般的な室内の明るさである500〜1000ルクスの場所でも、スリット光の軌跡と原稿Pとの輝度差が十分あり、後述するスリット光軌跡抽出プログラム422にてスリット光の軌跡画像を確実に抽出することができる。
図4は、撮像装置1の電気的構成を示したブロック図である。撮像装置1に搭載されたプロセッサ40は、CPU41、ROM42、RAM43を備えている。
CPU41は、ROM42に記憶されたプログラムによる処理に応じて、RAM43を利用して、レリーズボタン52の押し下げ操作の検知、CCD画像センサ32から画像データの取り込み、画像データのメモリカード55への書き込み、モード切替スイッチ59の状態検出、スリット光投光ユニット20によるスリット光の出射切り換え等の各種処理を行う。
ROM42には、カメラ制御プログラム421、スリット光軌跡抽出プログラム422、三角測量演算プログラム423、原稿姿勢演算プログラム424、平面変換プログラム425、輝度分散演算プログラム426、相互相関係数演算プログラム427、対応画素検索プログラム428、近似曲線演算プログラム429が記憶されている。
カメラ制御プログラム421は、図5に示すフローチャートの処理(詳細は後述する。)を含む撮像装置1全体の制御に関するプログラムである。スリット光軌跡抽出プログラム422は、スリット光を投光した原稿Pの画像からスリット光の軌跡を抽出するプログラムである。三角測量演算プログラム423は、スリット光軌跡抽出プログラム422で抽出されたスリット光の軌跡の各画素に対する3次元空間位置を演算するプログラムである。
原稿姿勢演算プログラム424は、第1スリット光の軌跡71a及び第2スリット光の軌跡72aの3次元空間位置から、原稿Pの3次元形状を推定して求めるプログラムである。平面変換プログラム425は、原稿Pの位置及び姿勢が与えられて、スリット光無画像格納部432に格納された画像データを、原稿Pの正面から撮像したような画像に変換するためのプログラムである。輝度分散演算プログラム426は、スリット光無画像内の小領域毎に色値に関する標準偏差を演算するためのプログラムである。
相互相関係数演算プログラム427は、スリット光有画像とスリット光無画像とのズレ量を演算するためのプログラムである。対応画素検索プログラム428は、スリット光有画像内から検出された画素が、スリット光無画像内に存在するか否かを検索するプログラムである。近似曲線演算プログラム429は、第1スリット光の軌跡71aの一部を構成する画素から第1スリット光の軌跡71aに関する近似曲線を演算するプログラムである。
RAM43には、スリット光有画像格納部431、スリット光無画像格納部432、検出対象画素値一時格納部433、三角測量演算結果格納部434、原稿姿勢演算結果格納部435、スリット光軌跡情報格納部436、手ぶれ量格納部437、近似曲線格納部438、ワーキングエリア439が記憶領域として割り当てられている。
スリット光有画像格納部431とスリット光無画像格納部432とは、CCD画像センサ32からのスリット光有画像とスリット光無画像との画像データを各々格納する。検出対象画素値一時格納部433は、スリット光有画像の内で、探索範囲に含まれる各画素について、その赤値Rから緑値Gと青値Bとの平均を減算して求められる赤差分値Rdと、輝度値Yとを乗算して得られる値(Rd・Y値)を格納する。三角測量演算結果格納部434は、スリット光有画像の各ポイントの位置を演算した結果を格納する。
原稿姿勢演算結果格納部435は、原稿Pの位置及び姿勢の演算結果を格納する。スリット光軌跡情報格納部436は、後述するスリット光重心位置計算処理において計算される重心位置を格納する。手ぶれ量格納部437は、相互相関係数演算プログラム427によって演算されたスリット光有画像とスリット光無画像とのズレ量を格納する。近似曲線格納部438は、近似曲線演算プログラム429によって演算された近似曲線を格納する。ワーキングエリア439は、CPU41での演算のために一時的にデータを格納する。
次に、図5のフローチャートを参照して、上述したように構成された撮像装置1に関し、使用者によりレリーズボタン52が押されてからの動作について説明する。図5は、撮像装置1のプロセッサ40での処理手順を示すフローチャートである。尚、スリット光軌跡抽出処理(S140)、三角測量演算処理(S160)、原稿姿勢演算処理(S170)、平面変換処理(S180)の詳細については、後述する。
使用者によりレリーズボタン52が押されると、まず、モード切替スイッチ59のスイッチの位置を検知して、そのスイッチの位置が「補正撮像モード」の位置であるか否かを判別する(S110)。判別の結果、「補正撮像モード」の位置にある場合には(S110:Yes)、スリット光投光ユニット20に対しレーザーダイオード21の発光を指令し、第1スリット光71及び第2スリット光72が出射されてから、スリット光有画像として、CCD画像センサ32からRGB値で表現された画像データを取得し、この画像データをRAM43のスリット光有画像格納部431へ読込む(S120)。
スリット光有画像の画像データを読込むと(S120)、スリット光投光ユニット20に対しレーザーダイオード21の発光停止を指令し、第1スリット光71及び第2スリット光72が出射されなくなってから、スリット光無画像としてCCD画像センサ32からRGB値で表現された画像データを取得し、この画像データをスリット光無画像格納部432へ読込む(S130)。
スリット光無画像の画像データを読込むと(S130)、スリット光軌跡抽出処理(S140)を実行し、スリット光軌跡抽出プログラム422によりスリット光有画像格納部431に読込まれたスリット光有画像の画像データから各スリット光の軌跡71a、72aを構成する画素を検出し、その画素に関するデータを検出対象画素値一時格納部433に格納する。
スリット光軌跡抽出処理(S140)を終了すると、次に収差補正処理(S150)を実行する。この収差補正処理によって、光軸からの角度に依存する画像の歪みを補正する。
収差補正処理(S150)を終了すると、三角測量演算処理(S160)を実行する。三角測量演算処理(S160)では、検出対象画素値一時格納部433に格納されている第1スリット光の軌跡71a及び第2スリット光の軌跡72aを構成する画素に関し、その画素毎に3次元空間位置を三角測量演算プログラム423により演算し、演算結果をそれぞれ三角測量演算結果格納部434に格納する。
三角測量演算処理(S160)を終了すると、原稿姿勢演算処理(S170)を実行する。原稿姿勢演算処理(S170)では、三角測量演算結果格納部434に格納された第1スリット光71及び第2スリット光72のスリット光の軌跡の3次元空間位置を用いて、原稿姿勢演算プログラム424により、原稿Pの位置及び姿勢を演算し、演算結果を原稿姿勢演算結果格納部435に格納する。
原稿姿勢演算処理(S170)を終了すると、平面変換処理(S180)を実行する。平面変換処理(S180)では、原稿Pの位置及び姿勢から、平面変換プログラム425により、スリット光無画像格納部432に記憶された画像データを、正面から観察されたような画像の画像データに変換する。
平面変換処理(S180)が終了すると、生成された正立画像の画像データをメモリカード55に書き込み(S190)、当該処理を終了する。
一方、S110におけ判別の結果が、「補正撮像モード」ではなく「ノーマルモード」の位置の場合には(S110:No)、スリット光投光ユニット20のレーザーダイオード21が発光せず、第1スリット光71及び第2スリット光72が出射されていない状態で、CCD画像センサ32からスリット光無画像を読込み(S200)、その画像データをメモリカード55に書込む(S210)。こうして、当該処理を終了する。
次に、図6乃至図16を参照して、上述したスリット光軌跡抽出処理(S140)について具体的に説明する。
まず、図6を参照して、スリット光有画像内において、スリット光の軌跡を構成する画素(スリット光を含む画素)と、スリット光を含まない画素との差異を明確にして、スリット光有画像からスリット光を含む画素を高精度で抽出するための抽出原理について説明する。
図6(a)は、スリット光が照射されている状態の原稿Pの撮像画像を示している。原稿P上には、原稿の幅方向に複数列に並ぶ文字部分Mと、矩形状に示した照明反射部分Sと、円状に囲んで示す主の色成分として赤(R)成分を持つ印刷部分Iと、原稿Pの幅方向に延びる第1、第2スリット光の軌跡71a,72aとが形成されている。また、原稿Pの幅方向と直交する方向に延びる1点鎖線はスリット光検出位置を示し、そのスリット光検出位置と第1スリット光の軌跡71aとの交点をスリット光検出画素Kとする。
図6(b)は、スリット光検出位置(図中の1点鎖線参照)における所定パラメータ値を示すグラフであり、スリット光検出位置から各グラフに向かって真っ直ぐに延長線を引いた部分が、そのスリット光検出位置の各所定パラメータ値を示している。所定パラメータとして(ア)は赤値R、(イ)は赤差分値Rd、(ウ)は輝度値Y、(エ)は赤差分値Rdと輝度値Yとの積値Rd・Yを採用している。
赤差分値Rdは、赤値Rから緑値Gと青値Bとの平均を減算して算出される。即ち、この赤差分値Rdによって、スリット光検出位置において、スリット光の主成分であるR成分に対応する赤値Rを他の成分(G値、B値)より強調させることができ、赤値Rが緑値G、青値Bと近い値を有する画素は、赤差分値Rd値が低く、逆に、赤値Rが緑値G、青値Bに比べて高い画素は、赤差分値Rd値が高い値となることを示している。
輝度値Yは、スリット光検出位置における各画素の輝度を示すもので、輝度値Yは、YCbCr空間におけるY値であり、RGB空間からYCbCr空間へは以下の式で変換される。
Y = 0.2989*R+0.5866*G+0.1145*B
Cb=−0.1687*R−0.3312*G+0.5000*B
Cr= 0.5000*R−0.4183*G−0.0816*B
(ア)のグラフからは、スリット光検出画素K、R成分を持つ印刷部分I、照明反射部分Sでは赤値Rが高いことが分かる。ここで、赤値Rの高低を基準に、スリット光検出画素Kを検出しようとすると、スリット光検出画素Kが、R成分を持つ印刷部分Iや照明反射部分Sに含まれている場合には、赤値Rについて両者に明確な差異がないので、R成分を持つ印刷部分Iや照明反射部分Sからスリット光検出画素Kを正確に検出できない。
(イ)のグラフからは、照明反射部分Sは、スリット光検出画素K、R成分を持つ印刷部分Iより赤差分値Rdが低いことが分かる。よって、赤差分値Rdの高低を基準に、スリット光検出画素Kを検出すれば、スリット光検出画素Kが照明反射部分Sに含まれていたとしても、赤差分値Rdに関する両者の差異は明確なので照明反射部分Sからスリット光検出画素Kを正確に検出することは可能である。しかし、スリット光検出画素KがR成分を持つ印刷部分Iに含まれている場合には、赤差分値Rdに関して両者に明確な差異がないので、R成分を持つ印刷部分Iからスリット光検出画素Kを正確に検出できない。
(ウ)のグラフからは、R成分を持つ印刷部分Iが、スリット光検出画素K、照明反射部分Sより輝度値Yが低いことが分かる。よって、輝度値Yの高低を基準に、スリット光検出画素Kを検出すれば、たとえスリット光検出画素KがR成分を持つ印刷部分Iに含まれていたとしても、輝度値Yに関する両者の差異は明確なので、R成分を持つ印刷部分からスリット光検出画素Kを検出することは可能である。しかし、スリット光検出画素が照明反射部分Sに含まれている場合には、輝度値Yに関して両者に明確な差異がないので、照明反射部分Sからスリット光検出画素Kを正確に検出できない。
そこで、(イ)、(ウ)のグラフに示す通り、スリット光検出画素Kは、赤差分値Rdと輝度値Yとの両方が、照明反射部分SやR成分を持つ印刷部分Iよりも高い値を有していることに着目し、その赤差分値Rdと輝度値Yとの積値Rd・Y(以下Rd・Y値)の高低を基準に、スリット光を含む画素を検出することとする。
かかる場合には、(エ)のグラフに示す通り、スリット光検出位置画素KのRd・Y値は、照明反射部分SのRd・Y値やR成分を持つ印刷部分IのRd・Y値よりも高いので、たとえスリット光検出画素Kが照明反射部分SやR成分を持つ印刷部分Iに含まれていたとしても、Rd・Y値に関する両者の差異は明確なので、照明反射部分SやR成分を持つ印刷部分Iからスリット光検出画素Kを正確に検出することができる。
次に、図7乃至図10のフローチャートを参照して、スリット光軌跡抽出処理の具体的な処理の流れを明する。図7はスリット光軌跡抽出処理のフローチャートである。
スリット光軌跡抽出処理(図5のS140)では、まず、スリット光有画像とスリット光無画像とのズレ量を計算する(S701)。
両画像におけるズレ量は、スリット光有画像とスリット光無画像とは、同時に撮像されていないため、その間のユーザの「手ぶれ」等に起因して生ずる。両画像のズレ量は、相互相関係数演算プログラム427により2つの画素間の相互相関係数ccを計算することで得ることができる。尚、相互相関係数ccは−1〜1の値を持ち、最大の値を持つ位置がズレ量となる。
また、相互相関係数ccを計算するに当たっては、画像中の特徴ある部分で計算することが好ましい。黒べた部分、白べた部分、或いは特定の色によるべた部分等において相互相関係数ccを計算しても、相互相関係数ccに明確な差異が得られないためである。そこで、相互相関係数ccを計算するに前に、スリット光無画像内において特徴ある部分を探索する探索処理を行う。
この探索処理では、図11に示すように、スリット光無画像を4つの大領域1〜4に分け、更に、その各大領域1〜4を各大領域内の端(領域1では右上、領域2では左上、領域3では左下、領域4では右下)から中央に向かって小領域に分け、その小領域毎に輝度Yの標準偏差を求める。輝度Yの標準偏差σYは輝度分散演算プログラム426により以下の数1、数2に示す式を使って計算される。
尚、数1において(xc、yc)は小領域中心画素、Rdは小領域のサイズを2等分したサイズを示しており、具体的には、画像サイズが1200pixel×1600pixel程度の場合には、小領域のサイズは41pixel×41pixel程度(数1,2におけるRd=20)で良い。
Figure 2005148813
Figure 2005148813
そして、各大領域1〜4内において最大の標準偏差を有する小領域の中心座標を相互相関係数ccを求める中心位置として、スリット光照射有り画像と無し画像の相互相関係数ccを下記の数3に示す式より求めれば、正確なズレ量を得ることができる。
尚、数3では、スリット光有画像とスリット光無画像との画素の位置の差を(xc、yc)とし、スリット光有画像の画素の輝度をY1、スリット光無画像の輝度をY2とする。また、本実施例のように画像サイズが1200pixel×1600pixel程度の場合には、相互相関係数ccを求める範囲も41pixel×41pixel(Rc=20)程度でよい。
Figure 2005148813
再び、図7に戻って説明を続ける。上述した通りに、スリット光有画像とスリット光無画像とのズレ量が算出されると(S701)、次に、第2スリット光の軌跡72aを抽出する探索範囲を指定する探索パラメータを設定する(S702)。ここで、図12(a)は、スリット光が照射されている状態の原稿Pの撮像画像を模式的に示す図であり、図12(a)に示すように、探索パラメータは第2スリット光の軌跡72a上のccdx方向におけるcX2と、ccdy方向のyMin2からyMax2までの範囲とで設定される。
例えば、画像サイズが1200pixel(幅W)×1600pixel(高さH)の場合には、cX2の値としては、撮像画像の幅Wの画像中心位置とし(図12(a)の一点鎖線)、cX2=599の1点が設定され、yMin2からyMax2の範囲としては、撮像画像の上半分の領域である0から799の範囲で設定される。
ccdx方向に関してcX2を1点に設定するのは、本実施例では、第1スリット光の軌跡71aにより湾曲φを算出するため、第2スリット光の軌跡72aとしては、傾きθ(実空間においてX軸を中心とした回転角)を求めるのに用いるccdy軸上の軌跡座標のみを抽出すれば良いためである。
探索パラメータを設定すると(S702)、後述するスリット光重心位置計算処理を実行する(S703)。そしてスリット光重心位置計算処理(S703)で算出される重心位置の画素に対応する画素が、スリット光無画像内に存在するか否かを検索する(S704)。
ここで、この検索範囲に関し、例えば、図13に示すように、スリット光有画像からスリット光を含む画素として検出された画素が、大領域4内の(xp、yp)において見つかったとする。かかる場合には、S701で算出したスリット光無画像内の大領域4のズレ量(dx4、dy4)を考慮に入れて、xp+dx4−Rs≦x≦xp+dx4+Rsと、xp+dy4−Rs≦y≦yp+dy4+Rsとの範囲で、検出された画素に対応する画素を探索する。
尚、対照物体までの距離が350mm程度、画像サイズが1200pixel×1600pixel程度の場合、手ぶれ量は数10ピクセル程度なので、Rsは数10ピクセル程度で設定すれば良い。
そして、スリット光無画像内を検索した結果、対応する画素が検索された場合には(S705:Yes)、その画素はスリット光有画像にも、スリット光無画像にも共通に存在する画素ということになる。即ち、スリット光有画像内において検出された画素は、スリット光を含む画素とは認められないため、計算された重心位置まわりの画素を抽出対象から外し(S706)、再び、S703からS705までの処理を繰り返す。
一方、対応する画素がスリット光無画像内で検索されなければ(S705:No)、その画素はスリット光無画像には存在せず、スリット光有画像固有の画素ということになる。即ち、その画素は、スリット光を含む画素であると判定し、その計算された重心位置をスリット軌跡情報格納部436に記憶する(S707)。
次に、第1スリット光の軌跡71aを抽出する探索範囲を指定する探索パラメータを設定する(S708)。この探索パラメータは、図12(a)に示すように、ccdy方向についてyMin1からyMax1の範囲で設定される。
具体的には、撮像画像の下半分の領域の内、950から1599の範囲で設定される。下半分の全部の領域を設定しないのは、本実施例では、第1スリット光71は結像レンズ31の光軸と平行で、且つ、結像レンズ31より下から照射されるので、第1スリット光71の存在する範囲は、原稿Pを撮像する場合の使用に耐え得る原稿Pと結像レンズ31との距離から逆算できるため、探索範囲を予め絞りこみ、高速に処理させるためである。一方、ccdx方向については、cXminからcXmaxの範囲で設定される。
探索パラメータを設定すると(S708)、ccdx方向の検出位置を表す変数cXをcXcminに設定し(S709)、その位置においてccdy方向のyMin1からyMax1までの範囲内から、スリット光を含む画素の重心位置を求めるべく、上述したS703からS708までの処理と同様に、S711からS715の処理を実行する。こうして、cX=cXcminの位置において、S711からS715までの処理が終了すると、変数cXに検出間隔dxが加算され(S716)、検出位置cX=cX+dxの位置において、再びS711からS715までの処理が繰り返される。この繰り返し処理は、変数cXの値がcXcmaxに到達するまで繰り返される(S710)。
こうして、ccdx方向のcXcminからcXcmaxまでの各検出位置毎に、スリット光を含む画素の重心位置が計算されると(S710:No)、近似曲線算出処理(S717)によって、ccdx方向の残りの範囲における各検出位置毎にスリット光を含む画素の重心位置が求められ、当該処理を終了する。
次に、図8のフローチャートを参照して、上述したスリット光重心位置計算処理(図7のS703,S711)について具体的に説明する。図8は、スリット光軌跡抽出処理に含まれるスリット光重心位置計算処理のフローチャートである。
スリット光重心位置計算処理は、スリット光を含む画素として検出される画素位置と、スリット光の輝度中心位置とは、スリット光を構成するレーザー光の特性、撮像対象物の表面の細かな凹凸により必ずしも一致ないため、検出される画素を中心とする一定の範囲内でRd・Y値の重心位置を求め、その重心位置をスリット光を含む画素位置とするための処理である。
尚、本実施例では、図12(b)に示すように、その一定の範囲内としてccdx方向にxRange=2,ccdy方向にgRange=5が設定されている。
スリット光重心位置計算処理では、まず、与えられた変数cXについて、ccdx方向の探索範囲を示すxMinとxMaxとを設定する(S801)。xMinは、変数cXが最小値cXmin(=初期値=0)の場合には、最小値cXminで設定され、それ以外の場合には、cXからxRangeを減算した値(=cX−xRange)で設定される。xMaxは、変数cXが最大値cXmax(=1200)の場合には、その最大値cXmaxで設定され、それ以外の場合には、cXにxRangeを加算した値(=cX+xRange)で設定される。よって、S703では変数cXとしてcX2が与えられ、S709では変数cXとしてcXcminが与えられることになる。
ccdx方向の探索範囲を設定すると(S801)、xMin≦ccdx≦xMaxとyMin≦ccdy≦yMaxとの範囲における各画素について赤差分値Rdと輝度値Yとを計算し(S802,S803)、更に、その各画素について計算された赤差分値Rdと輝度値Yとを乗算して、各画素についてRd・Y値を計算し、その結果を検出対象画素値一時格納部433に記憶する(S804)。
次に、与えられた変数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)。
上述した通りに、最大のRd・Y値を有する画素は、探索範囲内でスリット光を含む画素である可能性が極めて高いためである。また、その画素が閾値vThを超えていることを条件とするのは、たとえ最大のRd・Y値を有する画素であっても、閾値vThを越えていない画素は、撮像対象物から外れた遠方の物体にスリット光が当たっている画素(この場合、非常に弱い輝度を持っている)である可能性があり、その画素はスリット光を含む画素の対象候補から外すことで、より高精度にスリット光を含む画素を検出するためである。
探索範囲内で最大のRd・Y値を有し、且つ、閾値vThを越える画素を検索したら(S808)、その検索された画素の画素位置±gRangeの範囲で、Rd・Y値についての重心位置を計算する(S809)。そして、検出位置を更新し(S810)、上述したS806からSS810までの処理を繰り返す。
こうして、cXの±xRangeの範囲における変数ccXの各位置での重心の計算が終了したと判断された場合には(S806:No)、cXの±xRangeの範囲における各ccXで求めた重心位置と、Rd・Y値とを用いて更に、ccdy方向についての重心位置を求め、それをcXにおけるスリット光軌跡のccdy値(Yg)とし(S811)、当該処理を終了する。
尚、重心位置Ygは下記の数4に示す式で算出される。
Figure 2005148813
このようにスリット光を含む画素を検出することで、たとえスリット光を含む画素が、照明反射部分Sに含まれていたとしても、照明反射部分Sでは赤値Rが低く、Rd・Y値が低いので、その照明反射部分Sと最大のRd・Y値を有するスリット光を含む画素との差異が明確となり、高精度にスリット光を含む画素を検出できる。
また、たとえスリット光を含む画素が、R成分を持つ印刷部分Iに含まれていたとしても、R成分を持つ印刷部分Iでは、輝度値Yが低く、Rd・Y値が低いので、そのR成分を持つ印刷部分Iと最大のRd・Y値を有するスリット光を含む画素との差異が明確となり、高精度にスリット光を含む画素を検出できる。
上述したスリット光重心位置計算処理を経て、ccdx方向のcXcminからcXcmaxまでの各検出位置毎に、スリット光を含む画素の重心位置が計算されることになる。図14は、図12(a)のA部分を示した拡大図である。図14に示すように、本実施例では、ccdx方向のcXcminからcXcmaxまでの各検出位置として、画像中心に1箇所、画像中心から左側に4箇所、画像中心から右側に4箇所の合計9箇所が設定されており、各検出位置からスリット光を含む画素の重心位置が計算されることになる。
次に、図9のフローチャートを参照して、上述した近似曲線算出処理(図7のS717)について詳細に説明する。図9は、スリット光軌跡抽出処理に含まれる近似曲線算出処理のフローチャートである。
近似曲線算出処理は(S717)、ccdx方向のcXcminからcXcmaxまでの各検出位置で求められたスリット光を含む画素の重心位置から、第1スリット光の軌跡71aに関する近似曲線を算出し、その近似曲線に基づいてccx方向の残りの範囲における各検出位置でスリット光を含む画素の重心位置を求める処理である。
近似曲線算出処理では、まず、算出する近似曲線の次数Nを「1」に設定する(S901)。次数Nを「1」に設定するのは、S711からS715で検出される画素の重心位置は、そのデータ数が少ないため(本実施例では9点)、この時点で近似曲線の次数を上げとしまうと算出される近似曲線が振動、発散してしまうので、それを防止するためである。
近似曲線の次数Nを設定すると(S901)、S715でスリット光軌跡情報格納部436に記憶されている複数の画素に関する重心位置から近似曲線y=f(x)を算出する(S902)。近似曲線は、測定値yがm−1個の変数x^1,x^2,・・・x^(m−1)に依存する場合、y=a(0)+a(1)*x^1+a(2)*x^2+・・・a(m−1)*x^(m−1)となる線形の式を当てはめて算出される。
また、この近似曲線を算出するためのベースとなる画素の重心位置のデータは、図7のS709からS716の処理によってccdx方向の画像範囲であるcXMinからcXMaxまでの範囲の内、第1スリット光の軌跡71aの中央部分を含むcXcminからcXcmaxまでの範囲内から検出された画素から計算されているので、例えば、画像の端部から検出された画素から計算された重心位置から近似曲線を算出する場合に比べて、原稿P上の第1スリット光の軌跡71aに沿った近似曲線を算出することができる。
即ち、操作者は対象物体である原稿Pを撮像する場合には、原稿Pが撮像画像の中央部に位置するように撮像するのが一般的であるため、画像の両端部には、原稿P以外の背景や不要物等が写り込んでいる可能性が高い。よって、画像の両端部から抽出された画素に基づき近似曲線を算出した場合には、原稿P上の第1スリット光の軌跡71aに沿った近似曲線が算出される可能性は低いのに対し、本実施例のように、スリット光有画像内における第1スリット光の軌跡71aの中央部分を含む領域から検出された画素に基づき近似曲線を算出する場合には、原稿P上の第1スリット光の軌跡71aに沿った近似曲線を算出することができる可能性を高くすることができる。
近似曲線y=f(x)を算出すると、その近似曲線y=f(x)から閾値cTh以上離れている重心位置の画素を抽出する(S903)。本実施例では、図14に示すように、近似曲線から所定の閾値cTh以上離れた左から3番目の画素が抽出される。尚、本実施例では、所定の閾値cThとして近似曲線から±2mm程度(dot換算で11pixel程度:Z=0のXY平面位置でスリット光の巾が1mm程度の広がりを持ち、その2倍程度)が設定されている。
そして、その抽出された画素を除いた残りの画素の重心位置から、S902で算出した近似曲線y=f(x)を更新する(S904)。これにより、第1スリット光の軌跡71aに関する近似曲線として一層高精度な近似曲線を算出することができる。
近似曲線を更新すると(S904)、次に、スリット光を含む画素が連続して見つからなかった回数を表す変数UndetectNo(左側用:lUndetectNo,右側用rUndetectNo)を「0」に設定する(S905)。
UndetectNoを左側用と右側用とに分けて設定するのは、本実施例では、ccdx方向におけるcXcminとcXcmaxとを挟む左側と右側とを交互に検出位置として設定するためである。
そして、このUndetectNoは各検出位置毎にスリット光を含む画素が見つからなかった場合にS919やS913において「1」加算されてゆき、S908やS920においてUndetectNoの値が所定の閾値udLimitを越えていると判断されると、スリット光の軌跡が急激に変化したと判断し、それ以降の検出を中止する。
これは、例えば、図16に示すように、撮像対象としての原稿Pがファイルされているような場合に、一般的には、操作者は原稿Pが画像の中央部に位置するように撮像するものの、画像の両側には不要なものが一緒に撮像されてしまう場合がある。
かかる場合、第1スリット光の軌跡71aは原稿P上では画像中心から左右略対照に湾曲するような軌跡を執るものの、画像の両端部では、図16のC部分に示すように、ファイル状況に応じて不規則に変化する軌跡を執る。一方、操作者においても、少なくとも原稿Pの部分が正立画像に変換されれば良く、画像両端部までを正立画像に変換することを要求する場合は少ない。
そこで、スリット光を含む画素が連続して見つからなかった回数を計数し、その計数した結果が所定閾値udLimitを越える場合には、それ以降の検出を中止するで、スリット光の軌跡が急激に変化する可能性の高い画像両端部における検出を省略して、必要な部分(原稿P上の部分)だけを検出することで、スリット光軌跡抽出処理を高速化させるためである。
次に、ccdx方向におけるcXcminより左側の検出位置を表す変数clxと、ccdx方向におけるcXcmaxより右側の検出位置を表す変数crxを設定する(clx=cXcmin−dx,crx=cXcmax+dx)(S906)。即ち、左側の最初の設定位置としては、ccdx方向のcXcminより所定間隔dxだけ左側の位置が設定され、右側の最初の設定位置としては、ccdx方向のcXcmaxより所定間隔dxだけ右側の位置が設定される。
その後、本実施例では、左側の最初の検出位置から検出を開始し、左側の最初の検出位置での検出が終了したら、次に右側の最初の検出位置での検出を開始する。右側の最初の検出位置での検出が終了したら、次に左側の最初の検出位置から所定間隔dxだけ左側の位置に検出位置が設定される。この繰り返し処理を、左側の検出位置clxがcXmix、右側の検出位置crxがcXmaxになるまで実行する(S907)。
こうして、S906においてccdx方向の検出位置を設定し、S907においてその検出位置が画像範囲内であることが確認されると(S907:Yes)、先ず、設定された左側の検出位置clxが画像範囲の最小値cXmin以上か否か、或いは、lUndetectNoが閾値udLimitより小さいか否かを判定する(S908)。
設定された左側の検出位置clxが画像範囲の最小値cXminより小さければ、左側の検出は終了したと判断し(S908:Yes)、右側の検出を実行すべくS920に移行する。また、lUndetectNoが閾値udLimitより大きければ、上述した通りその検出位置における検出は中止され、S920に移行する。
一方、検出位置clxが画像範囲の最小値cXmin以上であり、或いは、lUndetectNoが閾値udLimitより小さいと判断されると(S908:Yes)、検出位置clxにおけるS904で更新した近似曲線y=f(x)上の値を計算し(S909)、その値から検出位置clxにおけるccdy方向の検出範囲を設定する(S910)(yMin=y−ySRange,yMax=y+ySRange)。尚、本実施例では、図15に示すようにySRangeとして、Z=0のXY平面において、スリット光の巾の2倍とスリット光の許容傾きにより、12pixel程度が設定されている。
検出位置clxにおけるccdy方向の検出範囲が設定されると、その範囲内で上述したのと同様にスリット光を含む画素を検出すべくS911からS914の処理を実行する。
即ち、本来、ccdy方向の検出範囲としては、図12(a)に示すようにyMin1からyMax1までの範囲を検出する必要がある所、そのccdy方向の検出範囲を近似曲線から±ySRangeの範囲に制限することで、検出処理を高速化することができる。また、近似曲線の周辺にはスリット光を含む画素が存在する可能性が極めて高いため、yMin1からyMax1までの範囲を検出する場合に比べて誤検出する可能性を低減することができる。
そして、S914において計算された重心位置をスリット光軌跡情報格納部436に格納すると(S914)、今回探索された画素の重心位置と、過去に探索された画素の重心位置とを使ってS904で更新された近似曲線y=f(x)を再度更新する(S915)。これにより、第1スリット光の軌跡71aに関する近似曲線を一層高精度にすることができる。近似曲線を更新すると、lUndetectNoを「0」に設定して(S916)、検出位置clxにおける検出を終了する。
一方、S910で設定されたyMINからyMAXの範囲をすべて検索した結果、スリット光有画像内から検出された画素がスリット光無画像内から検出された場合、即ち、スリット光を含む画素が検出されなかった場合には(S918:Yes)、lUndetectNoに「1」を加算し(S919)、検出位置clxにおける検出を終了する。
こうして、検出位置clxにおける検出を終了すると、次は、右側の検出位置crxにおける検出を開始する。尚、検出位置crxにおいて行われるS920からS931の処理は、左側の検出位置clxにおいて行われるS907からS911と同様であるため、その説明は省略する。
上述したように、ccdx方向のcXcmin−dxからcXmixまでの範囲(左側)、ccdx方向のcXcmax+dxからcXmaxまでの範囲(右側)における各検出位置での検出が終了すると当該処理を終了する。
次に、図10のフローチャートを参照して、図9のフローチャートにおけるS902,S903,S915,S927において、探索された画素の重心位置を使って近似曲線y=f(x)を求める処理について説明する。
近似曲線y=f(x)を求める場合には、まず、最小2乗法を用いてN次の近似曲線y=f(x)が求められる(S1001)。S904では1次の近似曲線y=f(x)から求められることになる。次に、検出された画素の重心位置と近似曲線との誤差の標準偏差σaが求められる(S1002)。そして、求められた標準偏差σaが所定の閾値aThより大きいか否かが判定される(S1003)。尚、本実施例では、所定の閾値aThを3.54picel程度(Z=0のXY平面上の換算で、スリット光の巾の広がりが1mm程度であり、その広がりの標準偏差σの2倍である2σの値をpixel換算した値)として用いている。その結果、標準偏差σaが閾値aThより小さければ(S1003:No)、近似曲線の次数Nを上げることなく、設定されている次数Nの近似曲線とする。
一方、標準偏差σaが閾値aTh以上であれば(S1003:Yes)、設定されている次数Nが所定の閾値nTh以上か否かが判定される(S1004)。所定の閾値nThは、見開き原稿の片側部分の表面形状で(3次或いはそれ以上)を想定し、本実施例では、5次としている。その結果、次数Nが所定の閾値nTh以上であれば(S1004:Yes)、近似曲線の次数Nを上げることなく設定されている次数Nの近似曲線とし、次数Nが所定の閾値nThより小さければ(S1004:No)、設定されている次数Nに「1」を加算する(S1005)。そして、その「1」加算された次数NでS1001からS1004までの処理を繰り返す。
このように近似曲線を更新する場合に、近似曲線の次数Nを段階的に高次に設定することで、たとえ原稿Pに凹凸がある場合であっても第1スリット光の軌跡71aに関する近似曲線を高精度に算出することができる。
次に、図17及び図18を参照して、上述した三角測量演算処理(図5のS160)を具体的に説明する。三角測量演算処理(S160)では、検出対象画素値一時格納部433に読込まれた画素データに基づいて、第1スリット光の軌跡71a及び第2スリット光の軌跡72aの縦方向のピークを重心計算によって画像データの横方向座標毎に求め、このピーク抽出座標に対する3次元空間位置を次のようにして求める。
図17は、スリット光有画像を説明するための図である。図18は、スリット光の3次元空間位置を算出する方法を説明するための図である。図18に示すように撮像される横方向に湾曲した原稿Pに対する撮像装置1の座標系を、結像レンズ31の光軸方向をZ軸として、撮像装置1から基準距離VP離れた位置をX,Y,Z軸の原点位置として、撮像装置1に対して水平方向をX軸、垂直方向をY軸とする。
そして、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軸方向の位置をlas1、第2スリット光72がX−Y平面に交差するY軸方向の位置をlas2とする。
このとき、第1スリット光の軌跡71aの画像の画素の1つに注目した注目点1のCCD画像センサ32上の座標(ccdx1,ccdy1)に対応する3次元空間位置(X1,Y1,Z1)を、CCD画像センサ32の結像面上の点と、第1スリット光71及び第2スリット光72の出射点と、X−Y平面に交差する点とで形成される三角形について立てた次の5つの連立方程式の解から導き出す。
(1)Y1=−((las1+D)/VP)Z1+las1
(2)Y1=−(Ytarget/VP)Z1+Ytarget
(3)X1=−(Xtarget/VP)Z1+Xtarget
(4)Xtarget=Xfstart+(ccdx1/ResX)×(Xfend−Xfstart)
(5)Ytarget=Yftop―(ccdy1/ResY)×(Yftop−Yfbottom)
尚、本実施例では、第1スリット光71がZ軸に対して平行のためlas1=−Dであり、Y1=−Dである。
同様に、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)×(Xfend−Xfstart)
(5)Ytarget=Yftop―(ccdy2/ResY)×(Yftop−Yfbottom)
こうして算出されたスリット光の3次元空間位置を、三角測量演算結果格納部434へ書き込み、当該処理を終了する。
次に、図19を参照して、上述した原稿姿勢演算処理(図5のS170)を具体的に説明する。図19は、原稿姿勢演算の際の座標系を説明するための図である。
この原稿姿勢演算処理(S170)では、例えば、三角測量演算結果格納部434のデータから、第1スリット光の軌跡71aに対応する3次元空間位置の各点を回帰曲線近似した線を求め、この曲線のX軸方向の位置が「0」における点と、第2スリット光の軌跡72aのX軸方向の位置が「0」における3次元位置とを結ぶ直線を想定し、この直線がZ軸と交わる点、つまり、光軸が原稿Pと交差する点を、原稿Pの3次元空間位置(0,0,L)とする(図19(a)参照)。そして、この直線がX−Y平面となす角を原稿PのX軸まわりの傾きθとする。
また、図19(b)に示すように、第1スリット光の軌跡71aを回帰曲線近似した線を、先に求めたX軸まわりの傾きθ分だけ逆方向に回転変換し、つまり、原稿PをX−Y平面に対して平行にした状態を考える。そして、図19(c)に示すように、原稿PのX軸方向の断面形状を、X−Z平面における原稿Pの断面について、Z軸方向の変位を複数のX軸方向の点で求めてその変位度から、X軸方向の位置を変数としたX軸方向の傾きの関数である湾曲φ(X)を求め、当該処理を終了する。
次に、図20を参照して、上述した平面変換処理(図5のS180)を具体的に説明する。図20は平面変換処理を示すフローチャートである。
平面変換処理では、まず、RAM43のワーキングエリア436に当該処理の処理領域を割り当て、当該処理に用いるカウンタbの変数を初期値(b=0)に設定する(S1300)。
次に、原稿姿勢演算プログラム425での演算結果による原稿Pの位置Lと、傾きθと、湾曲φ(x)とに基づき、スリット光無画像格納部432に格納されたスリット光無画像の4隅の点を、それぞれ、湾曲φ(x)でY軸まわりに回転移動し、X軸まわりに傾きθだけ回転し、Z軸方向に位置Lだけ移動した点で取成される矩形領域(つまり、原稿Pの文字等が書かれた面が略直交方向から観察されたような画像となる矩形領域)を設定すると共に、この矩形領域内に含まれる画素数aを求める(S1301)。
次に、設定された矩形領域を構成する各画素に対応するスリット光無画像上の座標を求めて、この座標周辺の画素情報から、平面画像の各画素の画素情報を設定する。つまり、まず、カウンタbが画素数aに到達したか否かを判断する(S1302)。その結果、カウンタbが画素数aに到達していなけば(S1302:No)、矩形領域を構成する1つの画素を、Y軸を中心に湾曲φ(x)回転移動させ(S1304)、X軸を中心に傾きθ回転移動させ(S1305)、Z軸方向に距離Lだけシフトさせ(S1306)、求められた3次元空間位置を、先の3角測量の関係式により理想カメラで写されたCCD画像上の座標(ccdcx,ccdcy)に変換し(S1307)、使用している結像レンズ31の収差特性に従って、公知のキャリブレーション手法により、実際のカメラで写されたCCD画像上の座標(ccdx,ccdy)に変換し(S1308)、この位置にあるスリット光無画像の画素の状態を求めて、RAM43のワーキングエリア436に格納する(S1309)。そして、次の画素について上述したS1303からS1309までの処理を実行すべく、カウンタbに「1」を加算する(S1309)。
こうして、S1308からS1309までの処理をカウンタbが画素数aになるまで繰り返すと(S1302:Yes)、S1301において、当該処理を実行するためにワーキングエリア436に割り当てた処理領域を開放して(S1310)、当該処理を終了する。
以上説明したように、「撮像補正モード」における撮像装置1は、第1スリット光71及び第2スリット光72の2列のスリット光を原稿Pに投光し、その原稿Pを結像レンズ31によってCCD画像センサ32に結像させて撮像し、続けて、スリット光が投光されていない原稿Pの画像を撮像する。
次に、この2つの撮像画像の内、スリット光が原稿Pに投光された状態を撮像したスリット光有画像から、スリット光の軌跡を抽出する場合には、スリット光の軌跡を構成する画素の一部の画素を検出し、その検出した画素からスリット光の軌跡に関する近似曲線を算出する。
ここで、スリット光の軌跡を構成する画素の残り画素を検出するためのccdy方向の検出範囲は、この近似曲線に基づいて制限されるので、全体として、スリット光を構成する画素を検出するための処理を高速化できると共に、スリット光を含む画素が含まれる可能性が極めて高い範囲だけを検出するので、スリット光を構成する画素以外の画素を誤検出する可能性を低減でき、高精度にスリット光の軌跡を抽出することができる。
こうしてスリット光の軌跡を抽出して、三角測量原理によりスリット光の軌跡各部の3次元空間位置を演算し、これらから原稿Pの位置、傾き、及び湾曲状態(3次元形状データ)を求め、これらの3次元形状データとスリット光無画像の画像データとをメモリカード55に書込む。
よって、撮像装置1によれば、使用者は、モード切替スイッチ59を「補正撮像モード」側に切り換え、ファインダ53、又は、LCD51で原稿Pの所望の範囲が撮像範囲に入っているか確認し、レリーズボタン52を押して画像を撮影することによって、湾曲などの形状変形した原稿Pを斜めから撮像した場合でも、平らな原稿Pを正面から撮像したかのような画像データをカードメモリ55に記憶させることができる。
尚、カードメモリ55に記憶された画像データは、LCD51で表示して撮像内容を確認したり、カードメモリ55を撮像装置1から取り外して、外部のパーソナルコンピュータなどにより表示したり、印刷したりして用いることができる。
上記実施例において、請求項1記載の第1領域設定手段や請求項10記載の第1領域設定ステップとしては、図7のフローチャートのS709,S710の処理が該当する。請求項1記載の第1検出手段や請求項10記載の第1検出ステップとしては、図7のフローチャートのS711からS715までの処理が該当する。請求項1記載の近似曲線算出手段や請求項10記載の近似曲線算出ステップとしては、図9のフローチャートのS902の処理が該当する。請求項1記載の第2領域設定手段や請求項10記載の第2領域設定ステップとしては、図9のフローチャートのS909,S910の処理が該当する。
請求項3記載の検出位置設定手段としては、図9のフローチャートのS905の処理が該当する。請求項3記載の第2検出手段としては、図9のフローチャートのS911からS914,S923からS926の処理が該当する。請求項3記載の第1更新手段としては、図9のフローチャートのS915やS927の処理が該当する。
請求項5記載の係数手段としては図9のフローチャートのS919,S931の処理が該当する。請求項5記載の判断手段や中止手段としては、図9のフローチャートのS908,S920の処理が該当する。
請求項6記載の抽出手段としては図9のフローチャートのS903の処理が該当する。請求項7記載の第2更新手段としては、図9のフローチャートのS904の処理が該当する。
以上実施例に基づき本発明を説明したが、本発明は上記実施例に何ら限定されるものでなく、本発明の主旨を逸脱しない範囲内で種々の改良変形が可能であることは容易に推察できるものである。
例えば、上記実施例では、赤成分を主成分とするスリット光を抽出する場合について説明したが、主成分となる成分は赤成分に限定されるものではなく、緑成分、青成分を主成分とするスリット光であっても良い。例えば、赤成分を主成分とするスリット光に代えて緑成分を主成分とするスリット光を抽出する場合には、赤差分値Rd(=R−(G+B/2))に代えて、緑差分値Gd(=G−(R+B/2))を算出し、Rd・Y値に代えてGd・Y値を採用することもできる。
また、上記実施例では、赤差分値Rdは、赤値Rから緑値Gと青値Bとの平均値を減算することにより算出していたが、赤差分値Rdを算出する方法としては、赤値Rから緑値Gと青値Bとの重み付け平均を減算して算出するようにしても良い。例えば、Rd=R−(2・G+1・B)/3等の式により算出するようにしても良い。
また、撮像装置1で撮像する対象物体は、シート状の原稿Pの他にも、個体ブロックの滑らかな表面であったり、場合によっては稜線をもつ物体の表面であっても良く、およそ2列のスリット光の軌跡から、その3次元空間における3次元形状を希求したい用途にはすべて同様に、対象物体の3次元形状を検出する効果を発揮することができる。
但し、本実施例のように、対象物体がシート状の原稿Pであれば、第1スリット光の軌跡71aを原稿Pの断面形状であるとして、原稿Pの全体の形状を推定し、原稿Pの湾曲などの形状変形に対する画像補正をすることができる。また、対象物体がスリット光の長手方向に対する直交方向に略均一な3次元形状であれば、スリット光を投光する位置に含まれる対象物体の突起部など特異な形状により生じる検出姿勢のずれなどを考慮しなくて良く、スリット光が投光される箇所に気をつかわないでも良いようにできる。
また、本実施例の撮像装置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の縦方向の湾曲形状に対しても推定することができ、これによりスリット無し画像を補正して、更に見やすい画像とすることができる。
また、本実施例では光源に、赤色レーザー光線を放射するレーザーダイオード21を用いているが、その他、面発光レーザー、LED、EL素子など、光ビームを出力できるものであれば、いずれを用いるものであっても良い。
また、透明平板24に代えて、入射するレーザー光線のパワーの所定の割合を所定方向に回折する回折格子を1面に形成した透明平板で構成し、回折格子で回折された1次光のレーザー光線を第2スリット光72とし、そのまま透過する0次光のレーザー光線を第1スリット光71とするものでも良い。
また、スリット光投光ユニット20から出射されるスリット光は、長手方向に直交する方向に、急峻に絞り込まれた細線の他に、一定の幅を備えたストライプ状の光パターンでも良い。
また、第1スリット光71と、第2スリット光72の位置関係は逆転しても良く、第1の方向つまり撮像装置1から見て下側に第2スリット光72を、そして、第2の方向に第1スリットを形成すべく、各光学素子を配設しても良い。
また、撮像装置1は、スリット光有画像及びスリット光無画像を、結像レンズ31及びCCD画像センサ32を用いて撮像するよう構成されている。これに対して、結像レンズ31及びCCD画像センサ32の他に、スリット光有画像を撮像するための結像レンズ及びCCD画像センサを別途追加して設けたもので合っても良い。このように構成することにより、スリット光有画像とスリット光無画像とを撮像する間の時間経過(CCD画像センサ32の画像データを転送する時間など)を無くすることができ、スリット光有画像に対してスリット光無画像の撮像範囲のずれが無く、検出する対象物体の3次元形状の精度が高いものとすることができる。但し、本実施例の撮像装置1の方が、構成部品が少なく、小型で安価なものとすることができる。
(a)は撮像装置の外観斜視図であり、(b)は撮像装置1の概略断面図である。 スリット光投光ユニットの構成を示す図である。 スリット光の角度幅を説明するための図である。 撮像装置の電気的構成を示したブロック図である。 プロセッサでの処理手順を示すフローチャートである。 スリット光軌跡抽出処理の原理を説明するための図である。 スリット光軌跡抽出処理を示すフローチャートである。 スリット光重心位置計算処理を示すフローチャートである。 近似曲線算出処理を示すフローチャートである。 近似曲線を更新する場合の処理を示すフローチャートである。 スリット光無画像内において対応画素を探索する際の探索範囲を設定する方法を説明するための図である。 (a)は、スリット光が照射されている状態の原稿Pの撮像画像を示している。(b)は、スリット光検出位置cXにおける周辺画素を模式的に示した拡大図である。 手ぶれ量を考慮してスリット光無画像内の探索範囲を設定する方法を説明するための図である。 図12(a)のA部分を模式的に示した拡大図である。 図12(a)のB部分を模式的に示した拡大図である。 ファイルされた状態の原稿を撮像した撮像画像を示す図である。 スリット光有画像を示した図である。 3次元空間位置算出方法を説明するための図である。 原稿姿勢演算の際の座標系を説明するための図である。 平面変換処理を示すフローチャートである。
符号の説明
1 撮像装置(3次元形状検出装置を含む)
20 スリット光投光ユニット(スリット光投光手段)
21 レーザーダイオード(光出力手段)
32 CCD画像センサ(撮像手段)
421 カメラ制御プログラム(撮像手段)
422 スリット光軌跡抽出プログラム
423 三角測量演算プログラム
424 原稿姿勢演算プログラム(3次元形状算出手段)
425 平面変換プログラム(平面画像補正手段)
429 近似曲線算出プログラム(近似曲線算出手段)

Claims (10)

  1. 光ビームを出力する光出力手段と、
    その光出力手段から出力される光ビームを所定角度で平面状に放射される光束であるスリット光に変換し、そのスリット光を対象物体へ投光するスリット光投光手段と、
    そのスリット光投光手段からスリット光が投光されている状態における対象物体のスリット光投光画像を撮像する撮像手段と、
    その撮像手段によって撮像されたスリット光投光画像から抽出されるスリット光の軌跡に基づき、対象物体の3次元形状を算出する3次元形状算出手段とを備えた3次元形状検出装置において、
    前記スリット光投光画像内から、そのX軸方向に延びる前記スリット光の軌跡の一部を含む第1領域を設定する第1領域設定手段と、
    その第1領域設定手段で設定される第1領域内から前記スリット光の軌跡の一部を構成する複数の画素を検出する第1検出手段と、
    その第1検出手段で検出される複数の画素に基づき、前記スリット光の軌跡に関する近似曲線を算出する近似曲線算出手段と、
    その近似曲線算出手段で算出される近似曲線に基づき、前記スリット光投光画像内から前記スリット光の軌跡の残り部分を構成する画素を検出するための第2領域を設定する第2領域設定手段とを備え、
    前記スリットの軌跡は、前記第1検出手段で検出される複数の画素と、前記第2領域設定手段で設定される前記第2領域内から検出される画素とに基づき抽出されることを特徴とする3次元形状検出装置。
  2. 前記第1領域設定手段は、前記スリット光の軌跡の一部を含む第1領域として、前記スリット光投光画像内における前記スリット光の軌跡の中央部分を含む領域を設定することを特徴とする請求項1に記載の3次元形状検出装置。
  3. 前記スリット光投光画像のX軸方向において前記スリット光の軌跡の残り部分を構成する画素を検出するための複数の検出位置を、前記第1領域の範囲外から前記スリット光投光画像の端部に向かって設定する検出位置設定手段と、
    その検出位置設定手段で設定される検出位置毎に前記スリット光の軌跡の残り部分を構成する画素を検出する第2検出手段と、
    その第2検出手段で検出される画素毎に、その画素と、前記第1検出手段で検出される複数の画素とに基づいて前記近似曲線算出手段で算出される近似曲線を更新する第1更新手段とを備え、
    前記第2領域設定手段は、前記検出位置設定手段で設定される検出位置毎に前記スリット光投光画像のY軸方向の領域を制限するものであり、そのY軸方向の領域は、前記検出位置設定手段によって最初に設定される検出位置では、前記近似曲線算出手段で算出される近似曲線に基づき制限され、次から設定される検出位置では、前記第1更新手段で更新される近似曲線に基づき制限されることを特徴とする請求項1又は2に記載の3次元形状検出装置。
  4. 前記検出位置設定手段は、前記検出位置として、前記第1領域を挟む両側を交互に設定することを特徴とする請求項3に記載の3次元形状検出装置。
  5. 前記検出位置毎に前記第2検出手段によって画素が検出されなかった回数を計数する計数手段と、
    その計数手段によって計数された回数が連続する検出位置において所定回数を超えるか否かを判断する判断手段と、
    その判断手段によって前記計数手段によって計数された回数が連続する検出位置において所定回数を超えると判断された場合には、以後の検出位置における前記第2検出手段による検出を中止する中止手段とを備えていることを特徴とする請求項3又は4に記載の3次元形状検出装置。
  6. 前記第1検出手段で検出される複数の画素の内から、前記近似曲線算出手段で算出される近似曲線に対して前記スリット光投光画像のY軸方向に所定間隔以上離れた画素を抽出する抽出手段を備え、
    前記スリットの軌跡は、その抽出手段で抽出される画素を前記第1検出手段で検出される複数の画素から取り除いた残りの画素と、前記第2領域設定手段で設定された第2領域内から検出される画素とに基づき抽出されることを特徴とする請求項1から5のいずれかに記載の3次元形状検出装置。
  7. 前記抽出手段で抽出される画素を前記第1検出手段で検出される複数の画素から取り除いた残りの画素に基づき、前記近似曲線算出手段で算出される近似曲線を更新する第2更新手段を備え、
    前記制限手段は、前記検出位置設定手段によって最初に設定される検出位置におけるY軸方向の領域を前記第2更新手段で更新される近似曲線に基づき制限することを特徴とする請求項1から6のいずれかに記載の3次元形状検出装置。
  8. 前記第1更新手段又は前記第2更新手段は、段階的に高次の近似曲線を算出することを特徴とする請求項3から6のいずれかに記載の記載の3次元形状検出装置。
  9. 請求項1から8のいずれかに記載の3次元形状検出装置と、
    その3次元形状検出装置の3次元形状算出手段により算出される対象物体の3次元形状に基づいて、その3次元形状検出装置の撮像手段によって撮像されるスリット光が投光されていない状態における対象物体のスリット光非投光画像を対象物体の所定面の略鉛直方向から観察される平面画像に補正する平面画像補正手段とを備えていることを特徴とする撮像装置。
  10. スリット光が投光されている状態における対象物体を撮像したスリット光投光画像から抽出されるスリット光の軌跡に基づき、対象物体の3次元形状を算出する3次元形状算出ステップを備えた3次元形状検出プログラムにおいて、
    前記スリット光投光画像内から前記スリット光の軌跡の一部を含む第1領域を設定する第1領域設定ステップと、
    その第1領域設定手段で設定される第1領域内から前記スリット光の軌跡の一部を構成する画素を検出する第1検出ステップと、
    その第1検出手段で検出される画素に基づき、前記スリット光の軌跡に関する近似曲線を算出する近似曲線算出ステップと、
    その近似曲線算出手段で算出される近似曲線に基づき、前記スリット光投光画像内から前記スリット光の軌跡の残り部分を構成する画素を検出するための第2領域を設定する第2領域設定ステップとを備え、
    前記スリットの軌跡は、前記第1検出ステップで検出される複数の画素と、前記第2領域設定ステップで設定された前記第2領域内から検出される画素とに基づき抽出されることを特徴とする3次元形状検出プログラム。
JP2003381104A 2003-11-11 2003-11-11 3次元形状検出装置、撮像装置、及び、3次元形状検出プログラム Withdrawn JP2005148813A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2003381104A JP2005148813A (ja) 2003-11-11 2003-11-11 3次元形状検出装置、撮像装置、及び、3次元形状検出プログラム
PCT/JP2004/016632 WO2005045363A1 (ja) 2003-11-11 2004-11-10 3次元形状検出装置、撮像装置、及び、3次元形状検出プログラム
US11/431,033 US7365301B2 (en) 2003-11-11 2006-05-10 Three-dimensional shape detecting device, image capturing device, and three-dimensional shape detecting program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003381104A JP2005148813A (ja) 2003-11-11 2003-11-11 3次元形状検出装置、撮像装置、及び、3次元形状検出プログラム

Publications (2)

Publication Number Publication Date
JP2005148813A true JP2005148813A (ja) 2005-06-09
JP2005148813A5 JP2005148813A5 (ja) 2006-12-28

Family

ID=34567268

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003381104A Withdrawn JP2005148813A (ja) 2003-11-11 2003-11-11 3次元形状検出装置、撮像装置、及び、3次元形状検出プログラム

Country Status (3)

Country Link
US (1) US7365301B2 (ja)
JP (1) JP2005148813A (ja)
WO (1) WO2005045363A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005029408A1 (ja) * 2003-09-18 2005-03-31 Brother Kogyo Kabushiki Kaisha 画像処理装置、及び、撮像装置
US8494304B2 (en) * 2007-05-11 2013-07-23 Xerox Corporation Punched hole detection and removal
DE102008054985B4 (de) * 2008-12-19 2012-02-02 Sirona Dental Systems Gmbh Verfahren und Vorrichtung zur optischen Vermessung von dreidimensionalen Objekten mittels einer dentalen 3D-Kamera unter Verwendung eines Triangulationsverfahrens
JP5864950B2 (ja) * 2011-08-15 2016-02-17 キヤノン株式会社 三次元計測装置、三次元計測方法およびプログラム
CN105026881B (zh) * 2012-10-12 2018-06-26 株式会社尼利可 形状测量方法和形状测量装置
US9881235B1 (en) 2014-11-21 2018-01-30 Mahmoud Narimanzadeh System, apparatus, and method for determining physical dimensions in digital images

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6407817B1 (en) 1993-12-20 2002-06-18 Minolta Co., Ltd. Measuring system with improved method of reading image data of an object
US5668631A (en) * 1993-12-20 1997-09-16 Minolta Co., Ltd. Measuring system with improved method of reading image data of an object
JP3282331B2 (ja) 1993-12-20 2002-05-13 ミノルタ株式会社 3次元形状測定装置
JP3493886B2 (ja) 1996-04-23 2004-02-03 ミノルタ株式会社 デジタルカメラ
US6449004B1 (en) 1996-04-23 2002-09-10 Minolta Co., Ltd. Electronic camera with oblique view correction
EP1067362A1 (en) * 1999-07-09 2001-01-10 Hewlett-Packard Company Document imaging system
JP4012710B2 (ja) * 2001-02-14 2007-11-21 株式会社リコー 画像入力装置
JP2003106826A (ja) * 2001-09-28 2003-04-09 Ricoh Co Ltd 形状測定装置、原稿画像補正装置及び投影画像補正装置

Also Published As

Publication number Publication date
WO2005045363A1 (ja) 2005-05-19
US20060219869A1 (en) 2006-10-05
US7365301B2 (en) 2008-04-29

Similar Documents

Publication Publication Date Title
US7627196B2 (en) Image processing device and image capturing device
US11503228B2 (en) Image processing method, image processing apparatus and computer readable storage medium
US10304164B2 (en) Image processing apparatus, image processing method, and storage medium for performing lighting processing for image data
EP2824923B1 (en) Apparatus, system and method for projecting images onto predefined portions of objects
CN107181897B (zh) 手持装置和手持装置捕捉图像的方法、设备及可读介质
US20070229850A1 (en) System and method for three-dimensional image capture
CN107610080B (zh) 图像处理方法和装置、电子装置和计算机可读存储介质
US11836956B2 (en) Control method for electronic device, electronic device and computer readable storage medium
CN107705278B (zh) 动态效果的添加方法和终端设备
US7365301B2 (en) Three-dimensional shape detecting device, image capturing device, and three-dimensional shape detecting program
JP2005148813A5 (ja)
JP2014178141A (ja) キャリブレーションシステム、およびキャリブレーション方法
CN107707834B (zh) 图像处理方法和装置、电子装置和计算机可读存储介质
US20190297315A1 (en) Structured-light method and system of dynamically generating a depth map
WO2005031253A1 (ja) 3次元形状検出装置、撮像装置、及び、3次元形状検出プログラム
WO2005008174A1 (ja) 3次元形状検出装置、撮像装置、及び、3次元形状検出方法
JP2005128006A (ja) 3次元形状検出装置、撮像装置、及び、3次元形状検出プログラム
JP2023019651A (ja) 投影デバイスおよび測距システム
JP4360145B2 (ja) 3次元形状検出装置、撮像装置、及び、3次元形状検出方法
JP2021105639A5 (ja)
JP2005189021A (ja) 撮像装置
WO2005080915A1 (ja) 3次元形状検出装置および撮像装置
CN109756660B (zh) 电子设备和移动平台
JP2005043250A (ja) 3次元形状検出装置、撮像装置、及び、3次元形状検出方法
JP2005121644A (ja) 3次元形状検出システム、3次元形状検出装置、及び3次元形状検出プログラム

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061109

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061109

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20090401