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

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

▶ ライカ マイクロシステムズ シーエムエス ゲゼルシャフト ミット ベシュレンクテル ハフツングの特許一覧

特表2023-539834イメージングアプリケーション用のデータ処理管理方法
<>
  • 特表-イメージングアプリケーション用のデータ処理管理方法 図1
  • 特表-イメージングアプリケーション用のデータ処理管理方法 図2
  • 特表-イメージングアプリケーション用のデータ処理管理方法 図3
  • 特表-イメージングアプリケーション用のデータ処理管理方法 図4
  • 特表-イメージングアプリケーション用のデータ処理管理方法 図5
  • 特表-イメージングアプリケーション用のデータ処理管理方法 図6
  • 特表-イメージングアプリケーション用のデータ処理管理方法 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-09-20
(54)【発明の名称】イメージングアプリケーション用のデータ処理管理方法
(51)【国際特許分類】
   G06T 7/00 20170101AFI20230912BHJP
   G06F 9/48 20060101ALI20230912BHJP
【FI】
G06T7/00 350B
G06F9/48 370
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023512316
(86)(22)【出願日】2021-06-30
(85)【翻訳文提出日】2023-03-20
(86)【国際出願番号】 US2021039764
(87)【国際公開番号】W WO2022039841
(87)【国際公開日】2022-02-24
(31)【優先権主張番号】17/000,174
(32)【優先日】2020-08-21
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】511079735
【氏名又は名称】ライカ マイクロシステムズ シーエムエス ゲゼルシャフト ミット ベシュレンクテル ハフツング
【氏名又は名称原語表記】Leica Microsystems CMS GmbH
【住所又は居所原語表記】Ernst-Leitz-Strasse 17-37, D-35578 Wetzlar, Germany
(74)【代理人】
【識別番号】100114890
【弁理士】
【氏名又は名称】アインゼル・フェリックス=ラインハルト
(74)【代理人】
【識別番号】100098501
【弁理士】
【氏名又は名称】森田 拓
(74)【代理人】
【識別番号】100116403
【弁理士】
【氏名又は名称】前川 純一
(74)【代理人】
【識別番号】100134315
【弁理士】
【氏名又は名称】永島 秀郎
(74)【代理人】
【識別番号】100162880
【弁理士】
【氏名又は名称】上島 類
(72)【発明者】
【氏名】クリストファー バーンバウム
(72)【発明者】
【氏名】シー-ジョン ジェイムス リー
(72)【発明者】
【氏名】トゥアン ファン
【テーマコード(参考)】
5L096
【Fターム(参考)】
5L096BA02
5L096BA03
5L096JA03
5L096JA11
5L096KA04
(57)【要約】
イメージングアプリケーション用のコンピュータ化された効率的なデータ処理管理方法は最初に、計算手段により、少なくとも1つの画像データと、少なくとも1つの要求タスクと、を使用して、データフローグラフ生成を実行して、データフローグラフを生成する。次いでこの方法は、生成したデータフローグラフと、キャッシングシステム設定と、少なくとも1つの画像データと、少なくとも1つの要求タスクと、を使用して、タスク実行スケジューリングを適用し、タスク実行出力を生成するために、少なくとも1つの要求タスクの実行をスケジューリングする。また、適応型データ処理方法により、キャッシングシステム更新を実行し、最適データ処理方法によってさらにデータフローグラフ更新を実行する。
【特許請求の範囲】
【請求項1】
イメージングアプリケーション用のコンピュータ化された効率的なデータ処理管理方法であって、前記方法は、次のステップ、すなわち、
a)電子記憶手段にキャッシングシステム設定と、少なくとも1つの画像データと、少なくとも1つの要求タスクと、を入力するステップと、
b)計算手段により、少なくとも1つの前記画像データと、少なくとも1つの前記要求タスクと、を使用して、データフローグラフ生成を実行して、データフローグラフを生成するステップと、
c)前記データフローグラフと、前記キャッシングシステム設定と、少なくとも1つの前記画像データと、少なくとも1つの前記要求タスクと、を使用して、タスク実行スケジューリングを実行して、少なくとも1つの前記要求タスクの実行をスケジューリングして、少なくとも1つのタスク実行出力を生成するステップと、
を有する、
コンピュータ化された効率的なデータ処理管理方法。
【請求項2】
前記キャッシングシステム設定は、キャッシュノードおよびバッキングストアのグラフを有する、
請求項1記載のコンピュータ化された効率的なデータ処理管理方法。
【請求項3】
前記データフローグラフは、複数のフォーマット固有画像ノードと、複数のデータノードと、前記ノードの2つのノード間のそれぞれに複数の有向非巡回演算と、を有する、
請求項1または2記載のコンピュータ化された効率的なデータ処理管理方法。
【請求項4】
前記タスク実行スケジューリングは、次のステップ、すなわち、
a)少なくとも1つの前記要求タスクを並列化可能なタスクバッチに分割するためにタスク分割を実行するステップと、
b)動作可能なバッチとブロックされるバッチとに、アクティブなタスクバッチをソートするためにタスクソートを実行するステップと、
c)利用可能な実行ユニットに動作可能なバッチを割当て実行するか、または実行が完了した場合に実行ユニットを解放するためにタスク実行を実行するステップと、
d)タスク完了チェックを実行して、前記タスク完了チェックによって未完了状態が返される場合にステップb)およびステップc)を繰り返すステップと、
e)全てのタスクバッチが実行されるまでステップb)~ステップd)を繰り返すステップと、
を有する、
請求項1から3までのいずれか1項記載のコンピュータ化された効率的なデータ処理管理方法。
【請求項5】
前記タスク実行スケジューリングの前記タスクソートにより、前記データフローグラフをトラバースする、
請求項4記載のコンピュータ化された効率的なデータ処理管理方法。
【請求項6】
イメージングアプリケーション用のコンピュータ化された適応型データ処理管理方法であって、前記方法は、次のステップ、すなわち、
a)電子記憶手段に初期キャッシングシステム設定と、少なくとも1つの画像データと、少なくとも1つの要求タスクと、を入力するステップと、
b)計算手段により、少なくとも1つの前記画像データと、少なくとも1つの前記要求タスクと、を使用して、データフローグラフ生成を実行して、データフローグラフを生成するステップと、
c)計算手段により、前記初期キャッシングシステム設定と、少なくとも1つの前記画像データと、少なくとも1つの前記要求タスクと、を使用して、キャッシングシステム更新を実行して、更新キャッシングシステム設定を生成するステップと、
d)前記データフローグラフと、前記更新キャッシングシステム設定と、少なくとも1つの前記画像データと、少なくとも1つの前記要求タスクと、を使用して、タスク実行スケジューリングを実行して、少なくとも1つの前記要求タスクの実行をスケジューリングして、少なくとも1つのタスク実行出力を生成するステップと、
を有する、
コンピュータ化された適応型データ処理管理方法。
【請求項7】
前記データフローグラフは、複数のフォーマット固有画像ノードと、複数のデータノードと、前記ノードの2つのノード間のそれぞれに複数の有向非巡回演算と、を有する、
請求項6記載のコンピュータ化された適応型データ処理管理方法。
【請求項8】
前記初期キャッシングシステム設定は、キャッシュノードおよびバッキングストアのグラフを有する、
請求項6または7記載のコンピュータ化された適応型データ処理管理方法。
【請求項9】
前記初期キャッシングシステム設定のキャッシュノードおよびバッキングストアの前記グラフにより、アプリケーションアクティビティのモデルに基づいて、分散サブシステムのハーモナイゼーションを実行する、
請求項8記載のコンピュータ化された適応型データ処理管理方法。
【請求項10】
アプリケーションデータを使用し、機械学習によって前記アプリケーションアクティビティのモデルを生成する、
請求項9記載のコンピュータ化された適応型データ処理管理方法。
【請求項11】
前記キャッシングシステム更新により、少なくとも1つの前記画像データおよび少なくとも1つの前記要求タスクを使用して、前記アプリケーションアクティビティのモデルを更新する、
請求項9または10記載のコンピュータ化された適応型データ処理管理方法。
【請求項12】
前記タスク実行スケジューリングは、次のステップ、すなわち、
a)少なくとも1つの前記要求タスクを並列化可能なタスクバッチに分割するためにタスク分割を実行するステップと、
b)動作可能なバッチとブロックされるバッチとに、アクティブなタスクバッチをソートするためにタスクソートを実行するステップと、
c)利用可能な実行ユニットに動作可能なバッチを割当て実行するか、または実行が完了した場合に実行ユニットを解放するためにタスク実行を実行するステップと、
d)タスク完了チェックを実行して、前記タスク完了チェックによって未完了状態が返される場合にステップb)およびステップc)を繰り返すステップと、
e)全てのタスクバッチが実行されるまでステップb)~ステップd)を繰り返すステップと、
を有する、
請求項6から11までのいずれか1項記載のコンピュータ化された適応型データ処理管理方法。
【請求項13】
前記タスク実行スケジューリングの前記タスクソートにより、前記データフローグラフをトラバースする、
請求項12記載のコンピュータ化された適応型データ処理管理方法。
【請求項14】
イメージングアプリケーション用のコンピュータ化された最適データ処理管理方法であって、前記方法は、次のステップ、すなわち、
a)電子記憶手段に初期キャッシングシステム設定と、初期データフローグラフと、少なくとも1つの画像データと、少なくとも1つの要求タスクと、を入力するステップと、
b)計算手段により、前記初期データフローグラフと、少なくとも1つの前記画像データと、少なくとも1つの前記要求タスクと、を使用して、データフローグラフ更新を実行して、更新データフローグラフを生成するステップと、
c)計算手段により、前記初期キャッシングシステム設定と、少なくとも1つの前記画像データと、少なくとも1つの前記要求タスクと、を使用して、キャッシングシステム更新を実行して、更新キャッシングシステム設定を生成するステップと、
d)前記更新データフローグラフと、前記更新キャッシングシステム設定と、少なくとも1つの前記画像データと、少なくとも1つの前記要求タスクと、を使用して、タスク実行スケジューリングを実行して、少なくとも1つのタスク実行出力を生成するために、少なくとも1つの前記要求タスクの実行をスケジューリングするステップと、
を有する、
コンピュータ化された最適データ処理管理方法。
【請求項15】
前記初期データフローグラフは、複数のフォーマット固有画像ノードと、複数のデータノードと、前記ノードの2つのノード間のそれぞれに複数の有向非巡回演算と、を有する、
請求項14記載のコンピュータ化された最適データ処理管理方法。
【請求項16】
複数の前記フォーマット固有画像ノードと複数の前記データノードとは、既存のデータと予想されるタスクとに整合するように初期設定される、
請求項15記載のコンピュータ化された最適データ処理管理方法。
【請求項17】
前記データフローグラフ更新により、少なくとも1つの前記画像データおよび少なくとも1つの前記要求タスクのノードおよび演算を前記初期データフローグラフに追加する、
請求項15または16記載のコンピュータ化された最適データ処理管理方法。
【請求項18】
前記初期キャッシングシステム設定は、キャッシュノードおよびバッキングストアのグラフを有する、
請求項14から17までのいずれか1項記載のコンピュータ化された最適データ処理管理方法。
【請求項19】
前記初期キャッシングシステム設定のキャッシュノードおよびバッキングストアの前記グラフにより、アプリケーションアクティビティのモデルに基づいて、分散サブシステムのハーモナイゼーションを実行する、
請求項18記載のコンピュータ化された最適データ処理管理方法。
【請求項20】
アプリケーションデータを使用し、機械学習によって前記アプリケーションアクティビティのモデルを生成する、
請求項19記載のコンピュータ化された最適データ処理管理方法。
【請求項21】
前記キャッシングシステム更新により、少なくとも1つの前記画像データおよび少なくとも1つの前記要求タスクを使用して、前記アプリケーションアクティビティのモデルを更新する、
請求項19または20記載のコンピュータ化された最適データ処理管理方法。
【請求項22】
前記タスク実行スケジューリングは、次のステップ、すなわち、
a)少なくとも1つの前記要求タスクを並列化可能なタスクバッチに分割するためにタスク分割を実行するステップと、
b)動作可能なバッチとブロックされるバッチとに、アクティブなタスクバッチをソートするためにタスクソートを実行するステップと、
c)利用可能な実行ユニットに動作可能なバッチを割当て実行するか、または実行が完了した場合に実行ユニットを解放するためにタスク実行を実行するステップと、
d)タスク完了チェックを実行して、前記タスク完了チェックによって未完了状態が返される場合にステップb)およびステップc)を繰り返すステップと、
e)全てのタスクバッチが実行されるまでステップb)~ステップd)を繰り返すステップと、
を有する、
請求項14から21までのいずれか1項記載のコンピュータ化された最適データ処理管理方法。
【請求項23】
前記タスク実行スケジューリングの前記タスクソートにより、前記データフローグラフをトラバースする、
請求項22記載のコンピュータ化された最適データ処理管理方法。
【請求項24】
1つまたは複数のプロセッサおよび1つまたは複数のストレージデバイスを有するシステムであって、前記システムは、
1つまたは複数の前記ストレージデバイスにキャッシングシステム設定と、少なくとも1つの画像データと、少なくとも1つの要求タスクと、を入力し、
1つまたは複数の前記プロセッサにより、少なくとも1つの前記画像データと、少なくとも1つの前記要求タスクと、を使用し、データフローグラフ生成を実行して、データフローグラフを生成し、
前記データフローグラフと、前記キャッシングシステム設定と、少なくとも1つの前記画像データと、少なくとも1つの前記要求タスクと、を使用して、タスク実行スケジューリングを実行し、少なくとも1つのタスク実行出力を生成するために少なくとも1つの前記要求タスクの実行をスケジューリングする、
ように構成されている、
システム。
【請求項25】
コンピュータプログラム製品がコンピュータ上で動作する場合、請求項1から23までのいずれか1項記載の方法を実施するように動作するプログラムコードを有するコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
連邦政府による資金提供を受けた研究開発の元で行われた発明についての権利に関する記載
この研究は、米国国立神経疾患脳卒中研究所から授与された米国政府助成番号5R44NS097094-04、米国国立精神衛生研究所から授与された4R44MH121167-02、および米国国立総合医科学研究所から授与された1U44GM136091-01によって部分的に支援されている。米国政府は、本発明において一定の権利を有する可能性がある。
【背景技術】
【0002】
a.発明の分野
イメージングアプリケーションには、工業検査、自動生産、自動運転車、リモートセンシング、ロボティクス、プロセスオートメーション、薬剤スクリーニング、科学研究等の幅広い分野が含まれる。例えば、顕微鏡イメージング実験における画像は、それぞれのステージ位置または他のコンフィギュレーション設定から見た図を、準備されたサンプルの単一のn次元画像に合成することを目的として、一連の2D~6D(X,Y,Z、時間、チャネル)のキャプチャを行うことがある。それぞれのキャプチャは、通常、同じ全体寸法、例えばXYZTCにおいて1000×1000×1000×50×4を有する。対象空間では、キャプチャは重なり合っていてもよい。他のイメージングアプリケーションも、ビッグデータ管理のますます高まる要求に伴って、同様のデータ形式を有する。
【0003】
それぞれのキャプチャ内で、検出器信号強度のサンプルは、通常、最も内側または最も外側のどちらかのチャネルシーケンスを有する、単純で平坦な幾何学的形状でフォーマットされる。単純ではあるが、1つの局所領域からのサンプルのアクセスには、多くの短いスキャンラインを格段に長い全体スキャンラインから抽出する必要があり、これはコストのかかる演算になり得るため、このフォーマットは、コンピュータ化された画像およびデータ処理ツールにとっては課題となる。したがって、画像取得パイプラインが、チャンクの規則的なグリッドを定義する再フォーマットステップを組み込むことが増えてきており、このグリッド内では、サンプルそれら自体が1つの全体キャプチャであるかのように順序付けられる。これにより、データへのアクセスがいっそう複雑になり得るが、ローカルアクセスにより、あまり広範囲に分散されていないソースデータからスキャンラインが抽出され、時にはチャンク全体を一度に抽出して、さらなる再フォーマットを行うことなくそのまま使用できることもあるという利点を有する。
【0004】
画像取得における別の動向は、より多くのデータをアプリケーションユーザーの利用可能なストレージに収容できるように、それぞれのキャプチャのそれぞれのチャンクに圧縮を適用することである。圧縮忘却型データトラバースは同じソースデータの繰り返しの伸長を引き起こすことがあり、これによってアクセスを極めて遅くするため、このこともまた画像ソフトウェアには課題になる。例を続けると、単一の画像は、重なり合う100個のキャプチャから構成されることがあり、いくつかの配列の1つでは4つまたは5つの次元で、それぞれが合計するとサイズが数百GBになり、内部的には、場合によってはいくつかの独立した配列の1つにおいて同様にグリッドおよびチャンク寸法で、100×100×100×50×4のチャンクの10×10×10のグリッドとしてフォーマットされている。チャンク化は、チャンク側面による画像側面が分割できないことに起因して、オリジナルデータのパディングを生じさせることもあるが、これは、連続的なアクセスに対する別の障壁である。
【0005】
この例は、十分な注意が払われた場合には、画像処理ツールにとって、正しく読み取ることはそれほど困難ではない。しかしながら、高速でこれを行うことは困難であり、特に、レンダリング目的箇所が、異なるフォーマットもしくはスケーリング、例えばピラミッド型画像レベルを有する場合、またはソースデータが圧縮されているか、または後処理、例えば、重なり合ったキャプチャの融合等が必要な場合には困難である。これらのような課題は、本発明を動機付ける2つのシナリオにおいて、特に扱いにくくなる。すなわち、(1)個別には作業メモリよりも格段に多くなり得るn次元画像データセットの効率的なアクセス、(2)画像および非画像の両方における、導出データセットの効率的な生成。例に含まれるのは、表示のための合成と、処理のためのフィルタリングと、統計情報の生成と、測定および解析と、である。
【0006】
b.従来技術によって問題はどのように解決されたか
大きな画像をサポートする典型的なソフトウェアツールは、オリジナルファイルへのオープンコネクションを維持し、結果的に、圧縮されているかまたは他の理由によってアクセスが遅い可能性のあるファイル内のデータの繰り返しのアクセスが生じる。典型的には、アクセス時間を短縮するために、単純なインメモリキャッシュが使用される。
【0007】
導出データ生成をサポートする典型的なソフトウェアツールは、オリジナルファイルと類似しているかもしくは同じファイルに直ちにエクスポートするか、またはデータをエクスポートできるまでこれを管理するために汎用データベースを使用するか、または付随的な制限を伴って全ての導出データをメモリに保持することになる。データ生成は、典型的には、システム全体がブロックされるか、または同時ではあるが、使用可能になる前に完了していなければならないオールオアナッシング処理である。
【発明の概要】
【発明が解決しようとする課題】
【0008】
a.発明の目的/利点
本発明の第1の目的は、明示的なデータフローグラフの固有の非同期性を介し、また全てのユーザー要求についての完全な非同期なエントリポイントを介して、データ処理遅延を低減することである。本発明の第2の目的は、データフローグラフのトラバースを実行するためにスケジューラによって適用される並列性に起因して、スループットを増加させることである。本発明の第3の目的は、データトラバースのどのような厳密な配列および分割が他よりも効率的であるかの知識を含め、共通の外部および内部データソースについての知識に基づいて、空間オーバーヘッドを低減しかつ時間オーバーヘッドをより予想可能にするために、ユニットオブワーク最適化のエリアにおける特別な利点で、n次元画像の特別な領域を活用することである。本発明の第4の目的は、過去、現在、および予測されるユーザーアクティビティと、利用可能なリソースの総利用率と、の集められた知識に基づいて、複数のサブシステムをハーモナイズさせることである。本発明の第5の目的は、適応型データ処理管理用のアプリケーション知識の動的更新である。本発明の第6の目的は、最適データ処理管理用のアプリケーション知識を生成および適用するために機械学習を使用することである。
【課題を解決するための手段】
【0009】
b.本発明によるこの問題の解決の仕方
本発明により、以下を組み合わせたデータ処理方法またはシステムが提供される。すなわち、
・異種リソース、例えば、SSD(solid-state drive)およびHDD(hard drive)の組み合わせまたはネットワーク画像サーバ等を効率的に利用するように設計されたキャッシュノードおよびバッキングストアのフレキシブルグラフから成る、内部および外部の両方の大量の画像データ用に最適化されたキャッシングコンポーネント。
・フォーマット固有画像ノードと、データノードと、それらの間の有向非巡回演算(関数)と、から成るデータフローグラフ。ノードは、既存データと予想されるタスク要求とのフォーマットに適合するように初期設定される。画像演算に端点が必要な場合、ノードが追加される。演算は、ヒューリスティクスおよび固有のタスク要求にしたがい、データがノード間を流れるのに連れて、キャッシングシステムによって媒介されるデータと共に、インクリメント式にまたは並行して適用される。
・タスク実行スケジューリング(スケジューラ)により、アプリケーション要求と管理タスクとが非同期にサービスされ、既知の画像フォーマットと既知のデータフローとキャッシュトポロジと活用されることにより、画像演算が自動的に並列化される。
【図面の簡単な説明】
【0010】
図1】本発明による、イメージングアプリケーション用の効率的なデータ処理管理方法の処理フローを示す図である。
図2】本発明による、キャッシュノードおよびバッキングストアのグラフを有する例示的なキャッシングシステム設定を示す図である。
図3】本発明による、複数の画像ノードまたはデータノードと、ノード間の有向非巡回演算と、を有する、例示的なデータフローグラフを示す図である。
図4】本発明による、タスク実行スケジューリング方法の処理フローを示す図である。
図5】本発明による、イメージングアプリケーション用の適応型データ処理管理方法の処理フローを示す図である。
図6】本発明による、イメージングアプリケーション用の最適データ処理管理方法の処理フローを示す図である。
図7】説明する方法を実施するように構成されたシステムの概略図を示す図である。
【発明を実施するための形態】
【0011】
添付の図面に関連して、本発明の概念および好ましい実施形態を以下に詳細に説明する。
【0012】
1.イメージングアプリケーション用の効率的なデータ処理管理方法
図1には、本発明の、イメージングアプリケーション用の効率的なデータ処理管理方法の処理フローが示されている。電子記憶手段、例えば、コンピュータメモリ、ディスクまたはネットワークイメージサーバ等には、キャッシングシステム設定104と、少なくとも1つの画像データ100と、少なくとも1つの要求タスク102と、が入力される。データフローグラフ生成106は、計算手段により、少なくとも1つの画像データ100と、少なくとも1つの要求タスク102と、が使用されて実行され、データフローグラフ108が生成される。計算手段には、ローカルおよび/またはクラウドプラットフォームおよび/またはモバイルデバイスの中央処理ユニット(CPU)、グラフィックス処理ユニット(GPU)、デジタル信号プロセッサ(DSP)が含まれている。それらは、電子計算装置、量子計算装置または光計算装置によって実行可能である。タスク実行スケジューリング110(スケジューラ)は、計算手段により、データフローグラフ108と、キャッシングシステム設定104と、少なくとも1つの画像データ100と、少なくとも1つの要求タスク102と、が使用されて実行され、少なくとも1つのタスク実行出力112を生成するために、少なくとも1つの要求タスク102の非同期実行がスケジューリングされる。
【0013】
1.1 キャッシングシステム設定
図2には、例示的なキャッシングシステム設定が示されている。タスク214,216を考慮すると、内部および外部の両方の大量の画像データに対し、キャッシュノード208,210,212およびバッキングストア200,202,204,…のフレキシブルグラフから構成され、異種リソース、例えば、RAMキャッシュノード208、SSDキャッシュノード210、HDDキャッシュノード212またはネットワーク画像サーバ218等の組み合わせを効率的に利用するように設計されているキャッシングシステム206が最適化される。
【0014】
キャッシングシステム設定は、複数のバッキングストア200,202,204,…と、キャッシュノード208,210,212と、から構成される。バッキングストアおよびキャッシュノードの両方は、画像データページの抽象コレクションである。コレクションにおけるページ数は、キャッシュノードについては制限されるが、バッキングストアについては制限されない。バッキングストアおよび/または関数(演算)により、それぞれの画像データノードのデータソースが供給される。スケジューラによってタスクが実行されると、後で効率的にアクセスするために、画像データのそれぞれのインクリメンタルバッチのコピーがキャッシングシステムに記憶される。キャッシングシステムにより、キャッシュノードの容量を超える大量のデータを収容するために、必要に応じて、それぞれのキャッシュノードが充填されまたトリミングされる。データインクリメントのバッチは、画像データ全体への一貫した応答アクセスを提供する最適化された形で、キャッシュノード間に割当てられて分配される。
【0015】
キャッシングシステムおよび画像データの両方の特性を考慮して、キャッシングシステムの効率および性能を向上するために、キャッシングシステムの設定において複数のストラテジが使用される。これらには、キャッシュノードおよびタスク結果バッファのページサイズに最善に適合するようにインクリメントのサイズおよびそれらの配列を選択すること、利用可能なメモリおよびディスクスペースに割当てを適合させること、および観察されるユーザーアクセスパターンに基づいてデータインクリメントを予測的にプリフェッチすること等が含まれる。これらの設定は、2.1項で詳述するように機械学習によって生成可能である。
【0016】
1.2 データフローグラフ
図3には、本発明による例示的なデータフローグラフが示されている。データフローグラフは、フォーマット固有画像ノード300,306,308,316,320,332,340と、データノード318,322,330,334,338と、それらの間の有向非巡回演算(関数)302,304,310,312,314,324,326,328,336と、から構成される。それぞれの演算は、上述した2つのノードの間にある。例示的なデータには、測定値、ヒストグラム、グラフ、処理パイプラインシーケンス等が含まれる。ノードは、入力画像データ100と要求タスク102とのフォーマットに適合するように初期設定される。ノードは、演算に端点が必要な場合に追加される。演算は、ヒューリスティクスおよび特定の要求タスク102にしたがい、データがノード間を流れるのに連れて、キャッシングシステム設定によって媒介されるデータと共に、インクリメント式に、または並行して適用される。接続ノードの上書きは、2次的なシナリオであるが、下流ノードを段階的に切断するか、または接続を介して新たなデータをプッシュしてライブサブグラフを形成するかのいずれかのために構成されることも可能である。
【0017】
本発明の1つの実施形態では、多くのデータソース(スタック、ヒープ、管理されたヒープ、ディスク)と、インタフェースを単純化しかつデータコピーを減少させる、上流パラメータの内部範囲と、に対するアクセスを統合する単一の抽象タイプを使用して、全てのデータがシステムを通過する。さらに、全てのデータフローは、意図された再現性セマンティクスによって注釈付けされる。すなわち、ワンタイム、限定、バッキング、即時等であり、これにより、スケジューラは、適切なスペース/時間のトレードオフを利用可能である。
【0018】
1.3 タスク実行スケジューリング
図4には、本発明による、タスク実行スケジューリング方法の処理フローが示されている。タスク実行スケジューリングは概念的には無限ループであり、この無限ループは、要求タスク102を受信トレイから引き出し、並列化可能なタスクバッチ402にそれぞれのタスクを分割し、動作可能であるタスクとブロックされるタスクとに従って全てのタスクの全てのバッチをソートし、次いで、利用可能な実行ユニットにバッチを割当てるか、または、その実行が完了するとユニットを解放し、データフローグラフのトラバースを介して、全てのバッチおよびそれらの親タスクのブックキーピングを相応に更新する。本発明の1つの実施形態では、実行ユニットは、スレッド、ファイバ、またはネットワークサーバであってよい。
【0019】
少なくとも1つの要求タスク102を並列化可能なタスクバッチ402に分割するために、タスク分割400が実行される。動作可能バッチ406とブロックされるバッチ408とに、タスクバッチ402のうちのアクティブなタスクバッチをソートするためにタスクソート404が実行される。ブロックされるバッチ408は、必要な入力の全てがまだ利用可能でないバッチである。全ての入力の準備が整うとブロックは解除され、ブロックされるバッチ408は、次いで、動作可能バッチ406に変更される。利用可能な実行ユニットに動作可能バッチ406を割当て実行するか、または実行が完了した場合に実行ユニットを解放するためにタスク実行410が実行される。タスク完了チェック412が実行される。完了ステータスが、完了418である場合、要求タスク102は成功裏に完了している。完了ステータスが未完了414である場合、タスクソート404とタスク実行410と完了チェック412とは、完了ステータスが、完了418になるまで繰り返される416。
【0020】
A.タスク分割
本発明の1つの実施形態では、タスク分割およびタスクバッチ生成処理によって認識されるのは、相反し得るタスクを処理するときに、いくつかのゴールが存在することである。最初のゴールは、要求タスクにバッチを適合させることである。別のゴールは、キャッシングシステムにバッチを適合させることである。最終的には、これらのバッチは、方法の最も繁雑なレイヤにおける冗長な読み出しまたは復号化を回避するために、バッキングストアデータフォーマットに合わされるべきである。
【0021】
第1のゴールは、ユーザーが自分のアクセスパターンに正確に適合するデータフローノードを定義できるようにすることによって対処可能である。第2のゴールは、部分的には、キャッシングシステムにおいて、任意にサイジングされたバッチにアクセスするために固定サイズのページングを内部的に使用することによって、また部分的には、スケジューラにおいてバッチをサイジングするときのガイドとしてキャッシングページサイズを使用することによって対処可能である。大容量画像アクセスの効率を最大化するときの最も重要なゴールは、データフローグラフの個々のノードの基礎となるバッキングストアフォーマットのチャンク構造に全てのバッチを合わせることによって対処される。
【0022】
本発明の1つの実施形態では、バッチ処理は、(大きい場合には)場合によってパディングされる、チャンクのセグメントに合わせた分割を行うことによって、かつ/または(小さい場合には)標準的なサイズ目標に合わせて、チャンクの緩いグループ化を行うことによって実行することができる。バッチは、チャンク構造に合わせることが可能であるが、チャンクに対して正確に1対1に合わせることはできない。その理由は、多くの画像ファイルおよび画像処理エンドポイントは、効率的なアクセスができるようにするためには小さすぎるかまた大きすぎるかのいずれかのチャンクサイズを有するからである。これらが小さすぎると、これらは、より効率的なバッチサイズ、すなわちキャッシングページサイズに最も近いチャンクグリッドセグメントにグループ化可能である。チャンクシーケンスは、バッチの局所性を維持するためにグリッドセグメントに制約される。維持されたチャンク処理とは、これらのバッチが、連続したバッファではなく、スケジューリングされたバッチ内でそれぞれのチャンクを別々に処理しなければならないことを意味することに注意されたい。効率的なバッチにはチャンクが大きすぎる場合、チャンクは、それぞれのチャンクについて複数の連続したセグメントに分割され、その際には最後のセグメントが、チャンクサイズを均等に分割しない場合、この最後のセグメントにパディングが行われる。この場合、局所性のみならずバッファ間の連続性も維持される。最後のセグメントにパディングが行われる場合、この最後のセグメントは、チャンク境界であるため、オリジナルのセグメントと同様に引き続いて連続的である。
【0023】
B.タスクのソート
本発明の1つの実施形態によると、タスクのソートには、データフローグラフのトラバースが含まれる。ノード間に接続がない場合、タスクの与えられたバッチは、タスク実行スケジューリング(スケジューラ)の受信トレイによって観察されるのと同じ、先行タスクにおけるバッチの修正履歴だけに依存する。しかしながら、タスクがスケジューリングされるノードへのデータフロー接続またはノードからのデータフロー接続が1つまたは複数存在する場合、優先度管理が必要である。
【0024】
画像ノードに付属する演算は、その入力および出力のフォーマットのことを全く気にする必要はない。演算は、純粋に中断のないサンプル空間の観点から定義される。これは、アプリケーション、例えばアフィン変換、またはフュージョンアルゴリズム、または画像ハッシング等を扱う場合の唯一の実現可能なアプローチである。さらに、バッチ処理には、インクリメンタルな仕方で演算が適用される必要がある。いくつかの演算は、バッチ処理に対応できるが、別のいくつかの演算はバッチ処理に対応できない。演算の実装にはスケジューラによってバッチサイズが与えられ、それらの実装は、目的箇所側で、ソース側で、またはその両方でインクリメンタルであるか、またはどちらもインクリメンタルでないと応答する。最悪のケースでは、演算は全くインクリメンタルではなく、これにより、スケジューラは、その入力の考えられ得る全てのバッチが、キャッシュまたはバッキングストアに分割されるまで待機し、最初の交差するタスクバッチをトリガし、次いで、関数の完全な画像出力が生成されてキャッシュまたバッキングストアに格納されるのを待機し、その後、その関心対象のバッチが最終的に利用可能であることをスケジューラに通知する必要がある。交差する後続のバッチは、それ以上演算において使用されることなく、キャッシュまたはバッキングストアに分解される。ほとんどの演算はインクリメントにすることができるため、並列化されたバッチトラバースにより、ほとんどのケースにおいて大きな利益がもたらされることになる。
【0025】
特定のバッチが解決されなければならない場合に、インクリメンタル関数のグラフが、スケジューラによってトラバースされる仕方は、グラフ内の一時的なグラフが生成されることである。すなわち、全体画像内の個別のバッチは、それぞれの演算のどちらかの側のバッチ内で、関心領域(ROI)および/またはサンプルの範囲の間の関係に従って個別にリンクされる。交差するバッチがスケジューリングされる場合、そのソースグラフ全体もトポロジ的にソートされた順序でスケジューリングされる。
【0026】
ソースグラフは、サイクリックではないが、ダイヤモンドトポロジーを含み得る。複雑なデータフローグラフにより、複雑なバッチグラフが作成可能であるが、実際には、ほとんどの下流のバッチがスケジューリングされる前に、ほとんどの演算上の依存関係が十分に解決され、先行タスクによって解決されない場合には、同じタスクのより前のバッチによって解決される。というのは、演算出力は、それらの設定によって許容されるのであれば、交差するタスクの持続時間の間、キャッシュおよび/またはバッキングストアに保存されるからである。動作がさほどインクリメンタルでない場合、またはノードフォーマットがあまり互換性を有しない場合、ソースグラフは、いくらの読み出し増幅の影響を受ける可能性があるが、これは、バッチ内のROIおよびレンジマッピングによっても、またこの方法の全てのレベルにおけるユニファイドキャッシングによっても軽減される。
【0027】
2.イメージングアプリケーション用の適応型データ処理管理方法
図5には、本発明の、イメージングアプリケーション用の適応型データ処理管理方法の処理フローが示されている。電子記憶手段、例えば、コンピュータメモリ等には、初期キャッシングシステム設定500と、少なくとも1つの画像データ100と、少なくとも1つの要求タスク102と、が入力される。データフローグラフ生成106は、計算手段により、少なくとも1つの画像データ100と、少なくとも1つの要求タスク102と、が使用されて実行され、データフローグラフ108が生成される。キャッシングシステム更新502は、計算手段により、初期キャッシングシステム設定500と、少なくとも1つの画像データ100と、少なくとも1つの要求タスク102と、が使用されて実行され、更新キャッシングシステム設定504が生成される。タスク実行スケジューリング110は、計算手段により、データフローグラフ108と、更新キャッシングシステム設定504と、少なくとも1つの画像データ100と、少なくとも1つの要求タスク102と、が使用されて実行され、少なくとも1つのタスク実行出力112を生成するために、少なくとも1つの要求タスク102の非同期実行がスケジューリングされる。
【0028】
2.1 キャッシングシステム更新
初期キャッシングシステム設定におけるキャッシュノードおよびバッキングストアのグラフにより、利用可能なリソースの効率的な利用についてのアプリケーションアクティビティのモデルに基づいて、グローバルな最適化を実行する。アプリケーションアクティビティのモデルは、アプリケーションデータを使用して、機械学習によって生成可能である。キャッシングシステム更新は、少なくとも1つの画像データと、少なくとも1つの要求タスクと、を使用して、アプリケーションアクティビティのモデルの再学習または転移学習によって実行可能であり、これにより、アプリケーションアクティビティのモデルが更新される。
【0029】
本発明の1つの実施形態において、アプリケーションデータには、様々なターゲットアプリケーションシナリオの動的アプリケーション要求シーケンスが含まれている。所望のキャッシングシステム設定に対応するトゥルースは、手動アノテーションによって、または効率メトリックを使用するコンピュータ最適化によって決定可能であり、これにより、トレーニングデータ作成ステージ中に最適設定を見つけることができる。アプリケーションモデルの再学習または転移学習のためのトレーニングデータは、複数の手段を介して取得可能である。第1の手段は、更新されていないキャッシングシステムの実際の使用中に生成されるデータの取得である。さらに、既存のデータにデータ拡張技術を適用して、トレーニングデータセットをさらに充実させることができる。さらに、トレーニングデータは、手動でまたは自動技術を介して生成可能であり、これにより、合成データセットが作成される。キャッシングシステム設定トゥルースおよびアプリケーションデータは、所望のキャッシングシステム設定についてのアプリケーションのモデルを定義するために機械学習メソッドによって使用可能である。本発明の1つの実施形態では、ランダムフォレストのようなアンサンブルモデルがモデル学習に使用可能である。本発明の別の1つの実施形態では、サポートベクターマシンがモデル学習に使用可能である。本発明のさらに別の1つの実施形態では、ディープラーニング(DL)モデルが使用可能である。DLモデルには、人工ニューラルネットワーク、例えば、CNN(Convolutional deep Neural Network)、RNN(Recurrent Neural Network)、GAN(Generative Adversarial Network)等と、その変形形態、例えば、Unet、ResUNet(UNet with residual block)、RCAN(deep Residual Channel Attention Network)、DenseUNet(UNet with densely-connected block)、CAN(Conditional Adversarial Network)、双方向LSTM、アンサンブルDNN/CNN/RNN、階層型畳み込みディープマックスアウトネットワーク等との複数の層が含まれる。
【0030】
当業者には、他の機械学習/DLモデルも使用可能であり、それらが本発明に含まれていることが理解されるはずである。
【0031】
3.イメージングアプリケーション用の最適データ処理管理方法
図6には、本発明の、イメージングアプリケーション用の最適データ処理管理方法の処理フローが示されている。電子記憶手段、例えば、コンピュータメモリ等には、初期キャッシングシステム設定500と、初期データフローグラフ600と、少なくとも1つの画像データ100と、少なくとも1つの要求タスク102と、が入力される。データフローグラフ更新602は、計算手段により、少なくとも1つの画像データ100と、初期データフローグラフ600と、少なくとも1つの要求タスク102と、が使用されて実行され、更新データフローグラフ604が生成される。キャッシングシステム更新502は、計算手段により、初期キャッシングシステム設定500と、少なくとも1つの画像データ100と、少なくとも1つの要求タスク102と、が使用されて実行され、更新キャッシングシステム設定504が生成される。タスク実行スケジューリング110は、計算手段により、更新データフローグラフ604と、更新キャッシングシステム設定504と、少なくとも1つの画像データ100と、少なくとも1つの要求タスク102と、が使用されて実行され、少なくとも1つのタスク実行出力112を生成するために、少なくとも1つの要求タスク102の非同期実行がスケジューリングされる。データフローグラフ更新602により、少なくとも1つの画像データ100および少なくとも1つの要求タスク102のノードおよび演算が初期データフローグラフ600に追加される。
【0032】
本明細書で使用されるように、用語「および/または(かつ/または)」は、関連する記載項目のうちの1つまたは複数の項目のあらゆる全ての組み合わせを含んでおり、「/」として略記されることがある。
【0033】
いくつかの態様を装置の文脈において説明してきたが、これらの態様が、対応する方法の説明も表していることが明らかであり、ここではブロックまたは装置がステップまたはステップの特徴に対応している。同様に、ステップの文脈において説明された態様は、対応する装置の対応するブロックまたは項目または特徴の説明も表している。
【0034】
いくつかの実施形態は、1つまたは複数のプロセッサおよび1つまたは複数のストレージデバイスを有するシステムに関する。このシステムは、
1つまたは複数のストレージデバイスにキャッシングシステム設定と、少なくとも1つの画像データと、少なくとも1つの要求タスクと、を入力し、
1つまたは複数のプロセッサにより、少なくとも1つの画像データと、少なくとも1つの要求タスクと、を使用し、データフローグラフ生成を実行して、データフローグラフを生成し、
データフローグラフと、キャッシングシステム設定と、少なくとも1つの画像データと、少なくとも1つの要求タスクと、を使用して、タスク実行スケジューリングを実行し、少なくとも1つのタスク実行出力を生成するために少なくとも1つの要求タスクの実行をスケジューリングする
ように構成されている。
【0035】
提案した概念および/または上でもしくは以下で説明する1つまたは複数の実施例(例えば図1図7)に関連して、このシステムのさらなる詳細および態様を述べる。このシステムは、提案した概念、および/または上で説明したもしくは以下で説明する1つまたは複数の実施例の1つまたは複数の態様に対応する1つまたは複数の付加的で選択的な特徴を有していてよい。例えば、このシステムは、図7に関連して説明するコンピュータシステムであってよい。
【0036】
いくつかの実施形態は、1つまたは複数のプロセッサおよび1つまたは複数のストレージデバイスを有するシステムに関する。このシステムは、
1つまたは複数のストレージデバイスに初期キャッシングシステム設定と、少なくとも1つの画像データと、少なくとも1つの要求タスクと、を入力し、
1つまたは複数のプロセッサにより、少なくとも1つの画像データと、少なくとも1つの要求タスクと、を使用して、データフローグラフ生成を実行して、データフローグラフを生成し、
1つまたは複数のプロセッサにより、初期キャッシングシステム設定と、少なくとも1つの画像データと、少なくとも1つの要求タスクと、を使用して、キャッシングシステム更新を実行して、更新キャッシングシステム設定を生成し、
データフローグラフと、更新キャッシングシステム設定と、少なくとも1つの画像データと、少なくとも1つの要求タスクと、を使用して、タスク実行スケジューリングを実行して、少なくとも1つのタスク実行出力を生成するために、少なくとも1つの要求タスクの実行をスケジューリングする
ように構成されている。
【0037】
提案した概念および/または上で説明したもしくは以下で説明する1つまたは複数の実施例(例えば図1図7)に関連して、このシステムのさらなる詳細および態様を述べる。このシステムは、提案した概念の、および/または上で説明したもしくは以下で説明する1つまたは複数の実施例の1つまたは複数の態様に対応する1つまたは複数の付加的で選択的な特徴を有していてよい。例えば、このシステムは、図7に関連して説明するコンピュータシステムであってよい。
【0038】
いくつかの実施形態は、1つまたは複数のプロセッサおよび1つまたは複数のストレージデバイスを有するシステムに関する。このシステムは、
1つまたは複数のストレージデバイスに初期キャッシングシステム設定と、初期データフローグラフと、少なくとも1つの画像データと、少なくとも1つの要求タスクと、を入力し、
1つまたは複数のプロセッサにより、初期データフローグラフと、少なくとも1つの画像データと、少なくとも1つの要求タスクと、を使用して、データフローグラフ更新を実行して、更新データフローグラフを生成し、
1つまたは複数のプロセッサにより、初期キャッシングシステム設定と、少なくとも1つの画像データと、少なくとも1つの要求タスクと、を使用して、キャッシングシステム更新を実行して、更新キャッシングシステム設定を生成し、
更新データフローグラフと、更新キャッシングシステム設定と、少なくとも1つの画像データと、少なくとも1つの要求タスクと、を使用して、タスク実行スケジューリングを実行して、少なくとも1つのタスク実行出力を生成するために、少なくとも1つの要求タスクの実行をスケジューリングする
ように構成されている。
【0039】
提案した概念および/または上で説明したもしくは以下で説明する1つまたは複数の実施例(例えば図1図7)に関連して、このシステムのさらなる詳細および態様を述べる。このシステムは、提案した概念、および/または上で説明したもしくは以下で説明する1つまたは複数の実施例の1つまたは複数の態様に対応する1つまたは複数の付加的で選択的な特徴を有していてよい。例えば、このシステムは、図7に関連して説明するコンピュータシステムであってよい。
【0040】
いくつかの実施形態は、図1から図6のうちの1つまたは複数の図に関連して説明されたような方法を実施するためのシステムまたは上述したシステムを含んでいる顕微鏡に関する。択一的に、顕微鏡は、システムの一部であってもよい、またはそのようなシステムに接続されていてもよい。図7は、本明細書に記載された方法を実施するように構成されたシステム700の概略図を示している。システム700は、顕微鏡710とコンピュータシステム720とを含んでいる。顕微鏡710は、撮像するように構成されており、かつコンピュータシステム720に接続されている。コンピュータシステム720は、本明細書に記載された方法の少なくとも一部を実施するように構成されている。コンピュータシステム720は、機械学習アルゴリズムを実行するように構成されていてもよい。コンピュータシステム720と顕微鏡710は別個の存在物であってもよいが、1つの共通のハウジング内に一体化されていてもよい。顕微鏡710は、提案した概念によって使用される1つもしくは複数の画像、および/または上で説明したもしくは以下で説明する1つもしくは複数の実施例の1つもしくは複数の画像を生成するために使用されてよい。
【0041】
コンピュータシステム720は、1つまたは複数のプロセッサおよび1つまたは複数のストレージデバイスを備えるローカルコンピュータデバイス(例えば、パーソナルコンピュータ、ラップトップ、タブレットコンピュータまたは携帯電話)であってもよく、または分散コンピュータシステム(例えば、ローカルクライアントおよび/または1つまたは複数のリモートサーバファームおよび/またはデータセンター等の様々な場所に分散されている1つまたは複数のプロセッサおよび1つまたは複数のストレージデバイスを備えるクラウドコンピューティングシステム)であってもよい。コンピュータシステム720は、任意の回路または回路の組み合わせを含んでいてもよい。1つの実施形態では、コンピュータシステム720は、任意の種類のものとすることができる、1つまたは複数のプロセッサを含んでいてもよい。本明細書で使用されるように、プロセッサは、例えば、顕微鏡または顕微鏡部品(例えばカメラ)のマイクロプロセッサ、マイクロコントローラ、複合命令セットコンピューティング(CISC)マイクロプロセッサ、縮小命令セットコンピューティング(RISC)マイクロプロセッサ、超長命令語(VLIW)マイクロプロセッサ、グラフィックプロセッサ、デジタル信号プロセッサ(DSP)、マルチコアプロセッサ、フィールドプログラマブルゲートアレイ(FPGA)または任意の他の種類のプロセッサまたは処理回路等のあらゆる種類の計算回路を意図していてもよいが、これらに限定されない。コンピュータシステム720に含まれ得る他の種類の回路は、カスタム回路、特定用途向け集積回路(ASIC)等であってもよく、例えばこれは、携帯電話、タブレットコンピュータ、ラップトップコンピュータ、双方向無線機および類似の電子システム等の無線装置において使用される1つまたは複数の回路(通信回路等)等である。コンピュータシステム720は、ランダムアクセスメモリ(RAM)の形態のメインメモリ等の特定の用途に適した1つまたは複数の記憶素子を含み得る1つまたは複数のストレージデバイス、1つまたは複数のハードドライブおよび/またはコンパクトディスク(CD)、フラッシュメモリカード、デジタルビデオディスク(DVD)等のリムーバブルメディアを扱う1つまたは複数のドライブ等を含んでいてもよい。コンピュータシステム720はディスプレイ装置、1つまたは複数のスピーカーおよびキーボードおよび/またはマウス、トラックボール、タッチスクリーン、音声認識装置を含み得るコントローラ、またはシステムのユーザーがコンピュータシステム720に情報を入力すること、およびコンピュータシステム720から情報を受け取ることを可能にする任意の他の装置も含んでいてもよい。
【0042】
ステップの一部または全部は、例えば、プロセッサ、マイクロプロセッサ、プログラマブルコンピュータまたは電子回路等のハードウェア装置(またはハードウェア装置を使用すること)によって実行されてもよい。いくつかの実施形態では、極めて重要なステップのいずれか1つまたは複数が、そのような装置によって実行されてもよい。
【0043】
一定の実装要件に応じて、本発明の実施形態は、ハードウェアまたはソフトウェアで実装され得る。この実装は、非一過性の記録媒体によって実行可能であり、非一過性の記録媒体は、各方法を実施するために、プログラマブルコンピュータシステムと協働する(または協働することが可能である)、電子的に読取可能な制御信号が格納されている、デジタル記録媒体等であり、これは例えば、フロッピーディスク、DVD、ブルーレイ、CD、ROM、PROMおよびEPROM、EEPROMまたはFLASHメモリである。したがって、デジタル記録媒体は、コンピュータ読取可能であってもよい。
【0044】
本開示のいくつかの実施形態は、本明細書に記載のいずれかの方法が実施されるように、プログラマブルコンピュータシステムと協働することができる、電子的に読取可能な制御信号を有するデータ担体を含んでいる。
【0045】
一般的に、本発明の実施形態は、プログラムコードを備えるコンピュータプログラム製品として実装可能であり、このプログラムコードは、コンピュータプログラム製品がコンピュータ上で実行されるときにいずれかの方法を実施するように作動する。このプログラムコードは、例えば、機械可読担体に格納されていてもよい。
【0046】
別の実施形態は、機械可読担体に格納されている、本明細書に記載のいずれかの方法を実施するためのコンピュータプログラムを含んでいる。
【0047】
したがって、換言すれば、本発明の実施形態は、コンピュータプログラムがコンピュータ上で実行されるときに本明細書に記載のいずれかの方法を実施するためのプログラムコードを有するコンピュータプログラムである。
【0048】
したがって、本発明の別の実施形態は、プロセッサによって実行されるときに本明細書に記載のいずれかの方法を実施するために、格納されているコンピュータプログラムを含んでいる記録媒体(またはデータ担体またはコンピュータ読取可能な媒体)である。データ担体、デジタル記録媒体または被記録媒体は、典型的に、有形である、かつ/または非一過性である。本発明の別の実施形態は、プロセッサと記録媒体を含んでいる、本明細書に記載されたような装置である。
【0049】
一般的に、本開示の実施例は、プログラムコードを備えるコンピュータプログラム製品として実装可能であり、このプログラムコードは、コンピュータプログラム製品がコンピュータ上で実行されるときにいずれかの方法を実施するように作動する。このプログラムコードは、例えば、機械可読担体に格納されていてもよい。例えば、コンピュータプログラムは、非一時的記憶媒体に格納されていてもよい。いくつかの実施形態は、実行されるときに、提案される概念または上述の1つもしくは複数の実施例に従って方法を実装する機械可読命令を含む非一時的記憶媒体に関する。
【0050】
したがって、本発明の別の実施形態は、本明細書に記載のいずれかの方法を実施するためのコンピュータプログラムを表すデータストリームまたは信号シーケンスである。データストリームまたは信号シーケンスは例えば、データ通信接続、例えばインターネットを介して転送されるように構成されていてもよい。
【0051】
別の実施形態は、処理手段、例えば、本明細書に記載のいずれかの方法を実施するように構成または適合されているコンピュータまたはプログラマブルロジックデバイスを含んでいる。
【0052】
別の実施形態は、本明細書に記載のいずれかの方法を実施するために、インストールされたコンピュータプログラムを有しているコンピュータを含んでいる。
【0053】
本発明の別の実施形態は、本明細書に記載のいずれかの方法を実施するためのコンピュータプログラムを(例えば、電子的にまたは光学的に)受信機に転送するように構成されている装置またはシステムを含んでいる。受信機は、例えば、コンピュータ、モバイル機器、記憶装置等であってもよい。装置またはシステムは、例えば、コンピュータプログラムを受信機に転送するために、ファイルサーバを含んでいてもよい。
【0054】
いくつかの実施形態では、プログラマブルロジックデバイス(例えばフィールド・プログラマブル・ゲート・アレイ)が、本明細書に記載された方法の機能の一部または全部を実行するために使用されてもよい。いくつかの実施形態では、フィールド・プログラマブル・ゲート・アレイは、本明細書に記載のいずれかの方法を実施するためにマイクロプロセッサと協働してもよい。一般的に、有利には、任意のハードウェア装置によって方法が実施される。
【0055】
実施形態は、機械学習モデルまたは機械学習アルゴリズムの使用に基づいていてもよい。機械学習は、モデルおよび推論に依存する代わりに、コンピュータシステムが、明示的な命令を使用することなく、特定のタスクを実行するために使用し得るアルゴリズムおよび統計モデルを参照してもよい。例えば、機械学習では、ルールに基づくデータ変換の代わりに、過去のデータおよび/またはトレーニングデータの分析から推論されるデータ変換が使用されてもよい。例えば、画像コンテンツは、機械学習モデルを用いて、または機械学習アルゴリズムを用いて分析されてもよい。機械学習モデルが画像コンテンツを分析するために、機械学習モデルは、入力としてのトレーニング画像と出力としてのトレーニングコンテンツ情報を用いてトレーニングされてもよい。多数のトレーニング画像および/またはトレーニングシーケンス(例えば単語または文)および関連するトレーニングコンテンツ情報(例えばラベルまたは注釈)によって機械学習モデルをトレーニングすることによって、機械学習モデルは、画像コンテンツを認識することを「学習」するので、トレーニングデータに含まれていない画像コンテンツが機械学習モデルを用いて認識可能になる。同じ原理が、同じように他の種類のセンサデータに対して使用されてもよい:トレーニングセンサデータと所望の出力を用いて機械学習モデルをトレーニングすることによって、機械学習モデルは、センサデータと出力との間の変換を「学習し」、これは、機械学習モデルに提供された非トレーニングセンサデータに基づいて出力を提供するために使用可能である。提供されたデータ(例えばセンサデータ、メタデータおよび/または画像データ)は、機械学習モデルへの入力として使用される特徴ベクトルを得るために前処理されてもよい。
【0056】
機械学習モデルは、トレーニング入力データを用いてトレーニングされてもよい。上記の例は、「教師あり学習」と称されるトレーニング方法を使用する。教師あり学習では、機械学習モデルは、複数のトレーニングサンプルを用いてトレーニングされ、ここで各サンプルは複数の入力データ値と複数の所望の出力値を含んでいてもよく、すなわち各トレーニングサンプルは、所望の出力値と関連付けされている。トレーニングサンプルと所望の出力値の両方を指定することによって、機械学習モデルは、トレーニング中に、提供されたサンプルに類似する入力サンプルに基づいてどの出力値を提供するのかを「学習」する。教師あり学習の他に、半教師あり学習が使用されてもよい。半教師あり学習では、トレーニングサンプルの一部は、対応する所望の出力値を欠いている。教師あり学習は、教師あり学習アルゴリズム(例えば分類アルゴリズム、回帰アルゴリズムまたは類似度学習アルゴリズム)に基づいていてもよい。出力が、値(カテゴリー変数)の限られたセットに制限される場合、すなわち入力が値の限られたセットのうちの1つに分類される場合、分類アルゴリズムが使用されてもよい。出力が(範囲内の)任意の数値を有していてもよい場合、回帰アルゴリズムが使用されてもよい。類似度学習アルゴリズムは、分類アルゴリズムと回帰アルゴリズムの両方に類似していてもよいが、2つのオブジェクトがどの程度類似しているかまたは関係しているかを測定する類似度関数を用いた例からの学習に基づいている。教師あり学習または半教師あり学習の他に、機械学習モデルをトレーニングするために教師なし学習が使用されてもよい。教師なし学習では、入力データ(だけ)が供給される可能性があり、教師なし学習アルゴリズムは、(例えば、入力データをグループ化またはクラスタリングすること、データに共通性を見出すことによって)入力データにおいて構造を見出すために使用されてもよい。クラスタリングは、複数の入力値を含んでいる入力データを複数のサブセット(クラスター)に割当てることであるので、同じクラスター内の入力値は1つまたは複数の(事前に定められた)類似度判断基準に従って類似しているが、別のクラスターに含まれている入力値と類似していない。
【0057】
強化学習は機械学習アルゴリズムの第3のグループである。換言すれば、強化学習は機械学習モデルをトレーニングするために使用されてもよい。強化学習では、1つまたは複数のソフトウェアアクター(「ソフトウェアエージェント」と称される)が、周囲において行動を取るようにトレーニングされる。取られた行動に基づいて、報酬が計算される。強化学習は、(報酬の増加によって明らかにされるように)累積報酬が増加し、与えられたタスクでより良くなるソフトウェアエージェントが得られるように行動を選択するように、1つまたは複数のソフトウェアエージェントをトレーニングすることに基づいている。
【0058】
さらに、いくつかの技術が、機械学習アルゴリズムの一部に適用されてもよい。例えば、特徴表現学習が使用されてもよい。換言すれば、機械学習モデルは、少なくとも部分的に特徴表現学習を用いてトレーニングされてもよい、かつ/または機械学習アルゴリズムは、特徴表現学習構成要素を含んでいてもよい。表現学習アルゴリズムと称され得る特徴表現学習アルゴリズムは、自身の入力に情報を保存するだけでなく、多くの場合、分類または予測を実行する前の前処理ステップとして、有用にするように情報の変換も行ってもよい。特徴表現学習は、例えば、主成分分析またはクラスター分析に基づいていてもよい。
【0059】
いくつかの例では、異常検知(すなわち、外れ値検知)が使用されてもよく、これは、入力またはトレーニングデータの大部分と著しく異なることによって疑念を引き起こしている入力値の識別を提供することを目的としている。換言すれば、機械学習モデルは、少なくとも部分的に異常検知を用いてトレーニングされてもよく、かつ/または機械学習アルゴリズムは、異常検知構成要素を含んでいてもよい。
【0060】
いくつかの例では、機械学習アルゴリズムは、予測モデルとして決定木を使用してもよい。換言すれば、機械学習モデルは、決定木に基づいていてもよい。決定木において、項目(例えば、入力値のセット)に関する観察は、決定木のブランチによって表されてもよく、この項目に対応する出力値は、決定木のリーフによって表されてもよい。決定木は、出力値として離散値と連続値の両方をサポートしてもよい。離散値が使用される場合、決定木は、分類木として表されてもよく、連続値が使用される場合、決定木は、回帰木として表されてもよい。
【0061】
相関ルールは、機械学習アルゴリズムにおいて使用され得る別の技術である。換言すれば、機械学習モデルは、1つまたは複数の相関ルールに基づいていてもよい。相関ルールは、大量のデータにおける変数間の関係を識別することによって作成される。機械学習アルゴリズムは、データから導出された知識を表す1つまたは複数の相関的なルールを識別してもよい、かつ/または利用してもよい。これらのルールは、例えば、知識を格納する、操作するまたは適用するために使用されてもよい。
【0062】
機械学習アルゴリズムは通常、機械学習モデルに基づいている。換言すれば、用語「機械学習アルゴリズム」は、機械学習モデルを作成する、トレーニングするまたは使用するために使用され得る命令のセットを表していてもよい。用語「機械学習モデル」は、(例えば、機械学習アルゴリズムによって実行されるトレーニングに基づいて)学習した知識を表すデータ構造および/またはルールのセットを表していてもよい。実施形態では、機械学習アルゴリズムの用法は、基礎となる1つの機械学習モデル(または基礎となる複数の機械学習モデル)の用法を意味していてもよい。機械学習モデルの用法は、機械学習モデルおよび/または機械学習モデルであるデータ構造/ルールのセットが機械学習アルゴリズムによってトレーニングされることを意味していてもよい。
【0063】
例えば、機械学習モデルは、人工ニューラルネットワーク(ANN)であってもよい。ANNは、網膜または脳において見出されるような、生物学的ニューラルネットワークによって影響を与えられるシステムである。ANNは、相互接続された複数のノードと、ノード間の、複数の接合部分、いわゆるエッジを含んでいる。通常、3種類のノードが存在しており、すなわち入力値を受け取る入力ノード、他のノードに接続されている(だけの)隠れノードおよび出力値を提供する出力ノードが存在している。各ノードは、人工ニューロンを表していてもよい。各エッジは、1つのノードから別のノードに、情報を伝達してもよい。ノードの出力は、その入力(例えば、その入力の和)の(非線形)関数として定義されてもよい。ノードの入力は、入力を提供するエッジまたはノードの「重み」に基づく関数において使用されてもよい。ノードおよび/またはエッジの重みは、学習過程において調整されてもよい。換言すれば、人工ニューラルネットワークのトレーニングは、与えられた入力に対して所望の出力を得るために、人工ニューラルネットワークのノードおよび/またはエッジの重みを調整することを含んでいてもよい。
【0064】
択一的に、機械学習モデルは、サポートベクターマシン、ランダムフォレストモデルまたは勾配ブースティングモデルであってもよい。サポートベクターマシン(すなわち、サポートベクターネットワーク)は、(例えば、分類または回帰分析において)データを分析するために使用され得る、関連する学習アルゴリズムを伴う、教師あり学習モデルである。サポートベクターマシンは、2つのカテゴリのいずれかに属する複数のトレーニング入力値を伴う入力を提供することによってトレーニングされてもよい。サポートベクターマシンは、2つのカテゴリのいずれかに新しい入力値を割当てるようにトレーニングされてもよい。択一的に、機械学習モデルは、確率有向非巡回グラフィカルモデルであるベイジアンネットワークであってもよい。ベイジアンネットワークは、有向非巡回グラフを用いて、確率変数とその条件付き依存性のセットを表していてもよい。択一的に、機械学習モデルは、検索アルゴリズムと自然淘汰の過程を模倣した発見的方法である遺伝的アルゴリズムに基づいていてもよい。
【0065】
特許法および特許規則に準拠するために、また新規の方式を適用して必要な特別の構成部材を構成かつ使用するのに必要な情報を当業者に提供するために、本明細書において、本発明をかなり詳細に説明してきた。しかしながら、明確に異なる機器および装置によって本発明を実施することができ、また機器の詳細のみならず、ディープモデルおよびイメージングならびにデータ分析および演算手順についても、本発明の範囲から逸脱することなく、種々の変更を実施できることが理解されるべきである。
図1
図2
図3
図4
図5
図6
図7
【国際調査報告】