(57)【要約】【課題】距離情報を高精度かつ短時間で算出可能な算出パラメータを決定すること。【解決手段】画像取得部１１は、同一の被写体に対して、合焦位置を変えて撮像することで得られた撮像画像１ａ〜１ｅを取得する。算出部１２は、撮像画像１ａ〜１ｅの各画素における合焦度合いを示す合焦測度に基づいて、画像１ａ〜１ｅの間で対応する対応画素のそれぞれについての被写体との距離に応じた距離情報を有する第１情報群を生成する処理を、合焦測度の算出パラメータを変えて複数回実行する。パラメータ決定部１３は、第１情報群のそれぞれに含まれるノイズ成分の量と第１情報群のそれぞれの算出に要した生成時間とに基づいて第１情報群から第２情報群を１つ選択し、第２情報群の算出時に用いられた算出パラメータを出力する。【選択図】図１
2016218317.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータが、
同一の被写体に対して、合焦位置を変えて撮像することで得られた複数の撮像画像を取得し、
前記複数の撮像画像の各画素における合焦度合いを示す合焦測度に基づいて、前記複数の撮像画像の間で対応する対応画素のそれぞれについての前記被写体との距離に応じた距離情報を有する第１情報群を算出する処理を、前記合焦測度の算出パラメータを変えて複数回実行し、
前記第１情報群のそれぞれに含まれるノイズ成分の量と前記第１情報群のそれぞれの算出に要した算出時間とに基づいて前記第１情報群から第２情報群を１つ選択し、前記第２情報群の算出時に用いられた前記算出パラメータを出力する、
パラメータ決定方法。
【請求項２】
前記第２情報群の選択では、前記第１情報群に含まれる前記距離情報を対応する前記対応画素にプロットすることで前記第１情報群毎に得られる第１画像と、平滑化フィルタを用いて前記第１画像のそれぞれを基に算出された第２画像のうち、互いに対応する前記第１画像と前記第２画像との差分に基づいて、前記第１画像のそれぞれに含まれる前記ノイズ成分の量を算出する、
請求項１記載のパラメータ決定方法。
【請求項３】
前記第２情報群は、前記ノイズ成分の量が所定閾値以下である前記第１情報群の中から、前記算出時間に基づいて選択される、
請求項１または２記載のパラメータ決定方法。
【請求項４】
前記第２情報群は、前記ノイズ成分の量が第１閾値以下であり、かつ前記算出時間が第２閾値以下である前記第１情報群の中から、前記算出パラメータに基づいて選択される、
請求項１または２記載のパラメータ決定方法。
【請求項５】
前記合焦測度は、算出対象の画素を中心とした矩形領域に含まれる各画素の値に対して、微分フィルタを用いて変換した変換値を合計することで算出され、
前記算出パラメータには、前記矩形領域の大きさが含まれる、
請求項１乃至４のいずれか１項に記載のパラメータ決定方法。
【請求項６】
前記第１情報群のそれぞれの算出処理では、前記対応画素の中から間隔を空けて選択された選択画素のそれぞれについて前記合焦測度を算出し、
前記算出パラメータには、前記間隔が含まれる、
請求項１乃至５のいずれか１項に記載のパラメータ決定方法。
【請求項７】
同一の被写体に対して、合焦位置を変えて撮像することで得られた複数の撮像画像を取得する画像取得部と、
前記複数の撮像画像の各画素における合焦度合いを示す合焦測度に基づいて、前記複数の撮像画像の間で対応する対応画素のそれぞれについての前記被写体との距離に応じた距離情報を有する第１情報群を算出する処理を、前記合焦測度の算出パラメータを変えて複数回実行する算出部と、
前記第１情報群のそれぞれに含まれるノイズ成分の量と前記第１情報群のそれぞれの算出に要した算出時間とに基づいて前記第１情報群から第２情報群を１つ選択し、前記第２情報群の算出時に用いられた前記算出パラメータを出力するパラメータ決定部と、
を有する情報処理装置。
【請求項８】
コンピュータに、
同一の被写体に対して、合焦位置を変えて撮像することで得られた複数の撮像画像を取得し、
前記複数の撮像画像の各画素における合焦度合いを示す合焦測度に基づいて、前記複数の撮像画像の間で対応する対応画素のそれぞれについての前記被写体との距離に応じた距離情報を有する第１情報群を算出する処理を、前記合焦測度の算出パラメータを変えて複数回実行し、
前記第１情報群のそれぞれに含まれるノイズ成分の量と前記第１情報群のそれぞれの算出に要した算出時間とに基づいて前記第１情報群から第２情報群を１つ選択し、前記第２情報群の算出時に用いられた前記算出パラメータを出力する、
処理を実行させるパラメータ決定プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はパラメータ決定方法、情報処理装置およびパラメータ決定プログラムに関する。
【背景技術】
【０００２】
焦点位置の異なる複数の画像を撮像し、画像内の各画素について合焦の度合いを示す合焦測度を算出して画素毎の合焦位置を検出することにより、画素毎に被写体までの奥行き方向の距離を算出する技術が知られている。この技術は、Depth From Defocus（ＤＦＤ）と呼ばれる。この技術によれば、例えば、物体の３次元形状を計測することができる。
【０００３】
ここで、３次元形状のデータに関する技術の一例として、次のような技術が提案されている。この技術では、制御コンピュータは、複数の合焦位置で撮影された複数の画像の各画素における合焦測度を算出する。制御コンピュータは、合焦測度の算出値が最大となる最大焦点位置および最大合焦位置の近傍の焦点位置が撮影ユニットの焦点深度の範囲内に収まるように、被写体を撮影するときに合焦位置を設定する間隔である撮影ピッチを設定する。
【０００４】
また、次のような技術が提案されている。この技術では、種類判別装置は、コンクリート骨材をカメラで撮像した画像情報に基づいて高さ画像情報を作成する。種類判別装置は、高さ画像情報および平滑化した高さ画像情報の差分画像情報を求める。種類判別装置は、差分画像情報を１次微分した差分画像１次微分情報に基づいて、コンクリート骨材の種類判別を行う。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１２−４２５２５号公報
【特許文献２】特開２０１４−１２２８２７号公報
【非特許文献】
【０００６】
【非特許文献１】奥、外２名、「光学系と画像処理系の速度を整合した高速フォーカスビジョン」、日本ロボット学会誌、Vol.27 No.7、２００９年９月、ｐ．７３９−７４８
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ＤＦＤでは、焦点位置の異なる複数の画像のそれぞれの画素について合焦測度を算出するため、計算量が多く、処理時間が長くなるという問題がある。一方、計算量が低減されるように合焦測度の算出パラメータを変更すると、被写体までの距離の計測精度が低下するという問題がある。
【０００８】
１つの側面では、本発明は、距離情報を高精度かつ短時間で算出可能な算出パラメータを決定できるパラメータ決定方法、情報処理装置およびパラメータ決定プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
１つの態様では、パラメータ決定方法が提供される。このパラメータ決定方法は、コンピュータが、同一の被写体に対して、合焦位置を変えて撮像することで得られた複数の撮像画像を取得し、複数の撮像画像の各画素における合焦度合いを示す合焦測度に基づいて、複数の撮像画像の間で対応する対応画素のそれぞれについての被写体との距離に応じた距離情報を有する第１情報群を算出する処理を、合焦測度の算出パラメータを変えて複数回実行し、第１情報群のそれぞれに含まれるノイズ成分の量と第１情報群のそれぞれの算出に要した算出時間とに基づいて第１情報群から第２情報群を１つ選択し、第２情報群の算出時に用いられた算出パラメータを出力する。
【００１０】
また、１つの態様では、情報処理装置が提供される。この情報処理装置は、画像取得部と算出部とパラメータ決定部とを有する。画像取得部は、同一の被写体に対して、合焦位置を変えて撮像することで得られた複数の撮像画像を取得する。算出部は、複数の撮像画像の各画素における合焦度合いを示す合焦測度に基づいて、複数の撮像画像の間で対応する対応画素のそれぞれについての被写体との距離に応じた距離情報を有する第１情報群を算出する処理を、合焦測度の算出パラメータを変えて複数回実行する。パラメータ決定部は、第１情報群のそれぞれに含まれるノイズ成分の量と第１情報群のそれぞれの算出に要した算出時間とに基づいて第１情報群から第２情報群を１つ選択し、第２情報群の算出時に用いられた算出パラメータを出力する。
【００１１】
また、１つの態様では、上記のパラメータ決定方法と同様の処理をコンピュータに実行させるパラメータ決定プログラムが提供される。
【発明の効果】
【００１２】
１つの側面では、距離情報を高精度かつ短時間で算出可能な算出パラメータを決定できる。
【図面の簡単な説明】
【００１３】
【図１】第１の実施の形態の情報処理装置を示す図である。
【図２】第２の実施の形態に係る情報処理システムを示す図である。
【図３】制御装置のハードウェア構成例を示す図である。
【図４】高さ計測処理の例を示すフローチャートである。
【図５】フィルタを用いた合焦測度の基本的な算出例を示す図である。
【図６】合焦測度の実際の算出例を示す図である。
【図７】関数フィッティングによる合焦測度の算出例を示す図である。
【図８】合焦測度のピーク位置に基づく高さの算出例を示す。
【図９】領域サイズと算出時間との対応関係のグラフを示す図である。
【図１０】領域サイズと画素ピッチとの組み合わせと、高さ算出精度との関係の例（その１）を示す図である。
【図１１】領域サイズと画素ピッチとの組み合わせと、高さ算出精度との関係の例（その２）を示す図である。
【図１２】制御装置の機能例を示す図である。
【図１３】パラメータ管理テーブルの例を示す図である。
【図１４】算出結果テーブルの例を示す図である。
【図１５】条件管理テーブルの例を示す図である。
【図１６】組み合わせ決定処理の例（その１）を示すフローチャートである。
【図１７】組み合わせ決定処理の例（その２）を示すフローチャートである。
【図１８】高さ算出処理の例（その１）を示すフローチャートである。
【図１９】高さ算出処理の例（その２）を示すフローチャートである。
【図２０】合焦測度の算出処理手順の例を示すフローチャートである。
【図２１】メディアンフィルタ処理の例を示すフローチャートである。
【図２２】ノイズ判定処理の例を示すフローチャートである。
【図２３】決定部の処理の具体例を示す図である。
【図２４】第３の実施の形態の情報処理システムの例を示す図である。
【図２５】第３の実施の形態の制御装置の処理例を示すフローチャートである。
【図２６】第４の実施の形態の情報処理システムの例を示す図である。
【発明を実施するための形態】
【００１４】
以下、本実施の形態について図面を参照して説明する。
［第１の実施の形態］
図１は、第１の実施の形態の情報処理装置を示す図である。情報処理装置１０は、画像取得部１１、算出部１２およびパラメータ決定部１３を有する。画像取得部１１、算出部１２およびパラメータ決定部１３は、例えば、プロセッサとして実装される。プロセッサには、ＣＰＵ（Central Processing Unit）、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、ＦＰＧＡ（Field Programmable Gate Array）などを含み得る。また、画像取得部１１、算出部１２およびパラメータ決定部１３は、マルチプロセッサとして実現されてもよい。
【００１５】
画像取得部１１は、同一の被写体に対して、合焦位置を変えて撮像することで得られた撮像画像１ａ〜１ｅを取得する。例えば、画像取得部１１は、撮像画像１ａ〜１ｅを撮像する図示しない撮像装置から、撮像画像１ａ〜１ｅを直接取得してもよい。また、画像取得部１１は、図示しない記憶装置に記憶された撮像画像１ａ〜１ｅを取得してもよい。
【００１６】
算出部１２は、撮像画像１ａ〜１ｅの各画素における合焦度合いを示す合焦測度に基づいて、撮像画像１ａ〜１ｅの間で対応する対応画素のそれぞれについての被写体との距離に応じた距離情報を算出し、対応画素毎に算出された距離情報を有する情報群を算出する。算出部１２は、このような情報群の算出を、合焦測度の算出パラメータを変えて複数回実行し、情報群を複数算出する。
【００１７】
ここで、本実施の形態では例として、距離情報として、対応画素毎の被写体の高さが算出されるものとする。また、情報群は、対応画素に高さをプロットした高さ画像として算出されるものとする。算出部１２は、例えば、合焦測度の算出パラメータＰ１，Ｐ２，Ｐ３をそれぞれ用いて高さ画像２ａ，２ｂ，２ｃを算出する。高さ画像２ａ，２ｂ，２ｃは、被写体の表面形状を表わす３次元画像ということもできる。
【００１８】
また、算出パラメータＰ１，Ｐ２，Ｐ３は、合焦測度の算出時間（演算量）に変化が表れるようなパラメータである。例えば、注目画素の合焦測度を、注目画素を中心として矩形領域内の各画素について微分フィルタ処理を施した値の合計値として算出する方法がある。この場合、算出パラメータＰ１，Ｐ２，Ｐ３として、矩形領域のサイズを適用することができる。
【００１９】
また、例えば、算出パラメータＰ１，Ｐ２，Ｐ３は、注目画素の合焦測度の算出に用いる微分フィルタの種類であってもよい。このような微分フィルタの種類として、例えば、注目画素とその水平方向または垂直方向に所定画素数だけ離れた画素との間の差分を算出する簡易な微分フィルタ、４方向ラプラシアンフィルタ、８方向ラプラシアンフィルタなどがある。
【００２０】
さらに、例えば、微分フィルタを用いて合焦測度を算出する画素を間欠的に設定することで演算量を減らす方法が用いられる場合、算出パラメータＰ１，Ｐ２，Ｐ３は、微分フィルタを用いて合焦測度が算出される間隔であってもよい。
【００２１】
また、算出パラメータＰ１，Ｐ２，Ｐ３は、複数種類のパラメータについての設定値の組み合わせであってもよい。
合焦測度の算出時間が短くなるような算出パラメータが設定されるほど、その合焦測度に基づいて算出される距離情報の精度が低下する可能性が高い。そこで、パラメータ決定部１３は、異なる算出パラメータを用いて算出された情報群のそれぞれの算出に要した算出時間を計測するとともに、各情報群に含まれるノイズ成分の量を評価し、算出時間とノイズ成分の量とを情報群毎に比較する。パラメータ決定部１３は、比較結果に基づいて、算出時間とノイズ成分の量とがともに許容量以下となるような最適な算出パラメータを、各情報群の算出に用いた算出パラメータの中から決定して出力する。
【００２２】
図１の例では、パラメータ決定部１３は、高さ画像２ａ，２ｂ，２ｃのそれぞれの算出に要した算出時間と、高さ画像２ａ，２ｂ，２ｃのそれぞれに含まれるノイズ量とを評価し、算出時間とノイズ量とを高さ画像毎に比較する。パラメータ決定部１３は、比較結果に基づいて、算出時間とノイズ成分の量とがともに許容量以下となるような最適な算出パラメータを、算出パラメータＰ１，Ｐ２，Ｐ３の中から決定して出力する。例えば、パラメータ決定部１３は、算出パラメータＰ１，Ｐ２，Ｐ３の中からノイズ量が所定の閾値以下となる算出パラメータを抽出し、抽出した算出パラメータの中から算出時間が最短となる算出パラメータを最適な算出パラメータに決定する。
【００２３】
以上の処理によれば、情報処理装置１０は、ある対象物の距離情報を算出する際に用いる合焦測度の算出パラメータとして、距離情報を高精度かつ短時間で算出可能な最適な算出パラメータを決定することができる。情報処理装置１０は、同じ種類の対象物の距離情報を算出する際に、決定された最適な算出パラメータを用いることで、距離情報を高精度かつ短時間で算出することができる。
【００２４】
［第２の実施の形態］
図２は、第２の実施の形態に係る情報処理システムを示す図である。図２に示す情報処理システムは、カメラ５０、電圧制御装置６０、照明７０および制御装置１００を含む。なお、制御装置１００は、図１の情報処理装置１０の一例である。
【００２５】
カメラ５０は、計測対象の対象物８０を撮像し、撮像画像のデータを制御装置１００に送信する。カメラ５０は、フォーカス調整機構を含む光学系５１を備える。光学系５１には、電圧制御装置６０が接続されている。電圧制御装置６０は、制御装置１００からの制御信号に基づいて、合焦位置を制御するための制御電圧を光学系５１に出力する。照明７０は、対象物８０の撮像面に光を照射する。
【００２６】
光学系５１は、例えば、可変焦点レンズの一種であるダイナモルフレンズを備える。ダイナモルフレンズは、屈折率の異なる２種類の液体が充填された容器と、ピエゾアクチュエータとを有する。ピエゾアクチュエータの伸縮によって液体の体積を移動させて界面形状を変形させ、それにより光の屈折角が変化することで、可変焦点が実現される。光学系５１がダイナモルフレンズを備える場合、電圧制御装置６０は、ピエゾアクチュエータの駆動電圧を光学系５１に出力する。この場合、制御装置１００は、電圧制御装置６０から出力される駆動電圧を変化させることで、光学系５１の合焦位置を変化させることができる。
【００２７】
制御装置１００は、光学系５１の合焦位置を変化させながらカメラ５０から複数の撮像画像を取得し、それら複数の撮像画像を用いて、撮像画像の画素について被写体（対象物８０）の高さを算出する。ここで、本システムにおいては、カメラ５０は対象物８０をその上方から撮像し、カメラ５０のレンズの光軸は鉛直方向となる。制御装置１００によって算出される高さとは、カメラ５０のレンズの光軸上の所定位置（例えば、対象物８０におけるカメラ５０から最も離れた部分の位置）から、撮像画像の画素に写る対象物８０上の部位までの鉛直方向の距離を示す。
【００２８】
制御装置１００は、対象物８０の高さの計測結果として、例えば、算出された高さを各画素にプロットした高さ画像を出力することができる。また、制御装置１００は、例えば、対象物８０の形状を示す３次元画像を出力することもできる。この３次元画像は、撮像画像の水平方向の軸および垂直方向の軸と高さ方向の軸とによる３次元空間に各画素についての高さをプロットすることで、対象物８０の形状が表示された画像である。
【００２９】
なお、ある画素についての高さは、撮像位置からその画素に写る対象物８０上の部位までの距離に応じた値（すなわち、距離から一意に決まる値）である。このため、制御装置１００は、例えば、撮像位置からその画素に写る対象物８０上の部位までの距離を算出し、算出された距離をその画素についての高さに換算してもよい。
【００３０】
図３は、制御装置のハードウェア構成例を示す図である。制御装置１００は、例えば、図３に示すようなコンピュータとして実現される。
制御装置１００は、プロセッサ１０１によって装置全体が制御されている。プロセッサ１０１は、マルチプロセッサであってもよい。プロセッサ１０１は、例えばＣＰＵ、ＭＰＵ（Micro Processing Unit）、ＤＳＰ、ＡＳＩＣ、またはＰＬＤ（Programmable Logic Device）である。またプロセッサ１０１は、ＣＰＵ、ＭＰＵ、ＤＳＰ、ＡＳＩＣ、ＰＬＤのうちの２以上の要素の組み合わせであってもよい。
【００３１】
プロセッサ１０１には、バス１０９を介して、ＲＡＭ（Random Access Memory）１０２と複数の周辺機器が接続されている。
ＲＡＭ１０２は、制御装置１００の主記憶装置として使用される。ＲＡＭ１０２には、プロセッサ１０１に実行させるＯＳ（Operating System）プログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１０２には、プロセッサ１０１による処理に用いられる各種データが格納される。
【００３２】
バス１０９に接続されている周辺機器としては、ＨＤＤ１０３、グラフィック処理装置１０４、入力インタフェース１０５、読み取り装置１０６、ネットワークインタフェース１０７および通信インタフェース１０８がある。
【００３３】
ＨＤＤ１０３は、制御装置１００の補助記憶装置として使用される。ＨＤＤ１０３には、ＯＳプログラム、アプリケーションプログラム、および各種データが格納される。なお、補助記憶装置としては、ＳＳＤ（Solid State Drive）などの他の種類の不揮発性記憶装置を使用することもできる。
【００３４】
グラフィック処理装置１０４には、表示装置１０４ａが接続されている。グラフィック処理装置１０４は、プロセッサ１０１からの命令にしたがって、画像を表示装置１０４ａの画面に表示させる。表示装置としては、ＣＲＴ（Cathode Ray Tube）を用いた表示装置や液晶表示装置などがある。
【００３５】
入力インタフェース１０５には、入力装置１０５ａが接続されている。入力インタフェース１０５は、入力装置１０５ａから出力される信号をプロセッサ１０１に送信する。入力装置１０５ａとしては、キーボードやポインティングデバイスなどがある。ポインティングデバイスとしては、マウス、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【００３６】
読み取り装置１０６には、可搬型記録媒体１０６ａが脱着される。読み取り装置１０６は、可搬型記録媒体１０６ａに記録されたデータを読み取ってプロセッサ１０１に送信する。可搬型記録媒体１０６ａとしては、光ディスク、光磁気ディスク、半導体メモリなどがある。
【００３７】
ネットワークインタフェース１０７は、ネットワーク１０７ａを介して他の装置との間でデータの送受信を行う。
通信インタフェース１０８は、接続された外部デバイスとの間でデータの送受信を行う。本実施の形態では、通信インタフェース１０８には、外部デバイスとしてカメラ５０が接続されており、通信インタフェース１０８は、カメラ５０から送信された画像データをプロセッサに送信する。
【００３８】
以上のようなハードウェア構成によって、制御装置１００の処理機能を実現することができる。
次に、制御装置１００による高さ計測処理について説明する。
【００３９】
図４は、高さ計測処理の例を示すフローチャートである。以下、図４に示す処理をステップ番号に沿って説明する。
（Ｓ１１）制御装置１００は、電圧制御装置６０に出力する制御信号を変化させることでカメラ５０の合焦位置を変化させながら、カメラ５０によって撮像される画像を順次取得する。これにより、制御装置１００は、撮像時の合焦位置が異なるＬ枚（ただし、Ｌは２以上の整数）の撮像画像をカメラ５０から取得する。
【００４０】
（Ｓ１２）制御装置１００は、Ｌ枚の撮像画像の全画素について、フィルタを用いた演算により、合焦の度合いを示す合焦測度を算出する。合焦測度の算出は、例えば、微分フィルタを用いて行われる。
【００４１】
（Ｓ１３）制御装置１００は、画素毎に、Ｌ枚の撮像画像のそれぞれから算出された合焦測度のピーク位置を算出する。ピーク位置とは、算出された合焦測度がピーク値となる制御電圧の値を示す。ピーク位置の算出は、例えば、関数フィッティングを用いて行われる。
【００４２】
（Ｓ１４）制御装置１００は、画素毎に、合焦測度のピーク位置に基づいて高さを算出する。高さの算出は、例えば、事前に生成された、ピーク位置と高さとの関係を示す変換式を用いて行われる。
【００４３】
図５は、フィルタを用いた合焦測度の基本的な算出例を示す図である。図４のステップＳ１２では、例えば、次のような方法で合焦測度が算出される。
ｘ座標がｉ、ｙ座標がｊの注目画素（ｉ，ｊ）の画素値をＩ（ｉ，ｊ）とすると、注目画素（ｉ，ｊ）の合焦測度Ｂ（ｉ，ｊ）は、例えば、次の式（１）によって求められる。
Ｂ（ｉ，ｊ）＝ＭＡＸ｛［Ｉ（ｉ，ｊ）−Ｉ（ｉ＋ｍ，ｊ）］2，［Ｉ（ｉ，ｊ）−Ｉ（ｉ，ｊ＋ｍ）］2，｝      ・・・（１）
式（１）において、ＭＡＸ｛Ｘ，Ｙ｝は、ＸとＹのうち大きい方を選択することを示す。また、ｍは、２以上の整数であり、フィルタサイズ（カーネルサイズ）を示す。
【００４４】
図５は、フィルタサイズｍが２の場合の例を示している。図５において、配列２０１，２０２は、式（１）でｍ＝２とした場合の、注目画素を中心とした各画素に対するフィルタ係数の配列を示す。図５に示すように、式（１）は、注目画素（ｉ，ｊ）とその水平方向にｍ画素分ずれた画素との間の画素値の勾配、および、注目画素（ｉ，ｊ）とその垂直方向にｍ画素分ずれた画素との間の画素値の勾配のうち、大きい方の値が出力されることを示す。
【００４５】
なお、各画素の画素値としては、例えば、ＲＧＢ（Red Green Blue）信号等のカラー画像信号を変換した輝度信号の値が用いられる。また、上記の式（１）は微分フィルタの算出式の一例であり、他の微分フィルタの算出式が用いられてもよい。
【００４６】
図６は、合焦測度の実際の算出例を示す図である。処理対象の画素（注目画素）の合焦測度の値は、注目画素についてのみ上記の式（１）を用いた演算を行うことで算出されてもよいが、本実施の形態では次のような算出方法を用いるものとする。
【００４７】
図６に示すように、制御装置１００は、注目画素を中心としたｐ×ｑ画素の矩形領域を設定し、この矩形領域における各画素について式（１）の演算を実行する。制御装置１００は、矩形領域内の各画素について得られた演算結果の加算値を、注目画素の合焦測度として出力する。なお、ｐ，ｑは、１以上の奇数である。また、ｐ＝ｑであることが望ましい。
【００４８】
注目画素（ｉ，ｊ）の合焦測度Ｂ（ｉ，ｊ）は、次の式（２）によって表すことができる。
【００４９】
【数１】
2016218317.tif 000003
【００５０】
式（２）を用いた方法によれば、矩形領域内での式（１）の演算結果が平均化され、注目画素の周囲の画像状態（例えば、エッジの位置や向き）が合焦測度Ｂ（ｉ，ｊ）に正確に反映されやすくなる。このため、注目画素のみの算出結果を合焦測度Ｂ（ｉ，ｊ）として出力する場合と比較して、合焦測度Ｂ（ｉ，ｊ）の算出処理に対するノイズの影響を軽減することができ、合焦測度Ｂ（ｉ，ｊ）の算出精度を高めることができる。
【００５１】
なお、詳しくは後述するが、図４のステップＳ１２では、計算量の削減のために、制御装置１００は、式（２）の計算を行う対象の注目画素を、撮像画像の全画素とせずに一定間隔で間欠的に設定してもよい。
【００５２】
図７は、関数フィッティングによる合焦測度の算出例を示す図である。図４のステップＳ１３では、例えば、関数フィッティングを用いた次のような方法で合焦測度のピーク位置が算出される。
【００５３】
制御装置１００は、関数フィッティングの誤差を低減するために、まず、各画素についてＬ枚の撮像画像から算出された合焦測度を、最大値が１００％となるように正規化する。以下、正規化された合焦測度を“正規化合焦測度”と記載する。図７は、ある１つの画素についてＬ枚の撮像画像から算出された正規化合焦測度の分布を示している。なお、図７において、横軸の制御電圧は、対応する画像の撮像時に電圧制御装置６０から光学系５１に出力されていた駆動電圧を示す。
【００５４】
制御装置１００は、画素毎の制御電圧と正規化合焦測度との関係を、次の式（３）に示す“ローレンツ関数”と呼ばれる２次関数によって近似する。
【００５５】
【数２】
2016218317.tif 000004
【００５６】
式（３）において、α，β，ｚ0は係数である。制御装置１００は、ｚに制御電圧を入力したときの正規化合焦測度の算出値と理論値との誤差を算出する。制御装置１００は、このような誤差の算出を係数α，β，ｚ0を変化させながら実行し、誤差が最小となる係数α，β，ｚ0の値を算出する。図７の曲線は、算出された係数α，β，ｚ0を用いたローレンス関数を示す。このような関数フィッティングによって得られた係数ｚ0が、ピーク位置を示す。
【００５７】
図８は、合焦測度のピーク位置に基づく高さの算出例を示す。図４のステップＳ１４では、例えば、ピーク位置（制御電圧）と高さとの関係を示す変換式を用いて、高さが算出される。例えば、図８のグラフに示すような制御電圧毎の高さのサンプルがあらかじめ１０点程度用意される。そして、これらのサンプルに基づいて制御電圧と高さとの関係を示す近似曲線が算出される。制御装置１００は、ステップＳ１３で算出されたピーク位置（制御電圧）を、近似曲線を示す変換式に代入することで、高さを算出することができる。なお、次の式（４）は、図８に示すサンプルから得られた近似曲線を示す変換式の例である。
Ｈ（ｘ）＝０．０４９６ｘ2＋４．９５１８ｘ−１１５．１７      ・・・（４）
ところで、上記の高さ算出処理では、計算量が多く、その処理時間が長くなるという問題がある。例えば、図４のステップＳ１２では、Ｌ枚の画像のそれぞれに含まれる全画素について、合焦測度が算出されるので、合焦測度の算出回数が多く、その算出に長い時間がかかる。また、図６に示したように、各注目画素の合焦測度を、注目画素を中心とする矩形領域内の全画素についてのフィルタ演算の加算値とした場合には、フィルタ演算の実行回数が多くなり、合焦測度の算出にさらに長い時間がかかる。
【００５８】
これに対して、例えば、上記の式（２）の計算対象とする注目画素を、各撮像画像の全画素とせず、一定間隔で間欠的に設定することで、合焦測度の計算量を減少させることができる。以下、式（２）の計算対象とする注目画素を設定する垂直方向および水平方向に対する間隔を、「画素ピッチ」と記載する。例えば、画素ピッチが２である場合、垂直方向の第１ライン，第３ライン，第５ライン，・・・の各ラインにおいて、水平方向に並列する第１画素，第３画素，第５画素，・・・が注目画素に設定される。画素ピッチが１の場合、全画素が注目画素に設定される。
【００５９】
また、注目画素の合焦測度を算出する際の矩形領域のサイズ（ｐ×ｑ）を小さくすることで、フィルタ演算の実行回数を減少させ、合焦測度の算出にかかる時間を短縮することができる。以下、矩形領域を正方形とし（すなわち、ｐ＝ｑとし）、矩形領域のサイズを「領域サイズ」と記載する。
【００６０】
ここで、領域サイズと画素ピッチとの組み合わせ毎に、上記手順によって高さ情報を算出するまでに要する算出時間について示したグラフについて説明する。
図９は、領域サイズと算出時間との対応関係のグラフを示す図である。グラフの横軸は、領域サイズを示している。グラフの縦軸は、算出時間を示している。図９によれば、領域サイズが大きいほど算出時間が長くなり、領域サイズが小さいほど算出時間が短くなる。また、図９によれば、画素ピッチが小さいほど算出時間が長くなり、画素ピッチが大きいほど算出時間が短くなる。
【００６１】
しかしながら、算出時間が短くなるように領域サイズや画素ピッチを設定するほど、高さの算出精度が低下するという問題がある。ここで、図１０，１１を用いて、領域サイズの設定の違いによる高さ算出精度の違いの例について説明する。
【００６２】
図１０，１１は、領域サイズと画素ピッチとの組み合わせと、高さ算出精度との関係の例を示す図である。図１０（Ａ）は、カメラ５０による撮像の対象とする対象物８１の例を示す。対象物８１は、それぞれ高さが異なる平坦部８１ａ〜８１ｃを有する。点線で示す撮像領域８２を、カメラ５０による撮像対象の領域とする。なお、図１０，１１において、撮像画像の水平方向および垂直方向をそれぞれｘ軸，ｙ軸とし、算出される高さの方向をｚ軸とする。
【００６３】
図１０（Ｂ），（Ｃ）は、撮像領域８２における対象物８１の高さをｘ軸、ｙ軸、ｚ軸による３次元空間にプロットすることで対象物８１の形状を表示した３次元画像の例を示す。また、図１１（Ａ），（Ｂ）は、あるｙ座標における高さの算出結果を示すグラフである。すなわち、図１１（Ａ）は、図１０（Ｂ）のあるｙ座標の位置でのｘ−ｚ座標系における高さの分布を示し、図１１（Ｂ）は、図１０（Ｃ）の同じｙ座標の位置でのｘ−ｚｚ座標系における高さの分布を示す。
【００６４】
図１０（Ｂ）および図１１（Ａ）は、領域サイズを１５×１５画素、画素ピッチを４に設定した場合の高さの算出結果の例を示す。また、図１０（Ｃ）および図１１（Ｂ）は、領域サイズを１１×１１画素、画素ピッチを４に設定した場合の高さの算出結果の例を示す。
【００６５】
図１０および図１１によれば、領域サイズが１５×１５画素の場合より１１×１１画素の場合の方が、測定結果に基づく対象物８１の形状にスパイク状のノイズが多く発生している。このように、領域サイズを小さくして算出時間を短くした場合、高さの算出精度が低下する。
【００６６】
また、図示しないが、画素ピッチを大きくして算出時間を短くした場合にも、高さの算出精度は低下する。例えば、画素ピッチを大きくするほど、対象物の８１の形状を示す画像の解像度が実質的に低下するため、全体として高さの算出精度は低下する。また、画素ピッチと被写体の形状との関係によっては、画素ピッチが大きいほどスパイク状のノイズが多く発生する場合もある。
【００６７】
そこで、第２の実施の形態では、制御装置１００は、画素ピッチと領域サイズとがそれぞれ異なる組み合わせを用意しておき、ある対象物について、各組み合わせを用いて高さ情報を算出する。制御装置１００は、組み合わせ毎に算出された高さ情報に含まれるノイズ量を平滑化フィルタによって評価し、ノイズ量が一定量以下の組み合わせを抽出する。制御装置１００は、抽出された組み合わせのうち、高さ情報を算出するまでの時間が最も短い領域サイズと画素ピッチとの組み合わせを、その対象物の高さ算出のための最適なパラメータとして特定する。これにより、その対象物について、高さの測定精度をある程度以上に維持しつつ、高さの算出に要する時間を短縮できるような画素ピッチと領域サイズの組み合わせを特定できる。
【００６８】
図１２は、制御装置の機能例を示す図である。制御装置１００は、記憶部１１０、画像取得部１２０、制御部１３０、高さ算出部１４０、メディアンフィルタ部１５０、ノイズ判定部１６０および決定部１７０を有する。記憶部１１０は、例えば、ＲＡＭ１０２またはＨＤＤ１０３に確保した記憶領域として実装される。画像取得部１２０、制御部１３０、高さ算出部１４０、メディアンフィルタ部１５０、ノイズ判定部１６０および決定部１７０は、例えば、プロセッサ１０１が実行するプログラムのモジュールとして実装される。
【００６９】
記憶部１１０は、パラメータ管理テーブル、算出結果テーブルおよび条件管理テーブルを有する。パラメータ管理テーブルには、画素ピッチと領域サイズとの対応関係を示す情報が登録される。算出結果テーブルには、画素ピッチと領域サイズの組み合わせ毎に高さ算出部１４０およびノイズ判定部１６０の処理により算出された結果を示す情報が登録される。条件管理テーブルには、ノイズ判定部１６０および決定部１７０の処理で判定する際に用いられる条件などを示す情報が登録される。
【００７０】
画像取得部１２０は、カメラ５０からの撮像画像の取得処理を制御する。具体的には、画像取得部１２０は、電圧制御装置６０に出力する制御信号を変化させて、光学系５１の合焦位置を変化させながら、カメラ５０から同一の対象物が写ったＬ枚の撮像画像を取得する。画像取得部１２０は、取得したＬ枚の撮像画像を記憶部１１０に格納する。
【００７１】
制御部１３０は、高さ算出部１４０、メディアンフィルタ部１５０、ノイズ判定部１６０および決定部１７０を制御する。制御部１３０は、高さ算出部１４０、メディアンフィルタ部１５０、ノイズ判定部１６０および決定部１７０を制御することで、ある種類の対象物についての高さ算出のための最適パラメータの決定処理を実行する。また、制御部１３０は、高さ算出部１４０を制御することで、ある種類の対象物について決定された最適パラメータを用いた、同じ種類の対象物の高さ算出処理を実行する。
【００７２】
ここで、１つの種類の対象物とは、例えば、同じ設計値に基づいて設計・製造される対象物を示す。例えば、製造ラインにおいて製造される同じ製品は、同じ種類の対象物に該当する。最適パラメータの決定処理では、対象物の種類毎に高さ算出のための最適なパラメータが決定される。例えば、同じ種類の対象物の中からサンプルが抽出され、そのサンプルを用いて最適パラメータの決定処理が行われる。そして、残りの対象物について、決定された最適パラメータを用いて高さ算出処理が実行される。なお、決定されるパラメータは、本実施の形態では画素ピッチと領域サイズである。
【００７３】
高さ算出部１４０は、Ｌ枚の撮像画像のそれぞれにおける複数画素について合焦測度を算出する。高さ算出部１４０は、合焦測度が算出された画素毎に、合焦測度のピーク位置を算出する。ピーク位置の算出方法としては、図４のステップＳ１３に示した方法が用いられる。高さ算出部１４０は、算出された合焦測度のピーク位置に基づいて高さを算出する。高さの算出方法としては、図４のステップＳ１４に示した方法が用いられる。
【００７４】
最適パラメータの決定処理では、高さ算出部１４０は、領域サイズと画素ピッチとがそれぞれ異なる組み合わせを用いて、高さ画像を作成する。高さ画像とは、算出された高さを対応する画素にプロットすることで得られる画像である。一方、最適パラメータの決定処理後の高さ算出処理では、高さ算出部１４０は、決定された最適パラメータを用いて画素毎の高さを算出する。
【００７５】
メディアンフィルタ部１５０は、領域サイズと画素ピッチとの組み合わせ毎に、作成された高さ画像に対してメディアンフィルタ処理を実行する。メディアンフィルタ処理とは、注目画素を中心とした所定領域に含まれる各画素の高さ情報を昇順または降順にソートし、ソートした高さ情報のうち中央値を有する高さ情報を注目画素の値として出力するものである。図１０で示したように領域サイズと画素ピッチと組み合わせを用いて、作成された高さ画像にはノイズが含まれる場合がある。メディアンフィルタ部１５０が、ノイズが含まれる高さ画像に対してメディアンフィルタ処理を実行することで、平滑化された高さ画像が作成される。以下、メディアンフィルタによって平滑化された高さ画像を「メディアン画像」と記載する場合がある。
【００７６】
なお、メディアンフィルタ部１５０は、メディアンフィルタ以外の平滑化フィルタを用いて高さ画像を平滑化してもよい。例えば、メディアンフィルタ処理の代わりに移動平均フィルタ処理を用いてもよい。移動平均フィルタ処理とは、例えば、領域サイズが３×３画素の場合、注目画素を中心に３×３画素に含まれる各画素の高さ情報を平均した高さ情報を注目画素の値として出力するものである。
【００７７】
ノイズ判定部１６０は、高さ算出部１４０が作成した高さ画像と当該高さ画像を平滑化したメディアン画像とを比較して、当該高さ画像に含まれるノイズ量を評価する。具体的には、ノイズ判定部１６０は、画素毎に高さ画像とメディアン画像との差分を算出し、差分が所定のノイズ閾値を超える場合、その画素の値をノイズとみなす。ノイズ判定部１６０は、ノイズとみなされた画素の数をその高さ画像のノイズ数として算出結果テーブルに登録する。
【００７８】
決定部１７０は、算出結果テーブルに登録されているノイズ数に基づいて、領域サイズと画素ピッチとの組み合わせのうち、高さ算出精度が許容量以上である組み合わせを抽出する。具体的には、決定部１７０は、ノイズ数が所定のノイズ数閾値以下である高さ画像に対応する組み合わせを、高さ算出精度が許容量以上である組み合わせとして抽出する。決定部１７０は、条件管理テーブルに登録されている内容にしたがって、抽出された組み合わせの中から最適な領域サイズと画素ピッチとの組み合わせを特定する。
【００７９】
図１３は、パラメータ管理テーブルの例を示す図である。パラメータ管理テーブル１１１は、記憶部１１０に格納される。パラメータ管理テーブル１１１は、リスト番号、画像ピッチおよび領域サイズの項目を含む。
【００８０】
リスト番号の項目には、パラメータの組み合わせを識別する情報が登録される。画像ピッチの項目には、画像ピッチの大きさを示す情報が登録される。領域サイズの項目には、領域サイズの大きさを示す情報が登録される。
【００８１】
例えば、パラメータ管理テーブル１１１には、リスト番号が“１”、画像ピッチが“２”、領域サイズが“１５×１５”という情報が登録される。これは、リスト番号“１”には、“２”画像ピッチ、領域サイズ“１５×１５”画素が対応付けられていることを示す。
【００８２】
図１４は、算出結果テーブルの例を示す図である。算出結果テーブル１１２は、記憶部１１０に格納される。算出結果テーブル１１２は、リスト番号、算出時間およびノイズ数の項目を含む。
【００８３】
リスト番号の項目には、パラメータ管理テーブル１１１のリスト番号に対応する情報が登録される。算出時間の項目には、高さ画像の算出に要した時間を示す情報が登録される。ノイズ数の項目には、高さ画像から算出されたノイズ数を示す情報が登録される。
【００８４】
例えば、算出結果テーブル１１２には、リスト番号が“１”、算出時間が“Ｔ１”、ノイズ数が“Ｎ１”という情報が登録される。これは、パラメータ管理テーブル１１１のリスト番号“１”に対応する画素ピッチおよび領域サイズの組み合わせを用いた場合、算出時間が“Ｔ１”、ノイズ数が“Ｎ１”であることを示す。
【００８５】
図１５は、条件管理テーブルの例を示す図である。条件管理テーブル１１３は、記憶部１１０に格納される。条件管理テーブル１１３は、ノイズ閾値、ノイズ数閾値、算出時間閾値および選択条件の項目を含む。
【００８６】
ノイズ閾値の項目には、画素の値をノイズとみなすか否かを判定するための閾値を示す情報が登録される。ノイズ数閾値の項目には、ノイズ数の閾値を示す情報が登録される。算出時間閾値の項目には、高さ画像の算出時間の閾値を示す情報が登録される。選択条件の項目には、ユーザの入力操作に応じて“時間最短”と“高精度”のいずれかが登録される。“時間最短”は、高さ画像の算出時間が最短となるパラメータの組み合わせを特定することを示す。“高精度”は、ノイズ量および算出時間が一定量以下になる条件下で最も高さ画像の精度が高くなるパラメータの組み合わせを特定することを示す。
【００８７】
次に、制御装置１００の処理についてフローチャートを用いて説明する。
図１６は、組み合わせ決定処理の例（その１）を示すフローチャートである。以下、図１６に示す処理をステップ番号に沿って説明する。
【００８８】
（Ｓ２１）画像取得部１２０は、ｋを１に初期化する。ｋは、撮像画像の番号を示す変数である。
（Ｓ２２）画像取得部１２０は、電圧制御装置６０に制御信号を出力して、光学系５１の合焦位置を指示する。これにより、光学系５１のアクチュエータが駆動され、合焦位置が指示された位置になる。
【００８９】
（Ｓ２３）画像取得部１２０は、カメラ５０によって撮像された撮像画像を取得する。取得された撮像画像は、ｋ番目の撮像画像ＩＭＧ（ｋ）として記憶部１１０に格納される。なお、撮像画像は、いずれも、Ｎ×Ｍ画素を有するものとする。
【００９０】
（Ｓ２４）画像取得部１２０は、ｋの値が、１回の高さ算出での撮像画像の上限数Ｌに達したかを判定する。Ｌの値は、予め記憶部１１０に設定されている。ｋがＬに達していない場合、処理をステップＳ２５に進める。ｋがＬと等しい場合、処理をステップＳ２６に進める。
【００９１】
（Ｓ２５）画像取得部１２０は、ｋの値を１だけインクリメントする。そして、処理をステップＳ２２に進める。ステップＳ２２の処理が実行される度に、画像取得部１２０が指示する合焦位置が１ステップずつ変更される。これにより、ステップＳ２４で“Ｙｅｓ”と判定されたとき、合焦位置の異なるＬ枚の撮像画像が記憶部１１０に格納された状態となる。
【００９２】
（Ｓ２６）高さ算出部１４０は、ｎを１に初期化する。ｎは、パラメータ管理テーブル１１１のリスト番号を示す変数である。
（Ｓ２７）制御部１３０は、パラメータ管理テーブル１１１からリスト番号ｎのパラメータ（画素ピッチおよび領域サイズ）を読み込む。
【００９３】
（Ｓ２８）制御部１３０は、ステップＳ２７で読み込んだパラメータを高さ算出部１４０に設定し、高さ算出処理の実行を指示する。高さ算出部１４０は、設定されたパラメータを用いて高さ算出処理を実行し、高さ画像を作成する。また、制御部１３０は、高さ画像の作成に要した時間を計測し、計測された時間を、算出結果テーブル１１２のリスト番号ｎにおける算出時間の項目に登録する。
【００９４】
（Ｓ２９）制御部１３０は、メディアンフィルタ処理の実行をメディアンフィルタ部１５０に指示する。メディアンフィルタ部１５０は、ステップＳ２８で作成された高さ画像に対するメディアンフィルタ処理を実行し、メディアン画像を作成する。
【００９５】
（Ｓ３０）制御部１３０は、ノイズ判定処理の実行をノイズ判定部１６０に指示する。ノイズ判定部１６０は、ステップＳ２８で作成された高さ画像とステップＳ２９で作成されたメディアン画像との差分に基づくノイズ判定処理を実行し、ノイズ数を算出する。制御部１３０は、算出されたノイズ数を、算出結果テーブル１１２のリスト番号ｎにおけるノイズ数の項目に登録する。
【００９６】
（Ｓ３１）制御部１３０は、パラメータ管理テーブル１１１の全てのリスト番号について処理済みであるか否かを判定する。全て処理済みの場合、処理をステップＳ４１に進める。全て処理済みでない場合、処理をステップＳ３２に進める。
【００９７】
（Ｓ３２）制御部１３０は、ｎの値を１だけインクリメントする。そして、処理をステップＳ２７に進める。
ステップＳ３１で“Ｙｅｓ”と判定されたとき、パラメータ管理テーブル１１１に登録されたすべてのパラメータの組み合わせを用いて算出された算出時間とノイズ数とが、算出結果テーブル１１２に登録された状態となる。
【００９８】
図１７は、組み合わせ決定処理の例（その２）を示すフローチャートである。以下、図１７に示す処理をステップ番号に沿って説明する。なお、図１７の処理では、記憶部１１０に中間情報としてリスト番号が一時的に記憶される。図１７の処理の開始時には、このリスト番号は記憶されていない。
【００９９】
（Ｓ４１）決定部１７０は、ｎを１に初期化する。
（Ｓ４２）決定部１７０は、算出結果テーブル１１２のリスト番号ｎに登録されたノイズ数ＮＣ（ｎ）が、条件管理テーブル１１３のノイズ数閾値以下であるか否かを判定する。ノイズ数閾値以下である場合、処理をステップＳ４３に進める。ノイズ数閾値以下でない場合、処理をステップＳ４９に進める。
【０１００】
（Ｓ４３）決定部１７０は、条件管理テーブル１１３の選択条件が、時間最短であるか否かを判定する。時間最短である場合、処理をステップＳ４４に進める。時間最短でない場合、すなわち高精度の場合、処理をステップＳ４６に進める。
【０１０１】
（Ｓ４４）決定部１７０は、算出結果テーブル１１２のリスト番号ｎに登録された算出時間が、算出結果テーブル１１２における、記憶部１１０に記憶されているリスト番号に登録された算出時間よりも短いか否かを判定する。短い場合、処理をステップＳ４５に進める。長い場合、処理をステップＳ４９に進める。
【０１０２】
なお、記憶部１１０にリスト番号が記憶されていない場合、ステップＳ４４を実行せずに、処理をステップＳ４５に進める。
（Ｓ４５）決定部１７０は、記憶部１１０に記憶されているリスト番号をｎに更新する。そして、処理をステップＳ４９に進める。なお、記憶部１１０にリスト番号が記憶されていない場合、決定部１７０は、リスト番号としてｎを新規に登録する。
【０１０３】
（Ｓ４６）決定部１７０は、算出結果テーブル１１２のリスト番号ｎに登録された算出時間が、条件管理テーブル１１３の算出時間閾値以下であるか否かを判定する。算出時間閾値以下の場合、処理をステップＳ４７に進める。算出時間閾値以下でない場合、処理をステップＳ４９に進める。
【０１０４】
（Ｓ４７）決定部１７０は、パラメータ管理テーブル１１１のリスト番号ｎに登録された画素ピッチおよび領域サイズと、パラメータ管理テーブル１１１における、記憶部１１０に記憶されているリスト番号に登録された画素ピッチおよび領域サイズとを比較する。前者を第１の画素ピッチおよび第１の領域サイズとし、後者を第２の画素ピッチおよび第２の領域サイズとする。
【０１０５】
ここで、例として、選択条件が高精度の場合には、画素ピッチが小さいパラメータの組み合わせが優先されるものとする。この場合、決定部１７０は、次のいずれかの条件に適合するかを判定する。いずれかの条件に適合する場合、処理をステップＳ４８に進める。いずれの条件にも適合しない場合、処理をステップＳ４９に進める。
【０１０６】
（条件１）第１の画素ピッチが第２の画素ピッチより小さく、かつ、第１の領域サイズが第２の領域サイズより大きい場合。
（条件２）第１の画素ピッチが第２の画素ピッチと同一であり、かつ、第１の領域サイズが第２の領域サイズより大きい場合。
【０１０７】
なお、記憶部１１０にリスト番号が記憶されていない場合、ステップＳ４７を実行せずに、処理をステップＳ４８に進める。
（Ｓ４８）決定部１７０は、記憶部１１０に記憶されているリスト番号をｎに更新する。そして、処理をステップＳ４９に進める。なお、記憶部１１０にリスト番号が記憶されていない場合、決定部１７０は、リスト番号としてｎを新規に登録する。
【０１０８】
（Ｓ４９）決定部１７０は、パラメータ管理テーブル１１１の全てのリスト番号について処理済みであるか否かを判定する。全て処理済みの場合、処理をステップＳ５１に進める。全て処理済みでない場合、処理をステップＳ５０に進める。
【０１０９】
（Ｓ５０）決定部１７０は、ｎの値を１だけインクリメントする。そして、処理をステップＳ４２に進める。
（Ｓ５１）決定部１７０は、パラメータ管理テーブル１１１における、記憶部１１０に記憶されているリスト番号に登録された画像ピッチおよび領域サイズの組み合わせを、最適パラメータとして決定する。そして、処理を終了する。
【０１１０】
以上の図１７の処理では、選択条件が時間最短の場合、ステップＳ４２，Ｓ４４，Ｓ４５の処理により、ノイズ数がノイズ数閾値以下となるパラメータの組み合わせのうち、高さ算出時間が最短となるパラメータの組み合わせが最適パラメータに決定される。また、選択条件が高精度の場合、ステップＳ４２，Ｓ４６〜Ｓ４８の処理により、ノイズ数がノイズ数閾値以下となり、かつ、高さ算出時間が算出時間閾値以下となるパラメータの組み合わせのうち、画素ピッチが最小となるパラメータの組み合わせが最適パラメータに決定される。いずれの選択条件の場合でも、高さ画像に生じるノイズ量がある程度小さく、かつ、高さ算出時間もある程度の時間以下となるパラメータの組み合わせが、最適パラメータに決定される。
【０１１１】
図１８は、高さ算出処理の例（その１）を示すフローチャートである。以下、図１８に示す処理をステップ番号に沿って説明する。なお、図１８に示す処理はステップＳ２８の処理に対応する。また、図１８の処理の開始時には、制御部１３０は、高さ画像の作成に要する処理時間の計測を開始する。
【０１１２】
（Ｓ６１）高さ算出部１４０は、ｋを１に初期化する。
（Ｓ６２）高さ算出部１４０は、ｋ番目の撮像画像ＩＭＧ（ｋ）を処理対象として選択する。
【０１１３】
（Ｓ６３）高さ算出部１４０は、ｉ，ｊをともに１に初期化する。ｉ，ｊは、それぞれ注目画素の水平方向、垂直方向の座標を示す変数である。また、高さ算出部１４０は、ステップＳ２７で制御部１３０に設定された画素ピッチをｓに代入する。さらに、高さ算出部１４０は、ステップＳ２７で制御部１３０に設定された領域サイズをｐ，ｑに代入する。
【０１１４】
（Ｓ６４）高さ算出部１４０は、注目画素（ｉ，ｊ）の合焦測度Ｂ（ｉ，ｊ）を算出する。
（Ｓ６５）高さ算出部１４０は、ｉにｓを加算してｉを更新する。
【０１１５】
（Ｓ６６）高さ算出部１４０は、ｉが水平方向の画素数Ｎよりも大きいか否かを判定する。大きい場合、処理をステップＳ６７に進める。小さい場合、処理をステップＳ６４に進める。
【０１１６】
（Ｓ６７）高さ算出部１４０は、ｉを１に初期化する。
（Ｓ６８）高さ算出部１４０は、ｊにｓを加算してｊを更新する。
（Ｓ６９）高さ算出部１４０は、ｊが垂直方向の画素数Ｍよりも大きいか否かを判定する。大きい場合、処理をステップＳ７０に進める。小さい場合、処理をステップＳ６４に進める。
【０１１７】
（Ｓ７０）高さ算出部１４０は、ｋの値が撮像画像の上限数Ｌに達したかを判定する。ｋがＬに達していない場合、処理をステップＳ７１に進める。ｋがＬと等しい場合、処理をステップＳ７２に進める。
【０１１８】
（Ｓ７１）高さ算出部１４０は、ｋの値を１だけインクリメントする。そして、処理をステップＳ６２に進める。
（Ｓ７２）高さ算出部１４０は、Ｌ枚の撮像画像のそれぞれの画素のうち、ステップＳ６４で合焦測度が算出されていない画素について、補間演算によって合焦測度を算出する。この補間演算は可能な限り簡単な演算手順であることが望ましい。例えば、高さ算出部１４０は、合焦測度が未算出の画素のその左右方向に存在するステップＳ６４で合焦測度が算出された算出済み画素を特定し、未算出の画素の合焦測度を算出済み画素の平均値として算出する。
【０１１９】
なお、このステップＳ７２の処理は実行されなくてもよい。この場合、高さ画像の画素数は画素ピッチの設定値によって変動し、後述する図１９の処理では、ＮおよびＭの値が画素ピッチの設定値に応じた高さ画像の水平方向および垂直方向の各画素数となる。また、後述する図２２において算出されるノイズ数は、算出元の高さ画像の画素数に応じて正規化されることが望ましい。
【０１２０】
図１９は、高さ算出処理の例（その２）を示すフローチャートである。以下、図１９に示す処理をステップ番号に沿って説明する。
（Ｓ８１）高さ算出部１４０は、ｉ，ｊをともに１に初期化する。
【０１２１】
（Ｓ８２）高さ算出部１４０は、Ｌ枚の撮像画像のそれぞれから注目画素（ｉ，ｊ）について算出された合焦測度を用いて関数フィッティングを行い、合焦測度のピーク位置を算出する。フィッティングに式（３）のローレンツ関数が用いられる場合、得られたローレンツ関数における係数ｚ0がピーク位置を示す。
【０１２２】
（Ｓ８３）高さ算出部１４０は、算出されたピーク位置、すなわち制御電圧の値を、該当画素に写る被写体の高さに変換する。制御電圧は、例えば、式（４）のような予め決められた算出式を用いて、高さに変換される。なお、例えば、ステップ毎の制御電圧と高さとの関係があらかじめ設定された変換テーブルを用いて、制御電圧が高さに変換されてもよい。高さ算出部１４０は、変換された高さの値を、注目画素（ｉ，ｊ）についての高さＨ（ｉ，ｊ）として記憶部１１０に保存する。
【０１２３】
（Ｓ８４）高さ算出部１４０は、ｉがＮと等しいか否かを判定する。等しい場合、処理をステップＳ８６に進める。等しくない場合、処理をステップＳ８５に進める。
（Ｓ８５）高さ算出部１４０は、ｉの値を１だけインクリメントする。そして、処理をステップＳ８２に進める。
【０１２４】
（Ｓ８６）高さ算出部１４０は、ｉを１に初期化する。
（Ｓ８７）高さ算出部１４０は、ｊがＭと等しいか否かを判定する。等しい場合、処理をステップＳ８９に進める。等しくない場合、処理をステップＳ８８に進める。
【０１２５】
（Ｓ８８）高さ算出部１４０は、ｊの値を１だけインクリメントする。そして、処理をステップＳ８２に進める。
（Ｓ８９）高さ算出部１４０は、記憶部１１０に保存されている全ての高さＨ（ｉ，ｊ）に基づいて、高さ画像ＩＭＧＨ（ｎ）を作成し、記憶部１１０に保存する。高さ算出部１４０は、制御部１３０に対して高さ画像の作成が完了したことを通知する。
【０１２６】
（Ｓ９０）制御部１３０は、算出結果テーブル１１２におけるリスト番号ｎの算出時間に、ステップＳ６１からステップＳ９０までの経過時間を登録する。そして、処理を終了する。
【０１２７】
図２０は、合焦測度の算出処理手順の例を示すフローチャートである。以下、図２０に示す処理をステップ番号に沿って説明する。なお、図２０に示す処理はステップＳ６４の処理に対応する。
【０１２８】
（Ｓ９１）高さ算出部１４０は、ｘに（ｉ−ｐ／２）を設定し、ｙに（ｊ−ｑ／２）を設定する。なお、ｘは、処理対象の画素のｘ座標を示す変数であり、ｙは、処理対象の画素のｙ座標を示す変数である。
【０１２９】
（Ｓ９２）高さ算出部１４０は、処理対象の画素（ｘ，ｙ）についての合焦測度Ｂ（ｘ，ｙ）を、式（１）を用いて算出する。なお、この計算では、式（１）のｉにｘが代入され、ｊにｙが代入される。
【０１３０】
（Ｓ９３）高さ算出部１４０は、ｘが（ｉ＋ｐ／２）に達したかを判定する。ｘが（ｉ＋ｐ／２）に達していない場合、ステップＳ９４の処理が実行される。ｘが（ｉ＋ｐ／２）と等しい場合、ステップＳ９５の処理が実行される。
【０１３１】
（Ｓ９４）高さ算出部１４０は、ｘの値を１だけインクリメントする。その後、ステップＳ９２に戻り、処理対象の画素が水平方向に１画素移動されて合焦測度が算出される。
（Ｓ９５）高さ算出部１４０は、ｙが（ｊ＋ｑ／２）に達したかを判定する。ｙが（ｊ＋ｑ／２）に達していない場合、ステップＳ９６の処理が実行される。ｙが（ｊ＋ｑ／２）と等しい場合、ステップＳ９７の処理が実行される。
【０１３２】
（Ｓ９６）高さ算出部１４０は、ｙの値を１だけインクリメントし、ｘの値を（ｉ−ｐ／２）に戻す。その後、ステップＳ９２に進み、垂直方向に隣接する次の行の先頭画素について合焦測度が算出される。
【０１３３】
（Ｓ９７）高さ算出部１４０は、ステップＳ９２で算出された（ｐ×ｑ）個の合焦測度をすべて加算することで、合焦測度Ｂ（ｉ，ｊ）を算出する。そして、処理を終了する。以上のステップＳ９１〜Ｓ９７の処理により、式（２）の演算が実行されたことになる。
【０１３４】
図２１は、メディアンフィルタ処理の例を示すフローチャートである。以下、図２１に示す処理をステップ番号に沿って説明する。なお、図２１に示す処理はステップＳ２９の処理に対応する。
【０１３５】
（Ｓ１０１）メディアンフィルタ部１５０は、記憶部１１０から高さ画像ＩＭＧＨ（ｎ）を読み出す。
（Ｓ１０２）メディアンフィルタ部１５０は、ｉ，ｊをともに１に初期化する。
【０１３６】
（Ｓ１０３）メディアンフィルタ部１５０は、高さ画像ＩＭＧＨ（ｎ）の画素（ｉ，ｊ）に対するメディアンフィルタ処理を実行する。
（Ｓ１０４）メディアンフィルタ部１５０は、メディアンフィルタ処理によって算出された高さＭ（ｉ，ｊ）を記憶部１１０に保存する。
【０１３７】
（Ｓ１０５）メディアンフィルタ部１５０は、ｉがＮと等しいか否かを判定する。等しい場合、処理をステップＳ１０７に進める。等しくない場合、処理をステップＳ１０６に進める。
【０１３８】
（Ｓ１０６）メディアンフィルタ部１５０は、ｉの値を１だけインクリメントする。そして、処理をステップＳ１０３に進める。
（Ｓ１０７）メディアンフィルタ部１５０は、ｉを１に初期化する。
【０１３９】
（Ｓ１０８）メディアンフィルタ部１５０は、ｊがＭと等しいか否かを判定する。等しい場合、処理をステップＳ１１０に進める。等しくない場合、処理をステップＳ１０９に進める。
【０１４０】
（Ｓ１０９）メディアンフィルタ部１５０は、ｊの値を１だけインクリメントする。そして、処理をステップＳ１０３に進める。
（Ｓ１１０）メディアンフィルタ部１５０は、記憶部１１０に保存されている全ての高さＭ（ｉ，ｊ）に基づいて、メディアン画像ＩＭＧＭ（ｎ）を作成し、記憶部１１０に保存する。メディアンフィルタ部１５０は、制御部１３０に対してメディアン画像の作成が完了したことを通知し、処理を終了する。
【０１４１】
なお、図２１では、メディアンフィルタを用いて高さ画像を平滑化したが、上述したように、移動平均フィルタなどの他の種類の平滑化フィルタを用いて平滑化してもよい。
図２２は、ノイズ判定処理の例を示すフローチャートである。以下、図２２に示す処理をステップ番号に沿って説明する。なお、図２２に示す処理はステップＳ３０の処理に対応する。
【０１４２】
（Ｓ１１１）ノイズ判定部１６０は、記憶部１１０から高さ画像ＩＭＧＨ（ｎ）を読み出す。
（Ｓ１１２）ノイズ判定部１６０は、記憶部１１０からメディアン画像ＩＭＧＭ（ｎ）を読み出す。
【０１４３】
（Ｓ１１３）ノイズ判定部１６０は、ｉ，ｊをともに１に初期化する。また、ノイズ判定部１６０は、ノイズ数ＮＣ（ｎ）に０を代入する。
（Ｓ１１４）ノイズ判定部１６０は、“｜高さＨ（ｉ，ｊ）−高さＭ（ｉ，ｊ）｜”が条件管理テーブル１１３のノイズ閾値よりも大きいか否かを判定する。大きい場合、処理をステップＳ１１５に進める。大きくない場合、処理をステップＳ１１６に進める。
【０１４４】
（Ｓ１１５）ノイズ判定部１６０は、高さ画像ＩＭＧＨ（ｎ）に対応するノイズ数ＮＣ（ｎ）に、“｜高さＨ（ｉ，ｊ）−高さＭ（ｉ，ｊ）｜”を加算する。なお、図２２の処理の開始時において、ノイズ数ＮＣ（ｎ）は０である。
【０１４５】
（Ｓ１１６）ノイズ判定部１６０は、ｉがＭと等しいか否かを判定する。等しい場合、処理をステップＳ１１８に進める。等しくない場合、処理をステップＳ１１７に進める。
（Ｓ１１７）ノイズ判定部１６０は、ｉの値を１だけインクリメントする。そして、処理をステップＳ１１４に進める。
【０１４６】
（Ｓ１１８）ノイズ判定部１６０は、ｉを１に初期化する。
（Ｓ１１９）ノイズ判定部１６０は、ｊがＮと等しいか否かを判定する。等しい場合、処理をステップＳ１２１に進める。等しくない場合、処理をステップＳ１２０に進める。
【０１４７】
（Ｓ１２０）ノイズ判定部１６０は、ｊの値を１だけインクリメントする。そして、処理をステップＳ１１４に進める。
（Ｓ１２１）ノイズ判定部１６０は、ノイズ数ＮＣ（ｎ）を制御部１３０に通知する。制御部１３０は、算出結果テーブル１１２のリスト番号ｎにおけるノイズ数の項目に、ノイズ数ＮＣ（ｎ）を登録する。
【０１４８】
以上の図２２の処理では、高さ画像とメディアン画像との間で画素毎に差分を求め、差分がノイズ閾値を超えている画素をノイズを含む画素と判定するようにした。これにより、スパイクノイズのような局所的に発生するノイズを高精度に検出することができる。そして、このようにしてノイズを含むと判定された画素の数を高さ画像毎に計数することで、高さ画像に含まれるノイズ量を高精度に評価することができる。
【０１４９】
図２３は、決定部の処理の具体例を示す図である。図２３では、４画素ピッチと１５×１５画素、４画素ピッチと１１×１１画素、４画素ピッチと７×７画素、８画素ピッチと１５×１５画素、８画素ピッチと１１×１１画素、８画素ピッチと７×７画素の６通りの組み合わせを用いた場合を示したものである。また、条件管理テーブル１１３のノイズ数閾値を“１００”とし、算出時間閾値を“１０”とする。
【０１５０】
図２３（Ａ）は、領域サイズとノイズ数との対応関係を示すグラフである。グラフの横軸は、領域サイズを示している。グラフの縦軸は、ノイズ数を示している。
決定部１７０は、６通りの組み合わせのうち、ノイズ数が１００個以下の組み合わせとして４画素ピッチと１５×１５画素、８画素ピッチと１５×１５画素、８画素ピッチと１１×１１画素の組み合わせを抽出する。
【０１５１】
図２３（Ｂ）は、領域サイズと算出時間との対応関係を示すグラフである。グラフの横軸は、領域サイズを示している。グラフの縦軸は、算出時間を示している。
決定部１７０は、条件管理テーブル１１３の選択条件が“時間最短”である場合、図２３（Ａ）で抽出された組み合わせの中から算出時間が最短の組み合わせを最適パラメータとして特定する。図２３（Ｂ）の例では、決定部１７０は、８画素ピッチと１１×１１画素の組み合わせを最適パラメータとして特定する。
【０１５２】
一方、決定部１７０は、条件管理テーブル１１３の選択条件が“高精度”である場合、図２３（Ａ）で抽出された組み合わせの中から、算出時間が算出時間閾値以下の組み合わせをさらに抽出する。図２３（Ｂ）の例では、決定部１７０は、算出時間が１０秒以下の８画素ピッチと１５×１５画素、８画素ピッチと１１×１１画素の組み合わせを抽出する。
【０１５３】
そして、決定部１７０は、抽出された組み合わせの中から画素ピッチが小さく、かつ領域サイズが大きい組み合わせを最適パラメータとして特定する。図２３（Ｂ）の例では、決定部１７０は、８画素ピッチと１５×１５画素の組み合わせを最適パラメータとして特定する。
【０１５４】
このように、第２の実施の形態によれば、高さ画像におけるノイズ発生量が許容量以下であり、なおかつ、高さ情報の算出時間も許容量以下となるパラメータの組み合わせを特定できる。
【０１５５】
なお、選択条件が“高精度”の場合には、例えば、次のような手順により算出時間閾値を動的に設定することもできる。例えば、決定部１７０は、ノイズ数がノイズ数閾値以下となるパラメータの組み合わせの中から、算出時間が最短となる組み合わせを特定する。決定部１７０は、その最短の算出時間に１より大きい所定の係数（例えば、１．２）を乗算した値を算出時間閾値に設定する。決定部１７０は、ノイズ数がノイズ数閾値以下となるパラメータの組み合わせの中から、前述の処理と同様に、算出時間が算出時間閾値以下となる組み合わせを抽出する。決定部１７０は、抽出した組み合わせの中から、画素ピッチが小さく、領域サイズが大きくなるような組み合わせを最適パラメータとして特定する。
【０１５６】
［第３の実施の形態］
次に、第３の実施の形態を説明する。前述の第２の実施の形態と共通する構成要素については同じ符号を付して示し、その説明を省略する。
【０１５７】
図２４は、第３の実施の形態の情報処理システムの例を示す図である。第３の実施の形態の情報処理システムは、第２の実施の形態で実現される機能に加えて、第２の実施の形態で特定された最適パラメータを利用する機能の一例を付加したものである。例えば、第３の実施の形態は、製品の製造工場などで実施される。図２４では、製造工場の製造ライン上に、対象物８０ａ〜８０ｃが存在する場合を示している。対象物８０ａは、対象物８０ｂ，８０ｃとは異なる製品である。対象物８０ｂと対象物８０ｃとは、同じ製品である。
【０１５８】
対象物８０ａ〜８０ｃは、製造ラインに沿って図２４中の左から右の方向に移動する。カメラ５０は、製造ライン上の対象物８０ａ〜８０ｃを順に撮像する。カメラ５０は、制御装置１００ａの制御の下で、各対象物を焦点位置を変えながら複数回撮像し、それらの撮像画像を制御装置１００ａに送信する。
【０１５９】
また、カメラ５０に加えて別のカメラ９０も設けられている。カメラ９０には、例えば、テレセントリックレンズのように被写界深度の深いレンズを有する光学系９１が取り付けられている。例えば、製造ライン上に対象物が等間隔で配置されるものとすると、カメラ９０は、カメラ５０の撮像対象の対象物より製造ラインの進行方向とは逆側に存在する対象物を撮像する。図２４の例では、カメラ５０が対象物８０ｂを撮像しているとき、カメラ９０は対象物８０ｃを撮像する。カメラ５０は、撮像によって得られた撮像画像を制御装置１００ａに送信する。
【０１６０】
制御装置１００ａは、第２の実施の形態の制御装置１００の機能に加えて、カメラ９０から受信した撮像画像に基づいて撮像対象の製品が変更されたか否かを判定する機能を有する。制御装置１００ａは、撮像対象の製品が変更されたと判定すると、制御装置１００と同様の手順で、変更後の製品の高さ情報の算出のための最適パラメータを特定する。そして、制御装置１００ａは、製造ライン上のそれ以後の同じ製品について、特定された最適パラメータを用いて高さ情報を算出する。なお、制御装置１００ａは、撮像対象の製品についての高さ情報を算出することで、例えば、その製品が設計値通りに製造されているか、その製品に必要な部品が正しい場所に搭載されているか、といった製品のチェックを行うことができる。
【０１６１】
図２５は、第３の実施の形態の制御装置の処理例を示すフローチャートである。図２５の処理は、製造ライン上の対象物が移動してカメラ５０の撮像領域に存在する対象物が変化するたびに実行される。以下、図２５に示す処理をステップ番号に沿って説明する。なお、制御装置１００ａの機能の基本的な構成は、第２の実施の形態の制御装置１００とほぼ同様である。そこで、以下の説明では、制御装置１００ａの機能を図１２に示した符号を用いて説明する。
【０１６２】
（Ｓ１３１）画像取得部１２０は、カメラ９０に対象物を撮像させ、撮像画像を取得して記憶部１１０に格納する。なお、このとき撮像される対象物は、カメラ５０の撮像領域に存在する対象物より製造ラインの進行方向とは逆側に存在する対象物である。
【０１６３】
（Ｓ１３２）制御部１３０は、記憶部１１０を参照し、前回のステップＳ１３１の処理でカメラ９０が撮像した撮像画像と前々回のステップＳ１３１の処理でカメラ９０が撮像した撮像画像とを比較する。前者の撮像画像は、現在カメラ５０の撮像領域に存在する対象物を撮像した画像であり、後者の撮像画像は、当該対象物より製造ラインの進行方向側に存在する対象物を撮像した画像である。制御部１３０は、比較結果に基づいて、前者の撮像画像に写った対象物と後者の撮像画像に写った対象物とが同一の製品であるか否かを判定する。同一の製品であるか否かは、例えば、各撮像画像間の差分や、各撮像画像上の特徴点の比較に基づいて判定される。
【０１６４】
なお、前者の撮像画像を後者の撮像画像と比較する代わりに、製品毎に用意されたテンプレート画像と前者の撮像画像とのパターンマッチングを行うことで、同一の製品であるかを判定してもよい。また、制御装置１００ａを操作するユーザから同一の製品である旨の指示を受けた場合に同一の製品と判定してもよい。同一の製品の場合、処理をステップＳ１３６に進める。同一の製品でない場合、処理をステップＳ１３３に進める。
【０１６５】
（Ｓ１３３）制御部１３０、高さ算出部１４０、メディアンフィルタ部１５０、ノイズ判定部１６０および決定部１７０の処理により、図１６，１７に示した手順にしたがって該当製品についての最適なパラメータの組み合わせが新たに決定される。
【０１６６】
（Ｓ１３４）制御部１３０は、決定された最適パラメータの組み合わせによって、記憶部１１０に記憶されている最適パラメータの組み合わせを更新する。
（Ｓ１３５）制御部１３０の制御により、ステップＳ１３３の処理で作成された高さ画像の中から、決定された最適パラメータの組み合わせを用いて作成された高さ画像が、撮像対象に対応する高さ画像として出力される。
【０１６７】
（Ｓ１３６）制御部１３０は、記憶部１１０に保存されている最適パラメータの組み合わせを読み込む。
（Ｓ１３７）制御部１３０の制御の下で、ステップＳ１３６で読み込まれた最適パラメータの組み合わせを用いて、高さ画像が作成される。この処理は、ステップＳ２１〜Ｓ２４の手順による複数の撮像画像の取得と、ステップＳ１３６で読み込まれた最適パラメータの組み合わせを用いたステップＳ２８の高さ算出処理によって実現される。
【０１６８】
以上の処理により、制御装置１００ａは、製品毎に、高さ画像におけるノイズ発生量が許容量以下であり、なおかつ、高さ情報の算出時間も許容量以下となる最適なパラメータの組み合わせを特定し、その組み合わせを用いた高さ画像の作成処理を実行することができる。
【０１６９】
なお、カメラ９０を用いずに、カメラ５０による撮像画像に基づく高さ画像から、ステップＳ１３２のような同一製品であるか否かの判定が行われてもよい。この場合、例えば、次のような処理が実行される。制御装置１００ａは、記憶部１１０に記憶されている最適パラメータの組み合わせを用いて、ステップＳ１３６，Ｓ１３７の処理により対象物の高さ画像を作成する。制御装置１００ａは、作成した高さ画像と、前回の対象物の高さ画像とを比較して、ステップＳ１３２のように対象物が前回撮像された対象物と同じ製品であるかを判定する。制御装置１００ａは、同じ製品であれば、作成した高さ画像を出力する。一方、制御装置１００ａは、同じ製品でなければ、ステップＳ１３３〜Ｓ１３５の処理により最適パラメータの組み合わせを算出し直し、新たな最適パラメータの組み合わせを用いて作成された高さ画像を出力する。
【０１７０】
［第４の実施の形態］
次に、第４の実施の形態を説明する。前述の第２の実施の形態と共通する構成要素については同じ符号を付して示し、その説明を省略する。
【０１７１】
第２，３の実施の形態では、制御装置１００が撮像処理の機能（画像取得部１２０）を有していた。第４の実施の形態では、撮像処理の機能を他の装置が有するようにした。
図２６は、第４の実施の形態の情報処理システムの例を示す図である。第４の実施の形態の情報処理システムは、画像処理サーバ１００ｂ、カメラ５０ａ，５０ｂ，５０ｃ、光学系５１ａ，５１ｂ，５１ｃ、電圧制御装置６０ａ，６０ｂ，６０ｃ、照明７０ａ，７０ｂ，７０ｃ、撮像制御サーバ３００ａ，３００ｂ，３００ｃを有する。
【０１７２】
画像処理サーバ１００ｂと撮像制御サーバ３００ａ，３００ｂ，３００ｃは、ネットワーク１０７ｂを介して接続されている。ネットワーク１０７ｂは、ＬＡＮ（Local Area Network）でもよいし、ＷＡＮ（Wide Area Network）やインターネットなどの広域ネットワークでもよい。画像処理サーバ１００ｂおよび撮像制御サーバ３００ａ，３００ｂ，３００ｃは、制御装置１００と同様のハードウェアにより実現できる。
【０１７３】
第４の実施の形態では、制御装置１００の機能のうち、画像の撮像制御機能が撮像制御サーバ３００ａ，３００ｂ，３００ｃに設けられる。すなわち、撮像制御サーバ３００ａ，３００ｂ，３００ｃは、制御装置１００の画像取得部１２０と同じ機能を備える。画像処理サーバ１００ｂは、制御装置１００の記憶部１１０、制御部１３０、高さ算出部１４０、メディアンフィルタ部１５０、ノイズ判定部１６０および決定部１７０と同じ機能を有する。また、画像処理サーバ１００ｂは、撮像制御サーバ３００ａ，３００ｂ，３００ｃから送信された撮像画像を用いて処理を実行する。画像処理サーバ１００ｂは、例えば、クラウドサーバとして実現することができる。
【０１７４】
撮像制御サーバ３００ａは、光学系５１ａの合焦位置を変化させながらカメラ５０ａから複数の撮像画像を取得する。撮像制御サーバ３００ａは、取得した複数の撮像画像を画像処理サーバ１００ｂに送信する。電圧制御装置６０ａは、撮像制御サーバ３００ａからの制御信号に基づいて、合焦位置を制御するための制御電圧を光学系５１ａに出力する。照明７０ａは、対象物の撮像面に光を照射する。
【０１７５】
撮像制御サーバ３００ｂは、光学系５１ｂの合焦位置を変化させながらカメラ５０ｂから複数の撮像画像を取得する。撮像制御サーバ３００ｂは、取得した複数の撮像画像を画像処理サーバ１００ｂに送信する。電圧制御装置６０ｂは、撮像制御サーバ３００ｂからの制御信号に基づいて、合焦位置を制御するための制御電圧を光学系５１ｂに出力する。照明７０ｂは、対象物の撮像面に光を照射する。
【０１７６】
撮像制御サーバ３００ｃは、光学系５１ｃの合焦位置を変化させながらカメラ５０ｃから複数の撮像画像を取得する。撮像制御サーバ３００ｃは、取得した複数の撮像画像を画像処理サーバ１００ａに送信する。電圧制御装置６０ｃは、撮像制御サーバ３００ｃからの制御信号に基づいて、合焦位置を制御するための制御電圧を光学系５１ｃに出力する。照明７０ｃは、対象物の撮像面に光を照射する。
【０１７７】
このように、画像処理サーバ１００ｂは、ネットワーク１０７ｂを介して、撮像制御サーバ３００ａ，３００ｂ，３００ｃから送信された撮像画像を取得し、取得した撮像画像を用いて、制御装置１００と同様の最適パラメータの決定処理および高さ算出処理を実行できる。なお、撮像制御サーバ３００ａ，３００ｂ，３００ｃのそれぞれには、図２４のカメラ９０に相当するカメラが接続されていてもよい。この場合、画像処理サーバ１００ｂは、対象物が前回の対象物と同じ製品かを判定し、判定結果に基づいて最適パラメータの組み合わせを更新するという、図２４の制御装置１００ａと同様の機能を備える。
【０１７８】
なお、第１の実施の形態の情報処理は、情報処理装置１０に用いられるプロセッサに、プログラムを実行させることで実現できる。第２，３，４の実施の形態の情報処理は、制御装置１００のプロセッサ１０１、制御装置１００ａが有するプロセッサ、および画像処理サーバ１００ｂが有するプロセッサにそれぞれプログラムを実行させることで実現できる。プログラムは、コンピュータ読み取り可能な記録媒体に記録できる。
【０１７９】
例えば、プログラムを記録した記録媒体を配布することで、プログラムを流通させることができる。また、例えば、画像取得部１２０、制御部１３０、高さ算出部１４０、メディアンフィルタ部１５０、ノイズ判定部１６０および決定部１７０に相当する機能を実現するプログラムを別個のプログラムとし、各プログラムを別個に配布してもよい。画像取得部１２０、制御部１３０、高さ算出部１４０、メディアンフィルタ部１５０、ノイズ判定部１６０および決定部１７０の機能が別個のコンピュータにより実現されてもよい。コンピュータは、例えば、記録媒体に記録されたプログラムを、ＲＡＭ１０２やＨＤＤ１０３に格納し（インストールし）、当該記憶装置からプログラムを読み込んで実行してもよい。
【符号の説明】
【０１８０】
１ａ，１ｂ，１ｃ，１ｄ，１ｅ  撮像画像
２ａ，２ｂ，２ｃ  高さ画像
１０  情報処理装置
１１  画像取得部
１２  算出部
１３  パラメータ決定部
【図１】
2016218317.tif 000005
【図２】
2016218317.tif 000006
【図３】
2016218317.tif 000007
【図４】
2016218317.tif 000008
【図５】
2016218317.tif 000009
【図６】
2016218317.tif 000010
【図７】
2016218317.tif 000011
【図８】
2016218317.tif 000012
【図９】
2016218317.tif 000013
【図１０】
2016218317.tif 000014
【図１１】
2016218317.tif 000015
【図１２】
2016218317.tif 000016
【図１３】
2016218317.tif 000017
【図１４】
2016218317.tif 000018
【図１５】
2016218317.tif 000019
【図１６】
2016218317.tif 000020
【図１７】
2016218317.tif 000021
【図１８】
2016218317.tif 000022
【図１９】
2016218317.tif 000023
【図２０】
2016218317.tif 000024
【図２１】
2016218317.tif 000025
【図２２】
2016218317.tif 000026
【図２３】
2016218317.tif 000027
【図２４】
2016218317.tif 000028
【図２５】
2016218317.tif 000029
【図２６】
2016218317.tif 000030