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

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

▶ ヤフー株式会社の特許一覧

特許7575205実行装置、実行方法、および実行プログラム
<>
  • 特許-実行装置、実行方法、および実行プログラム 図1
  • 特許-実行装置、実行方法、および実行プログラム 図2
  • 特許-実行装置、実行方法、および実行プログラム 図3
  • 特許-実行装置、実行方法、および実行プログラム 図4
  • 特許-実行装置、実行方法、および実行プログラム 図5
  • 特許-実行装置、実行方法、および実行プログラム 図6
  • 特許-実行装置、実行方法、および実行プログラム 図7
  • 特許-実行装置、実行方法、および実行プログラム 図8
  • 特許-実行装置、実行方法、および実行プログラム 図9
  • 特許-実行装置、実行方法、および実行プログラム 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-21
(45)【発行日】2024-10-29
(54)【発明の名称】実行装置、実行方法、および実行プログラム
(51)【国際特許分類】
   G06F 9/50 20060101AFI20241022BHJP
   G06T 7/00 20170101ALI20241022BHJP
【FI】
G06F9/50 150C
G06T7/00 660A
【請求項の数】 13
(21)【出願番号】P 2020103369
(22)【出願日】2020-06-15
(65)【公開番号】P2021196912
(43)【公開日】2021-12-27
【審査請求日】2021-08-19
【審判番号】
【審判請求日】2023-06-19
(73)【特許権者】
【識別番号】500257300
【氏名又は名称】LINEヤフー株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】三浦 衛
(72)【発明者】
【氏名】志賀 優毅
(72)【発明者】
【氏名】日野 善至
(72)【発明者】
【氏名】二反田 哲
(72)【発明者】
【氏名】森本 浩介
(72)【発明者】
【氏名】山本 太一
【合議体】
【審判長】林 毅
【審判官】大塚 俊範
【審判官】吉田 美彦
(56)【参考文献】
【文献】特開2019-160287(JP,A)
【文献】特開2018-67302(JP,A)
【文献】特開2001-256186(JP,A)
【文献】特開2012-212426(JP,A)
【文献】特開2018-41190(JP,A)
【文献】特開2019-212157(JP,A)
【文献】特開2020-87570(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/50
G06T 7/00
(57)【特許請求の範囲】
【請求項1】
予め登録された解析対象の情報を識別するための情報と当該解析対象に対する解析処理の内容を指定する指定情報とからなる解析要求に基づいて、所定の解析処理を構成する複数の構成処理と、当該複数の構成処理の夫々を実現するために使用するモジュールと、当該複数の構成処理の夫々を実行する順序とを決定するものであって、前記所定の解析処理の対象となった対象情報と、当該所定の解析処理を実現するために実行された複数構成処理と、当該対象情報の解析処理の結果との履歴に基づいて、実行対象となる構成処理の内容、順序、およびモジュールを決定する決定部と、
前記決定部が使用を決定したモジュールを用いて、前記複数の構成処理を実行する実行部と
を有することを特徴とする実行装置。
【請求項2】
前記決定部は、先に実行された構成処理の結果を用いる構成処理を含む複数の構成理を決定する
ことを特徴とする請求項1に記載の実行装置。
【請求項3】
前記決定部は、並列して実行可能な複数の構成理を決定する
ことを特徴とする請求項1または2に記載の実行装置。
【請求項4】
前記決定部は、前記構成処理を実現する複数のモジュールのうち、いずれのモジュールを使用するかを決定す
ことを特徴とする請求項1~3のうちいずれか1つに記載の実行装置。
【請求項5】
前記決定部は、動画像を分割する分割処理、当該分割処理により分割された動画像から人物の顔を検知する検知処理、前記分割処理により分割された動画像と検知処理による検知結果とから顔の分類を行う分類処理、および、前記検知処理による検知結果と前記分類処理による分類結果とから前記動画像に撮影された人物の認証結果を生成する生成処理を実行対象となる構成処理として定す
ことを特徴とする請求項1~4のうちいずれか1つに記載の実行装置。
【請求項6】
利用者から前記所定の解析処理の解析要求を一時的に保持する保持部
を有し、
前記実行部は、前記保持部が保持する解析要求のうち所定の条件を満たす解析要求が前記保持部から提供されると、当該解析要求に従って、前記所定の解析処理を実行する
ことを特徴とする請求項1~5のうちいずれか1つに記載の実行装置。
【請求項7】
前記実行部は、前記利用者が前記所定の解析処理の対象となる対象情報を登録した所定の外部記憶装置から当該対象情報を取得して当該対象情報の解析処理を実行し、当該解析処理の実行結果を前記外部記憶装置に登録する
ことを特徴とする請求項6に記載の実行装置。
【請求項8】
前記実行部が前記解析処理の実行結果を前記外部記憶装置に登録した場合は、前記利用者に対して解析処理が完了した旨を通知する通知部
を有することを特徴とする請求項7に記載の実行装置。
【請求項9】
それぞれ個別に前記解析処理を実行可能な前記実行部を複数有する
ことを特徴とする請求項6~8のうちいずれか1つに記載の実行装置。
【請求項10】
前記解析処理を実行可能な計算リソース、または、前記保持部が保持する解析要求の数に基づいて、前記解析処理を実行させる実行部の数を変更する変更部
を有することを特徴とする請求項9に記載の実行装置。
【請求項11】
所定の記憶装置に登録された学習データに対して利用者が付与したラベルを取得する取得部と、
前記ラベルと、前記学習データとを用いて、前記複数の構成処理のいずれかの処理で用いるモジュールを学習する学習部と、
前記学習部により学習されたモジュールを所定のモジュール記憶装置に登録する登録部と
を有し、
前記決定部は、前記モジュール記憶装置に登録されたモジュールの中から、前記複数の構成処理で使用するモジュールを決定する
ことを特徴とする請求項1~10のうちいずれか1つに記載の実行装置。
【請求項12】
実行装置が実行する実行方法であって、
予め登録された解析対象の情報を識別するための情報と当該解析対象に対する解析処理の内容を指定する指定情報とからなる解析要求に基づいて、所定の解析処理を構成する複数の構成処理と、当該複数の構成処理の夫々を実現するために使用するモジュールと、当該複数の構成処理の夫々を実行する順序とを決定するものであって、前記所定の解析処理の対象となった対象情報と、当該所定の解析処理を実現するために実行された複数構成処理と、当該対象情報の解析処理の結果との履歴に基づいて、実行対象となる構成処理の内容、順序、およびモジュールを決定する決定工程と、
前記決定工程が使用を決定したモジュールを用いて、前記複数の構成処理を実行する実行工程と
を含むことを特徴とする実行方法。
【請求項13】
予め登録された解析対象の情報を識別するための情報と当該解析対象に対する解析処理の内容を指定する指定情報とからなる解析要求に基づいて、所定の解析処理を構成する複数の構成処理と、当該複数の構成処理の夫々を実現するために使用するモジュールと、当該複数の構成処理の夫々を実行する順序とを決定するものであって、前記所定の解析処理の対象となった対象情報と、当該所定の解析処理を実現するために実行された複数構成処理と、当該対象情報の解析処理の結果との履歴に基づいて、実行対象となる構成処理の内容、順序、およびモジュールを決定する決定手順と、
前記決定手順が使用を決定したモジュールを用いて、前記複数の構成処理を実行する実行手順と
をコンピュータに実行させるための実行プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、実行装置、実行方法、および実行プログラムに関する。
【背景技術】
【0002】
従来、DNN(Deep Neural Network)等の各種モデルを用いて、所定の解析処理を実行する技術が知られている。このような技術の一例として、人の顔が有する特徴を学習したモデルを用いて、画像解析を行い、画像から顔の領域を見つけ出し、誰の顔かを判断する顔検出・認識(以下、「顔認識」と総称する。)する技術が知られている。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2020-071848号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、解析処理の実現に手間がかかる。
【0005】
例えば、顔認識を行う単一のモジュール(もしくは、クラス、ファンクション等)を用いて利用者の顔認識を行う場合、解析処理として、画像から人の顔を検知し、検知した顔が誰の顔であるかを識別するといった複数の処理が実行される。しかしながら、これら複数の処理が単一のモジュールにより実現される場合、複数の処理のうち一部の処理を変更したい場合であっても、全体的にモジュールの修正や再生成といった再実装を行う必要がある。
【0006】
本願は、上記に鑑みてなされたものであって、解析処理の実現を容易にすることを目的とする。
【課題を解決するための手段】
【0007】
本願に係る実行装置は、所定の解析処理を行う際に実行される複数の処理であって、それぞれ独立して実行可能な複数の処理の内容をそれぞれ決定する決定部と、前記決定部により内容が決定された複数の処理を実行することで、前記所定の解析処理を実行する実行部とを有することを特徴とする。
【発明の効果】
【0008】
実施形態の一態様によれば、解析処理の実現を容易にすることができる。
【図面の簡単な説明】
【0009】
図1図1は、実施形態に係る情報提供システムが実行する処理の一例を示す図である。
図2図2は、実施形態に係る情報提供システムのモデルの学習におけるプラットフォームの一例を示す図である。
図3図3は、実施形態に係る情報提供システムのモデルの利用におけるプラットフォームの一例を示す図である。
図4図4は、実施形態にかかる解析処理の流れを示す図である。
図5図5は、実施形態に係る機能構成の一例を示す第1の図である。
図6図6は、実施形態に係るモジュールデータベースに登録される情報の一例を示す図である。
図7図7は、実施形態に係る機能構成の一例を示す第2の図である。
図8図8は、実施形態に係る解析処理データベースに登録さる情報の一例を示す図である。
図9図9は、実施形態に係る情報提供装置が実行する処理の流れの一例を示すフローチャートである。
図10図10は、ハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【0010】
以下に、本願に係る実行装置、実行方法、および実行プログラムを実施するための形態(以下、「実施形態」と呼ぶ)について図面を参照しつつ詳細に説明する。なお、この実施形態により本願に係る実行装置、実行方法、および実行プログラムが限定されるものではない。また、各実施形態は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。また、以下の各実施形態において同一の部位には同一の符号を付し、重複する説明は省略される。
【0011】
〔1.情報提供装置について〕
まず、図1を用いて、実行方法により実行処理を実現する情報提供システム1について説明する。図1は、実施形態に係る情報提供システムが実行する処理の一例を示す図である。図1では、情報提供システム1が実行する処理の一例として、動画解析等、各種の解析対象となる情報(以下、「解析対象情報」と記載する。)を取得し、取得した情報を解析する処理(以下、「解析処理」と記載する。)の一例について記載した。
【0012】
〔1-1.情報提供装置の概要〕
図1に示すように、情報提供システム1は、複数の情報提供装置10、キューサーバ100、モジュール管理サーバ200、およびストレージサーバ300を有する。なお、情報提供システム1の構成は、図1に示すものに限定されるものではない。例えば、情報提供システム1は、単一の情報提供装置10を有していてもよく、複数のキューサーバ100、複数のモジュール管理サーバ200、および複数のストレージサーバ300を有していてもよい。また、情報提供システム1は、ストレージサーバ300に変えて、外部のストレージサーバと通信可能であってもよい。また、情報提供システム1は、複数の情報提供装置10、キューサーバ100、モジュール管理サーバ200、およびストレージサーバ300の機能を有するクラウドシステム等により実現されてもよい。
【0013】
複数の情報提供装置10は、実行装置の一例であり、後述する実行処理を実現する。例えば、複数の情報提供装置10は、インターネット等の所定のネットワークN(例えば、図3を参照。)を介して、各種の装置と通信可能な情報処理装置であり、例えば、サーバ装置やクラウドシステム等により実現される。例えば、各情報提供装置10は、ネットワークNを介して、利用者が利用する端末装置PC、キューサーバ100、モジュール管理サーバ200、およびストレージサーバ300と通信可能である。なお、以下の説明では、複数の情報提供装置10を特に区別しない場合、単に情報提供装置10と記載する。
【0014】
キューサーバ100は、インターネット等の所定のネットワークNを介して、端末装置PCや情報提供装置10等と通信可能な情報処理装置であり、例えば、サーバ装置やクラウドシステム等により実現される。例えば、キューサーバ100は、端末装置PCから送信される解析要求をキューとして保持し、情報提供装置10に対して、先に保持したキューから順番に提供するキューイングを実現する。
【0015】
モジュール管理サーバ200は、インターネット等の所定のネットワークNを介してして、端末装置PCや情報提供装置10等と通信可能な情報処理装置であり、例えば、サーバ装置やクラウドシステム等により実現される。モジュール管理サーバ200は、各種の処理を実行するモジュールの修正、生成、管理などを行う。ここで、モジュールとは、後述する構成処理を実現するためのプログラムモジュールである。なお、モジュールは、例えば、SVM(Support Vector Machine)やDNN(Deep Neural Network)等、各種のモデルにより実現されてもよい。このようなモデルによりモジュールが実現される場合、モジュール管理サーバ200は、モデルの学習や再学習、修正等によりモジュールの再実装を実現することとなる。
【0016】
ストレージサーバ300は、インターネット等の所定のネットワークNを介して、端末装置PCや情報提供装置10等と通信可能な情報処理装置であり、例えば、サーバ装置やクラウドシステム等により実現される。ストレージサーバ300は、解析対象情報の登録や、解析処理の結果等の登録を受け付けると、受け付けた解析対象情報や結果の提供を行う。
【0017】
端末装置PCは、スマートフォンやタブレット等のスマートデバイス、もしくはPC(Psersonal Computer)であり、3G(Generation)やLTE(Long Term Evolution)等の無線通信網、もしくは各種のネットワークを介して任意のサーバ装置と通信を行うことができる情報処理装置である。例えば、端末装置PCは、ストレージサーバ300に解析対象情報を登録し、情報提供装置10から解析完了通知を受け付けると、ストレージサーバ300から、情報提供装置10が登録した解析結果を取得する。
【0018】
〔1-2.実行処理について〕
ここで、従来の解析処理において、処理内容の変更が行われた場合等は、解析処理の内容を全体的に修正する必要があり、手間がかかっていた。例えば、単一のモジュールを用いて顔認識を行う場合、顔画像を入力情報とし、認証結果を出力情報とするペアのデータを学習データとして準備し、入力情報が入力された際に、正しいペアの出力情報を出力するように、モジュールの作成を行う。
【0019】
しかしながら、このような手法により生成されたモジュールは、入力情報に変更があった際に、正しい出力を行うことができない恐れがある。例えば、学習データの入力情報として顔の正面画像のみを用いた場合、顔の側面画像を用いた顔認識の精度が低下してしまう恐れがある。しかしながら、このように顔の側面画像を用いた顔認識を行うためには、顔の側面画像を入力情報とし、認証結果を出力情報とするペアのデータを学習データとして新たに準備し、モジュールの修正・再生成モジュールの修正・再生成を行う必要がある。
【0020】
一方で、各種の解析処理は、それぞれ個別に実行される複数の処理により構成される場合がある。例えば、動画像を用いた顔認識を解析処理とみなした場合、動画像をフレーム分割する分割処理、分割処理により分割された動画像から人物の顔が撮影された範囲を検知する検知処理、分割処理により分割された動画像と検知処理による検知結果とから、撮影された顔の分類を行う分類処理、および、検知処理による検知結果と分類処理による分類結果とから動画像に撮影された人物の認証結果を生成する生成処理に分割することができる。
【0021】
このように、解析処理をそれぞれ疎な処理、すなわち、解析処理を構成する複数の構成処理であって、それぞれ独立して実行可能な複数の構成処理に分割した場合、構成処理ごとに処理内容の修正を行うことで、解析処理全体の修正を実現することが可能となる。例えば、顔認識が分割処理、検知処理、分類処理および生成処理により構成されている場合、正面画像のみを用いた顔認識を側面画像を加えた顔認識に修正する場合は、検知処理において顔の正面のみではなく横顔を検知するように修正し、分類処理において顔の正面および横顔に基づいた分類を行うように修正すればよい。このような修正を行った場合、分割処理や生成処理といった、共通して実行される構成処理については、修正の必要がなくなる。さらに、それぞれ異なる複数の解析処理を構成する構成処理として、共通する構成処理が含まれる場合、このような構成処理を実現するモジュールを各解析処理ごとに生成せずとも、共用することができる。
【0022】
そこで、情報提供装置10は、以下の実行処理を実行する。まず、情報提供装置10は、所定の解析処理を行う際に実行される複数の処理であって、それぞれ独立して実行可能な複数の処理(すなわち、構成処理)の内容をそれぞれ決定する。そして、情報提供装置10は、内容が決定された複数の構成処理を実行することで、所定の解析処理を実行する。
【0023】
このように、情報提供装置10は、解析処理を1つの処理として実行するのではなく、解析処理を実現する複数の構成処理を決定し、決定した複数の構成処理をそれぞれ実行する。このような処理の結果、解析処理の内容に変更や更新があった場合にも、修正対象を構成処理単位に収めることができるので、修正対象となる処理内容を最小限に抑えることができる。この結果、情報提供装置10は、再実装に必要な手間や計算リソース、時間等の削減を実現し、解析処理の実現を容易にすることができる。また、情報提供装置10は、解析処理を構成する構成処理をフレキシブルに組み合わせて実現することができるので、様々な解析処理の実行を実現することができる。
【0024】
〔1-3.実行処理の一例について〕
以下、図1を用いて、実行処理の一例について説明する。まず、利用者Uは、端末装置PCを用いてモジュール管理サーバ200にアクセスし、モジュール管理サーバ200が記憶する学習データを参照する。なお、利用者Uは、モジュール管理サーバ200に対し、モジュールの修正や再生成といった学習に用いる学習データの登録を行ってもよい。そして、利用者Uは、学習データに対して、ラベルを付与する(ステップS1)。より具体的には、利用者Uは、構成処理を実現するモジュールの学習データに対し、どのような出力を行わせるかの指標となるラベルを付与する。
【0025】
例えば、利用者Uは、顔認識の対象となる利用者である対象利用者の顔写真であって、正面の顔写真に対し、対象利用者を識別する識別子をラベルとして付与してもよい。また、利用者Uは、対象利用者の顔写真とその対象利用者の識別子とを対応付けた学習データに対して正例を示すラベルを付与し、対象利用者の顔写真とその対象利用者とは異なる対象利用者の識別子とを対応付けた学習データに対して負例のラベルを付与してもよい。また、利用者Uは、対象利用者の横顔も使う場合は、対象利用者の横顔の画像に対して、対象利用者の識別子をラベルとして付与してもよく、対象利用者の横顔の画像と対象利用者の識別子との組に、正例のラベルを付与してもよい。すなわち、利用者Uは、学習データに対してラベルを付与することで、モジュール(もしくはモジュールとして動作するニューラルネットワークなどのモデル。以下同様。)の生成に用いる学習データを設定する。
【0026】
この際、利用者Uは、構成処理を実現するモジュールのうち、どのモジュールの学習データにするかを指定する。例えば、利用者Uは、対象利用者の顔の画像と識別子との組である学習データを設定する際、かかる学習データが、顔認識を実現する構成処理のうち、分類処理に用いるモジュールの学習データである旨を登録する。このような処理の結果、モジュール管理サーバ200は、利用者Uが設定した学習データを用いて、モジュールの学習を行う(ステップS2)。
【0027】
ここで、モジュール管理サーバ200は、分類処理を実現するモジュールを新規に生成してもよく、分類処理を実現する既存のモジュールに対し、利用者Uが設定した学習データを用いた再実装(すなわち、処理内容の修正)を行ってもよい。例えば、モジュール管理サーバ200は、既存のモジュールとして対象利用者の顔の正面が撮影された画像の特徴を学習したモジュールが存在する場合、対象利用者の顔の側面が撮影された画像を含む学習データを用いて、既存のモジュールの修正・再生成を行ってもよい。
【0028】
なお、上述した例では、利用者Uが分類処理に用いるモジュールの生成を行うための学習データの設定を行い、かかるモジュールの生成を行う例について記載したが、実施形態は、これに限定されるものではない。例えば、利用者Uは、分割処理や検知処理、生成処理等、実行対象となる各種解析処理を構成する構成処理を実現する任意のモジュールについて、任意の形式の学習データを設定してよい。このような処理の結果、モジュール管理サーバ200は、任意の構成処理を実現するモジュールの生成を行うことができる結果、構成処理の内容を任意の形式で修正することができる。
【0029】
続いて、利用者Uは、解析処理の対象となる解析対象情報をストレージサーバ300にに登録する(ステップS3)。例えば、利用者Uは、動画像に撮影された人物の顔認識を行う場合、動画像のデータをストレージサーバ300に登録する。そして、利用者Uは、解析要求をキューの末尾に登録する(ステップS4)。例えば、利用者Uは、解析要求として、解析対象情報を識別するための情報(例えば、ストレージサーバ300が解析対象情報を記憶した領域や、解析対象情報を識別するための識別子)と、解析処理の内容を指定する指定情報を送信する。
【0030】
ここで、指定情報は、解析処理を構成する構成処理や、構成処理の内容を示す情報である。例えば、利用者Uは、顔認識を実現する構成処理として、分割処理、検知処理、分類処理、および生成処理を指定するとともに、分類処理に用いるモジュール、検知処理に用いるモジュール、分類処理に用いるモジュール、および生成処理に用いるモジュールを指定する。このような場合、端末装置PCは、指定された処理やモジュールを示す指定情報を生成し、解析要求に含めて送信する。
【0031】
なお、指定情報には、各構成処理を実行する順序や、各構成処理をそれぞれ順番に(すなわち、直列的)に実行するか、同時に(すなわち、並行的に)実行するかを示す情報が含まれてもよい。例えば、ある解析処理を実現する構成処理として、第1処理~第5処理が存在するものとする。このような第1処理~第5処理において、第2処理が第1処理の処理結果を用いた処理であり、第3処理が第1処理もしくは第2処理の処理結果を用いた処理であり、第4処理が第1処理~第3処理の処理結果を用いたものであり、第5処理が第1処理~第4処理の処理結果を用いるものである場合、情報提供装置10は、第1処理~第5処理を直列的に実行する必要がある。このような場合、利用者Uは、第1処理、第2処理、第3処理、第4処理、および第5処理の順に処理を実行するように指定する。
【0032】
一方、第2処理と第3処理とがそれぞれ第1処理の処理結果のみを用いたものである場合、第2処理と第3処理とは、同時並行的に実行可能な処理である。このような場合、利用者U1は、第1処理を実行した後に、第2処理と第3処理とを同時並行的に実行し、その後、第4処理と第5処理とを実行するように指定する。
【0033】
続いて、情報提供装置10は、キューサーバ100から、最も古いキューを取得する(ステップS5)。そして、情報提供装置10は、取得したキューに従って、解析処理を実行する。より具体的には、情報提供装置10は、キューが示す解析対象情報をストレージサーバ300から取得する(ステップS6)。続いて、情報提供装置10は、指定情報に従って、解析処理を構成する構成処理ごとにモジュールを用いた処理をモジュール管理サーバ200に実行させる(ステップS7)。このように、構成処理ごとにモジュールを用いた処理を実行させることで、情報提供装置10は、解析処理を実行する(ステップS8)。
【0034】
例えば、情報提供装置10は、解析対象情報の分割処理を実行する。そして、情報提供装置10は、分割処理の結果を取得する。続いて、情報提供装置10は、分割処理の結果をモジュール管理サーバ200に送信し、検知処理を実現するモジュールを用いて検知処理を実行させる。そして、情報提供装置10は、検知処理の結果を取得する。
【0035】
続いて、情報提供装置10は、分割処理の結果と検知処理の結果とをモジュール管理サーバ200に送信し、分類処理を実現するモジュールを用いて分類処理を実行させる。そして、情報提供装置10は、分類処理の結果を取得する。そして、情報提供装置10は、検知処理の結果と分類処理の結果とを用いて生成処理を実行する。そして、情報提供装置10は、生成処理の結果、すなわち、顔認識といった解析処理を取得する。
【0036】
また、情報提供装置10は、解析処理の実行結果を解析結果としてストレージサーバ300に登録する(ステップS9)。また、情報提供装置10は、端末装置PCに対し、解析完了を通知する(ステップS10)。この結果、利用者Uは、ストレージサーバ300から、解析結果を取得することができる(ステップS11)。
【0037】
このように、情報提供装置10は、顔認識等の解析処理を1つの処理として実行するのではなく、複数の構成処理と見做して実行する。より具体的には、情報提供装置10は、構成処理ごとに、実行する処理内容(例えば、使用するモジュール)を決定し、決定した処理内容の構成処理を順次あるいは同時並行的に実行することで、解析処理を実行する。このような処理の結果、情報提供装置10は、構成処理ごとに処理内容の変更や更新を受け付けることができる結果、より容易に解析処理を実現することができる。また、情報提供装置10は、構成処理が他の解析処理を構成する構成処理と同一である場合、かかる構成処理に用いるモジュールを流用することができるので、モジュールの生成に要する時間や計算リソースを削減することができる。
【0038】
なお、図1に示す例では、情報提供装置10は、検知処理および分類処理をモジュール管理サーバ200に実行させた。しかしながら、実施形態は、これに限定されるものではない。例えば、情報提供装置10は、各構成処理をすべてモジュール管理サーバ200に実行させてもよく、例えば、モジュール管理サーバ200から各処理に用いるモジュールであって、指定情報が指定するモジュールを取得し、取得したモジュールを用いて、解析処理を実現してもよい。
【0039】
〔1-4.プラットフォームの一例について〕
次に、図2図4を用いて、モジュールもしくはその一部として動作するモデルの学習およびモデルの利用におけるプラットフォームの一例について説明する。なお、以下の説明では、モジュールとモデルとを同義に用いる場合がある。
【0040】
まず、図2を用いて、モデルの学習におけるプラットフォームの一例について説明する。図2は、実施形態に係る情報提供システムのモデルの学習におけるプラットフォームの一例を示す図である。例えば、図2に示す場合、Image crawlerによって収集された学習データが、所定のストレージに登録される(Store training data)。このような場合、利用者U(User)は、Object storageに登録された学習データを参照し、ラベルの付与を行う(Annotate data)。そして、利用者Uは、モジュール管理サーバ200等、モデルの学習を行うクラスタ(Cluster for training)が有するTraining API(Application Programming Interface)を介して、モデルの学習を要求する(Issue request)。
【0041】
このような場合、Training APIは、クラスタを構成するいずれかの構成単位(例えば、サーバやシステム)に対し、モデルの学習を割り当てる(Invoke job)。そして、構成単位は、Object storageからラベルが付与された学習データを読み出し、読みだした学習データを用いたモデルの学習を行い(Training jobs)、学習済みのモデルをObject storageに登録する(Store model)。なお、学習済みのモデルが格納されるObject storageと、学習データが登録されるObject storageとは、同一の記憶装置であってもよく、異なる記憶装置であってもよい。
【0042】
また、図2に示すプラットフォームにおいては、学習済みのモデルのデプロイを行うCluster for inferenceが備わっている。例えば、Cluster for inferenceを構成するModel updaterは、Object storageをポーリングし、登録されているモデルに差分が生じた場合(すなわち、モデルの登録や更新が行われた場合)、ML model serverに対してモデルの更新を要求する(Request update)。この結果、ML model serrver、すなわち、モジュール管理サーバ200は、常に最新のモデルを利用可能とすることができる。
【0043】
なお、図1に示す例では、発明の特徴の理解を容易にするため、モデルを管理する各種の処理をモジュール管理サーバ200が実行するものとした。このような場合、図2に示すプラットフォームの各構成要素は、モジュール管理サーバ200が有することとなる。しかしながら、実施形態は、これに限定されるものではない。例えば、モジュール管理サーバ200が図2に示すML model serverに対応する場合、図2に示す他の構成要素は、モジュール管理サーバ200とは別の情報処理装置やクラウドシステム等により実現されることとなる。
【0044】
次に、図3を用いて、モデルの利用におけるプラットフォームの一例について説明する。図3は、実施形態に係る情報提供システムのモデルの利用におけるプラットフォームの一例を示す図である。例えば、図3に示す例では、利用者U(User)は、Object storage(例えば、ストレージサーバ300)に対し、解析対象情報となる動画像を登録する(Store video file)。そして、利用者Uは、Analysis API(例えば、キューサーバ100)に対し、解析要求を登録する(Request analysis)。
【0045】
このような場合、Analysis APIは、解析要求をキューの末尾に追加する(Enqueue request)。そして、このような解析要求は、Massaging systemを介して、複数のKubernetes cluster(例えば、情報提供装置10に対応)のうちいずれかのKubernetes clusterに対して通知される。なお、このようなMassaging systemの機能は、キューサーバ100が有する機能として実現されてもよい。
【0046】
ここで、Kubernetes clusterを構成するJob operaterは、Massagging systemをポーリング(Polling)し、解析要求を取得する。そして、Job operaterは、解析要求を取得すると、解析処理を実行するクラスタ(Analysis jobs)に対して、解析処理の実行を割り当てる(Invoke job)。
【0047】
このような場合、解析処理を実行するクラスタは、Object storageから、解析対象情報となる動画像を取得するとともに(Download video file)、ML model serverに対して、モデルを用いた構成処理を実行させる(Request inference)。そして、解析処理を実行するクラスタは、すべての構成処理が完了すると、最終的に得られた実行結果を解析結果として、Object storageに登録する(Store analysis result)。また、解析処理を実行するクラスタは、Massaging systemを介して、利用者Uに解析処理の完了を通知する(Notify completion)。この結果、利用者Uは、解析結果をObject storageから得ることができる。
【0048】
続いて、図4を用いて、解析処理の流れについて説明する。図4は、実施形態にかかる解析処理の流れを示す図である。図4に示すように、情報提供装置10は、解析処理を構成する構成処理をモジュールとして抽象化することで、解析処理のパイプラインを疎結合にする。このような処理の結果、情報提供装置10は、構成処理の内容の更新や、解析処理を構成する構成処理の組み換えといった作業を容易にするとともに、単一のモデルをAPI化する工数を削減することができる。
【0049】
例えば、Object Storageに登録された動画像は、Storeに入力される。続いて、分割処理を実現するVideo Splitterは、Storeから動画像を読み出し、フレームごとの静止画像であるFrame Imageを生成し、生成したFrame ImageをStoreに入力する。続いて、検知処理を実現するFace Detector Moduleは、StoreからFrame Imageを取得し、Face Detector Inference Server(例えば、モジュール管理サーバ200)に送信する。この結果、Face Detector Ingerence Serverは、モデルを用いて検知処理を実行し、実行結果をFace Detector Moduleへと返す。そして、Face Detector Moduleは、検知処理の結果、例えば、Frame Image内において人物の顔が撮影されている範囲を示すBounding Boxの情報をStoreに入力する。
【0050】
続いて、分類処理を実現するCNN(Convolutional Neural Network) Classilier Moduleは、Storeから検知処理の結果であるBounding Boxと分割処理の結果であるFrame Imageとを取得する。そして、CNN Classilier Moduleは、CNNClassilier Inference Server(例えば、モジュール管理サーバ200)に送信する。この結果、CNN Classilier Ingerence Serverは、モデルを用いて分類処理を実行し、実行結果をCNN Classilier Moduleへと返す。そして、CNN Classilier Moduleは、検知処理の結果、例えば、Bounding Box内に撮影された利用者の識別結果(分類結果)であるClassification ResultをStoreに入力する。
【0051】
続いて、生成処理を実現するShaper Moduleは、Storeから検知処理の結果であるBounding Boxと分類処理の結果であるClassification Resultとを取得する。このような場合、Shaper Modueは、利用者の認証結果を生成し、生成した認証結果をStoreに入力する。その後、Storeは、認証結果をResultとして、Object Storageに登録する。
【0052】
このような解析パイプラインを構成した場合、例えば、Face Detectorのモデルをアップデートする場合は、Face Detector Inference Serverのモデルを更新するだけでよく、Face Detectorのコード買い替えて再度デプロイする手間を削減することができる。また、このような解析パイプラインを構成した場合、例えば、認識対象となる人物が変化した場合であっても、CNN Classifier Inference Server以外のモジュールを共通して用いることができる。
【0053】
また、上述した処理以外にも、例えば、顔認識のアルゴリズムを変更し、顔の検出、顔の特徴ベクトルを抽出、特徴ベクトルを用いたk近傍法による認識といった解析処理を行いたい場合であっても、情報提供システム1は、Video SplitterやFace Detector、 Shaperのモジュールを流用することができる。
【0054】
〔1-5.情報提供システム1のバリエーションについて〕
上述した説明では、図1に示す情報提供システム1は、図2図4に示すプラットフォームに沿って、決定処理を実現した。しかしながら、実施形態は、これに限定されるものではない。以下、実行処理を実現する実施形態のバリエーション、すなわち、情報提供システム1のバリエーションについて説明する。
【0055】
〔1-5-1.実行主体について〕
上述した説明では、複数の情報提供装置10と、キューサーバ100と、モジュール管理サーバ200と、ストレージサーバ300とが協調して実行処理を実現する処理の一例について説明した。しかしながら、実施形態は、これに限定されるものではない。例えば、情報提供装置10は、キューサーバ100と、モジュール管理サーバ200と、ストレージサーバ300との機能を発揮する単一のサーバ装置、もしくはクラウドシステムであってもよい。このような構成を有する場合、情報提供装置10は、キューサーバ100のように、解析要求をキューとして保持する機能、モジュール管理サーバ200のように、モデルの生成や管理、モデルを用いた構成処理の実行を行う機能、および、ストレージサーバ300のように、各種情報を保持する機能を有することとなる。
【0056】
また、情報提供システム1は、例えば、ストレージサーバ300を有さず、外部に設置された任意のストレージシステムを用いて、解析対象情報や解析結果を利用者Uとの間で送受信してもよい。また、情報提供システム1は、例えば、モデルを外部のサーバに保持してもよい。
【0057】
〔1-5-2.処理の推定について〕
上述した例では、情報提供装置10は、解析処理として、利用者が指定した複数の構成処理を実行した。しかしながら、実施形態は、これに限定されるものではない。例えば、情報提供装置10は、利用者から実行する解析処理の指定のみを受け付けてもよい。このような場合、情報提供装置10は、指定された解析処理を実現する複数の構成処理を特定する。例えば、情報提供装置10は、あらかじめ解析処理とその解析処理を実現するための複数の構成処理とを対応付けたテーブルを用いて、構成処理を特定してもよい。
【0058】
また、情報提供装置10は、解析対象情報と、その解析対象情報に対して実行した解析処理を構成する構成処理と、解析処理の結果との組の履歴に基づいて、実行対象となる構成処理を推定してもよい。例えば、情報提供装置10は、履歴における解析対象情報の種別や内容、各種の特徴量を算出するとともに、その特徴量に対して、解析処理の結果における精度と、その解析処理を実現するために実行された複数の構成処理の内容や順序を示す構成処理情報を対応付けた学習データを生成する。そして、情報提供装置10は、精度が所定の閾値を超える学習データの特徴量と構成処理情報とを正例とし、精度が所定の閾値を下回る学習データの特徴量と構成処理情報とを負例とする。
【0059】
そして、情報提供装置10は、所定のモデルに、正例と負例との特徴を学習させる。例えば、情報提供装置10は、正例の特徴量をモデルに入力した際に、その特徴量と対応付けた構成処理情報を出力し、かつ、負例の特徴量をモデルに入力した際に、その特徴量と対応付けた構成処理情報を出力しないようにモデルの学習を行う。
【0060】
続いて、情報提供装置10は、解析要求を受け付けると、解析対象情報の特徴量を算出し、算出した特徴量を学習済みのモデルに入力する。そして、情報提供装置10は、モデルが出力した情報を、解析処理を実現するための複数の構成処理の内容や順序を示す構成処理情報として取得する。この結果、情報提供装置10は、解析対象情報の特徴量に応じた内容の構成処理を、解析対象情報の特徴量に応じた順序で実行することができる。
【0061】
なお、構成処理情報は、解析処理を構成する構成処理そのものや順序を示すものであってもよく、構成処理の内容、すなわち、構成処理を実現するために用いるモジュールを示すものであってもよい。このような構成処理情報を用いて、モデルの学習を行うことで、情報提供装置10は、解析対象情報の特徴に応じたモジュールを用いた構成処理を実行することができる。例えば、情報提供装置10は、動画像から顔認識を行う処理について、分類処理に第1モデルを使った場合と第2モデルを使った場合とで精度に差が生じていた場合、より高い精度を発揮したモデルを分類処理に用いるモデル(すなわち、モジュール)とすることができる。
【0062】
また、情報提供装置10は、過去の履歴における解析対象情報の特徴量と、新たな解析対象情報との特徴量との類似性に応じて、実行する構成処理やその内容を適宜最適化することができる。より具体的な例を挙げて説明する。例えば、過去の履歴において、映画等の動画像から顔認識を行う処理について、分類処理に第1モジュールを使った場合、第2モジュールを使った場合よりも解析結果の精度が高く、監視カメラ等の動画像から顔認識を行う処理について、分類処理に第2モジュールを使った場合、第1モジュールを使った場合よりも解析結果の精度が高かったものとする。このような場合であっても、情報提供装置10は、解析対象情報となる動画像の特徴量が、映画等の動画像の特徴量に類似する場合、分類処理に用いるモジュールとして第1モジュールを選択し、解析対象情報となる動画像の特徴量が、監視カメラ等の動画像の特徴量に類似する場合、分類処理に用いるモジュールとして第2モジュールを選択することができる。
【0063】
また、例えば、映画等の動画像と、監視カメラ等の動画像とに対し、分割処理と、検出処理と、分類処理と、生成処理とを実行する第1解析処理、および、分類処理と、検出処理と、検出された顔の特徴ベクトルを抽出する抽出処理と、特徴ベクトルを用いたk近傍法により分類を行う近傍分類処理とを実行する第2解析処理がそれぞれ実行されていたものとする。また、映画等の動画像については、第1解析処理のほうが第2解析処理よりも精度が高く、監視カメラ等の動画像については、第2解析処理のほうが第1解析処理よりも精度が高かったものとする。このような場合であっても、情報提供装置10は、新たな解析対象情報となる動画像の特徴量が、映画等の動画像の特徴量に類似する場合は、第1解析処理を構成する構成処理を実行対象とし、新たな解析対象情報となる動画像の特徴量が、監視カメラ等の動画像の特徴量に類似する場合は、第2解析処理を構成する構成処理を実行対象とすることができる。このように、情報提供装置10は、解析対象情報の特徴に基づいて、解析処理を構成する構成処理や、構成処理の内容を最適化することで、より適切な解析結果を提供することができる。
【0064】
なお、情報提供装置10は、解析対象情報と、利用者が実行を指定した解析処理を示す解析処理情報との特徴量を用いてもよい。このような特徴量を学習対象とすることで、情報提供装置10は、同一の解析対象情報に対し、利用者が異なる複数の解析処理を所望する場合であっても、各解析処理として適切な構成処理を実行対象として決定することができる。
【0065】
〔1-5-3.クラスタ制御について〕
上述した例では、情報提供システム1は、解析要求をキューとして保持し、解析処理を実行可能な情報提供装置10(すなわち、解析処理の実行クラスタ)が、最先のキューとなる解析処理を実行した。ここで、情報提供システム1は、キューサーバ100が保持するキューの数もしくは解析処理を実行可能な計算リソース等に応じて、処理を実行する実行クラスタの数を制御してもよい。
【0066】
例えば、情報提供システム1は、キューの数が所定の閾値を下回る場合、解析処理を実行する情報提供装置10の数を所定の閾値以下とすることで、消費電力の削減等を図ってもよい。また、情報提供システム1は、キューの数が所定の閾値を上回る場合、解析処理を実行する情報提供装置10の数を増加させることで、利用者Uの待機時間を短縮させてもよい。
【0067】
例えば、情報提供システム1は、キューとして保持された解析要求が実行を要求する解析処理の内容や解析対象情報のデータ量等に基づいて、解析処理に要する計算リソースの指標値を算出する。より具体的な例を挙げると、情報提供システム1は、例えば、解析要求ごとに、必要なCPU(Central Processing Unit)の数やメモリ量、情報提供装置10の台数、計算に要する時間等に基づいて、指標値を算出し、キューとして保持された各解析要求の指標値の総和を算出する。そして、情報提供システム1は、算出された指標値の総和が所定の閾値を下回る場合、解析処理を実行する情報提供装置10の数を所定の閾値以下とし、指標値の総和が所定の閾値を上回る場合、解析処理を実行する情報提供装置10の数を増加させてもよい。
【0068】
なお、このような指標値は、例えば、解析処理を構成する構成処理が直列的に実行されるものであるか、並列的に実行可能なものであるかに応じて変化するものであってもよい。このような指標値に応じて、実行クラスタの数を変更することで、情報提供システム1は、より適切な解析処理の実行を実現することができる。
【0069】
〔1-5-4.その他〕
なお、情報提供システム1は、解析対象情報と解析処理の指定のみを受け付けた場合、解析対象情報の特徴に応じて、解析処理の内容を自動的に決定してもよい。このように、解析処理の内容を自動的に決定する場合、例えば、図3に示すJob operatorは、利用者にとってブラックボックスとなる。
【0070】
〔2.機能構成の一例〕
以下、上記した情報提供システム1が有する機能構成の一例について説明する。以下の説明では、まず、キューサーバ100とモジュール管理サーバ200とが有する機能構成の一例を説明し、その後、情報提供装置10が有する機能構成の一例について説明する。なお、以下に説明する機能構成は、あくまで一例であり、例えば、後述するすべての機能構成は、すべて情報提供装置10が有するものであってもよく、任意の単位でそれぞれ異なる装置が有する者であってもよい。
【0071】
〔2-1.キューサーバとモジュール管理サーバとの機能構成の一例〕
図5は、実施形態に係る機能構成の一例を示す第1の図である。図5に示すように、キューサーバ100は、通信部120、記憶部130、および制御部140を有する。
【0072】
通信部120は、例えば、NIC(Network Interface Card)等によって実現される。そして、通信部120は、ネットワークNと有線または無線で接続され、端末装置PC、情報提供装置10、モジュール管理サーバ200、およびストレージサーバ300との間で情報の送受信を行う。
【0073】
記憶部130は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。また、記憶部130は、キューデータ131を記憶する。キューデータ131は、キューイングされた解析要求である。
【0074】
説明を続ける。制御部140は、コントローラ(controller)であり、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)等のプロセッサによって、キューサーバ100内部の記憶装置に記憶されている各種プログラムがRAM等を作業領域として実行されることにより実現される。また、制御部140は、コントローラ(controller)であり、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現されてもよい。
【0075】
図5に示すように、制御部140は、保持部141、および変更部142を有する。保持部141は、利用者から受け付けた所定の解析処理の実行を要求する解析要求を一時的に保持する。例えば、保持部141は、解析対象となる解析対象情報と解析処理と要求元の利用者とを示す解析要求を受け付けると、キューデータ131として記憶部130に保持する。なお、保持部141は、解析処理として実行させる複数の構成処理や構成処理の内容を示す解析要求を保持してもよい。
【0076】
そして、保持部141は、情報提供装置10から解析要求の配信要求を受け付けると、キューデータ131として登録された解析要求のうち、所定の条件を満たす解析要求を情報提供装置10へと提供する。例えば、保持部141は、キューデータ131のうち、保持日時が最も古い解析要求(すなわち、最先の解析要求)を提供してもよい。また、保持部141は、各種の条件に応じて、キューデータ131として保持する解析要求を提供してもよい。例えば、保持部141は、ユーザが解析要求に対してあらかじめ設定された重要度を参照し、重要度が最も高い解析要求を優先的に情報提供装置10へと提供してもよい。また、保持部141は、解析処理の内容等から、解析に要する時間や計算リソース量を推定し、推定結果に応じた順序で、解析要求を情報提供装置10へと送信してもよい。また、保持部141は、複数の条件の組み合わせに応じた順序で、解析要求を提供してもよい。例えば、保持部141は、緊急度が高い程、もしくは、保持日時が古い程、解析要求をより優先的に提供してもよい。このような解析要求の提供順序は、各種任意の条件を採用することができる。
【0077】
変更部142は、解析処理を実行可能な計算リソース、または、保持された解析要求の数に基づいて、解析処理を実行させる情報提供装置10等の実行クラスタの数を変更する。例えば、変更部142は、キューデータ131を参照し、キューイングされた解析要求の数を計数する。また、変更部142は、各解析要求の内容を参照し、キューイングされた解析要求をすべて所定の時間内に実行するために必要な計算リソースの計算を行う。
【0078】
そして、変更部142は、解析要求の数や計算リソースの量に応じて、解析処理を実行する実行クラスタの数を制御する。例えば、変更部142は、解析要求の数や計算リソースの量が所定の閾値を下回る場合は、複数の情報提供装置10のうち所定の数の情報提供装置10以外に対し、解析処理の実行を停止するよう要求し、解析要求の数や計算リソースの量が所定の閾値を上回る場合は、解析処理を実行する情報提供装置10の数が所定の数(例えば、解析要求の数や計算リソースの量に応じた数)となるように、情報提供装置10に対し、解析処理の実行を要求してもよい。
【0079】
続いて、モジュール管理サーバ200が有する機能構成の一例について説明する。図5に示すように、モジュール管理サーバ200は、通信部220、記憶部230、および制御部240を有する。
【0080】
通信部220は、通信部120と同様に、例えば、NIC等によって実現される。そして、通信部220は、ネットワークNと有線または無線で接続され、端末装置PC、情報提供装置10、キューサーバ100、およびストレージサーバ300との間で情報の送受信を行う。
【0081】
記憶部230は、例えば、RAM、フラッシュメモリ等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。また、記憶部230は、学習データ231、およびモジュールデータベース232を記憶する。なお、図5に示す例では、モジュール管理サーバ200は、自装置内の記憶部230にモジュールデータベース232を記憶しているが、実施形態は、これに限定されるものではない。モジュール管理サーバ200は、自装置内の記憶部230ではなく、各種所定の外部ストレージに、モジュールデータベース232を登録していてもよい。
【0082】
学習データ231は、モジュールの生成に用いるための学習データである。例えば、モジュール管理サーバ200は、ネットワーク上から利用可能な静止画像、動画像、ニュース記事、各種投稿等のコンテンツをクロールし、収集したコンテンツを学習データ231として記憶部230に登録する。なお、モジュール管理サーバ200は、利用者が登録した各種のコンテンツを学習データ231として記憶部230に登録してもよい。
【0083】
モジュールデータベース232には、構成処理を実現するための各種モジュールが登録される。例えば、図6は、実施形態に係るモジュールデータベースに登録される情報の一例を示す図である。図6に示すように、モジュールデータベース232には、「モジュールID(Identifier)」、「対応処理」、「学習内容」、「入力形式」、「出力形式」、および「モジュールデータ」が登録される。
【0084】
ここで、「モジュールID」とは、モジュールを識別する識別子である。また、「対応処理」とは、対応付けられた「モジュールID」が識別するモジュールが、どの構成処理に用いられるモジュールであるかを示す。また、「学習内容」とは、モジュールの生成に用いられた学習データがどのような学習データであったかを示す情報である。また、「入力形式」とは、モジュールに対し入力した入力データの内容を示す情報であり、たとえば、データの種別や内容、データの次元数、入力データとした1つまたは複数種類の情報を識別するための情報である。また、「出力形式」とは、入力データが入力した際にモジュールが出力する出力データの内容を示す情報であり、例えば、出力データが何を示しているか、出力データの次元数等を識別するための情報である。また、「モジュールデータ」とは、モジュールのデータであり、例えば、DNNを構成するノードの接続関係や接続係数の値を示す情報である。
【0085】
例えば、図6に示す例では、モジュールID「MID1」、対応処理「顔検出」、学習内容「正面」、入力形式「入力形式#1」、出力形式「出力形式#1」、モジュールデータ「MD1」が対応付けて登録されている。このような情報は、モジュールID「MID1」が示すモジュールが、モジュールデータ「MD1」より実現されるモジュールであり、対応処理「顔検出」が示す構成処理を実現するためのモジュールである旨を示す。また、このような情報は、かかるモジュールが、学習内容「正面」が示す学習データ、例えば、人物の正面が撮影された画像を学習データとした学習が行われた旨を示す。また、このような情報は、かかるモジュールが、入力形式「入力形式#1」が示す形式の入力データを入力すると、出力形式「出力形式#1」が示す形式の出力データを出力する旨を示す。
【0086】
なお、図6に示す例では、「入力形式#1」といった概念的な値を記載したが、実際には、モジュールデータベース232には、モジュールに入力する入力データが、どのような種別のデータであるか、何次元のデータであるか、何種類のデータをどのような態様で入力するかといった情報、すなわち、学習時に入力データとした情報の形式を示す各種のパラメータが登録される。また、図6では、「出力形式#1」といった概念的な値を記載したが、実際には、モジュールデータベース232には、モジュールが出力する出力データが、どのような情報をどのように示すデータであるか、何次元のデータであるか、何種類のデータをどのような態様で出力するかといった情報、すなわち、学習時に出力データとした情報の形式を示す各種のパラメータが登録される。
【0087】
図5に戻り説明を続ける。制御部240は、コントローラであり、例えば、CPU、MPU等のプロセッサによって、モジュール管理サーバ200内部の記憶装置に記憶されている各種プログラムがRAM等を作業領域として実行されることにより実現される。また、制御部240は、コントローラであり、例えば、ASICやFPGA等の集積回路により実現されてもよい。
【0088】
図5に示すように、制御部240は、取得部241、学習部242、登録部243、および提供部244を有する。
【0089】
取得部241は、所定の記憶装置に登録された学習データに対して利用者が付与したラベルを取得する。例えば、取得部241は、各種のクロール技術を用いて、学習データとなる各種のコンテンツを収集し、収集したコンテンツを学習データ231として記憶部230に登録する。なお、取得部241は、端末装置PCから、利用者が指定した学習データとなるコンテンツを取得してもよい。
【0090】
また、取得部241は、端末装置PCからラベルの付与対象となる学習データの条件を受け付けた場合、条件に合致する学習データ231を端末装置PCに配信する。そして、取得部241は、各学習データ231に対して利用者が付与したラベルを取得する。なお、取得部241は、入力データとする学習データと、その入力データが入力された際に出力データ(もしくはその出力データの指標)となる学習データとの組に対し、その組が正例か負例かといったラベルを付与したデータを取得してもよい。このようなラベルの付与態様については、モジュールの学習手法により、任意の設定が採用可能である。
【0091】
学習部242は、ラベルと、学習データとを用いて、複数の処理のいずれかの処理で用いるモジュールを生成する。例えば、学習部242は、端末装置PCから、学習対象となるモジュールの指定を受け付ける。このような場合、学習部242は、モジュールデータベース232からモジュールを読み出し、学習データとラベルとを用いて、モジュールの修正・再生成(すなわち、モジュールの学習)を実行する。そして、登録部243は、学習されたモジュールを所定のモジュール記憶装置に登録する。例えば、登録部243は、モジュールデータベース232に登録された再実装前のモジュールを、再実装後のモジュールで更新する。
【0092】
なお、学習部242は、新たなモジュールを学習する場合や、更新前のモジュールとは異なるモジュールとして新たなモジュールをモジュールデータベース232に登録する場合、対応処理や学習内容、入力形式や出力形式の登録を端末装置PCから受け付ける。そして、学習部242は、受け付けた入力形式や出力形式に沿って、学習データが有する特徴をモジュールに学習させる。その後、登録部243は、学習済みのモジュールに対し、端末装置PCから受け付けた対応処理や学習内容と対応付けてモジュールデータベース232に登録してもよい。
【0093】
提供部244は、モジュール、もしくはモジュールを用いた構成処理の結果を提供する。例えば、情報提供装置10が自装置内でモジュールを用いた構成処理を実行する場合、提供部244は、配信対象となるモジュールの指定を受け付ける。このような場合、提供部233は、指定されたモジュールのモジュールデータを情報提供装置10に送信する。
【0094】
一方、提供部244は、情報提供装置10が自装置等でモジュールを用いた構成処理を実行しない場合、提供部244は、構成処理を実行するモジュールの指定と、モジュールに入力する入力データとを受け付ける。このような場合、提供部244は、モジュールデータベース232から指定されたモジュールを読み出し、読みだしたモジュールに対して、入力データを入力する。そして、提供部244は、モジュールが出力した出力データを、構成処理の実行結果として、情報提供装置10へと提供する。
【0095】
なお、提供部244は、入力データをそのままモジュールに入力してもよく、モジュールと対応付けられた入力形式に応じて入力データから生成したデータをモジュールに入力してもよい。なお、提供部244は、出力データをそのまま構成処理の実行結果として提供してもよく、モジュールと対応付けられた出力形式に基づいて、モジュールが出力した出力データを変形した各種の情報を構成処理の実行結果としてもよい。
【0096】
〔2-2.情報提供装置の機能構成の一例〕
続いて、情報提供装置10が有する機能構成の一例について説明する。図7は、実施形態に係る機能構成の一例を示す第2の図である。図7に示すように、情報提供装置10は、通信部20、記憶部30、および制御部40を有する。
【0097】
通信部20は、通信部120、220と同様に、例えば、NIC等によって実現される。そして、通信部20は、ネットワークNと有線または無線で接続され、端末装置PC、キューサーバ100、モジュール管理サーバ200、およびストレージサーバ300との間で情報の送受信を行う。
【0098】
記憶部30は、例えば、RAM、フラッシュメモリ等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。また、記憶部30は、解析処理データベース31、および解析履歴データベース32を記憶する。
【0099】
解析処理データベース31には、解析処理と、解析処理を構成する構成情報とが対応付けて登録されている。例えば、図8は、実施形態に係る解析処理データベースに登録される情報の一例を示す図である。図8に示すように、解析処理データベース31には、「解析処理ID」、「処理内容」、「実行処理」、および「実行順序」が登録される。なお、図8に示す情報以外にも、解析処理データベース31には、各処理の実行結果に含まれる情報の内容や、各処理を実現するためのモジュールを示すモジュールID等が対応付けて登録されていてもよい。
【0100】
「解析処理ID」とは、解析処理を識別するための識別子である。また、「処理内容」とは、解析処理がどのような処理であるかを示す情報である。また、「実行処理」とは、解析処理を実現する複数の構成処理を示す情報である。また、「実行順序」とは、各構成処理をどのような順序で実行するかを示す情報である。
【0101】
例えば、図8に示す例では、解析処理ID「AID1」が示す解析処理が、動画像から利用者の顔認識を行う「顔認識」処理であり、その解析処理が、実行処理「分割処理」、「検知処理」、「分類処理」および「生成処理」を順に実行することで実現される旨が登録されている。
【0102】
図7に戻り、説明を続ける。解析履歴データベース32には、解析処理の実行結果等が登録されている。例えば、解析履歴データベース32は、解析処理の対象となった解析対象情報と、解析処理を実現するために実行された複数の処理と、解析処理の結果とが対応付けて登録されているものとする。
【0103】
制御部40は、コントローラであり、例えば、CPU、MPU等のプロセッサによって、情報提供装置10内部の記憶装置に記憶されている各種プログラムがRAM等を作業領域として実行されることにより実現される。また、制御部40は、コントローラであり、例えば、ASICやFPGA等の集積回路により実現されてもよい。
【0104】
図7に示す例では、制御部40は、受付部41、決定部42、実行部43、通知部44および推定部45を有する。
【0105】
受付部41は、解析処理の解析要求である解析要求を受け付ける。例えば、受付部41は、実行部43により解析処理を構成するすべての構成処理が実行され、通知部44により利用者に解析処理の完了が通知された場合、キューサーバ100に対し、解析要求の配信を要求する。なお、受付部41は、例えば、情報提供装置10が有する計算リソースが所定の閾値を超えた際に、キューサーバ100に対して、解析要求の配信を要求する。そして、受付部41は、キューイングされた解析要求のうち、最先の解析要求等、所定の条件を満たす解析要求を受け付ける。この結果、実行部43は、保持された解析要求のうち保持日時が最も古い解析要求に従って、所定の解析処理を実行することとなる。
【0106】
決定部42は、解析処理を行う際に実行される複数の処理であって、それぞれ独立して実行可能な複数の処理の内容をそれぞれ決定する。例えば、決定部42は、解析要求を受け付けると、解析要求が実行を要求する解析処理を特定する。そして、決定部42は、特定した解析処理を構成する複数の構成処理を解析処理データベース31から特定する。
【0107】
ここで、解析処理が直列的に実行させる複数の構成処理により実現される場合、決定部42は、直列的に実行させる複数の構成処理、例えば、それぞれ先に実行された処理の結果を用いる構成処理を含む複数の構成処理を実行対象として決定することとなる。また、解析処理が平行して実行可能な複数の構成処理を含む場合、決定部42は、並列して実行可能な複数の構成処理を実行対象として決定することとなる。
【0108】
なお、決定部42は、同一の構成処理を実現するモジュールが複数存在する場合、すなわち、モジュールデータベース232に複数のモジュールが登録されている場合には、いずれのモジュールを使用するかを決定してもよい。例えば、決定部42は、モジュールデータベースに、検出処理を実現するモジュールが複数存在する場合、これらのモジュールの中から、実際に検出処理を実現するモジュールを決定してもよい。より具体的な例を挙げると、決定部42は、解析要求を介して、利用者により使用するモジュールが指定されている場合、かかるモジュールを使用した構成処理の実行を決定してもよい。
【0109】
また、決定部42は、指定されてるモジュールとは異なるモジュールを用いた構成処理の実行を決定してもよい。また、決定部42は、ある構成処理を実行するモジュールとして所定のモジュールが基準となるモジュールとして登録されている場合、かかるモジュールとは異なるモジュールを用いた構成処理の実行を決定してもよい。例えば、決定部42は、ある構成処理を実現するモジュールとして、指定されたモジュールあるいは基準となるモジュールよりも、解析処理の精度が向上すると推定部45により推定されたモジュールが存在する場合、かかるモジュールを用いて構成処理を実行する旨を決定してもよい。
【0110】
ここで、ある構成処理に用いるモジュールを変更する場合、その構成処理の処理結果を用いて実行する他の構成処理への影響を抑える必要がある。そこで、決定部42は、変更前のモジュールと同じ形式の入力情報から、変更前のモジュールと同じ形式の出力情報であって、変更前のモジュールとは異なる内容の出力情報を生成するように生成されたモジュールに変更する。例えば、決定部42は、変更前のモジュールと、出力データの形式や次元数等が共通するモジュールを変更後のモジュールとして採用すればよい。
【0111】
実行部43は、決定部42により内容が決定された複数の構成処理を実行することで、所定の解析処理を実行する。例えば、実行部43は、決定部42が使用を決定したモジュールを用いて、構成処理を実行する。例えば、決定部4、実行を決定した複数の構成処理と、各構成処理を実現するために使用するモジュールと、各構成処理を実行する順序とを特定する。そして、実行部4は、特定された内容に従って、構成処理を実行する。
【0112】
例えば、実行部4は、解析対象情報をストレージサーバ300から取得し、取得した解析対象情報をモジュール管理サーバ200に送信するとともに、最初に実行する構成処理と、その構成処理に用いるモジュールとを通知する。このような処理の結果、モジュール管理サーバ200は、解析対象情報に対し、通知されたモジュールを用いた構成処理を実行し、実行結果を情報提供装置10へと送信する。
【0113】
続いて、実行部4は、最初の処理の実行結果をモジュール管理サーバ200に送信するとともに、次に実行する構成処理とその構成処理に用いるモジュールとを通知する。このような処理の結果、モジュール管理サーバ200は、最初の構成処理の実行結果に対し、通知されたモジュールを用いた構成処理を実行し、実行結果を情報提供装置10へと送信する。このような処理を繰り返すことで、実行部43は、構成処理を実現することとなる。
【0114】
なお、実行部4は、モジュール管理サーバ200に解析対象情報の所在を示す情報を送信するとともに、各構成処理と、構成処理を示すモジュールと、構成処理を実行する順序とを通知してもよい。このような場合、モジュール管理サーバ200は、ストレージサーバ300から解析対象情報をダウンローし、各構成処理を実行し、実行結果をストレージサーバ300に登録する。そして、モジュール管理サーバ200は、実行結果の所在を情報提供装置10へと通知することとなる。
【0115】
また、実行部4は、特定されたモジュールをモジュール管理サーバ200から取得し、自装置内で、構成処理を実行してもよい。このような場合、実行部4は、各構成処理の実行結果をストレージサーバ300に登録することとなる。
【0116】
通知部44は、解析処理の実行結果が外部記憶装置に登録された場合は、利用者Uに対して解析処理が完了した旨を通知する。例えば、通知部44は、解析処理が完了し、解析結果がストレージサーバ300に登録されると、解析結果の所在を端末装置PCへと送信する。
【0117】
推定部45は、所定の解析処理の対象となった対象情報と、所定の解析処理を実現するために実行された複数の処理と、対象情報の解析処理の結果との履歴に基づいて、実行対象となる処理を推定する。例えば、実行部43は、実行した解析処理の内容と、解析処理として実行した複数の構成処理の内容や順番、構成処理を実現するために用いたモジュール等を解析履歴として解析履歴データベース32に登録する。また、実行部43は、処理結果の精度を評価するための各種公知の評価技術を用いて、解析結果の精度を評価し、評価結果を解析履歴データベース32に登録する。なお、実行部43は、利用者から受け付けた評価を評価結果としてもよい。
【0118】
このような情報が解析履歴データベース32に登録されている場合、推定部45は、解析対象情報の傾向と、解析処理の内容と、解析処理として実行した構成処理の内容、順序、構成処理に用いたモジュールを示す構成処理情報と、解析処理の評価結果との関係性を所定のモジュールに学習させる。例えば、推定部45は、解析対象情報の傾向と、解析処理の内容とを入力した際に、解析処理の精度がより高くなる構成処理情報を出力するようにモジュールを学習させる。そして、推定部45は、新たな解析処理を実行する場合、解析対象情報の傾向に基づいて、解析処理の精度がより高くなる構成処理を示す構成処理情報を取得する。このような処理を行った場合、決定部42は、推定部45が取得した構成処理情報に基づいて、実行対象となる構成処理の内容、順序、およびモジュールを決定することとなる。
【0119】
〔3.情報提供装置が実行する処理の流れの一例〕
続いて、図9を用いて、情報提供装置10が実行する処理の流れについて説明する。図9は、実施形態に係る情報提供装置が実行する処理の流れの一例を示すフローチャートである。
【0120】
例えば、情報提供装置10は、キューから解析要求を取得し(ステップS101)、解析処理として実行する複数の処理であって、それぞれ個別に実行する処理を特定する(ステップS102)。すなわち、情報提供装置10は、複数の構成処理を特定する。そして、情報提供装置10は、各処理の内容を個別に決定する(ステップS103)。例えば、情報提供装置10は、どのモジュールを用いてどの構成処理を実現するかを決定する。そして、情報提供装置10は、決定した処理を行うことで、解析処理を実現し(ステップS104)、処理を終了する。
【0121】
〔4.変形例〕
上記では、情報提供システム1による処理の一例について説明した。しかしながら、実施形態は、これに限定されるものではない。以下、情報提供システム1が実行する処理のバリエーションについて説明する。
【0122】
〔4-1.解析処理のバリエーションについて〕
上述した説明では、解析処理の一例として、動画像に撮影された人物の顔を用いた顔認識処理の一例について説明した。しかしながら、実施形態は、これに限定されるものではない。情報提供システム1は、それぞれ個別に実行可能な複数の構成処理により実現される処理、すなわち、解析処理であれば、任意の内容および目的の処理について、上述した実行処理を適用してよい。
【0123】
例えば、情報提供システム1は、動画像に字幕を付与する処理を解析処理としてもよい。このような解析処理を実現する場合、情報提供システム1は、例えば、音声付きの動画像から音声を抽出する抽出処理、音声データから音声のパワースペクトルや特徴量を生成する生成処理、音声のパワースペクトルや特徴量から、音声に含まれる言葉を特定する特定処理、特定しした言葉の字幕データを生成する字幕生成処理、および、字幕データを動画像に重畳した動画像を生成する動画生成処理等を構成処理として実行することとなる。
【0124】
また、情報提供システム1は、音声、静止画像、動画像、テキスト、各種のログデータ等、任意の形式の情報を解析対象情報としてもよく、これら任意の情報に対して任意の内容の構成処理を実行してよい。
【0125】
〔4-2.その他〕
また、上記実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、逆に、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
【0126】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【0127】
また、上記してきた各実施形態は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【0128】
〔4-3.プログラム〕
また、上述した実施形態に係る情報提供装置10は、例えば図10に示すような構成のコンピュータ1000によって実現される。図10は、ハードウェア構成の一例を示す図である。コンピュータ1000は、出力装置1010、入力装置1020と接続され、演算装置1030、一次記憶装置1040、二次記憶装置1050、出力IF(Interface)1060、入力IF1070、ネットワークIF1080がバス1090により接続された形態を有する。
【0129】
演算装置1030は、一次記憶装置1040や二次記憶装置1050に格納されたプログラムや入力装置1020から読み出したプログラム等に基づいて動作し、各種の処理を実行する。一次記憶装置1040は、RAM等、演算装置1030が各種の演算に用いるデータを一次的に記憶するメモリ装置である。また、二次記憶装置1050は、演算装置1030が各種の演算に用いるデータや、各種のデータベースが登録される記憶装置であり、ROM(Read Only Memory)、HDD(Hard Disk Drive)、フラッシュメモリ等により実現される。
【0130】
出力IF1060は、モニタやプリンタといった各種の情報を出力する出力装置1010に対し、出力対象となる情報を送信するためのインタフェースであり、例えば、USB(Universal Serial Bus)やDVI(Digital Visual Interface)、HDMI(登録商標)(High Definition Multimedia Interface)といった規格のコネクタにより実現される。また、入力IF1070は、マウス、キーボード、およびスキャナ等といった各種の入力装置1020から情報を受信するためのインタフェースであり、例えば、USB等により実現される。
【0131】
なお、入力装置1020は、例えば、CD(Compact Disc)、DVD(Digital Versatile Disc)、PD(Phase change rewritable Disk)等の光学記録媒体、MO(Magneto-Optical disk)等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等から情報を読み出す装置であってもよい。また、入力装置1020は、USBメモリ等の外付け記憶媒体であってもよい。
【0132】
ネットワークIF1080は、ネットワークNを介して他の機器からデータを受信して演算装置1030へ送り、また、ネットワークNを介して演算装置1030が生成したデータを他の機器へ送信する。
【0133】
演算装置1030は、出力IF1060や入力IF1070を介して、出力装置1010や入力装置1020の制御を行う。例えば、演算装置1030は、入力装置1020や二次記憶装置1050からプログラムを一次記憶装置1040上にロードし、ロードしたプログラムを実行する。
【0134】
例えば、コンピュータ1000が情報提供装置10として機能する場合、コンピュータ1000の演算装置1030は、一次記憶装置1040上にロードされたプログラムを実行することにより、制御部40の機能を実現する。
【0135】
〔5.効果〕
上述したように、情報提供システム1は、所定の解析処理を行う際に実行される複数の構成処理であって、それぞれ独立して実行可能な複数の構成処理の内容をそれぞれ決定する。そして、情報提供システム1は、内容が決定された複数の構成処理を実行することで、所定の解析処理を実行する。このような処理の結果、情報提供システム1は、解析処理を構成する構成処理ごとに、最適化や更新を容易にすることができるので、解析処理の実現を容易にすることができる。
【0136】
また、情報提供システム1は、先に実行された構成処理の結果を用いる構成処理を含む複数の構成処理の内容を決定する。また、情報提供システム1は、並列して実行可能な複数の構成処理の内容を決定する。この結果、情報提供システム1は、直列的もしくは並列的に実行させる構成処理の最適化や更新を容易にすることができるので、解析処理の実現を容易にすることができる。
【0137】
また、情報提供システム1は、構成処理を実現する複数のモジュールのうち、いずれのモジュールを使用するかを決定し、使用を決定したモジュールを用いて、構成処理を実行する。また、情報提供システム1は、複数の構成処理を実行するモジュールのうち、利用者が指定した構成処理を実現するモジュールを他のモジュールに変更する。このような処理の結果、情報提供システム1は、構成処理で用いるモジュールの最適化や更新を容易にすることができるので、解析処理の実現を容易にすることができる。
【0138】
また、情報提供システム1は、変更前のモジュールと同じ形式の入力情報から、変更前のモジュールと同じ形式の出力情報であって、変更前のモジュールとは異なる内容の出力情報を生成するように生成されたモジュールに変更する。このような処理の結果、情報提供システム1は、ある構成処理を実現するモジュールの変更を行った場合であっても、他の構成処理の変更を不要もしくは最小限に留める結果、解析処理の実現を容易にすることができる。
【0139】
また、情報提供システム1は、動画像を分割する分割構成処理、当該分割構成処理により分割された動画像から人物の顔を検知する検知構成処理、分割構成処理により分割された動画像と検知構成処理による検知結果とから顔の分類を行う分類構成処理、および、検知構成処理による検知結果と分類構成処理による分類結果とから動画像に撮影された人物の認証結果を生成する生成構成処理のうち、いずれかの構成処理の内容を変更する。このような処理の結果、情報提供システム1は、顔認識処理の最適化や内容の変更を容易にすることができる。
【0140】
また、情報提供システム1は、所定の解析処理の対象となった対象情報と、当該所定の解析処理を実現するために実行された複数の構成処理と、当該対象情報の解析処理の結果との履歴に基づいて、実行対象となる構成処理を推定する。このような処理の結果、情報提供システム1は、利用者が適切な構成処理の内容を指定せずとも、解析処理の最適化を容易にすることができる。
【0141】
また、情報提供システム1は、利用者から所定の解析処理の要求を一時的に保持し、保持した要求のうち所定の条件を満たす要求を取得し、取得した要求に従って、所定の解析処理を実行する。このため、情報提供システム1は、キューイングされた解析処理を実行することができる。
【0142】
また、情報提供システム1は、利用者が所定の解析処理の対象となる対象情報を登録した所定の外部記憶装置から当該対象情報を取得して当該対象情報の解析処理を実行し、当該解析処理の実行結果を外部記憶装置に登録する。そして、情報提供システム1は、解析処理の実行結果を外部記憶装置に登録した場合は、利用者に対して解析処理が完了した旨を通知する。この結果、情報提供システム1は、解析処理の数が増加した場合にも、柔軟な対応を実現することができる。
【0143】
また、情報提供システム1は、それぞれ個別に解析処理を実行可能な実行装置を有する。このため、情報提供システム1は、解析処理の並列的な実行を実現することができる。
【0144】
また、情報提供システム1は、解析処理を実行可能な計算リソース、または、保持する要求の数に基づいて、解析処理を実行させる実行装置の数を変更する。このため、情報提供システム1は、システムのスケーリングを柔軟にすることができる。
【0145】
また、情報提供システム1は、所定の記憶装置に登録された学習データに対して利用者が付与したラベルを取得し、ラベルと、学習データとを用いて、複数の構成処理のいずれかの構成処理で用いるモジュールを学習する。そして、情報提供システム1は、学習されたモジュールを所定のモジュール記憶装置に登録し、モジュール記憶装置に登録されたモジュールの中から、複数の構成処理で使用するモジュールを決定する。このため、情報提供システム1は、モジュールの生成や更新から、モジュールのデプロイまでを容易にすることができる。
【0146】
以上、本願の実施形態のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、発明の開示の欄に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
【0147】
また、上記してきた「部(section、module、unit)」は、「手段」や「回路」などに読み替えることができる。例えば、付与部は、特定手段や特定回路に読み替えることができる。
【符号の説明】
【0148】
1 情報提供システム
10 情報提供装置
20、120、220 通信部
30、130、230 記憶部
31 解析処理データベース
32 解析履歴データベース
40、140、240 制御部
41 受付部
42 決定部
43 実行部
44 通知部
45 推定部
100 キューサーバ
131 キューデータ
141 保持部
142 変更部
200 モジュール管理サーバ
231 学習データ
232 モジュールデータベース
241 取得部
242 学習部
243 登録部
244 提供部
300 ストレージサーバ
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10