(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022184377
(43)【公開日】2022-12-13
(54)【発明の名称】フロートメータ読取プログラム、フロートメータ読取装置及びフロートメータ読取方法
(51)【国際特許分類】
G01F 1/22 20060101AFI20221206BHJP
【FI】
G01F1/22 Z
【審査請求】未請求
【請求項の数】11
【出願形態】OL
(21)【出願番号】P 2021092181
(22)【出願日】2021-06-01
(71)【出願人】
【識別番号】506301140
【氏名又は名称】公立大学法人会津大学
(71)【出願人】
【識別番号】000190149
【氏名又は名称】信越半導体株式会社
(74)【代理人】
【識別番号】100094525
【弁理士】
【氏名又は名称】土井 健二
(74)【代理人】
【識別番号】100094514
【弁理士】
【氏名又は名称】林 恒徳
(72)【発明者】
【氏名】趙 強福
(72)【発明者】
【氏名】上田 菖平
(72)【発明者】
【氏名】鈴木 開斗
(72)【発明者】
【氏名】菅野 順平
(72)【発明者】
【氏名】江原 幸治
(72)【発明者】
【氏名】速水 善範
(72)【発明者】
【氏名】金田 次男
【テーマコード(参考)】
2F030
【Fターム(参考)】
2F030CA02
2F030CC01
2F030CC11
2F030CE01
2F030CE09
2F030CE24
(57)【要約】
【課題】フロートメータの値の読み取りや入力を自動的に行うことを可能とするフロートメータ読取プログラム、フロートメータ読取装置及びフロートメータ読取方法を提供する。
【解決手段】内部を垂直方向に移動するフロートを有するフロートメータが含まれる検証用画像データから、フロートメータを含む第1部分画像データを抽出し、抽出した第1部分画像データから、フロートを含む第2部分画像データを抽出し、抽出した第2部分画像データから、フロートの第1部分及び第2部分についての垂直方向における第1位置及び第2位置をそれぞれ特定し、特定した第1位置及び第2位置から、フロートの垂直方向における上端位置を特定し、フロートメータにおける垂直方向の各位置とフロートメータにおける各目盛り値との関係式を用いることによって、特定した上端位置に対応するフロートメータにおける目盛り値を算出する。
【選択図】
図14
【特許請求の範囲】
【請求項1】
内部を垂直方向に移動するフロートを有するフロートメータが含まれる検証用画像データから、前記フロートメータを含む第1部分画像データを抽出し、
抽出した前記第1部分画像データから、前記フロートを含む第2部分画像データを抽出し、
抽出した前記第2部分画像データから、前記フロートの第1部分及び第2部分についての前記垂直方向における第1位置及び第2位置をそれぞれ特定し、
特定した前記第1位置及び第2位置から、前記フロートの前記垂直方向における上端位置を特定し、
前記フロートメータにおける前記垂直方向の各位置と前記フロートメータにおける各目盛り値との関係式を用いることによって、特定した前記上端位置に対応する前記フロートメータの目盛り値を算出する、
処理をコンピュータに実行させることを特徴とするフロートメータ読取プログラム。
【請求項2】
請求項1において、
前記第1位置及び前記第2位置を特定する処理では、
前記第2部分画像データの前記垂直方向における位置ごとに、各位置における水平方向の画素値の合計値を算出し、
前記第2部分画像データの前記垂直方向における位置のうち、算出した前記合計値が所定の条件を満たす位置のうちのいずれか2つを、前記第1位置及び前記第2位置として特定する、
ことを特徴とするフロートメータ読取プログラム。
【請求項3】
請求項2において、
前記第1位置及び前記第2位置を特定する処理では、前記第2部分画像データの前記垂直方向における位置のうち、前記合計値が第1閾値以下である位置のうちのいずれか2つを、前記第1位置及び前記第2位置として特定する、
ことを特徴とするフロートメータ読取プログラム。
【請求項4】
請求項2において、
前記第1位置及び前記第2位置を特定する処理では、前記第2部分画像データの前記垂直方向における位置のうち、前記合計値が第2閾値以上である位置のうちのいずれか2つを、前記第1位置及び前記第2位置として特定する、
ことを特徴とするフロートメータ読取プログラム。
【請求項5】
請求項1において、
前記第2部分画像データを抽出する処理では、前記フロートと前記フロートの前記垂直方向上側の領域であって前記垂直方向の長さが所定以上である領域とを含む部分画像データを前記第2部分画像データとして抽出する、
ことを特徴とするフロートメータ読取プログラム。
【請求項6】
請求項1において、さらに、
前記第1部分画像データについてホモグラフィー変換を行う、
処理をコンピュータに実行させ、
前記第2部分画像データを抽出する処理では、ホモグラフィー変換を行った前記第1部分画像データから前記第2部分画像データの抽出を行う、
ことを特徴とするフロートメータ読取プログラム。
【請求項7】
請求項1において、
前記上端位置を特定する処理では、
前記上端位置から前記第1位置までの長さに対する前記上端位置から前記第2位置までの長さの割合と、前記第2部分画像データにおける前記第1位置及び前記第2位置とから、前記フロートの前記垂直方向における上端位置を特定する、
ことを特徴とするフロートメータ読取プログラム。
【請求項8】
請求項1において、さらに、
前記フロートメータが含まれる複数の第1学習用画像データのそれぞれに対し、前記複数の第1学習用画像データのそれぞれに含まれる前記フロートメータの位置情報を付加することによって、複数の第1学習データを生成し、
生成した前記複数の第1学習データを用いた機械学習を行うことによって、第1学習モデルを生成する、
処理をコンピュータに実行させ、
前記第1部分画像データを抽出する処理では、
前記検証用画像データを入力することに伴って前記第1学習モデルから出力される値を取得し、
取得した前記値に対応する前記第1部分画像データを前記検証用画像データから抽出する、
ことを特徴とするフロートメータ読取プログラム。
【請求項9】
請求項1において、さらに、
前記フロートが含まれる複数の第2学習用画像データのそれぞれに対し、前記複数の第2学習用画像データに含まれる前記フロートの位置情報を付加することによって、複数の第2学習データを生成し、
生成した前記複数の第2学習データを用いた機械学習を行うことによって、第2学習モデルを生成する、
処理をコンピュータに実行させ、
前記第2部分画像データを抽出する処理では、
前記第1部分画像データを入力することに伴って前記第2学習モデルから出力される値を取得し、
取得した前記値に対応する前記第2部分画像データを前記第1部分画像データから抽出する、
ことを特徴とするフロートメータ読取プログラム。
【請求項10】
内部を垂直方向に移動するフロートを有するフロートメータが含まれる検証用画像データから、前記フロートメータを含む第1部分画像データを抽出し、
抽出した前記第1部分画像データから、前記フロートを含む第2部分画像データを抽出し、
抽出した前記第2部分画像データから、前記フロートの第1部分及び第2部分についての前記垂直方向における第1位置及び第2位置をそれぞれ特定し、
特定した前記第1位置及び第2位置から、前記フロートの前記垂直方向における上端位置を特定し、
前記フロートメータにおける前記垂直方向の各位置と前記フロートメータにおける各目盛り値との関係式を用いることによって、特定した前記上端位置に対応する前記フロートメータの目盛り値を算出する、
ことを特徴とするフロートメータ読取装置。
【請求項11】
内部を垂直方向に移動するフロートを有するフロートメータが含まれる検証用画像データから、前記フロートメータを含む第1部分画像データを抽出し、
抽出した前記第1部分画像データから、前記フロートを含む第2部分画像データを抽出し、
抽出した前記第2部分画像データから、前記フロートの第1部分及び第2部分についての前記垂直方向における第1位置及び第2位置をそれぞれ特定し、
特定した前記第1位置及び第2位置から、前記フロートの前記垂直方向における上端位置を特定し、
前記フロートメータにおける前記垂直方向の各位置と前記フロートメータにおける各目盛り値との関係式を用いることによって、特定した前記上端位置に対応する前記フロートメータの目盛り値を算出する、
処理をコンピュータが実行することを特徴とするフロートメータ読取方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、フロートメータ読取プログラム、フロートメータ読取装置及びフロートメータ読取方法関する。
【背景技術】
【0002】
例えば、半導体の製造等を行う工場には、一般的に、各機器の温度や圧力等の計測を行うための多くのアナログメータが配置されている。具体的に、上記のような工場では、例えば、各機器を流れる液体や気体の流量を計測するフロートメータが配置されている。
【0003】
そして、作業者は、例えば、定期的なタイミングにおいて工場内を巡回し、各アナログメータが指し示している値を確認する。その後、作業者は、例えば、各アナログメータの値を用いて必要な計算を行い、工場内において異常(例えば、機器の故障等)が発生しているか否かについての判定を行う。その結果、工場内において異常が発生していると判定した場合、作業者は、例えば、異常が発生した機器の交換を行うための手配等を行う(特許文献1乃至2参照)。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開平7-06552号公報
【特許文献2】中国特許出願公開第106289426号明細書
【発明の概要】
【発明が解決しようとする課題】
【0005】
ここで、上記のようなアナログメータの読み取りは、一般的に、作業者の目視によって行われる。そのため、上記のようなアナログメータの読み取りでは、値の読み取りミスや管理システム(図示せず)への入力ミス等が発生する可能性がある。
【0006】
特に、各目盛りの間隔が一定ではないフロートメータの読み取りは、通常、他のアナログメータの読み取りよりも困難性が高い。そのため、フロートメータの読み取りでは、他のアナログメータの読み取りが行われる場合よりも値の読み取りミスや入力ミス等の発生頻度が高くなる。
【0007】
そこで、本発明の目的は、フロートメータの値の読み取りや入力を自動的に行うことを可能とするフロートメータ読取プログラム、フロートメータ読取装置及びフロートメータ読取方法を提供することにある。
【課題を解決するための手段】
【0008】
上記目的を達成するための本発明におけるフロートメータ読取プログラムは、内部を垂直方向に移動するフロートを有するフロートメータが含まれる検証用画像データから、前記フロートメータを含む第1部分画像データを抽出し、抽出した前記第1部分画像データから、前記フロートを含む第2部分画像データを抽出し、抽出した前記第2部分画像データから、前記フロートに含まれる第1部分及び第2部分についての前記垂直方向における第1位置及び第2位置をそれぞれ特定し、特定した前記第1位置及び第2位置から、前記フロートの前記垂直方向における上端位置を特定し、前記フロートメータにおける前記垂直方向の各位置と前記フロートメータにおける各目盛り値との関係式を用いることによって、特定した前記上端位置に対応する前記フロートメータの目盛り値を算出する、処理をコンピュータに実行させることを特徴とする。
【発明の効果】
【0009】
本発明におけるフロートメータ読取プログラム、フロートメータ読取装置及びフロートメータ読取方法によれば、フロートメータの値の読み取りや入力を自動的に行うことを可能とする。
【図面の簡単な説明】
【0010】
【
図1】
図1は、第1の実施の形態における情報処理装置1の構成例を示す図である。
【
図2】
図2は、フロートメータ10の具体例について説明する図である。
【
図3】
図3は、第1の実施の形態におけるフロートメータ読取処理の概略を説明する図である。
【
図4】
図4は、第1の実施の形態におけるフロートメータ読取処理の概略を説明する図である。
【
図5】
図5は、第1の実施の形態におけるフロートメータ読取処理の詳細を説明するフローチャート図である。
【
図6】
図6は、第1の実施の形態におけるフロートメータ読取処理の詳細を説明するフローチャート図である。
【
図7】
図7は、第1の実施の形態におけるフロートメータ読取処理の詳細を説明するフローチャート図である。
【
図8】
図8は、第1の実施の形態におけるフロートメータ読取処理の詳細を説明する図である。
【
図9】
図9は、第1の実施の形態におけるフロートメータ読取処理の詳細を説明する図である。
【
図10】
図10は、第1の実施の形態におけるフロートメータ読取処理の詳細を説明する図である。
【
図11】
図11は、第1の実施の形態におけるフロートメータ読取処理の詳細を説明する図である。
【
図12】
図12は、第1の実施の形態におけるフロートメータ読取処理の詳細を説明する図である。
【
図13】
図13は、第1の実施の形態におけるフロートメータ読取処理の詳細を説明する図である。
【
図14】
図14は、第1の実施の形態におけるフロートメータ読取処理の詳細を説明する図である。
【発明を実施するための形態】
【0011】
以下、図面を参照して本発明の実施の形態について説明する。しかしながら、かかる実施の形態例が、本発明の技術的範囲を限定するものではない。
【0012】
初めに、第1の実施の形態における情報処理装置1(以下、フロートメータ読取装置1とも呼ぶ)の構成例について説明を行う。
図1は、第1の実施の形態における情報処理装置1の構成例を示す図である。
【0013】
情報処理装置1は、コンピュータ装置であって、例えば、汎用的なPC(Personal Computer)である。そして、情報処理装置1は、例えば、図示しないフロートメータが示す値を自動的に読み取る処理(以下、フロートメータ読取処理とも呼ぶ)を行う。
【0014】
情報処理装置1は、汎用的なコンピュータ装置のハードウエア構成を有し、例えば、
図1に示すように、プロセッサであるCPU101と、メモリ102と、通信インタフェース103と、記憶媒体104とを有する。各部は、バス105を介して互いに接続される。
【0015】
記憶媒体104は、例えば、フロートメータ読取処理を行うためのプログラム(図示しない)を記憶するプログラム格納領域(図示しない)を有する。
【0016】
また、記憶媒体104は、例えば、フロートメータ読取処理を行う際に用いられる情報を記憶する記憶部110(以下、記憶領域110とも呼ぶ)を有する。なお、記憶媒体104は、例えば、HDD(Hard Disk Drive)やSSD(Solid State Drive)であってよい。
【0017】
CPU101は、記憶媒体104からメモリ102にロードされたプログラムを実行してフロートメータ読取処理を行う。
【0018】
通信インタフェース103は、例えば、インターネット網等のネットワークNWを介してスマートフォン等の操作端末2と通信を行う。
【0019】
[フロートメータの具体例]
次に、フロートメータ10の具体例について説明を行う。
図2は、フロートメータ10の具体例について説明する図である。
【0020】
フロートメータ10は、
図2に示すように、例えば、垂直方向に延びる円筒形状のガラス管11と、ガラス管11の内部を垂直方向に移動するフロート12とを有している。なお、ガラス管11の側面に付加された目盛り11aの間隔は、
図2に示すように、垂直方向における上側から下側に向かって広がっている。
【0021】
そして、作業者は、例えば、フロート12の上端縁に対応する位置12a(以下、上端位置12aとも呼ぶ)に対応する目盛り11aの値(以下、目盛り値とも呼ぶ)を読み取ることによって、ガラス管11内部に流入した気体や液体等の流体の流量を計測する。
【0022】
また、フロートメータ10には、
図2に示すように、4つの円形領域である第1基準領域13a、13b、13c及び13d(以下、これらを総称して第1基準領域13とも呼ぶ)と、2つの矩形領域である第2基準領域14a及び14b(以下、これらを総称して第2基準領域14とも呼ぶ)とを有する。第1基準領域13のそれぞれは、例えば、フロートメータ10に貼付された円形のシール(例えば、青色のシール)であり、第2基準領域14のそれぞれは、例えば、フロートメータ10に貼付された矩形のシール(例えば、黄色のシール)である。第1基準領域13及び第2基準領域14の用途については後述する。
【0023】
なお、以下、目盛り11aの読み取りがフロート12の上端位置12aを基準として行われるものとして説明を行うが、目盛り11aの読み取りは、フロート12における上端位置12a以外の位置を基準として行うものであってもよい。
【0024】
[第1の実施の形態の概略]
図3及び
図4は、第1の実施の形態におけるフロートメータ読取処理の概略を説明する図である。具体的に、
図3は、第1の実施の形態におけるフロートメータ読取処理のうち、学習段階の処理について説明する図である。また、
図4は、第1の実施の形態におけるフロートメータ読取処理のうち、推論段階の処理について説明する図である。
【0025】
初めに、第1の実施の形態におけるフロートメータ読取処理のうち、学習段階の処理について説明を行う。
【0026】
情報処理装置1の第1データ生成部111は、
図3に示すように、例えば、フロートメータ10が映る学習用画像データ(以下、第1学習用画像データとも呼ぶ)に対し、第1学習用画像データにおけるフロートメータ10の位置についての情報(以下、位置情報とも呼ぶ)を付加することによって学習データ(以下、第1学習データとも呼ぶ)を生成する。
【0027】
具体的に、第1データ生成部111は、例えば、目盛り11aと4つの第1基準領域13とが少なくとも含まれる第1学習用画像データに対し、第1学習用画像データにおけるフロートメータ10の位置情報を付加することによって第1学習データを生成する。
【0028】
なお、第1データ生成部111は、生成済の第1学習データのサイズや色等を変更することによって、さらなる第1学習データを生成するものであってもよい。
【0029】
そして、情報処理装置1の第1モデル生成部112は、例えば、第1データ生成部111が生成した複数の第1学習データを用いた機械学習を行うことによって、学習モデル(以下、第1学習モデルとも呼ぶ)を生成する。その後、第1モデル生成部112は、生成した第1学習モデルを記憶領域110に記憶する。
【0030】
すなわち、第1モデル生成部112は、複数の第1学習データを用いることによって、推論段階において検出用画像からフロートメータ10が映る部分画像データ(以下、第1部分画像データとも呼ぶ)を抽出する際に用いられる第1学習モデルを生成する。
【0031】
また、情報処理装置1の第2データ生成部113は、例えば、フロートメータ10の内部を移動するフロート12が映る学習用画像データ(以下、第2学習用画像データとも呼ぶ)に対し、第2学習用画像データにおけるフロート12の位置情報を付加することによって学習データ(以下、第2学習データとも呼ぶ)を生成する。
【0032】
具体的に、第2データ生成部113は、例えば、フロート12とフロート12の上端位置12aよりも垂直方向上側である領域(例えば、垂直方向の長さがフロート12の長さと同一である領域)とが映る第2学習用画像データに対し、第2学習用画像データにおけるフロート12の位置情報を追加することによって第2学習データを生成する。
【0033】
なお、第2データ生成部113は、生成済の第2学習データのサイズや色等を変更することによって、さらなる第2学習データを生成するものであってもよい。
【0034】
そして、情報処理装置1の第2モデル生成部114は、例えば、第2データ生成部113が生成した複数の第2学習データを用いた機械学習を行うことによって、学習モデル(以下、第2学習モデルとも呼ぶ)を生成する。その後、第2モデル生成部114は、生成した第2学習モデルを記憶領域110に記憶する。
【0035】
すなわち、第2モデル生成部114は、複数の第2学習データを用いることによって、推論段階において第1部分画像データからフロート12についての部分画像データ(以下、第2部分画像データとも呼ぶ)を抽出する際に用いられる第2学習モデルを生成する。
【0036】
次に、第1の実施の形態におけるフロートメータ読取処理のうち、推論段階の処理について説明を行う。
【0037】
情報処理装置1の第1画像抽出部121は、例えば、検証用画像データからフロートメータについての第1部分画像データを抽出する。検証用画像データは、例えば、第1学習用データと同一のフロートメータ10が映る画像データである。
【0038】
具体的に、第1画像抽出部121は、記憶領域110に記憶された第1学習モデルに対する検証用画像データの入力に伴って出力される値が示す位置情報を特定する。そして、第1画像抽出部121は、特定した位置情報に対応する第1部分画像データを検証用画像データから抽出する。
【0039】
そして、情報処理装置1の画像補正部122は、例えば、第1画像抽出部121が抽出した第1部分画像データについてホモグラフィー変換を行う。
【0040】
続いて、情報処理装置1の第2画像抽出部123は、第1画像抽出部121が抽出した第1部分画像データからフロート12についての第2部分画像データを抽出する。
【0041】
具体的に、第2画像抽出部123は、記憶領域110に記憶された第2学習モデルに対する第1部分画像データの入力に伴って出力される値が示す位置情報を特定する。そして、第2画像抽出部123は、特定した位置情報に対応する第2部分画像データを第1部分画像データから抽出する。
【0042】
その後、情報処理装置1の位置特定部124は、第2画像抽出部123が抽出した第2部分画像データから、第2画像データに映るフロート12を構成する第1部分及び第2部分についての垂直方向における第1位置及び第2位置をそれぞれ特定する。
【0043】
具体的に、位置特定部124は、例えば、第2画像抽出部123が抽出した第2部分画像データの垂直方向における複数の位置のそれぞれについて、各位置における垂直方向に直交する方向(以下、水平方向とも呼ぶ)の画素値の合計値を算出する。そして、位置特定部124は、例えば、第2画像抽出部123が抽出した第2部分画像データの垂直方向における複数の位置のうち、算出した合計値が閾値以下である位置のうちのいずれか2つを、第1位置及び第2位置としてそれぞれ特定する。
【0044】
そして、情報処理装置1の上端特定部125は、位置特定部124が特定した第1位置及び第2位置のそれぞれを用いることにより、第2画像データに映るフロート12の上端位置12aを特定する。
【0045】
具体的に、上端特定部125は、例えば、上端位置12aから第1位置までの長さに対する上端位置12aから第2位置までの長さの割合と、第2部分画像データにおける第1位置及び第2位置とから、第2画像データに映るフロート12の上端位置12aを特定する。
【0046】
さらに、情報処理装置1の値算出部126は、例えば、フロートメータ10における垂直方向の各位置とフロートメータ10の目盛り11aにおける各目盛り値との関係式を用いることによって、上端特定部125が特定した上端位置12aに対応するフロートメータ10の目盛り値を算出する。
【0047】
具体的に、作業者は、例えば、第1学習用画像に映るフロートメータ10における垂直方向の位置と、第1学習用画像に映るフロートメータ10の目盛り11aにおける目盛り値との組合せを複数用いることによって近似式を生成する。そして、値算出部126は、例えば、生成された近似式を用いることによって、上端特定部125が特定した上端位置12aに対応する目盛り値を算出する。以下、目盛り値の算出に用いる近似式が2次近似式であるものとして説明を行うが、この近似式は、例えば、3次近似式、4次近似式または対数近似式等であってもよい。
【0048】
すなわち、一般的なフロートメータでは、フロートにおける目盛りの読み取りに用いられる部分(例えば、フロートの上端位置)の形状とフロートにおける他の部分の形状とが類似している場合がある。そのため、例えば、フロートメータ10が映る検証用画像データの入力に応じてフロート12の上端位置12aを出力する単一の学習モデルを用いる場合、情報処理装置1は、上端位置12a以外の位置を上端位置12aとして特定する可能性があり、例えば、フロート12の一部が含まれない画像データを第2部分画像データとして出力する可能性がある。
【0049】
そこで、本実施の形態における情報処理装置1は、学習段階において、フロート12だけでなく、フロート12の上端位置12aよりも垂直方向上側を含む領域についての位置情報が付加された第2学習データを用いることによって第2学習モデルを生成する。そして、情報処理装置1は、推論段階において、第2学習モデルから出力された第2部分画像データからフロート12の上端位置12aを特定する。
【0050】
これにより、本実施の形態における情報処理装置1は、上端位置12a以外の位置を上端位置12aとして特定した場合であっても、フロート12の全体が含まれる第2部分画像データを出力することが可能な第2学習モデルを生成することが可能になる。そのため、本実施の形態における情報処理装置1は、例えば、目盛り11aの読み取りに用いられる部分の形状と他の部分の形状とが類似しているフロート12についても、目盛り11aの読み取りを精度良く行うことが可能になる。
【0051】
なお、本実施の形態において生成される第1学習モデル及び第2学習モデルは、例えば、SSD(Single Shot Multibox Detector)による学習モデルやYOLO(You Only Look Once)による学習モデルであってよい。
【0052】
[第1の実施の形態の詳細]
次に、第1の実施の形態におけるフロートメータ読取処理の詳細について説明を行う。
図5から
図7は、第1の実施の形態におけるフロートメータ読取処理の詳細を説明するフローチャート図である。また、
図8から
図14は、第1の実施の形態におけるフロートメータ読取処理の詳細を説明する図である。
【0053】
[学習段階における処理]
初めに、第1の実施の形態におけるフロートメータ読取処理の詳細のうち、学習段階における処理について説明を行う。
図5は、学習段階における処理について説明する図である。
【0054】
第1データ生成部111は、
図5に示すように、例えば、学習タイミングになるまで待機する(S11のNO)。学習タイミングは、例えば、作業者が操作端末2を介して第1学習用画像データを入力したタイミングであってよい。また、学習タイミングは、例えば、作業者が各学習モデルの生成を行う旨の情報を入力したタイミングであってよい。
【0055】
そして、学習タイミングなった場合(S11のYES)、第1データ生成部111は、第1学習用画像データのそれぞれに対し、各画像データにおけるフロートメータ10の位置情報を付加することによって、第1学習データを生成する(S12)。
【0056】
具体的に、第1データ生成部111は、
図8に示すように、例えば、フロートメータ10を含むバウンディングボックスB1(作業者によって指定されたバウンディングボックスB1)を用いることによって、第1学習用画像データDT11に対してフロートメータ10の位置情報を付加する。
【0057】
さらに具体的に、作業者は、例えば、撮像装置(図示しない)によって撮影された動画データに含まれる各フレームに対応する画像データを第1学習用画像データDT11として用意する。そして、作業者は、バウンディングボックスB1を用いることによって、フロートメータ10の位置情報を第1学習用画像データDT11に対して付加する。その後、第1データ生成部111は、例えば、第1学習用画像データDT11と、バウンディングボックスB1の左上の座標(X座標及びY座標)と、バウンディングボックスB1の縦及び横の長さとを対応付けることによって第1学習データを生成する。
【0058】
なお、撮像装置は、例えば、非固定のカメラであってもよい。また、撮像装置は、例えば、操作端末2に内蔵されているものであってもよい。
【0059】
その後、第1モデル生成部112は、S12の処理で生成した第1学習データを用いた機械学習を行うことによって、第1学習モデルを生成する(S13)。
【0060】
続いて、第2データ生成部113は、第2学習用画像データのそれぞれに対し、各画像データにおけるフロート12の位置情報を付加することによって、第2学習データを生成する(S14)。
【0061】
具体的に、第2データ生成部113は、
図9に示すように、例えば、フロート12を含むバウンディングボックスB2(作業者によって指定されたバウンディングボックスB2)を用いることによって、第2学習用画像データDT12に対してフロート12を含む領域の位置情報を付加する。
【0062】
さらに具体的に、第2データ生成部113は、例えば、S13の処理で生成した第1学習モデルに対する第1学習用画像データDT11の入力に伴って出力される画像データを第2学習用画像データDT12として取得する。そして、作業者は、バウンディングボックスB2を用いることによって、フロート12とフロート12の上端位置12aよりも垂直方向上側とが映る領域の位置情報を第2学習用画像データDT12に対して付加する。その後、第2データ生成部113は、例えば、第2学習用画像データDT12と、バウンディングボックスB2の左上の座標(X座標及びY座標)と、バウンディングボックスB2の縦及び横の長さとを対応付けることによって第2学習データを生成する。
【0063】
その後、第2モデル生成部114は、S14の処理で生成した第2学習データを用いた機械学習を行うことによって、第2学習モデルを生成する(S15)。
【0064】
これにより、作業者は、後述する推論段階において用いる各学習モデルを生成することが可能になる。
【0065】
[推論段階における処理]
次に、第1の実施の形態におけるフロートメータ読取処理の詳細のうち、推論段階における処理について説明を行う。
図6及び
図7は、推論段階における処理について説明する図である。
【0066】
第1画像抽出部121は、
図6に示すように、判定タイミングなるまで待機する(S21のNO)。判定タイミングは、例えば、作業者が操作端末2を介して検証用画像データを入力したタイミングであってよい。また、判定タイミングは、例えば、作業者が検証用画像データの判定を行う旨の情報を入力したタイミングであってよい。
【0067】
そして、判定タイミングになった場合(S21のYES)、第1画像抽出部121は、フロートメータ10についての検証用画像データを取得する(S22)。
【0068】
具体的に、第1画像抽出部121は、
図10(A)に示すように、例えば、撮像装置によって撮影された動画データに含まれる各フレームに対応する画像データを検証用画像データDT21として受信する。
【0069】
続いて、第1画像抽出部121は、S22の処理で取得した検証用画像データを入力することに伴って第1学習モデルから出力される値を取得する(S23)。
【0070】
そして、第1画像抽出部121は、S23の処理で取得した値に対応する第1部分画像データを、S22の処理で取得した検証用画像データから抽出する(S24)。
【0071】
具体的に、第1画像抽出部121は、
図10(B)に示すように、例えば、S21の処理で取得した検証用画像データのうち、フロートメータ10が映る部分に対応する画像データを第1部分画像データDT22として取得する。
【0072】
画像補正部122は、S24の処理で抽出した第1部分画像データについてホモグラフィー変換を行う(S25)。
【0073】
具体的に、画像補正部122は、例えば、S24の処理で抽出した第1部分画像データDT22に映るフロートメータ10における第2基準領域14のそれぞれが予め指定された位置に移動するように、ホモグラフィー変換を行う。
【0074】
すなわち、画像補正部122は、第1部分画像データDT22についてのホモグラフィー変換を行うことで第1部分画像データDT22の正規化を行い、第1部分画像データDT22に映るフロートメータ10における第2基準領域14のそれぞれの位置を補正する。
【0075】
これにより、情報処理装置1は、全ての第1部分画像データDT22に映る第2基準領域14の位置を合わせることが可能になる。そのため、情報処理装置1は、後述するように、第2基準領域14の位置等に基づくことによってフロート12の上端位置12aを特定することが可能になる。
【0076】
なお、画像補正部122は、例えば、第1部分画像データDT22についてのホモグラフィー変換を、第1部分画像データDT22についての二値化等の強調処理を行うことによって第1基準領域13を強調させてから行うものであってもよい。
【0077】
これにより、情報処理装置1は、例えば、後述する第1位置及び第2位置の特定をより行い易くすることが可能になる。
【0078】
次に、第2画像抽出部123は、S25の処理でホモグラフィー変換を行った第1部分画像データを入力することに伴って第2学習モデルから出力される値を取得する(S26)。
【0079】
そして、第2画像抽出部123は、
図7に示すように、S26の処理で取得した値に対応する第2部分画像データを、S25の処理でホモグラフィー変換を行った第1部分画像データから抽出する(S31)。
【0080】
具体的に、第2画像抽出部123は、
図11(B)に示すように、例えば、S25の処理でホモグラフィー変換を行った第1部分画像データDT22(
図11(A))のうち、フロート12が映る部分に対応する画像データを第2部分画像データDT23として取得する。
【0081】
さらに具体的に、第2画像抽出部123は、
図11(B)に示すように、フロート12に加えて、フロート12の上端位置12aよりも垂直方向上側の領域が映る画像データを第2部分画像データDT23として取得する。
【0082】
続いて、位置特定部124は、S31の処理で抽出した第2部分画像データの垂直方向における複数の位置のそれぞれについて、各位置における水平方向の画素値の合計値(以下、単に合計値とも呼ぶ)を算出する(S32)。
【0083】
そして、位置特定部124は、例えば、S32の処理で算出した合計値が所定の条件を満たす位置のうちのいずれか2つを、第1位置及び第2位置として特定する(S33)。具体的に、位置特定部124は、例えば、S32の処理で算出した合計値が閾値(以下、第1閾値とも呼ぶ)以下である位置のうちのいずれか2つを、第1位置及び第2位置として特定する。以下、S32及びS33の処理の具体例について説明を行う。
【0084】
[S32及びS33の処理の具体例]
図12及び
図13は、S32及びS33の処理の具体例を説明する図である。具体的に、
図12(A)は、フロート12の具体例を説明する図であり、
図12(B)は、第2部分画像データDT23の具体例について説明する図である。また、
図13は、第2部分画像データDT23の垂直方向における各位置の画素値の合計値を示すグラフである。
図13における縦軸は、第2部分画像データDT23の垂直方向における位置(座標)を示し、
図13における横軸は、各位置における水平方向の画素値の合計値を示している。なお、以下、各画像データにおける垂直方向の座標が上側から下側に向かって大きくなるものとして説明を行う。
【0085】
初めに、フロート12の具体例について説明を行う。
【0086】
フロート12は、
図12(A)に示すように、例えば、目盛り11aを読み取る際の基準となる上端位置12aを有する。また、フロート12は、例えば、垂直方向における位置12b0と位置12b1との間の側面おいて凹部12bを有し、さらに、垂直方向の下端部において位置12c0から下方向に延びるテーパー部12cを有する。以下、
図12(B)に示すように、第2部分画像データDT23における上端位置に対応する垂直方向における座標を座標b0とも呼び、第2部分画像データDT23における下端位置に対応する垂直方向における座標を座標b1とも呼び、凹部12bにおける位置12b0に対応する垂直方向における座標を座標y1とも呼び、凹部12bにおける位置12b1に対応する垂直方向における座標を座標y2とも呼び、テーパー部12cにおける位置c1に対応する垂直方向における座標を座標y3をとも呼ぶ。
【0087】
次に、S32及びS33の処理の具体例について説明を行う。
【0088】
位置特定部124は、S32の処理において、例えば、第2部分画像データDT23を垂直方向における複数の位置のそれぞれについて、各位置における水平方向の画素値の合計値を算出する。ここでの複数の位置は、例えば、第2部分画像データDT23を垂直方向における各ピクセルに対応する位置である。
【0089】
続いて、位置特定部124は、例えば、
図13に示すように、第2部分画像データDT23の垂直方向における各位置の画素値の合計値を示すグラフを生成する。
【0090】
具体的に、例えば、第2部分画像データDT23の垂直方向における長さ(座標b0から座標b1までの長さ)が「80」である場合、位置特定部124は、
図13に示すように、例えば、座標b0を「0」とし、座標b1を「80」とした場合におけるグラフを生成する。
【0091】
そして、位置特定部124は、S33の処理において、生成したグラフを参照し、第2部分画像データDT23を垂直方向における複数の位置のうち、画素値の合計値が閾値以下である位置を特定する。
【0092】
具体的に、
図13に示すグラフは、垂直方向における座標が「10」から「20」までの間の各点に対応する画素値の合計値と、垂直方向における座標が「60」から「70」までの間の各点に対応する画素値の合計値とが特に小さいことを示している。そのため、位置特定部124は、例えば、垂直方向における座標が「10」から「20」までの間の各点のうち、画素値の合計値が最も小さい範囲の始点(例えば、「14」)及び終点(例えば、「16」)のそれぞれを座標y1及び座標y2として特定する。また、位置特定部124は、例えば、垂直方向における座標が「60」から「70」までの間の各点のうち、画素値の合計値が最も小さい範囲の始点(例えば、「68」)を座標y3として特定する。
【0093】
すなわち、第2部分画像データDT23に映る凹部12bやテーパー部12cにおける水平方向の画素値の合計値は、検証用画像データDT21の撮影時における光の当たり方に起因して、例えば、フロート12における他の部分の画素値の合計値よりも小さくなる。そのため、位置特定部124は、例えば、画素値の合計値が閾値以下である位置を特定することで、座標y1、座標y2及び座標y3を特定することが可能になる。
【0094】
その後、位置特定部124は、例えば、座標y1、座標y2及び座標y3のうちの2つを第1位置及び第2位置として特定する。
【0095】
なお、S25の処理において、例えば、第1部分画像データDT22についての強調処理を行うことによって第1基準領域13を強調させてからホモグラフィー変換を行う場合、第2部分画像データDT23に映る凹部12bやテーパー部12cにおける水平方向の画素値の合計値は、フロート12における他の部分の画素値の合計値よりも大きくなる可能性がある。そのため、位置特定部124は、この場合、例えば、S32の処理で算出した合計値が閾値(以下、第2閾値とも呼ぶ)以上である位置のうちのいずれか2つを、第1位置及び第2位置として特定するものであってもよい(S33)。具体的に、位置特定部124は、例えば、画素値の合計値が閾値以上である位置を特定することで、座標y1、座標y2及び座標y3を特定するものであってよい。
【0096】
図7に戻り、上端特定部125は、S33で特定した第1位置及び第2位置から、フロート12の垂直方向における上端位置12aを特定する(S35)。
【0097】
具体的に、上端特定部125は、例えば、以下の式(1)、式(2)及び式(3)のいずれかを用いることによって、上端位置12aに対応する座標y0を算出する。以下の式(1)、式(2)及び式(3)において、c1、c2及びc3のそれぞれは、他の画像データ(図示しない)を用いて計測した上端位置12aから位置12b0までの長さ、上端位置12aから位置12b1までの長さ、及び、上端位置12aから位置12c0までの長さである。
【0098】
さらに具体的に、例えば、S34の処理において座標y3及び座標y2を第1位置及び第2位置として特定した場合、上端特定部125は、例えば、以下の式(1)に従って座標y0を算出する。
【0099】
【0100】
すなわち、例えば、上端位置12aから位置12c0までの長さを上端位置12aから位置12b1までの長さで割った値は、フロート12が映る全ての画像データにおいて同じ値である。そのため、位置特定部124は、例えば、他の画像データを用いて計測した上端位置12aから位置12c0までの長さを、他の画像データを用いて計測した上端位置12aから位置12b1までの長さで割った値を用いることによって座標y0を算出する。
【0101】
また、例えば、S34の処理において座標y3及び座標y1が第1位置及び第2位置として特定した場合、上端特定部125は、例えば、以下の式(2)に従って座標y0を算出する。
【0102】
【0103】
また、例えば、S34の処理において座標y2及び座標y1を第1位置及び第2位置として特定した場合、上端特定部125は、例えば、以下の式(3)に従って座標y0を算出する。
【0104】
【0105】
なお、上端特定部125は、例えば、上記の式(1)、式(2)及び式(3)の全てを用いることによって上端位置12aの座標y0をそれぞれ算出するものであってもよい。そして、上端特定部125は、この場合、例えば、上記の式(1)、式(2)及び式(3)のそれぞれを用いることによって算出した座標y0の中央値や平均値を算出するものであってよい。
【0106】
図7に戻り、値算出部126は、S34の処理で特定した上端位置12aに対応するフロートメータ10における目盛り値を算出する(S35)。
【0107】
具体的に、値算出部126は、
図14に示すように、S34の処理で算出した座標y0の第1部分画像データDT22における座標(以下、座標Y0とも呼ぶ)を算出する。そして、値算出部126は、第1部分画像データDT22の垂直方向における上端位置からフロート12の上端位置12aまでの長さ(
図14に示す座標m0から座標Y0までの長さ)を、第1部分画像データDT22の垂直方向における上端位置から下端位置までの長さ(
図14に示す座標m0から座標m1までの長さ)で除算することによって、第1部分画像データDT22における座標Y0の位置を示す値を取得する。
【0108】
さらに具体的に、値算出部126は、例えば、
図12(B)で説明した座標b0の第1部分画像データDT22における座標(以下、座標B0とも呼ぶ)を、S34の処理で算出した座標y0に加算することによって座標Y0を算出する。そして、値算出部126は、以下の式(4)に従うことによって、第1部分画像データDT22における座標Y0の位置を示す値を取得する。なお、以下の式(4)において、Pは、座標Y0の位置を示す値に対応し、y
minは、第2基準領域14aの上端位置に対応する座標m0に対応し、y
maxは、第2基準領域14bの下端位置に対応する座標m1に対応している。
【0109】
【0110】
そして、値算出部126は、予め生成されたフロートメータ10に対応する2次近似式に対して座標Y0の位置を示す値を代入することによって、座標Y0に対応する目盛り値(目盛り11aにおける目盛り値)を算出する。その後、値算出部126は、例えば、算出した目盛り値を操作端末2に出力する。
【0111】
なお、例えば、撮像装置によって撮影された動画データに含まれる各フレームに対応する画像データ(以下、基準画像データとも呼ぶ)と検証用画像データDT21とのピクセルサイズが異なっている場合、値算出部126は、例えば、検証用画像データDT21に対する基準画像データの倍率(スケーリングファクター)を検証用画像データDT21に対して乗算してから2次近似式に代入するものであってもよい。すなわち、値算出部126は、基準画像データにおける座標Y0の位置を示す値を2次近似式に対して代入するものであってもよい。
【0112】
また、作業者は、例えば、第1学習用画像データDT11と第1学習用画像データDT11に映るフロートメータ10の目盛り11aにおける目盛り値を示す情報とを含む学習データ(図示せず)を用いることによって、第1部分画像データDT22に映るフロートメータ10の目盛り11aにおける目盛り値を算出する際に用いる学習モデル(図示せず)を生成するものであってもよい。そして、値算出部126は、例えば、生成した学習モデルに対する第1部分画像データDT22の入力に伴って出力される値を、第1部分画像データDT22に映るフロートメータ10の目盛り11aにおける目盛り値として特定するものであってもよい。
【0113】
さらに、例えば、フロート12の上端位置12aに対応する目盛り11aにおける目盛り値の正解値や、フロート12の上端位置12aを用いることによって目盛り11aにおける目盛り値を算出することが可能な正解式が予め明らかである場合、値算出部126は、この正解値や正解式を用いることによって、第1部分画像データDT22に映るフロートメータ10の目盛り11aにおける目盛り値を特定するものであってもよい。
【0114】
このように、本実施の形態における情報処理装置1は、検証用画像データの入力に応じてフロートメータ10が映る第1部分画像データを出力する第1学習モデルと、第1部分画像データの入力に応じてフロート12とフロート12の上端位置12aよりも垂直方向上側の領域とが映る第2部分画像データを出力する第2学習モデルとのそれぞれを用いることによって、検証用画像データに映るフロートメータ10の特定と第1部分画像データに映るフロート12の特定とを順に行う。そして、情報処理装置1は、例えば、第2部分画像データに映るフロート12の第1位置及び第2位置(フロートの上端位置12a以外の位置)を用いることによって、第2部分画像データに映るフロート12の上端位置12aの特定を行う。
【0115】
これにより、本実施の形態における情報処理装置1は、上端位置12a以外の位置を上端位置12aとして特定した場合であっても、フロート12の全体が含まれる第2部分画像データを出力することが可能な第2学習モデルを生成することが可能になる。そのため、本実施の形態における情報処理装置1は、例えば、目盛り11aの読み取りに用いられる部分の形状と他の部分の形状とが類似しているフロート12についても、目盛り11aの読み取りを精度良く行うことが可能になる。
【0116】
なお、第1画像抽出部121は、S22の処理において、撮像装置によって撮影された動画データに含まれる各フレームに対応する検証用画像データDT21を連続的に取得するものであってもよい。そして、情報処理装置1は、取得した検証用画像データDT21のそれぞれについてS23からS35の処理を行うものであってよい。その後、値算出部126は、S35の処理で算出した目盛り値のそれぞれの中央値や平均値を操作端末2に出力するものであってもよい。
【0117】
また、第1データ生成部111は、S12の処理において、例えば、基準マーカ13のそれぞれの位置からバウンディングボックスB1の位置を自動的に特定するものであってもよい。
【0118】
具体的に、第1データ生成部111は、例えば、全ての基準マーカ13が含まれる位置をバウンディングボックスB1の位置として自動的に特定するものであってもよい。そして、第1データ生成部111は、特定したバウンディングボックスB1の位置情報を第1学習用画像データDT11に付加することによって、第1学習データを自動的に生成するものであってもよい。
【0119】
これにより、情報処理装置1は、第1学習データの生成に伴う作業者の作業負荷を軽減させることが可能になる。
【0120】
また、第2データ生成部113は、S14の処理において、例えば、基準マーカ14のそれぞれの位置と、第2学習用画像データDT12の垂直方向における各位置に対応する画素値の合計値を示すグラフ(
図13で説明したグラフ)とから、バウンディングボックスB2の位置を自動的に特定するものであってもよい。
【0121】
具体的に、第2データ生成部113は、例えば、第2学習用画像データDT12の垂直方向における各位置のうち、画素値の合計値が閾値以下である垂直方向における範囲を特定する。そして、第2データ生成部113は、例えば、特定した範囲を垂直方向上側及び垂直方向下側に向けて所定の長さだけ拡大した領域に対応する位置を、バウンディングボックスB2の位置として自動的に特定するものであってもよい。その後、第2データ生成部113は、特定したバウンディングボックスB2の位置情報を第2学習用画像データDT12に付加することによって、第2学習データを自動的に生成するものであってもよい。
【0122】
これにより、情報処理装置1は、第2学習データの生成に伴う作業者の作業負荷を軽減させることが可能になる。
【符号の説明】
【0123】
1:情報処理装置
2:操作端末
101:CPU
102:メモリ
103:通信インタフェース
104:記憶媒体
105:バス