JP2018169274A - 画像処理装置、画像処理方法及びプログラム - Google Patents
画像処理装置、画像処理方法及びプログラム Download PDFInfo
- Publication number
- JP2018169274A JP2018169274A JP2017066281A JP2017066281A JP2018169274A JP 2018169274 A JP2018169274 A JP 2018169274A JP 2017066281 A JP2017066281 A JP 2017066281A JP 2017066281 A JP2017066281 A JP 2017066281A JP 2018169274 A JP2018169274 A JP 2018169274A
- Authority
- JP
- Japan
- Prior art keywords
- image data
- phase
- dimensional shape
- image processing
- imaging
- 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.)
- Pending
Links
Images
Landscapes
- Image Analysis (AREA)
- Length Measuring Devices By Optical Means (AREA)
- Image Processing (AREA)
Abstract
【課題】 光を反射しにくい領域と対象物体とを含む領域を撮像して得られた画像から、高精度に対象物体の三次元形状を得るために用いる領域を自動で設定するための画像処理を提供することを目的とする。【解決手段】 パターンが投影された物体を撮像して得られた撮像画像データに基づいて、前記物体の三次元形状を取得するための画像処理装置であって、前記撮像画像データに基づいて生成された、前記物体に投影された前記パターンの位相を表す位相画像データを取得する第1取得手段と、前記撮像画像データに基づいて生成された、前記物体に投影された前記パターンの振幅を表す振幅画像データを取得する第2取得手段と、前記位相画像データと前記振幅画像データとに基づいて、前記撮像画像データにおいて前記物体に対応する領域を前記物体の三次元形状を取得する範囲として決定する決定手段と、を有することを特徴とする画像処理装置。【選択図】 図5
Description
本発明は、対象物体の三次元形状の測定に関する画像処理技術に関する。
従来、対象物体の三次元形状を測定する方法としてステレオ位相シフト法が知られている。ステレオ位相シフト法では、明暗の縞状パターンを位相をずらしながら対象物体に複数回投影し、縞パターンが投影された対象物体を2つの方向から撮像する。2つの方向から対象物体を撮像することによって得られた画像から、それぞれの方向における画像の各画素の位相値を算出する。対象物体において2つの方向の位相値が同一となる位置と対象物体を撮像した2つの位置との3点から、三角測量の原理により対象物体の三次元形状を測定することができる。ステレオ位相シフト法は、能動的にパターンを投影することによって三次元形状の測定を行う方法の一例であり、他に位相シフト法や光切断法などがある。
能動的にパターンを投影することによって三次元形状の測定を行う方法では、異常点が撮像画像に含まれている場合、誤った三次元形状が算出される場合がある。この課題に対し、特許文献1は、多重反射光による像(異常点)が含まれる領域を判定し、当該領域を除外した正常な領域を三次元形状を取得するための抽出領域として自動で設定する技術を開示している。
しかしながら、特許文献1の技術は多重反射光による像が含まれる領域を自動で判定する技術であり、パターン光を反射しにくい領域が撮像画像に含まれている場合は、誤った三次元形状を算出してしまうという課題がある。
本発明は、上記課題に鑑みてなされたものであり、光を反射しにくい領域と対象物体とを含む領域を撮像して得られた画像から、高精度に対象物体の三次元形状を得るために用いる領域を自動で設定するための画像処理を提供することを目的とする。
上記課題を解決するために、本発明に係る画像処理装置は、パターンが投影された物体を撮像して得られた撮像画像データに基づいて、前記物体の三次元形状を取得するための画像処理装置であって、前記撮像画像データに基づいて生成された、前記物体に投影された前記パターンの位相を表す位相画像データを取得する第1取得手段と、前記撮像画像データに基づいて生成された、前記物体に投影された前記パターンの振幅を表す振幅画像データを取得する第2取得手段と、前記位相画像データと前記振幅画像データとに基づいて、前記撮像画像データにおいて前記物体に対応する領域を前記物体の三次元形状を取得する範囲として決定する決定手段と、を有することを特徴とする。
本発明によれば、光を反射しにくい領域と対象物体とを含む領域を撮像して得られた画像から、高精度に対象物体の三次元形状を得るために用いる領域を自動で設定することができる。
[実施例1]
本実施例では、油彩画のような数mm〜数十μmの微細な凹凸を表面にもつ略平面形状の物体を被測定物体とし、表面の凹凸形状情報と色情報とを取得する三次元形状測定システムを説明する。このような略平面形状の物体を測定する際、略平面形状のすみずみまで撮像しようして、被測定物体に対応する領域以外にパターン光が反射しにくい領域を含めて撮像を行う場合がある。この場合、本実施例で説明するステレオ位相シフト法による三次元形状測定では、誤った位相値を用いて三次元形状を算出してしまう。そこで、本実施例では、パターン光が反射しにくい領域以外の領域を三次元形状を取得するために用いる範囲(領域)として設定する。これにより、パターン光が反射しにくい領域を用いて誤った位相値を算出してしまうことなく、対象物体の高精度な三次元形状を得ることができる。
本実施例では、油彩画のような数mm〜数十μmの微細な凹凸を表面にもつ略平面形状の物体を被測定物体とし、表面の凹凸形状情報と色情報とを取得する三次元形状測定システムを説明する。このような略平面形状の物体を測定する際、略平面形状のすみずみまで撮像しようして、被測定物体に対応する領域以外にパターン光が反射しにくい領域を含めて撮像を行う場合がある。この場合、本実施例で説明するステレオ位相シフト法による三次元形状測定では、誤った位相値を用いて三次元形状を算出してしまう。そこで、本実施例では、パターン光が反射しにくい領域以外の領域を三次元形状を取得するために用いる範囲(領域)として設定する。これにより、パターン光が反射しにくい領域を用いて誤った位相値を算出してしまうことなく、対象物体の高精度な三次元形状を得ることができる。
<三次元形状測定システムの装置構成について>
図1は三次元形状測定システムの装置構成を示すブロック図である。図1(a)は三次元形状測定システムを正面からみた正面図、図1(b)は三次元形状測定システムを上方からみた平面図である。101は測定の対象となる被測定物体である。102は被測定物体101を固定するための試料台である。103は三次元形状測定に必要な二次元のパターン画像を被測定物体101に投影するための投影装置である。投影装置103としては、例えば640×480画素であり、LED光源を用いた単板モノクロのDLP方式プロジェクターを用いるが、これに限るものではない。被測定物体101上に二次元のパターン画像を投影できるものであればどのようなものであってもよい。104及び105は、パターン画像が投影された被測定物体101を撮像する撮像装置である。各撮像装置には、8688×5792画素のCMOS方式のエリアセンサを有するDSLR(Digital Single Lens Reflex camera)に焦点距離が100mmのマクロレンズを組み合わせたものを用いる。また、第1撮像装置104及び第2撮像装置105は、被測定物体101上の輝度に対し線形な信号値を得る光電変換特性を有しているものとする。また、記録される画像データは、各画素でRGB3チャンネルの色情報を有し、各チャンネルが16ビットで量子化されるものとする。尚、第1撮像装置104及び第2撮像装置105は、光電変換特性や、記録される画像データのチャンネル数や量子化ビット数など上記一例に限定するものではない。尚、レンズには、測定対象物101の表面にピントが合うようティルトレンズ等を用いてもよい。106は、投影装置103、第1撮像装置104、第2撮像装置105を制御して得られた画像データから、被測定物体101の三次元形状を算出する処理を行う画像処理装置である。本実施例における画像処理装置106は、CPU、RAM(ランダムアクセスメモリ)等の主記憶媒体、HD(ハードディスク)やフラッシュメモリ等の補助記憶媒体を備えたPC(Personal Computer)として説明する。ただし、画像処理装置106は、PCに限るものではなく、マイクロコンピュータ等であってもよい。
図1は三次元形状測定システムの装置構成を示すブロック図である。図1(a)は三次元形状測定システムを正面からみた正面図、図1(b)は三次元形状測定システムを上方からみた平面図である。101は測定の対象となる被測定物体である。102は被測定物体101を固定するための試料台である。103は三次元形状測定に必要な二次元のパターン画像を被測定物体101に投影するための投影装置である。投影装置103としては、例えば640×480画素であり、LED光源を用いた単板モノクロのDLP方式プロジェクターを用いるが、これに限るものではない。被測定物体101上に二次元のパターン画像を投影できるものであればどのようなものであってもよい。104及び105は、パターン画像が投影された被測定物体101を撮像する撮像装置である。各撮像装置には、8688×5792画素のCMOS方式のエリアセンサを有するDSLR(Digital Single Lens Reflex camera)に焦点距離が100mmのマクロレンズを組み合わせたものを用いる。また、第1撮像装置104及び第2撮像装置105は、被測定物体101上の輝度に対し線形な信号値を得る光電変換特性を有しているものとする。また、記録される画像データは、各画素でRGB3チャンネルの色情報を有し、各チャンネルが16ビットで量子化されるものとする。尚、第1撮像装置104及び第2撮像装置105は、光電変換特性や、記録される画像データのチャンネル数や量子化ビット数など上記一例に限定するものではない。尚、レンズには、測定対象物101の表面にピントが合うようティルトレンズ等を用いてもよい。106は、投影装置103、第1撮像装置104、第2撮像装置105を制御して得られた画像データから、被測定物体101の三次元形状を算出する処理を行う画像処理装置である。本実施例における画像処理装置106は、CPU、RAM(ランダムアクセスメモリ)等の主記憶媒体、HD(ハードディスク)やフラッシュメモリ等の補助記憶媒体を備えたPC(Personal Computer)として説明する。ただし、画像処理装置106は、PCに限るものではなく、マイクロコンピュータ等であってもよい。
投影装置103、第1撮像装置104、第2撮像装置105は、不図示のUSB(Universal Serial Bus)等のインターフェースを介して画像処理装置106とそれぞれ接続されている。図1に示すように、本実施例では、投影装置103は被測定物体101に正対するよう上方に配置され、投影装置103の左右から被測定物体101を撮像するよう第1撮像装置104及び第2撮像装置105がそれぞれ配置されている。図1(b)において、107は測定範囲であり、投影装置103は測定範囲107を含む範囲に二次元のパターン画像を投影する。また、第1撮像装置104及び第2撮像装置105は撮像する画角の中に測定範囲107が含まれるよう設置されている。
<画像処理装置106の機能構成について>
図2は画像処理装置106の機能構成を示すブロック図である。201はユーザからの操作を受け付ける入力装置であり、例えばキーボード、マウス等のデバイスである。また、202はユーザが入力した内容や測定条件、測定結果をユーザに提示する表示装置であり、液晶モニタ等のデバイスである。入力装置201、表示装置202は、何れも図1に不図示である。
図2は画像処理装置106の機能構成を示すブロック図である。201はユーザからの操作を受け付ける入力装置であり、例えばキーボード、マウス等のデバイスである。また、202はユーザが入力した内容や測定条件、測定結果をユーザに提示する表示装置であり、液晶モニタ等のデバイスである。入力装置201、表示装置202は、何れも図1に不図示である。
撮像ドライバ203は、各撮像装置を制御するための命令群であり、各撮像装置の撮像条件を変更する命令や撮像の実行を指示する命令、撮像によって得られた画像データを各撮像装置から画像処理装置106へ送信するための命令を含んでいる。また、投影ドライバ204は、投影装置103を制御するための命令群であり、パターン画像データを画像処理装置106から投影装置103へ送信するための命令や、投影を開始、終了する命令を含んでいる。同様に、入力ドライバ205は、入力装置201の制御をおこなう命令群、表示ドライバ206は表示装置202を制御する命令群である。
取得制御部207は、投影ドライバ204、撮像ドライバ203に命令を送り、被測定物体101の三次元形状を測定するために必要な撮像画像データを取得する一連の処理を行う命令群である。形状算出部208は、取得制御部207が取得した撮像画像データから被測定物体101の三次元形状を算出する命令群である。色算出部209は、形状算出208が算出した三次元形状に対応する色情報を算出する命令群である。また、UI管理部210は、ユーザが入力装置201に入力した情報の管理や、測定結果を表示装置202に表示する等の処理を行うユーザインターフェース(UI)機能を有する命令群である。測定アプリケーション211は、207〜210の命令群を連動させ、1つの測定アプリケーションとして機能させるための命令群である。
<測定アプリケーション211の処理の流れについて>
図3は、測定アプリケーション211の処理の流れを説明するフローチャートである。測定アプリケーション211は、まず、ステップS301にて、UI管理部210の命令群を用いて第1撮像装置104及び第2撮像装置105の撮像条件等の条件設定を行うようユーザに促す。図20に条件設定をするためのUI画面の一例を示す。図20のUI画面では、ユーザが縞パターンの撮像と位置合わせパターンの撮像と色取得パターンの撮像とについて撮像条件を設定する。ユーザが条件設定を終えると、ステップS302に進む。ステップS302では、取得制御部207の命令群を用いて被測定物体101上に、後述する8枚のパターン画像(縞パターン3枚、位置合わせパターン4枚、色取得パターン1枚)を投影し、それぞれ撮像する一連の処理を実行する。ステップS302の処理が終了すると、ステップS303において形状算出部208の命令群を実行し、撮像によって得られた画像データから被測定物体101の三次元形状情報を算出する。本実施例において得られる三次元形状情報は、第1撮像装置104のエリアセンサの中心を原点とするX、Y、Z座標値をmm単位で各32ビットの浮動小数点で記録した点群情報であり、エリアセンサの画素数と等しい数の座標値を有する。ここで、X軸、Y軸、Z軸は直交座標系であり、X軸、Y軸は第1撮像装置104のエリアセンサ面を含む平面を張り、Z軸はX軸、Y軸に直交する方向に定義される。ステップS304は、ステップS303において算出した点群情報の各点に対応する色情報(RGB値)を算出する処理である。ステップ304の処理は、後述する色取得パターン画像を被測定物体101に投影し、第1撮像装置104で撮像したときに取得される画像データの各画素の色情報を点群情報に対応づけて記録する処理である。本実施例では、点群情報に含まれる各点の座標値は第1撮像装置104を用いて撮像することによって得られた画像データの各画素に1対1で対応するよう算出される。そのため、ステップS304の処理は、画素ごとにXYZ座標を点群情報から検索し、座標値にRGB各16ビット(合計48ビット)の色情報を付与したXYZRGBの計144ビットの情報を記録する。最後に、ステップS305において、ステップS304で記録した色情報が付加された点群情報を表示装置202に表示し、処理を終了する。この処理は、色情報が付加された点群情報の各数値のリストを表示装置202に表示する、XYZ座標を三次元空間上に色情報に対応する色でプロットし、任意の方向からみた投影図を表示するなどの処理を行う。尚、ステップS304の処理は上記の処理には限定されず、表示装置202に表示をおこなわず、不図示のHDやフラッシュメモリ等に色情報が付加された点群情報を直接記録するよう構成しても良い。
図3は、測定アプリケーション211の処理の流れを説明するフローチャートである。測定アプリケーション211は、まず、ステップS301にて、UI管理部210の命令群を用いて第1撮像装置104及び第2撮像装置105の撮像条件等の条件設定を行うようユーザに促す。図20に条件設定をするためのUI画面の一例を示す。図20のUI画面では、ユーザが縞パターンの撮像と位置合わせパターンの撮像と色取得パターンの撮像とについて撮像条件を設定する。ユーザが条件設定を終えると、ステップS302に進む。ステップS302では、取得制御部207の命令群を用いて被測定物体101上に、後述する8枚のパターン画像(縞パターン3枚、位置合わせパターン4枚、色取得パターン1枚)を投影し、それぞれ撮像する一連の処理を実行する。ステップS302の処理が終了すると、ステップS303において形状算出部208の命令群を実行し、撮像によって得られた画像データから被測定物体101の三次元形状情報を算出する。本実施例において得られる三次元形状情報は、第1撮像装置104のエリアセンサの中心を原点とするX、Y、Z座標値をmm単位で各32ビットの浮動小数点で記録した点群情報であり、エリアセンサの画素数と等しい数の座標値を有する。ここで、X軸、Y軸、Z軸は直交座標系であり、X軸、Y軸は第1撮像装置104のエリアセンサ面を含む平面を張り、Z軸はX軸、Y軸に直交する方向に定義される。ステップS304は、ステップS303において算出した点群情報の各点に対応する色情報(RGB値)を算出する処理である。ステップ304の処理は、後述する色取得パターン画像を被測定物体101に投影し、第1撮像装置104で撮像したときに取得される画像データの各画素の色情報を点群情報に対応づけて記録する処理である。本実施例では、点群情報に含まれる各点の座標値は第1撮像装置104を用いて撮像することによって得られた画像データの各画素に1対1で対応するよう算出される。そのため、ステップS304の処理は、画素ごとにXYZ座標を点群情報から検索し、座標値にRGB各16ビット(合計48ビット)の色情報を付与したXYZRGBの計144ビットの情報を記録する。最後に、ステップS305において、ステップS304で記録した色情報が付加された点群情報を表示装置202に表示し、処理を終了する。この処理は、色情報が付加された点群情報の各数値のリストを表示装置202に表示する、XYZ座標を三次元空間上に色情報に対応する色でプロットし、任意の方向からみた投影図を表示するなどの処理を行う。尚、ステップS304の処理は上記の処理には限定されず、表示装置202に表示をおこなわず、不図示のHDやフラッシュメモリ等に色情報が付加された点群情報を直接記録するよう構成しても良い。
<投影装置103が投影するパターン画像について>
図4は、投影装置103が投影するパターン画像を説明する図である。図4に示すパターン画像は、投影装置103の画素と1対1に対応する640×480画素、0(黒)〜255(白)の画素値をとる8ビットのグレースケール画像であるものとして説明する。尚、画素数、ビット深度、色数等はこれに限るものではない。尚、本実施例では、図4(a)〜(h)のパターン画像にそれぞれ0〜7の番号(撮像番号)を付けるものとする。例えば、図4(a)のパターン画像は撮像番号0であり、図4(b)のパターン画像は撮像番号1である。
図4は、投影装置103が投影するパターン画像を説明する図である。図4に示すパターン画像は、投影装置103の画素と1対1に対応する640×480画素、0(黒)〜255(白)の画素値をとる8ビットのグレースケール画像であるものとして説明する。尚、画素数、ビット深度、色数等はこれに限るものではない。尚、本実施例では、図4(a)〜(h)のパターン画像にそれぞれ0〜7の番号(撮像番号)を付けるものとする。例えば、図4(a)のパターン画像は撮像番号0であり、図4(b)のパターン画像は撮像番号1である。
図4(a)〜(c)は、明暗の縞パターンを表すパターン画像である。本実施例ではこれらの縞パターン画像を被測定物体101に投影し、縞パターン画像が投影された被測定物体101を撮像して得られた画像データから位相を算出し、三次元形状を算出する。この縞パターンは正弦波状に輝度が変化するパターンであり、縞パターン画像の画素値は以下の式(1)〜式(3)で決定できる。
ここで、Va(j,i)は、図4(a)の位置(j,i)の画素値を示している。同様にVb(j,i)は、図4(b)の画素値、Vc(j,i)は、図4(c)の画素値を示している。尚、jは画像の横方向、iは画像の縦方向の位置を示す添字である。また、Ncycleは正弦波1周期あたりの画素数を示すパラメータである。図4(a)〜(c)に示した縞パターン画像は、1/3周期ずつ位相をシフトさせた3枚の組み合わせであるが、これに限るものではない。例えば、1/6周期ずつ位相をシフトさせた6枚の組み合わせなどであってもよい。また、縞パターンの波形は正弦波状に限らず、三角波等、位相が推定可能なものであればどのような波形であってもよい。尚、本実施例では、図4(a)〜(c)の縞パターン画像にそれぞれ、上述した撮像番号とは別に、0〜2の番号(縞パターン画像番号)を付けるものとする。例えば、図4(a)の縞パターン画像は縞パターン画像番号0であり、図4(b)の縞パターン画像は縞パターン画像番号1である。
本実施例では、図4(a)〜(c)の縞パターン画像を被測定物体101に投影し、縞パターンが投影された被測定物体101を第1撮像装置104と第2撮像装置105とによって撮像して得られた画像データから、撮像装置ごとに位相を算出する。そして、第1撮像装置の画像データと第2撮像装置の画像データとで位相が一致する画素位置から三角測量により三次元形状を算出する。このとき、画像データには複数周期の正弦波が含まれるため、同一の画像データ内で同じ位相となる画素が周期的に複数存在してしまう。そこで、同一の画像データ内で同じ位相が存在しないよう周期ごとに異なるオフセットを足しこむ位相接続処理がなされる。このオフセットを決定する際に、図4(d)〜(g)に示す、縞パターンに平行なステップエッジを有する位置合わせパターンが使用される。具体的には、まず、位置合わせパターンが投影された被測定物体101を第1撮像装置104及び第2撮像装置105によって撮像して得られた画像データから、ステップエッジの部分が投影された位置をそれぞれ抽出する。そして、抽出した位置のオフセットが第1撮像装置104と第2撮像装置105とで同一の値となるようオフセットを決定する。尚、本実施例では、図4(d)〜(g)の位置合わせパターン画像にそれぞれ、上述した撮像番号とは別に、0〜3の番号(位置合わせパターン画像番号)を付けるものとする。例えば、図4(d)の位置合わせパターン画像は位置合わせパターン画像番号0であり、図4(e)の位置合わせパターン画像は位置合わせパターン画像番号1である。
図4(h)は、被測定物体101の色情報を取得するために投影される色取得パターンである。本実施例では全面均一な白色(画素値255)のパターンを用いるが、これに限るものではない。例えば、被測定物体101に色取得パターンを投影したとき、測定範囲107の範囲内で光量が均一となるよう画素の位置に応じて画素値を変化させてもよい。
<形状算出部208の機能構成について>
図5は、ステップS303を実行する形状算出部208の機能構成を示すブロック図である。撮像画像取得部501は、ステップS302において第1撮像装置104及び第2撮像装置105の撮像によって得られ、HD等の記憶媒体に記録された画像データを必要に応じて取得する。
図5は、ステップS303を実行する形状算出部208の機能構成を示すブロック図である。撮像画像取得部501は、ステップS302において第1撮像装置104及び第2撮像装置105の撮像によって得られ、HD等の記憶媒体に記録された画像データを必要に応じて取得する。
位相画像生成部502は、撮像画像取得部501において取得した画像データの内、第1撮像装置104によって縞パターンが投影された被測定物体101を撮像して得られた画像データ3枚から式(4)に従って各画素の位相値を算出する。そして、各画素に算出された位相値を記録した第1位相画像データを生成する。
ただし、Φ(j,i)は0〜2πの値をとるものとする。Iaは図4(a)の縞パターンを被測定物体101に投影した場合の撮像によって得られた画像データのGチャンネルの値とする。同様に、Ibは図4(b)の縞パターンを被測定物体101に投影した場合の撮像によって得られた画像データのGチャンネルの値、Icは図4(c)の縞パターンを被測定物体101に投影した場合の撮像によって得られた画像データのGチャンネルの値とする。尚、Ia、Ib、Icはいずれも画像データのG値としたが、R、G、Bの各チャンネルの値を所定の重みで加算した輝度情報でもよい。また、第1位相画像データは、各画素1チャンネル、0〜2πまでの値をとる32ビットの浮動小数点の画像データとして不図示のRAM等の記憶媒体に記録されるものとするが、これに限るものではない。同様に、位相画像生成部502では、第2撮像装置105によって撮像された画像データ3枚についても式(4)に従って各画素の位相を算出し、算出した位相値を各画素に記録した第2位相画像データを生成する。
位相接続部503は、位置合わせパターンを投影した被測定物体101を撮像して得られた画像データと位相画像データから、周期ごとに位相の繰り返しが発生しない接続位相画像データを生成する。
図4(d)〜(g)の位置合わせパターンを用いて投影・撮像し、暗部領域(黒)を1、明部領域(白)を0として領域毎に符号化すると、4ビットの2進法の値となり、16通りの領域が判別可能となる。従って、位置合わせパターンを用いて投影・撮像した画像の1領域のサイズを、位相画像データの1周期と同一に設定することによって、位相画像データに含まれる周期の数が16以下であれば、各画素位置が何番目の周期であるか判別できる。第1位相画像データの位相接続を第1撮像装置104の撮像によって得られた画像データを用いて行うことによって第1接続位相画像データを生成する。第2位相画像データの位相接続を第2撮像装置105の撮像によって得られた画像データを用いて行うことによって第2接続位相画像データを生成する。第1撮像装置104及び第2撮像装置105それぞれについて生成された接続位相画像データはRAM等の記憶媒体にそれぞれ記録される。各接続位相画像データは、各画素1チャンネル、32ビットの浮動小数点の画像データとするが、これに限るものではない。尚、位置合わせパターンの種類は4種類に限定されず、被測定物体101のサイズ等に合わせて増減させることが可能である。図6に位相接続した結果の一例を示す。位相画像データの画素値は、0〜2πの範囲で周期的に変化するため、図6(a)に示すように同一の画素値(位相)となる画素が画像の横方向(x方向)に繰り返し現れる。位相接続により、図6(b)に示すように位相画像データにおける位相の周期性が取り除かれる。
振幅画像生成部504は、撮像画像取得部501において取得した画像データの内、第1撮像装置104によって縞パターンが投影された被測定物体101を撮像して得られた画像データ3枚から式(4)及び式(5)に従って各画素の振幅値を算出する。そして、各画素に算出された振幅値を記録した第1振幅画像データを生成する。
振幅A(j,i)は、Ia、Ib、Icをいずれも画像データのG値として算出する。尚、Ia、Ib、Icは、R、G、Bの各チャンネルを所定の重みで加算した輝度情報としてもよい。第また、各振幅画像データは、各画素1チャンネルの値をとる32ビットの浮動小数点の画像データとして不図示のRAM等の記憶媒体に記録されるものとするが、これに限るものではない。同様に、振幅画像生成部504では、第2撮像装置105によって撮像された画像データ3枚についても式(4)及び式(5)に従って各画素の振幅を算出し、算出した振幅値を各画素に記録した第2振幅画像データを生成する。
取得範囲決定部505は、位相画像生成部502で生成した位相画像データ、及び、振幅画像生成部504で生成した振幅画像データを用いて取得範囲画像データを生成することによって、三次元形状を取得する範囲(領域)を決定する。取得範囲画像データは、三次元形状を取得する範囲(領域)を表す画像データである。
取得範囲決定部505の処理の詳細については後述する。後述する対応点探索処理においてこの取得範囲画像データが参照され、対応点の探索範囲が決定される。尚、取得範囲画像データは、各画素1チャンネルの値をとる1ビットの2値画像データとしてRAM等の記憶媒体に記録されるものとするが、これに限るものではない。
対応点探索部506は、第1接続位相画像データの各画素において、位相値が同じとなる第2接続位相画像データの画素位置を算出する。対応点(位相値が同一となる画素位置)は、エピポーラ線の線上から探索する。エピポーラ線は、2台のカメラの位置と姿勢が既知である場合に、三次元空間上の1点をそれぞれ撮像したときの対応点に関する拘束条件である。図7にエピポーラ線の模式図を示す。カメラ視点位置C1から三次元空間上の点Xまでを結ぶ直線と、カメラ視点位置C1からカメラ視点位置C2までを結ぶ直線について、2つの直線を含む三次元空間上の平面(エピポーラ面)が一意に定まる。この平面と撮像面とが交差して生じる直線がエピポーラ線である。具体的には、まず、第1撮像装置104及び第2撮像装置105の姿勢と位置との関係からあらかじめ3×3の基礎行列Fを算出しておき、式(6)の関係からエピポーラ線を算出する。
ここで、(u,v)は第1接続位相画像データの画素の位置を示す二次元座標である。また、(u´,v´)は第2接続位相画像データの画素の位置を示す二次元座標である。式(6)より任意の(u,v)に対し、(u´,v´)との関係を示す直線の方程式が一意に決定する。対応点探索部506では、第1接続位相画像データの(u,v)の位置にある位相値と等しくなる位相値を、第2接続位相画像データにおいて上記直線の方程式に沿って探索し、その位置の二次元座標(u´,v´)をRAM等の記憶媒体に記録する。この処理を第1接続位相画像データの全画素について行う。本実施例においては、上記直線の方程式に沿って対応点を探索する際、取得範囲決定部505で生成した取得範囲画像データを参照する。取得範囲画像データの参照方法については後述する。
三角測量部507は、対応点探索部506で取得した第1接続位相画像データの位置(u,v)に対応する第2接続位相画像データの位置(u´,v´)から、被測定物体101の三次元座標(X,Y,Z)を算出する。具体的には、式(7)及び式(8)で示される3×4の投影行列P及びP´をあらかじめ第1撮像装置104及び第2撮像装置105の焦点距離や位置、姿勢から算出しておき、(X,Y,Z)について連立方程式を解く。
三角測量部507は、上記のように第1接続位相画像データの全画素に対し、逐次三次元座標(X,Y,Z)を算出し、XYZの3チャンネル、32ビットの浮動小数点で記録した点群情報を生成し、HD等の記憶媒体に記録する。
<三次元形状を算出する処理(S303)の流れについて>
図8は、ステップS303の詳細な処理の流れを示すフローチャートである。まず、ステップS801において、撮像装置を指定するための変数vを初期化する。本実施例では、v=0は第1撮像装置104を示す識別番号であり、v=1が第2撮像装置105を示す識別番号となる。次に、ステップS802でvが撮像装置の数Nv(本実施例の場合にはNv=2)より小さい場合はステップS803に進み、そうでない場合はステップS820に進む。ステップS803において、撮像画像取得部501に第1撮像装置104と第2撮像装置105とのどちらの撮像によって得られた画像データを取得するかの指示を与える。この指示により、v=0の場合は第1撮像装置104の撮像によって得られた画像データが後続する処理で読み込まれ、v=1の場合は第2撮像装置105の撮像によって得られた画像データが後続する処理で読み込まれる。ステップS804において、図4に示したパターン画像に付けられた撮像番号を参照するための変数cntを0で初期化する。ステップS805において、縞パターン画像番号を参照するための変数nを初期化する。ステップS806で変数nが縞パターン画像の数Nn(本実施例の場合にはNn=3)より小さい場合はステップS807に進み、そうでない場合はステップS810に進む。ステップS807において、撮像番号cntのパターン画像を投影した被測定物体101を変数vによって指定される撮像装置が撮像して得られた画像データを撮像画像取得部501が取得する。ステップS808において、変数cntに1を加える。ステップS809において、変数nに1を加え、ステップS806に戻る。
図8は、ステップS303の詳細な処理の流れを示すフローチャートである。まず、ステップS801において、撮像装置を指定するための変数vを初期化する。本実施例では、v=0は第1撮像装置104を示す識別番号であり、v=1が第2撮像装置105を示す識別番号となる。次に、ステップS802でvが撮像装置の数Nv(本実施例の場合にはNv=2)より小さい場合はステップS803に進み、そうでない場合はステップS820に進む。ステップS803において、撮像画像取得部501に第1撮像装置104と第2撮像装置105とのどちらの撮像によって得られた画像データを取得するかの指示を与える。この指示により、v=0の場合は第1撮像装置104の撮像によって得られた画像データが後続する処理で読み込まれ、v=1の場合は第2撮像装置105の撮像によって得られた画像データが後続する処理で読み込まれる。ステップS804において、図4に示したパターン画像に付けられた撮像番号を参照するための変数cntを0で初期化する。ステップS805において、縞パターン画像番号を参照するための変数nを初期化する。ステップS806で変数nが縞パターン画像の数Nn(本実施例の場合にはNn=3)より小さい場合はステップS807に進み、そうでない場合はステップS810に進む。ステップS807において、撮像番号cntのパターン画像を投影した被測定物体101を変数vによって指定される撮像装置が撮像して得られた画像データを撮像画像取得部501が取得する。ステップS808において、変数cntに1を加える。ステップS809において、変数nに1を加え、ステップS806に戻る。
ステップS810において、ステップS807で取得した画像データを用いて、位相画像データを位相画像生成部502において生成する。ステップS811において、ステップS807で取得した画像データを用いて、振幅画像データを振幅画像生成部504において生成する。ステップS812において、位置合わせパターン画像番号を参照するための変数mを0で初期化する。ステップS813において、変数mが位置合わせパターン画像の数Nm(本実施例の場合にはNm=4)より小さい場合はステップS814に進み、そうでない場合はステップS817に進む。ステップS814において、撮像番号cntのパターン画像を投影した被測定物体101を変数vによって指定される撮像装置が撮像して得られた画像データを撮像画像取得部501が取得する。ステップS815において、変数cntに1を加える。ステップS816において、変数mに1を加え、ステップS813に戻る。
ステップS817において、ステップS814において取得した画像データとステップS810において生成した位相画像データとから、位相接続部503において接続位相画像データを生成する。ステップS818において、取得範囲画像データを生成する。処理の詳細については後述する。ステップS819において、変数vに1を加え、ステップS802に戻る。全ての撮像装置についてステップS803からステップS819の処理で接続位相画像データが生成されると、処理がステップS802からステップS820に進む。ステップS820において、対応点探索部506が第1接続位相画像データと第2接続位相画像データとから対応点を算出する。最後に、ステップS821において、三角測量部507が対応点から点群情報を生成して処理を終了する。
<取得範囲画像データを生成する処理(S818)について>
まず、取得範囲画像データの生成の原理を説明する。本実施例においては、まず、位相画像データが表す位相画像の領域分割を行う。領域分割を行うのは、位相画像データの以下で説明する特徴を利用するためである。位相画像データにおいて、投影した縞パターンが周期的であるため、投影したパターン光を十分に反射した領域は周期的な特徴を持つ。一方、投影したパターン光を反射しにくい領域は、位相画像データにおいてパターン光の周期的な特徴が表れない。尚、領域分割に用いる所定のサイズは、位相画像データの周期より小さいサイズとする。尚、位相画像データの周期は、投影する縞パターンの周期と、プロジェクターから被測定物体101までの距離とによって決まる。尚、領域分割は、データ自体を分ける必要はなく、位相画像データが表す位相画像が複数の領域に分かれるように区切りを付けるだけで良い。
まず、取得範囲画像データの生成の原理を説明する。本実施例においては、まず、位相画像データが表す位相画像の領域分割を行う。領域分割を行うのは、位相画像データの以下で説明する特徴を利用するためである。位相画像データにおいて、投影した縞パターンが周期的であるため、投影したパターン光を十分に反射した領域は周期的な特徴を持つ。一方、投影したパターン光を反射しにくい領域は、位相画像データにおいてパターン光の周期的な特徴が表れない。尚、領域分割に用いる所定のサイズは、位相画像データの周期より小さいサイズとする。尚、位相画像データの周期は、投影する縞パターンの周期と、プロジェクターから被測定物体101までの距離とによって決まる。尚、領域分割は、データ自体を分ける必要はなく、位相画像データが表す位相画像が複数の領域に分かれるように区切りを付けるだけで良い。
図13は位相画像データの分割領域毎のヒストグラムである。図13(a)は、投影したパターン光が反射しにくい領域のヒストグラムである。パターン光の周期的な特徴が表れないため、ヒストグラムはブロードな分布となる。一方で、投影したパターン光が十分に反射した領域のヒストグラムは、パターン光の周期的な特徴が表れるため、図13(b)〜(d)のいずれかとなる。図13(b)〜(d)のいずれの場合も、分割領域のサイズを位相画像データの周期より小さく設定しているため、頻度0となる画素値(位相値)が存在する。図13(b)は、頻度0となる画素値が頻度0とならない画素値より大きい場合である。図13(c)は、頻度0となる画素値が、頻度0とならない画素値より小さい場合と大きい場合の両方を含む場合である。図13(d)は、頻度0となる画素値が頻度0とならない画素値より小さい場合である。よって、頻度0の画素の数をカウントすることによって、分割領域毎に、投影したパターン光を反射しにくい(又は反射しない)領域か、投影したパターン光を十分に反射する領域かを判定することが出来る。
上述した位相画像データを利用した領域の反射特性の判定は、分割領域の粒度で行われる。分割領域よりもさらに細かく領域の反射特性を判定するため、振幅画像データを利用した領域の反射特性の判定を行う。式(5)より、投影したパターン光が反射しにくい領域においては振幅が小さくなるという特徴がある。図14は振幅画像データのラインプロファイルである。公知の大津の方法などによる2値化処理を用いることによって、画素毎に、投影したパターン光を反射しにくい領域(画素)か、投影したパターン光を十分に反射する領域(画素)かを判別することが出来る。
取得範囲画像データを生成する処理(ステップS818)においては、まず、位相画像データを用いて分割領域の粒度で取得範囲を決定する。その後、取得する領域と取得しない領域との境界の近傍領域(境界領域)を判定する。最後に、当該境界領域について、振幅画像データを利用して取得する領域と取得しない領域とを判定する。このように、位相画像データと振幅画像データとの両方を利用した判定結果によって、三次元形状を取得する範囲(領域)を表す取得範囲画像データを生成することできる。尚、取得範囲画像データは、第1撮像装置104と第2撮像装置105とについてそれぞれ生成する。
<取得範囲画像データを生成する処理(S818)の流れについて>
図9、図10、図11は、取得範囲決定部505における取得範囲画像データを生成する処理(ステップS818)の流れを説明するためのフローチャートである。以下、図9〜図11を用いてステップS818の処理を説明する。
図9、図10、図11は、取得範囲決定部505における取得範囲画像データを生成する処理(ステップS818)の流れを説明するためのフローチャートである。以下、図9〜図11を用いてステップS818の処理を説明する。
図9は、ステップS901〜ステップS915における、位相画像データを利用することによって分割領域の粒度で取得範囲画像データを生成する処理の流れを表す。まず、ステップS901において、分割領域を設定する。本実施例においては、第1撮像装置104及び第2撮像装置105のエリアセンサの画素数から、取得範囲決定部505が用いる位相画像データと振幅画像データの横の画素数は8688であり、縦の画素数は5792である。これらの画像を181×181のブロックに分割する。この分割により、横方向は48個のブロック(分割領域)に分割され、縦方向は32個のブロック(分割領域)に分割される。以下、分割領域が設定された画像を分割画像と呼ぶ。ステップS902において、分割画像の縦方向の位置を示す変数iを0で初期化する。ステップS903において、変数iが縦方向の領域分割数に達しない場合はステップS904に進み、達している場合はステップS916に進む。S904において、分割画像の横方向の位置を示す変数jを0で初期化する。ステップS905において、変数jが横方向の領域分割数に達しない場合はステップS906に進み、達している場合はステップS915に進む。ステップS906において、分割領域における位相画像データの画素値を読み込む。ステップS907において、ステップS906で読み込んだ画素値についてヒストグラムを算出し、頻度0の画素値の数N0をカウントする。ステップS908において、ステップS907で算出したN0が予め設定しておいた閾値Th以上である場合はステップS909に進み、それ以外の場合はステップS910に進む。ステップS909において、分割領域毎に三次元形状を取得するか否かを示す行列α[j,i]に、取得することを示す値である1を格納し、ステップS914に進む。ステップS910において、α[j,i]に、取得しないことを示す値である0を格納し、ステップS914に進む。ステップS914において、変数jに1を加え、ステップS905に戻る。ステップ915において、変数iに1を加え、ステップS903に戻る。以上のステップS901〜ステップS915の処理により、各画素にα[j,i]が記録された第1取得範囲画像データを生成する。
図10は、ステップS906〜ステップS924における、境界領域を算出する処理の流れを表す。ステップS916において、分割画像の縦方向の位置を示す変数iを0で初期化する。ステップS917において、分割画像の横方向の位置を示す変数jを0で初期化する。ステップS918において、変数iが縦方向の領域分割数に達しない場合はステップS919に進み、達している場合はステップS925に進む。ステップS919において、変数jが横方向の領域分割数に達しない場合はステップS920に進み、達している場合はステップS924に進む。ステップS920において、注目領域の画素値α[j,i]を読み込む。ステップS921において、注目領域の近傍領域のαの値を読み込む。注目領域の近傍領域のαの値は、α[j−1,i]、α[j+1,i]、α[j,i−1]、α[j,i+1]である。この際、注目領域が画像の端である場合は、存在しない近傍領域のαの値は読み込まない。ステップS922において、領域毎に境界領域であるか否かを示す行列β[j,i]を算出する。具体的には、ステップS920で読み込んだ注目画素のαの値と、ステップS921で読み込んだ近傍画素のαの値をそれぞれ比較し、近傍画素のαの値の中に注目画素のαの値と異なる値がある場合は、境界領域であることを示す値0をβ[j,i]に格納する。近傍画素のαの値の中に注目画素のαの値と異なる値がない場合は、境界領域でないことを示す値1をβ[j,i]に格納する。
図11は、ステップS925〜ステップS933における、振幅画像データを利用することによって、取得範囲画像データを生成する処理の流れを表す。ステップS925において、分割画像の縦方向の位置を示す変数iを0で初期化する。ステップS926において、分割画像の横方向の位置を示す変数jを0で初期化する。ステップS927において、変数iが縦方向の領域分割数に達しない場合はステップS928に進み、達している場合はステップS934に進む。ステップS928において、変数jが横方向の領域分割数に達しない場合はステップS929に進み、達している場合はステップS932に進む。ステップS929において、注目領域においてβ[j,i]の値を参照し、値が0であればステップS930に進み、それ以外であればステップS932に進む。ステップS930において、分割領域における振幅画像データの画素値を読み込む。ステップS931において、公知の大津の方法などによる2値化方法により2値化を行い、ステップS932に進む。2値化において、0は振幅が閾値より小さい場合であるため取得しない領域を表し、1は振幅が閾値以上の場合であるため取得する領域を表す。ステップS932において、変数jに1を加え、ステップS928に戻る。ステップ933において、変数iに1を加え、ステップS927に戻る。ステップS934において、第1取得範囲画像データと振幅画像データの2値化結果とに基づいて、後述する対応点探索に用いる第2取得範囲画像データを生成する。第2取得画像データは、境界領域と判定されていない領域においては、第1取得範囲画像データの画素値を画素値として記録する。境界領域と判定された領域においては、振幅画像データの2値化結果を画素値として記録する。以上の処理により、三次元形状を取得しない領域には0、三次元形状を取得する領域には1を記録した2値データである第2取得範囲画像データを生成する。
図12は取得範囲画像データを生成する処理において生成された取得範囲画像である。図12(a)は、第1撮像装置104の取得範囲画像であり、図12(b)は第2撮像装置105の取得範囲画像である。黒い領域は画素値が0である領域であり、三次元形状を取得しない領域である。白い領域は画素値が1である領域であり、三次元形状を取得する領域である。第1撮像装置104及び第2撮像装置105のエリアセンサの画素数から、生成される取得範囲画像の横方向の画素数は8688であり、縦方向の画素数は5792である。
<対応点を探索する処理(S820)の流れについて>
図15は、対応点探索部506がステップS820で実行する対応点探索の処理の流れを説明するフローチャートである。以下、図15を用いてステップS820の処理を説明する。ステップS1301において、縦方向の画素の位置を表す変数vを0で初期化する。ステップS1302において、横方向の画素の位置を表す変数uを0で初期化する。ステップS1303において、変数vが画像における所定の縦方向の位置Hに達しない場合はステップS1304に進み、達している場合は処理を終了する。ステップS1304において、変数uが画像における所定の横方向の位置Wに達しない場合はステップS1305に進み、達している場合はステップS1310に進む。本実施例において、第1撮像装置104及び第2撮像装置105のエリアセンサの画素数から、所定の縦方向の位置Hは5792、所定の横方向の位置Wは8688となる。ステップS1305において、第1撮像装置104の第2取得範囲画像データの位置(u,v)の画素値Pを参照し、取得範囲であることを示す値1であればステップS1306に進み、取得範囲でないことを示す0であればステップS1309に進む。ステップS1306において、式(6)を用いてエピポーラ線を算出し、探索の候補となる画素群(u’,v’)を算出する。ステップS1307において、ステップS1306で算出した探索の候補となる画素群(u’,v’)に対応する第2撮像装置105の第2取得範囲画像データの画素位置(u’,v’)をそれぞれ参照する。取得範囲であることを示す値1であればその座標を残し、取得範囲でないことを示す値0であればその座標を探索の候補から取り除くことで、探索画素群(u’,v’)を算出する。ステップS1308において、画素(u,v)における第1撮像装置104の第1接続位相画像データの画素値と、ステップS1307で算出した探索画素群(u’,v’)における第2撮像装置105の第2接続位相画像データの画素値とを比較する。そして、画素値が一致する画素(u’,v’)を特定しステップS1309に進む。ステップS1309において、変数uに1を加え、ステップS1304に戻る。ステップS1310において、変数vに1を加え、ステップS1303に戻る。
図15は、対応点探索部506がステップS820で実行する対応点探索の処理の流れを説明するフローチャートである。以下、図15を用いてステップS820の処理を説明する。ステップS1301において、縦方向の画素の位置を表す変数vを0で初期化する。ステップS1302において、横方向の画素の位置を表す変数uを0で初期化する。ステップS1303において、変数vが画像における所定の縦方向の位置Hに達しない場合はステップS1304に進み、達している場合は処理を終了する。ステップS1304において、変数uが画像における所定の横方向の位置Wに達しない場合はステップS1305に進み、達している場合はステップS1310に進む。本実施例において、第1撮像装置104及び第2撮像装置105のエリアセンサの画素数から、所定の縦方向の位置Hは5792、所定の横方向の位置Wは8688となる。ステップS1305において、第1撮像装置104の第2取得範囲画像データの位置(u,v)の画素値Pを参照し、取得範囲であることを示す値1であればステップS1306に進み、取得範囲でないことを示す0であればステップS1309に進む。ステップS1306において、式(6)を用いてエピポーラ線を算出し、探索の候補となる画素群(u’,v’)を算出する。ステップS1307において、ステップS1306で算出した探索の候補となる画素群(u’,v’)に対応する第2撮像装置105の第2取得範囲画像データの画素位置(u’,v’)をそれぞれ参照する。取得範囲であることを示す値1であればその座標を残し、取得範囲でないことを示す値0であればその座標を探索の候補から取り除くことで、探索画素群(u’,v’)を算出する。ステップS1308において、画素(u,v)における第1撮像装置104の第1接続位相画像データの画素値と、ステップS1307で算出した探索画素群(u’,v’)における第2撮像装置105の第2接続位相画像データの画素値とを比較する。そして、画素値が一致する画素(u’,v’)を特定しステップS1309に進む。ステップS1309において、変数uに1を加え、ステップS1304に戻る。ステップS1310において、変数vに1を加え、ステップS1303に戻る。
以上説明したように、本実施例における画像処理装置106は、位相画像データと振幅画像データとを利用することによって、撮像画像に投影したパターンの周期的な特徴が表れる領域を三次元形状を取得する領域として決定する。これにより、光を反射しにくい領域と対象物体とを含む領域を撮像して得られた画像から、高精度に対象物体の三次元形状を得るために用いる領域を自動で設定することができる。
[実施例2]
実施例1においては、投影した光を反射しにくい領域を自動で判定し、投影した光を反射しにくい領域以外の領域において三次元形状を算出した。しかしながら、略平面体の中央付近の領域を測定する場合など、投影した光を反射しにくい領域を含まないことが予めわかっている場合、取得範囲画像データを生成する必要がない。本実施例においては、必要に応じて取得範囲画像データを生成する処理について説明する。以下、実施例1との差分について主に説明する。
実施例1においては、投影した光を反射しにくい領域を自動で判定し、投影した光を反射しにくい領域以外の領域において三次元形状を算出した。しかしながら、略平面体の中央付近の領域を測定する場合など、投影した光を反射しにくい領域を含まないことが予めわかっている場合、取得範囲画像データを生成する必要がない。本実施例においては、必要に応じて取得範囲画像データを生成する処理について説明する。以下、実施例1との差分について主に説明する。
<三次元形状測定システムの装置構成について>
図16は、本実施例における三次元形状測定システムの装置構成を示すブロック図である。実施例1の装置構成に加えて、本実施例の装置構成はXYステージ1406、光学支持部1405を有する。XYステージ1406は、被測定物体101に対して平行な二次元方向に移動可能なステージである。光学支持部1405は、投影装置103と第1撮像装置103と第2撮像装置104とを支持する支持部である。投影装置103と第1撮像装置103と第2撮像装置104とを用いた投影・撮像と、XYステージ1406を用いた光学支持部1405の移動とを繰り返すことにより、カメラの画角より大きい略平面体の三次元形状情報と色情報とを取得する。
図16は、本実施例における三次元形状測定システムの装置構成を示すブロック図である。実施例1の装置構成に加えて、本実施例の装置構成はXYステージ1406、光学支持部1405を有する。XYステージ1406は、被測定物体101に対して平行な二次元方向に移動可能なステージである。光学支持部1405は、投影装置103と第1撮像装置103と第2撮像装置104とを支持する支持部である。投影装置103と第1撮像装置103と第2撮像装置104とを用いた投影・撮像と、XYステージ1406を用いた光学支持部1405の移動とを繰り返すことにより、カメラの画角より大きい略平面体の三次元形状情報と色情報とを取得する。
<測定領域とステージ移動について>
図17は、測定領域とステージ移動とを説明するための模式図である。まず、左下の測定範囲107において、XYステージ1406が静止した状態で投影・撮像を行う。投影・撮像が完了したら、一つ右隣りの測定範囲に移動し、同様の投影・撮像を行う。そして、投影・撮像とステージ移動とを繰り返しながら、右端の測定範囲における投影・撮像が終わったら、一つ上の測定範囲に移動し、投影・撮像を行う。次に一つ左隣りの測定範囲に移動し、また投影・撮像を行う。このようにステージ移動と撮像とを繰り返す。本実施例においては、横方向4箇所×縦方向5箇所の合計20箇所の測定範囲で投影・撮像を行う。ステージ移動の方法は上記一例に限らない。例えば、中央付近の測定範囲から投影・撮像を開始し、渦を巻くようにステージ移動してもよい。
図17は、測定領域とステージ移動とを説明するための模式図である。まず、左下の測定範囲107において、XYステージ1406が静止した状態で投影・撮像を行う。投影・撮像が完了したら、一つ右隣りの測定範囲に移動し、同様の投影・撮像を行う。そして、投影・撮像とステージ移動とを繰り返しながら、右端の測定範囲における投影・撮像が終わったら、一つ上の測定範囲に移動し、投影・撮像を行う。次に一つ左隣りの測定範囲に移動し、また投影・撮像を行う。このようにステージ移動と撮像とを繰り返す。本実施例においては、横方向4箇所×縦方向5箇所の合計20箇所の測定範囲で投影・撮像を行う。ステージ移動の方法は上記一例に限らない。例えば、中央付近の測定範囲から投影・撮像を開始し、渦を巻くようにステージ移動してもよい。
<取得範囲画像データを生成する処理(S818)の流れについて>
図18は、本実施例における取得範囲画像データを生成する処理の流れを表すフローチャートである。ステップS1601において、投影した光が反射しにくい領域を含む測定範囲で撮像を行ったのか、それとも、投影した光が反射しにくい領域が含まれてない測定範囲で撮像を行ったのかを判定する。具体的には、図19のような測定範囲データを予め作成しておき、読み込むことでこの処理を行う。測定範囲データは、XYステージ1406の制御情報をもとに領域の端部かどうかを自動的に算出してもよいし、UI画面などを利用してステップS301の際にユーザに作成させてもよい。ステップS1601において、投影した光が反射しにくい領域を含む測定範囲で撮像を行ったと判定された場合は、実施例1で既に説明した、ステップS901〜ステップS934の処理を行う。ステップS1601において、投影した光が反射しにくい領域が含まれてない測定範囲で撮像を行ったと判定された場合はステップS1602に進む。ステップS1602において、撮像装置を指定するための変数vを0で初期化する。ステップS1603において、vが撮像装置の数Nvより小さい場合はステップS1604に進み、そうでない場合は処理を。
ステップS1604において、図12(c)で示されている画像を生成する。この画像は全画素において、取得する範囲であることを示す値1が記録されている。撮像装置の数と同じ枚数の画像が生成される。以下、図12(c)で示されている画像を第3取得範囲画像データと呼ぶ。本実施例においては、第1撮像装置104及び第2撮像装置105のエリアセンサの画素数から、第3取得範囲画像データの横方向の画素数は8688であり、縦方向の画素数は5792である。この第3取得範囲画像データを、対応点の探索処理ステップS820において第2取得範囲画像データの代わりに用いる。
図18は、本実施例における取得範囲画像データを生成する処理の流れを表すフローチャートである。ステップS1601において、投影した光が反射しにくい領域を含む測定範囲で撮像を行ったのか、それとも、投影した光が反射しにくい領域が含まれてない測定範囲で撮像を行ったのかを判定する。具体的には、図19のような測定範囲データを予め作成しておき、読み込むことでこの処理を行う。測定範囲データは、XYステージ1406の制御情報をもとに領域の端部かどうかを自動的に算出してもよいし、UI画面などを利用してステップS301の際にユーザに作成させてもよい。ステップS1601において、投影した光が反射しにくい領域を含む測定範囲で撮像を行ったと判定された場合は、実施例1で既に説明した、ステップS901〜ステップS934の処理を行う。ステップS1601において、投影した光が反射しにくい領域が含まれてない測定範囲で撮像を行ったと判定された場合はステップS1602に進む。ステップS1602において、撮像装置を指定するための変数vを0で初期化する。ステップS1603において、vが撮像装置の数Nvより小さい場合はステップS1604に進み、そうでない場合は処理を。
ステップS1604において、図12(c)で示されている画像を生成する。この画像は全画素において、取得する範囲であることを示す値1が記録されている。撮像装置の数と同じ枚数の画像が生成される。以下、図12(c)で示されている画像を第3取得範囲画像データと呼ぶ。本実施例においては、第1撮像装置104及び第2撮像装置105のエリアセンサの画素数から、第3取得範囲画像データの横方向の画素数は8688であり、縦方向の画素数は5792である。この第3取得範囲画像データを、対応点の探索処理ステップS820において第2取得範囲画像データの代わりに用いる。
以上説明したように、本実施例における画像処理装置106は、投影した光が反射しにくい領域を含む測定範囲では実施例1で説明した処理で取得範囲画像データを生成する。投影した光が反射しにくい領域が含まれてないとわかっている測定領域では図12(c)に示す取得範囲画像データを生成する。その結果、無駄な処理を行わずに、三次元形状を算出することができるため、処理の高速化や、保持データの削減になる。
[変形例]
<変形例1>
上記実施例においては、画像処理装置106が第1撮像装置104と第2撮像装置105との撮像によって得られた画像データを取得し、取得した画像データから位相画像データと振幅画像データとを生成していたが、上記一例には限定されない。予め投影装置103と第1撮像装置104と第2撮像装置105とを用いて、上述した実施例と同様の処理から位相画像データと振幅画像データとを生成し、RAMやHD等の記憶媒体に記憶させておく。画像処理装置106は、記憶させておいた位相画像データ及び振幅画像データを記憶媒体から取得し、上記実施例の処理を行ってもよい。この場合の画像処理装置106における形状算出部208の機能構成を図21に示す。位相画像取得部2101及び振幅画像取得部2102は、RAMやHD等の記憶媒体に記憶させておいた位相画像データ及び振幅画像データを取得する。尚、位相画像取得部2101が取得する位相画像データは、位相接続を予め行った接続位相画像データである。この構成により、位相画像データ及び振幅画像データの生成を行わずに、高精度に対象物体の三次元形状を得ることができる。
<変形例1>
上記実施例においては、画像処理装置106が第1撮像装置104と第2撮像装置105との撮像によって得られた画像データを取得し、取得した画像データから位相画像データと振幅画像データとを生成していたが、上記一例には限定されない。予め投影装置103と第1撮像装置104と第2撮像装置105とを用いて、上述した実施例と同様の処理から位相画像データと振幅画像データとを生成し、RAMやHD等の記憶媒体に記憶させておく。画像処理装置106は、記憶させておいた位相画像データ及び振幅画像データを記憶媒体から取得し、上記実施例の処理を行ってもよい。この場合の画像処理装置106における形状算出部208の機能構成を図21に示す。位相画像取得部2101及び振幅画像取得部2102は、RAMやHD等の記憶媒体に記憶させておいた位相画像データ及び振幅画像データを取得する。尚、位相画像取得部2101が取得する位相画像データは、位相接続を予め行った接続位相画像データである。この構成により、位相画像データ及び振幅画像データの生成を行わずに、高精度に対象物体の三次元形状を得ることができる。
<変形例2>
上記実施例においては、撮像装置を2台利用し、ステレオ位相シフト法により三次元形状測定を行う例を示したが、これに限るものではない。例えば、1台の撮像装置を用いて三次元形状測定を行う公知の位相シフト法を利用してもよい。また、上記実施例のように複数のパターンではなく、1つのパターンが投影された物体を撮像することによって3次元形状測定を行う方法にも適用可能である。
上記実施例においては、撮像装置を2台利用し、ステレオ位相シフト法により三次元形状測定を行う例を示したが、これに限るものではない。例えば、1台の撮像装置を用いて三次元形状測定を行う公知の位相シフト法を利用してもよい。また、上記実施例のように複数のパターンではなく、1つのパターンが投影された物体を撮像することによって3次元形状測定を行う方法にも適用可能である。
<変形例3>
上記実施例においては、色情報が付加された点群情報を表示装置202に表示する、もしくは、HDやフラッシュメモリ等に直接記録する。しかし、上記の例には限定されない。例えば、色情報が付加された点群情報に基づいて、インクジェットプリンタや3Dプリンタなどのプリンタが被測定物体101を表す画像又は三次元形状をプリントするためのプリントデータを生成しプリンタに出力してもよい。この場合、形状算出部208は、プリントデータ生成部およびプリントデータ出力部を有する。または、画像処理装置106が生成したプリントデータに基づいてプリントを行うプリント部を有していてもよい。尚、プリントデータは、例えば、色材量を表す色材量データや色材を記録するか否かの2値を表す2値データ、三次元形状を表すSTLデータなどである。
上記実施例においては、色情報が付加された点群情報を表示装置202に表示する、もしくは、HDやフラッシュメモリ等に直接記録する。しかし、上記の例には限定されない。例えば、色情報が付加された点群情報に基づいて、インクジェットプリンタや3Dプリンタなどのプリンタが被測定物体101を表す画像又は三次元形状をプリントするためのプリントデータを生成しプリンタに出力してもよい。この場合、形状算出部208は、プリントデータ生成部およびプリントデータ出力部を有する。または、画像処理装置106が生成したプリントデータに基づいてプリントを行うプリント部を有していてもよい。尚、プリントデータは、例えば、色材量を表す色材量データや色材を記録するか否かの2値を表す2値データ、三次元形状を表すSTLデータなどである。
[その他の実施例]
本発明は、上述の実施例の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
本発明は、上述の実施例の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
106 画像処理装置
502 位相画像生成部
504 振幅画像生成部
505 取得範囲決定部
502 位相画像生成部
504 振幅画像生成部
505 取得範囲決定部
Claims (21)
- パターンが投影された物体を撮像して得られた撮像画像データに基づいて、前記物体の三次元形状を取得するための画像処理装置であって、
前記撮像画像データに基づいて生成された、前記物体に投影された前記パターンの位相を表す位相画像データを取得する第1取得手段と、
前記撮像画像データに基づいて生成された、前記物体に投影された前記パターンの振幅を表す振幅画像データを取得する第2取得手段と、
前記位相画像データと前記振幅画像データとに基づいて、前記撮像画像データにおいて前記物体に対応する領域を前記物体の三次元形状を取得する範囲として決定する決定手段と、
を有することを特徴とする画像処理装置。 - 前記撮像画像データに基づいて、前記位相画像データを生成する第1生成手段をさらに有し、
前記第1取得手段は、前記第1生成手段によって生成された前記位相画像データを取得することを特徴とする請求項1に記載の画像処理装置。 - 前記撮像画像データに基づいて、前記振幅画像データを生成する第2生成手段をさらに有し、
前記第2取得手段は、前記第2生成手段によって生成された前記振幅画像データを取得することを特徴とする請求項1又は請求項2に記載の画像処理装置。 - 前記決定手段は、前記位相画像データと前記振幅画像データとに基づいて前記物体における領域ごとの反射特性を判定することによって、前記撮像画像データにおいて前記物体に対応する領域を前記物体の三次元形状を取得する範囲として決定することを特徴とする請求項1乃至請求項3のいずれか一項に記載の画像処理装置。
- 前記決定手段は、前記位相画像データが表す位相画像を複数のブロックに区切ってブロックごとに前記物体の反射特性を判定した後、前記振幅画像データを用いて前記ブロックに含まれる領域ごとに前記物体の反射特性を判定することによって、前記撮像画像データにおいて前記物体に対応する領域を前記物体の三次元形状を取得する範囲として決定することを特徴とする請求項4に記載の画像処理装置。
- 前記位相画像データが表す位相画像を複数のブロックに区切り、前記複数のブロックのうちの各ブロックにおいて頻度が0となる位相値の数を算出する第1算出手段と、
前記決定手段は、前記頻度が0となる位相値の数が所定の閾値以上であるブロックを前記物体の三次元形状を取得する範囲に含め、かつ、前記頻度が0となる位相値の数が所定の閾値より小さいブロックと、前記頻度が0となる位相値の数が所定の閾値以上であるブロックとの境界の近傍領域に対応するブロックにおいて前記振幅画像データが表す振幅が所定の閾値以上である領域を前記物体の三次元形状を取得する範囲に含めることを特徴とする請求項1乃至請求項3のいずれか一項に記載の画像処理装置。 - 前記決定手段は、前記頻度が0となる位相値の数が所定の閾値より小さく、前記境界の近傍領域でないブロックを前記物体の三次元形状を取得する範囲に含めず、かつ、前記境界の近傍領域に対応するブロックにおいて前記振幅画像データが表す振幅が所定の閾値より小さい領域を前記物体の三次元形状を取得する範囲に含めないことを特徴とする請求項6に記載の画像処理装置。
- 前記撮像画像データは、正弦波状に輝度が変化するパターンを表すパターン画像と、前記パターン画像から正弦波の位相をずらしたパターンを表すパターン画像とが投影された前記物体を撮像することによって得られた複数の画像データであることを特徴とする請求項1乃至請求項7のいずれか一項に記載の画像処理装置。
- 前記決定手段によって決定された前記物体の三次元形状を取得する範囲に基づいて、前記物体の三次元形状を算出する第2算出手段をさらに有することを特徴とする請求項1乃至請求項8のいずれか一項に記載の画像処理装置。
- 前記撮像画像データは、互いに異なる複数のパターンが投影された前記物体を2つの撮像装置が撮像することによって得られた複数の画像データであって、
2つの撮像装置のうち第1撮像装置が撮像することによって得られた前記撮像画像データに基づいて生成された前記位相画像データに対して位相接続を行うことによって、第1接続位相画像データを生成し、2つの撮像装置のうち前記第1撮像装置とは異なる第2撮像装置が撮像することによって得られた前記撮像画像データに基づいて生成された前記位相画像データに対して位相接続を行うことによって、第2接続位相画像データを生成する接続手段と、
前記第1接続位相画像データと第2接続位相画像データとで位相が同一となる位置を探索する探索手段と、をさらに有し、
前記第2算出手段は、前記探索手段によって探索された位置と、前記第1撮像装置の位置と、前記第2撮像装置の位置とに基づいて、三角測量の原理を用いることによって、前記物体の三次元形状を算出することを特徴とする請求項9に記載の画像処理装置。 - 前記第2算出手段によって算出された前記物体の三次元形状を表す情報を、表示装置とプリンタと記憶媒体との少なくとも1つに出力する出力手段をさらに有することを特徴とする請求項9又は請求項10に記載の画像処理装置。
- 前記物体の色情報を取得する第3取得手段と、
前記出力手段は、前記算出手段によって算出された前記物体の三次元形状を表す情報に前記色情報を付加し、前記色情報が付加された前記物体の三次元形状を表す情報を出力することを特徴とする請求項11に記載の画像処理装置。 - 前記第2算出手段は、前記三次元形状を、座標を表す点群情報として算出することを特徴とする請求項9又は請求項10に記載の画像処理装置。
- 前記物体の色情報を取得する第3取得手段と、
前記点群情報が表す座標において対応する座標に前記色情報を付加し、前記色情報が付加された前記点群情報を、表示装置とプリンタと記憶媒体との少なくとも1つに出力することを特徴とする請求項13に記載の画像処理装置。 - 前記撮像画像データは、前記物体を複数の領域に分割して撮像した複数の画像データであって、
前記撮像画像データにおいて前記物体に対応する領域で撮像を行ったか否かを特定する範囲データを取得する第4取得手段と、
前記決定手段は、前記範囲データが前記物体に対応する領域で撮像を行ったことを表す場合、前記位相画像データと前記振幅画像データとに基づいて前記物体において三次元形状を取得する範囲を決定し、前記範囲データが前記物体に対応する領域で撮像を行ったことを表す場合、前記範囲データが表す範囲を前記物体の三次元形状を取得する範囲として決定することを特徴とする請求項1乃至請求項14のいずれか一項に記載の画像処理装置。 - 前記範囲データは、ユーザの指示に基づいて、前記物体に対応する領域で撮像を行ったか否かを特定することを特徴とする請求項15に記載の画像処理装置。
- 前記パターンが投影された前記物体を撮像する撮像装置は、移動可能なステージが有する支持部に支持されている撮像装置であって、
前記範囲データは、前記ステージの制御情報に基づいて、前記物体に対応する領域で撮像を行ったか否かを特定することを特徴とする請求項15に記載の画像処理装置。 - パターンが投影された物体を撮像して得られた撮像画像データに基づいて、前記物体の三次元形状を取得するための画像処理装置であって、
前記撮像画像データに基づいて算出された、前記物体に投影された前記パターンの位相と振幅とに基づいて、前記撮像画像データにおいて前記物体に対応する領域を前記物体の三次元形状を取得する範囲として決定する決定手段と、
を有することを特徴とする画像処理装置。 - パターンが投影された物体を撮像して得られた撮像画像データに基づいて、前記物体の三次元形状を取得するための画像処理装置であって、
前記撮像画像データが表す撮像画像に前記パターンの周期的な特徴が表れているか否かを、前記撮像画像データの領域ごとに判定する第1判定手段と、
前記撮像画像データに基づいて算出された、前記物体に投影された前記パターンの振幅が所定の閾値以上であるか否かを、前記撮像画像データの領域ごとに判定する第2判定手段と、
前記第1判定手段の判定結果と前記第2判定手段の判定結果とに基づいて、前記撮像画像データにおいて前記物体に対応する領域を前記物体の三次元形状を取得する範囲として決定する決定手段と、
を有することを特徴とする画像処理装置。 - コンピュータを請求項1乃至請求項19のいずれか一項に記載の画像処理装置の各手段として機能させるためのプログラム。
- パターンが投影された物体を撮像して得られた撮像画像データに基づいて、前記物体の三次元形状を取得するための画像処理方法であって、
前記撮像画像データに基づいて生成された、前記物体に投影された前記パターンの位相を表す位相画像データを取得する第1取得ステップと、
前記撮像画像データに基づいて生成された、前記物体に投影された前記パターンの振幅を表す振幅画像データを取得する第2取得ステップと、
前記位相画像データと前記振幅画像データとに基づいて、前記撮像画像データにおいて前記物体に対応する領域を前記物体の三次元形状を取得する範囲として決定する決定ステップと、
を有することを特徴とする画像処理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017066281A JP2018169274A (ja) | 2017-03-29 | 2017-03-29 | 画像処理装置、画像処理方法及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017066281A JP2018169274A (ja) | 2017-03-29 | 2017-03-29 | 画像処理装置、画像処理方法及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2018169274A true JP2018169274A (ja) | 2018-11-01 |
Family
ID=64019455
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017066281A Pending JP2018169274A (ja) | 2017-03-29 | 2017-03-29 | 画像処理装置、画像処理方法及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2018169274A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112634244A (zh) * | 2020-12-28 | 2021-04-09 | 博微太赫兹信息科技有限公司 | 一种用于目标检测的三维复数图像处理方法及*** |
-
2017
- 2017-03-29 JP JP2017066281A patent/JP2018169274A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112634244A (zh) * | 2020-12-28 | 2021-04-09 | 博微太赫兹信息科技有限公司 | 一种用于目标检测的三维复数图像处理方法及*** |
CN112634244B (zh) * | 2020-12-28 | 2022-09-30 | 博微太赫兹信息科技有限公司 | 一种用于目标检测的三维复数图像处理方法及*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6195915B2 (ja) | 画像計測装置 | |
JP5631025B2 (ja) | 情報処理装置、その処理方法及びプログラム | |
US10430962B2 (en) | Three-dimensional shape measuring apparatus, three-dimensional shape measuring method, and storage medium that calculate a three-dimensional shape of an object by capturing images of the object from a plurality of directions | |
US20120281087A1 (en) | Three-dimensional scanner for hand-held phones | |
US20120176478A1 (en) | Forming range maps using periodic illumination patterns | |
US20120176380A1 (en) | Forming 3d models using periodic illumination patterns | |
KR20090055803A (ko) | 다시점 깊이맵 생성 방법 및 장치, 다시점 영상에서의변이값 생성 방법 | |
JP2012058076A (ja) | 3次元計測装置及び3次元計測方法 | |
JP2019138822A (ja) | 3次元計測システム及び3次元計測方法 | |
JP5633058B1 (ja) | 3次元計測装置及び3次元計測方法 | |
US20160189362A1 (en) | 3d recording device, method for producing a 3d image, and method for setting up a 3d recording device | |
JP2001194114A (ja) | 画像処理装置および画像処理方法、並びにプログラム提供媒体 | |
JP6566768B2 (ja) | 情報処理装置、情報処理方法、プログラム | |
EP2887313B1 (en) | Image processing apparatus, system, image processing method, and computer-readable recording medium | |
WO2019093457A1 (ja) | 情報処理装置、情報処理方法及びプログラム | |
JP2018133063A5 (ja) | ||
TW201939445A (zh) | 相位檢測自動聚焦三維影像擷取系統 | |
JP2001147110A (ja) | ランダムパターン生成装置とその方法、距離画像生成装置とその方法、およびプログラム提供媒体 | |
JP2018169274A (ja) | 画像処理装置、画像処理方法及びプログラム | |
US11756281B1 (en) | Systems and methods for splat filling a three-dimensional image using semi-measured data | |
JP6867766B2 (ja) | 情報処理装置およびその制御方法、プログラム | |
JP6655869B2 (ja) | 画像処理装置、画像処理方法及びプログラム | |
JP2005084012A (ja) | 肌形状計測方法及び肌形状計測装置 | |
JP4351090B2 (ja) | 画像処理装置および画像処理方法 | |
JP2015001791A (ja) | 画像解析装置 |