(57)【要約】【課題】従来技術に比較して低コストかつ高速に被写体を検出することが可能なシステム及び方法を開示する。【解決手段】位置検出システムは、複数のフレームを用いて被写体の位置を検出する位置検出システムであって、各フレームはそれぞれ複数のサブフレームに分割され、位置検出システムは、互いに異なる２のべき乗のグレイコード値をそれぞれ有する複数のグレイコードパターンであって、複数のサブフレームの数に等しい数の複数のグレイコードパターンのうちの各グレイコードパターンをサブフレーム毎に順次投影する投影装置と、複数のグレイコードパターンが投影された被写体をサブフレーム毎に撮像する撮像装置と、撮像された撮像画像に基づいて被写体の位置を推定する制御手段と、を備え、制御手段は、複数のグレイコードパターンを、グレイコード値が増加した後減少し、もしくは減少した後増加する所定の順序で配置する。【選択図】図１
2020201254.tif 000002
【特許請求の範囲】
【請求項１】
それぞれ複数のサブフレームに分割された複数のフレームを用いて被写体の位置を検出する位置検出システムであって、
前記複数のサブフレームにそれぞれ対応し、互いに異なる２のべき乗のグレイコード値を有する複数のグレイコードパターンを、前記グレイコード値が増加した後減少し、もしくは減少した後増加する順序で投影する投影装置と、
前記複数のグレイコードパターンが投影された被写体を前記複数のサブフレームのサブフレーム毎に撮像し、撮像画像を生成する撮像装置と、
前記撮像画像に基づいて前記被写体の位置を推定する制御手段と、を備える、
位置検出システム。
【請求項２】
前記投影装置は、前記制御手段によって前記順序に配置された前記複数のグレイコードパターンを投影し、
前記制御手段は、前記複数のグレイコードパターンを、所定の配列、前記所定の配列と逆順で配置された配列、又は、前記所定の配列の先頭から任意数のグレイコードパターンが前記所定の配列の末尾に再配置された配列で配置する、
請求項１に記載の位置検出システム。
【請求項３】
前記複数のグレイコードパターンの、互いに異なる複数の配列を予め記憶する記憶部をさらに備え、
前記投影装置は、前記複数の配列のうち前記制御手段によって選択された１つの配列に従って、前記複数のグレイコードパターンを投影する、
請求項１に記載の位置検出システム。
【請求項４】
前記制御手段は、前記被写体の所定の範囲の深度にある対象物を検出して、当該被写体の位置を推定する、
請求項３に記載の位置検出システム。
【請求項５】
前記複数のサブフレームは、Ｎ個のサブフレームであり、最大のグレイコード値を有する最上位グレイコードパターンが配置された１個のサブフレームと、それぞれＮｓｆｇ個のサブフレームからなるＭ個のサブフレームグループとを含み、ここで、Ｎ、Ｎｓｆｇ及びＭは2以上の自然数であり、
前記最上位グレイコードパターンを除く（Ｎ−１）個のグレイコードパターンは、グレイコード値の上位から順にＭ個の上位グレイコードパターンと、グレイコード値の下位から順に（Ｎｓｆｇ−１）×Ｍ個の下位グレイコードパターンとを含み、
前記Ｍ個のサブフレームグループは、前記上位グレイコードパターンの上位から順に１個ずつのグレイコードパターンと、前記下位グレイコードパターンの下位から順に（Ｎｓｆｇ−１）個ずつのグレイコードパターンとのそれぞれの組み合わせである、
請求項４に記載の位置検出システム。
【請求項６】
前記最上位グレイコードパターンは、フレームの最初のサブフレームに配置され、前記Ｍ個のサブフレームグループは、前記上位グレイコードパターンのうちで最も上位の前記上位グレイコードパターンを含むサブフレームグループから順に配置され、かつ、前記Ｍ個のサブフレームグループの各々において、前記上位グレイコードパターンは、最後のサブフレームに配置される、
請求項５に記載の位置検出システム。
【請求項７】
前記最上位グレイコードパターンは、フレームの最後のサブフレームに配置され、前記Ｍ個のサブフレームグループは、前記上位グレイコードパターンのうちで最も下位の前記上位グレイコードパターンを含むサブフレームグループから順に配置され、かつ、前記Ｍ個のサブフレームグループの各々において、前記上位グレイコードパターンは、最初のサブフレームに配置される、
請求項５に記載の位置検出システム。
【請求項８】
前記複数のサブフレームは、（Ｎ−Ｎｓｆｇ×Ｍ−１）個のサブフレームからなる余剰サブフレームグループをさらに有し、
前記最上位グレイコードパターンを除く（Ｎ−１）個のグレイコードパターンは、前記余剰サブフレームグループにそれぞれ配置される（Ｎ−Ｎｓｆｇ×Ｍ−１）個の中位グレイコードパターンをさらに有し、
前記中位グレイコードパターンは、前記最上位グレイコードパターンと、前記上位グレイコードパターンのうち最下位のグレイコードパターンとの間に挿入されて配置される、
請求項６又は７に記載の位置検出システム。
【請求項９】
前記中位グレイコードパターンに含まれるグレイコードパターンの数は（Ｎｓｆｇ＋Ｎｍ）個であり、ここで、Ｎｍは自然数であり、
前記中位グレイコードパターンを、上位から順に、
（Ａ）（Ｎｓｆｇ−Ｎｍ）個のグレイコードパターンからなる第１の中位サブグループと、
（Ｂ）前記第１の中位サブグループに続く、１個のグレイコードパターンからなる第２の中位サブグループと、
（Ｃ）前記第２の中位サブグループに続く、Ｎｍ個のグレイコードパターンからなる第３の中位サブグループと、
（Ｄ）残る（Ｎｍ−１）個のグレイコードパターンからなる第４の中位サブグループと、に分割したとき、
前記中位グレイコードパターンは、前記第１〜第４の中位サブグループが、
（１）前記第４、前記第２、前記第１及び前記第３の中位サブグループの順序で、もしくは、
（２）前記第３、前記第１、前記第２及び前記第４の中位サブグループの順序で、
配置される、
請求項８に記載の位置検出システム。
【請求項１０】
前記複数のフレームの各々における連続するＮｓｆｇ個のサブフレームに対応するグレイコードパターンのグレイコード値の和のうちの最小値を、前記順序を変更するために前記複数のグレイコードパターンの配列を選択するときの前記深度のしきい値とする、
請求項５〜９のうちのいずれか１つに記載の位置検出システム。
【請求項１１】
前記Ｍ個のサブフレームグループのうち、前記上位グレイコードパターンのうち最下位のグレイコードパターンが含まれるサブフレームグループにおいて、各サブフレームに対応するグレイコードパターンのグレイコード値の和を、前記順序を変更するために前記複数のグレイコードパターンの配列を選択するときの前記深度のしきい値とする、
請求項８に記載の位置検出システム。
【請求項１２】
前記第１及び第３の中位サブグループに含まれるグレイコードパターンのグレイコード値の和を、前記順序を変更するために前記複数のグレイコードパターンの配列を選択するときの前記深度のしきい値とする、
請求項９に記載の位置検出システム。
【請求項１３】
それぞれ複数のサブフレームに分割された複数のフレームを用いて被写体の位置を検出する位置検出システムのための位置検出方法であって、
前記複数のサブフレームにそれぞれ対応し、互いに異なる２のべき乗のグレイコード値をそれぞれ有する複数のグレイコードパターンを、前記グレイコード値が増加した後減少し、もしくは減少した後増加する順序で配置するステップと、
前記複数のグレイコードパターンを前記順序で前記被写体に投影するステップと、
前記複数のグレイコードパターンが投影された前記被写体を前記複数のサブフレームのサブフレーム毎に撮像し、撮像画像を生成するステップと、
前記撮像画像に基づいて前記被写体の位置を推定するステップと、を備える、
位置検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、被写体の位置を検出するための位置検出システム及び位置検出方法に関し、さらに詳細には、２値化投影パターンにより空間に対してコード値を生成する空間コード化法を利用した被写体の位置検出システム及び位置検出方法に関する。
【背景技術】
【０００２】
光を用いて測定対象物の三次元形状を非接触で計測する技術として、スリット光投影法や空間コード化法などが知られている。これらは、投光投影装置から測定対象物に向けて光を照射し、その反射光を計測する。
【０００３】
例えば特許文献１は、空間コード化法に係る三次元被計測物体の位置計測方法を開示する。特許文献１に係る位置計測方法は、投射装置を用いてコード化されたグレイコードパターンを被計測物体にそれぞれ照射し、投射装置と異なる位置の撮像装置で被計測物体を撮像し、撮像画像を画素ごとに二値化する。これを複数のグレイコードパターンについて繰り返し、二値化された複数の二値化パターンに基づいて、投射装置と撮像装置の視差を用いた三角法により、被計測物体の位置を演算して求める。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開昭６０−１５２９０３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
昨今、自動車の自動運転、インタラクティブなエンターテインメント等の分野で、例えばプロジェクションマッピング等のために、被計測物体を高速に検出する技術が求められている。しかしながら、従来技術に係る方法で被計測物体の位置を測定するためには、各グレイコードを投影する複数のサブフレーム時間が必要となる。従って、被計測物体が高速で移動している場合、その位置を正確に検出することは困難である。
【０００６】
例えば、時速１００ｋｍで移動する被計測物体の位置を検出する場合、１／６０秒の時間で三次元形状を計測したとしても、その計測の開始時刻と終了時刻の間に、被計測物体は約８０ｃｍ移動してしまう。また、この検出のためには、１／６０秒の間に、投影するパターンの数の画像を投影及び撮像し、それぞれの画像を処理する。しかしながら、そのためには、十分に高速な撮像が可能な撮像装置及び、高速な画像処理が可能な処理装置を使用するが、これらは概して高コストであるという課題がある。
【０００７】
本開示は、従来技術に比較して低コストかつ高速に被写体を検出することが可能なシステム及び方法を開示する。
【課題を解決するための手段】
【０００８】
本開示の一態様に係る位置検出システムは、それぞれ複数のサブフレームに分割された複数のフレームを用いて被写体の位置を検出する位置検出システムである。位置検出システムは、複数のサブフレームにそれぞれ対応し、互いに異なる２のべき乗のグレイコード値を有する複数のグレイコードパターンを、グレイコード値が増加した後減少し、もしくは減少した後増加する順序で投影する投影装置と、複数のグレイコードパターンが投影された被写体を複数のサブフレームのサブフレーム毎に撮像し、撮像画像を生成する撮像装置と、撮像画像に基づいて被写体の位置を推定する制御手段と、を備える。また、本開示の一態様に係る位置検出方法は、それぞれ複数のサブフレームに分割された複数のフレームを用いて被写体の位置を検出する位置検出システムのための位置検出方法である。位置検出方法は、複数のサブフレームにそれぞれ対応し、互いに異なる２のべき乗のグレイコード値をそれぞれ有する複数のグレイコードパターンを、グレイコード値が増加した後減少し、もしくは減少した後増加する順序で配置するステップと、複数のグレイコードパターンを順序で被写体に投影するステップと、複数のグレイコードパターンが投影された被写体を複数のサブフレームのサブフレーム毎に撮像し、撮像画像を生成するステップと、撮像画像に基づいて被写体の位置を推定するステップと、を備える。
【発明の効果】
【０００９】
本開示によれば、従来技術に比較して低コストかつ高速に被写体を検出することが可能となる。
【図面の簡単な説明】
【００１０】
【図１】実施の形態１に係る位置検出システム１００の構成例を示すブロック図
【図２】図１の位置検出システム１００で用いられるグレイコードパターン２００ａ〜２００ｊの例を示す正面図
【図３】図１のデジタル計算機１０４の詳細構成例を示すブロック図
【図４】従来例、比較例、及び実施の形態１に係るグレイコードパターンの配列の様々な例の表を示す図
【図５】図１の位置検出システム１００における１フレームの、サブフレームと累計グレイコード値との関係を示すグラフ
【図６】実施の形態１に係る中位グレイコードパターンの配列を説明するためのタイミングチャート
【図７】従来例及び実施の形態１に係る、１サブフレームグループに含めるサブフレーム数Ｎｓｆｇと、Ｎｓｆｇ個の連続するサブフレームにおけるグレイコード値の和の最小値との関係を示すグラフ
【発明を実施するための形態】
【００１１】
図１は、実施の形態１に係る位置検出システム１００の構成例を示すブロック図である。図１において、位置検出システム１００は、撮像装置１０１と、投影装置１０２と、被写体１０３と、デジタル計算機１０４と、壁１０５とを含む。図１の位置検出システム１００において、１フレームは１０個のサブフレームを含む。位置検出システム１００は、それぞれ複数のサブフレームに分割された複数のフレームを用いて被写体の位置を検出する。
【００１２】
図１において、投影装置１０２は、壁１０５及び被写体１０３に向けて、サブフレーム毎にグレイコードパターン２００ａ〜２００ｊを順次投影する。撮像装置１０１は、グレイコードパターン２００ａ〜２００ｊを投影された壁１０５及び被写体１０３をサブフレーム毎に撮像し、撮像画像信号をデジタル計算機１０４に順次送信する。デジタル計算機１０４は、撮像装置１０１からの撮像画像に基づいて、撮像範囲内に被写体１０３が存在するかを判断し、それが存在するならば被写体１０３の深度（壁１０５からの距離）を推定する制御手段である。図１の点Ｃ（５０）及び点Ｃ（５００）は、それぞれ壁１０５の点のうち、グレイコード値が５０及び５００である点を示す。
【００１３】
壁１０５のある点におけるグレイコード値とは、グレイコードパターン２００ａ〜２００ｊのうち、その点に白を投影したグレイコードパターン２００ａ〜２００ｊのグレイコード値の合計を指す。従って、壁１０５における各点のグレイコード値は、その点におけるグレイコードパターン２００ａ〜２００ｊの画素の値（０又は１）をそれぞれ１０〜１ビット目の値とした１０桁の２進数と等しい。本実施の形態においてグレイコードパターン２００ａ〜２００ｊをそれぞれ第１０〜第１のグレイコードパターンと呼ぶ。
【００１４】
図２は、図１の位置検出システム１００で用いられるグレイコードパターン２００ａ〜２００ｊの例を示す正面図である。グレイコードパターン２００ａ〜２００ｊは、各画素が黒（０）又は白（１）の二値画像である。最上位である第１０のグレイコードパターン２００ａは、左半分が０かつ右半分が１となるようなパターンであり、そのグレイコード値は５１２である。第９のグレイコードパターン２００ｂは、全体を横方向に４分割し、それを左から順に０，１，０，１としたパターンで、グレイコード値は２５６である。以下のビットでも同様に、１ビット毎に横幅が半分になるようなグレイコードパターンを用いる。最下位である第１のグレイコードパターン２００ｊは、０と１が５１２本ずつ、交互に現れるようなパターンであり、グレイコード値は１となる。このように各グレイコードパターン２００ａ〜２００ｊは、互いに異なる２のべき乗のグレイコード値をそれぞれ有する。
【００１５】
図３は、図１のデジタル計算機１０４の詳細構成例を示すブロック図である。図３において、デジタル計算機１０４は、入力部１１０と、２値化部１１１と、グレイコード算出部１１２と、深度算出部１１３と、被写体検出部１１４と、データ選択部１１５と、パターン作成部１１６と、投影画像出力部１１７と、被写体位置データ出力部１１８と、記憶部１１９とを備える。
【００１６】
図３において、入力部１１０は、撮像装置１０１が壁１０５及び被写体１０３を撮像した撮像画像を、２値化部１１１に順次入力する。２値化部１１１は、入力された撮像画像を明暗で二値化し、二値化画像をグレイコード算出部１１２に出力する。
【００１７】
グレイコード算出部１１２は、グレイコード画像を格納する内部メモリを備える。ここでグレイコード画像は、撮像画像と同じピクセルサイズの画像であり、その各画素は、１０桁の２進数で表されるグレイコード値を含む。内部メモリに格納されたグレイコードパターンの各画素のグレイコード値のうち現在のサブフレームに対応する桁（ビット）に、入力された二値化画像の値を代入して更新し、更新されたグレイコード画像を深度算出部１１３に出力する。現在のサブフレームがどのグレイコードパターンに対応するかは、データ選択部１１５から入力されたグレイコードパターンの順序に基づいて判断する。
【００１８】
深度算出部１１３は、更新されたグレイコード画像に基づいて、三角法を用いて各画素の深度を求め、深度画像を被写体検出部１１４に出力する。ここで「深度」とは、被写体１０３が存在しない場合に予め撮像した撮像画像におけるグレイコード値と、更新されたグレイコード画像におけるグレイコード値との差を指す。たとえば図１のような位置関係の場合、撮像装置１０１から見て被写体１０３の方向のグレイコード値は、被写体１０３が存在しない場合の５０から、５００に増加している。従って、この被写体１０３の深度は４５０となる。本実施の形態において深度は、壁１０５からの距離を示す指標として用いられる。
【００１９】
被写体検出部１１４は、入力された深度画像の中で、所定の範囲の深度に対象物が存在するかを判断し、存在する場合はそれを被写体１０３として検出する。たとえば図１で所定のしきい値を２００とした場合、深度４５０である被写体１０３を検出できる。
【００２０】
また、被写体検出部１１４は、被写体１０３の座標およびその深度等の情報を含む被写体位置データを、被写体位置データ出力部１１８を介して外部のユーザインターフェース１０６に出力する。被写体１０３が検出されなかった場合には、被写体位置データはかわりに、被写体１０３が検出されなかったという情報を含む。ユーザインターフェース１０６は、たとえば液晶ディスプレイ等であり、被写体位置データに基づいて作成された画面をユーザに提供する。
【００２１】
データ選択部１１５は、１フレームの検出された被写体１０３の深度に基づいて、記憶部１１９から、次のフレームにおいて用いるグレイコードパターン配列を選択し、それを読み出してパターン作成部１１６に出力する。また、データ選択部１１５は、読み出したグレイコードパターンの順序をグレイコード算出部１１２に出力する。
【００２２】
記憶部１１９は、複数のグレイコードパターン配列、及び被写体１０３を検出するための深度のしきい値と、次のフレームにおいて用いるグレイコードパターンの順序との関係を示すデータベースを予め記憶している。各深度に対応するグレイコードパターンの順序を決める方法については後述する。
【００２３】
パターン作成部１１６は、データ選択部１１５からのグレイコードパターンの順序に基づいて、投影する１０枚のグレイコードパターン画像を生成し、投影画像出力部１１７を介して投影装置１０２に順次送信して投影させる。
【００２４】
このような構成により、デジタル計算機１０４は撮像装置１０１及び投影装置１０２と連携し、被写体１０３を検出してその深度及び位置の情報をユーザに提供することができる。上述の記憶部１１９に格納されたグレイコードパターンの順序を決める方法を以下説明する。
【００２５】
図４は、従来例、比較例、及び実施の形態１に係るグレイコードパターン配列の様々な例の表を示す図である。
【００２６】
図４において、グレイコードパターン配列Ａは、従来例に係るグレイコードパターン配列である。グレイコードパターン配列Ｂ及びＣは、比較例に係るグレイコードパターン配列である。グレイコードパターン配列Ｄ〜Ｆは、実施の形態１に係るグレイコードパターン配列であり、作成手順によって決定された順列の一例である。
【００２７】
図４において、グレイコードパターン配列Ａ〜Ｆは、それぞれどのサブフレームにどのグレイコードパターンを投影及び撮像するかの配置順序を示す。
【００２８】
図４のグレイコードパターン配列Ａにおいて、位置検出システム１００は、第１のサブフレームに第１のグレイコードパターン（ビット１）を配置し、第２のサブフレームに第２のグレイコードパターン（ビット２）を配置し、第３のサブフレームに第３のグレイコードパターン（ビット３）を配置し、第４のサブフレームに第４のグレイコードパターン（ビット４）を配置し、第５のサブフレームに第５のグレイコードパターン（ビット５）を配置し、第６のサブフレームに第６のグレイコードパターン（ビット６）を配置し、第７のサブフレームに第７のグレイコードパターン（ビット７）を配置し、第８のサブフレームに第８のグレイコードパターン（ビット８）を配置し、第９のサブフレームに第９のグレイコードパターン（ビット９）を配置し、第１０のサブフレームに第１０のグレイコードパターン（ビット１０）を配置する。
【００２９】
同様に、比較例に係るグレイコードパターン配列Ｂにおいて、位置検出システム１００は、第１のサブフレームに第１のグレイコードパターン（ビット１）を配置し、第２のサブフレームに第３のグレイコードパターン（ビット３）を配置し、第３のサブフレームに第５のグレイコードパターン（ビット５）を配置し、第４のサブフレームに第７のグレイコードパターン（ビット７）を配置し、第５のサブフレームに第９のグレイコードパターン（ビット９）を配置し、第６のサブフレームに第２のグレイコードパターン（ビット２）を配置し、第７のサブフレームに第４のグレイコードパターン（ビット４）を配置し、第８のサブフレームに第６のグレイコードパターン（ビット６）を配置し、第９のサブフレームに第８のグレイコードパターン（ビット８）を配置し、第１０のサブフレームに第１０のグレイコードパターン（ビット１０）を配置する。
【００３０】
比較例に係るグレイコードパターン配列Ｃにおいて、位置検出システム１００は、第１のサブフレームに第１０のグレイコードパターン（ビット１０）を配置し、第２のサブフレームに第９のグレイコードパターン（ビット９）を配置し、第３のサブフレームに第８のグレイコードパターン（ビット８）を配置し、第４のサブフレームに第７のグレイコードパターン（ビット７）を配置し、第５のサブフレームに第６のグレイコードパターン（ビット６）を配置し、第６のサブフレームに第５のグレイコードパターン（ビット５）を配置し、第７のサブフレームに第４のグレイコードパターン（ビット４）を配置し、第８のサブフレームに第３のグレイコードパターン（ビット３）を配置し、第９のサブフレームに第２のグレイコードパターン（ビット２）を配置し、第１０のサブフレームに第１のグレイコードパターン（ビット１）を配置する。
【００３１】
実施の形態１に係るグレイコードパターン配列Ｄにおいて、位置検出システム１００は、第１のサブフレームに第１０のグレイコードパターン（ビット１０）を配置し、第２のサブフレームに第１のグレイコードパターン（ビット１）を配置し、第３のサブフレームに第２のグレイコードパターン（ビット２）を配置し、第４のサブフレームに第９のグレイコードパターン（ビット９）を配置し、第５のサブフレームに第３のグレイコードパターン（ビット３）を配置し、第６のサブフレームに第４のグレイコードパターン（ビット４）を配置し、第７のサブフレームに第８のグレイコードパターン（ビット８）を配置し、第８のサブフレームに第５のグレイコードパターン（ビット５）を配置し、第９のサブフレームに第６のグレイコードパターン（ビット６）を配置し、第１０のサブフレームに第７のグレイコードパターン（ビット７）を配置する。
【００３２】
実施の形態１に係る別のグレイコードパターン配列Ｅにおいて、位置検出システム１００は、第１のサブフレームに第９のグレイコードパターン（ビット９）を配置し、第２のサブフレームに第３のグレイコードパターン（ビット３）を配置し、第３のサブフレームに第４のグレイコードパターン（ビット４）を配置し、第４のサブフレームに第８のグレイコードパターン（ビット８）を配置し、第５のサブフレームに第５のグレイコードパターン（ビット５）を配置し、第６のサブフレームに第６のグレイコードパターン（ビット６）を配置し、第７のサブフレームに第７のグレイコードパターン（ビット７）を配置し、第８のサブフレームに第１０のグレイコードパターン（ビット１０）を配置し、第９のサブフレームに第１のグレイコードパターン（ビット１）を配置し、第１０のサブフレームに第２のグレイコードパターン（ビット２）を配置する。
【００３３】
実施の形態１に係るまた別のグレイコードパターン配列Ｆにおいて、位置検出システム１００は、第１のサブフレームに第７のグレイコードパターン（ビット７）を配置し、第２のサブフレームに第６のグレイコードパターン（ビット６）を配置し、第３のサブフレームに第５のグレイコードパターン（ビット５）を配置し、第４のサブフレームに第８のグレイコードパターン（ビット８）を配置し、第５のサブフレームに第４のグレイコードパターン（ビット４）を配置し、第６のサブフレームに第３のグレイコードパターン（ビット３）を配置し、第７のサブフレームに第９のグレイコードパターン（ビット９）を配置し、第８のサブフレームに第２のグレイコードパターン（ビット２）を配置し、第９のサブフレームに第１グレイコードパターン（ビット１）を配置し、第１０のサブフレームに第１０のグレイコードパターン（ビット１０）を配置する。
【００３４】
グレイコードパターン配列Ｅは、グレイコードパターン配列Ｄの先頭の３つのグレイコードパターンを末尾に配置し直した順序のグレイコードパターン配列である。また、グレイコードパターン配列Ｆは、グレイコードパターン配列Ｄの各グレイコードパターンを逆順に並べ直したグレイコードパターン配列である。
【００３５】
上記のグレイコードパターン配列Ｄは、検出がフレーム内のどのサブフレームで開始された場合でも同等の効果が得られるように作成される。従って、実施の形態１に係るグレイコードパターン配列の順序として、当該グレイコードパターン配列の先頭から任意数のグレイコードパターンを末尾に配置し直したグレイコードパターン配列を用いても、同様の効果が得られる。例えば、グレイコードパターン配列Ｅを用いれば、グレイコードパターン配列Ｄを用いる場合と同様の効果が得られる。
【００３６】
また、上記のグレイコードパターン配列Ｄは、グレイコードパターン配列のうち連続する複数のグレイコードパターンのグレイコード値の合計が所定値以上であることを保証するグレイコードパターン配列である。従って、実施の形態１に係るグレイコードパターン配列として、当該グレイコードパターン配列を逆順に配置し直したグレイコードパターン配列を用いても、同様の効果が得られる。例えば、グレイコードパターン配列Ｆを用いれば、グレイコードパターン配列Ｄを用いる場合と同様の効果が得られる。
【００３７】
図５は、図１の位置検出システム１００における１フレームの、サブフレームと累計グレイコード値との関係を示すグラフである。図５において、累計グレイコード値は、そのフレーム内のその時点までにおけるグレイコードパターンのグレイコード値の合計であり、そのサブフレームの時点で検出できる深度の最大値を示す。図５の４本の折れ線グラフは、それぞれ図４のグレイコードパターン配列Ａ〜Ｄに従って配列した場合に対応するグラフである。
【００３８】
たとえば、２００を深度のしきい値として被写体１０３を検出する場合を考える。このとき、図４の配列Ａに従うとすると、累計グレイコード値が２００を超えるのは８サブフレーム目である。従って、配列Ａに従って深度の値が２００の被写体１０３を検出するには、少なくとも８サブフレームを要する。一方、図４の配列Ｂに従う場合、累計グレイコード値が２００を超えるのは５サブフレーム目である。このように、より上位のビットに対応するグレイコードパターンを、１フレームのうちのより早い時点に配置するような配列を用いることで、ある深度の被写体１０３をより早く検出することができる。
【００３９】
ここで、図４の配列Ｃに示すような、配列Ａと逆順の配列に従えば、図５に示すように、深度のしきい値が５１１以下の場合に、１サブフレーム目で被写体１０３が検出できる。しかしながら、被写体１０３の検出が開始されるのは、必ずしも１サブフレーム目からとは限らない。たとえば４サブフレーム目において初めて被写体１０３が撮像領域内に出現した場合、１〜３サブフレーム目のグレイコードパターンは検出に寄与しない。従って、深度のしきい値が２００であるとすると、グレイコードパターン配列Ｃに従う場合、その検出には８サブフレーム（次のフレームの１サブフレーム目まで）を要する。フレームの途中から被写体１０３が撮像領域内に出現した場合でも、できる限り少ないサブフレーム数で被写体１０３を検出することが可能となるようなグレイコードパターン配列について以下説明する。
【００４０】
まず、１フレーム内のサブフレームを、複数のサブフレームグループに分類する。このサブフレームグループは、各サブフレームグループに含まれるサブフレームのグレイコード値の合計が、深度しきい値以上になるように分類する。これにより、フレームの途中から被写体１０３が撮像領域内に出現した場合であっても、その深度が深度しきい値よりも大きい値であれば、少なくとも１つのサブフレームグループに含まれるサブフレーム群をすべて経過することで、被写体１０３を検出することができる。
【００４１】
このような分類の具体的な方法を以下説明する。より一般化するために、１フレームにＮ個のサブフレームが含まれる場合を説明する。ここでは、Ｎ個のサブフレームには、最上位グレイコードパターンに対応する１つのサブフレームと、それぞれＮｓｆｇ個のサブフレームからなるＭ個のサブフレームグループとが含まれる。すなわち、次の等式（１）が成り立つ。ここで、Ｎ、Ｎｓｆｇ、Ｍは２以上の自然数である。
Ｎ＝Ｎｓｆｇ×Ｍ＋１  …  （１）
図２の第１０のグレイコードパターン２００ａと同様に、最上位である第Ｎのグレイコードパターンは、左半分が０（黒）かつ右半分が１（白）となるようなパターンであり、そのグレイコード値は２Ｎ−１である。第（Ｎ−１）のグレイコードパターンは、全体を横方向に４分割し、それを左から順に黒、白、黒、白としたパターンで、グレイコード値は２Ｎ−２である。以下のビットでも同様に、グレイコードパターン毎に横幅が半分になるようなグレイコードパターンを用いる。最下位である第１のグレイコードパターン（ビット１）は、黒と白が各２Ｎ−１本ずつ、交互に現れるようなグレイコードパターンであり、グレイコード値は１となる。
【００４２】
従って、いずれのグレイコードパターンにおいてもそのグレイコードは２のべき乗で表され、１≦ｎ≦Ｎなるｎに対して、第ｎのグレイコードパターンのグレイコード値は、第１〜第（ｎ−１）のグレイコードパターンのグレイコード値の合計よりも大きい。すなわち、次式が成り立つ。
【００４３】
【数１】
2020201254.tif 000003
【００４４】
ただし、ＧＣ（ｍ）は第ｍのグレイコードパターンのグレイコード値である。そのため、同一のサブフレームグループ内に最下位グレイコードパターンと最上位グレイコードパターンの両方が含まれている場合、そのサブフレームグループのグレイコード値の合計は、他のどのサブフレームグループのグレイコード値の合計よりも大きくなる。そこで、最上位グレイコードパターンが含まれるサブフレームグループには、下位から（Ｎｓｆｇ−１）個のグレイコードパターンを含める。
【００４５】
残りのサブフレームに関しても同様に、残ったサブフレームの中の最上位グレイコードパターンと、下位から（Ｎｓｆｇ−１）個のグレイコードパターンを１つのサブフレームグループに含めることを繰り返せば、サブフレームグループ毎のグレイコード値の合計の最小値を最も大きく保つことができる。
【００４６】
ここで注意すべきことは、被写体１０３が撮像領域内に出現するタイミングが、サブフレームグループの途中となり得るということである。この場合、２つのサブフレームグループにわたって累計グレイコード値を合計することになる。従って、２つのサブフレームグループにおいて、各サブフレームグループの上位グレイコードパターンに対応するサブフレームを含めずに、被写体１０３を検出する可能性がある。この場合、累計グレイコード値の増加が緩やかになり、上位グレイコードパターンを含めた場合よりも検出に長い時間がかかってしまう。そこで、２つのサブフレームグループに跨がって検出を行う場合に、必ずいずれかのサブフレームグループの上位グレイコードパターンが含まれるようにする。具体的には、すべてのサブフレームグループにおいて、そのサブフレームグループ内の上位グレイコードパターンを、すべて各サブフレームグループの最初のサブフレームに配置すればよい。
【００４７】
ここで、上述の手順でサブフレームグループを作成した場合、最初に作成した（上位グレイコードパターンのグレイコード値が最も大きい）サブフレームグループの下位グレイコードパターンのグレイコード値の合計は、他のサブフレームグループの下位グレイコードパターンのグレイコード値の合計よりも小さくなる。従って、最初に作成したサブフレームグループが他のサブフレームグループと隣接すると、その２つのサブフレームグループに跨がって行う検出は遅くなる。そこで、フレームの最初のサブフレームに最上位グレイコードパターンを配置し、最初に作成したサブフレームグループはフレームの末尾に配置する。これにより、下位グレイコードパターンのグレイコード値の合計が最小のサブフレームグループは、必ず（次フレームの）最上位グレイコードパターンのサブフレームと隣接することになり、２フレームにわたって行われる場合の検出をより高速にすることができる。
【００４８】
以上のような配列の作成方法によれば、どのタイミングで検出が開始された場合でも、１サブフレームグループを経過することで、ある所定の値以上のグレイコード値の合計が達成されるようなグレイコードパターン配列が得られる。
【００４９】
次に、上述の説明で仮定した等式（１）が成り立たない場合の配列を考える。サブフレーム数Ｎをサブフレームグループ数Ｍで割った商をＮｑｕｏ、余りをＮｍｏｄとする。すなわち、Ｎ＝Ｎｑｕｏ×Ｍ＋Ｎｍｏｄとする。
【００５０】
まずは、等式（１）が成り立つ場合と同様の手順で、（Ｎｑｕｏ−１）個のサブフレームグループを作成する。フレーム内の最上位グレイコードパターンと、それを除くパターンのうち上位（Ｎｑｕｏ−１）個のパターンと、それらに組み合わせる（（Ｎｑｕｏ−１）×（Ｎｓｆｇ−１））個の下位グレイコードパターンとが用いられる。換言すると、フレーム全体のグレイコードパターンのうち、上位Ｎｑｕｏビットと、下位（（Ｎｑｕｏ−１）×（Ｎｓｆｇ−１））ビットを用いて、等式（１）が成り立つ場合と同様にサブフレームグループを作成する。この時点でサブフレームグループに含まれないサブフレームは（Ｎ−Ｎｓｆｇ×Ｍ−１）個あり、これらのサブフレームを、余剰サブフレームグループと呼ぶ。余剰サブフレームグループの各サブフレームには、まだ配置されていない中位グレイコードパターンが配置される。余剰サブフレームグループのサブフレーム数は（Ｎｓｆｇ＋Ｎｍｏｄ−１）個とも表せる。
【００５１】
以下、この中位グレイコードパターンを、上位から順にＰ（１），Ｐ（２），…，Ｐ（Ｎｓｆｇ＋Ｎｍｏｄ―１）と表す。上述の通り、各グレイコードパターンは２のべき乗のグレイコード値を有するため、中位グレイコードパターンのグレイコード値の合計は、他のどのサブフレームグループのグレイコード値の合計よりも小さい。従って、この中位グレイコードパターンから連続するＮｓｆｇ個を取り出したグレイコード値の合計の最小値がなるべく大きくなるようにするグレイコードパターン配列を考える。
【００５２】
図６は、実施の形態１に係る中位グレイコードパターンの配列を説明するためのタイミングチャートである。中位グレイコードパターンには（Ｎｓｆｇ＋Ｎｍｏｄ−１）個のサブフレームが含まれる。この中から連続するＮｓｆｇ個を取り出すことを考える。サブフレームの値に関して、以下の不等式（２）が成り立つ。
Ｎｓｆｇ＋Ｎｍｏｄ−１＜２Ｎｓｆｇ  …  （２）
従って、中位グレイコードパターンのサブフレームの中から連続するＮｓｆｇ個のサブフレームをどのように選んでも必ず含まれるサブフレームがあり、その数は以下の式で表せる。
２Ｎｓｆｇ−（Ｎｓｆｇ＋Ｎｍｏｄ−１）＝Ｎｓｆｇ−Ｎｍｏｄ＋１
この中位サブフレーム群を、フレームの最初の（Ｎｍｏｄ−１）個（期間Ｄａ）と、最後の（Ｎｍｏｄ−１）個（期間Ｄｃ）と、それ以外の（Ｎｓｆｇ−Ｎｍｏｄ＋１）個（期間Ｄｂ）とに分割する。この期間Ｄｂに含まれるサブフレームは、上述の連続するＮｓｆｇ個のサブフレームに必ず含まれるサブフレームにあたる。
【００５３】
どのタイミングで検出が開始された場合でも検出に用いられることから、期間Ｄｂのグレイコードパターンは、グレイコード値の大きいグレイコードパターンが好ましい。従って、期間Ｄｂには、中位グレイコードパターンのうち上位の（Ｎｓｆｇ−Ｎｍｏｄ＋１）個、すなわちＰ（１）〜Ｐ（Ｎｓｆｇ−Ｎｍｏｄ＋１）を含める。これら（Ｎｓｆｇ−Ｎｍｏｄ＋１）個の中位グレイコードパターン群は、「第１の中位サブグループ」の一例である。
【００５４】
残りのＰ（Ｎｓｆｇ−Ｎｍｏｄ＋２）〜Ｐ（Ｎｓｆｇ＋Ｎｍｏｄ−１）に関しては、サブフレームグループを作成した時と同様の方法で２つに分ける。つまり、最上位のグレイコードパターンＰ（Ｎｓｆｇ−Ｎｍｏｄ＋２）と、下位から（Ｎｍｏｄ−２）個のグレイコードパターンＰ（Ｎｓｆｇ＋２）〜Ｐ（Ｎｓｆｇ＋Ｎｍｏｄ−１）との組を期間Ｄａに割り当て、残りの（Ｎｍｏｄ−１）個のグレイコードパターンＰ（Ｎｓｆｇ−Ｎｍｏｄ＋３）〜Ｐ（Ｎｓｆｇ＋１）を期間Ｄｃに割り当てればよい。ここで、最上位であるグレイコードパターンＰ（Ｎｓｆｇ−Ｎｍｏｄ＋２）は期間Ｄａの最後に配置するようにする。ここで、最上位のグレイコードパターンＰ（Ｎｓｆｇ−Ｎｍｏｄ＋２）は「第２の中位サブグループ」の一例であり、下位から（Ｎｍｏｄ−２）個のグレイコードパターン群は「第４の中位サブグループ」の一例であり、残る（Ｎｍｏｄ−１）個のグレイコードパターンは「第３の中位サブグループ」の一例である。
【００５５】
上述のように作成した中位グレイコードパターンのサブフレーム群は、等式（１）が成り立つ場合においては隣接していた、フレーム内の最上位サブフレームと、最初のサブフレームグループの最上位サブフレームとの間に配置する。これにより、期間Ｄａ及び期間Ｄｃの間で、下位グレイコードパターンが配置されたサブフレームと、最上位グレイコードパターンが配置されたサブフレームとが隣接するため、下位グレイコードパターンが連続することを防ぐことができる。
【００５６】
以上のように作成したグレイコードパターン配列において、被写体１０３を検出可能な深度の値は、１サブフレームグループのサブフレーム数Ｎｓｆｇの値によって変化する。たとえば１フレームのサブフレーム数Ｎが１０、サブフレーム数Ｎｓｆｇが３の場合のとき、一例として｛１０，１，２，９，３，４，８，５，６，７｝というグレイコードパターン配列（図４のグレイコードパターン配列Ｄ）が得られる。ただし配列の数値は図４と同様に、それぞれ各サブフレームにどのグレイコードパターンを配置するかを示す。このグレイコードパターン配列を用いれば、フレーム内のどの時点から検出が開始しても、３サブフレームが経過する間に、累計グレイコード値が（２４＋２５＋２６）＝１１２以上となる。すなわち、深度が１１２未満の被写体１０３は、遅くとも３サブフレームで検出される。
【００５７】
そこで、各サブフレーム数Ｎｓｆｇに対して、上述のような累計グレイコード値の最小値を求めて深度のしきい値とし、検出する被写体の深度が当該しきい値を超える場合に、対応するサブフレーム数Ｎｓｆｇの値を用いて作成されたグレイコードパターン配列を選択して切り替えることにより、被写体１０３の深度に応じて最適なグレイコードパターン配列を用いることができる。なお、上述のような手順でグレイコードパターン配列を作成する場合、あるサブフレーム数Ｎｓｆｇの値に対する累計グレイコード値の最小値は以下のようになる。
（ａ）等式（１）が成り立つ場合、あるサブフレーム数Ｎｓｆｇの値に対する累計グレイコード値の最小値は、上位グレイコードパターンのうち最下位のグレイコードパターンが含まれるサブフレームグループにおいて、各サブフレームに対応するグレイコードパターンのグレイコード値の和となる。
（ｂ）等式（１）が成り立たない場合、あるサブフレーム数Ｎｓｆｇの値に対する累計グレイコード値の最小値は、中位サブグループに含まれるグレイコードパターンのグレイコード値の和となる。
【００５８】
図７は、従来例及び実施の形態１に係る、１サブフレームグループに含めるサブフレーム数Ｎｓｆｇと、Ｎｓｆｇ個の連続するサブフレームにおけるグレイコード値の和の最小値との関係を示すグラフである。グラフの実線が、本開示の手順で作成した順列に従って配列した場合のグラフである。縦軸は、１サブフレームグループに含めるサブフレーム数Ｎｓｆｇに対して検出可能な深度の最大値とも言える。従って、サブフレーム数Ｎｓｆｇの値は、前のフレームにおいて検出された被写体１０３の深度に対して、その深度の被写体１０３を検出できる最小のサブフレーム数Ｎｓｆｇに設定するようにすればよい。すなわち、各サブフレーム数において検出可能な深度の最大値を深度しきい値として、被写体１０３の深度がそのしきい値を超えた時に、サブフレーム数Ｎｓｆｇの値を切り替える。
【００５９】
図７において、グラフの点線は、被写体１０３の深度にかかわらず配列Ａに従って被写体１０３の検出を行った場合のグラフである。同じサブフレーム数で検出可能な被写体１０３の深度の範囲が広がっていることがわかる。換言すると、本実施の形態の位置検出システムは、フレーム中の任意のサブフレームから検出が開始する場合に、ある深度の被写体１０３を、従来技術に比較して高速に検出することができる。
【００６０】
なお、実施の形態１において、パターン作成部１１６でグレイコードパターン画像を生成するかわりに、記憶部１１９に予め１０枚のグレイコードパターン画像を格納し、データ選択部１１５がそれを読み出し、投影画像出力部１１７を介して投影装置１０２に出力するようにしてもよい。また、２つのサブフレームグループに跨がって検出を行う場合に検出を高速にするために、すべてのサブフレームグループにおいて、そのサブフレームグループの最上位グレイコードパターンを、最初のサブフレームに配置しているが、これを最後のサブフレームに配置することにしてもよい。その場合、フレームの最上位グレイコードパターンはフレームの最後に配置され、中位グレイコードパターンが存在する場合には、中位グレイコードパターンは最後のサブフレームグループの最上位グレイコードパターンとフレームの最上位グレイコードパターンの間に配置される。
【００６１】
さらに、実施の形態１におけるグレイコードパターンの配列には、Ｎｓｆｇ個の連続するサブフレームをどのように選択しても、必ずそれらよりも上位のグレイコードパターンが含まれる部分が存在する。従ってその部分については、順列が位置検出システムの動作に影響を与えないため、どのような順列であってもよい。そのため、順列を限定していない。
【００６２】
以上のように、実施の形態１によれば、前のフレームにおいて検出された被写体１０３の深度に応じて、用いるグレイコードパターン配列を選択する。また、グレイコードパターン配列は、フレーム内のどのサブフレームから検出が開始された場合であっても、所定のサブフレームが経過した後には累計グレイコード値が所定の値以上となるように決定される。このグレイコードパターン配列は、グレイコード値が増加した後減少し、もしくは減少した後増加する順序で配置される。これにより、どのような深度の被写体１０３も、従来技術に比較して高速に検出することができる。
【産業上の利用可能性】
【００６３】
本発明は、所定の距離範囲に存在する被写体を高速に検出する、たとえばプロジェクションマッピング及び自動車の危険感知センサ等に利用可能である。
【符号の説明】
【００６４】
１００    位置検出システム
１０１    撮像装置
１０２    投影装置
１０３    被写体
１０４    デジタル計算機
１０５    壁
１０６    ユーザインターフェース
１１０    入力部
１１１    ２値化部
１１２    グレイコード算出部
１１３    深度算出部
１１４    被写体検出部
１１５    データ選択部
１１６    パターン作成部
１１７    投影画像出力部
１１８    被写体位置データ出力部
１１９    記憶部
２００ａ〜２００ｊ    グレイコードパターン
【図１】
2020201254.tif 000004
【図２】
2020201254.tif 000005
【図３】
2020201254.tif 000006
【図４】
2020201254.tif 000007
【図５】
2020201254.tif 000008
【図６】
2020201254.tif 000009
【図７】
2020201254.tif 000010