(57)【要約】【課題】  パターン投影を使用して取得した原画像組を縮小し視差量を計算する手法に関し、所定の計算速度及び測距精度を得る条件の設定を行うことが難しかった。【解決手段】  本発明の視差算出装置は、パターン光が投影された測定対象を撮像して、視差を有する原画像組を取得する取得手段と、原画像組を縮小する縮小手段と、縮小手段から得られる画像組から、各領域で所定の探索範囲及び探索ウィンドウをもって画像組の各領域に対応する視差量の分布である視差マップを算出する算出手段と、を備え、所定のデータ数を有する視差マップを得るために、算出手段は、縮小手段から得られる最も倍率の小さい画像組を用いて算出される視差マップの階層を最下層として、複数の階層においてそれぞれ視差マップを算出し、各階層ので視差マップを算出する際の所定の探索範囲は、１階層下の視差マップに基づいて決定される。【選択図】  図１
2019184587.tif 000002
【特許請求の範囲】
【請求項１】
パターン光が投影された測定対象を撮像して、視差を有する原画像組を取得する取得手段と、
前記原画像組を縮小する縮小手段と、
前記縮小手段から得られる画像組から、各領域で所定の探索範囲及び探索ウィンドウをもって前記画像組の各領域に対応する視差量の分布である視差マップを算出する算出手段と、を備え、
所定のデータ数を有する視差マップを得るために、前記算出手段は、前記縮小手段から得られる最も倍率の小さい画像組を用いて算出される視差マップの階層を最下層として、複数の階層においてそれぞれ視差マップを算出し、各階層の視差マップを算出する際の前記所定の探索範囲は、１階層下の視差マップに基づいて決定されることを特徴とする、視差算出装置。
【請求項２】
前記縮小手段が前記原画像組を縮小する際に前記最下層の視差マップを得るための倍率である倍率ｍと、前記測定対象に投影された前記パターン光の前記原画像組上での基準周波数ｆとが、所定の条件を満たすことを特徴とする、請求項１に記載の視差算出装置。
【請求項３】
前記倍率ｍと、前記基準周波数ｆとの関係が、以下の条件
５ｆ ≧ ｍ ≧ ３ｆ
を満たすことを特徴とする、請求項２に記載の視差算出装置。
【請求項４】
前記条件を満たすように、前記倍率ｍを設定することを特徴とする、請求項２または３に記載の視差算出装置。
【請求項５】
前記条件を満たすように、前記パターン光の投影パターンまたは前記取得手段による撮像条件が設定されることを特徴とする、請求項２乃至４のいずれか１項に記載の視差算出装置。
【請求項６】
前記基準周波数ｆは、前記原画像組における空間周波数の分布における最多の成分であることを特徴とする、請求項２乃至４のいずれか１項に記載の視差算出装置。
【請求項７】
前記基準周波数ｆは、前記原画像組における合焦面での空間周波数であることを特徴とする、請求項２乃至４のいずれか１項に記載の視差算出装置。
【請求項８】
前記基準周波数ｆは、前記原画像組における最も高い空間周波数であることを特徴とする、請求項２乃至４のいずれか１項に記載の視差算出装置。
【請求項９】
前記測定対象に対応するの撮像画像における注目領域を設定することにより、前記算出手段により所定の速度で視差マップを算出する、速度設定モードを搭載したことを特徴とする、請求項１乃至８のいずれか１項に記載の視差算出装置。
【請求項１０】
前記縮小手段が前記原画像組を縮小する際の倍率を最も大きい値とする高精度モードを搭載し、撮像素子によって決まるナイキスト周波数ｆ＿ｎｙｑに対し、前記倍率と、前記測定対象に投影された前記パターン光の前記原画像組上での基準周波数ｆが、以下の条件
（１／３）＊ｆ＿ｎｙｑ ≧ ｆ ≧ （１／５）＊ｆ＿ｎｙｑ
を満たすように、前記取得手段及び前記算出手段の少なくとも一方の条件を設定することを特徴とする、請求項１乃至９のいずれか１項に記載の視差算出装置。
【請求項１１】
パターン光が投影された測定対象を撮像して、視差を有する原画像組を取得する取得手段と、前記原画像組を縮小する縮小手段と、前記縮小手段から得られる画像組から、各領域で所定の探索範囲及び探索ウィンドウをもって前記画像組の各領域に対応する視差量の分布である視差マップを算出する算出手段と、を備える視差算出装置を用いた視差算出方法であって、
所定のデータ数を有する視差マップを得るために、前記算出手段は、前記縮小手段から得られる最も倍率の小さい画像組を用いて算出される視差マップの階層を最下層として、複数の階層においてそれぞれ視差マップを算出するステップを有し、
各階層ので視差マップを算出する際の前記所定の探索範囲は、１階層下の視差マップに基づいて決定されることを特徴とする、視差算出方法。
【請求項１２】
パターン光が投影された測定対象を撮像して、視差を有する原画像組を取得する取得手段と、前記原画像組を縮小する縮小手段と、前記縮小手段から得られる画像組から、各領域で所定の探索範囲及び探索ウィンドウをもって前記画像組の各領域に対応する視差量の分布である視差マップを算出する算出手段と、を備える視差算出装置の制御プログラムであって、
所定のデータ数を有する視差マップを得るために、前記算出手段に、前記縮小手段から得られる最も倍率の小さい画像組を用いて算出される視差マップの階層を最下層として、複数の階層においてそれぞれ視差マップを算出するステップを実行させ、
各階層で視差マップを算出する際の前記所定の探索範囲は、１階層下の視差マップに基づいて決定されることを特徴とする、視差算出装置の制御プログラム。
【請求項１３】
請求項１２に記載のプログラムを記憶したことを特徴とするコンピュータが読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、視差算出装置、視差算出方法及び視差算出装置の制御プログラムに関する。
【背景技術】
【０００２】
撮像画像を取得し、取得した撮像画像から距離情報を算出する手法が提案されている。例えば、異なる視点からの複数の画像を取得し、各画像間の相関値から視差量を求め、距離情報を取得する手法がある。具体的には、視差を有する画像組のそれぞれから探索ウィンドウ（以下、単にウィンドウともいう。）と呼ばれる一部領域の信号を抜き出す。そして、探索ウィンドウの位置を変えながら相関値を計算することにより視差量を算出する。このとき、撮像画像中に模様（以下、テクスチャともいう。）の乏しい領域がある場合、信号のコントラストが低いことにより相関値の算出精度が低下し、測距精度が低下する。これに対してパターン光の投影を使用して撮像画像を取得し、元々は模様の乏しい領域でも測距精度の低下の影響を低減する手法がある。
【０００３】
特許文献１では、縞模様のパターン光を物体に投影し、異なる位置から撮像した２つの画像（画像組）を用いて視差量を算出する手法が提案されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１５−１３７９３３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１のようなパターン光の投影を使用した測距技術において、処理の高速化や負荷低減に関する検討は十分になされていなかった。
【０００６】
本発明は上記問題点を鑑みてなされたものであり、パターン投影を使用したステレオ測距において、階層処理を用いて視差量を計算することができる視差算出装置、視差算出方法及び視差算出装置の制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、本発明の一例としての視差算出装置は、パターン光が投影された測定対象を撮像して、視差を有する原画像組を取得する取得手段と、前記原画像組を縮小する縮小手段と、前記縮小手段から得られる画像組から、各領域で所定の探索範囲及び探索ウィンドウをもって前記画像組の各領域に対応する視差量の分布である視差マップを算出する算出手段と、を備え、所定のデータ数を有する視差マップを得るために、前記算出手段は、前記縮小手段から得られる最も倍率の小さい画像組を用いて算出される視差マップの階層を最下層として、複数の階層においてそれぞれ視差マップを算出し、各階層ので視差マップを算出する際の前記所定の探索範囲は、１階層下の視差マップに基づいて決定されることを特徴とする。
【発明の効果】
【０００８】
本発明によれば、パターン投影を使用したステレオ測距において、階層処理を用いて視差量を計算することで処理の高速化あるいは処理の負荷低減を図ることができる。
【図面の簡単な説明】
【０００９】
【図１】第１実施形態に係る距離測定装置の一例を示す模式図である。
【図２】第１実施形態に係る撮像装置の一例を示す模式図である。
【図３】Ａは第１実施形態に係る画素の一例を示す断面図であり、Ｂは第１実施形態に係る射出瞳を示す模式図である。
【図４】第１実施形態に係る投影パターンの一例を示す。
【図５】第１実施形態に係る投影装置の一例を示す。
【図６】第１実施形態に係る距離検出方法のフローの一例を示す。
【図７】Ａはパターン光を投影して撮像した画像の一例を示す模式図であり、Ｂは第１画素の信号と第２画素の信号の振幅及び周期を示すグラフの一例である。
【図８】Ａは空間周波数とサンプリング画素とを示すグラフの一例であり、Ｂは倍率ｍ１で縮小してサンプリングした信号を示すグラフの一例である。
【図９】Ａは空間周波数とサンプリング画素とを示すグラフの一例であり、Ｂは倍率ｍ２で縮小してサンプリングした信号を示すグラフの一例である。
【図１０】第１実施形態に係る撮像装置の他の例を示す模式図である。
【図１１】第２実施形態に係るロボットの一例を示す模式図である。
【図１２】第２実施形態に係る距離検出方法のフローの一例を示す。
【図１３】仮撮像において取得した画像の一例を示す。
【図１４】第２実施形態に係るユーザインタフェースの一例を示す模式図である。
【発明を実施するための形態】
【００１０】
本発明について、例示的な実施形態を、図面を用いて詳細に説明する。同じ構成を指す場合は同じ参照番号を用いた。本発明は各実施形態に記載された内容に限定されない。また、各実施形態を適宜組み合わせてもよい。
【００１１】
（第１実施形態）
本実施形態では、パターン投影を使用したステレオ測距の高速化あるいは負荷低減を目的として、階層処理を適用した手法を提案する。階層処理では、撮像画像を例えば一定の画素間隔で間引いて作成した縮小画像を用いて視差量の計算を行うことにより、演算負荷を低減し、処理を高速化する。さらに、画素数の多い元画像での視差量の計算において、低階層で求めた視差量をもとに探索範囲を限定することにより、演算負荷を低減し、処理を高速化する。
【００１２】
縮小画像を生成するときの倍率（縮小された画像のサイズ）は、所定の計算速度、及び所定の距離情報の算出精度に応じて決定されるのが好ましい。また、パターン光を投影して撮像されたパターン投影画像においては、倍率がパターンに影響を及ぼす。すなわち、倍率とパターン投影の空間周波数の組み合わせが適していないと、生成した画像組の各画像中において、パターンによるテクスチャのコントラストＳ／Ｎ比が低下する。これにより、視差の算出精度、つまり測距精度が低下する。そこで本実施形態では、パターン投影を使用したステレオ測距において、階層処理を用いて処理負荷の低減を図り、さらに測距精度 (視差量及び位相差の算出精度)の低下を抑制する各種条件について提案する。
【００１３】
（装置構成及びパターン撮像部）
図１は、距離の測定対象にパターン光を投影して撮像することによって、原画像組を取得するパターン撮像部１００を備えた視差算出装置の一例としての距離測定装置を示す。取得手段の一例としてのパターン撮像部１００は、パターン光を投影する投影装置１０１（投影部）と、視差を持った原画像組を撮像する撮像装置１０３（撮像部）とを備える。投影装置１０１は、測定対象である被写体１０２へパターン光を投影する。そして、撮像装置１０３は、原画像組を撮像する。また、投影装置１０１及び撮像装置１０３は、同期等の制御を行うと共に、原画像組を縮小して得られた画像組から視差量を算出する計算機１０４（算出部）に接続されている。本実施形態では、投影装置１０１及び撮像装置１０３を備えるパターン撮像部１００と計算機１０４とが別装置として設けられているが、一体となっていてもよい。また、投影装置１０１及び計算機１０４が一体であってもよく、撮像装置１０３が別装置であってもよく、装置構成は上述した構成に限らない。撮像装置１０３と計算機１０４が一体となっている場合、図２に示す、撮像装置１０３の演算処理部２０４が計算機１０４の構成・機能を兼ねていてもよい。
【００１４】
計算機１０４はリサイズ部１０４０、相関演算部１０４１、視差量算出部１０４２、距離算出部１０４３、メモリ１０４４、及び制御部１０４５を有する。縮小手段の一例としてのリサイズ部１０４０は、撮像装置１０３より入力された視差を有する原画像組を所定の倍率で縮小し、相関演算部１０４１に出力する。相関演算部１０４１は、リサイズ部１０４０より入力された視差を有する画像組を相対的に移動させながら、例えばＳＡＤ（Ｓｕｍ ｏｆ Ａｂｓｏｌｕｔｅ Ｄｉｆｆｅｒｅｎｃｅ）を用いて該画像組の相関値マップを算出する。算出手段の一例としての視差量算出部１０４２は、相関演算部１０４１で得られた相関値マップから、例えば相関が最も高くなる相関値を決定して画像組の視差量（像ずれ量）を算出する。距離算出部１０４３は、視差量算出部１０４２で得られた視差量（像ずれ量）を現在の光学系の状態に対応する換算係数を用いてデフォーカス量に変換し、さらに被写体までの距離を示す被写体距離を算出する。計算機１０４は、撮像装置１０３から順次入力される原画像（信号）組あるいは一旦メモリ１０４４に記憶された原画像組に基づき、視差量、デフォーカス量、あるいは被写体距離の少なくともいずれかを演算結果としてメモリ１０４４に記憶または外部に出力する。本実施形態では、上述した視差量、デフォーカス量、及び被写体距離をまとめて、画像に対応し、画像内の被写体の深さ方向（奥行方向）の位置あるいは位置関係を示す情報として深度情報と呼ぶことにする。制御部１０４５は、計算機１０４内の各部に指示を送り、各部を制御する。
【００１５】
図２は、撮像装置１０３の構成を示す。撮像装置１０３は、カメラボディ２０１、撮像レンズ２０２、撮像素子２０３、演算処理部２０４（演算部）、及び本体メモリ２０５を備える。本実施形態では、撮像装置１０３が原画像組を取得できるように、撮像素子２０３の各画素は少なくとも一方向に対し分割されている。撮像素子２０３の１つの画素は、図３Ａに示す断面図のように、マイクロレンズ３１１、フィルタ３１２、及び光電変換部３１０Ａ、３１０Ｂを有している。撮像素子２０３は、画素毎にフィルタ３１２によって検出する波長帯域に応じた分光特性が与えられ、所定の配色パターン(例えばＲＧＢ（Ｒｅｄ，Ｇｒｅｅｎ，Ｂｌｕｅ）のカラーフィルタによるベイヤ-配列)でｘｙ平面上に配置されている。基板３１３には、検出する波長帯域に感度を有する光電変換部３１０Ａ、３１０Ｂが形成されている。検出する波長帯域としては可視光に限らないが、少なくとも一部の光電変換部が感度良く受光可能な波長帯域に、投影装置１０１が投光する光の波長帯域が含まれるものとする。また、各画素は、図示しない配線を備えている。
【００１６】
図３Ｂに示す第１瞳領域３２１Ａ及び第２瞳領域３２１Ｂは、それぞれ撮像レンズ２０２の射出瞳３２０の異なる領域である。光電変換部３１０Ａには第１瞳領域３２１Ａを通過した第１光束が入射し、光電変換部３１０Ｂには第２瞳領域３２１Ｂを通過した第２光束が入射する。撮像素子２０３内の第１画素である光電変換部３１０Ａが取得した第１光束から、第１信号が取得される。同様に、第２画素である光電変換部３１０Ｂが取得した第２光束から、第２信号が取得される。そして、演算処理部２０４（図２）は、第１信号からＡ像を形成し、第２信号からＢ像を形成する。形成されたＡ像とＢ像は本体メモリ２０５に蓄えられ、当該Ａ像及びＢ像を用いて計算機１０４（図１）が測距演算処理を行い、視差マップ及び距離マップを計算する。
【００１７】
測距演算処理は公知の手法によって行われ、例えば計算機１０４は、相関値マップを算出し、相関値マップから視差マップを求め、視差マップを距離マップへ換算する。投影装置１０１からパターン光を被写体１０２へ投影し、被写体１０２の表面にテクスチャを重畳した状態で撮像装置１０３が撮像する。これにより、相関値ピークの算出、ひいては測距演算の精度が向上する。
【００１８】
図４は、投影するパターン光のパターン４０１を示している。当該パターン４０１は限定されないが、取得した原画像組内でのパターンの空間周波数の制御が容易となるように、視差分割方向４０２に対し一定周期のパターン４０１が望ましい。また、視差分割方向４０２に垂直な方向４０３への制約は少ない。ただし、取得した原画像組及び相関値の平滑化が容易になるため、同様な繰り返しパターン、つまりパターン４０１のような、視差分割方向４０２において一定周期の縦縞パターンが望ましい。
【００１９】
図５に示す投影装置１０１は、ボディ５０１、光源５０２、調整レンズ５０３、空間変調器５０４、及び投影レンズ５０５を備える。光源５０２は白色ＬＥＤを有し、光源５０２から出射した光は、調整レンズ５０３により空間変調器５０４に結像される。その後、空間変調器５０４がパターン光を形成し、投影レンズ５０５により被写体１０２の表面へパターン光が結像される。空間変調器５０４は、ＤＭＤ（Ｄｉｇｉｔａｌ  Ｍｉｒｒｏｒ  Ｄｅｖｉｃｅ）で形成されている。投影装置１０１は、この構成に限定されない。拡散板を導入して光量分布を一様にしてもよく、又はケーラー照明若しくは入射瞳に光源像を結ばせる光学系等の各種投影光学系が適用されてもよい。
【００２０】
（基本処理フロー及び階層処理）
原画像組を取得し距離マップを算出する基本処理フローと、縮小した画像組を用いた階層処理について説明する。本実施形態では、所定のデータ数を有する視差マップを得るために、原画像組から縮小処理によって最も倍率を小さく縮小した画像組を用いる処理を最下層とする。この最下層の縮小画像を生成するときの倍率は、測距精度の低下を抑制することのできる倍率とするのが好ましい。なお、最下層の縮小画像の倍率については、詳細に後述する。そして、段階的に画像組の倍率が大きくなっていく（あまり縮小されなくなっていく）複数の階層において、順次視差マップを算出する。このとき各階層での探索範囲あるいは探索ウィンドウは１階層下の演算結果に基づいて限定的な探索範囲あるいは探索ウィンドウのサイズで決定することで、視差マップ算出にかかる処理負荷および処理速度を大幅に低減する。
【００２１】
図６は、第１実施形態に係る基本処理フローを示す。ステップＳ６０１にて、投影装置１０１が被写体１０２にパターン光を投影し、パターン光が投影された被写体１０２の原画像組を撮像装置１０３が取得する（パターン撮像ステップ）。ステップＳ６０２にて、計算機１０４のリサイズ部１０４０は、原画像組を倍率ｍで縮小して、最下層の縮小画像の画像組を作成する。ここで倍率ｍは画像組を形成する際に読み出す画素数の割合に相当する。従って、ステップＳ６０１にて取得した原画像組の画素数に対しａ画素おきに出力することによって間引いて作成する縮小画像の倍率ｍは、下記式（１）により表すことができる。
【００２２】
ｍ＝１／ａ      …（１）
従って、ステップＳ６０１にて取得した原画像組の画素からａ画素おきに出力することによって、倍率ｍの縮小画像を得ることができる。
【００２３】
次にステップＳ６０３にて倍率ｍで縮小して得られた画像組を用いて、上述したような公知の演算手法にて相関値マップ（画像組の各領域に対応する相関値の分布）を算出する。このとき、画素数を間引いて縮小された画像組を用いて相関値マップを算出するため、従来の原画像組から相関値マップを算出する場合に比べて面内解像度（サンプリング数、データ数）が減少する。一方、相関値マップの探索範囲及び計算に用いる探索ウィンドウ内の画素数が原画像組を用いて計算するときと比較して少なくなるため、計算速度が向上する。ステップＳ６０４において、求めた相関値マップから、画像組のＡ像とＢ像間の視差マップを算出する（算出ステップ）。
【００２４】
ステップＳ６０５にて、視差マップが所望の出力解像度（データ数、画素数）以上であるか否かを判断し、所望の出力解像度以上でない場合は（ステップＳ６０５にてＮＯ）、ステップＳ６０６に処理を進める。なお、所望の出力解像度は、任意に設定することが可能であり、その設定方法は特に制限されない。所望の出力解像度が得られない場合、計算機１０４は、原画像組をより大きい倍率で縮小して得られた他の画像組から視差マップを算出する。すなわち、ステップＳ６０６にて、距離マップを算出する際の所望の出力解像度に応じて、原画像組の画素数に対し、ａよりも少ないｂ画素おきに出力することによって間引いて他の画像組を作成し、１階層上の相関演算に用いる画像組とする（ａ＞ｂである）。そのため、他の画像組の倍率は先に作成した画像組の倍率よりも大きく、先に作成した画像組と比較すると出力解像度の高い画像組となる。
【００２５】
次にステップＳ６０７にて、ステップＳ６０４で先に求めた視差マップをもとに、１階層上での相関演算における探索範囲を設定し、ステップＳ６０６で生成した他の画像組を用いて相関値マップを算出する。本実施形態では、対応する領域で先に求めた視差量をもとに、探索範囲、すなわち相関演算において画像組の画素を相対的にずらす画素ずらし量（例えばある階層で±１０Ｐｉｘｅｌなど）を、当該視差量の値もしくはその近傍の値に設定する。
【００２６】
また、画像組において相関演算の対象とする領域のサイズである探索ウィンドウサイズ（例えばある階層で垂直方向に４行、水平方向に２０Ｐｉｘｅｌなど）は、各階層の倍率（a、ｂなど）あるいは解像度に応じて設定される。すなわち、各階層における相関演算の対象領域（対象としている被写体）が略同一になるように、探索ウィンドウのサイズ（解像度、画素数）を設定する。
【００２７】
さらに、下層において先に求めた相関値の信頼度に応じて、信頼度が高い領域は算出された視差量の信頼度も高い（算出誤差を吸収するべくサイズを大きくする必要がない）として、探索ウィンドウサイズを倍率から換算されるサイズより小さく設定するようにしてもよい。ここでいう相関値の信頼度とは、相関演算によって得られる像ずれ量と相関値をプロットする曲線における傾きや、画像信号そのものが相関を取りやすい、エッジ成分の大きいものであるかを測るために画像組の対象領域におけるエッジ積分値や、画像信号のＳＮ比を用いてもよい。
【００２８】
また、探索ウィンドウサイズを各階層の倍率によらず一定値（例えば全ての階層で垂直方向に４行、水平方向に２０Ｐｉｘｅｌなど）に設定するようにしてもよい。階層が上がるにつれ画像の解像度は上がるが探索ウィンドウサイズは一定値のため、相関値マップの面内解像度が向上する。さらに下層での算出視差量をもとに正解視差量の近傍で相関値を算出するため、探索ウィンドウサイズを階層に応じて変更せず一定値としたことで相関演算の対象領域（対象としている被写体）が変わることによる相関値算出エラーを回避できる。
【００２９】
以上の処理により、視差量が不明な状態で画像全体に一律で大きな探索範囲及び探索ウィンドウを設定する場合に比べて、視差量の算出処理にかかる処理負荷と処理速度を大幅に低減することができる。
【００３０】
その後、ステップＳ６０８にて視差マップ（画像組の各領域に対応する視差量の分布）を算出する。このように、ステップＳ６０４にて求めた画像組の視差マップが、次回の他の画像組での探索範囲及び探索ウィンドウの設定に反映されるため、探索範囲及び探索ウィンドウの設定が不必要に大きくならない。これにより、縮小して得られた画像組の計算を介さない場合と比較して計算速度が向上する。ステップＳ６０９にて視差マップが所望の出力解像度以上であるか否かを判断し、所望の出力解像度以上でない場合は（ステップＳ６０９にてＮＯ）、ステップＳ６０６〜Ｓ６０８を所望の出力解像度以上となるまで繰り返す。すなわち、原画像組の縮小により他の画像組より倍率が大きい画像組を作成して、作成した新たな画像組を用いて相関値マップを算出した後、視差マップを算出する。
【００３１】
所望の出力解像度以上の視差マップが得られた場合は（ステップＳ６０９にてＹＥＳ）、ステップＳ６１０にてカメラの光学系情報をもとに視差マップから距離マップ（画像組の各領域に対応する距離値の分布）を算出する。倍率ｍにより作成された画像組（ａ画素間引いて作成する画像組）の解像度が所望の出力解像度以上である場合は（ステップＳ６０５にてＹＥＳ）、当該画像組の視差マップを用いて距離マップを算出する。この場合は、ステップＳ６０６へ進むことなく、ステップＳ６１０に処理を進めて距離マップを算出する。
【００３２】
（変数決定方法、及び倍率ｍと空間周波数ｆの関係）
続いて、第１実施形態に係る視差マップの算出において、ステップＳ６０２で行われる原画像組を最も小さく縮小する最下層の階層処理における、原画像組を縮小する倍率ｍと、パターン光を投影して撮像して得られた原画像中の空間周波数ｆとの関係を説明する。
【００３３】
図１に示したような構成で被写体１０２にパターン４０１を投影して撮像して得られた原画像７０１を図７Ａに示す。ここで説明を簡便にするため、原画像７０１（原画像組の一方の画像）中の線分７０２上の、パターン光が投影された被写体１０２に対応する区間７０３の画像信号を図７Ｂに抜き出して示す。区間７０３の画像信号は、パターン４０１の一定周期に対応した第１信号７１１（実線）と第２信号７１２（破線）とを含む。ここで、第１信号７１１は、第１画素である光電変換部３１０Ａが取得したＡ像の信号である。また、第２信号７１２は、第２画素である光電変換部３１０Ｂが取得したＢ像の信号である。第１信号７１１と第２信号７１２は互いに視差量に対応した位相のずれ７１３を持っている。
【００３４】
図８Ａ，図８Ｂを用いて、倍率ｍと取得した原画像組における測定対象上のパターン空間周波数である基準周波数ｆ（以下、空間周波数ｆともいう）との関係について示す。図８Ａは、図７Ｂで示した第１信号７１１と第２信号７１２の一部区間を示し、撮像画素８０１との関係を１次元で示している。第１信号７１１は、取得した原画像上において区間８０２で示される周期Ｔに対応する基準周波数ｆ（＝１／Ｔ）を持っている（第２信号７１２も同様）。これに対し、区間８０３に対応する画素数ａ１を間引いて、図８Ａに太枠で示したサンプリング画素８０４のみで作成した、すなわち、倍率ｍ１（＝１／ａ１）で縮小してサンプリングした画像組の画像信号を図８Ｂに示す。
【００３５】
第１信号７１１を倍率ｍ１で縮小してサンプリングした画像の画像信号が実線で示した信号８１１である。また、第２信号７１２を倍率ｍ１で縮小してサンプリングした画像の画像信号が破線で示した信号８１２である。このとき、サンプリング画素８０４は、サンプリング定理を満たすように、ｍ１＝２ｆの関係で設定した。図８Ｂに示すように、第１信号７１１に対応する信号８１１はもとの信号形状を残しているのに対し、第２信号７１２に対応する信号８１２はもとの信号形状が消失してしまう。
【００３６】
これは、第１信号７１１と第２信号７１２が視差量に起因した位相ずれを持っているため、一方の信号に対しサンプリング定理を適応しても他方の信号の形状が保存・復元されないからである。このように被写体１０２へパターン光を投影して取得した原画像組に対し、適切な倍率を設定しないと、縮小して形成した画像組のＡ像またはＢ像の信号形状（テクスチャ）のコントラストが低下してしまう。その結果、相関値マップの算出精度、ひいては視差マップ及び距離マップの算出精度が低下する。
【００３７】
一方の信号の形状を最大限に残す最小のサンプリングに対し、他方の信号の形状が最も消失してしまうのは、位相ずれが±π／４のときである。したがって、ｍ≧４ｆの関係を満たすように倍率（サンプリング画素）を設定すれば、Ａ信号もＢ信号も信号形状を残しながら最小画素数でサンプリングできる。この最小画素数でサンプリングした様子を図９Ａ，図９Ｂに示す。
【００３８】
図８Ａと同様に図９Ａにおいて、第１信号７１１は取得した原画像上において区間８０２で示される周期Ｔに対応する空間周波数ｆ（＝１／Ｔ）を持っている（第２信号７１２も同様）。これに対し、区間９０３に対応する画素数ａ２を間引いて、図９Ａに太枠で示したサンプリング画素９０４のみで作成した、すなわち、倍率ｍ２（＝１／ａ２）で縮小してサンプリングした画像の画像信号を図９Ｂに示す。第１信号７１１を倍率ｍ２で縮小してサンプリングした画像の画像信号が、実線で示した信号９１１である。また、第２信号７１２を倍率ｍ２で縮小してサンプリングした画像の画像信号が、破線で示した信号９１２である。ここで、倍率ｍ２と空間周波数ｆの関係はｍ２＝４ｆである。このとき、縮小して形成した画像組においてもＡ像に対応する信号９１１とＢ像に対応する信号９１２は、ともにもとの画像信号の信号形状を反映している。そのため、相関値マップの算出精度が低下することなく、視差マップを算出できる。また、第１実施形態の効果を得るためにはサンプリング画素の間隔で決まる倍率ｍと空間周波数ｆの関係が、下記式（２）を満たせばよい。
【００３９】
ｍ≧４ｆ      …（２）
【００４０】
しかしながら、上記式（２）は空間周波数ｆを限りなく小さくすれば、つまり投影するパターン光のパターン４０１の周期Ｔを限りなく大きくすれば、倍率ｍの値に関係なく成立する。一方で、距離マップの算出対象である被写体１０２に対し、不必要に大きすぎる周期Ｔは距離マップを算出する面内分解能の観点から好適ではない。したがって、倍率ｍに対し、倍率ｍ＝４ｆの関係を満たすように、取得した原画像組上での空間周波数ｆを投影装置１０１と撮像装置１０３を備えるパターン撮像部１００にて制御する。ここで、倍率ｍは所定の空間分解能及び計算速度によって決定され、空間周波数ｆは最大の面内分解能が得られるパターン光の取得画像組上での空間周波数である。空間周波数ｆは、順次取得される画像組においてパターン検出により算出してもよいし、投影装置１０１及び撮像装置１０３の光学条件、被写体との位置関係などが予め分かっている場合には、対応する空間周波数ｆを予めメモリ１０４４に記憶しておいてもよい。
【００４１】
ここで空間周波数ｆの設定精度を説明する。パターン撮像部１００の投影装置１０１及び撮像装置１０３の光学系により重畳される誤差、及び被写体１０２を含む各装置間の互いの相対距離により生じる誤差を重畳する。すると、取得した原画像上での空間周波数ｆは±２５％の誤差を持つ。したがって、倍率ｍと基準周波数ｆの関係は、下記式（３）を満たせばよい。
【００４２】
５ｆ≧ｍ≧３ｆ      …（３）
【００４３】
取得画像上での被写体１０２のパターン４０１の空間周波数である基準周波数ｆと、間引き画素数によって決まる倍率ｍとの関係が式（３）を満たすことによって、視差マップの算出精度を保ちながら縮小して形成した画像組により相関値マップを算出できる。つまり、所定の計算速度及び解像度を満たす倍率ｍを、測距精度が低下することなく設定するという効果が得られる。例えば計算機１０４は、上記式（３）を満たすように投影パターン又は撮像条件を設定する（設定ステップ）。すなわち、計算機１０４は、投影装置１０１内の空間変調器５０４での生成パターン若しくはパターンマスク、又は投影レンズ５０５の倍率、及び撮像装置１０３が取得する画像の画角若しくは倍率を設定する。または、上記式（３）を満たすように、計算機１０４が階層処理の倍率ｍを設定する（設定ステップ）。
【００４４】
（その他の構成）
原画像組を取得する撮像装置１０３は、２つ以上の複数の光学系とそれに対応する撮像素子を有するステレオカメラであってもよい。ステレオカメラを用いることにより、基線長の設計自由度が向上し、測距分解能が向上する。また、第１実施形態に係るパターン撮像部１００は、撮像装置１０３に投影装置１０１を搭載したひとつの装置であってもよい。この装置は、撮像装置１０３と投影装置１０１の位置関係が固定された状態となるため、耐環境性の向上、及び画角又は倍率の条件設定の容易化を実現できる。具体的には図１０に示すように、第１実施形態に係る撮像装置は、カメラボディ２０１の上部に投影装置１００１を搭載し、制御装置１０１０を用いて、互いのパラメータ及び同期を制御する、撮像装置１０００としてもよい。
【００４５】
計算機１０４を撮像装置１０００内に備えられたＣＰＵ（Ｃｅｎｔａｌ Ｐｒｏｃｅｓｓｉｎｇ Ｕｎｉｔ）とすることにより、撮像装置１０００を小型化できる。パターン制御部である空間変調器５０４は、反射型ＬＣＯＳ（Ｌｉｑｕｉｄ Ｃｒｙｓｔａｌ Ｏｎ Ｓｉｌｉｃｏｎ）、透過型ＬＣＯＳ、及びＤＭＤ（Ｄｉｇｉｔａｌ Ｍｉｃｒｏｍｉｒｒ ｏｒ Ｄｅｖｉｃｅ）のいずれでもよい。これらの空間変調器５０４を用いることで、画素数が多いパターンを高い応答速度で生成することができる。これにより、面内解像度を向上できると共に、パターンを高速切り替えでき、画像の取得速度を向上できる。
【００４６】
パターン制御部は、すりガラス又は金属板等の、パターンがあらかじめ形成されているパターンマスクを、投影装置１０１，１００１の光路へ出し入れすることによってパターンを投影してもよい。これにより、装置コストの低減化、及び装置の小型化を実現できる。さらに投影装置１０１，１００１内の光源は、ＬＤ（Ｌａｓｅｒ  Ｄｉｏｄｅ）、ＬＥＤ（Ｌｉｇｈｔ  Ｅｍｉｔｔｉｎｇ  Ｄｉｏｄｅ）、及びハロゲンランプのような熱光源のいずれであってもよい。装置ならびに被写体の大きさを鑑みて、適切な光量ならびに光源の大きさを設計することによって、装置の小型化及び低コスト化を実現できる。
【００４７】
投影装置１０１，１００１の光源は、波長が可視光域の全域を含む白色光を出射できる。これにより、第１実施形態の手法において、被写体の分光反射率によらず第１実施形態の効果が得られる。また、投影装置１０１，１００１の光源は、Ｒ、Ｇ、Ｂの３色の光を出射してもよい。これにより、撮像装置のカラーフィルタ透過帯域と光の波長とを一致させ、使用エネルギーに対する光利用効率を高くできる。
【００４８】
また、投影装置１０１，１００１の光源の波長がＩＲ（Ｉｎｆｒａｒｅｄ）領域であり、ＩＲ領域に対応した透過帯域ならびに受光感度を持つカラーフィルタが配された撮像素子を備えた撮像装置を用いて被写体を撮像してもよい。これにより、ＲＧＢ帯域を用いた鑑賞用画像を、測距と同時に撮像できる。特にＩＲの波長帯域が８００ｎｍから１１００ｎｍの間である場合、光電変換部にＳｉを用いることができる。これにより、カラーフィルタの配列を変更することで、ひとつの撮像素子によりＲＧＢ帯域の鑑賞画像とＩＲ帯域の測距画像を取得することができる。
【００４９】
縮小画像は、間引き画素数に相当する画素を加算平均して生成してもよい。これにより、測距精度にかかるパターンやテクスチャの識別性能は低下するものの、平滑化により耐環境性が向上する。相関値マップの算出手法は、ＳＳＤ（Ｓｕｍ ｏｆ Ｓｑｕａｒｅｄ Ｄｉｆｆｅｒｅｎｃｅ）、ＳＡＤ（Ｓｕｍ ｏｆ Ａｂｓｏｌｕｔｅ Ｄｉｆｆｅｒｅｎｃｅ）、及びＰＯＣ（Ｐｈａｓｅ  Ｏｎｌｙ  Ｃｏｒｒｅｌａｔｉｏｎ）のいずれでもよいが、これらの手法に限定されない。
【００５０】
第１実施形態は、撮像装置の他に、コンピュータプログラムをも包含する。第１実施形態のコンピュータプログラムは、距離マップあるいは視差マップの算出のために、コンピュータに所定の工程を実行させる。第１実施形態のプログラムは、距離検出装置、視差量検出装置またはそのいずれかを備えるデジタルカメラ等の撮像装置のコンピュータにインストールされる。インストールされたプログラムがコンピュータによって実行されることにより、上記の機能が実現し、距離マップ及び視差マップを高速かつ高精度で検出できる。一例として、このプログラムは、原画像組を取得するパターン撮像部１００と、原画像組を縮小して得られた画像組から視差マップを計算する計算機１０４とを備える撮像装置１０００の制御プログラムである。当該制御プログラムは、コンピュータに、算出ステップと、設定ステップとを実行させる。この算出ステップでは、原画像組を縮小して得られた画像組から視差マップを算出する。また、設定ステップでは、縮小する際の倍率である倍率ｍと、原画像上での基準周波数ｆとの関係が、上記式（３）を満たすように、パターン撮像部１００及び計算機１０４のいずれかの条件を設定する。
【００５１】
（第２実施形態）
（高速測定モード、ＦＡ検査装置）
図１１から図１３を参照して、第２実施形態に係る撮像装置１１００を用いたＦＡ（Ｆａｃｔｏｒｙ  Ａｕｔｏｍａｔｉｏｎ）検査装置及び速度設定モードに関して説明する。
【００５２】
図１１は第２実施形態に係るＦＡ検査装置のロボット２０００を示す。ロボット２０００は、撮像装置１１００、作業ステージ１１０１、ロボットアーム１１０２、ロボットハンド１１０３、及び制御装置１１０５（算出部）を備える。撮像装置１１００を用いて取得した深度情報をもとに、制御装置１１０５がロボットアーム１１０２及びロボットハンド１１０３を制御して、主被写体であるワーク１１０４（測定対象）を把持する。当該把持動作のなかで、深度情報の算出に係るフローを図１２に示す。
【００５３】
ステップＳ１２０１では、計測速度、基準周波数、注目領域、間引きする画素数、倍率、投影条件、及び撮像条件等の各種条件を設定する。例えば、使用者は計測速度を設定する。計測速度は実際の速度でもよいし、「高速／中速／低速」のようなあらかじめ設定された段階から使用者が選択してもよい。計測速度に応じて、撮像装置１１００を用いて仮撮像を行い、倍率ｍと、投影するパターン光（投影パターン）または撮像装置１１００の撮像条件を設定し、基準周波数ｆを設定する。
【００５４】
ワーク１１０４を仮撮像して取得した撮像画像１３０１を図１３に示す。制御装置１１０５は、ステップＳ１２０２にて、ワーク１１０４が写っている領域を注目領域：ＲＯＩ（Ｒｅｇｉｏｎ  Ｏｆ  Ｉｎｔｅｒｅｓｔ）１３０２として設定する。次に、制御装置１１０５は、ステップＳ１２０１において設定した計測速度に対応した倍率を算出する。具体的に、「高速」モードを設定したとき、制御装置１１０５は、ＲＯＩ１３０２の画像から１０画素おきに画素を間引きするように倍率ｍ＿ＲＯＩを算出する。このとき、倍率ｍ＿ＲＯＩと、撮像画像１３０１（ワーク１１０４に重畳されるパターン光）の空間周波数ｆとの関係が、下記式（４）を満たすように、制御装置１１０５は、投影装置（不図示）または撮像装置１１００の条件を設定する（設定ステップ）。または、制御装置１１０５は、下記式（４）を満たすように倍率ｍ＿ＲＯＩを設定する（設定ステップ）。
【００５５】
５ｆ ≧ ｍ＿ＲＯＩ ≧ ３ｆ      …（４）
【００５６】
例えば、撮像装置１１００の条件を固定する場合、制御装置１１０５は、投影装置内の空間変調器５０４の条件を変更し、撮像画像１３０１の空間周波数ｆが上記式（４）の関係を満たすように制御する。その後、ステップＳ１２０２からステップＳ１２１０までの処理を行い、制御装置１１０５がステップＳ１２１１にて距離マップを算出する。なお、ステップＳ１２０２からステップＳ１２１０は、第１実施形態において説明したステップＳ６０１からステップＳ６０９と同じであるため、その説明は省略する。ステップＳ１２１１にて算出された距離マップをもとに、制御装置１１０５は、ロボットアーム１１０２及びロボットハンド１１０３を制御し、ワーク１１０４を把持させる。
【００５７】
このように、第２実施形態の撮像装置は、測定対象の撮像画像の注目領域を設定することにより、所定の速度で視差マップを算出する、速度設定モードを搭載している。これにより、注目する主被写体に対し、ＲＯＩを設定し、目的に応じた倍率を設定し、縮小することで、所定の計算速度で距離マップを算出できる。また、制御装置１１０５は、深度情報（深度マップ）を距離値（距離マップ）の形態でなく、視差量(視差マップ)やデフォーカス量（デフォーカスマップ）の形態で受け取り、ロボットアーム１１０２及びロボットハンド１１０３を制御可能であってもよい。この場合、Ｓ１２０６の距離マップの算出ステップは必要ない。
【００５８】
ステップＳ１２０１においては、間引きする画素数または倍率を、ユーザが直接設定してもよい。これにより、ユーザが目的に応じて微調整できるため、ユーザビリティを向上できる。また、ステップＳ１２０１において、予め設定された速度項目のそれぞれに対し、間引きする画素数または倍率を事前にユーザが設定してもよい。これにより、ユーザビリティを向上できる。
【００５９】
ステップＳ１２０１の仮撮像は、事前に対象ワークの形状、及び測定に用いる撮像画角をメモリに記憶しておくことにより省略できる。また、第２実施形態の撮像装置は、測定対象の撮像画像から被写体を認識し、各種変数を自動で決定する自動決定モードを搭載していてもよい。例えば、制御装置１１０５は、各種画像認識技術を用いることにより、撮像されたワークと事前登録された形状情報をもとに、随時自動で倍率と基準周波数を設定してもよい。これにより、ユーザビリティを向上できる。また、ＲＯＩはユーザが手動で設定してもよいし、各種画像認識から対象ワークが認識されたときに制御装置１１０５がＲＯＩを自動設定してもよい。
【００６０】
基準周波数ｆは、原画像組における空間周波数の分布における最多の成分とすることができる。例えば、仮撮像によって得られた画像組（原画像組）を周波数解析することにより、最多の空間周波数成分をもつ領域をＲＯＩに設定し、ＲＯＩの空間周波数を基準周波数ｆに設定できる。これにより、ＲＯＩ及び基準周波数ｆを自動的に設定できる。加えて、基準周波数ｆは、原画像組における合焦面での空間周波数とすることができる。例えば、仮撮像時の画像組（原画像組）の合焦位置をコントラスト解析または仮距離値測定によって算出し、合焦位置の領域をＲＯＩに設定する。合焦位置の領域の空間周波数を基準周波数ｆに設定することにより、ＲＯＩ及び基準周波数ｆを自動的に設定できる。さらに、基準周波数ｆは、原画像組における最も高い空間周波数とすることができる。例えば、仮撮像によって得られた画像を周波数解析することにより、最も高い空間周波数成分をもつ領域をＲＯＩに設定する。当該領域の空間周波数を基準周波数ｆに設定することにより、ＲＯＩ及び基準周波数ｆを自動的に設定できる。
【００６１】
第２実施形態に係る測定条件を満たすように、ロボット２０００は、ユーザに対し投影条件及び撮像条件等の設定のアシストを行うユーザインタフェースを備えていてもよい。このユーザインタフェースにより、操作を容易にすることができる。図１４は、ＲＯＩを設定するためのユーザインタフェースの一例を示す。ロボット２０００は、撮像した画像を表示するタッチパネルである表示素子１４０１を備える。この表示素子１４０１上にて、ユーザが測定範囲１４０２に触れることによりＲＯＩを設定する。このとき、表示素子１４０１は、事前に設定した測定速度または間引きする画素数に対応する倍率に対し、上記式（４）を満たす空間周波数の投影パターンをグリッド１４０３として表示する。この表示をもとにユーザは、投影装置によるパターン形状（投影パターン）、又は投影若しくは撮像の光学条件を変更する。
【００６２】
（第３実施形態）
（高精度モード）
続いて、第３実施形態に係る撮像装置が搭載する高精度モードを説明する。縮小画像を生成する倍率を設定するうえで、最も面内分解能が高い縮小画像が作成されるのは、間引きする画素数ａ＝２のときである。このとき、倍率Ｍ＝１／ａは、最大の０．５となる。第３実施形態に係る撮像装置は、倍率Ｍを最も大きい値とする高精度モードを搭載している。この２画素おきでサンプリングした場合の倍率Ｍは、撮像素子によって、すなわち撮像素子の画素間隔によって決まるナイキスト周波数ｆ＿ｎｙｑに一致する。
【００６３】
従って、第３実施形態の高精度モードにおいては、倍率Ｍ＝ｆ＿ｎｙｑを満たしたうえで、基準周波数ｆが上記式（３）を満たす。つまり、高精度モードとしてサンプリング画素を２画素おきに設定する場合、式（５）を満たすように、取得した原画像組上での基準周波数ｆを設定する。例えば、式（５）を満たすように、パターン撮像部の投影条件若しくは撮像条件を設定する。
【００６４】
（１／３）＊ｆ＿ｎｙｑ ≧ ｆ ≧ （１／５）＊ｆ＿ｎｙｑ      …（５）
このように基準周波数ｆを設定することにより、最も高精度な縮小画像でも（サンプリング画素を２画素おきに設定した場合でも）、原画像組の互いの信号形状が劣化することを抑制できる。これにより、高精度で視差マップを算出でき、ひいては高精度で測距できる。
【００６５】
（その他の実施例）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００６６】
１００  取得手段
１０２  測定対象
１０４０  縮小手段
１０４２  算出手段
【図１】
2019184587.tif 000003
【図２】
2019184587.tif 000004
【図３】
2019184587.tif 000005
【図４】
2019184587.tif 000006
【図５】
2019184587.tif 000007
【図６】
2019184587.tif 000008
【図７】
2019184587.tif 000009
【図８】
2019184587.tif 000010
【図９】
2019184587.tif 000011
【図１０】
2019184587.tif 000012
【図１１】
2019184587.tif 000013
【図１２】
2019184587.tif 000014
【図１３】
2019184587.tif 000015
【図１４】
2019184587.tif 000016