IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社ライトハウスの特許一覧

特開2023-121890プログラム、情報処理装置、情報処理システム、情報処理方法
<>
  • 特開-プログラム、情報処理装置、情報処理システム、情報処理方法 図1
  • 特開-プログラム、情報処理装置、情報処理システム、情報処理方法 図2
  • 特開-プログラム、情報処理装置、情報処理システム、情報処理方法 図3
  • 特開-プログラム、情報処理装置、情報処理システム、情報処理方法 図4
  • 特開-プログラム、情報処理装置、情報処理システム、情報処理方法 図5
  • 特開-プログラム、情報処理装置、情報処理システム、情報処理方法 図6
  • 特開-プログラム、情報処理装置、情報処理システム、情報処理方法 図7
  • 特開-プログラム、情報処理装置、情報処理システム、情報処理方法 図8
  • 特開-プログラム、情報処理装置、情報処理システム、情報処理方法 図9
  • 特開-プログラム、情報処理装置、情報処理システム、情報処理方法 図10
  • 特開-プログラム、情報処理装置、情報処理システム、情報処理方法 図11
  • 特開-プログラム、情報処理装置、情報処理システム、情報処理方法 図12
  • 特開-プログラム、情報処理装置、情報処理システム、情報処理方法 図13
  • 特開-プログラム、情報処理装置、情報処理システム、情報処理方法 図14
  • 特開-プログラム、情報処理装置、情報処理システム、情報処理方法 図15
  • 特開-プログラム、情報処理装置、情報処理システム、情報処理方法 図16
  • 特開-プログラム、情報処理装置、情報処理システム、情報処理方法 図17
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023121890
(43)【公開日】2023-09-01
(54)【発明の名称】プログラム、情報処理装置、情報処理システム、情報処理方法
(51)【国際特許分類】
   G06T 5/00 20060101AFI20230825BHJP
   G06V 30/168 20220101ALI20230825BHJP
   G06V 30/164 20220101ALI20230825BHJP
   G06T 5/30 20060101ALI20230825BHJP
   G06T 7/00 20170101ALI20230825BHJP
   G06V 30/00 20220101ALI20230825BHJP
   G06V 30/20 20220101ALI20230825BHJP
   G08C 19/36 20060101ALI20230825BHJP
   G08C 15/00 20060101ALI20230825BHJP
