(57)【要約】【課題】コストをかけずに反射性領域を特定することができる領域特定装置、方法、及びプログラムを提供する。【解決手段】実施形態の領域特定装置は、投影部と、撮像部と、算出部と、特定部と、を備える。投影部は、予め定められた動きを行うようにパタンを投影する。撮像部は、パタンが投影されている領域を時系列で撮像し、複数の画像を得る。算出部は、複数の画像中の画像領域毎にパタンの変化量を算出する。特定部は、算出された複数の変化量のうち予め定められた動きに伴う基準変化量と異なる変化量の画像領域を、反射性領域に特定する。【選択図】図１
2014048276.tif 000002
【特許請求の範囲】
【請求項１】
予め定められた動きを行うようにパタンを投影する投影部と、
前記パタンが投影されている領域を時系列で撮像し、複数の画像を得る撮像部と、
前記複数の画像中の画像領域毎に前記パタンの変化量を算出する算出部と、
算出された前記複数の変化量のうち前記予め定められた動きに伴う基準変化量と異なる変化量の画像領域を、反射性領域に特定する特定部と、
を備える領域特定装置。
【請求項２】
前記特定部は、算出された前記複数の変化量それぞれと前記基準変化量との差を算出し、算出した前記差が第１閾値以上となる変化量の画像領域を、前記反射性領域に特定する請求項１に記載の領域特定装置。
【請求項３】
前記投影部は、自身の座標系に対して斜め方向に前記パタンをシフトして投影する請求項１又は２に記載の領域特定装置。
【請求項４】
前記パタンは、幾何学的パタンであり、
前記変化量は、動きベクトルである請求項１〜３のいずれか１つに記載の領域特定装置。
【請求項５】
前記幾何学的パタンは、太さがランダムな複数の斜め線をランダムな位置で交差させた格子から構成される請求項４に記載の領域特定装置。
【請求項６】
前記パタンは、グラデーションパタンであり、
前記変化量は、輝度値の差分である請求項１〜３のいずれか１つに記載の領域特定装置。
【請求項７】
前記パタンは、正弦波パタンであり、
前記変化量は、位相である請求項１〜３のいずれか１つに記載の領域特定装置。 
【請求項８】
前記特定部は、算出された前記変化量の大きさが第２閾値以下となる画像領域を、特定不可領域に設定する請求項１〜７のいずれか１つに記載の領域特定装置。
【請求項９】
投影部が、予め定められた動きを行うようにパタンを投影する投影ステップと、
撮像部が、前記パタンが投影されている領域を時系列で撮像し、複数の画像を得る撮像ステップと、
算出部が、前記複数の画像中の画像領域毎に前記パタンの変化量を算出する算出ステップと、
特定部が、算出された前記複数の変化量のうち前記予め定められた動きに伴う基準変化量と異なる変化量の画像領域を、反射性領域に特定する特定ステップと、
を含む領域特定方法。
【請求項１０】
予め定められた動きを行うようにパタンを投影する投影ステップと、
前記パタンが投影されている領域を時系列で撮像し、複数の画像を得る撮像ステップと、
前記複数の画像中の画像領域毎に前記パタンの変化量を算出する算出ステップと、
算出された前記複数の変化量のうち前記予め定められた動きに伴う基準変化量と異なる変化量の画像領域を、反射性領域に特定する特定ステップと、
をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、領域特定装置、方法、及びプログラムに関する。
【背景技術】
【０００２】
鏡、金属、及び水面のような反射性領域を三次元形状計測する場合、反射性領域用の計測手法を適用する必要があるため、反射性領域を特定する必要がある。反射性領域を特定する手法として、撮影画像における正反射光の輝度分布を、撮影環境における鏡面化の度合いを表す輝度値と比較することで、鏡面領域を特定する手法がある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−１５７０７３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述したような従来技術では、撮像環境における鏡面化の度合いを表す輝度値を撮像環境毎に準備しておかなければならず、時間や手間などのコストがかかってしまう。本発明が解決しようとする課題は、コストをかけずに反射性領域を特定することができる領域特定装置、方法、及びプログラムを提供することである。
【課題を解決するための手段】
【０００５】
実施形態の領域特定装置は、投影部と、撮像部と、算出部と、特定部と、を備える。投影部は、予め定められた動きを行うようにパタンを投影する。撮像部は、前記パタンが投影されている領域を時系列で撮像し、複数の画像を得る。算出部は、前記複数の画像中の画像領域毎に前記パタンの変化量を算出する。特定部は、算出された前記複数の変化量のうち前記予め定められた動きに伴う基準変化量と異なる変化量の画像領域を、反射性領域に特定する。
【図面の簡単な説明】
【０００６】
【図１】図１は、本実施形態の領域特定装置の例を示す構成図。
【図２】図２は、本実施形態のパタンの例を示す図。
【図３】図３は、本実施形態の投影環境及び撮像環境の例を示す図。
【図４Ａ】図４Ａは、非反射性領域に投影されたパタンのシフト方向の例を示す図。
【図４Ｂ】図４Ｂは、反射性領域に投影されたパタンのシフト方向の例を示す図。
【図５】図５は、本実施形態の領域特定処理例を示すフローチャート。
【図６】図６は、変形例１のパタンの例を示す図。
【図７】図７は、変形例２のパタンの例を示す図。
【図８】図８は、変形例３のパタンの例を示す図。
【図９】図９は、上記実施形態及び変形例の領域特定装置のハードウェア構成の一例を示すブロック図である。
【発明を実施するための形態】
【０００７】
以下、添付図面を参照しながら、実施形態を詳細に説明する。
【０００８】
図１は、本実施形態の領域特定装置１０の一例を示す構成図である。図１に示すように、領域特定装置１０は、記憶部１１と、投影部１３と、撮像部１５と、算出部１７と、特定部１９とを、備える。
【０００９】
記憶部１１は、領域特定装置１０で実行される各種プログラムや領域特定装置１０で行われる各種処理に使用されるデータなどを記憶する。記憶部１１は、例えば、ＨＤＤ（Hard  Disk  Drive）、ＳＳＤ（Solid  State  Drive）、メモリカード、光ディスク、ＲＯＭ（Read  Only  Memory）、及びＲＡＭ（Random  Access  Memory）などの磁気的、光学的、又は電気的に記憶可能な記憶装置により実現できる。
【００１０】
投影部１３は、予め定められた動きを行うようにパタンを投影するものであり、例えば、プロジェクタ、レーザ、及びランプなど、光源から任意のパタンのパタン光を投影できる投影装置により実現できる。
【００１１】
具体的には、投影部１３は、領域特定装置１０や外部装置から、パタンを予め定められた方向にシフトした場合の投影データを時系列で取得し、取得した投影データを後述の撮像部１５の撮像対象領域に時系列で投影する。これにより、投影部１３は、予め定められた方向にパタンをシフトして投影し、予め定められた動きを行うようにパタンが投影される。
【００１２】
なお、予め定められた方向は、投影部１３の座標系に対して斜め方向であればよく、本実施形態では、投影部１３の座標系に対して右上、右下、左上、及び左下のいずれかの方向を想定しているが、これに限定されるものではない。投影部１３の座標系に対して斜め方向は、投影部１３の座標系に対して垂直及び水平方向以外の方向であれば、どのような方向であってもよい。
【００１３】
本実施形態で用いられるパタンは、幾何学的パタンであるものとするが、これに限定されるものではない。図２は、本実施形態のパタンの一例を示す図である。図２に示すパタンは、太さがランダムな複数の斜め線をランダムな位置で交差させた格子から構成される幾何学的パタンとなっている。なお、斜め線は、垂直線及び水平線以外の線であればよい。
【００１４】
撮像部１５は、投影部１３によりパタンが投影されている領域を時系列で撮像し、複数の画像を得るものであり、例えば、デジタルカメラなどの撮像装置により実現できる。
【００１５】
なお本実施形態では、投影部１３の座標系と撮像部１５の座標系との対応関係が一致するように予め校正されているものとする。つまり、本実施形態では、投影部１３により投影されたパタンの動きと、撮像部１５により撮像された画像内でのパタンの動きとが、一致するものとする。
【００１６】
図３は、本実施形態の投影環境及び撮像環境の一例を示す図であり、図４Ａは、非反射性領域に投影されたパタンのシフト方向の一例を示す図であり、図４Ｂは、反射性領域に投影されたパタンのシフト方向の一例を示す図である。
【００１７】
図３に示す例では、投影部１３が自身の視野範囲２３を投影し、視野範囲２３に含まれる物体２７の領域３１Ａ、視野範囲２３に含まれる物体２９の領域３１Ｂ及び領域３２にパタンが投影され、撮像部１５が自身の視野範囲２５を撮像している。ここで、領域３１Ａ、３１Ｂは、非反射性領域であり、領域３２は、反射性領域であるため、領域３２に投影されたパタンは、領域３１Ａ、３１Ｂに投影されたパタンに対して、いずれかの方向に反転している。このため、図４Ａ及び図４Ｂに示すように、領域３２に投影されたパタンのシフト方向は、領域３１Ａ、３１Ｂに投影されたパタンのシフト方向４１とは異なる方向（例えば、シフト方向４２〜４４など）となる。
【００１８】
算出部１７及び特定部１９は、例えば、ＣＰＵ（Central  Processing  Unit）などの処理装置にプログラムを実行させること、即ち、ソフトウェアにより実現できる。
【００１９】
算出部１７は、撮像部１５により撮像された複数の画像を用いて、画像領域毎にパタンを算出する。本実施形態では、算出部１７は、撮像部１５により撮像された画像の画像領域毎に、パタンの動きベクトルを算出する。
【００２０】
例えば、算出部１７は、撮像部１５により撮像された第ｔフレームの画像の動きベクトルを算出する場合、第ｔフレームの画像を予め定められた領域（Ｎ×Ｎの大きさのブロック）に分割する。そして、算出部１７は、分割した各領域について、領域の左上端の画素の位置を（ｉ０，ｊ０）、当該画素の輝度値Ｉｔ（ｉ０，ｊ０）とし、位置（ｉ０，ｊ０）に対応する直前のフレーム（第ｔ−１フレーム）の画像の位置から（ｐ，ｑ）ずらした位置を含む領域との画素の差を評価する。この評価には、例えば、数式（１）及び（２）に示すような、画素値の差の絶対値の和（ＳＡＤ：Ｓｕｍ  ｏｆ  Ａｂｕｓｏｌｕｔｅ  Ｄｉｆｆｅｒｅｎｃｅ）などを用いることができる。
【００２１】
【数１】
2014048276.tif 000003
【００２２】
【数２】
2014048276.tif 000004
【００２３】
具体的には、算出部１７は、分割した各領域について、数式（１）を用いて、ＳＡＤ（ｐ，ｑ）を計算し、数式（２）を用いて、ＳＡＤ（ｐ，ｑ）を最小とする（ｐ，ｑ）を求め、動きベクトル（ｐｍ，ｑｍ）とする。
【００２４】
特定部１９は、算出部１７により算出された複数の変化量のうち予め定められた動きに伴う基準変化量と異なる変化量の画像領域を、反射性領域に特定する。具体的には、特定部１９は、算出部１７により算出された複数の変化量それぞれと基準変化量との差を算出し、算出した差が第１閾値以上となる変化量の画像領域を、反射性領域に特定する。
【００２５】
本実施形態では、特定部１９は、数式（３）に示すように、算出部１７により算出された複数の動きベクトルＶｎそれぞれと基準動きベクトルＶｍとの間の角度を算出し、算出した角度が閾値ｓ以上となる動きベクトルＶｎの画像領域を、反射性領域に特定する。
【００２６】
【数３】
2014048276.tif 000005
【００２７】
ここで、閾値ｓは、角度の値を意味し、実数０に近い値とすることが好ましい。
【００２８】
なお、基準動きベクトルＶｍは、投影部１３が予め定められた方向にパタンをシフトした場合の動きベクトルの値であり、記憶部１１に予め記憶されているものとする。
【００２９】
また特定部１９は、算出部１７により算出された複数の変化量の大きさが第２閾値以下となる画像領域を、特定不可領域に設定する。ここで、特定不可領域とは、反射性領域であるか非反射性領域であるかを特定できない領域である。
【００３０】
特定部１９は、例えば、数式（４）に示すように、算出部１７により算出された複数の動きベクトルＶｎそれぞれの大きさが閾値ｔ以下となる動きベクトルＶｎの画像領域を、特定不可領域に設定する。
【００３１】
【数４】
2014048276.tif 000006
【００３２】
ここで、閾値ｔは、ベクトルの大きさを意味し、実数０に近い値とすることが好ましい。
【００３３】
図５は、本実施形態の領域特定装置１０で行われる領域特定処理の手順の流れの一例を示すフローチャートである。
【００３４】
まず、投影部１３は、予め定められた方向にパタンをシフトして投影する（ステップＳ１０１）。
【００３５】
続いて、撮像部１５は、投影部１３によりパタンが投影されている領域を撮像する（ステップＳ１０３）。
【００３６】
そして、撮像部１５が予め定められた数の画像を撮像し、撮像が終了するまで（ステップＳ１０５でＮｏ）、ステップＳ１０１〜Ｓ１０３を繰り返す。
【００３７】
撮像が終了すると（ステップＳ１０５でＹｅｓ）、算出部１７は、撮像部１５により撮像された複数の画像を用いて、未処理の画像領域について、パタンの動きベクトルを算出する（ステップＳ１０７）。
【００３８】
続いて、特定部１９は、算出されたパタンの動きベクトルの大きさが第２閾値以下であるか否かを判定する（ステップＳ１０９）。
【００３９】
算出されたパタンの動きベクトルの大きさが第２閾値以下である場合（ステップＳ１０９でＹｅｓ）、特定部１９は、パタンの動きベクトルが算出された画像領域を、特定不可領域に設定する（ステップＳ１１１）。
【００４０】
一方、算出されたパタンの動きベクトルの大きさが第２閾値以下でない場合（ステップＳ１０９でＮｏ）、特定部１９は、算出されたパタンの動きベクトルと基準動きベクトルとの差が第１閾値以上であるか否かを判定する（ステップＳ１１３）。
【００４１】
算出されたパタンの動きベクトルと基準動きベクトルとの差が第１閾値以上である場合（ステップＳ１１３でＹｅｓ）、特定部１９は、パタンの動きベクトルが算出された画像領域を、反射性領域に特定する（ステップＳ１１５）。
【００４２】
一方、算出されたパタンの動きベクトルと基準動きベクトルとの差が第１閾値以上でない場合（ステップＳ１１３でＮｏ）、特定部１９は、パタンの動きベクトルが算出された画像領域を、非反射性領域に特定する（ステップＳ１１７）。
【００４３】
そして、画像の全ての画像領域が処理されていれば（ステップＳ１１９でＹｅｓ）、処理は終了となり、画像に未処理の画像領域が残っていれば（ステップＳ１１９でＮｏ）、ステップ１０７へ戻る。
【００４４】
以上のように本実施形態によれば、予め定められた方向と異なる方向にパタンがシフトする領域を反射性領域に特定するので、コストをかけずに反射性領域を特定することができる。
【００４５】
特に本実施形態によれば、撮像環境に依存した輝度値などのデータが不要であるため、未知の撮像環境においても反射性領域を特定することができる。
【００４６】
これにより、反射性領域を特定した画像を用いて、三次元形状計測を行ったり、画像上で特定した反射性領域を基に、実環境において、可視光カメラ、レーザスキャナ、又はレーザレンジセンサなどの計測装置を用いた三次元形状計測を行ったりすることができる。
【００４７】
また本実施形態によれば、斜め線を交差させたパタンを用いているため、パタンを斜め方向にシフトさせることができ、パタンのシフト回数を減らすことができるとともに、投影部１３の座標系と撮像部１５の座標系との対応関係に若干のズレが生じた場合であっても対応できる。
【００４８】
（変形例１）
上記実施形態では、投影部１３が投影する幾何学的パタンとして、太さがランダムな複数の斜め線をランダムな位置で交差させた格子から構成される幾何学的パタンを例に取り説明したが、ランダムドットパタンや図６に示すようなチェスボードパタンであってもよい。
【００４９】
（変形例２）
上記実施形態では、投影部１３が投影するパタンとして幾何学的パタンを例に取り説明したが、図７に示すようなグラデーションパタン（輝度値が連続的に変化するパタン）としてもよい。
【００５０】
この場合、算出部１７は、撮像部１５により撮像された画像の画像領域毎に、パタンの輝度値の差分を算出すればよい。例えば、算出部１７は、数式（５）を用いて、撮像部１５により撮像された第ｔフレームの画像と直前のフレーム（第ｔ−１フレーム）の画像との輝度値の差分を算出すればよい。
【００５１】
【数５】
2014048276.tif 000007
【００５２】
ここで、（Δｕ，Δｖ）は、輝度値の差分を表し、Ｉｔ（ｉ，ｊ）は、第ｔフレームの画像の位置（ｉ，ｊ）の輝度値を示し、Ｉｔ−１（ｉ，ｊ）は、第ｔ−１フレームの画像の位置（ｉ，ｊ）の輝度値を示す。
【００５３】
また特定部１９は、数式（６）に示すように、算出部１７により算出された複数の輝度値の差分Ｖｎそれぞれと基準輝度値差分Ｖｍとの差を算出し、算出した差が閾値ｓ以上となる輝度値の差分Ｖｎの画像領域を、反射性領域に特定する。
【００５４】
【数６】
2014048276.tif 000008
【００５５】
ここで、閾値ｓは、輝度変化量の値が正か負かの境界値を意味し、実数０に近い値とすることが好ましい。
【００５６】
なお、基準輝度値差分Ｖｍは、投影部１３が予め定められた方向にパタンをシフトした場合の輝度値の差分値であり、記憶部１１に予め記憶されているものとする。
【００５７】
また特定部１９が、数式（４）を用いて、特定不可領域を設定する場合、閾値ｔは、輝度値の差分の大きさを意味し、実数０に近い値とすることが好ましい。
【００５８】
（変形例３）
上記実施形態では、投影部１３が投影するパタンとして幾何学的パタンを例に取り説明したが、図８に示すような正弦波パタンとしてもよい。
【００５９】
この場合、算出部１７は、撮像部１５により撮像された画像の画像領域毎に、パタンの位相を算出すればよい。ここで、位相とは、画素における正弦波の位相であり、縞パタンの投影素子上の位置、即ち、距離を表す。例えば、算出部１７は、数式（７）を用いて、撮像部１５により撮像された第ｔフレームの画像の画素毎のパタンの位相を算出すればよい。
【００６０】
【数７】
2014048276.tif 000009
【００６１】
ここで、φ（ｉ，ｊ）は、第ｔフレームの画像の位置（ｉ，ｊ）の位相を示し、Ｉｔ（ｉ，ｊ）は、第ｔフレームの画像の位置（ｉ，ｊ）の輝度値を示し、Ｉｔ−１（ｉ，ｊ）は、第ｔ−１フレームの画像の位置（ｉ，ｊ）の輝度値を示し、Ｉｔ−２（ｉ，ｊ）は、第ｔ−２フレームの画像の位置（ｉ，ｊ）の輝度値を示し、Ｉｔ−３（ｉ，ｊ）は、第ｔ−３フレームの画像の位置（ｉ，ｊ）の輝度値を示す。
【００６２】
また特定部１９は、数式（６）に示すように、算出部１７により算出された複数の位相Ｖｎそれぞれと基準位相Ｖｍとの差を算出し、算出した差が閾値ｓ以上となる位相Ｖｎの画像領域を、反射性領域に特定する。
【００６３】
ここで、閾値ｓは、位相値間の差分量を意味し、実数０に近い値とすることが好ましい。
【００６４】
なお、基準位相Ｖｍは、投影部１３が予め定められた方向にパタンをシフトした場合の位相の値であり、記憶部１１に予め記憶されているものとする。
【００６５】
また特定部１９が、数式（４）を用いて、特定不可領域を設定する場合、閾値ｔは、位相値の大きさを意味し、実数０に近い値とすることが好ましい。
【００６６】
（ハードウェア構成）
図９は、上記実施形態及び変形例の領域特定装置１０のハードウェア構成の一例を示すブロック図である。図９に示すように、上記実施形態及び変形例の領域特定装置１０は、ＣＰＵなどの制御装置９１と、ＲＯＭ（Read  Only  Memory）やＲＡＭ（Random  Access  Memory）などの記憶装置９２と、ＨＤＤ（Hard  Disk  Drive）やＳＳＤ（Solid  State  Drive）などの外部記憶装置９３と、ディスプレイなどの表示装置９４と、マウスやキーボードなどの入力装置９５と、通信Ｉ／Ｆ９６と、プロジェクタなどの投影装置９７と、デジタルカメラなどの撮像装置９８とを、備えており、通常のコンピュータを利用したハードウェア構成で実現できる。
【００６７】
上記実施形態及び変形例の領域特定装置１０で実行されるプログラムは、ＲＯＭ等に予め組み込んで提供される。
【００６８】
また、上記実施形態及び変形例の領域特定装置１０で実行されるプログラムを、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ、ＣＤ−Ｒ、メモリカード、ＤＶＤ、フレキシブルディスク（ＦＤ）等のコンピュータで読み取り可能な記憶媒体に記憶されて提供するようにしてもよい。
【００６９】
また、上記実施形態及び変形例の領域特定装置１０で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するようにしてもよい。また、上記実施形態及び変形例の領域特定装置１０で実行されるプログラムを、インターネット等のネットワーク経由で提供または配布するようにしてもよい。
【００７０】
上記実施形態及び変形例の領域特定装置１０で実行されるプログラムは、上述した各部をコンピュータ上で実現させるためのモジュール構成となっている。実際のハードウェアとしては、例えば、制御装置９１が外部記憶装置９３からプログラムを記憶装置９２上に読み出して実行することにより、上記各部がコンピュータ上で実現されるようになっている。
【００７１】
以上説明したとおり、上記実施形態及び変形例によれば、コストをかけずに反射性領域を特定することができる。
【００７２】
なお本発明は、上記各実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化することができる。また上記各実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成することができる。例えば、実施形態に示される全構成要素からいくつかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせても良い。
【００７３】
例えば、上記実施形態のフローチャートにおける各ステップを、その性質に反しない限り、実行順序を変更し、複数同時に実施し、あるいは実施毎に異なった順序で実施してもよい。
【符号の説明】
【００７４】
１０  領域特定装置
１１  記憶部
１３  投影部
１５  撮像部
１７  算出部
１９  特定部
９１  制御装置
９２  記憶装置
９３  外部記憶装置
９４  表示装置
９５  入力装置
９６  通信Ｉ／Ｆ
９７  投影装置
９８  撮像装置
【図１】
2014048276.tif 000010
【図２】
2014048276.tif 000011
【図３】
2014048276.tif 000012
【図４Ａ】
2014048276.tif 000013
【図４Ｂ】
2014048276.tif 000014
【図５】
2014048276.tif 000015
【図６】
2014048276.tif 000016
【図８】
2014048276.tif 000017
【図９】
2014048276.tif 000018
【図７】
2014048276.tif 000019