(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-27
(45)【発行日】2024-01-11
(54)【発明の名称】計器読み取りシステム、計器読み取りプログラム
(51)【国際特許分類】
G08C 19/36 20060101AFI20231228BHJP
G08C 19/00 20060101ALI20231228BHJP
【FI】
G08C19/36
G08C19/00 301B
(21)【出願番号】P 2020193527
(22)【出願日】2020-11-20
【審査請求日】2023-05-12
(73)【特許権者】
【識別番号】000233491
【氏名又は名称】株式会社日立システムズ
(74)【代理人】
【識別番号】110001689
【氏名又は名称】青稜弁理士法人
(72)【発明者】
【氏名】佐川 浩彦
【審査官】菅藤 政明
(56)【参考文献】
【文献】特開2004-133560(JP,A)
【文献】特開2019-96304(JP,A)
【文献】特開2014-32039(JP,A)
【文献】特開2020-181467(JP,A)
【文献】特開2020-194275(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G08C 19/00-19/48
G08C 15/00-15/12
G06T 1/00
G06T 7/00
(57)【特許請求の範囲】
【請求項1】
計器の画像を取得する取得手段と、
計器が示す数値を読み取るために必要な計器の情報を設定するための設定手段と、
設定された前記計器の情報に基づいて前記計器の画像から計器が示す数値を読み取る読み取り手段と、
前記計器が示す数値を読み取った結果を表示する表示手段と、を有する計器読み取りシステムであって、
前記設定手段は、
前記計器の画像における目盛りを含む領域の候補を検出する領域候補検出手段と、
検出された目盛りを含む領域の各候補に対して、目盛り位置の候補を検出する位置候補検出手段と、
前記目盛りを含む領域の候補および前記目盛り位置の候補から、最適な候補を選択するための制約条件に関する情報を入力する入力手段と、
前記目盛りを含む領域の候補および前記目盛り位置の候補と、入力された前記制約条件とに基づいて、前記目盛りを含む領域の候補と前記目盛り位置の候補とに順位付けを行う順位付け手段と、
前記順位付けの結果に基づいて最適な目盛りを含む領域の候補と目盛り位置の候補を表示する表示手段と、
を有することを特徴とする計器読み取りシステム。
【請求項2】
請求項1記載の計器読み取りシステムであって、
前記領域候補検出手段は、
前記計器の画像中から抽出した輪郭情報から目盛りを含む領域を表す形状を特定することにより、前記計器の画像中から前記目盛りを含む領域の候補を検出する処理と、前記計器の画像中から各々の目盛りに対応する小領域を抽出し、抽出した複数の小領域が構成する形状が目盛りを含む領域を表す形状であるかどうかを判定することにより、前記計器の画像中から前記目盛りを含む領域の候補を検出する処理と、
の少なくともいずれかの処理を行うこと、
を特徴とする計器読み取りシステム。
【請求項3】
請求項1記載の計器読み取りシステムであって、
前記設定手段は、
前記入力手段から、前記目盛り位置の概略の位置を取得し、
前記順位付け手段は、
検出された前記目盛りを含む領域の候補と、前記目盛り位置の候補の位置と取得した前記概略の位置との距離とに基づいて、検出された前記目盛りを含む領域の候補と前記目盛り位置の候補とに順位付けを行うこと、
を特徴とする計器読み取りシステム。
【請求項4】
請求項3記載の計器読み取りシステムであって、
前記設定手段は、
前記目盛りを含む領域の形状が円形の場合、前記入力手段から、(1)最小値および最大値を示す前記目盛り位置の概略の位置、(2)円形の中心位置の概略の位置と最小値を示す前記目盛り位置の概略の位置、(3)円形の中心位置の概略の位置と最大値を示す前記目盛り位置の概略の位置、(4)最小値を示す前記目盛り位置の概略の位置と前記計器の画像の中心位置、(5)最大値を示す前記目盛り位置の概略の位置と前記計器の画像の中心位置、のいずれかを条件を取得し、
前記順位付け手段は、
検出された前記目盛りを含む領域の候補と、前記(1)~(5)のいずれかの条件とに基づいて、前記目盛りを含む領域の候補、および前記目盛り位置の候補に順位付けを行うこと、
を特徴とする計器読み取りシステム。
【請求項5】
請求項3記載の計器読み取りシステムであって、
前記設定手段は、
前記目盛り位置が特定の線に対して線対称である計器である場合、前記入力手段から取得する情報として、最小値を示す前記目盛り位置の概略の位置、あるいは、最大値を示す前記目盛り位置の概略の位置、のいずれか一方を取得し、
前記順位付け手段は、
検出された前記目盛りを含む領域の候補と、前記目盛り位置の候補の位置と取得したいずれかの前記概略の位置との距離とに基づいて、検出された前記目盛りを含む領域の候補と前記目盛り位置の候補とに順位付けを行うこと、
を特徴とする計器読み取りシステム。
【請求項6】
請求項3記載の計器読み取りシステムであって、
前記設定手段は、前記目盛りを含む領域の候補のうち、順位が上位の候補からあらかじめ定められた個数の候補を、前記計器の画像に重ねて表示するとともに、前記目盛りを含む領域の各候補に対応する目盛り位置の候補のうち、順位が上位の候補からあらかじめ定められた個数の候補を前記計器の画像に重ね合わせて表示すること、
を特徴とする計器読み取りシステム。
【請求項7】
請求項6記載の計器読み取りシステムであって、
前記設定手段は、
画像上に表示されている前記目盛りを含む領域の候補あるいは前記目盛り位置の候補を選択する選択手段を有し、
選択された前記目盛りを含む領域の候補および前記目盛り位置の候補を、他の前記目盛りを含む領域の候補および前記目盛り位置の候補とは異なる形態で表示する処理、選択された前記目盛りを含む領域の候補に対する前記目盛り位置の候補のみを計器の画像上に表示する処理、
のいずれか1つ以上の処理を行い、前記目盛りを含む領域の候補および前記目盛り位置の候補を計器の画面上に表示すること、
を特徴とする計器読み取りシステム。
【請求項8】
請求項7記載の計器読み取りシステムであって、
前記設定手段は、
前記目盛りを含む領域の候補と前記目盛り位置の候補の一覧を表示し、前記一覧の中で選択された前記目盛りを含む領域の候補あるいは前記目盛り位置の候補に対応する候補を、他の前記目盛りを含む領域の候補あるいは前記目盛り位置の候補とは異なる形態で計器の画像上で表示すること、
を特徴とする計器読み取りシステム。
【請求項9】
請求項7記載の計器読み取りシステムであって、
前記設定手段は、
前記目盛りを含む領域の候補および前記目盛り位置の候補のうち、選択されている候補の前記計器の画像上における位置を調整することができること、
を特徴とする計器読み取りシステム。
【請求項10】
請求項6記載の計器読み取りシステムであって、
前記設定手段は、
前記入力手段から、制約条件となる情報を一つ取得するごとに、前記目盛りを含む領域の候補および前記目盛り位置の候補の順位付けを更新し、前記計器の画像上における前記目盛りを含む領域の候補および前記目盛り位置の候補の表示を変更すること、
を特徴とする計器読み取りシステム。
【請求項11】
請求項1記載の計器読み取りシステムであって、
少なくとも、計器の種類ごとに、前記目盛りを含む領域の形状、制約条件に関する情報の種類、制約条件を入力する順序に関する情報を格納する計器情報格納手段と、設定を行う前記計器の種類を取得する種類取得手段と、画像上に表示されている前記目盛りを含む領域の候補あるいは前記目盛り位置の候補を選択する選択手段と、を有し、
前記設定手段は、
取得された前記計器の種類に対応する前記情報を前記計器情報格納手段から取得し、取得した前記情報に基づいて、前記目盛りを含む領域の候補または前記目盛り位置の候補の順位付けに必要な制約条件に関する情報を取得し、
前記順位付け手段は、
取得された前記情報に基づいて、前記目盛りを含む領域の候補または前記目盛り位置の候補の順位付けを行い、
前記選択手段は、
前記順位付けの結果に基づいて、前記目盛りを含む領域の候補または前記目盛り位置の候補の選択を行うこと、
を特徴とする計器読み取りシステム。
【請求項12】
コンピュータを、
計器の画像を取得する取得手段、
計器が示す数値を読み取るために必要な計器の情報を設定するための設定手段、
設定された前記計器の情報に基づいて前記計器の画像から計器が示す数値を読み取る読み取り手段、
前記計器が示す数値を読み取った結果を表示する表示手段、として機能させる計器読み取りプログラムであって、
前記設定手段を、
前記計器の画像における目盛りを含む領域の候補を検出する領域候補検出手段、
検出された目盛りを含む領域の各候補に対して、目盛り位置の候補を検出する位置候補検出手段、
前記目盛りを含む領域の候補および前記目盛り位置の候補から、最適な候補を選択するための制約条件に関する情報を入力する入力手段、
前記目盛りを含む領域の候補および前記目盛り位置の候補と、入力された前記制約条件とに基づいて、前記目盛りを含む領域の候補と前記目盛り位置の候補とに順位付けを行う順位付け手段、
前記順位付けの結果に基づいて最適な目盛りを含む領域の候補と目盛り位置の候補を表示する表示手段、
として機能させることを特徴とする計器読み取りプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プラントや工場等の施設内に設置されている指針により指示値を表す種類の計器を対象として、点検や保守等において計器の指示値を取得および記録する作業を支援する計器読み取りシステム、計器読み取りプログラムに関するものである。
【背景技術】
【0002】
プラントや工場等における点検作業や保守作業の一つとして、施設内に設置されている計器の指示値を取得し記録する作業がある。また、施設内に設置されている計器の中でも、指針によって指示値を表す種類の計器(指針型計器)がある。指針型計器の読み取り作業を支援する技術としては、スマートフォンやタブレット端末に搭載されているカメラやパソコンに接続されたカメラ等で計器の画像を撮影し、撮影した画像から計器の指示値を自動的に読み取る技術がある(例えば、特許文献1)。
【0003】
特許文献1では、指示値の読み取りに必要な情報を利用者があらかじめ設定し、設定した情報を用いて指示値の読み取りを行う技術が提示されている。カメラで撮影した計器の画像を画面上に表示し、計器の画像上で読み取りに必要な情報の設定を利用者が行うことができる。設定する情報としては、指針の支点位置、針の可動領域、目盛りを含む領域であり、これらの設定を支援する図形を計器の画像上に重ね合わせて表示し、利用者がその図形を移動・変形することにより設定を行えるようにして、設定作業の効率化を図っている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
計器読み取りシステムを導入する場合、読み取りが可能であるかどうかを点検作業や保守作業を行う実際の現場において、事前に確認することが通常と考えられる。このため、特許文献1のような、各計器に対して、事前に読み取りに必要となる情報を設定することにより読み取りを行う技術を用いることが現実的である。
【0006】
しかしながら、点検作業や保守作業を実施する現場では、設備の配置や安全面から、使用できる機材や行動範囲が制限されるため、例えば、スマートフォンやタブレット端末のみで効率的に設定作業を行えることが望ましい。
【0007】
特許文献1では、指針が回転する中心位置や目盛り位置を、計器を撮影した画面上で利用者が指定することにより設定を行う方法が提示されている。しかし、読み取りの精度を上げるためには、中心位置や目盛り位置として、より正確な位置を指定する必要がある。一般的に使用されるパソコンおよびマウスが使える環境であれば、画像上で正確な位置を指定することは容易である。しかし、使用できる手段がスマートフォンやタブレット端末である場合、画面が小さい上に、指によるタッチ操作となるため、画像上で正確な位置を指定することが困難となり、設定に要する時間も増大する。このため、スマートフォンやタブレット端末の画面上においても、計器の読み取りに必要となる情報をより正確に設定するための手段が必要であると考えられる。
【0008】
以上のことから、本発明の目的は、計器の読み取りに必要となる情報の設定にスマートフォンやタブレット端末等のモバイル機器を用いる場合でも、正確に且つ短時間で、計器の読み取りに必要となる情報を設定することを可能とする技術を提供することにある。
【課題を解決するための手段】
【0009】
本発明の一態様にかかる計器読み取りシステムは、計器の画像を取得する取得手段と、計器が示す数値を読み取るために必要な計器の情報を設定するための設定手段と、設定された前記計器の情報に基づいて前記計器の画像から計器が示す数値を読み取る読み取り手段と、前記計器が示す数値を読み取った結果を表示する表示手段と、を有する計器読み取りシステムであって、前記設定手段は、前記計器の画像における目盛りを含む領域の候補を検出する領域候補検出手段と、検出された目盛りを含む領域の各候補に対して、目盛り位置の候補を検出する位置候補検出手段と、前記目盛りを含む領域の候補および前記目盛り位置の候補から、最適な候補を選択するための制約条件に関する情報を入力する入力手段と、前記目盛りを含む領域の候補および前記目盛り位置の候補と、入力された前記制約条件とに基づいて、前記目盛りを含む領域の候補と前記目盛り位置の候補とに順位付けを行う順位付け手段と、前記順位付けの結果に基づいて最適な目盛りを含む領域の候補と目盛り位置の候補を表示する表示手段と、を有することを特徴とする計器読み取りシステムとして構成される。
【発明の効果】
【0010】
本発明によれば、計器の読み取りに必要となる情報の設定にスマートフォンやタブレット端末等のモバイル機器を用いる場合でも、正確に且つ短時間で、計器の読み取りに必要となる情報を設定することが可能となる。
【図面の簡単な説明】
【0011】
【
図1】第一の実施例を一般的なコンピュータによって実行させる場合のコンピュータの構成図。
【
図2】計器読み取りシステムで想定される利用状況の一例を表す図。
【
図3】目盛りが円状に配置されており、指針がその円の中心を支点として回転する種類の計器を示す図と指示値の読み取りに必要な情報の一例。
【
図6】計器読み取り結果データのフォーマットの一例。
【
図7】計器設定プログラムで実行される処理のフローチャートの一例。
【
図10】
図8の計器の画像に対して検出される円候補の一例。
【
図11】
図9の計器の画像に対して検出される円候補の一例。
【
図12】
図8の計器の画像から抽出された目盛り領域の画像の一例。
【
図13】
図9の計器の画像から抽出された目盛り領域の画像の一例。
【
図14】利用者が指定する情報を取得するための利用者への指示画面の一例。
【
図15】利用者が必要な情報を指定した状態の一例を示す図。
【
図16】順位付けされた円候補および目盛り位置候補を表示する画面の一例。
【
図17】
図16において円候補の選択を変更した場合の画面の一例。
【
図18】円候補の位置を微調整する場合の画面の一例。
【
図19】計器読み取りプログラムで実行される処理のフローチャートの一例。
【
図20】目盛りが直線状に配置されており、指針がその直線に平行に直線状に移動する種類の計器を示す図と指示値の読み取りに必要な情報の一例。
【
図21】第二の実施例における計器設定データのフォーマットの一例。
【発明を実施するための形態】
【0012】
以下、図面を参照して本発明の実施形態を説明する。以下の記載および図面は、本発明を説明するための例示であって、説明の明確化のため、適宜、省略および簡略化がなされている。本発明は、他の種々の形態でも実施する事が可能である。特に限定しない限り、各構成要素は単数でも複数でも構わない。
【0013】
図面において示す各構成要素の位置、大きさ、形状、範囲などは、発明の理解を容易にするため、実際の位置、大きさ、形状、範囲などを表していない場合がある。このため、本発明は、必ずしも、図面に開示された位置、大きさ、形状、範囲などに限定されない。
【0014】
以下の説明では、「テーブル」、「リスト」等の表現にて各種情報を説明することがあるが、各種情報は、これら以外のデータ構造で表現されていてもよい。データ構造に依存しないことを示すために「XXテーブル」、「XXリスト」等を「XX情報」と呼ぶことがある。識別情報について説明する際に、「識別情報」、「識別子」、「名」、「ID」、「番号」等の表現を用いた場合、これらについてはお互いに置換が可能である。
【0015】
同一あるいは同様な機能を有する構成要素が複数ある場合には、同一の符号に異なる添字を付して説明する場合がある。ただし、これらの複数の構成要素を区別する必要がない場合には、添字を省略して説明する場合がある。
【0016】
また、以下の説明では、プログラムを実行して行う処理を説明する場合があるが、プログラムは、プロセッサ(例えばCPU(Central Processing Unit)、GPU(Graphics Processing Unit))によって実行されることで、定められた処理を、適宜に記憶資源(例えばメモリ)および/またはインターフェースデバイス(例えば通信ポート)等を用いながら行うため、処理の主体がプロセッサとされてもよい。同様に、プログラムを実行して行う処理の主体が、プロセッサを有するコントローラ、装置、システム、計算機、ノードであってもよい。プログラムを実行して行う処理の主体は、演算部であれば良く、特定の処理を行う専用回路(例えばFPGA(Field-Programmable Gate Array)やASIC(Application Specific Integrated Circuit))を含んでいてもよい。
【0017】
プログラムは、プログラムソースから計算機のような装置にインストールされてもよい。プログラムソースは、例えば、プログラム配布サーバまたは計算機が読み取り可能な記憶メディアであってもよい。プログラムソースがプログラム配布サーバの場合、プログラム配布サーバはプロセッサと配布対象のプログラムを記憶する記憶資源を含み、プログラム配布サーバのプロセッサが配布対象のプログラムを他の計算機に配布してもよい。また、以下の説明において、2以上のプログラムが1つのプログラムとして実現されてもよいし、1つのプログラムが2以上のプログラムとして実現されてもよい。
【0018】
以下では、計器の読み取りに必要となる情報をあらかじめ設定し、設定した情報に基づいて計器の指示値を読み取る計器読み取り技術において、計器の読み取りに必要となる情報の設定にスマートフォンやタブレット端末等のモバイル機器を用いる場合でも、正確に且つ短時間で、計器の読み取りに必要となる情報を設定することを可能としている。
【実施例1】
【0019】
【0020】
図1は、第一の実施例における計器読み取りシステム1000を一般的なコンピュータによって実行させる場合のコンピュータの構成図を示す。本実施例における計器読み取りシステム1000は、
図2に示すように、利用者201が手に把持した端末202を用いて計器203を撮影し、端末202で計器203の指示値を読み取らせる場合を想定している。指示値の読み取りに必要となる各種情報についても、端末202で計器203の画像を取得し、端末202の画面上で計器203の画像を操作することにより、設定を行う。端末202は、スマートフォンやタブレット端末、ノートPC等の、よく知られているモバイル端末であり、
図1に含まれる構成要素を端末202に含む構成とすることができる。あるいは、データやプログラムの一部をサーバに格納し、必要な処理をネットワーク経由で実行する構成とすることも可能である。また、本実施例は、計器203を撮影するカメラを固定して設置するようなシステム対しても適用可能である。
【0021】
メモリ104に格納されたプログラムは、CD(Compact Disk)やDVD(Digital Versatile Disk)、USB(Universal Serial Bus)メモリ等の可搬性を有する非一時的な記録媒体に格納され、コンピュータにインストールされてもよい。計器読み取りシステム1000の機能は、メモリ104に格納されたプログラムがCPU101によって実行されることで、定められた処理がハードウェアと協働して実現される。計器読み取りシステム1000が実行するプログラム、その機能、あるいはその機能を実現する手段を、「機能」、「手段」、「部」、「ユニット」、「モジュール」等と呼ぶ場合がある。
【0022】
図1におけるCPU101は、計器読み取りシステム1000における各プログラムを実行するための情報処理装置である。入力I/F(インタフェース)102には、計器を撮影するためのカメラおよび、システムの開始や終了等を制御するためのキーボード、ボタン、マウスあるいはタッチパネル等の一般的なコンピュータにおける入力装置が含まれる。出力I/F(インタフェース)103は利用者にシステムの動作状況等を表示するための手段であり、スマートフォンやタブレット端末の画面、あるいは一般的なコンピュータ用の表示装置が含まれる。また、メモリ104は、計器読み取りシステム1000における各プログラムを格納するための記憶媒体である。メモリ104には、計器設定プログラム105および、計器読み取りプログラム106が含まれる。
【0023】
第一の実施例では、指針によって指示値を表す種類の計器のうち、
図3の計器301に示すように、目盛りが円状に配置されており、指針がその円の中心を支点として回転する種類の計器を読み取りの対象と想定する。
図3の計器301に示す種類の計器を読み取るために必要となる基本的な情報は、目盛りが構成する円と目盛りの最小値の位置および最大値の位置である。
図3では、目盛りが構成する円の中心位置302、目盛りが構成する円の半径303、目盛りの最小値位置304および目盛りの最大値位置305が読み取りに必要な基本的な情報となる。以下では、一例として、目盛りの最小値の位置および最大値の位置が、読み取りに必要な基本的な情報であるとして説明している。しかし、目盛りの最小値の位置および最大値の位置に限らず、例えば、目盛りが通常指し示す値の範囲がわかる場合には、その範囲の下限値の位置および上限値の位置を、読み取りに必要な基本的な情報としてもよい。例えば、指針が指し示す指示値が、経験上あるいは制御等により、最小値および最大値の80%の範囲で推移することがわかっている場合には、当該範囲の下限値の位置および上限値の位置を、読み取りに必要な基本的な情報とすればよい。このように、本システムの利用者は、上記最小値の位置および最大値の位置にかえて、読み取り位置や範囲を任意に設定することができる。
【0024】
円の中心位置302は、例えば
図3に示すように、画像の左下を原点とした位置座標により表すことができる。原点位置は、任意に設定することもできる。さらに、目盛りの最小値位置304および目盛りの最大値位置305は、例えば、
図3に示すように、円の中心位置302から真下におろした線を基準とした相対的な角度で表すことができる。基準とする線も任意に設定することができる。これらの情報を利用者が効率的に指定するためには、例えば、目盛りの最小値位置304および目盛りの最大値位置305のみを指定すれば良い。2点のみの指定では通常、2種類の円が候補として求められることになるが、本実施例では、計器全体がなるべく大きく画像中に映るように撮影する、というような制約を用いることができる。この制約を用いることにより、目盛りの最小値位置304および目盛りの最大値位置305のみを用いて、目盛りが構成する円を一意に特定することが可能となる。また、目盛りの最小値位置304および目盛りの最大値位置305は指定された情報をそのまま使用すれば良い。
【0025】
さらに、
図3の計器301に示す種類の計器において、最小値位置と最大値位置が計器の中心線(例えば、円の中心位置302を通る垂直な線や水平な線)に対して線対称の位置にある場合は、目盛りの最小値位置304および目盛りの最大値位置305のいずれか一方と、円の中心位置302を指定することでも、目盛りが構成する円を一意に特定することができる。上述した情報は、計器の読み取りに必要となる基本的な情報であるが、それ以外の情報を追加することもできる。例えば、最小値と最大値以外の目盛りの位置を追加するようにしても良い。また、
図3に示す計器は傾きが無い状態で撮影された状態となっているが、実際に計器を撮影する場合、計器が傾いて撮影される場合が一般的である。このため、上記に示した情報に加えて、傾きに関する情報を追加するようにしても良い。
【0026】
計器情報データ107には、計器の読み取りに必要な情報の種類および計器の設定時に利用者が指定する情報の種類を登録する。
図4に、計器情報データ107のフォーマットの一例を示す。計器情報ID401は、計器情報の種類を表す識別子であり、計器情報データ107の中において唯一の識別子であれば、任意の数字列あるいは文字列を使用することができる。設定情報リスト402は、上述した計器の指示値の読み取りに必要な情報の種類を文字列等により列挙したものである。
図3に示す種類の計器であれば、例えば「円の中心位置、円の半径、最小値位置、最大値位置」のような文字列を記述する。「円の中心位置」は
図3に示した円の中心位置302、「円の半径」は
図3に示した円の半径303、「最小値位置」は
図3に示した目盛りの最小値位置304、「最大値位置」は
図3に示した目盛りの最大値位置305にそれぞれ対応することを想定している。
【0027】
入力情報リスト403は、設定情報リスト402に列挙されている情報のうち、計器の設定を行う際に利用者が手動で入力を行う情報の種類を列挙したものである。例えば、
図3に示す計器に対して、目盛りの最小値位置304および最大値位置305を利用者が入力するという想定の場合、上述した設定情報リスト402の例に対する入力情報リスト403には「最小値位置、最大値位置」のような文字列を記述する。あるいは、目盛りが構成する円の中心位置302と目盛りの最小値位置304を利用者が入力する想定の場合は「中心位置、最小値位置」のような文字列を記述する。このように、利用者が入力すると想定する情報の種類および組み合わせは、設定情報リスト402に含まれる情報の種類の範囲内であれば、任意に設定することができる。
【0028】
計器設定データ108には、計器設定プログラム105により設定される各計器の指示値の読み取りに必要となる情報が格納される。
図3に示す計器の設定情報を格納するためのフォーマットの一例を
図5に示す。
図5において、計器名称501は読み取り対象の各計器に付与される名称であり、計器設定データ108において唯一の文字列であれば、任意の文字列を使用することができる。計器情報ID502は、計器情報の種類を表す識別子であり、計器情報データ107における計器情報ID401のいずれかが記述される。テンプレート画像503は、対象計器の読み取りに必要な情報を設定する際に計器を撮影した画像である。円の中心位置504、円の半径505、最小値位置506および最大値位置507は、
図3における目盛りが構成する円の中心位置302、目盛りが構成する円の半径303、目盛りの最小値位置304および目盛りの最大値位置305にそれぞれ対応するデータが記述される。また、最小値508および最大値509は、最小値位置506および最大値位置507を指針が指示した場合の計器の指示値を記述する。
【0029】
計器設定プログラム105や計器読み取りプログラム106には、読み取りに必要な情報の種類を表す上述のような文字列が登録されており、読み取りに必要な情報の種類の組み合わせにより、設定方法や読み取り方法を選択し、実行するようにしておく。想定する以外の種類の計器を対象とする必要が生じた場合は、読み取りに必要な新たな情報の種類の定義、新たな情報の組み合わせの計器情報データ107への登録、および、計器設定プログラム105および計器読み取りプログラム106への必要な情報や設定方法、読み取り方法の追加、を必要に応じて行うことにより、新しい種類の計器の設定および読み取りを行うことができる。
【0030】
計器読み取り結果データ109には、計器読み取りプログラム106により読み取られた計器の指示値が格納される。
図6に読み取られた計器の指示値を格納するフォーマットの一例を示す。
図6において、計器名称601は読み取られた指示値に対応する計器の名称であり、
図5における計器名称501と同様の名称が記述される。日時602には、指示値が読み取られた日付および時間を示す数値あるいは文字列が記述される。603は読み取られた指示値を表す数値あるいは文字列である。
【0031】
計器設定プログラム105は、計器の読み取りに必要な情報を設定し、設定した情報を計器設定データ108に格納するためのプログラムである。
図7に、計器設定プログラム105により実行される処理のフローチャートの一例を示す。なお、
図7に示すフローチャートは、
図3に示す種類の計器を対象とした処理となっている。
【0032】
以下に説明するように、実施例1および後述する実施例2では、計器の画像(例えば、
図3の円形形状の計器の画像や
図20の矩形形状の計器の画像)に示す種類の計器を取得する取得手段(例えば、入力装置102であるカメラ)と、計器が示す数値を読み取るために必要な計器の情報を設定するための設定手段(例えば、計器設定プログラム105)と、設定された計器の情報に基づいて計器の画像から計器が示す数値を読み取る読み取り手段(例えば、計器読み取りプログラム106)と、計器が示す数値を読み取った結果を表示する表示手段(例えば、出力装置103である表示装置)と、を有する計器読み取りシステム1000において、上記設定手段は、計器の画像における目盛りを含む領域の候補(例えば、
図3の円候補や
図20の矩形候補)を検出する領域候補検出手段(例えば、
図7のS704~S707を実行する計器読み取りプログラム106)と、検出された目盛りを含む領域の各候補に対して、目盛り位置の候補を検出する位置候補検出手段(例えば、
図7のS708を実行する計器読み取りプログラム106)と、目盛りを含む領域の候補および目盛り位置の候補から、最適な候補を選択するための制約条件に関する情報(例えば、
図7のS709で指定される情報)を入力する入力手段(例えば、
図7のS709を実行する計器読み取りプログラム106)と、目盛りを含む領域の候補および目盛り位置の候補と、入力された制約条件とに基づいて、目盛りを含む領域の候補と目盛り位置の候補とに順位付けを行う順位付け手段(例えば、
図7のS710を実行する計器読み取りプログラム106)と、順位付けの結果に基づいて最適な目盛りを含む領域の候補と目盛り位置の候補を表示する表示手段(例えば、
図7のS711を実行する計器読み取りプログラム106)と、を有することを特徴とする計器読み取りシステムとして機能する。
【0033】
図7におけるステップ701では、計器設定プログラム105は、計器情報データ107から読み取り対象となる計器に関する情報を取得する。具体的には、計器設定プログラム105は、計器情報データ107から計器情報ID401の一覧を取得し、端末202の画面上に一覧表示するとともに、利用者に対象となる計器に対応する計器情報IDを選択するよう指示を行う。計器設定プログラム105は、利用者が一覧から選択した計器情報IDに対応する計器情報を計器情報データ107から取得する。
【0034】
ステップ702では、計器設定プログラム105は、端末202に設置されているカメラを用いて、読み取り対象となる計器の画像を撮影する。この画像は、計器設定データ108のテンプレート画像503として格納される。
【0035】
ステップ703では、計器設定プログラム105は、撮影した計器の画像から輪郭線(エッジ)を抽出する。輪郭線は、一般によく知られた方法、例えば、Canny法等を用いることにより容易に抽出することができる。ステップ703で輪郭線を抽出した後、ステップ704への処理とステップ705への処理に分岐する。この分岐は、異なるデザインの目盛りに対応することが目的である。
【0036】
図3に示す種類の計器を目盛りのデザインで分類すると、
図8に示す種類の計器と
図9に示す種類の計器に大別される。
図8に示す種類の計器は、目盛り線によって構成される円と同心円である円弧の線に各目盛り線が接触しているデザイン801である。円弧の線811は、目盛り線と同様に描かれた線である場合もあるが、計器の枠が同様の役割を果たしている場合もある。この種類の計器では、輪郭線の抽出結果においても円弧と各目盛り線が接続された状態となる。一方、
図9に示す種類の計器は、各目盛り線が独立した短い線になっているデザイン901であり、輪郭線の抽出においても各目盛り線に対して独立した輪郭線が抽出される。これら二種類の目盛りのデザインに柔軟に対応するため、
図7に示すフローチャートでは、計器設定プログラム105は、ステップ704において
図8に示す種類の目盛り線に対応した処理を、ステップ705以降において
図9に示す種類の目盛り線に対応した処理を行う。
図7では、ステップ704の処理と、ステップ705以降の処理とを実行する場合を例示しているが、どちらかの処理を選択的に実行してもよい。
【0037】
ステップ704では、計器設定プログラム105は、ステップ703で抽出した輪郭線すべてを用いて円候補の検出を行う。円候補の検出方法としては、一般によく知られた方法、例えば、Hough変換等を用いることにより、容易に検出することができる。計器設定プログラム105は、
図8に示す計器の画像から抽出した輪郭線に対して円候補の検出を行うことにより、例えば
図10における円候補1001、円候補1002および円候補1003に示すような円候補を抽出することできる。
図10において、円候補1001は目盛り線が接する円弧の線に対して検出された候補、円候補1002および円候補1003は計器の枠によって表される線が円候補として検出されたものである。また、計器設定プログラム105は、抽出した輪郭線すべてを用いて円候補の検出を行う代わりに、抽出された輪郭線を連結された輪郭線のまとまり(例えば、
図10で示す円を構成する1または複数の破線を含む小領域)に分割し、分割された輪郭線のまとまりがあらかじめ定められた長さより長い輪郭線のみに対して円候補の検出を行うようにしても良い。
【0038】
一方、ステップ705では、計器設定プログラム105は、抽出された輪郭線を連結された輪郭線のまとまり(例えば、
図11で示す円を構成する目盛り線に対応する小領域)に分割し、分割された輪郭線のまとまりの領域が占める面積(例えば、
図11で示す目盛り線に対応する小領域の面積)を求める。計器設定プログラム105は、求めた面積があらかじめ目盛り線の面積を想定した閾値より小さい輪郭線のまとまりのみを残す。この処理により、計器設定プログラム105は、
図9に示す種類の計器の画像から、目盛り線に関する輪郭線のみを抽出することが可能となる。
【0039】
次にステップ706において、計器設定プログラム105は、ステップ705により残された各輪郭線のまとまりについて、それぞれの輪郭線の重心位置を求める。さらにステップ707において、計器設定プログラム105は、求めた重心位置に対してステップ704で使用したのと同様の方法を用いて円候補の検出を行う。ステップ705から707の処理により、
図11の円候補1101に示すように、独立した目盛り線により構成される円候補を検出することができる。
【0040】
ステップ704および、ステップ705から707によって検出された各円候補のうち、目盛りによって構成される円に対して検出された候補は、円候補1001のように全ての目盛りに接触、あるいは、円候補1101のように全ての目盛りと交差する形になる。この場合、円候補の半径を基準として当該半径よりも一定程度大きくした円および当該半径よりも一定程度小さくした円によって挟まれるドーナツ状の領域は目盛りを含む領域となるため、各円候補は目盛り領域の候補となる。
【0041】
このように、上記領域候補検出手段(例えば、
図7のS704~S707を実行する計器読み取りプログラム106)は、計器の画像中から抽出した輪郭情報から目盛りを含む領域を表す形状を特定することにより、計器の画像中から目盛りを含む領域の候補を検出する処理(例えば、
図7のS704)と、計器の画像中から各々の目盛りに対応する小領域を抽出し、抽出した複数の小領域が構成する形状が目盛りを含む領域を表す形状であるかどうかを判定することにより、計器の画像中から目盛りを含む領域の候補を検出する処理(例えば、
図7のS705~S707)と、の少なくともいずれかの処理を行う。
【0042】
ステップ708では、計器設定プログラム105は、ステップ704および、ステップ705から707によって検出された各円候補に対して、目盛り位置候補の検出を行う。目盛り位置候補の検出を行うためには、まず、円候補の中心位置に基づいて、
図8や
図9に示すような計器画像に対して極座標変換を行い、目盛り領域の画像を矩形状の画像に変換する。具体的には、計器設定プログラム105は、円候補の中心位置から円周方向に伸ばした直線を想定し、その直線上の画素値を取得する。計器設定プログラム105は、中心位置を軸に、直線の角度を少しずつ変えながら取得した画素を接続していくことにより、円形の画像を矩形状の画像に変換することができる。この際、計器設定プログラム105は、円候補の半径を中心として、あらかじめ設定された範囲の画素値のみを取得することにより、円候補が目盛りによって構成される円と一致している場合、
図12および
図13に示すように、目盛り領域のみを矩形状に変形した画像を取得することができる。
図12は
図8に示す画像から抽出された目盛り領域の画像、
図13は
図9に示す画像から抽出された目盛り領域の画像を想定している。また
図12および
図13では、目盛り線のみが抽出されている場合を想定した画像であるが、実際には、数字やその他模様の一部が含まれる場合もある。
【0043】
さらにステップ708では、計器設定プログラム105は、目盛り領域の画像に対して、目盛り線のみを残すための処理を行う。具体的には、
図12および
図13のような画像の場合、計器設定プログラム105は、縦方向の線のみを残す処理を行う。この方法としては、一般によく知られたモルフォロジー変換等を用いることにより、容易に行うことができる。縦方向の線のみを残す処理を行うことにより、
図12に示す画像も
図13と同様の画像に変換される。計器設定プログラム105は、目盛り線のみとなった画像に対して、例えば
図13に示すような画像の場合、各目盛り線の横方向の位置を目盛り位置候補として取得する。
【0044】
ステップ709では、計器設定プログラム105は、計器の設定時に利用者が指定する情報を取得する。このため、計器設定プログラム105は、端末202の画面上に
図14に示すような指示画面を表示する。この画面は、ステップ702で計器の撮影を行った後に表示される画面となる。端末202の画面がタッチパネルを有する場合、計器の画像1401上の該当位置を指でタッチすることにより、必要な情報を指定することができる。利用者が設定する必要がある情報の種類は、ステップ701で取得した計器情報データ107中における入力情報リスト403の内容によって決定される。計器設定プログラム105は、入力情報リスト403の内容に従って、利用者が指定した情報を順番に設定情報リスト中の情報に対応付ける。
【0045】
図15に利用者が必要な情報を指定した状態の一例を示す。
図15は、利用者が指定する情報が目盛りの最小値位置304と目盛りの最大値位置305である場合の例を示しており、最小値位置1501が設定され、最大値位置1502が設定されている。なお、この時に利用者が指定する位置は正確な位置である必要は無い。また、
図14においてボタン1402は直前の画面に戻るためのボタンであり、計器設定プログラム105は、利用者からマウスや画面タッチ等による選択を受け付けると、画面を遷移させて直前画面に戻ることができる。以降の画面でも同様に、計器設定プログラム105は、このボタンが選択されると、直前の画面に遷移させる。
【0046】
ステップ710では、計器設定プログラム105は、利用者が指定した情報に基づいて、すでに検出されている円候補および目盛り位置候補に対して順位付けを行う。いずれの順位付けについても、利用者が指定した位置と円候補や目盛り位置候補との距離に基づいて行うことができる。例えば、円候補の順位付けについては、計器設定プログラム105は、各円候補について、円候補の中心位置から利用者が指定した位置までの距離と円候補の半径との差を求め、差がより小さい候補を順位が上位の候補とすれば良い。また、目盛り位置候補の順位付けについては、計器設定プログラム105は、利用者が指定した位置を上述した極座標変換後の画像上での位置に変換し、各目盛り候補との距離がより小さい候補を順位が上位の候補とすれば良い。
【0047】
円候補や目盛り位置候補に順位付けを行う方法としては、これら以外にも順位がつけられる方法であればどのような方法でも用いることができる。さらに、円候補や目盛り位置候補の順位付けにおいて、利用者が指定した位置以外を制約に加えるようにしても良い。例えば、対象の計器が画像の中央付近に撮影されると想定できる場合、中心位置が画像の中心により近い円候補を順位が上位の候補とするようにしても良い。またさらに、複数の条件を組み合わせて順位付けを行うようにすることもできる。
【0048】
このように、上記設定手段(例えば、計器設定プログラム105)は、上記入力手段(例えば、
図7のS709を実行する計器読み取りプログラム106)から、目盛り位置の概略の位置を取得し、上記順位付け手段(例えば、
図7のS710を実行する計器読み取りプログラム106)は、検出された目盛りを含む領域の候補と、目盛り位置の候補の位置と取得した概略の位置との距離とに基づいて、検出された目盛りを含む領域の候補と目盛り位置の候補とに順位付けを行う。
【0049】
ステップ711では、計器設定プログラム105は、ステップ710で行った順位付けの結果に基づいて、円候補および目盛り位置候補を端末202の画面上に表示する。
図16に順位付けされた円候補および目盛り位置候補の表示例を示す。
図16において、画面の上部1601には、ステップ702で取得された計器の画像上に、順位付けされた円候補および目盛り位置候補を重ね合わせた結果が表示されている。特に
図16では、円候補、目盛り位置候補ともに、上位3つの候補のみが表示されており、さらに第一候補はそれぞれ太い線で表示されているとともに、円候補の第一候補については中心位置も合わせて表示されている。
図16において、円候補は破線、最小値の目盛り位置候補は四角、最大値の目盛り位置候補は三角、円候補の中心位置は計器中央の小さい破線の円1602として表示されている。また
図16では、目盛り位置候補は第一の円候補に対する候補のみとしている。さらに、計器設定プログラム105は、
図16における「円1」、「円2」、「円3」、「最小1」、「最小2」等のように、各候補には順位に応じた名称を自動的に付与し、各候補に紐づけて表示する。
図16に示す表示は一例であり、表示する候補数や線の太さ、記号の形状、表示色等を必要に応じて変更することができる。あるいは、利用者が使い勝手や嗜好に合わせて個別に調整できるようにしても良い。
【0050】
また、
図16の画面の下部1603には、検出された円候補および目盛り位置候補に付与された名称が上位の候補から順に一覧表示されている。候補の左側に表示されている丸は、黒丸が選択されている候補、白丸は選択されていない候補を示している。画面の下部1603では、いずれも第一位の候補が選択された状態であることを示している。画面の下部1603においても上位3つの候補のみが表示されているが、表示する候補の個数は任意に変更しても良い。例えば、計器設定プログラム105は、画面の上部1601に表示されている候補より多く候補を表示するようにしても良い。
【0051】
ステップ712では、計器設定プログラム105は、ステップ711で表示された内容に対して利用者が行った操作の結果を取得し、ステップ713において
図16の決定ボタン1604が選択されたと判定した場合(ステップ713;Yes)、ステップ715に進む。ステップ713において、計器設定プログラム105は、利用者の操作が決定ボタン1604の選択ではないと判定した場合(ステップ713;No)、別候補選択または微調整であると判断し、ステップ714で必要な画面表示の変更を行い、再度ステップ712に戻り、利用者の操作を取得する。利用者の操作としては、例えば、円候補や目盛り候補の選択変更、円候補の位置や目盛り候補の位置の微調整等を想定することができる。他に必要な操作があれば、適宜追加することが可能である。
【0052】
このように、上記設定手段(例えば、計器設定プログラム105)は、目盛りを含む領域の候補のうち、順位が上位の候補からあらかじめ定められた個数の候補を、計器の画像に重ねて表示するとともに、目盛りを含む領域の各候補に対応する目盛り位置の候補のうち、順位が上位の候補からあらかじめ定められた個数の候補を計器の画像に重ね合わせて表示する。
【0053】
また、上記設定手段(例えば、計器設定プログラム105)は、画像上に表示されている目盛りを含む領域の候補あるいは目盛り位置の候補を選択する選択手段(例えば、
図16の画面下部1603に表示された円候補、最大値候補、最小値候補の選択を受け付ける計器設定プログラム105)を有し、選択された目盛りを含む領域の候補および目盛り位置の候補を、他の目盛りを含む領域の候補および目盛り位置の候補とは異なる形態で表示する処理、選択された目盛りを含む領域の候補に対する目盛り位置の候補のみを計器の画像上に表示する処理、のいずれか1つ以上の処理を行い、目盛りを含む領域の候補および目盛り位置の候補を計器の画面上に表示し、視認性を向上させることができる。
【0054】
図16において円候補の選択を変更した場合の画面の一例を
図17に示す。円候補の選択は、
図16における画面の下部1603に表示されている候補の一覧において、該当する候補の名称やその横に表示されている丸印をマウスや画面タッチ等により選択することで行うことができる。あるいは、
図16における画面の上部1601で計器の画像上に表示されている候補を直接選択するようにしても良い。
図17は、円候補を「円1」から「円3」に変更した場合の表示例であり、「円3」を太い破線で表示することにより「円3」が選択されていることを示しており、さらに、「円3」に対する目盛り位置候補が表示されている。計器設定プログラム105は、目盛り位置候補の選択の変更を、選択されている円候補に関連する目盛り位置候補のみに対して行うことができる。
図17の場合、「円3」に対する目盛り位置候補、「最小1」から「最小3」および「最大1」から「最大3」のいずれかを選択することができる。
【0055】
このように、上記設定手段(例えば、計器設定プログラム105)は、目盛りを含む領域の候補と目盛り位置の候補の一覧を表示し、一覧の中で選択された目盛りを含む領域の候補あるいは目盛り位置の候補に対応する候補を、他の目盛りを含む領域の候補あるいは目盛り位置の候補とは異なる形態で計器の画像上で表示し、画面下部1603で選択された内容を画面上部1601に反映させることができる。
【0056】
また、
図18は、円候補の位置を微調整する場合の画面の一例である。
図18の画面は、
図17の画面の下部1702に配置されている「微調整」と記述されたボタンをマウスや画面タッチ等で選択することで表示される画面であり、
図16で選択されている円候補のみの位置を修正することができる。
図18の画面上において、指のスライド方向1801に示すように画面上で指をスライドさせることにより、計器設定プログラム105がこれを検知し、円候補のスライド方向1802のように指の動きに合わせて対象の円候補の位置を修正することができる。マウスを使用して同様の操作を行うようにすることもできる。また
図18において、調整ラジオボタン1803をマウスあるいは画面タッチ等により選択することで、計器設定プログラム105がこれを検知し、円候補の大きさの微調整を行うことができる。円候補の大きさの変更方法としては、円候補の位置の場合と同様に、指のスライドやマウスの移動に合わせて変更する方法を用いることができる。目盛り位置候補についても同様に位置の微調整を行うようにすることができる。なお、目盛り位置候補の場合、微調整が可能な範囲を円候補によって決定される円周上に制限するようにしても良い。
【0057】
このように、上記設定手段(例えば、計器設定プログラム105)は、目盛りを含む領域の候補および目盛り位置の候補のうち、選択されている候補の計器の画像上における位置を調整することができる。
【0058】
ステップ715では、計器設定プログラム105は、選択されている円候補および目盛り位置候補から計器の読み取りに必要な情報を取得し、計器設定データ108に保存する。これにより、利用者が指定した位置が正確でない場合でも、より正確な情報を設定することができる。さらに、計器設定プログラム105は、選択された目盛り位置候補に対する計器の指示値を取得し、計器設定データ108に保存し、処理を終了する。目盛り位置候補に対する計器の指示値は利用者が入力することを想定しており、計器設定プログラム105は、端末202の画面上に、それぞれの目盛り位置候補に対する指示値を入力するよう指示を表示し、利用者が入力した結果を計器設定データ108に保存する。
【0059】
計器の指示値の読み取りに必要な情報を設定するための上述した方法では、ステップ709で利用者が指定する情報を全て取得した後、ステップ710で円候補および目盛り位置候補に順位付けを行い、ステップ711でその結果を表示していた。このステップ709からステップ711までの処理フローについては、上述した方法の他、利用者が情報を一つ設定するたびに、計器設定プログラム105は、設定された情報に基づいて円候補および目盛り候補の順位付けを行い、その結果が表示されるようにしても良い。
【0060】
さらに、利用者が設定する情報として最小値位置506あるいは最大値位置507のいずれか一方のみが設定されている場合は、計器設定プログラム105は、これらの位置に加えて、円候補の中心位置から真下に引いた直線に対して線対称にある位置あるいは、円候補の中心位置から水平方向に引いた直線に対して線対称にある位置も円候補や目盛り位置候補の順位付けの基準に追加し、円候補や目盛り位置候補の順位付けを行うようにしても良い。これは、目盛り線が円形状に配置されている計器において、多くの場合、最小値位置と最大値位置が計器の中心線に対して線対称の位置にあるためである。設定された位置に対して、円候補の中心位置から垂直あるいは水平に引いた直線に線対称な位置を自動的に円候補や目盛り位置候補の順位付けに使用するようにするとともに、利用者が情報を一つ設定するたびに、設定された情報に基づいて円候補および目盛り候補の順位付けを行い、その結果が表示されるようにする。すなわち、上記設定手段(例えば、計器設定プログラム105)は、上記入力手段(例えば、
図7のS709を実行する計器読み取りプログラム106)から、制約条件となる情報を一つ取得するごとに、目盛りを含む領域の候補および目盛り位置の候補の順位付けを更新し、計器の画像上における目盛りを含む領域の候補および目盛り位置の候補の表示を変更する。これにより、最短、一つの情報を設定するだけで、計器の読み取りに必要な情報を全て設定することが可能となる。
【0061】
このように、上記設定手段(例えば、計器設定プログラム105)は、目盛りを含む領域の形状が円形の場合、上記入力手段(例えば、
図7のS709を実行する計器読み取りプログラム106)から、(1)最小値および最大値を示す目盛り位置の概略の位置、(2)円形の中心位置の概略の位置と最小値を示す目盛り位置の概略の位置、(3)円形の中心位置の概略の位置と最大値を示す目盛り位置の概略の位置、(4)最小値を示す目盛り位置の概略の位置と計器の画像の中心位置、(5)最大値を示す目盛り位置の概略の位置と計器の画像の中心位置、のいずれかを条件を取得し、上記順位付け手段(例えば、
図7のS710を実行する計器読み取りプログラム106)は、検出された目盛りを含む領域の候補と、上記(1)~(5)のいずれかの条件とに基づいて、目盛りを含む領域の候補、および目盛り位置の候補に順位付けを行ってもよい。
【0062】
また、上記設定手段(例えば、計器設定プログラム105)は、目盛り位置が特定の線に対して線対称である計器である場合、上記入力手段(例えば、
図7のS709を実行する計器読み取りプログラム106)から取得する情報として、最小値を示す目盛り位置の概略の位置、あるいは、最大値を示す目盛り位置の概略の位置、のいずれか一方を取得し、上記順位付け手段(例えば、
図7のS710を実行する計器読み取りプログラム106)は、検出された目盛りを含む領域の候補と、目盛り位置の候補の位置と取得したいずれかの概略の位置との距離とに基づいて、検出された目盛りを含む領域の候補と目盛り位置の候補とに順位付けを行ってもよい。
【0063】
図1における計器読み取りプログラム106は、計器設定プログラム105により保存された計器設定データ108に基づいて、計器を撮影した画像から計器の指示値の読み取りを行い、読み取った指示値を計器読み取り結果データ109に格納するためのプログラムである。
図19に、計器読み取りプログラム106により実行される処理のフローチャートの一例を示す。
【0064】
図19におけるステップ1901では、計器読み取りプログラム106は、計器設定データ108から読み取り対象となる計器に関する設定情報を取得する。具体的には、計器読み取りプログラム106は、計器設定データ108から計器名称501の一覧を取得し、端末202の画面上に一覧表示するとともに、利用者に対象となる計器に対応する計器名称を選択するよう指示を行う。計器読み取りプログラム106は、利用者が一覧から選択した計器名称に対応する設定情報を計器設定データ108から読み込む。
【0065】
ステップ1902では、計器読み取りプログラム106は、端末202に設置されているカメラを用いて、読み取り対象となる計器の画像を撮影する。上述したステップ1901およびステップ1902では、読み取り対象となる計器名称を利用者が指定した後、対象となる計器の画像を撮影する流れとなっているが、その他、計器の名称を登録した画像パターンや記号、文字列を対象となる計器の周辺に設置し、計器を撮影する際、その画像パターンや記号、文字列を対象の計器とともに撮影し、画像パターンや記号、文字列を認識させることにより、計器の名称を取得する方法を用いることができる。例えば、計器の名称を登録した画像パターンとしては、よく知られたQRコード(登録商標)やARマーカーと呼ばれる画像パターンを用いることができる。また、計器の名称を表す記号や文字列を使用する場合は、よく知られた文字認識技術を用いることにより、撮影した画像から計器の名称を取得することが可能となる。
【0066】
計器設定データ108のテンプレート画像503およびステップ1902で撮影した計器の画像は、ともに読み取り対象となる計器を撮影した画像であるが、撮影時のカメラの位置や向きが同一となることは無いため、画像上における計器の位置、向き、大きさが異なっている画像となる。この状態では、計器設定データ108に保存されている情報を使用して計器の指示値の読み取りを行うことが困難である。そのため、計器読み取りプログラム106は、ステップ1903において、ステップ1902で撮影した画像上での計器とテンプレート画像上での計器の位置、向き、大きさを一致させる処理を行う。この方法としては、計器読み取りプログラム106は、例えば、よく知られた画像の局所特徴点および局所特徴点に付随する局所特徴量と呼ばれる情報をテンプレート画像503およびステップ1902で撮影した計器の画像から抽出する。
【0067】
次に、計器読み取りプログラム106は、局所特徴量の類似度に基づいてテンプレート画像503から抽出した局所特徴点と、ステップ1902で撮影した計器の画像から抽出した局所特徴点との対応関係を求める。対応関係を求める方法としては、よく知られた総当たり法等を用いることができる。計器読み取りプログラム106は、局所特徴点の対応関係を求めた後、求めた対応関係を用いてステップ1902で撮影した計器の画像をテンプレート画像503上に投影するための変換行列を求める。この変換行列は、よく知られたホモグラフィー行列と呼ばれる行列である。
【0068】
最後に、計器読み取りプログラム106は、求めた変換行列を用いて、ステップ1902で撮影した計器の画像をテンプレート画像503上に投影する処理を行う。これにより、ステップ1902で撮影した画像中の計器の部分をテンプレート画像503上の計器の部分に合わせ込んだ画像、すなわち計器の位置、向き、大きさを一致させた画像を取得することができる。テンプレート画像503上の計器とステップ1902で撮影した画像上の計器を一致させる方法としては、同様の結果が得られる手法であればどのような手法を用いても良い。
【0069】
ステップ1904では、計器読み取りプログラム106は、ステップ1903により得られた計器の画像、および計器設定データ108の情報を用いて、計器の指示値の読み取りを行う。ステップ1903により得られた画像上における計器の位置、向き、大きさは、テンプレート画像上における計器の位置、向き、大きさに一致しているため、計器読み取りプログラム106は、例えば、以下のような方法により、指示値の読み取りを行う。計器読み取りプログラム106は、まず、指針の色と同じ領域をステップ1903により得られた計器の画像中から抽出することにより、指針を画像中から抽出する。
【0070】
さらに、計器読み取りプログラム106は、抽出した指針の輪郭線(エッジ)を求め、求めた輪郭線から直線の抽出を行う。輪郭線を求める方法としては、例えば上述したCanny法を用いることができる。直線を抽出する方法としては、例えば上述したHough変換を用いることができる。その他、同様の結果を得られる方法であれば、どのような方法を用いても良い。計器読み取りプログラム106は、抽出した直線のうち、最も長い二本の直線が交わる位置を求めることにより、指針の先端位置を取得することができる。あるいは、ステップ1903により得られた計器の画像中から直接、輪郭線を求め、輪郭線から抽出した直線のうち、最も長い二本の直線が交わる位置を求めることにより、指針の先端位置を取得するようにしても良い。なお、指針の抽出や輪郭線の抽出等において、計器設定データ108における円の中心位置504および円の半径505によって決定される円の範囲に処理の範囲を限定することにより、不要な領域や輪郭線の抽出を抑制することができる。
【0071】
計器読み取りプログラム106は、画像中における指針の先端位置を求めた後、最小値位置506および最大値位置507の値と同じ計算方法による値に指針の先端位置を変換する。用いる計算方法としては、例えば、円の中心位置504から真下に下した直線と、円の中心位置504から対象位置に伸ばした直線がなす角度を求める、というような方法を用いることができる。この計算方法により求めた指針の先端位置と、計器設定データ108における最小値位置506、最大値位置507、最小値508、最大値509を用いて、(式1)により計器の指示値を算出することができる。
【0072】
M=(Vmax-Vmin)/(θmax-θmin)×P (式1)
(式1)において、Mは求められた計器の指示値、Pは指針の先端位置、θminは最小値位置506、θmaxは最大値位置507、Vminは最小値508、Vmaxは最大値509である。(式1)は、最小値508から最大値509までの間の目盛りが全て等間隔である場合に計器の指示値を算出するために使用することができる計算式であり、よく知られた線形補間による計算式である。目盛りの間隔が不均等である場合は、最小値508と最大値509の間の中間的な目盛り位置および目盛り値に関する情報を計器設定データ108に追加し、指針の先端位置を挟む中間的な目盛り位置および目盛り値を用いて線形補間を行うことにより、計器の指示値を算出するようにしても良い。指針の先端位置を検出する方法や計器の指示値を算出する方法としては、上述した方法に限定されるものではなく、同様の結果が得られる方法であれば、どのような方法でも用いることができる。
【0073】
最後に、計器読み取りプログラム106は、ステップ1905で、ステップ1904で読み取った計器の指示値を端末202の画面上に表示するとともに、計器読み取り結果データ109に格納し、処理を終了する。
【0074】
以上のように第一の実施例によれば、目盛りが円状に配置されており、指針がその円の中心を支点として回転する種類の計器の指示値を画像から読み取る計器読み取りシステムにおいて、計器の読み取りに必要となる情報の設定にスマートフォンやタブレット端末等のモバイル機器を用いる場合でも、正確に且つ短時間で、計器の読み取りに必要となる情報を設定することが可能となる。
【実施例2】
【0075】
第二の実施例を
図20から
図21を用いて説明する。第一の実施例では
図3に示すように、目盛りが円状に配置されており、指針がその円の中心を支点として回転する種類(例えば、円形形状)の計器を読み取り対象の計器として想定していた。一方、第二の実施例では
図20の計器2001に示すように、目盛りが直線状に配置されており、指針がその直線に平行に直線状に移動する種類(例えば、矩形形状)の計器を読み取り対象の計器として想定する。
【0076】
図20に示す種類の計器の指示値を読み取るために必要となる基本的な情報は、
図20の指針の支点(が稼働する範囲の)位置2002、目盛りが構成する直線の位置2003、目盛りの最小値位置2004および目盛りの最大値位置2005に描かれた破線で囲まれた領域を特定する情報であり、指針の支点(が稼働する範囲の)位置2002、目盛りが構成する直線の位置2003、目盛りの最小値位置2004および目盛りの最大値位置2005がそれらの情報となる。これらの情報はすべて、例えば、画像の左下を原点とした位置座標により表すことができる。原点位置は、任意に設定することもできる。これらの情報を利用者が効率的に指定するためには、例えば、支点位置2002、目盛りの最小値位置2004および目盛りの最大値位置2005のみを指定すれば良い。
【0077】
図20では、目盛りの最小値位置2004および最大値位置2005は縦方向の位置座標のみで表している。しかし、画像上での位置を指定する際は点で指定される、すなわちX座標とY座標の両方が取得できるため、目盛りの最小値位置2004および最大値位置2005がX-Y形式で保存されていると想定すれば、上述の3種類の情報が計器の読み取りに必要な基本的な情報となる。さらに計器の画像を撮影する際に、計器の中心が画像の中心と一致するように撮影する、というような制約を用いることにより、計器設定プログラム105は、目盛りの最小値位置2004および最大値位置2005のうちのいずれか一方と、支点位置2002のみで、
図20における計器の読み取りに必要な領域、すなわち、指針の支点位置2002、目盛りが構成する直線の位置2003、目盛りの最小値位置2004および目盛りの最大値位置2005の箇所に引かれている破線で囲まれた領域を特定することが可能となる。この場合、計器設定プログラム105は、例えば目盛りの最小値位置2004のみを使用する場合、
図20における画像の中心を通る水平線に対して線対称にある位置を目盛りの最大値位置2005とみなせば良い。上述した情報は、
図20に示す種類の計器の読み取りに必要となる基本的な情報であるが、それ以外の情報を追加することもできる。例えば、目盛りの間隔が不均等であるような場合等は、目盛りの最小値位置2004と目盛りの最大値位置2005の間に中間的な目盛り位置を追加しても良い。さらに、
図20に示す計器は、傾きが無い状態で撮影された状態となっているが、実際に計器を撮影する場合、計器が傾いて撮影される場合が一般的である。このため、上記に示した情報に加えて、傾きに関する情報を追加するようにしても良い。
【0078】
計器情報データ107には、計器設定プログラム105は、設定情報リスト402および入力情報リスト403の内容を上述した情報に合わせて変更したデータを登録する。例えば、設定情報リスト402は「支点位置、直線位置、最小値位置、最大値位置」、入力情報リスト403は「支点位置、最小値位置、最大値位置」のように記述することができる。「支点位置」は指針の支点位置2002、「直線位置」は目盛りが構成する直線の位置2003、「最小値位置」は目盛りの最小値位置2004、「最大値位置」は目盛りの最大値位置2005にそれぞれ対応することを想定している。第一の実施例では、指針の支点位置である円の中心位置は検出された円候補によって決定されるため利用者による入力は不要であるが、
図4に示す種類の計器では支点が稼働する範囲を目盛りが構成する直線の位置2003などから一意に決定することが困難であるため、第二の実施例においては、「支点位置」も利用者が入力することを想定する。
【0079】
図21に、第二の実施例で使用する計器設定データ108のフォーマットの一例を示す。
図5との違いは、円の中心位置504が支点位置2101に、円の半径505が直線の位置2102に変更されている点である。支点位置2101および直線の位置2012は、それぞれ、
図20における指針の支点位置2002および目盛りが構成する直線の位置2003に対応している。
【0080】
第二の実施例における計器設定プログラム105では、ステップ704、ステップ707で行われる処理を円候補の検出から直線候補の検出に変更する。また、計器設定プログラム105は、ステップ708以降の処理では、検出された直線候補に対して目盛り候補の検出(ステップ708)、直線候補への順位付け(ステップ710)、順位付けの結果に基づく直線候補の表示(ステップ711)等を行うようにすれば良い。また、目盛り候補の検出(ステップ708)では、目盛りが直線状であるため、第一の実施例で使用した極座標変換を行う必要は無い。計器設定プログラム105は、計器の画像から
図12あるいは
図13に示すような画像を直接、取得し、目盛り位置の候補を検出することが可能となる。直線候補の順位付け(ステップ710)については、計器設定プログラム105は、第一の実施例において利用者が指定した位置と円候補との距離に基づいて行っていた処理を、利用者が指定した位置と直線候補との距離に基づいて行う処理に変更するのみで良い。候補の表示および候補に対する利用者の操作については、円と直線という形状的な差異はあるが、基本的に同様の方法を用いることができる。
【0081】
第二の実施例における計器読み取りプログラム106では、
図19に示すフローチャートで示される処理と同様の処理を行うことで、計器の指示値の読み取りを行うことができる。ただし第二の実施例では、ステップ1904で実施される処理において、以下の二点が第一の実施例とは異なる。まず、第一の実施例では円の中心位置504および円の半径505によって決定される円の範囲に処理の範囲を限定していたが、第二の実施例では指針の支点位置2002および目盛りが構成する直線の位置2003によって決定される矩形領域(
図20において、2002と2003で挟まれた領域)に処理の範囲を限定する。また、第一の実施例では指針の先端位置を円の中心位置504からの相対的な値に変換した後、指示値の計算をしていたが、第二の実施例では検出した指針の先端位置をそのまま使用することができる。例えば、計器読み取りプログラム106は、
図20に示すように指針が縦方向に移動する場合は指針位置のY座標の値をそのまま用いることができる。この場合、目盛りの最小値位置2004、目盛りの最大値位置2005についても同様の値を用いれば良い。また、指針が横方向に移動する場合はX座標の値を用いれば良い。
【0082】
以上のように第二の実施例によれば、目盛りが直線状に配置されており、指針がその直線に沿って直線状に移動する種類の計器の指示値を画像から読み取る計器読み取りシステムにおいて、計器の読み取りに必要となる情報の設定にスマートフォンやタブレット端末等のモバイル機器を用いる場合でも、正確に且つ短時間で、計器の読み取りに必要となる情報を設定することが可能となる。
【0083】
また、実施例1で示した円形形状の計器、実施例2で示した矩形形状の計器、あるいは円形形状や矩形形状に含まれる様々な種類の計器について、少なくとも、計器の種類ごとに、目盛りを含む領域の形状、制約条件に関する情報の種類、制約条件を入力する順序に関する情報を格納する計器情報格納手段(例えば、計器情報データ107、計器設定データ108、計器読み取り結果データ109を記憶するストレージ)と、設定を行う計器の種類を取得する種類取得手段(例えば、計器設定プログラム105)と、画像上に表示されている目盛りを含む領域の候補あるいは目盛り位置の候補を選択する選択手段(例えば、
図16の画面下部1603に表示された円候補、最大値候補、最小値候補の選択を受け付ける計器設定プログラム105)と、を有し、上記設定手段は、取得された計器の種類に対応する情報を計器情報格納手段から取得し、取得した情報に基づいて、目盛りを含む領域の候補または目盛り位置の候補の順位付けに必要な制約条件に関する情報を取得し、上記順位付け手段は、取得された情報に基づいて、目盛りを含む領域の候補または目盛り位置の候補の順位付けを行い、上記選択手段は、順位付けの結果に基づいて、目盛りを含む領域の候補または目盛り位置の候補の選択を行うことも可能である。これにより、計器読み取りシステムを様々な種類の計器に適用することができる。
【符号の説明】
【0084】
1000 計器読み取りシステム
101 CPU
102 入力I/F
103 出力I/F
104 メモリ
105 計器設定プログラム
106 計器読み取りプログラム
107 計器情報データ
108 計器設定データ
109 計器読み取り結果データ
201 利用者
202 モバイル端末
203 対象計器