【FI】
G06T5/00 705
G06K9/44
G06K9/40
G06T5/30
G06T7/00 300G
G06K9/00 S
G06K9/80
G08C19/36
G08C15/00 B
【審査請求】未請求
【請求項の数】22
【出願形態】OL
(21)【出願番号】P 2022025223
(22)【出願日】2022-02-22
(71)【出願人】
【識別番号】518075325
【氏名又は名称】株式会社ライトハウス
(74)【代理人】
【識別番号】110002815
【氏名又は名称】IPTech弁理士法人
(72)【発明者】
【氏名】大石 卓司
(72)【発明者】
【氏名】新藤 克貴
(72)【発明者】
【氏名】神戸 慎央
(72)【発明者】
【氏名】松野 洋介
【テーマコード(参考)】
2F073
5B029
5B057
5B064
5L096
【Fターム(参考)】
2F073AA01
2F073AA02
2F073AA06
2F073AA12
2F073AA25
2F073AA31
2F073AA33
2F073AB01
2F073AB04
2F073BB01
2F073BC02
2F073BC04
2F073CC01
2F073CC14
2F073CD05
2F073CD11
2F073DD02
2F073EE01
2F073EF07
2F073FF01
2F073FG01
2F073FG02
2F073FG09
2F073FG11
2F073GG01
2F073GG08
2F073GG09
5B029BB02
5B029BB17
5B029CC27
5B029DD04
5B029EE04
5B029EE05
5B029EE11
5B029EE13
5B029EE16
5B029EE17
5B057AA20
5B057BA02
5B057BA24
5B057CA01
5B057CA08
5B057CA12
5B057CA16
5B057CB02
5B057CB06
5B057CB12
5B057CB16
5B057CC01
5B057CC03
5B057CD03
5B057CD05
5B057CD12
5B057CD18
5B057CE02
5B057CE09
5B057CE12
5B057CF01
5B057CF02
5B057DA07
5B057DA08
5B057DB02
5B057DB05
5B057DB08
5B057DC19
5B057DC25
5B064AA03
5B064AB02
5B064AB13
5B064BA01
5B064CA07
5B064CA08
5B064CA09
5B064CA12
5B064CA13
5L096AA02
5L096AA06
5L096BA08
5L096CA02
5L096DA02
5L096EA03
5L096EA04
5L096EA05
5L096EA13
5L096EA14
5L096EA15
5L096EA16
5L096EA28
5L096EA35
5L096EA43
5L096FA14
5L096FA15
5L096FA36
5L096FA67
5L096FA69
5L096GA40
5L096GA51
5L096GA53
(57)【要約】
【課題】船舶などの高振動環境に設けられたメーターの指針値を取得しようとした場合に、メーターの指針値を十分な精度で取得することが困難である課題があった。
【解決手段】メーターを撮影した入力画像データを取得する画像取得ステップと、画像取得ステップにより取得した入力画像データに対して画像処理を適用することにより処理画像データを生成する画像処理ステップと、画像処理ステップにより生成された処理画像データに基づき、メーターの指針位置を取得する指針取得ステップと、を実行させ、メーターは円形メーターであり、画像処理ステップは、入力された画像データに対して円形メーターの回転中心から目盛りまでの距離の1より小さい所定倍以下の領域の画素値を所定値とすることにより生成画像データを生成する画像生成ステップを含む、プログラム。
【選択図】 図1
【特許請求の範囲】
【請求項1】
プロセッサと、記憶部とを備えるコンピュータに実行させるためのプログラムであって、
前記プログラムは、前記プロセッサに、
メーターを撮影した入力画像データを取得する画像取得ステップと、
前記画像取得ステップにより取得した前記入力画像データに対して画像処理を適用することにより処理画像データを生成する画像処理ステップと、
前記画像処理ステップにより生成された前記処理画像データに基づき、前記メーターの指針位置を取得する指針取得ステップと、
を実行させ、
前記メーターは円形メーターであり、
前記画像処理ステップは、入力された画像データに対して前記円形メーターの回転中心から目盛りまでの距離の1より小さい所定倍以下の領域の画素値を所定値とすることにより生成画像データを生成する画像生成ステップを含む、
プログラム。
【請求項2】
前記画像処理ステップは、入力された画像データに対して前記円形メーターの回転中心から目盛りまでの距離の0.5倍以下の領域の画素値を所定値とすることにより生成画像データを生成する画像生成ステップを含む、
請求項1記載のプログラム。
【請求項3】
前記画像処理ステップは、入力された画像データに対して前記円形メーターの回転中心から目盛りまでの距離の0.2倍以下の領域の画素値を所定値とすることにより生成画像データを生成する画像生成ステップを含む、
請求項1または2記載のプログラム。
【請求項4】
前記画像処理ステップは、入力された画像データに対してモルフォロジー処理を適用することにより生成画像データを生成する画像生成ステップを含む、
請求項1から3のいずれか記載のプログラム。
【請求項5】
プロセッサと、記憶部とを備えるコンピュータに実行させるためのプログラムであって、
前記プログラムは、前記プロセッサに、
メーターを撮影した入力画像データを取得する画像取得ステップと、
前記画像取得ステップにより取得した前記入力画像データに対して画像処理を適用することにより処理画像データを生成する画像処理ステップと、
前記画像処理ステップにより生成された前記処理画像データに基づき、前記メーターの指針位置を取得する指針取得ステップと、
を実行させ、
前記画像処理ステップは、入力された画像データに対してモルフォロジー処理を適用することにより生成画像データを生成する画像生成ステップを含む、
プログラム。
【請求項6】
前記画像生成ステップは、前記メーターの指針方向にモルフォロジー処理を適用するステップである、
請求項5記載のプログラム。
【請求項7】
前記画像生成ステップは、
前記入力された画像データに対して、二値化処理を適用するステップと、
前記二値化処理において、画像データに含まれる第1画素値の画素数が、第2画素値の画素数よりも少ない場合において、第1画素値に対するオープニング処理を行うモルフォロジー処理を適用するステップと、
を含む、
請求項4から6のいずれか記載のプログラム。
【請求項8】
前記メーターは、円形メーターである、
請求項5から7のいずれか記載のプログラム。
【請求項9】
前記画像生成ステップは、前記メーターの指針の回転中心から外側に向かう方向にモルフォロジー処理を適用するステップである、
請求項8記載のプログラム。
【請求項10】
前記プログラムは、前記プロセッサに、
前記メーターの表示盤上に設けられた目盛上の位置情報である第2位置情報を取得するステップ、
を実行させ、
前記画像生成ステップは、前記メーターの指針の回転中心から第2位置情報までの距離の半分以下の長さの画素数に基づくモルフォロジー処理を適用するステップである、
請求項9記載のプログラム。
【請求項11】
前記画像生成ステップは、入力された画像データに対して前記メーターの指針の回転中心を中心とした極座標変換を適用するステップを含む、
請求項8から10のいずれか記載のプログラム。
【請求項12】
前記画像生成ステップは、入力された画像データに対して二値化処理を適用するステップを含む、
請求項8から11のいずれか記載のプログラム。
【請求項13】
前記プログラムは、前記プロセッサに、
入力された画像データに対して補正処理を適用することにより補正画像データを生成する画像補正ステップと、
を実行させ、
前記画像生成ステップは、前記画像補正ステップにより生成された補正画像データに対してモルフォロジー処理を適用することにより生成画像データを生成するステップである、
請求項1から12のいずれか記載のプログラム。
【請求項14】
前記プログラムは、前記プロセッサに、
入力された画像データに含まれる前記メーターの設置面に設けられた矩形形状の頂点の位置情報である第1位置情報を特定する第1位置特定ステップと、
を実行させ、
前記画像補正ステップは、第1位置特定ステップにおいて入力された前記画像データに、第1位置情報に基づき、射影変換を適用することにより第1補正画像データを生成するステップを含む、
請求項13記載のプログラム。
【請求項15】
前記メーターは、円形メーターであり、
前記プログラムは、前記プロセッサに、
前記画像補正ステップにより生成された第1補正画像データに含まれる前記メーターの指針の回転中心を中心とした円上の位置情報である第2位置情報を取得する第2位置特定ステップと、
を実行させ、
前記画像補正ステップは、第2位置情報に基づき、前記画像補正ステップにより生成された第1補正画像データにアスペクト補正処理を適用することにより前記補正画像データを生成するステップを含む、
請求項13または14記載のプログラム。
【請求項16】
第2位置特定ステップは、前記メーターの表示盤上に設けられた目盛上の位置情報である第2位置情報を取得するステップであり、
前記プログラムは、前記プロセッサに、
第2位置特定ステップにより取得した第2位置情報のそれぞれに対応付けられた目盛りの値を取得する目盛値取得ステップと、
を実行させる、
請求項15記載のプログラム。
【請求項17】
前記プログラムは、前記プロセッサに、
前記指針取得ステップにより取得した前記指針位置、および、前記目盛値取得ステップにより取得した第2位置情報のそれぞれに対応付けられた前記目盛りの値に基づき、前記メーターの指針値を算定する指針値算定ステップと、
を実行させる、
請求項16記載のプログラム。
【請求項18】
前記プログラムは、前記プロセッサに、
入力された画像データに含まれる前記メーターの表示盤上に設けられた目盛上の2点以上の位置情報と、前記位置情報のそれぞれに対応付けられた目盛りの値を取得する目盛値取得ステップと、
前記指針取得ステップにより取得した前記指針位置、および、前記目盛値取得ステップにより取得した前記位置情報のそれぞれに対応付けられた前記目盛りの値に基づき、前記メーターの指針値を算定する指針値算定ステップと、
を実行させる、
請求項1から17のいずれか記載のプログラム。
【請求項19】
前記指針取得ステップは、船舶などの高振動環境下に設けられたメータの指針位置を取得するステップである、
請求項1から18のいずれか記載のプログラム。
【請求項20】
プロセッサと、記憶部とを備える情報処理装置であって、
前記プロセッサに、請求項1から19のいずれか記載のプログラムを実行させる、
情報処理装置。
【請求項21】
プロセッサと、記憶部とを備える情報処理装置を含む情報処理システムであって、
前記プロセッサに、請求項1から19のいずれか記載のプログラムを実行させる、
を実行させる情報処理システム。
【請求項22】
プロセッサと、記憶部とを備えるコンピュータにより実行される情報処理方法であって、
前記プロセッサに、請求項1から19のいずれか記載のプログラムを実行させる、
情報処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、プログラム、情報処理装置、情報処理システム、情報処理方法に関する。
【背景技術】
【0002】
円盤型針式メーターの指針値を、当該円盤型針式メーターをカメラにより撮影した画像に基づき取得する技術が知られている。
特許文献1には、丸型計器において指示された数値の読み取り精度を向上できる、読取システムが開示されている。
特許文献2には、簡単な処理でノイズに強く高精度にメーターの読み取りを行うことが可能なメーター読取装置が開示されている。
特許文献3には、円盤型針式メーターの映像を撮像して指針値を自動検針する装置において、画像処理部におけるマッチング処理に要する処理時間を短縮するとともに検針の精度を向上できる自動検針装置が開示されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2019-192168号公報
【特許文献2】特開2017-126187号公報
【特許文献3】特開2002-288777号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
船舶などの高振動環境に設けられたメーターの指針値を取得しようとした場合に、カメラにより撮影された画像データが大きくブレてしまう。特にメーターの盤面上に文字、数値などが大きく描かれている場合などには、撮影された画像データからメーターの指針値を十分な精度で取得することが困難である課題があった。
そこで、本開示は、上記課題を解決すべくなされたものであって、その目的は、船舶などの高振動環境に設けられたメーターの指針値を高精度に取得する技術を提供することである。
【課題を解決するための手段】
【0005】
プロセッサと、記憶部とを備えるコンピュータに実行させるためのプログラムであって、プログラムは、プロセッサに、メーターを撮影した入力画像データを取得する画像取得ステップと、画像取得ステップにより取得した入力画像データに対して画像処理を適用することにより処理画像データを生成する画像処理ステップと、画像処理ステップにより生成された処理画像データに基づき、メーターの指針位置を取得する指針取得ステップと、を実行させ、メーターは円形メーターであり、画像処理ステップは、入力された画像データに対して円形メーターの回転中心から目盛りまでの距離の1より小さい所定倍以下の領域の画素値を所定値とすることにより生成画像データを生成する画像生成ステップを含む、プログラム。
【発明の効果】
【0006】
本開示によれば、船舶などの高振動環境に設けられたメーターの指針値を高精度に取得することができる。
【図面の簡単な説明】
【0007】
図1】情報処理システム1の全体の構成を示す図である。
図2】サーバ10の機能構成を示すブロック図である。
図3】ユーザ端末20の機能構成を示すブロック図である。
図4】撮影端末30の機能構成を示すブロック図である。
図5】ユーザテーブル1012のデータ構造を示す図である。
図6】メーターテーブル1013のデータ構造を示す図である。
図7】指針値算定処理の動作を示すフローチャートである。
図8】指針値算定処理の動作を示す画面例である。
図9】指針値算定処理の射影変換処理の動作を示す画面例である。
図10】指針値算定処理のアスペクト補正の動作を示す画面例である。
図11】指針値算定処理の二値化処理の動作を示す画面例である。
図12】指針値算定処理の極座標変換の動作を示す画面例である。
図13】指針値算定処理のモルフォロジー処理の動作を示す画面例である。
図14】リニアメーターを示す図である。
図15】バーメーターを示す図である。
図16】指針値算定処理による指針値読み取りの実験結果を示す図である。
図17】コンピュータ90の基本的なハードウェア構成を示すブロック図である。
【発明を実施するための形態】
【0008】
以下、本開示の実施形態について図面を参照して説明する。実施形態を説明する全図において、共通の構成要素には同一の符号を付し、繰り返しの説明を省略する。なお、以下の実施形態は、特許請求の範囲に記載された本開示の内容を不当に限定するものではない。また、実施形態に示される構成要素のすべてが、本開示の必須の構成要素であるとは限らない。また、各図は模式図であり、必ずしも厳密に図示されたものではない。
【0009】
<システム1の構成>
本開示における情報処理システム1は、メーターにおいて指示された数値を読み取る情報処理システムである。
システム1は、ネットワークNを介して接続された、サーバ10、ユーザ端末20、撮影端末30の情報処理装置を備える。
図1は、情報処理システム1の全体の構成を示す図である。
図2は、サーバ10の機能構成を示すブロック図である。
図3は、ユーザ端末20の機能構成を示すブロック図である。
図4は、撮影端末30の機能構成を示すブロック図である。
【0010】
各情報処理装置は演算装置と記憶装置とを備えたコンピュータにより構成されている。コンピュータの基本ハードウェア構成および、当該ハードウェア構成により実現されるコンピュータの基本機能構成は後述する。サーバ10、ユーザ端末20、撮影端末30のそれぞれについて、後述するコンピュータの基本ハードウェア構成およびコンピュータの基本機能構成と重複する説明は省略する。
【0011】
<サーバ10の構成>
サーバ10は、メーターにおいて指示された数値を読み取るサービスを提供する情報処理装置である。
サーバ10は、記憶部101、制御部104を備える。
【0012】
<サーバ10の記憶部101の構成>
サーバ10の記憶部101は、アプリケーションプログラム1011、ユーザテーブル1012、メーターテーブル1013を備える。
【0013】
アプリケーションプログラム1011は、サーバ10の制御部104を各機能ユニットとして機能させるためのプログラムである。
アプリケーションプログラム1011は、ウェブブラウザアプリケーションなどのアプリケーションを含む。
【0014】
ユーザテーブル1012は、サービスを利用する会員ユーザ(以下、ユーザ)の情報を記憶し管理するテーブルである。ユーザは、サービスの利用登録を行うことで、当該ユーザの情報がユーザテーブル1012の新しいレコードに記憶される。これにより、ユーザは本開示にかかるサービスを利用できるようになる。
ユーザテーブル1012は、ユーザIDを主キーとして、ユーザID、ユーザ名のカラムを有するテーブルである。
図5は、ユーザテーブル1012のデータ構造を示す図である。
【0015】
ユーザIDは、ユーザを識別するためのユーザ識別情報を記憶する項目である。ユーザ識別情報は、ユーザごとにユニークな値が設定されている項目である。
ユーザ名は、ユーザの氏名を記憶する項目である。ユーザ名は、氏名ではなく、ニックネームなど任意の文字列を設定しても良い。
【0016】
メーターテーブル1013は、メーターに関する情報(メーター情報)を記憶し管理するためのテーブルである。
メーターテーブル1013は、画像IDを主キーとして、画像ID、端末ID、画像データ、第1位置データ、第2位置データ、目盛位置データ、補正画像データ、生成画像データ、指針位置、指針値のカラムを有するテーブルである。
図6は、メーターテーブル1013のデータ構造を示す図である。
【0017】
画像IDは、画像を識別するための画像識別情報を記憶する項目である。画像識別情報は、画像ごとにユニークな値が設定されている項目である。
端末IDは、撮影データが撮影されたカメラを備える撮影端末の端末IDを記憶する項目である。
画像データは、カメラによる撮影されたメーターの画像データを記憶する項目である。他の場所に配置された画像データファイルに対する参照情報(パス)を記憶するものとしても良い。画像データのフォーマットは、jpeg、png、bmp、tiff、gif、eps、svgなど任意のデータフォーマットで良い。
また、画像データは静止画像データである必要はなく、動画像データであってもよい。また、動画像データの所定のフレームの画像データ、複数のフレームの画像データを平均した画像データなどを記憶する構成としても良い。
第1位置データは、メーターの画像データ中の4点の位置情報(画素位置)を記憶する項目である。画素位置は、通常画像データの左上の点を原点(0,0)として、右方向への画素の位置X、下方向への画素の位置Yにより(X,Y)として表現される。第1位置データは、メーターの画像データに含まれる4点の位置情報を含む。具体的に、第1位置データは、メーターの画像データに含まれる、当該メーターに近接する矩形形状の4つの頂点の位置情報を含む。
例えば、第1位置データは、メーターの画像データに含まれる、当該メーターの矩形形状の枠の4つの頂点の位置情報であっても良い。
例えば、第1位置データは、メーターの画像データに含まれる、当該メーターが設置された矩形形状の板の4つの頂点の位置情報であっても良い。
なお、第1位置データは、メーターに近接する矩形形状を特定する位置情報であれば任意の情報であっても構わない。例えば、第1位置データは、4点未満の頂点の位置情報と矩形を構成する辺の位置情報の組み合わせにより矩形形状を特定する位置情報を含む。
第2位置データは、メーターの画像データ中の5点の位置情報(画素位置)を記憶する項目である。第2位置データは、メーターの画像データに含まれる5点の位置情報を含む。具体的に、第2位置データは、メーターの画像データに含まれる、当該メーターの指針回転中心を中心とした円上の5点の位置情報を含む。
例えば、第2位置データは、メーターの画像データに含まれる、当該メーターの円形状の外縁の5点の位置情報であっても良い。
例えば、第2位置データは、メーターの画像データに含まれる、当該メーターの表示盤の外縁の5点の位置情報であっても良い。
例えば、第2位置データは、メーターの画像データに含まれる、当該メーターの表示盤上に設けられた目盛上の5点の位置情報であっても良い。
なお、第2位置データは、メーターに近接する当該メーターの指針回転中心を中心とした円を特定する位置情報であれば任意の情報であっても構わない。例えば、第2位置データは、当該メーターの指針回転中心を中心とした円上の5点未満の位置情報と、楕円の長軸、短軸を指定する情報とを組み合わせた情報であっても構わない。
メーターが円形メーターではない場合は、第2位置データは省略しても良い。
目盛位置データは、メーターの画像データ中の少なくとも2点の位置情報(画素位置)および、2点の位置それぞれの目盛りの値を記憶する項目である。なお、第2位置データが、メーターの画像データに含まれる、当該メーターの表示盤上に設けられた目盛上の位置情報である場合に、当該位置情報と関連付けて目盛位置データを第2位置データに含んで記憶する構成としても構わない。
補正画像データは、画像データに対して第1位置データ、第2位置データなどに基づき補正された画像データを格納する項目である。つまり、補正画像データは、メーターに対するカメラの傾きを補正することにより得られる、メーター正面から撮影したメーターの画像データである。
生成画像データは、補正画像データに対して、二値化処理、極座標変換などを適用した画像データを格納する項目である。つまり、生成画像データは、指針位置検出処理の実行対象となる画像データである。
指針位置は、生成画像データ中の指針の位置情報(画素位置)を記憶する項目である。
指針値は、カメラによる撮影対象のメーターの指針値を記憶する項目である。
【0018】
<サーバ10の制御部104の構成>
サーバ10の制御部104は、ユーザ登録制御部1041、指針値算定部1042を備える。制御部104は、記憶部101に記憶されたアプリケーションプログラム1011を実行することにより、各機能ユニットが実現される。
【0019】
ユーザ登録制御部1041は、本開示に係るサービスの利用を希望するユーザの情報をユーザテーブル1012に記憶する処理を行う。
ユーザテーブル1012に記憶される情報は、ユーザが任意の情報処理端末からサービス提供者が運営するウェブページなどを開き、所定の入力フォームに情報を入力しサーバ10へ送信する。ユーザ登録制御部1041は、受信した情報をユーザテーブル1012の新しいレコードに記憶し、ユーザ登録が完了する。これにより、ユーザテーブル1012に記憶されたユーザはサービスを利用することができるようになる。
ユーザ登録制御部1041によるユーザ情報のユーザテーブル1012への登録に先立ち、サービス提供者は所定の審査を行いユーザによるサービス利用可否を制限しても良い。
ユーザIDは、ユーザを識別できる任意の文字列または数字で良く、ユーザが希望する任意の文字列または数字、もしくはユーザ登録制御部1041が自動的に任意の文字列または数字を設定しても良い。
【0020】
指針値算定部1042は、指針値算定処理を実行する。詳細は後述する。
【0021】
<ユーザ端末20の構成>
ユーザ端末20は、サービスを利用するユーザが操作する情報処理装置である。ユーザ端末20は、例えば、スマートフォン、タブレット等の携帯端末でもよいし、据え置き型のPC(Personal Computer)、ラップトップPCであってもよい。また、HMD(Head Mount Display)、腕時計型端末等のウェアラブル端末であってもよい。
ユーザ端末20は、記憶部201、制御部204、入力装置206、出力装置208を備える。
【0022】
<ユーザ端末20の記憶部201の構成>
ユーザ端末20の記憶部201は、ユーザID2011、アプリケーションプログラム2012を備える。
【0023】
ユーザID2011は、ユーザを識別するためのユーザ識別情報を記憶する項目である。
【0024】
アプリケーションプログラム2012は、記憶部201に予め記憶されていても良いし、通信IFを介してサービス提供者が運営するウェブサーバ等からダウンロードする構成としても良い。
アプリケーションプログラム2012は、ウェブブラウザアプリケーションなどのアプリケーションを含む。
アプリケーションプログラム2012は、ユーザ端末20に記憶されているウェブブラウザアプリケーション上で実行されるJavaScript(登録商標)などのインタープリター型プログラミング言語を含む。
【0025】
<ユーザ端末20の制御部204の構成>
ユーザ端末20の制御部204は、入力制御部2041、出力制御部2042を備える。制御部204は、記憶部201に記憶されたユーザID2011を実行することにより、各機能ユニットが実現される。
【0026】
<ユーザ端末20の入力装置206の構成>
ユーザ端末20の入力装置206は、カメラ2061、マイク2062、位置情報センサ2063、モーションセンサ2064、タッチデバイス2065を備える。
【0027】
<ユーザ端末20の出力装置208の構成>
ユーザ端末20の出力装置208は、ディスプレイ2081、スピーカ2082、出力装置12083、出力装置22084を備える。
【0028】
<撮影端末30の構成>
撮影端末30は、数値の読み取り対象となるメーターを撮影する情報処理装置である。撮影端末30は、例えば、スマートフォン、タブレット等の携帯端末でもよいし、据え置き型のPC(Personal Computer)、ラップトップPCであってもよい。また、HMD(Head Mount Display)、腕時計型端末等のウェアラブル端末であってもよい。
撮影端末30は、記憶部301、制御部304、入力装置306、出力装置308を備える。
【0029】
<撮影端末30の記憶部301の構成>
撮影端末30の記憶部301は、端末ID3011、アプリケーションプログラム3012を備える。
【0030】
端末ID3011は、端末を識別するための端末識別情報を記憶する項目である。
【0031】
アプリケーションプログラム3012は、記憶部301に予め記憶されていても良いし、通信IFを介してサービス提供者が運営するウェブサーバ等からダウンロードする構成としても良い。
アプリケーションプログラム3012は、ウェブブラウザアプリケーションなどのアプリケーションを含む。
アプリケーションプログラム3012は、撮影端末30に記憶されているウェブブラウザアプリケーション上で実行されるJavaScript(登録商標)などのインタープリター型プログラミング言語を含む。
【0032】
<撮影端末30の制御部304の構成>
撮影端末30の制御部304は、入力制御部3041、出力制御部3042を備える。制御部304は、記憶部301に記憶された端末ID3011を実行することにより、各機能ユニットが実現される。
【0033】
<撮影端末30の入力装置306の構成>
撮影端末30の入力装置306は、カメラ3061、マイク3062、位置情報センサ3063、モーションセンサ3064、タッチデバイス3065を備える。
【0034】
カメラ3061は読み取り対象となるメーターを撮影可能な位置に設置されている。
【0035】
<撮影端末30の出力装置308の構成>
撮影端末30の出力装置308は、ディスプレイ3081、スピーカ3082、出力装置13083、出力装置23084を備える。
【0036】
<情報処理システム1の動作>
以下、情報処理システム1の各処理について説明する。
図7は、指針値算定処理の動作を示すフローチャートである。
図8は、指針値算定処理の動作を示す画面例である。
図9は、指針値算定処理の射影変換処理の動作を示す画面例である。
図10は、指針値算定処理のアスペクト補正の動作を示す画面例である。
図11は、指針値算定処理の二値化処理の動作を示す画面例である。
図12は、指針値算定処理の極座標変換の動作を示す画面例である。
図13は、指針値算定処理のモルフォロジー処理の動作を示す画面例である。
図14は、リニアメーターを示す図である。
図15は、バーメーターを示す図である。
【0037】
<指針値算定処理>
指針値算定処理は、メーターをカメラにより撮影することにより得られる画像データに基づき、メーターの指針値を算定する処理である。本開示においては、算定対象となるメーターとして円形メーター(丸型計器、円盤型針式メーターなど)を対象として指針値算定処理を説明する。なお、後述するように本開示における指針値算定処理は、円形メーター以外のリニアメーター、バーメーターなどの線形計器などの指針値を算定することにも適用することが可能である。本開示における円形メーターは、船舶などの高振動環境下に設けられているものとする。
【0038】
<指針値算定処理の概要>
指針値算定処理は、円形メーターの画像データを取得し、画像データに対して画像処理を適用することにより処理画像データを生成し、生成された処理画像データに基づきメーターの指針位置を取得し、画像データに含まれるメーターの表示盤上に設けられた目盛上の2点以上の位置情報と、2点以上の位置情報のそれぞれに対応付けられた目盛の値を取得し、取得した指針位置、および、2点以上の位置情報のそれぞれに対応付けられた目盛の値に基づき、メーターの指針値を算定する一連の処理である。
画像処理は、画像補正処理および画像生成処理を含む。また、画像処理は、他に明度補正、コントラスト補正などの処理を適宜含んでも構わない。
画像補正処理は、円形メーターを撮影するカメラが、円形メーター盤面に対して傾いて設置されることにより生じる、円形メーター画像の歪みを補正し、補正画像データを生成する処理である。画像補正処理は、画像データに含まれる円形メーター設置面の4点を指定し、画像データに対して射影変換を適用する処理、円形メーター盤面上の5点を指定し、画像データに対してアスペクト補正を適用する処理を含む。また、画像補正処理は、他に明度補正、コントラスト補正などの処理を適宜含んでも構わない。
画像生成処理は、画像補正処理により補正された画像データに対して、指針位置検出処理を実行するための前処理を実行し生成画像データを生成する処理である。画像生成処理は、二値化処理、極座標変換、ゼロ埋処理、モルフォロジー処理を含む。また、画像生成処理は、他に明度補正、コントラスト補正などの処理を適宜含んでも構わない。
なお、画像処理、画像補正処理、画像生成処理に含まれる各処理は、例えば、OpenCV、Pillow、NumPyなどの画像処理ライブラリを適用することで実現することができる。
処理画像データは、生成画像データであっても良いし、生成画像データに対して明度補正、コントラスト補正などの任意の画像処理を適用した画像データを含む。また、画像生成処理を省略した場合は、処理画像データは、補正画像データであっても良いし、補正画像データに対して明度補正、コントラスト補正などの任意の画像処理を適用した画像データを含む。
【0039】
<指針値算定処理の詳細>
ステップS101において、サーバ10は、メーターを撮影した入力画像データを取得する。
具体的に、撮影端末30は、端末ID3011、撮影端末30のカメラ3061により撮影された円形メーターの画像データを、サーバ10へ送信する。サーバ10の指針値算定部1042は、撮影端末30から画像データを受信し取得する。
サーバ10の指針値算定部1042は、受信した端末ID3011、画像データを、それぞれ、メーターテーブル1013の新たなレコードの端末ID、画像データの項目に記憶する。
【0040】
図8は、撮影端末30のカメラ3061により撮影された円形メーターの画像データ60を示す図である。画像データ60に含まれる円形メーター600は、円形メーター盤面に対して撮影端末30のカメラ3061が傾いて設置されることにより台形状に歪んでいる。
【0041】
ステップS102において、サーバ10の指針値算定部1042は、入力された画像データに含まれるメーターの設置面に設けられた矩形形状の頂点の位置情報である第1位置情報を特定する。なお、ステップS102は省略しても良い。
【0042】
具体的に、ユーザは、ユーザ端末20の入力装置206などを操作することにより、所定のアプリケーションプログラム2012を実行することによりサーバへアクセスする。
ユーザーは、ユーザ端末20の入力装置206などを操作することにより端末IDを入力し、サーバ10へリクエストを送信する。なお、複数の端末IDが、それぞれ、複数の円形メーターごとに関連づけられており、ユーザは、ユーザ端末20の入力装置206などを操作することにより、所望の円形メーターを選択することにより端末IDが特定される構成としても良い。
サーバ10の指針値算定部1042は、受信したリクエストに含まれる端末IDに基づき、メーターテーブル1013の端末IDの項目を検索し、画像データを取得し、ユーザ端末20へ送信する。なお、端末IDに基づき、複数の画像データが特定される場合には、ユーザは、ユーザ端末20の入力装置206などを操作することにより、所望の画像IDを選択することにより画像データを選択する。
その他、ユーザは、自身が選択可能な円形メータのうち、指針値算定処理が行われていない撮影画像を選択することにより、画像IDを選択する構成としても構わない。
【0043】
ユーザ端末20のディスプレイ2081は、受信した画像データを表示する。ユーザは、ユーザ端末20の入力装置206などを操作することにより、画像データに含まれる円形メーターの設置面に設けられた矩形形状の頂点の位置情報である第1位置情報を指定し特定する。
例えば、ユーザは、ユーザ端末20のタッチデバイス2065などにより、ユーザ端末20のディスプレイ2081に表示された画像データ60に含まれる円形メーターの設置面に設けられた矩形形状の枠の4つの頂点601、602、603、604の頂点をタッチすることにより、第1位置情報を指定し特定する。
【0044】
ユーザ端末20の制御部204は、ユーザにより特定された第1位置情報をサーバ10へ送信する。サーバ10は、受信した第1位置情報を、メーターテーブル1013の指針値算定処理の対象レコードの第1位置データの項目に記憶する。
【0045】
ステップS103において、サーバ10の指針値算定部1042は、入力された画像データに、第1位置情報に基づき、射影変換を適用することにより第1補正画像データを生成する。なお、サーバ10の指針値算定部1042は、射影変換を省略しても良い。
具体的に、サーバ10の指針値算定部1042は、ユーザ端末20から取得した第1位置情報に基づき、第1位置情報に含まれる4点により特定される四角形が長方形となるように射影変換を適用し第1補正画像データを生成する。例えば、サーバ10の指針値算定部1042は、第1位置情報に含まれる4点により特定される四角形を、当該四角形に外接する長方形となるように射影変換を適用する。これにより、カメラと円形メーターとの傾きに起因する画像歪みを補正することができる。なお、四角形に外接する長方形の各辺は、画像データの縦方向、横方向に沿った長方形としても良い。
【0046】
サーバ10の指針値算定部1042は、射影変換を適用した画像データに対して、第1位置情報に含まれる4点によりトリミング処理を適用する。具体的には、射影変換後の第1位置情報に含まれる領域以外の画像データを削除し、画像データを第1位置情報に含まれる4点により特定される四角形に限定する。これにより、メーター以外の画像データを除外することができる。つまり、サーバ10の指針値算定部1042は、第1補正画像データを、長方形によりトリミングする。
【0047】
サーバ10の指針値算定部1042は、射影変換を適用した第1補正画像データを、メーターテーブル1013の指針値算定処理の対象レコードの補正画像データの項目に記憶する。また、サーバ10の指針値算定部1042は、第1補正画像データをユーザ端末20へ送信する。ユーザ端末20のディスプレイ2081は、サーバ10から受信した第1補正画像データを表示する。
【0048】
図9は、ユーザ端末20のディスプレイ2081に表示された第1補正画像データ61を示す図である。第1補正画像データ61に含まれる円形メーター610は、楕円形状に歪んでいる。
【0049】
ステップS104において、サーバ10の指針値算定部1042は、生成された第1補正画像データに含まれるメーターの指針の回転中心を中心とした円上の位置情報である第2位置情報を取得する。サーバ10の指針値算定部1042は、メーターの表示盤上に設けられた目盛上の位置情報である第2位置情報を取得しても良い。なお、ステップS104は、メーターが円形メーター以外のリニアメーター、バーメーターなどの線形計器などの場合には、省略しても良い。図14にリニアメーターの一例を図示する。図15にバーメーターの一例を図示する。
具体的に、ユーザは、ユーザ端末20の入力装置206などを操作することにより、第1補正画像データに含まれる円形メーターの指針回転中心を中心とした円上の5点の位置情報である第2位置情報を指定し特定する。
例えば、ユーザは、ユーザ端末20のタッチデバイス2065などにより、ユーザ端末20のディスプレイ2081に表示された第1補正画像データ70に含まれる円形メーターの表示盤上に設けられた目盛上の5点の位置611、612、613、614、615をタッチすることにより、第2位置情報を指定し特定する。
【0050】
ユーザ端末20の制御部204は、ユーザにより特定された第2位置情報をサーバ10へ送信する。サーバ10は、受信した第2位置情報を、メーターテーブル1013の指針値算定処理の対象レコードの第2位置データの項目に記憶する。
【0051】
ステップS105において、サーバ10の指針値算定部1042は、入力された画像データに含まれるメーターの表示盤上に設けられた目盛上の2点以上の位置情報と、位置情報のそれぞれに対応付けられた目盛の値を取得する。なお、サーバ10の指針値算定部1042は、取得した第2位置情報のそれぞれに対応付けられた目盛の値を取得しても良い。
【0052】
具体的に、ユーザは、ユーザ端末20の入力装置206などを操作することにより、円形メーターの表示盤上の目盛から少なくとも2点を選択し、当該2点の目盛の値を入力する。なお、選択する2点は第2位置情報である必要はない。なお、ユーザは、ユーザ端末20の入力装置206などを操作することにより、5点の第2位置情報から少なくとも2点を選択し、当該2点の目盛の値を入力する構成としても良い。
例えば、ユーザは、目盛上の5点の位置711、712、713、714、715に対して、それぞれ、0、300、500、750、1000の目盛の値を入力する。
これにより、画像補正処理に必要な第2位置の情報と、指針値算定に必要な位置情報のそれぞれに対応付けられた目盛の値とを併せて取得することにより、ユーザの入力作業負荷を減らすことができる。
ユーザ端末20の制御部204は、目盛上の2点以上の位置情報と、位置情報のそれぞれに対応付けられた目盛の値からなる目盛位置データをサーバ10へ送信する。サーバ10は、受信した目盛位置データを、メーターテーブル1013の指針値算定処理の対象レコードの目盛位置データの項目に記憶する。
【0053】
また、サーバ10の指針値算定部1042は、ステップS104において取得した第2位置データに基づき、第1補正画像データにおいて、第2位置情報の近傍の数値に関する文字列を、文字認識技術を用いて特定し、第2位置情報のそれぞれに対応付けられた目盛の値を特定する構成としても良い。
具体的に、サーバ10の指針値算定部1042は、第1補正画像データに文字認識技術を適用することにより、第1補正画像データに含まれる文字列と、それぞれの文字列の位置を特定する。サーバ10の指針値算定部1042は、第2位置情報のそれぞれの位置情報と、文字列の位置との距離を算定し、最も近い距離に位置する文字列を、当該位置情報に対応付けられた目盛の値として割り当てる。これにより、ユーザによる目盛の値の入力作業負荷および入力ミスを減らすことができる。
【0054】
ステップS106において、サーバ10の指針値算定部1042は、第2位置情報に基づき、第1補正画像データにアスペクト補正処理を適用することにより補正画像データを生成する。なお、サーバ10の指針値算定部1042は、アスペクト補正処理を省略しても良い。
【0055】
具体的に、サーバ10の指針値算定部1042は、第2位置情報に基づき、第2位置情報に含まれる5点により特定される楕円が正円となるようにアスペクト補正処理を適用し第2補正画像データを生成する。例えば、サーバ10の指針値算定部1042は、第2位置情報に含まれる5点により特定される楕円を、当該楕円の短軸を長軸に等しい正円となるようにアスペクト補正処理を適用する。
つまり、第1補正画像データを、楕円の短軸の伸びる方向に、長軸の長さと短軸の長さの比により特定される値に基づき拡大処理を適用する。なお、第1補正画像データに対して、楕円の短軸の伸びる方向が、画像データのx方向またはy方向に沿う方向となるように画像を回転させ、その後、楕円の短軸の伸びる方向(x方向またはy方向)に画像データを拡大させる処理を適用しても良い。なお、第1補正画像データを、楕円の短軸の伸びる方向に、長軸の長さと短軸の長さの比により特定される値に基づき縮小処理を適用しても良い。
【0056】
サーバ10の指針値算定部1042は、アスペクト補正処理を適用した第2補正画像データを、メーターテーブル1013の補正画像データの項目に記憶し更新する。また、サーバ10の指針値算定部1042は、第2補正画像データをユーザ端末20へ送信する。ユーザ端末20のディスプレイ2081は、サーバ10から受信した第2補正画像データを表示する。
【0057】
図10は、ユーザ端末20のディスプレイ2081に表示された第2補正画像データ62を示す図である。第2補正画像データ62に含まれる円形メーター620は、正円に補正されている。
【0058】
ステップS107において、サーバ10の指針値算定部1042は、入力された画像データに対して二値化処理を適用する。なお、サーバ10の指針値算定部1042は、二値化処理を省略しても良い。
具体的に、サーバ10の指針値算定部1042は、第2補正画像データに含まれるRGB(赤緑青)のそれぞれのチャンネルの画素値または、それぞれのチャンネルの画素値の和を取ることにより第2補正画像データをグレースケールに変換した後の画素値に対して、所定の閾値より大きい画素値を白(1)に、所定の閾値以下の画素値を黒(0)となるように画像処理を適用する。
本開示においては、第2補正画像データに含まれる青のチャンネルの画素値を対象として、二値化処理を実行するものとする。所定の閾値は、127などの画素値の中間値の他、盤面の色を画像認識により特定し当該盤面の色を閾値としても良い。これにより、盤面の色とそれ以外の色とを区別することができる。
また、二値化処理後の画像データに含まれる、画素値が1の画素数、画素値が0の画素数を集計し、画素値が1の画素数が、画素値が0の画素数よりも多い場合、または、画素値が1の画素数が、所定数よりも多い場合には、画素値が1の画素の画素値を0とし、画素値が0の画素の画素値を1とする反転処理を実行しても良い。メーターの種類によっては盤面が黒などの濃色であり、指針が白などの指針により構成されている場合があるためである。
【0059】
また、本開示においては画素値として白(1)、黒(0)となるように二値化する処理例を一例として開示しているが、盤面の色とそれ以外の色とを区別可能な画素値であれば、任意の二種類の画素値(第1の画素値、第2の画素値)に二値化する処理でも構わない。また、白の画素値は1ではなく、255など任意の値を割り当てることができる。黒の画素値についても同様である。
【0060】
サーバ10の指針値算定部1042は、二値化処理を適用した第2補正画像データを、メーターテーブル1013の指針値算定処理の対象レコードの生成画像データの項目に記憶する。
【0061】
図10は、第2補正画像データに対して二値化処理を適用した画像データ63を示す図である。
【0062】
ステップS108において、サーバ10の指針値算定部1042は、入力された画像データに対してメーターの指針の回転中心を中心とした極座標変換を適用する。なお、メーターが円形メーター以外のリニアメーター、バーメーターなどの線形計器などの場合には、極座標変換を省略しても良い。
具体的に、サーバ10の指針値算定部1042は、生成画像データに対して、アスペクト補正処理後の第2位置情報により特定される正円の中心位置を中心座標とした極座標変換を適用する。つまり、円形メーターの指針の回転中心を中心とした極座標変換を適用する。なお、ステップS106を省略する場合、サーバ10の指針値算定部1042は、第1補正画像データに対して、第2位置情報により特定される楕円の中心位置を中心座標とした極座標変換を適用しても良い。
極座標変換においては、中心座標から縦横いずれかの画像端までの距離のうち短い方までの距離を半径として極座標変換を行っても良いし、中心座標から少なくとも1の第2位置情報までの距離を半径として極座標変換を行っても良い。
【0063】
サーバ10の指針値算定部1042は、極座標変換を適用した生成画像データを、メーターテーブル1013の生成画像データの項目に記憶し更新する。
【0064】
図11は、第2補正画像データに対して二値化処理を適用後に、極座標変換を適用した画像データ64を示す図である。
【0065】
ステップS109において、サーバ10の指針値算定部1042は、ゼロ埋処理を実行する。
具体的に、サーバ10の指針値算定部1042は、画像データのうち円形メーターの回転中心方向(指針と反対方向)において画像データのうち半分以下の領域の画素値を0とする処理を行っても良い。なお、サーバ10の指針値算定部1042は、画像データのうち1より小さい所定倍以下の領域の画素値を0とする処理を行っても良い。なお、画素値は0以外の所定値としても良い。
具体的に、サーバ10の指針値算定部1042は、画像データのうち円形メーターの回転中心方向において画像データのうち、円形メーターの回転中心から目盛りまでの距離の半分以下の領域の画素値を0とする処理を行っても良い。なお、サーバ10の指針値算定部1042は、円形メーターの回転中心から目盛りまでの距離の1より小さい所定倍以下の領域の画素値を0とする処理を行っても良い。
例えば、画像データ64は、極座標変換を適用した後に、横方向(円形メーターの回転中心方向、図12において画像中央から左方向)において、画像データのうち半分以下の領域の画素値を0とする処理を実行しても良い。これにより、円形メーター中心部の回転軸近傍の画像の画素値を0とすることができる。なお、サーバ10の指針値算定部1042は、画像データのうち1より小さい所定倍以下の領域の画素値を0とする処理を実行しても良い。
なお、リニアメーター等の場合には指針の指示位置から目盛りまでの距離の半分以下の領域の画素値を0とする処理を行っても良い。なお、サーバ10の指針値算定部1042は、指針の指示位置から目盛りまでの距離の1より小さい所定倍以下の領域の画素値を0とする処理を行っても良い。
【0066】
ステップS110において、サーバ10の指針値算定部1042は、入力された画像データに対してモルフォロジー処理を適用することにより生成画像データを生成する。サーバ10の指針値算定部1042は、生成画像データに対してモルフォロジー処理を適用することにより生成画像データを生成する。具体的に、サーバ10の指針値算定部1042は、極座標変換が適用された画像データに対して、モルフォロジー処理を適用する。
【0067】
本開示における、モルフォロジー処理は、収縮処理、膨張処理、オープニング処理、クロージング処理を含む。
収縮処理は、二値化された画像データに対して、白色(画素値が1)が占める領域を収縮させる処理を含む。具体的に、画像データに対して(フィルタリング、2D convolutionに使われる)カーネルをスライドさせる処理を実行する。画像データ中の(白色(1)か黒色(0)のどちらかの値を持つ)画素は、カーネルの領域に含まれる画素の画素値が全て白色であれば白色となり、そうでなければ黒色として出力する。カーネルのサイズに依存して物体の境界付近の全画素が白色から黒色になり、消える。結果として白画素が占める領域が収縮する。
膨張処理は、二値化された画像データに対して、白色が占める領域を膨張させる処理を含む。カーネル内に画素値が白色の画素が一つでも含まれれば,出力画像の注目画素の画素値を白色にします。画像中の白色の領域を増やす。
オープニング処理は、収縮処理を実行した後に、膨張処理を実行する処理である。
クロージング処理は、膨張処理を実行した後に、収縮処理を実行する処理である。
【0068】
本開示においては、サーバ10の指針値算定部1042は、メーターの指針と交差する方向にモルフォロジー処理を適用する。具体的に、サーバ10の指針値算定部1042は、円形メーターの指針方向にモルフォロジー処理を適用する。つまり、サーバ10の指針値算定部1042は、生成画像データに対して、メーターの指針方向に収縮処理および膨張処理を含むモルフォロジー処理を適用する。具体的に、サーバ10の指針値算定部1042は、生成画像データに対して、メーターの指針方向に、モルフォロジー処理としてオープニング処理を適用する。なお、モルフォロジー処理における縮小処理および膨張処理の画素数は、画像データの指針方向のサイズの半分以下の個数とする。一般的に、円形メーターの針は表示盤の半径の半分よりも長いため、指針方向のサイズの半分以下の個数の画素数に基づくオープニング処理を適用することにより、より精度高く指針位置を検出することができる。
なお、本開示のような円形メーターの場合には、極座標変換後の画像データに対して、中心座標から外側に向かう方向に収縮処理および膨張処理を含むモルフォロジー処理を適用すれば良い。具体的に、中心座標から少なくとも1の第2位置情報までの距離の半分以下の画素数に基づく、オープニング処理を適用することが好適である。これにより、概ね指針の半分以下の長さのノイズ、指針ない余計なオブジェクトを画像データから除外することができる。
【0069】
サーバ10の指針値算定部1042は、モルフォロジー処理を適用した生成画像データを、メーターテーブル1013の生成画像データの項目に記憶し更新する。
【0070】
図12は、第2補正画像データに対して二値化処理を適用後に、極座標変換を適用し、画像データのうち円形メーターの回転中心方向(指針と反対方向)において画像データのうち半分以下の領域の画素値を0とし、円形メーターの指針方向(画像データの横方向)にオープニング処理を適用した生成画像データ65を示す図である。
【0071】
ステップS111において、サーバ10の指針値算定部1042は、処理画像データに基づき、メーターの指針位置を取得する。
サーバ10の指針値算定部1042は、撮影端末30のカメラ3061から取得した画像データに対して、ステップS101~S110までの画像処理を適用した処理画像データを取得し、当該処理画像データに基づきメーターの指針位置を検出し取得する。
【0072】
一例として、処理画像データが生成画像データである場合について説明する。
サーバ10の指針値算定部1042は、生成画像データ65に対してメーターの針方向である、画像の横方向に画素値を積分(積算)する。サーバ10の指針値算定部1042は、積分した画素値のうち画素値の最大値の画素位置(縦方向の位置)を、指針位置として検出する。
なお、二値化処理を適用された画像データに対しては、サーバ10の指針値算定部1042は、画像の横方向に白画素の数を積算し、積算した画素数のうち最も個数が多く最頻の画素位置(縦方向の位置)を、指針位置として検出しても良い。
具体的に、図6において、横方向に画素値を積分した場合の最大値の画素位置は、画像上端を原点としてy3となり、画素位置を指針位置として検出する。
【0073】
サーバ10の指針値算定部1042は、検出した指針位置を、メーターテーブル1013の指針値算定処理の対象レコードの指針位置の項目に記憶する。
【0074】
ステップS112において、サーバ10の指針値算定部1042は、取得した指針位置、および、取得した位置情報のそれぞれに対応付けられた目盛の値に基づき、メーターの指針値を算定する。例えば、サーバ10の指針値算定部1042は、取得した指針位置、および、取得した第2位置情報のそれぞれに対応付けられた目盛の値に基づき、メーターの指針値を算定しても良い。
具体的に、サーバ10の指針値算定部1042は、ステップS105において取得した、目盛上の2点以上の位置情報と、位置情報のそれぞれに対応付けられた目盛の値を取得する。このとき、サーバ10の指針値算定部1042は、ステップS105以降に実行された画像処理に基づき、目盛上の2点以上の位置情報の座標変換も実行する。本開示においては、第2位置情報と、第2位置情報のそれぞれに対応付けられた目盛の値を取得する。
図13に示す、生成画像データ65において、ステップS105において取得した2点の位置情報を651、652に示す。取得した2点の位置情報651、652は、それぞれ、画像上端を原点として縦方向の画素位置をy1、y2とする。また、2点の位置情報651、652はそれぞれ、v1、v2の目盛の値に関連付けられているとする。この場合、縦方向の画素位置(y)から、目盛の値(v)を算定する1次方程式をv=ay+b(a、bは定数)とする。2点の位置情報651、652の画素位置y1、y2、および、それぞれに対応する目盛の値v1、v2に基づき1次方程式を解くことにより、定数のa、bを特定することができる。なお、対数メーターの場合は、対数方程式を解けば良い。なお、ステップS105において、3点以上の位置情報および目盛の値を取得した場合には、線形回帰によりa、bを特定することができる。3点以上の位置情報および目盛の値を用いることにより、より高い精度でa、bを特定することができるため好適である。なお、対数メーターの場合は、同様に、対数回帰を解けば良い。
サーバ10の指針値算定部1042は、ステップS111において取得した指針位置(y3)を1次方程式に代入することにより、指針位置に対応する目盛の値を算定することができる。
【0075】
サーバ10の指針値算定部1042は、算出した目盛の値を、メーターテーブル1013の指針値算定処理の対象レコードの指針値の項目に記憶する。
【0076】
<指針位置検出処理(変形例1)>
ステップS111において、サーバ10の指針値算定部1042は、生成画像データ65を入力画像として、指針位置を出力する深層学習モデルなどを用いて、指針位置を検出する構成としても良い。この場合、画像生成処理から極座標変換(ステップS108)を除いても構わない。また、画像補正処理から射影変換(ステップS103)、アスペクト補正(ステップS106)などを除いても構わない。
この場合も、画像生成処理にモルフォロジー処理(ステップS110)を含めることにより、船舶などの高振動環境に設けられたメーターの指針位置をより高精度に取得することができる。
【0077】
<指針値算定処理(変形例2)>
本開示における指針値算定処理を円形メーター以外のリニアメーター、バーメーターなどの線形計器(リニアメーター)などの指針値算定に用いることが可能である。
図9は、リニアメータを示す図である。図10は、バーメータを示す図である。
リニアメーターの指針値算定処理においては、アスペクト補正(ステップS104、ステップS106)、極座標変換(ステップS108)を省略して指針値算定処理を実行すれば良い。
【0078】
<指針値算定処理(変形例3)>
メーターによっては、角度または距離区間ごとに、異なる、目盛の値の範囲を示すメーターがある。例えば、円形メーターにおいて0~30度までの区間は、対数スケールであり、30~120度までは線形スケールである場合などである。そのような場合においては、指針値算定処理(ステップS112)において、指針位置の検出範囲に応じて、目盛り値を算出するための異なる方程式を適用することにより指針値を算定することができる。
具体的には、0~30度までの区間は、指針位置を入力値として、対数方程式、対数回帰に基づき目盛り値を算定する構成とし、30~120度までは、1次方程式、線形回帰に基づき目盛り値を算定する構成とすれば良い。このように、本開示は、角度または距離区間ごとに、異なる、目盛の値の範囲を示す円形メーター、リニアメーター、バーメーターなど任意のメーターに適用可能である。
【0079】
本開示における、指針値算定処理を適用することにより指針値読み取りの実験結果を図16に示す。実験に当たっては、船舶などの高振動環境に設けられた円形メーターを撮影した画像データを対象として、指針値読み取りが正確に行えたか否かを判定した。
【0080】
図16の指針値読み取りの実験結果は、縦軸に認識率、横軸にステップS109のゼロ処理のゼロ埋範囲として、円形メーターの回転中心から目盛りまでの距離のN倍以下の領域の画素値を0とする際の、Nの値をプロットしたものである。
対象とした画像データ549枚中、正確に指針値が読み取れた画像の割合を認識率とした。実験結果によると、Nが0.2~0.7倍の範囲内において90%以上の高い認識率を得ることができた。特に、0.3~0.7倍の範囲内において95%以上の非常に高い認識率を得ることができた。
【0081】
同様に、本開示において、指針値算定処理にゼロ埋処理およびモルフォロジー処理を組み合わせたことによる指針値読み取りの実験結果を以下に示す。
【0082】
<実施例1>
指針値算定処理において、ステップS109において円形メーターの回転中心方向において画像データのうち、円形メーターの回転中心から目盛りまでの距離に0.5倍を掛けた距離以下の領域の画素値を0とする処理を行わず、ステップS110のモルフォロジー処理を行わなかった場合の認識結果は、画像データ549枚中、正確に指針値を読み取れたものは474枚であり、認識率は86.3%であった。
【0083】
<実施例2>
指針値算定処理において、ステップS109において円形メーターの回転中心方向において画像データのうち、円形メーターの回転中心から目盛りまでの距離に0.5倍を掛けた距離以下の領域の画素値を0とする処理を行わず、ステップS110のモルフォロジー処理を行った場合の認識結果は、画像データ549枚中、正確に指針値を読み取れたものは437枚であり、認識率は79.6%であった。
【0084】
<実施例3>
指針値算定処理において、ステップS109において円形メーターの回転中心方向において画像データのうち、円形メーターの回転中心から目盛りまでの距離に0.5倍を掛けた距離以下の領域の画素値を0とする処理を行い、ステップS110のモルフォロジー処理を行わなかった場合の認識結果は、画像データ549枚中、正確に指針値を読み取れたものは547枚であり、認識率は99.5%であった。
【0085】
<実施例4>
指針値算定処理において、ステップS109において円形メーターの回転中心方向において画像データのうち、円形メーターの回転中心から目盛りまでの距離に0.5倍を掛けた距離以下の領域の画素値を0とする処理を行い、ステップS110のモルフォロジー処理を行った場合の認識結果は、画像データ549枚中、正確に指針値を読み取れたものは549枚であり、認識率は100.0%であった。
【0086】
以上の通り、指針値算定処理において、ステップS109において円形メーターの回転中心方向において画像データのうち、円形メーターの回転中心から目盛りまでの距離に所定倍を掛けた距離以下の領域の画素値を0とする処理を行うことにより、指針値算定の精度が顕著に向上した。また、モルフォロジー処理を組み合わせることにより、より高い認識結果を得ることができた。
【0087】
<コンピュータの基本ハードウェア構成>
図17は、コンピュータ90の基本的なハードウェア構成を示すブロック図である。コンピュータ90は、プロセッサ901、主記憶装置902、補助記憶装置903、通信IF991(インタフェース、Interface)を少なくとも備える。これらは通信バス921により相互に電気的に接続される。
【0088】
プロセッサ901とは、プログラムに記述された命令セットを実行するためのハードウェアである。プロセッサ901は、演算装置、レジスタ、周辺回路等から構成される。
【0089】
主記憶装置902とは、プログラム、及びプログラム等で処理されるデータ等を一時的に記憶するためのものである。例えば、DRAM(Dynamic Random Access Memory)等の揮発性のメモリである。
【0090】
補助記憶装置903とは、データ及びプログラムを保存するための記憶装置である。例えば、フラッシュメモリ、HDD(Hard Disc Drive)、光磁気ディスク、CD-ROM、DVD-ROM、半導体メモリ等である。
【0091】
通信IF991とは、有線又は無線の通信規格を用いて、他のコンピュータとネットワークを介して通信するための信号を入出力するためのインタフェースである。
ネットワークは、インターネット、LAN、無線基地局等によって構築される各種移動通信システム等で構成される。例えば、ネットワークには、3G、4G、5G移動通信システム、LTE(Long Term Evolution)、所定のアクセスポイントによってインターネットに接続可能な無線ネットワーク(例えばWi-Fi(登録商標))等が含まれる。無線で接続する場合、通信プロトコルとして例えば、Z-Wave(登録商標)、ZigBee(登録商標)、Bluetooth(登録商標)等が含まれる。有線で接続する場合は、ネットワークには、USB(Universal Serial Bus)ケーブル等により直接接続するものも含む。
【0092】
なお、各ハードウェア構成の全部または一部を複数のコンピュータ90に分散して設け、ネットワークを介して相互に接続することによりコンピュータ90を仮想的に実現することができる。このように、コンピュータ90は、単一の筐体、ケースに収納されたコンピュータ90だけでなく、仮想化されたコンピュータシステムも含む概念である。
【0093】
<コンピュータ90の基本機能構成>
コンピュータ90の基本ハードウェア構成(図17)により実現されるコンピュータの機能構成を説明する。コンピュータは、制御部、記憶部、通信部の機能ユニットを少なくとも備える。
【0094】
なお、コンピュータ90が備える機能ユニットは、それぞれの機能ユニットの全部または一部を、ネットワークで相互に接続された複数のコンピュータ90に分散して設けても実現することができる。コンピュータ90は、単一のコンピュータ90だけでなく、仮想化されたコンピュータシステムも含む概念である。
【0095】
制御部は、プロセッサ901が補助記憶装置903に記憶された各種プログラムを読み出して主記憶装置902に展開し、当該プログラムに従って処理を実行することにより実現される。制御部は、プログラムの種類に応じて様々な情報処理を行う機能ユニットを実現することができる。これにより、コンピュータは情報処理を行う情報処理装置として実現される。
【0096】
記憶部は、主記憶装置902、補助記憶装置903により実現される。記憶部は、データ、各種プログラム、各種データベースを記憶する。また、プロセッサ901は、プログラムに従って記憶部に対応する記憶領域を主記憶装置902または補助記憶装置903に確保することができる。また、制御部は、各種プログラムに従ってプロセッサ901に、記憶部に記憶されたデータの追加、更新、削除処理を実行させることができる。
【0097】
データベースは、リレーショナルデータベースを指し、行と列によって構造的に規定された表形式のテーブル、マスタと呼ばれるデータ集合を、互いに関連づけて管理するためのものである。データベースでは、表をテーブル、マスタ、表の列をカラム、表の行をレコードと呼ぶ。リレーショナルデータベースでは、テーブル、マスタ同士の関係を設定し、関連づけることができる。
通常、各テーブル、各マスタにはレコードを一意に特定するための主キーとなるカラムが設定されるが、カラムへの主キーの設定は必須ではない。制御部は、各種プログラムに従ってプロセッサ901に、記憶部に記憶された特定のテーブル、マスタにレコードを追加、削除、更新を実行させることができる。
【0098】
なお、本開示におけるデータベース、マスタは、情報が構造的に規定された任意のデータ構造体(リスト、辞書、連想配列、オブジェクトなど)を含み得る。データ構造体には、データと、任意のプログラミング言語により記述された関数、クラス、メソッドなどを組み合わせることにより、データ構造体と見なし得るデータも含むものとする。
【0099】
通信部は、通信IF991により実現される。通信部は、ネットワークを介して他のコンピュータ90と通信を行う機能を実現する。通信部は、他のコンピュータ90から送信された情報を受信し、制御部へ入力することができる。制御部は、各種プログラムに従ってプロセッサ901に、受信した情報に対する情報処理を実行させることができる。また、通信部は、制御部から出力された情報を他のコンピュータ90へ送信することができる。
【0100】
<付記>
以上の各実施形態で説明した事項を以下に付記する。
【0101】
(付記1)
プロセッサと、記憶部とを備えるコンピュータに実行させるためのプログラムであって、プログラムは、プロセッサに、メーターを撮影した入力画像データを取得する画像取得ステップ(S101)と、画像取得ステップにより取得した入力画像データに対して画像処理を適用することにより処理画像データを生成する画像処理ステップ(S103、S106、S107、S108、S109、S110)と、画像処理ステップにより生成された処理画像データに基づき、メーターの指針位置を取得する指針取得ステップ(S111)と、を実行させ、メーターは円形メーターであり、画像処理ステップは、入力された画像データに対して円形メーターの回転中心から目盛りまでの距離の1より小さい所定倍以下の領域の画素値を所定値とすることにより生成画像データを生成する画像生成ステップ(S109)を含む、プログラム。
これにより、船舶などの高振動環境に設けられたメーターの指針値を高精度に取得することができる。
【0102】
(付記2)
画像処理ステップは、入力された画像データに対して円形メーターの回転中心から目盛りまでの距離の0.5倍以下の領域の画素値を所定値とすることにより生成画像データを生成する画像生成ステップ(S109)を含む、付記1記載のプログラム。
これにより、船舶などの高振動環境に設けられたメーターの指針値を高精度に取得することができる。
【0103】
(付記3)
画像処理ステップは、入力された画像データに対して円形メーターの回転中心から目盛りまでの距離の0.2倍以下の領域の画素値を所定値とすることにより生成画像データを生成する画像生成ステップ(S109)を含む、付記1または2記載のプログラム。
これにより、船舶などの高振動環境に設けられたメーターの指針値を高精度に取得することができる。
【0104】
(付記4)
画像処理ステップは、入力された画像データに対してモルフォロジー処理を適用することにより生成画像データを生成する画像生成ステップ(S107、S108、S109、S110)を含む、付記1から3のいずれか記載のプログラム。
これにより、船舶などの高振動環境に設けられたメーターの指針値を高精度に取得することができる。
【0105】
(付記5)
プロセッサと、記憶部とを備えるコンピュータに実行させるためのプログラムであって、プログラムは、プロセッサに、メーターを撮影した入力画像データを取得する画像取得ステップ(S101)と、画像取得ステップにより取得した入力画像データに対して画像処理を適用することにより処理画像データを生成する画像処理ステップ(S103、S106、S107、S108、S109、S110)と、画像処理ステップにより生成された処理画像データに基づき、メーターの指針位置を取得する指針取得ステップ(S111)と、を実行させ、画像処理ステップは、入力された画像データに対してモルフォロジー処理を適用することにより生成画像データを生成する画像生成ステップ(S107、S108、S109、S110)を含む、プログラム。
これにより、船舶などの高振動環境に設けられたメーターの指針値を高精度に取得することができる。
【0106】
(付記6)
画像生成ステップ(S107、S108、S109、S110)は、メーターの指針方向にモルフォロジー処理を適用するステップ(S110)である、付記5記載のプログラム。
これにより、船舶などの高振動環境に設けられたメーターの指針値をより高精度に取得することができる。
【0107】
(付記7)
画像生成ステップ(S107、S108、S109、S110)は、入力された画像データに対して、二値化処理を適用するステップと、二値化処理において、画像データに含まれる第1画素値の画素数が、第2画素値の画素数よりも少ない場合において、第1画素値に対するオープニング処理を行うモルフォロジー処理を適用するステップと、を含む、付記4から6のいずれか記載のプログラム。
これにより、船舶などの高振動環境に設けられたメーターの指針値をより高精度に取得することができる。
【0108】
(付記8)
メーターは、円形メーターである、付記5から7のいずれか記載のプログラム。
これにより、船舶などの高振動環境に設けられた円形メーターの指針値を高精度に取得することができる。
【0109】
(付記9)
画像生成ステップ(S107、S108、S109、S110)は、メーターの指針の回転中心から外側に向かう方向にモルフォロジー処理を適用するステップ(S110)である、付記8記載のプログラム。
これにより、船舶などの高振動環境に設けられた円形メーターの指針値を高精度に取得することができる。
【0110】
(付記10)
プログラムは、プロセッサに、メーターの表示盤上に設けられた目盛上の位置情報である第2位置情報を取得するステップ、を実行させ、画像生成ステップ(S107、S108、S109、S110)は、メーターの指針の回転中心から第2位置情報までの距離の半分以下の長さの画素数に基づくモルフォロジー処理を適用するステップ(S110)である、付記9記載のプログラム。
これにより、概ね指針の半分以下の長さのノイズ、指針ない余計なオブジェクトを画像データから除外することができる。
【0111】
(付記11)
画像生成ステップ(S107、S108、S109、S110)は、入力された画像データに対してメーターの指針の回転中心を中心とした極座標変換を適用するステップ(S108)を含む、付記8から10のいずれか記載のプログラム。
これにより、船舶などの高振動環境に設けられた円形メーターの指針値をより高精度に取得することができる。
【0112】
(付記12)
画像生成ステップ(S107、S108、S109、S110)は、入力された画像データに対して二値化処理を適用するステップ(S107)を含む、付記8から11のいずれか記載のプログラム。
これにより、船舶などの高振動環境に設けられた円形メーターの指針値を少ない計算量で高精度に取得することができる。
【0113】
(付記13)
プログラムは、プロセッサに、入力された画像データに対して補正処理を適用することにより補正画像データを生成する画像補正ステップ(S103、S106)と、を実行させ、画像生成ステップ(S107、S108、S109、S110)は、画像補正ステップにより生成された補正画像データに対してモルフォロジー処理を適用することにより生成画像データを生成するステップである、付記1から12のいずれか記載のプログラム。
これにより、船舶などの高振動環境に設けられたメーターの指針値をより高精度に取得することができる。
【0114】
(付記14)
プログラムは、プロセッサに、入力された画像データに含まれるメーターの設置面に設けられた矩形形状の頂点の位置情報である第1位置情報を特定する第1位置特定ステップ(S102)と、を実行させ、画像補正ステップ(S103、S106)は、第1位置特定ステップにおいて入力された画像データに、第1位置情報に基づき、射影変換を適用することにより第1補正画像データを生成するステップ(S103)を含む、付記13記載のプログラム。
これにより、船舶などの高振動環境に設けられたメーターの指針値をより高精度に取得することができる。
【0115】
(付記15)
メーターは、円形メーターであり、プログラムは、プロセッサに、画像補正ステップにより生成された第1補正画像データに含まれるメーターの指針の回転中心を中心とした円上の位置情報である第2位置情報を取得する第2位置特定ステップ(S104)と、を実行させ、画像補正ステップ(S103、S106)は、第2位置情報に基づき、画像補正ステップにより生成された第1補正画像データにアスペクト補正処理を適用することにより補正画像データを生成するステップ(S106)を含む、付記13または14記載のプログラム。
これにより、船舶などの高振動環境に設けられたメーターの指針値をより高精度に取得することができる。
【0116】
(付記16)
第2位置特定ステップ(S104)は、メーターの表示盤上に設けられた目盛上の位置情報である第2位置情報を取得するステップであり、プログラムは、プロセッサに、第2位置特定ステップにより取得した第2位置情報のそれぞれに対応付けられた目盛りの値を取得する目盛値取得ステップ(S105)と、を実行させる、付記15記載のプログラム。
これにより、画像補正処理に必要な第2位置の情報と、指針値算定に必要な位置情報のそれぞれに対応付けられた目盛りの値とを併せて取得することにより、ユーザの入力作業負荷を減らすことができる。
【0117】
(付記17)
プログラムは、プロセッサに、指針取得ステップ(S111)により取得した指針位置、および、目盛値取得ステップにより取得した第2位置情報のそれぞれに対応付けられた目盛りの値に基づき、メーターの指針値を算定する指針値算定ステップ(S112)と、を実行させる、付記16記載のプログラム。
これにより、画像補正処理に必要な第2位置の情報と、指針値算定に必要な位置情報のそれぞれに対応付けられた目盛りの値とを併せて取得することにより、ユーザの入力作業負荷を減らすことができる。
【0118】
(付記18)
プログラムは、プロセッサに、入力された画像データに含まれるメーターの表示盤上に設けられた目盛上の2点以上の位置情報と、位置情報のそれぞれに対応付けられた目盛りの値を取得する目盛値取得ステップ(S105)と、指針取得ステップ(S111)により取得した指針位置、および、目盛値取得ステップにより取得した位置情報のそれぞれに対応付けられた目盛りの値に基づき、メーターの指針値を算定する指針値算定ステップ(S112)と、を実行させる、付記1から17のいずれか記載のプログラム。
これにより、船舶などの高振動環境に設けられたメーターの指針値を高精度に取得することができる。
【0119】
(付記19)
指針取得ステップは、船舶などの高振動環境下に設けられたメータの指針位置を取得するステップである、付記1から18のいずれか記載のプログラム。
これにより、船舶などの高振動環境に設けられたメーターの指針値を高精度に取得することができる。
【0120】
(付記20)
プロセッサと、記憶部とを備える情報処理装置であって、プロセッサに、付記1から19のいずれか記載のプログラムを実行させる、情報処理装置。
これにより、船舶などの高振動環境に設けられたメーターの指針値を高精度に取得することができる。
【0121】
(付記21)
プロセッサと、記憶部とを備える情報処理装置を含む情報処理システムであって、プロセッサに、付記1から19のいずれか記載のプログラムを実行させる、を実行させる情報処理システム。
これにより、船舶などの高振動環境に設けられたメーターの指針値を高精度に取得することができる。
【0122】
(付記22)
プロセッサと、記憶部とを備えるコンピュータにより実行される情報処理方法であって、プロセッサに、付記1から19のいずれか記載のプログラムを実行させる、情報処理方法。
これにより、船舶などの高振動環境に設けられたメーターの指針値を高精度に取得することができる。
【符号の説明】
【0123】
1 システム、10 サーバ、101 記憶部、104 制御部、106 入力装置、108 出力装置、20 ユーザ端末、201 記憶部、204 制御部、206 入力装置、208 出力装置、30 撮影端末、301 記憶部、304 制御部、306 入力装置、308 出力装置
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17