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