(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-07-04
(45)【発行日】2022-07-12
(54)【発明の名称】産業機器ゲージのデジタル化及びアラームのためのコンピュータビジョンシステム
(51)【国際特許分類】
G06T 7/00 20170101AFI20220705BHJP
G06N 20/00 20190101ALI20220705BHJP
【FI】
G06T7/00 350C
G06N20/00 130
(21)【出願番号】P 2020203559
(22)【出願日】2020-12-08
【審査請求日】2020-12-08
(32)【優先日】2019-12-10
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】000006747
【氏名又は名称】株式会社リコー
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(72)【発明者】
【氏名】エドワード エル シュワルツ
【審査官】笠田 和宏
(56)【参考文献】
【文献】特開2007-114828(JP,A)
【文献】特開2011-081715(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00
G06N 20/00
(57)【特許請求の範囲】
【請求項1】
ゲージにより測定されるパラメータ値の目盛りを示すマーキングを含む面と、前記面上のインジケータの変位による前記目盛り上の前記パラメータ値の読み取りを示す前記インジケータとを有する前記ゲージを監視する方法であって、
前記ゲージの訓練画像のセットを受信するステップと、
前記ゲージの前記訓練画像のアノテーションに関するデータを受信するステップであり、前記アノテーションは前記目盛り及び前記ゲージの前記面上の前記インジケータを示す、ステップと、
前記アノテーションに関する前記データから導出された幾何学情報を使用して、前記ゲージを記述する幾何学モデルを生成するステップと、
いずれかの所与のゲージについて前記ゲージのインジケータが前記所与のゲージの画像に追加されるか或いは前記所与のゲージの画像から除去される一方で前記ゲージの面が保たれるように、前記所与のゲージの画像を修正するように事前に訓練された画像モデルを提供するステップと、
前記幾何学モデル及び前記訓練された画像モデルを使用して前記ゲージの合成画像を生成するステップであり、前記合成画像は前記目盛りに対して異なる位置にインジケータを有し、前記合成画像は訓練データセットを形成する、ステップと、
前記訓練データセットを使用してコンピュータビジョンのための機械学習モデルを訓練するステップと、
前記ゲージの正常動作中に前記ゲージの動作画像を受信するステップと、
前記コンピュータビジョンのための訓練された機械学習モデルを前記動作画像に適用して、前記ゲージの読み取りを予測するステップと
を含む方法。
【請求項2】
前記ゲージの前記訓練画像のセットを受信するステップは、
前記ゲージの1つから5つの訓練画像を前記訓練画像のセットとして受信するステップであり、それぞれの訓練画像は、当該訓練画像における前記目盛り及び前記ゲージの前記面上の前記インジケータを示すようにアノテーションが付けられている、ステップを含む、請求項1に記載の方法。
【請求項3】
前記ゲージの前記訓練画像のアノテーションに関するデータを受信するステップは、
前記目盛りの少なくともエンドポイントと、前記ゲージの前記面上の前記インジケータの少なくともエンドポイントとを示す前記アノテーションに関するデータを受信するステップを含む、請求項1に記載の方法。
【請求項4】
前記2つのエンドポイントの間の前記目盛り上の点を示す前記アノテーションに関するデータを受信するステップを更に含む、請求項3に記載の方法。
【請求項5】
前記アノテーションに関する前記データから導出された幾何学情報を使用して、前記ゲージを記述する幾何学モデルを生成するステップは、
前記ゲージの前記面上の前記目盛りの幾何学位置と、前記ゲージの前記面上の前記インジケータの幾何学位置及び移動とを記述する前記幾何学モデルを生成するステップを含む、請求項1に記載の方法。
【請求項6】
いずれかの所与のゲージについて前記ゲージのインジケータが前記所与のゲージの画像に追加されるか或いは前記所与のゲージの画像から除去される一方で前記ゲージの面が保たれるように、前記所与のゲージの画像を修正するように事前に訓練された画像モデルを提供するステップは、
いずれかの所与のゲージについて前記ゲージの面からインジケータを区別するためのマスクを使用して訓練された敵対的生成ネットワーク(GAN)である前記画像モデルを提供するステップを含む、請求項1に記載の方法。
【請求項7】
前記幾何学モデル及び前記訓練された画像モデルを使用して前記ゲージの前記合成画像を生成するステップは、
前記ゲージのそれぞれの訓練画像からの画像パッチを前記画像モデルへの入力として選択するステップと、
前記ゲージの前記インジケータの参照画像パッチを前記画像モデルに提供するステップと、
前記選択された画像パッチから前記インジケータを消去するか或いは前記選択された画像パッチ上に前記インジケータを描画するように、前記画像モデルを適用するステップと
を含む、請求項6に記載の方法。
【請求項8】
前記幾何学モデル及び前記訓練された画像モデルを使用して前記ゲージの前記合成画像を生成するステップは、
前記ゲージのそれぞれの訓練画像からの第1の画像パッチを前記画像モデルへの入力として選択するステップであり、前記第1の画像パッチは前記ゲージの前記インジケータを含む、ステップと、
前記第1の画像パッチから前記インジケータを消去するように、前記画像モデルを適用するステップと、
前記修正された第1の画像パッチを前記それぞれの訓練画像にペーストして、前記インジケータのない前記画像の基礎画像を生成するステップと、
第1の角度だけ第1の方向に前記基礎画像を回転させるステップと、
前記ゲージの前記基礎画像から第2の画像パッチを前記画像モデルへの入力として選択するステップと、
前記第2の画像パッチ上に前記インジケータを描画するように、前記画像モデルを適用するステップと、
前記修正された第2の画像パッチを前記基礎画像上にペーストし、合成画像を生成するステップと、
前記第1の角度だけ前記第1の方向とは反対の第2の方向に前記合成画像を回転させるステップと、
前記合成画像を前記訓練データセットの入力として提供するステップと、
異なる値の回転角度を使用して前記基礎画像を回転させることを繰り返し、前記訓練データセットを形成する複数の合成画像を生成するように前記合成画像を提供するステップと
を更に含む、請求項7に記載の方法。
【請求項9】
前記ゲージの閾値を示す訓練データを使用して前記コンピュータビジョンのための機械学習モデルを訓練するステップと、
前記コンピュータビジョンのための
訓練された機械学習モデルを適用して、前記ゲージの動作画像からの読み取りが前記閾値を上回るもの又は下回るものとして予測するステップと
を更に含む、請求項1に記載の方法。
【請求項10】
第1の動作画像を受信した後の持続時間を決定するステップと、
前記持続時間が第1の時間値を超えたことに応じて、動作画像が前記第1の時間値を超える前記持続時間の間に受信されないことを示すアラームを生成するステップと
を更に含む、請求項1に記載の方法。
【請求項11】
ゲージにより測定されるパラメータ値の目盛りを示すマーキングを含む面と、前記面上のインジケータの変位による前記目盛り上の前記パラメータ値の読み取りを示す前記インジケータとを有する前記ゲージを監視するシステムであって、
プロセッサと、
前
記プロセッサに結合されたメモリと
を含み、前記メモリは、実行されたときに前記プロセッサに対して、
前記ゲージの訓練画像のセットを受信するステップと、
前記ゲージの前記訓練画像のアノテーションに関するデータを受信するステップであり、前記アノテーションは前記目盛り及び前記ゲージの前記面上の前記インジケータを示す、ステップと、
前記アノテーションに関する前記データから導出された幾何学情報を使用して、前記ゲージを記述する幾何学モデルを生成するステップと、
いずれかの所与のゲージについて前記ゲージのインジケータが前記所与のゲージの画像に追加されるか或いは前記所与のゲージの画像から除去される一方で前記ゲージの面が保たれるように、前記所与のゲージの画像を修正するように事前に訓練された画像モデルを提供するステップと、
前記幾何学モデル及び前記訓練された画像モデルを使用して前記ゲージの合成画像を生成するステップであり、前記合成画像は前記目盛りに対して異なる位置にインジケータを有し、前記合成画像は訓練データセットを形成する、ステップと、
前記訓練データセットを使用してコンピュータビジョンのための機械学習モデルを訓練するステップと、
前記ゲージの正常動作中に前記ゲージの動作画像を受信するステップと、
前記コンピュータビジョンのための訓練された機械学習モデルを前記動作画像に適用して、前記ゲージの読み取りを予測するステップと
を実行させる命令を前記プロセッサに提供するように構成される、システム。
【請求項12】
前記メモリは、実行されたときに前記プロセッサに対して、
前記ゲージの1つから5つの訓練画像を前記訓練画像のセットとして受信するステップであり、それぞれの訓練画像は、当該訓練画像における前記目盛り及び前記ゲージの前記面上の前記インジケータを示すようにアノテーションが付けられている、ステップ
を実行させる命令を前記プロセッサに提供するように更に構成される、請求項11に記載のシステム。
【請求項13】
前記メモリは、実行されたときに前記プロセッサに対して、
前記目盛りの少なくともエンドポイントと、前記ゲージの前記面上の前記インジケータの少なくともエンドポイントとを示す前記アノテーションに関するデータを受信するステップ
を実行させる命令を前記プロセッサに提供するように更に構成される、請求項11に記載のシステム。
【請求項14】
前記メモリは、実行されたときに前記プロセッサに対して、
いずれかの所与のゲージについて前記ゲージの面からインジケータを区別するためのマスクを使用して訓練された敵対的生成ネットワーク(GAN)である前記画像モデルを提供するステップ
を実行させる命令を前記プロセッサに提供するように更に構成される、請求項11に記載のシステム。
【請求項15】
前記メモリは、実行されたときに前記プロセッサに対して、
前記ゲージのそれぞれの訓練画像からの画像パッチを前記画像モデルへの入力として選択するステップと、
前記ゲージの前記インジケータの参照画像パッチを前記画像モデルに提供するステップと、
前記選択された画像パッチから前記インジケータを消去するか或いは前記選択された画像パッチ上に前記インジケータを描画するように、前記画像モデルを適用するステップと
を実行させる命令を前記プロセッサに提供するように更に構成される、請求項11に記載のシステム。
【請求項16】
前記メモリは、実行されたときに前記プロセッサに対して、
前記ゲージの閾値を示す訓練データを使用して前記コンピュータビジョンのための機械学習モデルを訓練するステップと、
前記コンピュータビジョンのための
訓練された機械学習モデルを適用して、前記ゲージの動作画像からの読み取りが前記閾値を上回るもの又は下回るものとして予測するステップと
を実行させる命令を前記プロセッサに提供するように更に構成される、請求項11に記載のシステム。
【請求項17】
コンピュータにより実行されたときに前記コンピュータに対して、
ゲージの訓練画像のセットを受信するステップと、
前記ゲージの前記訓練画像のアノテーションに関するデータを受信するステップであり、前記アノテーションは目盛り及び前記ゲージの面上のインジケータを示す、ステップと、
前記アノテーションに関する前記データから導出された幾何学情報を使用して、前記ゲージを記述する幾何学モデルを生成するステップと、
いずれかの所与のゲージについて前記ゲージのインジケータが前記所与のゲージの画像に追加されるか或いは前記所与のゲージの画像から除去される一方で前記ゲージの面が保たれるように、前記所与のゲージの画像を修正するように事前に訓練された画像モデルを提供するステップと、
前記幾何学モデル及び前記訓練された画像モデルを使用して前記ゲージの合成画像を生成するステップであり、前記合成画像は前記目盛りに対して異なる位置にインジケータを有し、前記合成画像は訓練データセットを形成する、ステップと、
前記訓練データセットを使用してコンピュータビジョンのための機械学習モデルを訓練するステップと、
前記ゲージの正常動作中に前記ゲージの動作画像を受信するステップと、
前記コンピュータビジョンのための訓練された機械学習モデルを前記動作画像に適用して、前記ゲージの読み取りを予測するステップと
を実行させる命令を記憶した非一時的なコンピュータ読み取り可能媒体。
【請求項18】
前記命令は、前記コンピュータに対して、
前記ゲージの1つから5つの訓練画像を前記訓練画像のセットとして受信するステップであり、それぞれの訓練画像は、当該訓練画像における前記目盛り及び前記ゲージの前記面上の前記インジケータを示すようにアノテーションが付けられている、ステップ
を更に実行させる、請求項17に記載の非一時的なコンピュータ読み取り可能媒体。
【請求項19】
前記命令は、前記コンピュータに対して、
いずれかの所与のゲージについて前記ゲージの面からインジケータを区別するためのマスクを使用して訓練された敵対的生成ネットワーク(GAN)である前記画像モデルを提供するステップ
を更に実行させる、請求項17に記載の非一時的なコンピュータ読み取り可能媒体。
【請求項20】
前記命令は、前記コンピュータに対して、
前記ゲージのそれぞれの訓練画像からの画像パッチを前記画像モデルへの入力として選択するステップと、
前記ゲージの前記インジケータの参照画像パッチを前記画像モデルに提供するステップと、
前記選択された画像パッチから前記インジケータを消去するか或いは前記選択された画像パッチ上に前記インジケータを描画するように、前記画像モデルを適用するステップと
を更に実行させる、請求項17に記載の非一時的なコンピュータ読み取り可能媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、アナログゲージのデジタル化に関し、特に、アナログゲージのデジタル化及びアラームを可能にする訓練データセットを生成するための方法に関する。
【背景技術】
【0002】
工場及び産業施設は、環境のパラメータ又は機械の動作状態の測定又は監視のために、アナログゲージ又はメータを用いる機械を使用する。これらのゲージ又はメータは、ゲージがデジタル出力を有していないか、或いは、ユーザのハードウェア又はソフトウェアによりサポートされていないデジタル出力を有しているため、しばしば人間のオペレータにより手動で読み取られなければならない。例えば、主機械と共に使用される補助機械又は補助産業機器のようなレガシー産業機械は、機械又は機械が設置されている環境に関連するパラメータを測定して表示するためにアナログゲージをしばしば使用する。産業アナログゲージの使用の例は、熱伝達機器(例えば、冷却器)、ロボット、コンベヤー、グラインダー、クラッシャー、ペレット化機器、ウォータータンク、ホッパーローダー、ドライヤー、重量フィーダー及び他のものに存在し得る。産業プロセスは、「主」機械(射出成形機又は他の成形/押出機等)と1つ以上の補助機械(空冷式冷却器等)を有することがある。「主」機械は、電子的に監視できるようにデジタル的に接続されることがあるが、主機械に関連する補助機械(例えば、異なる製造業者からのもの)をデジタル的に接続することは課題である。
【0003】
場合によっては、ゲージ読み取り又はゲージ監視の自動化が望まれる。アナログゲージの監視をデジタル化するためのシステム及び方法が記載されている。アナログゲージの監視をデジタル化するための従来の解決策は、ゲージのデジタル画像をキャプチャし、画像を読み取ってゲージ読み取りを決定するために、機械学習に基づくコンピュータビジョンを使用することを含む。コンピュータビジョンに基づく手法を使用する従来の解決策は、商業用途の規模では経済的でない、かなりのゲージ毎のカスタマイズ(例えば、ゲージ面とインジケータを手動で分離すること)を必要とする。
【0004】
さらに、データセット集合は、ゲージ監視のための機械学習モデルを訓練する重要な部分である。機械学習に基づくコンピュータビジョンは、可能な入力画像を表す訓練データを必要とする。すなわち、有効なモデルを訓練するために、データセットは、ゲージパラメータ目盛りの範囲にわたって、複数の可能なインジケータ位置におけるゲージダイヤルの画像を含まなければならない。インジケータ位置を物理的に操作することにより、全てのインジケータ位置のゲージ画像を手動で作成することは、手間がかかり、多くの場合には実行不可能になる可能性がある。
【0005】
例えば、いくつかのゲージは、正常動作領域及び正常範囲外動作領域を有する。訓練画像を収集するためにゲージが正常範囲外動作領域にあるように機械を動作させることは、実行することが困難になったり、機会を損傷したり、手順/規則/法律に違反したり、及び/又は危険になったりする可能性がある。他の例では、ゲージに対してその完全な正常動作領域を通過させることは長い時間を要したり、大量のリソースを必要としたり、及び/又は高コストになる可能性がある。
【発明の概要】
【0006】
本開示は、例えば、特許請求の範囲に更に完全に記載されているように、例えば、図面のうち少なくとも1つに関連して以下に実質的に示される及び/又は説明されるような、ゲージ監視コンピュータビジョンシステムのための装置及び方法を開示する。
【0007】
いくつかの実施形態では、ゲージにより測定されるパラメータ値の目盛りを示すマーキングを含む面と、面上のインジケータの変位による目盛り上のパラメータ値の読み取りを示すインジケータとを有するゲージを監視する方法は、ゲージの訓練画像のセットを受信するステップと、ゲージの訓練画像のアノテーションに関するデータを受信するステップであり、アノテーションは目盛り及びゲージの面上のインジケータを示す、ステップと、アノテーションに関するデータから導出された幾何学情報を使用して、ゲージを記述する幾何学モデルを生成するステップと、いずれかの所与のゲージについてゲージのインジケータが所与のゲージの画像に追加されるか或いは所与のゲージの画像から除去される一方でゲージの面が保たれるように、所与のゲージの画像を修正するように事前に訓練された画像モデルを提供するステップと、幾何学モデル及び訓練された画像モデルを使用してゲージの合成画像を生成するステップであり、合成画像は目盛りに対して異なる位置にインジケータを有し、合成画像は訓練データセットを形成する、ステップと、訓練データセットを使用してコンピュータビジョンのための機械学習モデルを訓練するステップと、ゲージの正常動作中にゲージの動作画像を受信するステップと、コンピュータビジョンのための訓練された機械学習モデルを動作画像に適用して、ゲージの読み取りを予測するステップとを含む。
【0008】
他の側面は、これら及び他の新規な側面についての対応する方法、システム、装置及びコンピュータプログラム製品を含む。
【0009】
ここに記載の特徴及び利点は包括的なものではなく、多くの更なる特徴及び利点は、図及び説明を鑑みて当業者に明らかになる。さらに、明細書で使用されている言葉は、主として、可読性及び教育目的のために選択されており、記載の技術の範囲を限定するものではない点に留意すべきである。
【図面の簡単な説明】
【0010】
本発明の様々な実施形態が、以下の詳細な説明及び添付の図面に開示される。
【
図1】デジタル監視が望まれる例示的なアナログゲージを示す。
【
図2】
図2(a)及び
図2(b)を含み、ゲージ監視コンピュータビジョンシステムが実装され得るシステム環境を示す。
【
図3】本開示の実施形態における機械学習に基づくコンピュータビジョンを使用したゲージ監視のための方法を示すフローチャートである。
【
図4】本開示の実施形態におけるゲージ監視コンピュータビジョンシステムを示すブロック図である。
【
図5】
図5(a)及び
図5(b)を含み、いくつかの例におけるクロッピング及びスケーリングのプロセスを示す。
【
図6】
図6(a)及び
図6(b)を含み、いくつかの実施形態におけるゲージ監視コンピュータビジョンシステムにおけるゲージパラメータ抽出モジュールの代替構成を示す。
【
図7】いくつかの実施形態におけるコンピュータビジョンモジュールのブロック図である。
【
図8】本開示の実施形態におけるゲージ監視コンピュータビジョンシステムを実装するための計算デバイス、計算エンティティ又はサーバのコンピュータアーキテクチャを表し得る例示的な計算システムのブロック図である。
【
図9】
図9(a)~
図9(d)を含み、いくつかの実施形態におけるゲージ画像のアノテーション及びゲージの幾何学モデルの作成を示す。
【
図10】いくつかの実施形態において、任意の位置にゲージインジケータを有する合成画像のセットを生成するためのプロセスを示す。
【
図11】いくつかの実施形態において、任意の位置にゲージインジケータを有する合成画像のセットを生成するために、インジケータを基礎画像上に描画するためのプロセスを示す。
【
図12】本開示のいくつかの実施形態において、敵対的生成ネットワーク(generative adversarial network, GAN)の画像対画像変換器として実装された画像モデルのブロック図である。
【
図13】いくつかの例におけるジェネレータGの実装を示す擬似コードフラグメントを示す。
【
図14】
図14(a)~
図14(c)を含み、いくつかの実施形態において画像モデルを訓練できるマスクを有する画像パッチの例を示す。
【
図15】いくつかの実施形態におけるGAN画像モデルの訓練ケースを示す表である。
【
図16】いくつかの実施形態における機械学習に基づくコンピュータビジョンシステムにおける検出/認識モジュールを示す。
【
図17】いくつかの実施形態におけるコンピュータビジョンモジュールの検出/認識モジュールへの閾値条件の適用を示す。
【
図18】いくつかの実施形態における機械学習に基づくコンピュータビジョンシステムにおいて閾値入力を組み込んだ検出/認識モジュールを示す。
【発明を実施するための形態】
【0011】
本開示の実施形態によれば、アナログゲージ監視のためのコンピュータビジョンシステムは、監視されるゲージの1つ又は数個の画像に基づいて生成された合成訓練データと、ゲージの目盛り及びインジケータを記述する幾何学モデルとを使用して訓練された機械学習モデルを使用する。いくつかの実施形態では、合成訓練データは、敵対的生成ネットワーク(generative adversarial network, GAN)タイプのニューラルネットワークとして実装された画像モデルを使用して生成され、ゲージインジケータをゲージ背景(又はゲージの面)から区別するためにマスクを使用して訓練される。さらに、いくつかの実施形態では、訓練されたGAN画像モデルは、インジケータをゲージ背景から消去するため或いはインジケータをゲージ背景に描画し、合成訓練データとして使用する合成画像のセットを生成するために使用される。本開示のゲージ監視コンピュータビジョンシステムは、監視されるゲージの1つ又は数個の実際の画像のみを使用して、全ての或いは実質的に全ての可能なゲージ値について生成された合成訓練データを使用してシステムを訓練し、幾何学モデルを提供するために画像にアノテーションを付けるのに少ない人間の労力のみを必要とすることにより、従来の解決策に対する利点を実現する。
【0012】
このように訓練されると、訓練された機械学習モデルによって、ゲージ監視コンピュータビジョンシステムは、動作中のゲージを監視するために適用できる。特に、ゲージ監視コンピュータビジョンシステムは、動作中のゲージの現在の状態又は現在の読み取りを示す動作画像を受信する。ゲージ監視コンピュータビジョンシステムは、訓練された機械学習モデルを使用して、ゲージの現在の読み取り又は現在の状態を予測する出力を生成する。いくつかの例では、ゲージ監視コンピュータビジョンシステムは、ゲージパラメータ値の二値化である出力を生成する。出力は、ゲージ目盛り(例えば、0~1)に比例する抽象的なインジケータ値でもよく、或いは、出力は、ゲージにより測定されている実世界の物理パラメータ値にマッピングされてもよい。更に他の実施形態では、ゲージ監視コンピュータビジョンシステムは、ゲージの現在の読み取りが所与の閾値を上回るか或いは下回ることに基づいてアラームを生成できる。言い換えると、ゲージ監視コンピュータビジョンシステムは、動作中のゲージの画像からゲージ値を読み取るために、訓練された機械学習モデルを使用し、ゲージのパラメータ値である出力又は閾値を上回るか或いは下回るゲージの状態を提供できる。
【0013】
本説明では、デジタルツイン(digital twin)は、産業機械のような物理的物体のデジタルレプリカを示す。デジタルレプリカは、仮想レプリカ又はサイバーレプリカでもよい。デジタルレプリカの状態が対応する物理エンティティと同期するように、データが物理的物体から送信される。いくつかの例では、産業機械におけるゲージの値は、アナログ方式で機械の状態を表すことができる。コンピュータビジョンを使用してこのアナログ状態をデジタル形式に変換することは、産業機械のためのデジタルツインの作成を可能にする。デジタルツインにより使用されるデジタル表現はまた、ゲージにより提供される状態に加えて、どのように物理エンティティ(産業機械)が動作するかの要素及びダイナミクス又は関心のある状態についての情報を含んでもよい。本開示の実施形態では、ゲージ監視コンピュータビジョンシステムは、産業用アナログゲージのためのデジタルツインを実装し、ゲージ読み取りを監視するため及び/又はゲージ読み取りが特定の状態を示すときにアラームを提供するために使用される
本説明では、メータとも呼ばれるゲージは、パラメータを測定してパラメータに関連する量又は状態を目盛り上に示すデバイスを示す。
図1は、デジタル監視が望まれる例示的なアナログゲージを示す。アナログゲージは、温度、圧力、電圧又は電流のような物理パラメータを測定するためにしばしば使用される。
図1を参照すると、圧力ゲージ1及び2の例並びに電圧計3の例が示されている。アナログゲージは、ゲージの背景である面を含み、その面上のマーキングは、ゲージにより測定されるパラメータの目盛りを示す。目盛りは、ゲージにより測定されるパラメータ値の範囲を形成する最小値及び最大値を有する。アナログゲージはまた、典型的には針の形式のインジケータを含み、インジケータは、所与のパラメータの変化に応じて移動するように較正される。目盛りは、最小パラメータ値から最大パラメータ値までの可能なインジケータの移動の範囲を示す。
【0014】
インジケータは、ゲージの面上で目盛りに対して移動する。
図1の例示的なゲージ1~3により示すように、インジケータは、中心点の周りを放射状に移動してもよい。他の例では、ゲージは、流体レベルゲージのレベルインジケータのように、直線に沿って移動するインジケータを含んでもよい。インジケータが放射状に移動する場合、目盛りは円弧の形式であり、インジケータの読み取り値は、インジケータの偏向角に関して本質的に線形である。インジケータが直線に沿って移動する場合、目盛りは直線の形式であり、インジケータの読み取り値は、インジケータの変位位置に関して本質的に線形である。目盛りは、様々なマーキングのスタイルを使用してゲージの面にマーキングされてもよく、特定の目盛りマーキングスタイル又はインジケータ針タイプは、本開示の実施にとって重要ではない。透明なパイプ内に流体が見える流体レベルゲージ、透明なパイプ内でボールが移動するガス流量ゲージ、又は容器内の透明な窓を通じて材料が見える材料レベルゲージについて、材料の頂部、ボール又は流体の頂部がインジケータであり、透明なパイプ又は窓が面であり、透明なパイプ又は窓の底部及び頂部が、他に明示的なマーキングがない場合には、目盛りの最小及び最大のマーキングである。
【0015】
いくつかの例では、アナログゲージは、空気圧又は流体圧を測定するために使用される圧力ゲージである。例えば、圧力ゲージ1は、kPa単位及びpsi単位の圧力読み取り値を提供する。圧力ゲージは、0psiから160psiのパラメータ範囲を有する目盛りを有する。他の例では、圧力ゲージは、正常動作の領域及び正常範囲外動作の領域を更に示してもよく、圧力ゲージ2により示すように、125PSIから250PSIのカラーバーが正常範囲外動作を示す。他の例では、ゲージは、125psiのような閾値を示してもよい。電圧計3の例では、電圧計は-5Vから+5Vの目盛りを含む。
【0016】
本開示の実施形態では、ゲージ監視コンピュータビジョンシステムは、動作中のゲージの画像によりキャプチャされたゲージの読み取りを示す出力値を提供することにより、アナログゲージを二値化するために適用される。いくつかの実施形態では、ゲージ監視コンピュータビジョンシステムは、0.0から0.1のような無次元の浮動小数点値である出力を生成する。例えば、0.0の出力値はゲージ目盛り上の最小インジケータ値に対応し、1.0の出力値はゲージ目盛り上の最大インジケータ値に対応する。他の実施形態では、ゲージ監視コンピュータビジョンシステムは、浮動小数点出力値を目盛りにより測定されるパラメータ値にマッピングし、実世界の物理パラメータ値を出力として提供する。本開示では、アナログゲージのデジタル化は、アナログゲージの読み取りを示すデジタル出力を生成することを示す。本開示では、ゲージアラームは、ゲージ読み取りが閾値を上回った場合又は下回った場合のようなゲージの状態の指示を生成することを示す。この指示は、場合によってはアラート又はアラームと呼ばれる。
【0017】
いくつかの場合、ゲージは、1つよりも多くのインジケータ及び対応する目盛りを含んでもよい。本開示の実施形態では、ゲージ監視コンピュータビジョンシステムは、各ゲージが1つのインジケータ及び関連する目盛りを有する別々のゲージとして、インジケータ及び対応する目盛りの各セットを扱う。
【0018】
図2(a)及び
図2(b)を含む
図2は、ゲージ監視コンピュータビジョンシステムが実装され得るシステム環境を示す。
図2を参照すると、本開示のゲージ監視コンピュータビジョンシステム20は、産業機械8の一部として構成されるアナログゲージのような1つ以上のアナログゲージ4、5を監視するように配置される。ゲージ監視コンピュータビジョンシステム20は、アナログゲージ4、5の画像を入力として受信する。例えば、1つ以上のデジタルカメラ10は、ゲージ4、5を観察するために使用されてもよい。本発明のコンピュータビジョンシステムの顕著な特徴は、コンピュータビジョンシステムが、ゲージの1つ又は数個のアノテーション付きの画像のみを使用して訓練されることである。システム20は、アノテーションデータから導出された幾何学モデルと、事前に訓練された画像モデルと、ゲージの数個の画像とを使用して、合成訓練データを生成する。このように訓練されると、システム20は、動作中のゲージ4、5の画像を受信し、ゲージの現在の読み取りを示す出力を提供する。いくつかの例では、システム20は、監視されているゲージを二値化するために、実世界のパラメータ値に変換された出力値を提供してもよい。他の例では、システム20は、ゲージ読み取りが所与の閾値を上回るか或いは下回ることに応じて、アラーム通知を提供してもよい。
【0019】
図2(a)に示すように、ゲージ監視コンピュータビジョンシステム20は、監視されるゲージがある位置のようなエッジに実装できる。代替として、
図2(b)に示すように、ゲージ監視コンピュータビジョンシステム20は、監視されるゲージから遠隔に実装できる。画像キャプチャデバイス10又はカメラ10と通信する他の計算デバイスは、データネットワーク30上でシステム20と通信するように構成できる。画像キャプチャデバイス10によりキャプチャされた画像は、データネットワーク30上でシステム20に送信される。他の実施形態では、以下により詳細に説明するように、画像がデータネットワーク30上でシステム20に送信される前に、特定の画像処理機能が画像キャプチャデバイス10で実行されてもよい。
【0020】
本開示において、画像キャプチャデバイス10は、ゲージ上のインジケータをキャプチャするのに十分な解像度で、ゲージを含む静止画像又はビデオデジタル出力を提供するデジタルカメラでもよい。いくつかの例では、カメラ10及びゲージ4、5は、位置が固定されており、例えば、機械又は機械を収容するビルのいずれかに取り付けられる。好ましくは、ゲージ4又は5とカメラ10との相対位置は、ピクセル精度で正確であることが要求されない。いくつかの実施形態では、コンピュータビジョンシステム20は、ゲージのサイズの5%まで又は10%までのような、適度な位置差に対する許容値を有する。
【0021】
いくつかの実施形態では、複数のゲージの画像をキャプチャするために単一のカメラが使用できる。他の実施形態では、カメラは、2秒毎に1つの画像のように、ゲージの画像を周期的にキャプチャするように構成されてもよい。更に他の実施形態では、カメラは、カメラが観察したものの変化に応じて画像を提供する。
【0022】
本開示の実施形態では、カメラ10は、RGBフォーマットの画像又はグレイスケール画像を提供する。カメラ10はまた、RGBに変換可能な色空間における画像を提供してもよい。他の実施形態では、カメラ10は、観察されているシーンに関する深度情報又はマルチスペクトル情報を提供してもよい。
【0023】
機械学習に基づくコンピュータビジョンは、全ての可能な入力画像を表す訓練データを必要とする。これは、全ての可能なゲージ値におけるゲージの入力画像を取得することが困難又は不可能であるので、産業機械におけるゲージ監視の課題を提示する。いくつかのゲージは、正常動作領域及び正常範囲外動作領域を有する。訓練画像を収集するためにゲージが正常範囲外動作領域にあるように機械を動作させることは、実行することが困難になったり、機会を損傷したり、手順/規則/法律に違反したり、及び/又は危険になったりする可能性がある。他の例では、ゲージに対してその完全な正常動作領域を通過させることは長い時間を要したり、大量のリソースを必要としたり、及び/又は高コストになる可能性がある。
【0024】
本開示の実施形態では、ゲージ監視コンピュータビジョンシステムは、ゲージ値の1つ又は数個の画像のみを与えられたときに、実質的に全ての可能なゲージ値について合成訓練データを生成する。本開示のゲージ監視コンピュータビジョンシステムは、最小限のゲージ毎のカスタマイズを必要とするアナログゲージのデジタル監視を可能にし、最小限の労力で様々なタイプのゲージを監視するように適合させることができる。
【0025】
図3は、本開示の実施形態における機械学習に基づくコンピュータビジョンを使用したゲージ監視のための方法を示すフローチャートである。いくつかの実施形態では、ゲージ監視方法は、
図2のゲージ監視コンピュータビジョンシステムで実施できる。
図3を参照すると、ゲージ監視方法50は、監視されるゲージの1つ又は数個の訓練画像を受信する(52)。訓練画像は、ゲージ目盛り及びゲージの面上のインジケータを示すアノテーションを含む。いくつかの実施形態では、アノテーションは、フィールドエンジニアのようなユーザにより提供され、少ない人間の労力を必要とする。訓練画像のアノテーションについては、以下により詳細に説明する。本開示の実施形態では、方法50は、監視されるゲージについての1つ又は数個の訓練画像のセットと、各訓練画像に関連するアノテーションデータとを受信する。一例では、訓練画像のセットは、5個以下の画像を含む。アノテーションデータは、目盛り及びゲージの面上のインジケータの位置を示す。いくつかの実施形態では、アノテーションデータは、ゲージについての閾値を更に示してもよい。
【0026】
方法50は、アノテーションに関するデータから導出された幾何学情報を使用してゲージを記述する幾何学モデルを生成する(54)。特に、幾何学モデルは、ゲージの面上の目盛りの位置と、ゲージインジケータの位置及び移動とを記述する。一実施形態では、目盛り及びインジケータの位置は、ゲージの画像における目盛り及びインジケータのピクセル位置又は相対ピクセル位置である。方法50は、所与のゲージについてゲージインジケータを追加又は除去する一方でゲージ面を保つようにゲージ画像を修正するように事前に訓練された画像モデルを提供する(56)。方法50は、ゲージの合成画像を生成するために、幾何学モデル及び訓練された画像モデルを使用する(58)。合成画像は、合成画像のセットがゲージについての訓練データセットを形成するように、目盛りに対して異なる位置にインジケータを有する。
【0027】
このように生成された合成訓練データによって、方法50は、訓練データセットを使用してコンピュータビジョンのための機械学習モデルを訓練する(60)。その結果、コンピュータビジョンのための訓練された機械学習モデルが、対象のゲージについて取得される。次いで、方法50は、動作中のゲージを監視するために、コンピュータビジョンのための訓練された機械学習モデルを適用できる。方法50は、ゲージの動作中にゲージの動作画像を受信する(62)。動作画像はアノテーションが付けられる必要はない。方法50は、コンピュータビジョンのための訓練された機械学習モデルを動作画像に適用し、ゲージの読み取りを予測する(64)。
【0028】
図4は、本開示の実施形態におけるゲージ監視コンピュータビジョンシステムを示すブロック図である。
図4を参照すると、ゲージ監視コンピュータビジョンシステム80は、ゲージパラメータ抽出モジュール82と、機械学習モデル訓練モジュール90とを含む。システム80は、監視されるゲージ4のカメラ画像15を受信するためにカメラ10と通信する。いくつかの実施形態では、ゲージパラメータ抽出モジュール82は、カメラ画像の前処理を実行する画像前処理モジュール84を含む。いくつかの実施形態では、それぞれのキャプチャされたカメラ画像について、監視されるゲージを含む関心領域(region of interest, ROI)が識別され、キャプチャされたカメラ画像は、コンピュータビジョンシステムに提供される画像が、ゲージが位置する周囲のシーンではなく、実質的にゲージのみを含むように、ROIにクロッピングされる。いくつかの実施形態では、ユーザは、カメラ画像におけるROIを決定し、システム80は、カメラ画像をROIにクロッピングし、クロッピングされた画像をコンピュータビジョンシステムについての所与の入力画像サイズにスケーリングする。関心領域は、正方形又は長方形領域とすることができる。画像前処理モジュール84は、ユーザにより識別されるように、ROIへのカメラ画像のクロッピング及びスケーリングを実行する。
【0029】
図5(a)及び
図5(b)を含む
図5は、いくつかの例におけるクロッピング及びスケーリングのプロセスを示す。
図5(a)を参照すると、カメラ画像130が取得される。この例では、カメラ画像は1920x1080ピクセルのサイズを有する。カメラ画像130には、監視されるゲージの周囲の関心領域135でアノテーションが付けられる。例えば、関心領域135は、ピクセル位置X,Yにより識別される。次いで、カメラ画像130は、ゲージのクロッピングされた画像を生成するように、関心領域135にクロッピングされる。
図5(b)を参照すると、カメラ画像134が取得される。この例では、カメラ画像は1920x1080ピクセルのサイズを有するが、画像はゲージに対してズームインされる。カメラ画像134は、監視されるゲージの周囲の関心領域137でアノテーションが付けられる。例えば、関心領域137は、ピクセル位置X,Yにより識別される。次いで、カメラ画像134は、ゲージのクロッピングされた画像を生成するように、関心領域137にクロッピングされる。
【0030】
クロッピングされた画像は、コンピュータビジョンシステムに提供される全ての画像部分が同じサイズになるように、スケーリングされる。本例では、カメラ画像130についてのクロッピングされた画像135はより小さくてもよく(例えば、320ピクセル)、カメラ画像134についてのクロッピングされた画像137はより大きくてもよい(例えば、640ピクセル)。システム80は、クロッピングされた画像の全てを同じサイズ、例えば、300x300ピクセルにスケーリングする。したがって、画像部分132は、クロッピングされた画像135から作成され、画像部分136は、クロッピングされた画像137から作成され、双方の画像部分が同じサイズにスケーリングされる。カメラ画像が複数のゲージを含む場合、各ゲージはそれ自身の関心領域で識別される。
【0031】
いくつかの実施形態では、カメラ10が或る角度でゲージ4を観察している場合、ゲージのアスペクト比及び/又は水平及び垂直軸が保たれるように、レクティフィケーション(rectification)及び/又はパースペクティブコレクション(perspective correction)がゲージ画像に適用できる。
【0032】
一実施形態では、同じゲージについての複数の同様の関心領域が、同じ画像からクロッピングされて独立して認識され、結果は一貫性投票(consistency voting)に使用される。例えば、同じ中心を有する3つの関心領域が選択され、1つのROIは前述のように選択された画像スケールを有し、1つは5%大きいスケールを有し、1つは5%小さいスケールを有する。次いで、3つのゲージ画像は一貫性投票に使用できる。3つの関心領域の結合のクロッピングされた画像は、スケーリングされないか或いは全てのROIの最高の解像度にスケーリングされて、カメラからコンピュータビジョンシステムに送信されてもよい。
【0033】
一実施形態では、連続する画像は、同じゲージについて複数の同様のROIのセットのうちの1つを使用してクロッピングできる。
【0034】
このようにして処理されると、スケーリングされたサイズの画像部分のみがコンピュータビジョンシステム80により処理される。このように、システム80は、限られたサイズの画像のみを扱い、計算及びメモリの負担を低減する。
【0035】
図4に戻ると、ここではゲージ画像と呼ばれる処理された画像部分が、更なる処理のためにシステム80に提供される。例えば、コンピュータビジョンモジュール86にコンピュータビジョンのための訓練された機械学習モデルが提供されたとき、ゲージ画像は、予測ゲージ読み取り値のような出力を生成するようにコンピュータビジョンモジュール86により処理される。本開示の実施形態では、ゲージ監視システム80は、ゲージ監視機能を実行するために様々な組み合わせで構成されてもよい。
図4に示す構成では、ゲージ監視コンピュータビジョンシステムは、クラウドに実質的に実装される。特に、コンピュータビジョンモジュール86はクラウドに配置され、データネットワーク30上で送信された画像前処理モジュール84からの処理された画像を受信する。いくつかの実施形態では、画像前処理モジュール84は、それぞれのROIへの画像クロッピング及びスケーリングを実行する。他の実施形態では、画像前処理モジュール84は、レクティフィケーション又はパースペクティブコレクションのような他の画像処理機能を実行してもよい。画像前処理モジュール84は、カメラ10及びゲージ4の近くのエッジに配置される。機械学習モデル訓練モジュール90はまた、クラウド(すなわち、データセンタ内のサーバ)に配置され、データネットワーク30上で画像前処理モジュール84と通信する。
図4の構成は例示のみであり、限定することを意図するものではない。コンピュータビジョンシステム80の他の構成も可能であり、本開示の範囲内である。
【0036】
図6(a)及び
図6(b)を含む
図6は、いくつかの実施形態におけるゲージ監視コンピュータビジョンシステムにおけるゲージパラメータ抽出モジュールの代替構成を示す。
図6(a)を参照すると、ゲージ監視コンピュータビジョンシステム80は、画像前処理機能を含み、クラウド内に完全に配置されてもよい。この場合、カメラ画像15は、データネットワーク30上で画像前処理モジュール84に送信される。次いで、クロッピングされてスケーリングされたゲージ画像は、出力予測を生成するためにコンピュータビジョンモジュール86に提供されるか、或いは、訓練目的のために機械学習モデル訓練モジュール90(
図4)に提供される。
【0037】
図6(b)を参照すると、ゲージ監視コンピュータビジョンシステム80は、完全にエッジに配置されてもよく、すなわち、システム80は、カメラ及び監視されるゲージの位置に配置されてもよい。画像前処理84及びコンピュータビジョンモジュール86は、全てエッジに配置されるか、或いは、カメラ及びゲージと同一場所に配置される。訓練された機械学習モデルを使用するコンピュータビジョンモジュール86は、予測ゲージ読み取りのような出力を生成するように、ゲージ画像を処理する。いくつかの実施形態では、コンピュータビジョンモジュール86の出力は、データネットワーク上で他のシステム又はユーザに提供されてもよい。さらに、
図4を参照すると、いくつかの実施形態では、機械学習モデル訓練モジュール90は、クラウドに配置されてもよく、訓練画像を受信するためにデータネットワーク上で画像前処理モジュール84と通信し、訓練された機械学習モデルを提供するためにコンピュータビジョンモジュール86と通信する。本開示の実施形態では、データネットワーク30は、有線及び/又は無線ネットワーク及び/又は他のコンピュータ間通信ネットワークのいずれかのタイプ又は組み合わせとすることができる。
【0038】
図7は、いくつかの実施形態におけるコンピュータビジョンモジュールのブロック図である。
図7を参照すると、コンピュータビジョンモジュールは、動作ゲージ画像を検出及び認識するために訓練された機械学習モデル98を使用する検出/認識モジュール140を含む。本説明において、動作ゲージ画像又は動作画像は、訓練データのために取得される画像とは対照的に、動作中にゲージから取得されるゲージ画像を示す。動作画像はアノテーションを含まず、アノテーションが付けられる必要はない。
【0039】
検出/認識モジュール140は、各動作画像についての予測ゲージ読み取りを示す出力(88)を生成する。一例では、出力は、0から1のような正規化された範囲でのゲージ読み取り値を示す正規化された値である。コンピュータビジョンモジュール内の検出/認識モジュール140の構造については、以下により詳細に説明する。
【0040】
いくつかの実施形態では、検出/認識モジュール140は、予測ゲージ読み取り値を所与の閾値を上回るか或いは下回るものとして分類するように訓練される。この場合、コンピュータビジョンモジュール86は、予測ゲージ読み取りが閾値を上回ったり下回ったりしたときのような、特定の所望の状態についての通知を生成するためのアラームロジック142を含んでもよい。他の実施形態では、コンピュータビジョンモジュール86は、ゲージにより測定されている実世界のパラメータ値に出力値をマッピングするためのマッピングモジュール144を含む。このように、アナログゲージのデジタル出力値が提供できるアナログゲージの二値化が実現される。アラームロジック及びマッピングモジュールは任意選択であり、本開示の代替の実施形態では一方又は双方が省略されてもよい。
【0041】
いくつかの実施形態では、アラームロジック142は、以下の条件について通知を送信するように訓練される。
【0042】
(1)ゲージ読み取り値が閾値の上又は下に変化する。アラームロジックは、ゲージ読み取り値が閾値の周りでドリフトするときに複数のアラームを送信することを回避するようにヒステリシスを適用してもよい。ヒステリシスを実装するために複数の閾値が使用されてもよい。
【0043】
(2)ゲージは指定量の時間に読み取り可能でないか或いは見えない。例えば、ゲージは5分間見えなくなる。
【0044】
(3)指定量の時間内にカメラから画像を受信していない。例えば、5分間画像が受信されていない。
【0045】
いくつかの実施形態では、通知は、電子メール、SMS、携帯電話又は他のモバイルデバイスへのプッシュ通知、Amazon AWS Simple Notification Service(SNS)の形式とすることができる。
【0046】
いくつかの実施形態では、マッピングモジュール144は、コンピュータビジョンモジュールにより生成された正規化された無次元の出力値(0.0....1.0)を実世界の値(例えば、PSI/volt/RPM/volume)に変換するように構成できる。一実施形態では、簡単な線形ゲージのマッピングは、出力値0.0及び1.0に対応する実世界の値の間で補間し、測定の単位を記述する文字列を実世界の値の出力に提供することにより、線形に表されてもよい。他の実施形態では、いずれかのゲージ(線形、対数、任意の非線形等)のマッピングは、多く(例えば10個)の値に対応する実世界の値の間を補間し、測定の単位を記述する文字列を実世界の値の出力に提供することにより、区分線形に表されてもよい。
【0047】
一例では、圧力(PSI)ゲージは、0PSIと10PSIとの間で正確ではなく、10PSIと160PSIとの間で線形である。マッピングモジュールは、0PSI、10PSI及び160PSIについての値の3つの値を使用して、このゲージを区分線形に表してもよい。
【0048】
図4に戻ると、ゲージ監視コンピュータビジョンシステム80は、モジュール86においてコンピュータビジョンを実行するための機械学習モデルを使用する。機械学習モデルは、監視されるゲージ(ゲージ4)を認識及び検出するように訓練される。このため、監視される各ゲージについて、システム80は、ゲージを認識して検出するように、機械学習モデルを訓練する。本開示の実施形態では、システム80は、ゲージ4についての機械学習モデルを訓練するための機械学習モデル訓練モジュール90を含む。訓練モジュール90は、機械学習モデルを訓練するためにアノテーション付きの訓練画像のセットを使用する。上記のように、ゲージ監視のための機械学習は、アナログゲージについて取得することが困難又は不可能である全ての可能なゲージインジケータ位置の入力画像を必要とする。本開示の実施形態では、訓練モジュール90は、コンピュータビジョンのための機械学習モデルを訓練するために、1つ又は数個の訓練画像のみを使用する。コンピュータビジョンシステムの配備における容易性及びコスト削減が達成される。
【0049】
このため、機械学習モデル訓練の目的で、1つ又は数個のカメラ画像が取得され、カメラ画像が上記のようにクロッピング及びスケーリングされ、目盛り及びゲージ面上のインジケータを示すために更にアノテーションが付けられる。1つ又は数個のアノテーション付きのゲージ画像は、訓練画像のセットを形成する。訓練画像のセットは訓練モジュール90に提供される。訓練モジュール90は、訓練データセットとして合成画像のセット(94)を生成する。合成画像は、他のゲージの画像を使用して事前に訓練された画像モデル(92)と、監視されるゲージの訓練画像のセットと、訓練画像からのアノテーションデータから導出されたゲージの幾何学モデルとを使用して生成される。合成画像のセットは、コンピュータビジョンのための機械学習モデル(96)を訓練するために使用される訓練データセットを形成する。このように、訓練された機械学習モデル(98)は、1つ又は数個の実際のゲージ画像のみから取得される。次いで、訓練された機械学習モデル(98)は、正常動作中のゲージを用いてカメラにより提供されたゲージ画像に対する検出及び認識を実行するために、コンピュータビジョンモジュール86に提供される。コンピュータビジョン検出の目的で、ゲージ画像はアノテーションが付けられる必要がない点に留意すべきである。アノテーションは、訓練画像を準備するためにのみ実行される。
【0050】
本開示の実施形態では、機械学習モデルに基づくコンピュータビジョンは、合成画像の訓練データセットを使用して訓練される。コンピュータビジョン訓練は、使用される特定のコンピュータビジョンモデルに従って実行される。訓練データは、合成画像及び正解情報(例えば、対応するインジケータ位置、インジケータ値及び/又は閾値を上回る/下回る)で構成される。いくつかの場合、訓練ソフトウェアは、画像(例えば、JPEG)及び正解情報(例えば、JSON)について別々のファイルを使用してもよい。他の場合、訓練ソフトウェアは、画像及び正解情報の双方を有するファイル(例えば、TensorFlow TFRecords)を使用してもよい。いくつかの例では、RMSprop、Adadelta及びAdamを含む、共通の最適化技術が訓練に使用できる。
【0051】
本開示のゲージ監視コンピュータシステム80は、従来の技術よりも多くの利点を実現する。第一に、コンピュータビジョンモジュール内の検出/認識モジュールと、訓練モジュール内で使用される画像モデルは、最小限に処理された画像データで動作する。例えば、関心領域はカメラ画像において識別され、画像部分はRGB(又はグレイスケール等)カメラ画像からクロッピング及びスケーリングされる。画像の二値化又はRGB若しくはグレイスケール画像のバイナリ画像への変換は必要とされない。エッジ検出、接続成分分析、ライン検出又はHough変換、基準画像又はテンプレート画像、及び極性画像又は強度プロファイルへの変換は実行又は使用されない。
【0052】
システム80は、手作業に頼る代わりに、訓練のための合成ゲージ画像を生成するために機械学習を使用する。したがって、ゲージ面とゲージインジケータとの手動の分離は必要とされない。さらに、コンピュータビジョンモジュールは、いかなるマスクも使用しない。
【0053】
さらに、システム80は、インジケータがライン、最長ライン又はテンプレートによってモデル化できるという仮定を行わない。実際のゲージについては、インジケータは、1つ以上の影を落とす可能性があり及び/又は1つ以上の反射を有する可能性がある。システム80は、インジケータが任意の形状になることを可能にする柔軟性を実現する。
【0054】
図8は、本開示の実施形態におけるゲージ監視コンピュータビジョンシステムを実装するための計算デバイス、計算エンティティ又はサーバのコンピュータアーキテクチャを表し得る例示的な計算システムのブロック図である。
図8を参照すると、いくつかの実施形態では、計算デバイス100は、いくつかの例に従って、1つ以上のプロセッサ108と、メモリ116と、任意選択のディスプレイデバイス110と、通信ユニット118と、データストレージ112と、入力/出力デバイス114とを含んでもよいシステムとして実装される。システム100のコンポーネントは、互いに通信するためにバス120に通信可能に結合される。計算デバイスは、機械学習に基づくゲージ監視機能を提供するためのゲージ監視コンピュータビジョンアプリケーション102を更に含む。
【0055】
プロセッサ108は、様々な入力/出力演算、論理演算及び/又は数学演算を実行することによりソフトウェア命令を実行してもよい。プロセッサ108は、データ信号を処理するための様々な計算アーキテクチャを有してもよい。プロセッサ108は、物理的及び/又は仮想的なものでもよく、単一の処理ユニット又は複数の処理ユニット及び/又はコアを含んでもよい。いくつかの実装では、プロセッサ108は、電子表示信号を生成し、ディスプレイデバイス及び他の機能に提供可能でもよい。いくつかの実装では、プロセッサ108は、データ及び命令にアクセスしてデータを記憶するために、バス120を介してメモリ116に結合される。バス120は、プロセッサ108を、例えば、メモリ116、通信ユニット118、コンピュータビジョンアプリケーション102及びデータストレージ243を含むシステムの他のコンポーネントに結合してもよい。他のプロセッサ、オペレーティングシステム及び物理的構成が可能であることは当業者にとって明らかである。
【0056】
メモリ116は、システムの他のコンポーネントのためのデータを記憶し、データへのアクセスを提供してもよい。いくつかの実装では、メモリ116は、プロセッサ108により実行され得る命令及び/又はデータを記憶してもよい。命令及び/又はデータは、ここに記載の技術を実行するためのコードを含んでもよい。例えば、一実施形態では、メモリ116はコンピュータビジョンアプリケーション102を記憶してもよい。メモリ116はまた、例えば、オペレーティングシステム、ハードウェアドライバ、他のソフトウェアアプリケーション、データベース等を含む他の命令及びデータを記憶可能である。メモリ116は、プロセッサ108及びシステムの他のコンポーネントと通信するためにバス120に結合されてもよい。
【0057】
メモリ116は、1つ以上の非一時的なコンピュータ使用可能(例えば、読み取り可能、書き込み可能)デバイス、ダイナミックランダムアクセスメモリ(dynamic random access memory, DRAM)デバイス、スタティックランダムアクセスメモリ(static random access memory, SRAM)デバイス、埋め込みメモリデバイス、ディスクリートメモリデバイス(例えば、PROM、FPROM、ROM)、ハードディスクドライブ、光ディスクドライブ(CD、DVD、ブルーレイ等)媒体を含んでもよく、これらは、プロセッサ108による処理又はプロセッサ108に関連する処理のための命令、データ、コンピュータプログラム、ソフトウェア、コード、ルーチン等を包含、記憶、通信又は搬送できるいずれかの有形の装置又はデバイスとすることができる。いくつかの実装では、メモリ116は、揮発性メモリ及び不揮発性メモリのうちの1つ以上を含んでもよい。メモリ116は、単一のデバイスでもよく、或いは、複数のタイプのデバイス及び構成を含んでもよいことが理解されるべきである。
【0058】
ディスプレイデバイス110は、液晶ディスプレイ(liquid crystal display, LCD)、発光ダイオード(light emitting diode, LED)又は他の同様に装備されたディスプレイデバイス、スクリーン又はモニタでもよい。ディスプレイデバイス110は、ここに記載されるように、ユーザインターフェース、電子画像及びデータを表示するように装備されたいずれかのデバイスを表す。異なる実施形態では、ディスプレイは、バイナリであるか(ピクセルについて2つの異なる値のみ)、モノクロであるか(1つの色の複数の色合い)、或いは、複数の色及び色合いを可能にする。ディスプレイデバイス110は、プロセッサ108及びシステムの他のコンポーネントと通信するためにバス120に結合される。ディスプレイデバイス110は、任意選択であることを示すために、破線で
図8に示されている点に留意すべきである。例えば、システムは、ディスプレイデバイス110なしでゲージ監視のためのコンピュータビジョンを実行するサーバでもよい。
【0059】
通信ユニット118は、プロセッサ108をデータネットワーク及び他の処理システムに連結することによりデータを受信及び送信するためのハードウェアである。一実施形態では、通信ユニット118は、データネットワークへの直接的な物理的接続のためのポートを含んでもよい。他の実施形態では、通信ユニット118は、IEEE802.11、IEEE802.16、ブルートゥース(登録商標)、セルラー通信又は他の適切な無線通信方法のような1つ以上の無線通信方法を使用して、無線ネットワークを介してデータを交換するための無線トランシーバ(図示せず)を含んでもよい。
【0060】
データストレージ112(又はデータストア112)は、ここに記載の機能を提供するためのデータを記憶する非一時的なメモリである。図示の実施形態では、データストレージ112は、記憶するためのデータを受信し、データの要求の際に取得されるデータを提供するために、バス120に通信可能に結合される。データストレージ112は、ゲージ画像と、カメラ画像と、監視されているゲージのための訓練された機械学習モデルとを記憶してもよい。
【0061】
いくつかの実施形態では、コンピュータビジョンアプリケーション102は、ゲージパラメータ抽出モジュール104と、機械学習モデル訓練モジュール106とを含む。コンピュータビジョンアプリケーション102のコンポーネントは、実行する機能を提供するためのソフトウェア及び/又はロジックを含んでもよい。いくつかの実施形態では、コンポーネントは、フィールドプログラマブルゲートアレイ(field-programmable gate array, FPGA)又は特定用途向け集積回路(application-specific integrated circuit, ASIC)を含む、プログラム可能なハードウェア又は特殊なハードウェアを使用して実装できる。いくつかの実施形態では、コンポーネントは、プロセッサ108により実行可能なハードウェア及びソフトウェアの組み合わせを使用して実装できる。いくつかの実施形態では、コンポーネントは、プロセッサ108により実行可能な命令である。いくつかの実装では、コンポーネントはメモリ116に記憶され、プロセッサ108によりアクセス可能で実行可能である。
【0062】
[ゲージ画像のアノテーション及び幾何学モデルの生成]
ここで、訓練ゲージ画像にアノテーションを付け、ゲージの幾何学モデルを生成するためのプロセスについて、
図9を参照して説明する。
図9(a)~
図9(d)を含む
図9は、いくつかの実施形態におけるゲージ画像のアノテーション及びゲージの幾何学モデルの作成を示す。
図9(a)を参照すると、監視されるゲージのクロッピング及びスケーリングされたゲージ画像が、訓練画像として使用するために取得される。訓練画像は、ゲージ画像における目盛り及びインジケータの位置を示すために、ユーザ又はフィールドエンジニアによりアノテーションが付けられる。訓練画像のアノテーションは、少ない人間の労力を必要とし、アノテーションは、訓練画像における数個の点のマーキングのみを必要とする。
図9(b)を参照すると、訓練画像は、目盛りのエンドポイントを示すようにマーキングされる(白丸)。目盛りが弧である場合、訓練画像は、エンドポイントの間の目盛り上の点を示すように更にマーキングされる。目盛りにおいてマーキングされた第3の点は、2つのエンドポイントの間のいずれかの位置とすることができる。いくつかの実施形態では、第3の点は、エンドポイントと一致するべきではなく、好ましくは、目盛りの中間の3分の1にある。一実施形態では、0度を横切るいずれかのインジケータの弧に対する曖昧さを回避するために、最小エンドポイントに対応する角度は、0度(0度を含む)から360度(360度を含まない)の範囲にあり、最大エンドポイントに対応する角度は、-360度(-360度を含まない)から720度(720度を含まない)の範囲にある。線形目盛りについては、目盛りのエンドポイントのみがマーキングされる必要がある。次いで、訓練画像は、インジケータのエンドポイント又は先頭及び末尾を示すようにマーキングされる(黒丸)。訓練画像のアノテーションが完了する。目盛り及びインジケータを示すために、4~5個の点のみがマーキングされる必要がある。いくつかの実施形態では、目盛り上の閾値レベルがマーキングされてもよい(正方形のボックス)。閾値レベルのマーキングは、機械学習システムが閾値ゲージ値を学習することを可能にし、閾値ゲージ値は、ゲージの状態が閾値を上回るか或いは下回るかの出力を生成するために使用できる。代替として、閾値レベルのマーキングは、検出/認識モジュール140の出力及び閾値に基づいてアラームを生成するために、アラームロジック142(
図7)に提供できる。
【0063】
このように生成された訓練画像及びアノテーションデータによって、訓練モジュールは、
図9(c)に示すように、ゲージのための幾何学モデルを生成する。幾何学モデルは、訓練画像におけるゲージを記述する。例えば、幾何学モデルは、目盛りについての弧をモデル化するために目盛りについてのマーキングを使用し、インジケータ針の形状及び位置をモデル化するためにインジケータについてのマーキングを使用する。本例では、円上の3つの点が与えられると、円の中心及び半径が計算でき、目盛りの弧及びインジケータの移動が導出できる。
図9(c)は、例示的な目的で訓練画像をオーバーレイした幾何学モデルを示す。動作中に、
図9(d)に示すゲージ表現は、アノテーションデータから作成されたゲージの幾何学モデルを示す。幾何学モデルは、インジケータの移動を更にモデル化する。インジケータの移動は、線セグメント(直線移動の場合)又は円のセグメント(円移動の場合)としてモデル化できる。特に、線形インジケータ移動については、幾何学モデルは、ゲージ読み取りを推定するためにエンドポイントの間の線形補間を使用してもよい。円形インジケータ移動の場合、幾何学モデルは、目盛りの円の中心点に基づいてピクセル位置を角度に変換してもよく、ゲージ読み取りを推定するために角度の間の補間を使用する。
【0064】
幾何学モデルは、最小範囲値(例えば、0.0)と最大範囲値(例えば、1.0)との間のインジケータ値が与えられると、目盛り上のインジケータの先頭の対応するピクセル位置が決定でき、インジケータ位置の対応する末尾が決定できるように、監視されるゲージを記述する。代替として、目盛り上のインジケータの先頭のピクセル位置が与えられると、対応する範囲値(例えば、0.0と1.0との間)が決定できる。
【0065】
一例では、線形ゲージは、ピクセルx=100、y=100における最小インジケータ範囲位置と、ピクセルx=100、y=200における最大インジケータ範囲位置とを有する。0.25のインジケータ値は、インジケータピクセル位置x=100、y=125に対応する。インジケータピクセル位置x=100、y=175は、0.75のインジケータ値に対応する。
【0066】
上記の説明では、円形又は弧の目盛りについてのアノテーションは、エンドポイントと目盛りに沿った第3の点をマーキングすることにより行われる。他の実施形態では、目盛りをマーキングするための他の方法が使用できる。一実施形態では、線、円又は楕円が、インジケータの先頭及び末尾のマーキングの対から計算できる。すなわち、アノテーションは、インジケータの先頭及び末尾の3つの対のマーキングを含むことができ、末尾のマーキングは同じ位置にあってもよい。幾何学モデルを導出するために使用するために、合計で6つのマーキングにアノテーションが付けられる。
【0067】
ゲージ画像が画像において正しくアノテーションが付けられている限り、インジケータと面の間に視差(Parallax)が存在するか、カメラが斜めの角度にあるかは関係ない。依然として、目盛り及びインジケータの位置とインジケータの移動とを記述するように、幾何学モデルが正確に導出できる。
【0068】
[合成訓練データの生成]
本開示のゲージ監視コンピュータビジョンシステムは、機械学習モデルの訓練データセットとして使用するために、1つ又は数個のゲージ画像から合成画像のセットを生成する。ここで、合成ゲージ画像の生成について説明する。
図4を参照して説明したように、機械学習モデル訓練モジュールは、コンピュータビジョンのための機械学習モデルを訓練するための訓練データセットとして合成画像のセットを生成する。合成画像は、他のゲージの画像と、監視されるゲージの1つ又は数個の訓練画像と、訓練画像に関連するアノテーションデータから導出されたゲージの幾何学モデルとを使用して事前に訓練された画像モデルを用いて生成される。動作中に、画像モデルは入力画像を受信し、出力画像を生成する。画像モデルは、ゲージ面又は背景が保たれる一方でゲージインジケータが修正(描画又は消去)されるように、画像モデルが入力画像を修正することを可能にするために、他のゲージの画像を使用して事前に訓練されている。画像モデルの構造については、以下により詳細に説明する。
【0069】
図10は、いくつかの実施形態において、任意の位置にゲージインジケータを有する合成画像のセットを生成するプロセスを示す。
図10を参照すると、訓練データとして使用する合成画像のセットを生成するための方法は、監視されるゲージの訓練画像を使用する。訓練画像は、クロッピング及びスケーリングされたゲージ画像である。訓練画像はまた、ゲージを記述する幾何学モデルが作成されるようにアノテーションが付けられている。
【0070】
当該方法は、入力訓練画像150を受信し、インジケータのないゲージ画像であるゲージの基礎画像154を生成するために、訓練画像からインジケータを消去することを試みる。基礎画像154を生成するために、当該方法は、インジケータの周囲で入力訓練画像150から画像パッチ158を抽出する(151)。画像152は、入力訓練画像150から抽出される点線のボックス内の画像パッチ158を示す。当該方法は、幾何学モデルと、画像内のどこにインジケータが位置するかを示す訓練画像に関するアノテーション情報とを使用することにより、インジケータを有する画像パッチ158を位置決めする。次いで、当該方法は、画像パッチからインジケータを消去するために、画像パッチ158を事前に訓練された画像モデルに提供する。訓練された画像モデルは、全てのゲージ背景を有するがインジケータを有さない画像パッチを出力として提供する。当該方法は、画像パッチが抽出された位置と同じ位置に、修正画像パッチを元の画像にペーストする。その結果、当該方法は、インジケータ(153)のない基礎画像154を生成する。特に、画像モデルは、ゲージ背景を識別し、インジケータから分離するように訓練されている。ゲージの面からインジケータを分離するために、アノテーションのマーキングを提供する以外に、人間の介入は必要ない。
【0071】
このように生成された基礎画像144によって、訓練された画像モデルを再び使用して、次いで、当該方法は、合成画像156を生成するために、任意の位置の基礎画像上にインジケータを描画する(ステップ155)。特に、当該方法は、幾何学モデルを使用して基礎画像から画像パッチを選択する。次いで、当該方法は、選択された画像パッチを、事前に訓練された画像モデルに入力として提供する。訓練された画像モデルは、インジケータを画像パッチ上に描く(ステップ155)。訓練された画像モデルは、全てのゲージ背景及びインジケータを有する画像パッチを出力として提供する。次いで、インジケータを有する修正画像パッチが、画像パッチが抽出された位置と同じ位置において元の画像にペーストされる。その結果、当該方法は、インジケータを有する合成画像156を生成する(ステップ157)。基礎画像を使用して多くの異なる任意の位置でインジケータを基礎画像上に繰り返し描画することにより、当該方法は、異なる任意の位置にインジケータを有する合成画像156のセットを生成する。次いで、合成画像のセットは、コンピュータビジョンのための機械学習モデルを訓練するための訓練データセットとして使用できる。
【0072】
図11は、いくつかの実施形態において、任意の位置にゲージインジケータを有する合成画像のセットを生成するために、インジケータを基礎画像上に描画するためのプロセスを示す。上記のように、画像モデルは、インジケータの近くの面上のいずれかのマーキングを保つ一方で、インジケータが基礎画像又は基礎画像のパッチ上で消去又は描画されることを可能にするように適用される。このように、合成画像のセットは、異なるインジケータ位置で生成できる。いくつかの実施形態では、訓練された画像モデルはまた、インジケータを含む参照画像パッチを入力として受信する。例えば、参照画像パッチは、基礎画像上に描画するためのインジケータの例を含んでもよい。
【0073】
図11を参照すると、インジケータのない基礎画像160が作成されている。本例では、インジケータは、幾何学モデルにより記述されるように、円弧状に移動する。したがって、任意の位置において基礎画像上にインジケータを描画するための方法は、回転した基礎画像(162)を取得するように基礎画像を回転させる(161)ことにより始まる。基礎画像を回転させることは、その後の描画及びペースト動作が垂直方向に実行されることを可能にし、描画及びペースト動作を実行することをより容易にする。代替として、他の実施形態では、当該方法は、その後の描画及びペースト動作が水平方向に実行されるように基礎画像を回転させることができる。適用する回転量は、インジケータが描画される任意の位置に対応する。回転は、全ての角度、1/3の角度の全て、0.1度毎の角度の全て等とすることができる。他の実施形態では、幾何学モデルにより記述されるインジケータの移動が線形であるとき、基礎画像の回転は必要ない。
【0074】
回転した基礎画像162によって、画像パッチ164は、幾何学モデルからの情報を使用して、回転した画像から切り取られる或いは抽出される(163)。訓練された画像モデルを使用して、任意選択で参照画像パッチによって、画像モデルは、抽出された画像パッチ上にインジケータを描画する(165)。その結果、インジケータが描画された修正画像パッチ166が生成される。修正画像パッチ166は、描画動作の前に事前にそこにあったマーキングの全てを保持する。すなわち、修正画像パッチ166は、画像パッチ164と同様に面上のマーキングを有する。次いで、当該方法は、修正画像パッチ166を、画像パッチが抽出された同じ位置に基礎画像上にペーストする(167)。その結果、インジケータ168を有する回転した画像が取得される。次いで、当該方法は、以前に適用された回転を反転させ(169)、任意の位置にインジケータを有する合成画像170が生成される。画像モデルは、各インジケータ位置についての記号データを更に生成する(ステップ171)。したがって、記号データは、各合成画像170に関連付けられる。いくつかの実施形態では、記号データは、描画されるインジケータに対応する値、インジケータの先頭のピクセル位置、インジケータの末尾のピクセル位置、目盛りのピクセル位置、及びインジケータが1つ又は複数の閾値を上回るか下回るかのうちの1つ以上を含む。
【0075】
図11における方法は、ゲージの事実上の様々な位置においてインジケータ及び記号データを有する合成画像170のセットを生成するために、複数回繰り返される。上記のように、インジケータの移動が線形である場合、回転又は逆回転は不要である。
【0076】
[画像モデル]
上記のように、本開示のゲージ監視コンピュータビジョンシステムは、ゲージインジケータとゲージ背景とを分離し、画像又は画像パッチにおけるゲージの面上のマーキングを保つ一方でインジケータを消去又は描画するように、ゲージの画像又はゲージの画像パッチを修正するために、事前に訓練された画像モデルを使用する。ここで、画像モデルについて、より詳細に説明する。
【0077】
いくつかの実施形態では、カメラ画像がRGBである場合、画像モデル入力画像及び出力画像もRGBである。代替として、カメラ画像がグレイスケールである場合、画像モデル入力画像及び出力画像はグレイスケールである。深度カメラ又はマルチスペクトルカメラのような他のカメラからの画像も使用されてもよい。
【0078】
本開示の実施形態では、画像モデルは、ゲージインジケータ及び面を認識するために特に訓練された画像対画像変換のための敵対的生成ネットワーク(generative adversarial network, GAN)タイプのニューラルネットワークとして実装される。例えば、GANは、ゲージ面及びゲージインジケータについての損失関数を使用して訓練される。GANタイプのニューラルネットワークは、異なる入力が異なる出力を生じるという利点を有し、したがって、このようにして生成された合成訓練画像は、合成訓練画像を生成するための簡単なコピー/ペースト又はコンピュータグラフィックスの手法からの画像と比較して、機械学習モデルの訓練に使用するのにより適したものにすることができる。さらに、GANは、出力精度を改善するために、面上のミラーストリップ(mirror strip)における影及び反射のようなゲージ外観を学習できる。他の実施形態では、他の画像対画像変換技術が使用されてもよい。
【0079】
本説明では、敵対的生成ネットワーク(GAN)は、畳み込みニューラルネットワーク(convolutional neural network, CNN)のような深層学習方法を使用する生成モデリングを示す。敵対的生成ネットワーク(GAN)は、2つのネットワークで構成されたディープニューラルネットアーキテクチャを使用して構築され、一方を他方に対して対抗させる(pit)(したがって、「敵対させる」)。一方のニューラルネットワークはジェネレータと呼ばれ、新たなデータインスタンスを生成し、他方のディスクリミネータは真実性について新たなデータを評価する。すなわち、ディスクリミネータは、それがレビューするデータの各インスタンスが実際の訓練データセットに属するか否かを判断する。ジェネレータは、畳み込みニューラルネットワーク又は逆畳み込み(deconvolutional)ニューラルネットワークでもよく、ディスクリミネータは、畳み込みニューラルネットワークである。
【0080】
図12は、本開示のいくつかの実施形態において、敵対的生成ネットワーク(GAN)の画像対画像変換器として実装された画像モデルのブロック図である。
図12を参照すると、画像モデル200は、GANジェネレータ(generator, G)及びディスクリミネータ(discriminator, D)を含むGANとして実装される。GANは、ゲージインジケータに対してゲージ面で異なるように画像対画像マッピングを実行するように訓練される。
図12では、ジェネレータGは訓練中に2回使用され、したがって、ジェネレータGの2つのインスタンスが
図12に示されている。動作中に、1つのジェネレータGのみが使用される。ジェネレータGは、上記のように、合成訓練画像を生成するために、インジケータを消去及び描画するために適用される画像モデルである。
【0081】
GAN画像モデル200は、2つの動作を実行するように訓練される。
【0082】
(1)インジケータを除去する消去動作:すなわち、GANジェネレータ(G)は、入力としてインジケータを有する画像又は画像パッチを受け取り、インジケータのない対応する画像又は画像パッチを出力する。
【0083】
(2)インジケータを作成する描画動作:すなわち、GANジェネレータ(G)は、入力としてインジケータのない画像又は画像パッチを受け取り、インジケータを有する対応する画像又は画像パッチを出力する。
【0084】
本開示の実施形態では、GANは、ゲージ画像の小さいパッチに対して動作してもよい。例えば、画像パッチは、8x128、12x192、16x256又は24x96ピクセルのサイズを有してもよい。ジェネレータGへの入力としてのPatches8は、ランダムに選択された入力画像パッチである。
【0085】
本実施形態では、画像モデルは、StarGAN画像対画像変換GAN手法に従う。StarGANはまた、マルチドメインの画像対画像変換のための統一敵対的生成ネットワーク(Unified Generative Adversarial Networks for Multi-Domain Image-to-Image Translation)としても知られており、単一の(統一)モデルが複数の画像データセットに対し訓練され、これらの特徴属性(ドメイン)がこれらの間で転送される技術を示す。StarGANは、ネットワーク理論においてサブネットマスクと同様のマスクベクトルを使用する。
【0086】
StarGAN手法を使用して、ジェネレータGは、ジェネレータGの所望の出力を指定するDomain入力を有する。Domain1は、ランダムに選択された「消去」又は「描画」である。Domain2は、対応するPatches8と一致する「消去」又は「描画」である。従来のStarGANでは、Patches及びDomainはジェネレータGへのCNN入力として結合される。本実装では、Patches、Reference及びDomainはジェネレータGへのCNN入力として結合される。
【0087】
本実施の形態では、Reference6は、Domain1が「描画」のときにインジケータを有する画像パッチであり、そうでないときには全てゼロである。Reference7は、Domain2が「描画」のときにインジケータを有する画像パッチであり、そうでないときには全てゼロである。代替として、Reference6/Reference7は、インジケータを有する画像パッチである(すなわち、「消去」及び「描画」の場合)。代替として、Reference6/Reference7は、Domain1/Domain2が「描画」のときにインジケータを有する画像パッチであり、そうでないときにはインジケータのない画像パッチである。ジェネレータGの出力は画像パッチである。訓練の目標は、訓練データとして合成画像を生成するための画像モデルとして使用されるジェネレータGを訓練することである。
【0088】
いくつかの実施形態では、Patches8、Patches9、Reference4及びReference6は、画像パッチの輝度、コントラスト又は色相のうち1つ以上がランダムに変更されるランダムな色歪により拡張される。物体検出のための訓練に使用される他の拡張もまた使用されてもよい。
【0089】
図13は、いくつかの例におけるジェネレータGの実装を示す擬似コードフラグメントを示す。疑似コードの「3」のパラメータは、RGB画像をサポートする3つの成分を出力させる。図示の例では、入力は2つのパッチ(の1つの束)であり、出力は1つのパッチ(の1つの束)のみである。
【0090】
いくつかの実施形態では、画像モデルは、サイクル一貫性敵対的ネットワークを使用した対となっていない画像対画像変換(Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks)とも呼ばれる、CycleGAN手法を実装できる。CycleGANの実装では、2つのジェネレータGが存在し、一方は消去用であり、他方は描画用である。入力パッチがインジケータを有する場合、ジェネレータG消去と、次いでジェネレータG描画とが使用される。入力パッチがインジケータを有さない場合、ジェネレータG描画と、次いでジェネレータG消去とが使用される。
【0091】
図12に戻ると、ディスクリミネータDは、ディスクリミネータCNNとして実装される。いくつかの実施形態では、ディスクリミネータDは、StarGANにおける構造に従って実装される。Patches
9は、Domain
1からランダムに選択された入力パッチである。ディスクリミネータDは、入力を真パッチ(入力Patches
9)又は偽パッチ(ジェネレータGにより生成される)に分類する分類器である。敵対的損失(Adversarial Loss)及び分類損失(Classification Loss)は、好ましくは、StarGANと同じである。GANでは、ジェネレータG及びディスクリミネータDの共同訓練により、ジェネレータGは、真パッチに類似した出力を生成し、ディスクリミネータDは、その入力を真又は偽に分類する。
【0092】
本実施形態では、L1損失は、CycleGANと同様に実装される。CycleGANのL1損失は、ジェネレータGの2回目の使用がパッチを入力と同じドメインに(インジケータありで、インジケータなしで)変換した後の、入力パッチと結果との間のピクセル値の差の絶対値の和である。例えば、インジケータが描画された場合、CycleGANは、元の入力を取得するために描画されたものを除去する。この損失を最小にすることは、GANが入力に類似した出力を行うように訓練する。
【0093】
面L1損失は、ゲージの面のピクセルについてのみジェネレータGを最初に使用した後の、入力パッチと結果との間のピクセル値の差の絶対値の和である。バイナリマスク(Mask5)は、面ピクセルを識別するために使用される。Mask5により面として識別されないピクセルは、この損失において加算されない。
【0094】
好ましくは、Mask5はMask3を(例えば、3ピクセルだけ)拡張したものである。Mask3がゲージ面とインジケータピクセルとを完全に区別した場合、この拡張(dilation)は、インジケータから3ピクセルより離れた面のピクセルのみがこの損失に含まれることを生じる。いくつかの場合、特定のピクセルは、面とインジケータとの組み合わせでもよく、或いは、Mask3の作成の際に小さいヒューマンエラーが存在する可能性がある。このような場合、インジケータの近くのいくつかの面ピクセルが損失に寄与しないとしても、拡張により、面ピクセルのみが損失に寄与する可能性が高くなる。
【0095】
図14(a)~
図14(c)を含む
図14は、いくつかの実施形態において画像モデルを訓練できるマスクを有する画像パッチの例を示す。マスクは画像モデルを作成して訓練するためにのみ使用される点に留意することが有益である。訓練データセットを生成するために画像モデルが適用されるとき、マスクは使用されない。
【0096】
図14を参照すると、Patches
8(左)の3つの例A、B及びC、対応するピクセル精度Masks
3(中央)及び対応する拡張Masks
5(右)が示されている。幾何学モデルから計算された座標は、パッチに一致するようにマスクを位置合わせ及びスケーリングするために使用される。
図14に示す例では、マスクは対応するインジケータに一致する正確な形状であるが、例A及びBの場合には、まだスケーリング及び位置合わせされていない。
【0097】
図12に戻ると、描画ドメインについて、インジケータのみの損失は、入力パッチと所望のインジケータ(Reference
4)を有する参照パッチとの間の差の関数である。バイナリマスク(Mask
3)は、参照パッチ内のインジケータピクセルを識別するために使用され、これらのピクセルのみが損失に寄与する。いくつかの場合、ピクセルは、ゲージ面とインジケータとの双方の組み合わせでもよく、Mask
3は、面又はインジケータの選択するための人間の最善の労力である。
【0098】
いくつかの実施形態では、GANを訓練するために使用される訓練データは、生成されるコンピュータグラフィックス画像(Computer Graphics Imagery, CGI)であり、特定の訓練画像については、対応する画像は、インジケータなしで、或いは異なる位置にインジケータありで利用可能であり、マスクは、2つの対応する画像の間の絶対差が閾値(例えば、最大ピクセル値の10%)を上回るピクセル位置を識別することにより作成される。代替として(例えば、非可逆JPEG圧縮からのいくつかのノイズを有するCGI画像について)、マスクは、符号付きの差分が閾値(例えば、最大ピクセル値の1/16)を上回るか或いは下回り且つ接続成分の領域(差分が同じ符号を有する)が閾値(例えば、領域の少なくとも4ピクセル)よりも大きい接続成分を識別することに基づいて作成される。好ましくは、インジケータのみの損失は、入力パッチ及び参照パッチ内のインジケータの位置の間の小さい差に対して不変である。不変性は、小さい回転に対する不変性、スケールの小さい変化及び小さい並進のうち1つ以上である。いくつかの実施形態では、L1損失(ピクセル差の絶対値)は、参照パッチの位置の複数の小さい変化について計算され、これらの最小値は、インジケータのみの損失として使用される。
【0099】
いくつかの実施形態では、参照パッチの5回転が使用され、その結果、パッチの上部及び下部の相対X位置は、-2ピクセル、-1ピクセル、0ピクセル、1ピクセル及び2ピクセルだけ変化する。いくつかの実施形態では、各回転について、特定の位置においてクロッピング領域を選択し、クロッピング領域をパッチサイズにスケーリングすることにより、参照パッチのスケールの小さい変化及び小さい並進が使用される。いくつかの実施形態では、クロッピング領域の上部及び下部のY座標は、-4、-3、-2、-1、0、+1、+2、+3、+4ピクセルだけ変化したパッチ座標である。X中心座標が-2、-1、0、+1、+2ピクセルだけ変化し、クロッピング領域の幅が計算されるので、クロッピング領域のアスペクト比はパッチのアスペクト比と同じになる。
【0100】
いくつかの実施形態では、回転、スケーリング及び並進の範囲は、大きくても或いは小さくてもよい。一実施形態では、範囲は疎でもよく、例えば、範囲は-8、-4、-2、-1、0、+1、+2、+3、+4、+8とすることができる。
【0101】
いくつかの実施形態では、L1損失を計算するとき、小さいピクセル差は無視される。例えば、定数(例えば、最大ピクセル値差の10%)は、ピクセル差の絶対値から差し引かれ、ゼロよりも小さい何らかの結果はゼロに設定される。
【0102】
消去ドメインについては、インジケータのみの損失はゼロである。
【0103】
合計損失は、敵対的損失及び分類損失と、(CycleGAN)L1損失と、面L1損失と、インジケータのみの損失との加重和である。一実施形態では、敵対的損失及び分類損失並びに(CycleGAN)L1損失について同じ重みが使用され、面L1損失及びインジケータのみの損失は、(CycleGAN)L1損失と同じ重みを使用する。
【0104】
いくつかの実施形態では、GANを訓練するための訓練データは、人間により作成され正解(すなわち、人間のアノテーション)及びマスクを有するゲージの実画像で構成される。いくつかの場合、このデータは、産業機械の一部ではなく、訓練データの作成を実現するために電気的又は機械的に制御可能なゲージを使用してもよい。他の実施形態では、正解及びマスクが自動的に作成されるゲージの合成コンピュータグラフィックス画像(CGI)が使用できる。
【0105】
図15は、いくつかの実施形態におけるGAN画像モデルの訓練ケースを示す表である。
図15を参照すると、表は、2つのドメイン(消去及び描画)及び4つの訓練ケース(描画・消去、描画・描画、消去・描画、消去・消去)を有するStarGAN訓練を示す。
【0106】
[コンピュータビジョン訓練のための機械学習モデル]
合成画像を使用して生成された訓練データセットによって、コンピュータビジョンのための機械学習モデルは、監視されているゲージを検出して認識するように訓練できる。上記のように、コンピュータビジョンの訓練は、使用される特定のコンピュータビジョンモデルに従って実行される。訓練データは、合成画像及び正解情報(例えば、対応するインジケータ位置、インジケータ値及び/又は閾値を上回る/下回る)で構成される。
【0107】
訓練データは、画像モデル及び幾何学モデルを使用して訓練モジュールにより生成された合成画像を含む。いくつかの実施形態では、訓練データは、1つのゲージからの合成画像を使用する。代替として、訓練データは、複数のゲージ(例えば、10又は100又は1000個のゲージ)からの合成画像を使用できる。いくつかの実施形態では、訓練データはまた、人間の正解と共に、監視されるゲージの実際の画像を含む。例えば、コンピュータビジョンが人間により指摘される誤りをした場合、対応する画像の正解が収集でき、この画像及び正解を将来の訓練に使用できる。
【0108】
いくつかの実施形態では、訓練データはまた、ネガティブデータ、すなわち、ゲージを含まない画像、又はゲージが見えないか或いは読み取り不能である画像を含む。関心領域は、ゲージを含まない位置においてカメラ画像からクロッピングされる可能性がある。この種のネガティブデータは、カメラがゲージに正しく向けられていないか否かを検出するようにコンピュータビジョンを訓練するのに有用になり得る。さらに、関心領域は、ゲージを部分的又は完全に含み、(例えば、指、頭部又は他の物体の画像、ゲージを有さない領域のカメラ画像からのランダムなクロッピング、グレアをシミュレートするための白のような無地を貼り付けることにより)インジケータが不鮮明になる可能性がある位置においてカメラ画像からクロッピングされる可能性がある。この種のネガティブデータは、インジケータが不鮮明であるためにゲージが読み取れないか否かを検出するようにコンピュータビジョンを訓練するのに有用になり得る。訓練データはまた、ゲージが不鮮明であるカメラ画像又はゲージが読み取り不可能であるカメラ画像からの関心領域を含んでもよい。訓練データはまた、利用可能なテストセットからの画像のような他の画像を含むことができる。例えば、PASCAL Visual Object Classes Challenge 2007(VOC2007)からの画像が使用できる。この種のネガティブデータは、カメラがゲージを観察していないときを検出するようにコンピュータビジョンを訓練するのに有用になり得る。
【0109】
いくつかのコンピュータビジョンについては、多くの訓練画像(例えば、1000個の画像又は10000個の画像)を使用することが有利である。一実施形態では、1つ以上の束のゲージ(例えば、100個のゲージ)が、周期的に(例えば、少なくとも1つの新たなゲージが対応する就業日に訓練のために投入される毎就業週の夜に)訓練される。束のサイズよりも新たに投入されたゲージが少ない場合は、事前に訓練されたゲージが使用される。ゲージ画像に加えて、訓練データはネガティブ画像(例えば、各ゲージ画像に対して1つのネガティブ画像)を含む。
【0110】
図16は、いくつかの実施形態における機械学習に基づくコンピュータビジョンシステムにおける検出/認識モジュールを示す。
図16を参照すると、いくつかの実施形態では、検出/認識モジュールは、物体検出器又は同様のニューラルネットワークであるニューラルネットワークである。検出/認識モジュールは、いずれかの適切なコンピュータビジョン検出/認識/識別/分類技術を使用して実装できる。検出/認識モジュールは、ニューラルネットワークに基づくものとすることができ、或いは、サポートベクトルマシン(Support Vector Machine, SVM)のような他の技術が使用できる。例示的な物体検出器は、シングルショットマルチボックス検出器(Single Shot Multibox Detector, SSD)である。
【0111】
一実施形態では、検出/認識モジュールへの入力画像は、300x300ピクセル又は600x600ピクセルの画像パッチである。ベースネットワークは、入力画像を(解像度1で)最も細かい特徴、例えば、38x38のグリッドの特徴に変換する。一実施形態では、ベースネットワークは、既存の事前に訓練されたネットワーク(例えば、Google MobileNet又はGoogle MobileNet v2)である。さらに、いくつかの実施形態では、既存の事前に訓練されたベースネットワークは、現状のままで使用されるか、或いは、コンピュータビジョンの訓練中に微調整される。いくつかの実施形態では、ベースネットワークは、ゼロから訓練されてもよい。
【0112】
解像度低減は、ベースネットワークの出力を、(解像度2...解像度Nの)より粗い特徴、例えば、19x19、10x10、5x5、3x3、1x1のグリッドの特徴に変換する。代替として、1x1のグリッドの特徴のみが使用される場合、全結合層(例えば、3)が解像度低減として使用できる。
【0113】
0個以上の予測ヘッドは、ベースネットワークの各グリッドポイントの出力及び解像度低減に接続される。各解像度は、その解像度におけるグリッドポイント当たりの予測ヘッドの数と同じ数を有する。いくつかの実施形態では、各解像度は、0個又は1つの予測ヘッドのいずれかを有する。代替として、SSDに続いて、各解像度についてグリッドポイント当たり1つ以上の予測ヘッドが存在し、各予測ヘッドはサイズ/アスペクト比である「アンカーボックス(anchor box)」に対応する。例えば、ベースネットワークの39x39のグリッド出力と、解像度低減からの特徴の19x19、10x10、5x5、3x3及び1x1のグリッド出力とが予測ヘッドに接続され、合計で39x39+19x19+10x10+5x5+3x3+1x1=2017のグリッドポイントになる。代替として、1x1(最も粗い)のグリッドの特徴のみが接続され、合計で1つのグリッドポイントになる。代替として、ベースネットワークの出力と1x1(最も粗い)のグリッドの特徴のみが予測ヘッドに接続される。ベースネットワークが39x39のグリッドである場合、39x39+1=1522個のグリッドポイントが存在する。
【0114】
予測ヘッドは、以下のうち1つ以上を出力できる。
【0115】
(1)各クラスの物体の信頼度:例えば、1x1の解像度における、ROIがゲージ(可視で読み取り可能なゲージ)を含む信頼度。
【0116】
(2)アンカーボックス又はグリッド中心点と物体との間の差として符号化された位置:例えば、1x1の解像度における、ゲージの粗い位置、目盛りの円の境界の位置、目盛りを含む目盛りの円の半円の境界の位置。他の例では、39x39の解像度における、目盛りの最大点及び最小点の細かいX,Y座標、1x1の解像度における、インジケータの粗いX,Y座標、39x39の解像度における、インジケータの細かいX,Y座標、1x1の解像度における、1つ以上の閾値(固定の閾値又は入力閾値でもよい)の粗いX,Y座標、39x39の解像度における、1つ以上の閾値(固定の閾値又は入力閾値でもよい)の細かいX,Y座標。
【0117】
(3)1つ又は複数の既知の閾値(例えば、2つの閾値)について閾値を上回る/下回ること:例えば、1x1の解像度。
【0118】
(4)1つ又は複数の入力閾値又は閾値に基づいて上回る/下回ること:例えば1x1の解像度。
【0119】
(4)インジケータ値:例えば、1x1の解像度。
【0120】
好ましくは、予測ヘッドは、限られたデータに対する訓練を容易にし、一貫性の検査を可能にし、コンピュータビジョンの性能を理解してデバッグするための情報を提供するために、1つより多くの出力を有する。
【0121】
位置情報は、ROIに依存する、すなわち、位置情報は、カメラ位置及びズームと、画像クロッピング及びスケーリングとに依存する。閾値及び値の情報はROIに依存しない。いくつかの実施形態では、検出/認識モジュールについて、システムは、カメラ位置及びズームと、画像クロッピング及びスケーリングとの中程度の変化には敏感でなく、予測ヘッドは、ROIに依存する情報とROIに依存しない情報との双方を出力し、分類器は、ROIに依存する情報とROIに依存しない情報との双方を学習するために十分なデータで訓練される。
【0122】
SSDに続いて、抑制は非最大抑制(Non-Maxima Suppression, NMS)であり、重複する信頼度のより高い検出が存在するとき、信頼度のより低い検出は出力されない。予測ヘッドがインジケータの細かい位置を出力する場合、NMSは全ての信頼性の低い検出の出力を抑制できるので、1つのみが存在する。予測ヘッドが最小範囲の点及び最大範囲の点の細かい位置を出力する場合、NMSは全ての信頼度の低い検出の出力を抑圧できるので、最小について1つ、最大について1つのみが存在する。
【0123】
他の実施形態では、抑制は、複数の出力の間の一貫性のためのモデルである。粗いインジケータの位置及び細かいインジケータの位置、粗いゲージの位置及び細かいゲージの位置、ゲージの位置及びインジケータの位置、値及びインジケータの位置、値及び既知の閾値、の対のうち1つ以上(又は全て)が検査できる。
【0124】
例えば、粗いインジケータの位置と細かいインジケータの位置との間のユークリッド距離が閾値(例えば、ROIの最大寸法の10%)より大きい場合、この対は一貫性がない。細かい位置について、複数の検出が存在する場合、一貫性のない検出が抑制できる。対のいずれかが一貫性がない場合、出力は読み取れないか或いは見えない。解像度1x1において1つのみの予測ヘッドが存在する場合、抑制は使用されない。
【0125】
いくつかの実施形態では、抑制は、全体のゲージの物体のボックスが少なくとも閾値(例えば、5ピクセル)だけROI内にあることを検査し、カメラビューがゲージより厳密に大きくない場合を抑制する。いくつかの実施形態では、抑制は、全体のゲージの物体のボックスが少なくとも最小サイズ(例えば、ゲージ幅≧ROI幅の50%且つゲージ高さ≧ROI高さの40%)であることを検査し、ゲージがカメラビューにおいて小さすぎる場合を抑制する。
【0126】
検出/認識モジュールの出力は、抑制されていない(一貫性がないために全ての出力が抑制されている場合は、読み取れない/見えない)予測ヘッドの出力である。
【0127】
図17は、いくつかの実施形態におけるコンピュータビジョンモジュールの検出/認識モジュールへの閾値条件の適用を示す。
図17を参照すると、入力閾値は、訓練及び推測のために検出/認識モジュールに提供できる。例えば、入力閾値は全ての入力画像に適用できる。閾値はゲージ値(例えば、0.0と1.0との間の値)として提供できる。他の例では、閾値は、閾値位置にインジケータを有するゲージの実際の画像として提供できる。更に他の例では、閾値は、閾値位置にインジケータを有する訓練データ生成の一部として作成された合成画像として提供できる。他の例では、閾値は、閾値を上回るピクセル位置についての1つの値と、閾値を下回るピクセル位置についての他の値とを有するバイナリ画像として提供できる。このように提供される閾値情報は、入力ゲージ画像と位置合わせされる必要はない。
【0128】
いくつかの実施形態では、ユーザがアノテーションを付ける各閾値について、検出/認識モジュールはまた、近くの閾値も訓練する。例えば、検出/認識モジュールは、入力閾値についての閾値、入力閾値の-5%についての閾値、及び入力閾値の+5%についての閾値を、入力閾値当たり合計で3つの閾値について訓練できる。他の実施形態では、検出/認識モジュールは、1つ以上の固定の閾値に対して訓練される。いくつかの場合、検出/認識モジュールは、閾値入力と固定の閾値との双方を使用するように訓練できる。他の場合、検出/認識モジュールは、閾値を異なるように表す複数の閾値入力を使用するように訓練できる。
【0129】
図18は、いくつかの実施形態における機械学習に基づくコンピュータビジョンシステムに閾値入力を組み込んだ検出/認識モジュールを示す。
図18を参照すると、実際の画像又は生成された画像が閾値を示すために使用され、事前に訓練されたベースネットワークが検出/認識モジュールにおいて使用される実施形態では、同じベースネットワーク及び解像度低減が、入力画像及び閾値画像の双方に使用されてもよく、次いで、双方から得られた特徴が、予測ヘッドにより使用されてもよい。すなわち、
図18の双方のベースネットワークのブロックは同じある。
図18の構造は、複数の画像を使用して検出/認識するために使用できる。
【0130】
代替実施形態では、より簡単なニューラルネットワーク構造が、畳み込み層(例えば、4)及び全結合層(例えば、3)と共に使用される。例えば、畳み込み層は、2x3の最大プーリングを有する3x3であり、最初に16個の特徴を有し、それぞれの連続する層で特徴の数を2倍にする。更に他の実施形態では、コンピュータビジョンモジュールは、2つの検出/認識モジュールを有してもよい。第1の検出/認識モジュールは、初期セットアップ中にシステムをテストするために非常に迅速に(例えば10分)訓練される。第2の検出/認識モジュールは、長期間使用するためにより長く(例えば、2時間又は一晩)訓練される。2つの検出/認識モジュールを有するいくつかの実施形態では、小さいネットワーク(迅速に訓練できる)は、ゲージが前処理モジュールで変化したか否かの初期判定を行うためにエッジで使用され、第2のネットワークは、検出/認識モジュールの最終出力を提供するためにクラウドで使用される。
【0131】
本発明は、プロセス、装置、システム、合成物、コンピュータ読み取り可能記憶媒体に具現化されたコンピュータプログラム製品、及び/又はプロセッサに結合されたメモリに記憶された命令及び/又はメモリにより提供された命令を実行するように構成されたプロセッサ又はハードウェアプロセッサのようなプロセッサを含む、多数の方法で実施できる。この明細書では、これらの実装又は本発明が採用し得るその他の形式は、技術と呼ばれる。一般的に、開示のプロセスのステップの順序は、本発明の範囲内で変更されてもよい。特に指定のない限り、タスクを実行するように構成されると記載されたプロセッサ又はメモリのようなコンポーネントは、所与の時間にタスクを実行するように一時的に構成される一般のコンポーネント、又はタスクを実行するように製造された特定のコンポーネントとして実装されてもよい。ここで使用される「プロセッサ」という用語は、コンピュータプログラム命令のようなデータを処理するように構成された1つ以上のデバイス、回路及び/又は処理コアを示す。
【0132】
本発明の1つ以上の実施形態の詳細な説明は、本発明の原理を示す添付の図面と共に上記に提供されている。本発明は、このような実施形態に関して記載されているが、本発明は、いずれかの実施形態に限定されるものではない。本発明の範囲は、特許請求の範囲のみにより限定され、本発明は、多数の代替、変更及び均等物を含む。本発明の完全な理解を提供するために、多数の特定の詳細が発明の説明に記載されている。これらの詳細は、例示の目的で提供されており、本発明は、これらの特定の詳細の一部又は全部を伴わずに、特許請求の範囲に従って実施されてもよい。明瞭にする目的で、本発明に関する技術分野において既知の技術的資料は、発明が不要に不明瞭にならないように詳細に記載されていない。
【0133】
上記の詳細な説明は、本発明の特定の実施形態を示するために提供されており、限定することを意図するものではない。本発明の範囲内で多数の変更及び変形が可能である。本発明は、添付の特許請求の範囲により定義される。