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

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

▶ 三菱電機株式会社の特許一覧

特許7682394シーンの異常検出のためのシステムおよび方法
<>
  • 特許-シーンの異常検出のためのシステムおよび方法 図1
  • 特許-シーンの異常検出のためのシステムおよび方法 図2A
  • 特許-シーンの異常検出のためのシステムおよび方法 図2B
  • 特許-シーンの異常検出のためのシステムおよび方法 図2C
  • 特許-シーンの異常検出のためのシステムおよび方法 図2D
  • 特許-シーンの異常検出のためのシステムおよび方法 図3
  • 特許-シーンの異常検出のためのシステムおよび方法 図4
  • 特許-シーンの異常検出のためのシステムおよび方法 図5A
  • 特許-シーンの異常検出のためのシステムおよび方法 図5B
  • 特許-シーンの異常検出のためのシステムおよび方法 図6
  • 特許-シーンの異常検出のためのシステムおよび方法 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-05-15
(45)【発行日】2025-05-23
(54)【発明の名称】シーンの異常検出のためのシステムおよび方法
(51)【国際特許分類】
   G06T 7/00 20170101AFI20250516BHJP
【FI】
G06T7/00 610
G06T7/00 350B
【請求項の数】 13
(21)【出願番号】P 2024538514
(86)(22)【出願日】2022-07-08
(65)【公表番号】
(43)【公表日】2024-09-05
(86)【国際出願番号】 JP2022027782
(87)【国際公開番号】W WO2023058293
(87)【国際公開日】2023-04-13
【審査請求日】2024-03-05
(31)【優先権主張番号】17/497,104
(32)【優先日】2021-10-08
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】000006013
【氏名又は名称】三菱電機株式会社
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】ジョーンズ,マイケル
【審査官】吉川 康男
(56)【参考文献】
【文献】国際公開第2009/057830(WO,A1)
【文献】特開2015-011664(JP,A)
【文献】特開2017-173098(JP,A)
【文献】米国特許出願公開第2016/0292840(US,A1)
【文献】青木 公也,人の検査メカニズムのモデル化と機械化に関する研究,画像ラボ,第24巻 第2号,日本工業出版株式会社,2013年02月10日,1~7
【文献】Greg Szkilnyk et al.,Spatiotemporal volume video event detection for fault monitoring in assembly automation,2012 19th International Conference on Mechatronics and Machine Vision in Practice (M2VIP),米国,IEEE,2012年11月28日,https://ieeexplore.ieee.org/document/6484561
【文献】Melih Kuncan,An Intelligent Approach for Bearing Fault Diagnosis: Combination of 1D-LBP and GRA,IEEE Access,米国,IEEE,2020年07月27日,137517 - 137529,https://doi.org/10.1109/ACCESS.2020.3011980
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00
(57)【特許請求の範囲】
【請求項1】
ファクトリーオートメーションシーンのビデオにおける異常を検出するためのシステムであって、前記システムは、プロセッサと、格納された命令を有するメモリとを備え、前記命令は、前記プロセッサによって実行されると、前記システムに、
タスクを実行するマシンを含むシーンの入力ビデオを受けることと、
前記タスクを実行する前記マシンの正常動作の訓練ビデオの時空間領域から得られた訓練特徴ベクトルのセットを受けることとを実行させ、前記時空間領域の各々は1つまたは複数の訓練特徴ベクトルに関連付けられ、各訓練特徴ベクトルは、予め定められたパターンのカウントの時間的変動を定める運動特徴ベクトルを含み、前記時空間領域はビデオバウンディングボックスによって画定され、さらに、
前記ビデオバウンディングボックスを使用して、前記入力ビデオを、前記訓練ビデオの前記時空間領域の空間次元および時間次元に対応するビデオボリュームの複数のシーケンスに、対応する前記時空間領域の空間次元および時間次元によって定められる画像パッチのシーケンスをビデオボリュームが含むように、分割することを実行させ、前記ビデオバウンディングボックスを使用した、前記入力ビデオの、前記ビデオボリュームの複数のシーケンスへの分割は、前記ビデオバウンディングボックスを、水平方向および鉛直方向に、固定されたステップサイズで空間移動させて、空間領域のセットを生成するとともに、前記空間領域の各々について前記ビデオバウンディングボックスを1度に1フレーム時間的に移動させて、前記空間領域の各々の中で重なり合う時空間領域のシーケンスを生成することにより、行われ、前記重なり合う時空間領域のシーケンスのうちの重なり合う各時空間領域は、ビデオボリュームに対応し、さらに、
前記ビデオボリュームの各々の前記画像パッチのシーケンスにおける連続画像パッチの各ペアごとに、2値差分画像を求めることにより、前記ビデオボリュームの各々について2値差分画像のシーケンスを生成することと、
前記ビデオボリュームの各々について各2値差分画像における画素の前記予め定められたパターンの各々の発生をカウントすることにより、前記ビデオボリュームの各々について前記予め定められたパターンのカウントの時間的変動を定める入力運動特徴ベクトルを含む入力特徴ベクトルを生成することとを実行させ、特定画素の前記予め定められたパターンは、前記特定画素に適用されたウィンドウ内の、しきい値を上回る画素の数のカウントであり、前記ウィンドウは、前記特定画素についての対応する前記2値差分画像におい
て発生する3画素×3画素近傍を画定し、さらに、
前記ビデオボリュームの各々の前記入力特徴ベクトルと、前記シーンにおける対応する空間領域に関連付けられる前記訓練特徴ベクトルとの間の最短距離を計算することにより、距離のセットを生成することと、
前記シーンの前記入力ビデオにおける異常を検出するために、前記距離のセットのうちの各距離を異常検出しきい値と比較することとを、実行させ、
前記訓練特徴ベクトルを求めるために、前記プロセッサは、
前記ビデオバウンディングボックスを使用して、前記訓練ビデオを、前記訓練ビデオの前記時空間領域に分割することにより、対応する訓練パッチのシーケンスを生成するように構成され、前記ビデオバウンディングボックスを使用した、前記訓練ビデオの、前記訓練ビデオの時空間領域への分割は、前記ビデオバウンディングボックスを、水平方向および鉛直方向に、前記固定されたステップサイズで空間移動させて、さらなる空間領域のセットを生成するとともに、前記さらなる空間領域の各々について前記ビデオバウンディングボックスを1度に1フレーム時間的に移動させて、前記さらなる空間領域の各々の中で重なり合うさらなる時空間領域のシーケンスを生成することにより、行われ、前記重なり合うさらなる時空間領域のシーケンスのうちの重なり合う各時空間領域は、前記訓練ビデオの時空間領域に対応し、前記訓練特徴ベクトルを求めるために、前記プロセッサはさらに、
前記訓練パッチのシーケンスの各々における連続パッチの各ペアごとに2値差分画像を求め、
前記時空間領域の各々について各2値差分画像における画素の前記予め定められたパターンの各々の発生をカウントすることにより、前記時空間領域の各々について複数の訓練特徴ベクトルを生成するように、構成され、各訓練特徴ベクトルは、前記予め定められたパターンのカウントの前記時間的変動を定める前記運動特徴ベクトルを含み、前記訓練特徴ベクトルを求めるために、前記プロセッサはさらに、
前記シーンにおける同じ空間領域に対応する各訓練特徴ベクトル間の距離を計算することにより、訓練特徴ベクトル間の距離のセットを生成し、
前記訓練特徴ベクトルのセットにおける訓練特徴ベクトルを選択するように、構成され、前記訓練特徴ベクトルは、この訓練特徴ベクトルと、前記訓練特徴ベクトルのセットにおける対応する特徴ベクトルとの間のすべての距離が、前記メモリに格納され前記同じ空間領域に対応する前記訓練特徴ベクトル間の最短距離を定める距離しきい値を上回る場合に、選択され、
前記最短距離は、前記ビデオボリュームの各々の前記入力特徴ベクトルと、前記訓練ビデオの対応する前記空間領域に関連付けられる前記訓練特徴ベクトルとの間のユークリッド距離に対応し、
前記プロセッサはさらに、前記2値差分画像における前記予め定められたパターンの各々の発生の前記カウントに基づいてヒストグラムを定式化するように構成され、前記ヒストグラムは、前記2値差分画像において発生する前記3画素×3画素近傍ごとの、しきい値を上回る画素の数のカウントであり、
前記入力特徴ベクトルは、前記定式化されたヒストグラムを連結することによって生成され、
前記定式化されたヒストグラムを連結することによって生成される前記入力特徴ベクトルは、前記入力運動特徴ベクトルである、システム。
【請求項2】
前記プロセッサは、
前記距離のセットにおける少なくとも1つの距離が前記異常検出しきい値よりも大きい場合に前記シーンの前記入力ビデオにおける異常を検出し、
前記異常の検出に応じて制御アクションを実行するように、構成される、請求項1に記載のシステム。
【請求項3】
前記時空間領域についての前記訓練特徴ベクトルは、それらの間の最短距離が前記異常検出しきい値以上になるように選択される、請求項1に記載のシステム。
【請求項4】
前記時空間領域についての前記訓練特徴ベクトルは、それらの間の最短距離が、その空間領域についてのすべての可能な訓練特徴ベクトルペア間の中央値距離よりも大きくなるように選択される、請求項1に記載のシステム。
【請求項5】
前記2値差分画像を求めるために、前記プロセッサは、
前記ビデオボリュームの後続画像パッチ間の画素差分値を求めることにより、差分画像を生成し、
前記差分画像の画素値をしきい値処理することにより、前記2値差分画像を生成するように、構成される、請求項1に記載のシステム。
【請求項6】
前記時空間領域の前記時間次元は、前記タスクを実行する前記マシンの前記正常動作の一部を定める、または前記タスクを実行する前記マシンの前記正常動作の全体を定める、請求項1に記載のシステム。
【請求項7】
前記プロセッサは、実行された前記タスクに対して選択された前記予め定められたパターンを受けるように構成される、請求項1に記載のシステム。
【請求項8】
前記プロセッサはパターンのライブラリから前記予め定められたパターンを選択するように構成される、請求項1に記載のシステム。
【請求項9】
前記訓練特徴ベクトルの各々と、前記入力特徴ベクトルの各々とは、ビデオパッチのコンテンツから得られる、対応する外観特徴ベクトルを含む、請求項1に記載のシステム。
【請求項10】
前記外観特徴ベクトルは、前記ビデオパッチの画像パッチについて計算された勾配方向ヒストグラムである、請求項9に記載のシステム。
【請求項11】
前記外観特徴ベクトルは、前記ビデオパッチの2つの連続画像パッチについて計算された2値差分画像である、請求項9に記載のシステム。
【請求項12】
各訓練特徴ベクトルは、外観特徴ベクトルと前記運動特徴ベクトルとで構成され、前記シーンの前記入力ビデオにおける異常を検出するために、前記命令は、前記システムに、
前記ビデオボリュームの各々について入力外観特徴ベクトルを計算することを実行させ、前記入力外観特徴ベクトルは、ビデオボリュームにおいて発生する画素のパターンを表し、さらに、
前記ビデオボリュームの各々の前記入力運動特徴ベクトルと、前記シーンにおける対応する空間領域に関連付けられる前記訓練特徴ベクトルの前記運動特徴ベクトルとの間の最短距離を計算することにより、運動距離のセットを生成することと、
前記ビデオボリュームの各々の前記入力外観特徴ベクトルと、前記シーンにおける対応する空間領域に関連付けられる前記訓練特徴ベクトルの前記外観特徴ベクトルとの間の最短距離を計算することにより、外観距離のセットを生成することと、
前記シーンの前記入力ビデオにおける異常を検出するために、前記運動距離のセットのうちの各運動距離を運動異常検出しきい値と比較することと、前記外観距離のセットのうちの各外観距離を外観異常検出しきい値と比較することとを、各々実行させる、請求項1に記載のシステム。
【請求項13】
ファクトリーオートメーションシーンのビデオにおける異常を検出するための方法であって、前記方法は、
タスクを実行するマシンを含むシーンの入力ビデオを受けることと、
前記タスクを実行する前記マシンの正常動作の訓練ビデオの時空間領域から得られた訓練特徴ベクトルのセットを受けることとを含み、前記時空間領域の各々は1つまたは複数の訓練特徴ベクトルに関連付けられ、各訓練特徴ベクトルは、予め定められたパターンのカウントの時間的変動を定める運動特徴ベクトルを含み、前記時空間領域はビデオバウンディングボックスによって画定され、前記方法はさらに、
前記ビデオバウンディングボックスを使用して、前記入力ビデオを、前記訓練ビデオの前記時空間領域の空間次元および時間次元に対応するビデオボリュームの複数のシーケンスに、対応する前記時空間領域の空間次元および時間次元によって定められる画像パッチのシーケンスをビデオボリュームが含むように、分割することを含み、前記ビデオバウンディングボックスを使用した、前記入力ビデオの、前記ビデオボリュームの複数のシーケンスへの分割は、前記ビデオバウンディングボックスを、水平方向および鉛直方向に、固定されたステップサイズで空間移動させて、空間領域のセットを生成するとともに、前記空間領域の各々について前記ビデオバウンディングボックスを1度に1フレーム時間的に移動させて、前記空間領域の各々の中で重なり合う時空間領域のシーケンスを生成することにより、行われ、前記重なり合う時空間領域のシーケンスのうちの重なり合う各時空間領域は、ビデオボリュームに対応し、さらに、
前記ビデオボリュームの各々の前記画像パッチのシーケンスにおける連続画像パッチの各ペアごとに、2値差分画像を求めることにより、前記ビデオボリュームの各々について2値差分画像のシーケンスを生成することと、
前記ビデオボリュームの各々について各2値差分画像における画素の前記予め定められたパターンの各々の発生をカウントすることにより、前記ビデオボリュームの各々について前記予め定められたパターンのカウントの時間的変動を定める入力運動特徴ベクトルを含む入力特徴ベクトルを生成することとを含み、特定画素の前記予め定められたパターンは、前記特定画素に適用されたウィンドウ内の、しきい値を上回る画素の数のカウントであり、前記ウィンドウは、前記特定画素についての対応する前記2値差分画像において発生する3画素×3画素近傍を画定し、さらに、
前記ビデオボリュームの各々の前記入力特徴ベクトルと、前記シーンにおける対応する空間領域に関連付けられる前記訓練特徴ベクトルとの間の最短距離を計算することにより、距離のセットを生成することと、
前記シーンの前記入力ビデオにおける異常を検出するために、前記距離のセットのうちの各距離を異常検出しきい値と比較することとを含み、
前記訓練特徴ベクトルを求めるために、前記方法はさらに、
前記ビデオバウンディングボックスを使用して、前記訓練ビデオを、前記訓練ビデオの前記時空間領域に分割することにより、対応する訓練パッチのシーケンスを生成することを含み、前記ビデオバウンディングボックスを使用した、前記訓練ビデオの、前記訓練ビデオの時空間領域への分割は、前記ビデオバウンディングボックスを、水平方向および鉛直方向に、前記固定されたステップサイズで空間移動させて、さらなる空間領域のセットを生成するとともに、前記さらなる空間領域の各々について前記ビデオバウンディングボックスを1度に1フレーム時間的に移動させて、前記さらなる空間領域の各々の中で重なり合うさらなる時空間領域のシーケンスを生成することにより、行われ、前記重なり合うさらなる時空間領域のシーケンスのうちの重なり合う各時空間領域は、前記訓練ビデオの時空間領域に対応し、前記訓練特徴ベクトルを求めるために、前記方法はさらに、
前記訓練パッチのシーケンスの各々における連続パッチの各ペアごとに2値差分画像を求めることと、
前記時空間領域の各々について各2値差分画像における画素の前記予め定められたパターンの各々の発生をカウントすることにより、前記時空間領域の各々について複数の訓練特徴ベクトルを生成することとを含み、各訓練特徴ベクトルは、前記予め定められたパターンのカウントの前記時間的変動を定める前記運動特徴ベクトルを含み、前記訓練特徴ベクトルを求めるために、前記方法はさらに、
前記シーンにおける同じ空間領域に対応する各訓練特徴ベクトル間の距離を計算することにより、訓練特徴ベクトル間の距離のセットを生成することと、
前記訓練特徴ベクトルのセットにおける訓練特徴ベクトルを選択することとを含み、前記訓練特徴ベクトルは、この訓練特徴ベクトルと、前記訓練特徴ベクトルのセットにおける対応する特徴ベクトルとの間のすべての距離が、前記同じ空間領域に対応する前記訓練特徴ベクトル間の最短距離を定める距離しきい値を上回る場合に、選択され、
前記最短距離は、前記ビデオボリュームの各々の前記入力特徴ベクトルと、前記訓練ビデオの対応する前記空間領域に関連付けられる前記訓練特徴ベクトルとの間のユークリッド距離に対応し、
前記方法はさらに、前記2値差分画像における前記予め定められたパターンの各々の発生の前記カウントに基づいてヒストグラムを定式化することを含み、前記ヒストグラムは、前記2値差分画像において発生する前記3画素×3画素近傍ごとの、しきい値を上回る画素の数のカウントであり、
前記入力特徴ベクトルは、前記定式化されたヒストグラムを連結することによって生成され、
前記定式化されたヒストグラムを連結することによって生成される前記入力特徴ベクトルは、前記入力運動特徴ベクトルである、方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は概して画像処理に関し、より具体的にはシーンのビデオ異常検出に関する。
【背景技術】
【0002】
近年、最終製品を開発するためのプロセス(製造プロセスなど)のコストを削減するために、さまざまな用途において作業場での自動化が使用されている。例として、ファクトリーオートメーションは工場組立ラインであってもよく、この場合の工場組立ラインは、原材料を自動的に選び出し組み立ててより複雑なデバイスおよび製品にすることができる、ロボット、コンベヤ、および他のマシンを含む。場合によっては、工場組立ラインは、修復するのに人間の介入を必要とする問題(たとえば故障)を有することがある。この故障は、決められた時間に特定されない場合、より大きな問題につながり最終的には長いダウンタイムにつながる可能性がある。
【0003】
現在、決められた時間に故障を検出することを目的とするさまざまな技術がある。利用可能なこれらの技術は、工場組立ラインに関連する故障をカスタマイズされたセンサを使用して検出する。例として、カスタマイズされたセンサは、故障が発生することがわかっている特定の場所に手作業で設置されてもよい。しかしながら、予期せぬ故障が発生した場合、カスタマイズされたセンサは予期せぬ故障が発生した場所には設置されていないので、および/またはカスタマイズされたセンサは予期せぬ故障を検出するように構成されていないので、利用可能なこれらの技術は予期せぬ故障を検出しない可能性がある。さらに、予期される故障および予期せぬ故障の両方を検出するために複数のカスタマイズされたセンサを設置することは、時間がかかる高コストのプロセスとなり得る。
【0004】
それ故に、そのような自動化に関連付けられる予期される故障および予期せぬ故障を効率的で実現可能なやり方で検出するシステムが必要とされている。
【発明の概要】
【0005】
上記問題を解決するために、いくつかの実施形態の目的は、工場組立ラインなどの自動化のシナリオを監督するビデオカメラからのビデオ異常検出に対して異常検出を適合させることである。本明細書で使用される「異常」は、自動化のシナリオに関連付けられる故障に相当し得る。例として、工場組立ラインに関連付けられる故障は、ロボットアームの異常な向き、コンベヤの予期せぬ停止などを含み得る。ビデオ異常検出において、いくつかの実施形態は、ビデオの一部におけるアクティビティ(たとえばマシンの動作)が、同じシーンの正常なビデオにおいて見られるアクティビティとは異なるときに、前者のアクティビティを異常として自動的に検出することを目的とする。よって、正常なビデオのアクティビティとは異なるすべてのアクティビティが異常として検出されるので、検出された異常は、工場組立に関連付けられる予期される故障と予期せぬ故障の両方を含む。さらに、ビデオ異常検出は、カスタマイズされたセンサを設置することによって異常を検出することを目的とする技術と比較して、ファクトリーオートメーションにおける異常を検出するコストを削減することができる。例として、ビデオ異常検出は、異常を検出するためにカスタマイズされたセンサを使用しないので、これらの技術よりも低コストになり得る。
【0006】
異常を検出するために、いくつかの実施形態は、正常なビデオを使用してモデルを構築することを目的とする。以下、「正常なビデオ」および「訓練ビデオ」が同じ意味で区別なく使用される場合がある。本明細書で使用される「訓練ビデオ」は、自動化のシナリオにおいてタスクを実行するマシンの正常動作に対応する一組のビデオフレームを含むビデオに相当し得る。実施形態の例において、モデルは、訓練ビデオを複数の時空間領域に分割しこのビデオの各空間領域ごとに別々のモデルを学習することにより、訓練ビデオのために構築されてもよい。例として、各時空間領域はビデオバウンディングボックス(video bounding box)によって画定されてもよい。たとえば、ビデオバウンディングボックスは、訓練ビデオを複数の時空間領域に分割するための空間次元と時間次元とを含む。さらに、訓練ビデオの短いシーケンスについて特徴ベクトルが計算されてもよく、各空間領域において発生するすべての「固有の」特徴ベクトルがモデルとして記憶されてもよい。ある空間領域(すなわち時空間領域)内のビデオの短いシーケンスは、訓練画像パッチのシーケンスと呼ばれる場合がある。各空間領域において発生する固有の特徴ベクトルは、「標本」と呼ばれる場合がある。
【0007】
また、いくつかの実施形態の目的は、訓練画像パッチの各シーケンスについての特徴ベクトルの計算を、計算された特徴ベクトルが、自動化シナリオにおいて時系列運動データの異常パターンを表すのに十分に単純であるが正確となるように、行うことである。この目的のために、いくつかの実施形態は、予め定められたパターンのカウントの時間的変動を定める運動特徴ベクトルを使用する。例として、予め定められたパターンは、ビデオに取り込まれた異なる種類の運動を示し得る。運動の予め定められたパターンのカウントを、これらのパターンそのものの代わりに使用することにより、いくらかの運動情報を維持しつつ、運動特徴ベクトルを単純化する。いくつかの実施形態は、運動特徴ベクトルを計算するために、訓練ビデオの連続するフレームの2値差分画像を使用する。2値差分画像は、2つのフレームによって取り込まれた相対運動を示す、これら2つのフレームのしきい値差分を示す。2値差分画像のしきい値「1」よりも大きな画素またはしきい値「0」よりも小さな画素によって形成されたパターンが、運動特徴ベクトルによってカウントされる予め定められたパターンである。さらに、カウントの時間的変動を使用することは、経時的な運動を考慮することを可能にし、このことはファクトリーオートメーションにとって好都合である。またさらに、予め定められたパターンおよび予め定められたパターンのカウントのみを考慮することは、固定されたサイズの運動特徴ベクトルを持つことを可能にし、このことは距離ベースの異常検出にとって好都合である。
【0008】
タスクを実行するマシンの制御中に、たとえば訓練ビデオを取得するために使用される同じ固定カメラからの入力テストビデオが同じやり方で処理されて、異常を検出するための対応する空間領域についての訓練ビデオから得られる運動特徴ベクトルと比較される、入力運動特徴ベクトルを生成する。実施形態の例において、各入力運動ベクトルと同じ空間領域の訓練運動ベクトルとの間の最短距離(たとえばユークリッド距離)が計算されてもよい。さらに、計算された最短距離は、異常を検出するための異常検出しきい値と比較されてもよい。例として、少なくとも1つの計算された最短距離が異常検出しきい値よりも大きい場合に入力ビデオの異常が検出されてもよい。単純化された特徴ベクトル(すなわち訓練ビデオおよびテストビデオからの運動特徴ベクトル)を使用することにより、入力テストビデオにおける異常を実行可能なやり方で検出することが可能になる。
【0009】
いくつかの実施形態は、運動特徴ベクトルに加えて、ビデオにおける外観情報を表す外観特徴ベクトルを使用する。外観情報は、任意であるが、運動特徴ベクトルを補完して、異常を検出している間に運動の変化の状況を追加のセンサを必要とすることなく考慮するのに好都合である。このようにして、異常検出のためのハードウェア要件を減じることができる。一実施形態において、ビデオボリュームの画像パッチについて計算された勾配方向ヒストグラム(HoG:histogram of oriented gradients)特徴が、外観情報として使用されてもよい。別の実施形態において、ビデオパッチの2つの連続する画像パッチについて計算された2値差分画像が、外観情報として使用されてもよい。
【0010】
したがって、一実施形態は、ファクトリーオートメーションシーンのビデオにおける異常を検出するためのシステムを開示し、このシステムは、プロセッサと、格納された命令を有するメモリとを備え、命令は、プロセッサによって実行されると、システムに、タスクを実行するマシンを含むシーンの入力ビデオを受けることと、タスクを実行するマシンの正常動作の訓練ビデオの時空間領域から得られた訓練特徴ベクトルのセットを受けることとを実行させ、時空間領域は1つまたは複数の訓練特徴ベクトルに関連付けられ、各訓練特徴ベクトルは、予め定められたパターンのカウントの時間的変動を定める運動特徴ベクトルを含み、さらに、入力ビデオを、訓練ビデオの時空間領域の空間次元および時間次元に対応するビデオボリュームの複数のシーケンスに、対応する時空間領域の空間次元および時間次元によって定められる画像パッチのシーケンスをビデオボリュームが含むように、分割することと、ビデオボリュームの各々の画像パッチのシーケンスにおける画像パッチの各連続ペアごとに、2値差分画像を求めることにより、ビデオボリュームの各々について2値差分画像のシーケンスを生成することと、ビデオボリュームの各々について各2値差分画像における画素の予め定められたパターンの各々の発生をカウントすることにより、ビデオボリュームの各々について予め定められたパターンのカウントの時間的変動を定める入力運動特徴ベクトルを含む入力特徴ベクトルを生成することと、ビデオボリュームの各々の入力特徴ベクトルと、シーンにおける対応する空間領域に関連付けられる訓練特徴ベクトルとの間の最短距離を計算することにより、距離のセットを生成することと、シーンの入力ビデオにおける異常を検出するために、距離のセットのうちの各距離を異常検出しきい値と比較することとを、実行させる。
【0011】
別の実施形態は、ファクトリーオートメーションシーンのビデオにおける異常を検出するための方法を開示し、この方法は、タスクを実行するマシンを含むシーンの入力ビデオを受けることと、タスクを実行するマシンの正常動作の訓練ビデオの時空間領域から得られた訓練特徴ベクトルのセットを受けることとを含み、時空間領域は1つまたは複数の訓練特徴ベクトルに関連付けられ、各訓練特徴ベクトルは、予め定められたパターンのカウントの時間的変動を定める運動特徴ベクトルを含み、方法はさらに、入力ビデオを、訓練ビデオの時空間領域の空間次元および時間次元に対応するビデオボリュームの複数のシーケンスに、対応する時空間領域の空間次元および時間次元によって定められる画像パッチのシーケンスをビデオボリュームが含むように、分割することと、ビデオボリュームの各々の画像パッチのシーケンスにおける画像パッチの各連続ペアごとに、2値差分画像を求めることにより、ビデオボリュームの各々について2値差分画像のシーケンスを生成することと、ビデオボリュームの各々について各2値差分画像における画素の予め定められたパターンの各々の発生をカウントすることにより、ビデオボリュームの各々について予め定められたパターンのカウントの時間的変動を定める入力運動特徴ベクトルを含む入力特徴ベクトルを生成することと、ビデオボリュームの各々の入力特徴ベクトルと、シーンにおける対応する時空間領域に関連付けられる訓練特徴ベクトルとの間の最短距離を計算することにより、距離のセットを生成することと、シーンの入力ビデオにおける異常を検出するために、距離のセットのうちの各距離を異常検出しきい値と比較することとを含む。
【0012】
もう1つの実施形態は、ファクトリーオートメーションシーンのビデオにおける異常を検出するためのシステムを開示し、このシステムは、プロセッサと、格納された命令を有するメモリとを備え、命令は、プロセッサによって実行されると、システムに、タスクを実行するマシンを含むシーンの入力ビデオを受けることと、タスクを実行するマシンの正常動作の訓練ビデオの時空間領域から得られた訓練特徴ベクトルのセットを受けることとを実行させ、時空間領域は1つまたは複数の訓練特徴ベクトルに関連付けられ、各訓練特徴ベクトルは、外観特徴ベクトルと運動特徴ベクトルとで構成され、さらに、入力ビデオを、訓練ビデオの時空間領域の空間次元および時間次元に対応するビデオボリュームの複数のシーケンスに、対応する時空間領域の空間次元および時間次元によって定められる画像パッチのシーケンスをビデオボリュームが含むように、分割することと、ビデオボリュームの各々の画像パッチのシーケンスにおける画像パッチの各連続ペアごとに、2値差分画像を求めることにより、ビデオボリュームの各々について2値差分画像のシーケンスを生成することと、ビデオボリュームの各々について各2値差分画像における画素の予め定められたパターンの各々の発生をカウントすることにより、ビデオボリュームの各々について予め定められたパターンのカウントの時間的変動を定める入力運動特徴ベクトルを生成することと、ビデオボリュームの各々について入力外観特徴ベクトルを計算することとを実行させ、入力外観特徴ベクトルは、ビデオボリュームにおいて発生する画素のパターンを表し、さらに、ビデオボリュームの各々の入力運動特徴ベクトルと、シーンにおける対応する時空間領域に関連付けられる訓練特徴ベクトルの運動特徴ベクトルとの間の最短距離を計算することにより、運動距離のセットを生成することと、ビデオボリュームの各々の入力外観特徴ベクトルと、シーンにおける対応する空間領域に関連付けられる訓練特徴ベクトルの外観特徴ベクトルとの間の最短距離を計算することにより、外観距離のセットを生成することと、シーンの入力ビデオにおける異常を検出するために、運動および外観距離のセットのうちの各運動および外観距離を少なくとも1つの異常検出しきい値と比較することとを、実行させる。
【図面の簡単な説明】
【0013】
図1】本開示のいくつかの実施形態に係る、ビデオにおける異常を検出するためのシステムの概要を示す図である。
図2A】本開示のいくつかの実施形態に係る、ファクトリーオートメーションシーンの入力ビデオにおける異常を検出するためのフローチャートを示す図である。
図2B】本開示のいくつかの実施形態に係る、入力ビデオをビデオボリュームの複数のシーケンスに分割するためのパイプラインを示す図である。
図2C】本開示のいくつかの実施形態に係る、ビデオボリュームの2値差分画像のシーケンスを生成するための概略図を示す。
図2D】本開示のいくつかの実施形態に係る、特定のビデオボリュームについて入力特徴ベクトルを生成するためのパイプラインを示す図である。
図3】本開示のいくつかの実施形態に係る、ビデオにおける異常を検出するためにシステムを訓練するための訓練特徴ベクトルのセットを生成するためのフローチャートを示す図である。
図4】本開示のいくつかの実施形態に係る、ビデオパッチの外観特徴ベクトルを計算するための概略図を示す。
図5A】本開示のいくつかの他の実施形態に係る、ファクトリーオートメーションシーンのビデオにおける異常を検出するためのフローチャートを示す図である。
図5B】本開示のいくつかの他の実施形態に係る、ファクトリーオートメーションシーンのビデオにおける異常を検出するためのフローチャートを示す図である。
図6】本開示のいくつかの実施形態に係る、ファクトリーオートメーションプロセスにおける異常を検出するためのシステムの作業環境を示す図である。
図7】本開示のいくつかの実施形態に係る、ファクトリーオートメーションシーンのビデオにおける異常を検出するためのシステムの全体ブロック図を示す。
【発明を実施するための形態】
【0014】
実施形態の説明
【0015】
以下の記載では、説明のために、本開示が十分に理解されるよう多数の具体的な詳細事項を述べる。しかしながら、本開示はこれらの具体的な詳細事項なしで実施され得ることが当業者には明らかであろう。その他の場合では、専ら本開示を不明瞭にするのを回避するために装置および方法をブロック図の形式で示す。
【0016】
本明細書および請求項で使用される、「たとえば(for example)」、「例として(for instance)」、および「~のような(such as)」という用語、ならびに「備える(comprising)」、「有する(having)」、「含む(including)」、およびこれらの動詞の他の形態は、1つ以上の構成要素またはその他のアイテムの列挙とともに使用される場合、その列挙がさらに他の構成要素またはアイテムを除外するとみなされてはならないことを意味する、オープンエンドと解釈されねばならない。「~に基づく」という用語は、少なくとも部分的に基づくことを意味する。さらに、本明細書で使用される文体および術語は、説明のためのものであって限定とみなされてはならないことが理解されるはずである。本明細書で使用されるいかなる見出しも、便宜的なものにすぎず、法的効果または限定効果を持つものではない。
【0017】
図1は、本開示のいくつかの実施形態に係る、ビデオ102における異常を検出するためのシステム100の概要を示す。ある実施形態に従うと、ビデオ102は、ファクトリーオートメーションシーンのようなオートメーションシーンに対応するビデオフレームのセットを含み得る。本明細書で使用される「ファクトリーオートメーション」は、1つ以上のマシンを使用して複合システムを自動的に製造するプロセスであってもよい。たとえば、ファクトリーオートメーションは、工場組立ラインとして実現されてもよく、この場合、複合システムの各種原材料が、1つ以上のマシンを使用して自動的に組み立てられて、複合システムを製造する。例として、複合システムは車両等であってもよい。1つ以上のマシンは、ロボットアーム、コンベヤなどを含み得るが、それらに限定されない。本明細書で使用される「ファクトリーオートメーションシーン」は、ファクトリーオートメーションを実現するためにタスクを実行する1つ以上のマシンを示すシーンに対応し得る。
【0018】
ファクトリーオートメーションプロセス中に、あるシナリオにおいて、1つ以上のマシンは、故障に遭遇するかもしれない。たとえば、1つ以上のマシンに関連付けられる故障は、ロボットアームの異常な向き、ファクトリーオートメーションプロセス中における1つ以上のマシンの予期せぬ停止などを含み得るが、それらに限定されない。以下、「1つ以上のマシンの故障」および「異常」は区別なく使用される場合がある。
【0019】
実施形態の例に従うと、システム100は、ファクトリーオートメーションプロセスにおける異常を検出するように構成されてもよい。そのような場合、システム100は、ファクトリーオートメーションシーンのビデオ102を使用してファクトリーオートメーションプロセスにおける異常を検出してもよい。そのために、システム100は、工場の敷地内でタスクを実行する1つ以上のマシンを監視しているイメージングデバイスからビデオ102を取得してもよい。したがって、1つ以上のマシンが故障に遭遇した場合、故障は、イメージングデバイスから取得されるビデオ102内に反映される。例として、イメージングデバイスは、カメラ、ビデオプレーヤなどであってもよい。システム100は、ビデオ102を処理してファクトリーオートメーションプロセスにおける異常を検出してもよい。
【0020】
さらに、システム100は、異常の検出に応じて出力104を提供してもよい。一実施形態において、出力104は、異常なアクティビティを停止させるために1つ以上のマシンを制御するための制御信号であってもよい。別の実施形態において、出力104は、異常なアクティビティを停止させるためのユーザへの通知であってもよい。システム100は、図2Aを参照しながらさらに説明するようにファクトリーオートメーションシーンのビデオ102における異常を検出してもよい。
【0021】
図2Aは、本開示のいくつかの実施形態に係る、ファクトリーオートメーションシーンの入力ビデオにおける異常を検出するためのフローチャート200を示す。図2A図1と関連付けて説明する。フローチャート200はシステム100によって実行されてもよい。フローチャート200はシステム100のテスト段階に対応していてもよい。
【0022】
ステップS1において、システム100は入力ビデオ202を受けることができる。入力ビデオ202はファクトリーオートメーションシーンのビデオ102に対応し得る。例として、入力ビデオ202は、タスクを実行する1つ以上のマシンを含むシーンに対応するビデオフレームのセットを含み得る。
【0023】
ステップS2において、システム100は、訓練特徴ベクトルのセット204を受けることができる。訓練特徴ベクトルのセット204は訓練ビデオから得ることができる。訓練ビデオは、タスクを実行する1つ以上のマシンの正常動作に対応するビデオフレームのセットを含み得る。本明細書で使用される「1つ以上のマシンの正常動作」は、いかなる異常も伴わない1つ以上のマシンのアクティビティ(動作)に対応し得る。本明細書で使用される「訓練特徴」は、訓練ビデオのビデオフレームから抽出された値または情報に対応し得る。実施形態の例において、訓練特徴ベクトルのセット204は、訓練ビデオの時空間領域から得られてもよい。たとえば、訓練ビデオの各空間領域ごとに、1つまたは複数の訓練特徴ベクトルが得られてもよい。場合によっては、訓練特徴ベクトルのセット204は行列E(図2Aに示される)であってもよく、この場合、行列Eの各要素は、訓練ビデオの対応する空間領域の1つまたは複数の訓練特徴ベクトルを含む。
【0024】
訓練ビデオの時空間領域は、ビデオバウンディングボックスによって画定されてもよい。ビデオバウンディングボックスは、訓練ビデオを複数の時空間領域に分割する(または分ける)ための空間次元および時間次元を含み得る。空間次元は、画像パッチ(たとえば画像フレームの一部分)のサイズ(幅、高さ)を含み得る。時間次元は、ビデオフレームの数を含み得るものであって、画像フレームの数は訓練ビデオにおける画像フレームの数未満であってもよい。実施形態の例において、1つの特定の時空間領域に関連付けられる各訓練特徴ベクトルは、運動特徴ベクトルを含む。本明細書で使用される「運動特徴ベクトル」は、その特定の時空間領域内の1つ以上のマシンに関連付けられる運動情報を定める値または情報であってもよい。例として、運動特徴ベクトルは、図3を参照しながらさらに説明するように訓練ビデオから得られてもよい。
【0025】
ステップS3において、システム100は、入力ビデオ202をビデオボリュームの複数のシーケンスに分割することができる。たとえば、システム100は、図2Bの詳細な説明で説明するように入力ビデオ202をビデオボリュームの複数のシーケンスに分割してもよい。
【0026】
図2Bは、本開示のいくつかの実施形態に係る、入力ビデオ202をビデオボリューム208の複数のシーケンスに分割するためのパイプラインを示す。実施形態の例において、システム100は、ビデオバウンディングボックスを使用して入力ビデオ202を複数の時空間領域に分割してもよい。そうすることにより、システム100は、分割された入力ビデオ206を生成する。例として、(場合によっては重複する)空間領域のセットを生成するために、ビデオバウンディングボックスを、水平方向および鉛直方向の両方において、固定されたステップサイズで空間移動させてもよい。一実施形態において、空間領域の各々についてビデオバウンディングボックスを1度に1フレーム時間的に移動させて、空間領域の各々の中に重なり合う時空間領域のシーケンスを生成してもよい。例として、重なり合う時空間領域のシーケンスのうちの重なり合う各時空間領域は、ビデオボリュームに対応し得る。同じ空間領域のセットが訓練ビデオと入力テストビデオの両方に使用される。
【0027】
再び図2Aを参照して、ステップS4において、システム100は、ビデオボリュームの複数のシーケンスの2値差分画像のセット210を求めることができる。2値差分画像のセット210を求めるために、システム100は、各ビデオボリュームごとに2値差分画像のシーケンスを生成してもよい。たとえば、システム100は、図2Cを参照しながらさらに説明するように特定のビデオボリュームの2値差分画像のシーケンスを生成してもよい。
【0028】
図2Cは、本開示のいくつかの実施形態に係る、ビデオボリューム208aについて2値差分画像のシーケンス210aを生成するための概略図を示す。図2C図2Aと関連付けて説明する。ビデオボリューム208aは、ビデオボリュームの複数のシーケンスのうちの1つの特定のビデオボリューム208に相当し得る。例として、ビデオボリューム208aは、n+1個の画像パッチ、たとえば画像パッチ208a-0、208a-1、208a-2、208a-3…208a-nを含み得る。
【0029】
2値差分画像のシーケンス210aを生成するために、システム100は、画像パッチ208a-0、208a-1、208a-2、208a-3…208a-nのシーケンスにおける画像パッチの各連続ペアごとに2値差分画像を求めてもよい。たとえば、システム100は、画像パッチ208a-0と208a-1との連続ペアについて2値差分画像210a-0を求めてもよい。2値差分画像210a-0を求めるために、システム100は、画像パッチ208a-0と画像パッチ208a-1との間の画素差分値を求めることにより、差分画像を生成してもよい。本明細書で使用される「画素差分値」は、(i)画像パッチ208a-0の第1画素の強度値と、(ii)画像パッチ208a-0の第1画素に対応する画像パッチ208a-1の第2画素の強度値との間の差分の絶対値であってもよい。本明細書で使用される差分画像は、その画素値が画素差分値である画像であってもよい。
【0030】
さらに、システム100は、差分画像の画素値をしきい値処理することにより、2値差分画像210a-0を生成してもよい。たとえば、システム100は、画素差分値の各々がしきい値画素差分値よりも大きいか否かを確認してもよい。ある実施形態におおいて、特定の画素差分値がしきい値画素差分値よりも大きい場合、システム100は、この特定の画素差分値に対応する画素に値「1」を割り当ててもよい。そうでない場合、システム100は、この特定の画素差分値に対応する画素に値「0」を割り当ててもよい。このようにして生成された2値差分画像210a-0は、画像パッチ20a-0から画像パッチ208a-1へとどの画素が大きく変化するかを示す2値画像である。
【0031】
同様に、システム100は、画像パッチ208a-1と208a-2との連続ペアについて2値差分画像210a-1を求めてもよい。このようにして、システム100は、画像パッチ208a-0、208a-1、208a-2、208a-3…208a-nのシーケンスにおける画像パッチの各連続ペアから、2値差分画像を繰り返し求めることにより、2値差分画像210a-0、210-1…210a-mのシーケンスを生成してもよい。
【0032】
再び図2Aを参照して、同様に、システム100は、入力ビデオ202の各ビデオボリュームごとに2値差分画像のシーケンスを生成することにより、2値差分画像のセット210を求めてもよい。2値差分画像のセット210が求められると、システム100はステップS5に進むことができる。
【0033】
ステップS5において、システム100は、求めた2値差分画像のセット210に基づいて、入力特徴ベクトルのセット212を生成することができる。例として、入力特徴ベクトルのセット212は行列F(図2Aに示される)であってもよく、この場合、行列Fの各要素は、入力ビデオ202の対応する時空間領域について1つまたは複数の入力特徴ベクトルを含む。したがって、入力特徴ベクトルのセット212を生成するために、システム100は、ビデオボリュームの複数のシーケンスの各ビデオボリュームごとに入力特徴ベクトルを生成してもよい。実施形態の例において、システム100は、特定のビデオボリュームについて求められた2値差分画像のシーケンスに基づいて、この特定のビデオボリュームについての入力特徴ベクトルを生成してもよい。たとえば、システム100は、図2Dの詳細な説明で説明するように1つの特定のビデオボリュームについて入力特徴ベクトルを生成してもよい。
【0034】
図2Dは、本開示のいくつかの実施形態に係る、特定のビデオボリュームについて入力特徴ベクトル212aを生成するためのパイプラインを示す。図2D図2Aおよび図2Cと関連付けて説明する。例として、特定のビデオボリュームは、入力ビデオ202のビデオボリューム206aであってもよい。例として、特定のビデオボリュームに関連付けられる2値差分画像のシーケンスは、2値差分画像のシーケンス210aであってもよい。実施形態の例において、システム100は、2値差分画像のシーケンス210aに基づいて、ビデオボリューム206aについての入力特徴ベクトル212aを生成してもよい。
【0035】
入力特徴ベクトル212aを生成するために、システム100は、ステップS5-1において、2値差分画像のシーケンス210aにおける2値差分画像の各画素ごとに予め定められたパターンを識別することができる。例として、システム100は、2値差分画像210a-0の各画素ごとに予め定められたパターンを識別することができる。実施形態の例において、2値差分画像210a-0の1つの特定画素について予め定められたパターンを識別するために、システム100は、ウィンドウ214をこの特定画素に適用してもよい。ある実施形態に従うと、ウィンドウ214に関連するサイズは、2値差分画像210a-0のサイズより小さくてもよい。例として、ウィンドウ214のサイズは、幅が3画素、長さが3画素で、9画素をカバーする。特定画素にウィンドウ214を適用すると、ウィンドウ214は、この特定画素についての2値差分画像210a-0において発生する3画素×3画素近傍216を画定する。本明細書で使用される「予め定められたパターン」は、ウィンドウ216内の特定数の明るい(「1」値)または暗い(「0」値)画素であってもよい。言い換えると、「予め定められたパターン」は、ウィンドウ216内のしきい値を上回る画素の数のカウントであってもよい。ウィンドウ214は9画素をカバーするので、起こり得る予め定められたパターン218は10個あり、たとえば、しきい値を上回る画素がゼロ個、しきい値を上回る画素が1個、…およびしきい値を上回る画素が9個、である。例として、しきい値を上回る画素が明るい画素に対応する場合、システム101は、3画素×3画素近傍216に対応する特定画素についての予め定められたパターンとして、数字「2」を識別してもよい。このようにして、システム100は、2値差分画像210a-0の各画素ごとにウィンドウを繰り返し適用することにより、2値差分画像210a-0の各画素ごとに予め定められたパターンを識別してもよい。
【0036】
ステップS5-2において、システム100は、2値差分画像210a-0における画素の予め定められたパターン218の各々の発生をカウントすることにより、ヒストグラム220を作成することができる。例として、ヒストグラム220は、ヒストグラム220の各ビンが予め定められたパターン218のうちの対応する予め定められたパターンに関連付けられるように、10個のビンを含み得る。たとえば、ステップS5-2において、システム100は、1つの特定のビンの値を、この特定のビンに対応する予め定められたパターンがステップS5-1において識別されている場合、「1」だけ増加させて、ヒストグラム220を定式化することができる。そうすると、定式化されたヒストグラム220は、2値差分画像210a-0において発生する3画素×3画素近傍ごとの、しきい値を上回る画素の数のカウントである。したがって、定式化されたヒストグラム220は、画像パッチ1つの連続ペア(たとえば画像パッチ206a-0および206a-1)における1つ以上のマシンに関連付けられる運動情報を符号化する。2値差分画像210a-0のヒストグラム220が定式化されると、システム100は、再びステップS5-1に進み、ステップS5-1およびS5-2を繰り返し実行することにより、2値差分画像のシーケンス210a内の各2値差分画像のヒストグラムを定式化することができる。
【0037】
ステップS5-3において、システム100は、2値差分画像のシーケンス210aの2値差分画像に関連付けられる定式化されたヒストグラムを連結することにより、入力特徴ベクトル212aを生成することができる。入力特徴ベクトル212aは1つ以上のマシンに関連付けられる運動情報を符号化するヒストグラムを連結することによって生成されるので、以下、入力特徴ベクトル212aを入力運動特徴ベクトルと呼ぶ場合がある。例として、入力運動特徴ベクトル212aのビン0は、ある時間にわたって定式化されたヒストグラムのビン0の値を連結することによって生成される。同様に、運動特徴ベクトル212aのビン1…ビン9は、ある時間にわたって定式化されたヒストグラムのそれぞれのビン1s…ビン9sの値を連結することによって生成される。このように、生成された入力運動特徴ベクトル212aは、予め定められたパターン218のカウントの時間的変動を定める。さらに、生成された入力運動特徴ベクトル212aは、画素の配置を表すパターンではなく予め定められたパターン218のカウントの時間的変動であるので、生成された入力運動特徴ベクトル212aは計算および比較するのが容易である。
【0038】
ここでは説明のために、図2Dにおいて、予め定められたパターン218を10個のパターンとみなしている。しかしながら、予め定められたパターン218は、任意の有限数のパターンを含み得る。例として、予め定められたパターン218は、5個のパターン、17個のパターンなどを含み得る。したがって、予め定められたパターン218が5個のパターンに相当する場合、幅2画素、長さ2画素のサイズのウィンドウを使用して、5個のビンを有する運動特徴ベクトルを生成してもよい。これに代えて、予め定められたパターン218が17個のパターンに相当する場合は、幅4画素、長さ4画素のサイズのウィンドウを使用して、17個のビンを有する運動特徴ベクトルを生成してもよい。
【0039】
一実装形態において、システム100は、予め定められたパターンを、テスト段階および/または訓練段階中に入力として受けてもよい。例として、設計者は、予め定められたパターンを、パターンのライブラリから、1つ以上のマシンによって実行されるタスクに基づいて選択し、選択された予め定められたパターンが、パターンのライブラリ内の他のパターンのうちで、実行されたタスクの正確な結果を提供するようにしてもよい。たとえば、パターンのライブラリは、5個のパターン、10個のパターン、17個のパターンなどを含み得る。別の実装形態において、システム100は、訓練された機械学習モデルを使用して、予め定められたパターンをパターンのライブラリから選択してもよい。例として、機械学習モデルは、選択された予め定められたパターンが、パターンのライブラリ内の他のパターンのうちで、実行されたタスクの正確な結果を提供するように、予め定められたパターンを、1つ以上のマシンによって実行されるタスクに基づいて、パターンのライブラリから選択するように訓練されてもよい。
【0040】
再び図2Aを参照して、同様に、システム100は、ビデオボリュームのうちの各ビデオボリュームごとに、予め定められたパターン218のカウントの時間的変動を定める入力運動特徴ベクトル212aを生成して、入力特徴ベクトルのセット(または入力運動特徴ベクトルのセット)212を生成してもよい。
【0041】
ステップS6において、システム100は、距離のセットを生成することができる。距離のセットは運動距離のセットと呼ばれる場合もある。実施形態の例において、距離のセットを生成するために、システム100は、ビデオボリュームの各々の入力特徴ベクトルと、訓練ビデオの対応する空間領域に関連付けられる訓練特徴ベクトルとの間の最短距離を計算してもよい。例として、システム100は、行列Fの1つまたは複数の入力特徴ベクトル(たとえば1つまたは複数の運動特徴ベクトル)を表す各要素と、行列Eの同じ空間領域の1つまたは複数の訓練特徴を表す対応する要素との間の最短距離を計算してもよい。実施形態の例において、この最短距離は、ビデオボリュームの各々の入力特徴ベクトルと、訓練ビデオの対応する空間領域に関連付けられる訓練特徴ベクトルとの間のユークリッド距離に対応していてもよい。
【0042】
ステップS7において、システム100は、生成された距離のセットに基づいて、入力ビデオ202における異常を検出することができる。ある実施形態に従うと、システム100は、ファクトリーオートメーションシーンの入力ビデオ202における異常を検出するために、距離のセットのうちの各距離を異常検出しきい値と比較してもよい。例として、異常検出しきい値は、実験などに基づいて予め定めることができるしきい値であってもよい。実施形態の例において、システム100は、距離のセットのうちの少なくとも1つの距離が異常検出しきい値よりも大きいときに、ファクトリーオートメーションシーンの入力ビデオ202における異常を検出してもよい。さらに、システム100は、異常の検出に応じて制御アクションを実行してもよい。一実施形態において、制御アクションは、異常なアクティビティを停止させるよう1つ以上のマシンを制御するために実行されてもよい。別の実施形態において、制御アクションは、異常なアクティビティを停止させるためのユーザへの通知を生成するために実行されてもよい。
【0043】
このようにして、システム100は、入力ビデオ202を使用してファクトリーオートメーションプロセスにおける異常を検出してもよい。ファクトリーオートメーションプロセスにおける異常は入力ビデオ202を使用して検出されるので、ファクトリーオートメーションプロセスにおける異常を検出するコストを、タスクを実行する1つ以上のマシンをカスタマイズされたセンサを使用して監視し異常を検出する従来の方法と比較して、大幅に削減することができる。結果として、システム100は、ファクトリーオートメーションプロセスにおける異常を効率良く検出する。さらに、入力ビデオ202における異常を検出するために、システム100は、計算および比較が単純な入力運動特徴ベクトルを生成する。結果として、システム100は、ファクトリーオートメーションプロセスにおける異常を、実現可能なやり方で検出する。さらに、システム100は、図3を参照しながらさらに説明するように、訓練ビデオについての運動特徴ベクトルを生成してもよい。
【0044】
図3は、本開示のいくつかの実施形態に係る、ビデオ102における異常を検出するためにシステム100を訓練するための訓練特徴ベクトルのセットを生成するためのフローチャート300を示す。図3を、図1図2A図2B図2C、および図2Dと関連付けて説明する。フローチャート300はシステム100によって実行されてもよい。フローチャート300はシステム100の訓練段階に対応し得る。ステップ302において、システム300は、訓練ビデオを受けることができる。例として、訓練ビデオは、タスクを実行する1つ以上のマシンの正常動作に対応するビデオフレームのセットを含み得る。
【0045】
ステップ304において、システム100は、訓練ビデオを時空間領域に分割することにより、対応する、訓練ビデオボリュームのシーケンスを生成することができる。例として、システム100は、図2Bの詳細な説明において説明したように、訓練ビデオを空間領域に分割してもよい。さらに、システム100は、図2Bの詳細な説明において説明したように、ビデオバウンディングボックスを使用して各空間領域を訓練ビデオボリュームのシーケンスに分割してもよい。このようにして、訓練ビデオの空間領域に対し、訓練ビデオボリュームの複数のシーケンスを生成してもよい。訓練段階の訓練空間領域のシーケンスは、テスト段階の空間領域に対応する。訓練ビデオボリュームは、ビデオにおける1つ以上のマシンの正常動作を表す。
【0046】
ステップ306において、システム100は、訓練パッチのシーケンスの各々における訓練パッチの各ペアごとに、2値差分画像を求めることができる。例として、システム101は、図2Cの詳細な説明において説明したように、訓練パッチの各ペアごとに2値差分画像を求めてもよい。このようにして、2値差分画像のセットを訓練段階において求めてもよく、これは、2値差分画像のセット210と同様であってもよい。
【0047】
ステップ308において、システム100は、ビデオボリュームの各々について各2値差分画像内の画素の予め定められたパターンの発生をカウントすることにより、ビデオボリュームの各々について1つまたは複数の訓練特徴ベクトルを生成することができる。例として、システム100は、図2Aおよび図2Dの詳細な説明において説明したように、訓練ビデオのビデオボリュームの各々について1つまたは複数の訓練特徴ベクトルを生成してもよい。結果として、1つまたは複数の訓練特徴ベクトルのうちの各訓練特徴ベクトルは、予め定められたパターンのカウントの時間的変動を定める運動特徴ベクトルを含む。このため、訓練特徴ベクトルのセットがシステム100によって生成されてもよい。いくつかの実施形態は、訓練特徴ベクトルのセットが複数の同様の訓練特徴ベクトルを含むという認識に基づいている。例として、少なくとも2つの訓練特徴ベクトル間の距離がゼロに近い(または距離しきい値未満である)場合、この少なくとも2つの訓練特徴ベクトルを、類似する訓練特徴ベクトルと呼ぶことができる。いくつかの実施形態は、これらの複数の類似する訓練特徴ベクトルが、テスト段階中に(すなわち入力特徴ベクトルを同じ空間領域の訓練特徴ベクトルと比較している間)、さらなる計算負荷を追加する可能性がある、という認識に基づいている。このため、いくつかの実施形態の目的は、追加の計算負担を回避すべく、複数の同様の訓練特徴ベクトルから1つの訓練特徴ベクトル(固有の訓練特徴ベクトルと呼ばれる場合もある)を選択することである。
【0048】
訓練特徴ベクトルを選択するために、システム100は、ステップ310において、シーン内の同じ空間領域に対応する各訓練特徴ベクトル間の距離を計算することにより、訓練特徴ベクトル間の距離のセットを生成することができる。例として、システム100は、同じ空間領域の各訓練特徴ベクトルと他の各訓練特徴ベクトルとの間の距離を計算することにより、訓練特徴ベクトル間の距離のセットを生成してもよい。
【0049】
ステップ312において、システム100は、訓練特徴ベクトルのセットにおける訓練特徴ベクトルを、この訓練特徴ベクトルと、訓練特徴ベクトルのセットにおける対応する特徴ベクトルとの間のすべての距離が、メモリに格納され同じ空間領域に対応する訓練特徴ベクトル間の最短距離を定める距離しきい値を上回る場合に、選択することができる。例として、訓練ビデオの1つの特定の空間領域について、システムは、訓練特徴ベクトルを、この訓練特徴ベクトルと、上記特定の空間領域のすべての他の訓練特徴ベクトルとの間の距離が、距離しきい値を上回る場合に、選択してもよい。実施形態の例において、距離しきい値はシステム100によって求められてもよい。例として、システム100は、すべての訓練特徴ベクトルと、特徴ベクトルのセットにおける訓練特徴ベクトルとの間の距離の平均を計算し、この平均を標準偏差だけ増加させて距離しきい値を生成してもよい。別の実施形態において、距離しきい値は、上記特定の空間領域の訓練特徴ベクトル間の最短距離であってもよい。一実施形態において、この最短距離は、異常検出しきい値の関数であってもよい。この実施形態において、システム100は、上記特定の空間領域についての訓練特徴ベクトル(または複数の訓練特徴ベクトル)を、この訓練特徴ベクトルと、上記特定の空間領域の他のすべての訓練特徴ベクトルとの間のすべての距離が、異常検出しきい値を上回る場合に、選択してもよい。別の実施形態において、この最短距離は、上記特定の空間領域の訓練特徴ベクトルのすべての可能なペア間の中央値距離であってもよい。この実施形態において、システム100は、上記特定の空間領域についての訓練特徴ベクトル(または複数の訓練特徴ベクトル)を、この訓練特徴ベクトルと上記特定の空間領域の他のすべての訓練特徴ベクトルとの間のすべての距離が、中央値距離を上回る場合に、選択してもよい。
【0050】
ステップ314において、システム100は、更新された訓練特徴ベクトルのセットを生成してもよい。
【0051】
実施形態の例において、更新された訓練特徴ベクトルのセットは、入力テストビデオにおける異常を検出するためのテスト段階において使用されてもよい。例として、更新された訓練特徴ベクトルのセットは、訓練特徴ベクトルのセット204に対応していてもよい。
【0052】
このように、訓練段階において、システム100は、テスト段階中の追加の計算負担が回避されるよう、訓練特徴ベクトルのセット204を生成する。ある種のシナリオでは、運動の変動の状況を考慮することが重要な場合がある。運動の変動の状況を考慮するために、運動特徴ベクトルに加えて外観特徴ベクトルを使用することが、いくつかの実施形態の目的である。実施形態の例において、訓練特徴ベクトルの各々および入力特徴ベクトルの各々は、ビデオボリュームのコンテンツから得られた、対応する外観特徴ベクトルをさらに含み得る。例として、システム100は、図4を参照しながらさらに説明するように、ビデオボリュームの外観特徴ベクトルを計算してもよい。
【0053】
図4は、本開示のいくつかの実施形態に係る、ビデオボリューム400の外観特徴ベクトルを計算するための概略図を示す。図4を、図1図2A図2C、および図3と関連付けて説明する。システム100の訓練段階において、ビデオボリューム400は、訓練ビデオの訓練パッチのシーケンスに対応していてもよい。ある実施形態に従うと、システム100は、計算された外観特徴ベクトルが、ビデオボリューム400内で発生する画素のパターン(たとえば空間配置)を表すように、ビデオボリューム400の外観特徴ベクトルを計算してもよい。ある実施形態において、ビデオボリューム400内で発生する画素のパターンを表す外観特徴ベクトルを計算するために、システム100は、ビデオボリューム400の2つの連続ビデオフレームから2値差分画像402を計算してもよい。例として、システム100は、図2Cの詳細な説明において説明したように2値差分画像402を計算してもよい。この実施形態において、求められた2値差分画像402は外観特徴ベクトルであってもよい。
【0054】
【数1】
【0055】
システム100のテスト段階において、ビデオボリューム400は、入力ビデオ202の1つの特定のビデオボリューム(たとえばビデオボリューム206a)に対応していてもよい。さらに、ビデオボリューム400から計算された外観特徴ベクトルは、システム100のテスト段階において入力外観特徴ベクトルと呼ばれることがある。一実施形態において、システム100は、ビデオボリューム400の2値差分画像402を計算し、計算した2値差分画像402を入力外観特徴ベクトルとして使用してもよい。別の実施形態において、システム100は、ビデオボリューム400のHoG表現404を計算し、計算したHoG表現404を入力外観特徴ベクトルとして使用してもよい。
【0056】
いくつかの実施形態では、テスト段階において、システム100は、計算した入力外観特徴ベクトルを、入力運動特徴ベクトルとともに使用して、ファクトリーオートメーションシーンにおける異常を検出してもよい。例として、ファクトリーオートメーションシーンにおける異常を検出するために入力外観特徴ベクトルと入力運動特徴ベクトルとを使用するシステム100のテスト段階は、図5Aおよび図5Bを参照しながらさらに説明する通りである。
【0057】
図5Aおよび図5Bは、本開示のいくつかの他の実施形態に係る、ファクトリーオートメーションシーンのビデオにおける異常を検出するためのフローチャート500を示す。図5Aおよび図5Bを、図1図2A図2B図2C図2D図3、および図4と関連付けて説明する。フローチャート500はシステム100によって実行されてもよい。フローチャート500はシステム100のテスト段階に対応していてもよい。ステップ502において、システム100は入力ビデオを受けることができる。例として、入力ビデオはファクトリーオートメーションシーンの入力ビデオ202に対応していてもよい。
【0058】
【数2】
【0059】
ステップ506において、システム100は、入力ビデオをビデオボリュームの複数のシーケンスに分割することができる。例として、システム100は、図2Bの詳細な説明において説明したように、ビデオバウンディングボックスを使用して入力ビデオをビデオボリュームの複数のシーケンスに分割してもよい。そのために、システム100は、入力ビデオについてのビデオボリュームの複数のシーケンスを、各ビデオボリュームが、対応する時空間領域の空間次元および時間次元によって定められる画像パッチのシーケンスを含むように、生成してもよい。
【0060】
ステップ508において、システム100は、ビデオボリュームの各々の画像パッチのシーケンスにおける画像パッチの各連続ペアごとに2値差分画像を求めることにより、ビデオボリュームの各々について2値差分画像のシーケンスを生成することができる。例として、システム100は、図2Cの詳細な説明において説明したように、ビデオボリュームの各々の画像パッチのシーケンスにおける画像パッチの各ペアごとに、2値差分画像を求めてもよい。
【0061】
ステップ510において、システム100は、ビデオボリュームの各々について各2値差分画像内の画素の予め定められたパターンの各々の発生をカウントすることにより、入力運動特徴ベクトルを生成することができる。例として、システム100は、図2Aおよび図2Dの詳細な説明において説明したように、ビデオボリュームの各々について入力運動特徴ベクトルを生成してもよい。入力運動特徴ベクトルは、予め定められたパターンのカウントの時間的変動を定めることができる。
【0062】
ステップ512において、システム100は、ビデオボリュームの各々について入力外観特徴ベクトルを計算することができる。例として、システム100は、図4の詳細な説明において説明したように、各ビデオボリュームごとに入力外観ベクトルを計算してもよい。計算された入力外観特徴ベクトルは、ビデオボリュームにおいて発生する画素のパターンを表していてもよい。
【0063】
【数3】
【0064】
【数4】
【0065】
ステップ518において、システム100は、入力ビデオにおける異常を検出するために、運動距離および外観距離のセットからの各運動距離および各外観距離を、異常検出しきい値と比較することができる。たとえば、一実施形態において、少なくとも1つの異常検出しきい値は、運動異常検出しきい値および外観異常検出しきい値を含み得る。この実施形態において、入力ビデオにおける異常を検出するために、運動距離のセットのうちの各運動距離が運動異常検出しきい値と比較される。例として、システム100は、運動距離のセットのうちの少なくとも1つの運動距離が運動異常検出しきい値よりも大きい場合に、入力ビデオにおける異常を検出してもよい。さらに、入力ビデオにおける異常を検出するために、外観距離のセットのうちの各外観距離が外観異常検出しきい値と比較される。例として、システム100は、外観距離のセットのうちの少なくとも1つの外観距離が外観異常検出しきい値よりも大きい場合に、入力ビデオにおける異常を検出してもよい。
【0066】
【数5】
【0067】
図6は、本開示のいくつかの実施形態に係る、ファクトリーオートメーションプロセスにおける異常を検出するためのシステム602の作業環境600を示す。図6図1および図2Aと関連付けて説明する。システム602は、システム100に対応していてもよい。作業環境600は、ある場所606の監視システム604に対応していてもよい。例として、この場所606は、ファクトリーオートメーションプロセスが実行される工場の領域であってもよい。この場所606は、1つ以上のイメージングデバイス608aおよび608bを備えていてもよい。本明細書で使用される「イメージングデバイス」は、カメラ、ビデオプレーヤなどに対応し得る。1つ以上のイメージングデバイス608aおよび608bは、タスクを実行する1つ以上のマシン(マシン610aおよび610bなど)を1つ以上のイメージングデバイス608aおよび608bが監視するように位置決め(または配置)されてもよい。例として、イメージングデバイス608aは、イメージングデバイス608aがロボットアーム610aをモニタリングするように位置決めされてもよい。例として、イメージングデバイス608bは、イメージングデバイス608bがコンベヤ610bをモニタリングするように位置決めされてもよい。たとえば、ロボットアーム610aは、第1のレベルからある物体を取り上げて、第1のレベルとは異なる第2のレベルにあるコンベヤ610bの上に置くことで、ファクトリーオートメーションプロセスを実現してもよい。さらに、コンベヤ610bは、この物体を第1の場所から第1の場所とは異なる第2の場所に移動させることで、ファクトリーオートメーションプロセスを実現してもよい。
【0068】
1つ以上のイメージングデバイス608aおよび608bは、ファクトリーオートメーションプロセスのシーンを含むビデオを別々にキャプチャしてもよい。例として、イメージングデバイス608aは、物体を取り上げて置くロボットアーム610aを含むシーンのビデオをキャプチャしてもよい。例として、イメージングデバイス608bは、物体を移動させるコンベヤ610bを含むシーンのビデオをキャプチャしてもよい。さらに、1つ以上のイメージングデバイス608aおよび608bは、キャプチャしたビデオを別々にシステム602に送信してもよい。システム602は、1つ以上のイメージングデバイス608aおよび608bの各々から、キャプチャされたビデオを入力ビデオとして受けてもよい。さらに、システム602は、入力ビデオの各々における異常を検出するためにフローチャート200を実行してもよい。例として、イメージングデバイス608aによってキャプチャされたビデオにおける異常は、ロボットアーム610aの異常な向きなどに対応し得るものである。例として、イメージングデバイス608bによってキャプチャされたビデオにおける異常は、コンベヤ610bの予期せぬ停止などに対応し得るものである。さらに、システム602は、異常なアクティビティを停止させるために1つ以上のマシン610aおよび610bを制御する制御アクションを実行してもよい。これに代えて、システム602は、異常なアクティビティを停止させるために、監視システム604に関係するオペレータへの通知を生成してもよい。
【0069】
このようにして、システム602は、1つ以上のイメージングデバイス608によってキャプチャされたビデオを使用してファクトリーオートメーションシーンにおける異常を検出してもよい。結果として、ファクトリーオートメーションプロセスにおける異常を検出するコストを、タスクを実行する1つ以上のマシンをカスタマイズされたセンサを使用して監視し異常を検出する従来の方法と比較して、大幅に削減することができる。
【0070】
別の実装形態において、この場所606は、単一のイメージングデバイス608を備えていてもよい。この実装形態において、単一のイメージングデバイス608は、1つ以上のマシン610aおよび610bの各々によって実行されるタスクを単一のイメージングデバイス608がモニタリングするように位置決めされてもよい。それにより、単一のイメージングデバイス608は、ファクトリーオートメーションシーンの複数の相互依存プロセスを含むビデオをキャプチャしてもよい。例として、複数の相互依存プロセスは、ロボットアーム610aが物体を取り上げて置くことおよびコンベヤがこの物体を移動させることであってもよい。さらに、単一のイメージングデバイス608は、キャプチャされたビデオをシステム602に送信してもよい。システム602は、キャプチャされたビデオを入力ビデオとして受けてもよい。さらに、システム602は、入力ビデオにおける異常を検出するためにフローチャート200を実行してもよい。したがって、この実装形態において、システム602は、異常検出のロジックをプログラミングする費用なしで、複数の相互依存プロセスにおける異常を単一のビデオから検出する。
【0071】
図7は、本開示のいくつかの実施形態に係る、ファクトリーオートメーションシーンのビデオ702における異常を検出するためのシステム700の全体ブロック図を示す。図7図1および図2Aと関連付けて説明する。システム700は、システム100に対応していてもよい。システム700は、システム700を1つ以上のイメージングデバイス704に接続するいくつかのインターフェイスを有し得る。たとえば、ネットワークインターフェイスコントローラ(NIC:network interface controller)706は、バス708を介してシステム700をネットワーク710に接続するように適合させたものである。システム700は、ファクトリーオートメーションシーンの入力ビデオ702を、ネットワーク710を通じて、無線または有線のいずれかで受けてもよい。加えて、入力ビデオ702に関連付けられる追加情報が、入力インターフェイス712を介して受信されてもよい。例として、入力ビデオ702に関連付けられる追加情報は、予め定められたパターンの数に対応していてもよい。入力インターフェイス712は、システム700をキーボード722および/またはポインティングデバイス724に接続してもよい。例として、ポインティングデバイス724は、とりわけ、マウス、トラックボール、タッチパッド、ジョイスティック、ポインティングスティック、スタイラス、またはタッチスクリーンを含み得る。
【0072】
システム700は、格納された命令を実行するように構成されたプロセッサ714と、プロセッサ714による実行が可能な命令を格納するメモリ716とを含む。プロセッサ714は、シングルコアプロセッサ、マルチコアプロセッサ、コンピューティングクラスタ、または任意の数の他の構成であってもよい。メモリ716は、ランダムアクセスメモリ(RAM)、読出専用メモリ(ROM)、フラッシュメモリ、または任意の他の適切なメモリシステムを含み得る。さらに、システム700は、プロセッサ714のための実行可能命令を格納するさまざまなモジュールを格納するように適合させた記憶装置718を含む。記憶装置718は、ハードドライブ、光学ドライブ、サムドライブ、ドライブのアレイ、またはそれらの任意の組み合わせを使用して実現されてもよい。
【0073】
記憶装置718は、異常検出モデル720を格納するように構成される。加えて、記憶装置718は、訓練特徴ベクトルのセットを格納してもよい。例として、訓練特徴ベクトルのセットは、訓練特徴ベクトルのセット204に対応していてもよい。いくつかの実施形態において、プロセッサ714は、図2A図2Dの詳細な説明において説明したフローチャート200のステップを実行するために異常検出モデル720を実行するように構成されてもよい。例として、システム700は、ファクトリーオートメーションシーンの入力ビデオ702を受けてもよい。さらに、システム700は、訓練ビデオの時空間領域から得られた訓練特徴ベクトルのセットを受けてもよい。訓練ビデオは、タスクを実行するマシンの正常動作のビデオフレームのセットを含み得る。各時空間領域は、1つまたは複数の訓練特徴ベクトルに関連付けられ、各訓練特徴ベクトルは、予め定められたパターンのカウントの時間的変動を定める運動特徴ベクトルを含む。
【0074】
さらに、システム700は、ビデオボリュームが、対応する時空間領域の空間次元および時間次元によって定められる画像パッチのシーケンスを含むように、入力ビデオ702を、訓練ビデオの時空間領域の空間次元および時間次元に対応するビデオボリュームの複数のシーケンスに、分割してもよい。さらに、システム700は、ビデオボリュームの各々の画像パッチのシーケンスにおける画像パッチの各連続ペアごとに2値差分画像を求めて、ビデオボリュームの各々について2値差分画像のシーケンスを生成してもよい。
【0075】
さらに、システム700は、ビデオボリュームの各々について、各2値差分画像における画素の予め定められたパターンの各々の発生をカウントして、ビデオボリュームの各々についての予め定められたパターンのカウントの時間的変動を定める入力運動特徴ベクトルを含む入力特徴ベクトルを生成してもよい。さらに、システム700は、ビデオボリュームの各々の入力特徴ベクトルと、シーン内の対応する空間領域に関連付けられる訓練特徴ベクトルとの間の最短距離を計算することにより、距離のセットを生成してもよい。さらに、システム700は、ファクトリーオートメーションシーンの入力ビデオにおける異常を検出するために、距離のセットからの各距離を、異常検出しきい値と比較してもよい。
【0076】
加えて、システム700は、イメージングインターフェイス726とアプリケーションインターフェイス728とを含み得る。イメージングインターフェイス726は、システム700を表示装置730に接続する。例として、表示装置730は、とりわけ、コンピュータモニタ、テレビ、プロジェクタ、またはモバイルデバイスを含む。アプリケーションインターフェイス728は、システム700をアプリケーションデバイス732に接続する。例として、アプリケーションデバイス732は、監視システムなどを含み得る。実施形態の例において、システム700は、イメージングインターフェイス726および/またはアプリケーションインターフェイス728を介してビデオ異常検出の結果を出力する。
【0077】
上記説明は、具体例としての実施形態のみを提供し、本開示の範囲、適用可能性、または構成を限定することは意図していない。むしろ、具体例としての実施形態の上記説明は、具体例としての1つ以上の実施形態を実現すること可能にする説明を当業者に提供する。意図されているのは、添付の請求項に記載されている、開示された主題の精神および範囲から逸脱することなく、要素の機能および構成に対して行われ得る各種変更である。
【0078】
具体的な詳細事項が、上記説明において、実施形態の十分な理解を得るために提供されている。しかしながら、これらの具体的な詳細事項がなくても実施形態を実行し得ることを当業者は理解する。たとえば、開示されている主題におけるシステム、プロセス、および他の要素は、実施形態を不必要な詳細事項で不明瞭にしないようにするために、ブロック図の形態で構成要素として示される場合がある。他の例において、実施形態を不明瞭にしないようにするために、周知のプロセス、構造、および技術が、不必要な詳細事項なしで示される場合がある。さらに、各種図面における同様の参照番号および名称は同様の要素を示す。
【0079】
また、個々の実施形態は、フローチャート、フロー図、データフロー図、構造図、またはブロック図として示されるプロセスとして説明される場合がある。フローチャートは動作を逐次プロセスとして説明する場合があるが、動作の多くは並列にまたは同時に実行することができる。さらに、動作の順序は入れ替え可能である。プロセスは、その動作が完了したときに終了されてもよいが、論じられていないまたは図に含まれていない他のステップを有する場合がある。さらに、具体的に記載されている何らかのプロセスにおけるすべての動作がすべての実施形態に起こり得る訳ではない。プロセスは、方法、関数、プロシージャ、サブルーチン、サブプログラムなどに対応し得る。プロセスが関数に対応する場合、関数の終了は、呼び出し関数または主関数に当該関数を戻すことに対応し得る。
【0080】
さらに、開示された主題の実施形態は、少なくとも部分的に、手作業または自動のいずれかで実現されてもよい。手作業または自動による実現は、マシン、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、またはそれらの任意の組み合わせの使用を通して行われてもよく、または少なくとも支援されてもよい。ソフトウェア、ファームウェア、ミドルウェア、またはマイクロコードで実現される場合、必要なタスクを実行するためのプログラムコードまたはコードセグメントは、マシン読取可能媒体に格納されてもよい。プロセッサが必要なタスクを実行してもよい。
【0081】
本明細書で概要を述べた各種方法またはプロセスは、さまざまなオペレーティングシステムまたはプラットフォームのうちのいずれか1つを採用した1つ以上のプロセッサ上で実行可能なソフトウェアとして符号化されてもよい。加えて、そのようなソフトウェアは、複数の好適なプログラミング言語および/またはプログラミングもしくはスクリプトツールのうちのいずれかを用いて記述されてもよく、また、フレームワークもしくは仮想マシン上で実行される、実行可能な機械言語コードまたは中間コードとしてコンパイルされてもよい。典型的に、プログラムモジュールの機能は、各種実施形態における要望に応じて組み合わせても分散させてもよい。
【0082】
本開示の実施形態は、方法として実現されてもよく、その一例が提供されている。この方法の一部として実行される動作の順序は任意の適切なやり方で決定されてもよい。したがって、実施形態は、例示されている順序と異なる順序で動作が実行されるように構成されてもよく、これは、いくつかの動作を、例示されている実施形態では一連の動作として示されていても、同時に実行することを含み得る。本開示をいくつかの好ましい実施形態を参照しながら説明してきたが、その他のさまざまな適合化および修正を本開示の精神および範囲の中で行い得ることが理解されるはずである。したがって、添付の請求項の態様は、本開示の真の精神および範囲に含まれるそのような変形および修正のすべてをカバーする。
図1
図2A
図2B
図2C
図2D
図3
図4
図5A
図5B
図6
図7