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

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

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

特許7643579情報処理装置、情報処理システム、情報処理方法、及び、プログラム
<>
  • 特許-情報処理装置、情報処理システム、情報処理方法、及び、プログラム 図1
  • 特許-情報処理装置、情報処理システム、情報処理方法、及び、プログラム 図2
  • 特許-情報処理装置、情報処理システム、情報処理方法、及び、プログラム 図3
  • 特許-情報処理装置、情報処理システム、情報処理方法、及び、プログラム 図4
  • 特許-情報処理装置、情報処理システム、情報処理方法、及び、プログラム 図5
  • 特許-情報処理装置、情報処理システム、情報処理方法、及び、プログラム 図6
  • 特許-情報処理装置、情報処理システム、情報処理方法、及び、プログラム 図7
  • 特許-情報処理装置、情報処理システム、情報処理方法、及び、プログラム 図8
  • 特許-情報処理装置、情報処理システム、情報処理方法、及び、プログラム 図9
  • 特許-情報処理装置、情報処理システム、情報処理方法、及び、プログラム 図10
  • 特許-情報処理装置、情報処理システム、情報処理方法、及び、プログラム 図11
  • 特許-情報処理装置、情報処理システム、情報処理方法、及び、プログラム 図12
  • 特許-情報処理装置、情報処理システム、情報処理方法、及び、プログラム 図13
  • 特許-情報処理装置、情報処理システム、情報処理方法、及び、プログラム 図14
  • 特許-情報処理装置、情報処理システム、情報処理方法、及び、プログラム 図15
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-03-03
(45)【発行日】2025-03-11
(54)【発明の名称】情報処理装置、情報処理システム、情報処理方法、及び、プログラム
(51)【国際特許分類】
   G06N 20/00 20190101AFI20250304BHJP
