以下、本発明の車両検査装置2の実施例を説明する。
図1(a)は、本実施例の車両検査装置1を構成する検査ユニット2の配置図である。図1(a)に示すように、検査ユニット2は、レール3,4の両脇に複数(本実施例では4つ)設置され、それぞれ独立に車両6の左右の車輪の外側と内側を検査するようになっている。図中の矢印は車両6の進行方向を示している。また、検査ユニット2には、それぞれユニット番号が設定されている。なお、一般に、車両検査は、車両6が車庫に入る前に行われるので、検査ユニット2は、車庫前に設置される。
図1(b)は、車両検査装置1の構成図である。車両検査装置1は、検査ユニット2と、データベース8と、パノラマ形成装置10と、パソコン12とで構成され、それぞれ通信線14を介して通信可能となっている。検査ユニット2は、複数(本実施例では4つ)の画像取得装置16,17,18,19で構成され、各画像取得装置は機能は同じであるが、独立して動作を行うようになっている。図中の矢印は、車両6の車輪20が転がる方向である。
検査ユニット2は、画像取得装置16,17,18,19で取得した車輪20の分割撮影された複数の車輪画像をデータベース8に送信し、データベース8はそれらを格納する。パノラマ形成装置10は、データベース8に格納された複数の車輪画像から全体の車輪画像を生成し、パソコン12に送信する。パソコン12は、キーボードやマウス等のコマンド入力装置と、表示装置を備えており、データベース8にアクセスして車輪に関する画像及び計測データを参照して後述する車輪の特徴点のパタンマッチング処理を行う。また、パノラマ形成装置10から送信される全体の車輪画像を表示装置に表示する。なお、データベース8、パノラマ形成装置10、パソコン12の動作について後に詳述する。
図2(a)は、画像取得装置16の構成図である。画像取得装置16は、カメラ22と、フラッシュ24と、車輪検知センサ26と、車輪計数装置28と、タイマー29と、画像保存装置30と、画像処理装置32とで構成される。カメラ22は、レール4に沿って、それぞれ車輪20の周囲長の4分の1の間隔で設置され、車輪20の一周を360度として、車輪20の回転角が90度進む毎に車輪20の側面を撮影するようになっている。また、周囲長は車輪毎に異なるので、ここでは基準車輪21の周囲長4分の1の間隔で並べる。基準車輪21とは、車輪20と同一の構造で、磨耗していない車輪である。
図2(b)は、画像取得装置16が備えるカメラ22の撮影視野である。図2(b)に示すように、撮影視野には、車輪20の中心にある車軸34、車軸34を中心とする同心円上にあるボルト36乃至43が含まれる。なお、ボルト36乃至43は同じ形状である。カメラ22の撮影視野は、車輪20とレール4の接点の両側に60度前後の視野を持たせる。したがって、カメラ22は、車輪20の下側約120度前後の範囲を撮影するようになっており、図2(b)においては、矩形46内の横線で示した領域48である。また、車輪20の4分の1周分、すなわち90度分が画面中央に写り、矩形46内の格子で示した領域49である。また、カメラ22は、車輪20に付属している各種部品のため、車輪20に正対しておらず、車輪20の下方からやや見上げる画角となっている。したがって、本来真円である車輪20は上下方向に縮んだ楕円状に撮影されている。なお、カメラ22は、20ナノ秒以下の短時間露光で撮影が可能なディジタルカメラである。フラッシュ24は、カメラ22が20ナノ秒以下の露光でも十分に撮影できるような強い光量が必要であり、ストロボ制御されたLEDを利用することができる。車輪検知センサ26は、例えばレール4に装着した磁気センサ又はレール4の近傍に設置した光電センサで構成することができ、車輪20が所定の位置に来たことを数十ナノ秒の遅延で検知し、同期信号を出力するようになっている。なお、移動する車輪20をカメラ22で撮影するために画像に“流れ”が発生するが、その“流れ”の大きさが検出対象となる特徴点の幅の半分以下になるように、シャッターの速度は高速に調整しておく。本実施例では、車輪検知センサ24とカメラ20はレール4に対して同じ場所にあるとする。
ここで、画像取得装置16のその他の装置の構成を、画像取得装置16の動作とともに説明する。まず、車輪検知センサ26が、車輪20が所定の位置に来たことを検知し、カメラ22とフラッシュ24と車輪計数装置28とタイマー29に同期信号を出力する。カメラ22は、同期信号に同期して車輪20を撮影し、撮影した車輪画像を画像保存装置30に出力する。フラッシュ24は、同期信号に同期して発光し、車輪20の一部を照明する。タイマー29は、同期信号に同期して車両6の通過時刻を画像保存装置30に出力する。車輪計数装置28は、車輪検知センサ26の同期信号の立ち上がり回数を計数することで車両6の何番目の車輪20を撮影したかを知ることができ、この順番を車輪番号として画像保存装置30に出力する。画像保存装置30は、車輪番号に前述した検査ユニット2のユニット番号を付したものを車輪IDとして、この車輪IDと車輪画像と通過時刻とを対応付けて保存する。検査ユニット2のユニット番号により、車両6のどの車輪20をどこから撮影したかを特定することができる。また、車輪計数装置28は、同期信号の立ち上がり回数を予め定められた計数値まで計数することで、車両6の一編成の通過が完了したタイミングを知り、これを画像処理装置32に通知するとともに、計数値をリセットして新たな車両の到来に備える。なお、予め定められた計数値とは、車両6の片側の車輪20の数である。画像処理装置32は、車輪計数装置28による車両6の通過完了通知の受信後、画像保存装置30に保存された車輪画像を処理する。
ここで、図3を参照して、画像処理装置32の処理フローを説明する。ステップ1において、画像保存装置30から車輪画像を入力する。車輪画像のファイル名は車輪IDを用いる。
ステップ2について、図4,5を参照して説明する。図4(a)は、車輪20とカメラ22の位置関係を示し、平面50は車輪20の検査すべき側面の平面を示す。図4(b)は、後述するカメラキャリブレーションを説明するための図であり、図5は、後述する正対画像マトリクスを説明するための図である。図4(a)に示すように、カメラ22は車輪20に正対していないので、カメラ22で撮影した車輪画像に射影変換を施して車輪20に正対する正対画像を生成する。カメラ22と車輪20の位置関係は確定しているので、射影変換に係るパラメータはカメラキャリブレーションによって求めることができる。
ここで、カメラキャリブレーションについて説明する。カメラキャリブレーションは、カメラ22の設置固定時に少なくとも1度行っておけば、以降はその時に求めたパラメータを用いて射影変換を行うことができる。ただし、車輪は磨耗によってその半径が変わるため、撮影した画像における車輪の上下位置の微小な差異が生じる。また、カメラ22の撮影タイミングの差異により、水平位置でも微小な差異が生ずる。よって、カメラキャリブレーションは、磨耗していない基準車輪21を基準となる位置に定めて行う。なお、車輪20と基準車輪21の構造は同一である。
ここで、カメラパラメータを求めるため、画面上画像マトリクスと、車輪ワールド座標の2つの座標系を定義する。画面上画像マトリクスは[x,y]で表し、カメラ22で車輪20又は基準車輪21の部分を撮影したディジタル画像の座標系で、行列表現が可能であり、行数と列数で画素を特定する。図4(b)の矩形46は画面上画像マトリクスの範囲を表し、左上端を基点[0,0]とする。1画素当たりの大きさは、ミリメートル/画素である。
車輪ワールド座標は(X,Y)で表し、実際の車輪20又は基準車輪21の座標系であって、実数値をとる。車輪検知センサ26が、車輪20又は基準車輪21を検出したときの基準となる位置での車軸34の位置を原点とする。車輪20又は基準車輪21とレール4の接点と車軸34を結ぶ線分をY軸、車軸34を通りレール4に平行な軸をX軸とする。単位はミリメートルなどMKSA単位系で定めることができる。
以上2つの座標系を定義してカメラパラメータを求める。図4(b)は、基準車輪21の画面上画像マトリクスである。基準車輪21は、中心に基準車軸35を有する。マーク52,53,54,55はカメラパラメータを求めるための目印であり、基準車輪21にもともと刻印されているパタンを用いてもよい。マーク52乃至55の画面上画像マトリクスをそれぞれ[x1,y1]、[x2,y2]、[x3,y3]、[x4,y4]とし、対応する車輪ワールド座標をそれぞれ、(X1,Y1)、(X2,Y2)、(X3,Y3)、(X4,Y4)とする。これらの画面上画像マトリクス及び車輪ワールド座標の値は既知である。ここで、求めるべき未知のカメラパラメータをc11、c12、c13、c21、c22、c23、c31、c32とする。ただし、車輪ワールド座標が実数であるのに対して画面上画像マトリクスは整数値であるから厳密には一致しないが、整数値の中で対応する実数値に最も近いものを選ぶものとする。このようにすると、画面上画像マトリクス[x,y]と、車輪ワールド座標(X,Y)には(数1)の関係が成立する。
ここで、定数Hを消去して整理すると(数2)が得られる。
(数3)の(X,Y)と[x,y]は、マーク52乃至55の車輪ワールド座標と画面上画像マトリクスを代入して成立すべきであるから、これらを代入すると(数4)を得る。
(数4)の左辺の8×8行列の逆行列を両辺に乗じることにより、カメラパラメータc
11、c
12、c
13、c
21、c
22、c
23、c
31、c
32を求めることができる。また、マークを5つ以上定めた場合は、(数4)の左辺の行列は行数が列数よりも多くなる。この場合でも、左辺の行列の転置行列を両辺に乗じることで、左辺の行列を8×8行列とし、カメラパラメータc
11、c
12、c
13、c
21、c
22、c
23、c
31、c
32について解くことができる。
以上示した方法により、カメラパラメータが既知となれば、(数2)をx,yについてまとめた(数5)により、車輪ワールド座標(X,Y)から画面上画像マトリクス[x,y]への変換が可能となる。
また、(数5)を車輪ワールド座標(X,Y)についてまとめると、(数6)を得る。
(数8)の右辺行列の右肩の−1は逆行列を表す。逆行列はガウスの掃きだし法をはじめとして様々な解法があり、容易に求めることができる。(数8)により、画面上画像マトリクス[x,y]から車輪ワールド座標(X,Y)への変換ができる。
続いて、図5を参照して、正対画像のディジタル配列として正対画像マトリクスを定義する。正対画像マトリクスは[j,i]と表し、車輪20のディジタル画像であって、行列表現が可能であり、行数と列数で画素を特定する。1画素当たりの大きさはミリメートル/画素で表現され、垂直方向にj番目で水平方向にi番目の画素の輝度をその値として有する。図5は正対化した車輪20の図であり、矩形56は正対画像マトリクスの領域であって、矩形左上端を基点[0,0]とする。ここで、四隅の車輪ワールド座標をそれぞれ、A(−W/2,H0)、B(W/2,H0)、C(W/2,H0+H)、D(−W/2,H0+H)とする。W、H0、Hは実数である。さらに、正対画像マトリクス[j,i]の1画素の水平方向の大きさを表すdx=W/M、及び垂直方向の大きさを表すdy=H/Nなるdxとdyを定義する。MとNは自然数である。単位はともにミリメートル/画素となる。この場合、正対画像マトリクスはN行M列の行列となり、四隅の車輪正対画像マトリクスはそれぞれ、A[0,0]、B[M−1,0]、C[0,N−1]、D(M−1,N−1)となる。以上のことから、車輪ワールド座標(X,Y)を(数9)で表すことができ、正対画像マトリクス[j,i]から車輪ワールド座標(X,Y)への変換が可能となる。
また、(数9)を書き換えた(数10)により、車輪ワールド座標(X,Y)から正対画像マトリクス[j,i]への変換が可能となる。
(数10)において、jとiは必ずしも整数にならないが、それぞれ、左辺の値に最も近い整数を選択するものとする。(数9)により、正対画像マトリクス[j,i]の点を車輪ワールド座標(X,Y)の点に変換する。続いて車輪ワールド座標(X,Y)の点を、(数5)により画面上画像マトリクス[x,y]の点に変換する。画面上画像マトリクス[x,y]は撮影された正対補正前の画像であるから対応する点の輝度を、正対画像マトリクス[j,i]の輝度として割り当てる。以上の処理を正対画像マトリクス[j,i]の全域に亘り行う。すなわち、j=0,...,M−1とi=0,...,N−1に亘って行う。なお、対応する点が画面上画像マトリクス[x,y]の領域である矩形46からはみ出す場合は0などの固定値を割り当てることとする。これにより正対画像マトリクス[j,i]は正対した車輪の部分画像となる。
以上が処理フローのステップ2である。すなわち、ステップ2では、基準車輪21でカメラキャリブレーションを行ってカメラパラメータを算出し、カメラパラメータを用いて車輪20の画面上画像マトリクスを車輪ワールド座標に変換し、車輪ワールド座標と正対画像マトリクスとの関係を用いて、車輪20の画面上画像から正対画像マトリクスを生成する。
次に、図6を参照して、ステップ3の車軸座標検出処理を説明する。図6は車軸34の車輪ワールド座標(gx,gy)を算出する方法を示す図である。前述の通り、正対画像マトリクス[j,i]は、図5の矩形56の領域のディジタル画像である。このディジタル画像にソーベルフィルタ等の輪郭強調処理を加えて所定のしきい値で2値化した画像を矩形58として示している。ここでは、輪郭エッジとしての値の大きいほうを黒で表記している。水平線分60はレール4の輪郭の一部として現れるものである。これはカメラ22を固定することで常に同じ場所に現れるので、予め処理対象から除外できる。一方、矩形58の範囲62に現れる輪郭は、車輪20の輪郭であって円の一部である。ここで、円の一部である輪郭上の任意の2点をそれぞれEとFとする。座標値は2値化された画像である矩形58から知ることができる。ただし、これらは正対画像マトリクス[j,i]であるから、(数9)によって車輪ワールド座標に変換する必要がある。(数9)によって変換した車輪ワールド座標として、EとFの座標をそれぞれ、E(ex,ey)、F(fx,fy)とする。EとFの垂直二等分線Gは車軸34を通る。垂直二等分線Gは、垂直二等分線G上の任意の点を(x,y)とすると(数11)で表される。
ここで(数11)のパラメータをα、β、γで置き換えて(数12)とする。
α、β、γはEとFの座標により確定するパラメータである。ここで、範囲62の車輪20の輪郭上の任意の2点をk
0組(k
0は自然数)とって、これらの垂直二等分線をk
0本引く。このために添え字kを付して(数12)を(数13)に書き換える。ただし、k=1,2,..,k
0である。
k
0本の垂直二等分線は全て車軸34で交わるので(数13)の連立方程式の解が、車軸20の車輪ワールド座標になる。この連立方程式を解くために(数13)を(数14)で表現する。
さらに、簡単化のために行列をUで表して(数15)とする。
(数15)の両辺にUの転置行列を乗じて(数16)とする。
U
TUは2×2の行列になって、通常は逆行列が存在して(x,y)について解くことができる。これが車軸34の車輪ワールド座標(g
x,g
y)である。(数16)の解き方は逆行列を両辺に乗じてもよいし、ガウスの掃きだし法で解いてもよい。垂直二等分線が3本以上になると、車輪20の輪郭の検出位置のずれの影響で必ずしも車軸34で交わらないが、上述の方法により二乗誤差が最小の最適解として車軸34が求まる。なお、車輪ワールド座標(g
x,g
y)を(数10)によって正対画像マトリクスに変換すると、垂直方向及び水平方向に配列の順番が負の値になり得る。これは車軸34が、矩形56(矩形58も同様)の範囲内にないことを示しているが問題はない。以上が処理フローのステップ3である。
次に、図7を参照して、ステップ4の極座標画像作成について説明する。図7は正対画像マトリクスを変換した極座標画像である。画像処理装置32は予め極座標変換テーブルを持っており、まず、極座標変換テーブル生成について説明する。極座標(t,r)は実数値をとる座標系であって、車輪ワールド座標の原点からの距離rを縦軸、車輪20とレール4の接点と車軸34を結ぶ線分からの偏角tを横軸とする。r軸の単位はミリメートルなどMKSA単位系とし、t軸はラディアン又は度とする。横軸の範囲は、−π/3ラディアンからπ/3ラディアン、すなわち、−60度から60度までとする。また、縦軸の範囲は、車輪20とレール4の接点を含むR0とRWまでを範囲とする(R0とRWは実数)。ここで(数17)により車輪ワールド座標(X,Y)から極座標(t,r)へ変換される。
また、(数18)により極座標(t,r)から車輪ワールド座標(X,Y)へ変換される。
次に、極座標画像のディジタル配列として、図8に示すような極座標画像マトリクス[q,p]を定義する。極座標画像マトリクス[q,p]は極座標系によるディジタル画像であって、行列表現が可能であり、行数と列数で画素を特定する。ここで、極座標画像マトリクス[q,p]の1画素の水平方向の大きさを表すdq=2π/(3T)、垂直方向の大きさを表すdp=(R
W−R
0)/Rなるdqとdpを定義する(T、Rは自然数)。単位は水平方向が“ラディアン/画素”で、垂直方向が“ミリメートル/画素”となる。極座標画像マトリクス[q,p]は矩形64の左上隅を基点(0,0)とし、横方向q番目で縦方向p番目の画素の輝度値を有する。また、極座標画像マトリクス[q,p]はR行T列の行列となり、矩形64の四隅の極座標画像マトリクスはそれぞれ、O[0,0]、P[T−1,0]、Q[0,R−1]、R(T−1,R−1)となる。(数19)により極座標画像マトリクス[q,p]から車輪極座標(t,r)への変換が可能である。
また、(数20)により車輪極座標(t,r)から極座標画像マトリクス[q,p]への変換が可能である。
また、(数19)と(数17)の順序で変換を進めることで、極座標画像マトリクス[q,p]の矩形64内の画素が車輪ワールド座標(X,Y)に変換される。さらに、(数5)により車輪ワールド座標(X,Y)から画面上画像マトリクス[x,y]へ変換できることから、極座標画像マトリクス[q,p]の画素を、画面上画像マトリクス[x,y]と対応付けることができる。画面上画像マトリクス[x,y]は撮影された車輪画像の輝度値を持ち、この輝度値が極座標画像マトリクス[q,p]に割り当てられる。以上の処理を矩形64全域に亘って繰り返すことにより、極座標画像マトリクス[q,p]の各画素に対応する画面上画像マトリクス[x,y]の画素が決まり、この対応関係を極座標変換テーブルとする。なお、変換の途中で実数から整数への対応付けが発生する場合には、実数に対して最も差異の少ない整数を選ぶものとする。また、極座標画像マトリクスの所定の画素が画面上画像マトリクスの矩形64の範囲内にない場合は0などの固定値を割り当てるものとする。極座標変換テーブルの生成は1度行って保存していればよく、以降は生成した極座標変換テーブルを用いて極座標変換すればよい。
ところで、ステップ3で算出された車輪20の車軸34のワールド座標は(gx,gy)であって、これに対応する正対画像マトリクスの列数行数は、基準車輪21の場合の正対画像マトリクス[j0,i0]とは異なる。この差異を表現するために、車輪20の車軸34の正対画像マトリクスにおける位置を(j0+jd,i0+id)と表す。これを(数9)で車輪ワールド座標に変換すると(数21)となる。
さらに、j
0=M/2の関係から、X=j
d・dxである。これをさらに(数5)で画面上画像マトリクスに変換し、[x
d,y
d]とする。一方、車軸34の正対画像マトリクスの位置[j
0,i
0]を、(数5)で画面上画像マトリクスに変換し、さらに、(数9)で車輪ワールド座標に変換した結果を[x
0,y
0]と表す。両者を比較することにより、車輪20と基準車輪21との間で、画面上画像マトリクスにおいて[x
d−x
0,y
d−y
0]の差異が生じることが分かる。これらは一般的には非整数であるが、最も近い整数を選び[z
x,z
y]とする。そして、極座標変換テーブルで得られた画面上画像マトリクス[x,y]に対して[x+z
x,y+z
y]とし、この値を極座標変換テーブルの出力として用いる。以上に示した補正付極座標変換テーブルを用いて、矩形領域64の全域に亘り対応する画面上画像マトリクス[x+z
x,y+z
y]の輝度を割り当てる。このとき、画面上画像マトリクス[x+z
x,y+z
y]が矩形46から外れる場合には対応する輝度はないので、ゼロなどの固定値を割り当てる。以上の処理により分割撮影された車輪画像は極座標画像すなわち極座標画像マトリクスに変換される。例えば、車軸34を中心とする同心円上に存在する特徴点65や66は、それぞれ、図8(b)のように水平方向の特徴点65と66に変換される。ボルト39,40,41もそれぞれ変換される。なお、特徴点65,66は例えば車輪34についた傷である。また、車輪20の輪郭は水平線分68に変換される。以上が処理フローにおけるステップ4の処理である。
次に、図9を参照して、ステップ5のボルト検出処理を説明する。極座標画像マトリクスはディジタル画像であるから、正規化相関によるパタンマッチングによる検出が可能である。ボルト形状は既知であり、ボルトの極座標変換後の形状も既知であって、これを図9(a)に示すようにテンプレートとしてソーベルフィルタ等の輪郭強調処理を施すことができる。例えば、図9(b)は極座標画像マトリクスの例であって、極座標変換されたボルト39,40,41が示されている。撮影のタイミングにより車輪の位相すなわち回転角はまちまちであるが、ボルト39,40,41は車軸から等距離の位置を円運動するので、極座標変換後は、水平線上を移動する。したがって、図9(a)のテンプレートを水平線上近傍で探査すれば、ボルト39,40,41を検出することができる。ただし、ボルト間に形状の差異がないので車輪上のボルトを特定することはできない。車輪上に例えばボルトがk(kは2以上の自然数)個の場合はk通りの曖昧さを残して特定される。ここで、ある特定のボルトのみが他と異なる形状をしており、これに対応するテンプレートを有して検出した場合には、ボルトを特定することができるので、車輪の回転角も一意に特定される。以上がステップ5のボルト検出処理である。
次に、図9、図10を参照して、ステップ6の特徴点検出処理について説明する。図9(b)は特徴点70を有する車輪20の極座標マトリクスの例である。ステップ5で検出したボルト領域以外の領域について、極座標画像マトリクスに対して、ソーベルフィルタ処理後に所定のしきい値で2値化して特徴点の有無と、特徴点がある場合はその端点の位置を検出することができる。また、両端点の位置から特徴点の大きさを計測することができる。同時に特徴点70に最近傍のボルト、図9(b)の例ではボルト39の位置(qbolt,pbolt)からの水平方向の変位を計算し、位置と変位を特徴点70の位置情報とする。このように最近傍のボルトとの位置関係で車輪上での特徴点70の位置を特定する。図10は、ボルトの数が8つの場合の特徴点の位置特定と曖昧さを示す図である。8つのボルトの形状が同じで、ボルト39が図10のボルトのいずれであるかが特定できない場合は、特徴点70は位置70乃至77の8通りの曖昧さをもって記録される。しかし、前述したように8つのボルトのいずれか1つが特殊な形状であって、特殊なボルトの位置が特定できれば、その他のボルトの位置の順番から特徴点の位置を一意に決定できる。また、車輪の所定の領域に所定のマークを刻印し、マークを検出してこれを基準とすることで位置特定の際の曖昧さをなくすこともできる。以上がステップ6の特徴点検出処理である。
ステップ7において、画像処理装置32は、ステップ6までに得られた種々の画像及びデータをデータベース8に出力する。データベース8に出力する画像及びデータは、車輪画像、車輪ID、通過時刻、ステップ2で生成した正対画像、ステップ3で求めた車軸位置、ステップ4で生成した極座標画像、ステップ5で求めたボルトの位置、ステップ6で求めた特徴点の位置と長さである。以上で図3に示した画像処理装置32の処理が終了する。
ここで、図3の処理フローの説明に出てきた5つの座標系を図11にまとめておく。前述したように、これらは相互に変換が可能であり、(数5)によって、車輪ワールド座標から画面上画像マトリクスへの変換が行われ、その逆変換は(8)でなされる。(数9)によって、正対画像マトリクスから車輪ワールド座標への変換が行われ、その逆変換は(数10)でなされる。(数17)によって、車輪極座標から車輪ワールド座標への変換がなされ、その逆変換は(数18)でなされる。(数19)によって極座標画像マトリクスから車輪極座標への変換がなされ、その逆変換は(数20)でなされる。離散的で行列表現可能な画面上画像マトリクス[x,y]と、正対画像マトリクス[j,i]と、極座標画像マトリクス[q,t]は実線で示している。また、車輪上ワールド座標(X,Y)と車輪極座標(t,r)は実数値をとる座標系であり、破線で示している。なお、画面上画像マトリクス[x,y]と、正対画像マトリクス[j,i]と、極座標画像マトリクス[q,p]はディジタル画像であり、画像処理装置32によるフィルタ処理が可能である。
これより、画像取得装置16以外の装置について説明する。データベース8は画像取得装置16乃至19からの画像及び計測したデータを車輪ID毎にまとめ、通過時刻をインデクスとして保存する。
ここで、図9,10を参照して、パソコン12で行う特徴点のパタンマッチング処理について説明する。図9(c)はデータベース8に保存されている極座標マトリクスから切り出した特徴点の輝度パタンであるテンプレートパタン72である。
まず、データベース8には、過去に画像処理装置32により生成した車輪20の極座標マトリクスが保存してあるとする。そこで、新たに車輪20の車輪画像を取得し、極座標マトリクス図9(b)を生成し、パソコン12に表示させる。そして、パソコン12により、車輪20の車輪ID、通過時刻に基づいてデータベース8を検索し、過去に保存した車輪20の極座標マトリクスを抽出する。抽出した極座標マトリクスから、特徴点の位置情報に基づいて特徴点の輝度パタンであるテンプレートパタン72を切り出す。テンプレートパタン72は特徴点の外接矩形であって、水平方向をt軸、垂直方向をr軸とし、外接矩形の左上隅を基点(0,0)としてTmp[q,p]で表される。このとき、テンプレートの高さ、すなわち垂直方向の画素数をh、テンプレートの幅、すなわち水平方向の画素数をwとする。一方、図9(b)の極座標マトリクスの輝度パタンをTrg[q,p]で表すとする。このとき、両者の正規化相関によるパタンマッチングに係る類似度Sim[q,p]は(数22)で表される。
過去に取得した極座標マトリクスから作成したテンプレートパタン72と、新たに取得した極座標マトリクス上の特徴点70の形状が極端に変化していなければ両者はq軸とp軸にシフト探査するのみで該当する位置を検出できる。また、撮影のタイミングの差異により回転角であるqは変化するものの、車軸からの距離は不変であるからパタンマッチング処理の際にも、テンプレートパタン72を取得した際の極座標マトリクスの配列順番[q
90,p
90]も一緒に保存しておき、p
90を固定して、類似度Sim[q,p
90]をq軸方向のみに探査すればよい。これによって、過去に取得した極座標マトリクス上の特徴点と、新たに取得した極座標マトリクス上の特徴点とが、車輪20上の同じ箇所の特徴点であるかを特定し、特徴点の長さ、形状の経年変化を観察する。
次に、図12を参照して、パノラマ形成装置10の処理を説明する。図12(a)はパノラマ形成に際して用いる仮想表示メモリを示しており、実体はパソコン12に接続した外部処理装置内のメモリである。図12(b)乃至(e)はそれぞれ、画像処理装置16乃至19で得られる正対画像マトリクスである。パノラマ形成装置10はデータベース8に格納されている一連の車輪の部分画像を、所定の位置に張り重ねて1つの車輪全体の画像を形成し、パソコン12に表示する。パノラマ形成装置12は、図12(a)の仮想表示メモリの破線と円弧で囲まれる領域78乃至81の部分に、それぞれ、図12(b)乃至(e)に示す正対画像マトリクスが所定の角度だけ回転させて張り合わせる。例えば、図12(b)の正対画像マトリクスは右回転45度であり、(c)乃至(e)はそれぞれ90度だけ回転角を増して張り合わせる。回転変換は4行4列の行列演算で容易に実現される。また、張り合わせる際には、(b)乃至(e)の円弧が領域78乃至81の各円弧と重なるようにする。図12の領域78乃至81は基準車輪21の車軸35の位置と半径の長さから設定されるものなので、検査に係る車輪20が基準車輪21の半径と一致して、撮影タイミングの微差もなければ、上記の回転角と円弧の位置合わせは回転角と上下左右の併進移動量を予め決めておけば、最適に張り合わせることができる。しかし、実際には車輪毎に回転ずれΔq、垂直方向のずれΔj、水平方向のずれΔiがあるので、これらのずれも補正して張り合わせる必要がある。これらのずれ、Δq、Δj、Δiについて説明する。
前述したように、データベース8には、矩形64に示す極座標マトリクスの一連が保持されている。これらは車輪20の1回転分の画像であり、q軸方向にπ/2の間隔で撮影された4つの車輪画像の極座標マトリクスである。しかし、実際には、カメラ20の撮影タイミングの差異や、車輪20のスリップによってπ/2の周辺に正負の回転ずれΔqが生じる。回転ずれΔqは各カメラ22間に生じるので、これらは個別に計測して保持する必要がある。ただし、この回転ずれは隣接する極座標マトリクスの重複する領域について(数22)に示す正規化相関によるパタンマッチングで、特徴点を含めたテクスチャの一致点又はボルトの位置からのt軸方向のずれΔqを計測することができる。
車輪20の車軸34の位置は、図8(a)に示す正対画像マトリクスにおいて、基準車輪21の基準車軸35よりもレール4に近くなる。正対画像マトリクス[j,i]においては画像下方、すなわちi方向で増加方向に変位している。この変位量Δiは、画像処理装置32の処理フローのステップ4において、極座標変換テーブルの補正の際に求めた車軸34の基準からのずれidである。したがって、Δi=idとなる。
また、撮影された車輪20の車軸34の位置は、撮影毎のタイミング微差により、基準車輪20の基準車軸34の位置と比べて水平方向で左右に変位し得る。正対画像マトリクス[j,i]においては画像水平方向、すなわちj方向で増加方向又は減少方向に変位している。この変位量Δjは、画像処理装置32の処理フローのステップ4において、極座標変換テーブルの補正の際に求めた車軸の基準からのずれjdである。したがって、Δj=jdとなる。以上により各ずれをもとめて、各画像を補正して張り合わせることができる。
以上に述べた処理により、正対した車輪全周のパノラマ画像が作成される。ただし、上記の処理で得られるパノラマ画像は撮影の度に回転の位相が一致しておらず、したがって、同一の特徴点も同一の位置に表示されない問題がある。そこで、画像処理装置16の処理フローのステップ5において検出した所定のマーカ又はボルトを常に、仮想表示メモリの最上部又は最下部に位置させるように、パノラマ処理後に回転変換をかけることが有効である。また、画像処理装置16の処理フローのステップ6において検出した所定の特徴点が所定の位置になるように回転変換することも可能である。
パノラマ形成処理において、図12(b)乃至(e)の正対画像マトリクスはそれぞれ、120度程度の範囲が写っているため、張り合わせる際に重複領域が存在する。重複する場合には、各正対画像マトリクスの中央部90度の領域、すなわち横線パタンで表示している部分を選択する。また、特徴点は車輪側面に生じる凹凸なので、車輪側面とフラッシュ24の位置関係により、正対画像マトリクス画面中央部よりも周辺部のほうが特徴点のコントラストが良好に撮影されていることがある。この場合には、周辺部の特徴点のコントラストの良い画像を選択するほうがよい。このために、正対画像マトリクスのお互いに重複する部分については、画像処理装置16の処理フローのステップ6において、特徴点検出のために施したソーベルフィルタ及び所定のしきい値での2値化処理の結果検出された、特徴点面積の大きいほうの正対画像マトリクスを選択する。このようにパノラマ形成すると、さらに特徴点を視認し易い画像となる。
パノラマ形成された仮想表示メモリの画像は、必要に応じてその部分又は全体がパソコン12に表示される。その表示解像度に応じて、車輪全体を表示する際には間引き処理など画面縮小表示をする。また、表示されている任意の特徴点を、パソコン12のポインティングデバイスで指示すると、その部分の正対画像マトリクス、さらに画面上画像マトリクスを表示するように構成することもできる。
以上本実施例に示したように、車両検査装置1を、線路4に沿って設置され、車両6の車輪20の側面の車輪画像を取得する画像取得装置16と、画像取得装置16が取得した画像を保存する画像保存装置30とを備え、画像取得装置30は、その画像取得装置30に対応付けて備えられた車輪検知センサ26により車輪20を検知した検知信号に基づいて車輪画像を取得するように構成した。
これにより、画像取得装置16によって車輪検知センサ26が検知した車輪20の側面を撮影して車輪画像を取得し、車輪画像を用いて車輪20の側面の特徴点を観察することができる。
また、複数の画像取得装置16乃至19と複数の車輪検知センサ26と、車輪計数装置28と、車両の通過時刻を記録するタイマー29とを備え、画像取得装置16を備える検査ユニット2にそれぞれユニット番号が設定されてなり、車輪計数装置28は、検知信号に基づいて車両における車輪20の順番を示す車輪番号を生成してユニット番号を付して車輪IDとし、画像取得装置16を、取得した車輪画像と車輪IDと通過時刻とを対応付けて画像保存装置30に保存するように構成した。
これにより、それぞれの画像取得装置で車輪側面の一部部分を撮影することで車輪20の全体画像を取得することができる。また、ユニット番号から、車輪画像がどの画像取得装置で撮影されたかを識別でき、車輪番号から、車輪画像が車両6の何番目の車輪を撮影したものかを識別できる。さらに、通過時刻を保存し、列車運行表を参照して、撮影した車輪20を備える車両6を特定することができる。
また、画像取得装置16を、画像保存装置30に保存された車輪画像に射影変換を施して車輪20に正対する正対画像を生成するとともに、その正対画像をデータベース8に保存する画像処理装置32を備えて構成した。
これにより、車輪20に正対していない画像取得装置30で取得した車輪画像を、車輪20に正対する正対画像にすることができる。予め射影変換に用いるパラメータを、基準車輪21と画像取得装置16が備えるカメラ22との位置関係から求めておけば、以後はそのパラメータを用いて取得した車輪画像から正対画像を生成することができる。
さらに、画像処理装置32を、正対画像を処理して車輪20の輪郭を抽出し、その輪郭に基づいてその車輪20の車軸位置を推定し、その推定した車軸位置を原点とする極座標変換を行って極座標画像を生成するとともに、極座標画像をデータベース8に保存するように構成した。
本実施例では、極座標画像の垂直方向に、正対画像における車軸位置から特徴点までの距離をとり、極座標画像の水平方向に、正対画像における車軸位置を中心とする回転角をとった。この極座標変換により、車軸位置から特徴点までの距離の増減が垂直方向の変位に反映され、車軸位置を中心とする回転角の増減が水平方向の変位に反映され、後述する特徴点の探査、特定がしやすくなる。
さらに、画像処理装置32を、画像保存装置30に予め保存された基準となる車輪画像の車軸位置と推定した車軸位置とのずれの大きさに基づいて、極座標画像を補正して補正画像を生成するとともに、その補正画像をデータベース8に保存するように構成することもできる。
前述した正対画像から推定した車軸位置は、基準車輪21の車軸位置と垂直方向に差異が生じる場合がある。また、画像取得装置16の撮影のタイミングの微差により、水平方向でも差異が生じる場合がある。そこで、予め基準車輪21の車輪画像等から車軸位置を求めて保存しておけば、推定した車軸位置とのずれの大きさに基づいて、極座標画像を補正することができる。
また、車両検査装置1を、画像取得装置16が取得した車輪画像の車輪20と同一の車輪20の車輪画像を、車輪IDと通過時刻とに基づいて画像保存装置30を検索して抽出し、その抽出した車輪画像に対応する極座標画像に表示された特徴点の輝度パタンのテンプレートパタン72を作成し、テンプレートパタン72に基づいて、画像取得装置16が取得した車輪画像から画像処理装置32が生成した極座標画像上を探査して特徴点を特定し、特徴点の変化を比較する機能を有するように構成した。
これにより、車輪20の側面の特徴点の経年変化を観察できるようになる。すなわち、画像取得装置16が新たに取得した車輪画像の車輪20と同一の車輪20の画像を、車輪ID等に基づいて画像保存装置から抽出し、抽出した車輪画像に対応付けられた特徴点のテンプレートを用いて、新たに取得した車輪画像の極座標画像上を探査して同一の特徴点を見つけ出して、特徴点の大きさや長さを観察することで、特徴点の経年変化、車輪劣化状況を追跡できる。
以上、本実施例の車両検査装置1について説明したが、本発明は、この実施例に限らず適宜構成を変更して適用することができる。例えば、画像取得装置16の個数は適宜変更してもよい。各画像取得装置16の間隔は個数に応じて空けることが好ましい。
また、車輪画像を取得する際に通過時刻を保存したが、車両6が特定できれば通過時刻を保存しなくてもよい。その場合は製造番号等の車両番号読取装置を備えてもよい。
また、データベース8に車輪画像及びデータ等を保存しているが、画像保存装置に保存してもよい。
また、特徴点のパタンマッチングをパソコン12で行ったが、画像処理装置32で行うように構成してもよい。さらに、極座標マトリクス上の特徴点でパタンマッチングを行ったが、正対画像マトリクス上の特徴点で行うこともできる。
また、パノラマ形成の際に、特徴点パタンをテンプレートとして用いたが、ボルトのパタンを用いて、隣接する画像間で同一ボルトの位置を照合することで、回転ずれΔqを計測することもできる。パノラマ形成は、パソコン12で行うようにしてもよい。