以下、本発明の構成を図面に示す実施形態に基づいて詳細に説明する。
図1から図28に本発明のアナログメータの自動読取方法および装置およびプログラムの実施の一形態を示す。このアナログメータ1の自動読取方法は、針支点6を中心に回転する指示針2と、針支点6を中心とした円弧に沿って付された目盛7とを有するアナログメータ1を撮影した画像を用いて、指示針2の指示値を自動的に求めるものである。図4に処理の概要を示す。
そして、本実施形態のアナログメータ1の自動読取方法は、図1に示すように、アナログメータ1を斜めの撮影方向から撮影した指示針2の指示値が既知の基準画像22を得る基準画像取得ステップ(S101)と、目盛7の円弧を撮影方向から見た楕円弧または当該楕円弧と相似の楕円弧を含む楕円の一部によって指示針2の可動範囲である針可動領域20を設定する針可動領域設定ステップ(S102)と、指示針2の単位回転角度あたりの指示値量を定めるための目盛情報設定ステップ(S106)と、アナログメータ1を撮影方向から撮影した指示針2の指示値が未知の計測画像23を得る計測ステップ(S201)と、基準画像22と計測画像23から針可動領域20の画像をそれぞれ抽出する針可動領域抽出ステップ(S204)と、当該抽出した2つの針可動領域20の画像を針支点6を基準に極座標変換して指示針2の回転角を直線的に示す画像にそれぞれ変換する極座標変換ステップ(S205)と、極座標変換後の2つの画像に基づいて指示針2の回転角を求める針回転角算出ステップ(S207)と、当該求めた回転角と指示針2の単位回転角度あたりの指示値量と基準画像22における既知の指示値とから計測画像23における指示針2の指示値を求める指示値算出ステップ(S208)とを有している。
ここで、アナログメータ1の種類によっては、指示針2の数が1つの単針のメータではなく、複数の指示針2を持つメータが存在する。例えば本実施形態のアナログメータ1は、複数の指示針2を有し、指示針2はそれぞれ異なる色情報を有するものとする。そして、本実施形態のアナログメータ1の自動読取方法は、指示針2の色情報を入力する色情報入力ステップ(S107)と、基準画像22および計測画像23、または基準画像22および計測画像23から抽出した針可動領域20の画像、または極座標変換した後の針可動領域20の画像から、指示針2の色情報に基づいて目的とする指示針2以外の指示針2を除去した画像を作成する指示針分離ステップ(S203)とを更に有するようにしている。但し、本発明の対象となるアナログメータ1は、多針メータに限定されるものではなく、単針メータであっても良い。対象アナログメータ1が単針メータである場合には、色情報入力ステップ(S107)、指示針分離ステップ(S203)をスキップすれば良い。
さらに、例えば本実施形態のアナログメータ1の自動読取方法は、針支点6を中心にした円弧状の領域であってアナログメータ1の目盛部分に対応する目盛領域21を設定する目盛領域設定ステップ(S103)と、当該目盛領域21の平均輝度値に基づいて針可動領域20における回転中心のずれを補正する回転中心補正ステップ(S104)とを更に有している。加えて、本実施形態のアナログメータ1の自動読取方法は、基準画像22に対する計測画像23のずれを求め、このずれを補正する計測画像補正ステップ(S202)を更に有している。加えて、本実施形態のアナログメータ1の自動読取方法は、針可動領域20に文字類が含まれているか否かを調べ、検出した文字類を除去する文字類除去ステップ(S206)を更に有している。これらの補正処理によって、より高精度の指示値の自動読取が可能になる。但し、これらの補正処理の組込は好適な一例であり、精度よりも処理速度が要求される場合や、回転中心のずれや計測画像23のずれが生じる可能性が低い場合、あるいは針可動領域20に文字類が含まれない場合などには、これらのステップ(S103,S104,S202,S206)を省略しても良い。
上記のアナログメータ1の自動読取方法は、アナログメータ1の自動読取装置10として装置化される。この自動読取装置10は、図2に示すように、指示値の自動読取処理に必要なパラメータを設定する初期設定手段11と、基準画像22および計測画像23と設定されたパラメータとに基づいて指示値の自動読取を行う自動読取手段12とを備えている。
本実施形態の初期設定手段11は、基準画像取得ステップ(S101)を実行する基準画像取得手段13と、針可動領域設定ステップ(S102)を実行する針可動領域設定手段14と、目盛情報設定ステップ(S106)を実行する目盛情報設定手段15と、目盛領域設定ステップ(S103)を実行する目盛領域設定手段16と、色情報入力ステップ(S107)を実行する色情報入力手段17とにより構成される。
本実施形態の自動読取手段12は、計測ステップ(S201)を実行する計測画像取得手段30と、指示針分離ステップ(S203)を実行する指示針分離手段31と、針可動領域抽出ステップ(S204)を実行する針可動領域抽出手段32と、極座標変換ステップ(S205)を実行する極座標変換手段33と、針回転角算出ステップ(S207)を実行する針回転角算出手段34と、指示値算出ステップ(S208)を実行する指示値算出手段35とにより構成される。
さらに、本実施形態の自動読取装置10では、補正手段18と、処理に失敗した可能性がある場合に作業者に対してエラーや警告を通知するエラー・警告手段19とを備えている。補正手段18は、回転中心補正ステップ(S104)を実行する回転中心補正手段36と、計測画像補正ステップ(S202)を実行する計測画像補正手段37と、文字類除去ステップ(S206)を実行する文字類除去手段38と、指示針2の部分だけを正確に抽出するためのマスク画像を作成するマスク画像作成手段39とにより構成される。
この自動読取装置10は、例えば、撮像手段24と、既知又は新規のコンピュータ(計算機)25とにより実現される。撮像手段24が接続されたコンピュータ25に本発明の自動読取プログラムが読み込まれて実行されることによって、当該コンピュータ25が自動読取装置10として機能する。このコンピュータ25は、例えば図3に示すように、中央処理演算装置(CPU)26、RAMやROMおよびハードディスクなどの記憶装置27、キーボードやマウスなどの入力装置28、ディスプレイやスピーカ等の出力装置29、CDなどの媒体に記録されたデータを読み取るディスクドライブ等のデータ読取装置40、撮像手段24において作成された画像を取り込むためのインターフェース41などのハードウェア資源がバス42により接続されて構成されている。
撮像手段24は、例えば既知または新規のデジタルカメラである。撮像手段24と、撮影対象であるアナログメータ1との位置関係は固定されており、撮像手段24は一定の撮影方向からアナログメータ1の基準画像22と計測画像23を撮影する。撮像手段24により撮影された基準画像22と計測画像23は、インターフェース41を介して、コンピュータ25の記憶装置27に記録される。
初期設定手段11により実行される初期設定工程(S1)では、作業者がコンピュータ25の出力装置29(ディスプレイ)に表示されるGUI(グラフィック・ユーザ・インターフェース)を確認しながら、入力装置28(マウスやキーボード)を操作して、指示値の自動読取処理に必要なパラメータ(以下、初期設定パラメータと呼ぶ)を設定する。即ち、コンピュータ本体25aと、入力装置28および出力装置29が、初期設定手段11として機能する。尚、既に設定された初期設定パラメータがファイルとしてコンピュータ25が読取可能な記録媒体に記録されている場合には、データ読取装置40によって当該初期設定パラメータを読み込むようにしても良い。この場合は、コンピュータ本体25aとデータ読取装置40が初期設定手段11として機能する。本実施形態の初期設定工程(S1)は、図1に示すように、基準画像取得ステップ(S101)と、針可動領域設定ステップ(S102)と、目盛領域設定ステップ(S103)と、回転中心補正ステップ(S104)と、目盛情報設定ステップ(S106)と、色情報入力ステップ(S107)を含む。以下、初期設定工程(S1)の各ステップについて詳細に説明する。尚、図5は初期設定工程(S1)の詳細を示すフローチャートである。
基準画像取得ステップ(S101)では、1以上の基準画像22が、撮像手段24を介してコンピュータ25に取り込まれる。本実施形態では、この基準画像22を用いて指示値の自動読取処理に必要なパラメータ(初期設定パラメータ)の設定を行う。ここで、処理の簡素化の観点からは、基準画像22は指示針2が0を示している画像であることが好ましい。但し、0以外の指示値を示している画像であっても当該指示値が既知であれば、基準画像22として利用可能である。
ここで、指示針2が指す指示値の異なる複数の基準画像22を用いて、基準画像22または計測画像23から、指示針2の部分だけを正確に抽出するためのマスク画像を作成するようにしても良い。例えば、指示針2が指す指示値の異なる複数の基準画像22間で、同座標における画素の色情報値(輝度値またはRGB値など)が一致する又は色情報値の差が一定範囲内となる画素の集合をマスク画像とする。そして、マスク処理の対象画像から、マスク画像と同座標における画素の色情報値が一致する又は色情報値の差が一定範囲内となる画素を除去すれば、対象画像から指示針2の部分だけを抽出することができる。上記のマスク画像の作成処理はマスク画像作成手段39により自動で行われる。作成されたマスク画像は、例えば文字類除去ステップ(S206)において利用することができる。または、針可動領域抽出ステップ(S204)を実行する前の基準画像22や計測画像23に対してマスク画像を用いてマスク処理を施し、指示針2の部分だけを抽出することもできる。これにより、指示針2の支点部2aやアナログメータ1の前面に設けられた透明保護カバーなどに映り込む周囲の景色などを効果的に除去して、基準画像22や計測画像23における指示針2の位置を正確に認識することが可能となり、より高精度の指示値自動読取が可能になる。
次に、針可動領域設定ステップ(S102)および目盛領域設定ステップ(S103)について詳細に説明する。アナログメータ1を斜めから撮影した場合、針可動領域20および目盛領域21の外縁は楕円の円弧となる。そこで、本実施形態では、針支点6を中心とした楕円を用いて針可動領域20および目盛領域21の設定を行う。
具体的には、針可動領域20および目盛領域21を、それぞれ以下の楕円パラメータ、即ち、(1)最大長軸半径、(2)最大短軸半径、(3)最小長軸半径、(4)最小短軸半径、(5)開始角度、(6)終了角度、(7)回転中心座標、(8)楕円傾き角度(例えば垂直軸(y軸)と長軸とのなす角度)を用いて、設定する。
ここで、上記すべての楕円パラメータについて作業者が設定する必要は必ずしもなく、設定済みの他の楕円パラメータから自動的に算出できる楕円パラメータがあれば、コンピュータ25により自動的に算出してもよい。例えば、最大長軸半径と最大短軸半径の比と、最小長軸半径と最小短軸半径の比は、通常同一であると考えられるので、針可動領域20の最小短軸半径は、針可動領域20の最大長軸半径と最大短軸半径の比と最小長軸半径から、求めることができる。また、針可動領域20の楕円の回転中心座標と、目盛領域21の楕円の回転中心座標とは同じとして良い。
一方、アナログメータ1を正面から撮影した場合、針可動領域20および目盛領域21の外縁は真円の円弧となる。この場合は、上記楕円パラメータにおいて、最大長軸半径=最大短軸半径、最小長軸半径=最小短軸半径、とすれば良い。つまり、本発明は、アナログメータ1を斜めから撮影した場合、正面から撮影した場合、のいずれにも対応できる。
上述した楕円パラメータは、例えばコンピュータ25の画面に基準画像22を表示し、この基準画像22上に、図17に示す設定用図形43を表示し、作業者が入力装置28(マウス)を操作して、設定用図形43を移動・変形(拡大・縮小・回転等)させ、設定用図形43の形状及び位置を調整し確定することで、コンピュータ25の演算機能により自動的に算定される。
設定用図形43は、針可動領域20を表す針可動領域図形44と、目盛領域21を表す目盛領域図形45と、針支点6の中心位置(換言すれば針可動領域20における回転中心)を示す基準点46とを有して構成される。針可動領域図形44および目盛領域図形45はそれぞれ外側縁44a,45a、内側縁44b,45b、開始端線44c,45c、終了端線44d,45dにより構成される。外側縁44a,45aおよび内側縁44b,45bはそれぞれ基準点46を中心とする円弧または楕円弧として拡大・縮小させることができる。この際、楕円弧における楕円長軸と短軸の比も変化させることもできる。開始端線44c,45cおよび終了端線44d,45dは、それぞれ外側縁44a,45aと内側縁44b,45bの端同士を結んで針可動領域20および目盛領域21を表す閉じた領域を作るもので、基準点46を中心として回転させることができる。
例えば作業者は、コンピュータ25の画面に表示された基準画像22上で、針支点6の中心位置にマウスポインタを合わせて、基準点46を確定する。その後、基準点46を中心に、外側縁44a,45aおよび内側縁44b,45bを拡大または縮小し、開始端線44c,45cおよび終了端線44d,45dを回転させて、針可動領域20および目盛領域21を調整し確定する。当該確定後、コンピュータ25は、基準画像22上における設定用図形43の座標に基づいて、針可動領域20および目盛領域21の、(1)最大長軸半径、(2)最大短軸半径、(3)最小長軸半径、(4)最小短軸半径、(5)開始角度、(6)終了角度、(7)回転中心座標、(8)楕円傾き角度、を自動計算する。なお、上述した楕円パラメータの設定は、出力装置29(ディスプレイ)に表示されるGUI(グラフィック・ユーザ・インターフェース)のメニューバーおよび当該メニューバーから展開されるプルダウンメニューの中から、該当する項目を選択することで、個別に設定することもできる。例えば、メニューバーから[編集]→[針可動領域]→[開始角度]を選択することで、開始端線44cに対するマウス操作が可能になり、開始端線44cをマウスでドラッグすることで、開始端線44cを所望の位置に移動させることができる。
さらに、上述した楕円パラメータの好適な設定例および計算例を以下に説明する。例えば上記楕円パラメータをより簡単に設定するために、楕円の円周上の3つの点(点A,B,Cとする)をコンピュータ25の画面に表示させ、その3点を通過する楕円を表示する。上記3点のうち2点(点A,B)の中点を楕円の中心とし、残りの1点(点C)は楕円の長軸上の点とする。2点の中点と残りの1点の距離が長軸半径であり、3点の位置関係から短軸半径を求めることができる。
点A,B,Cの座標をそれぞれ(Ax,Ay)(Bx,By)(Cx,Cy)とし、針支点6の中心座標を(x,y)とすると、長軸半径は、以下の数式1で表すことができる。尚、sqrt( )は、( )内の正の平方根を求める関数である。
<数式1>
長軸半径=sqrt((Cx−x)2+(Cy−y)2)
一方、短軸半径は、以下の数式2で表すことができる。
<数式2>
短軸半径=(長軸半径×sqrt(((Ax−x)2+(Ay−y)2)−(((Cx−x)×(Ax−x)+(Cy−y)×(Ay−y))/長軸半径)×(((Cx−x)×(Ax−x)+(Cy−y)×(Ay−y))/長軸半径)))/sqrt(((Cx−x)2+(Cy−y)2)−(((Cx−x)×(Ax−x)+(Cy−y)×(Ay−y))/長軸半径)×(((Cx−x)×(Ax−x)+(Cy−y)×(Ay−y))/長軸半径))
ここで、数式2の導出について以下に補足する。図26に示すように、原点を中心とし、長軸をx軸方向に有し、短軸をy軸方向に有する楕円については、以下の数式3,4が成立する。尚、長軸半径をa、短軸半径をbとする。
また、図26の楕円上の点(x、y)と楕円中心との距離をrとし、rと長軸(x軸)とのなす角度をαとすると、以下の数式5が成立する。
一般には、楕円の中心は原点に無く、また、回転しているため図27に示すようになる。図27における楕円については、楕円上の点Aと楕円中心との距離rは、次式で表される。
<数式6>
r=sqrt((Ax−x)2+(Ay−y)2)
また、r cosαは、次式で表される。
<数式7>
r cosα=sqrt((Dx−x)2+(Dy−y)2)
三角形の余弦定理より、a×r cosαは、次式で表される。
<数式8>
a×r cosα=((Cx−x)×(Ax−x)+(Cy−y)×(Ay−y))
数式8より、r cosαは、次式で表される。
<数式9>
r cosα=((Cx−x)×(Ax−x)+(Cy−y)×(Ay−y))/a
一方、r sinαは、次式で表される。
<数式10>
r sinα=sqrt(r2−r2 cos2α)
数式10で表されるr sinα、数式9で表されるr cosα、数式1で表される長軸半径a、を数式5に代入することによって、短軸半径bは、数式2で表すことができる。尚、楕円パラメータの設定手順は上記の例に限定されるものではない。例えば、作業者が楕円パラメータの数値をキーボードより直接入力できるようにしても良い。
ここで、針可動領域20は、目盛盤の無地部分に設定することが好ましい。針可動領域20に文字、模様、記号、写りこみ、汚れ、ノイズ等(以下、文字類と総称する)が含まれていると、その後の画像処理で指示針2を認識し難くなるためである。但し、針可動領域20は、厳密に無地である必要性は必ずしもなく、特に本実施形態では針可動領域20から検出した文字類を除去する文字類除去ステップ(S206)を備えるので、針可動領域20の大部分が無地であれば良い。
上述した針可動領域20および目盛領域21の設定は、人間がコンピュータ25の画面を見ながら処理を行うため、個人差などによって誤差が生じる可能性があり、特に指示針2の回転中心位置は誤差が生じる可能性が高い。そこで本実施形態では、回転中心補正ステップ(S104)により指示針2の回転中心位置のずれ補正を行い、設定者による誤差を小さくする工夫をしている。
回転中心補正ステップ(S104)の詳細を図6のフローチャートに示す。いま、例えば、白地の目盛盤に黒色の目盛7が付されている場合を考える。目盛領域21は指示針2の回転中心を中心にした円弧状の領域であることから、設定した指示針2の回転中心の位置が基準画像22の回転中心位置に一致している場合には、設定した目盛領域21が基準画像22の目盛7が付されている部分に一致することになる。このとき、目盛領域21の2次元画像をg(x,y)とすると、目盛領域21の平均輝度値は数式11のように表すことができる。但し(x,y)は目盛領域21内部の画素、Sは目盛領域21の面積とする。
<数式11>
Σx,yg(x,y)/S
設定した目盛領域21が基準画像22の目盛7が付されている部分に一致する場合、設定した目盛領域21には、黒色部分である目盛7を含む割合が多くなるので目盛領域21の平均輝度値は小さくなる。一方、設定した指示針2の回転中心位置が基準画像22の回転中心からずれている場合には、設定した目盛領域21が基準画像22の、目盛7が付されている部分からずれることになる。この場合、設定した目盛領域21には黒色部分の割合が減るので、目盛領域21の平均輝度値は大きくなる。
作業者が設定した指示針2の回転中心座標(x0,y0)の周囲に関して指示針2の回転中心座標をxy方向に少しずつずらしながら(変動パラメータ(i,j)を少しずつ変化させながら)、仮想目盛領域21を仮定し、その仮想目盛領域21の平均輝度値を繰り返し計算する(S104−1〜S104−4)。さらに目盛領域21の最小短軸半径bmin、最大短軸半径bmax、最小長軸半径amin、及び、最大長軸半径amaxについても、半径r方向に少しずつずらしながら(変動パラメータ(k,l,m,n)を少しずつ変化させながら)、仮想目盛領域21を仮定し、その仮想目盛領域21の平均輝度値を繰り返し計算する(S104−1〜S104−4)。さらに、楕円の傾き角度αについても、角度を少しずつずらしながら(変動パラメータ(o)を少しずつ変化させながら)、仮想目盛領域21を仮定し、その仮想目盛領域21の平均輝度値を繰り返し計算する(S104−1〜S104−4)。この平均輝度値を計算する過程において、初期設定で設定した目盛領域21及びその近傍領域以外の部分は、領域外であることを示す一定の輝度値を当てはめても良い。近傍領域はメータの種類により多少の違いはあるが、通常は目盛領域21の近傍の数画素になる。そして、目盛領域21の平均輝度値が最小となるパラメータ(i,j,k,l,m,n,o)を探索する(S104−4)。この探索の過程において、必ずしもi,j,k,l,m,n,oのパラメータをすべて変動させる必要はなく、装置の計算能力に応じて探索パラメータを減らしても良い。また、探索を行う領域についても装置の計算能力により探索範囲を変動させることができる。その後、前記輝度値が最小となる変動パラメータ(i,j,k,l,m,n,o)で、作業者が指定した指示針2の回転中心座標(x0,y0)及び目盛領域21の最小短軸半径bmin、最大短軸半径bmax、最小長軸半径amin、最大長軸半径amax、および、楕円の傾き角度αを補正する(S104−5)。
なお、上記補正手法では目盛領域21の平均輝度値を直接計算したが、目盛領域21を正面から見た状態として極座標変換し、その画像の平均輝度値を計算しても良い。この場合の補正の手順を図7に示す。作業者が設定した指示針2の回転中心の座標(x0,y0)を中心に、目盛領域21を極座標変換する。この目盛領域21の2次元の画像をg(x,y)とすると、極座標変換の画像f(r,θ)は数式12によって表すことができる。
<数式12>
f(r,θ)=g(x0+r・cosθ,y0+r・sinθ)
但し、mr0min≦r≦mr0max
次に設定した回転中心座標(x0,y0)のx0とy0、目盛領域21を正面から見た状態の最小長軸半径mr0min及び目盛領域21を正面から見た状態の最大長軸半径mr0max、楕円の傾き角度αの5パラメータのうち少なくとも1つのパラメータを少し変化させた仮想目盛領域21を仮定する(S104−1〜S104−3)。そして、その仮想目盛領域21を仮定したパラメータをもとに極座標変換する(S104−4A)。このとき、初期設定で設定した目盛領域21及びその近傍領域以外の部分を極座標変換する場合には領域外であることを示す一定の輝度値を割り当てる。近傍領域はメータの種類により多少の違いが生じるが、通常は目盛領域21の近傍数画素となる。仮にx方向にi、y方向にj、mr0minに対してk、mr0maxに対してlほど動かした時の極座標変換後の画像は数式13によって表すことができる。
<数式13>
h(r,θ)=g(x0+i+r・cosθ,y0+j+r・sinθ)
但し、mr0min+k≦r≦mr0max+l
作業者が設定した指示針2の回転中心座標(x0,y0)の周囲に関して、指示針2の回転中心座標をxy方向に少しずつずらしながら(変動パラメータ(i,j)を少しずつ変化させながら)、仮想目盛領域21を仮定し、その仮想目盛領域21を正面から見た状態として極座標変換を繰り返し行う(S104−3,S104−4A)。さらに、目盛領域21の最小長軸半径mr0min及び目盛領域21の最大長軸半径mr0maxについても、半径r方向に少しずつずらしながら(変動パラメータ(k,l)を少しずつ変化させながら)、仮想目盛領域21を仮定し、その仮想目盛領域21を正面から見た状態として極座標変換を繰り返し行う(S104−3,S104−4A)。さらに、楕円の傾き角度αについても、角度を少しずつずらしながら(変動パラメータ(o)を少しずつ変化させながら)、仮想目盛領域21を仮定し、その仮想目盛領域21を正面から見た状態として極座標変換を繰り返し行う(S104−3,S104−4A)。そして、極座標変換後の平均輝度値が最小となる変動パラメータ(i,j,k,l,o)を探索する(S104−4B)。この探索の過程において、必ずしもi,j,k,l,oのパラメータをすべて変動させる必要はなく、装置の計算能力に応じて探索パラメータを減らしても良い。また、探索を行う領域についても装置の計算能力により探索範囲を変動させることができる。その後、前記平均輝度値が最小となる変動パラメータ(i,j,k,l,o)で作業者が指定した指示針2の回転中心座標(x0,y0)及び目盛領域21の最小長軸半径mr0min、最大長軸半径mr0max、および、楕円の傾き角度αを補正する(S104−5)。
上記補正方法のほかに、基準画像を楕円半径を正規化した状態として極座標変換する方法もある。この場合、作業者が設定した指示針2の回転中心座標(x0,y0)の周囲に関して、指示針2の回転中心座標をxy方向に少しずつずらしながら(変動パラメータ(i,j)を少しずつ変化させながら)、仮想目盛領域21を仮定し、その仮想目盛領域21の極座標変換を繰り返し行う。このとき楕円半径を正規化した状態として処理を行う。さらに、目盛領域21の最小短軸半径、最大短軸半径、最小長軸半径、及び、最大長軸半径についても、半径r方向に少しずつずらしながら(変動パラメータ(k,l,m,n)を少しずつ変化させながら)、仮想目盛領域21を仮定し、楕円半径を正規化した状態としてその仮想目盛領域21の極座標変換を同様に繰り返し行う。さらに、楕円の傾き角度についても角度を少しずつずらしながら(変動パラメータ(o)を少しずつ変化させながら)、仮想目盛領域21を仮定し、その仮想目盛領域21の極座標変換を繰り返し計算する。そして、極座標変換後の平均輝度値が最小となる変動パラメータ(i,j,k,l,m,n,o)を探索する。この探索の過程において、必ずしもi,j,k,l,m,n,oのパラメータをすべて変動させる必要はなく、装置の計算能力に応じて探索パラメータを減らしても良い。また、探索を行う領域についても装置の計算能力により探索範囲を変動させることができる。その後、前記平均輝度値が最小となる変動パラメータ(i,j,k,l,m,n,o)で作業者が指定した指示針2の回転中心座標(x0,y0)及び目盛領域21の最小短軸半径、目盛領域21の最大短軸半径、目盛領域21の最小長軸半径、目盛領域21の最大長軸半径、および、楕円の傾き角度αを補正する。
なお、アナログメータ1が、黒地の目盛盤に白色の目盛7が付されているものである場合には、輝度値を反転させて上述の処理を行えば良い。また、アナログメータ1の画像において、メータ画像の輝度値が白や黒ではなく中間値(グレー)となっている場合は、目盛盤の輝度値と目盛7の輝度値のうち、輝度の高いほうを白、輝度の低いほうを黒とみなして上述の処理を行えばよい。また、目盛盤の輝度値と目盛7の輝度値のうち、輝度の高いほうを白、輝度の低いほうを黒とするような画像処理を行った後に上述の処理を行なってもよい。また、基準画像22がカラー画像である場合には、図6または図7の処理の前に、基準画像22をコピーして作業画像とし、この作業画像(カラー画像)を濃淡画像(グレースケール画像)に変換して、当該濃淡画像に対して、図6または図7の処理を実行する。さらに基準画像22がカラー画像である場合であって、たまたま目盛盤の輝度値と目盛7の輝度値が一致もしくは似たような値を示す場合は、例えばカラー信号のうち赤の信号のみを利用し、赤の信号成分が強い部分を白、弱い部分を黒とみなして上述の処理をすればよい。また、赤の信号成分が強い部分を白、弱い部分を黒とするような画像処理を行った後に上述の処理を行なってもよい。青の信号成分や緑の信号成分でも同様のことが言える。また、通常のカラー画像においても、上記のような信号成分の一部を利用した手法のほうが、目盛盤と目盛7を明確に区別できる場合、輝度値を計算せずに別の信号成分を利用してよい。このように、アナログメータ1の画像の目盛盤及び目盛7の輝度の濃淡がはっきりするようにみなす、もしくは輝度の濃淡がはっきりするように画像処理を行った後に上述の補正処理を行うことで、より多くのメータ画像に対応できる。
上記のような回転中心の位置補正を行った後、この補正後の回転中心位置を中心とする配置になるように、針可動領域20および目盛領域21も補正し、補正後の針可動領域20および目盛領域21を基準画像22に重ねて表示し、回転中心補正ステップ(S104)による自動補正が正しいか否かを作業者が確認する(図1,図5のS105)。自動補正が正しくなければ、再度、針可動領域20および目盛領域21の設定を行う(S102,S103)。自動補正が正しければ、目盛情報設定ステップ(S106)へと処理を進める。
本実施形態では、基準となる目盛7の位置及びその値を目盛情報と呼ぶ。目盛情報設定ステップ(S106)では、次のように目盛情報を設定する。即ち、コンピュータ25の画面に基準画像22および設定用図形43を表示し、作業者が画面上に表示された基準画像22を見ながらマウスを操作し、設定用図形43に含まれる目盛位置を示すポインタ(基準目盛設定ライン47と呼ぶ)を移動させることで、基準となる目盛7の位置(指示針2の回転中心からみた目盛7の方向角度(θmn,n=1,2,3,…))を設定すると共に、位置を設定した目盛7の値(mn,n=1,2,3,…)をキーボード操作により入力する。なお、基準となる目盛7の位置設定とその値の入力は、少なくとも2箇所の目盛7を選択して行えば良い。例えば本実施形態の設定用図形43は、図17,図18に示すように2つの基準目盛設定ライン47を有している。基準目盛設定ライン47は、作業者のマウス操作により、基準点46を中心として回転させることができる。
そして、本実施形態では、上記のように入力された目盛情報から、単位角度あたりの目盛指示値量をコンピュータ25により自動計算するようにしている。例えば目盛情報として2つの目盛7の方向角度θm1,θm2と、当該方向角度における目盛7の値m1,m2が入力されているものとする。単位角度(1deg)あたりの指示値量をAとすると、Aは数式14で表される。
<数式14>
A=(m2−m1)/(θm2−θm1)
ここで、アナログメータ1を斜めから撮影した場合、単位角度あたりの指示値量は一定ではなく、アナログメータ1の撮像手段24に対する傾き角度と指示針2の回転角度方向によって異なる。そこで、例えば本実施形態では、次のようにして、アナログメータ1を正面から撮影した場合の目盛7の方向角度を推定するようにしている。
例えば正面から見たアナログメータ1が半径rの真円を成すものとすると、図25(A)に示す正面から撮影したアナログメータ1に対して、図25(B)に示す斜めから撮影したアナログメータ1は、長軸a(=r),短軸bの楕円形に変形する。これに対応して、図25(A)に示す真円におけるrおよびその方向角αも、図25(B)に示す楕円においてr’,α’に変化する。
図25(A)に示す真円から図25(B)に示す楕円への変形は、楕円短軸の方向に短軸半径/長軸半径の分だけ縮小したものと考えることができる。方向角α,α’を楕円長軸の方向となす角度とすると、αとα’の関係は次の数式15,16で表すことができる。
<数式15>
r×cos α=r’×cos α’
<数式16>
r×sin α=r’×(a/b)sin α’
ここで、数式3で表される楕円の極座標変換式は、x=a cos θ,y=b sin θであるから、楕円上のθ=α’となる点と楕円の中心(原点)との距離(半径)r’は、次式で表される。
<数式17>
r’=sqrt(x2+y2)=sqrt((a cos α’)2+(b sin α’)2)
また、r=aである。従って、既知の長軸半径a,短軸半径b,角度α’に基づいて、角度αは、以下の数式18,19を満たす値を探索することによって、一意に定まる。
<数式18>
α=cos−1((r’/r)×cos α’)
<数式19>
α=sin−1((r’/r)×(a/b)sin α’)
以上の原理により、アナログメータ1を正面から撮影した場合の目盛7の方向角度を推定することができる。推定した目盛7の方向角度を用いて、数式14により、正確な「単位角度あたりの指示値量」を求めることができる。尚、単位角度あたりの指示値量は、上記のように自動計算する例には限定されず、作業者がキーボード等を用いて直接入力できるようにしても良い。また、「単位角度あたりの指示値量」は必ずしもすべての針稼働領域で一定数をとる必要はなく、針の回転角度に応じて値を変化させることができる。これにより、一定ではない目盛間隔を持つメータ(例えば変電所にある一部の油面計)に対しても対応可能となる。
基準となる目盛7の位置と値である目盛情報は、指示値の自動読取に必要なメータ情報の一つであり、その他にも必要なメータ情報があれば適宜入力する。例えば本実施形態では、基準画像22における指示針2の位置(指示針2の回転中心からみた指示針2の方向角度)、当該指示針2の指示値、指示針2の単位を、次のようにして入力する。即ち、コンピュータ25の画面に基準画像22および設定用図形43を表示し、作業者が画面上に表示された基準画像22を見ながらマウスを操作し、設定用図形43に含まれる指示針2の位置を示すポインタ(指示針設定ライン48と呼ぶ)を移動させることで、指示針2の位置を入力する。指示針設定ライン48は、作業者のマウス操作により、基準点46を中心として回転させることができる。また、指示針2の値と単位は、キーボード操作により入力する。尚、基準画像22における指示針2の位置及びその値と、基準となる目盛7の位置およびその値とが重複する場合には、いずれか一方の入力を省略できるようにしても良い。
また、アナログメータ1が多針メータである場合には、色情報入力ステップ(S107)により、現在設定対象となっている指示針2の色情報を入力する。色情報入力ステップ(S107)では、例えば作業者が画面に表示された基準画像22を見ながらマウスを操作し、画面上のポインタで指示針2を指し示すと、コンピュータ25は指し示された画素の色情報を、現在設定対象となっている指示針2の色情報として記録する。
また、アナログメータ1が多針メータであり、自動読取対象となる指示針2が複数存在する場合には、すべての指示針2について、上述した初期設定パラメータの入力処理、即ち、針可動領域設定ステップ(S102)、目盛領域設定ステップ(S103)、回転中心補正ステップ(S104)、目盛情報設定ステップ(S106)、色情報入力ステップ(S107)を行う(S108)。この際、複数の指示針2の間で共通する情報があれば、例えば針支点6の中心位置、目盛領域21、針可動領域20などが複数の指示針2の間で共通する場合には、当該共通する情報については、入力を省略できるようにしても良い。
全ての自動読取対象となる指示針2について初期設定パラメータの入力処理が終了すると(S108;Yes)、入力された初期設定パラメータは初期設定ファイルとしてコンピュータ25の記憶装置27に保存される(図5のS109)。これにより、初期設定工程(S1)は終了する。保存された初期設定パラメータは以降の自動読取工程(S2)において呼び出され利用される。ここで、入力された初期設定パラメータ(針可動領域20や指示針2の色情報など)は、該当する指示針2と関連付けられて、コンピュータ25の記憶装置27に記憶され管理される。従って、自動読取工程(S2)においては、読取対象の指示針2に対応した針可動領域20や指示針2の色情報を必要に応じて呼び出して利用することができる。
以上のように初期設定パラメータの入力は、作業者がコンピュータ25の画面に表示される基準画像22を見ながらインタラクティブ(即ちコンピュータ25と対話的に)に行うことができる。また、パラメータを設定仕直すことで、一度設定したパラメータを変更することもできる。尚、各パラメータを設定するに当たり、パラメータの設定順序は特に決まっていない。さらに、前回設定を行った作業者と異なる作業者がパラメータの設定を変更することも可能である。
初期設定工程(S1)が終了すると、自動読取手段12による自動読取工程(S2)が実行可能となる。自動読取工程(S2)はコンピュータ25によって自動的に行われる。即ち、コンピュータ25が自動読取手段12として機能する。本実施形態の自動読取工程(S2)は、図1に示すように、計測ステップ(S201)と、計測画像補正ステップ(S202)と、指示針分離ステップ(S203)と、針可動領域抽出ステップ(S204)と、極座標変換ステップ(S205)と、文字類除去ステップ(S206)と、針回転角算出ステップ(S207)と、指示値算出ステップ(S208)とを含む。以下、自動読取工程(S2)の各ステップについて詳細に説明する。尚、図10は自動読取工程(S2)の詳細を示すフローチャートである。
計測ステップ(S201)では、基準画像22と同一または同一形式のアナログメータ1を、基準画像22と同じ撮影方向および同じ撮影条件で撮像手段24により撮影し、撮影した画像を計測画像23として、コンピュータ25の記憶装置27に取り込む。そして、本実施形態では、計測画像補正ステップ(S202)によって計測画像23のずれを補正した後、指示値自動読取のための画像処理を行う。
通常、基準画像22を取得した時刻と計測画像23を取得した時刻は異なるため、何らかの外的要因等により、計測画像23内のアナログメータ1の位置が基準画像22内のアナログメータ1の位置と異なることがあり得ると予想される。このため、画像処理を行う前に基準画像22に対する計測画像23のずれ(縦横方向の位置ずれと回転角度(方向)のずれ)を検出し、ずれていた場合にはそれを補正して計測画像23を基準画像22に合わせる。即ち、基準画像22に対する計測画像23のずれ量を求め、このずれを補正する。この補正は、計測画像補正手段37によって自動的に行われる。計測画像23について針可動領域20の画像の極座標変換を行う前にそのずれを補正しておくことで、初期設定に基づいて計測画像23中の針可動領域20の画像を正しく抽出することができ、極座標変換を正しく行うことができる。
本実施形態の計測画像補正ステップ(S202)は、計測画像23の回転角度のずれを補正する回転ずれ補正ステップ(S202A)と、計測画像23の縦横方向の位置ずれを補正する縦横ずれ補正ステップ(S202B)とから構成される。換言すれば、計測画像補正手段37は、回転ずれ補正ステップ(S202A)を実行する回転ずれ補正手段と、縦横ずれ補正ステップ(S202B)を実行する縦横ずれ補正手段とにより構成される。
回転ずれ補正ステップ(S202A)の詳細を図8のフローチャートに示す。尚、基準画像22および計測画像23がカラー画像である場合には、図8の処理の前に、基準画像22および計測画像23をコピーして作業画像とし、この作業画像(カラー画像)を濃淡画像(グレースケール画像)に変換して、当該濃淡画像に対して、図8の処理を実行する。ここで、カラー画像をグレースケールに変換する方法としては、例えば、RGB値の各値をそれぞれR,G,Bとし、グレースケールの輝度値をYとして、Y=(0.298912*R+0.586611*G+0.114478*B)として求める方法が一般的である。また、処理の高速化を図るためにY=(2*R+4*G+B)/7とする方法もある。さらに、RGB値のG値のみの情報を使い、計算を簡単にする方法もある。回転ずれ補正ステップでは、上述したような既存または新規の濃淡画像生成方法を採用して、濃淡画像を生成する。なお、採用する濃淡画像生成方法は、画像の特徴をできるだけ保存した濃淡画像(グレースケール画像)を生成するものであることが望ましい。
回転ずれ補正ステップ(S202A)では、先ず、基準画像22および計測画像23をそれぞれ2次元フーリエ変換する(S202A−1A,S202A−1B)。そして、フーリエ変換後の2次元信号の振幅成分(パワースペクトル)について、周波数成分の原点(直流成分)を中心に極座標変換を行う(S202A−2A,S202A−2B,S202A−3A,S202A−3B)。この処理は基準画像22(信号)及び計測画像23(信号)のそれぞれに関して行う。そして、それぞれの極座標に変換された2次元信号(振幅成分のみ)について、再度フーリエ変換を行う(S202A−4A,S202A−4B)。その後、フーリエ変換後の各周波数成分について、基準画像22より作成した信号の共役複素数成分と計測画像23から作成した信号の複素数成分をそれぞれ掛け合わせ合成を行う(S202A−5)。合成を行う際にそれぞれの信号の振幅で除算を行う(位相成分のみで位相の差を計算する)。この合成計算、具体的には除算を行うときに、振幅成分があまりにも微小となる場合が存在する。このような場合では合成信号の実数成分=0,複素数成分=0としてもよい。また、振幅成分があまりにも微小となる場合の合成信号成分に対して、乱数を割り当ててもよい。合成計算後、信号成分の逆フーリエ変換を計算する(S202A−6)。変換後の信号のなかで、相関値が最大となる座標(r1,θ1)を探索する(S202A−7)。θ1に対応する角度だけ基準画像22と計測画像23の回転角度に差があるので、同一の向きになるように計測画像23をθ1に対応する角度だけ回転させる。これにより計測画像23の回転角度のずれが補正される。なお、基準画像22及び計測画像23をフーリエ変換する際に、角度のずれが精度良く計測できるように基準画像22及び計測画像23に対して適切な窓関数などの画像処理を加えることもできる。
次に、縦横ずれ補正ステップ(S202B)の詳細を図9のフローチャートに示す。尚、基準画像22および計測画像23がカラー画像である場合には、図9の処理の前に、基準画像22および計測画像23をコピーして作業画像とし、この作業画像(カラー画像)を濃淡画像(グレースケール画像)に変換して、当該濃淡画像に対して、図9の処理を実行する。この場合、採用する濃淡画像生成方法は、既述したように画像の特徴をできるだけ保存した濃淡画像(グレースケール画像)を生成するものであることが望ましい。
縦横ずれ補正ステップ(S202B)では、先ず、計測画像23をθ1だけ回転させて回転角度を補正した画像と基準画像22について、再度2次元フーリエ変換を行う(S202B−1A,S202B−1B)。そして、フーリエ変換後の各周波数成分について、基準画像22より作成した信号の共役複素成分と計測画像23から作成した信号の複素成分をそれぞれ掛け合わせ、合成を行う(S202B−2)。合成を行う際に、それぞれの信号の振幅で除算を行う。そして、合成信号に逆フーリエ変換を行う(S202B−3)。変換後の信号波の中で相関値が最大となる座標(x1,y1)を探索する(S202B−4)。その結果、角度θ1だけ回転させた計測画像23は基準画像22と比べてx軸方向にx1画素,y軸方向にy1画素だけずれていると考えられる。以上のようにして求めたθ1,x1,y1により、計測画像23の位置ずれを補正することができる(図1のS202)。尚、基準画像22及び計測画像23をフーリエ変換を行う際、位置のずれを精度良く検出するできるようにするため、基準画像22、計測画像23、及び回転処理後の計測画像23Aに対して窓関数などの画像処理を用いることが好ましい。
アナログメータ1が多針メータである場合には、指示針分離ステップ(S203)により目的とする指示針2以外の指示針2を除去した画像を作成する。ここで、指示針分離ステップ(S203)の処理の対象となる指示針分離以前の画像を針分離前画像と呼び、指示針分離ステップ(S203)により作成された画像を針分離後画像と呼ぶ。針分離前画像は、「基準画像22および計測画像23」であっても良く、または「基準画像22および計測画像23から抽出した針可動領域20」の画像であっても良く、または「極座標変換した後の針可動領域20の画像」であっても良い。例えば3針メータの場合では、3つの指示針2を含む針分離前画像を、指示針2を1つ含み他の指示針2を含まない3枚の針分離後画像に分解する。これにより、単針メータの場合と同様に指示値の読取処理を行える。例えば本実施形態では、基準画像22および計測画像23を針分離前画像として、指示針分離ステップ(S203)を実行するようにしている。なお、針分離後画像に対してマスク画像を用いてマスク処理を施し、針分離後画像から指示針2の支点部2a、文字類、背景等を除去して、指示値読取対象となる一の指示針2のみを含む画像を作成するようにしても良い。
例えば本実施形態のアナログメータ1は、赤、黄、白の3種類の指示針2を有するものとし、基準画像22および計測画像23はカラー画像であるものとし、基準画像22および計測画像23の各画素にはRGBの数値が定められているものとする。そして、赤、黄、白の3つの指示針2のうち、特定の色の指示針2のみを含み、他の色の指示針2を含まない画像を作成できる閾値を、例えば次のように設定する。
例えば、赤の指示針2のみを含む画像(換言すれば黄および白の指示針2が除かれた画像)は、基準画像22および計測画像23中の各画素について、R値からG値を減算した値がある閾値th_rを超える画素の集合とする。即ち、基準画像22および計測画像23において、次式を満たす画素の集合が赤の指示針2のみを含む画像となる。
<数式20>
R値−G値 > th_r
また、白の指示針2のみを含む画像(換言すれば黄および赤の指示針2が除かれた画像)は、基準画像22および計測画像23中の各画素について、B値がある閾値th_wb1を超え、かつG値がある閾値th_wgを超える画素の集合とする。即ち、基準画像22および計測画像23において、次式を満たす画素の集合が白の指示針2のみを含む画像となる。
<数式21>
B値 > th_wb1 かつ G値 > th_wg
また、黄の指示針2のみを含む画像(換言すれば白および赤の指示針2が除かれた画像)は、基準画像22および計測画像23中の各画素について、G値からB値を減算した値がある閾値th_yhを超える画素の集合とする。即ち、基準画像22および計測画像23において、次式を満たす画素の集合が黄の指示針2のみを含む画像となる。
<数式22>
G値−B値 > th_yh
ここで、撮影時刻や天候などの条件により、目的とする指示針2だけをうまく分離できない場合がある。そのような場合は、計算時に重み付けをおこなうことも可能である。さらに、経年等の理由により白色の針がやや黄色に変色することもある。このような場合には、B値がある閾値th_wb2を超え、かつG値からB値を減算した値をR値からB値を減算した値で除算し、その値がある閾値th_whを超える場合には、その画素は白色であると見なす。また、G値からB値を減算した値が0を超え、かつG値からB値を減算した値をR値からB値を減算した値で除算し、その値がある閾値th_yh1〜th_yh2の範囲内である場合には、その画素は黄色であると見なす。
具体的には、重み付けの定数をw_ag、w_abとすると、赤の指示針2のみを含む画像を求めるには、数式20の条件に代えて数式23の条件を用いることができ、白の指示針2のみを含む画像を求めるには、数式21の条件に代えて数式24の条件を用いることができ、黄の指示針2のみを含む画像を求めるには、数式22の条件に代えて数式25の条件を用いることができる。
<数式23>
R値−w_ag×G値 > th_r
<数式24>
B値 > th_wb1 かつ G値 > th_wg
または
B値 > th_wb2 かつ ((G値−B値)/(R値−B値)) > th_wh
<数式25>
G値−w_ab×B値 > 0
かつ
th_yh1 > ((G値−B値)/(R値−B値)) > th_yh2
上述した閾値(th_r,th_wg,th_wb1,th_wb2,th_wh,th_yh,th_yh1,th_yh2)および重み付け定数(w_ag、w_ab)は、初期設定工程(S1)における色情報入力ステップ(S107)において予め設定される。尚、コンピュータ25が予め定められたアルゴリズムに従って、色情報入力ステップ(S107)において入力された色情報に基づいて、上記閾値や重み付け定数を自動算定する、あるいは予め用意された複数の閾値群の中から最適な閾値を自動選択するようにしても良い。また、色情報は、RGB(赤、緑、青)値で表される情報には限定されず、HSB(色相、彩度、明度)やCMY(シアン、マゼンダ、イエロー)で表される情報であっても良い。RGB以外の色情報を用いる場合は、指示針2を1つ含み他の指示針2を含まない針分離後画像に分解できるように適切な閾値および関係式を適宜採用する。
針可動領域抽出ステップ(S204)では、基準画像22と計測画像23のそれぞれについて、針可動領域20の画像を抽出する。ここで、指示針2が複数ある場合、指示針2ごとに設定された針可動領域20が異なる場合もあるが、そのような場合であっても、針可動領域20が指示針2ごとに関連付けられて記録管理されるので、読み取り対象となる指示針2に対応した適切な針可動領域20を呼び出して、正確な針可動領域画像を抽出できる。なお、基準画像22から針可動領域20を抽出した画像の概念を図21に、計測画像23から針可動領域20を抽出した画像の概念を図22に示す。本実施形態では、指示針分離ステップ(S203)の後に針可動領域抽出ステップ(S204)を実行するので、針可動領域画像には1つの指示針2しか含まれない。
ここで、設定した針可動領域20には、目盛盤の文字等がまったく含まれていないことが望ましい。しかし、目盛盤には目盛7のほかに、目盛7の数値や目盛7の単位、アナログメータ1の製造会社名など、文字や模様、記号などが付されている場合がある。さらに、アナログメータ1の前面に設けられた透明保護カバーなどに周囲の景色が写りこんでいたり、汚れなどが付着していることも考えられる。このため、無地部分のみを針可動領域20として設定することができない場合もある。また、画像処理の過程でノイズが含まれる可能性もある。このように設定した針可動領域20に、文字類(文字、模様、記号、写りこみ、汚れ、ノイズ等)が含まれていると、その後の画像処理で指示針2を認識し難くなる。そこで、本実施形態では、指示針2の回転角度を求める前に、文字類除去ステップ(S206)により針可動領域20に含まれている文字類を除去して、指示針2の認識が容易になるようにしている。文字類除去ステップ(S206)の処理は文字類除去手段38により自動的に行われる。この文字類除去ステップ(S206)は、針可動領域抽出ステップ(S204)により抽出された針可動領域20の画像に対して実行することも可能であるが、処理の簡単化のために、極座標変換ステップ(S205)により極座標変換された後の針可動領域20の画像に対して実行することがより好ましい。
例えば本実施形態の文字類除去ステップ(S206)では、極座標変換後の画像についてある角度の半径方向の輝度値に着目し、半径方向の画素の輝度の変化を調べる。その角度に指示針2があれば輝度の変化は小さいと考えられる。逆に、輝度の変化が大きい場合、その角度に指示針2がある可能性は低いと考えられ、文字類によって輝度が大きく変化したと考えられる。このため、輝度の変化が小さくなるように輝度値を置き換え、文字類を削除する。この処理を極座標変換した画像のすべての角度に対して行う。これにより、針可動領域20に文字類が写っていたとしても、この文字類を除去して指示針2の読み取り処理を行うことができ、読み取り精度を向上させることができる。上記の文字類除去ステップ(S206)は、指示針2と同色の文字類が針可動領域20内に残ってしまったような場合に有効である。
ここで、アナログメータ1を斜めから撮影した場合、針可動領域抽出ステップ(S204)により基準画像22および計測画像23から抽出した針可動領域20の画像は、図21,図22に示すように、楕円の一部である扇形状となる。また、アナログメータ1を斜めから撮影した場合、単位角度あたりの指示値量は一定ではなく、アナログメータ1の撮像手段24に対する傾き角度と指示針2の回転角度方向によって異なる。正確な指示値を求めるためには、図21,図22に示す楕円扇形の2つの針可動領域画像に基づいて、正面から見た場合での指示針2の回転角度を求めることが望ましい。当該回転角度の算出法として、例えば以下の2つの方法が考えられる。
先ず、第1の方法では、基準画像22および計測画像23からそれぞれ抽出した2つの楕円扇形状の針可動領域画像を、極座標変換ステップ(S205)において、正面から見た状態として極座標変換し、針可動領域20の周方向(指示針2の回転方向)と径方向(指示針2の長さ方向)を直交する2方向とする矩形の画像に変換する。そして、針回転角算出ステップ(S207)において、上記極座標変換後の2つの矩形画像を相関計算することにより、指示針2の回転角度を求める。
一方、第2の方法では、基準画像22および計測画像23から抽出した2つの楕円扇形状の針可動領域画像を、極座標変換ステップ(S205)において、楕円半径を正規化した状態として極座標変換し、針可動領域20の周方向(指示針2の回転方向)と径方向(指示針2の長さ方向)を直交する2方向とする矩形の画像に変換する。そして、針回転角算出ステップ(S207)において、上記極座標変換後の2つの矩形画像を相関計算することにより、指示針2の回転角度を求め、さらに当該求めた回転角度を正面から見た状態に補正する。
以下、第1の方法における極座標変換ステップ(S205)ついて詳細に説明する。ここでは、簡単のため、楕円の中心座標を原点とし、長軸方向はy軸(垂直軸)と同方向とする。図28(A)に示す針可動領域20内の点(x、y)と楕円中心との距離(半径)をrとし、rの方向と長軸方向とのなす角度をαとすると、点(x、y)は次式で表すことができる。
<数式26>
x=r sin α
<数式27>
y=r cos α
<数式28>
r=sqrt(x2+y2)
一方、図28(B)に示す正面から見た状態の針可動領域20内の同一点(x’、y’)は、次式で表すことができる。
<数式29>
x’=r’ sin α’=(a/b)×r sin α
<数式30>
y’=r’ cos α’=r cos α
<数式31>
r’=sqrt(x’2+y’2)
=sqrt(((a/b)×r sin α)2+(r cos α)2)
従って、既知の長軸半径a,短軸半径b,極座標(r,α)に基づいて、角度α’は、以下の数式を満たす値を探索することによって、一意に定まる。
<数式32>
α’=cos−1((r/r’)cos α)
<数式33>
α’=sin−1((a/b)×(r/r’) sin α)
求めたr’,α’から正面から見た状態の針可動領域20の極座標変換を行うことができる。尚、上記計算を効率化するために、針可動領域20に含まれると考えられるr’とα’に対応するrおよびαを予め求めておいても良い。
次に、針回転角算出ステップ(S207)について詳細に説明する。針回転角算出ステップ(S207)では、基準画像22および計測画像23から抽出した2つの楕円扇形状の針可動領域画像を極座標変換した後の2つの矩形画像を相関計算することにより、指示針2の回転角度を求める。2つの矩形画像を用いた相関計算により指示針2の回転角度を求める手順は、上記の第1及び第2の方法ともに同じである。なお、基準画像22から針可動領域20を抽出した画像を極座標変換した矩形画像の概念を図23に示し、計測画像23から針可動領域20を抽出した画像を極座標変換した矩形画像の概念を図24に示す。
図11に、針回転角算出ステップ(S207)により、基準画像22および計測画像23に基づく2つの矩形画像を用いた相関計算により、指示針2の回転角度を求める手順を示す。尚、相関計算の対象画像がカラー画像である場合には、図11の処理の前に、当該カラー画像を濃淡画像(グレースケール画像)に変換して、当該濃淡画像に対して、図11の処理を実行する。さらに、指示針2と目盛盤の濃淡差(輝度差)を大きくするように、以下の処理を行っても良い。即ち、赤針の抽出にはRGB値のRの情報のみを用い、白針の抽出にはBの情報のみを用い、黄針の抽出にはGの情報のみを用いて、目盛盤と指示針2の濃淡の差を大きくする。また、撮影時刻や天候などの条件により、これらの方法よりも各指示針2と目盛盤の濃淡差が大きくなる濃淡変換式があれば、その変換式を適宜利用しても良い。
針回転角算出ステップ(S207)では、先ず、基準画像22と計測画像23の極座標変換後の針可動領域画像について、相関計算を行う。具体的には、それぞれ2次元フーリエ変換を行い(S207−1A,S207−1B)、フーリエ変換後の各周波数成分について、基準画像22より作成した信号の共役複素成分と計測画像23から作成した信号の複素成分をそれぞれ掛け合わせ、合成を行う(S207−2)。さらに合成信号に逆フーリエ変換を行う(S207−3)。変換後の信号波の中で相関値が最大となる座標(r2,θ2)を探索する(S207−4)。このθ2が求める指示針2の回転角である。
ここで、指示値の読み取りに必要な値はθ2のみであるので、半径方向の処理を簡略化しても良い。半径方向の処理を簡略化することで、画像処理の高速化をより一層図ることができる。具体的には、極座標変換後の2次関数のr方向の和をとり、次式に基づいて1次元の関数に変換するようにしても良い。
<数式34>
h’(θ)=Σrh(r,θ)
即ち、図12に示すように、基準画像22および計測画像23の極座標変換後の針可動領域画像をそれぞれ1次元の関数に変換し(S207−0A,S207−0B)、相関計算を行う。具体的には、1次元のフーリエ変換(S207−1A’,S207−1B’)後の各周波数成分について、基準画像22より作成した信号の共役複素成分と計測画像23から作成した信号の複素成分をそれぞれ掛け合わせ、合成を行う(S207−2’)。さらに合成信号に逆フーリエ変換を行う(S207−3’)。変換後の信号波の中で相関値が最大となる座標θ2を探索する(S207−4’)。このθ2が求める指示針22の回転角度である。
次に、第2の方法について詳細に説明する。楕円は径が一定ではないことから、楕円扇形状の針可動領域画像に対して通常の極座標変換を行っても、矩形(4角が90°)の画像にはならない。そこで、楕円半径を以下のように正規化する。
即ち、針可動領域20内の極座標(r,θ)で表される点について、当該半径rを、当該角度θにおける針可動領域20の最小半径r
minと最大半径r
maxを用いて、次式により正規化する。
ここで、角度θにおける針可動領域20の最大半径r
maxは数式36で表され、最小半径r
minは数式37で表される。ただし、a
maxは針可動領域20の最大長軸半径、a
minは最小長軸半径、b
maxは最大短軸半径、b
minは最小短軸半径である。
上記楕円半径を正規化した極座標変換により、基準画像22および計測画像23に基づく図23,図24に示すような2つの矩形画像が得られる。これら2つの矩形画像に基づいて相関計算により指示針2の回転角度を求める手順は、上記第1の方法と同じであるので省略する。相関計算後、第2の方法においては、以下に説明する手順で、当該相関計算により求めた回転角度を正面から見た状態に補正する。
相関計算より求めた回転角度をα、基準画像22内の指示針2と楕円長軸方向のなす角度をβとすると、(α+β)が計測画像23における指示針2と楕円長軸方向のなす角度となる。角度α,βを正面から見た状態の角度をα’,β’とすると、数式29〜数式30より、針可動領域20内の極座標(r,α+β)で表される点(x、y)を、正面から見た状態の同一点(x’、y’)は、次式で表すことができる。
<数式38>
x’=r’ sin(α’+β’)=(a/b)×r sin(α+β)
<数式39>
y’=r’ cos(α’+β’)=r cos(α+β)
<数式40>
r’=sqrt(x’2+y’2)
=sqrt(((a/b)×r sin(α+β))2+(r cos(α+β))2)
従って、既知の長軸半径a,短軸半径b,極座標(r,α+β)に基づいて、角度(α’+β’)は、以下の数式を満たす値を探索することによって、一意に定まる。
<数式41>
(α’+β’)=cos−1((r/r’)cos(α+β))
<数式42>
(α’+β’)=sin−1((a/b)×(r/r’) sin(α+β))
同様に、針可動領域20内の極座標(r,β)で表される点(x、y)を、正面から見た状態の同一点(x’、y’)は、次式で表すことができる。
<数式43>
x’=r’ sin β’=(a/b)×r sin β
<数式44>
y’=r’ cos β’=r cos β
<数式45>
r’=sqrt(x’2+y’2)
=sqrt(((a/b)×r sin β)2+(r cos β)2)
従って、既知の長軸半径a,短軸半径b,極座標(r,β)に基づいて、角度β’は、以下の数式を満たす値を探索することによって、一意に定まる。
<数式46>
β’=cos−1((r/r’)cos β)
<数式47>
β’=sin−1((a/b)×(r/r’) sin β)
上記のように求めた(α’+β’)とβ’とから、相関計算より求めた回転角度αを正面から見た状態の角度α’を求めることができる。
指示値算出ステップ(S208)では、針回転角算出ステップ(S207)で求めた指示針2の回転角と、数式14で表される単位角度あたりの指示値量とに基づき、計測画像23における指示針2の指示値を次式により求める。但し、yが計測画像23における指示針2の指示値を示し、Bが基準画像22における指示針2の指示値を示す。また、θ2が針回転角算出ステップ(S207)で求めた指示針2の回転角を示し、Aが単位角度あたりの指示値量を示す。
<数式48>
y=A×θ2+B
以上に説明した指示針分離ステップ(S203)、針可動領域抽出ステップ(S204)、極座標変換ステップ(S205)、文字類除去ステップ(S206)、針回転角算出ステップ(S207)、指示値算出ステップ(S208)を、一つの計測画像23について、アナログメータ1が備える指示針2の数だけ繰り返す(S209)。すべての指示針2について計測画像23における指示値が算出されたら(S209;Yes)、当該計測画像23についての自動読取工程(S2)は終了となる。なお、各ステップごとに指示針2の数だけ処理を繰り返し、すべての指示針2について処理が終わったら、次のステップに進む方法をとっても良い。また、上述した自動読取工程(S2)は、一定時間間隔ごとに繰り返し行っても良い。即ち、一定時間間隔ごとに新たな計測画像23を順次取得し、各計測画像23について自動読取工程(S2)を順次実行するようにしても良い。なお、基準画像22に対する指示針分離ステップ(図4,図10におけるS203A)、針可動領域抽出ステップ(S204A)、極座標変換ステップ(S205A)、文字類除去ステップ(S206A)は計測画像23の取得以前に予め行っておき、自動読取工程(S2)においては、計測画像23に対してのみ指示針分離ステップ(S203B)、針可動領域抽出ステップ(S204B)、極座標変換ステップ(S205B)、文字類除去ステップ(S206B)を行うようにして、処理の簡素化・高速化を図るようにしても良い。自動読取された指示値は、コンピュータ25が備える出力装置29に出力される、または記憶装置27にデジタルデータとして記録される(図4,図10のS210)。
ここで、上記に説明した一連の処理の中には、正確に処理が行えた場合と、ノイズ等の外的要因などにより処理の信頼性が低下してしまった場合とが存在する。指示針2の指示値自動読取処理の信頼性を向上させる観点から、処理の信頼性が低い場合には、処理の結果に誤差が生じている可能性や、処理に失敗した可能性を作業者に通知することが望ましい。
例えば、計測画像補正ステップ(S202)や針回転角算出ステップ(S207)における相関計算時などにおいては、相互相関計算結果のピーク値(即ち相関最大値)が高いほど、信頼性の高い処理が行えたと考えられる。そこで本実施形態では、当該ピーク値に着目し、当該ピーク値が予め設定した閾値を下回る場合には(S301;Yes,S401;Yes)、このまま処理を続行した場合の指示針2の自動読取値は正確でない可能性が高い旨を、出力装置29を介して作業者に通知するようにしている(S302,S402)。当該通知は、例えばディスプレイに表示される警告メッセージや、スピーカからの警告音によりなされる。作業者は当該警告を受けた後、処理を続行するか、終了するか選択できる(S303,S403)。
また、本実施形態では、指示針分離ステップ(S203)において、例えば画像の輝度分布をチェックして、複数本の指示針2が検出されたと判断された場合には(S503;Yes)、このまま処理を続行した場合の指示値の自動読取値は正確でない可能性が高い旨を、出力装置29を介して作業者に警告するようにしている(S504)。作業者は当該警告を受けた後、処理を続行するか、終了するか選択できる(S505)。また、例えば本実施形態では、指示針分離ステップ(S203)において、例えば画像の輝度分布をチェックして、指示針2が全く検出されなかった場合には(S501;No)、出力装置29を介して作業者にエラーを通知し(S502)、処理を強制的に終了するようにしている。
上記の処理はエラー・警告手段19により自動で行われる。ただし、エラーや警告の判断対象は、上記の例に限定されない。例えば針可動領域20の文字類を除去した画像について、うまく文字類を除去できたか確認することで、読み取り結果の信頼性を向上できる。
以上のように構成される本発明によれば、作業者が基準画像22に基づいて初期設定を予め行っておくことで、アナログメータ1の計測値(計測画像23における指示針2の指示値)を画像処理によって自動的に求めることができる。撮像手段24によって撮影した計測画像23に基づいてアナログメータ1の指示値を読み取るので、離れた場所からアナログメータ1の指示値を自動的に読み取ることができる。また、コンピュータ25による画像処理を行うことで指示値を読み取るので、指示値をコンピュータ管理に適したデジタルデータとして得ることができる。
加えて本発明によれば、アナログメータ1を斜めから撮影した画像を用いた場合でも、正確な指示値を自動で読み取ることができる。さらに、多数の指示針2を備えるアナログメータ1が計測対象である場合でも、目的とする指示針2の指示値を正確に自動読取できる。
なお、上述の実施形態は本発明の好適な実施の一例ではあるがこれに限定されるものではなく、本発明の要旨を逸脱しない範囲において種々変形実施可能である。例えば、上述の実施形態では、複数の指示針2を備えるアナログメータ1を計測対象としたが、単針のアナログメータ1を計測対象としても良い。この場合であっても、アナログメータ1を斜めから撮影した画像を用いても正確な指示値を自動で読み取ることができる、という新規かつ有用な効果が得られる。また、アナログメータ1の正面に撮像手段24を設置しても良い。この場合でもあっても、多数の指示針2を備えるアナログメータ1が計測対象であっても目的とする指示針2の指示値を正確に自動読取できる、という新規かつ有用な効果が得られる。