(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-05-14
(45)【発行日】2024-05-22
(54)【発明の名称】連合学習機構を利用した画像IoTプラットフォーム
(51)【国際特許分類】
G06T 7/00 20170101AFI20240515BHJP
G06N 3/04 20230101ALI20240515BHJP
G06N 3/08 20230101ALI20240515BHJP
G06N 3/098 20230101ALI20240515BHJP
G06N 20/00 20190101ALI20240515BHJP
【FI】
G06T7/00 350B
G06N3/04
G06N3/08
G06N3/098
G06N20/00
【外国語出願】
(21)【出願番号】P 2022092036
(22)【出願日】2022-06-07
【審査請求日】2023-01-25
(32)【優先日】2021-09-30
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】519448326
【氏名又は名称】コニカ ミノルタ ビジネス ソリューションズ ユー.エス.エー., インコーポレイテッド
(74)【代理人】
【識別番号】110001254
【氏名又は名称】弁理士法人光陽国際特許事務所
(72)【発明者】
【氏名】天野 純
【審査官】新井 則和
(56)【参考文献】
【文献】国際公開第2021/079792(WO,A1)
【文献】国際公開第2021/075023(WO,A1)
【文献】特表2009-514109(JP,A)
【文献】特開2020-201731(JP,A)
【文献】米国特許出願公開第2021/0150269(US,A1)
【文献】西川 由理 外,人物検出における学習データ拡張のためのCycleGANの分散深層学習,情報処理学会研究報告 Vol.2019-HPC-172 N0.5,2019年12月18日
【文献】Chetan Nadiger et al.,Federated Reinforcement Learning for Fast Personalization,2019 IEEE Second International Conference on Artificial Intelligence and Knowledge Engineering (AIKE),2019年06月03日,https://ieeexplore.ieee.org/document/8791693
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00
G06N 20/00
G06N 3/08
G06N 3/04
(57)【特許請求の範囲】
【請求項1】
ネットワークを介して複数のエッジデバイスに接続されたクラウドサーバであって、
事前学習され画像解析を最適化するために用いられる共通の機械学習(ML)モデルを格納するストレージと、
プロセッサと、を備え、前記プロセッサが、
ローカルに最適化されたMLモデルを作成するために、ローカルデータを用いて前記画像解析を最適化し、前記共通のMLモデルを修正する、前記複数のエッジデバイスの各々に、前記共通のMLモデルを配布することと、
前記ローカルに最適化されたMLモデルの収集や前記ローカルデータへのアクセスを行わずに、前記複数のエッジデバイスの各々から最適化結果の主要パラメータを収集することと、
より正確な画像解析のため前記共通のMLモデルを継続的に改善するために、前記主要パラメータを前記共通のMLモデルに所定のタイミングで反映させることにより、前記ストレージに格納された前記共通のMLモデルを更新することと、
を繰り返し実行
し、
前記クラウドサーバが、前記複数のエッジデバイスの各々のデータ容量よりも大きなデータ容量を有するエッジサーバであって、前記ネットワークを介して画像解析を実行するエッジサーバに更に接続されており、
前記プロセッサが、前記複数のエッジデバイスの各々にダウンサイズした共通のMLモデルを、前記共通のMLモデルとして、配布する一方で、前記エッジサーバにはダウンサイズせずに前記共通のMLモデルを配布する、クラウドサーバ。
【請求項2】
前記ストレージが、前記共通のMLモデルを含む異なる種類の複数の共通のMLモデルを格納し、
前記複数のエッジデバイスのうちの1つからの要求に応答して、前記プロセッサが、当該複数のエッジデバイスのうちの1つにおいて実行される画像解析に応じて、前記複数の共通のMLモデルのうちから配布する1つを選択する、請求項1に記載のクラウドサーバ。
【請求項3】
前記画像解析が、リアルタイムのオブジェクト検出とモーショントラッキングのためのビデオ画像解析であり、
前記共通のMLモデルが、ディープニューラルネットワーク(DNN)コンピュータビジョンアルゴリズムである、請求項1又は2に記載のクラウドサーバ。
【請求項4】
前記主要パラメータが、前記ローカルに最適化されたMLモデルが作成されたときに連続するビデオフレームから得られたオプティカルフローを含む、請求項1又は2に記載のクラウドサーバ。
【請求項5】
ネットワークを介して複数のエッジデバイスに接続されたクラウドサーバであるコンピュータによって実行される、プログラムであって、前記コンピュータに、
事前学習され画像解析を最適化するために用いられる共通の機械学習(ML)モデルをストレージに格納することを実行させ、
ローカルに最適化されたMLモデルを作成するために、ローカルデータを用いて前記画像解析を最適化し、前記共通のMLモデルを修正する前記複数のエッジデバイスの各々に、前記共通のMLモデルを配布することと、
前記ローカルに最適化されたMLモデルの収集や前記ローカルデータへのアクセスを行わずに、前記複数のエッジデバイスの各々から最適化結果の主要パラメータを収集することと、
より正確な画像解析のため前記共通のMLモデルを継続的に改善するために、前記主要パラメータを前記共通のMLモデルに所定のタイミングで反映させることにより、前記ストレージに格納された前記共通のMLモデルを更新することと、
を繰り返し実行することを実行させ
、
前記クラウドサーバが、前記複数のエッジデバイスの各々のデータ容量よりも大きなデータ容量を有するエッジサーバであって、前記ネットワークを介して画像解析を実行するエッジサーバに更に接続されており、
前記コンピュータが、前記複数のエッジデバイスの各々にダウンサイズした共通のMLモデルを、前記共通のMLモデルとして、配布する一方で、前記エッジサーバにはダウンサイズせずに前記共通のMLモデルを配布することを、更に実行する、プログラム。
【請求項6】
前記コンピュータが、
前記共通のMLモデルを含む異なる種類の複数の共通のMLモデルを格納することと、
前記複数のエッジデバイスのうちの1つからの要求に応答して、当該複数のエッジデバイスのうちの1つにおいて実行される画像解析に応じて、前記複数の共通のMLモデルのうちから配布する1つを選択することと、を更に実行する、請求項
5に記載のプログラム。
【請求項7】
前記画像解析が、リアルタイムのオブジェクト検出とモーショントラッキングのためのビデオ画像解析であり、
前記共通のMLモデルが、ディープニューラルネットワーク(DNN)コンピュータビジョンアルゴリズムである、請求項
5又は
6に記載のプログラム。
【請求項8】
前記主要パラメータが、前記ローカルに最適化されたMLモデルが作成されたときの連続するビデオフレームから得られたオプティカルフローを含む、請求項
5又は
6に記載のプログラム。
【請求項9】
ネットワークを介して複数のエッジデバイスに接続されたクラウドサーバを用いる連合学習(FL)方法であって、
事前学習され画像解析を最適化するために用いられる共通の機械学習(ML)モデルのストレージへ格納することを備え、
ローカルに最適化されたMLモデルを作成するために、ローカルデータを用いて前記画像解析を最適化し、前記共通のMLモデルを修正する前記複数のエッジデバイスの各々に、前記共通のMLモデルを配布することと、
前記ローカルに最適化されたMLモデルの収集や前記ローカルデータへのアクセスを行わずに、前記複数のエッジデバイスの各々から最適化結果の主要パラメータを収集することと、
より正確な画像解析のため前記共通のMLモデルを継続的に改善するために、前記主要パラメータを前記共通のMLモデルに所定のタイミングで反映させることにより、前記ストレージに格納された前記共通のMLモデルを更新することと、
を繰り返し実行することを備え
、
前記クラウドサーバが、前記複数のエッジデバイスの各々のデータ容量よりも大きなデータ容量を有するエッジサーバであって、前記ネットワークを介して画像解析を実行するエッジサーバに更に接続されており、
前記配布することが、前記複数のエッジデバイスの各々にダウンサイズした共通のMLモデルを、前記共通のMLモデルとして、配布する一方で、前記エッジサーバにはダウンサイズせずに前記共通のMLモデルを配布することを含む、方法。
【請求項10】
前記格納することが、前記共通のMLモデルを含む異なる種類の複数の共通のMLモデルを格納することを含み、
前記配布することが、前記複数のエッジデバイスのうちの1つからの要求に応答して、当該複数のエッジデバイスのうちの前記1つにおいて実行される画像解析に応じて、前記複数の共通のMLモデルのうちから配布する1つを選択することを含む、請求項
9に記載のFL方法。
【請求項11】
前記画像解析が、リアルタイムのオブジェクト検出とモーショントラッキングのためのビデオ画像解析であり、
前記共通のMLモデルが、ディープニューラルネットワーク(DNN)コンピュータビジョンアルゴリズムである、請求項
9又は
10に記載のFL方法。
【請求項12】
前記主要パラメータが、前記ローカルに最適化されたMLモデルが作成されたときに連続するビデオフレームから得られたオプティカルフローを含む、請求項
9又は
10に記載のFL方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般に、連合学習(FL)機構を利用し、ユーザーのデータプライバシーを保護しながら、ユーザーに高度なビジョンベースの人工知能(AI)/機械学習(ML)ツールを提供する画像IoT(Internet of Things)プラットフォームに関する。
【発明の概要】
【発明が解決しようとする課題】
【0002】
画像IoTプラットフォームは、医療診断のための画像解析、人間の行動分析、セキュリティ制御などの分野で、ビジョンベースのAI/MLツールをユーザーに提供する。近年、画像IoTプラットフォームにおいて、ユーザーの利便性を損なわず、ユーザーのデータプライバシーを保護することが求められている。
【0003】
一方、従来のFL機構は、ローカルデータを集中的に収集することなく、分散状態で一部のユーザーが協力して共通のMLモデルを構築する分散学習パラダイムとして利用されてきた。
【課題を解決するための手段】
【0004】
本願の1つまたは複数の実施形態は、クラウドサーバとエッジデバイス/サーバとで構成され、エッジデバイス/サーバのデータプライバシーを保護しつつ、共通のMLモデルを継続的に改善することにより、堅牢な共通のMLモデルによるFL機構を実現するIoTシステムで実施される画像IoTプラットフォームを提供する。
【0005】
1つまたは複数の実施形態により、ネットワークを介して複数のエッジデバイスに接続されたクラウドサーバであって、事前学習され画像解析を最適化するために用いられる共通の機械学習(ML)モデルを格納するストレージと、プロセッサと、を備え、プロセッサが、ローカルに最適化されたMLモデルを作成するために、ローカルデータを用いて画像解析を最適化し、共通のMLモデルを修正する複数のエッジデバイスの各々に、共通のMLモデルを配布することと、ローカルに最適化されたMLモデルの収集やローカルデータへのアクセスを行わずに、複数のエッジデバイスの各々から最適化結果の主要パラメータを収集することと、より正確な画像解析のため共通のMLモデルを継続的に改善するために、主要パラメータを共通のMLモデルに所定のタイミングで反映させることにより、ストレージに格納された共通のMLモデルを更新することと、を繰り返し実行し、クラウドサーバが、複数のエッジデバイスの各々のデータ容量よりも大きなデータ容量を有するエッジサーバであって、ネットワークを介して画像解析を実行するエッジサーバに更に接続されており、プロセッサが、複数のエッジデバイスの各々にダウンサイズした共通のMLモデルを、共通のMLモデルとして、配布する一方で、エッジサーバにはダウンサイズせずに共通のMLモデルを配布する、クラウドサーバを提供する。
【0006】
1つまたは複数の実施形態により、ネットワークを介して複数のエッジデバイスに接続されたクラウドサーバであるコンピュータによって実行される、プログラムであって、コンピュータに、事前学習され画像解析を最適化するために用いられる共通の機械学習(ML)モデルをストレージに格納することを実行させ、ローカルに最適化されたMLモデルを作成するために、ローカルデータを用いて画像解析を最適化し、共通のMLモデルを修正する複数のエッジデバイスの各々に、共通のMLモデルを配布することと、ローカルに最適化されたMLモデルの収集やローカルデータへのアクセスを行わずに、複数のエッジデバイスの各々から最適化結果の主要パラメータを収集することと、より正確な画像解析のため共通のMLモデルを継続的に改善するために、主要パラメータを共通のMLモデルに所定のタイミングで反映させることにより、ストレージに格納された共通のMLモデルを更新することと、を繰り返し実行することを実行させ、クラウドサーバが、複数のエッジデバイスの各々のデータ容量よりも大きなデータ容量を有するエッジサーバであって、ネットワークを介して画像解析を実行するエッジサーバに更に接続されており、コンピュータが、複数のエッジデバイスの各々にダウンサイズした共通のMLモデルを、共通のMLモデルとして、配布する一方で、エッジサーバにはダウンサイズせずに共通のMLモデルを配布することを、更に実行する、プログラムを提供する。
【0007】
1つまたは複数の実施形態により、ネットワークを介して複数のエッジデバイスに接続されたクラウドサーバを用いる連合学習(FL)方法であって、事前学習され画像解析を最適化するために用いられる共通の機械学習(ML)モデルのストレージへ格納することを備え、ローカルに最適化されたMLモデルを作成するために、ローカルデータを用いて画像解析を最適化し、共通のMLモデルを修正する複数のエッジデバイスの各々に、共通のMLモデルを配布することと、ローカルに最適化されたMLモデルの収集やローカルデータへのアクセスを行わずに、複数のエッジデバイスの各々から最適化結果の主要パラメータを収集することと、より正確な画像解析のため共通のMLモデルを継続的に改善するために、主要パラメータを共通のMLモデルに所定のタイミングで反映させることにより、ストレージに格納された共通のMLモデルを更新することと、を繰り返し実行することを備え、クラウドサーバが、複数のエッジデバイスの各々のデータ容量よりも大きなデータ容量を有するエッジサーバであって、ネットワークを介して画像解析を実行するエッジサーバに更に接続されており、配布することが、複数のエッジデバイスの各々にダウンサイズした共通のMLモデルを、共通のMLモデルとして、配布する一方で、エッジサーバにはダウンサイズせずに共通のMLモデルを配布することを含む、方法を提供する。
【図面の簡単な説明】
【0008】
【
図1】
図1は、本発明の1つまたは複数の実施形態に係るIoTシステムの概略図である。
【
図2】
図2は、1つまたは複数の実施形態に係るIoTシステムのハードウェア図である。
【
図3】
図3は、1つまたは複数の実施形態に係るFL機構の概念図である。
【
図4】
図4は、1つまたは複数の実施形態に係るFL機構の概念図である。
【
図5】
図5は、1つまたは複数の実施形態に係るFL機構の概念図である。
【
図6】
図6は、1つまたは複数の実施形態に係るFL機構の概念図である。
【
図7】
図7は、1つまたは複数の実施形態による堅牢な共通のMLモデル構築のためのFL方法を示すフローチャートである。
【
図8】
図8は、1つまたは複数の実施形態に係るコンピューティングシステムである。
【発明を実施するための形態】
【0009】
具体的な実施形態を、添付の図面を参照して詳細に説明する。複数の図における同様の構成要素は、一貫性を保つため、同様の参照符号で示される。簡略化のため、すべての図に同様の要素を表記していない場合がある。
【0010】
本開示の実施形態の以下の詳細な説明では、本開示のより徹底した理解を提供するために、多数の具体的な詳細が記載されている。しかし、当業者であれば、本開示はこれらの特定の詳細なしに実施され得ることが明らかであろう。他の例では、不必要に複雑な記述を避けるために、周知の特徴を詳細に記述していない。
【0011】
本願全体を通して、序数(例えば、第1、第2、第3など)は、要素(すなわち、本願の任意の名詞)に対する形容詞として使用することができる。序数の使用は、「前」「後」「単」などの用語の使用によって明示的に開示されない限り、要素の特定の順序を示唆または作成したり、要素を単一の要素のみに限定するものではない。むしろ、序数を使うのは、要素を区別するためである。一例として、第1の要素は第2の要素と区別され、第1の要素は複数の要素を包含し、要素の順序において第2の要素を継承する(または先行する)ことができる。
【0012】
単数形の「a」、「an」および「the」は、文脈上明らかにそうでない場合を除き、複数の参照語を含むものと理解される。したがって、例えば、「水平ビーム」という言及は、そのようなビームの1つまたは複数の言及を含む。
【0013】
複数の従属請求項は導入されていないが、1つまたは複数の実施形態の従属請求項の主題を他の従属請求項と組み合わせることができることは、当業者には明らかであろう。
【0014】
[画像IoTプラットフォーム]
【0015】
本発明の1つまたは複数の実施形態は、画像IoTプラットフォーム、共通のMLモデル(すなわち、イメージングAIアルゴリズム)、及びセンシングデバイス(例えば、スマートカメラ)で構成されるエコシステムを提供する。画像IoTプラットフォームは、エッジデバイス/サーバのユーザー(ビジネスパートナーや顧客など)にAPIドキュメント、サンプルコード、テストプログラムなどを含むソフトウェア開発キット(SDK)を提供し、医療診断用画像解析、人間行動分析、セキュリティ制御などの分野における各種ビジネスで非接触・遠隔・リアルタイム対応を可能にする。
【0016】
[IoTシステム]
【0017】
1つまたは複数の実施形態において、画像IoTプラットフォームは、クラウドサーバとエッジデバイス/サーバとで構成され、エッジデバイス/サーバのデータプライバシーを保護しつつ、共通のMLモデルを継続的に改善することにより、堅牢な共通のMLモデルによるFL機構を実現するIoTシステムで実施される。
【0018】
図1は、本発明の1つまたは複数の実施形態に係るIoTシステム1000の概略図である。IoTシステム1000は、クラウドサーバ100と、複数のエッジデバイス200と、クライアントサーバ300と、管理サーバ400とを備え、これらは、ネットワークインターフェース接続(図示せず)を介してネットワーク500(例えば、インターネットなどのWAN(Wide Area Network))に接続されている。
【0019】
1つまたは複数の実施形態のクラウドサーバ100は、クラウド環境で提供される仮想サーバであり、ビジネスパートナーや顧客にSDKを提供する企業が所有する物理サーバ(例えば、パーソナルコンピュータ(PC))で実装してもよい。
【0020】
1つまたは複数の実施形態のエッジデバイス200は、顧客によって使用され、センシングデバイス(例えば、セキュリティカメラ、モニタリングカメラ、スマートウォッチなど)及びセンシングデバイスに接続された携帯デバイス(例えば、スマートフォン、タブレット、ノートパソコンなど)を含む。
【0021】
1つまたは複数の実施形態のエッジサーバ300は、企業のビジネスパートナーが所有するサーバ(例えば、PC)であり、エッジデバイス200のものよりも高性能かつ大容量のデータ容量を有していてもよい。
【0022】
1つまたは複数の実施形態の管理サーバ400は、IoTシステム1000に設けられた物理サーバで実装される仮想サーバであり、クラウド環境においてクラウドサーバ100と協働する。
【0023】
エッジデバイス200、エッジサーバ300、管理サーバ400の数は図示例に限定されず、クラウドサーバ100は、ネットワーク500内の別のデバイス/サーバ、または別のネットワークにさらに接続されていてもよい。
【0024】
図2は、1つまたは複数の実施形態に係るIoTシステムのハードウェア図である。IoTシステム1000は、クラウドサーバ100と、エッジデバイス200A-200C(すなわち、セキュリティカメラ200A、モニタリングカメラ200B、及びスマートフォン200C)と、クライアントサーバ300と、管理サーバ400とを備え、これらはネットワーク500を介して互いに接続されている。
【0025】
[クラウドサーバ]
【0026】
クラウドサーバ100は、エッジデバイス200A-200C及び/又はエッジサーバ300の各々に、共通のMLモデルを配布する。エッジデバイス200A-200C及び/又はエッジサーバ300が後述するローカルに最適化されたMLモデルを作成した後、クラウドサーバ100が最適化結果の主要パラメータ(複数可)を収集し、主要パラメータを反映してストレージ120に格納された共通のMLモデルを更新し、より正確な画像解析のために共通のMLモデルを継続的に改善させる。
【0027】
クラウドサーバ100は、中央処理装置(CPU)及びフィールドプログラマブルゲートアレイ(FPGA)、グラフィックス処理ユニット(GPU)、テンソル処理ユニット(TPU)と特定用途向け集積回路(ASIC)などのAI/MLアクセラレータ、ランダムアクセスメモリ(RAM)、及び読出し専用メモリ(ROM)を備えるプロセッサ110と、ハードディスクなどのストレージ120と、及び、タッチスクリーン、キーボード、マウス、マイク、タッチパッド、電子ペン、または任意の他のタイプの入力装置などの入力装置を含み得、かつ画面(例:液晶ディスプレイ(LCD)、プラズマディスプレイ、タッチスクリーン、陰極線管(CRT)モニタ、プロジェクタ、または任意の他のディスプレイデバイス)、スピーカー、プリンタ、外部ストレージ、または任意の他の出力装置などの出力装置をも含み得る入力/出力(I/O)インターフェース130と、を備える。
【0028】
図1に示すように、ストレージ120には、共通のMLモデルとして、正確な画像解析のためのイメージングAIアルゴリズムが格納されている。共通のMLモデルは、事前学習され(又は、以前に学習済み)、エッジデバイス200A-200C及び/又はエッジサーバ300において実行される画像解析を最適化するために用いられる。また、ストレージ120には、データ分析用AIアプリケーション、リモートデバイス管理アプリケーション、企業のポータルサイト、その他各種アプリケーション、SDKを格納してもよい。
【0029】
1つまたは複数の実施形態において、ストレージ120は、エッジデバイス200A-200C及び/又はエッジサーバ300において実行される画像解析を最適化するために事前学習され使用される複数の(異なるサイズ及び/又は異なる種類の)共通のMLモデルを格納する。
【0030】
図2に戻り、プロセッサ110は、エッジデバイス200A-200C及び/又はエッジサーバ300の各々に、共通のMLモデルを配布する。1つまたは複数の実施形態において、エッジデバイス200A-200C及びエッジサーバ300のうちの1つからの要求に応答して、プロセッサ110は、エッジデバイス200A-200C及びエッジサーバ300のうちの1つにおいて実行される画像解析に応じて配布する共通のMLモデルのうちの1つを選択してもよい。これにより、ビジネスパートナーや顧客の精度目標に対して、より適切な画像解析を行うことができる。
【0031】
エッジデバイス200A-200Cおよびエッジサーバ300の各々は、共通のMLモデルに基づいて、そこに格納されたローカルデータを用いて画像解析を最適化し、共通のMLモデルを修正して、後述のようにローカルに最適化されたMLモデルを作成してもよい。その後、プロセッサ110は、ローカルに最適化されたMLモデルの収集やローカルデータへのアクセスを行わずに、エッジデバイス200A-200C及び/又はエッジサーバ300から、最適化結果の主要パラメータを収集する。
【0032】
そして、プロセッサ110は、共通のMLモデルの主要パラメータを所定のタイミングで反映させることにより、ストレージ120に格納された共通のMLモデルを更新し、より正確な画像解析のための共通のMLモデルの改善を継続的に行う。所定のタイミングとは、例えば、所定時間毎や、I/Oインターフェース130を介して入力された指示や、ネットワーク500内や他のネットワーク内の他の装置/サーバから送信された指示を受信したタイミングなどである。
【0033】
エッジデバイス200A-200Cのそれぞれについて、プロセッサ110は、共通のMLモデルの配信、主要パラメータの収集、主要パラメータの共通のMLモデルへの反映というサイクルを繰り返し実行し、継続的な改善を図る。このクロスサイロまたはクロスデバイスFLにより、プロセッサ110は、エッジデバイス200A-200Cの各々のデータプライバシーを保護しつつ、堅牢な共通のMLモデルを構築することができる。
【0034】
同様に、クライアントサーバ300の各々に関しても、プロセッサ110は、エッジデバイス200A-200Cのサイクルとは独立して上記サイクルを繰り返し実行し、継続的な改善を図る。このクロスサイロまたはクロスサーバFLにより、プロセッサ110は、クライアントサーバ300のデータプライバシーを保護しつつ、堅牢な共通のMLモデルを構築することができる。
【0035】
1つまたは複数の実施形態において、プロセッサ110は、共通のMLモデルとして、エッジデバイス200A-200Cの各々にダウンサイズした共通のMLモデルを配布する一方で、エッジサーバ300にはダウンサイズせずに共通のMLモデルを配布するが、これはエッジサーバ300がエッジデバイス200A-200Cよりも高い性能と大きなデータ容量を持っている可能性があるからである。共通のMLモデルは、データ圧縮などの公知のソフトウェアダウンサイジング手段でサイズダウンすることが可能である。
【0036】
[エッジデバイス]
【0037】
エッジデバイス200A-200Cは、クラウドサーバ100から受け取った共通のMLモデルに基づいて、そこに格納されたローカルデータを用いて画像解析を最適化し、共通のMLモデルを修正して、ローカルに最適化されたMLモデルを作成する。
【0038】
図2を参照して、エッジデバイス200A-200Cの1つとして、セキュリティカメラ200Aの構成および機能について説明し、残りのエッジデバイス200B-200C(すなわち、モニタリングカメラ200B、スマートフォン200C等)については、それぞれがセキュリティカメラ200Aと同様の構成および機能を有していてもよいため、詳しい説明は割愛する。
【0039】
セキュリティカメラ200Aは、ローカルデータを用いてリアルタイムにオブジェクト検出やモーショントラッキングなどの画像処理を実行するスマートカメラであってもよい。セキュリティカメラ200Aは、中央処理装置(CPU)、ランダムアクセスメモリ(RAM)、読出し専用メモリ(ROM)からなるプロセッサ210A、ハードディスクなどのストレージ220A、マイクなどの入力装置を含み、また、スピーカーなどの出力装置を含み得る入力/出力(I/O)インターフェース230A、及び撮像装置240Aを備える。1つまたは複数の実施形態において、プロセッサ210Aは、フィールドプログラマブルゲートアレイ(FPGA)、グラフィックス処理ユニット(GPU)、テンソル処理ユニット(TPU)、及び特定用途向け集積回路(ASIC)などのAI/MLアクセラレータを含むことができる。1つまたは複数の実施形態において、小型化のためにI/Oインターフェース230Aの少なくとも一部を省略することができる。撮像装置240Aは、電荷結合素子(CCD)センサやシーモス(CMOS)センサなどの撮像センサからなり、顧客や背景の静止画像や動画像を含む画像を撮像する。
【0040】
セキュリティカメラ200Aは、ネットワーク500内でパーソナルコンピュータ(PC)やスマートフォン200Cを含む携帯デバイスなど、顧客が所有する他の機器に接続されてもよい。セキュリティカメラ200Aは、撮影した画像を他の装置に送信してもよく、他の装置から送信される信号により、ネットワーク500を介して、制御及び/又は管理されてもよい。1つまたは複数の実施形態において、他のデバイスは、セキュリティカメラ200Aの代わりに、プロセッサ210A及びストレージ220Aの機能を実行してもよい。
【0041】
図1に示すように、ストレージ220Aには、ローカルに最適化されたMLモデルとして、正確な画像解析を実行するためのイメージングAIアルゴリズムが格納されている。1つまたは複数の実施形態において、ローカルに最適化されたMLモデルは、共通のMLモデルを修正することによって作成され、更新された共通のMLモデルに基づいて画像解析が最適化されるたびに、継続的に最適化される。1つまたは複数の実施形態において、画像解析は、リアルタイムのオブジェクト検出とモーショントラッキングのためのビデオ画像解析である。また、ストレージ220Aは、画像AIアクセラレーションアプリケーション(すなわち、グラフィックスアクセラレータアプリケーション)、撮像装置240Aによって撮像された画像を含むローカルデータ、及びデバイス管理アプリケーションを格納してもよい。
【0042】
図2に戻り、プロセッサ210Aは、共通のMLモデルを用いて、あるいは、利用可能であればローカルに最適化されたMLモデルを用いて、様々な異種視覚データの画像解析をリアルタイムで顧客先で実行する。
【0043】
クラウドサーバ100から共通のMLモデルを受け取ると、プロセッサ210Aは、画像解析を最適化し、共通のMLモデルを修正して、ローカルに最適化されたMLモデルを作成する。また、プロセッサ210Aは、所定のタイミング、例えば、定期的又はクラウドサーバ100からの要求を受信するタイミングで、最適化結果の主要パラメータ(複数可)をクラウドサーバ100に送信する。
【0044】
1つまたは複数の実施形態において、プロセッサ210Aは、I/Oインターフェース230A上の画像処理及び画像表示を加速するためのグラフィックスアクセラレータを含んでもよい。
【0045】
なお、残りのエッジデバイス200B-200Cは、追加の構成要素で構成されてもよいことは言うまでもない。例えば、スマートフォン200CはI/Oインターフェースとして、タッチパネルなどの入力装置やその他の種類の入力装置と、画面(例えば、液晶ディスプレイ(LCD))などの出力装置やその他の種類の出力装置とで構成されてもよい。
【0046】
[エッジサーバ]
【0047】
セキュリティカメラ200Aと同様に、エッジサーバ300は、クラウドサーバ100から受け取った共通のMLモデルに基づいて、そこに格納されたローカルデータを用いて画像解析を最適化し、共通のMLモデルを修正して、ローカルに最適化されたMLモデルを作成する。
【0048】
図2に示されるように、エッジサーバ300は、中央処理装置(CPU)、ランダムアクセスメモリ(RAM)、及び読出し専用メモリ(ROM)からなるプロセッサ310と、ハードディスクなどのストレージ320と、及び、タッチスクリーン、キーボード、マウス、マイク、タッチパッド、電子ペン、または任意の他のタイプの入力装置などの入力装置を含み得、かつ画面(例:液晶ディスプレイ(LCD)、プラズマディスプレイ、タッチスクリーン、陰極線管(CRT)モニタ、プロジェクタ、または任意の他のディスプレイデバイス)、スピーカー、プリンタ、外部ストレージ、または任意の他の出力装置などの出力装置をも含み得る入力/出力(I/O)インターフェース330と、を備える。1つまたは複数の実施形態において、プロセッサ310は、フィールドプログラマブルゲートアレイ(FPGA)、グラフィックス処理ユニット(GPU)、テンソル処理ユニット(TPU)、及び特定用途向け集積回路(ASIC)などのAI/MLアクセラレータを含むことができる。
【0049】
なお、エッジサーバ300は、一般的なPCが構成する他の構成要素で構成されてもよいことは言うまでもない。1つまたは複数の実施形態において、エッジサーバ300はまた、撮像装置240Aのものと同様の構造及び機能を有する撮像装置を含んでよく、及び/又は、ネットワーク500を介して捕捉画像を受け取るためにセキュリティカメラ200A及びモニタリングカメラ200Bなどのセンシングデバイスに接続されてよい。
【0050】
プロセッサ310は、セキュリティカメラ200Aのプロセッサ210Aと同様に機能することができる。具体的には、プロセッサ310は、様々な異種視覚データの画像解析をリアルタイムに実行し、画像解析を最適化し、ローカルに最適化されたMLモデルを作成する。また、プロセッサ310は、所定のタイミングで、最適化結果の主要パラメータ(複数可)をクラウドサーバ100に送信する。
【0051】
[管理サーバ]
【0052】
管理サーバ400は、クラウドサーバ100と連携し、取引先や顧客のID、アカウント、ライセンスなどを管理する。例えば、管理サーバ400は、クラウドサーバ100からの要求に応じて、ID、アカウント、およびライセンスをクラウドサーバ100に送信する。
【0053】
管理サーバ400は、
図2に例示したクラウドサーバ100と同様の構成および機能を有していてもよい。
図1に示すように、管理サーバ400は、ID管理アプリケーション、アカウント管理アプリケーション、およびライセンス管理アプリケーションをストレージに格納することができる。
【0054】
[FL機構]
【0055】
IoTシステム1000は、以下に示すような共通のグローバルデータセットを用いて、ニューラルネットワーク(NN)やディープニューラルネットワーク(DNN)などの共通のアルゴリズムによって作成された共通のMLモデルを配布するFL機構を実装している。
【0056】
図3-6は、1つまたは複数の実施形態に係るFL機構の概念図である。
【0057】
図3は、FL機構のワークフローの一例を示す図である。1つまたは複数の実施形態において、中央サーバ(例えば、クラウドサーバ100)は、共通のグローバルデータセットによって学習される初期モデル(例えば、共通のMLモデル)として統計モデルを選択する。(ステップ1)そして、中央サーバは、最初に事前学習した共通のMLモデルをエッジデバイス200A-200C及び/又はエッジサーバ300に送信し、リアルタイムに動作させる(ステップ2)。各ノード(エッジデバイス/サーバなど)は、さらに初期モデルを各自のローカルデータセットでローカルに学習し(ステップ3)、ローカルに学習したモデルの部分(最適化モデルの主要パラメータなど)を中央サーバに返す。中央サーバは、ローカルに学習されたモデルの部分をプールし、他のデータにアクセスすることなく、1つの更新されたグローバルモデル(例えば、更新された共通のMLモデル)を生成する(ステップ4)。
【0058】
図4は、1つまたは複数の実施形態によるFL機構のプロセスサイクルの例を示す図である。
図4に示すように、クラウドサーバ100は、まず、学習済みの共通のMLモデルをエッジデバイス200A-200Cに配布し、共通のMLモデルのローカルに最適化された後のエッジデバイス200A-200Cそれぞれから変化量(ΔまたはΣΔ)として示される主要パラメータを収集し、主要パラメータの総和(ΣΔ)を格納する。また、クラウドサーバ100は、NN又はDNNのパラメータであり、NN又はDNNの隠れ層で入力データに適用又は乗算される共通のMLモデルの重み(W)を記憶している。また、1つまたは複数の実施形態において、クラウドサーバ100は、重みと同様に、NN又はDNNのパラメータであり、隠れ層で入力データに付加されるバイアス(B)を利用してもよい。クラウドサーバ100は、主要パラメータの総和(ΣΔ)で共通のMLモデルを更新し、重みと主要パラメータを含む更新後の共通のMLモデル(W+ΣΔ)を各エッジデバイス200A-200Cに送信する。主要パラメータ(ΣΔ)を繰り返し反映させることで、共通のMLモデルは継続的に改善される。クラウドサーバ100は、最適な画像解析という顧客の目標を満たすまで、このサイクルを繰り返すことができる。
【0059】
クラウドサーバ100は、主要パラメータのみを収集することで、通信負荷を大幅に低減し、ストレージ120に格納するデータ量を節約することができる。さらに、エッジデバイス200A-200Cは、主要パラメータのみを返すことにより、クラウドサーバ100からの要求に対して迅速に応答することができる。また、エッジデバイス200A-200Cは、自身のデータを共有する必要がないため、データプライバシー、データセキュリティ、データアクセス権などを保護することができる。
【0060】
図5は、動画像解析用FL機構の処理フローの一例を示す図である。クラウドサーバ100は、まず、オプティカルフローを主要パラメータとするゴルフスイング練習のRGBビデオクリップから、共通のMLモデルとしての「グローバルモデル」を作成する。この共通のMLモデルをエッジデバイス200A-200C及び/又はエッジサーバ300のそれぞれに配布し、ローカルRGBビデオクリップを用いてローカルに最適化し、ローカルに最適化された共通のMLモデルとして「ローカル修正モデル」を取得する。そして、エッジデバイス200A-200C及び/又はエッジサーバ300は、ローカルに最適化されたオプティカルフローのみを返し、クラウドサーバ100は、エッジデバイス200A-200C及び/又はエッジサーバ300から返されたローカルに最適化されたオプティカルフローを用いて「グローバルモデル」の更新を行う。クラウドサーバ100は、「グローバルモデル」が予め定められた所望の値を満たすまで、この処理を繰り返してもよい。
【0061】
画像解析がオブジェクト検出やモーショントラッキングのための動画像解析である場合、ローカルに得られる視覚データの不均一性(例えば、サイズや動きのばらつき)を克服するために、共通のMLモデルが最適化される。
【0062】
画像解析の精度を高めるために、Image NetやRegion-based Convolutional Neural Networkなど、開発されたDNNコンピュータビジョン(CV)アルゴリズムを使用することができる。先進的なCVアルゴリズムは、入力映像からオブジェクトのバウンディングボックスを作成し、監視し、リアルタイムに入力映像を処理することを意図しているが、このアルゴリズムの実装の多くは、時間情報を無視して同一フレーム内のオブジェクトの関係のみを扱っている。
【0063】
この問題を解決できるのが、オプティカルフロー(コンピュータビジョンにおいて、刺激物による人間の視覚認識を記述するために導入されたツール)である。オプティカルフローとは、対象物とセンシングデバイスとの相対的な移動によって生じる、連続するビデオフレーム間の対象物の見かけ上の動きのパターンであってよく、連続するビデオフレーム間に関係を作り出すことができる。例えば、オプティカルフローは、連続するビデオフレームにおける車両の動きの追跡や、連続するビデオフレームにおける人間の動作の認識が可能である。FL機構では、ローカルに使用するための最適化/カスタマイズのためにオプティカルフローのみを変更するため、DNNコンピュータビジョンアルゴリズムは、最適化/カスタマイズのために大きな変更/カスタマイズをせずに使用される。
【0064】
1つまたは複数の実施形態において、リアルタイムのオブジェクト検出及びモーショントラッキングのための共通のMLモデルは、オープンソース(例えば、オープンソースコンピュータビジョンライブラリ(OpenCV)及びコルナ)からの従来のDNNコンピュータビジョンアルゴリズムを含むことができる。また、1つまたは複数の実施形態のエッジデバイス200A-200C及び/又はエッジサーバ300におけるオプティカルフローとして、画像内の特徴点を解析するスパースオプティカルフローを利用したが、画像全体の画素の動きを解析するデンスオプティカルフローも利用することが可能である。
【0065】
1つまたは複数の実施形態において、共通のMLモデルは、Youtube-8m Segments Dataset又は20BN-Something-Something Dataset V2などのオープンソースビデオデータセットによって事前学習又は学習されてもよい。
【0066】
図6は、連続する映像フレーム間のオプティカルフローの一例を示す図である。
図6において、「(x、y)」は画素の座標位置を示し、「I(x、y、t)」は時刻「(t)」に撮影された最初のビデオフレームにおける画素強度を示している。時刻「(t+dt)」に撮影された2つ目の映像フレームでは、画素の座標位置は「(x+dx、y+dy)」に移動し、画素強度は「I(x+dx、y+dy、t+dt)」と表現することができる。1フレーム目と2フレーム目では画素の強度が変わらないため、2次元平面上の画素の「I(x、y、t)」と「I(x+dx、y+dy、t+dt)」から動きベクトル(u、v)を得ることができる。
【0067】
異なる時間軸のビデオフレームの注目領域から動きベクトルを推定することで、画像解析の最適化を実現することができる。動きベクトルは、物体と観測者の相対速度で定義される。動きベクトルを推定する方法としては、特異値分解(SVD)を用いた最小二乗推定が標準的である。
【0068】
オプティカルフローを用いた運動推定のために最近開発されたオープンソースのディープラーニング(DL)アルゴリズムは以下の2つである。FlowNetは、オプティカルフローを計算するための最初の畳み込みニューラルネットワーク(CNN)アプローチであり、RAFT(Recurrent All-Pairs Field Transforms)は、現在のオプティカルフロー推定の最先端手法である。ローカルビジネスパートナー及び/又は顧客は、ローカルビデオデータセットを使用して、特定のビデオアクション解析の最適化に最も適したDNNアルゴリズムを選択し、画像IoTプラットフォームにおけるコンピュータビジョンアルゴリズム(すなわち、共通のMLモデル)をさらに最適化するためにオプティカルフローを返すことができる。
【0069】
[堅牢な共通のMLモデル構築のためのFL方法]
【0070】
図7のフローチャートを参照して、堅牢な共通のMLモデル構築のためのFL方法を説明する。
図7の工程の1つまたは複数は、
図1-2を参照して上述した、IoTシステム1000の構成要素によって実行されてもよい。1つまたは複数の実施形態において、
図7の工程の1つまたは複数が省略され、繰り返され、及び/又は
図7に示す順序とは異なる順序で実行されてよい。従って、本発明の範囲は、
図7に示す工程の具体的な配置に限定されると考えるべきでない。
【0071】
クラウドサーバ100は、ネットワーク500内で利用可能な共通のMLモデルを、所定のデータセット(例えば、RGBビデオクリップ)を用いて事前学習し、事前学習した共通のMLモデルをストレージ120に格納する(ステップS701)。
【0072】
クラウドサーバ100は、所定のタイミングで、エッジデバイス200A-200C及びエッジサーバ300の少なくとも一方から要求を受信したか否かを判断する(ステップS702)。例えば、クラウドサーバ100は、定期的に判定を行ってもよいし、要求を受信したタイミングで判定を行ってもよい。
【0073】
要求を受信したと判断した場合(ステップS702:Yes)、クラウドサーバ100は、共通のMLモデルの中から、要求に関連する共通のMLモデルを選択する(ステップS703)。1つまたは複数の実施形態において、ストレージ120は、共通のMLモデルと要求との間の関連付け、及び/又は共通のMLモデルとエッジデバイス200A-200C及び/又はエッジサーバ300において実行される画像解析との間の関連付けを予め記憶していてもよい。あるいは、配布する特定の共通のMLモデルを特定する情報を要求することもできる。
【0074】
共通のMLモデルを選択した後(ステップS703)、または、要求を受信したと判断した場合(ステップS702:No)、クラウドサーバ100は、共通のMLモデルをエッジデバイス200A-200C及び/又はエッジサーバ300に配布する(S704)。
【0075】
共通のMLモデルに基づいて、エッジデバイス200A-200C及び/又はエッジサーバ300は、ローカルデータを用いた画像解析の最適化を行い(ステップS705)、ローカルに最適化された共通のMLモデルを作成する(ステップS706)。
【0076】
クラウドサーバ100は、エッジデバイス200A-200C及び/又はエッジサーバ300から、最適化結果の主要パラメータを収集する(S707)。
【0077】
主要パラメータを収集すると、クラウドサーバ100は、ストレージ120に格納されている共通のMLモデルに主要パラメータを反映させ、継続的な改善を行う(S708)。
【0078】
クラウドサーバ100は、定期的に又は終了要求を受信したタイミングで、エッジデバイス200A-200C、エッジサーバ300、又はネットワーク500内の他のデバイス/装置のいずれかから終了要求を受信したか否かを確認する(S709)。終了要求を受信したと判断した場合(S709:Yes)、クラウドサーバ100は、処理を終了させる。あるいは、クラウドサーバ100は、所定の時間が経過した場合に、処理を終了させてもよい。
【0079】
終了要求を受信していないと判断すると(S709:No)、処理はステップ702に戻り、上記のサイクルが繰り返される。
【0080】
本発明の実施形態は、使用するプラットフォームにかかわらず、事実上あらゆる種類のコンピューティングシステムに実装できる。例えば、コンピューティングシステムは、1つまたは複数の可搬装置(例えば、ノート型コンピュータ、スマートフォン、パーソナルデジタルアシスタント、タブレット型コンピュータ又はその他の可搬装置)、デスクトップコンピュータ、サーバ、サーバシャーシにおけるブレード、又は1つまたは複数の実施形態を実施するための最低限の処理能力、メモリ及び入出力装置を少なくとも備えるその他の種類の1つまたは複数のコンピューティング装置であってよい。例えば
図8に示すように、コンピューティングシステム(801)は、1つまたは複数のコンピュータプロセッサ(802)、関連するメモリ(803)(例えば、ランダムアクセスメモリ(RAM)、キャッシュメモリ、フラッシュメモリ等)、1つまたは複数の記憶装置(804)(例えば、ハードディスク、コンパクトディスク(CD)ドライブやデジタル多用途ディスク(DVD)ドライブといった光ドライブ、フラッシュメモリスティック等)、その他多くの構成要素及び機能を有してよい。コンピュータプロセッサ(802)は、指示を処理するための集積回路でもよい。例えば、コンピュータプロセッサは、1つまたは複数のコア又はプロセッサのマイクロコアでもよい。また、コンピューティングシステム(801)は、タッチスクリーン、キーボード、マウス、マイク、タッチパッド、電子ペン、又はその他の種類の入力装置といった1つまたは複数の入力装置(806)を備えてよい。また、コンピューティングシステム(801)は、スクリーン(例えば、液晶ディスプレイ(LCD)、プラズマディスプレイ、タッチスクリーン、ブラウン管(CRT)モニタ、プロジェクタ、又はその他の表示装置)、プリンタ、外部記憶装置、又はその他の出力装置等、1つまたは複数の出力装置(805)を備えてよい。1つまたは複数の出力装置は、入力装置と同じでも良いし、異なってもよい。コンピューティングシステム(801)は、ネットワークインターフェース接続(図示なし)を介してネットワーク(807)(例えば、ローカルエリアネットワーク(LAN)、インターネット等の広域ネットワーク(WAN)、モバイルネットワーク、又はその他の種類のネットワーク)に接続されてよい。入力装置と出力装置は、ローカルにまたはリモートに(例えば、ネットワーク(807)を介して)コンピュータプロセッサ(802)、メモリ(803)及び記憶装置(804)に接続されてよい。コンピューティングシステムには多くの異なる種類があり、前述の入力装置及び出力装置は他の形態をとってもよい。
【0081】
本発明の実施形態を実施するためのコンピュータ読取り可能なプログラムコードの形態をとるソフトウェア指示は、全て又は一部が、一時的に又は恒久的に、CD、DVD、記憶装置、ディスケット、テープ、フラッシュメモリ、物理メモリ、又はその他のコンピュータ読取り可能な記憶媒体といった非一時的なコンピュータ読取り可能な媒体に記憶されてよい。具体的には、ソフトウェア指示は、プロセッサによって実行された際に本発明の実施形態を実施するように構成されたコンピュータ読取り可能なプログラムコードに相当し得る。
【0082】
更に、前述のコンピューティングシステム(801)の構成要素は、そのうち一つ以上が遠隔に配され、ネットワーク(807)を介してその他の構成要素と接続されてもよい。また、本発明の1つまたは複数の実施形態は、複数のノードを有する分散システムに実装されてもよく、本発明の各部は、分散システム内の異なるノード上に位置してもよい。本発明の一実施形態では、ノードは別個のコンピューティング装置に相当する。あるいは、ノードは関連する物理メモリを有するコンピュータプロセッサに相当してもよい。あるいは、ノードは、共有メモリ及び/又は情報源を有するコンピュータプロセッサ又はコンピュータプロセッサのマイクロコアに相当してもよい。
【0083】
1つまたは複数の実施形態のIoTシステムで実装される画像IoTプラットフォームは、画像解析技術に様々な改良を提供する。例えば、IoTシステムは、画像解析分野の各種業務において、エッジデバイス/サーバからの非接触、遠隔、リアルタイム応答を可能とし、エッジデバイス/サーバのデータプライバシーを保護しつつ、共通のMLモデルを継続的に改善することにより、堅牢な共通のMLモデルによるFL機構を実現する。
【0084】
1つまたは複数の実施形態によれば、大規模なデータを集中的に収集することなく、主要パラメータのみを収集することで、通信負荷を大幅に軽減し、保存するデータ量を節約することができ、機器コストを削減することができる。また、エッジデバイス/サーバは、クラウドサーバ100からの要求に対して迅速に応答でき、エッジデバイス/サーバ間で自身のデータを共有する必要がないため、データプライバシー、データセキュリティ、データアクセス権を保護しながら、高度な分散プラットフォームを構築することが可能である。
【0085】
1つまたは複数の実施形態によれば、配布される最も適した共通のMLモデルを選択することにより、コンピュータビジョンアルゴリズムのさらなる最適化と、ビジネスパートナー及び顧客の精度目標を満たすためのより適切な画像解析が可能となる。
【0086】
1つまたは複数の実施形態によれば、DNNコンピュータアルゴリズムを協働させることにより、非常に高い性能を有する画像IoTプラットフォームを提供することができる。
【0087】
1つまたは複数の実施形態によれば、ダウンサイズした共通のMLモデルを比較的小さなデータ容量を有するエッジデバイスに配布し、ダウンサイズしない共通のMLモデルを比較的大きなデータ容量を有するエッジサーバに配布することにより、画像IoTプラットフォームはスケーラブルであることが可能である。
【0088】
限られた数の実施形態に関連して本開示を説明したが、本開示の恩恵に浴する当業者であれば、本発明の範囲から逸脱することなく、様々な他の実施形態が考案可能であると理解できるであろう。したがって、本発明の範囲は、添付の特許請求の範囲によってのみ限定されるものである。