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

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

▶ 日本電気株式会社の特許一覧

特許7670164情報処理装置、情報処理システム、情報処理方法、及び、プログラム
<>
  • 特許-情報処理装置、情報処理システム、情報処理方法、及び、プログラム 図1
  • 特許-情報処理装置、情報処理システム、情報処理方法、及び、プログラム 図2
  • 特許-情報処理装置、情報処理システム、情報処理方法、及び、プログラム 図3
  • 特許-情報処理装置、情報処理システム、情報処理方法、及び、プログラム 図4
  • 特許-情報処理装置、情報処理システム、情報処理方法、及び、プログラム 図5
  • 特許-情報処理装置、情報処理システム、情報処理方法、及び、プログラム 図6
  • 特許-情報処理装置、情報処理システム、情報処理方法、及び、プログラム 図7
  • 特許-情報処理装置、情報処理システム、情報処理方法、及び、プログラム 図8
  • 特許-情報処理装置、情報処理システム、情報処理方法、及び、プログラム 図9
  • 特許-情報処理装置、情報処理システム、情報処理方法、及び、プログラム 図10
  • 特許-情報処理装置、情報処理システム、情報処理方法、及び、プログラム 図11
  • 特許-情報処理装置、情報処理システム、情報処理方法、及び、プログラム 図12
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-04-21
(45)【発行日】2025-04-30
(54)【発明の名称】情報処理装置、情報処理システム、情報処理方法、及び、プログラム
(51)【国際特許分類】
   G06N 20/00 20190101AFI20250422BHJP
