(57)【要約】【課題】  それぞれの対象物に対する距離計測をより高精度に実施するための技術を提供すること。【解決手段】  投影手段によってパターンが投影された対象物を撮像手段によって撮像した撮像画像を取得する。撮像画像を用いて、撮像手段から対象物までの距離を導出する。導出された距離に応じて、投影手段から投影されるパターンの明暗を制御するための第１のパラメータ、及び撮像手段の露光量を制御するための第２のパラメータ、のうち少なくともいずれか一方を調整する。【選択図】  図１
2015087244.tif 000002
【特許請求の範囲】
【請求項１】
投影手段によってパターンが投影された対象物を撮像手段によって撮像した撮像画像を取得する取得手段と、
前記撮像画像を用いて、前記撮像手段から前記対象物までの距離を導出する導出手段と、
前記導出された距離に応じて、前記投影手段から投影されるパターンの明暗を制御するための第１のパラメータ、及び前記撮像手段の露光量を制御するための第２のパラメータ、のうち少なくともいずれか一方を調整する調整手段と
を備えることを特徴とする画像処理装置。
【請求項２】
更に、
前記撮像画像の輝度に応じて前記第１のパラメータ及び前記第２のパラメータのうち少なくともいずれか一方を調整する第１の手段と、
前記第１の手段による調整の後、前記第１のパラメータが設定された前記投影手段によってパターンが投影された対象物を、前記第２のパラメータが設定された前記撮像手段が撮像した撮像画像を取得し、該取得した撮像画像を用いて、前記撮像手段から前記対象物までの距離を、基準距離として算出する第２の手段と
を備え、
前記調整手段は、前記基準距離に対する、前記導出手段が導出した距離の割合を用いて、前記第１のパラメータ及び前記第２のパラメータ、のうち少なくともいずれか一方を調整する
ことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記調整手段は、
前記第１のパラメータ若しくは前記第２のパラメータのうち調整対象に、前記割合を２乗した値を乗じることで、該調整対象を調整することを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記調整手段は、
前記第２のパラメータに含まれている露光時間を制御するためのパラメータに、前記割合を２乗した値を乗じ、前記第２のパラメータに含まれている撮像の回数を制御するためのパラメータに、前記割合を４乗した値を乗じることで、該第２のパラメータを調整することを特徴とする請求項２に記載の画像処理装置。
【請求項５】
前記調整手段は、
前記距離と、前記対象物の位置と、に応じて、前記第１のパラメータ及び前記第２のパラメータのうち少なくともいずれか一方を調整することを特徴とする請求項１に記載の画像処理装置。
【請求項６】
前記第１の手段は、
第１のパターンが投影された前記対象物の第１の撮像画像を構成する各画素の輝度値から成る輝度値波形と、該第１のパターンにおける明暗を反転させた第２のパターンが投影された前記対象物の第２の撮像画像を構成する各画素の輝度値から成る輝度値波形と、の交点を求め、
該交点の数に応じて、前記第１のパラメータ及び前記第２のパラメータのうち少なくともいずれか一方を調整する
ことを特徴とする請求項２に記載の画像処理装置。
【請求項７】
前記第１の手段は、前記第１の撮像画像若しくは前記第２の撮像画像において非影領域として特定した領域内の画素数に対する前記交点の数の割合が閾値以下であれば、前記第１のパラメータをパターンがより暗くなるように調整する、若しくは前記第２のパラメータを露光量がより小さくなるように調整することを特徴とする請求項６に記載の画像処理装置。
【請求項８】
前記第１の手段は、前記第１の撮像画像若しくは前記第２の撮像画像において非影領域として特定した領域内の画素数に対する前記交点の数の割合が閾値以下であれば、前記第１のパラメータをパターンがより暗くなるように調整する、且つ前記第２のパラメータを露光量がより小さくなるように調整することを特徴とする請求項６に記載の画像処理装置。
【請求項９】
前記第１の手段は、前記第１の撮像画像若しくは前記第２の撮像画像において非影領域として特定した領域内の画素数に対する前記交点の数の割合が閾値を超えている場合には、前記交点の数に対する、画素値が飽和している画素を参照して求めた交点の数の割合を第２の割合として求め、
該第２の割合が閾値を超えている場合には、前記第１のパラメータをパターンがより暗くなるように調整する、若しくは前記第２のパラメータを露光量がより小さくなるように調整する
ことを特徴とする請求項６乃至８のいずれか１項に記載の画像処理装置。
【請求項１０】
前記第１の手段は、前記第１の撮像画像若しくは前記第２の撮像画像において非影領域として特定した領域内の画素数に対する前記交点の数の割合が閾値を超えている場合には、前記交点の数に対する、画素値が飽和している画素を参照して求めた交点の数の割合を第２の割合として求め、
該第２の割合が閾値を超えている場合には、前記第１のパラメータをパターンがより暗くなるように調整する、且つ前記第２のパラメータを露光量がより小さくなるように調整する
ことを特徴とする請求項６乃至８のいずれか１項に記載の画像処理装置。
【請求項１１】
前記第１の手段は、前記第１の撮像画像若しくは前記第２の撮像画像において非影領域として特定した領域内の画素数に対する前記交点の数の割合が閾値を超えている場合には、前記交点の数に対する、画素値が飽和している画素を参照して求めた交点の数の割合を第２の割合として求め、
該第２の割合が閾値以下であれば、前記第１のパラメータをパターンがより明るくなるように調整する、若しくは前記第２のパラメータを露光量がより大きくなるように調整する
ことを特徴とする請求項６乃至１０のいずれか１項に記載の画像処理装置。
【請求項１２】
前記第１の手段は、前記第１の撮像画像若しくは前記第２の撮像画像において非影領域として特定した領域内の画素数に対する前記交点の数の割合が閾値を超えている場合には、前記交点の数に対する、画素値が飽和している画素を参照して求めた交点の数の割合を第２の割合として求め、
該第２の割合が閾値以下であれば、前記第１のパラメータをパターンがより明るくなるように調整する、且つ前記第２のパラメータを露光量がより大きくなるように調整する
ことを特徴とする請求項６乃至１０のいずれか１項に記載の画像処理装置。
【請求項１３】
画像処理装置が行う画像処理方法であって、
前記画像処理装置の取得手段が、投影手段によってパターンが投影された対象物を撮像手段によって撮像した撮像画像を取得する取得工程と、
前記画像処理装置の導出手段が、前記撮像画像を用いて、前記撮像手段から前記対象物までの距離を導出する導出工程と、
前記画像処理装置の調整手段が、前記導出された距離に応じて、前記投影手段から投影されるパターンの明暗を制御するための第１のパラメータ、及び前記撮像手段の露光量を制御するための第２のパラメータ、のうち少なくともいずれか一方を調整する調整工程と
を備えることを特徴とする画像処理方法。
【請求項１４】
コンピュータを、請求項１乃至１２の何れか１項に記載の画像処理装置の各手段として機能させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、距離計測技術に関するものである。
【背景技術】
【０００２】
対象物に対してプロジェクタなどの投影部を用いてパターン光を投影し、カメラなどの撮像部で撮像した画像をもとに、対象物に対する距離計測を行う距離計測装置が知られている。さらに、この距離計測装置による距離計測結果をもとに、山積みされた複数の対象物の位置・姿勢を推定する認識処理装置が知られている。認識処理装置による対象物の位置・姿勢の推定結果をロボット制御装置に出力することで、山積みされた対象物をロボットで自動的にピッキングするシステムを構築することができる。
【０００３】
多くの対象物が山積みされているシーンを想定すると、山積みの高さに応じて装置から対象物までの距離は変化する。装置から対象物までの距離が変化すると、投影パターン光の照度、および、撮影画像の明るさは変化する。具体的には、装置から対象物までの距離の２乗に比例して撮影画像の明るさは暗くなる。
【０００４】
さらに、対象物の撮影画像内における位置、および、投影範囲における位置に応じて周辺光量落ちが発生し、撮影画像の明るさは変化する。すなわち、画面の中央付近ほど明るく、周辺に行くに従って暗くなる。例えば、コサイン４乗則に基づいて撮影画像は暗くなる。
【０００５】
このように、対象物に対する距離や撮影画像内の位置に応じて、投影部から投影されるパターン光の撮影画像内における画像輝度階調値は様々に変化する。撮影画像が暗くなると、撮像素子のノイズの影響が増大し、距離計測の精度は低下する。距離計測精度の低下は、認識処理装置による対象物の位置・姿勢の推定精度をも低下させるため、ピッキングシステムにおいては、ロボットで対象物をピッキングし損ねるなどの失敗も招きかねない。
【０００６】
距離や撮影画像内の位置に依らずに精度よく距離計測を実施するためには、パターン光の明るさ調整と、撮像部の露光量調整を、距離や画面内の位置に応じて適切に行う必要がある。これらの調整が不適切だと、撮像画像におけるパターン光が飽和、あるいは、黒つぶれし、距離計測が不可能となる。また、調整が不十分だと、距離計測は可能であっても、その計測精度が低下する。
【０００７】
特許文献１では、周辺光量落ちの影響をキャンセルするように、中央部の透過率が低く、周辺にいくほど透過率が高くなる素子を配置する方法が開示されている。また、特許文献２では、概略距離の測定結果に基づいて、光源部の光出力を制御するレンジファインダ装置が開示されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２０００−２９２１３３号公報
【特許文献２】特開２０００−２４１１３１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
特許文献１で開示されている方法では、同一距離に置かれた対象物に対し、照明の照度が一定となるため、周辺光量落ちによる精度劣化を抑えることができる。一方、奥行きの異なる対象物に対しては照度が一定にはならない。そのため、特許文献１に開示されている方法では、精度劣化を招く。
【００１０】
特許文献２で開示されている方法では、概略距離に基づいて画面全体の露光量は調整されるものの、投影エリアの特定位置に置かれた対象物に対して最適な露光量調整が実現できているとはいえない。
【００１１】
本発明は、このような問題に鑑みてなされたものであり、それぞれの対象物に対する距離計測をより高精度に実施するための技術を提供する。
【課題を解決するための手段】
【００１２】
本発明の一様態は、投影手段によってパターンが投影された対象物を撮像手段によって撮像した撮像画像を取得する取得手段と、前記撮像画像を用いて、前記撮像手段から前記対象物までの距離を導出する導出手段と、前記導出された距離に応じて、前記投影手段から投影されるパターンの明暗を制御するための第１のパラメータ、及び前記撮像手段の露光量を制御するための第２のパラメータ、のうち少なくともいずれか一方を調整する調整手段とを備えることを特徴とする。
【発明の効果】
【００１３】
本発明の構成によれば、それぞれの対象物に対する距離計測をより高精度に実施することができる。
【図面の簡単な説明】
【００１４】
【図１】対象物ピッキングシステム８の機能構成例を示すブロック図。
【図２】４ビットの空間符号化法における投影パターン（パターン光）を示す図。
【図３】４ビットグレイコードを示す図。
【図４】撮像部２０、投影部３０、対象物５の関係を示す模式図。
【図５】パターン位置の特定精度について説明する図。
【図６】山積みにされた複数部品の高さの変化について説明する図。
【図７】撮像画像中の輝度値と撮像対象までの距離との関係について説明する図。
【図８】画像処理部４０が行う処理のフローチャート。
【図９】ステップＳ１０６の処理を説明する図。
【図１０】画像処理部４０が行う処理のフローチャート。
【図１１】三角測量補正量Ｃｚｔについて説明する図。
【図１２】対象物ピッキングシステム８の機能構成例を示すブロック図。
【図１３】対象物の位置姿勢と、該対象物に対する画角θと、の関係について説明する図。
【図１４】画像処理部４０が行う処理のフローチャート。
【図１５】ステップＳ３００における処理の詳細を示すフローチャート。
【図１６】ステップＳ３１０における処理の詳細を示すフローチャート。
【図１７】ステップＳ１０２における処理の詳細を示すフローチャート。
【図１８】画像処理部４０に適用可能な装置のハードウェア構成例を示すブロック図。
【発明を実施するための形態】
【００１５】
以下、添付図面を参照し、本発明の好適な実施形態について説明する。なお、以下説明する実施形態は、本発明を具体的に実施した場合の一例を示すもので、特許請求の範囲に記載の構成の具体的な実施例の１つである。
【００１６】
［第１の実施形態］
先ず、本実施形態に係る対象物ピッキングシステム８の機能構成例について、図１のブロック図を用いて説明する。対象物ピッキングシステム８は、画像処理装置（距離計測装置）１、画像処理装置１による距離計測結果を用いて対象物５の位置姿勢を認識する対象物位置姿勢認識部７、該認識の結果を用いてロボット６１を制御するロボット制御部６２、ロボット６１を有する。ロボット６１は、対象物５をピッキングするためのものである。
【００１７】
画像処理装置１は、対象物５にパターン光を投影する投影部３０と、パターン光が投影された対象物５を撮像する撮像部２０と、投影部３０及び撮像部２０を制御し、空間符号化法に基づいて対象物５に対する距離計測を行う画像処理部４０と、を有する。
【００１８】
先ず、投影部３０について説明する。投影部３０は、図１に示す如く、光源３１と、照明光学系３２と、表示素子３３と、投影絞り３４と、投影光学系３５と、を備える。
【００１９】
光源３１は、例えばハロゲンランプ、ＬＥＤなどの各種の発光素子である。照明光学系３２は、光源３１から照射された光を表示素子３３へと導く機能を持つ光学系であり、例えば、ケーラー照明や拡散板などの輝度の均一化に適した光学系が用いられる。表示素子３３は、供給されたパターンに応じて、照明光学系３２からの光の透過率、または、反射率を空間的に制御する機能を有する素子であり、例えば、透過型ＬＣＤ、反射型ＬＣＯＳ、ＤＭＤなどが用いられる。表示素子３３へのパターンの供給については、投影部３０内に保持されている複数種のパターンを順次表示素子３３に供給しても良いし、外部装置（例えば画像処理部４０）に保持されている複数種のパターンを順次取得して表示素子３３に供給しても良い。投影光学系３５は、表示素子３３から導かれた光（パターン光）を対象物５の特定位置に結像させるように構成された光学系である。投影絞り３４は、投影光学系３５のＦナンバーを制御するために用いられる。
【００２０】
次に、撮像部２０について説明する。撮像部２０は、図１に示す如く、撮像光学系２３と、撮像絞り２２と、撮像素子２１と、を備える。撮像光学系２３は、対象物５の特定位置を撮像素子２１上に結像させるよう構成された光学系である。撮像絞り２２は、撮像光学系２３のＦナンバーを制御するために用いられる。撮像素子２１は、例えばＣＭＯＳセンサ、ＣＣＤセンサなどの各種の光電変換素子である。なお、撮像素子２１で光電変換されたアナログ信号は、撮像部２０内の不図示の制御部により標本化ならびに量子化され、デジタル画像信号に変換される。更にこの制御部は、このデジタル画像信号から、各画素が輝度階調値（濃度値、画素値）を有する画像（撮像画像）を生成し、この撮像画像を適宜撮像部２０内のメモリや画像処理部４０に対して送出する。
【００２１】
なお、撮像部２０は、投影部３０が異なるパターン光を投影する度に対象物５を撮像する。すなわち、撮像部２０と投影部３０とは同期して動作しており、結果として撮像部２０は、それぞれ異なるパターン光が投影された対象物５の画像を撮像することができる。
【００２２】
次に、画像処理部４０について説明する。図１に示す如く、画像処理部４０は、調整部４１、概略距離算出部４２、距離算出部４３、パターン光明るさ制御部４４、撮像画像露光量制御部４５、を備える。
【００２３】
調整部４１は、撮像部２０が次回撮像する撮像画像の明暗を制御するためのパラメータを決定する。「撮像部２０が次回撮像する撮像画像の明暗を制御するためのパラメータ」には、撮像部２０に対するパラメータや、投影部３０に対するパラメータがあり、両方を決定しても良いし、一方を決定しても良い。
【００２４】
距離算出部４３は、投影部３０が複数種類のパターン光のそれぞれを投影するたびに撮像部２０が撮像した撮像画像を取得する。そして距離算出部４３は、該取得した撮像画像からデコードした空間コードと、該取得した撮像画像について特定したパターン位置と、を用いて、三角測量の原理で、撮像部２０（撮像光学系２３）から対象物５までの距離を計測（導出）する。概略距離算出部４２は、距離算出部４３が算出した距離から概略の距離を求める。
【００２５】
パターン光明るさ制御部４４は、調整部４１が「投影部３０に対するパラメータ」を決定した場合には、投影部３０から投影されるパターン光の明るさを、該パラメータに応じて制御する。パターン光の明るさを制御する方法は、例えば以下の３つの方法がある。
【００２６】
１つ目の方法は、光源３１の発光輝度を制御することである。ハロゲンランプの場合には、印加電圧を高くすると発光輝度は高くなる。ＬＥＤの場合には、流す電流を大きくすると発光輝度は高くなる。然るにこのような場合、「投影部３０に対するパラメータ」とは、光源３１の発光輝度を制御するためのパラメータ、となる。
【００２７】
２つ目の方法は、表示素子３３の表示階調値を制御することである。ＬＣＤの場合には、表示階調値を大きくすると透過率が高くなり、結果として、パターン光は明るくなる。ＬＣＯＳの場合には、表示階調値を大きくすると反射率が高くなり、結果として、パターン光は明るくなる。ＤＭＤの場合には、表示階調値を大きくすると、フレームあたりのＯＮの回数が増加するため、結果として、パターン光は明るくなる。然るにこのような場合、「投影部３０に対するパラメータ」とは、表示素子３３の表示階調値を制御するためのパラメータ、となる。
【００２８】
３つ目の方法は、投影絞り３４を制御することである。絞りを開けることで、パターン光は明るくなる。逆に絞りを絞ることで、パターン光は暗くなる。投影絞り３４を制御する場合には、投影光学系の被写界深度も変化するため、その影響を考慮する必要がある。具体的には、各投影絞りにおいて、パターン光の解像力を画像輝度波形のコントラストなどの指標をもとに評価し、距離計測を行う上で著しい精度劣化を生じないかの確認を行うとよい。然るにこのような場合、「投影部３０に対するパラメータ」とは、投影絞り３４を制御するためのパラメータ、となる。
【００２９】
撮像画像露光量制御部４５は、調整部４１が「撮像部２０に対するパラメータ」を決定した場合には、撮像部２０における撮像時の露光量を、該パラメータに応じて制御し、これにより、撮像画像の輝度階調値を制御する。撮像部２０の露光量を制御する方法は、例えば以下の３つの方法がある。
【００３０】
１つ目の方法は、撮像素子２１の露光時間（シャッタースピード）を制御することである。露光時間を長くすると、撮像画像の輝度階調値は高くなり、逆に露光時間を短くすると、輝度階調値は低くなる。然るにこのような場合、「撮像部２０に対するパラメータ」とは、撮像素子２１の露光時間（シャッタースピード）を制御するためのパラメータ、となる。
【００３１】
２つ目の方法は、撮像絞り２２を制御することである。絞りを開けることで、撮像画像の輝度階調値は高くなり、逆に絞りを絞ることで、撮像画像の輝度階調値は低くなる。撮像絞り２２を制御する場合には、撮像光学系の被写界深度も変化するため、その影響を考慮する必要がある。具体的には、各撮像絞りにおいて、パターン光の解像力を画像輝度波形のコントラストなどの指標をもとに評価し、距離計測を行う上で著しい精度劣化を生じないかの確認を行うとよい。然るにこのような場合、「撮像部２０に対するパラメータ」とは、撮像絞り２２を制御するためのパラメータ、となる。
【００３２】
３つ目の方法は、複数回同一パターンを投影して画像撮像を行い、その画像輝度値を加算する（パターンを投影する度に撮像した画像を合成する）方法である。露光時間を長くする方法の場合、センサのダイナミックレンジの関係で画像飽和が生じる。一方、上記のように、同一パターンを複数回投影し、該投影の度に撮像して得られるそれぞれの画像を加算して１つの合成画像を生成する方法であれば、画像飽和を防ぎつつ、露光量を増加させることができる。このような方法により得られる合成画像では、撮像素子のノイズ成分は低減する。具体的には、１枚撮像時の撮像素子のノイズ量をσｂとすると、Ｎ回撮影して加算した場合のノイズ量はσｂ／√Ｎとなる。複数回撮像して加算すると述べたが、複数回撮像した画像の平均画像を計算する方法でも同様の効果が得られる。
【００３３】
対象物５は、ランダムに山積みされた対象物の集合である。
【００３４】
対象物位置姿勢認識部７は、画像処理装置１による距離計測結果を用いて、ロボット６１が取り扱う座標系（ロボット座標系）における対象物５の位置姿勢（実際には、対象物５のうち撮像部２０から観察可能なそれぞれの対象物）を認識する。位置姿勢の認識方法には様々な周知の認識方法を採用することができる。例えば、距離計測結果に基づく３Ｄ点群データとＣＡＤモデルとのマッチング処理により、対象物の位置姿勢を認識する方法を採用しても良い。
【００３５】
なお、対象物位置姿勢認識部７は、画像処理装置１内のユニットとしても良いし、画像処理装置１とは別個の装置としても良い。何れにせよ、画像処理装置１による距離計測結果から対象物５の位置姿勢を認識し、該認識した位置姿勢をロボット制御部６２に送出することができるのであれば、如何なる形態を採用しても良い。
【００３６】
ロボット制御部６２は、対象物位置姿勢認識部７によって認識された位置姿勢に従ってロボット６１を制御し、該ロボット６１に位置姿勢を認識した対象物をピッキングさせる。ピッキングされた対象物は次の工程に運ばれる。対象物がピッキングされていくにつれて、山積みの高さは段々と低くなる。そのため、撮像部２０からの距離も大きくなる。
【００３７】
本実施形態では上記の通り、空間符号化法に基づいて距離計測を行うが、この空間符号化法には派生形が複数存在する。本実施形態では、特開２０１１−４７９３１号公報で開示されている方法を用いる。以下にその原理を簡単に説明する。
【００３８】
図２に、４ビットの空間符号化法における投影パターン（パターン光）を示す。図２（ａ）に示されている投影パターン（全点灯パターン）と図２（ｂ）に示されている投影パターン（全消灯パターン）は、影領域の検出と明暗判定閾値を決めるために使われる。図２（ｃ）〜（ｆ）の投影パターン（それぞれ１〜４ビットポジティブパターン）は、空間コードを決定するために使用される。図２（ｇ）の投影パターン（４ビットネガティブパターン）は、４ビットポジティブパターンとともにパターン位置の特定を高精度に行うために使用される。
【００３９】
４ビットの場合、空間コードの数は１６となる。投影パターンのビット数をＮとすると、空間コードの数は２Ｎとなる。図２に示した１ビットから４ビットの投影パターンは、グレイコード（ＧｒａｙＣｏｄｅ）と呼ばれる符号に基づいて、パターンの明暗（白黒）の配置を決定している。図３に４ビットグレイコードを示す。グレイコードは隣合うコードとのハミング距離が１となるパターンであるため、コードの判定を誤ったとしても誤差が最小に抑えられる。そのため、空間符号化法の投影パターンとして用いられることが多い。
【００４０】
次に、撮像画像から空間コードをデコードする方法について述べる。図２に示した１ビットから４ビットの投影パターンを計測対象物に対して投影し、それぞれの投影パターンが投影された計測対象物の画像を撮像する。そして、この撮像により得られたそれぞれの撮像画像中の各画素の輝度階調値から、該画素が投影パターンの明部が照射されている箇所であるのか、それとも暗部が照射されている箇所であるのかを判定する。この判定のための判定基準は、全点灯パターンと全消灯パターンの輝度階調値の平均値を用いることができる。すなわち、撮像画像中の各画素について、該画素の輝度階調値が平均値以上であれば、該画素を明部、平均値未満であれば該画素を暗部と判定する。明部と判定された画素にはビット値「１」を割り当て、暗部と判定された画素にはビット値「０」を割り当てる。このような処理を、１ビットから４ビットの投影パターンの撮像画像のそれぞれに対して行うことで、該撮像画像中の各画素に対して４ビット分のビット値（４ビット分のグレイコード）が与えられることになる。この４ビット分のグレイコードを空間コードに変換することで、投影部からの出射方向を一意に特定することができる。図３に示すように、例えばある画素に「０１１０」というコードが割り振られた場合、グレイコードは６となる。このグレイコードを空間コードに変換すると４となる。
【００４１】
図４に示すように、撮像画像の画素位置から撮像部（より詳しくは撮像部の主点位置）への光の入射方向が決まる。また、その画素位置の空間コードが決まると、投影部からの出射方向が特定される。２つの方向が決まると、三角測量の原理に基づき、計測対象物に対する距離計測が可能となる。以上が空間符号化法に基づく距離計測の原理である。
【００４２】
空間符号化法では、投影パターンの明暗を反転させたパターン光（図２の場合、（ｇ）の４ビットネガティブパターン）を併用することで、誤差を低減することができる。その誤差の低減方法について、引き続き図４を用いて説明する。
【００４３】
投影部からの出射方向は空間コード１つ分の幅だけ広がりを持つため、ΔＺで示した分だけ距離計測誤差を生む。その誤差を低減するために、最下位のビット（図２では４ビット目のビット）の投影パターン（図２の場合、（ｆ）の４ビットポジティブパターン）の明暗を反転させたネガティブパターン（図２の場合、（ｇ）の４ビットネガティブパターン）をさらに投影する。そして、ポジティブパターンを投影した対象物の撮像画像を構成する各画素の輝度値から成る輝度値波形と、ネガティブパターンを投影した対象物の撮像画像を構成する各画素の輝度値から成る輝度値波形と、の交点位置をパターン位置とする。このパターン位置は、上記の距離計測に使用する。交点位置は隣合う空間コードとの境界位置であるため、理想的には幅を持たない。現実には、デジタル画像信号として取り込む際に量子化と標本化を実施するとともに、撮像画像の輝度階調値に撮像素子ノイズが含まれるため、幅は０にはならないが、距離計測誤差を大きく低減できる。以上が距離計測誤差を低減させる方法の説明である。
【００４４】
次に、パターン位置の特定精度について、図５を用いて説明する。図５（ａ）は横軸に画像座標、縦軸に輝度階調値をとったグラフである。横軸の画像座標は、撮像画像中の投影パターンの縞の方向に対して垂直な方向における座標とした。実線は、ポジティブパターンを投影した対象物の撮像画像において、該ポジティブパターンの縞の方向に対して垂直な方向に沿った１ライン上の各画素の輝度値から成る輝度値波形（ポジティブパターン波形）を示す。点線は、ネガティブパターンを投影した対象物の撮像画像において、該ネガティブパターンの縞の方向に対して垂直な方向に沿った１ライン上の各画素の輝度値から成る輝度値波形（ネガティブパターン波形）を示す。なお、それぞれの波形は、それぞれの撮像画像で同じ位置のライン上の各画素の輝度値から成る輝度値波形である。太い実線で囲まれた領域のそれぞれの波形を拡大したものを図５（ｂ）に示す。
【００４５】
図５（ｂ）では、ポジティブパターン波形とネガティブパターン波形との交点近傍の４点（何れもポジティブパターン波形上若しくはネガティブパターン波形上）に着目している。交点位置から左側にある２点（何れも画像座標（横軸の値）は同じ）のうちポジティブパターン波形上の点における輝度階調値をＰＬ、ネガティブパターン波形上の点における輝度階調値をＮＬとしている。また、交点位置から右側にある２点（何れも画像座標（横軸の値）は同じ）のうちポジティブパターン波形上の点における輝度階調値をＰＲ、ネガティブパターン波形上の点における輝度階調値をＮＲとしている。また、輝度階調値の差分（ＰＬ−ＮＬ）の絶対値をＤＬとし、輝度階調値の差分（ＰＲ−ＮＲ）の絶対値をＤＲとする。
【００４６】
そして、交点近傍の輝度波形を直線近似する（輝度階調値ＰＬの点と輝度階調値ＰＲの点との間、輝度階調値ＮＬの点と輝度階調値ＮＲの点との間、のそれぞれを直線で近似する）と、それぞれの直線の交点位置Ｃ（画像座標）は、以下の（式１）で表される。
【００４７】
Ｃ＝Ｌ＋ＤＬ／（ＤＬ＋ＤＲ）  （式１）
ここで、Ｌは、輝度階調値ＰＬの点（輝度階調値ＮＬの点）の画像座標（横軸の値）である。以下では説明を簡単にするために、交点位置Ｃを、輝度階調値ＰＬの点（輝度階調値ＮＬの点）の画像座標を基準とした相対位置で説明するため、Ｃ＝ＤＬ／（ＤＬ＋ＤＲ）とする。
【００４８】
ここで、輝度階調値ＰＬ、ＰＲ、ＮＬ、ＮＲは撮像素子ノイズσだけ揺らぎを持つとする。このとき、交点位置も幅ΔＣだけ揺らぎをもつことになる。この幅が交点のサブピクセル位置推定誤差である。サブピクセル位置推定誤差ΔＣは下記式で求めることができる。
【００４９】
ΔＣ＝σ／（ＤＬ＋ＤＲ）  （式２）
交点のサブピクセル位置推定誤差ΔＣが小さいほど、距離計測誤差は小さくなる。（式２）から、サブピクセル位置推定誤差ΔＣを低減するためには、分母（輝度階調値の差分であるＤＬやＤＲの値）を大きくすればよいことがわかる。輝度階調値の差分ＤＬ（ＤＲ）は、輝度階調値に比例して大きくなる。さらに、撮像素子ノイズσのうち、ショットノイズ成分は輝度階調値の平方根の値に比例する特性を示すことが多いので、輝度階調値の大きさを大きくすると相対的にノイズσの影響は小さくなる。輝度階調値を大きくするためには、撮像部２０における露光量を大きくする、または、パターン光の明るさを明るくする、という２通りの方法がある。
【００５０】
この２通りの方法の両方を実行しても構わないし一方のみを実行しても構わない。本実施形態では一例として、撮像部２０における露光量を制御する（露光量を調整対象とする）方法のみを実行する。さらに、露光量の制御方法のうち、露光時間のみを制御することとする。しかし、露光量の制御は、露光時間の制御以外の方法によっても実現可能であり、特定の方法に限るものではない。露光量の制御方法のうち、撮像絞り２２を制御する方法にも適用できる。また、パターン光の明るさを制御する方法にも適用できる、光源３１の発光輝度の制御、表示素子３３の表示階調値の制御、投影絞り３４の制御にも適用できる。また、単一の制御量のみを制御する方法に限られるものでなく、複数の制御量を同時に制御することも可能である。
【００５１】
ノイズσの多くの成分がショットノイズだとすると、誤差を１／ｎにするためには、パターン光の明るさ、あるいは、撮像部２０における露光量をｎ２倍にする必要がある。例えば、誤差を１／２にするためには、パターン光の明るさ、あるいは、撮像部２０における露光量を４倍にする。露光量を４倍にすると、分母の（ＤＬ＋ＤＲ）は４倍になる。露光量を４倍にすると、分子のノイズσは画像輝度階調値の平方根の値に比例するので、√４、すなわち２倍になる。分子が２倍、分母が４倍となるため、誤差は１／２倍になることがわかる。
【００５２】
図６（ａ）〜（ｃ）に示すように、山積みにされた複数部品（対象物５）のうち、位置姿勢が認識された部品をピッキングするというケースでは、部品が取り除かれるとともに山積みの高さが変化する。山積みの高さが高い場合には、図６（ａ）に示す如く、撮像部２０から撮像対象までの距離は近く、山積みの高さが低い場合には、図６（ｃ）に示す如く、撮像部２０から撮影対象までの距離は遠くなる。ここで、撮像部２０による撮像画像中に写っている部品の輝度値は、撮像部２０から撮像対象までの距離の２乗に比例して低下する。
【００５３】
ここで、撮像部２０による撮像画像中の輝度値と、撮像部２０から撮像対象までの距離と、の関係について、図７を用いて説明する。ここでは、図７（ｂ）に示す如く、撮像部２０の露光量が、撮像部２０から撮像対象までの距離Ｚｍ（中距離）で最適となるように設定されているものとする。図７（ｂ）においては、全点灯パターンの波形やポジティブパターン、ネガティブパターンの波形において一部飽和レベルを超えているが、パターン位置の特定に使用する交点位置近傍の輝度階調値は飽和レベルを超えていない。そのため、交点位置の特定も可能であるし、交点近傍の輝度階調値も高い値となるため、サブピクセル位置推定誤差を低減することができる。
【００５４】
ここで、撮像部２０から撮像対象までの距離が、Ｚｍよりも小さいＺｎ（近距離）における輝度階調値の波形を図７（ａ）示す。この波形の中央部では、飽和レベルを超えている。図７（ａ）では便宜上、飽和レベルを超えた波形を図示したが、実際には飽和レベルを超えた波形は飽和レベルの輝度階調値に頭打ちされて出力される。図７（ａ）では、交点位置が飽和レベルの輝度階調値に頭打ちされるため、交点位置の特定が不可能となる。
【００５５】
次に、撮像部２０から撮像対象までの距離が、Ｚｍよりも大きいＺｆ（遠距離）における輝度階調値の波形を図７（ｃ）示す。図７（ｃ）の状態では、輝度階調値の波形がすべて飽和レベルには達しておらず、距離計測精度が低精度であるといえる。
【００５６】
すなわち、以上の説明から、近距離〜中距離〜遠距離において距離計測を確実且つ高精度に行うためには、「撮像部２０が次回撮像する撮像画像の明暗を制御するためのパラメータ」を、距離に応じて調整することが必要であることが分かる。
【００５７】
次に、画像処理部４０が、撮像部２０の露光量（露光時間）を調整するために行う処理について、同処理のフローチャートを示す図８を用いて説明する。図８のフローチャートに従った処理は、基準となる露光量（基準露光量）及び該基準露光量で撮像した撮像画像を用いて計測した距離（基準距離）を求める処理（ステップＳ１００）と、該露光量を調整する処理（ステップＳ１１０）と、を有する。
【００５８】
先ず、ステップＳ１００における処理について説明する。先ず、ステップＳ１０１では、撮像画像露光量制御部４５は、現在設定されている露光量のパラメータに応じて、撮像部２０の露光量を制御する。また、パターン光明るさ制御部４４は、現在設定されているパターン光の明るさのパラメータに応じて、投影部３０から投影されるパターン光の明るさを制御する。
【００５９】
そして更に、ステップＳ１０１では、投影部３０は、上記の複数枚の投影パターンから１つずつ順次選択し、該選択した投影パターンを対象物５に対して照射し、撮像部２０は、該対象物５を撮像する。投影パターンの種別は、全点灯パターン、全消灯パターン、ポジティブパターン（図２の場合、（ｃ）〜（ｆ）の４つのポジティブパターン）、ネガティブパターン（図２の場合、（ｇ）のネガティブパターン）の４種類である。４ビットの空間符号化法の場合、ポジティブパターンとして４ビットポジティブパターンを、ネガティブパターンとして４ビットネガティブパターンを使用する。撮像部２０は、選択されたパターン光が投影される度に対象物５を撮像する。
【００６０】
ステップＳ１０２では、調整部４１は、撮像部２０が撮像した撮像画像を用いた明暗判定を行う。ここで、ステップＳ１０２における処理の詳細について、図１７のフローチャートを用いて説明する。調整部４１は、４枚の撮像画像Ｉｎ１〜Ｉｎ４を使用して明暗判定を行い、Ｏｕｔ１：暗判定、Ｏｕｔ２：明判定、の何れか一方を、明暗判定の結果として出力する。ここで、撮像画像Ｉｎ１は、全点灯パターンが投影された対象物５の撮像画像、撮像画像Ｉｎ２は、全消灯パターンが投影された対象物５の撮像画像である。また、撮像画像Ｉｎ３は、ポジティブパターンが投影された対象物５の撮像画像、撮像画像Ｉｎ４は、ネガティブパターンが投影された対象物５の撮像画像である。
【００６１】
また、明暗判定は２段階で実施される。第１段階目では、撮像画像Ｉｎ１と撮像画像Ｉｎ２とを使用して大まかな明暗判定を行う。第２段階目では、撮像画像Ｉｎ３と撮像画像Ｉｎ４とを用いて、詳細な明暗判定を行う。なお、本実施形態では、このように、第１段階及び第２段階の２段階構成で明暗判定を行うものとして説明するが、第１段階目の明暗判定を省略し、第２段階目の明暗判定のみを行うようにしても構わない。
【００６２】
先ず、第１段階目の明暗判定について説明する。
【００６３】
ステップＳ４２０１では、調整部４１は、撮像画像Ｉｎ１若しくは撮像画像Ｉｎ２に対して調整領域を設定する。例えば、撮像画像Ｉｎ１若しくは撮像画像Ｉｎ２の何れか一方を表示対象画像として不図示の表示部に表示させ、ユーザが不図示の操作部を操作して、表示対象画像中に写っている対象物５の領域を調整領域として指定（設定）するようにしても構わない。もちろん、調整領域の設定方法はこれに限るものではなく、撮像画像Ｉｎ１若しくは撮像画像Ｉｎ２中の対象物５の領域が予め決まっている若しくは認識処理により決定した場合は、ユーザ操作を介することなく、対象物５の領域を調整領域として設定しても良い。なお、一方の撮像画像に対して調整領域を設定すると、他方の撮像画像中の同位置にも調整領域が設定されたものとする。次に、ステップＳ４２０２では、調整部４１は、調整領域内の画素数を、「調整領域画素数Ｘ」としてカウントする。
【００６４】
次に、ステップＳ４２０３では、調整部４１は、撮像画像Ｉｎ１中の調整領域若しくは撮像画像Ｉｎ２中の調整領域から、影とおぼしき領域（影領域）を検出する。影領域の検出方法には、例えば、次のような方法がある。即ち、撮像画像Ｉｎ１中の調整領域内の各画素と撮像画像Ｉｎ２中の調整領域内の各画素とで位置的に対応する画素間の輝度階調値の差分値を計算し、差分値が予め設定された閾値（影領域閾値）を下回る画素位置における画素から成る領域を影領域と判定する。ただし、この判定方法だけでは、撮像画像Ｉｎ２中の調整領域内の輝度階調値が飽和レベルに近い、あるいは、飽和レベルに達しているケースにおいても、上記の差分値は小さくなるので、影領域と判定してしまう。このようなケースに対処するために、撮像画像Ｉｎ２の輝度階調値に影領域閾値の値を加算した値が飽和レベルを超える場合には、影領域から除外するという判定式をさらに導入するとよい。もちろん、画像から影領域を特定する方法は上記の方法に限るものではない。
【００６５】
ステップＳ４２０４では、調整部４１は、ステップＳ４２０２でカウントした調整領域画素数から、ステップＳ４２０３で検出した影領域内の画素数を差し引いた残りの画素数を、非影領域の画素数Ｙとして求める。非影領域の画素数とは、調整領域から影領域を除いた残りの領域内の画素数である。
【００６６】
ステップＳ４２０５では、調整部４１は、非影領域の画素数Ｙを調整領域内の画素数Ｘで割った値（調整領域内の画素数Ｘに対する非影領域の画素数Ｙの割合）が、予め設定されている閾値Ａを超えているか否かを判断する。調整領域内に影領域が多く占めている場合には、Ｙ／Ｘは比較的小さな値をとることになる。然るに、Ｙ／Ｘ≦閾値Ａ（閾値以下）であれば、調整領域内には影領域が多く占めていることになり、その結果、調整部４１は、明暗判定の結果として「暗判定（Ｏｕｔ１）」を出力する。
【００６７】
一方、調整領域内に非影領域が多く占めている場合には、Ｙ／Ｘは比較的大きな値をとることになる。然るに、Ｙ／Ｘ＞閾値Ａであれば、第２段階目の明暗判定を実行すべく、処理はステップＳ４２０６に進む。
【００６８】
続いて、第２段階目の明暗判定について説明する。第２段階目の明暗判定では、上記の如く、撮像画像Ｉｎ３と撮像画像Ｉｎ４とを用いる。ステップＳ４２０６では、調整部４１は、撮像画像Ｉｎ３（撮像画像Ｉｎ４）における調整領域内で、上記の交点位置を、パターン位置として推定する処理を行う。例えば、撮像画像Ｉｎ３内の画素位置（ｘ−１，ｙ）における輝度階調値をＰ１、撮像画像Ｉｎ３内の画素位置（ｘ＋１，ｙ）における輝度階調値をＰ２とする。また、撮像画像Ｉｎ４内の画素位置（ｘ−１，ｙ）における輝度階調値をＱ１、撮像画像Ｉｎ４内の画素位置（ｘ＋１，ｙ）における輝度階調値をＱ２とする。このとき、「Ｐ１＞Ｑ１ならばＰ２＜Ｑ２」（条件１）若しくは「Ｐ１＜Ｑ１ならばＰ２＞Ｑ２」（条件２）が満たされていれば、画素位置（ｘ、ｙ）は交点位置と判断する。一方、条件１及び条件２の何れも満たされていない場合には、画素位置（ｘ、ｙ）は交点位置ではないと判断する。このようにして、撮像画像Ｉｎ３（撮像画像Ｉｎ４）における調整領域内の全ての画素位置（ｘ、ｙ）についてこのような条件判定を行うことで、各画素位置が交点位置か否かを判断することができる。ステップＳ４２０７では、調整部４１は、ステップＳ４２０６で推定した交点位置（計測画素）の数を、「計測画素数Ｚ」としてカウントする。
【００６９】
ステップＳ４２０８では、調整部４１は、計数画素数Ｚを非影領域の画素数Ｙで割った値（非影領域の画素数Ｙに対する計数画素数Ｚの割合、即ち、計測画素の検出量に相当）が、予め設定されている閾値Ｂを超えているか否かを判断する。非影領域の画素数に対する交点位置の数の割合が低い場合、調整領域内の多くの画素の輝度階調値が飽和レベルに達しているために、交点位置があまり多く得られていないと考えられる。例えば、図７（ａ）の中央付近では、交点位置における画素の輝度階調値は何れも飽和レベルを超えており、結果としてこれら交点位置を求めることはできないために、Ｚ／Ｙの値は比較的小さな値となる。然るに、Ｚ／Ｙ≦閾値Ｂであれば、調整部４１は、明暗判定の結果として「明判定（Ｏｕｔ２）」を出力する。一方、Ｚ／Ｙ＞閾値Ｂであれば、交点位置の多くが算出可能であるために、処理はステップＳ４２０９に進む。
【００７０】
ステップＳ４２０９では、調整部４１は、各交点位置について、該交点位置の近傍位置にある画素の輝度階調値が飽和しているか否かを判断する。より詳しくは、先ず、交点位置に近接する、ポジティブパターン波形上の２点及びネガティブパターン波形上の２点の計４点（図５（ｂ）の場合、ＰＲ，ＰＬ，ＮＲ，ＮＬのそれぞれの輝度階調値を有する４点）の輝度階調値を参照する。そしてこの４点のうち、輝度階調値が飽和レベル以上となる点が１以上あれば、交点位置における画素を、飽和計測画素と判定する。このような処理を、求めたそれぞれの交点位置について行う。ステップＳ４２１０では、調整部４１は、ステップＳ４２０９で飽和計測画素として判定された画素の個数を、「飽和計測画素数ｇ」としてカウントする。
【００７１】
ステップＳ４２１１では、調整部４１は、「飽和計測画素数ｇ」を「計測画素数Ｚ」で割った値（計測画素数Ｚに対する飽和計測画素数ｇの割合）が、予め設定されている閾値Ｃを超えているか否かを判断する。そして調整部４１は、ｇ／Ｚ＞閾値Ｃの場合には、明暗判定の結果として「明判定（Ｏｕｔ２）」を出力し、ｇ／Ｚ≦閾値Ｃの場合には、明暗判定の結果として「暗判定（Ｏｕｔ１）」を出力する。
【００７２】
なお、ステップＳ１０２において行う撮像画像の明暗判定処理は、図１７のフローチャートに従った処理に限るものではなく、他の方法を採用しても構わない。
【００７３】
ステップＳ１０３では、調整部４１は、ステップＳ１０２での判定結果が「明」の場合には、撮像部２０の現在の露光量をより小さい露光量に調整すべく（現在の露光時間をより短い露光時間に調整すべく）、撮像部２０のパラメータを調整する。一方、調整部４１は、ステップＳ１０２での判定結果が「暗」の場合には、撮像部２０の現在の露光量をより大きい露光量に調整すべく（現在の露光時間をより長い露光時間に調整すべく）、撮像部２０のパラメータを調整する。露光時間は、例えば、２分探索法などで調整するとよい。そして調整部４１は、調整した撮像部２０のパラメータを、撮像画像露光量制御部４５に設定するので、撮像画像露光量制御部４５は次回から、この調整されたパラメータに従って撮像部２０を制御することになる。
【００７４】
そして、処理はステップＳ１０１に戻り、ステップＳ１０１では、ステップＳ１０３で調整された露光時間に基づいた撮像が行われる。このようにして、ステップＳ１０１〜ステップＳ１０３の処理を複数回繰り返して行い、ステップＳ１０４では、調整部４１は、該繰り返しの結果として得られる露光量（ここでは露光時間）を、基準露光量Ｅｘｂとして得る。
【００７５】
ステップＳ１０５では、撮像画像露光量制御部４５は、基準露光量Ｅｘｂに応じて、撮像部２０の露光量を制御する。また、パターン光明るさ制御部４４は、現在設定されているパターン光の明るさのパラメータに応じて、投影部３０から投影されるパターン光の明るさを制御する。そして、投影部３０は、上記の複数枚の投影パターンから１つずつ順次選択し、該選択した投影パターンを対象物５に対して照射し、撮像部２０は、該対象物５を撮像する。そして、距離算出部４３は、撮像部２０によって撮像されたそれぞれの撮像画像を用いて上記の処理を行うことで、撮像画像中に写っているそれぞれの対象物に対する距離を計測する。
【００７６】
ステップＳ１０６では、概略距離算出部４２は、撮像画像中に写っているそれぞれの対象物に対する距離の代表的な距離である基準距離（基準概略距離）Ｚｂを求める。撮像画像中に写っているそれぞれの対象物に対する距離から基準距離Ｚｂを求めるための処理について、図９を用いて説明する。図９（ａ）は、山積み高さが高い場合における基準距離Ｚｂの一例を示しており、図９（ｂ）は、山積み高さが中程度の場合における基準距離Ｚｂの一例を示している。例えば、撮像画像中に写っているそれぞれの対象物に対する距離の平均距離を基準距離としても良いし、最大値、最小値、若しくは中央値等を基準距離として採用しても構わない。
【００７７】
次に、ステップＳ１１０における処理について説明する。ステップＳ１１１で撮像画像露光量制御部４５は、現在設定されている露光量（１回目のステップＳ１１１では基準露光量Ｅｘｂ、２回目以降のステップＳ１１１では前回のステップＳ１１６で調整した露光量Ｅｘｔ）に応じて、撮像部２０の露光量を制御する。また、パターン光明るさ制御部４４は、現在設定されているパターン光の明るさのパラメータに応じて、投影部３０から投影されるパターン光の明るさを制御する。そして、投影部３０は、上記の複数枚の投影パターンから１つずつ順次選択し、該選択した投影パターンを対象物５に対して照射し、撮像部２０は、該対象物５を撮像する。
【００７８】
ステップＳ１１２では、距離算出部４３は、撮像部２０によって撮像されたそれぞれの撮像画像を用いて上記の処理を行うことで、撮像画像中に写っているそれぞれの対象物に対する距離を計測する。
【００７９】
ステップＳ１１３では、概略距離算出部４２は、上記のステップＳ１０６と同様の処理を行うことで、撮像画像中に写っているそれぞれの対象物に対する距離の代表的な距離（概略距離）Ｚｔを求める。
【００８０】
ステップＳ１１４では、調整部４１は、基準距離Ｚｂと距離Ｚｔと、を用いて、現在設定されている露光量の調整量（光学補正量）Ｃｚｏを求める。ここでは、画像中の輝度値が距離の２乗に比例して暗くなるという光学特性をもとに、光学補正量Ｃｚｏを算出する。具体的には以下の式（３）を計算することで、光学補正量Ｃｚｏを求める。
【００８１】
Ｃｚｏ  ＝  （Ｚｔ／Ｚｂ）２  （式３）
ステップＳ１１５では、調整部４１は、基準露光量Ｅｘｂを、光学補正量Ｃｚｏを用いて調整する。例えば、以下の（式４）に従って調整する。
【００８２】
Ｃｚｏ×Ｅｘｂ→Ｅｘｔ  （式４）
そして、ステップＳ１１６では、調整部４１は、ステップＳ１１５で調整した露光量Ｅｘｔを、撮像画像露光量制御部４５に設定する。そして処理はステップＳ１１１に戻り、以降の処理が繰り返される。
【００８３】
このように、本実施形態によれば、山積みの高さが高いケースにおいては露光量が小さく設定され、山積みの高さが低いケースにおいては露光量が大きく設定されるため、山積みの高さに応じて適切な露光量を設定することができる。つまり、山積み高さの変化に対して、撮像画像の輝度値をほぼ一定に保つことができる。
【００８４】
なお、本実施形態では、空間符号化法に基づいて対象物５に対する距離計測を行ったが、対象物５に対する距離計測を他の方法で実施しても構わない。例えば、光切断法、位相シフト法など種々のパターン投影に基づく距離計測方法を採用しても構わない。
【００８５】
［第２の実施形態］
本実施形態では、光学補正量だけでなく、三角測量の誤差も加味して、露光量の調整を行う。以下では、第１の実施形態との相違点について重点的に説明し、以下で特に触れない限りは、第１の実施形態と同様であるものとする。
【００８６】
画像処理部４０が、撮像部２０の露光量を調整するために行う処理について、同処理のフローチャートを示す図１０を用いて説明する。図１０のフローチャートにおいて、図８に示した処理ステップと同じ処理ステップには同じステップ番号を付しており、該処理ステップに係る説明は省略する。
【００８７】
ステップＳ２１５では、調整部４１は、基準距離Ｚｂと距離Ｚｔと、を用いて、三角測量の誤差の調整量（三角測量補正量）Ｃｚｔを求める。ここでは、三角測量の誤差が距離の２乗に比例して大きくなるという特性に基づき補正量を算出する。なお、図１１に示すように、距離がｎ倍になると、距離測定の誤差がｎ２倍になるため、計測誤差を一定に保つためには、サブピクセル位置推定誤差ΔＣを１／ｎ２にする必要がある。前述したが、サブピクセル推定誤差ΔＣを１／ｎ２倍にするためには、パターン光の明るさ、若しくは露光量をｎ４倍にする必要がある。Ｃｚｔは以下の（式５）に従って求めることができる。
【００８８】
Ｃｚｔ＝（Ｚｔ／Ｚｂ）４    （式５）
ステップＳ２１６では、調整部４１は、基準露光量Ｅｘｂを光学補正量Ｃｚｏ及び三角測量補正量Ｃｚｔを用いて調整する。例えば、以下の（式６）に従って調整する。
【００８９】
Ｃｚｏ×Ｃｚｔ×Ｅｘｂ→Ｅｘｔ  （式６）
そして、ステップＳ２１７では、調整部４１は、ステップＳ２１６で調整した露光量Ｅｘｔを、撮像画像露光量制御部４５に設定する。そして処理はステップＳ１１１に戻り、以降の処理が繰り返される。
【００９０】
なお、基準距離Ｚｂと距離Ｚｔとの比が大きい場合に、露光量Ｅｘｔ＝露光時間とし、露光時間を（Ｃｚｏ×Ｃｚｔ）倍すると、撮像画像の飽和が発生するケースも起こる。このような場合には、Ｅｘｔのうち、露光時間を光学補正量Ｃｚｏ倍にし、撮像する画像の枚数をＣｚｔ倍にすると、撮像画像の飽和が発生せずに、計測誤差を低減することができる。
【００９１】
このように、本実施形態によれば、山積みの高さが高いケースにおいては露光量が小さく設定され、山積みの高さが低いケースにおいては露光量が大きく設定されるため、山積みの高さに応じて適切な露光量を設定することができる。つまり、山積み高さの変化に対して、撮像画像の輝度値をほぼ一定に保つことができる。また、三角測量の誤差も加味されているため、山積み高さの変化に対して、撮像画像の明るさと、計測誤差をほぼ一定に保つことができる
［第３の実施形態］
本実施形態に係る対象物ピッキングシステム８の機能構成例について、図１２のブロック図を用いて説明する。図１２において、図１に示した機能部と同じ機能部には同じ参照番号を付しており、該機能部に係る説明は省略する。図１２に示した構成は、対象物位置姿勢認識部７により認識された位置姿勢を、ロボット制御部６２だけでなく、調整部４１にも供給する点が、図１の構成と異なる。
【００９２】
本実施形態では、対象物に対する距離の変化による光量変化だけでなく、周辺の光量落ちによる光量変化についても考慮する。そのため、調整部４１において、対象物が撮像画像内のどこに位置するのか（言い換えると、対象物が存在する範囲に対する画角が何度であるか）を把握する必要がある。従って、対象物が撮像画像内のどこに位置するのかを把握するために、対象物位置姿勢認識部７からの出力結果を用いる。
【００９３】
以下では、第１の実施形態との相違点について重点的に説明し、以下で特に触れない限りは、第１の実施形態と同様であるものとする。先ず、図１３を用いて、対象物の位置姿勢と、該対象物に対する画角θと、の関係について述べる。ここで、対象物位置姿勢認識部７から出力された対象物の位置が（Ｘｒ，Ｙｒ，Ｚｒ）であるとする。座標原点Ｏは、画像処理部４０が取り扱う座標系の原点と一致させた。奥行きＺｒにおけるＸＹ平面内において、Ｚ軸から対象物までの距離をｒとするとｒは以下の（式７）で算出される。
【００９４】
ｒ＝√（Ｘｒ２＋Ｙｒ２）  （式７）
画角θは、ｒとＺｒを用いて以下の（式８）で算出することができる。
【００９５】
θ＝ｔａｎ−１（ｒ／Ｚｒ）  （式８）
すなわち、対象物の位置（Ｘｒ，Ｙｒ，Ｚｒ）と、画角θと、の関係は、（式８）から把握することができる。
【００９６】
次に、画像処理部４０が、撮像部２０の露光量を調整するために行う処理について、同処理のフローチャートを示す図１４を用いて説明する（一部、対象物位置姿勢認識部７が実行する処理も含まれている）。図１４のフローチャートに従った処理は、基準露光量Ｅｘｂ、基準距離Ｚｂ、基準面内位置θｂを求める処理（ステップＳ３００）と、対象物毎に該露光量を調整する処理（ステップＳ３１０）と、を有する。
【００９７】
先ず、ステップＳ３００における処理の詳細について、図１５のフローチャートを用いて説明する。なお、図１５（ａ）に示したフローチャート及び図１５（ｂ）に示したフローチャートは何れも、ステップＳ３００に適用可能な処理のフローチャートである。また、図１５（ａ）及び図１５（ｂ）において、図８に示した処理ステップと同じ処理ステップには同じステップ番号を付しており、該処理ステップに係る説明は省略する。
【００９８】
先ず、図１５（ａ）のフローチャートに従った処理について説明する。
【００９９】
ステップＳ３０６では、撮像画像露光量制御部４５は、基準露光量Ｅｘｂに応じて、撮像部２０の露光量を制御する。また、パターン光明るさ制御部４４は、現在設定されているパターン光の明るさのパラメータに応じて、投影部３０から投影されるパターン光の明るさを制御する。そして、投影部３０は、上記の複数枚の投影パターンから１つずつ順次選択し、該選択した投影パターンを対象物５に対して照射し、撮像部２０は、該対象物５を撮像する。そして、距離算出部４３は、撮像部２０によって撮像されたそれぞれの撮像画像を用いて上記の処理を行うことで、撮像画像中に写っているそれぞれの対象物に対する距離を計測する。
【０１００】
対象物位置姿勢認識部７は、距離算出部４３が算出したそれぞれの対象物に対する距離を用いて、該対象物の位置姿勢を認識するので、調整部４１は、対象物位置姿勢認識部７が認識したそれぞれの対象物の位置（Ｘｒ，Ｙｒ，Ｚｒ）を取得する。
【０１０１】
ステップＳ３０７では、調整部４１は、撮像画像中に写っているそれぞれの対象物に対する基準距離Ｚｂとして、該対象物のＺｒを設定する。
【０１０２】
ステップＳ３０８では、調整部４１は、撮像画像中に写っているそれぞれの対象物に対する基準面内位置θｂを、上記の（式７）及び（式８）を元にして、以下の（式９）を計算する。
【０１０３】
θｂ＝ｔａｎ−１（√（Ｘｒ２＋Ｙｒ２）／Ｚｒ）  （式９）
次に、図１５（ｂ）のフローチャートに従った処理について説明する。図１５（ｂ）では、山積み全体の概略距離を基準概略距離Ｚｂとし、撮像画像の中心（画角０度の位置）を基準画角θｂとする。然るに、ステップＳ３０８’では、調整部４１は、撮像画像中に写っているそれぞれの対象物に共通の基準面内位置θｂを０に設定する。
【０１０４】
次に、ステップＳ３１０における処理の詳細について、同処理のフローチャートを示す図１６を用いて説明する。なお、図１６において、図８に示した処理ステップと同じ処理ステップには同じステップ番号を付しており、該処理ステップに係る説明は省略する。
【０１０５】
ステップＳ３１３では、対象物位置姿勢認識部７は、ステップＳ１１１で撮像された撮像画像中のそれぞれの対象物について距離算出部４３が算出した距離を用いて、該対象物の位置姿勢を認識する。このとき、対象物位置姿勢認識部７は、前回調整部４１に出力した対象物（候補１）の位置をロボット制御部６２に対して送出すると共に、まだ出力していない１つの対象物（候補２）の位置を調整部４１に出力する。ロボット制御部６２には、位置だけでなく姿勢も加えて出力しても良い。
【０１０６】
なお、対象物位置姿勢認識部７による第１回目の出力では、候補１に該当する対象物がないので、認識したそれぞれの対象物の位置のうちＺｒが最も小さいものを候補１とすればよい。
【０１０７】
例えば、対象物位置姿勢認識部７が、対象物１の位置姿勢、対象物２の位置姿勢、対象物３の位置姿勢、対象物４の位置姿勢を認識したとする。ここで、対象物１〜４のそれぞれのＺｒのうち対象物３のＺｒが最も小さいとする。このとき、対象物位置姿勢認識部７は、第１回目に、候補１としての対象物３の位置（姿勢を加えても良い）をロボット制御部６２に出力すると共に、候補２としての対象物１の位置を調整部４１に出力する。第２回目には、候補１としての対象物１の位置（姿勢を加えても良い）をロボット制御部６２に出力すると共に、候補２としての対象物２の位置を調整部４１に出力する。第３回目には、候補１としての対象物２の位置（姿勢を加えても良い）をロボット制御部６２に出力すると共に、候補２としての対象物３の位置を調整部４１に出力する。第４回目には、候補１としての対象物３の位置（姿勢を加えても良い）をロボット制御部６２に出力すると共に、候補２としての対象物４の位置を調整部４１に出力する。そして第５回目には、対象物４の位置をロボット制御部６２に出力する。
【０１０８】
このようにして、第２候補の位置を調整部４１に出力し、前回第２候補だった対象物を今回の第１候補とし、該今回の第１候補の位置（姿勢を加えても良い）をロボット制御部６２に出力する。
【０１０９】
ステップＳ３１４では、調整部４１は、第２候補の位置（Ｘｒ２，Ｙｒ２，Ｚｒ２）を受けると、概略距離ＺｔにＺｒ２を設定する。
【０１１０】
ステップＳ３１５では、調整部４１は、基準距離Ｚｂと概略距離Ｚｔと、を用いて、上記の（式３）を計算することで、光学補正量Ｃｚｏを求める。
【０１１１】
ステップＳ３１６では、調整部４１は、基準距離Ｚｂと概略距離Ｚｔと、を用いて、上記の（式５）を計算することで、三角測量補正量Ｃｚｔを求める。
【０１１２】
ステップＳ３１７では、調整部４１は、第２候補の位置（Ｘｒ２，Ｙｒ２，Ｚｒ２）を用いて上記の（式９）を計算することで、第２候補に対する画角θｒを求める。
【０１１３】
ステップＳ３１９では、調整部４１は、上記のステップＳ３００（若しくはステップＳ３００’）で計算した基準面内位置θｂと、ステップＳ３１７で求めた画角θｒと、を用いて以下の（式１０）を計算することで、画角補正量Ｃθを求める。
【０１１４】
Ｃθ＝ｃｏｓ４θｂ／ｃｏｓ４θｒ  （式１０）
一般的なレンズでは、コサイン４乗則と呼ばれる法則に基づいて光量落ちすることが知られている。この法則では、画角のコサイン４乗に比例して光量落ちする。
【０１１５】
ステップＳ３１９では、調整部４１は、基準露光量Ｅｘｂを、以下の（式１１）を計算することで調整し、該調整の結果として、第２候補に対する露光量Ｅｘｔを求める。
【０１１６】
Ｃｚｏ×Ｃｚｔ×Ｃθ×Ｅｘｂ→Ｅｘｔ  （式１１）
すなわち、調整部４１は、第２候補の位置を受ける度に、該第２候補に対するＥｘｔを計算する。本実施形態では、山積みの高さに加えて、認識される対象物の画面内位置が変化しても、適切な露光量を設定することができる。画角の小さい画面中心付近では、露光量が小さく設定され、画角の大きい画面周辺部では露光量が大きく設定される。
【０１１７】
なお、本実施形態においては、対象物の位置姿勢認識結果を元に撮像画像内の位置を把握する例を説明したが、必ずしも対象物の位置姿勢認識結果を用いる必要はない。例えば、撮像画像中の対象物が写っているエリアを複数のエリアに分割し、分割したエリアごとに概略距離を算出する。そして、分割したエリアの中で最も概略距離が小さいエリアの中心位置を対象物が存在する位置としてもよい。
【０１１８】
また、上記のステップＳ３１８では、撮像画像内の位置（画角）による周辺光量落ちはコサイン４乗則に基づくものとして定式化をしたが、これに限られるものではない。光学系の特性がコサイン４乗則に基づかない場合には、それに合わせて適切な式を用いることができる。あるいは、多項式は用いずに実測データを元に画角と明るさの関係をテーブル化し、対象物の撮像画像内の位置に応じて、対応する画角の値を参照する方法も用いることができる。
【０１１９】
［第４の実施形態］
画像処理部４０を構成する各機能部は何れもハードウェアで構成しても良いが、ソフトウェア（コンピュータプログラム）で構成しても良い。このような場合、このコンピュータプログラムをインストールすると該コンピュータプログラムを実行する装置は、画像処理部４０に適用可能である。画像処理部４０に適用可能な装置のハードウェア構成例について、図１８のブロック図を用いて説明する。
【０１２０】
ＣＰＵ１６０１は、ＲＡＭ１６０２やＲＯＭ１６０３に格納されているコンピュータプログラムやデータを用いて処理を実行することで、本装置全体の動作制御を行うと共に、画像処理部４０が行うものとして上述した各処理を実行する。
【０１２１】
ＲＡＭ１６０２は、外部記憶装置１６０６からロードされたコンピュータプログラムやデータ、Ｉ／Ｆ（インターフェース）１６０７を介して外部から受信したデータなどを一時的に記憶するためのエリアを有する。更にＲＡＭ１６０２は、ＣＰＵ１６０１が各種の処理を実行する際に用いるワークエリアを有する。即ち、ＲＡＭ１６０２は、各種のエリアを適宜提供することができる。ＲＯＭ１６０３には、本装置の設定データやブートプログラムなどが格納されている。
【０１２２】
操作部１６０４は、キーボードやマウスなどにより構成されており、本装置のユーザが操作することで、各種の指示をＣＰＵ１６０１に対して入力することができる。例えば、上記の調整領域の指定は、この操作部１６０４を操作することで指定することができる。
【０１２３】
表示部１６０５は、ＣＲＴや液晶画面等により構成されており、ＣＰＵ１６０１による処理結果を画像や文字などでもって表示することができる。例えば、撮像画像Ｉｎ１や撮像画像Ｉｎ２を含む、調整領域を指定するための画面を表示することができる。
【０１２４】
外部記憶装置１６０６は、ハードディスクドライブ装置に代表される、大容量情報記憶装置である。この外部記憶装置１６０６には、ＯＳ（オペレーティングシステム）や、図１，１２に示した画像処理部４０内の各機能部が行うものとして上述した各処理をＣＰＵ１６０１に実行させるためのコンピュータプログラムやデータが保存されている。このデータには、上記の説明において既知の情報として説明した情報も含まれる。外部記憶装置１６０６に保存されているコンピュータプログラムやデータは、ＣＰＵ１６０１による制御に従って適宜ＲＡＭ１６０２にロードされ、ＣＰＵ１６０１による処理対象となる。
【０１２５】
Ｉ／Ｆ１６０７は、本装置が外部機器と通信を行うためのものであり、例えば、このＩ／Ｆ１６０７には、上記の撮像部２０、投影部３０、対象物位置姿勢認識部７、を接続することができる。上記の各部は何れも、バス１６０８に接続されている。
【０１２６】
（その他の実施例）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2015087244.tif 000003
【図２】
2015087244.tif 000004
【図３】
2015087244.tif 000005
【図４】
2015087244.tif 000006
【図５】
2015087244.tif 000007
【図６】
2015087244.tif 000008
【図７】
2015087244.tif 000009
【図８】
2015087244.tif 000010
【図９】
2015087244.tif 000011
【図１０】
2015087244.tif 000012
【図１１】
2015087244.tif 000013
【図１２】
2015087244.tif 000014
【図１３】
2015087244.tif 000015
【図１４】
2015087244.tif 000016
【図１５】
2015087244.tif 000017
【図１６】
2015087244.tif 000018
【図１７】
2015087244.tif 000019
【図１８】
2015087244.tif 000020