【FI】
G06N20/00
【請求項の数】 8
(21)【出願番号】P 2023552407
(86)(22)【出願日】2021-10-04
(86)【国際出願番号】 JP2021036589
(87)【国際公開番号】W WO2023058082
(87)【国際公開日】2023-04-13
【審査請求日】2024-04-01
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100109313
【弁理士】
【氏名又は名称】机 昌彦
(74)【代理人】
【識別番号】100149618
【弁理士】
【氏名又は名称】北嶋 啓至
(72)【発明者】
【氏名】渡邊 義和
【審査官】千葉 久博
(56)【参考文献】
【文献】特開2018-200531(JP,A)
【文献】米国特許出願公開第2019/0294177(US,A1)
【文献】国際公開第2020/175806(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 20/00
(57)【特許請求の範囲】
【請求項1】
一次推論として、少なくとも一部のデータが第1対象物体を含む推論対象データを、第1学習済モデルに適用して、前記第1対象物体を推論する一次推論手段と、
前記一次推論において推論された前記第1対象物体を、前記第1対象物体の属性に基づいていずれかのグループに分類し、前記グループごとに前記推論対象データより数量が少ないデータである集約データを生成し、前記推論対象データにおける前記第1対象物体の位置と、前記集約データにおける前記第1対象物体の位置との対応関係を生成するデータ集約手段と、
二次推論として、互いに異なる前記グループの前記集約データを第2学習済モデルに適用して前記第1対象物体を推論する複数の二次推論手段と、
前記二次推論の結果における前記第1対象物体と、前記対応関係とを用いて、前記推論対象データにおける前記第1対象物体を推論する物体推論手段と
を含む情報処理装置。
【請求項2】
前記二次推論手段は、互いに異なる学習済モデル、又は、互いに異なる推論パラメタを用いる
請求項1に記載の情報処理装置。
【請求項3】
前記データ集約手段は、前記二次推論手段それぞれにおける推論難易度を推定し、前記推論難易度に基づいて前記第1対象物体をいずれかの前記グループに分類する
請求項1又は2に記載の情報処理装置。
【請求項4】
前記一次推論手段は、前記二次推論手段それぞれにおける前記推論難易度を推論する
請求項3に記載の情報処理装置。
【請求項5】
請求項1ないし4のいずれか1項に記載の情報処理装置と、
前記情報処理装置に前記推論対象データを出力するデータ取得装置と、
前記情報処理装置から推論の結果を取得し、取得した推論の結果を表示する表示装置と
を含む情報処理システム。
【請求項6】
情報処理装置が、
一次推論として、少なくとも一部のデータが第1対象物体を含む推論対象データを、第1学習済モデルに適用して、前記第1対象物体を推論し、
前記一次推論において推論された前記第1対象物体を、前記第1対象物体の属性に基づいていずれかのグループに分類し、前記グループごとに前記推論対象データより数量が少ないデータである集約データを生成し、前記推論対象データにおける前記第1対象物体の位置と、前記集約データにおける前記第1対象物体の位置との対応関係を生成し、
二次推論として、互いに異なる前記グループの前記集約データを第2学習済モデルに適用して前記第1対象物体を推論し、
前記二次推論の結果における前記第1対象物体と、前記対応関係とを用いて、前記推論対象データにおける前記第1対象物体を推論する
情報処理方法。
【請求項7】
情報処理装置が、請求項6に記載の情報処理方法を実行し、
データ取得装置が、前記情報処理装置に前記推論対象データを出力し、
表示装置が、前記情報処理装置から推論の結果を取得し、取得した推論の結果を表示する
情報処理方法。
【請求項8】
一次推論として、少なくとも一部のデータが第1対象物体を含む推論対象データを、第1学習済モデルに適用して、前記第1対象物体を推論する処理と、
前記一次推論において推論された前記第1対象物体を、前記第1対象物体の属性に基づいていずれかのグループに分類し、前記グループごとに前記推論対象データより数量が少ないデータである集約データを生成し、前記推論対象データにおける前記第1対象物体の位置と、前記集約データにおける前記第1対象物体の位置との対応関係を生成する処理と、
二次推論として、互いに異なる前記グループの前記集約データを第2学習済モデルに適用して前記第1対象物体を推論する処理と、
前記二次推論の結果における前記第1対象物体と、前記対応関係とを用いて、前記推論対象データにおける前記第1対象物体を推論する処理と
をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、機械学習を用いた推論に関する。
【背景技術】
【0002】
非特許文献1ないし3には、深層学習(Deep-Learning)を用いた物体検出タスクの技術が、開示されている。非特許文献4には、画像の中に含まれる人間の姿勢を推定する姿勢推定タスクの技術が開示されている。
【先行技術文献】
【非特許文献】
【0003】
【文献】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年7月20日検索], インターネット<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年7月20日検索, インターネット, <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年7月20日検索], インターネット, <URL:https://arxiv.org/abs/1708.02002>
【文献】Yadong Pan, Ryo Kawai, Noboru Yoshida, Hiroo Ikeda, Shoji Nishimura, “Training Physical and Geometrical Mid-Points for Multi-person Pose Estimation and Human Detection Under Congestion and Low Resolution”, June 21, 2020, The National Center for Biotechnology Information, [2021年09月15日検索], インターネット<URL: https://pubmed.ncbi.nlm.nih.gov/33063050/>
【発明の概要】
【発明が解決しようとする課題】
【0004】
機械学習を用いた推論の処理、特に物体検出タスク及び姿勢推定タスクの処理は、計算負荷が高く、処理に多くの時間が掛かる処理である。そのため、物体検出タスク及び姿勢推定タスクにおける推論処理のスループットを向上することが望まれている。非特許文献1ないし4は、推論のスループットの向上に関連する技術を開示していない。本発明の目的は、対象物体の推論のスループットを向上させる情報処理装置などを提供することにある。
【課題を解決するための手段】
【0005】
本発明の一形態にかかる情報処理装置は、
一次推論として、少なくとも一部のデータが第1対象物体を含む推論対象データを、第1学習済モデルに適用して、第1対象物体を推論する一次推論手段と、
一次推論において推論された第1対象物体を、第1対象物体の属性に基づいていずれかのグループに分類し、グループごとに推論対象データより数量が少ないデータである集約データを生成し、推論対象データにおける第1対象物体の位置と、集約データにおける第1対象物体の位置との対応関係を生成するデータ集約手段と、
二次推論として、互いに異なるグループの集約データを第2学習済モデルに適用して第1対象物体を推論する複数の二次推論手段と、
二次推論の結果における第1対象物体と、対応関係とを用いて、推論対象データにおける第1対象物体を推論する物体推論手段と
を含む。
【0006】
本発明の一形態にかかる情報処理システムは、
上記の情報処理装置と、
情報処理装置に推論対象データを出力するデータ取得装置と、
情報処理装置から推論の結果を取得し、取得した推論の結果を表示する表示装置と
を含む。
【0007】
本発明の一形態にかかる情報処理方法は、
一次推論として、少なくとも一部のデータが第1対象物体を含む推論対象データを、第1学習済モデルに適用して、第1対象物体を推論し、
一次推論において推論された第1対象物体を、第1対象物体の属性に基づいていずれかのグループに分類し、グループごとに推論対象データより数量が少ないデータである集約データを生成し、推論対象データにおける第1対象物体の位置と、集約データにおける第1対象物体の位置との対応関係を生成し、
二次推論として、互いに異なるグループの集約データを第2学習済モデルに適用して第1対象物体を推論し、
二次推論の結果における第1対象物体と、対応関係とを用いて、推論対象データにおける第1対象物体を推論する。
【0008】
本発明の一形態にかかる情報処理方法は、
情報処理装置が上記の情報処理方法を実行し、
データ取得装置が、情報処理装置に推論対象データを出力し、
表示装置が、情報処理装置から推論の結果を取得し、取得した推論の結果を表示する。
【0009】
本発明の一形態にかかる記録媒体は、
一次推論として、少なくとも一部のデータが第1対象物体を含む推論対象データを、第1学習済モデルに適用して、第1対象物体を推論する処理と、
一次推論において推論された第1対象物体を、第1対象物体の属性に基づいていずれかのグループに分類し、グループごとに推論対象データより数量が少ないデータである集約データを生成し、推論対象データにおける第1対象物体の位置と、集約データにおける第1対象物体の位置との対応関係を生成する処理と、
二次推論として、互いに異なるグループの集約データを第2学習済モデルに適用して第1対象物体を推論する処理と、
二次推論の結果における第1対象物体と、対応関係とを用いて、推論対象データにおける第1対象物体を推論する処理と
をコンピュータに実行させるプログラムを記録する。
【発明の効果】
【0010】
本発明に基づけば、対象物体の推論のスループットを向上するとの効果を奏することができる。
【図面の簡単な説明】
【0011】
図1】第2実施形態にかかる情報処理装置の構成の一例を示すブロック図である。
図2】第2実施形態にかかる情報処理装置における学習済モデルの生成の動作の一例を示すフロー図である。
図3】第2実施形態にかかる情報処理装置における対象物体の推論の動作の一例を示すフロー図である。
図4】データ集約部における後処理の一例を示すフロー図である。
図5】一次推論の結果の一例を示す図である。
図6】集約データの一例を示す図である。
図7】二次推論の結果の一例を示す図である。
図8】推論対象データにおける対象物体の推論の一例を示す図である。
図9】情報処理装置のハードウェア構成の一例を示すブロック図である。
図10】情報処理装置を含む情報処理システムの構成の一例を示すブロック図である。
図11】第3実施形態にかかる情報処理装置の構成の一例を示すブロック図である。
図12】第3実施形態にかかる情報処理装置におけるモデルの切り替え動作の一例を示すフロー図である。
図13】第1実施形態にかかる情報処理装置の構成の一例を示すブロック図である。
図14】第2実施形態にかかるグループごとに二次推論を実行する情報処理装置の構成の一例を示すブロック図である。
図15図14の情報処理装置における対象物体の推論の動作の一例を示すフロー図である。
【発明を実施するための形態】
【0012】
以下、本発明における実施形態について、図面を用いて説明する。各図面は、本発明における実施形態を説明するためのものである。ただし、各実施形態は、各図面の記載に限られるわけではない。また、各実施形態は、適宜組み合わせることができる。
【0013】
<第1実施形態>
図13は、本発明における第1実施形態にかかる情報処理装置1Cの構成の一例を示すブロック図である。情報処理装置1Cは、物体推論部10Dと、一次推論部20Dと、データ集約部30Dと、複数の二次推論部40Dとを含む。一次推論部20Dは、一次推論として、少なくとも一部のデータが第1対象物体を含む推論対象データを、第1学習済モデルに適用して、第1対象物体を推論する。データ集約部30Dは、一次推論において推論された第1対象物体を、第1対象物体の属性に基づいていずれかのグループに分類する。そして、データ集約部30Dは、グループごとに推論対象データより数量が少ないデータである集約データを生成する。そして、データ集約部30Dは、推論対象データにおける第1対象物体の位置と、集約データにおける第1対象物体の位置との対応関係を生成する。二次推論部40Dは、二次推論として、互いに異なるグループの集約データを第2学習済モデルに適用して第1対象物体を推論する。物体推論部10Dは、二次推論の結果における第1対象物体と、対応関係とを用いて、推論対象データにおける第1対象物体を推論する。
【0014】
このように構成された情報処理装置1Cは、第1対象物体の属性に基づいて分類した第1対象物体のグループごとに、推論対象データを集約した集約データを生成する。そして、情報処理装置1Cは、グループごとの集約データを用いた二次推論の結果と、対象物体の推論対象データ及び集約データの位置との対応関連とを用いて、推論対象データにおける対象物体を推論する。集約データは、元のデータにおける対象物体を含み、かつ、データの数量が少なくいデータである。そのため、情報処理装置1Cは、対象物体の推論のスループットを向上する。さらに、情報処理装置1Cは、第1対象物体の属性に基づいて分類した複数のグループごとに集約した集約データに対して二次推論を実行する。つまり、情報処理装置1Cは、第1対象物体の属性に対応した二次推論を実行する。例えば、後ほど詳細に説明するが、情報処理装置1Cは、推論難易度が低いグループについては、二次推論として精度が高くないが軽量で高速な学習済モデル又は推論パラメタを用いる二次推論を用いて、精度を維持しつつ推論のスループットを向上できる。一方、情報処理装置1Cは、推論難易度が高いグループについては、精度が高い学習済モデル又は推論パラメタを用いる二次推論を用いて、精度の劣化を回避した推論を実行できる。このように、情報処理装置1Cは、精度を維持しつつ、対象物体の推論のスループットを向上させる。
【0015】
<第2実施形態>
機械学習を用いた主要なタスクの一つとして、画像における物体検出(Object Detection)タスクがある。物体検出タスクは、画像の中に存在する対象物体の位置とクラス(種別)との組のリストを生成するタスクである。近年、機械学習の中でも特に深層学習(Deep-Learning)を用いた物体検出タスクが、広く利用されている。物体検出タスクは、機械学習の学習フェーズにおいて、正解データとして、学習用の画像群と、各画像内の対象物体の情報とが与えられる。対象物体の情報は、物体検出タスクの仕様に沿って選択される。例えば、対象物体の情報は、対象物体が映っている矩形領域の4つの頂点の座標(バウンディングボックス(Bounding Box(BB))及び対象物体のクラスを含む。なお、以下の説明でも、対象物体の情報の一例として、BB及びクラスを用いて説明する。そして、物体検出タスクは、学習用の画像群と対象物体の情報とを用いて、例えば、深層学習を用いた機械学習の結果として、学習済モデルを生成する。物体検出タスクは、検出フェーズにおいて、対象物体を含む画像に対して学習済モデルを適用して画像に含まれる対象物体を推論し、画像に含まれる対象物体それぞれについて、BBとクラスとの組を出力する。なお、物体検出タスクは、BB及びクラスとともに、物体検出の結果についての評価結果を出力することもある。評価結果としては、確実性(confidence)が用いられることが多いが、これに限らず、他の値が用いられる場合もある。
【0016】
例えば、人及び車の監視システムは、物体検出タスクを用いて構築可能である。例えば、システムの利用者は、監視カメラからの画像を物体検出タスクに入力する。物体検出タスクは、画像における人及び車の位置及びクラスを検出する。そして、利用者は、物体検出タスクが検出した人及び車の位置及びクラスを用いて、監視カメラの画像に映っている人及び車を判定すればよい。また、物体検出タスクは、他の認識処理と組み合わされて用いられることもある。例えば、ナンバープレート認識システムは、車のナンバープレートを検出する物体検出タスクと、検出されたナンバープレート上の文字を認識する光学文字認識(Optical Character Recognition(OCR))処理とを組み合わせて、構築可能である。
【0017】
その他のタスクとして、画像の中に含まれる人間の姿勢を推定する姿勢推定タスクがある。姿勢推定タスクは、例えば、目、鼻、肘、及び、膝などの特徴点(keypoint)を抽出する処理と、特徴点同士を組み合わせて人の姿勢を生成する処理とで構成される。姿勢推定タスクは、以下に限定されないが、例えば、特徴点を抽出するkeypoint抽出処理に深層学習を用い、姿勢を生成する処理に非深層学習を用いる場合がある。keypoint抽出処理では、推論フェーズにおいて、対象を含む画像に対して学習済モデルを適用して画像に含まれる目及び鼻などのkeypointが推論される。そして、keypoint抽出処理では、推論された各keypointについて、keypointの座標及びクラスと、推論の確実性(confidence)とが出力される。
【0018】
物体検出タスク及び姿勢推定タスクの処理は、高スループットが求められている。例えば、見落としを防ぐために、監視カメラは、ある程度の高いフレームレートで画像を取得する必要がある。特に、車のような高速で移動する物体を対象とする場合、監視カメラは、例えば、10fps(frame per second)又はそれ以上のフレームレートでの動作が望まれている。そのため、物体検出タスクなどは、監視カメラが取得した高いフレームレートの画像における物体を検出する必要がある。
【0019】
さらに、監視カメラが取得した画像における物体を検出するシステムでは、監視カメラ又は監視カメラの周辺の機器、すなわち、エッジが、物体検出タスクにおける推論処理を実行する構成が想定される。しかし、エッジでは、設置場所、冷却、及び、電力等が制約され、限られた計算リソースしか利用できない場合が多い。物体検出タスクなどの処理は、そのようなエッジ環境においても、ある程度の高いスループットが求められている。
【0020】
しかし、機械学習を用いた推論の処理、特に物体検出タスク及び姿勢推定タスクの処理は、計算負荷が高く、処理に多くの時間が掛かる処理である。その結果、物体検出タスク及び姿勢推定タスクは、一般的に、スループット性能が低くなりやすい。そこで、物体検出タスク及び姿勢推定タスクにおける推論処理のスループットを向上することが望まれている。
【0021】
そこで、第2実施形態は、以下で詳細に説明する構成を用いて、推論のスループットを向上する。図面を用いて、第2実施形態の構成について説明する。図1は、第2実施形態にかかる情報処理装置1の構成の一例を示すブロック図である。なお、本実施形態を含め、以下の説明では、一例として、次のものを用いる。
(1)推論対象のデータ:カメラなどが撮影した画像(静止画又は動画)、
(2)推論のタスク:画像を対象とした物体検出タスク又は姿勢推定タスク、
(3)推論の結果:「BB又はKeypoint、クラス、及び、confidence」の組、
(4)対象物体:車両のライセンスプレート(License Plate(LP))又は姿勢。
【0022】
ただし、これらは、本実施形態などを限定するものではない。例えば、本実施形態は、処理の対象のデータとして、画像とは異なるデータを用いてもよい。例えば、本実施形態は、処理対象のデータとして、深度センサを用いて取得された深度データを用いてもよい。あるいは、本実施形態は、処理対象のデータとして、ライダー(Light Detection and Ranging(LIDAR))を用いて取得された3次元データを用いてもよい。あるいは、本実施形態における推論の結果は、「BB又はKeypoint、クラス、及び、confidence」の組に限定されない。例えば、本実施形態は、BBに含まれる対象物体を推論してもよい。なお、以下の説明において、説明の便宜のため、「BB、クラス、及び、confidence」の組を、単に「BB」と呼ぶ場合もある。
【0023】
図面を用いて、第2実施形態の構成について説明する。図1は、第2実施形態にかかる情報処理装置1の構成の一例を示すブロック図である。情報処理装置1は、物体推論部10と、一次推論部20と、データ集約部30と、二次推論部40と、データ保存部50と、データ生成部60と、モデル生成部70と、モデル保存部80と、データ取得部90とを含む。図1に示す構成要素の数及び接続関係は、一例である。例えば、情報処理装置1は、複数のデータ取得部90を含んでもよい。情報処理装置1は、CPU(Central Processing Unit)、メインメモリ、及び、二次記憶装置を含むコンピュータ装置を用いて構成されてもよい。この場合、図1に示されている情報処理装置1の構成要素は、CPUなどを用いて実現される機能を示している。ハードウェア構成については、後ほどさらに説明する。
【0024】
情報処理装置1において、各構成要素の動作を制御する構成は、任意である。例えば、情報処理装置1は、各構成要素を制御する制御部(図示せず)を含んでもよい。あるいは、所定の構成が、一次推論部20、データ集約部30、及び、二次推論部40などの構成要素の動作を制御してもよい。あるいは、例えば、物体推論部10が、一次推論部20、データ集約部30、及び、二次推論部40などの構成要素の動作を制御してもよい。このように、所定の構成が、他の構成を制御してもよい。あるいは、各構成要素が、独立的に、他の構成要素からデータを取得して動作してもよい。あるいは、各構成要素は、他の構成要素からデータを取得すると動作を開始してもよい。そのため、以下の説明では、特に必要な場合を除いて、構成要素の動作の制御に関する説明を省略する。
【0025】
(1)データ取得部90
データ取得部90は、所定の装置から、推論の対象となる物体含むデータを取得する。以下、推論の対象となる物体を、「対象物体」と呼ぶ。また、対象物体を含むデータを、「推論対象データ」と呼ぶ。推論対象データは、少なくとも一部のデータが対象物体を含めばよい。つまり、少なくとも一部の推論対象データは、対象物体を含まなくてもよい。データ取得部90が推論対象データを取得する装置は、任意である。例えば、データ取得部90は、推論対象データとして、監視カメラから画像を取得してもよい。
【0026】
(2)一次推論部20
一次推論部20は、推論対象データにおける対象物体を推論する。以下、一次推論部20における推論を「一次推論」と呼ぶ。一次推論部20は、一次推論の対象として、対象物体に加え、対象物体と所定の位置関係にある物体を推論してもよい。対象物体と所定の位置関係にある物体とは、例えば、LPの周辺物体であるが、これに限定されない。以下、対象物体と所定の位置関係にある物体を「サブ対象物体」と呼ぶ。以下の説明では、一次推論部20は、対象物体とサブ対象物体とを推論する。ただし、これは、一次推論部20の動作を限定するものではない。一次推論部20は、サブ対象物体を推論しなくてもよい。また、以下の説明では、情報処理装置1における推論の対象物体を「第1対象物体」と呼び、サブ対象物体を「第2対象物体」と呼ぶ場合もある。
【0027】
所定の位置関係は、任意である。オペレータが、対象物体に対応して、サブ対象物体の位置関係を設定すればよい。例えば、位置関係の一例は、「対象物体が、サブ対象物体に包含される」又は「サブ対象物体が、対象物体を包含する」である。例えば、対象物体が車両のLPの場合、サブ対象物体は、LPを包含する車両の前面及び後面である。なお、以下、LPを包含する車両の前面及び後面をまとめて、「車前後面」と呼ぶ場合もある。ただし、これは、第2実施形態における位置関係を限定するものではない。
【0028】
一次推論部20は、一次推論において、機械学習を用いる。詳細には、一次推論部20は、モデル保存部80に保存されている機械学習を用いて生成された学習済モデルを用いて、推論対象データにおける対象物体及びサブ対象物体を推論する。以下、一次推論部20が用いる学習済モデルを「一次推論用学習済モデル」又は「第1学習済モデル」と呼ぶ。一次推論部20は、一次推論用学習済モデルに推論対象データを適用するときに、推論対象データを修正してもよい。例えば、推論対象データが画像の場合、一次推論部20は、画像のサイズ又はアスペクト比を変更してもよい。
【0029】
(3)データ集約部30
データ集約部30は、一次推論の結果に含まれる対象物体を用いて、以下で説明する処理を実行する。ただし、一次推論部20が対象物体に加えサブ対象物体を推論する場合、データ集約部30は、対象物体に加え、サブ対象物体を用いてもよい。以下の説明では、データ集約部30は、対象物体及びサブ対象物体を用いる。ただし、データ集約部30は、サブ対象物体を用いなくてもよい。この場合、データ集約部30は、以下の説明におけるサブ対象物体に関連する動作を省略すればよい。
【0030】
データ集約部30は、一次推論の結果に含まれる対象物体に対して、所定の処理を実行する。例えば、所定の処理は、BBの破棄、BBのフィルタリング、又は、BBの調整である。以下、この処理を「後処理」と呼ぶ。データ集約部30は、一次推論の結果に含まれる対象物体の一部に対して後処理を実行してもよいし、全ての対象物体に対して後処理を実行してもよい。さらに、データ集約部30は、一次推論の結果に含まれるサブ対象物体の一部又は全てに対して、後処理を実行してもよい。以下の説明では、一例として、データ集約部30は、全ての対象物体及びサブ対象物体に対して、後処理を実行する。ただし、データ集約部30における後処理は、これに限定されない。
【0031】
さらに、データ集約部30は、推論対象データにおける対象物体の領域及びサブ対象物体の領域を含み、推論対象データよりデータの数量が少ないデータを生成する。以下、推論対象データよりデータの数量が少ないデータとして生成されるデータを、「集約データ」と呼ぶ。また、以下、この処理を「集約」と呼ぶ。つまり、「集約」とは、推論対象データから一次推論の結果における対象物体及びサブ対象物体を含む領域を抽出又は複製し、抽出又は複製した領域を集めて、推論対象データの数量より少ない数量のデータである集約データを生成することである。
【0032】
集約データにおいて、推論対象データに対して少なくなるデータの数量は、任意である。オペレータが、対象物体及び推論の動作に対応して決定すればよい。例えば、データの数量としてデータの数を用いる場合、集約データは、推論対象データに対して、データの数が少ないデータである。例えば、データが静止画の場合、データの数は、静止画の枚数である。あるいは、データが固定時間長の動画の場合、データの数は、例えば、動画の本数である。データの数量としてデータの量を用いる場合、集約データは、推論対象データに対して、データの量が少ないデータである。データの量とは、例えば、容量又は面積である。例えば、データが静止画の場合、データの量は、静止画全体のデータの量である。あるいは、データが映像の場合、データの量は、映像の時間長である。
【0033】
さらに、データ集約部30は、集約データの生成において、推論対象データにおける対象物体及びサブ対象物体それぞれの位置と、集約データにおける対象物体及びサブ対象物体それぞれの位置との対応関係を生成する。以下、推論対象データにおける対象物体及びサブ対象物体それぞれの位置と、集約データにおける対象物体及びサブ対象物体それぞれの位置との対応関係を、「集約対応関係」と呼ぶ。例えば、BBを推論する場合、データ集約部30は、集約対応関係として、推論対象データにおける対象物体のBB及びサブ対象物体のBBの位置、向き及びサイズと、集約データにおけるそれぞれの位置、向き及びサイズとの座標変換を生成する。
【0034】
なお、データが画像の場合、データ集約部30は、集約データにおける画像として、推論対象データにおける画像のサイズとは異なるサイズの画像を生成してもよい。例えば、情報処理装置1のオペレータが、推論対象データのサイズ、情報処理装置1のハードウェアの性能、並びに、推論に用いる学習済モデルの処理性能及び計算精度などに基づいて、集約データにおける画像のサイズをデータ集約部30に設定してもよい。集約データは、後ほど説明する二次推論部40が推論に用いるデータである。また、推論対象データは、一次推論部20が推論に用いるデータである。つまり、情報処理装置1は、一次推論部20と二次推論部40とで、異なるサイズのデータを用いてもよい。例えば、データが画像の場合、情報処理装置1は、一次推論部20と二次推論部40とで、異なるサイズの画像を用いてもよい。
【0035】
次に、データ集約部30における後処理及び集約の詳細について説明する。なお、データ集約部30における「後処理」と「集約」とをまとめて「データ集約」と呼ぶ。つまり、「データ集約」の動作は、集約データの生成前における「後処理」の動作と、「集約」の動作とを含む動作である。ただし、データ集約部30は、「後処理」を実行しなくてもよい。この場合、データ集約は、以下の説明における「集約」の動作となる。
【0036】
(3-1)後処理
データ集約部30は、集約データの生成前において、以下で説明する後処理を実行する。例えば、データ集約部30は、対象物体とサブ対象物体との位置関係と、一次推論の結果とを用いて、一次推論の結果の中から不要なサブ対象物体の領域を破棄する。例えば、データ集約部30は、一次推論の結果に含まれるサブ対象物体において、そのサブ対象物体と所定の位置関係にある対象物体が一次推論の結果に含まれるサブ対象物体を破棄する。あるいは、データ集約部30は、一次推論の結果として推論された対象物体に対応するサブ対象物体のBBを破棄してもよい。言い換えると、データ集約部30は、一次推論の結果に含まれるサブ対象物体において、所定の位置関係にある対象物体が一次推論の結果に含まれないサブ対象物体を集約の対象として用いる。「サブ対象物体が対象物体を含む位置関係」及び「BB」を用いて、この動作を用いる理由を説明する。
【0037】
一次推論の結果に含まれる対象物体のBBは、後ほど説明する集約の動作において、集約データに含まれる。そのため、一次推論の結果に含まれる対象物体を含むサブ対象物体のBBが集約データに含まれない場合でも、対象物体のBBは、集約データに含まれる。また、そのサブ対象物体のBBを集約データに含めた場合、集約データは、対象物体のBBとして、重複したBBを含むこととなる。これは、二次推論における不要な負荷の追加となる。そこで、データ集約部30は、このようなサブ対象物体を破棄する。その結果、情報処理装置1は、このサブ対象物体のBBを用いる場合に比べ、スループットを向上できる。一方、一次推論の結果に対象物体が含まれないサブ対象物体のBBは、一次推論において推論されなかった対象物体を含む可能性がある。そのため、このようなサブ対象物体のBBを集約データに含めると、情報処理装置1は、二次推論の精度を向上できる。
【0038】
このように、データ集約部30は、サブ対象物体の中で、対象物体が一次推論の結果に含まれるサブ対象物体を破棄する。言い換えると、データ集約部30は、集約の対象として、対象物体と所定の位置関係にあるサブ対象物体の中で、所定の位置関係にある対象物体が一次推論の結果に含まれないサブ対象物体を用いる。データ集約部30は、この動作の結果として、二次推論における推論精度を向上させながら、生成する集約データの数量を減らすことができる。その結果、情報処理装置1は、スループット、及び、推論の速度を向上できる。
【0039】
例えば、サブ対象物体の位置関係が「サブ対象物体である車前後面が対象物体であるLPを包含する」の場合、データ集約部30は、一次推論の結果に含まれる車前後面のBBにおいて、BB内に一次推論の結果に含まれるLPを含む車前後面のBBを破棄する。言い換えると、データ集約部30は、一次推論の結果に含まれる車前後面のBBの中で、領域内にLPが推論されていない車前後面のBBを集約の対象とする。このように、データ集約部30は、対象物体とサブ対象物体との両方が推論された一次推論の結果を含まないように、集約データを生成する。
【0040】
対象物体とサブ対象物体との位置関係は、上記に限定されず、任意である。例えば、データ集約部30は、オペレータが設定した位置関係を用いて、対象物体とサブ対象物体との位置関係を判定する。なお、データ集約部30は、対象物体とサブ対象物体との位置関係の判定において、図示しない装置などに保存されている対象物体とサブ対象物体との位置関係を判定する学習済モデルを用いてもよい。
【0041】
なお、データ集約部30は、サブ対象物体の破棄とは異なる動作を実行してもよい。例えば、対象物体が検出され、その対象物体に対応するサブ対象物体が検出された場合、データ集約部30は、サブ対象物体のBBを破棄せず、対象物体のBBのconfidenceを更新してもよい。例えば、対象物体が検出され、その対象物体に対応するサブ対象物体が検出された場合、データ集約部30は、対象物体のBBのconfidenceに所定の値を加算又は乗算してもよいし、confidenceの値を所定の値に変更してもよい。
【0042】
データ集約部30は、集約データの生成前における後処理として、一次推論の結果をフィルタリングしてもよい。フィルタリングの対象は、任意である。例えば、データ集約部30は、BBに対応するconfidence、BBのサイズ又はアスペクト比、及び、BBの画像内における位置の少なくとも一つを用いて、一次推論の結果のBBをフィルタリングしてもよい。より詳細には、例えば、データ集約部30は、所定の閾値とBBの属性値との比較に基づいて、BBをフィルタリングしてもよい。なお、属性値は、例えば、サイズ又はアスペクト比である。例えば、データ集約部30は、推論に不適切なサイズ又はアスペクト比のBBを破棄してもよい。なお、閾値は、一つではなく、複数でもよい。例えば、閾値は、BBに関連するクラス毎に異なってもよい。あるいは、閾値は、対象物体に対応するサブ対象物体が検出されたか否かに対応して異なってもよい。
【0043】
あるいは、データ集約部30は、取得したBBのサイズ及びアスペクト比の少なくとも一方を調整してもよい。一次推論の結果に含まれるBBの位置及びサイズは、正しい位置及びサイズとは異なる可能性がある。例えば、BBサイズは、実際の対象物体より小さい可能性がある。特に、一次推論で使用する学習済モデルが小さくかつ軽量な場合、推論されたBBが実際の対象物体より小さくなる傾向が、顕著となる。
【0044】
サイズが実際の対象物体より小さいBBをそのまま使用すると、データ集約部30は、一部が欠けた対象物体を含む集約データを生成する。その結果、後ほど説明する二次推論部40は、一部が欠けた対象物体を含む集約データを用いて推論することになる。その結果、二次推論部40における推論の結果が正しい結果とならない可能性、つまり、推論精度が低くなる可能性が、高くなる。そこで、データ集約部30は、後処理として、対象物体のBB及びサブ対象物体のBBの高さ及び幅の少なくともいずれか一つに所定の値を加える又は所定の値を乗じて、BBのサイズを修正してもよい。あるいは、BBのアスペクト比が所定の範囲から乖離している場合、データ集約部30は、所定の範囲にアスペクト比が入るようBBの高さ及び幅の少なくとも一方を修正してもよい。例えば、データ集約部30は、BBの修正量として、BBサイズ、クラス、画像内の位置、及び、画像内の所定の物体との相対位置の少なくとも一つに対応して、異なる値を用いてもよい。あるいは、対象物体のBBの場合、データ集約部30は、BBの修正量として、対象物体に対応するサブ対象物体が検出されたか否か、又は、対応するサブ対象物体のBBのサイズ等に対応して、異なる値を用いてもよい。これらの場合、オペレータが、予め、データ集約部30が用いるそれぞれの値を設定してもよい。
【0045】
なお、データ集約部30は、「後処理」を実行しなくてもよい。ただし、後処理を実行する場合も、後処理を実行しない場合も、データ集約部30は、以下で説明する集約の動作として、同じ動作を実行する。そこで、以下の説明では、説明の便宜のため、後処理を実行しない場合を含め、以下で説明する動作を「後処理後」の動作として説明する。つまり、後処理を実行しない場合、情報処理装置1は、以下の説明における「後処理後」の動作として、後処理を実行しない一次推論の結果を用いて動作すればよい。
【0046】
(3-2)集約
データ集約部30は、後処理後の一次推論の結果における対象物体及びサブ対象物体の領域を集めた集約データを生成する。詳細には、データ集約部30は、推論対象データにおける後処理後の一次推論の結果における対象物体の領域及びサブ対象物体の領域を抽出又は複製し、抽出又は複製した領域を集めた集約データを生成する。
【0047】
データ集約部30は、複数の推論対象データから一つ集約データを生成してもよいし、複数の推論対象データから複数の集約データを生成してよい。ただし、複数の場合でも、集約データの数量は、推論対象データの数量より少ない。推論対象データが画像の場合、データ集約部30は、集約データの生成において、画像の間に所定の隙間を設けてもよい。なお、既に説明した通り、データ集約部30は、後処理を実行しないで集約を実行してもよい。この場合、データ集約部30は、一次推論の結果を用いて集約を実行する。
【0048】
さらに、データ集約部30は、推論対象データにおける後処理後の一次推論の結果において、重複している一次推論の結果、及び、近接する一次推論の結果の少なくとも一方を一つにまとめてから、集約してもよい。例えば、データ集約部30は、重複しているBB、及び、所定の距離内のBBを、それらのBB全てを包含するBBとしてから、集約してもよい。情報処理装置1は、このような動作により、二次推論において同じ物体の二重検出の可能性、及び、対象物体を見落す可能性を低減できる。
【0049】
なお、データ集約部30は、抽出又は複製した後処理後の一次推論の結果における対象物体及びサブ対象物体のサイズを変更してから集約してもよい。サイズを変更は、例えば、拡大又は縮小である。対象物体及びサブ対象物体のサイズを小さくする場合、生成する集約データの数量は、少なくなる。その結果、二次推論の時間が短くなる可能性、つまり、スループットが向上する可能性が、高くなる。反対に、対象物体及びサブ対象物体のサイズを大きくする場合、生成する集約データにおける対象物体などのサイズ、つまり、二次推論における対象物体などのサイズが、大きくなる。その結果、二次推論の推論精度が向上する可能性が、高くなる。
【0050】
対象物体及びサブ対象物体のサイズの変更のやり方は、任意である。例えば、データ集約部30は、後処理後の一次推論の結果における対象物体及びサブ対象物体のサイズに基づいて、サイズを変更するか否か、及び、変更する場合にどのように変更するかを決定してもよい。あるいは、データ集約部30は、一次推論の結果を用いて、サイズを変更するか否か、変更する場合にどのように変更するかを決定してもよい。
【0051】
データ集約部30は、サイズの変更において、所定の画像処理を実行してもよい。この場合の所定の画像処理は、例えば、補完処理である。あるいは、データ集約部30は、サイズを変更に加えて、又は、サイズの変更に替えて、所定の画像処理を実行してもよい。この場合の所定の画像処理は、例えば、明度調整、輝度調整、色調整、コントラスト調整、幾何補正、又は、これらの一部又は全ての組合せである。さらに、データ集約部30は、一次推論の結果に対応して、画像処理に係るパラメタを調整してもよい。
【0052】
さらに、データ集約部30は、集約対応関係として、推論対象データにおける対象物体の領域と、集約データにおける対象物体の領域との対応関係を生成する。なお、この場合の領域は、例えば、BBの位置、向き及びサイズである。サブ対象物体の領域を集約する場合、データ集約部30は、サブ対象物体の領域に関しても同様に、推論対象データにおけるサブ対象物体の領域と、集約データにおけるサブ対象物体の領域との対応関係である集約対応関係を生成する。
【0053】
(4)二次推論部40
二次推論部40は、データ集約部30が生成した集約データにおける対象物体を推論する。以下、二次推論部40にける推論を「二次推論」と呼ぶ。二次推論部40は、二次推論において、機械学習を用いる。詳細には、二次推論部40は、モデル保存部80に保存されている学習済モデルを用いて、集約データにおける対象物体を推論する。以下、二次推論部40が用いる学習済モデルを「二次推論用学習済モデル」又は「第2学習済モデル」と呼ぶ。例えば、二次推論部40は、二次推論用学習済モデルを用いて、二次推論の結果として、集約データに含まれる対象物体の「BB、クラス、及び、confidence」の組を推論する。
【0054】
二次推論部40は、二次推論用学習済モデルに集約データを適用するときに、集約データのサイズを変更してもよい。例えば、集約データが画像の場合、二次推論部40は、集約データにおける画像のサイズ又はアスペクト比を変更してから、二次推論用学習済モデルに適用してもよい。
【0055】
(5)データ生成部60
データ生成部60は、所定のデータセットを用いて、機械学習に用いる学習用データセットを生成する。以下、所定のデータセットを、「オリジナル学習用データセット」と呼ぶ。オリジナル学習用データセットに含まれるデータは、機械学習の手法に対応したデータであれば任意である。例えば、オリジナル学習用データセットは、対象物体に関する正解データを含む画像群である。なお、オリジナル学習用データセットの取得元は、任意である。例えば、オペレータが、予め、データ保存部50にオリジナル学習用データセットを保存してもよい。あるいは、データ生成部60が、学習用データセットの生成において、図示しない装置からオリジナル学習用データセットを取得してもよい。
【0056】
詳細には、データ生成部60は、一次推論用学習済モデルを生成する機械学習において用いられる学習用データセットを生成する。一次推論用学習済モデルは、一次推論部20において用いられる。以下、一次推論部20が用いる一次推論用学習済モデルを生成する機械学習において用いられる学習用データセットを、「一次推論学習用データセット」又は「第1学習用データセット」と呼ぶ。さらに、データ生成部60は、二次推論用学習済モデルを生成する機械学習に用いられる学習用データセットを生成する。二次推論用学習済モデルは、二次推論部40において用いられる。以下、二次推論部40が用いる二次推論用学習済モデルを生成する機械学習に用いられる学習用データセットを、「二次推論学習用データセット」又は「第2学習用データセット」と呼ぶ。
【0057】
例えば、データ生成部60は、オリジナル学習用データセットに含まれる対象物体の正解データ、及び、対象物体とサブ対象物体との位置関係の情報とに基づいて、対象物体及びサブ対象物体の正解データを生成する。そして、データ生成部60は、オリジナル学習用データセットに、生成した正解データを加えて、一次推論学習用データセットを生成する。例えば、データ生成部60は、オリジナル学習用データセットに含まれるLPのBBに対して高さ及び幅に所定の値を乗じて大きくしたBBを生成する。このBBは、車前後面の正解データである。そして、データ生成部60は、生成した車前後面の正解データをオリジナル学習用データセットに加えて、一次推論学習用データセットを生成する。
【0058】
あるいは、データ生成部60は、LPの正解データとして、オリジナル学習用データセットに所定の学習済モデルを適用して、LPのBBを推論する。そして、データ生成部60は、車前後面の正解データとして、推論したLPのBBに対して高さ及び幅に所定の値を乗じて大きくしたBBを生成する。そして、データ生成部60は、生成したLP及び車前後面の正解データをオリジナル学習用データセットに加えて、一次推論学習用データセットを生成する。あるいは、データ生成部60は、正解データとしてオリジナル学習用データセットに所定の学習済モデルを適用してLPのBB及び車前後面のBBを推論し、推論したBBをオリジナル学習用データセットに加えて、一次推論学習用データセットを生成してもよい。
【0059】
あるいは、例えば、データ生成部60は、データ集約部30を用いて、オリジナル学習用データセットの正解データから集約データを生成する。そして、データ生成部60は、オリジナル学習用データセットに正解データと集約データとを加えて、二次推論学習用データセットを生成する。なお、データ生成部60は、オリジナル学習用データセットに代えて一次推論学習用データセットを用いて、二次推論学習用データセットを生成してもよい。又は、データ生成部60は、オリジナル学習用データセットに一次推論学習用データセットを加えたデータセットを用いて、二次推論学習用データセットを生成してもよい。
【0060】
なお、一次推論部20及び二次推論部40が同じ学習済モデルを用いる場合、データ生成部60は、一次推論学習用データセット及び二次推論学習用データセットとして、一つの学習用データセットを生成してもよい。あるいは、データ生成部60は、異なるオリジナル学習用データセットを用いて、一次推論学習用データセット及び二次推論学習用データセットを生成してもよい。
【0061】
そして、データ生成部60は、生成した一次推論学習用データセット及び二次推論学習用データセットをデータ保存部50に保存する。ただし、データ生成部60は、一次推論学習用データセット及び二次推論学習用データセットの少なくとも一方を図示しない外部の装置から取得してもよい。この場合、データ生成部60は、取得した一次推論学習用データセット又は二次推論学習用データセットをデータ保存部50に保存する。
【0062】
(6)データ保存部50
データ保存部50は、一次推論学習用データセット及び二次推論学習用データセットを保存する。さらに、データ保存部50は、オリジナル学習用データセットを保存してもよい。オリジナル学習用データセットの取得元は、任意である。例えば、オペレータが、予め、データ保存部50に、オリジナル学習用データセットを保存してもよい。
【0063】
情報処理装置1は、データ保存部50として、図示しない外部の記憶装置を用いてもよい。この場合、情報処理装置1は、物理的構成として、データ保存部50を含まなくてもよい。あるいは、情報処理装置1は、図示しない装置などにおいて生成された一次推論学習用データセット及び二次推論学習用データセットの少なくとも一方を取得して、データ保存部50に保存してもよい。一次推論学習用データセット及び二次推論学習用データセットの両方を取得する場合、情報処理装置1は、データ生成部60を含まなくてもよい。
【0064】
(7)モデル生成部70
モデル生成部70は、所定のモデルに対して、データ保存部50に保存されている一次推論学習用データセットを用いた機械学習を実行して、一次推論部20が用いる一次推論用学習済モデル、つまり第1学習済モデルを生成する。さらに、モデル生成部70は、所定のモデルに対して、データ保存部50に保存されている二次推論学習用データセットを用いた機械学習を実行して、二次推論部40が用いる二次推論用学習済モデル、つまり第2学習済モデルを生成する。なお、学習済モデルの取得に用いられるモデルの取得元は、任意である。例えば、オペレータが、予め、モデル保存部80にモデルを保存してもよい。あるいは、モデル生成部70は、学習済モデルの生成において、図示しない装置から学習済モデルの生成に用いるモデルを取得してもよい。
【0065】
モデル生成部70は、一次推論用学習済モデルと二次推論用学習済モデルとして、モデルの種類、ネットワーク構造、及び、サイズなどが同様のモデルを生成してもよいし、異なるモデルを生成してもよい。例えば、モデル生成部70は、一次推論用学習済モデルと二次推論用学習済モデルとして、同じモデルを生成してもよい。つまり、モデル生成部70は、一次推論用学習済モデルと二次推論用学習済モデルとして、一つのモデルを生成してもよい。例えば、一次推論部20及び二次推論部40が同じ学習済モデルを用いる場合、モデル生成部70は、一次推論用学習済モデルと二次推論用学習済モデルとして、一つの学習済モデルを生成してもよい。あるいは、モデル生成部70は、一次推論用学習済モデルと二次推論用学習済モデルとして、異なるモデルであるが、モデルの種類、ネットワーク構造、及び、サイズなどが同等であるモデルを生成してもよい。
【0066】
あるいは、モデル生成部70は、一次推論用学習済モデルと二次推論用学習済モデルとして、モデルの種類、ネットワーク構造、及び、サイズなどの少なくとも一つが異なるモデルを生成してもよい。例えば、深層学習を用いて両方の学習済モデルを生成する場合、モデル生成部70は、一次推論用学習済モデル及び二次推論用学習済モデルとして、モデルの種類、ネットワーク構造、及び、サイズの少なくとも一つが異なるモデルを生成してもよい。例えば、モデル生成部70は、一次推論用学習済モデルとして、二次推論用学習済モデルに対して、小さくて軽量な学習済モデルを生成してもよい。ただし、これは、モデル生成部70が生成する学習済モデルを限定するものではない。
【0067】
モデル生成部70が用いる機械学習の手法は、任意である。例えば、モデル生成部70は、深層学習を用いて、一次推論用学習済モデル及び二次推論用学習済モデルの少なくとも一方を生成してもよい。モデル生成部70は、一次推論用学習済モデルの生成に用いる機械学習の手法と、二次推論用学習済モデルの生成に用いる機械学習の手法として、同じ手法を用いてもよいし、異なる手法を用いてもよい。なお、第2実施形態の説明では、一例として、モデル生成部70は、一次推論用学習済モデルと二次推論用学習済モデルとして、異なる学習済モデルを生成する。
【0068】
そして、モデル生成部70は、生成した一次推論用学習済モデル及び二次推論用学習済モデルを、モデル保存部80に保存する。ただし、モデル生成部70は、一次推論用学習済モデル及び二次推論用学習済モデルの少なくとも一方を図示しない外部の装置から取得してもよい。この場合、モデル生成部70は、取得した一次推論用学習済モデル又は二次推論用学習済モデルをモデル保存部80に保存する。
【0069】
(8)モデル保存部80
モデル保存部80は、一次推論用学習済モデル及び二次推論用学習済モデルを保存する。モデル保存部80は、モデル生成部70が学習済モデルの生成に用いるモデルを保存してもよい。例えば、オペレータが、予め、モデル保存部80に、学習済モデルの生成に用いるモデルを保存してもよい。情報処理装置1は、モデル保存部80として、図示しない外部の記憶装置を用いてもよい。この場合、情報処理装置1は、物理的構成として、モデル保存部80を含まなくてもよい。あるいは、情報処理装置1は、図示しない装置などから一次推論用学習済モデル及び二次推論用学習済モデルの少なくとも一方を取得して、取得したモデルをモデル保存部80に保存してもよい。一次推論用学習済モデル及び二次推論用学習済モデルの両方を取得する場合、情報処理装置1は、データ保存部50、データ生成部60、及び、モデル生成部70を含まなくてもよい。
【0070】
(9)物体推論部10
物体推論部10は、二次推論部40における二次推論の結果である集約データにおける対象物体と、データ集約部30が集約データの生成において生成した集約対応関係とを用いて、推論対象データにおける対象物体を推論する。例えば、集約対応関係としてBBの座標変換が保存されている場合、物体推論部10は、BBの推論位置として、その座標変換の逆変換を、二次推論の結果として推論されたBBの座標に適用して、推論対象データにおける対象物体のBBの位置を算出する。例えば、二次推論の結果として得られたBBの矩形が、集約データにおける矩形からはみ出している場合、物体推論部10は、そのBBを破棄してもよい。あるいは、例えば、二次推論の結果として得られたBBの矩形と集約データ上での矩形との積集合部分の面積を、二次推論の結果として得られたBBの矩形の面積で除した値が、所定の閾値未満の場合、物体推論部10は、そのBBを破棄してもよい。なお、上記の商が所定の閾値以上の場合、物体推論部10は、そのBBの矩形を上記の積集合部分に修正してもよい。
【0071】
(A)学習済モデルの生成の動作
図2は、第2実施形態にかかる情報処理装置1における学習済モデルの生成の動作の一例を示すフロー図である。情報処理装置1は、所定の条件を契機に、学習済モデルの生成を開始する。例えば、情報処理装置1は、オペレータからの指示を契機に、学習済モデルの生成を開始する。この場合、動作の開始において、情報処理装置1は、オペレータから学習済モデルの生成に必要なパラメタを取得してもよい。
【0072】
学習済モデルの生成に必要なパラメタは、任意である。例えば、データ保存部50が複数の学習用データセットを保存する場合、パラメタは、どの学習用データセットを使用するかを示す情報である。あるいは、パラメタは、モデル生成部70における機械学習の処理に係るパラメタでもよい。なお、情報処理装置1は、パラメタに加え、他の情報を取得してもよい。例えば、データ生成部60は、オペレータから、学習用データセットの少なくとも一部を取得してもよい。この場合、データ生成部60は、取得した学習用データセットを、データ保存部50に保存する。
【0073】
データ生成部60は、データ保存部50に保存されているオリジナル学習用データセットを用いて、一次推論学習用データセットを生成する(ステップS100)。例えば、データ生成部60は、オリジナル学習用データセットに含まれる正解データを用いて、一次推論学習用データセットを生成する。そして、データ生成部60は、一次推論学習用データセットをデータ保存部50に保存する。モデル生成部70は、一次推論学習用データセットを用いて所定のモデルにおける機械学習を実行し、一次推論用学習済モデルを生成する(ステップS101)。そして、モデル生成部70は、一次推論用学習済モデルをモデル保存部80に保存部する。
【0074】
データ生成部60は、データ保存部50に保存されているオリジナル学習用データセットを用いて、二次推論学習用データセットを生成する(ステップS102)。例えば、データ生成部60は、オリジナル学習用データセットの正解データを用いて集約データを生成し、正解データと集約データとを含む二次推論学習用データセットを生成してもよい。そして、データ生成部60は、生成した二次推論学習用データセットをデータ保存部50に保存する。モデル生成部70は、二次推論学習用データセットを用いて所定のモデルにおける機械学習を実行し、二次推論用学習済モデルを生成する(ステップS103)。そして、モデル生成部70は、二次推論用学習済モデルを、モデル保存部80に保存する。なお、学習済モデルの生成後、情報処理装置1は、実行結果をオペレータに通知してもよい。
【0075】
(B)推論の動作
図3は、第2実施形態にかかる情報処理装置1における対象物体の推論の動作の一例を示すフロー図である。なお、推論の動作の開始前には、モデル保存部80は、学習済モデルを保存している。ただし、モデル保存部80が学習済モデルを保存していない場合、情報処理装置1は、「(A)学習済モデルの生成」の動作を実行して学習済モデルを生成してから、推論の動作を開始してもよい。
【0076】
情報処理装置1は、所定の条件を契機に、対象物体の推論を開始する。例えば、情報処理装置1は、オペレータからの指示を契機に、対象物体の推論を開始する。情報処理装置1は、対象物体の推論において、オペレータからパラメタを取得してもよい。なお、パラメタは、以下に限定されないが、例えば、使用する学習済モデルの指定である。ただし、情報処理装置1は、予め与えられたパラメタを使用してもよい。あるいは、情報処理装置1は、装置起動後、自動的に対象物体の推論を開始してもよい。あるいは、情報処理装置1は、データ取得部90が一つ又は所定の数量の推論対象データを取得すると、以下で説明する動作を実行してもよい。ただし、情報処理装置1は、データ取得部90における推論対象データの取得とは非同期に推論の動作を開始してもよい。なお、データ取得部90は、予め、推論対象データを取得して、図示しない保存部に保存してもよい。この場合、一次推論部20は、その保存部から推論対象データを取得してもよい。
【0077】
一次推論部20は、推論対象データを用いて、一次推論を実行する(ステップS114)。一次推論部20は、所定の数量の推論対象データをまとめて、一次推論を実行してもよい。以下、一次推論部20がまとめて一次推論の実行する所定の数量の推論対象データを「推論対象データ群」と呼ぶ。例えば、推論対象データが対象物体を含む画像の場合、一次推論部20は、一次推論として、所定の数量の推論対象データ(推論対象データ群)の画像から「BB、クラス、及び、confidence」の組の集合を推論する。さらに、一次推論部20は、推論対象データ群における、サブ対象物体を推論してもよい。
【0078】
一次推論部20は、推論対象データの数量とは異なる条件を用いて、まとめて推論する推論対象データ群を決めてもよい。例えば、一次推論部20は、次の条件の少なくとも一つを用いて、まとめて推論する推論対象データ群を決めてもよい。
(a)一次推論において推論したBBの数が所定の数に達した場合、
(b)一次推論において推論したBBのサイズの合計が所定の値に達した場合、
(c)集約データの数を推論し、推論した集約データの数が所定の値に達した場合、
(d)情報処理装置1が取得してから所定の時間が経過した推論対象データ。
ただし、一次推論部20は、取得済みの全ての推論対象データに対して、一次推論を実行してもよい。推論対象データ群に対して一次推論を実行する場合、一次推論部20は、推論対象データ群に含まれる少なくとも一部の推論対象データに対する一次推論を並列処理してもよいし、逐次処理してもよいし、並列処理と逐次処理とを組み合わせて処理してもよい。
【0079】
図5は、一次推論の結果の一例を示す図である。図5において、二つの矩形のうち、内側の小さい矩形は、一次推論の結果として得られた対象物体であるLPのBBである。外側の大きな矩形は、一次推論の結果として得られたサブ対象物体である車前後面のBBである。なお、図5は、クラス及びconfidenceの表示を省略している。図3を参照した説明に戻る。
【0080】
データ集約部30は、一部又は全ての一次推論の結果に対し後処理を実行する(ステップS115)。例えば、データ集約部30は、BBの属性、及び、対象物体とサブ対象物体の位置関係の情報を用いて、BBのフィルタリング及び調整を実行する。図4は、データ集約部30における後処理の一例を示すフロー図である。より詳細には、図4は、一次推論の結果としてBBが推論された場合におけるデータ集約部30における後処理の動作の一例である。以下、図4を参照して、対象物体がLPであり、サブ対象物体がLPを含む車前後面である場合の動作を説明する。
【0081】
データ集約部30は、BBが対象物体のBBであるか否かを判定する(ステップS131)。なお、BBが対象物体のBBでない場合とは、BBがサブ対象物体のBBの場合である。BBが対象物体のBBでない場合(ステップS131でNo)、データ集約部30は、サブ対象物体が、一次推論の結果に含まれる対象物体と所定の関係にあるか否かを判定する(ステップS132)。例えば、データ集約部30は、サブ対象物体のBBが、一次推論の結果に含まれる対象物体のBBを含むか否かを判定する。対象物体のBBの場合(ステップS131でYes)、又は、サブ対象物体が所定の関係にない場合(ステップS132でNo)、データ集約部30は、BBが集約データとして用いるのに適切な形状か否かを判定する(ステップS133)。例えば、データ集約部30は、BBのサイズ及びアスペクト比が所定の閾値の範囲内か否かを判定する。
【0082】
BBが適切な形状の場合(ステップS133でYes)、データ集約部30は、BBを、集約データの生成に適切な形状に修正する(ステップS134)。例えば、データ集約部30は、BBのサイズ及びアスペクト比を集約データの生成に適切な値とする。例えば、データ集約部30は、BBの高さ及び幅に所定の値を乗じてBBのサイズを変更してもよい。あるいは、データ集約部30は、BBのアスペクト比を所定の範囲となるように、BBの高さ及び幅を修正してもよい。サブ対象物体が所定の関係の場合(ステップS132でYes)、又は、BBが適切な形状でない場合(ステップS133でNO)、データ集約部30は、そのBBを破棄する(ステップS135)。つまり、データ集約部30は、そのBBを集約データに含めない。このように、データ集約部30は、一次推論の結果に対して、後処理を実行する。図3を参照した説明に戻る。
【0083】
データ集約部30は、後処理後の全ての一次推論の結果を用いて、集約データを生成する(ステップS116)。例えば、推論対象データが画像の場合、データ集約部30は、一次推論の結果として推論された対象物体の領域及びサブ対象物体の領域の画像を集めた画像を生成する。なお、データ集約部30は、一次推論の結果において、重複している領域、及び、近接している領域の少なくとも一部を一つにまとめた領域を用いて、集約データを生成してもよい。
【0084】
図6は、集約データの一例を示す図である。なお、図6は、クラス及びconfidenceの表示を省略している。図6の集約データは、図5のデータ及び図5に対して時間的に前後する4つのデータの計5つデータを用いて生成された集約データの一例である。さらに、図6の集約データは、それら5つのデータに対する一次推論において、いずれのデータにおいても、LPが検出された場合の例である。なお、いずれかのデータにおいてLPが検出されず、車前後面が検出された場合、そのデータに対応する画像は、LPではなく車前後面の画像となる。図6の例では、データ集約部30は、対象物体の一部が欠ける可能性を低くするため、抽出する画像の領域を、一次推論の結果のBBの領域より大きくしている。例えば、各LPの画像は、LPのBBより大きな領域の画像となっている。なお、図6に示した例は、一次推論の結果の画像の面積の合計が、集約データの画像の面積より少ない。そのため、図6の集約データの画像は、余剰領域を含む。図6の右側の黒い領域が、余剰領域である。例えば、さらに一次推論の結果を集約する場合、データ集約部30は、集約する一次推論の結果の少なくとも一部を、余剰領域に追加してもよい。追加する一次推論の結果が余剰領域に入りきらない場合、データ集約部30は、新しい集約データを生成すればよい。なお、図5におけるサブ対象物体は、内部に一次推論の結果に含まれる対象物体を含む。つまり、図5のサブ対象物体は、対象物体と所定の位置関係にあるサブ対象物体である。そのため、図5のサブ対象物体のBBは、図6の集約データに含まれていない。図3を参照した説明に戻る。
【0085】
さらに、データ集約部30は、集約データの生成において、推論対象データに含まれる対象物体及びサブ対象物体のデータ領域の位置と、集約データにおける対象物体及びサブ対象物体のデータ領域の位置との対応関係である集約対応関係を生成する。二次推論部40は、集約データを用いて、二次推論を実行する(ステップS118)。図7は、二次推論の結果の一例を示す図である。図7における矩形が、二次推論部40が推論した対象物体のLPのBBである。なお、図7は、クラス及びconfidenceの表示を省略している。図3を参照した説明に戻る。
【0086】
物体推論部10は、二次推論の結果と、集約対応関係とを用いて、推論対象データにおける対象物体を推論する(ステップS119)。図8は、推論対象データにおける対象物体の推論の一例を示す図である。図5と比較すると、図8におけるBBの位置は、LPに対して適切な位置となっている。なお、物体推論部10は、二次推論の結果に含まれる対象物体のサイズが、集約データに集約されたデータのサイズより大きい場合、その対象物体を無視してもよい。図3を参照した説明に戻る。
【0087】
情報処理装置1は、所定の条件を満足するまで、上記の動作を繰り返す。例えば、情報処理装置1は、オペレータから終了の指示を取得すると、動作を終了してもよい。あるいは、情報処理装置1は、処理対象の推論対象データがなくなるまで、処理した推論対象データの数量が所定の値となるまで、所定の時間の経過まで、又は、繰り返し数が所定の数となるまで、上記の動作を繰り返してもよい。上記の動作に基づいて、情報処理装置1は、推論対象データにおける対象物体を推論する。
【0088】
ここまで説明した通り、集約データは、推論対象データにおける対象物体の領域を集めたデータであり、推論対象データより数量が少ないデータである。そのため、二次推論の負荷は、推論対象データを全て用いる場合の負荷より低い。また、一次推論は、ある程度の精度で対象物体を推論できればよい。つまり、情報処理装置1は、一次推論として、二次推論より負荷の低い推論を用いることができる。その結果、情報処理装置1は、推論におけるスループットを向上できる。
【0089】
具体的な例を用いて、情報処理装置1における推論のスループットの向上について、説明する。情報処理装置1と比較する推論として、推論対象データに二次推論用学習済モデルと同等のモデルを適用する推論を用いる。以下、同等のモデルを適用する推論を、「関連推論」と呼ぶ。なお、以下の説明では、前提として、次のことを仮定する。
(1)推論対象データは、画像である。
(2)関連推論の性能及び規模は、二次推論部40における二次推論の性能及び規模と同じである。なお、関連推論及び二次推論が一枚の画像の推論に必要な時間は、単位時間である。なお、以下、単位時間は「1」とする。
(3)一次推論部20における一次推論が一枚の画像の推論に必要な時間は、関連推論及び二次推論の10分の1(0.1)である。
(4)データ集約部30は、平均的に、3枚の推論対象の画像から1枚の集約した画像を生成する。つまり、推論対象の画像の数と、集約結果の画像の数との比は、3:1である。
(5)画像の総数は、Nである。
(6)推論以外の処理は、推論に対して処理時間が小さいため、無視する。
【0090】
この場合、関連推論の推論時間は、「N×1=N」である。情報処理装置1における一次推論の推論時間は、「N×0.1=0.1N」である。二次推論の推論時間は、「N/3×1=N/3」である。つまり、情報処理装置1の推論時間は、「約0.43N(=0.1N+N/3)」である。このように、情報処理装置1は、関連推論より、短い時間で推論できる。その結果、情報処理装置1は、関連推論より、スループットを向上できる。また、情報処理装置1における最終的な推論である二次推論に用いる二次推論用学習済モデルの規模は、関連推論に用いるモデルと同等である。そのため、情報処理装置1の推論の精度は、関連推論と同等の精度となる。
【0091】
なお、軽量なモデルは、重量なモデルに対して、高速である一方精度が低くなる傾向にある。例えば、上記の例では、一次推論部20における一次推論の精度は、二次推論部40における二次推論より精度が低くなる傾向にある。そこで、一次推論部20は、第1対象物体と所定の位置関係にある第2対象物体を推論してもよい。この場合、データ集約部30は、第1対象物体と、第2対象物体とを用いて、集約データと対応関係とを生成してもよい。上記の動作を用いて、情報処理装置1は、情報処理装置1における推論の対象物体だけではなく、対象物体と所定の関係にあるサブ対象物体を用いた推論を実行できる。そのため、情報処理装置1は、推論の精度を向上できる。例えば、情報処理装置1は、対象物体の見落としを抑制できる。
【0092】
さらに、データ集約部30は、一次推論の結果に含まれる第2対象物体において、所定の位置関係にある第1対象物体が一次推論の結果に含まれない第2対象物体を用いてもよい。上記の動作を用いて、情報処理装置1は、集約データのサイズを削減できる。その結果、情報処理装置1は、スループットを向上できる。さらに、データ集約部30は、集約データの生成前に、少なくとも一次推論の結果に含まれる第1対象物体の少なくとも一部に対して、後処理など所定の処理を実行してもよい。上記動作を用いて、情報処理装置1は、より適切な集約データを生成できる。その結果、情報処理装置1は、推論の精度を向上する。例えば、情報処理装置1は、対象物体の見落としを抑制する。なお、サブ対象物体を用いる場合、情報処理装置1は、集約データの生成前に、一次推論の結果に含まれる第2対象物体の少なくとも一部に対して所定の処理を実行してもよい。
【0093】
データ集約部30は、対象物体のBB及びサブ対象物体のBBの高さ及び幅の少なくともいずれか一つに所定の値を加える又は所定の値を乗じて、BBのサイズを修正した。しかし、第2実施形態は、これに限定されるものではない。他の例として、データ集約部30は、対象物体のBB及びサブ対象物体のBBの高さ及び幅の少なくともいずれか一つに所定の値を乗じた後、所定の値を加えることで、BBのサイズを修正してもよい。あるいは、データ集約部30は、対象物体のBB及びサブ対象物体のBBの高さ及び幅の少なくともいずれか一つに、所定の線形又は非線形の変換を適用して、BBのサイズを修正してもよい。この場合の変換に係るパラメタは、例えば、データ集約部30に予め与えられておいてもよい。あるいは、データ集約部30は、BB及び推論対象データの属性、又は、他の情報に基づいて、変換方法、及び、変換に係るパラメタを切り替えてもよい。他の情報は、以下に限らないが、例えば、情報処理装置1の負荷である。
【0094】
ここまでの説明では、一次推論部20及び二次推論部40が一つの場合の例を用いて説明した。しかし、情報処理装置1の構成は、これに限定されない。例えば、情報処理装置1は、複数の一次推論部20を含んでもよい。この場合、複数の一次推論部20は、それぞれ、異なるパラメタを用いて推論してもよい。パラメタは、例えば、学習済みモデル、データのサイズ、又は、認識対象クラスである。さらに、複数の一次推論部20の全てが、同じ推論対象データを用いて推論してもよい。あるいは、少なくとも一部の一次推論部20が、他の一次推論部20とは異なる推論対象データを用いて推論してもよい。
【0095】
あるいは、例えば、情報処理装置1は、2つ以上の二次推論部40を含んでもよい。二次推論部40が複数の場合、少なくとも一部の二次推論部40は、他の二次推論部40とは異なるパラメタを用いて推論してもよい。この場合のパラメタは、例えば、学習済みモデル、又は、データのサイズである。二次推論部40が複数の場合、データ集約部30は、それぞれの二次推論部40に対応した、集約データを生成してもよい。複数の二次推論部40それぞれに対応した集約データを生成する場合、データ集約部30は、二次推論部40それぞれに対して異なるパラメタを用いて集約データを生成してもよい。
【0096】
あるいは、データ集約部30は、一次推論の結果を分割して集約データを生成して、又は、生成した集約データを分割して、複数の二次推論部40に割り振ってもよい。複数の二次推論部40に振り分ける場合、データ集約部30は、例えば、次に示す一次推論の結果におけるBBの属性又はこれらの属性の組み合わせを用いて、集約データを生成又は分割してもよい。なお、データ集約部30が複数の二次推論部40に集約データを振り分ける場合とは、データ集約部30が複数の二次推論部40それぞれに対応した集約データを生成する場合、及び、データ集約部30が生成した集約データを分割する場合とどちらかである。
(1)BBのサイズ又はアスペクト比、
(2)BBのクラス、
(3)BBのconfidence、
(4)BBの一次推論の結果における位置、
(5)BBが対象物体のBBの場合、対応するサブ対象物体が検出されたか否か。
【0097】
データ集約部30は、一次推論の結果の一部を、生成する複数の集約データ、又は、分割後の複数の集約データに含めてもよい。データ集約部30は、一次推論の結果を複数の集約データに含めるか否かの判定として、上述した属性又はその組み合わせを用いてもよい。なお、一次推論の結果を複数の集約データに含める場合、複数の二次推論部40が、同じ対象物体を推論する可能性がある。この場合、物体推論部10が、二次推論の結果と集約対応関係とを用いて対象物体の重複を判定し、判定結果を用いて重複に対応した動作を実行すればよい。例えば、物体推論部10は、重複を用いて推論の結果を修正してもよい。例えば、物体推論部10は、対象物体のBBとして、重複して推論された対象物体に対する複数のBBの中で、最もconfidenceが高いBBを選択してもよい。あるいは、物体推論部10は、対象物体のBBの矩形情報として、複数の推論の結果におけるBBの矩形情報を平均化してもよい。なお、物体推論部10は、平均化として、confidenceに基づいた加重平均を用いてもよい。
【0098】
推論結果の精度は、入力データに対する推論難易度に依存する。推論難易度が低いデータであれば、推論の精度が高くない学習済みモデルであっても高い精度で推論できる場合が多くなる。なお、推論の精度が高くない学習済みモデルとは、例えば、軽量、高速、又は、処理負荷が低いモデルである。一方、推論難易度が高いデータの場合、推論の精度が高くない学習済モデルを用いると、高い推論精度の実現が難しい。十分な推論精度を達成するためには、推論の精度が高い推論モデルを用いる必要がある。推論の精度が高い推論モデルとは、処理負荷が高いモデルである。そのため、推論難易度のような推論対象データの特性に対応して推論に用いる学習済モデルを使い分けることで、推論速度と推論精度との両立の実現が期待される。同様のことは、例えば、畳み込みニューラルネットワーク(Convolutional Neural Network(CNN))のサイズのような推論パラメタにも言える。
【0099】
そこで、情報処理装置1は、推論難易度などの特性に基づいて推論対象データ又は一次推論の結果を複数のグループに分類し、分類したグループそれぞれを二次推論してもよい。以下、このような場合について説明する。なお、以下の説明では、実行するタスクとして、keypointを用いる姿勢推定タスクを用いる。ただし、これは、本実施形態を限定するものではない。例えば、本実施形態は、以下の説明において、姿勢推定タスクに替えて物体検出タスクなど他のタスクに用いてもよい。また、分類に用いる特性は、推論難易度に限らず、他の特性でもよい。
【0100】
図14は、グループごとに二次推論を実行する情報処理装置1Dの構成の一例を示すブロック図である。情報処理装置1Dは、物体推論部10Dと、一次推論部20Dと、データ集約部30Dと、複数の二次推論部40Dと、データ保存部50と、データ生成部60と、モデル生成部70と、モデル保存部80と、データ取得部90とを含む。なお、データ保存部50、データ生成部60、モデル生成部70、モデル保存部80及びデータ取得部90は、二次推論部40Dが複数となる点を除き情報処理装置1と同様のため、詳細な説明を省略する。
【0101】
物体推論部10Dは、物体推論部10と同様に、二次推論部40Dにおける二次推論の結果と、データ集約部30Dが集約データの生成において生成した集約対応関係とを用いて、推論対象データにおける対象物体の姿勢を推論する。より詳細には、今の場合、物体推論部10Dは、二次推論部40Dにおける二次推論の結果である姿勢推定タスクのkeypoint抽出処理の結果に基づいて、対象物体の姿勢を推論する。例えば、集約対応関係としてBBの座標変換を取得した場合、物体推論部10Dは、その座標変換の逆変換を、二次推論の結果として推論された各keypointの座標に適用して、推論対象データにおけるkeypointの座標を算出する。
【0102】
一次推論部20Dは、一次推論部20と同様に、一次推論を実行する。ただし、今の場合、一例として、一次推論部20Dは、姿勢検出タスクとして、keypoint抽出処理を実行する。例えば、一次推論部20Dは、推論結果として、推論対象データに含まれる各keypointの座標とクラスとconfidenceとを出力する。クラスは、例えば、目又は鼻であるが、これに限らない。さらに、一次推論部20Dは、姿勢検出タスクとして、姿勢を生成する処理を実行してもよい。
【0103】
二次推論部40Dは、二次推論部40と同様に、二次推論を実行する。例えば、今の場合、二次推論部40Dは、一次推論部20Dと同様に、姿勢検出タスクとして、keypoint抽出処理を実行する。二次推論部40Dは、例えば、推論結果として、推論対象データに含まれる各keypointの座標とクラスとconfidenceとを出力する。クラスは、例えば、目又は鼻であるが、これに限らない。さらに、二次推論部40Dは、姿勢検出タスクとして、姿勢を生成する処理を実行してもよい。ただし、二次推論部40Dは、それぞれ、互いに異なるグループの集約データを対象として二次推論を実行する。
【0104】
二次推論部40Dは、同じ学習済モデルを用いてもよいし、互いに異なる学習済モデルを用いてもよい。推論のパラメタに関しても、同様である。なお、以下の説明では、情報処理装置1Dは、一例として、2つの二次推論部40Dを含むとする。2つの二次推論部40Dを区別する場合、二次推論部40D-1及び二次推論部40D-2と呼ぶ。また、説明の便宜のため、以下の説明では、二次推論部40D-1は、二次推論部40D-2が用いるモデルより、精度が高いモデルを用いる。言い換えると、二次推論部40D-2は、二次推論部40D-1より精度が低いが高速なモデルを用いる。なお、二次推論部40Dは、それぞれが互いに異なるグループの集約データを用いる。そのため、情報処理装置1Dは、データ集約部30Dが生成する集約データの数、つまり、グループの数より多ければ、任意の数の二次推論部40Dを含んでもよい。例えば、二次推論部40Dの数がグループの数より多い場合、一部の二次推論部40Dは、同じ集約データに対して異なる学習済モデルを用いて二次推論を実行してもよい。
【0105】
データ集約部30Dは、第1対象物体の属性に基づいて、一次推論において推論された第1対象物体をいずれかのグループに分類する。そして、データ集約部30Dは、グループごとに推論対象データより数量が少ないデータである集約データを生成する。そして、データ集約部30Dは、各集約データに対して、推論対象データにおける第1対象物体の位置と、集約データにおける第1対象物体の位置との対応関係を生成する。
【0106】
例えば、データ集約部30Dは、第1対象物体の属性として、一次推論のkeypoint抽出処理の結果に基づいてBBを推定する。データ集約部30DにおけるBBの推定の一例を説明する。データ集約部30Dは、各keypointについて、一次推論の結果として得られた座標を1×1の矩形とみなし、keypointに対応するBBを推定する。ただし、データ集約部30Dは、これとは異なるBBを推定してもよい。さらに、データ集約部30Dは、重複している、又は、近接するBBをまとめて一つのBBにしてもよい。データ集約部30Dは、近接しているか否かの判定として、例えば、所定の閾値とBB間の距離との比較を用いてもよい。データ集約部30Dは、これらの処理を一次推論の結果のクラスごとに行ってもよいし、複数のクラスにまたがって行ってもよい。データ集約部30Dは、クラスごとに、判定の用いる閾値として異なる閾値を用いてもよい。例えば、データ集約部30Dは、一次推論の結果又はBBの属性に対応して異なる閾値を用いてもよい。なお、BBの属性は、例えば、BBの大きさ、BBの位置、BBに含まれるkeypointの数、又は、BBのクラスである。
【0107】
そして、データ集約部30Dは、推定したBBを用いて一次推論の結果をグループに分類し、グループごとに「後処理」と「集約」を含む「データ集約」を実行する。データ集約の動作は、データ集約部30と同様である。例えば、今の場合、データ集約部30Dは、推定したBBの属性の情報を用いて、一次推論の結果を二次推論部40D-1向けと二次推論部40D-2向けの2つのグループに分類する。なお、データ集約部30Dは、分類を、後処理の前で行ってもよいし、後処理の途中で行ってもよいし、後処理の後に行ってもよい。つまり、データ集約部30Dは、後処理と分類とを任意に順番に実行してもよいし、並列に実行してもよい。そして、データ集約部30Dは、同じグループに分類した一次推論の結果を対象として集約データを生成する。データ集約部30Dは、グループに分類する対象物として、すべてのクラスの対象物体を分類してもよいし、一部のクラスの対象物体と別のクラスの対象物体のサブ対象物体とを分類してもよい。
【0108】
例えば、データ集約部30Dは、次のように動作してもよい。二次推論部40D-1のモデルの処理の精度は、二次推論部40D-2より高い。そこで、データ集約部30Dは、各BBの二次推論での推論難易度を推定し、その結果に基づいてグループに分類してもよい。例えば、データ集約部30Dは、推論難易度が高いBBを二次推論部40D-1のグループに分類し、推論難易度が低いBBを二次推論部40D-2のグループに分類する。ただし、データ集約部30Dの分類は、これに限らない。例えば、データ集約部30Dは、BBのサイズに基づいて分類してもよいし、BBのconfidenceに基づいて分類してもよい。データ集約部30Dは、例えば、サイズが小さいBB又はconfidenceが低いBBを二次推論部40D-1のグループに分類し、サイズが大きいBB又はconfidenceが高いBBを二次推論部40D-2のグループに分類してもよい。ただし、データ集約部30Dは、上記のようなルールベースの分類に限らず、深層学習を含む機械学習をベースとした分類を実行してもよい。
【0109】
次に、データ集約部30Dにおける、二次推論での推論難易度の推定の一例を説明する。データ集約部30Dは、例えば、直立姿勢のみを含むBBを推論難易度が低いと推定し、直立以外の姿勢を含む可能性があるBBを推論難易度が高いと推定してもよい。推定の判定として、例えば、データ集約部30Dは、BBの矩形、又は、BBに含まれるkeypoint群の外接矩形のアスペクト比が所定の範囲内の場合に、直立姿勢であると推定してもよい。さらに、データ集約部30Dは、BB内の姿勢の数を推定し、姿勢が一つの場合に、アスペクト比に基づく推定を行ってもよい。この場合、データ集約部30Dは、例えば、クラス毎に集計したBB内に含まれるkeypointの数の最大値を姿勢の数の推定値としてもよい。あるいは、データ集約部30Dは、keypointの最大値及び最小値を除外した値、又は、平均値などの統計処理を施した値を推定値としてもよい。データ集約部30Dは、クラス間に優先度付けを行って姿勢数を推定してもよい。データ集約部30Dは、さらに、keypointのconfidenceを用いて姿勢の数を推定してもよい。あるいは、物体推論部10Dが姿勢推定タスクの姿勢生成処理を実行する場合、データ集約部30Dは、その姿勢生成処理の結果を取得して、その結果を用いて姿勢の数を推定してもよい。
【0110】
あるいは、データ集約部30Dは、BBのサイズ又は面積が所定の値よりも大きい場合に、推論難易度が低いと推定してもよい。あるいは、データ集約部30Dは、BB内の姿勢数を推定し、推定姿勢数又は推定姿勢数の二乗でBBのサイズを除した値が所定の値よりも大きい場合に、推論難易度が低いと推定してもよい。この推定を用いる場合、データ集約部30Dは、含む姿勢数は少ないが、サイズが大きいBBの推論難易度を低いと推定することを回避できる。
【0111】
集約時の対象物体及びサブ対象物体のサイズを変更において、データ集約部30Dは、サイズ変更を適用するか否か、サイズ変更の方式、及び、サイズ変更のパラメタの少なくとも一つを、分類の結果及び分類処理の過程で生成した情報を用いて決定してもよい。なお、分類処理の過程で生成した情報とは、例えば、二次推論での推論難易度、直立姿勢か否か、推定姿勢数、又は、BBの高さ及び幅である。
【0112】
次に、図面を用いて、情報処理装置1Dの動作を説明する。図15は、図14の情報処理装置1Dにおける対象物体の推論の動作の一例を示すフロー図である。一次推論部20Dは、図3のステップS114と同様に、推論対象データを用いて一次推論を実行する(ステップS114D)。ただし、今の場合、一次推論部20Dは、姿勢推定タスクの推論処理を実行する。データ集約部30Dは、図3のステップS115と同様に、一部又は全ての一次推論の結果に対し後処理を実行する(ステップS115D)。ただし、今の場合、データ集約部30Dは、ステップS115の動作に加え、一次推論の結果からBBを推定する。データ集約部30Dは、後処理後の一次推論の結果の分類を行う(ステップS401D)。データ集約部30Dは、例えば、後処理後の一次推論の結果について二次推論での推論難易度を推定し、推論難易度に基づいて後処理後の一次推論の結果を分類する。例えば、データ集約部30Dは、推論難易度が高い一次推論の結果を二次推論部40D-1向けのグループに分類し、推論難易度が低い一次推論の結果を二次推論部40D-2向けのグループに分類する。データ集約部30Dは、後処理の前又は途中で分類を実行してもよい。
【0113】
そして、データ集約部30Dは、図3のステップS116と同様に、後処理後の全ての一次推論の結果を用いて、集約データを生成する(ステップS116D)。ただし、データ集約部30Dは、分類したグループごとに集約データを生成する。例えば、データ集約部30Dは、ステップS401Dの分類結果に基づき、二次推論部40D-1向けの集約データと、二次推論部40D-2向けの集約データとを生成する。二次推論部40D-1及び二次推論部40D-2は、それぞれ、図3のステップS118と同様に、集約データを用いて、二次推論を実行する(ステップS118D)。今の場合、二次推論部40D-1及び二次推論部40D-2は、互いに異なるグループの集約データを用いた姿勢推定タスクの推論処理を行う。そして、物体推論部10Dは、図3のステップS119と同様に、二次推論の結果と、集約対応関係とを用いて、推論対象データにおける対象物体を推論する(ステップS119D)。ただし、今の場合、物体推論部10Dは、二次推論部40D-1及び二次推論部40D-2の推論結果を用いて、姿勢推定タスクを実行する。
【0114】
上記までの説明のように、情報処理装置1Dは、物体推論部10Dと、一次推論部20Dと、データ集約部30Dと、複数の二次推論部40Dとを含む。一次推論部20Dは、一次推論として、少なくとも一部のデータが第1対象物体を含む推論対象データを、第1学習済モデルに適用して、第1対象物体を推論する。データ集約部30Dは、一次推論において推論された第1対象物体を、第1対象物体の属性に基づいていずれかのグループに分類する。そして、データ集約部30Dは、グループごとに推論対象データより数量が少ないデータである集約データを生成する。さらに、データ集約部30Dは、推論対象データにおける第1対象物体の位置と、集約データにおける第1対象物体の位置との対応関係である集約対応関係を生成する。二次推論部40Dは、二次推論として、互いに異なるグループの集約データを第2学習済モデルに適用して第1対象物体を推論する。物体推論部10Dは、二次推論の結果における第1対象物体と、対応関係である集約対応関係とを用いて、推論対象データにおける第1対象物体を推論する。
【0115】
このように、情報処理装置1Dは、複数の二次推論部40Dを含む。そして、データ集約部30Dは、二次推論における推論難易度のような第1対象物体の属性に基づいて、一次推論の結果をグループに分類する。そして、データ集約部30Dは、グループごとに集約データを生成する。そして、複数の二次推論部40Dは、それぞれがグループに対した集約データを用いて二次推論を実行する。そのため、情報処理装置1Dは、例えば、推論難易度が低いグループについては、二次推論として精度が高くないが軽量で高速な学習済モデル又は推論パラメタを用いる二次推論部40Dを用いて、精度を維持しつつ推論速度を向上させることができる。一方、情報処理装置1Dは、推論難易度が高いグループについては、精度が高い学習済モデル又は推論パラメタを用いる二次推論部40Dを用いて、精度の劣化を回避した推論を実行できる。このように、情報処理装置1Dは、精度を維持しつつ、対象物体の推論のスループットを向上させることができる。このように、二次推論部40Dは、互いに異なる学習済モデル、又は、互いに異なる推論パラメタを用いてもよい。また、データ集約部30Dは、二次推論部40Dそれぞれにおける推論難易度を推定し、推論難易度に基づいて第1対象物体をいずれかのグループに分類してもよい。
【0116】
[バリエーション]
ここまでの説明では、一次推論及び二次推論として、姿勢推定タスクの推論を用いる例を示した。しかし、本実施形態は、姿勢推定タスクに限定されず、例えば、物体検出タスクを用いてもよい。また、上記の説明では、データ集約部30Dが推論難易度など分類に用いる情報を生成しているが、本実施形態は、これに限定されない。例えば、一次推論部20Dが、一次推論の結果に加え、推論難易度を判定して、データ集約部30Dに出力してもよい。つまり、一次推論部20Dは、二次推論部40Dそれぞれにおける推論難易度を推論してもよい。例えば、一次推論部20Dは、一次推論の学習済モデルにおいて、姿勢推定タスクにおける各keypoint、又は、物体検出タスクにおけるBB毎に、推論難易度を推論してもよい。この場合、一次推論部20Dは、一次推論の結果として出力するクラスとして、推論難易度の対応したクラスを用いてもよい。
【0117】
また、データ集約部30Dは、少なくとも一部の一次推論の結果を複数のグループに分類してもよい。例えば、データ集約部30Dは、推論難易度が非常に高い一次推論の結果を複数の集約データに含めてもよい。この場合、少なくとも一部の複数の二次推論部40Dは、複数の集約データそれぞれに含まれた同一の対象物体を推定する。そして、物体推論部10Dは、複数の二次推論部40Dの推論結果を統合して対象物体を推論する。このような動作を用いて、情報処理装置1Dは、対象物体の認識精度を改善できる。ただし、この場合、一つの物体に関して、複数の推論結果が得られる可能性がある。そこで、物体推論部10Dは、例えば、非最大抑制法(Non-Maximum Suppression(NMS))のような技術を用い、重複する推論結果を修正してもよい。
【0118】
[ハードウェア構成]
次に、情報処理装置1及び1Dのハードウェアについて、情報処理装置1Dを用いて説明する。上記の説明では、物体推論部10D、一次推論部20Dと、データ集約部30Dと、二次推論部40Dと、データ保存部50と、データ生成部60と、モデル生成部70と、モデル保存部80と、データ取得部90とが一つの装置に含まれる例を用いて説明した。しかし、第2実施形態は、これに限定されない。例えば、情報処理装置1Dは、各構成に相当する機能を備えた装置を、所定のネットワークを介して接続して、構成されてもよい。例えば、情報処理装置1Dは、クラウドコンピューティングを用いて実現されてもよい。あるいは、情報処理装置1Dの各構成部は、ハードウェア回路で構成されてもよい。あるいは、情報処理装置1Dにおいて、複数の構成部が、1つのハードウェアで構成されてもよい。
【0119】
あるいは、情報処理装置1Dは、CPUと、読み取り専用メモリ(Read Only Memory(ROM))と、ランダム・アクセス・メモリ(Random Access Memory(RAM))とを含むコンピュータ装置として実現されてもよい。情報処理装置1Dは、上記構成に加え、さらに、ネットワークインターフェース回路(Network Interface Circuit(NIC))を含むコンピュータ装置として実現されてもよい。あるいは、情報処理装置1Dは、さらに、学習及び推論の一部又は全ての演算を実行する演算ユニット(Arithmetic Logical Unit(ALU))を含むコンピュータ装置として実現されてもよい。図9は、情報処理装置1及び1Dのハードウェア構成の一例であるコンピュータ装置600の構成を示すブロック図である。図9のコンピュータ装置600は、CPU610と、ALU611と、ROM620と、RAM630と、記憶装置640と、NIC650とを含み、コンピュータ装置を構成している。
【0120】
CPU610は、ROM620及び記憶装置640の少なくとも一方からプログラムを読み込む。そして、CPU610は、読み込んだプログラムに基づいて、ALU611と、RAM630と、記憶装置640と、NIC650とを制御する。そして、CPU610は、物体推論部10Dと、一次推論部20Dと、データ集約部30Dと、二次推論部40Dと、データ保存部50と、データ生成部60と、モデル生成部70と、モデル保存部80と、データ取得部90としての各機能を実現する。
【0121】
CPU610は、各機能を実現する際に、RAM630又は記憶装置640を、プログラムの一時記憶媒体として使用してもよい。また、CPU610は、コンピュータで読み取り可能にプログラムを記憶した記憶媒体690が含むプログラムを、図示しない記憶媒体読み取り装置を用いて読み込んでもよい。あるいは、CPU610は、NIC650を介して、図示しない外部の装置からプログラムを受け取り、RAM630又は記憶装置640に保存して、保存したプログラムを基に動作してもよい。
【0122】
ALU611は、所定の演算処理、及び、CPU610における所定の処理の一部を担当する。例えば、ALU611は、CPU610に制御されて、学習及び推論の一部又は全ての演算を実行する。ALU611の構成は任意である。例えば、ALU611は、グラフィックス・プロセッシング・ユニット(Graphics Processing Unit(GPU))、又は、フィールド・プログラマブル・ゲート・アレイ(Field programmable Gate Array(FPGA))でもよい。あるいは、ALU611は、例えば、特定用途向け集積回路(Application Specific Integrated Circuit(ASIC))でもよい。なお、ALU611における演算に必要な情報(データ、プログラム、及び、回路情報等)は、予め、ROM620、RAM630、又は、記憶装置640に保存されている。
【0123】
ROM620は、CPU610が実行するプログラム及び固定的なデータを記憶する。ROM620は、例えば、P-ROM(Programmable-ROM)又はフラッシュROMである。RAM630は、CPU610が実行するプログラム及びデータを一時的に記憶する。RAM630は、例えば、D-RAM(Dynamic-RAM)である。記憶装置640は、コンピュータ装置600が長期的に保存するデータ及びプログラムを記憶する。記憶装置640は、データ保存部50として動作してもよい。また、記憶装置640は、モデル保存部80として動作してもよい。また、記憶装置640は、CPU610の一時記憶装置として動作してもよい。記憶装置640は、メモリ(例えば、ROM620及びRAM630)に対する、二次記憶装置として動作してもよい。記憶装置640は、例えば、ハードディスク装置、光磁気ディスク装置、ソリッドステートドライブ(Sloid State Derive(SSD))又はディスクアレイ装置である。
【0124】
ROM620と記憶装置640とは、不揮発性(non-transitory)の記録媒体である。一方、RAM630は、揮発性(transitory)の記録媒体である。そして、CPU610は、ROM620、記憶装置640、又は、RAM630に記憶されているプログラムを基に動作可能である。つまり、CPU610は、不揮発性記録媒体又は揮発性記録媒体を用いて動作可能である。
【0125】
NIC650は、ネットワークを介した図示しない外部の装置とのデータのやり取りを中継する。NIC650は、データ取得部90及び物体推論部10Dの一部として動作する。NIC650は、例えば、ローカルエリアネットワーク(Local Area Network(LAN))カードである。NIC650は、有線に限らず、無線を用いてもよい。
【0126】
このように構成された図9のコンピュータ装置600は、図1の情報処理装置1及び図14の情報処理装置1Dと同様の効果を得ることができる。その理由は、図9のコンピュータ装置600のCPU610が、プログラムに基づいて情報処理装置1及び情報処理装置1Dと同様の機能を実現できるためである。あるいは、図9のコンピュータ装置600のCPU610及びALU611が、プログラムに基づいて、情報処理装置1及び情報処理装置1Dと同様の機能を実現できるためである。なお、図13に示されている情報処理装置1Cが、図9のコンピュータ装置600を用いて構成されてもよい。
【0127】
[システム]
情報処理装置1Dを用いて、情報処理装置1、1C、又は、1Dを含むシステムの一例を説明する。図10は、情報処理装置1Dを含む情報処理システム400の構成の一例を示すブロック図である。情報処理システム400は、情報処理装置1Dと、データ取得装置200と、表示装置300とを含む。情報処理システム400は、それぞれの装置として、複数の装置を含んでもよい。例えば、情報処理システム400は、複数のデータ取得装置200を含んでもよい。なお、情報処理システム400は、図示しない装置を含んでもよい。例えば、情報処理システム400は、情報処理装置1Dの推論結果を用いて、対象物体に関連する所定の情報を認識する装置を含んでもよい。対象物体に関連する所定の情報を認識する装置は、例えば、OCR装置である。
【0128】
データ取得装置200は、情報処理装置1Dに、推論対象データを出力する。なお、データ取得装置200は、情報処理装置1Dに、学習用データセットを生成するためのオリジナル学習用データセットを出力してもよい。データ取得装置200は、例えば、監視カメラである。この場合、データ取得装置200は、推論対象データとして、撮影した画像を情報処理装置1Dに出力する。情報処理装置1Dは、これまでの説明の通りに動作する。つまり、情報処理装置1Dは、データ取得装置200から推論対象データを取得する。そして、情報処理装置1Dは、取得した推論対象データに推論を実行し、推論結果を表示装置300に出力する。表示装置300は、情報処理装置1Dから推論結果を取得し、取得した推論結果を表示する。表示装置300は、例えば、液晶ディスプレイ、有機エレクトロルミネッセンス・ディスプレイ、又は、電子ペーパーである。具体的には、表示装置300は、例えば、監視システムの液晶ディスプレイである。オペレータは、表示装置300の表示を参照して、対象物体を確認できる。
【0129】
このように、情報処理システム400は、情報処理装置1Dと、データ取得装置200と、表示装置300とを含む。情報処理装置1Dは、上記のように動作する。データ取得装置200は、情報処理装置1Dに推論対象データを出力する。表示装置300は、情報処理装置1Dから推論の結果を取得し、取得した推論の結果を表示する。上記の構成を用いて、情報処理システム400は、推論のスループットを向上し、オペレータなどに対して推論対象データにおいて推論した対象物体を表示する。
【0130】
<第3実施形態>
一次推論及び二次推論の負荷は、推論に用いる学習済モデルごとに異なる。例えば、推論の精度が高い学習済モデルは、一般的に負荷が高い。しかし、負荷が高い学習済モデルを用いる場合、スループットは低下する。あるいは、データ集約の負荷は、データ集約における後処理と集約の処理とに対応して異なる。あるいは、データ集約において用いられる集約データの生成方法及び集約データの形式は、推論精度に影響する。なお、データ集約において用いられる集約データの生成方法は、例えば、領域のまとめ方である。あるいは、集約データの形式は、例えば、サイズ、及び画像間の隙間である。
【0131】
このように、一次推論、二次推論、及び、データ集約の少なくとも一つの変更は、情報処理装置1、1C及び1Dにおけるスループットと推論精度とに影響する。以下、一次推論、二次推論、及び、データ集約を、まとめて「推論パラメタ」と呼ぶ。そして、一般的に、推論精度とスループットとは、トレードオフの関係にある。なお、処理の負荷とスループットとは、反比例の関係にある。例えば、処理の負荷を高くするとスループットは低下し、処理の負荷を低くするとスループットは向上する。そのため、所望のスループットを確保しながら、推論精度の低下を防ぐためには、負荷又はスループットに基づいて、適切な推論パラメタを選択して用いることが望ましい。
【0132】
そこで、第3実施形態として、負荷又はスループットに基づいて、推論パラメタの少なくとも一つを変更する実施形態を説明する。以下、図面を用いて、第3実施形態について説明する。第3実施形態の説明において、第2実施形態と同様の構成及び動作には同じの符号を付し、その詳細な説明を省略する場合もある。なお、以下の説明では、第3実施形態は、推論パラメタの変更として、学習済モデルを変更する。ただし、これは、第3実施形態を限定するものではない。第3実施形態は、負荷又はスループットに応じて、学習済モデルとは異なる推論パラメタを変更してもよい。推論パラメタの変更については、後ほどさらに説明する。また、説明の便宜のため、以下の説明に用いる情報処理装置1Bは、二次推論部として、一つの二次推論部40Bを含む。情報処理装置1Dのように複数の二次推論部40Bを用いる場合、以下の説明において、情報処理装置1Bの各構成が、情報処理装置1Dにおける対応する構成と同様の機能を含めばよい。
【0133】
図11は、第3実施形態にかかる情報処理装置1Bの構成の一例を示すブロック図である。情報処理装置1Bは、物体推論部10と、一次推論部20Bと、データ集約部30Bと、二次推論部40Bと、データ保存部50Bと、データ生成部60Bと、モデル生成部70Bと、モデル保存部80Bと、データ取得部90とを含む。情報処理装置1Bは、第2実施形態と同様に、図9のコンピュータ装置600を用いて構成されてもよい。
【0134】
なお、情報処理装置1Bの負荷又はスループットを判定する構成は、任意である。例えば、図示しないモニタ部が、負荷を判定して、各構成要素に通知してもよい。例えば、情報処理装置1Bがコンピュータの場合、情報処理装置1Bは、負荷を判定する構成として、コンピュータで動作するオペレーティングシステムのモニタを用いてもよい。あるいは、コンピュータ上で動作する所定のアプリケーションが、スループットとして、一つ又は複数の構成要素の処理速度を計測してもよい。例えば、所定のアプリケーションが、単位時間における、一次推論部20Bが処理する推論対象データの数量、データ集約部30Bが生成する集約データの数量、及び、二次推論部40Bが処理する集約データの数量の少なくとも一つを計測してもよい。
【0135】
また、情報処理装置1Bにおいて、負荷又はスループットに対応して、各構成要素の動作を制御する構成は、任意である。例えば、情報処理装置1Bは、負荷又はスループットを判定して、各構成要素を制御する制御部(図示せず)を含んでもよい。あるいは、所定の構成が、負荷又はスループットを判定して、一次推論部20B、データ集約部30B、及び、二次推論部40Bなどの構成要素の動作を制御してもよい。あるいは、例えば、一次推論部20B、データ集約部30B、及び、二次推論部40Bが、負荷又はスループットを判定し、それぞれに関連する推論パラメタを変更してもよい。そのため、以下の説明では、特に必要な場合を除いて、各構成要素における、負荷に対応した動作を制御する構成要素に関する説明を省略する。
【0136】
さらに、負荷又はスループットの判定の対象となる構成、及び、推論パラメタを切り替える構成は、任意である。例えば、負荷又はスループットは、情報処理装置1Bの全体における負荷又はスループットでもよい。例えば、情報処理装置1Bは、推論対象データに対して情報処理装置1B全体としてのスループットが適切となるように、一次推論部20B、データ集約部30B、及び、二次推論部40Bの推論パラメタを切り替えてもよい。あるいは、負荷又はスループットの判定対象は、情報処理装置1Bの一つ又は一部の構成における負荷又はスループットでもよい。例えば、情報処理装置1Bは、ある構成の推論パラメタを、その構成の前段又は後段の構成の負荷又はスループットに対応して切り替えてもよい。
【0137】
例えば、一次推論部20Bは、データ集約部30Bの負荷に対応して、一次推論用学習済モデルを切り替えてもよい。例えば、データ集約部30Bの負荷が高い場合、一次推論部20Bは、負荷が高い学習済モデル、つまり推論精度が高い学習済モデルを用いる。反対に、データ集約部30Bの負荷が低い場合、一次推論部20Bは、負荷が低い学習済モデルを用いる。あるいは、二次推論部40Bは、データ集約部30Bの負荷に対応して、二次推論用学習済モデルを切り替えてもよい。例えば、データ集約部30Bの負荷が高い場合、二次推論部40Bは、負荷が高い学習済モデル、つまり推論精度が高い学習済モデルを用いる。反対に、データ集約部30Bの負荷が低い場合、二次推論部40Bは、負荷が低い学習済モデルを用いる。次に、各構成について説明する。なお、物体推論部10及びデータ取得部90は、第2実施形態の物体推論部10及びデータ取得部90と同様のため、詳細な説明を省略する。
【0138】
データ生成部60Bは、データ生成部60と同様に、オリジナル学習用データセットを用いて、一次推論学習用データセット及び二次推論学習用データセットを生成する。そして、データ生成部60Bは、生成した一次推論学習用データセット及び二次推論学習用データセットをデータ保存部50Bに保存する。ただし、第3実施形態において、一次推論部20B及び二次推論部40Bの少なくとも一方は、複数の学習済モデルを用いる。そのため、データ生成部60Bは、一次推論学習用データセット及び二次推論学習用データセットの少なくとも一方として、複数の学習用データセットを生成する。
【0139】
例えば、データ生成部60Bは、データ保存部50Bに保存されているオリジナル学習用データセットに、一般的なデータ拡張(data augmentation)の手法を適用して、複数の学習用データセットを生成してもよい。データ拡張の手法は、任意である。データが画像の場合、データ拡張の手法は、例えば、左右反転、上下反転、部分切り出し(cropping)、結合、拡大又は縮小、明度調整、輝度調整、色調整、及び、これらの組合せである。
【0140】
データ保存部50Bは、データ保存部50と同様に、一次推論学習用データセット及び二次推論学習用データセットを保存する。一次推論学習用データセット及び二次推論学習用データセットのそれぞれは、一次推論部20B及び二次推論部40Bが使用する学習済モデルの生成に用いられる学習用データセットである。ただし、第3実施形態において、一次推論部20B及び二次推論部40Bの少なくとも一方は、複数の学習済モデルを用いる。そのため、データ保存部50Bは、一次推論学習用データセット及び二次推論学習用データセットの少なくとも一方として、複数の学習用データセットを保存する。
【0141】
モデル生成部70Bは、モデル生成部70と同様に、学習用データセットを用いて一次推論用学習済モデル及び二次推論用学習済モデルを生成する。ただし、第3実施形態において、一次推論部20B及び二次推論部40Bの少なくとも一方は、複数の学習済モデルを用いる。そのため、モデル生成部70Bは、一次推論用学習済モデル及び二次推論用学習済モデルの少なくとも一方の学習済モデルとして、複数の学習済モデルを生成する。そして、モデル生成部70Bは、生成した学習済モデルをモデル保存部80Bに保存する。具体的には、モデル生成部70Bは、一次推論用学習済モデル及び二次推論用学習済モデルの少なくとも一方の学習済モデルとして、データ保存部50Bに保存されている複数の学習用データセットを用いて、複数の学習済モデルを生成する。ただし、モデル生成部70Bは、一つの学習用データセットを用いて、複数の学習済モデルを生成してもよい。
【0142】
モデル生成部70Bが生成する複数の学習済モデルは、任意である。例えば、モデル生成部70Bは、学習済モデルとして、次に示すいずれか一つが異なるモデルを生成してもよい。
(1)学習に用いる学習用データセット、
(2)モデルのネットワーク構造、
(3)モデルのハイパーパラメタ、
(4)モデルに含まれる重み精度、
(5)モデルにおけるバッチサイズ、
(6)対象物体に対するサブ対象物体の位置関係、
(7)対象物体に対するサブ対象物体の数。
モデル生成部70Bは、生成した複数の学習済モデルに対して、学習済モデルの選択に用いる指標を生成してもよい。例えば、モデル生成部70Bは、学習済モデルの選択の指標として、生成した学習済モデルの処理負荷、スループット性能、規模、又は、サイズなどの値又はこれらの少なくとも一部の比較結果を生成してもよい。
【0143】
モデル保存部80Bは、モデル保存部80と同様に、学習済モデルを保存する。ただし、第3実施形態において、一次推論部20B及び二次推論部40Bの少なくとも一方は、複数の学習済モデルを用いる。そのため、モデル保存部80Bは、一次推論用学習済モデル及び二次推論用学習済モデルの少なくとも一方の学習済モデルとして、複数の学習済モデルを保存する。
【0144】
データ集約部30Bは、データ集約部30と同様に、集約データを生成する。ただし、データ集約部30Bは、情報処理装置1Bにおける所定の負荷又はスループットに対応して、後処理及びデータの集約の処理の少なくとも一方を含むデータ集約を変更してもよい。なお、データ集約部30Bにおけるデータ集約の変更については、後ほどさらに説明する。
【0145】
一次推論部20Bは、一次推論部20と同様に、一次推論を実行する。二次推論部40Bは、二次推論部40と同様に、二次推論を実行する。さらに、一次推論部20B及び二次推論部40Bの少なくとも一方は、情報処理装置1Bにおける所定の負荷又はスループットに対応して、推論に用いる学習済モデルを切り替える。一次推論部20B及び二次推論部40Bの少なくとも一方は、2つではなく3つ以上の学習済モデルを切り替えてもよい。一次推論部20B及び二次推論部40Bの両方が学習済モデルを切り替える場合、一次推論部20B及び二次推論部40Bは、負荷又はスループットの判定の用いる閾値として、同じ閾値を用いてもよいし、異なる閾値を用いてもよい。
【0146】
第3実施形態が判定に用いる負荷及びスループットは、任意である。オペレータが、対象物体及び学習済モデルなどに基づいて、判定に用いる負荷又はスループットを決定すればよい。例えば、情報処理装置1Bは、負荷又はスループットとして、以下の少なくともいずれ一つの項目を用いてもよい。情報処理装置1Bは、一つの項目ではなく、2つ以上の項目の組合せを用いてもよい。情報処理装置1Bは、以下の値を用いる場合に、平均などの統計処理を用いてもよい。
(1)情報処理装置1Bを構成する演算に関連するハードウェアリソース、
(1-1)CPU及びALUの少なくとも一つの使用率又は稼働率、
(1-2)情報処理装置1Bにおける構成の少なくとも一つにおける処理のためのデータキューの長さ、又は、処理待ち時間、
(1-3)情報処理装置1Bに含まれる温度、又は、消費電力を検出するセンサの測定値、
(2)推論対象データのサイズ、
(3)後処理の対象となるBBの数又は面積など、一次推論部20Bにおける一次推論の結果、
(4)後処理後のBBの数又は面積などデータ集約部30Bにおける後処理の結果、
(5)集約データのサイズなどデータ集約部30Bにおける集約の結果、
(6)推論対象データのサイズと、集約データのサイズとの比、
(7)二次推論に含まれるBBの数又は面積など二次推論部40Bにおける二次推論の結果、
(8)一次推論及び二次推論の少なくとも一方の処理時間。なお、処理時間は、実測された時間でもよいし、予め設定された推論対象データのサイズと処理時間との関係を用いて算出された時間でもよい。
【0147】
情報処理装置1Bは、負荷及びスループットに替えて、又は、負荷又はスループットとともに、別の情報に基づいて、推論パラメタを切り替えてもよい。例えば、侵入者を検知するシステムの監視カメラの撮影範囲には、必要となる推論精度が異なる範囲が含まれる場合がある。例えば、入口の近傍の範囲は、推論の精度が高いことが望ましい。一方、入口から遠い範囲は、不要な消費電力を削減するため、推論の精度は低くても推論に必要な負荷を低くすることが望ましい。そこで、例えば、情報処理装置1Bは、通常は、負荷が低い推論パラメタを用いる。なお、負荷が低い推論パラメタとは、例えば、負荷が低い学習済モデルである。そして、例えば、人感センサが人の所定範囲への侵入又は入口近傍への接近を検出した場合に、情報処理装置1Bは、推論精度が高くなる推論パラメタに切り替えてもよい。例えば、推論精度が高くなる推論パラメタは、推論精度が高い学習済モデルである。このように、情報処理装置1Bは、センサが検出したイベントのような所定の情報に対応して、推論パラメタを切り替えてもよい。
【0148】
一次推論部20B及び二次推論部40Bにおける推論パラメタの変更は、上記の説明における学習済モデルの変更を含め、次のような変更がある。ただし、推論パラメタの変更は、下記に限定されない。
(1)推論に使用する学習済モデルの変更:
負荷が低い学習済モデルを用いる場合、一次推論部20B及び二次推論部40Bのスループットは向上する。ただし、推論精度は、低くなる。負荷が高いが精度が高い学習済モデルを用いる場合、一次推論部20B及び二次推論部40Bのスループットは、低下する。ただし、推論精度は、高くなる。
(2)まとめて一次推論を実行する所定の数量の変更:
まとめて一次推論を実行する所定の数量を減らす場合、情報処理装置1Bは、推論対象データに対する最終的な推論結果を得るまでの時間を短くすることができる。最終的な推論結果を得るまでの時間は、例えば、レイテンシ(latency)である。
【0149】
次に、データ集約部30Bに関連する推論パラメタ(特に、データ集約)の変更を説明する。データ集約部30Bは、情報処理装置1Bにおける所定の負荷又はスループットに基づいて、次のような推論パラメタを変更してもよい。
(1)BBのフィルタリング又はBB調整における閾値又はBBの修正量のようなデータ集約におけるパラメタの変更:
フィルタリング対象が少なくなるように、つまり、フィルタリング後のデータの数量が少なくなるようにフィルタリングの閾値を変更する場合、データ集約部30Bのスループットは、向上する。ただし、二次推論部40Bにおける推論精度は、低下する。フィルタリング対象が多くなるように、つまり、フィルタリング後のデータの数量が多くなるようにフィルタリングの閾値を変更する場合、データ集約部30Bのスループットは、低下する。ただし、二次推論部40Bにおける推論精度は、向上する。
(2)集約データにおいて複製するデータの間に設ける隙間の変更:
隙間を狭くする場合、データ集約部30Bのスループットは、向上する。ただし、二次推論部40Bにおける推論精度は、低下する。隙間を広くする場合、データ集約部30Bのスループットは、低下する。ただし、二次推論部40Bにおける推論精度は、向上する。
(3)領域のまとめ方:
(3-1)重複している領域及び近接する領域をまとめるか否かの変更:
領域をまとめない場合、データ集約部30Bのスループットは、向上する。ただし、二次推論部40Bにおける推論精度は、低下する。領域をまとめる場合、データ集約部30Bのスループットは、低下する。ただし、二次推論部40Bにおける推論精度は、向上する。
(3-2)近接と判定する距離の変更:
近接と判定する距離を短くする場合、データ集約部30Bのスループットは、向上する。ただし、二次推論部40Bにおける推論精度は、低下する。近接と判定する距離を長くする場合、データ集約部30Bのスループットは、低下する。ただし、二次推論部40Bにおける推論精度は、向上する。
(4)集約データのサイズの変更:
集約データのサイズを小さくする場合、データ集約部30Bのスループットは、向上する。ただし、二次推論部40Bにおける推論精度は、低下する。集約データのサイズを大きくする場合、データ集約部30Bのスループットは、低下する。ただし、二次推論部40Bにおける推論精度は、向上する。
【0150】
情報処理装置1Bは、推論パラメタとして、次のような複数の構成要素に関連する項目を変更してもよい。
(1)サブ対象物体の利用の変更:
情報処理装置1Bは、負荷に応じて、サブ対象物体を使用するか否かを切り替えてもよい。サブ対象物体を使用しない場合、情報処理装置1Bのスループットは、向上する。ただし、最終的な推論精度は、低下する。サブ対象物体を使用する場合、情報処理装置1Bのスループットは、低下する。ただし、最終的な推論精度は、向上する。
(2)一次推論の有無:
情報処理装置1Bは、負荷に応じて、一次推論部20Bを使用するか否かを切り替えてもよい。集約データの数量が多い状況で、一次推論を使用しない場合、情報処理装置1Bのスループットは、向上する。集約データの数量が多い状況で、一次推論を使用する場合、情報処理装置1Bのスループットは、低下する。このように、推論パラメタに含まれる一次推論の切り替えは、一次推論の実行の有無を含む。なお、一次推論を使用しない場合におけるその他の構成要素の動作は、任意である。例えば、一次推論を使用しない場合、データ集約部30Bは、推論対象データを用いて集約データを生成してもよい。あるいは、一次推論を使用しない場合、二次推論部40Bは、二次推論として、推論対象データにおける対象物体を推論してもよい。
【0151】
次に、図面を用いて、第3実施形態にかかる情報処理装置1Bの動作を説明する。以下の説明では、負荷の一例として、データ集約部30Bが単位時間当たりに生成する集約データの数量の平均値を用いる。以下、単位時間当たりに生成する集約データの数量の平均値を、「集約データ生成速度」と呼ぶ。また、変更する推論パラメタとして、一次推論部20Bが用いる一次推論用学習済モデルを用いる。情報処理装置1Bは、負荷が低い状況において、より高い推論精度を得られるように動作する。具体的には、集約データ生成速度が閾値以下の場合、つまり、負荷が低い場合、一次推論部20Bは、一次推論に、高精度の学習済モデル、つまり、負荷が高い学習済モデルを使用する。反対に、集約データ生成速度が閾値を超えている場合、つまり、負荷が高い場合、一次推論部20Bは、一次推論に、負荷が低い学習済モデル、つまり、低精度の学習済モデルを使用する。
【0152】
図12は、第3実施形態にかかる情報処理装置1Bにおけるモデルの切り替え動作の一例を示すフロー図である。図12は、集約データ生成速度に対応して、一次推論部20Bが、一次推論に用いる一次推論用学習済モデルを切り替える動作の一例である。情報処理装置1Bは、集約データ生成速度を算出する(ステップS201)。情報処理装置1Bは、集約データ生成速度が所定の閾値を超えているか否かを判定する(ステップS202)。集約データ生成速度が閾値を超えている場合(ステップS202でYes)、一次推論部20Bは、一次推論として、負荷が低い学習済モデルを用いて一次推論を実行する(ステップS205)。集約データ生成速度が閾値以下の場合(ステップS202でNo)、一次推論部20Bは、一次推論として、精度が高い学習済モデルを用いて一次推論を実行する(ステップS206)。情報処理装置1Bは、所定の間隔で上記動作を繰り返す。情報処理装置1Bは、このような動作を用いて、データ集約部30Bのスループット又は負荷に対応して一次推論部20Bが用いる一次推論用学習済モデルを切り替える。
【0153】
このように、情報処理装置1Bは、情報処理装置1Bにおける所定の負荷又はスループットに基づいて、推論パラメタの少なくとも一つを切り替える。例えば、情報処理装置1Bは、情報処理装置1Bにおける所定の負荷又はスループットに基づいて、一次推論部20B、二次推論部40B、及び、データ集約部30Bの少なくとも一つの動作又は扱うデータを切り替える。例えば、情報処理装置1Bは、データ集約部30Bの負荷又はスループットに基づいて、一次推論部20Bが用いる一次推論用学習済モデル及び二次推論部40Bが用いる二次推論用学習済モデルの少なくとも一方を切り替える。あるいは、情報処理装置1Bは、一次推論部20B又は二次推論部40Bの負荷又はスループットに基づいて、データ集約部30Bにおけるデータ集約の処理を切り替える。このように、第3実施形態にかかる情報処理装置1Bは、情報処理装置1Bにおける所定の負荷又はスループットに応じて推論パラメタを変更する。
【0154】
このような動作を用いて、情報処理装置1Bは、負荷が増大したときに、スループットの低下を抑制し、処理できないデータの発生を回避する。一方、負荷が低くなると、情報処理装置1Bは、負荷が高くなるように推論パラメタを切り替える。このような動作を用いて、情報処理装置1Bは、スループットを確保しながら適切な精度の推論を実現する。
【0155】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【符号の説明】
【0156】
1 情報処理装置
1B 情報処理装置
1C 情報処理装置
1D 情報処理装置
10 物体推論部
10D 物体推論部
20 一次推論部
20B 一次推論部
20D 一次推論部
30 データ集約部
30B データ集約部
30D データ集約部
40 二次推論部
40B 二次推論部
40D 二次推論部
50 データ保存部
50B データ保存部
60 データ生成部
60B データ生成部
70 モデル生成部
70B モデル生成部
80 モデル保存部
80B モデル保存部
90 データ取得部
200 データ取得装置
300 表示装置
400 情報処理システム
600 コンピュータ装置
610 CPU
611 ALU
620 ROM
630 RAM
640 記憶装置
650 NIC
690 記憶媒体
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15