【FI】
G06N20/00
【請求項の数】 10
(21)【出願番号】P 2023562008
(86)(22)【出願日】2021-11-18
(86)【国際出願番号】 JP2021042390
(87)【国際公開番号】W WO2023089725
(87)【国際公開日】2023-05-25
【審査請求日】2024-05-09
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100178216
【弁理士】
【氏名又は名称】浜野 絢子
(74)【代理人】
【識別番号】100149618
【弁理士】
【氏名又は名称】北嶋 啓至
(72)【発明者】
【氏名】渡邊 義和
【審査官】千葉 久博
(56)【参考文献】
【文献】特開2017-182578(JP,A)
【文献】特開2017-27279(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 20/00
(57)【特許請求の範囲】
【請求項1】
少なくとも一部が推論の対象を含むデータを複数用いて構成される構成データを生成するデータ構成手段と、
前記構成データに含まれる前記対象に対する推論を実行する構成データ推論手段と、
少なくとも一部の前記データにおいて、前記データに含まれる前記対象に対する推論を実行するデータ推論手段と、
前記構成データを構成する前記データそれぞれに対して、前記構成データに含まれる前記対象に対する推論が成功したか失敗したかを判定し、
前記構成データに含まれる前記対象に対する推論が成功した前記データに含まれる前記対象に対する推論として、前記構成データに含まれる前記対象に対する推論結果と、前記構成データとに基づいて、前記対象に対する推論を実行し、
前記構成データに含まれる前記対象に対する推論が失敗した前記データに含まれる前記対象に対する推論として、前記データに含まれる前記対象に対する推論結果に基づいて前記対象に対する推論を実行する
対象推論手段と
を含む情報処理装置。
【請求項2】
前記構成データに含まれる前記対象に対する推論が失敗した前記データを複数用いて構成される第2構成データを生成する第2データ構成手段と、
前記第2構成データに含まれる前記対象に対する推論を実行する第2構成データ推論手段と
をさらに含み、
前記対象推論手段は、
前記第2構成データを構成する前記データそれぞれに対して、前記第2構成データに含まれる前記対象に対する推論が成功したか失敗したかを判定し、
前記第2構成データに含まれる前記対象に対する推論が成功した前記データに含まれる前記対象に対する推論として、前記第2構成データに含まれる前記対象に対する推論結果と、前記第2構成データとに基づいて、前記対象に対する推論を実行し、
前記第2構成データに含まれる前記対象に対する推論が失敗した前記データに含まれる前記対象に対する推論として、前記データに含まれる前記対象に対する推論結果に基づいて前記対象に対する推論を実行する
請求項1に記載の情報処理装置。
【請求項3】
前記対象推論手段は、前記構成データ推論手段、及び、前記データ推論手段の少なくとも一方における推論の状況に基づいて、前記対象推論手段、前記データ構成手段、前記構成データ推論手段、及び、前記データ推論手段の少なくとも一つにおける動作を切り替える
請求項1又は2に記載の情報処理装置。
【請求項4】
推論の状況は、推論精度又は推論速度であり、
動作の切り替えは、前記対象推論手段における前記構成データに含まれる前記対象に対する推論が成功したか失敗したかの判定に用いる閾値の変更、前記構成データ推論手段及び前記データ推論手段の少なくとも一方の推論に用いられるモデルの変更、前記データ構成手段における前記構成データのサイズの変更、又は、これらの組合せである、
請求項3に記載の情報処理装置。
【請求項5】
所定のデータセットを用いて、構成データ推論用モデルを生成するための構成データ学習用データセットと、データ推論用モデルを生成するためのデータ学習用データセットとを生成するデータセット生成手段と、
前記構成データ学習用データセット及び前記データ学習用データセットを保存するデータセット保存手段と、
前記構成データ学習用データセットを用いた機械学習により構成データ推論用モデルを生成し、前記データ学習用データセットを用いた機械学習によりデータ推論用モデルを生成するモデル学習手段と、
前記構成データ推論用モデルと、前記データ推論用モデルとを保存するモデル保存手段と、
前記データを取得するデータ取得手段と
を含み、
前記データ構成手段は、前記データ取得手段から取得した前記データで構成される前記構成データを生成し、
前記構成データ推論手段は、前記モデル保存手段に保存された前記構成データ推論用モデルを用いて前記構成データに含まれる前記対象に対する推論を実行し、
前記データ推論手段は、前記データ構成手段に指示された前記データを前記データ取得手段から取得し、取得した前記データに含まれる前記対象に対する推論を前記モデル保存手段に保存された前記データ推論用モデルを用いて実行する
請求項1ないし4のいずれか1項に記載の情報処理装置。
【請求項6】
前記データは、二次元データの画像であり、
前記データ構成手段は、複数の画像を二次元の平面上に並べた構成画像を生成し、
前記構成データ推論手段は、構成画像に含まれる前記対象に対する推論として、物体検出タスクを実行し、
前記データ推論手段は、画像に含まれる前記対象に対する推論として、画像分類タスクを実行する
請求項1ないし5のいずれか1項に記載の情報処理装置。
【請求項7】
請求項1ないし6のいずれか1項に記載の情報処理装置と、
少なくとも一部に前記対象を含む複数の前記データを前記情報処理装置に出力するデータ取得装置と、
前記情報処理装置から前記対象に対する推論結果を取得し、取得した推論結果に基づいて前記対象に関連する認識を実行する認識装置と
を含む情報処理システム。
【請求項8】
情報処理装置が、
少なくとも一部が推論の対象を含むデータを複数用いて構成される構成データを生成し、
前記構成データに含まれる前記対象に対する推論を実行し、
少なくとも一部の前記データにおいて、前記データに含まれる前記対象に対する推論を実行し、
前記構成データを構成する前記データそれぞれに対して、前記構成データに含まれる前記対象に対する推論が成功したか失敗したかを判定し、
前記構成データに含まれる前記対象に対する推論が成功した前記データに含まれる前記対象に対する推論として、前記構成データに含まれる前記対象に対する推論結果と、前記構成データとに基づいて、前記対象に対する推論を実行し、
前記構成データに含まれる前記対象に対する推論が失敗した前記データに含まれる前記対象に対する推論として、前記データに含まれる前記対象に対する推論結果に基づいて前記対象に対する推論を実行する
情報処理方法。
【請求項9】
情報処理装置が、請求項8の方法を実行し、
データ取得装置が、少なくとも一部に前記対象を含む複数の前記データを前記情報処理装置に出力し、
認識装置が、前記情報処理装置から前記対象の推論結果を取得し、取得した推論結果に基づいて前記対象に関連する認識を実行する
情報処理方法。
【請求項10】
少なくとも一部が推論の対象を含むデータを複数用いて構成される構成データを生成する処理と、
前記構成データに含まれる前記対象に対する推論を実行する処理と、
少なくとも一部の前記データにおいて、前記データに含まれる前記対象に対する推論を実行する処理と、
前記構成データを構成する前記データそれぞれに対して、前記構成データに含まれる前記対象に対する推論が成功したか失敗したかを判定し、
前記構成データに含まれる前記対象に対する推論が成功した前記データに含まれる前記対象に対する推論として、前記構成データに含まれる前記対象に対する推論結果と、前記構成データとに基づいて、前記対象に対する推論を実行し、
前記構成データに含まれる前記対象に対する推論が失敗した前記データに含まれる前記対象に対する推論として、前記データに含まれる前記対象に対する推論結果に基づいて前記対象に対する推論を実行する処理と
をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、機械学習を用いた推論処理に関する。
【背景技術】
【0002】
非特許文献1ないし4は、深層学習(Deep-Learning)を用いた画像の推論処理に関連する技術を開示している。
【先行技術文献】
【非特許文献】
【0003】
【文献】Kaiming He, Xiangyu Zhang, Shaoqing Ren, Jian Sun, “Deep Residual Learning for Image Recognition”, [online], 10 December 2-15, Cornel University, [2021年10月13日検索], インターネット <URL: https://arxiv.org/abs/1512.03385>
【文献】Shaoqing Ren, Kaiming He, Ross Girshick, Jian Sun, "Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks", [online], 6 January 2016, Cornel University, [2021年10月13日検索], インターネット<URL:https://arxiv.org/abs/1506.01497>
【文献】Wei Liu, Dragomir Anguelov, Dumitru Erhan, Christian Szegedy, Scott Reed, Cheng-Yang Fu, Alexander C. Berg, "SSD: Single Shot MultiBox Detector", [online], 29 December 2016, Cornel University, [2021年10月13日検索, インターネット, <URL:https://arxiv.org/abs/1512.02325>
【文献】Tsung-Yi Lin, Priya Goyal, Ross Girshick, Kaiming He, Piotr Dollar, "Focal Loss for Dense Object Detection", [online], 7 February 2018, Cornel University, [2021年10月13日検索], インターネット, <URL:https://arxiv.org/abs/1708.02002>
【発明の概要】
【発明が解決しようとする課題】
【0004】
非特許文献1ないし4は、推論処理のスループットの向上に関連する技術を開示していない。本発明の目的は、推論処理のスループットを向上させる情報処理装置などを提供することにある。
【課題を解決するための手段】
【0005】
本発明の一形態における装置は、
少なくとも一部が推論の対象を含むデータを複数用いて構成される構成データを生成するデータ構成手段と、
構成データに含まれる対象に対する推論を実行する構成データ推論手段と、
少なくとも一部のデータにおいて、データに含まれる対象に対する推論を実行するデータ推論手段と、
構成データを構成するデータそれぞれに対して、構成データに含まれる対象に対する推論が成功したか失敗したかを判定し、
構成データに含まれる対象に対する推論が成功したデータに含まれる対象に対する推論として、構成データに含まれる対象に対する推論結果と、構成データとに基づいて、対象に対する推論を実行し、
構成データに含まれる対象に対する推論が失敗したデータに含まれる対象に対する推論として、データに含まれる対象に対する推論結果に基づいて対象に対する推論を実行する
対象推論手段と
を含む。
【0006】
本発明の一形態におけるシステムは、
上記情報処理装置と、
少なくとも一部に対象を含む複数のデータを情報処理装置に出力するデータ取得装置と、
情報処理装置から対象の推論結果を取得し、取得した推論結果に基づいて対象に関連する認識を実行する認識装置と
を含む。
【0007】
本発明の一形態における情報処理方法は、
少なくとも一部が推論の対象を含むデータを複数用いて構成される構成データを生成し、
構成データに含まれる対象に対する推論を実行し、
少なくとも一部のデータにおいて、データに含まれる対象に対する推論を実行し、
構成データを構成するデータそれぞれに対して、構成データに含まれる対象に対する推論が成功したか失敗したかを判定し、
構成データに含まれる対象に対する推論が成功したデータに含まれる対象に対する推論として、構成データに含まれる対象に対する推論結果と、構成データとに基づいて、対象に対する推論を実行し、
構成データに含まれる対象に対する推論が失敗したデータに含まれる対象に対する推論として、データに含まれる対象に対する推論結果に基づいて対象に対する推論を実行する。
【0008】
本発明の一形態における情報処理方法は、
情報処理装置が上記方法を実行し、
データ取得装置が、少なくとも一部に対象を含む複数のデータを情報処理装置に出力し、
認識装置が、情報処理装置から対象の推論結果を取得し、取得した推論結果に基づいて対象に関連する認識を実行する。
【0009】
本発明の一形態における記録媒体は、
少なくとも一部が推論の対象を含むデータを複数用いて構成される構成データを生成する処理と、
構成データに含まれる対象に対する推論を実行する処理と、
少なくとも一部のデータにおいて、データに含まれる対象に対する推論を実行する処理と、
構成データを構成するデータそれぞれに対して、構成データに含まれる対象に対する推論が成功したか失敗したかを判定し、
構成データに含まれる対象に対する推論が成功したデータに含まれる対象に対する推論として、構成データに含まれる対象に対する推論結果と、構成データとに基づいて、対象に対する推論を実行し、
構成データに含まれる対象に対する推論が失敗したデータに含まれる対象に対する推論として、データに含まれる対象に対する推論結果に基づいて対象に対する推論を実行する処理と
をコンピュータに実行させるプログラムを記録する。
【発明の効果】
【0010】
本発明に基づけば、推論処理のスループットを向上させることができる。
【図面の簡単な説明】
【0011】
図1】本発明における第1実施形態にかかる情報処理装置の構成の一例を示す図である。
図2】CNNサイズと演算リソースの利用効率との関係の一例を示す図である。
図3】画像分類タスクで用いられるNNの一例を示す模式図である。
図4】物体検出タスクで用いられるNNの一例を示す模式図である。
図5】第2実施形態にかかる情報処理装置の構成の一例を示すブロック図である。
図6】構成画像の一例を示す図である。
図7】第2実施形態にかかる情報処理装置における学習済モデルを生成する動作の一例を示すフロー図である。
図8】第2実施形態にかかる情報処理装置における対象に対する推論を実行する動作の一例を示すフロー図である。
図9】第2実施形態にかかる情報処理装置のバリエーションの一例の構成を示すブロック図である。
図10】第3実施形態にかかる情報処理装置の構成の一例を示すブロック図である。
図11】情報処理装置のハードウェア構成の一例を示すブロック図である。
図12】情報処理装置を含む情報処理システムの構成の一例を示すブロック図である。
【発明を実施するための形態】
【0012】
以下、本発明における各実施形態について、図面を用いて説明する。各図面は、各実施形態を説明するためのものである。ただし、各実施形態は、各図面の記載に限られるわけではない。また、各実施形態は、適宜組み合わせることができる。
【0013】
<第1実施形態>
図1は、本発明における第1実施形態にかかる情報処理装置101の構成の一例を示すブロック図である。情報処理装置101は、対象推論部11と、データ構成部21と、構成データ推論部31と、データ推論部41とを含む。データ構成部21は、少なくとも一部が推論の対象を含むデータを複数用いて構成される構成データを生成する。構成データ推論部31は、構成データに含まれる対象に対する推論を実行する。データ推論部41は、少なくとも一部のデータにおいて、データに含まれる対象に対する推論を実行する。対象推論部11は、構成データを構成するデータそれぞれに対して、構成データに含まれる対象に対する推論が成功したか失敗したかを判定する。そして、対象推論部11は、構成データに含まれる対象に対する推論が成功したデータに含まれる対象に対する推論として、構成データに対する推論結果と、構成データとに基づいて、対象に対する推論を実行する。そして、対象推論部11は、構成データに含まれる対象に対する推論が失敗したデータに含まれる対象に対する推論として、データに対する推論結果に基づいて対象に対する推論を実行する。
【0014】
データ構成部21は、推論の対象を含むデータを複数用いて、データより規模が大きなデータである構成データを生成する。構成データ推論部31は、構成データに含まれる対象に対して推論を実行する。対象推論部11は、構成データ推論部31において対象に対する推論が成功したデータについては、データより規模が大きなデータである構成データに含まれる対象に対する推論結果と構成データとに基づいて対象に対する推論を実行する。つまり、情報処理装置101は、対象を含むデータより規模が大きなデータである構成データを用いた推論の結果に基づいて、対象に対する推論を実行する。次に、データのサイズと、推論処理のスループットの向上との関係について説明する。
【0015】
画像分類タスク及び物体検出タスクなどに代表される機械学習を用いた画像の推論処理は、負荷が高い処理である。そこで、このような推論処理を高速に実行するためのハードウェア(Hardware(HW))として、各種のHWが開発されている。例えば、このようなHWとして、グラフィックス・プロセッシング・ユニット(Graphics Processing Unit(GPU))、又は、フィールド・プログラマブル・ゲート・アレイ(Field programmable Gate Array(FPGA))がある。あるいは、このようはHWとして、例えば、特定用途向け集積回路(Application Specific Integrated Circuit(ASIC))、又は、人工知能(Artificial Intelligence(AI))チップがある。以下の説明では、これらの推論処理を行うためのHWを、まとめて「AIデバイス」と呼ぶ。
【0016】
これらのAIデバイスは、高速かつ高スループットな推論処理を実現するために、多数の演算器を備え、入力された画像を分割し、分割した画像それぞれを相互に異なる演算器において並列的に処理する。あるいは、AIデバイスは、異なる機能を持つ複数の演算器をパイプライン的に結合して、推論処理を実行する。なお、中央処理装置(Central Processing Unit(CPU))と呼ばれているチップにも、内部に演算ユニットとして、多数の演算器、又は、機械学習で多用される行列演算などの特定用途の演算器を備えるチップがある。つまり、CPUにはAIデバイスに相当する演算ユニットを備えたCPUがある。そのため、以下の説明において、特に区別した説明が必要な場合の除き、AIデバイスは、上記のようなAIデバイスに相当する演算ユニットを備えたCPUを含む。
【0017】
AIデバイスは、高スループットで推論処理を実行できる。しかし、AIデバイスは、多数の演算器を並列動作させて高スループットを実現するため、多数の演算器を高い稼働率で動かす必要がある。例えば、画像のサイズが小さい場合、AIデバイスは、多数の演算器における並列性を十分に活かしきれないため、高スループットを実現できない。なお、AIデバイスの対象となるデータは、画像のような二次元のデータに限られない。例えば、AIデバイスは、レーダー(Radio Detecting and Ranging(RADAR))又はライダー(light detection and ranging(LiDAR))を用いて取得したデータのような三次元データを対象として動作してもよい。
【0018】
図2は、あるAIデバイスを用いて測定した、並列的に利用される畳み込みニューラルネットワーク(Convolutional Neural Network(CNN))のサイズと、演算リソースの利用効率との関係の一例を示す図である。図2の利用効率は、実際の推論処理の際に得られた演算性能を、AIデバイスが備える演算リソースから求められる最高演算性能で割った値である。なお、演算性能の単位は、例えば、ギガフロップス(Giga Floating-point Operations Per Second(GFLOPS))であるが、これに限られない。図2に示されているように、利用されるCNNサイズが500程度の場合、利用効率は、AIデバイスの最高演算性能の70%程度となる。しかし、利用されるCNNサイズが100以下の場合、利用効率は、AIデバイスの最高演算性能の20%以下となる。
【0019】
このように、並列性を高くするほど、AIデバイスの利用効率は高くなり、推論処理のスループットは高くなる。複数の対象を含むデータを用いて推論すること、及び、推論の対象となるデータのサイズを大きくすることは、並列性を高くするために有効な方法である。そこで、第1実施形態の情報処理装置101は、サイズが大きなデータとして、複数のデータを用いて構成される構成データを生成する。そして、情報処理装置101は、構成データを用いて推論を実行することで、AIデバイスにおける並列性を向上し、その結果として推論処理のスループットを向上させる。
【0020】
ただし、対象を含むデータを複数用いて構成された構成データに含まれる対象に対する推論は、個別のデータに含まれる対象に対する推論と比較して、一部の対象に対する推論を失敗する可能性が高くなる場合がある。そこで、情報処理装置101は、データ推論部41を含む。データ推論部41は、データに含まれる対象対する推論を実行する。そして、対象推論部11は、構成データ推論部31において対象に対する推論が失敗したデータについては、データ推論部41の推論結果を用いて対象に対する推論を実行する。そのため、情報処理装置101は、構成データに含まれる対象に対する推論が失敗したデータについても対象に対する推論を実行できる。
【0021】
<第2実施形態>
[関連する推論タスクの説明]
第2実施形態の説明に関連する推論タスクについて説明する。機械学習を用いた画像解析における重要なタスクの一つとして、画像分類(Classification)タスクがある。画像分類タスクは、予め与えられているクラス群の中から、画像に写っている対象のクラスを判定又は分類するタスクである。近年、機械学習の中でも特に深層学習を用いた画像分類タスクが、広く利用されている。画像分類タスクの機械学習では、正解データとして、学習用の画像群と、各画像に写っている対象のクラス情報とが与えられる。そして、画像分類タスクは、学習用の画像群とクラス情報とを用いた機械学習により学習済モデルを取得する。そして、画像分類タスクは、対象を含む画像に対して学習済モデルを適用し、画像中の対象のクラスを推論し、推論したクラスを出力する。
【0022】
なお、画像分類タスクなどの推論タスクは、推論結果に加え、推論の確実性(confidence)のような推論に関連する情報を出力する場合がある。例えば、画像分類タスクは、クラスに加え、推論の確実性を出力してもよい。以下の説明では、一例として、説明に用いる推論タスクは、推論結果と確実性との組を出力する。ただし、これは、本実施形態において用いられるタスクを限定するものではない。各タスクは、確実性を出力しなくてもよいし、確実性とは異なる値を出力してもよい。そのため、以下の説明では、特に必要な場合を除き、確実性など推論に関連する情報の説明を省略する場合もある。なお、画像分類タスクは、一枚の画像に対し、クラス及び確実性の組を複数出力してもよい。
【0023】
図面を参照して、画像分類タスクの構成の一例を説明する。図3は、画像分類タスクで用いられるニューラルネットワーク(Neural Network(NN))の一例を示す図である。図3のNNは、特徴量抽出層とクラス分類層とを含む。なお、図3は、特徴量抽出層の一例として、「Residual Network(ResNet)」を含む。ResNetとは、NNモデルの一つであり、「ある層で求める最適な出力」を学習するのではなく、「層の入力を参照した残差関数」を学習するモデルである。図3において、画像は、まず特徴量抽出層に入力される。特徴量抽出層は、画像に関する特徴量を計算し、特徴量をクラス分類層に出力する。クラス分類層は、特徴量に基づいて、画像に写っている対象のクラスと確実性との組を出力する。
【0024】
機械学習を用いた画像解析における別の主要なタスクの一つとして、画像における物体検出(Object Detection)タスクがある。物体検出タスクは、画像の中に存在する検出対象の位置とクラスと確実性との組のリストを生成するタスクである。物体検出タスクについても、深層学習が、広く利用されている。物体検出タスクの機械学習では、正解データとして、学習用の画像群と、各画像内の検出対象の位置と、検出対象のクラスとが与えられる。なお、対象の位置としては、以下に限定されないが、対象が映っている長方形領域の4つの頂点の座標(バウンディングボックス(Bounding Box(BB))が用いられることが多い。なお、以下の説明でも、検出対象の位置の一例として、BBを用いて説明する。
【0025】
そして、物体検出タスクは、学習用の画像群と、画像内の検出対象の位置と、検出対象のクラスとを用いた機械学習により学習済モデルを取得する。そして、物体検出タスクは、検出対象を含む画像に対して学習済モデルを適用して、画像中の検出対象のBBとクラスとを推論し、推論した検出対象のBBとクラスと確実性との組を出力する。画像に複数の対象が含まれる場合、物体検出タスクは、画像に含まれる複数の検出対象それぞれのBBとクラスと確実性との組を出力する。
【0026】
図面を参照して、物体検出タスクの一例を説明する。図4は、物体検出タスクで用いられるNNの一例を示す図である。図4に示すNNは、図3のNNの構成に加え、特徴量抽出層にピラミッド型特徴量ネットワーク(Feature Pyramid Network(FPN))を含み、さらに、回帰層(Regression)を含む。図4において、特徴量抽出層におけるResNet及びFPNは、「Fully Convolutional Network(FCN)」と呼ばれる手法を用いて、入力された画像に関する特徴量を計算する。クラス分類層は、特徴量に基づいて、画像に写っている物体のクラスを出力する。回帰層は、特徴量に基づいて、画像に写っている対象の位置を出力する。例えば、回帰層は、位置として、BBを出力する。
【0027】
例えば、車の監視システムは、物体検出タスクを用いて構築可能である。より詳細には、例えば、監視システムは、監視カメラからの画像を取得し、取得した画像を物体検出タスクに入力し、物体検出タスクから画像に映っている車のクラス及び位置を取得する。そして、監視システムは、監視カメラからの画像に重畳して、車のクラスと位置とを表示する。監視システムの利用者は、表示された車のクラスと位置とを用いて、監視カメラの画像に映っている車を判定すればよい。また、物体検出タスクは、他の認識処理と組み合わされて用いられることもある。例えば、ナンバープレート認識システムは、以下のタスクを組み合わせることで、構築可能である。
・画像に含まれる車のナンバープレートの位置とクラスとを検出する物体検出タスク。
・検出されたナンバープレートの各文字の候補領域を決定する領域決定タスク。
・決定された候補領域の画像を入力として、画像に写っている文字を分類する画像分類タスク。
なお、物体検出タスクが、画像に含まれるナンバープレートの各文字の位置とクラスとを検出してもよい。
【0028】
画像分類タスク及び物体検出タスクの推論処理は、高スループットであることが求められる。例えば、監視カメラからの映像を用いる画像分類タスク及び物体検出タスクは、見落としを防ぐため、ある程度高いフレームレートで動作する必要がある。特に、車のような高速に移動する物体を対象とする場合、画像分類タスク及び物体検出タスクは、高いフレームレートで動作することが必要である。例えば、監視カメラからの映像において車を検出する物体検出タスクは、100フレーム/秒(frame per second(fps))又はそれ以上のフレームレートの映像に対して動作することが望ましい。あるいは、監視カメラ又は監視カメラの周辺の機器、すなわちエッジが、画像分類タスク又は物体検出タスクを実行する場合がある。そのようなエッジの環境では、設置場所、冷却、及び、電力などの制約のため、限られた計算リソースしか利用できない場合がある。そして、画像分類タスク及び物体検出タスクは、そのようなエッジの環境においても、高いスループットでの動作が求められる。
【0029】
AIデバイスは、高スループットで推論処理を実行できる。しかし、AIデバイスは、多数の演算器を並列動作させて高スループットを実現するため、多数の演算器を高い稼働率で動かす必要がある。そして、既に説明した通り、推論の対象となるデータのサイズを大きくすることは、並列性を高くするために有効な方法である。そこで、第1実施形態と同様に、第2実施形態の情報処理装置100は、以下で説明するように、データに含まれる対象に対する推論として、データよりサイズが大きなデータである構成データを推論に用いることで、推論処理のスループットを向上させる。
【0030】
[第2実施形態の概要]
以下の説明において、第2実施形態の情報処理装置100は、データの一例として二次元データである画像を用いる。そして、情報処理装置100は、推論タスクの一例として、画像を分類する画像分類タスクを実行する。より詳細には、情報処理装置100は、文字が写った画像、つまり文字画像を分類対象とする画像分類タスクを実行する。例えば、情報処理装置100は、車のライセンスプレート(License Plate(LP))における各文字の画像を取得し、画像に含まれる文字のクラスを推論する。つまり、画像に含まれる文字が、推論の対象である。また、文字のクラスの推論が、対象に対する推論である。
【0031】
ただし、情報処理装置100は、取得した画像における文字のクラスを直接的に推論するのではなく、取得した画像で構成される構成画像を用いて、文字のクラスを推論する。具体的には、情報処理装置100は、複数の画像を平面上に並べて構成した構成画像を生成し、生成した構成画像における文字のクラスを推論する。言い換えると、情報処理装置100は、少なくとも一部の画像が推論の対象である文字を含む画像を複数まとめて、元の画像よりサイズが大きな画像である構成画像を生成する。そして、情報処理装置100は、生成した構成画像に対して推論を実行し、構成画像に含まれる文字のクラスを推論する。詳細には、情報処理装置100は、文字を含む複数の画像で構成された構成画像における各文字の位置とクラスとを推論する。
【0032】
なお、画像分類タスクは、画像に含まれる対象のクラスを推論するタスクである。しかし、画像分類タスクは、基本的に、分類の対象を一つ含む画像における対象のクラスを推論する。そのため、画像分類タスクにおいて、推論処理の並列性は、必ずしも高くなるとは限らない。一方、物体検出タスクは、複数の対象を含む画像を用いた推論において、対象それぞれの位置とクラスとを推論するため、画像分類タスクより並列性が高くなる可能性が高い。そこで、以下の説明では、情報処理装置100は、構成画像の推論において物体検出タスクを用いる。このような構成を用いて、情報処理装置100は、AIデバイスを用いて推論処理を実行する場合において、AIデバイスの利用効率を改善し、推論処理のスループットを向上する。ただし、これらは、情報処理装置100が用いる推論タスクの限定を意図するものではない。画像分類タスク及び物体検出タスクに限らず、情報処理装置100は、推論の対象を含むデータ及び生成する構成データに対応して、適切な推論タスクを実行すればよい。情報処理装置100は、画像と構成画像との両方の推論として、同種のタスクを用いてもよい。また、本実施形態の説明は、情報処理装置100の処理対象を含むデータを、画像に限定することを意図するものではない。
【0033】
[構成の説明]
図5は、第2実施形態にかかる情報処理装置100の構成の一例を示すブロック図である。情報処理装置100は、対象推論部10と、データ構成部20と、構成データ推論部30と、データ推論部40とを含む。さらに、情報処理装置100は、データセット保存部50と、データセット生成部60と、モデル学習部70と、モデル保存部80と、データ取得部90とを含む。なお、図5に示されている構成要素の数及び接続関係は、例示である。例えば、情報処理装置100は、複数のデータ取得部90を含んでもよい。あるいは、情報処理装置100は、対象推論部10、データ構成部20、構成データ推論部30、及び、データ推論部40の組を複数含み、各組において以下で説明する動作を並列的に実行して、並列的に複数の画像に含まれる対象に対する推論を実行してもよい。
【0034】
情報処理装置100は、CPU、AIデバイス、メインメモリ、及び、二次記憶装置を含むコンピュータ装置を用いて構成されてもよい。この場合、図5に示されている情報処理装置100の構成要素は、CPUなどをハードウェアとソフトウェアとの組合せを用いて実現される。そして、この場合、情報処理装置100は、以下で説明する推論処理の全部又は一部においてAIデバイスを使用する。なお、CPUなどのハードウェア構成については、後ほどさらに説明する。
【0035】
情報処理装置100において、各構成要素の動作を制御する構成は、任意である。例えば、情報処理装置100は、各構成要素を制御する制御部(図示せず)を含んでもよい。あるいは、所定の構成要素が、他の全ての構成要素、又は、一部の構成要素の動作を制御してもよい。例えば、対象推論部10が、データ構成部20、構成データ推論部30、及び、データ推論部40の動作を制御して、画像における文字のクラスを推論してもよい。あるいは、各構成要素は、他の構成要素からデータを取得すると動作を開始してもよい。そのため、以下の説明では、特に必要な場合を除いて、構成要素の動作の制御に関する説明を省略する。
【0036】
(1)データ構成部20
データ構成部20は、データ取得部90から、少なくとも一部に推論の対象を含む画像を取得する。そして、データ構成部20は、取得した画像を複数用いて、構成データ推論部30の推論に適した画像である構成画像を生成する。なお、データ構成部20は、データ構成部21の一例である。以下の説明では、具体的には、データ構成部20は、データ取得部90から取得した複数の画像を組み合わせて、取得した画像よりサイズが大きい構成画像を生成する。そして、データ構成部20は、構成画像の生成に用いた画像と、構成画像におけるその画像の位置との対応関係を生成する。あるいは、データ構成部20は、構成画像の生成に用いた画像と、構成画像におけるその画像を複製する領域の位置との対応関係を生成してもよい。
【0037】
なお、以下の説明における情報処理装置100の動作において、上記の二つの対応関係に関連する動作は、概ね同様な動作となる。そこで、以下の説明では、説明の煩雑さを避けるため、「画像と構成画像における画像の位置との対応関係」は、「画像と画像を複製する構成画像の領域の位置との対応関係」を含むとする。つまり、以下の対応関係に関連する動作において、情報処理装置100は、「画像と構成画像における画像の位置との対応関係」に関連する動作において、「構成画像における画像の位置」に替えて、「構成画像における領域の位置」を用いてもよい。
【0038】
データ構成部20が取得する画像は、少なくとも一部において、推論の対象を含めばよい。言い換えると、データ構成部20が取得する画像の一部は、推論の対象を含まなくてもよい。例えば、推論の対象が画像に含まれる文字の場合、データ構成部20が取得する画像の一部は、推論の対象となる文字を含まない画像でもよいし、文字の一部が欠けた画像でもよい。
【0039】
次に、データ構成部20における構成画像の生成の一例について説明する。ただし、データ構成部20における構成画像の生成は、以下に限定されない。データ構成部20は、以下のパラメタの少なくとも一部に基づいて、構成画像の領域をグリッド状の複数の領域に分割する。
パラメタの例:
(a) 構成画像のサイズ、つまり、縦方向及び横方向の大きさ、又は、幅及び高さの大きさ。
(b) グリッドの横方向の数、及び、縦方向の数。
(c) 領域の間隔、つまり、領域間の隙間の長さ。なお、隙間の長さは、縦方向と横方向とで異なっていてもよい。
(d) 領域間の隙間を埋める画素値。画素の値は、黒、白、グレー、又は、ランダムなどである。
【0040】
例えば、パラメタとして、構成画像の領域の縦方向及び横方向の数を用いる場合、データ構成部20は、構成画像を、パラメタとして取得した縦方向及び横方向の数の領域に分割する。例えば、縦方向の数が3で、横方向の数が4の場合、データ構成部20は、構成画像を12(=3×4)の領域に分割する。データ構成部20は、これらのパラメタを、オペレータなどから取得する。
【0041】
そして、データ構成部20は、分割した各領域それぞれに、取得した各画像を複製して、構成画像を生成する。なお、構成画像における領域のサイズと画像のサイズとが一致しない場合、データ構成部20は、画像を拡大又は縮小して、領域に複製してもよい。その際、データ構成部20は、画像のアスペクト比を維持するように変形してもよいし、横方向と縦方向とを独立に拡大又は縮小してもよい。あるいは、データ構成部20は、複数のパラメタの組を保存し、画像の特性に対応してパラメタの組を切り替えて、画像から構成画像を生成してもよい。例えば、データ構成部20は、画像の拡大及び縮小の量が最も小さくなるように、構成画像の生成に用いるパラメタを選択してもよい。ただし、データ構成部20は、画像を変形しないで領域に複製してもよい。
【0042】
図6は、データ構成部20が生成する構成画像の一例を示す図である。図6の上部は、データ構成部20が取得した画像、つまり推論の対象となる画像群である。図6の下部は、データ構成部20が生成した構成画像である。図6の下部の構成画像において、画像が複製されている点線で区切られた領域が、画像を複製する領域である。それ以外の部分は、領域間における隙間の領域である。図6では、データ構成部20は、構成画像のグリッドとして、構成画像の領域を、横方向として4つの領域に分割し、縦方向として3つの領域に分割している。さらに、データ構成部20は、画像の間を埋める隙間の画素値として「白」を用いている。そして、データ構成部20は、推論の対象となる画像の左側の画像から、構成画像の上段の領域から下段の領域のそれぞれにおいて、左の領域から右の領域に画像を複製している。ただし、構成画像において画像を複製する位置及び順番は、これに限定されない。なお、図6の下部の構成画像における点線は、説明のために設けたものであり、実際に生成される構成画像には含まれない。
【0043】
データ構成部20は、画像の平面方向での複製ではなく、チャネルに基づいて画像を組み合わせて構成画像を生成してもよい。なお、画像におけるチャネルとは、画像における様々な情報をグレースケール画像として扱うための仕組みである。あるいは、データ構成部20は、平面方向とチャネル方向とを組み合わせて、構成画像を生成してもよい。
【0044】
(2)構成データ推論部30
構成データ推論部30は、データ構成部20が生成した構成画像を入力として、構成画像における文字の位置とクラスとを推論する。なお、構成データ推論部30は、構成データ推論部31の一例である。以下の説明では、具体的には、構成データ推論部30は、物体検出タスクを用いて、構成画像における文字の位置とクラスとを推論する。構成データ推論部30は、推論において、モデル保存部80に保存された学習済モデルを用いる。以下、構成データ推論部30が用いる学習済モデルを「構成データ推論用モデル」と呼ぶ場合もある。なお、構成データ推論部30は、構成画像の形状、及び、サイズの少なくとも一方を変更してから推論を実行してもよい。
【0045】
(3)データ推論部40
データ推論部40は、データ取得部90が取得した画像の少なくとも一部を入力として、画像における文字のクラスを推論する。なお、データ推論部40は、データ推論部41の一例である。具体的には、データ推論部40は、画像分類タスクを用いて、画像に含まれる文字のクラスを推論する。データ推論部40は、推論において、モデル保存部80に保存された学習済モデルを用いる。以下、データ推論部40が用いる学習済モデルを「データ推論用モデル」と呼ぶ場合もある。データ推論部40は、指示された画像に対して推論を実行する。例えば、データ推論部40は、対象推論部10から指示された画像に対して推論を実行してもよい。なお、対象推論部10は、データ取得部90に対して、データ推論部40に出力する画像を指示してもよい。この場合、データ推論部40は、データ取得部90から取得する全ての画像に対して推論を実行してもよい。データ推論部40は、画像の形状及びサイズの少なくとも一方を変更してから推論を実行してもよい。
【0046】
なお、第2実施形態の説明において、情報処理装置100としての推論は、画像に含まれる文字のクラスの推論である。つまり、第2実施形態の説明において、データ推論部40の推論は、情報処理装置100としての推論と同様の推論である。ただし、データ推論部40の推論は、情報処理装置100としての推論と同様の推論結果を出力する推論であれば、情報処理装置100としての推論とは異なる推論でもよい。
【0047】
構成データ推論部30とデータ推論部40とにおける推論の差異について説明する。構成画像は、データ取得部90が取得した画像を組み合わせた画像であり、データ取得部90が取得した画像よりサイズが大きな画像である。つまり、構成データ推論部30における推論の対象となる構成画像は、データ推論部40における推論の対象となる画像より、サイズが大きい画像である。さらに、構成データ推論部30が用いる物体検出タスクは、データ推論部40が用いる画像分類タスクより並列性が高い推論処理を実行する可能性が高い推論タスクである。そのため、構成データ推論部30は、データ推論部40より、AIデバイスにおける複数の演算器を効率的に使用できる。
【0048】
このように、構成データ推論部30が用いる学習済モデルは、データ推論部40が用いる学習済モデルよりサイズが大きな画像を対象とするモデルである。そのため、構成データ推論部30が用いる学習済モデルは、データ推論部40が用いる学習済モデルより規模が大きなモデルである。なお、構成データ推論部30が用いる学習済モデルは、データ推論部40が用いる学習済モデルと、モデル構造及びネットワーク構造の少なくとも一方が同じモデルでもよい。ただし、構成データ推論部30が用いる学習済モデルは、データ推論部40が用いる学習済モデルと、モデル構造及びネットワーク構造の両方が異なるモデルでもよい。
(4)対象推論部10
対象推論部10は、データ取得部90が取得した画像における対象に対する推論を実行する。なお、対象推論部10は、対象推論部11の一例である。具体的には、まず、対象推論部10は、構成画像に含まれる画像それぞれについて、構成データ推論部30における構成画像を構成する画像に含まれる対象に対する推論が成功したか失敗したかを判定する。構成データ推論部30における構成画像を構成する画像に含まれる対象に対する推論が成功した画像の場合、対象推論部10は、構成データ推論部30における推論結果と構成画像とに基づいて、その画像の文字のクラスを推論する。
【0049】
具体的には、対象推論部10は、次の情報を用いて画像に含まれる文字のクラスを推論する。
(a) 構成データ推論部30の推論結果である文字の位置及びクラス、
(b) データ構成部20が生成した、構成画像の生成に用いた画像と構成画像におけるその画像の位置との対応関係。
例えば、対象推論部10は、構成画像における画像の位置の中で、構成データ推論部30が推論した文字の位置を含む画像の位置を抽出する。そして、対象推論部10は、構成画像の生成に用いた画像と構成画像におけるその画像の位置との対応関係に基づいて、抽出した画像の位置に対応する画像、つまり構成画像の生成に用いた画像を特定する。そして、対象推論部10は、構成データ推論部30が推論した文字のクラスを、特定した画像の文字のクラスと推論する。そして、対象推論部10は、推論結果を出力する。
【0050】
構成データ推論部30における構成画像を構成する画像に含まれる対象に対する推論が失敗した画像の場合、対象推論部10は、データ推論部40に対してその画像に含まれる対象に対する推論を指示し、データ推論部40から推論結果を取得する。そして、対象推論部10は、データ推論部40における推論結果である文字のクラスを、その画像における文字のクラスと推論する。そして、対象推論部10は、推論結果を出力する。なお、データ構成部20が取得する画像は、推論の対象となる文字を含まない画像の場合もある。そこで、対象推論部10は、データ推論部40における推論が失敗した場合、その画像に含まれる対象に対する推論結果として、文字を含まない画像との推論結果を出力してもよい。あるいは、対象推論部10は、推論の結果として、「画像に含まれる対象に対する推論を失敗したこと」を出力してもよい。
【0051】
次に、対象推論部10における、構成データ推論部30の推論が成功であるか失敗であるかの判定について説明する。本実施形態の説明では、対象推論部10は、構成画像において推論された文字の位置を用いて、構成データ推論部30における推論が成功したか失敗したかを判定する。詳細は、次の通りである。構成データ推論部30は、文字の位置として、文字に対応するBBの位置を推論する。そして、対象推論部10は、BBの位置と、データ構成部20が生成した構成画像に複製した画像の位置とに基づいて、推論が成功したか失敗したかを判定する。例えば、対象推論部10は、構成画像を構成する画像の位置が推論されたBBを含む画像を、推論が成功した画像と判定する。なお、BBを含む画像は、BBを内部に含む画像に加え、BBと一致する画像、つまり、BBと同形の画像を含む。あるいは、対象推論部10は、推論における誤差を考慮して、構成画像を構成する画像の位置とBBの位置とのずれが所定範囲内の画像を、成功した画像と判定してもよい。一方、対象推論部10は、構成画像を構成する画像の位置にBBが推論されない画像、及び、構成画像を構成する画像の位置にBBの一部が含まれない画像を、推論が失敗した画像と判定する。
【0052】
ただし、対象推論部10における判定は、上記の構成画像における画像の位置とBBの位置との関係に限定されない。例えば、対象推論部10は、構成データ推論部30における推論の確実性を用いてもよい。あるいは、対象推論部10は、構成画像における画像と、BBとのIoU(Intersection over Union)を用いて、構成データ推論部30の推論が成功したか失敗したかを判定してもよい。IoUとは、物体検出における評価指標の一つであり、2つの領域がどれぐらい重なっているかを表す指標である。具体的には、IoUは、2つの領域の和集合(Union)に対する2つの領域の共通部分(Intersection)の比率である。例えば、対象推論部10は、構成画像における画像の領域とBBの領域とのIoUが所定の閾値より高い画像を、推論が成功した画像と判定してもよい。ただし、対象推論部10は、上記とは異なる判定基準を用いて、構成データ推論部30の推論が成功したか失敗したかを判定してもよい。
【0053】
(5)データセット生成部
データセット生成部60は、所定のデータセットを用いて、学習済モデルを生成するための機械学習に用いられる学習用データセットを生成する。詳細には、データセット生成部60は、構成データ推論部30における推論に用いる構成データ推論用モデルを生成する機械学習のための学習用データセットを生成する。以下、構成データ推論用モデルを生成するための学習用データセットを「構成データ学習用データセット」と呼ぶ場合もある。さらに、データセット生成部60は、データ推論部40における推論に用いられるデータ推論用モデルを生成する機械学習のための学習用データセットを生成する。以下、データ推論用モデルを生成するための学習用データセットを「データ学習用データセット」と呼ぶ場合もある。
【0054】
なお、以下の説明において、データセット生成部60が学習用データセットの生成に用いるデータセットを「オリジナルデータセット」と呼ぶ場合もある。例えば、データセット生成部60は、利用者から取得したオリジナルデータセットを用いて、それぞれの学習用データセットを生成してもよい。ただし、オリジナルデータセットの取得元は、上記に限定されない。例えば、データセット生成部60は、予めデータセット保存部50に保存されているオリジナルデータセットを用いて、それぞれの学習用データセットを生成してもよい。なお、データセット生成部60は、同じオリジナルデータセットを用いて、構成データ学習用データセットと、データ学習用データセットとの両方を生成してもよい。あるいは、データセット生成部60は、異なるオリジナルデータセットを用いて、構成データ学習用データセットと、データ学習用データセットとを生成してもよい。
【0055】
構成データ学習用データセットを生成する場合、データセット生成部60は、オリジナルデータセットに含まれる画像から構成画像を生成してもよい。この場合、データセット生成部60は、データ構成部20における構成画像の生成と同様の動作を用いて、オリジナルデータセットに含まれる画像から構成画像を生成してもよい。データセット生成部60は、構成画像における画像の位置に関する情報などを用いて、生成した構成画像に対する正解データを生成してもよい。例えば、構成データ推論部30が物体検出タスクを用いる場合、データセット生成部60は、所定の物体検出タスクを用いて、構成画像の生成に用いた各画像について、構成画像に対する正解データとして以下のデータを作成してもよい。
(a) BB:オリジナルデータセットから生成した構成画像における画像に含まれる文字の位置、
(b) クラス:オリジナルデータセットから生成した構成画像における画像に含まれる文字のクラス。
なお、データセット生成部60は、正解データのクラスとして、所定の画像分類タスクを用いて、オリジナルデータセットに含まれる画像のクラスを推定してもよい。
【0056】
なお、正解データを生成する方法は、アノテーション(annotation)と呼ばれる場合がある。アノテーションとは、一般的に、あるデータに対して、メタデータなどに関連する情報を注釈として付与することであるが、機械学習の分野では、機械学習のモデルに学習させるための学習用データ、正解データ、及び、ラベルなどを作成することである。例えば、アノテーションの役割は、画像などのデータに意味付け又は紐づけを行い、互いに組み合わせることである。なお、学習用データセットは、「教師データ」と呼ばれる場合もある。
【0057】
(6)データセット保存部
データセット保存部50は、データセット生成部60が生成した学習用データセットを保存する。例えば、構成データ推論部30が物体検出タスクの学習済モデルを用いる場合、データセット保存部50は、物体検出の対象となる画像と、画像におけるBB及びクラスなどの正解データとを含む構成データ学習用データセットを保存する。あるいは、データ推論部40が画像分類タスクの学習済モデルを用いる場合、データセット保存部50は、分類対象となる画像と、クラスなどの正解データとを含むデータ学習用データセットを保存する。
【0058】
(7)モデル学習部
モデル学習部70は、構成データ推論部30及びデータ推論部40が用いる学習済モデルを生成する。具体的には、モデル学習部70は、データセット保存部50に保存されている構成データ学習用データセットを用いた機械学習により、構成データ推論部30が用いる構成データ推論用モデルを生成する。さらに、モデル学習部70は、データセット保存部50に保存されているデータ学習用データセットを用いた機械学習により、データ推論部40が用いるデータ推論用モデルを生成する。そして、モデル学習部70は、モデル保存部80に、生成した学習済モデルを保存する。
【0059】
(8)モデル保存部
モデル保存部80は、モデル学習部70が生成した構成データ推論部30が推論に使用する学習済モデル、つまり構成データ推論用モデルを保存する。さらに、モデル保存部80は、モデル学習部70が生成したデータ推論部40が推論に使用する学習済モデル、つまりデータ推論用モデルを保存する。
【0060】
(9)データ取得部
データ取得部90は、情報処理装置100の推論の対象を含む画像を取得する。データ取得部90は、例えば、監視カメラから画像を取得する。あるいは、データ取得部90は、推論の対象を含む画像を保存する保存装置(図示せず)から画像を取得してもよい。データ取得部90は、監視カメラなどの画像を取得する機器に含まれてもよい。
【0061】
[動作の説明]
図面を参照して、第2実施形態にかかる情報処理装置100における、学習済モデルを生成する動作と、対象に対する推論を実行する動作とを説明する。
【0062】
(1)学習済モデルを生成する動作
図7は、第2実施形態にかかる情報処理装置100における学習済モデルを生成する動作の一例を示すフロー図である。情報処理装置100は、所定の条件を契機に動作を開始する。例えば、情報処理装置100は、情報処理装置100のオペレータからの指示を契機に、学習済モデルを生成する動作を開始する。この場合、動作の開始において、情報処理装置100は、オペレータから学習済モデルの生成に必要なパラメタを取得してもよい。パラメタは、例えば、モデルの生成に使用にする学習用データセットの指定、又は、機械学習に関するパラメタである。ただし、パラメタは、これらに限定されず、他の情報でもよい。情報処理装置100は、パラメタとは異なる情報を取得してもよい。例えば、情報処理装置100は、オペレータから、オリジナルデータセット、正解データ、又は、学習用データセットを取得してもよい。この場合、情報処理装置100は、取得したオリジナルデータセット、正解データ、又は、学習用データセットを、データセット保存部50に保存してもよい。なお、正解データは、学習用データセットに含まれていてもよい。
【0063】
データセット生成部60は、データセット保存部50からオリジナルデータセットを取得し、取得したオリジナルデータセットを用いて構成データ学習用データセットを生成する(ステップS101)。データセット生成部60は、データセット保存部50から、構成データ学習用データセットの正解データを取得してもよい。そして、データセット生成部60は、生成した構成データ学習用データセットをデータセット保存部50に保存する。さらに、データセット生成部60は、データセット保存部50からオリジナルデータセットを取得し、取得したオリジナルデータセットを用いてデータ学習用データセットを生成する(ステップS102)。この場合も、データセット生成部60は、データセット保存部50から、データ学習用データセットの正解データを取得してもよい。そして、データセット生成部60は、生成したデータ学習用データセットをデータセット保存部50に保存する。データセット生成部60は、ステップS101及びS102の動作の順番を入れ替えて実行してもよいし、少なくとも一部の動作を並列に実行してもよい。
【0064】
モデル学習部70は、構成データ学習用データセットを用いた機械学習により、構成データ推論用モデルを生成する(ステップS103)。なお、構成データ推論用モデルは、構成データ推論部30が用いる学習済モデルである。モデル学習部70は、生成した構成データ推論用モデルを、モデル保存部80に保存する。さらに、モデル学習部70は、データ学習用データセットを用いた機械学習により、データ推論用モデルを生成する(ステップS104)。なお、データ推論用モデルは、データ推論部40が用いる学習済モデルである。モデル学習部70は、生成したデータ推論用モデルを、モデル保存部80に保存する。モデル学習部70は、ステップS103及びS104の動作の順番を入れ替えて実行してもよいし、少なくとも一部の動作を並列に実行してもよい。なお、モデルを生成する動作の完了後、情報処理装置100は、動作結果をオペレータに通知してもよい。
【0065】
(B)対象に対する推論を実行する動作
図8は、第2実施形態にかかる情報処理装置100における対象に対する推論を実行する動作の一例を示すフロー図である。情報処理装置100は、所定の条件を契機に推論動作を開始する。例えば、情報処理装置100は、オペレータからの指示を契機に、推論動作を開始する。あるいは、情報処理装置100は、装置起動後に、自動的に推論動作を開始してもよい。情報処理装置100は、推論動作の開始において、推論動作にかかるパラメタをオペレータから取得してもよい。なお、パラメタは、例えば、使用する学習済モデルの指定であるが、これに限定されない。ただし、情報処理装置100は、予め取得しているパラメタを使用してもよい。推論動作の開始において、使用する学習済モデルを保存していない場合、情報処理装置100は、上記の「(A)学習済モデルを生成する動作」を実行して、使用する学習済モデルを生成してから、推論動作を開始してもよい。
【0066】
構成データ推論部30、及び、データ推論部40は、モデル保存部80から、推論に使用する学習済モデルを取得する(ステップS110)。そして、情報処理装置100は、所定の終了条件を満足するまで、ループAの動作を繰り返す(ステップS111)。終了条件の一例は、オペレータからの終了指示である。ただし、情報処理装置100は、動作時間、又は、画像の枚数など、他の終了条件に基づいて、ループAの動作を終了してもよい。
【0067】
ループAにおいて、まず、データ構成部20は、所定の画像条件を満足するまで、ループBの動作を繰り返す(ステップS112)。画像条件の一例は、画像の枚数である。つまり、データ構成部20は、画像が所定の枚数となるまでループBの動作を繰り返す。ただし、データ構成部20は、取得した画像の面積の合計、又は、取得した画像のデータ総量など、他の画像条件に基づいて、ループBを終了してもよい。ループBにおいて、データ構成部20は、データ取得部90から、構成画像の生成に用いる画像を取得する(ステップS113)。なお、以下の説明において、一つのループBの動作で取得される画像をまとめて「構成対象画像群」と呼ぶ。
【0068】
画像条件が満足されると、データ構成部20は、取得した構成対象画像群から構成画像を生成する(ステップS114)。データ構成部20は、例えば、グリッド状に配置された構成画像の領域に構成対象画像群の画像を複製して、構成画像を生成する。次に、構成データ推論部30は、生成された構成画像を入力として、推論を実行する(ステップS115)。例えば、構成データ推論部30は、物体検出タスクの学習済モデルを用いて、構成画像に含まれる文字のクラスとBBと確実性との組を推論する。
【0069】
そして、対象推論部10は、構成画像に複製された全ての画像、つまり、構成対象画像群に含まれる全ての画像に対して、ループCの動作を繰り返す(ステップS116)。ループCにおいて、対象推論部10は、構成画像における構成対象画像群の画像それぞれについて、構成データ推論部30の推論が成功したか失敗したかを判定する(ステップS117)。例えば、対象推論部10は、構成画像における画像の位置と、構成データ推論部30の推論結果におけるBBの位置とを比較して、推論が成功したか失敗したかを判定する。
【0070】
構成画像における推論が成功している画像の場合(ステップS117でYes)、対象推論部10は、その画像に含まれる対象に対する推論結果として、構成画像に含まれる対象に対する推論結果を採用する(ステップS118)。例えば、情報処理装置100が画像分類タスクを実行し、構成データ推論部30が物体検出タスクを実行する場合、対象推論部10は、画像に含まれる対象に対する推論結果として、構成データ推論部30の推論結果に含まれるクラスと確実性とを採用する。構成画像に含まれる対象に対する推論が失敗した画像の場合(ステップS117でNo)、対象推論部10は、その画像に含まれる対象に対する推論をデータ推論部40に指示する。データ推論部40は、その画像に含まれる対象に対する推論を実行する。そして、対象推論部10は、その画像に含まれる対象に対する推論結果として、画像に含まれる対象に対する推論結果を採用する(ステップS119)。このような動作を用いて、情報処理装置100は、データ取得部90が取得した画像に含まれる対象に対する推論を実行する。
【0071】
[スループットについての説明]
次に、第2実施形態の情報処理装置100におけるスループットと、画像分類タスクのみを用いた場合のスループットとの比較の例を説明する。以下、画像分類タスクのみを用いた場合を「比較技術」を呼ぶ。また、以下の説明における前提は、次の通りである。なお、推論処理以外の処理の負荷は、推論処理に比べ小さいため、以下の説明では無視する。また、スループットの単位は、fpsとする。
・処理量
比較技術及びデータ推論部40の推論対象である画像のサイズは、64×64ピクセルとする。また、構成データ推論部30の推論対象である構成画像のサイズは、512×512ピクセルとする。また、特徴量抽出層が同じであった場合の画像分類タスクに対する物体検出タスクの処理量の増分は1.2倍であるとする。このとき、構成データ推論部30の処理量は、比較技術及びデータ推論部40に対して、(512×512)/(64×64)×1.2=76.8倍である。
・AIデバイスの利用効率
画像を使用した場合のAIデバイスの利用効率は、10%とする。また、構成画像を使用した場合のAIデバイスの利用効率は、70%とする。つまり、構成データ推論部30におけるAIデバイスの利用効率は、比較技術に対して、70/10=7倍である。
・構成画像
構成画像における画像を複製する領域の数は、7×7とする。つまり、構成画像は、49枚の画像を複製した画像である。
・変数
説明に用いる式に含まれる変数は、次の通りである。
CPScomp:比較技術及びデータ推論部40の推論における画像単位のAIデバイスのスループット[単位:character per second(cps)]、
FPSmax:構成データ推論部30の推論における構成画像単位のAIデバイスの最大スループット[単位:fps]、
CPSmax:構成データ推論部30の推論における画像単位のAIデバイスの最大スループット[単位:cps]、
CPS10%failure:構成データ推論部30の推論が10%失敗した場合の画像単位のAIデバイスのスループット[単位:cps]。
【0072】
この場合、FPSmax及びCPSmaxは、
FPSmax=(CPScomp/(((512×512)/(64×64))×1.2))×(70/10)
=(CPScomp/76.8)×7
≒0.091×CPScomp
CPSmax=FPSmax×49
=0.091×CPScomp×49≒4.46×CPScomp
となる。つまり、構成データ推論部30が全ての構成画像に含まれる対象に対する推論が成功した場合のスループットCPSmaxは、比較技術のスループットCPScompの約4.46倍となる。なお、CPSmaxは、情報処理装置100の最大スループットである。
【0073】
構成データ推論部30の推論が10%失敗した場合のスループットCPS10%failureは、以下のようになる。まず、構成データ推論部30の処理時間及びデータ推論部40の処理時間は、それぞれ、
構成データ推論部30の処理時間:N/(CPSmax)≒N/(4.46×CPScomp)、
データ推論部40の処理時間:0.1×N/CPScomp
である。なお、Nは、処理する画像の数である。構成データ推論部30の処理時間及びデータ推論部40の処理時間の合計と画像の数(N)とから、この場合のスループットCPS10%failureは、
CPS10%failure=N/(N/(4.46×CPScomp)+0.1×N/CPScomp
=CPScomp/(1/4.46+0.1)
≒3.08×CPScomp
となる。つまり、構成データ推論部30の推論が10%失敗した場合でも、情報処理装置100のスループットは、比較技術のスループットの約3.08倍となる。
【0074】
このように、情報処理装置100は、推論処理のスループットを向上させる。その理由は、次の通りである。情報処理装置100は、対象推論部10と、データ構成部20と、構成データ推論部30と、データ推論部40とを含む。データ構成部20は、少なくとも一部が推論の対象を含む複数のデータを用いて構成される構成データを生成する。構成データ推論部30は、構成データに含まれる対象に対する推論を実行する。データ推論部40は、少なくとも一部のデータにおいて、データに含まれる対象に対する推論を実行する。対象推論部10は、構成データを構成するデータそれぞれに対して、構成データに含まれる対象に対する推論が成功したか失敗したかを判定する。そして、対象推論部10は、構成データに含まれる対象に対する推論が成功したデータに含まれる対象に対する推論として、構成データに含まれる対象に対する推論結果と、構成データとに基づいて、対象に対する推論を実行する。そして、対象推論部10は、構成データに含まれる対象に対する推論が失敗したデータに含まれる対象に対する推論として、データに含まれる対象に対する推論結果に基づいて対象に対する推論を実行する。
【0075】
情報処理装置100は、データより規模が大きなデータである構成データを用いて推論を実行し、推論処理のスループットを向上させる。特に、AIデバイスなど多数の演算器を並列動作させて高スループットを実現するハードウェアを使用する場合、情報処理装置100は、推論処理のスループットを向上できる。例えば、上記のスループットの説明では、情報処理装置100の最大スループットは、比較技術のスループットの約4.46倍となる。
【0076】
さらに、対象推論部10は、対象に対する推論が失敗したデータについては、データ推論部40の推論結果を用いて対象に対する推論を実行する。データ推論部40における推論は、構成データ推論部30における推論より並列性が低い推論である。ただし、データ推論部40は、構成データより規模が小さいデータを対象として、構成データ推論部30と比較して規模が小さいモデルを用いて推論する。そのため、データ推論部40の推論は、構成データ推論部30における推論より負荷が低い推論である。また、構成データ推論部30における失敗の確率が低い場合、データ推論部40が推論するデータの数量は、推論の対象となるデータの数量に比べかなり少ない数量となる。従って、この場合、情報処理装置100は、データ推論部40を用いても、推論全体に対する性能への影響を小さく抑えることができる。
【0077】
また、データ推論部40が推論するデータは、構成データ推論部30が推論に失敗したデータである。そのため、構成データ推論部30が再度のそのデータに含まれる対象に対する推論を実行する場合、失敗する可能性は、高いと想定される。これに対し、データ推論部40を用いて推論することは、構成データ推論部30を再度用いて推論する場合に比べ、推論の失敗の可能性が低いと想定される。その結果、情報処理装置100は、データ推論部40を用いて推論することで、構成データ推論部30における再推論の失敗に基づく処理全体に対する性能低下を低減できる。
【0078】
このように、情報処理装置100は、データ推論部40を用いて、構成データ推論部30において推論を成功しないデータがある場合においても、スループットの低減を改善する。例えば、上記の説明例では、構成データ推論部30の推論が10%失敗した場合でも、情報処理装置100のスループットは、比較技術のスループットの約3.08倍となる。
【0079】
さらに、情報処理装置100は、データセット生成部60と、データセット保存部50と、モデル学習部70と、モデル保存部80と、データ取得部90とを含んでもよい。データセット生成部60は、所定のデータセットを用いて、構成データ推論用モデルを生成するための構成データ学習用データセットを生成する。さらに、データセット生成部60は、所定のデータセットを用いて、データ推論用モデルを生成するためのデータ学習用データセットを生成する。データセット保存部50は、構成データ学習用データセット及びデータ学習用データセットを保存する。モデル学習部70は、構成データ学習用データセットを用いた機械学習により構成データ推論用モデルを生成する。さらに、モデル学習部70は、データ学習用データセットを用いた機械学習によりデータ推論用モデルを生成する。モデル保存部80は、構成データ推論用モデルと、データ推論用モデルとを保存する。データ取得部90は、データを取得する。そして、データ構成部20は、データ取得部90から取得したデータで構成される構成データを生成する。構成データ推論部30は、モデル保存部80に保存された構成データ推論用モデルを用いて構成データに含まれる対象に対する推論を実行する。データ推論部40は、対象推論部10に指示されたデータをデータ取得部90から取得し、取得したデータに含まれる対象をモデル保存部80に保存されたデータ推論用モデルを用いて推論する。このような構成に基づいて、情報処理装置100は、推論に用いるモデルを生成し、生成したモデルを用いてデータ取得部90が取得したデータに含まれる対象に対する推論を実行する。
【0080】
情報処理装置100は、データとして、画像のような二次元データを用いてもよい。例えば、データが画像の場合、データ構成部20は、複数の画像を二次元の平面上に並べた構成画像を生成してもよい。この場合、構成データ推論部30は、構成画像に含まれる対象に対する推論として、物体検出タスクを実行してもよい。さらに、この場合、データ推論部40は、画像に含まれる対象に対する推論として、画像分類タスクを実行してもよい。構成画像は、複数の画像を含む。さらに、物体検出タスクは、複数の画像に含まれる対象に対する推論処理として、画像分類タスクより並列性の高い処理を実行する可能性が高い。そのため、情報処理装置100は、推論処理のスループットを向上する。
【0081】
[バリエーション]
データセット保存部50は、少なくとも一部の学習用データセットとして、利用者などから予め与えられた学習用データセットを保存してもよい。あるいは、情報処理装置100は、少なくとも一部の学習用データセットとして、図示しない他の装置において生成された学習用データセットを取得して、データセット保存部50に保存してもよい。情報処理装置100が全ての学習用データセットを取得してデータセット保存部50に保存する場合、情報処理装置100は、データセット生成部60を含まなくてもよい。
【0082】
モデル学習部70は、図示しない装置から、少なくとも一部の学習用データセットを取得してもよい。モデル学習部70が図示しない装置から全ての学習用データセットを取得する場合、情報処理装置100は、データセット保存部50及びデータセット生成部60を含まなくてもよい。
【0083】
モデル保存部80は、利用者から取得した学習済モデルを保存してもよい。あるいは、情報処理装置100は、図示しない装置において生成された学習済モデルを取得して、モデル保存部80に保存してもよい。情報処理装置100が全ての学習済モデルを取得して、モデル保存部80に保存する場合、情報処理装置100は、データセット保存部50と、データセット生成部60と、モデル学習部70とを含まなくてもよい。
【0084】
構成データ推論部30及びデータ推論部40の少なくとも一方は、使用する学習済モデルを他の装置から取得してもよい。構成データ推論部30及びデータ推論部40の両方が図示しない外部の装置から学習済モデルを取得する場合、情報処理装置100は、データセット保存部50と、データセット生成部60と、モデル学習部70と、モデル保存部80とを含まなくてもよい。
【0085】
情報処理装置100は、データ構成部20と構成データ推論部30との組として、複数のデータ構成部20と構成データ推論部30との組を含んでもよい。例えば、情報処理装置100は、2つ以上のデータ構成部20と構成データ推論部30との組を含んでもよい。図9は、第2実施形態にかかる情報処理装置100のバリエーションの一例である情報処理装置103の構成を示すブロック図である。情報処理装置103は、情報処理装置100の構成であるデータ構成部20及び構成データ推論部30の組に加え、データ構成部23及び構成データ推論部33の組を含む。
【0086】
なお、以下の説明において、データ構成部20及び構成データ推論部30の組と、データ構成部23及び構成データ推論部33の組と区別する場合、それぞれを次のように呼ぶ場合もある。
・データ構成部20及び構成データ推論部30の組を第1組、データ構成部20を第1データ構成部、構成データ推論部30を第1構成データ推論部、データ構成部20が生成する構成データを第1構成データ。
・データ構成部23及び構成データ推論部33の組を第2組、データ構成部23を第2データ構成部、構成データ推論部33を第2構成データ推論部、データ構成部23が生成する構成データを第2構成データ。
【0087】
データ構成部23は、データ構成部21と同様に、データを複数用いて、複数のデータを含む第2構成データを生成する。例えば、データが画像の場合、データ構成部23は、複数の画像を組み合わせて、第2構成画像を生成する。ただし、データ構成部23は、第2構成データを生成するためのデータとして、構成データ推論部30における構成データに含まれる対象に対する推論が失敗したデータを用いて、第2構成データを生成する。構成データ推論部33は、データ構成部23が生成した第2構成データに含まれる対象に対して推論を実行する。対象推論部10は、第2構成データを構成するデータそれぞれに対して、第2構成データに含まれる対象に対する推論が成功したか失敗したかを判定する。そして、対象推論部10は、第2構成データに含まれる対象に対する推論が成功したデータに含まれる対象に対する推論として、第2構成データに含まれる対象に対する推論結果と、第2構成データとに基づいて、対象に対する推論を実行する。さらに、対象推論部10は、第2構成データに含まれる対象に対する推論が失敗したデータについて、データ推論部40にデータに含まれる対象に対する推論を指示する。そして、対象推論部10は、第2構成データ含まれる対象に対する推論が失敗したデータに含まれる対象に対する推論として、データに含まれる対象に対する推論結果に基づいて、データに含まれる対象に対する推論を実行する。
【0088】
なお、第2構成データは、構成データ推論部30が推論を失敗したデータで構成される。そのため、構成データ推論部33が構成データ推論部30と同じモデルを用いて第2構成データに含まれる対象に対する推論を実行する場合、推論を失敗する可能性が高い。そこで、例えば、構成データ推論部33が用いるモデルは、構成データ推論部30が用いるモデルとは異なるモデルであることが望ましい。あるいは、データ構成部23が生成する第2構成データは、データ構成部20が生成する構成データと異なる形式のデータであることが望ましい。例えば、データ画像の場合、データ構成部23は、データ構成部20が生成する構成データに比べ、画像の間隔を広くした第2構成データを生成してもよいし、複製する画像のサイズを大きくしてから第2構成データを生成してもよい。
【0089】
データ構成部20と構成データ推論部30との複数の組を含む場合、情報処理装置100は、上述のように複数の組を直列的に使用するのではなく、並列的に使用してもよい。例えば、対象推論部10は、データ取得部90が取得したデータを、複数の組のいずれかに組に振り分けてもよい。例えば、対象推論部10は、ラウンドロビン方式に沿って、データを各組に振り分けてもよい。あるいは、例えば、組それぞれにおいて構成データ推論部30における推論の方法又はモデルが異なる場合、情報処理装置100は、サイズなどデータの属性に基づいて、データに含まれる対象に対する推論に適した組に、データを振り分けてもよい。なお、データ取得部90は、データの属性など、取得したデータに関するメタデータを生成してもよい。この場合、情報処理装置100は、データの振り分けに、生成されたメタデータを用いてもよい。
【0090】
データ構成部20と構成データ推論部30との複数の組を並列的に使用する場合、情報処理装置100は、それぞれの組に対応したデータ推論部40を含んでもよい。ただし、構成データ推論部30での推論の失敗の確率が低い場合、情報処理装置100は、一つのデータ推論部40を含み、そのデータ推論部40で全ての組の構成データ推論部30が失敗した画像に含まれる対象に対する推論を実行してもよい。あるいは、情報処理装置100は、組の数より少ない数のデータ推論部40を含み、複数のデータ推論部40に、構成データ推論部30が失敗した画像に含まれる対象に対する推論を振り分けて実行させてもよい。
【0091】
データ構成部20と構成データ推論部30との複数の組を並列的に使用する場合、情報処理装置100は、それぞれの組に対応した対象推論部10を含んでもよい。ただし、対象推論部10の推論処理は、構成データ推論部30及びデータ推論部40の推論結果を用いての推論のため、構成データ推論部30及びデータ推論部40の推論処理より負荷が低い。そのため、情報処理装置100は、一つの対象推論部10を用いて、構成データ推論部30及びデータ推論部40の複数の組の推論結果に基づく推論を実行してもよい。あるいは、情報処理装置100は、所定数の組ごとに対象推論部10を含んでもよい。
【0092】
なお、スループットの向上の程度は低下するが、情報処理装置100は、データ構成部20と構成データ推論部30との組を一つ含み、構成データ推論部30において推論が失敗したデータを、再度、データ構成部20の入力として動作してもよい。特に、構成データ推論部30における推論の失敗の確率が低い場合、情報処理装置100は、再度、データ構成部20と構成データ推論部30との動作を繰り返してもよい。つまり、情報処理装置100は、構成データ推論部30において推論が失敗したデータに対して、所定回数まで、データ構成部20及び構成データ推論部30の動作を繰り返してもよい。ただし、失敗したデータを含む構成データを同じモデルを用いて推論する場合、そのデータに含まれる対象に対する推論は、失敗する可能性が高い。そこで、同じデータに対して動作を繰り返す場合、情報処理装置100は、データ構成部20及び構成データ推論部30に少なくとも一方の動作を変更することが望ましい。このように、情報処理装置100は、データ構成部20及び構成データ推論部30に少なくとも一方の動作を変更しながら推論を進めてもよい。
【0093】
ここまでの説明において、情報処理装置100は推論処理として画像分類タスクを実行し、構成データ推論部30は物体検出タスクを実行し、データ推論部40は画像分類タスクを実行する例を説明した。しかし、第2実施形態は、これに限定されるものではない。情報処理装置100は、画像分類タスクとは異なる推論タスクを実行してよい。あるいは、構成データ推論部30は、物体検出タスクとは異なる推論タスクを実行してよい。あるいは、データ推論部40は、画像分類タスクとは異なる推論タスクを実行してよい。
【0094】
例えば、情報処理装置100は、推論として、同種又は同じクラスの複数の対象の識別又は同定に利用可能な数値を計算する再同定(re-identification)タスクを実行してもよい。Re-identificationタスクは、物体検出タスクの一つであり、同一のカテゴリに属する複数の対象物があるときに、それぞれを区別して再度、同定するタスクである。Re-identificationタスクの場合、情報処理装置100は、データ推論部40における推論を省略してもよい。なお、例えば、re-identificationタスクのモデルが特徴量抽出層と再同定層とで構成される場合、構成データ推論部30が用いる学習済モデルは、図4の物体検出タスクのモデルにおけるクラス分類層及び回帰層を、再同定層で置き換えた構成となる。
【0095】
ここまでの第2実施形態の説明において、情報処理装置100のデータ構成部20は、一例として、構成画像の領域をグリッド状の複数の部分領域に分割し、各領域に画像を複製する。しかし、データ構成部20の動作は、この動作に限定されない。例えば、構成データ推論部30が物体検出タスクを実行する場合に、データ構成部20は、構成データ推論部30が用いる物体検出タスクの学習済モデルにおけるアンカー設定を考慮して構成画像を生成してもよい。より具体的には、データ構成部20は、物体検出タスクの入力である構成画像に含まれる対象に対する推論精度が向上するように、アンカーと受容野との関係に基づいて画像を組み合わせてもよい。なお、アンカーとは、予め決められたアスペクト比が異なる複数のBBごとに物体検出を行い、同時に検出できる対象物の数を増加させる手法である。また、受容野は、モデルの各層において処理可能な領域である。
【0096】
例えば、データ構成部20がグリッド状に画像を配置して構成画像を生成し、構成データ推論部30が物体検出タスクを実行する場合、構成データ推論部30は、構成画像を構成する画像に含まれる対象に対する推論に適したアンカー設定を用いてもよい。例えば、構成データ推論部30が使用する物体検出タスクの学習済モデルは、構成画像に含まれる各画像に含まれる対象に対する推論に適したアンカー設定を用いるよう、構成されていてもよい。
【0097】
<第3実施形態>
第3実施形態にかかる情報処理装置102は、推論動作の状況に応じて、推論処理に係るパラメタ、及び、推論の動作の少なくとも一方を変更する。なお、推論処理に係るパラメタとは、以下に限定されないが、例えば、推論に使用する学習済モデルを指定するパラメタである。また、変更する推論の動作は、後ほどより詳細に説明するが、例えば、構成データ推論部30を使用するか否かである。以下、図面を用いて、第3実施形態について説明する。なお、第3実施形態の説明において参照する各図面において、第2実施形態と同様の構成及び動作には同一の符号を付して、適宜、詳細な説明を省略する。なお、情報処理装置102は、第2実施形態と同様に、複数のデータ構成部20及び構成データ推論部30の組を含んでもよい。ただし、以下の説明では、説明の便宜のため、情報処理装置102に含まれる構成は、それぞれ一つとする。
【0098】
[構成の説明]
図10は、第3実施形態にかかる情報処理装置102の構成の一例を示すブロック図である。なお、情報処理装置102は、第2実施形態と同様に、CPUなどを備えたコンピュータ装置を用いて構成されてもよい。情報処理装置102は、対象推論部12と、データ構成部20と、構成データ推論部30と、データ推論部40とを含む。さらに、情報処理装置102は、データセット保存部52と、データセット生成部62と、モデル学習部72と、モデル保存部82と、データ取得部90とを含む。
【0099】
情報処理装置102において、各構成要素の動作を制御する構成は、第2実施形態と同様に、任意である。ただし、以下の説明では、説明の便宜のため、対象推論部12が、パラメタを変更して、データ構成部20などの動作を制御する。データ構成部20、構成データ推論部30、及び、データ推論部40は、対象推論部12が変更するパラメタに対応して、動作を変更する点を除き第2実施形態と同様のため、詳細な説明を省略する。また、データ取得部90は、第2実施形態と同様のため、詳細な説明を省略する。
【0100】
対象推論部12は、第2実施形態の対象推論部10と同様に動作して、対象に対する推論を実行する。さらに、対象推論部12は、情報処理装置102の動作状況を監視し、動作状況に応じて推論に関するパラメタを変更して、推論などの動作を切り替える。動作状況は、例えば、構成データ推論部30及びデータ推論部40の少なくとも一方における推論精度、又は、推論速度である。ただし、動作状況は、これらに限定されるものではない。次に、情報処理装置102の動作状況の一例として、構成データ推論部30の推論精度が所定の閾値を下回った場合の例を説明する。なお、対象推論部12は、構成データ推論部30の推論精度として、再現率(recall)など、一般的な推論において用いられる精度を用いればよい。
【0101】
対象推論部12は、構成データ推論部30の推論精度が所定の閾値を下回った場合に、以下のいずれかの動作、又は、少なくとも一部の動作の組み合わせを実行する。なお、構成データ推論部30における推論精度が所定の閾値を上回った場合には、対象推論部12は、以下で説明する動作の反対の動作を実行すればよい。
(1)対象推論部12は、構成データ推論部30の推論を一時的に停止する。つまり、対象推論部12は、精度が低い構成データ推論部30の推論結果を用いず、データ推論部40の推論結果を用いる。なお、構成データ推論部30の停止中、対象推論部12は、データ構成部20の動作を停止してもよい。対象推論部12は、オペレータからの指示、又は、所定の時間の経過など予め設定されている条件を満足すると、構成データ推論部30の動作を再開する。
(2)対象推論部12は、構成データ推論部30における推論が成功したか失敗したかの判定に使用する閾値の値を変更する。例えば、判定に確実性又はIoUを用いる場合、対象推論部12は、判定に用いる閾値を下げる。
(3)対象推論部12は、構成データ推論部30が用いるモデルを、より精度が高いモデルとする。例えば、構成データ推論部30がモデルを指定するパラメタを用いる場合、対象推論部12は、そのパラメタを、より精度が高いモデルとなるように変更する。
(4)対象推論部12は、構成データ推論部30が用いるモデルの規模を大きくする。例えば、構成データ推論部30がモデルを指定するパラメタを用いる場合、対象推論部12は、そのパラメタを、より大きな規模のモデルのパラメタに変更する。
(5)データが画像の場合、対象推論部12は、構成画像に複製する画像のサイズを大きくする。例えば、データ構成部20が画像の複製に関するパラメタを用いている場合、対象推論部12は、そのパラメタを、構成画像に複製する画像のサイズが大きくなるパラメタに変更する。例えば、データ構成部20が構成画像におけるグリッドの数を指定するパラメタを用いている場合、対象推論部12は、そのパラメタを、グリッドの数を少なくするパラメタに変更する。
(6)構成画像において画像間に隙間を設けている場合、対象推論部12は、隙間を広くする。例えば、データ構成部20が隙間の広さのパラメタを用いている場合、対象推論部12は、そのパラメタを、隙間を広くするパラメタに変更する。
(7)対象推論部12は、構成データのサイズを大きくする。例えば、データ構成部20が構成画像のサイズを指定するパラメタを用いる場合、対象推論部12は、そのパラメタを、構成画像のサイズが大きくなるパラメタに変更する。
【0102】
さらに、情報処理装置102は、構成データ推論部30及びデータ推論部40の少なくとも一方における推論精度又は推論速度などの状況に基づいて、以下のように、情報処理装置102における少なくとも一つの動作を調整してもよい。情報処理装置102における少なくとも一つの動作とは、対象推論部12、データ構成部20、構成データ推論部30及びデータ推論部40の少なくとも一つにおける動作である。例えば、対象推論部12は、推論精度及び推論速度の調整として、以下の動作を実行してもよい。なお、以下の動作を実現するため、対象推論部12は、上記と同様に、所定のパラメタを変更すればよい。ただし、以下の説明では、パラメタの変更の説明を省略する。
(1)対象推論部12は、構成データ推論部30が使用するモデルを大規模なモデルに変更する。この変更は、構成データ推論部30の推論精度を向上する。なお、構成データ推論部30の推論精度の向上の結果としてデータ推論部40における推論の回数が減る場合、構成データ推論部30における推論速度との兼ね合いであるが、この変更は、情報処理装置102の推論速度を向上させる可能性がある。
(2)対象推論部12は、データ推論部40が使用するモデルを大規模なモデルに変更にする。この変更は、データ推論部40の推論精度を向上する。
(3)対象推論部12は、データ推論部40が使用するモデルを小規模なモデルに変更する。この変更は、データ推論部40の推論速度を向上する。
(4)対象推論部12は、データ構成部20が使用するグリッドの数を少なくする。この変更は、構成データ推論部30の推論精度を向上する。
(5)対象推論部12は、データ構成部20が使用するグリッドの数を多くする。この変更は、構成データ推論部30の推論速度を向上する。
(6)対象推論部12は、データ構成部20が使用する画像間の間隔を広くする。この変更は、構成データ推論部30の推論精度を向上する。
(7)対象推論部12は、構成データ推論部30における推論が成功したか失敗したかの判定に用いる閾値の値を変更する。例えば、推論の確実性を成功か失敗かの判定に用いる場合、確実性の閾値を高くすることは、構成データ推論部30の推論精度を向上する。
【0103】
データセット生成部62は、データセット生成部60と同様に、オリジナルデータセットを用いて、学習用データセットを生成する。ただし、構成データ推論部30及びデータ推論部40の少なくとも一方が複数のモデルを使用する場合、データセット生成部62は、複数のモデルそれぞれを生成するための複数の学習用データセットを生成する。データセット生成部62は、複数のオリジナルデータセットを用いて、複数のデータセットを生成してもよい。あるいは、データセット生成部62は、オリジナルデータセットに対してデータ拡張(data augmentation)手法を適用して複数のオリジナルデータセットを生成し、生成した複数のオリジナルデータセットを用いて複数の学習用データセットを生成してもよい。データセット生成部62は、例えば、データ拡張手法として、左右反転、上下反転、部分切り出し(cropping)、結合、拡大・縮小、明度調整、輝度調整、及び、色調整の少なくとも一つを用いてもよい。データセット生成部62は、上記とは異なる画像処理を用いてもよい。
【0104】
データセット保存部52は、データセット保存部50と同様に、情報処理装置102が使用する学習済モデルを生成するために用いる学習用データセットを保存する。ただし、構成データ推論部30及びデータ推論部40の少なくとも一方が複数のモデルを使用する場合、データセット保存部52は、複数のモデルに対応した複数の学習用データセットを保存する。データセット保存部52は、少なくとも一部の学習用データセットとして、オペレータなどから取得した学習用データセットを保存してもよい。
【0105】
モデル学習部72は、モデル学習部70と同様に、学習用データセットを用いて学習済モデルを生成する。ただし、構成データ推論部30及びデータ推論部40の少なくとも一方が複数のモデルを使用する場合、モデル学習部72は、複数の学習済モデルを生成する。そして、モデル学習部72は、生成した学習済モデルをモデル保存部82に保存する。
【0106】
モデル保存部82は、モデル保存部80と同様に、構成データ推論部30及びデータ推論部40が推論に使用する学習済モデルを保存する。ただし、構成データ推論部30及びデータ推論部40の少なくとも一方が複数のモデルを使用する場合、モデル保存部82は、複数の学習済モデルを保存する。モデル保存部82は、モデル学習部72が生成した学習済モデルを保存する。ただし、モデル保存部82は、少なくとも一部の学習済モデルとして、予め情報処理装置102がオペレータなどから取得した学習済モデルを保存してもよい。複数の学習済モデルの少なくとも一部は、他の学習済モデルと、モデル構造及びネットワーク構造の少なくとも一方が異なるモデルでもよい。例えば、少なくとも一部の学習済モデルは、他の学習済モデルと、以下の項目の少なくとも一部が異なるモデルでもよい。
(a) 学習用データセット、
(b) ネットワーク構造、
(c) ハイパーパラメタ、
(d) 重み精度、
(e) バッチサイズ、
(f) 構成画像の生成に係るパラメタ。
【0107】
このように構成された情報処理装置102は、第2実施形態と同様、推論のスループットを向上させ、さらに、推論動作の状況に応じて、情報処理装置102における動作をより適切な動作に切り替えることができる。より詳細には、情報処理装置102の対象推論部12は、構成データ推論部30及びデータ推論部40の少なくとも一方における推論の状況に基づいて、情報処理装置102における動作を、より適切な動作に切り替える。なお、推論の状況は、推論精度又は推論速度でもよい。ただし、推論の状況は、これらに限定されない。また、情報処理装置102の対象推論部12が切り替える動作は、対象推論部12、データ構成部20、構成データ推論部30、及び、データ推論部40の少なくとも一つにおける動作である。なお、動作の切り替えは、対象推論部12における構成データに含まれる対象に対する推論が成功したか失敗したかの判定に用いる閾値の変更でもよい。あるいは、動作の切り替えは、構成データ推論部30、及び、データ推論部40の少なくとも一方における推論に用いられるモデルの変更でもよい。あるいは、動作の切り替えは、データ構成部20における構成データのサイズの変更でもよい。あるいは、動作の切り替えは、上記の少なくとも一部の組合せでもよい。ただし、動作の切り替えは、これらに限定されない。例えば、構成データ推論部30による推論精度が低下した場合、情報処理装置102は、構成データ推論部30が使用するモデルを、より精度の高いモデルに変更してもよい。このような動作に基づいて、情報処理装置102は、スループットを向上させながら、所望の推論精度又は推論速度を実現する。
【0108】
<ハードウェア構成>
情報処理装置100を用いて、情報処理装置100、101、102、及び、103のハードウェア構成について説明する。図11において、情報処理装置100は、全ての構成を含んでいる。しかし、情報処理装置100の構成は、図11の構成に限定されない。例えば、情報処理装置100は、各構成に相当する機能を備えた装置を、所定のネットワークを介して接続して、構成されてもよい。例えば、情報処理装置100は、クラウドコンピューティングを用いて構成されてもよい。あるいは、情報処理装置100において、少なくとも一部の複数の構成部は、1つのハードウェアで構成されてもよい。あるいは、情報処理装置100の各構成部は、それぞれが個別のハードウェア回路で構成されてもよい。
【0109】
あるいは、情報処理装置100は、CPUと、読み取り専用メモリ(Read Only Memory(ROM))と、ランダム・アクセス・メモリ(Random Access Memory(RAM))とを含むコンピュータ装置として実現されてもよい。情報処理装置100は、上記構成に加え、さらに、ネットワークインターフェース回路(Network Interface Circuit(NIC))を含むコンピュータ装置として実現されてもよい。さらに、情報処理装置100は、機械学習及び推論の一部又は全てを実行するAIデバイスを含むコンピュータ装置として実現されてもよい。
【0110】
図11は、情報処理装置100のハードウェア構成の一例であるコンピュータ装置600の構成を示すブロック図である。コンピュータ装置600は、CPU610と、AIデバイス611と、ROM620と、RAM630と、記憶装置640と、NIC650とを含み、コンピュータ装置を構成している。
【0111】
CPU610は、ROM620及び記憶装置640の少なくとも一方からプログラムを読み込む。そして、CPU610は、読み込んだプログラムに基づいて、AIデバイス611と、RAM630と、記憶装置640と、NIC650とを制御する。そして、CPU610を含むコンピュータ装置600は、これらの構成を制御し、対象推論部10と、データ構成部20と、構成データ推論部30と、データ推論部40としての各機能を実現する。さらにて、CPU610を含むコンピュータ装置600は、データセット保存部50と、データセット生成部60と、モデル学習部70と、モデル保存部80と、データ取得部90としての各機能を実現する。
【0112】
CPU610は、各機能を実現する際に、RAM630又は記憶装置640を、プログラムの一時記憶媒体として使用してもよい。また、CPU610は、コンピュータで読み取り可能にプログラムを記憶した記録媒体690が含むプログラムを、図示しない記録媒体読み取り装置を用いて読み込んでもよい。あるいは、CPU610は、NIC650を介して、図示しない外部の装置からプログラムを受け取り、RAM630又は記憶装置640に保存し、保存したプログラムを基に動作してもよい。
【0113】
AIデバイス611は、CPU610に制御されて、機械学習及び推論の一部又は全ての処理を実行する。例えば、AIデバイス611は、GPU、FPGA、ASIC、又は、AIチップである。処理の実行において、AIデバイス611は、CPU610に制御されて、データ、プログラム、又は、回路情報など処理の実行に必要な情報を、ROM620、RAM630、又は、記憶装置640から読み込む。
【0114】
ROM620は、CPU610が実行するプログラム及び固定的なデータを保存する。ROM620は、AIデバイス611の処理に必要な情報を保存してもよい。ROM620は、例えば、プログラマブルROM(Programmable-ROM(P-ROM))又はフラッシュROMである。RAM630は、CPU610が実行するプログラム及びデータを一時的に保存する。RAM630は、AIデバイス611の処理に必要は情報を一時的に保存してもよい。RAM630は、例えば、ダイナミックRAM(Dynamic-RAM(D-RAM))である。
【0115】
記憶装置640は、コンピュータ装置600が長期的に保存するデータ及びプログラムを保存する。記憶装置640は、AIデバイス611の処理に必要は情報を保存してもよい。あるいは、記憶装置640は、データセット保存部50として動作してもよい。あるいは、記憶装置640は、モデル保存部80として動作してもよい。あるいは、記憶装置640は、CPU610の一時記憶装置として動作してもよい。記憶装置640は、例えば、ハードディスク装置、光磁気ディスク装置、ソリッド・ステート・ドライブ(Solid State Drive(SSD))、又は、ディスクアレイ装置である。
【0116】
ROM620と記憶装置640とは、不揮発性(non-transitory)の記録媒体である。一方、RAM630は、揮発性(transitory)の記録媒体である。そして、CPU610は、ROM620、記憶装置640、又は、RAM630に保存されているプログラムを基に動作可能である。つまり、CPU610は、不揮発性記録媒体、又は、揮発性記録媒体を用いて動作可能である。
【0117】
NIC650は、ネットワークを介した図示しない外部の装置とのデータのやり取りを中継する。NIC650は、例えば、LAN(Local Area Network)カードである。さらに、NIC650は、有線に限らず、無線を用いてもよい。
【0118】
このように構成されたコンピュータ装置600のCPU610及びAIデバイス611は、プログラムに基づいて情報処理装置100と同様の機能を実現できるため、推論処理のスループットを向上させる。なお、図1の情報処理装置101、図9の情報処理装置103、又は、図10の情報処理装置102が、コンピュータ装置600を用いて実現されてもよい。
【0119】
<システム>
情報処理装置100を用いて、情報処理装置100、101、102、及び、103を含むシステムの一例を説明する。図12は、情報処理装置100を含む情報処理システム400の構成の一例を示すブロック図である。情報処理システム400は、情報処理装置100と、データ取得装置200と、認識装置300とを含む。情報処理システム400は、それぞれの装置として、複数の装置を含んでもよい。例えば、情報処理システム400は、複数のデータ取得装置200を含んでもよい。なお、情報処理システム400は、情報処理装置100に替えて、情報処理装置101、102、又は、103を含んでもよい。
【0120】
データ取得装置200は、少なくとも一部に推論の対象を含む複数のデータを取得し、情報処理装置100に出力する。データ取得装置200は、情報処理装置100が用いるオリジナルデータセット、学習用データセット、又は、学習済モデルを取得して、情報処理装置100に出力してもよい。データ取得装置200は、例えば、監視用のカメラである。この場合、データ取得装置200は、推論の対象を含むデータとして、撮影した画像を情報処理装置100に出力する。例えば、データ取得装置200は、車のLPの画像を取得し、取得した画像に含まれる文字の画像を情報処理装置100に出力する。あるいは、データ取得装置200は、予め取得した推論用のデータを保存する装置でもよい。
【0121】
情報処理装置100は、上記の通り、データ取得装置200から推論の対象を含むデータを取得し、上記で説明した動作を実行して取得したデータに含まれる対象に対する推論を実行する。例えば、情報処理装置100が英数字(alphanumeric)についての画像分類タスクを実行する場合、情報処理装置100は、データ取得装置200から取得した画像を、数字の0から9及びアルファベットのAからZのいずれか一つに分類する。そして、情報処理装置100は、対象に対する推論結果を出力する。例えば、情報処理装置100は、対象に対する推論結果として、文字のクラスを認識装置300に出力する。情報処理装置100は、推論結果に合わせて、文字を含む画像など推論に用いたデータを出力してもよい。
【0122】
認識装置300は、情報処理装置100から取得した推論結果を用いて、情報処理装置100が推論した対象に関連する認識を実行する。例えば、情報処理装置100がLPの文字の画像における英数字のクラスを分類する場合、認識装置300は、分類された英数字のクラスを用いて車のLPを認識する。この場合、英数字のクラスが情報処理装置100の推論結果であり、LPの認識処理が対象に関連する認識処理、つまり認識装置300における認識処理である。さらに、認識装置300は、認識結果を出力してもよい。例えば、認識装置300は、認識結果を所定の表示装置に表示してもよい。例えば、認識装置300がLPを認識する場合、利用者は、表示装置に表示されたLPを参照して、LPを判定できる。
【0123】
上記のとおり、情報処理システム400は、情報処理装置100と、データ取得装置200と、認識装置300とを含む。データ取得装置200は、少なくとも一部に対象を含む複数のデータを情報処理装置100に出力する。情報処理装置100は、データに含まれる対象に対する推論を実行する。認識装置300は、情報処理装置100から対象に対する推論結果を取得し、取得した推論結果に基づいて対象に関連する認識を実行する。例えば、データ取得装置200は、車のLPの文字を含む画像を取得する。情報処理装置100は、文字の画像のクラスを推論する。認識装置300は、推論された文字のクラスに基づいてLPを認識する。そして、情報処理システム400内の情報処理装置100は、スループットを向上した推論を実現する。そのため、情報処理システム400は、情報処理装置100の推論結果に基づいた認識処理のスループットを向上する。
【0124】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【符号の説明】
【0125】
10 対象推論部
11 対象推論部
12 対象推論部
20 データ構成部
21 データ構成部
23 データ構成部
30 構成データ推論部
31 構成データ推論部
33 構成データ推論部
40 データ推論部
41 データ推論部
50 データセット保存部
52 データセット保存部
60 データセット生成部
62 データセット生成部
70 モデル学習部
72 モデル学習部
80 モデル保存部
82 モデル保存部
90 データ取得部
100 情報処理装置
101 情報処理装置
102 情報処理装置
103 情報処理装置
600 コンピュータ装置
610 CPU
611 AIデバイス
620 ROM
630 RAM
640 記憶装置
650 NIC
690 記録媒体
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12