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

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

▶ ブラザー工業株式会社の特許一覧

特許7615695異常兆候検知装置、異常兆候検知方法、および、コンピュータプログラム
<>
  • 特許-異常兆候検知装置、異常兆候検知方法、および、コンピュータプログラム 図1
  • 特許-異常兆候検知装置、異常兆候検知方法、および、コンピュータプログラム 図2
  • 特許-異常兆候検知装置、異常兆候検知方法、および、コンピュータプログラム 図3
  • 特許-異常兆候検知装置、異常兆候検知方法、および、コンピュータプログラム 図4
  • 特許-異常兆候検知装置、異常兆候検知方法、および、コンピュータプログラム 図5
  • 特許-異常兆候検知装置、異常兆候検知方法、および、コンピュータプログラム 図6
  • 特許-異常兆候検知装置、異常兆候検知方法、および、コンピュータプログラム 図7
  • 特許-異常兆候検知装置、異常兆候検知方法、および、コンピュータプログラム 図8
  • 特許-異常兆候検知装置、異常兆候検知方法、および、コンピュータプログラム 図9
  • 特許-異常兆候検知装置、異常兆候検知方法、および、コンピュータプログラム 図10
  • 特許-異常兆候検知装置、異常兆候検知方法、および、コンピュータプログラム 図11
  • 特許-異常兆候検知装置、異常兆候検知方法、および、コンピュータプログラム 図12
  • 特許-異常兆候検知装置、異常兆候検知方法、および、コンピュータプログラム 図13
  • 特許-異常兆候検知装置、異常兆候検知方法、および、コンピュータプログラム 図14
  • 特許-異常兆候検知装置、異常兆候検知方法、および、コンピュータプログラム 図15
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-01-08
(45)【発行日】2025-01-17
(54)【発明の名称】異常兆候検知装置、異常兆候検知方法、および、コンピュータプログラム
(51)【国際特許分類】
   G05B 19/418 20060101AFI20250109BHJP
   G06Q 50/04 20120101ALI20250109BHJP
