以下、添付図面を参照しながら、本技術を実施するための形態(以下、実施の形態という)について説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。説明は以下の順序で行う。
1.ディスペンサ制御システムの第1実施の形態
2.イベントデータの例
3.液滴の撮影方法
4.制御装置の構成例
5.第1フレーム処理部の処理
6.第2フレーム処理部の処理
7.ノイズ除去処理部の処理
8.液滴検出部の処理
9.液滴追跡部の処理
10.ディスペンサ制御システムの液滴制御処理
11.DNNの適用
12.ディスペンサ制御システムの第2実施の形態
13.ディスペンサ制御システムの第3実施の形態
14.まとめ
15.コンピュータ構成例
<1.ディスペンサ制御システムの第1実施の形態>
図1は、本技術を適用したディスペンサ制御システムの第1実施の形態の構成例を示している。
図1のディスペンサ制御システム1は、ディスペンサ11、EVSカメラ12、制御装置13、および、ディスプレイ14を有し、ディスペンサ11による液滴の噴射を制御するシステムである。
ディスペンサ11は、コンベア22上に載置されて搬送される基板21をターゲットとして所定の液体を噴射する。ディスペンサ11から噴射された液体は、液滴10となって基板21に向けて落下する。
EVSカメラ12は、光信号を光電変換し、画素信号を出力する画素を有し、画素信号に基づき、光信号の時間的輝度変化をイベント信号(イベントデータ)として出力するイベントセンサを備えるカメラである。このようなイベントセンサは、EVS(event-based vision sensor)とも呼ばれる。一般的なイメージセンサを備えるカメラは、垂直同期信号に同期して撮影を行い、その垂直同期信号の周期で1フレーム(画面)の画像データであるフレームデータを出力するが、EVSカメラ12は、イベントが発生したタイミングにおいてのみイベントデータを出力するため、非同期型(又はアドレス制御型)のカメラであるということができる。
EVSカメラ12は、ディスペンサ11から噴射された液滴10に基づく時間的輝度変化をイベントとして検出し、イベントデータを制御装置13に出力する。
制御装置13は、EVSカメラ12から出力されてきたイベントデータに基づいて、ディスペンサ11による液滴10を検出し、液滴10の噴射を制御する制御情報を生成して、ディスペンサ11へ出力する。また、制御装置13は、EVSカメラ12から出力されたイベントデータに基づいて、作業者がモニタリングするための表示用画像を生成し、ディスプレイ14に表示させる。
図2は、ディスペンサ制御システム1による液滴制御を説明する図である。
ディスペンサ11が液滴10を噴射するタイミングや液滴10の速度などが適切でない場合、図2の左側のように、コンベア22上を流れる基板21に液滴10が的確に塗布されない。制御装置13は、EVSカメラ12から出力されてきたイベントデータに基づいて、液滴10の位置、速度、移動方向などの少なくとも1つを含む液滴10の軌跡情報を算出する。そして、制御装置13は、算出した液滴10の軌跡情報に基づいて、液滴10の噴出タイミングや噴出の強さ、噴射方向、などを制御するパラメータを、フィードバック制御情報としてディスペンサ11へフィードバックする。また、制御装置13は、イベントデータに基づいて液滴10のサイズや体積等も算出し、液滴10の量や粘度も制御することができる。これにより、図2の右側に示されるように、適切なタイミングや量の液滴10を基板21へ塗布することができる。フィードバック制御情報としてどのようなパラメータをディスペンサ11へ供給するかは適宜決定することができる。また、導電性物体が飛散するとショートにつながり、不良品となるため、サテライトと呼ばれる液滴10本体以外の液滴等も検出することができる。
<2.イベントデータの例>
図3は、EVSカメラ12が出力するイベントデータの例を示している。
EVSカメラ12は、例えば、図3に示されるように、イベントが発生した時刻ti、イベントが発生した画素の位置を表す座標(xi, yi)、及び、イベントとしての輝度変化の極性piを含むイベントデータを出力する。
イベントの時刻tiは、イベントが発生したときの時刻を表すタイムスタンプであり、例えば、センサ内の所定のクロック信号に基づくカウンタのカウント値で表される。イベントが発生したタイミングに対応するタイムスタンプは、イベントどうしの間隔がイベントの発生時のまま維持されている限り、イベントが発生した(相対的な)時刻を表す時刻情報であるということができる。
極性piは、所定の閾値を超える輝度変化(光量変化)がイベントとして発生した場合の輝度変化の方向を表し、輝度変化がプラス方向の変化(以下、ポジティブともいう。)か、または、マイナス方向の変化(以下、ネガティブともいう。)かを表す。イベントの極性piは、例えば、ポジティブのとき“1”で表され、ネガティブのとき“0”で表される。
図3のイベントデータにおいて、あるイベントの時刻tiと、そのイベントに隣接するイベントの時刻ti+1との間隔は、一定であるとは限らない。すなわち、イベントの時刻tiとti+1とは、同一の時刻であることもあるし、異なる時刻であることもある。但し、イベントの時刻ti及びti+1については、式ti<=ti+1で表される関係があることとする。
イベントデータは、垂直同期信号に同期して、フレーム周期で出力されるフレーム形式の画像データ(フレームデータ)と異なり、イベントの発生ごとに出力される。そのため、イベントデータについては、そのままでは、フレームデータに対応する画像を表示するプロジェクタ等のディスプレイで、画像を表示することや、識別器(分類器)に入力して画像処理に用いることができない。イベントデータは、フレームデータに変換する必要がある。
図4は、イベントデータからフレームデータを生成する方法の例を説明する図である。
図4では、x軸、y軸、及び、時間軸tで構成される3次元(時)空間において、イベントデータとしての点が、そのイベントデータに含まれるイベントの時刻t、及び、イベントの画素としての座標(x, y)にプロットされている。
すなわち、イベントデータに含まれるイベントの時刻t、及び、イベントの画素(x, y)で表される3次元空間上の位置(x, y, t)を、イベントの時空間位置ということとすると、図4では、イベントデータが、イベントの時空間位置(x, y, t)に、点としてプロットされている。
EVSカメラ12から出力されるイベントデータを画素値として、所定のフレーム間隔ごとに、所定のフレーム間隔の先頭から所定のフレーム幅内のイベントデータを用いて、イベント画像を生成することができる。
フレーム幅及びフレーム間隔は、時間による指定とすることもできるし、イベントデータの数による指定とすることもできる。フレーム幅及びフレーム間隔の一方が、時間による指定であり、他方が、イベントデータの数による指定でもよい。
ここで、フレーム幅及びフレーム間隔が、時間による指定であって、フレーム幅とフレーム間隔とが同一である場合、フレームボリュームは、隙間なく接した状態となる。また、フレーム間隔がフレーム幅より大である場合、フレームボリュームは、隙間を空けて並んだ状態となる。フレーム幅がフレーム間隔より大である場合、フレームボリュームは、一部が重複する形で並んだ状態となる。
イベント画像の生成は、例えば、イベントの位置(x, y)のフレームの画素(の画素値)を白色に、フレームの他の位置の画素をグレー等の所定の色にセットすることで行うことができる。
その他、フレームデータの生成は、イベントデータについて、イベントとしての光量変化の極性を区別する場合には、例えば、極性がポジティブである場合には画素を白色にセットし、極性がネガティブである場合には画素を黒色にセットし、フレームの他の位置の画素をグレー等の所定の色にセットすることで行うことができる。
図5は、イベントデータに基づいて生成したイベント画像の例を示している。
図5の画像31は、EVSカメラ12の検出対象を、RGB画像を出力するイメージセンサで撮影した画像である。画像31には、背景である本棚の前を人物が歩くシーンが撮影されている。この撮影シーンをEVSカメラ12で検出し、出力されたイベントデータに基づいてフレームデータを生成すると、イベント画像32のようになる。イベント画像32は、極性がポジティブである画素に白色がセットされ、極性がネガティブである画素に黒色がセットされ、フレームの他の位置の画素にはグレーがセットされて生成されている。
<3.液滴の撮影方法>
図6および図7は、EVSカメラ12と照明装置の配置関係の例を示している。
照明装置61は、液滴10の背景が均一となり、かつ、液滴10とのコントラストが発生するような位置に設定され、液滴10に光を照射する。
図6は、照明装置61の第1の配置例を示す図である。
第1の配置例では、図6のAに示されるように、EVSカメラ12と照明装置61とが、液滴10を挟むように対向して配置される。換言すれば、照明装置61は液滴10の後ろから照明し、EVSカメラ12は、背面から照明された液滴10の輝度変化を検出する。照明装置61の前には、拡散板62が配置されている。この配置で液滴10が撮影された場合、図6のBに示されるように、液滴10は、黒色のシルエットとして捉えられる。
図7は、照明装置61の第2の配置例を示す図である。
第2の配置例では、図7のAに示されるように、液滴10に対して、EVSカメラ12と照明装置61が同じ方向に配置される。液滴10の背景側には、黒色の反射防止板63等が配置され、光の反射が防止される。この配置で液滴10が撮影された場合、図7のBに示されるように、液滴10は、白色のシルエットとして捉えられる。
本実施の形態では、照明装置61の配置として、図7に示した第2の配置例を採用することとし、EVSカメラ12が、照明装置61と同じ方向から液滴10を撮影する。
図8は、液滴10の移動方向に対するEVSカメラ12の撮影の向きを示す図である。
EVSカメラ12は、輝度変化を検出する画素が行列状に2次元配置された受光部51を有する。受光部51の図8における縦方向をx軸方向、図8における横方向をy軸方向とすると、EVSカメラ12は、イベントが発生したとき、受光部51のx軸方向の列単位で、信号を読み出す読出し動作を行う。この場合、図8に示されるように、画素信号の読み出し方向と、液滴10の移動方向とが一致するように、EVSカメラ12の向きが配置される。これにより、例えば、EVSカメラ12の受光部51内を複数の液滴10が通過する場合、画素信号の読出し方向に沿って複数の液滴10が配置されるので、1列の画素信号の読み出しで、複数の液滴10の信号を同時に取得することができる。
また、EVSカメラ12は、受光部51の全領域に対して所定の注目領域52を設定し、設定された注目領域52の信号のみを読み出すようにすることができる。画素の読み出し方向と液滴10の移動方向とが一致するように配置したことにより、信号の読み出しを行う列数(y軸方向の画素数)を少なくして、読出し速度(検出速度)を向上させることができる。
図9は、液滴10の体積を計測する場合の撮影方法を説明する図である。
液滴10の体積を計測する場合、液滴10の落下方向に対して垂直な平面における液滴10の面積を計測する必要がある。そのため、EVSカメラ12は、図9のAまたはBのいずれかの方法で、直交する2方向から液滴10を検出する。図9において、紙面に垂直な方向が液滴10の落下方向を表す。
図9のAは、体積を計測する場合の液滴10の第1の撮影方法の例である。
第1の撮影方法は、EVSカメラ12の前方にプリズム41を配置して、1つのEVSカメラ12が、液滴10を直視する第1の方向と、プリズム41を介して第1の方向に直交する第2の方向との2方向の液滴10を1度に検出する方法である。
図9のBは、体積を計測する場合の液滴10の第2の撮影方法の例である。
第2の撮影方法は、2台のEVSカメラ12Aおよび12Bを直交する方向に配置して、2台のEVSカメラ12Aおよび12Bそれぞれが1方向から撮影することにより、直交する2方向の液滴10を検出する方法である。EVSカメラ12Aおよび12Bのタイムスタンプは同期して撮影される。
後述する液滴制御処理では、液滴10の横幅を算出することとして体積の算出は省略するが、液滴10の体積を算出する場合には、上述した第1または第2の撮影方法で撮影した結果から算出される液滴10の面積と、液滴10の移動方向の長さとから、液滴10の体積が算出される。
<4.制御装置の構成例>
図10は、制御装置13の機能的構成例を示すブロック図である。
制御装置13は、前処理部101、画像出力部102、液滴検出部103、液滴追跡部104、および、パラメータ判定部105を備える。
前処理部101は、液滴10を検出するための前処理として、EVSカメラ12から出力されてくるイベントデータに基づいて、イベント画像、再構成画像、および、表示用画像の3種類の画像を生成する。
前処理部101は、フレーム化処理部111とノイズ除去処理部112とを備え、フレーム化処理部111は、第1フレーム処理部121と第2フレーム処理部122とを備える。
第1フレーム処理部121は、EVSカメラ12からのイベントデータに基づいてイベント画像を生成する。第1フレーム処理部121は、イベント画像として、ポジティブイベントに基づくポジティブイベント画像と、ネガティブイベントに基づくネガティブイベント画像とを生成する。また、第1フレーム処理部121は、ポジティブイベント画像とネガティブイベント画像とに基づいて、表示用画像も生成する。
第2フレーム処理部122は、EVSカメラ12からのイベントデータに基づいて輝度値を推定して構成した再構成画像を生成する。
フレーム化処理部111は、生成したイベント画像と再構成画像をノイズ除去処理部112へ供給するとともに、表示用画像を画像出力部102へ供給する。図13および図18で後述するように、イベント画像と再構成画像は、白と黒の2値画像で構成され、表示用画像は、白、黒、およびグレーの3値画像で構成される。
ノイズ除去処理部112は、2値画像であるイベント画像と再構成画像のそれぞれに対し、ノイズを除去するノイズ除去処理を行う。具体的な処理については図20を参照して後述するが、ノイズ除去処理部112は、ノイズ除去処理として、白画素に対する膨張処理と収縮処理を用いたフィルタ処理を行う。ノイズ除去処理後のイベント画像と再構成画像は、液滴検出部103および液滴追跡部104に供給される。
画像出力部102は、フレーム化処理部111から供給される表示用画像をディスプレイ14へ供給する。
液滴検出部103は、前処理部101から供給されるイベント画像と再構成画像それぞれから液滴10を検出する。液滴検出部103は、イベント画像から検出された液滴10に関する情報を追跡対象の情報として、液滴追跡部104に供給する。また、液滴検出部103は、再構成画像から検出された液滴10から、液滴10のサイズを算出し、パラメータ判定部105に供給する。
液滴追跡部104は、液滴検出部103においてイベント画像から検出された液滴10を追跡し、液滴10の位置、速度、移動方向などの少なくとも1つを含む液滴10の軌跡情報を算出して、パラメータ判定部105に供給する。
パラメータ判定部105は、液滴追跡部104から供給される液滴10の軌跡情報に基づいて、吐出タイミングや噴射方向などを制御するディスペンサ11のパラメータが正常な範囲内であるかどうかを判定する。また、パラメータ判定部105は、液滴検出部103から供給される液滴10のサイズ(幅)や体積に基づいて、1回あたりの吐出量が正常な範囲内であるかどうかを判定する。パラメータ判定部105は、パラメータが正常な範囲内ではないと判定された場合、パラメータを修正するための制御情報を、フィードバック制御情報として生成し、ディスペンサ11へ出力する。
以下、制御装置13の各部が実行する処理について、より詳細に説明する。
<5.第1フレーム処理部の処理>
初めに、図11ないし図14を参照して、第1フレーム処理部121によるイベント画像と表示用画像の生成について説明する。
第1フレーム処理部121は、EVSカメラ12からのイベントデータに基づいて、ポジティブイベントに基づくポジティブイベント画像と、ネガティブイベントに基づくネガティブイベント画像とを生成する。
図11は、第1フレーム処理部121がイベント画像を生成する場合の各イベント画像の生成単位を示す図である。
第1フレーム処理部121は、時刻T0においてイベントの検出(液滴10の撮影)を開始し、時刻Ti(iは正の整数)にiフレーム目のフレーム化、即ちイベント画像の生成を行う。時刻Ti-1から時刻Tiまでの時間Δtは、図4で説明したフレーム間隔に相当し、1秒間にフレーム化するイベント画像の枚数であるフレームレートFPSの逆数に相当する。
時間Δtは、フレームレートに対応した1フレームの期間であり、1フレーム期間Δtとも称する。
第1フレーム処理部121は、iフレーム目のフレーム化を行う時刻Tiにおいて、EVSカメラ12からのイベントデータを所定の積分時間h単位でまとめた画像を、iフレーム目のイベント画像として生成する。より具体的には、第1フレーム処理部121は、時刻tが時刻(Ti-h)から時刻Tiまでのイベントデータに基づいて、iフレーム目のイベント画像を生成する。
ここで、所定の積分時間hは、1フレーム期間Δtよりも短い時間である。所定の積分時間hを変更すると、図12に示されるように、イベント画像における液滴10の形状が変化する。積分時間hを1フレーム期間Δtに固定せず(h=Δtと固定せず)、積分時間hを1フレーム期間Δtとは別に設定することにより、フレーム化の頻度(フレームレート)と、イベント画像における液滴10の形状を別々に設定することができる。
第1フレーム処理部121は、時刻(Ti-h)から時刻Tiまでの所定の積分時間hにおいて、ポジティブイベントが検出された画素(x, y)の画素値を1(白)、その他の画素の画素値を0(黒)とする2値画像を生成し、iフレーム目のポジティブイベント画像とする。
また、第1フレーム処理部121は、時刻(Ti-h)から時刻Tiまでの所定の積分時間hにおいて、ネガティブイベントが検出された画素(x, y)の画素値を1(白)、その他の画素の画素値を0(黒)とする2値画像を生成し、iフレーム目のネガティブイベント画像とする。
さらに、第1フレーム処理部121は、iフレーム目のポジティブイベント画像において1(白)の画素の画素値を255(白)、iフレーム目のネガティブイベント画像において1(白)の画素の画素値を0(黒)、その他の画素の画素値を128(グレー)とする3値画像を生成し、iフレーム目の表示用画像とする。
図13は、第1フレーム処理部121によって生成される、ポジティブイベント画像、ネガティブイベント画像、および、表示用画像の例を示している。
図14のフローチャートを参照して、第1フレーム処理部121により実行される第1のフレーム化処理について説明する。この処理は、例えば、EVSカメラ12の撮影開始と同時に開始される。
第1フレーム処理部121は、イベントが検出されたタイミングでEVSカメラ12から供給されるイベントデータを取得しながら、図14の第1のフレーム化処理を実行する。
時刻情報(時刻t)は、EVSカメラ12と制御装置13とで同期している。
初めに、ステップS11において、第1フレーム処理部121は、フレーム番号を識別する変数iに1を設定する。
ステップS12において、第1フレーム処理部121は、時刻tが時刻(Ti-h)より大きく、時刻Ti以下であるかを判定し、時刻tが時刻(Ti-h)より大きく、時刻Ti以下であると判定されるまで、ステップS12の判定処理を繰り返す。
そして、ステップS12において、時刻tが時刻(Ti-h)より大きく、時刻Ti以下であると判定された場合、処理はステップS13に進み、EVSカメラ12から供給されたイベントデータの極性pがポジティブであるかを判定する。
ステップS13で、EVSカメラ12から供給されたイベントデータの極性pがポジティブであると判定された場合、処理はステップS14に進み、第1フレーム処理部121は、EVSカメラ12から供給されたイベントデータのイベント発生箇所に対応するポジティブイベント画像の画素の画素値を“1”に設定する。
一方、ステップS13で、EVSカメラ12から供給されたイベントデータの極性pがネガティブであると判定された場合、処理はステップS15に進み、第1フレーム処理部121は、EVSカメラ12から供給されたイベントデータのイベント発生箇所に対応するネガティブイベント画像の画素の画素値を“1”に設定する。
ステップS14またはS15の後、処理はステップS16に進み、第1フレーム処理部121は、時刻tが時刻Tiを超えたかを判定する。ステップS16で、時刻tがまだ時刻Tiを超えていないと判定された場合、処理はステップS13に戻り、上述したステップS13ないしS16の処理が繰り返される。
一方、ステップS16で、時刻tが時刻Tiを超えたと判定された場合、処理はステップS17に進み、第1フレーム処理部121は、iフレーム目のポジティブイベント画像、ネガティブイベント画像、および、表示用画像を生成する。より具体的には、第1フレーム処理部121は、ポジティブイベント画像として、上述したステップS14において画素値を“1”に設定した画素を白、その他の画素を黒とする2値画像を生成する。また、第1フレーム処理部121は、ネガティブイベント画像として、上述したステップS15
において画素値を“1”に設定した画素を白、その他の画素を黒とする2値画像を生成する。さらに、第1フレーム処理部121は、表示用画像として、ポジティブイベント画像
において画素値を“1”に設定した画素の画素値を255(白)、ネガティブイベント画像において画素値を“1”に設定した画素の画素値を0(黒)、その他の画素の画素値を
128(グレー)とする3値画像を生成する。
次に、ステップS18において、第1フレーム処理部121は、フレーム番号を識別する変数iを1だけインクリメントさせた後、処理をステップS12に戻す。その後、上述したステップS12ないしS18の処理が繰り返し実行され、ディスペンサ制御システム1全体または制御装置13の動作終了が指示されたとき、図14の第1のフレーム化処理が終了する。
以上のように、第1のフレーム化処理によれば、イベントの発生箇所に応じて所定の画素値を設定することで、ポジティブイベント画像およびネガティブイベント画像が生成される。
<6.第2フレーム処理部の処理>
次に、図15ないし図18を参照して、第2フレーム処理部122による再構成画像の生成について説明する。
第2フレーム処理部122は、EVSカメラ12からのイベントデータに基づいて輝度値を推定して構成した再構成画像を生成する。
ポジティブイベント画像とネガティブイベント画像は、図13に示したように、背景との輝度変化によって、液滴10の移動方向の先端と後端に対応する部分が抽出されるため、液滴10全体の形状やサイズはわからない。そこで、第2フレーム処理部122は、供給されるイベントデータから輝度値を簡易的に復元することにより再構成画像を生成し、液滴10全体のシルエットを認識できるようにする。
例えば、図15の左側のグラフに示されるように、所定の画素(x,y)において、時刻t1から時刻t2でポジティブイベント(“1”)が発生し、時刻t2から時刻t3でポジティブイベント(“1”)が発生し、時刻t4から時刻t5でネガティブイベント(“0”)
が発生し、時刻t5から時刻t6でネガティブイベント(“0”)が発生したとする。
ポジティブイベントの輝度の閾値がd1、ネガティブイベントの輝度の閾値がd2である場合、第2フレーム処理部122は、図15の右側のグラフに示されるように、画素(x,y)の輝度値として、時刻t1から時刻t2のポジティブイベントに応じてd1を加算し、時刻t2から時刻t3のポジティブイベントに応じてd1を加算し、時刻t4から時刻t5のネガティブイベントに応じてd2を減算し、時刻t5から時刻t6のネガティブイベントに応じてd2を減算した値を、画素(x,y)の輝度値と推定する。このように、過去に発生したイベントに応じた輝度を累積することにより、輝度値を簡易的に復元し、再構成画像を生成することができる。なお、閾値d1と閾値d2は、同じ値でもよいし、異なっていてもよい。
本実施の形態では、図7に示した照明配置により液滴10を撮影しているので、背景が最も暗い状態となる。背景の輝度値を0とすると、輝度値が0よりも小さい負の値になることはないため、第2フレーム処理部122は、上述した輝度値の累積により、輝度値が負の値になった場合には、0にリセットする処理を行う。
図16は、第2フレーム処理部122が再構成画像を生成する場合の具体的処理を説明する図である。
第2フレーム処理部122は、時刻Tiごと、すなわち、フレームレートに対応するフレームレート期間単位で、再構成画像を生成する。例えば、iフレーム目の再構成画像を生成する場合、第2フレーム処理部122は、イベント検出を開始した時刻T0から、iフレーム目のフレーム化を行う時刻Tiまでの過去の全てのイベントを累積することにより、輝度値を推定した再構成画像を生成する。
より具体的には、例えば、図16の上段に示されるように、1フレーム目の再構成画像FR1は、時刻T0から時刻T1までのイベントを累積することにより生成される。2フレーム目の再構成画像FR2は、時刻T0から時刻T2までのイベントを累積することにより生成される。3フレーム目の再構成画像FR3は、時刻T0から時刻T3までのイベントを累積することにより生成される。
ただし、実際の計算では、図16の下段に示されるように、iフレーム目の再構成画像FRiを生成する場合、その前のフレームの再構成画像FRi-1の輝度値に、次のフレーム
レート期間(時刻Ti-1から時刻Tiまで)のイベントを累積することにより生成される。
図17のフローチャートを参照して、第2フレーム処理部122により実行される第2のフレーム化処理について説明する。この処理は、例えば、EVSカメラ12の撮影開始と同時に開始される。
第2フレーム処理部122は、イベントが検出されたタイミングでEVSカメラ12から供給されるイベントデータを取得しながら、図17の第2のフレーム化処理を実行する。
時刻情報(時刻t)は、EVSカメラ12と制御装置13とで同期している。
初めに、ステップS41において、第2フレーム処理部122は、フレーム番号を識別する変数iに1を設定する。
ステップS42において、第2フレーム処理部122は、変数iが2以上であるか、すなわち、現在のフレームが2フレーム目以降であるかを判定する。
ステップS42で、現在のフレームが2フレーム目以降ではない、即ち、現在のフレームが1フレーム目であると判定された場合、処理はステップS43に進み、第2フレーム処理部122は、全画素の画素値を0に設定した1フレーム目の再構成画像を設定する。
一方、ステップS42で、現在のフレームが2フレーム目以降であると判定された場合、処理はステップS44に進み、第2フレーム処理部122は、前フレームの再構成画像を初期値に設定したiフレーム目の再構成画像を設定する。
ステップS45において、第2フレーム処理部122は、EVSカメラ12から供給されたイベントデータの極性pがポジティブであるかを判定する。
ステップS45で、EVSカメラ12から供給されたイベントデータの極性pがポジティブであると判定された場合、処理はステップS46に進み、第2フレーム処理部122は、EVSカメラ12から供給されたイベントデータのイベント発生箇所に対応する再構成画像の画素の画素値をd1だけ加算する。
一方、ステップS45で、EVSカメラ12から供給されたイベントデータの極性pがネガティブであると判定された場合、処理はステップS47に進み、第2フレーム処理部122は、EVSカメラ12から供給されたイベントデータのイベント発生箇所に対応する再構成画像の画素の画素値をd2だけ減算する。
ステップS46またはS47の後、処理はステップS48に進み、第2フレーム処理部122は、画素値が負となっている画素があるかを判定し、負となっている画素がないと判定された場合、次のステップS49の処理をスキップする。
一方、ステップS48で、画素値が負となっている画素があると判定された場合、処理はステップS49に進み、第2フレーム処理部122は、負となっている画素値を0にリセットする。
続いて、ステップS50において、1フレームの期間に相当するΔt時間が経過したかを判定し、まだΔt時間が経過していないと判定された場合、処理はステップS45に戻り、上述したステップS45ないしS50の処理が繰り返される。
一方、ステップS50で、Δt時間が経過したと判定された場合、処理はステップS51に進み、第2フレーム処理部122は、iフレーム目の再構成画像を出力する。
次に、ステップS52において、第2フレーム処理部122は、フレーム番号を識別する変数iを1だけインクリメントさせた後、処理をステップS42に戻す。その後、上述したステップS42ないしS52の処理が繰り返し実行され、ディスペンサ制御システム1全体または制御装置13の動作終了が指示されたとき、図17の第2のフレーム化処理が終了する。
以上のように、第2のフレーム化処理によれば、輝度の閾値d1およびd2に対応して画素値を累積することで、輝度値を推定した再構成画像が生成される。
なお、上述したように、再構成画像の生成では、撮影を開始した時刻T0から、iフレーム目のフレーム化を行う時刻Tiまでの過去の全てのイベントを累積するため、撮影開始時に存在せず、途中から写り込んだ物体は、再構成画像において残り続ける。ノイズも蓄積されて残り続ける。
図18は、撮影を開始した時刻T0に近い初期の再構成画像と、一定時間が経過した後の再構成画像の例を示している。
一定時間経過後の再構成画像には、液滴10やノイズが一定の箇所に留まって残り続けた部分が発生している。
検出対象の液滴10は、動体であるため、一定期間静止している物体は除去することが望ましい。
そこで、第2フレーム処理部122、第2のフレーム化処理の一部として、次のようなノイズ除去処理を行うことができる。
例えば、第2フレーム処理部122が、図19に示されるように、時刻Tnにnフレーム目の再構成画像を生成する場合、時刻Tnを基準に過去の所定期間TNRにおいてイベントが発生していない画素の画素値は0とするノイズ除去処理を行うことで、所定期間TNR以上静止している物体を除去することができる。ここで、所定期間TNRは、物体の通過時間より大きく、液滴10の吐出間隔よりも短い期間(物体の通過時間<TNR<液滴10の吐出間隔)に設定される。物体の通過時間とは、物体が液滴10の移動方向の距離を通過する時間である。
過去の所定期間TNRにおいてイベントが発生していない画素の画素値を0とするノイズ除去処理は、どのようなアルゴリズムで実行してもよい。例えば、各画素で最後に発生したイベントの時刻情報を保持しておき、最後に発生したイベントの時刻が、フレーム化を行う時刻Tnから所定期間TNRよりも古い時刻である場合に、その画素の画素値を0とするような処理を採用することができる。
<7.ノイズ除去処理部の処理>
次に、ノイズ除去処理部112によるノイズ除去処理について説明する。
ノイズ除去処理部112は、2値画像であるイベント画像と再構成画像のそれぞれに対し、白画素に対する膨張処理と収縮処理を用いたフィルタ処理を、ノイズ除去処理として行う。
初めに、ノイズ除去処理部112は、イベント画像と再構成画像のそれぞれに対し、白画素の収縮処理および膨張処理の順番で実行するオープニング処理を実行し、その後、白画素の膨張処理および収縮処理の順番で実行するクロージング処理を実行する。フィルタサイズは例えば、5画素などとされる。
図20は、ノイズ除去処理部112がノイズ除去処理を行う前と後の再構成画像の例を示している。ノイズ除去処理部112のノイズ除去処理により、ノイズと推測される小さい白画素が消去されている。
<8.液滴検出部の処理>
次に、液滴検出部103の処理について説明する。
液滴検出部103は、前処理部101から供給されるイベント画像と再構成画像それぞれから液滴10を検出する。例えば、液滴検出部103は、イベント画像から液滴10を検出し、追跡対象の情報として液滴追跡部104に供給する。また、液滴検出部103は、再構成画像から液滴10を検出し、検出した液滴10のサイズを算出して、パラメータ判定部105に供給する。なお、再構成画像から検出された液滴10の結果を、追跡対象の情報として液滴追跡部104に供給するようにしてもよいし、イベント画像から検出された液滴10から、液滴10のサイズを算出してもよい。
図21は、液滴検出部103による液滴検出処理を説明する図である。
液滴検出部103は、前処理部101から供給されるイベント画像または再構成画像の2値画像151に対してラベリング処理を実行し、2値画像151内の液滴10にラベル161を付ける。図21の例では、2値画像151内の3つの液滴10に対して、ラベル161Aないし161Cが付されている。
液滴検出部103は、検出されたラベル161Aないし161Cが、2値画像151に対して予め設定された2本の境界線171をまたがるかを判定し、2本の境界線171をまたがるラベルを検出候補として選択する。図21の例では、ラベル161Aが2本の境界線171をまたがっており、ラベル161Aの液滴10が検出候補として選択される。
次に、図22に示されるように、2本の境界線171のうち、液滴10の移動方向に対して反対の上側を境界線171A、下側を境界線171Bとすると、液滴検出部103は、上側の境界線171Aから液滴10の下側の領域を囲む矩形領域181に対して、境界線171Aより下側の周囲を一定幅拡大した領域182の画像を、テンプレート画像として登録(保存)する。液滴検出部103は、登録したテンプレート画像を、追跡対象の情報として液滴追跡部104に供給する。このように、液滴10の先端の一部をテンプレート画像として登録し、追跡対象とすることにより、液滴10が尾を引いた形状であっても追跡することができる。
なお、フレームレートの設定によっては、図23に示されるように、例えば、テンプレート画像を登録した次のフレーム等において、既に登録済みで液滴追跡部104で追跡中のテンプレート画像と同じ液滴10が検出される場合がある。この場合、液滴検出部103は、テンプレート画像として登録(保存)しない。
図23を参照して具体的に説明すると、所定のフレームにおいて、境界線171Aから液滴10の下側の領域を囲む矩形領域181に基づいて、図23の左側に示されるテンプレート画像183が登録される。そして、その次のフレームにおいて、同一の液滴10が検出候補として選択され、境界線171Aから下側の液滴10の領域を囲む矩形領域181’が設定される。しかし、この矩形領域181’は、追跡中のテンプレート画像183と重なるため、テンプレート画像として登録されない。
図24は、液滴10のサイズの算出方法の例を説明する図である。
液滴検出部103は、登録したテンプレート画像183の1行目における液滴10の幅184を、液滴10のサイズとして算出する。より具体的には、液滴検出部103は、登録したテンプレート画像183の1行目における液滴10の画素数を、液滴10の幅184とする。
なお、上述したように、登録したテンプレート画像183の1行目における液滴10の幅184を液滴10のサイズとして算出してもよいし、その他の算出方法で、液滴10のサイズを求めてもよい。例えば、登録したテンプレート画像183に占める液滴10の画素数や、登録したテンプレート画像183の縦方向と横方向の画素数などを、サイズとして算出してもよい。また、図9を参照して説明した体積を、サイズとして算出してもよい。
次に、図25のフローチャートを参照して、液滴検出部103により実行される液滴検出処理について説明する。この処理は、例えば、イベント画像または再構成画像の2値画像151が前処理部101から最初に供給されたとき開始される。図25の液滴検出処理は、前処理部101から供給される1枚の2値画像151に対する処理である。
初めに、ステップS71において、液滴検出部103は、前処理部101から供給された1枚の2値画像151に対してラベリング処理を実行する。これにより1枚の2値画像151に含まれる全ての液滴10に対してラベル161が付される。
ステップS72において、液滴検出部103は、2値画像151に含まれる1以上のラベル161(液滴10)のなかから、所定の1つのラベル161を選択する。
ステップS73において、液滴検出部103は、選択したラベル161が2本の境界線171をまたがるかを判定する。
ステップS73で、選択したラベル161が2本の境界線171をまたがらないと判定された場合、処理はステップS77へ進む。
一方、ステップS73で、選択したラベル161が2本の境界線171をまたがると判定された場合、処理はステップS74に進み、液滴検出部103は、選択したラベル161が追跡中のテンプレート画像と重なるかを判定する。より具体的には、図23で説明したように、選択したラベル161の上側の境界線171Aから下側の液滴10の領域を囲む矩形領域181が追跡中のテンプレート画像183と重なるかが判定される。
ステップS74で、選択したラベル161が追跡中のテンプレート画像と重なると判定された場合、処理はステップS77へ進む。
一方、ステップS74で、選択したラベル161が追跡中のテンプレート画像と重ならないと判定された場合、処理はステップS75に進み、液滴検出部103は、選択したラベル161の先端の一部をテンプレート画像183として登録する。より詳しくは、液滴検出部103は、選択したラベル161の上側の境界線171Aから下側の液滴10の領域を囲む矩形領域181に対して、境界線171Aより下側の周囲を一定幅拡大した領域182を、テンプレート画像183として登録する。登録されたテンプレート画像183は、液滴追跡部104に供給される。
ステップS76において、液滴検出部103は、液滴10のサイズとして、登録したテンプレート画像183の1行目における液滴10の幅184を算出する。算出された液滴10の幅184は、パラメータ判定部105に供給される。
ステップS77において、液滴検出部103は、全てのラベル161を選択したかを判定する。
ステップS77で、全てのラベル161をまだ選択していないと判定された場合、処理はステップS72に戻り、上述したステップS72ないしS77が再度実行される。すなわち、まだ選択していないラベル161が選択され、2本の境界線171をまたがるか、追跡中のテンプレート画像と重なるかなどが判定される。
一方、ステップS77で、全てのラベル161を選択したと判定された場合、図25の液滴検出処理が終了する。
図25の液滴検出処理は、前処理部101から供給される1枚の2値画像151に対する処理であり、前処理部101から順次供給される2値画像151に対して、上述した液滴検出処理が実行される。
<9.液滴追跡部の処理>
次に、液滴追跡部104の処理について説明する。
液滴追跡部104は、液滴検出部103において検出された液滴10を追跡し、液滴10の軌跡情報を算出して、パラメータ判定部105に供給する。より具体的には、液滴追跡部104は、テンプレート画像183が登録されたフレームの次以降のフレームについて、液滴検出部103から供給されるテンプレート画像183を用いたテンプレートマッチングにより、液滴10を探索する。
図26は、テンプレート画像が登録されたフレームから1フレーム目の液滴10の探索処理を説明する図である。
図26において、破線で示される液滴10は、現在のフレームの1つ前のフレーム、すなわち、テンプレート画像183が登録されたフレームにおける液滴10の位置を示している。
液滴追跡部104は、1つ前のフレームにおけるテンプレート画像183の中心191から所定の半径r1の範囲を探索範囲として、現在のフレームの液滴10を、テンプレートマッチングにより探索する。
図27は、テンプレート画像が登録されたフレームから2フレーム目以降の液滴10の探索処理を説明する図である。
図27において、破線で示される液滴10は、現在のフレームの1つ前のフレームで探索された液滴10の位置を示している。位置192は、破線の液滴10に対して探索されたテンプレート画像183の中心に対応する。現在のフレームが、テンプレート画像が登録されたフレームから2フレーム目である場合、図27の位置192が、図26の中心191に相当する。
2フレーム目以降の探索では、液滴追跡部104は、1フレーム期間Δtの液滴10の移動量193を算出する。1フレーム期間Δtの液滴10の移動量193は、1つ前のフレームで検出されたテンプレート画像183の中心位置と、2つ前のフレームで検出されたテンプレート画像183の中心位置との距離で算出される。
そして、液滴追跡部104は、1つ前のフレームのテンプレート画像183の位置192から、1フレーム期間Δtの液滴10の移動量193だけ移動した位置194を液滴10の予測位置として算出し、その予測位置を中心に所定の半径r2の範囲を探索範囲として、液滴10を探索する。ここで、2フレーム目以降の探索範囲を設定する半径r2は、1フレーム目の探索範囲を設定する半径r1よりも小さく設定される(r2<r1)。
以上のように、テンプレート画像183が登録されたフレームの次のフレーム(1フレーム目)では、液滴10の移動量が予測できないため、テンプレート画像183の登録時の中心191から半径r1の範囲を探索範囲として、テンプレートマッチングにより、液滴10が探索される。
一方、テンプレート画像183が登録されたフレームから2フレーム目以降では、それより前の探索結果から、液滴10の移動量が算出できるため、算出した移動量に基づく予測位置を中心に半径r1よりも小さい半径r2を探索範囲として、テンプレートマッチングにより、液滴10が探索される。
図28のフローチャートを参照して、液滴追跡部104により実行される液滴追跡処理について説明する。この処理は、例えば、イベント画像または再構成画像の2値画像151が前処理部101から最初に供給されたとき開始される。図28の液滴追跡処理は、前処理部101から供給される1枚の2値画像151に対する処理である。
初めに、ステップS101において、液滴追跡部104は、探索中の液滴10が、テンプレート画像183が登録されたフレームから2フレーム目以降の探索であるかを判定する。
ステップS101で、探索中の液滴10が2フレーム目以降の探索ではない、すなわち、テンプレート画像183が登録されたフレームの次のフレームの探索であると判定された場合、処理はステップS102へ進み、液滴追跡部104は、1つ前のフレームにおけるテンプレート画像183の中心191から所定の半径r1の範囲を探索範囲に設定する。
一方、ステップS101で、探索中の液滴10が2フレーム目以降の探索であると判定された場合、処理はステップS103へ進み、液滴追跡部104は、1つ前のフレームで検出されたテンプレート画像183の中心位置と、2つ前のフレームで検出されたテンプレート画像183の中心位置とに基づいて、1フレーム期間Δtの液滴10の移動量193を算出する。
続いて、ステップS104において、液滴追跡部104は、1つ前のフレームのテンプレート画像183の位置192から、1フレーム期間Δtの液滴10の移動量193だけ移動した位置194を液滴10の予測位置として算出し、その予測位置を中心に所定の半径r2の範囲を探索範囲に設定する。
ステップS105において、液滴追跡部104は、ステップS102またはステップS104で設定された探索範囲内の液滴10を、テンプレートマッチングにより探索する。
テンプレートマッチングでは、例えば、液滴追跡部104は、正規化相互相関による相関値を計算し、相関値が最も高い座標を求める。
ステップS106において、液滴追跡部104は、相関値が所定の閾値以上の画像が検出されたかを判定する。ステップS106では、ステップS105で検出された、相関値が最も高い画像の相関値が所定の閾値より小さい場合、相関値が所定の閾値以上の画像が検出されなかったと判定される。一方、ステップS105で検出された、相関値が最も高い画像の相関値が所定の閾値以上である場合、相関値が所定の閾値以上の画像が検出されたと判定される。
ステップS106で、相関値が所定の閾値以上の画像が検出されたと判定された場合、処理はステップS107に進み、液滴追跡部104は、追跡中の液滴10の軌跡情報を更新する。具体的には、液滴追跡部104は、追跡中の液滴10の軌跡情報として保存しておいた、前フレームまでの各フレームの液滴10の位置情報に、現在のフレームにおける液滴10の探索結果である位置情報を追加する。
ステップS108において、液滴追跡部104は、テンプレートマッチングで使用するテンプレート画像を、現在のフレームで検出された画像に更新する。なお、ステップS108の処理は省略し、液滴検出部103から供給されたテンプレート画像を継続して使用してもよい。
一方、ステップS106で、相関値が所定の閾値以上の画像が検出されなかったと判定された場合、処理はステップS109に進み、液滴追跡部104は、液滴10をロストしたとみなし、それまでの検出で保存された液滴10の軌跡情報をパラメータ判定部105に供給する。
図28の液滴追跡処理は、前処理部101から供給される1枚の2値画像151に対する処理であり、前処理部101から順次供給される2値画像151に対して、上述した液滴検出処理が実行される。追跡中の液滴10がロストしたとみなされるまで、後続の2値画像151に対してテンプレートマッチングにより液滴10が探索され、軌跡情報が更新される。
なお、各フレームの液滴10の位置情報を保存し、液滴10の軌跡情報として、パラメータ判定部105に供給することとしたが、液滴10の軌跡情報は、その他の情報であってもよい。例えば、各フレームの液滴10の位置から算出された液滴10の速度や移動方向などを、液滴10の軌跡情報としてもよい。
<10.ディスペンサ制御システムの液滴制御処理>
次に、図29のフローチャートを参照して、ディスペンサ制御システム1全体による液滴制御処理について説明する。この処理は、例えば、ディスペンサ制御システム1に対して所定の制御開始操作が行われたとき開始される。
初めに、ステップS141において、EVSカメラ12は、ディスペンサ11から噴射された液滴10に基づく輝度変化をイベントとして検出し、イベントデータを制御装置13に出力する。
ステップS142において、制御装置13の第1フレーム処理部121は、EVSカメラ12からのイベントデータに基づいてイベント画像と表示用画像を生成する第1のフレーム化処理を実行する。具体的には、第1フレーム処理部121は、図14を参照して説明した第1のフレーム化処理を実行する。
ステップS143において、制御装置13の第2フレーム処理部122は、EVSカメラ12からのイベントデータに基づいて輝度値を推定した再構成画像を生成する第2のフレーム化処理を実行する。具体的には、第2フレーム処理部122は、図17を参照して説明した第2のフレーム化処理を実行する。
ステップS144において、ノイズ除去処理部112は、フレーム化処理部111により生成されたイベント画像または再構成画像のそれぞれについて、膨張処理と収縮処理のフィルタ処理によるノイズ除去処理を実行する。
ステップS145において、ディスプレイ14は、フレーム化処理部111により生成された表示用画像を制御装置13から取得して表示する。
ステップS146において、制御装置13の液滴検出部103は、前処理部101から供給されたイベント画像と再構成画像のそれぞれから、追跡対象としての液滴10を検出する液滴検出処理を実行する。具体的には、液滴検出部103は、図25を参照して説明した液滴検出処理を実行する。液滴検出処理では、液滴10のテンプレート画像が液滴追跡部104に供給される他、液滴10の幅184が算出されてパラメータ判定部105に供給される。
ステップS147において、制御装置13の液滴追跡部104は、液滴検出部103において検出された液滴10を追跡し、液滴10の軌跡情報を算出して、パラメータ判定部105に供給する液滴追跡処理を実行する。具体的には、液滴追跡部104は、図28を参照して説明した液滴検出処理を実行し、液滴10の軌跡情報をパラメータ判定部105に供給する。
ステップS148において、制御装置13のパラメータ判定部105は、ディスペンサ11の制御パラメータが正常な範囲内であるかどうかを判定する異常判定処理を実行する。例えば、パラメータ判定部105は、異常判定処理として、液滴検出部103から供給された液滴10の幅184、液滴追跡部104から供給された液滴10の軌跡情報に基づいて、ディスペンサ11の吐出タイミング、吐出量が適正範囲内であるかどうかを判定する。
ステップS149において、パラメータ判定部105は、ディスペンサ11の制御パラメータを変更するかを判定する。例えば、パラメータ判定部105は、ディスペンサ11の吐出タイミングまたは吐出量が適正範囲内ではないと判定された場合、制御パラメータを変更すると判定される。
ステップS149で、制御パラメータを変更すると判定された場合、処理はステップS150へ進み、パラメータ判定部105は、パラメータを修正するための制御情報を、フィードバック制御情報として生成し、ディスペンサ11へ出力する。
一方、ステップS149で、制御パラメータを変更しないと判定された場合、ステップS150の処理はスキップされる。
ステップS151において、制御装置13は、制御を終了するか否かを判定する。例えば、制御装置13のパラメータ判定部105は、制御終了操作が行われたことが検出された場合、制御を終了すると判定し、それ以外の場合、まだ制御を終了しないと判定する。
ステップS151で、まだ制御を終了しないと判定された場合、処理はステップS141へ戻り、上述したステップS141ないしS151が繰り返される。
一方、ステップS151で、制御を終了すると判定された場合、図29の液滴制御処理が終了する。
液滴制御処理として説明した図29の各ステップの処理は、説明の便宜上、シーケンシャルな処理として説明したが、実際には、各ステップの処理が並列に実行され、実行結果が後段に順次出力される。
<11.DNNの適用>
上述した液滴制御処理では、EVSカメラ12からのイベントデータに基づいてイベント画像および再構成画像を生成し、生成したイベント画像または再構成画像から液滴10の位置、速度、移動方向などを算出して、ディスペンサ11の制御パラメータが正常な範囲内であるかどうかを判定した。
これに対して、例えば、DNN(Deep Neural Network)を用いてディスペンサ11の制御パラメータを識別する処理を実行し、ディスペンサ11の制御パラメータが正常な範囲内であるかどうかを判定してもよい。
DNNは、図30に示されるように、入力データに対して特徴抽出処理を実行して特徴量を抽出し、抽出された特徴量に基づいて識別処理を実行することにより、識別結果を得る。
例えば、制御装置13は、入力データとして、イベント画像または再構成画像の少なくとも1つをDNNに与え、識別結果として、ディスペンサ11の制御パラメータを出力するようなDNNを学習により生成して用いることができる。
図31は、イベント画像および再構成画像を入力データとしてDNNが識別処理を行うようにした場合の液滴制御処理のフローチャートを示している。
図31のステップS201ないしS205およびS207ないしS209は、図29のステップS141ないしS145およびS149ないしS151と同一の処理であり、図29のステップS146ないしS148の処理が、図31のステップS206におけるDNNによる制御パラメータ識別処理に変更されている。
ステップS206において、例えば、制御装置13のDNN処理部は、前処理部101から供給されたイベント画像および再構成画像に基づいて、ディスペンサ11の制御パラメータを識別し、パラメータ判定部105に出力する。パラメータ判定部105は、ステップS207において、識別結果としての制御パラメータに基づいて、制御パラメータを変更するか否かを判定する。
あるいはまた、入力データとして、EVSカメラ12からのイベントデータをそのままDNNに与え、識別結果として、ディスペンサ11の制御パラメータを出力するようなDNNを学習により生成して用いてもよい。
図32は、イベントデータを入力データとしてDNNが識別処理を行うようにした場合の液滴制御処理のフローチャートを示している。
図32のステップS221およびS223ないしS225は、図29のステップS141およびS149ないしS151と同一の処理であり、図29のステップS142ないしS148の処理が、図32のステップS222におけるDNNによる制御パラメータ識別処理に変更されている。
ステップS222において、例えば、制御装置13のDNN処理部は、EVSカメラ12から供給されたイベントデータに基づいて、ディスペンサ11の制御パラメータを識別し、パラメータ判定部105に出力する。パラメータ判定部105は、ステップS223において、識別結果としての制御パラメータに基づいて、制御パラメータを変更するか否かを判定する。
イベントデータが所定の圧縮形式で圧縮されたデータでEVSカメラ12から出力される場合には、所定の圧縮形式で圧縮されたイベントデータを入力データとしてそのまま学習し、制御パラメータを識別できるようにしてもよい。
識別処理を実行する機械学習は、DNNの他、SNN(Spiking Neural Network)を用いてもよい。
以上の第1実施の形態によれば、EVSカメラ12が、ディスペンサ11から噴射された液滴10に基づく輝度変化をイベントとして検出し、イベントデータを制御装置13に出力する。制御装置13は、EVSカメラ12から出力されてきたイベントデータに基づいて、ディスペンサ11の液滴10の噴射を制御する制御情報を生成して、ディスペンサ11へ出力する。これにより、ディスペンサ11による液滴を的確に検出して、液滴の噴射を高精度に制御することができる。
<12.ディスペンサ制御システムの第2実施の形態>
図33は、本技術を適用したディスペンサ制御システムの第2実施の形態の構成例を示している。
図33において、図1に示した第1実施の形態と対応する部分については同一の符号を付してあり、その部分の説明は適宜省略して、異なる部分に注目して説明する。
図33のディスペンサ制御システム1では、液滴10を撮影してRGB画像(カラー画像)を出力するRGBカメラ201がさらに追加されている。RGBカメラ201は、例えば、図33に示されるように、液滴10の移動方向にEVSカメラ12と並んで配置される。EVSカメラ12の撮影範囲と異なる範囲が、RGBカメラ201の撮影範囲として設定される。
制御装置13は、RGBカメラ201から供給されるRGB画像に対して、ラベリング処理、テンプレートマッチング等を行うことにより、液滴10を検出および追跡する。また、制御装置13は、RGBカメラ201から供給されるRGB画像に基づいて、液滴10の色および形状などを解析する。制御装置13は、EVSカメラ12のイベントデータに基づく液滴10の軌跡情報との対応をとり、イベント画像または再構成画像の液滴10の検出情報と、RGB画像に基づく液滴10の検出情報を統合する。制御装置13は、統合した検出情報に基づいて、制御パラメータが正常であるかどうかを判定し、フィードバックすることができる。
なお、EVSカメラ12とRGBカメラ201の配置は、図33のように、液滴10の移動方向に並んで配置させる構成のほか、例えば、図34のように、ハーフミラー211を介して同一の撮影範囲を撮影する構成としてもよい。
図33のように、EVSカメラ12とRGBカメラ201とで異なる撮影範囲となるように配置した場合には、EVSカメラ12とRGBカメラ201とで異なる照明条件を設定することができるので、各々のカメラに適した照明を用いることができる。
一方、図34のように、EVSカメラ12とRGBカメラ201とで同一の撮影範囲を撮影する配置とした場合には、各カメラで検出される液滴10の対応関係の認識が容易となる。
以上の第2実施の形態によれば、EVSカメラ12が、ディスペンサ11から噴射された液滴10に基づく輝度変化をイベントとして検出し、イベントデータを制御装置13に出力する。制御装置13は、EVSカメラ12から出力されてきたイベントデータに基づいて、ディスペンサ11の液滴10の噴射を制御する制御情報を生成して、ディスペンサ11へ出力する。これにより、ディスペンサ11による液滴を的確に検出して、液滴の噴射を高精度に制御することができる。また、RGBカメラ201が撮影したRGB画像も用いて、液滴10を的確に検出して、液滴の噴射を制御することができる。
<13.ディスペンサ制御システムの第3実施の形態>
図35は、本技術を適用したディスペンサ制御システムの第3実施の形態の構成例を示している。
図35において、図1に示した第1実施の形態と対応する部分については同一の符号を付してあり、その部分の説明は適宜省略して、異なる部分に注目して説明する。
図35に示される第3実施の形態を、図1に示した第1実施の形態と比較すると、第3実施の形態におけるディスペンサ制御システム1は、第1実施の形態におけるEVSカメラ12と制御装置13が、EVSカメラ300に置き換えられた構成となっている。
EVSカメラ300は、イベントセンサと、第1実施の形態における制御装置13の機能を実行する処理部とを備える撮像装置である。すなわち、EVSカメラ300は、ディスペンサ11から噴射された液滴10に基づく輝度変化をイベントとして検出し、イベントデータを生成する。また、EVSカメラ300は、イベントデータに基づいて、ディスペンサ11の液滴10の噴射を制御するフィードバック制御情報を生成して、ディスペンサ11へ出力する。さらに、EVSカメラ300は、イベントデータに基づいて、作業者がモニタリングするための表示用画像を生成し、ディスプレイ14に表示させる。
<EVSカメラの構成例>
図36は、図35のEVSカメラ300の構成例を示すブロック図である。
EVSカメラ300は、光学部311、撮像素子312、記録部313、および、制御部314を備える。
光学部311は、被写体からの光を集光して撮像素子312に入射させる。撮像素子312は、画素の輝度変化をイベントとして、イベントが発生した場合に、イベントの発生を表すイベントデータを出力するイベントセンサである。
撮像素子312は、光学部311を介して入射される入射光を光電変換してイベントデータを生成し、記録部313に記録させる。また、撮像素子312は、イベントデータに基づいて、ディスペンサ11の液滴10の噴射を制御するフィードバック制御情報を生成して、ディスペンサ11へ出力する。さらに、撮像素子312は、イベントデータに基づいて表示用画像を生成し、ディスプレイ14に出力する。
記録部313は、撮像素子312から供給されるイベントデータ、イベント画像等を所定の記録媒体に記録して蓄積する。制御部314は、撮像素子312を制御する。例えば、制御部314は、撮像素子312に対して、撮像の開始および終了を指示したり、イベント画像のフレームレートなどを指定する。
図37は、撮像素子312の概略構成例を示す斜視図である。
撮像素子312は、受光チップ321と、検出チップ322とを貼り合わせて積層した積層構造で構成されている。受光チップ321と検出チップ322とは、例えば、ビア、Cu-Cu接合やバンプなどの接続部を介して電気的に接続されている。
図38は、受光チップ321の構成例を示す平面図である。
受光チップ321は、チップ中央部に形成された受光部341と、受光部341の外側の外周部に形成された1以上のビア配置部342とを備える。図38の例では、3つのビア配置部342がチップ外周の角部に設けられている。
受光部341には、複数のフォトダイオード351が二次元格子状に配列されている。
フォトダイオード351は、入射光を光電変換して光電流を生成する。フォトダイオード351のそれぞれには、行アドレスおよび列アドレスからなる画素アドレスが割り当てられ、画素として扱われる。ビア配置部342には、検出チップ322と電気的に接続されるビアが配置されている。
図39は、検出チップ322の構成例を示す平面図である。
検出チップ322は、1以上のビア配置部361と、アドレスイベント検出部362、行駆動回路363、列駆動回路364、および、信号処理回路365とを備える。
ビア配置部361は、受光チップ321のビア配置部342と対応する位置に設けられ、ビアを介して受光チップ321と電気的に接続する。図39では、図38の3つのビア配置部342に対応する位置に、それぞれ、ビア配置部361が設けられており、合計3個のビア配置部361が検出チップ322上に形成されている。
アドレスイベント検出部362は、受光チップ321の複数のフォトダイオード351それぞれの光電流から検出信号を生成して、信号処理回路365に出力する。検出信号は、入射光の光量が所定の閾値を超えた旨をアドレスイベントとして検出したか否かを示す1ビットの信号である。
行駆動回路363は、アドレスイベント検出部362の所定の行アドレスを選択して、選択した行アドレスの検出信号を信号処理回路365へ出力させる。
列駆動回路364は、アドレスイベント検出部362の所定の列アドレスを選択して、選択した列アドレスの検出信号を信号処理回路365へ出力させる。
信号処理回路365は、アドレスイベント検出部362から出力されてくる検出信号に対して所定の信号処理を実行する。例えば、信号処理回路365は、アドレスイベント検出部362から出力されてくる検出信号に基づいて、イベントデータを生成し、さらに、イベント画像、再構成画像、および、表示用画像を生成する処理を実行する。また、信号処理回路365は、生成したイベント画像および再構成画像に基づいて、ディスペンサ11の制御パラメータが正常範囲内であるかどうかを判定し、正常範囲外であると判定された場合に、フィードバック制御情報を生成して出力する。したがって、第3実施の形態においては、図1の制御装置13で実行される処理が、信号処理回路365で実行される。
図40は、アドレスイベント検出部362の詳細を示す平面図である。
アドレスイベント検出部362には、複数のアドレスイベント検出回路371が二次元格子状に配列されている。アドレスイベント検出回路371は、例えば、受光チップ321上のフォトダイオード351と1対1に配置される。各アドレスイベント検出回路371は、対応するフォトダイオード351と、ビアやCu-Cu接合などにより電気的に接続されている。
図41は、アドレスイベント検出回路371の構成例を示すブロック図である。
アドレスイベント検出回路371は、電流電圧変換回路381、バッファ382、減算器383、量子化器384、および、転送回路385を備える。
電流電圧変換回路381は、対応するフォトダイオード351からの光電流を電圧信号に変換する。電流電圧変換回路381は、光電流の対数値に応じた電圧信号を生成し、バッファ382に出力する。
バッファ382は、電流電圧変換回路381からの電圧信号をバッファリングし、減算器383に出力する。このバッファ382により、後段のスイッチング動作に伴うノイズのアイソレーションを確保するとともに、後段を駆動する駆動力を向上させることができる。なお、このバッファ382は、省略することもできる。
減算器383は、行駆動回路363からの行駆動信号に従ってバッファ382からの電圧信号のレベルを低下させる。減算器383は、低下後の電圧信号を量子化器384に出力する。
量子化器384は、減算器383からの電圧信号をデジタル信号に量子化し、検出信号として転送回路385に供給する。転送回路385は、列駆動回路364からの列駆動信号に従って、検出信号を信号処理回路365に転送(出力)する。
図42は、電流電圧変換回路381の詳細構成を示す回路である。電流電圧変換回路381は検出チップ322に配置されるが、図42では、電流電圧変換回路381と接続されている受光チップ321のフォトダイオード351も示されている。
電流電圧変換回路381は、FET411乃至413で構成される。FET411及び413としては、例えば、N型のMOS(NMOS) FETを採用することができ、FET412としては、例えば、P型のMOS(PMOS) FETを採用することができる。
受光チップ321のフォトダイオード351は、入射する光を受光し、光電変換を行って、電気信号としての光電流を生成して流す。電流電圧変換回路381はフォトダイオード351からの光電流を、その光電流の対数に対応する電圧(以下、光電圧ともいう)Voに変換して、バッファ382(図41)に出力する。
FET411のソースは、FET413のゲートと接続され、FET411のソースとFET413のゲートとの接続点には、フォトダイオード351による光電流が流れる。FET411のドレインは、電源VDDに接続され、そのゲートは、FET413のドレインに接続される。
FET412のソースは、電源VDDに接続され、そのドレインは、FET411のゲートとFET413のドレインとの接続点に接続される。FET412のゲートには、所定のバイアス電圧Vbiasが印加される。FET413のソースは接地される。
FET411のドレインは電源VDD側に接続されており、ソースフォロアになっている。ソースフォロアになっているFET411のソースには、フォトダイオード351が接続され、これにより、FET411(のドレインからソース)には、フォトダイオード351の光電変換により生成される電荷による光電流が流れる。FET411は、サブスレッショルド領域で動作し、FET411のゲートには、そのFET411に流れる光電流の対数に対応する光電圧Voが現れる。以上のように、フォトダイオード351では、FET411により、フォトダイオード351からの光電流が、その光電流の対数に対応する光電圧Voに変換される。
光電圧Voは、FET411のゲートとFET413のドレインとの接続点から、バッファ382を介して、減算器383に出力される。
図43は、減算器383および量子化器384の詳細構成を示している。
減算器383は、電流電圧変換回路381からの光電圧Voについて、現在の光電圧と、現在と微小時間だけ異なるタイミングの光電圧との差を演算し、その差に対応する差信号Voutを出力する。
減算器383は、コンデンサ431、オペアンプ432、コンデンサ433、及び、スイッチ434を備える。量子化器384は、コンパレータ451を備える。
コンデンサ431の一端は、バッファ382(図41)の出力に接続され、他端は、オペアンプ432の入力端子に接続される。したがって、オペアンプ432の(反転)入力端子には、コンデンサ431を介して光電圧Voが入力される。
オペアンプ432の出力端子は、量子化器384のコンパレータ451の非反転入力端子(+)に接続される。
コンデンサ433の一端は、オペアンプ432の入力端子に接続され、他端は、オペアンプ432の出力端子に接続される。
スイッチ434は、コンデンサ433の両端の接続をオン/オフするように、コンデンサ433に接続される。スイッチ434は、行駆動回路363の行駆動信号に従ってオン/オフすることにより、コンデンサ433の両端の接続をオン/オフする。
コンデンサ433及びスイッチ434は、スイッチドキャパシタを構成する。オフになっているスイッチ434が一時的にオンにされ、再び、オフにされることにより、コンデンサ433は、電荷が放電され、新たに電荷を蓄積することができる状態にリセットされる。
スイッチ434をオンした際のコンデンサ431の、フォトダイオード351側の光電圧VoをVinitと表すとともに、コンデンサ431の容量(静電容量)をC1と表すこととする。オペアンプ432の入力端子は、仮想接地になっており、スイッチ434がオンである場合にコンデンサ431に蓄積される電荷Qinitは、式(1)により表される。
Qinit = C1 ×Vinit ・・・(1)
また、スイッチ434がオンである場合には、コンデンサ433の両端は短絡されるため、コンデンサ433に蓄積される電荷はゼロとなる。
その後、スイッチ434がオフになった場合の、コンデンサ431の、フォトダイオード351側の光電圧Voを、Vafterと表すこととすると、スイッチ434がオフになった場合にコンデンサ431に蓄積される電荷Qafterは、式(2)により表される。
Qafter = C1×Vafter ・・・(2)
コンデンサ433の容量をC2と表すこととすると、コンデンサ433に蓄積される電荷Q2は、オペアンプ432の出力電圧である差信号Voutを用いて、式(3)により表される。
Q2 = -C2×Vout ・・・(3)
スイッチ434がオフする前後で、コンデンサ431の電荷とコンデンサ433の電荷とを合わせた総電荷量は変化しないため、式(4)が成立する。
Qinit = Qafter + Q2 ・・・(4)
式(4)に式(1)ないし式(3)を代入すると、式(5)が得られる。
Vout = -(C1/C2)×(Vafter - Vinit) ・・・(5)
式(5)によれば、減算器383では、光電圧Vafter及びVinitの減算、すなわち、光電圧VafterとVinitとの差(Vafter - Vinit)に対応する差信号Voutの算出が行われる。式(5)によれば、減算器383の減算のゲインはC1/C2となる。したがって、減算器383は、コンデンサ433のリセット後の光電圧Voの変化をC1/C2倍した電圧を、差信号Voutとして出力する。
減算器383は、行駆動回路363が出力する行駆動信号により、スイッチ434がオンオフされることにより、差信号Voutを出力する。
量子化器384のコンパレータ451は、減算器383からの差信号Voutと、反転入力端子(-)に入力される所定の閾値電圧Vthとを比較し、比較結果を検出信号として、転送回路385に出力する。
なお、図42の構成例では、受光チップ321に、受光部341のフォトダイオード351のみが配置され、検出チップ322に、電流電圧変換回路381を含むアドレスイベント検出回路371が配置された。この場合、画素数の増大に伴って、検出チップ322内の回路規模が増大するおそれがある。そのため、アドレスイベント検出回路371の一部は、受光チップ321の受光部341に配置してもよい。
例えば、図44に示されるように、アドレスイベント検出回路371の電流電圧変換回路381の一部、例えば、N型のMOS(NMOS) FETで構成されるFET411及び413を、受光チップ321の受光部341に配置した構成を採用してもよい。この場合、受光チップ321は、N型のMOS FETのみとなり、検出チップ322の電流電圧変換回路381は、P型のMOS FETのみとなるので、P型とN型を混在させる場合と比較して、トランジスタを形成する際の工程数を削減することができる。これにより受光チップ321の製造コストを削減することができる。
以上の第3実施の形態によれば、EVSカメラ300が、自身で生成したイベントデータに基づいて、ディスペンサ11の液滴10を検出して、液滴10の噴射を制御する制御情報を生成して、ディスペンサ11へ出力することができる。これにより、ディスペンサ11による液滴を的確に検出して、液滴の噴射を高精度に制御することができる。
<14.まとめ>
以上説明したディスペンサ制御システム1の各実施の形態によれば、輝度変化をイベントとして検出して非同期に出力するEVSカメラ12を用いることにより、フレームレートが1000fps程度の高速カメラよりも、演算量や通信量を大幅に削減することができ、高速に液滴10を撮影することができる。また、イベントデータに基づいて生成するイベント画像または再構成画像は2値画像であるので、演算量が少なく、消費電力も低減することができる。
ディスペンサ制御システム1の液滴制御処理によれば、イベントデータに基づいて生成するイベント画像または再構成画像から液滴10の軌跡情報やサイズ(幅)、体積などを高速に検出することができ、ディスペンサ11の制御パラメータを高精度に制御することができる。これにより、ディスペンサ11による液滴10を的確に検出して、液滴10の噴射を高精度に制御することができる。ディスペンサ11による液滴10の噴射の良、不良の判定をリアルタイムで行うことができる。
<15.コンピュータ構成例>
上述した制御装置13が実行する液滴10の制御処理は、ハードウエアにより実行することもできるし、ソフトウエアにより実行することもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウエアに組み込まれているマイクロコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどが含まれる。
図45は、上述した一連の液滴制御処理をプログラムにより実行する情報処理装置としてのコンピュータのハードウエアの構成例を示すブロック図である。
コンピュータにおいて、CPU(Central Processing Unit)501,ROM(Read Only Memory)502,RAM(Random Access Memory)503は、バス504により相互に接続されている。
バス504には、さらに、入出力インタフェース505が接続されている。入出力インタフェース505には、入力部506、出力部507、記憶部508、通信部509、及びドライブ510が接続されている。
入力部506は、キーボード、マウス、マイクロホン、タッチパネル、入力端子などよりなる。出力部507は、ディスプレイ、スピーカ、出力端子などよりなる。記憶部508は、ハードディスク、RAMディスク、不揮発性のメモリなどよりなる。通信部509は、ネットワークインタフェースなどよりなる。ドライブ510は、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブル記録媒体511を駆動する。
以上のように構成されるコンピュータでは、CPU501が、例えば、記憶部508に記憶されているプログラムを、入出力インタフェース505及びバス504を介して、RAM503にロードして実行することにより、上述した一連の処理が行われる。RAM503にはまた、CPU501が各種の処理を実行する上において必要なデータなども適宜記憶される。
コンピュータ(CPU501)が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブル記録媒体511に記録して提供することができる。また、プログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することができる。
コンピュータでは、プログラムは、リムーバブル記録媒体511をドライブ510に装着することにより、入出力インタフェース505を介して、記憶部508にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部509で受信し、記憶部508にインストールすることができる。その他、プログラムは、ROM502や記憶部508に、あらかじめインストールしておくことができる。
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
例えば、上述した複数の実施の形態の全てまたは一部を適宜組み合わせた形態を採用することができる。
また、上述のフローチャートで説明した各ステップは、1つの装置で実行する他、複数の装置で分担して実行することができる。
さらに、1つのステップに複数の処理が含まれる場合には、その1つのステップに含まれる複数の処理は、1つの装置で実行する他、複数の装置で分担して実行することができる。
なお、本明細書に記載された効果はあくまで例示であって限定されるものではなく、本明細書に記載されたもの以外の効果があってもよい。
なお、本技術は、以下の構成を取ることができる。
(1)
光信号を光電変換し、画素信号を出力する画素を有し、前記画素信号に基づき、前記光信号の時間的輝度変化をイベント信号として出力するイベントセンサと、
前記イベント信号に基づき、ディスペンサから噴射された液滴を検出するプロセッサと
を備える情報処理装置。
(2)
前記イベントセンサは、前記画素信号の読出し方向と前記液滴の移動方向とが一致するように配置されている
前記(1)に記載の情報処理装置。
(3)
前記イベントセンサは、直交する2方向から前記液滴を検出する
前記(1)または(2)に記載の情報処理装置。
(4)
前記直交する2方向は、異なる前記イベントセンサで検出される
前記(1)ないし(3)のいずれかに記載の情報処理装置。
(5)
前記直交する2方向は、1つの前記イベントセンサで検出される
前記(1)ないし(3)のいずれかに記載の情報処理装置。
(6)
前記プロセッサは、さらに、前記ディスペンサによる前記液滴の噴射を制御する制御情報を生成して出力する
前記(1)ないし(5)のいずれかに記載の情報処理装置。
(7)
前記プロセッサは、前記イベントセンサからの前記イベント信号を所定の積分時間単位でまとめたイベント画像を生成し、生成した前記イベント画像に基づいて、前記制御情報を生成する
前記(6)に記載の情報処理装置。
(8)
前記プロセッサは、前記イベント画像として、第1の極性の輝度変化である第1のイベントの前記イベント信号に基づく第1のイベント画像と、前記第1の極性と反対の極性である第2の極性の輝度変化である第2のイベントの前記イベント信号に基づく第2のイベント画像とを生成する
前記(7)に記載の情報処理装置。
(9)
前記イベント画像は、前記イベント信号が発生した画素の画素値を1、前記イベント信号が発生しない画素の画素値を0とする2値画像である
前記(7)または(8)に記載の情報処理装置。
(10)
前記所定の積分時間は、フレームレートに対応する1フレーム期間よりも短い時間である
前記(7)ないし(9)のいずれかに記載の情報処理装置。
(11)
前記プロセッサは、前記第1のイベントが発生した画素の画素値を第1の輝度値、前記第2のイベントが発生した画素の画素値を第2の輝度値、その他の画素の画素値を第3の輝度値とした表示用画像をさらに生成する
前記(8)ないし(10)のいずれかに記載の情報処理装置。
(12)
前記プロセッサは、前記第1のイベント画像に基づいて、前記液滴の軌跡情報を算出し、算出した前記軌跡情報に基づいて、前記制御情報を生成する
前記(8)ないし(11)のいずれかに記載の情報処理装置。
(13)
前記プロセッサは、前記第1のイベント画像のノイズを除去するノイズ除去処理を行う 前記(8)ないし(12)のいずれかに記載の情報処理装置。
(14)
前記プロセッサは、フレームレートに対応するフレームレート期間単位で、前記イベント信号に基づいて輝度値を推定した再構成画像を生成する
前記(1)ないし(13)のいずれかに記載の情報処理装置。
(15)
前記プロセッサは、過去の全ての前記イベント信号を用いて、前記再構成画像を生成する
前記(14)に記載の情報処理装置。
(16)
前記プロセッサは、前記再構成画像に基づいて前記液滴の幅を算出し、算出した前記幅に基づいて、前記ディスペンサによる前記液滴の噴射を制御する制御情報を生成する
前記(14)または(15)に記載の情報処理装置。
(17)
前記プロセッサは、前記再構成画像に基づいて前記液滴の体積を算出し、算出した前記体積に基づいて、前記ディスペンサによる前記液滴の噴射を制御する制御情報を生成する 前記(14)ないし(16)のいずれかに記載の情報処理装置。
(18)
前記プロセッサは、前記再構成画像の生成タイミングより前の一定期間内にイベントが発生していない画素の画素値をゼロとするノイズ除去処理を行う
前記(14)ないし(17)のいずれかに記載の情報処理装置。
(19)
前記プロセッサは、イメージセンサで前記液滴を撮影したRGB画像にも基づいて、前記液滴を検出する
前記(1)ないし(17)のいずれかに記載の情報処理装置。
(20)
所定の液体を噴射するディスペンサと、
光信号を光電変換し、画素信号を出力する画素を有し、前記画素信号に基づき、前記光信号の時間的輝度変化をイベント信号として出力するイベントセンサと、
前記イベント信号に基づき、前記ディスペンサから噴射された液滴を検出するプロセッサと
を備える情報処理システム。