(57)【特許請求の範囲】
【請求項１】
撮像領域を撮像する複数の撮像部と、
前記複数の撮像部によって撮像した複数の撮像画像に基づいて視差情報を生成する視差情報生成手段と、
前記撮像領域内の対象物を映し出す画像部分の視差値群に含まれる有効な視差値の数が増えるように、後の撮像時に前記複数の撮像部が用いる露光量を決定する露光量制御手段とを有する撮像装置において、
前記露光量制御手段は、複数の露光量を用いて前記複数の撮像部がそれぞれ撮像した撮像画像から生成される各露光量に対応した視差情報を取得する視差情報取得制御を実行した後、取得した視差情報の中で有効な視差値の数が最も多い視差情報に対応する露光量を特定する露光量特定制御を実施し、特定した露光量よりも高い露光量を、後の撮像時に前記複数の撮像部が用いる露光量として決定することを特徴とする撮像装置。
【請求項２】
請求項１に記載の撮像装置において、
前記露光量制御手段は、前記視差情報取得制御で用いる前記複数の露光量として、所定の露光時間範囲内で設定される等比数列からなる３つ以上の露光時間を用いることを特徴とする撮像装置。
【請求項３】
請求項１又は２に記載の撮像装置において、
前記露光量特定制御では、所定の画像部分指定条件により指定される画像部分についての有効な視差値の数が最も多い視差情報に対応する露光量を特定することを特徴とする撮像装置。
【請求項４】
請求項１乃至３のいずれか１項に記載の撮像装置において、
前記露光量特定制御では、所定の視差値範囲指定条件により指定される視差値範囲内で有効な視差値の数が最も多い視差情報に対応する露光量を特定することを特徴とする撮像装置。
【請求項５】
撮像領域を撮像する複数の撮像部によって撮像した複数の撮像画像に基づいて視差情報を生成する視差情報生成工程と、
前記撮像領域内の対象物を映し出す画像部分の視差値群に含まれる有効な視差値の数が増えるように、後の撮像時に前記複数の撮像部が用いる露光量を決定する露光量制御を実行する露光量制御工程とを有する撮像方法において、
前記露光量制御工程では、複数の露光量を用いて前記複数の撮像部がそれぞれ撮像した撮像画像から生成される各露光量に対応した視差情報を取得する視差情報取得制御を実行した後、取得した視差情報の中で有効な視差値の数が最も多い視差情報に対応する露光量を特定する露光量特定制御を実施し、特定した露光量よりも高い露光量を、後の撮像時に前記複数の撮像部が用いる露光量として決定することを特徴とする撮像方法。
【請求項６】
撮像領域を撮像する複数の撮像部を備えた撮像装置のコンピュータを動作させる撮像動作制御プログラムにおいて、
前記複数の撮像部によって撮像した複数の撮像画像に基づいて視差情報を生成する視差情報生成手段、及び、
前記撮像領域内の対象物を映し出す画像部分の視差値群に含まれる有効な視差値の数が増えるように、後の撮像時に前記複数の撮像部が用いる露光量を決定する露光量制御を実行する露光量制御手段として、前記コンピュータを機能させるものであり、
前記露光量制御手段は、複数の露光量を用いて前記複数の撮像部がそれぞれ撮像した撮像画像から生成される各露光量に対応した視差情報を取得する視差情報取得制御を実行した後、取得した視差情報の中で有効な視差値の数が最も多い視差情報に対応する露光量を特定する露光量特定制御を実施し、特定した露光量よりも高い露光量を、後の撮像時に前記複数の撮像部が用いる露光量として決定することを特徴とする撮像動作制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、撮像装置、撮像方法及び撮像動作制御プログラムに関するものである。
【背景技術】
【０００２】
従来、２つの撮像部で撮像した２つの撮像画像に基づいて視差情報を生成する撮像装置が知られている。
【０００３】
特許文献１には、２つの撮像部によって撮像した基準画像と比較画像との間のマッチング処理を行って同じ地点を映し出す画素についての視差値を算出した後、対象物の視差値分布の特徴に当てはまる視差値群を抽出し、抽出した視差値群に対応する画像部分を当該対象物を映し出す領域として検出するシステムが開示されている。このようなシステムでは、抽出される視差値群に含まれる有効な視差値の数が少ないと、対象物に対応する視差値群の抽出精度が落ちるので、対象物の認識精度を低下させることになる。そのため、特許文献１に開示のシステムでは、抽出される視差値群に含まれる視差値の数が増えるように、後の撮像時に用いる各撮像部の露光量を決定する露光量制御を実行している。
【０００４】
詳しくは、現在設定されている露光量で撮像した撮像画像から得た視差情報から対象物の画像部分についての視差値の数を算出し、算出した数が予め決められた規定範囲から外れていたら、露光量制御を実施する。そして、露光量制御では、その算出した数が前記規定範囲の上限値を超えている場合であれば、露光量を一定の調整量分だけ減らし、その算出した数が前記規定範囲の下限値を下回っている場合であれば、露光量を一定の調整量分だけ増やす制御を行う。このような露光量制御を実行することで、その後の撮像時において、対象物を映し出す画像部分のコントラストを高めることができ、基準画像と比較画像との間のマッチング処理の精度が向上する。その結果、対象物の画像部分の視差値群に含まれる有効な視差値の数が増え、対象物の認識精度が高まるとされている。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
撮像環境が急激に変化したり最適な露光量が大きく異なる対象物に変わったりすると、最適な露光量は、それまで設定されていた露光量から大きく離れたものとなる。特許文献１に記載された露光量制御では、現在の露光量から一定の調整量分の範囲内でしか露光量を調整できないため、現在の露光量が最適な露光量から大きく離れるような事態が生じると、１回の露光量制御では最適な露光量に設定できない。
【０００６】
特許文献１に記載された露光量制御であっても、露光量制御を何度も繰り返し実施することで、いずれは最適な露光量に設定することは可能である。しかしながら、特許文献１に記載された露光量制御において、１つのフレーム（撮像画像）により得た視差情報から決定した露光量が用いられるのは、当該フレームよりも２つ後のフレームの撮像動作からです。そのため、１回の露光量制御を完了するまで（現在の露光量で撮像した撮像画像から得られる視差情報に基づいて決定した露光量が撮像動作に用いられるまで）には、３フレームが必要である。よって、撮像環境が急激に変化したり最適な露光量が大きく異なる対象物に変わったりして、現在の露光量が最適な露光量から大きく離れるような事態が生じると、最適な露光量に設定されるまでに時間がかかる。
【課題を解決するための手段】
【０００７】
上述した課題を解決するために、本発明は、撮像領域を撮像する複数の撮像部と、前記複数の撮像部によって撮像した複数の撮像画像に基づいて視差情報を生成する視差情報生成手段と、前記撮像領域内の対象物を映し出す画像部分の視差値群に含まれる有効な視差値の数が増えるように、後の撮像時に前記複数の撮像部が用いる露光量を決定する露光量制御手段とを有する撮像装置において、前記露光量制御手段は、複数の露光量を用いて前記複数の撮像部がそれぞれ撮像した撮像画像から生成される各露光量に対応した視差情報を取得する視差情報取得制御を実行した後、取得した視差情報の中で有効な視差値の数が最も多い視差情報に対応する露光量を特定する露光量特定制御を実施し、特定した露光量よりも高い露光量を、後の撮像時に前記複数の撮像部が用いる露光量として決定することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、対象物の画像部分についての有効な視差値の数が最大となる最適な露光量を、従来よりも短い時間で設定できるという優れた効果が奏される。
【図面の簡単な説明】
【０００９】
【図１】実施形態におけるロボットピッキングシステムにおける撮像装置の主要部を示すブロック図である。
【図２】実施形態における露光量調整制御の流れを示すフローチャートである。
【図３】有効視差値をカウントする指定画像部分が示された基準画像の例を示す説明図である。
【図４】実施形態の露光量調整制御により内部メモリに蓄積される視差点数及び露光時間のデータの一例を示すグラフである。
【図５】変形例において、有効視差値をカウントする指定画像部分が示された基準画像の例を示す説明図である。
【図６】変形例における露光量調整制御の流れを示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下、本発明に係る撮像装置を、ロボットピッキングシステムに適用した一実施形態について説明する。
本実施形態におけるロボットピッキングシステムは、例えば、多数のワーク（対象物）がバラ積みされている箱から１つのワーク（例えばＴ型パイプ）をロボットアームにより取り出して、当該ワークを後段の処理装置へ受け渡すものである。このシステムでは、箱内を上方から撮像し、その撮像画像に基づいて箱内における個々のワークを区別して認識する。そして、その認識結果に基づいて、ロボットアームのハンド部で１つのワークを上方からピッキングして箱から取り出すように、ロボットアームの動作を制御する。
なお、本発明に係る撮像装置は、ロボットピッキングシステムに限らず、例えば、撮像画像に基づいて撮像領域内に存在する対象物の認識処理を行う画像解析装置を搭載したその他のシステムにも適用できる。
【００１１】
図１は、本実施形態における撮像装置の主要部を示すブロック図である。
本実施形態の撮像装置は、主に、カメラ部１００と画像処理部２００とから構成される。カメラ部１００は、２つの撮像部であるカメラ１０１Ａ，１０１Ｂを備えたステレオカメラで構成されている。２つのカメラ１０１Ａ，１０１Ｂの構成は同一のものである。カメラ１０１Ａ，１０１Ｂは、主に、撮像レンズ等の光学系と、受光素子が２次元配置された画素アレイで構成された画像センサと、画像センサから出力されるアナログ電気信号（画像センサ上の各受光素子が受光した受光量）をデジタル電気信号に変換した撮像画像データを生成して出力する信号処理部とから構成されている。
【００１２】
画像処理部２００は、カメラ部１００から出力される撮像画像データを受け取って各種画像処理を実施するほか、カメラ部１００の露光量制御も行う。カメラ部１００の各カメラ１０１Ａ，１０１Ｂから出力される撮像画像データは、理想ピンホールモデルで得られる画像に変換するために補正処理を行う画像補正部２０１Ａ，２０１Ｂに入力される。画像補正部２０１Ａ，２０１Ｂは、カメラ１０１Ａ，１０１Ｂごとに設けられ、ＦＰＧＡ（Field-Programmable Gate Array）やメモリ等によって構成される。画像補正部２０１Ａ，２０１Ｂは、ＦＰＧＡにより、入力されるカメラ１０１Ａ，１０１Ｂからの撮像画像データに対し、倍率補正、画像中心補正、歪補正などの補正処理を実行する。メモリには、その補正処理に用いる補正パラメータ等が格納されている。なお、ＦＰＧＡに代えて、例えば、ＡＳＩＣ（Application Specific Integrated Circuit）などを採用してもよい。
【００１３】
画像補正部２０１Ａ，２０１Ｂから出力される補正処理後の撮像画像データ（補正画像データ）は、視差情報生成手段としての視差情報算出部２０２に送られる。視差情報算出部２０２は、各カメラ１０１Ａ，１０１Ｂで撮像して得られた補正画像データから得られる視差画像データを生成する処理を行う。具体的には、画像補正部２０１Ａ，２０１Ｂから出力される補正画像データから視差画像データを得るために、当該２つの補正画像間の対応画像部分の視差値を演算する。
【００１４】
ここでいう視差値とは、各カメラ１０１Ａ，１０１Ｂでそれぞれ撮像した撮像画像の一方を基準画像、他方を比較画像とし、撮像領域内の同一地点に対応した基準画像上の画像部分に対する比較画像上の画像部分の位置ズレ量を、当該画像部分の視差値として算出したものである。三角測量の原理を利用することで、この視差値から当該画像部分に対応した撮像領域内の当該同一地点までの距離を算出することができる。視差画像データは、基準画像データ（例えばカメラ１０１Ａが撮像した撮像画像データａ）上の各画像部分について算出される視差値に応じた画素値をそれぞれの画像部分の画素値として表した視差画像を示すものである。視差情報算出部２０２が出力する視差画像データは、後段の認識処理部３００に送られるとともに、視差点数算出部２０３にも送られる。
【００１５】
認識処理部３００は、視差情報算出部２０２から出力される視差画像データを用いて、撮像領域内に存在する箱の中に収容されている多数のワークを個別に認識する処理を行う。具体的には、例えば、視差画像上において画素値（視差値）が大きく変化するエッジ部を検出し、その検出結果から個々のワークを映し出す画像部分を識別する。そして、例えば、識別した画像部分の中で視差値平均が最も大きい画像部分を特定し、特定した画像部分に対応するワークの水平方向位置と、その画像部分の視差値平均から算出される当該ワークまでの距離とを、ワーク認識結果として、ロボットアームの動作を制御するロボットアーム制御部４００へ出力する。このようにして特定されるワークは、箱内で最も上に積まれているワークである。
【００１６】
ロボットアーム制御部４００は、認識処理部３００から出力されるワーク認識結果に基づき、ピッキング対象となる１つのワークの位置（水平方向位置と距離）を把握することができる。ロボットアーム制御部４００は、把握した位置に存在するワークをロボットアームのハンド部で上方からピッキングして箱から取り出し、後段の処理装置へ受け渡すように、ロボットアーム動作を制御する。
【００１７】
本実施形態において、対象物であるワークの認識精度を高めるためには、カメラ１０１Ａ，１０１Ｂの露光量を適切に調整することが必要となる。これは次の理由による。
【００１８】
認識処理部３００での認識処理は、上述したように、２つのカメラ１０１Ａ，１０１Ｂで撮像した撮像画像間の視差情報に基づいてワークを映し出す画像部分を認識する。このような処理における認識精度は、ワークを映し出す画像部分について正確に算出された視差値の数（立体物領域を構成する視差画像上の画素数）の多さに依存する。視差値の算出は、上述したように、両撮像画像間の対応画像部分（撮像領域内の同一地点に対応した各画像上の画像部分）を正確に特定（マッチング）することが前提となる。
【００１９】
マッチング処理は、例えば、マッチング対象とする対応画像部分を含む基準画像内の対象画像領域と同じ縦方向位置（画像垂直方向位置）である比較画像内の各画像領域（横方向位置（画像水平方向位置）が異なる画像領域）について、それぞれ、基準画像内の対象画像領域を構成する複数の画素値（輝度値）の配列との関係について相関演算を行う。そして、一定以上の相関が認められた比較画像内の画像領域の中で最も相関が高い画像領域を、基準画像内の対象画像領域に対応する対応画像領域であると特定する。これにより、両撮像画像間の対応画像部分が特定される。
【００２０】
ここで、例えば、ワークが存在する撮像領域からの光を受光する受光素子の中でその受光量が当該受光素子の光量検出範囲の上限値である飽和値を超えているものが多い場合、これらの受光素子に対応する画素値（輝度値）はすべて飽和値を示すものとなってしまい、これらの受光素子間での画素値（輝度値）の違いが出なくなってしまう。この場合、マッチング対象とする基準画像内の対象画像領域を構成する画素値配列の特徴が希釈化され、正確なマッチング処理を行うことが困難となる。これにより、ワークを映し出す画像部分のマッチング処理ができず、その視差値が算出できかったり、また、ワークを映し出す画像部分のマッチング処理を誤ってしまい、誤った視差値を算出してしまったりするおそれがある。その結果、ワークを映し出す画像部分について、正確に算出された視差値の数（ワークを映し出す画像部分に対応する視差画像上の画像部分の画素数）が少なくなってしまい、認識処理部３００での認識処理精度を悪化させることになる。
【００２１】
なお、ワークが存在する撮像領域からの光を受光する受光素子の中でその受光量が当該受光素子の光量検出範囲の下限値よりも低いものが多い場合も、同様に、認識処理部３００での認識処理精度が悪化する。
【００２２】
そこで、本実施形態では、認識処理部３００での認識処理精度を高めるために、認識処理部３００で認識されるワークの画像部分を構成する画素（視差画像上の画素）の数が多くなるように、各カメラ１０１Ａ，１０１Ｂの露光量を調整する。この露光量調整を行う露光量制御手段は、視差点数算出部２０３及び露光時間制御部２０４によって構成される。
【００２３】
視差点数算出部２０３は、視差情報算出部２０２から送られた視差画像データから、予め指定された指定画像部分内の有効視差値の数をカウントする。
露光時間制御部２０４は、カメラ部１００における各カメラ１０１Ａ，１０１Ｂの撮像動作時の露光時間を最適な露光時間に調整する露光量制御を実行する。
【００２４】
図２は、本実施形態における露光量調整制御の流れを示すフローチャートである。
露光時間制御部２０４は、所定の制御実行タイミングが到来したとき、まず、有効視差値の数をカウントする指定画像部分を設定し（Ｓ１）、その設定情報を視差点数算出部２０３に受け渡す。この指定画像部分は、図３中符号Ａの枠で示すように、対象物であるワークを収容する箱５００の内縁に沿うように設定された矩形状の画像部分である。有効視差値の数をカウントする指定画像部分は、対象物が映し出される画像部分を含むように設定され、対象物が映し出されていない画像部分をできるだけ排除したものであるのが好ましい。これは、認識処理部３００によって認識する対象物（ワーク）以外の画像部分が含まれていると、本来必要としない視差値の数がカウントされてしまい、露光時間の最適化の妨げになるからである。なお、この指定画像部分の形状は、矩形に限らず、円形などの他の形状であってもよい。
【００２５】
次に、露光時間制御部２０４は、カメラ１０１Ａ，１０１Ｂの露光時間が、露光時間設定可能範囲の最大値に設定する（Ｓ２）。その後、設定された露光時間でカメラ１０１Ａ，１０１Ｂに撮像動作を実行させ（Ｓ３）、１フレーム分の撮像画像データ（基準画像データと比較画像データ）を得る。この撮像画像データは、画像補正部２０１Ａ，２０１Ｂで補正され、その補正画像データから視差情報算出部２０２により視差画像データ（視差情報）が生成される（Ｓ４）。
【００２６】
視差点数算出部２０３は、このようにして生成された視差画像データと、処理ステップＳ１で受け取った指定画像部分の設定情報とに基づき、視差画像上の当該指定画像部分内における有効な視差値の画素数（視差点数）を計測する（Ｓ５）。計測した視差点数は、対応する露光時間（ここでは最大露光時間）に対応づけた状態で、内部メモリに保持しておく。そして、次に、現在設定されている露光時間（ここでは最大露光時間）を予め決められた定数Ｋ（Ｋ＞１）で除算する計算を行い（Ｓ６）、計算された露光時間を次の撮像動作における露光時間に設定する（Ｓ７のＮｏ，Ｓ８）。
【００２７】
その後、処理ステップＳ３〜Ｓ８を繰り返し行うことで、それぞれの露光時間に対応する視差点数を内部メモリに蓄積していく。この繰り返しは、処理ステップＳ６において計算された露光時間が露光時間設定可能範囲の最小値を下回るまで継続される（Ｓ７のＹｅｓ）。露光時間が最小値を下回ったら、露光時間制御部２０４は、内部メモリに蓄積した露光時間及び視差点数のデータから、例えばガウシアンフィルタを適用して、ノイズを除去する処理を実行する（Ｓ９）。その後、ノイズ除去後の露光時間及び視差点数のデータから、視差点数が最大となる露光時間を特定し（Ｓ１０）、特定した露光時間に各カメラ１０１Ａ，１０１Ｂの露光時間を設定する（Ｓ１１）。
【００２８】
これにより、以後、指定画像部分内の有効視差点数が最大となる最適な露光時間で各カメラ１０１Ａ，１０１Ｂの撮像動作が行われる。その結果、認識処理部３００での認識処理において、当該指定画像部分に映し出されるワークの認識精度を最適化することができる。
【００２９】
図４は、本実施形態の露光量調整制御により内部メモリに蓄積される視差点数及び露光時間のデータの一例を示すグラフである。
このグラフの縦軸は、指定画像部分内の総画素数（視差値の最大数）に対して取得できた有効視差値の数の比率（パーセント）を視差点数としている。また、このグラフの横軸は、露光時間の対数値（Ｌｏｇ２）をとっている。
【００３０】
本実施形態において、内部メモリに蓄積される各視差点数にそれぞれ対応する各露光時間は、直前の露光時間を定数Ｋ（Ｋ＞１）で除算して得られるものである。そのため、これらの露光時間は、露光時間設定可能範囲内で設定される等比数列からなる。図４に示すグラフは、露光時間設定可能範囲の最大値が３４［ｍｓ］であり、定数Ｋを１．２に設定した例である。この場合、露光量調整制御で視差点数を取得する際に用いる露光時間は、３４．０［ｍｓ］、２８．３［ｍｓ］、・・・、０．１［ｍｓ］という等比数例になる。
【００３１】
このように、露光量調整制御で視差点数を取得する際に用いる露光時間の間隔を等比間隔とすることで、露光時間が比較的長い（対象物の輝度が明るい）範囲よりも、露光時間が比較的短い（対象物の輝度が暗い）範囲の方が、より細かい露光時間間隔で視差点数を取得することができる。露光時間が比較的長い範囲では、撮像画像データの画素値（輝度値）が飽和して有効画素値の数が少なくなる傾向にあり、露光時間が比較的短い範囲の方が、有効画素値の数が多い傾向がある。そのため、露光時間が比較的短い範囲について、より細かい露光時間間隔で視差点数を取得することにより、同じ数の露光時間について視差点数を取得する場合でも、より適切な露光時間を得やすい。
【００３２】
定数Ｋは、精度を優先するのであればプロット点（視差点数の取得数）を増やすため設定値を小さくし、露光量調整制御の実施時間の短縮化を優先するのであればプロット点を少なくするため設定値を大きくすればよい。
【００３３】
また、図４に示すグラフは、ガウシアンフィルタによるノイズ除去処理（Ｓ９）を実施した場合と実施しない場合とを比較したものとなっている。図示のとおり、ガウシアンフィルタによるノイズ除去処理を実施することで、視差点数と露光時間との関係性が滑らかに推移するものとなるので、視差点数のピークを精度よく特定しやすい。
【００３４】
また、各カメラ１０１Ａ，１０１Ｂの撮像光学系の特性により、通常は、画像センサ上における中央付近の受光量が最も多く、画像センサの端部へ向かうほど受光量が少なくなる。すなわち、撮像画像上でいえば、中央付近の画像部分の輝度値（画素値）が最も高く、撮像画像の端部へ向かうほど輝度値が少なくなるという輝度偏差が存在する。本実施形態では、図３に示したように、撮像画像の中央と指定画像部分の中心とがほぼ一致するように指定画像部分が設定されているところ、指定画像部分の内部でも、指定画像部分の中心から端部へ向かうほど輝度値が少なくなるという輝度偏差が存在する。このような輝度偏差が存在することから、本実施形態の露光量制御のように視差点数が最大となる露光時間をそのまま最適な露光時間として設定すると、指定画像部分の中央付近については視差点数が最大となる最適な露光時間となるが、指定画像部分の端部付近では視差点数が少ない不適切な露光時間となるおそれがある。
【００３５】
また、マッチング処理の精度を高めるためにカメラ部１００の撮像領域に対してランダムパターンを投影する場合、その投影光量も、通常は、中央付近が最も多く、端部に向かうほど少なくなる傾向になる。そのため、ランダムパターンを投影する場合には、本実施形態のように視差点数が最大となる露光時間をそのまま最適な露光時間として設定すると、端部付近にとっては不適切な露光時間に調整されやすい。
【００３６】
このような場合には、指定画像部分の中央付近でも端部付近でも規定数以上の視差点数が得られるような露光時間に調整にしてもよい。例えば、本実施形態のように視差点数が最大となる露光時間を特定した後、その露光時間よりも予め決められた時間分だけ長い露光時間に設定する。あるいは、本実施形態のように視差点数が最大となる露光時間を特定した後、その露光時間よりも長い複数の露光時間について撮像動作を実行して、中央付近と端部付近の有効視差値の数を計測し、いずれでも有効視差値の数が規定数以上である露光時間を特定して、その露光時間を最適な露光時間として設定する。
【００３７】
〔変形例〕
次に、上述した実施形態におけるロボットピッキングシステムの一変形例について説明する。
本変形例は、白い床の上に１つだけ置かれたワーク（Ｔ型パイプ）をロボットアームのハンド部でピッキングするように、ロボットアームの動作を制御するものである。
【００３８】
図５は、本変形例において、有効視差値をカウントする指定画像部分が示された基準画像の例を示す説明図である。なお、本変形例でも、上述した実施形態と同様、撮像領域に対してランダムパターンを投影した例である。
本変形例において、上述した実施形態と同様、図５中符号Ｂの枠で示すように、対象物であるワークが含まれるように矩形状の画像部分を指定画像部分として設定したとする。このように指定画像部分を設定すると、図５に示すように、指定画像部分の内部において、ワークを映し出す画像部分に対するそれ以外の画像部分の比率が高いものとなる。この場合、有効視差値としてカウントされる数の中にそれ以外の画像部分についての有効視差値が占める割合が高まる。その結果、当該指定画像部分の有効視差値の数が最大となる露光時間と、ワークそれ自体を映し出す画像部分の有効視差値の数が最大となる露光時間との関連性が低くなる。よって、当該指定画像部分の有効視差値の数が最大となる露光時間に設定しても、ワークの認識処理を高められる最適な露光時間とすることができないおそれがある。
【００３９】
図６は、本変形例における露光量調整制御の流れを示すフローチャートである。
本変形例における露光量調整制御の基本的な流れは、上述した実施形態と同様であるが、図５中符号Ｂの枠で示す矩形状の指定画像部分を設定して視差情報を算出した後（Ｓ４）、その視差情報から、予め決められた指定視差値範囲内に属する視差値だけを抽出する（Ｓ１１）。この指定視差値範囲は、床の上に置かれたワークまでの距離に対応する視差値を含み、当該ワークが置かれた床までの距離に対応する視差値を除外する範囲に設定される。具体的には、床面までの距離が１ｍ、ワークの高さが２５ｍｍである場合、指定視差値範囲を、９５０〜９９５ｍｍの距離に対応する視差値範囲に設定する。
【００４０】
本変形例では、このようにして抽出した視差値の数をカウントした視差点数を計測する（Ｓ１２）。これにより、指定画像部分内における床面画像部分を除外した画像部分についての視差値の数、すなわち、ワークの画像部分に対応する視差値の数だけを適切にカウントすることができる。その結果、ワークの認識処理を高められる最適な露光時間とすることができる。
【００４１】
なお、本実施形態では、マッチング処理の精度を高めるために、カメラ部１００の撮像領域に対してランダムパターンを投影しているが、ランダムパターンの投影は必ずしも行う必要はない。
【００４２】
以上に説明したものは一例であり、本発明は、次の態様毎に特有の効果を奏する。
（態様Ａ）
撮像領域を撮像するカメラ１０１Ａ，１０１Ｂ等の複数の撮像部と、前記複数の撮像部によって撮像した複数の撮像画像に基づいて視差情報を生成する視差情報算出部２０２等の視差情報生成手段と、前記撮像領域内のワーク等の対象物を映し出す画像部分の視差値群に含まれる視差値の数（視差点数）が増えるように、後の撮像時に前記複数の撮像部が用いる露光時間等の露光量を決定する視差点数算出部２０３及び露光時間制御部２０４等の露光量制御手段とを有する撮像装置において、前記露光量制御手段は、複数の露光量を用いて前記複数の撮像部がそれぞれ撮像した撮像画像から生成される各露光量に対応した視差情報を取得する視差情報取得制御を実行した後、取得した視差情報の中で視差値の数が最も多い視差情報に対応する露光量を特定する露光量特定制御を実施し、特定した露光量に基づいて後の撮像時に前記複数の撮像部が用いる露光量を決定することを特徴とする。
本態様では、露光量を決定するにあたって、まず、視差情報取得制御を実行して複数の露光量に対応する視差情報を取得し、その後、露光量特定制御により視差値の数が最も多い視差情報に対応する露光量を特定する。そして、このようにして特定された露光量に基づいて後の撮像時に前記複数の撮像部が用いる露光量を決定する。これによれば、視差情報取得制御に用いる複数の露光量を適切に設定することで、対象物の画像部分についての有効な視差値の数が最大となる最適な露光量がそれまで設定されていた露光量から大きく離れたものとなる場合でも、１回の露光量制御で、最適な露光量を決定することができる。
ただし、本態様では、１回の露光量制御中に、複数の露光量に対応する視差情報を取得するために複数の撮像動作を行う必要がある。そのため、１回の露光量制御が完了するまでに要する時間は、１回の露光量制御中に１つの露光量に対応する視差情報しかを取得しない（すなわち撮像動作が１回だけである）特許文献１に記載された露光量制御よりも長くなる。しかしながら、本態様では、１回の露光量制御中に複数の露光量で撮像動作を連続して行うことが可能である。そのため、現在の露光量が最適な露光量から大きく離れるような事態が生じたとき、上述したように１回の露光量制御を完了するまでに３フレームが必要である特許文献１に記載された露光量制御を繰り返し行って最適な露光量を得る場合よりも、本態様の方が、最適な露光量が設定されるに要する時間の短縮化を実現できる。
なお、本態様の露光量制御は、上述したとおり、ロボットピッキングシステムに限らずに適用可能であり、例えば、特許文献１に記載された撮像装置が適用されている車載機器制御システムにも適用可能である。車載機器制御システムでは、連続した撮像動作により得られる各撮像画像から視差情報を連続的に生成して対象物の認識処理を実行する。本態様では、露光量制御を完了するまでに複数回の撮像動作が必要であり、その間の撮像動作で設定される露光量には不適切な露光量が含まれるところ、そのような不適切な露光量では適切な視差情報が得られない。この場合であっても、現在の露光量が最適な露光量から大きく離れるような事態が生じたときに、最適な露光量が設定されるまでに要する時間は、特許文献１に記載された露光量制御よりも短い。したがって、本態様によれば、特許文献１に記載された露光量制御よりも適切な視差情報が得られない期間が短くて済むので、連続した撮像動作により得られる各撮像画像から視差情報を連続的に生成して対象物の認識処理を実行する場合でも、特許文献１に記載された露光量制御よりも対象物の認識処理が改善される。
【００４３】
（態様Ｂ）
前記態様Ａにおいて、前記露光量制御手段は、前記露光量特定制御により特定した露光量よりも高い露光量を、後の撮像時に前記複数の撮像部が用いる露光量として決定することを特徴とする。
これによれば、視差値の数をカウントする画像部分内に比較的輝度が相対的に低い部分が存在していても、その部分にとって不適切な露光量が設定されるのを抑制することができる。
【００４４】
（態様Ｃ）
前記態様Ａ又はＢにおいて、前記露光量制御手段は、前記視差情報取得制御で用いる前記複数の露光量として、所定の露光時間範囲内で設定される等比数列からなる３つ以上の露光時間を用いることを特徴とする。
これによれば、露光量が比較的大きい（対象物の輝度が明るい）範囲よりも、露光量が比較的小さい（対象物の輝度が暗い）範囲の方が、より細かい露光量間隔で有効視差値の数を取得することができる。露光量が比較的大きい範囲では、撮像画像の画素値（輝度値）が飽和して有効画素値の数が少なくなる傾向にあり、露光量が比較的小さい範囲の方が、有効画素値の数が多い傾向がある。そのため、露光量が比較的小さい範囲に最適な露光量が存在することが多い。よって、露光量が比較的小さい範囲について、より細かい露光量間間隔で視差値の数を取得することにより、同じ数の露光量について視差値の数を取得する場合でも、より適切な露光量を決定しやすい。
【００４５】
（態様Ｄ）
前記態様Ａ〜Ｃのいずれかの態様において、前記露光量特定制御では、所定の画像部分指定条件により指定される画像部分（指定画像部分）についての視差値の数が最も多い視差情報に対応する露光量を特定することを特徴とする。
これによれば、対象物が映し出される画像部分を含み、対象物が映し出されていない画像部分をできるだけ排除したものが指定画像部分となるように所定の画像部分指定条件を設定することで、対象物の識別に最適な露光量を設定しやすくなる。
【００４６】
（態様Ｅ）
前記態様Ａ〜Ｄのいずれかの態様において、前記露光量特定制御では、所定の視差値範囲指定条件により指定される視差値範囲（指定視差値範囲）内で視差値の数が最も多い視差情報に対応する露光量を特定することを特徴とする。
これによれば、上述した変形例で説明したとおり、対象物が映し出される画像部分に絞り込んだ視差値の数を取得できるので、対象物の識別に最適な露光量を設定しやすくなる。
【００４７】
（態様Ｆ）
撮像領域を撮像する複数の撮像部によって撮像した複数の撮像画像に基づいて視差情報を生成する視差情報生成工程と、前記撮像領域内の対象物を映し出す画像部分の視差値群に含まれる視差値の数が増えるように、後の撮像時に前記複数の撮像部が用いる露光量を決定する露光量制御を実行する露光量制御工程とを有する撮像方法において、前記露光量制御工程では、複数の露光量を用いて前記複数の撮像部がそれぞれ撮像した撮像画像から生成される各露光量に対応した視差情報を取得する視差情報取得制御を実行した後、取得した視差情報の中で視差値の数が最も多い視差情報に対応する露光量を特定する露光量特定制御を実施し、特定した露光量に基づいて後の撮像時に前記複数の撮像部が用いる露光量を決定することを特徴とする。
これによれば、視差情報取得制御に用いる複数の露光量を適切に設定することで、対象物の画像部分についての有効な視差値の数が最大となる最適な露光量がそれまで設定されていた露光量から大きく離れたものとなる場合でも、１回の露光量制御で、最適な露光量を決定することができる。また、特許文献１に記載された露光量制御よりも、最適な露光量が設定されるに要する時間を短縮化できる。
【００４８】
（態様Ｇ）
撮像領域を撮像する複数の撮像部を備えた撮像装置のコンピュータを動作させる撮像動作制御プログラムにおいて、前記複数の撮像部によって撮像した複数の撮像画像に基づいて視差情報を生成する視差情報生成手段、及び、前記撮像領域内の対象物を映し出す画像部分の視差値群に含まれる視差値の数が増えるように、後の撮像時に前記複数の撮像部が用いる露光量を決定する露光量制御を実行する露光量制御手段として、前記コンピュータを機能させるものであり、前記露光量制御手段は、複数の露光量を用いて前記複数の撮像部がそれぞれ撮像した撮像画像から生成される各露光量に対応した視差情報を取得する視差情報取得制御を実行した後、取得した視差情報の中で視差値の数が最も多い視差情報に対応する露光量を特定する露光量特定制御を実施し、特定した露光量に基づいて後の撮像時に前記複数の撮像部が用いる露光量を決定することを特徴とする。
これによれば、視差情報取得制御に用いる複数の露光量を適切に設定することで、対象物の画像部分についての有効な視差値の数が最大となる最適な露光量がそれまで設定されていた露光量から大きく離れたものとなる場合でも、１回の露光量制御で、最適な露光量を決定することができる。また、特許文献１に記載された露光量制御よりも、最適な露光量が設定されるに要する時間を短縮化できる。
【００４９】
なお、このプログラムは、ＣＤ−ＲＯＭ等の記録媒体に記録された状態で配布したり、入手したりすることができる。また、このプログラムを乗せ、所定の送信装置により送信された信号を、公衆電話回線や専用線、その他の通信網等の伝送媒体を介して配信したり、受信したりすることでも、配布、入手が可能である。この配信の際、伝送媒体中には、コンピュータプログラムの少なくとも一部が伝送されていればよい。すなわち、コンピュータプログラムを構成するすべてのデータが、一時に伝送媒体上に存在している必要はない。このプログラムを乗せた信号とは、コンピュータプログラムを含む所定の搬送波に具現化されたコンピュータデータ信号である。また、所定の送信装置からコンピュータプログラムを送信する送信方法には、プログラムを構成するデータを連続的に送信する場合も、断続的に送信する場合も含まれる。
【符号の説明】
【００５０】
１００  カメラ部
１０１Ａ，１０１Ｂ  カメラ
２００  画像処理部
２０１Ａ，２０１Ｂ  画像補正部
２０２  視差情報算出部
２０３  視差点数算出部
２０４  露光時間制御部
３００  認識処理部
４００  ロボットアーム制御部
５００  箱
【先行技術文献】
【特許文献】
【００５１】
【特許文献１】特開２０１４−１３０４２９号公報
【図１】
0006493787.tif 000002
【図２】
0006493787.tif 000003
【図３】
0006493787.tif 000004
【図４】
0006493787.tif 000005
【図５】
0006493787.tif 000006
【図６】
0006493787.tif 000007