【FI】
G05B19/418 Z
G06Q50/04
【請求項の数】 6
(21)【出願番号】P 2021004572
(22)【出願日】2021-01-14
(65)【公開番号】P2022109185
(43)【公開日】2022-07-27
【審査請求日】2023-12-22
(73)【特許権者】
【識別番号】000005267
【氏名又は名称】ブラザー工業株式会社
(74)【代理人】
【識別番号】110001058
【氏名又は名称】鳳国際弁理士法人
(72)【発明者】
【氏名】四海 洋一
【審査官】飯田 義久
(56)【参考文献】
【文献】米国特許出願公開第2020/0050182(US,A1)
【文献】特開2013-152655(JP,A)
【文献】特開2017-036093(JP,A)
【文献】特開2018-142259(JP,A)
【文献】特開2018-024055(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05B 19/418
G06Q 50/04
(57)【特許請求の範囲】
【請求項1】
異常兆候検知装置であって、
製品の製造工程の状況に関連する対象変数の測定値の時系列データを取得するデータ取得部と、
前記対象変数の値を予測するための予測モデルに含まれる複数のパラメータを、前記対象変数の前記測定値の前記時系列データの少なくとも一部を用いて学習する第1学習部と、
前記予測モデルの学習済のモデルを用いて、前記測定値の前記時系列データの最新の時点よりも後の将来の時点における前記対象変数の値を予測する第1予測部と、
前記対象変数の予測された値が所定の許容範囲外である場合に、前記対象変数の前記予測された値が前記所定の許容範囲外であることを示す第1データを出力する出力部と、
入力された時系列データとL個(Lは1以上の整数)の基準の時系列データとの間の違いを示す異常度スコアを算出するように構成された算出モデルに、前記測定値の前記時系列データのうちの一部の時間幅のデータである部分時系列データを入力することによって、前記部分時系列データの異常度スコアを取得する異常度スコア取得部と、
を備え
前記出力部は、前記異常度スコアが所定のスコア閾値より大きい場合に、前記異常度スコアが前記所定のスコア閾値より大きいことを示す第2データを出力する、
異常兆候検知装置。
【請求項2】
請求項1に記載の異常兆候検知装置であって、
前記予測モデルは、時間の経過に対する単調な変化を示す成分を含む複数の成分を用いて、前記対象変数の値を予測するように構成されている、
異常兆候検知装置
【請求項3】
請求項1または2に記載の異常兆候検知装置であって、
前記データ取得部は、さらに、前記対象変数の測定に同期して測定されるp個(pは1以上の整数)の補助変数であって、作業者の動きを示す動き変数を含む前記p個の補助変数のp個の測定値のp個の時系列データを取得し、
前記異常兆候検知装置は、さらに、
前記p個の補助変数に対応付けられたp個の重みを推定するための推定モデルに含まれる複数のパラメータを、前記対象変数の前記測定値の前記時系列データの少なくとも一部と、前記p個の補助変数の前記p個の測定値の前記p個の時系列データの少なくとも一部と、を用いて学習する第2学習部と、
前記推定モデルの学習済のモデルを用いて、前記p個の重みを推定する推定部と、
を備え、
前記出力部は、前記対象変数の前記予測された値が前記所定の許容範囲外である場合に、前記第1データに加えて、前記p個の重みのp個の推定値のうちのm個(mは、1以上、p以下の整数)の推定値と、前記m個の推定値に対応付けられるm個の補助変数を識別するm個の識別情報と、の一方、または、両方を示す第3データを出力する、
異常兆候検知装置。
【請求項4】
請求項1からのいずれかに記載の異常兆候検知装置であって、
前記対象変数は、前記製品に貼られたラベルシートの前記製品に対する位置または向きを示す、
異常兆候検知装置。
【請求項5】
異常兆候検知方法であって、
製品の製造工程の状況に関連する対象変数の測定値の時系列データを取得するデータ取得工程と、
前記対象変数の値を予測するための予測モデルに含まれる複数のパラメータを、前記対象変数の前記測定値の前記時系列データの少なくとも一部を用いて学習する第1学習工程と、
前記予測モデルの学習済のモデルを用いて、前記測定値の前記時系列データの最新の時点よりも後の将来の時点における前記対象変数の値を予測する第1予測工程と、
前記対象変数の予測された値が所定の許容範囲外である場合に、前記対象変数の前記予測された値が前記所定の許容範囲外であることを示す第1データを出力する出力工程と、
入力された時系列データとL個(Lは1以上の整数)の基準の時系列データとの間の違いを示す異常度スコアを算出するように構成された算出モデルに、前記測定値の前記時系列データのうちの一部の時間幅のデータである部分時系列データを入力することによって、前記部分時系列データの異常度スコアを取得する異常度スコア取得工程と、
前記異常度スコアが所定のスコア閾値より大きい場合に、前記異常度スコアが前記所定のスコア閾値より大きいことを示す第2データを出力する工程と、
を備える、異常兆候検知方法。
【請求項6】
コンピュータプログラムであって、
製品の製造工程の状況に関連する対象変数の測定値の時系列データを取得するデータ取得機能と、
前記対象変数の値を予測するための予測モデルに含まれる複数のパラメータを、前記対象変数の前記測定値の前記時系列データの少なくとも一部を用いて学習する第1学習機能と、
前記予測モデルの学習済のモデルを用いて、前記測定値の前記時系列データの最新の時点よりも後の将来の時点における前記対象変数の値を予測する第1予測機能と、
前記対象変数の予測された値が所定の許容範囲外である場合に、前記対象変数の前記予測された値が前記所定の許容範囲外であることを示す第1データを出力する出力機能と、
入力された時系列データとL個(Lは1以上の整数)の基準の時系列データとの間の違いを示す異常度スコアを算出するように構成された算出モデルに、前記測定値の前記時系列データのうちの一部の時間幅のデータである部分時系列データを入力することによって、前記部分時系列データの異常度スコアを取得する異常度スコア取得機能と、
前記異常度スコアが所定のスコア閾値より大きい場合に、前記異常度スコアが前記所定のスコア閾値より大きいことを示す第2データを出力する機能と、
をコンピュータに実現させる、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本明細書は、製品の製造工程の異常の兆候を検知する技術に関する。
【背景技術】
【0002】
従来から、製品の製造工程の異常を検知する処理が行われている。例えば、工具の振動を測定する振動センサによる測定データなどの工具に関係する測定データを用いて、1クラスサポートベクターマシン法により、正常モデルを作成し、そして、正常モデルに基づいて、加工時に測定された測定データについて、正常か異常かを診断する技術が提案されている。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2018-24055号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、製品の製造工程の異常は、未然に防ぐことが好ましい。ここで、異常の兆候の検知に関しては、工夫の余地があった。
【0005】
本明細書は、異常の兆候を検知する技術を開示する。
【課題を解決するための手段】
【0006】
本明細書に開示された技術は、以下の適用例として実現することが可能である。
【0007】
[適用例1]異常兆候検知装置であって、製品の製造工程の状況に関連する対象変数の測定値の時系列データを取得するデータ取得部と、前記対象変数の値を予測するための予測モデルに含まれる複数のパラメータを、前記対象変数の前記測定値の前記時系列データの少なくとも一部を用いて学習する第1学習部と、前記予測モデルの学習済のモデルを用いて、前記測定値の前記時系列データの最新の時点よりも後の将来の時点における前記対象変数の値を予測する第1予測部と、前記対象変数の予測された値が所定の許容範囲外である場合に、前記対象変数の前記予測された値が前記所定の許容範囲外であることを示す第1データを出力する出力部と、を備える、異常兆候検知装置。
【0008】
この構成によれば、予測された値が所定の許容範囲外であることを示す第1データが出力されるので、第1データは、異常の兆候を示すデータとして、利用できる。
[適用例2]
適用例1に記載の異常兆候検知装置であって、
前記予測モデルは、時間の経過に対する単調な変化を示す成分を含む複数の成分を用いて、前記対象変数の値を予測するように構成されている、
異常兆候検知装置。
[適用例3]
適用例1または2に記載の異常兆候検知装置であって、さらに、
入力された時系列データとL個(Lは1以上の整数)の基準の時系列データとの間の違いを示す異常度スコアを算出するように構成された算出モデルに、前記測定値の前記時系列データのうちの一部の時間幅のデータである部分時系列データを入力することによって、前記部分時系列データの異常度スコアを取得する異常度スコア取得部を備え、
前記出力部は、前記異常度スコアが所定のスコア閾値より大きい場合に、前記異常度スコアが前記所定のスコア閾値より大きいことを示す第2データを出力する、
異常兆候検知装置。
[適用例4]
適用例1から3のいずれかに記載の異常兆候検知装置であって、
前記データ取得部は、さらに、前記対象変数の測定に同期して測定されるp個(pは1以上の整数)の補助変数であって、作業者の動きを示す動き変数を含む前記p個の補助変数のp個の測定値のp個の時系列データを取得し、
前記異常兆候検知装置は、さらに、
前記p個の補助変数に対応付けられたp個の重みを推定するための推定モデルに含まれる複数のパラメータを、前記対象変数の前記測定値の前記時系列データの少なくとも一部と、前記p個の補助変数の前記p個の測定値の前記p個の時系列データの少なくとも一部と、を用いて学習する第2学習部と、
前記推定モデルの学習済のモデルを用いて、前記p個の重みを推定する推定部と、
を備え、
前記出力部は、前記対象変数の前記予測された値が前記所定の許容範囲外である場合に、前記第1データに加えて、前記p個の重みのp個の推定値のうちのm個(mは、1以上、p以下の整数)の推定値と、前記m個の推定値に対応付けられるm個の補助変数を識別するm個の識別情報と、の一方、または、両方を示す第3データを出力する、
異常兆候検知装置。
[適用例5]
適用例1から4のいずれかに記載の異常兆候検知装置であって、
前記対象変数は、前記製品に貼られたラベルシートの前記製品に対する位置または向きを示す、
異常兆候検知装置。
[適用例6]
異常兆候検知方法であって、
製品の製造工程の状況に関連する対象変数の測定値の時系列データを取得するデータ取得工程と、
前記対象変数の値を予測するための予測モデルに含まれる複数のパラメータを、前記対象変数の前記測定値の前記時系列データの少なくとも一部を用いて学習する第1学習工程と、
前記予測モデルの学習済のモデルを用いて、前記測定値の前記時系列データの最新の時点よりも後の将来の時点における前記対象変数の値を予測する第1予測工程と、
前記対象変数の予測された値が所定の許容範囲外である場合に、前記対象変数の前記予測された値が前記所定の許容範囲外であることを示す第1データを出力する出力工程と、
を備える、異常兆候検知方法。
[適用例7]
コンピュータプログラムであって、
製品の製造工程の状況に関連する対象変数の測定値の時系列データを取得するデータ取得機能と、
前記対象変数の値を予測するための予測モデルに含まれる複数のパラメータを、前記対象変数の前記測定値の前記時系列データの少なくとも一部を用いて学習する第1学習機能と、
前記予測モデルの学習済のモデルを用いて、前記測定値の前記時系列データの最新の時点よりも後の将来の時点における前記対象変数の値を予測する第1予測機能と、
前記対象変数の予測された値が所定の許容範囲外である場合に、前記対象変数の前記予測された値が前記所定の許容範囲外であることを示す第1データを出力する出力機能と、
をコンピュータに実現させる、コンピュータプログラム。
【0009】
なお、本明細書に開示の技術は、種々の態様で実現することが可能であり、例えば、異常の兆候を検知する方法および装置、それらの方法または装置の機能を実現するためのコンピュータプログラム、そのコンピュータプログラムを記録した記録媒体(例えば、一時的ではない記録媒体)、等の形態で実現することができる。
【図面の簡単な説明】
【0010】
図1】一実施例としてのデータ処理装置を示す説明図である。
図2】(A)、(B)は、デジタルカメラ110による撮影画像の例を示している。
図3】異常の兆候の検知処理の例を示すフローチャートである。
図4】予測処理の例を示すフローチャートである。
図5】(A)-(F)は、状態空間モデルの説明図である。
図6】フィルタ処理の例を示すフローチャートである。
図7】(A)-(C)は、時系列データTSx、TSy、TSaの例を示すグラフである。
図8】スコアの算出処理の例を示すフローチャートである。
図9】スコア算出モデルMBxの概略図である。
図10】データ処理装置の第2実施例を示す説明図である。
図11】(A)、(B)は、第2カメラ120による撮影画像の例を示している。
図12】(A)-(E)は、状態空間モデルの説明図である。
図13】(A)、(B)は、検知処理の第2実施例を示すフローチャートである。
図14】(A)、(B)は、係数E1j、E2jの例を示すグラフである。
図15】第3データの例を示す概略図である。
【発明を実施するための形態】
【0011】
A.第1実施例:
A1.装置構成:
図1は、一実施例としてのデータ処理装置を示す説明図である。本実施例では、データ処理装置200は、例えば、パーソナルコンピュータである。データ処理装置200は、対象物(例えば、プリンタなどの製品)の検査のための種々の処理を実行する。データ処理装置200は、プロセッサ210と、記憶装置215と、表示部240と、操作部250と、通信インタフェース270と、を備えている。これらの要素は、バスを介して互いに接続されている。記憶装置215は、揮発性記憶装置220と、不揮発性記憶装置230と、を含んでいる。
【0012】
プロセッサ210は、データ処理を行うように構成された装置であり、例えば、CPUである。揮発性記憶装置220は、例えば、DRAMであり、不揮発性記憶装置230は、例えば、フラッシュメモリである。不揮発性記憶装置230は、プログラム231と、予測モデルMAx、MAy、MAaと、スコア算出モデルMBx、MBy、MBaと、時系列データTSx、TSy、TSaと、を格納している。予測モデルMAx、MAy、MAaは、いわゆるカルマンフィルタを用いる予測モデルであり、本実施例では、プログラムモジュールである。スコア算出モデルMBx、MBy、MBaは、いわゆるk近傍法を用いる推定モデルであり、本実施例では、プログラムモジュールである。プログラム231と、予測モデルMAx、MAy、MAaと、スコア算出モデルMBx、MBy、MBaと、時系列データTSx、TSy、TSaと、の詳細については、後述する。
【0013】
表示部240は、液晶ディスプレイ、有機ELディスプレイなどの、画像を表示するように構成された装置である。操作部250は、ボタン、レバー、表示部240上に重ねて配置されたタッチパネルなどの、ユーザによる操作を受け取るように構成された装置である。ユーザは、操作部250を操作することによって、種々の要求と指示をデータ処理装置200に入力可能である。通信インタフェース270は、他の装置と通信するためのインタフェースである(例えば、USBインタフェース、有線LANインタフェース、IEEE802.11の無線インタフェース)。通信インタフェース270には、デジタルカメラ110が接続されている。デジタルカメラ110は、検査の対象物900を撮影することによって、撮影画像の画像データを生成する。以下、対象物900がプリンタであることとする(対象物900を、プリンタ900とも呼ぶ)。
【0014】
A2.撮影画像:
図2(A)、図2(B)は、デジタルカメラ110による撮影画像の例を示している。撮影画像IMは、D1方向に平行な2辺と、D1方向に垂直なD2方向に平行な2辺と、を有する矩形状の画像である。撮影画像IMは、D1方向とD2方向とに沿ってマトリクス状に並ぶ複数の画素のそれぞれの色値(本実施例では、R(赤)、G(緑)、B(青)の成分値)によって、表されている。撮影画像IMは、プリンタ900の外面900sを示している。本実施例では、外面900sの縁の形状は、第1辺SD1と、第2辺SD2と、を含む4個の辺で表される矩形状とおおよそ同じである。また、外面900sには、ラベルシート910が貼り付けられている。本実施例では、ラベルシート910の形状は、4個の辺で表される矩形状とおおよそ同じである。ラベルシート910は、機械、または、作業者によって、プリンタ900に貼り付けられる。ラベルシート910を貼り付ける工程(貼付工程と呼ぶ)は、プリンタ900の製造工程の一部である。
【0015】
図2(A)、図2(B)には、外面900sに対応付けられた2つの軸Dx、Dyが示されている。第1軸Dxは、第1辺SD1を示す直線によって示される軸であり、第2軸Dyは、第2辺SD2を示す直線によって示される軸である。本実施例では、第2軸Dyは、第1軸Dxに垂直である。原点Oは、これらの軸Dx、Dyの交点を示している。
【0016】
軸Dx、Dyは、プリンタ900に対するラベルシート910の位置と傾きとを特定するために用いられる。図2(A)には、ラベルシート910の位置Pが示されている。位置Pは、第1軸Dxの第1座標Pxと、第2軸Dyの第2座標Pyと、で表される。なお、ラベルシート910の位置Pは、ラベルシート910に対して予め決められた種々の位置であってよい。本実施例では、位置Pは、ラベルシート910の画像の重心の位置である。
【0017】
図2(B)には、プリンタ900に対するラベルシート910の角度AGが示されている。本実施例では、角度AGは、ラベルシート910の辺SDtと第2軸Dyとのなす角度である。辺SDtは、ラベルシート910の予め決められた種々の辺であってよい。本実施例では、辺SDtは、第2軸Dyに最も近い辺であり、第2軸Dyにおおよそ平行な辺である。
【0018】
本実施例では、第1座標Pxが予め決められた第1座標許容範囲内であり、第2座標Pyが予め決められた第2座標許容範囲内であり、角度AGが予め決められた角度許容範囲内である場合、プリンタ900の検査結果は合格である。第1座標Pxと第2座標Pyと角度AGとのうちの1以上のパラメータが、対応する許容範囲外である場合、プリンタ900の検査結果は不合格である。パラメータPx、Py、AGのそれぞれは、プリンタ900の製造工程の状況に関連する対象変数の例である。以下、パラメータPx、Py、AGを、対象変数Px、Py、AGと呼ぶ。
【0019】
本実施例では、プリンタ900の製造ラインでは、複数のプリンタ900に、1つずつ順番に、ラベルシート910が貼り付けられる。ここで、パラメータPx、Py、AGのうちの1以上のパラメータが、同じ方向に少しずつ変化する場合がある。このような単調な変化が継続する場合、パラメータが許容範囲の外に移動し得る。パラメータの単調な変化を検知すれば、パラメータが許容範囲の外に移動する前に、対策を施すことができる(例えば、プリンタ900にラベルシート910を貼り付ける装置の設定を、調整できる)。
【0020】
A3.検知処理:
図3は、異常の兆候の検知処理の例を示すフローチャートである。本実施例では、パラメータPx、Py、AGのうちの1以上のパラメータが、対応する許容範囲外である場合に、プリンタ900が異常を有すると判断される。データ処理装置200(図1)のプロセッサ210は、異常の兆候を、プリンタ900の撮影画像を用いて検知する。なお、プロセッサ210は、プログラム231に従って、図3の処理を進行する。
【0021】
S110では、プロセッサ210(図1)は、デジタルカメラ110に撮影指示を供給する。デジタルカメラ110は、プリンタ900を撮影し、撮影画像を示す画像データを生成する。撮影画像は、図2(A)、図2(B)の撮影画像IMと同様に、プリンタ900の外面900sを示している。プロセッサ210は、デジタルカメラ110から、画像データを取得し、画像データを用いて、パラメータPx、Py、AGを特定する。パラメータPx、Py、AGの特定方法は、任意の方法であってよい。例えば、プロセッサ210は、予め準備された外面900sの画像を用いるパターンマッチングによって、撮影画像中の第1軸Dxと第2軸Dyとを特定する。また、プロセッサ210は、予め準備されたラベルシート910の画像を用いるパターンマッチングによって、撮影画像中の位置Pと辺SDtとを特定する。プロセッサ210は、特定された軸Dx、Dyと位置Pと辺SDtとを用いて、パラメータPx、Py、AGを算出する。算出されるパラメータPx、Py、AGのそれぞれの値は、対象変数の測定値の例である。測定値は、観測値とも呼ばれる。なお、プロセッサ210は、撮影画像中の外面900sとラベルシート910とを、物体検出モデルと呼ばれる機械学習モデル(例えば、YOLO(You only look once))を用いて、検出してよい。
【0022】
なお、後述するように、プロセッサ210は、複数のプリンタ900のそれぞれに対して、図3の処理を実行する。プロセッサ210は、複数のプリンタ900を処理するために、S110の処理を複数回実行する。プロセッサ210は、繰り返されるS110のそれぞれによって算出される対象変数Px、Py、AGのそれぞれの値を、時系列データとして取得する。プロセッサ210は、新たなプリンタ900のためにS110を実行することによって、新たな時点tでの測定値を取得する。本実施例では、プロセッサ210は、検知処理の順番を、時点tとして用いる。例えば、時点tは、新たなプリンタ900が処理される毎に、1ずつ増加する。図1の記憶装置215(本実施例では、不揮発性記憶装置230)に格納されている時系列データTSx、TSy、TSaは、それぞれ、3個の対象変数Px、Py、AGの時系列データである。S110では、プロセッサ210は、新たに算出される対象変数Px、Py、AGのそれぞれの値を示すデータを、不揮発性記憶装置230に格納することによって、時系列データTSx、TSy、TSaに追加する。このように、時系列データTSx、TSy、TSaは、S110によって、新たな時点tのデータを含むように、更新される。
【0023】
S120では、プロセッサ210は、予測モデルMAx、MAy、MAaを用いて、対象変数Px、Py、AGのそれぞれの将来の値を予測する。
【0024】
図4は、予測モデルを用いる将来の値の予測処理の例を示すフローチャートである。各予測モデルMAx、MAy、MAa(図1)は、状態空間モデルとカルマンフィルタを用いて値を予測する予測モデルである。本実施例では、3個の予測モデルMAx、MAy、MAaは、3個の対象変数Px、Py、AGに、それぞれ対応している。図4の予測処理は、1個の対象変数のための処理を示している。
【0025】
図5(A)-図5(F)は、状態空間モデルの説明図である。本実施例では、3個の対象変数Px、Py、AGのそれぞれが、図5(A)-図5(F)の状態空間モデルを用いて表現される。
【0026】
図5(A)は、測定値に含まれる成分を示している。Ytは、時点tでの測定値であり、Ttは、時点tでのトレンド成分であり、Rtは、時点tでの自己回帰成分であり、Wtは、時点tでのノイズである。測定値Ytは、Tt、Rt、Wtの和で表される。ノイズWtは、平均値=ゼロ、分散が=sの正規分布に従うこととしている。
【0027】
図5(B)は、トレンド成分Ttの例を示している。kは、次数である。時点tでのトレンド成分Ttは、係数Ck(i)と時点t-iでのトレンド成分Tt-iとの積の合計値と、時点tでの第1ノイズVatと、の和で表される(添え字iは、1からkまで変化する)。第1ノイズVatは、平均値=ゼロ、分散が=saの正規分布に従うこととしている。図中には、k=1、2、3のそれぞれの場合の係数Ck(i)が、具体的に示されている。図示するように、Ck(i)は、予め決められた定数である。このようなトレンド成分Ttは、時間の経過に対して単調に変化する成分を示している。
【0028】
図5(C)は、自己回帰成分Rtの例を示している。時点tでの自己回帰成分Rtは、係数φ(i)と時点t-iでの自己回帰成分Rt-iとの積の合計値と、時点tでの第2ノイズVbtと、の和で表される(添え字iは、1からqまで変化する)。第2ノイズVbtは、平均値=ゼロ、分散が=sbの正規分布に従うこととしている。
【0029】
図5(D)は、システムモデルを示している。Xtは、時点tでの状態(具体的には、列ベクトル)であり、Fは、第1係数行列であり、Gは、第2係数行列であり、Vtは、時点tでのノイズ(具体的には、列ベクトル)である。時点tでの状態Xtは、時点t-1での状態Xt-1と第1係数行列Fとの積で表される列ベクトルと、時点tでのノイズVtと第2係数行列Gとの積で表される列ベクトルと、の和である。
【0030】
図5(E)は、観測モデルを示している。Hは、第3係数行列(具体的には、行ベクトル)である。時点tでの測定値Ytは、時点tでの状態Xtと第3係数行列Hとの積で表される値と、ノイズWtと、の和で表される。
【0031】
図5(F)は、k=2、q=3の場合のXt、Vt、F、G、Hの具体例を示している。状態Xtは、5個の要素Tt、Tt-1、Rt、Rt-1、Rt-2を有する列ベクトルである(行ベクトルの右上に付された「T」は、転置を示す)。ノイズVtは、2個の要素Vat、Vbtを有する列ベクトルである。
【0032】
第1係数行列Fは、5行5列の行列である。左上の2行2列の部分Faは、トレンド成分Tt(図5(B))の計算に用いられる。右下の3行3列の部分Fbは、自己回帰成分Rt(図5(C))の計算に用いられる。他の部分の全ての要素は、ゼロである(図中の0(ゼロ)は、ゼロ行列を示している)。
【0033】
第2係数行列Gは、5行2列の行列である。上の2行2列の部分Gaは、トレンド成分Tt(図5(B))の計算に用いられる。下の3行2列の部分Gbは、自己回帰成分Rt(図5(C))の計算に用いられる。
【0034】
第3係数行列Hは、1行5列の行ベクトルである。左の2列は、状態Xtからトレンド成分Ttを抽出し、右の3列は、状態Xtから自己回帰成分Rtを抽出する。
【0035】
以上のように、本実施例では、関数F、Hは、線形であり、ノイズWt、Vat、Vbtは、正規分布に従う。このような状態空間モデルは、線形・ガウス型状態空間モデルとも呼ばれる。以下、k=2、q=3であることとする(図5(F))。
【0036】
続いて、図4の処理について説明する。上述したように、図4は、1個の対象変数の予測処理である。プロセッサ210は、3個の対象変数Px、Py、AGのそれぞれに関して、図4の処理を実行する。以下、対象変数Pxと予測モデルMAxとを用いて、図4の処理を説明する。
【0037】
S210では、プロセッサ210は、調整条件が満たされるか否かを判断する。調整条件は、状態空間モデルのパラメータを調整するための条件である。本実施例の状態空間モデル(図5(A)-図5(F))は、複数のパラメータを有している(具体的には、分散s、sa、sbと、係数φ(i))。予測モデルMAx(図1)は、これらのパラメータを示すデータを含んでいる。状態空間モデルを用いて対象変数Pxを適切に予測するために、プロセッサ210は、取得済の時系列データTSxを用いて、これらのパラメータを調整する。
【0038】
調整条件は、不適切なパラメータに起因する不適切な予測を抑制可能な種々の条件であってよい。本実施例では、調整条件は、前回の調整からの経過時間が閾値(例えば、1週間、1ヶ月、など)を超えることである。すなわち、パラメータの調整は、定期的に行われる。
【0039】
調整条件が満たされない場合(S210:No)、プロセッサ210は、S240へ移行する。
【0040】
調整条件が満たされる場合(S210:Yes)、S220で、プロセッサ210は、予測モデルMAxのパラメータ(すなわち、状態空間モデルのパラメータs、sa、sb、φ(i))を調整する。本実施例では、プロセッサ210は、予測モデルMAxに含まれるパラメータを示すデータを、調整済のパラメータを示すデータに更新する。なお、予測モデルMAx、MAy、MAaは、対応する対象変数Px、Py、AGの状態空間モデルのパラメータデータを、含んでいる。
【0041】
状態空間モデルのパラメータの調整方法は、時系列データを適切に説明する値にパラメータを調整する任意の方法であってよい。本実施例では、プロセッサ210は、いわゆる最尤推定を行う。最尤推定は、パラメータと時系列データとから算出される尤度が最大となるように、パラメータを決定する。尤度は、時系列データに基づくパラメータの尤もらしさを示している。与えられたパラメータに基づいて時系列データが得られる確率が高い場合に、尤度が高くなる。上述したように、本実施例では、状態空間モデルは、線形・ガウス型状態空間モデルである。この場合、プロセッサ210は、公知の種々のアルゴリズムによって、パラメータの最尤推定を実行できる。アルゴリズムは、例えば、パラメータによる対数尤度関数の微分がゼロとなるようなパラメータを算出するアルゴリズムであってよい。パラメータの調整には、取得済の時系列データの全部が用いられてよい。これに代えて、パラメータの調整には、取得済の時系列データの一部の時系列データが用いられてよい(例えば、最新の時点tを含む所定の時間幅の時系列データ)。なお、パラメータは、時系列データに基づいて調整されている。従って、プロセッサ210は、時系列データを用いて、予測モデルMAxのパラメータ(ここでは、パラメータs、sa、sb、φ(i))を、学習している、ということができる。
【0042】
S230では、プロセッサ210は、対象変数Pxに関して、時点1から時点t-1まで、フィルタ処理を繰り返す。図6は、フィルタ処理の例を示すフローチャートである。本実施例では、フィルタ処理は、いわゆるカルマンフィルタである。図6の処理は、時点zでのフィルタ処理を示している。本実施例では、予測モデルMAx、MAy、MAaは、それぞれ、対象変数Px、Py、AGのフィルタ処理のためのプログラムを含んでいる。また、予測モデルMAx、MAy、MAaは、それぞれ、対象変数Px、Py、AGのための後述する状態Xzと予測誤差の分散VSzとを示すデータを含んでいる。プロセッサ210は、予測モデルに従って、図6の処理を実行する。
【0043】
S310では、プロセッサ210は、時点zでの状態Xzを予測する。この予測は、システムモデル(図5(D))に従って、行われる。本実施例では、1つ前の時点z-1での状態Xz-1に第1係数行列Fを乗じることによって、状態Xzが算出される(ノイズVat、Vbtのそれぞれの平均値がゼロであるので、ノイズVtの加算は省略される)。なお、時点zが1である場合、状態Xzの推定に、初期の状態X0が用いられる。初期の状態X0の各要素は、種々の値に設定されてよい。例えば、各要素は、ゼロ、または、乱数値に設定されてよい。
【0044】
S320では、プロセッサ210は、時点zでの対象変数Pxの実際の測定値Yzを取得する。測定値Yzを示すデータは、S110(図3)で、不揮発性記憶装置230に格納されている。プロセッサ210は、不揮発性記憶装置230から、測定値Yzを示すデータを取得する。
【0045】
S330では、プロセッサ210は、時点zでの状態の予測誤差の分散VSzを算出する。この分散VSzは、システムモデル(図5(D))に従って、算出される。分散VSzは、1つ前の時点z-1での分散VSz-1と、過程誤差の分散と、の和で表される。過程誤差の分散は、システムモデルに含まれるノイズ成分の分散を示している。システムモデルに複数のノイズ成分が含まれる場合、過程誤差の分散としては、複数のノイズ成分の複数の分散の和が用いられてよい。本実施例では、システムモデルには、2個のノイズ成分Vat、Vbtが含まれる。分散VSzは、1つ前の時点z-1での分散VSz-1と、第1ノイズVatの分散saと、第2ノイズVbtの分散sbと、の和である。初期の分散VS0は、種々の値に設定されてよい。
【0046】
S340では、プロセッサ210は、時点zでの測定値を予測する。この予測は、観測モデル(図5(E))に従って、行われる。本実施例では、S310で予測された状態Xzに第3係数行列Hを乗じることによって、予測値YPzが算出される(ノイズWtの平均値がゼロであるので、ノイズWtの加算は省略される)。
【0047】
S350では、プロセッサ210は、時点zでの測定値の予測誤差の分散VMzを算出する。この分散VMzは、観測モデル(図5(E))に従って、算出される。本実施例では、分散VMzは、S330で算出された分散VSzと、ノイズWtの分散sと、の和である。
【0048】
S360では、プロセッサ210は、時点zでのカルマンゲインKzを算出する。本実施例では、カルマンゲインKzは、VSz/VMzで算出される。
【0049】
S370では、プロセッサ210は、時点zでの予測残差dYzを算出する。予測残差dYzは、測定値Yzから予測値YPzを減算した差分である。
【0050】
S380では、プロセッサ210は、時点zでの状態Xzを、カルマンゲインKzを用いて補正する。本実施例では、補正された状態Xzは、補正前の状態Xzと、カルマンゲインKzと予測残差dYzとの積と、の和である。プロセッサ210は、予測モデルMAxに含まれる状態Xzを示すデータを、補正された状態Xzを示すデータに更新する。
【0051】
S390では、プロセッサ210は、時点zでの状態の予測誤差の分散VSzを補正する。本実施例では、補正された分散VSzは、「1-Kz」と補正前の分散VSzとの積である。プロセッサ210は、予測モデルMAxに含まれる分散VSzを示すデータを、補正された分散VSzを示すデータに更新する。
【0052】
以上により、プロセッサ210は、時点zでのフィルタ処理、すなわち、図6の処理を終了する。補正された状態Xzと分散VSzとは、次の時点z+1のフィルタ処理のS310、S330で、用いられる。
【0053】
S230(図4)では、プロセッサ210は、時点1から時点t-1まで、対象変数Pxのフィルタ処理を繰り返す。これにより、プロセッサ210は、対象変数Pxに関して、補正された状態Xの時系列データと、補正された分散VSの時系列データとを、取得する。状態Xの時系列データは、1からt-1までの各時点jの状態Xjを示している。分散VSの時系列データは、1からt-1までの各時点jの分散VSjを示している。図6のS380、S390で説明したように、プロセッサ210は、補正された状態Xjを示すデータと、補正された分散VSjを示すデータとを、予測モデルMAxの一部として、不揮発性記憶装置230に格納する。以上により、予測モデルMAxは、対象変数Pxの状態Xjの時系列データと分散VSjの時系列データを、含んでいる(jは、1からt-1まで)。S230の後、プロセッサ210は、S240へ移行する。
【0054】
S240では、プロセッサ210は、現行の時点tでの対象変数Pxの実際の測定値Ytを取得する。本実施例では、測定値Ytを示すデータは、S110(図3)で、不揮発性記憶装置230に格納されている。プロセッサ210は、不揮発性記憶装置230から、測定値Ytを示すデータを取得する。
【0055】
S250では、プロセッサ210は、時点tでの対象変数Pxのフィルタ処理(図6)を、予測モデルMAxに従って、実行する。これにより、時点tでの状態Xtと分散VStとが、補正される。
【0056】
次に、プロセッサ210は、N期先(すなわち、時点t+N)の測定値を予測する(以下、Nを、予測時間Nとも呼ぶ)。予測時間Nは、1以上の整数である(例えば、N=30)。
【0057】
S260では、プロセッサ210は、カウンタhを1に初期化する。S270では、プロセッサ210は、時点t+hでの状態Xt+hを予測する。予測モデルMAxは、S270の予測のためのプログラムを含んでいる。プロセッサ210は、予測モデルMAxに従って、S270の予測を実行する。この予測は、図6のS310での予測と同様である。プロセッサ210は、1つ前の時点t+h-1での予測された状態Xt+h-1に、第1係数行列Fを乗じることによって、状態Xt+hを算出する。
【0058】
S280では、プロセッサ210は、カウンタhが予測時間Nであるか否かを判断する。カウンタhが予測時間Nとは異なる場合、すなわち、h<Nの場合(S280:No)、プロセッサ210は、S285で、カウンタhに1を加算し、S270へ移行する。そして、プロセッサ210は、新たな時点t+hでの状態Xt+hを予測する。
【0059】
カウンタhが予測時間Nと同じである場合(S280:Yes)、S290で、プロセッサ210は、時点t+Nでの予測された状態Xt+Nを用いて、時点t+Nでの測定値を予測する。予測モデルMAxは、S290の予測のためのプログラムを含んでいる。プロセッサ210は、予測モデルMAxに従って、S290の予測を実行する。この予測は、図6のS340での予測と同様である。プロセッサ210は、時点t+Nでの予測された状態Xt+Nに、第3係数行列Hを乗じることによって、予測値YPt+Nを算出する。そして、プロセッサ210は、図4の処理、すなわち、図3のS120の処理を終了する。
【0060】
以上、第1座標Pxの予測処理について説明した。S120では、プロセッサ210は、他の対象変数Py、AGについても、図4の予測処理を実行する。
【0061】
図7(A)-図7(C)は、対象変数Px、Py、AGのそれぞれの時系列データTSx、TSy、TSaの例を示すグラフである。横軸は、時間Tmを示している。図7(A)-図7(C)の縦軸は、対象変数Px、Py、AGを、それぞれ示している。図7(A)のPx1以上、Px2以下の範囲R1は、第1座標許容範囲を示している。図7(B)のPy1以上、Py2以下の範囲R2は、第2座標許容範囲を示している。図7(C)のAG1以上、AG2以下の範囲R3は、角度許容範囲を示している。時点tよりも前の時間Tmでは、対象変数Px、Py、AGの測定値が示されている。時点tよりも後の時間Tmでは、対象変数Px、Py、AGの予測値が示されている。
【0062】
図5(A)、図5(B)で説明したように、本実施例の状態空間モデルでは、測定値Ytは、トレンド成分Ttを含んでいる。従って、実際の測定値Ytの時系列データが、時間の経過に対して単調に変化する成分であるトレンド成分を含む場合に、状態空間モデルに基づく予測値は、そのトレンド成分を反映し得る。例えば、図7(A)-図7(C)の例では、時点tに近い時間範囲TRで、実際の測定値が時間の経過に対して単調に変化している。この結果、時点tから時点t+Nの時間範囲では、予測値は、時間の経過に対して単調に変化している。そして、時点t+Nでは、予測値は、許容範囲R1、R2、R3の外であり得る。
【0063】
図3のS130では、プロセッサ210は、「3個の対象変数Px、Py、AGの時点t+Nでの3個の予測値の全てが、対応する許容範囲内である」という条件が満たされるか否かを判断する。1以上の対象変数の予測値が、対応する許容範囲外である場合(S130:No)、S140で、プロセッサ210は、予測値が許容範囲外であることを示す第1データを出力する。本実施例では、プロセッサ210は、予測値が許容範囲外であることを示す第1画像DP1の画像データを、表示部240(図1)に出力する。表示部240は、受信した画像データに従って、第1画像DP1を表示する。作業者は、第1画像DP1を観察することによって、異常の兆候を知ることができる。そして、プロセッサ210は、S180へ移行する。
【0064】
S130の条件が満たされる場合(S130:Yes)、S150で、プロセッサ210は、スコア算出モデルMBx、MBy、MBaを用いて、対象変数Px、Py、AGのそれぞれの異常度スコアを算出する。
【0065】
図8は、算出モデルを用いるスコアの算出処理の例を示すフローチャートである。各スコア算出モデルMBx、MBy、MBa(図1)は、いわゆるk近傍法を用いて時系列データのスコアを予測する予測モデルである。本実施例では、3個のスコア算出モデルMBx、MBy、MBaは、3個の対象変数Px、Py、AGに、それぞれ対応している。図8の算出処理は、1個の対象変数のための処理を示している。プロセッサ210は、図8の算出処理を、3個の対象変数Px、Py、AGのそれぞれに関して、実行する。以下、対象変数Pxとスコア算出モデルMBxとを用いて、図8の処理を説明する。
【0066】
S410では、プロセッサ210は、対象変数の時系列データから、L個の基準部分時系列データを抽出する(Lは予め決められた1以上の整数。例えば、L=1)。基準部分時系列データは、予め決められた時間幅WD(例えば、WD=30)の時系列データであり、許容範囲内での対象変数の変化を示している。なお、時間幅WDの時系列データは、連続するWD+1個の時点のデータで構成されている。
【0067】
図9は、スコア算出モデルMBxの概略図である。図中には、第1座標Pxの時系列データTSxを示すグラフが示されている。横軸は、時間Tmを示し、縦軸は、第1座標Pxを示している。図中には、L個の基準部分時系列データTD1-TDLが示されている。プロセッサ210は、例えば、時系列データTSxのうちの許容範囲R1内で第1座標Pxが変化する時間Tmの範囲から、ランダムに、L個の基準部分時系列データを抽出する。これに代えて、作業者が、L個の基準部分時系列データを選択してもよい。また、L>2の場合、複数の基準部分時系列データのそれぞれの時間Tmの範囲が、一部ずつ重なっていてもよい。
【0068】
プロセッサ210は、L個の基準部分時系列データを、スコア算出モデルMBxの一部として、不揮発性記憶装置230に格納する。なお、L個の基準部分時系列データは、時系列データに基づいて調整されている。従って、プロセッサ210は、時系列データを用いて、スコア算出モデルMBxのパラメータ(ここでは、L個の基準部分時系列データ)を学習している、ということができる。
【0069】
なお、S410(図8)は、複数のプリンタ900の検知処理(図3)のために、1回だけ行われてよい。例えば、L個の基準部分時系列データの取得のために、複数の学習用のプリンタ900が製造されてよい。S410では、プロセッサ210は、複数の学習用のプリンタ900の製造によって得られた対象変数の時系列データから、L個の基準部分時系列データを抽出してよい。プロセッサ210は、続く複数のプリンタ900の検知処理では、同じL個の基準部分時系列データを継続して用いてよい。これに代えて、プロセッサ210は、複数のプリンタ900の検知処理のために、S410を、複数回(例えば、定期的に)、実行してよい。この場合、プロセッサ210は、最新の時系列データから、L個の基準部分時系列データを抽出することが好ましい。
【0070】
S420では、プロセッサ210は、対象部分時系列データを取得する。対象部分時系列データは、異常度スコアの算出のためにL個の基準部分時系列データと対比される時系列データである。本実施例では、プロセッサ210は、対象変数Pxの時系列データTSxのうち、現在の時点tを含む時間幅WDの時系列データを、対象部分時系列データとして取得する。図9の例では、時点tで終わる時間幅WDの部分時系列データTDtが、対象部分時系列データである。
【0071】
S430では、プロセッサ210は、対象部分時系列データと、L個の基準部分時系列データと、の間のL個の距離を算出する。図9の例では、L個の基準部分時系列データTD1-TDLに対応するL個の距離DT1-DTLが算出されている。スコア算出モデルMBxは、S430(図8)の算出のためのプログラムを含んでいる。プロセッサ210は、スコア算出モデルMBxに従って、S430の算出を実行する。算出される距離は、2個の時系列データの間の違いを示す任意の指標値であってよい。このような距離は、2個の部分時系列データの間の非類似度を示している。以下、距離を、非類似度とも呼ぶ。本実施例では、距離は、ユークリッド距離である。ここで、1個の部分時系列データは、「WD+1」次元のベクトルとして用いられる。
【0072】
S440では、プロセッサ210は、L個の非類似度のうち最も小さいM個の非類似度を選択する(Mは、1以上、L以下の、予め決められた整数。例えば、M=10)。そして、プロセッサ210は、M個の非類似度の代表値を、異常度スコアとして算出し、図8の処理を終了する。図9の例では、異常度スコアSRが算出されている。スコア算出モデルMBxは、S440の算出のためのプログラムを含んでいる。プロセッサ210は、スコア算出モデルMBxに従って、S440の算出を実行する。算出される代表値は、M個の非類似度を用いて予め決められた算出式に従って算出される種々の値であってよい。本実施例では、代表値は、平均値である。なお、代表値は、平均値に限らず、最小値、最大値、中央値、積算値など、M個の非類似度に基づいて決まる種々の値であってよい。
【0073】
異常度スコアは、将来に異常が生じる可能性が高い場合に、大きくなり得る。例えば、貼付工程において、ラベルシート910の第1座標Pxの精度が低下する場合に、対象部分時系列データによって示される対象変数Pxの分散が増大する。このような場合に、対象変数Pxの異常度スコアは大きくなる。また、貼付工程において、ラベルシート910の第1座標Pxが単調に変化する場合に、対象変数Pxの異常度スコアは大きくなる。一般的には、異常度スコアは、対象部分時系列データによって示される対象変数の変化の仕方が、基準部分時系列データによって示される対象変数の変化の仕方と異なる場合に、大きくなる。大きな異常度スコアは、将来に異常が生じる可能性が高いことを、示している。他の対象変数Py、AGについても、同様である。
【0074】
以上、第1座標Pxの異常度スコアの算出処理について説明した。図3のS150では、プロセッサ210は、他の対象変数Py、AGについても、図8の算出処理を実行する。
【0075】
S160では、プロセッサ210は、「3個の対象変数Px、Py、AGの3個の異常度スコアの全てが、対応するスコア閾値以下である」という条件が満たされるか否かを判断する。異常度スコアがスコア閾値よりも大きいことは、異常の兆候を示している。スコア閾値は、対象変数Px、Py、AG毎に、予め実験的に決められる。1以上の対象変数の異常度スコアが、対応するスコア閾値よりも大きい場合(S150:No)、S170で、プロセッサ210は、異常度スコアがスコア閾値よりも大きいことを示す第2データを出力する。本実施例では、プロセッサ210は、異常度スコアがスコア閾値よりも大きいことを示す第2画像DP2の画像データを、表示部240(図1)に出力する。表示部240は、受信した画像データに従って、第2画像DP2を表示する。作業者は、第2画像DP2を観察することによって、異常の兆候を知ることができる。そして、プロセッサ210は、S180へ移行する。
【0076】
S160の条件が満たされる場合(S160:Yes)、プロセッサ210は、S180へ移行する。
【0077】
S180では、プロセッサ210は、全てのプリンタ900が処理されたか否かを判断する。未処理のプリンタ900が残っている場合(S180:No)、プロセッサ210は、S110へ移行して、新たなプリンタ900の処理を実行する。全てのプリンタ900が処理された場合(S180:Yes)、プロセッサ210は、図3の処理を終了する。
【0078】
以上のように、本実施例では、データ処理装置200(図1)のプロセッサ210は、S110(図3)で、対象変数Px、Py、AGのそれぞれの測定値の時系列データTSx、TSy、TSaを取得する。S220(図4)では、プロセッサ210は、対象変数Px、Py、AGの値を予測するための予測モデルMAx、MAy、MAaに含まれる複数のパラメータ(ここでは、パラメータs、sa、sb、φ(i)))を、対象変数Px、Py、AGの測定値の時系列データTSx、TSy、TSaの少なくとも一部を用いて学習する。図4のS250-S290では、プロセッサ210は、予測モデルMAx、MAy、MAaの学習済のモデルを用いて、測定値の時系列データTSx、TSy、TSaの最新の時点tよりも後の将来の時点t+Nにおける対象変数Px、Py、AGの値を予測する。そして、対象変数Px、Py、AGの予測された値が所定の許容範囲R1、R2、R3の外である場合に(図3:S130:No)、S140で、プロセッサ210は、対象変数Px、Py、AGの予測された値が所定の許容範囲R1、R2、R3外であることを示す第1データを出力する。このような第1データは、異常の兆候を示すデータとして、利用できる。上述したように、本実施例では、第1データは、第1画像DP1の画像データである。プロセッサ210は、この第1データを、表示部240に出力する。作業者は、第1画像DP1を観察することによって、異常の兆候を知ることができる。そして、作業者は、貼付工程の設定を、異常が生じる前に、見直すことができる。なお、データ処理装置200は、異常の兆候を検知する異常兆候検知装置の例である。
【0079】
また、図5(A)、図5(B)で説明したように、予測モデルMAx、MAy、MAaは、時間の経過に対する単調な変化を示すトレンド成分Ttを含む複数の成分Tt、Rtを用いて、対象変数Px、Py、AGの値を予測するように構成されている。従って、図7(A)-図7(C)で説明したように、予測モデルMAx、MAy、MAaは、対象変数Px、Py、AGが単調に変化する場合に、将来の時点において所定の許容範囲R1、R2、R3外であり得る対象変数Px、Py、AGの値を適切に予測できる。
【0080】
また、図3のS150、具体的には、図8のS430、S440では、プロセッサ210は、スコア算出モデルMBx、MBy、MBaに、対応する対象変数Px、Py、AGの対象部分時系列データを入力することによって、対象部分時系列データの異常度スコアを取得する。S410、S430、S440で説明したように、スコア算出モデルMBx、MBy、MBaは、入力された時系列データとL個(Lは1以上の整数)の基準の時系列データとの間の違いを示す異常度スコアを算出するように構成されている。また、図9に示すように、S430でスコア算出モデル(例えば、スコア算出モデルMBx)に入力される対象部分時系列データTDtは、測定値の時系列データTSxのうち、時間幅WDを有する一部のデータである部分時系列データである。そして、S440(図8)では、プロセッサ210は、対象部分時系列データTDt(図9)の異常度スコアSRを取得する。そして、異常度スコアが所定のスコア閾値より大きい場合に(図3:S160:No)、S170で、プロセッサ210は、異常度スコアが所定のスコア閾値より大きいことを示す第2データを出力する。このような第2データは、異常の兆候を示すデータとして、利用できる。上述したように、本実施例では、第2データは、第2画像DP2の画像データである。プロセッサ210は、この第2データを、表示部240に出力する。作業者は、第2画像DP2を観察することによって、異常の兆候を知ることができる。そして、作業者は、貼付工程の設定を、異常が生じる前に、見直すことができる。
【0081】
また、図2(A)に示すように、対象変数Px、Pyは、プリンタ900に貼り付けられたラベルシート910のプリンタ900に対する位置を示している。従って、対象変数Px、Pyの予測値に基づいて出力される第1データ(図3:S140)は、ラベルシート910の位置の異常の兆候を示すデータとして、利用できる。また、図2(B)に示すように、対象変数AGは、プリンタ900に貼り付けられたラベルシート910のプリンタ900に対する向きを示している。従って、対象変数AGの予測値に基づいて出力される第1データ(図3:S140)は、ラベルシート910の向きの異常の兆候を示すデータとして、利用できる。
【0082】
B.第2実施例:
図10は、データ処理装置の第2実施例を示す説明図である。第2実施例と図1の第1実施例との間の差異は、4つある。第1の差異は、プログラム231が、プログラム231aに置換されている点である。第2の差異は、不揮発性記憶装置230が、更に、推定モデルMCx、MCy、MCaと、学習済の機械学習モデルMDと、時系列データTS1、TS2と、を格納している点である。推定モデルMCx、MCy、MCaと、機械学習モデルMDとは、いずれも、プログラムモジュールである。第3の差異は、作業者800を撮影するデジタルカメラ120が、通信インタフェース270に接続されている点である。以下、プリンタ900を撮影するデジタルカメラ110を、第1カメラ110と呼び、作業者800を撮影するデジタルカメラ120を、第2カメラ120と呼ぶ。本実施例では、作業者800は、ラベルシート910をプリンタ900に貼り付ける作業を行う。第4の差異は、供給装置700の動作に関するパラメータAPを測定するセンサ130が、通信インタフェース270に接続されている点である。本実施例では、供給装置700は、ラベルシート910を、作業者800に供給する。供給装置700は、ラベルシート910を移動させるローラ(図示せず)と、ローラを回転させるモータ710と、を備えている。センサ130は、モータ710の電流を測定する(パラメータAPを、電流APとも呼ぶ)。データ処理装置200aのハードウェア構成の他の部分は、図1のデータ処理装置200のハードウェア構成の対応する部分と、同じである。以下、第1実施例と共通する部分の説明を省略する。
【0083】
図11(A)は、第2カメラ120による撮影画像の例を示している。撮影画像IMaは、D1a方向に平行な2辺と、D1a方向に垂直なD2a方向に平行な2辺と、を有する矩形状の画像である(本実施例では、D1a方向は、撮影画像IMa上の横方向であり、D2a方向は、撮影画像IMa上の縦方向である)。撮影画像IMaは、D1a方向とD2a方向とに沿ってマトリクス状に並ぶ複数の画素のそれぞれの色値(本実施例では、R、G、Bの成分値)によって、表されている。
【0084】
撮影画像IMaは、上から見たプリンタ900と作業者800とを示している。撮影画像IMaは、作業者800が、ラベルシート910をプリンタ900の外面900sに手で貼り付ける様子を、示している。具体的には、撮影画像IMaは、作業者800の手によって支持されたラベルシート910がプリンタ900に接した時の画像である。
【0085】
後述するように、第2カメラ120による撮影画像は、機械学習モデルMD(図1)によって処理される。本実施例では、機械学習モデルMD(図1)は、人間の姿勢推定モデルであり、画像から、人間の関節(キーポイントとも呼ばれる。例えば、肩、肘、手首など)を検出する。図11(A)の例では、機械学習モデルMDは、肩810、肘820、手首830を検出する。姿勢推定モデルとしては、公知の種々のモデルを採用可能である。例えば、「OpenPose」、「PoseNet」、「Cascaded Pyramid Network for Multi-Person Pose Estimation」から選択されたモデルが用いられてよい。
【0086】
プロセッサ210は、検出された関節を用いて、プリンタ900に対する腕の角度を特定する。ここで、撮影画像IMa中で、プリンタ900の外面900sは、D1a方向に平行であることとする。第1角度Aa1は、外面900sに平行な線La1と、上腕811と、がなす角度である。上腕811は、肩810と肘820とを結ぶ直線によって示される。第2角度Aa2は、外面900sに平行な線La2と、前腕821と、がなす角度である。前腕821は、肘820と手首830とを結ぶ直線によって示される。第3角度Aa3は、外面900sと、作業者800の手によって支持されたラベルシート910を近似する直線9Laと、がなす角度である。
【0087】
図11(B)は、第2カメラ120による撮影画像の別の例を示している。図11(A)の撮影画像IMaの撮影時とは異なり、図11(B)の撮影画像IMbの撮影時には、第2カメラ120は、プリンタ900と作業者800とを横から撮影している。図中のD1a方向は、図11(A)のD1a方向と同様に、撮影画像IMb上の横方向を示し、D2a方向は、図11(A)のD2a方向と同様に、撮影画像IMb上の縦方向を示している。撮影画像IMbも、撮影画像IMaと同様に、作業者800の手によって支持されたラベルシート910がプリンタ900に接した時の画像である。機械学習モデルMDは、撮影画像IMa(図11(A))が処理される場合と同様に、撮影画像IMbから肩810、肘820、手首830を検出する。ここで、撮影画像IMb中で、プリンタ900の外面900sは、D2a方向に平行であることとする。第4角度Aa4は、外面900sに平行な線La4と、上腕811と、がなす角度である。第5角度Aa5は、外面900sに平行な線La5と、前腕821と、がなす角度である。第6角度Aa6は、外面900sと、作業者800の手によって支持されたラベルシート910を近似する直線9Lbと、がなす角度である。
【0088】
作業者800は、プリンタ900にラベルシート910を貼り付けるという同じ作業を、繰り返す。また、供給装置700は、作業者800にラベルシート910を供給するという同じ処理を、繰り返す。適切な対象変数Px、Py、Ag(図2(A)、図2(B))が維持される場合、上記の角度Aa1-Aa6と電流AP(図1)とは、おおよそ、一定値に維持される。これらのパラメータAa1-Aa6、APの変化は、対象変数Px、Py、Agのいずれかを変化させ得る。例えば、角度Aa1-Aa6のいずれかの変化は、プリンタ900に対するラベルシート910の位置または向きを変化させ得る。この結果、対象変数Px、Py、Agのいずれかが、変化し得る。また、電流APの変化は、作業者800が供給装置700からラベルシート910を受け取る場合に、作業者800に対するラベルシート910の位置または向きを変化させ得る。この結果、対象変数Px、Py、Agのいずれかが、変化し得る。
【0089】
対象変数Px、Py、Agの変化に対するパラメータAa1-Aa6、APのそれぞれの寄与の程度を特定できれば、対象変数Px、Py、Agの変化の原因を特定できる。推定モデルMCx、MCy、MCa(図10)は、複数のパラメータのそれぞれの寄与の程度を推定するように、構成されている。本実施例では、推定モデルMCx、MCy、MCaは、予測モデルMAx、MAy、MAaと同様に、状態空間モデルとカルマンフィルタを用いて対象変数Px、Py、AGを予測する予測モデルである。3個の推定モデルMCx、MCy、MCaは、3個の対象変数Px、Py、AGに、それぞれ対応している。なお、本実施例では、推定モデルMCx、MCy、MCaは、対象変数Px、Py、AGの将来の値の予測ではなく、複数のパラメータのそれぞれの寄与の程度を推定に、利用される。
【0090】
図12(A)-図12(E)は、推定モデルMCx、MCy、MCaのための状態空間モデルの説明図である。本実施例では、3個の対象変数Px、Py、AGのそれぞれが、図12(A)-図12(E)の状態空間モデルを用いて表現される。
【0091】
図12(A)は、測定値に含まれる成分を示している。図5(A)の測定値Ytとの差異は、係数Eitと補助変数Uitとの積の合計値が加算されている点だけである(添え字iは、1からpまで変化する)。トレンド成分Ttと自己回帰成分RtとノイズWtとは、図5(A)-図5(C)のものと同じである。
【0092】
補助変数Uitは、時点tでのi番の変数の測定値である。p個の補助変数Uitとしては、パラメータAa1-Aa6、AP(図10図11(A)、図11(B))から予め選択されたp個のパラメータが用いられる。係数Eitは、時点tでのi番の補助変数Uitに乗じられる係数である。p個の係数Eitは、時間とともに変化し得る。後述するように、本実施例では、p個の係数Eitは、状態Xtの複数の要素に含まれる。
【0093】
図12(B)は、i番の係数Eitのシステムモデルを示している。時点tでの係数Eitは、1つ前の時点t-1での係数Eit-1と、時点tでのi番のノイズVitと、の和である。ノイズVitは、平均値=ゼロ、分散が=siの正規分布に従うこととしている。
【0094】
図12(C)は、システムモデルを示している。このシステムモデルは、図5(D)のシステムモデルと同じ形式で、表現される。すなわち、時点tでの状態Xtは、時点t-1での状態Xt-1と第1係数行列Fとの積で表される列ベクトルと、時点tでのノイズVtと第2係数行列Gとの積で表される列ベクトルと、の和である。
【0095】
図12(D)は、観測モデルを示している。この観測モデルは、図5(E)の観測モデルと同じ形式で、表現される。すなわち、時点tでの測定値Ytは、時点tでの状態Xtと第3係数行列Htとの積で表される値と、ノイズWtと、の和で表される。
【0096】
図12(E)は、k=2、q=3、p=2の場合のXt、Vt、F、G、Htの具体例を示している。状態Xtは、図5(F)の状態Xtに、2個の要素E1t、E2t(図12(B))を追加したものである。具体的には、状態Xtは、7個の要素Tt、Tt-1、Rt、Rt-1、Rt-2、E1t、E2tを有する列ベクトルである。
【0097】
ノイズVtは、図5(F)のノイズVtに、2個の要素V1t、V2t(図12(B))を追加したものである。具体的には、ノイズVtは、4個の要素Vat、Vbt、V1t、V2tを有する列ベクトルである。
【0098】
第1係数行列Fは、図5(F)の第1係数行列Fを、要素E1t、E2t(図12(B))の計算に用いられる部分Fcを含むように拡張したものである。具体的には、第1係数行列Fは、7行7列の行列である。左上の2行2列の部分Faと、中央の3行3列の部分Fbとは、図5(F)の部分Fa、Fbと、それぞれ同じである。部分Fcは、部分Fbの右下に追加されている。他の部分の全ての要素は、ゼロである。
【0099】
第2係数行列Gは、図5(F)の第2係数行列Gを、要素E1t、E2t(図12(B))の計算に用いられる部分Gcxを含むように拡張したものである。具体的には、第2係数行列Gは、7行4列の行列である。上の2行4列の部分Gaxは、トレンド成分Tt(図5(B))の計算に用いられる。中央の3行4列の部分Gbxは、自己回帰成分Rt(図5(C))の計算に用いられる。下の2行4列の部分Gcxは、要素E1t、E2t(図12(B))の計算に用いられる。
【0100】
第3係数行列Htは、図5(F)の第3係数行列Hに、2個の要素U1t、U2t(図12(A))を追加したものである。具体的には、第3係数行列Htは、1行7列の行ベクトルである。左の2列は、状態Xtからトレンド成分Ttを抽出する。中央の3列は、状態Xtから自己回帰成分Rtを抽出する。右の2列は、状態Xtから、係数Eitと補助変数Uitとの積の合計値を抽出する。
【0101】
なお、上述したように、補助変数Uitは、時点tが変化する場合に、変化し得る。従って、第3係数行列Htも、時点tが変化する場合に、変化し得る。また、補助変数Uitは、測定値であるので、現在、又は、過去の時点tでは、補助変数Uitは、時点tに応じて異なり得る固定値である。このように、第3係数行列Htは、現在、又は、過去の時点tでは、時点tに応じて異なり得る固定された要素を含んでいる。
【0102】
以上のように、この状態空間モデルにおいても、関数F、Htは、線形であり、ノイズWt、Vat、Vbt、Vitは、正規分布に従う。すなわち、この状態空間モデルも、線形・ガウス型状態空間モデルである。
【0103】
以下、本実施例では、k=2、q=3、p=2であることとする(図12(E))。また、第1補助変数U1tは、電流AP(図10)であり、第2補助変数U2tは、第1角度Aa1(図11(A))であることとする。第2カメラ120は、撮影画像IMaのように、上から見たプリンタ900と作業者800との撮影画像のデータを生成することとする。
【0104】
図13(A)、図13(B)は、検知処理の第2実施例を示すフローチャートである。図3の第2実施例との差異は、S105と、S142-S147とが追加されている点だけである。検知処理の他の部分の処理は、図3の対応する部分の処理と同じである(同じ部分については、図示と説明を省略する)。プロセッサ210は、プログラム231aに従って、検知処理を進行する。
【0105】
S105(図13(A))は、図3のS110の前に追加される。S105では、プロセッサ210(図1)は、センサ130によって生成される測定値データと、第2カメラ120によって生成される画像データと、を用いて、p個の補助変数のそれぞれの測定値データを取得する(本実施例では、p=2)。
【0106】
本実施例では、第1補助変数U1tは、電流APの測定値である。S105では、プロセッサ210は、センサ130からの測定値データを取得する。そして、測定値データによって示される値を、時点tでの電流AP(すなわち、第1補助変数U1t)の測定値として、採用する。
【0107】
また、本実施例では、第2補助変数U2tは、第1角度Aa1(図11(A))である。プロセッサ210(図1)は、第2カメラ120による撮影画像を用いて、時点tでの第1角度Aa1の測定値を取得する。
【0108】
本実施例では、第2カメラ120(図1)は、上から見た作業者800とプリンタ900との撮影を継続して行い、撮影された動画像を示す動画像データをデータ処理装置200aに供給する。動画像データは、時系列の順番に並ぶ複数のフレーム画像を示している。フレーム画像は、撮影画像の一種である。S105では、プロセッサ210は、動画像データを解析することにより、ラベルシート910がプリンタ900に接した時のフレーム画像を特定する。例えば、プロセッサ210は、予め準備されたプリンタ900の画像とラベルシート910の画像とを用いるパターンマッチングによって、フレーム画像中のプリンタ900とラベルシート910とを検出する。そして、データ処理装置200は、ラベルシート910がプリンタ900に接した時のフレーム画像を、処理対象の画像である対象画像として選択する。なお、プロセッサ210は、物体検出モデルを用いて、プリンタ900とラベルシート910とを検出してよい。
【0109】
プロセッサ210は、対象画像の画像データを機械学習モデルMD(図10)に入力することによって、作業者800の肩810、肘820、手首830を検出する。プロセッサ210は、検出された肩810と肘820と用いて、第1角度Aa1を算出する。
【0110】
第1実施例と同様に、プロセッサ210は、複数のプリンタ900を処理するために、S105の処理を複数回実行する。プロセッサ210は、繰り返されるS105のそれぞれによって算出される電流APと第1角度Aa1とのそれぞれの値を、時系列データとして取得する。プロセッサ210は、新たなプリンタ900のためにS105を実行することによって、新たな時点tでの測定値を取得する。図10の記憶装置215(本実施例では、不揮発性記憶装置230)に格納されている時系列データTS1、TS2は、それぞれ、2個のパラメータAP、Aa1の時系列データである。S105では、プロセッサ210は、新たに算出されるパラメータAP、Aa1のそれぞれの値を示すデータを、不揮発性記憶装置230に格納することによって、時系列データTS1、TS2に追加する。このように、時系列データTS1、TS2は、S105によって、新たな時点tのデータを含むように、更新される。
【0111】
なお、本実施例では、プロセッサ210は、S105の処理を、貼付工程と同じタイミングで実行する。これに代えて、プロセッサ210は、貼付工程よりも後に、S105の処理を実行してよい。この場合、プロセッサ210は、貼付工程が行われる時の第2カメラ120とセンサ130とからのデータを、記憶装置215(例えば、不揮発性記憶装置230)に格納する。そして、S105では、プロセッサ210は、記憶装置215に格納されたデータを用いて、p個の補助変数のそれぞれの測定値データを取得する。
【0112】
次に、図13(B)の処理について説明する。S130(図3)の判断結果がNoである場合、プロセッサ210は、S140の処理に加えて、S142-S147の処理を実行する。
【0113】
S142では、プロセッサ210は、推定モデルMCx、MCy、MCaのパラメータ(すなわち、状態空間モデルのパラメータ)を調整する。本実施例では、プロセッサ210は、推定モデルMCx、MCy、MCaに含まれるパラメータを示すデータを、調整済のパラメータを示すデータに更新する。S142では、図4のS220と同様に、パラメータs、sa、sb、φ(i)が調整される。S142では、更に、V1tの分散s1と、V2tの分散s2と、が調整される。プロセッサ210は、S220と同様に、最尤推定により、各パラメータを決定する。
【0114】
S142の最尤推定には、対象変数の時系列データに加えて、補助変数の時系列データが用いられる。例えば、プロセッサ210は、第1座標Pxの時系列データTSxと、電流APの時系列データTS1と、第1角度Aa1の時系列データTS2と、を用いて、推定モデルMCxに関する最尤推定を行う。補助変数の時系列データTS1、TS2は、3個の推定モデルMCx、MCy、MCaに共通に用いられる。なお、プロセッサ210は、時系列データを用いて、推定モデルMCx、MCy、MCaのそれぞれのパラメータ(ここでは、パラメータs、sa、sb、φ(i)、s1、s2)を、学習している、ということができる。
【0115】
S145では、プロセッサ210は、推定モデルMCx、MCy、MCaのそれぞれに関して、時点1から時点tまで、フィルタ処理を繰り返す。フィルタ処理としては、図6の処理が用いられる。本実施例では、推定モデルMCx、MCy、MCaは、それぞれ、対象変数Px、Py、AGのフィルタ処理のためのプログラムを含んでいる。プロセッサ210は、推定モデルMCx、MCy、MCaに従って、S145の処理を実行する。
【0116】
S145の処理により、推定モデルMCx、MCy、MCaは、それぞれ、1からtまでの各時点jの状態Xjと分散VSjとを示すデータを含む。状態Xjを示すデータは、時点jでの係数E1j、E2j(図12(E))を示すデータを含んでいる。プロセッサ210は、時点1から時点tまでのフィルタ処理によって、1からtまでの各時点jでの状態Xj、すなわち、係数E1j、E2jを推定する。
【0117】
図14(A)、図14(B)は、推定された1からtまでの各時点jでの係数E1j、E2jの例を示すグラフである。横軸は、時間Tmを示している。図14(A)、図14(B)の縦軸は、係数E1j、E2jをそれぞれ示している。図示するように、係数E1j、E2jは、それぞれ、時点jの変化に応じて変化し得る。
【0118】
図12(A)に示すように、係数E1t、E2tは、補助変数U1t、U2tに付与される重みを示している。測定値Ytの変化に対する第1補助変数U1tの変化の影響が小さい場合、S145(図13(B))では、第1補助変数U1tの小さい係数E1tが算出される。一方、測定値Ytの変化に対する第1補助変数U1tの変化の影響が大きい場合、S145では、第1補助変数U1tの大きい係数E1tが算出される。第2補助変数U2tの係数E2tについても、同様である。このように、係数Eitは、測定値Ytの変化に対する補助変数Uitの変化の影響の大きさ(すなわち、寄与の程度)を示している。
【0119】
図14(A)の例では、時点jの経過に応じて、係数E1jが増大している。これは、係数E1jに対応する補助変数、すなわち、電流APの影響が増大していることを示している。図14(B)の例では、時点jの経過に応じて、係数E2jが低下している。これは、係数E2jに対応する補助変数、すなわち、第1角度Aa1の影響が低下していることを示している。
【0120】
S147(図13)では、プロセッサ210は、第3データを出力する。そして、プロセッサ210は、S180(図3)へ移行する。図15は、第3データの例を示す概略図である。本実施例では、第3データは、第3画像DP3の画像データである。プロセッサ210は、第3画像DP3の画像データを、表示部240(図1)に出力する。表示部240は、受信した画像データに従って、第3画像DP3を表示する。
【0121】
第3画像DP3は、識別情報IAと、重み情報IBと、を示している。本実施例では、識別情報IAは、全ての補助変数のそれぞれの識別情報を含んでいる。図15の例では、名前「E1」は、電流APを示し、名前「E2」は、第1角度Aa1を示している。重み情報IBは、全ての係数の値を示す棒グラフを含んでいる。第3画像DP3は、補助変数の識別情報と、係数の値と、の対応関係を示している。作業者は、第3画像DP3を観察することによって、大きい重みに対応付けられた補助変数が異常の兆候の原因である可能性が高いことを、容易に知ることができる。
【0122】
なお、S130の判断結果がNoである場合、プロセッサ210は、第1データの出力(図3:S140)と、第3データの出力(S147)と、を行う。これらの出力の順番は、任意の順番であってよい。例えば、S140の後にS147が行われてよい。また、プロセッサ210は、第1データと第3データとを含む1つのデータ(例えば、第1画像DP1と第2画像DP2とを含む画像の画像データ)を、出力してもよい。
【0123】
以上のように、本実施例では、データ処理装置200a(図10)のプロセッサ210は、S105(図13(A))で、対象変数Px、Py、AGの測定に同期して測定されるp個(pは1以上の整数)の補助変数のp個の測定値のp個の時系列データを取得する(本実施例では、p=2)。p個の補助変数は、電流AP(図10)と第1角度Aa1(図11(A))を含んでいる。第1角度Aa1は、作業者800の動きを示している。S142(図13(B))では、プロセッサ210は、p個の補助変数AP、Aa1に対応付けられたp個の重み(図12(A)のE1t、E2t)を推定するための推定モデルMCx、MCy、MCaに含まれる複数のパラメータ(ここでは、パラメータs、sa、sb、φ(i)、s1、s2))を、学習する。この学習は、対象変数Px、Py、AGの測定値の時系列データTSx、TSy、TSaと、p個の補助変数AP、Aa1のp個の測定値のp個の時系列データTS1、TS2と、が用いられる。S145では、プロセッサ210は、推定モデルMCx、MCy、MCaの学習済のモデルを用いて、p個の重みを推定する。そして、対象変数Px、Py、AGの予測された値が所定の許容範囲R1、R2、R3の外である場合に(図3:S130:No)、プロセッサ210は、S147(図13(B))で、p個の重みのp個の推定値(重み情報IB(図15))と、p個の補助変数のそれぞれを識別する識別情報(識別情報IA(図15))と、の両方を示す第3データを出力する。このような第3データは、異常の兆候の原因の推定に利用可能である。本実施例では、第3データは、第3画像DP3(図15)の画像データである。プロセッサ210は、この第3データを、表示部240に出力する。作業者は、第3画像DP3を観察することによって、異常の兆候の原因を推定できる。例えば、大きな重みに対応付けられた補助変数が、異常の兆候の原因であると、推定可能である。そして、作業者は、貼付工程の設定を、異常が生じる前に、見直すことができる。
【0124】
C.変形例:
(1)S105(図13(A))で、画像中の作業者800の姿勢を推定する方法は、機械学習モデルMDを用いる方法に代えて、他の任意の方法であってよい。例えば、作業者800の肩、肘、手首に、予め決められたマークが付されてよい。プロセッサ210は、予め準備されたマークの画像を用いるパターンマッチングによって、画像中の肩、肘、手首を検出してよい。
【0125】
(2)S105(図13(A))では、プロセッサ210は、p個(pは、1以上の整数)の補助変数を標準化してよい。例えば、プロセッサ210は、異常の兆候が生じていない状態でp個の補助変数の間で平均値と分散とがおおよそ同じとなるように、p個の補助変数を変換してよい。これにより、p個の補助変数に対応するp個の重み(図12(A)の係数Eit)を、直接的に比較することができる。なお、各補助変数の変換式は、予め、実験的に決定されてよい。
【0126】
(3)予測モデルまたは推定モデルを用いる処理は、図4図6図13(A)、図13(B)の処理に代えて、他の種々の処理であってよい。例えば、S220(図4)、または、S142(図13(B))では、プロセッサ210は、取得済の時系列データのうちの一部を用いてもよい(例えば、最新の所定期間の時系列データ)。
【0127】
(4)S140(図3)で出力される第1データは、画像データに代えて、他の種々の形式のデータであってよい。例えば、プロセッサ210は、警告音を表す音データである第1データを、図示しない音再生装置に出力してよい。このように、プロセッサ210は、第1データを出力することによって、予測値が許容範囲外であることを作業者に報知してよい。また、プロセッサ210は、予測値が許容範囲外であることを示す第1データを、記憶装置(例えば、不揮発性記憶装置230、または、データ処理装置200に接続された外部記憶装置(図示せず))に、出力してよい(すなわち、第1データが記憶装置に格納される)。
【0128】
S170で出力される第2データについても、同様である。プロセッサ210は、第2データを出力することによって、異常度スコアがスコア閾値よりも大きいことを作業者に報知してよい。また、プロセッサ210は、異常度スコアがスコア閾値よりも大きいことを示す第2データを、記憶装置(例えば、不揮発性記憶装置230、または、データ処理装置200に接続された外部記憶装置(図示せず))に、出力してよい(すなわち、第2データが記憶装置に格納される)。
【0129】
(5)予測モデルの構成は、図5(A)-図5(F)等で説明した予測モデルMAx、MAy、MAaの構成に代えて、対象変数の値を予測することが可能な任意の構成であってよい。例えば、予測モデルは、Recurrent Neural Network(RNN)と呼ばれるモデルであってよい。図3のS120では、プロセッサ210は、RNNモデルの学習と、学習済のRNNモデルを用いる予測と、を行う。具体的には、プロセッサ210は、RNNモデルに含まれる複数のパラメータ(例えば、中間層での演算に用いられる重みなど)を、対象変数の測定値の時系列データの少なくとも一部を用いて学習する。そして、プロセッサ210は、学習済のRNNモデルを用いて、対象変数の測定値の時系列データの最新の時点よりも後の将来の時点における対象変数の値を予測する。RNNモデルの学習の方法は、RNNモデルに適する任意の方法であってよい。学習方法としては、例えば、BPTT(Backpropagation Through Time)と呼ばれる方法、または、Truncated BPTTと呼ばれる方法が、採用されてよい。また、予測モデルは、Long Short Term Memory(LSTM)と呼ばれるモデルであってよい(LSTMは、RNNの一種である)。また、予測モデルは、図7(A)のような時系列データを示すグラフの画像から将来の値を予測する画像認識モデルであってよい(例えば、畳み込みニューラルネットワーク)。
【0130】
推定モデルの構成についても、同様に、図12(A)-図12(E)等で説明した推定モデルMCx、MCy、MCaの構成に代えて、p個の補助変数に対応付けられたp個の重みを推定することが可能な任意の構成であってよい。例えば、推定モデルは、対象変数とp個の補助変数とを用いて対象変数の将来の値を予測するRNNモデルであってよい。RNNモデルは、対象変数の将来の値に加えて、p個の補助変数のp個の将来の値を予測するように構成されてもよい。図13(B)のS142では、プロセッサ210は、RNNモデルに含まれる複数のパラメータを、対象変数の測定値の時系列データの少なくとも一部と、p個の補助変数のp個の測定値のp個の時系列データの少なくとも一部と、を用いて学習する。RNNモデルの学習の方法は、RNNモデルに適する任意の方法であってよい(例えば、BPTT、または、Truncated BPTT)。図13(B)のS145は、学習済のRNNモデルを用いてp個の補助変数のそれぞれの重みを推定する処理に変更される。例えば、プロセッサ210は、SHAP (SHapley Additive exPlanations)と呼ばれるアルゴリズムに従って、学習済のRNNモデルから、p個の補助変数のそれぞれの重要性(すなわち、重み)を推定する。SHAPは、機械学習モデルの特徴変数毎に、予測に対する重要性の値を算出するアルゴリズムの例である。SHAPは、例えば、論文「Scott M. Lundberg, Su-In Lee, "A Unified Approach to Interpreting Model Predictions", 31st Conference on Neural Information Processing Systems (NIPS 2017), Long Beach, CA, USA.」に開示されている。また、SHAPを用いてRNNモデルから変数の重要性を算出する方法としては、例えば、プレプリント「Long V. Ho, Melissa Aczon, David Ledbetter, Randall Wetzel, "Interpreting a Recurrent Neural Network’s Predictions of ICU Mortality Risk", arXiv:1905.09865 (2019), https://arxiv.org/abs/1905.09865」に開示されている方法が採用されてよい。
【0131】
予測モデル、または、推定モデルのパラメータを学習する方法は、最尤推定に限らず、モデルのパラメータを時系列データに適した値に調整する任意の方法であってよい。ここで、学習方法としては、モデルに適する任意の方法を採用可能である。例えば、最小自乗法、総当たり法、誤差逆伝播法と勾配降下法とを用いる方法、などが用いられてよい。
【0132】
(6)算出モデルを用いる処理は、図8の処理に代えて、他の種々の処理であってよい。例えば、S420では、プロセッサ210は、現在の時点tを含まない過去の部分時系列データを、対象部分時系列データとして取得してもよい。
【0133】
また、算出モデルによる異常度スコアの算出方法は、k近傍法に代えて、入力された時系列データとL個(Lは1以上の整数)の基準の時系列データとの間の違いを示す異常度スコアを算出可能な任意の方法であってよい。例えば、算出モデルは、「Encoder/Decoder for Anomaly Detection」と呼ばれる異常検知モデルであってよい。なお、算出モデルを用いる処理(例えば、図3のS150、S160、S170)は、省略されてよい。
【0134】
(7)S147(図13(B))で出力される第3データは、推定モデルによって推定されるp個の重みのp個の推定値に関連する種々の情報を示すデータであってよい。例えば、第3データは、図14(A)、図14(B)のような重みの経時変化を示すグラフの画像を示してよい。
【0135】
また、p個の重みのp個の推定値のうち、第3データによって示される推定値の数mは、pと同じであってよく、p未満であってよい。一般的には、mは、1以上、p以下の整数であってよい。例えば、プロセッサ210は、p個の重みのp個の推定値のうち、最も大きいm個の推定値を示す第3データを出力してよい。ここで、第3データは、m個の推定値に加えて、m個の推定値に対応付けられるm個の補助変数を識別するm個の識別情報を示すことが好ましい。このような第3データを用いることによって、作業者は、異常の兆候の原因をm個の補助変数から推定できる。なお、第3データは、m個の推定値を示さずに、m個の識別情報を示してよい。この場合も、異常の兆候の原因をm個の補助変数から推定できる。また、第3データは、m個の識別情報を示さずに、m個の推定値を示してよい。
【0136】
なお、第3データは、画像データに代えて、他の種々の形式のデータであってよい。例えば、第3データは、m個の識別情報(例えば、補助変数の名前)を読み上げる音データであってよい。プロセッサ210は、音データである第3データを、図示しない音再生装置に出力してよい。このように、プロセッサ210は、第3データを出力することによって、異常の兆候の原因であり得る補助変数を作業者に報知してよい。また、プロセッサ210は、m個の推定値とm個の識別情報との一方、または、両方を示す第3データを、記憶装置(例えば、不揮発性記憶装置230、または、データ処理装置200に接続された外部記憶装置(図示せず))に、出力してよい(すなわち、第3データが記憶装置に格納される)。
【0137】
(8)検知処理の対象物は、プリンタ900に限らず、スキャナ、複合機、デジタルカメラ、カッティングマシン、携帯端末、などの任意の製品であってよい。
【0138】
(9)図13(A)で取得される補助変数は、電流AP、第1角度Aa1に限らず、製品の製造工程に関連する任意の変数であってよい。p個の補助変数は、作業者の動きを示す変数を含むことが好ましい。作業者の動きを示す変数は、例えば、作業者800の前に新たなプリンタ900が運ばれてから、ラベルシート910がそのプリンタ900に貼り付けられるまでの時間であってよい。この時間が、通常時の時間と比べて大きく異なる場合には、将来に異常が発生する可能性が高い。
【0139】
また、ロボットハンドが、ラベルシート910をプリンタ900に貼り付けてよい。この場合、p個の補助変数は、ロボットハンドを駆動するモータの電流、または、電圧を含んでよい。ラベルシート910を貼り付けるためにロボットハンドの位置が変化する場合、p個の補助変数は、ロボットハンドの位置を示すエンコーダの出力値を含んでよい(エンコーダは、ロボットハンドの可動部分に取り付けられる)。ロボットハンドに振動センサが取り付けられてよい。補助変数は、振動センサによって測定されたロボットハンドの振動の振幅、または、周波数を含んでよい。また、p個の補助変数は、ロボットハンドの稼働時間、または、処理回数を含んでよい。
【0140】
また、ローラを含むローラ装置が、ラベルシート910をプリンタ900に貼り付けてよい。この場合、p個の補助変数は、ローラ装置を駆動するモータの電流、または、電圧を含んでよい。また、p個の補助変数は、ローラの回転位置を示すエンコーダの出力値を含んでよい。また、p個の補助変数は、ロータの振動の振幅、または、周波数を含んでよい。また、p個の補助変数は、ローラ装置の稼働時間、または、処理回数を含んでよい。
【0141】
(10)対象変数は、ラベルシート910(図2(A)、図2(B))の第1座標Pxと第2座標Pyと角度AGとに代えて、製品の製造工程の状況に関連する任意の変数であってよい。例えば、対象変数は、対象物に取り付けられる部品の位置を示してよい。対象変数の総数は、3に代えて、1以上の種々の整数であってよい。
【0142】
(11)検知処理は、ネットワークを介して互いに通信可能な複数の装置(例えば、コンピュータなどのデータ処理装置)によって分担されてよい(これらの装置を備えるシステムが異常兆候検知装置に対応する)。
【0143】
上記各実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部あるいは全部をハードウェアに置き換えるようにしてもよい。例えば、図1の予測モデルMAx、MAy、MAaの機能を、専用のハードウェア回路によって実現してもよい。
【0144】
また、本発明の機能の一部または全部がコンピュータプログラムで実現される場合には、そのプログラムは、コンピュータ読み取り可能な記録媒体(例えば、一時的ではない記録媒体)に格納された形で提供することができる。プログラムは、提供時と同一または異なる記録媒体(コンピュータ読み取り可能な記録媒体)に格納された状態で、使用され得る。「コンピュータ読み取り可能な記録媒体」は、メモリーカードやCD-ROMのような携帯型の記録媒体に限らず、各種ROM等のコンピュータ内の内部記憶装置や、ハードディスクドライブ等のコンピュータに接続されている外部記憶装置も含み得る。
【0145】
以上、実施例、変形例に基づき本発明について説明してきたが、上記した発明の実施の形態は、本発明の理解を容易にするためのものであり、本発明を限定するものではない。本発明は、その趣旨を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物が含まれる。
【符号の説明】
【0146】
110…デジタルカメラ(第1カメラ)、120…デジタルカメラ(第2カメラ)、130…センサ、200、200a…データ処理装置、210…プロセッサ、215…記憶装置、220…揮発性記憶装置、230…不揮発性記憶装置、231、231a…プログラム、240…表示部、250…操作部、270…通信インタフェース、700…供給装置、710…モータ、800…作業者、810…肩、811…上腕、820…肘、821…前腕、830…手首、900…対象物(プリンタ)、900s…外面、910…ラベルシート、MAx、MAy、MAa…予測モデル、MBx、MBy、MBa…スコア算出モデル、MCx、MCy、MCa…推定モデル、MD…機械学習モデル
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15