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

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

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

特許7505598情報処理装置、情報処理システム、情報処理方法、及び、プログラム
<>
  • 特許-情報処理装置、情報処理システム、情報処理方法、及び、プログラム 図1
  • 特許-情報処理装置、情報処理システム、情報処理方法、及び、プログラム 図2
  • 特許-情報処理装置、情報処理システム、情報処理方法、及び、プログラム 図3
  • 特許-情報処理装置、情報処理システム、情報処理方法、及び、プログラム 図4
  • 特許-情報処理装置、情報処理システム、情報処理方法、及び、プログラム 図5
  • 特許-情報処理装置、情報処理システム、情報処理方法、及び、プログラム 図6
  • 特許-情報処理装置、情報処理システム、情報処理方法、及び、プログラム 図7
  • 特許-情報処理装置、情報処理システム、情報処理方法、及び、プログラム 図8
  • 特許-情報処理装置、情報処理システム、情報処理方法、及び、プログラム 図9
  • 特許-情報処理装置、情報処理システム、情報処理方法、及び、プログラム 図10
  • 特許-情報処理装置、情報処理システム、情報処理方法、及び、プログラム 図11
  • 特許-情報処理装置、情報処理システム、情報処理方法、及び、プログラム 図12
  • 特許-情報処理装置、情報処理システム、情報処理方法、及び、プログラム 図13
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-06-17
(45)【発行日】2024-06-25
(54)【発明の名称】情報処理装置、情報処理システム、情報処理方法、及び、プログラム
(51)【国際特許分類】
   G06N 20/00 20190101AFI20240618BHJP
   G06T 7/00 20170101ALI20240618BHJP
【FI】
G06N20/00
G06T7/00 350B
【請求項の数】 10
(21)【出願番号】P 2022574945
(86)(22)【出願日】2021-01-14
(86)【国際出願番号】 JP2021001028
(87)【国際公開番号】W WO2022153432
(87)【国際公開日】2022-07-21
【審査請求日】2023-07-04
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100109313
【弁理士】
【氏名又は名称】机 昌彦
(74)【代理人】
【識別番号】100149618
【弁理士】
【氏名又は名称】北嶋 啓至
(72)【発明者】
【氏名】渡邊 義和
【審査官】千葉 久博
(56)【参考文献】
【文献】特開2018-124639(JP,A)
【文献】国際公開第2019/022136(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 20/00
G06T 7/00
(57)【特許請求の範囲】
【請求項1】
少なくとも一部のデータが検出対象物体を含む複数のデータである推論対象データに基づいて、前記推論対象データに含まれるデータの数より少ない数のデータである集約データを生成するデータ集約手段と、
一次推論として前記集約データを学習済モデルに適用して前記集約データにおける前記検出対象物体の領域である第1の領域を推論し、前記第1の領域の複製又は前記第1の領域に対応する前記推論対象データの領域の複製を詰め込んだデータである詰め込みデータを生成し、二次推論として前記詰め込みデータを学習済モデルに適用して前記詰め込みデータに含まれる前記検出対象物体の領域である第2の領域を推論し、前記第2の領域に基づいて前記推論対象データにおける前記検出対象物体を推論する物体推論手段と、
を含む情報処理装置。
【請求項2】
教師データを所定のモデルに適用して、学習済モデルを生成するモデル学習手段
を含む請求項1に記載の情報処理装置。
【請求項3】
所定のデータを前記データ集約手段に適用して学習用集約データを生成し、生成した前記学習用集約データを前記物体推論手段に適用して学習用詰め込みデータを生成する教師データ生成手段を含み、
前記モデル学習手段が、生成された前記学習用集約データを用いて前記集約データを適用する学習済モデルを生成し、生成された前記学習用詰め込みデータを用いて前記詰め込みデータを適用する学習済モデルを生成する
請求項2に記載の情報処理装置。
【請求項4】
前記物体推論手段が、前記一次推論及び前記二次推論を用いる二段階推論の負荷と、前記推論対象データを集約しない推論である一段階推論の負荷とに基づいて、前記二段階推論と前記一段階推論とのどちらかを選択して、選択した推論を用いて前記推論対象データにおける前記検出対象物体を推論する
請求項1ないし3のいずれか1項に記載の情報処理装置。
【請求項5】
前記物体推論手段が、前記一次推論及び前記二次推論を用いる二段階推論の負荷と、前記推論対象データを集約しない推論である一段階推論の負荷とに基づいて、前記二段階推論と前記一段階推論とのどちらかを選択して、選択した推論を用いて前記推論対象データにおける前記検出対象物体を推論し、
前記モデル学習手段が、所定のモデルと、所定のデータとを用いて、前記一段階推論に用いる学習済モデルを生成する
請求項2又は3に記載の情報処理装置。
【請求項6】
前記検出対象物体を含むデータが、画像であり、
前記データ集約手段が、前記集約データとして、複数の画像から各画素の値の平均値からなる画像を生成する
請求項1ないし5のいずれか1項に記載の情報処理装置。
【請求項7】
請求項1ないし6のいずれか1項に記載の情報処理装置と、
前記情報処理装置に前記推論対象データを出力する入力装置と、
前記情報処理装置の推論の結果を取得して表示する表示装置と
を含む情報処理システム。
【請求項8】
少なくとも一部のデータが検出対象物体を含む複数のデータである推論対象データに基づいて、前記推論対象データに含まれるデータの数より少ない数のデータである集約データを生成し、
一次推論として前記集約データを学習済モデルに適用して前記集約データにおける前記検出対象物体の領域である第1の領域を推論し、前記第1の領域の複製又は前記第1の領域に対応する前記推論対象データの領域の複製を詰め込んだデータである詰め込みデータを生成し、二次推論として前記詰め込みデータを学習済モデルに適用して前記詰め込みデータに含まれる前記検出対象物体の領域である第2の領域を推論し、前記第2の領域に基づいて、前記推論対象データにおける前記検出対象物体を推論する
情報処理方法。
【請求項9】
情報処理装置が、請求項8に記載の情報処理方法を実行し、
入力装置が、前記情報処理装置に前記推論対象データを出力し、
表示装置が、前記情報処理装置の推論の結果を取得して表示する
情報処理方法。
【請求項10】
少なくとも一部のデータが検出対象物体を含む複数のデータである推論対象データに基づいて、前記推論対象データに含まれるデータの数より少ない数のデータである集約データを生成する処理と、
一次推論として前記集約データを学習済モデルに適用して前記集約データにおける前記検出対象物体の領域である第1の領域を推論し、前記第1の領域の複製又は前記第1の領域に対応する前記推論対象データの領域の複製を詰め込んだデータである詰め込みデータを生成し、二次推論として前記詰め込みデータを学習済モデルに適用して前記詰め込みデータに含まれる前記検出対象物体の領域である第2の領域を推論し、前記第2の領域に基づいて、前記推論対象データにおける前記検出対象物体を推論する処理と
をコンピュータに実行させるプログラム
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報の処理に関し、特に、機械学習における推論及び学習に関する。
【背景技術】
【0002】
機械学習を用いた主要なタスクの一つとして、画像における物体検出(Object Detection)タスクがある。
【0003】
物体検出タスクは、画像の中に存在する検出対象物体の位置とクラスとの組のリストを生成するタスクである(例えば、特許文献1を参照)。なお、位置としては、検出対象物体が含まれる矩形領域の4つの頂点の座標(バウンディングボックス(Bounding Box:BB)とも呼ばれる)が用いられることが多い。
【0004】
特許文献1に記載の物体検出認識装置(以下、「関連装置」と呼ぶ)は、サイズの小さな物体の検出及び認識の精度の向上を目的とする発明である。
【0005】
具体的には、関連装置は、物体の検出の対象となる画像を取得すると、画像における前景を分離する。そして、関連装置は、物体候補領域として、前景において所定のサイズ以下の領域を抽出する。さらに、関連装置は、抽出した物体候補領域の周辺の領域の画像を抽出する。
【0006】
そして、関連装置は、物体候補領域の画像と周辺の領域の画像とを、学習済みのConvolutional Neural Network(CNN)に入力して、画像それぞれにおける物体の位置とカテゴリとを推論する。そして、関連装置は、推論した複数のカテゴリを統合したカテゴリを生成する。そして、関連装置は、物体の検出結果と、統合したカテゴリとを保存する。
【0007】
このように、関連装置は、推論に用いる画像の枚数を増やして、物体の検出及び認識の精度を向上する。
【0008】
近年、機械学習の中でも特に深層学習(Deep-Learning)を用いた物体検出タスクが、広く利用されている(例えば、非特許文献1ないし3を参照)。
【0009】
非特許文献1ないし3において、物体検出タスクは、機械学習のために、正解データとして、学習用の画像群と、各画像内の検出対象物体の情報とが与えられる。
【0010】
検出対象物体の情報は、物体検出タスクの仕様に沿って選択される。例えば、検出対象物体の情報は、検出対象物体が含まれるBBと、検出対象物体のクラスとを含む。なお、以下の説明でも、検出対象物体の情報の一例として、BB及びクラスを用いて説明する。
【0011】
そして、非特許文献1ないし3において、物体検出タスクは、学習用の画像群と検出対象物体の情報とを用いて深層学習を用いた機械学習の結果として、学習済モデルを生成する。
【0012】
そして、物体検出タスクは、学習済モデルに検出対象物体を含む画像を適用して、画像中の検出対象物体を推論する。そして、物体検出タスクは、画像に含まれる検出対象物体それぞれについて、BBとクラスとを出力する。なお、物体検出タスクは、BB及びクラスに加え、推論の結果についての評価結果(例えば、確実性(confidence))を出力することもある。
【0013】
例えば、人及び車両の監視システムは、監視カメラからの画像を物体検出タスクに入力し、物体検出タスクが推論した監視カメラの画像に映っている人及び車両の位置及びクラスを用いて、構築可能である。
【先行技術文献】
【特許文献】
【0014】
【文献】特開2020-017136号公報
【非特許文献】
【0015】
【文献】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, [2019年10月16日検索], インターネット<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, [2019年10月16日検索], インターネット, <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], 2 February 2018, Cornel University, [2019年10月16日検索], インターネット, <URL:https//arxiv.org/abs/1708.02002>
【発明の概要】
【発明が解決しようとする課題】
【0016】
一般的に、機械学習の推論の処理は、計算の負荷が高く、長い時間が掛かる処理である。特に、物体検出タスクは、機械学習の中でも計算の負荷が高く、処理に長い時間が必要である。
【0017】
しかし、物体検出タスクは、短い時間で推論の結果を求められる場合がある。例えば、監視カメラを含む監視システムは、有事が発生した場合、監視カメラからの映像における物体の検出を、遅滞なく(例えば、数十msから数秒以内)に完了することが求められる。
【0018】
特許文献1に記載の関連装置は、サイズの小さい物体の検出及び認識の精度を向上するため、処理の対象となる画像を増やして精度を向上する発明である。つまり、関連装置は、推論の対象となる画像を増やす発明である。そのため、関連装置を用いると、推論の処理の時間は、長くなる。このように、特許文献1に記載の技術は、推論の処理の時間を短縮するという上記の問題を解決できない。
【0019】
非特許文献1ないし3は、処理の時間を短縮するような技術が開示していない。
【0020】
つまり、特許文献1、及び、非特許文献1ないし3は、物体検出タスクにおける推論の時間を短縮できないという問題点があった。
【0021】
本発明の目的は、上記問題点を解決し、検出対象物体の推論の時間を短縮する情報処理装置などを提供することにある。
【課題を解決するための手段】
【0022】
本発明の一形態における情報処理装置は、
少なくとも一部のデータが検出対象物体を含む複数のデータである推論対象データに基づいて、推論対象データに含まれるデータの数より少ない数のデータである集約データを生成するデータ集約手段と、
一次推論として集約データを学習済モデルに適用して集約データにおける検出対象物体の領域である第1の領域を推論し、第1の領域の複製又は第1の領域に対応する推論対象データの領域の複製を詰め込んだデータである詰め込みデータを生成し、二次推論として詰め込みデータを学習済モデルに適用して詰め込みデータに含まれる検出対象物体の領域である第2の領域を推論し、第2の領域に基づいて推論対象データにおける検出対象物体を推論する物体推論手段と、
を含む。
【0023】
本発明の一形態における情報処理システムは、
上記の情報処理装置と、
情報処理装置に推論対象データを出力する入力装置と、
情報処理装置の推論の結果を取得して表示する表示装置と
を含む。
【0024】
本発明の一形態における情報処理方法は、
少なくとも一部のデータが検出対象物体を含む複数のデータである推論対象データに基づいて、推論対象データに含まれるデータの数より少ない数のデータである集約データを生成し、
一次推論として集約データを学習済モデルに適用して集約データにおける検出対象物体の領域である第1の領域を推論し、第1の領域の複製又は第1の領域に対応する推論対象データの領域の複製を詰め込んだデータである詰め込みデータを生成し、二次推論として詰め込みデータを学習済モデルに適用して詰め込みデータに含まれる検出対象物体の領域である第2の領域を推論し、第2の領域に基づいて、推論対象データにおける検出対象物体を推論する。
【0025】
本発明の一形態における情報処理方法は、
情報処理装置が、上記の情報処理方法を実行し、
入力装置が、情報処理装置に推論対象データを出力し、
表示装置が、情報処理装置の推論の結果を取得して表示する。
【0026】
本発明の一形態におけるプログラムは
少なくとも一部のデータが検出対象物体を含む複数のデータである推論対象データに基づいて、推論対象データに含まれるデータの数より少ない数のデータである集約データを生成する処理と、
一次推論として集約データを学習済モデルに適用して集約データにおける検出対象物体の領域である第1の領域を推論し、第1の領域の複製又は第1の領域に対応する推論対象データの領域の複製を詰め込んだデータである詰め込みデータを生成し、二次推論として詰め込みデータを学習済モデルに適用して詰め込みデータに含まれる検出対象物体の領域である第2の領域を推論し、第2の領域に基づいて、推論対象データにおける検出対象物体を推論する処理と
コンピュータに実行させる

【発明の効果】
【0027】
本発明に基づけば、検出対象物体の推論の時間を短縮するとの効果を奏することができる。
【図面の簡単な説明】
【0028】
図1図1は、第1の実施形態にかかる情報処理装置の構成の一例を示すブロック図である。
図2図2は、集約画像の一例を示す図である。
図3図3は、一次推論の結果の一例を示す図である。
図4図4は、Packed画像の一例を示す図である。
図5図5は、二次推論の結果の一例を示す図である。
図6図6は、生成された推論結果の一例を示す図である。
図7図7は、第1の実施形態にかかる情報処理装置における機械学習の動作の一例を示すフロー図である。
図8図8は、第1の実施形態にかかる情報処理装置における推論の動作の一例を示すフロー図である。
図9図9は、ハードウェア構成の一例を示すブロック図である。
図10図10は、情報処理装置を含む情報処理システムの構成の一例を示すブロック図である。
図11図11は、第2の実施形態にかかる情報処理装置の構成の一例を示すブロック図である。
図12図12は、第2の実施形態にかかる情報処理装置における推論の動作の一例を示すフロー図である。
図13図13は、第3の実施形態にかかる情報処理装置の構成の一例を示すブロック図である。
【発明を実施するための形態】
【0029】
以下、本発明の実施形態について、図面を用いて説明する。
【0030】
なお、各図面は、実施形態を説明するためのものである。ただし、各実施形態は、図面の記載に限られるわけではない。また、各図面の同様の構成には、同じ番号を付し、その繰り返しの説明を、省略する場合がある。
【0031】
また、以下の説明に用いる図面では、各実施形態の説明において、発明の課題に関係しない部分の構成については、記載を省略し、図示しない場合もある。
【0032】
なお、以下の説明において、各実施形態は、処理の対象のデータの一例として、カメラなどが撮影した画像(静止画又は動画)を用いる。また、以下の説明において、各実施形態は、動作の一例として、画像における検出対象物体の推論する物体検出タスクを用いる。また、以下の説明において、各実施形態は、画像を用いた場合の推論の結果の一例として、物体検出タスクの推論の結果である、BB、クラス、及び、confidenceを用いる。
【0033】
ただし、各実施形態は、処理の対象のデータとして、画像とは異なるデータを用いてもよい。例えば、各実施形態は、深度センサを用いて取得された深度データを用いてもよい。あるいは、各実施形態は、Light Detection and Ranging (LIDAR)を用いて取得された3次元データを用いてもよい。
【0034】
また、各実施形態における動作は、物体検出タスクに限定されない。さらに、各実施形態における推論の結果は、BB、クラス、及び、confidenceに限定されない。
【0035】
<第1の実施形態>
以下、図面を用いて、第1の実施形態について説明する。
【0036】
[構成の説明]
まず、第1の実施形態の構成について、図面を用いて説明する。
【0037】
図1は、第1の実施形態にかかる情報処理装置1の構成の一例を示すブロック図である。
【0038】
情報処理装置1は、データ集約部10と、物体推論部20と、教師データ生成部30と、教師データ保存部40と、モデル学習部50と、モデル保存部60と、データ取得部70とを含む。
【0039】
なお、図1に示す構成要素の数及び接続関係は、一例である。例えば、情報処理装置1は、複数のデータ取得部70を含んでもよい。この場合、データ取得部70は、それぞれ、異なる装置から推論対象データを取得してもよい。あるいは、負荷分散又は並列処理などのため、複数のデータ取得部70が、同じ装置からデータを取得してもよい。
【0040】
あるいは、例えば、情報処理装置1は、複数のデータ集約部10及び物体推論部20を含んでもよい。この場合、情報処理装置1は、複数のデータ集約部10及び物体推論部20に基づく複数の推論の結果を出力してもよい。
【0041】
なお、情報処理装置1は、CPU(Central Processing Unit)、メインメモリ、及び二次記憶装置を含むコンピュータ装置を用いて構成されてもよい。この場合、図1に示されている情報処理装置1の構成要素は、CPUなどを用いて実現される。なお、ハードウェア構成の詳細については、後述する。
【0042】
データ取得部70は、所定の装置から、情報処理装置1の推論の対象となるデータ(以下、「推論対象データ」と呼ぶ)を取得する。推論対象データは、それぞれが検出対象物体を含む複数のデータの集合である。なお、推論対象データは、検出対象物体を含まないデータを含んでいてもよい。
【0043】
データ取得部70におけるデータの入力元は、任意である。例えば、データ取得部70は、推論対象データとして、監視カメラから画像を取得してもよい。あるいは、データ取得部70は、図示しない記憶装置に保存されているデータを取得してもよい。あるいは、データ取得部70は、複数の装置からデータを取得してもよい。
【0044】
データ集約部10は、データ取得部70から推論対象データを取得し、取得した推論対象データを集約したデータ(以下、「集約データ」と呼ぶ)を生成する。
【0045】
「集約」とは、元となるデータから、元となるデータに含まれるデータの数より少ない数のデータを生成することである。生成される集約データの数は、一つでもよく、複数でもよい。
【0046】
例えば、データ集約部10は、推論対象データとして、データ取得部70から複数の画像(以下、「推論対象画像」と呼ぶ)を取得する。そして、データ集約部10は、推論対象画像に基づいて、推論対象画像に含まれ画像の枚数より少ない枚数の画像(以下、「集約画像」と呼ぶ)を生成する。
【0047】
つまり、データ集約部10は、少なくとも一部データが検出対象物体を含む複数のデータである推論対象データに基づいて、推論対象データに含まれるデータの数より少ない数のデータである集約データを生成する。
【0048】
そして、データ集約部10は、集約データを物体推論部20に出力する。
【0049】
さらに、後ほど説明するように、データ集約部10は、教師データ生成部30から集約対象となるデータを取得して、学習用集約データを生成する。
【0050】
データ集約部10の詳細については、後述する。
【0051】
物体推論部20は、データ集約部10が生成した集約データを、学習済モデルに適用して集約データにおける検出対象物体の領域(第1の領域)を推論する。
【0052】
さらに、物体推論部20は、集約データにおいて推論された検出対象物体の領域の複製を集め、集めた複製を詰め込んだデータを生成する。
【0053】
以下、所定の領域の複製を集め、集めた複製を詰め込んだデータ生成することを、「Packing」と呼ぶ。また、Packingを用いて生成されたデータを、「詰め込みデータ(Packed data)」と呼ぶ。
【0054】
なお、物体推論部20は、詰め込みデータとして、集約データにおいて検出対象物体の領域として推論された領域に対応する推論対象データの領域の複製を詰め込んだデータを生成してもよい。
【0055】
そして、物体推論部20は、詰め込みデータを、学習済モデルに適用して、詰め込みデータに含まれる検出対象物体の領域(第2の領域)を推論する。
【0056】
なお、物体推論部20は、集約データを適用する学習済モデルと、詰め込みデータを適用する学習済モデルとして、異なる学習済モデルを使用してよい。この場合、学習済モデルは、それぞれ異なるモデルから生成された学習済モデルでもよい。あるいは、学習済モデルは、同じモデルに、異なる教師データを用いて生成された学習済モデルでもよい。
【0057】
ただし、物体推論部20は、集約データを適用する学習済モデルと、詰め込みデータを適用する学習済モデルとして、同じ学習済モデルを使用してよい。
【0058】
そして、物体推論部20は、詰め込みデータにおける検出対象物体の領域(第2の領域)に基づいて、推論対象データにおける検出対象物体(例えば、検出対象物体のBB、クラス及びconfidence)を推論する。
【0059】
なお、後ほど詳細に説明するように、詰め込みデータにおける検出対象物体の領域(第2の領域)から推論対象データにおける検出対象物体の推論は、学習済モデルの用いる推論ではなく、データの対応関係を用いる。そのため、この処理は、学習済モデルを用いる推論に比べ、負荷が低い処理である。
【0060】
データ集約部10が推論対象画像から集約画像を生成した場合における、物体推論部20の動作の一例を説明する。
【0061】
物体推論部20は、データ集約部10が生成した集約画像を、学習済モデルに適用して、集約画像における検出対象物体の領域を推論する。
【0062】
そして、物体推論部20は、集約画像における検出対象物体の領域の画像の複製を集めた(詰め込んだ)画像(以下、「Packed画像」と呼ぶ)を生成する。なお、物体推論部20は、Packed画像として、集約画像における検出対象物体の領域に対応する推論対象画像の領域の画像の複製を詰め込んだ画像を生成してもよい。
【0063】
そして、物体推論部20は、Packed画像を学習済モデルに適用して、Packed画像に含まれる検出対象物体の領域を推論する。
【0064】
そして、物体推論部20は、Packed画像における推論の結果に基づいて、推論対象画像における検出対象物体を推論する。
【0065】
つまり、物体推論部20は、集約データを学習済みモデルに適用して、集約データにおける検出対象物体の領域(第1の領域)を推論(一次推論)する。そして、物体推論部20は、集約データにおける検出対象物体の領域(第1の領域)の複製、又は、第1の領域に対応する推論対象データの領域の複製を詰め込んだデータである詰め込みデータを生成する。そして、物体推論部20は、生成した詰め込みデータを学習済モデルに適用して、詰め込みデータに含まれる検出対象物体の領域(第2の領域)を推論する。そして、物体推論部20は、詰め込みデータにおける検出対象物体の領域(第2の領域)に基づいて、推論対象データにおける検出対象物体を推論する。
【0066】
そして、物体推論部20は、推論の結果を所定の装置に出力する。
【0067】
なお、データ集約部10が学習用集約データを生成した場合、物体推論部20は、学習用集約データから学習用詰め込みデータを生成する。
【0068】
物体推論部20の詳細については、後述する。
【0069】
教師データ生成部30は、データ集約部10を利用して、教師データ保存部40に保存されている所定のデータ(以下、「オリジナルデータ」と呼ぶ)から学習用集約データを生成する。さらに、教師データ生成部30は、物体推論部20を利用して、生成した学習用集約データから、学習用詰め込みデータを生成する。
【0070】
つまり、教師データ生成部30は、オリジナルデータをデータ集約部10に適用して、学習用集約データを生成する。さらに、教師データ生成部30は、生成した学習用集約データを物体推論部20に適用して、学習用詰め込みデータを生成する。
【0071】
なお、学習用集約データと学習用詰め込みデータとは、後ほど説明するように、モデルの学習に用いられる。そこで、以下、生成された学習用集約データと学習用詰め込みデータとをまとめて、「教師データ」と呼ぶ場合もある。なお、教師データは、学習用集約データ及び学習用詰め込みデータとは異なるデータ(例えば、オリジナルデータに含まれるデータ、及び/又は、正解データを示す情報(以下、「正解ラベル」と呼ぶ))を含んでいてもよい。
【0072】
教師データ保存部40は、教師データ生成部30がデータ集約部10及び物体推論部20を用いて生成した教師データ(学習用集約データ及び学習用詰め込みデータ)と、教師データを生成するために用いられるオリジナルデータとを保存する。
【0073】
オリジナルデータの取得元は、任意である。例えば、情報処理装置1は、予め、図示しない外部の装置から、オリジナルデータを受信して、教師データ保存部40に保存してもよい。あるいは、情報処理装置1は、予め、所定のデータを用いて教師データ生成部30が生成したデータを、オリジナルデータとして、教師データ保存部40に保存してもよい。
【0074】
モデル学習部50は、機械学習の学習フェーズとして、教師データ保存部40に保存されている教師データを、モデル保存部60に保存されているモデル(以下、「学習前モデル」と呼ぶ)に適用して、学習済モデルを生成する。そして、モデル学習部50は、生成した学習済モデルを、モデル保存部60に保存する。学習済モデルは、物体推論部20が推論において使用するモデルである。
【0075】
このように、モデル学習部50は、教師データを所定のモデルに適用して、学習済モデルを生成する。
【0076】
なお、モデル学習部50は、集約データに用いられる学習済モデルと、詰め込みデータに用いられる学習済モデルとして、異なる学習済モデルを生成してもよい。ただし、モデル学習部50は、集約データに用いられる学習済モデルと、詰め込みデータに用いられる学習済モデルとして、一つの学習済モデルを生成してもよい。
【0077】
モデル保存部60は、学習前モデルと、学習済モデルとを保存する。なお、モデル保存部60は、予め、学習前モデルを保存している。例えば、オペレータが、動作に先立ち、学習前モデルをモデル保存部60に保存する。
【0078】
なお、情報処理装置1は、図示しない外部の装置から学習済モデルを取得して、モデル保存部60に保存してもよい。この場合、情報処理装置1は、教師データ生成部30、教師データ保存部40、及び、モデル学習部50を含まなくてもよい。
【0079】
なお、情報処理装置1は、教師データ保存部40及びモデル保存部60を図示しない外部の装置に設けてもよい。
【0080】
次に、データ集約部10及び物体推論部20の詳細について説明する。なお、以下の説明では、説明用の図面との対比のため、推論対象データの一例として、画像を用いて説明する。
【0081】
(データの集約)
まず、データ集約部10における、集約画像の生成について説明する。
【0082】
データ集約部10は、データ取得部70から取得した推論対象画像から、推論対象画像に含まれる画像の枚数より少ない枚数の画像(集約画像)を生成する。
【0083】
なお、画像の枚数は、集約画像の生成における指標の一例である。データ集約部10は、画像の枚数とは異なる指標を用いて、集約画像を生成してもよい。例えば、データ集約部10は、面積を指標として用いてもよい。例えば、データ集約部10は、集約画像の面積(集約画像が複数の場合は集約画像の合計の面積)が、推論対象画像に含まれる画像の合成の面積より狭い面積となるように、一つ又は複数の集約画像を生成してもよい。
【0084】
以下における本実施形態の説明では、一例として、指標として画像の枚数を用いる。ただし、これは、集約において用いられる指標を、画像の枚数に限定するものではない。
【0085】
なお、学習用集約データを生成する場合、データ集約部10は、教師データ生成部30から集約対象のデータ(オリジナルデータ)を取得して、集約データ(学習用集約データ)を生成する。
【0086】
図2は、集約画像の一例を示す図である。
【0087】
データ集約部10は、図2の左側の二枚の推論対象画像(「frame i」及び「frame i+1」)を集約して、右側の一枚の集約画像を生成する。例えば、集約画像の中央右における車両の画像が、二つのframeの画像が集約された車両となっている。なお、他の車両などは、二つの画像において同じ位置のため(例えば、車両は停止中のため)、集約画像において、元のframeそれぞれの画像と同じ画像となっている。
【0088】
さらに、データ集約部10は、集約画像を生成するときに、推論対象画像に含まれる画像と、集約画像との対応関係(以下、「第1の対応関係」と呼ぶ)を保存する。例えば、データ集約部10は、集約画像に関連付けて、推論対象画像に含まれる複数の画像から集約画像を生成する際における座標変換(以下、「第1の座標変換」と呼ぶ)を保存する。
【0089】
なお、生成される集約画像の枚数は、推論対象画像に含まれる画像の枚数より少なければ任意である。データ集約部10は、1枚の集約画像を生成してもよいし、2枚以上の複数の集約画像を生成してもよい。
【0090】
また、データ集約部10における集約の方法は、画像の枚数を削減できれば任意である。次に、集約方法の例を説明する。
【0091】
例えば、データ集約部10は、推論対象画像を平均化して集約画像を生成してもよい。この場合、データ集約部10は、例えば、推論対象画像の各画像における同じ位置の画素の値(画素値)の平均値を算出し、算出した平均値を、集約画像における対応する画素の値(画素値)とする。
【0092】
なお、複数の集約画像を生成する場合、データ集約部10は、推論対象画像を複数のグループに分けて、それぞれのグループの画像の平均値を集約画像の画素値としてもよい。なお、少なくとも一部グループは、画像の一部として、共通の画像を含んでいてもよい。
【0093】
あるいは、データ集約部10は、集約画像の画素値として、推論対象画像に含まれる画像における同じ位置の画素の値の最大値又は最小値を用いてもよい。
【0094】
なお、データ集約部10は、集約画像を生成する前に、推論対象画像に所定の処理を適用してもよい。
【0095】
例えば、データ集約部10は、推論対象画像に、左右反転、上下反転、色味調整、平行移動、回転、拡大又は縮小、部分切り出し、及び、これらの組み合わせを適用してもよい。
【0096】
データ集約部10は、推論対象画像に含まれる少なくとも一部の画像に他の画像とは異なる処理を適用してもよい。
【0097】
あるいは、データ集約部10は、背景の成分を除去してから、集約画像を生成してもよい。
【0098】
背景の成分を除去する方法は、任意である。例えば、データ集約部10は、背景成分の除去として、画像の画素値から背景画像の画素値を引いてもよい。
【0099】
なお、背景画像の取得方法は、任意である。たとえば、データ集約部10は、予め、オペレータから背景画像を取得していてもよい。あるいは、データ集約部10は、推論対象画像を取得するときに、背景画像を取得してもよい。
【0100】
あるいは、データ集約部10が、推論対象画像から背景画像を生成してもよい。
【0101】
例えば、推論対象画像が、固定された同じ撮影装置を用いて撮影された画像の場合、背景は固定となる。そこで、データ集約部10は、過去において集約画像の生成に用いた推論対象画像を保存し、保存した推論対象画像を平均化した画像を背景画像としてもよい。
【0102】
さらに、データ集約部10は、背景画像の生成に重みを用いてもよい。例えば、データ集約部10は、保存した推論対象画像の中で、取得した日時が新しい推論対象画像ほど大きな重みを適用した重み付き平均値(加重平均値)を背景画像としてもよい。
【0103】
あるいは、データ集約部10は、推論対象画像における検出対象物体の推論を物体推論部20に依頼し、推論の結果として検出された検出対象物体の領域を除外した領域を、背景画像としてもよい。
【0104】
(物体の推論)
次に、物体推論部20における推論について説明する。物体推論部20は、一次推論及び二次推論の二種類の推論を行う。
【0105】
(1)一次推論
一次推論は、集約画像を用いた推論である。
【0106】
物体推論部20は、集約画像を学習済モデルに適用して、集約画像に含まれる検出対象物体の領域(例えば、BB)を推論する。
【0107】
図3は、一次推論の結果の一例を示す図である。
【0108】
図3の右側の図における矩形が、左側の集約画像を用いた一次推論の結果(BB)である。なお、物体推論部20は、BB加え、クラス及びconfidenceを推論する。ただし、図3は、クラス及びconfidenceの表示を省略している。
【0109】
物体推論部20は、推論の結果として、重複しているBB、及び/又は、位置が近いBBをまとめたBBを推論してもよい。例えば、図3の右側の図において、もっとも大きな矩形は、推論されたBBをまとめたBBの一例である。
【0110】
このように、物体推論部20は、集約画像に含まれる検出対象物体の領域を推論する。集約画像は、集約元である推論対象画像より、画像の枚数が少ない。そのため、情報処理装置1は、集約元である推論対象画像を用いて推論する場合の時間より少ない時間で、集約画像を用いた推論を実行できる。
【0111】
そして、物体推論部20は、得られた領域の画像の複製(コピー)を集めた(詰め込んだ)画像(以下、「詰め込み画像(Packed画像)」と呼ぶ)を生成する。
【0112】
なお、物体推論部20は、Packed画像として、集約画像において検出対象物体の領域として推論された領域に対応する推論対象画像の領域の画像の複製を詰め込んだ画像を生成してもよい。
【0113】
図4は、Packed画像の一例を示す図である。
【0114】
図4の右側の図が、左側の図における領域(最も大きいBB)に対応した領域の複製を詰め込んだPacked画像である。なお、図4において、物体推論部20は、集約画像において検出対象物体の領域と推論された領域に対応する推論対象画像(frame i及びframe i+1)の画像領域を、Packed画像に複製している。
【0115】
物体推論部20は、検出対象物体が推論された画像領域の一部又は全部をまとめた画像の領域をPacked画像に複製してもよい。
【0116】
例えば、図4において、物体推論部20は、集約画像において検出対象物体の領域として推論された領域の中で、最も広い領域(全ての検出対象物体の領域をまとめた領域)に対応する画像を複製している。
【0117】
ただし、物体推論部20は、集約画像において検出対象物体の領域として推論された領域の中の一部の領域に対応する画像を複製してもよい。
【0118】
なお、図4に示した例は、推論対象画像から複製した画像領域の面積の合計が、Packed画像の面積より少ない。そのため、Packed画像は、余剰領域(図4の右の図の黒い領域)含む。
【0119】
物体推論部20は、余剰領域に、別の画像の複製を詰め込んでもよい。例えば、物体推論部20が、さらに他の集約画像に基づいてPackingを実行する場合、物体推論部20は、この余剰領域に、他の集約画像に基づいて追加する画像を複製してもよい。なお、追加として複製する画像が余剰領域に入りきらない場合、物体推論部20は、入らなかった画像を、新たなPacked画像に複製すればよい。
【0120】
このように、物体推論部20は、複数の集約画像に基づいてPacked画像を生成してもよい。
【0121】
さらに、物体推論部20は、集約画像からPacked画像を生成するときに、集約画像における検出対象物体の画像領域と、Packed画像における画像領域とを対応関係(以下、「第2の対応関係」と呼ぶ)を保存する。例えば、物体推論部20は、Packed画像に関連付けて、集約画像における画像領域と、Packed画像における画像領域との座標変換(以下、「第2の座標変換」と呼ぶ)に関連する情報を保存する。
【0122】
なお、次に説明する二次推論において、物体推論部20は、Packed画像において物体が存在すると推論された領域に対応する集約画像の領域を推定し、推定した集約画像の領域に基づいて、推論対象画像における物体を推論する。
【0123】
ただし、例えば、データ集約部10が平均化を用いて集約画像を生成する場合、集約画像の画素値は、推論対象画像に含まれる複数の画像の画素値の平均値である。そのため、平均値を用いて集約画像を生成した場合、二次推論において、Packed画像において物体が存在すると推論された領域に対応する集約画像の領域が、集約画像の元となった推論対象画像におけるどの画像であるかを特定することが難しい場合がある。
【0124】
そこで、既に説明しているが、物体推論部20は、Packed画像を生成するときに、集約画像における検出対象物体の画像領域ごとに、集約画像の生成に用いられた推論対象画像における対応する領域の画像を複製して、Packed画像を生成してもよい。この場合、物体推論部20は、推論対象画像における複製する領域の決定に、第1の対応関係を用いればよい。
【0125】
そして、この場合、物体推論部20は、第2の対応関係として、Packed画像に関連付けて、複製元となる画像(推論対象画像)の画像領域と、Packed画像の画像領域との対応関係を保存する。言い換えると、この場合、第2の対応関係(例えば、第2の座標変換)は、複製元となる画像(推論対象画像)の領域と、Packed画像の画像領域との対応関係(例えば、座標変換)となる。
【0126】
このように、推論対象画像の複製を用いてPacked画像を生成すると、Packed画像において物体が存在すると推論された画像の領域から推論対象画像における画像の領域の特定が容易となる。
【0127】
このように、物体推論部20は、一次推論の結果として、集約画像に基づいて、Packed画像を生成する。また、物体推論部20は、集約画像(又は、推論対象画像)とPacked画像との対応関係である第2の対応関係(例えば、第2の座標変換)を保存する。
【0128】
なお、学習用詰め込みデータを生成する場合、物体推論部20は、学習用集約データを用いて、学習用詰め込みデータを生成する。
【0129】
(2)二次推論
二次推論は、Packed画像を用いた推論である。
【0130】
物体推論部20は、Packed画像を学習済モデルに適用して、Packed画像に含まれる検出対象物体の領域(例えば、BB、クラス、及び、confidence)を推論する。
【0131】
図5は、二次推論の結果の一例を示す図である。
【0132】
図5の右側の図における矩形が、左側のPacked画像を用いた二次推論の結果(BB)を表示している。図5は、クラスとconfidenceとの表示を省略している。
【0133】
なお、物体推論部20は、二次推論の結果として得られたBBが、Packed画像に複製した領域より大きい場合、あるいは、複製した領域を跨ぐ場合、そのようなBBを用いなくてもよい。
【0134】
そして、物体推論部20は、Packed画像における推論の結果に基づいて、推論対象画像における検出対象物体を推論する。
【0135】
図6は、生成された推論結果の一例を示す図である。図6は、クラス及びconfidenceの表示を省略している。
【0136】
図6の右側の二つの図は、それぞれ、左側の二次推論の結果に基づく、推論対象画像それぞれにおける推論の結果(BB)である。図6は、クラスとconfidenceとの表示を省略している。
【0137】
詳細には、物体推論部20は、例えば、次のように、推論対象画像における検出対象物体を推論する。
【0138】
物体推論部20は、Packed画像と集約画像との対応関係(第2の座標変換)を用いて、Packed画像における検出対象物体の推論の結果から、集約画像における検出対象物体を推論する。そして、物体推論部20は、集約画像と推論対象画像との対応関係(第1の座標変換)を用いて、集約画像における検出対象物体の推論の結果から、推論対象画像における検出対象物体を推論する。
【0139】
つまり、物体推論部20は、第2の座標変換及び第1の座標変換を用いて(例えば、それぞれ座標変換の逆変換を用いて)、Packed画像における検出対象物体の推論の結果から、推論対象画像における検出対象物体を推論する。
【0140】
なお、Packed画像が集約画像の生成に用いられた推論対象画像を複製して生成された場合、第2の座標変換は、Packed画像と推論対象画像との座標変換である。そこで、この場合、物体推論部20は、第2の座標変換の逆変換を用いて、Packed画像における推論結果から、推論対象画像における検出対象物体を推論する。
【0141】
このように、物体推論部20は、Packed画像を用いて、推論対象画像の検出対象物体を推論する。
【0142】
一般的に、検出対象物体の領域は、推論対象画像の一部である。そのため、集約画像においても、検出対象物体の領域は、画像の一部である。そして、Packed画像は、集約画像において検出対象物体が含まれると推定された領域を集めた(詰め込んだ)画像である。
【0143】
集約画像を用いてPacked画像を生成する場合、Packed画像の枚数は、集約画像の枚数より少なくなる。あるいは、推論対象画像を用いてPacked画像を生成する場合、Packed画像の枚数は、推論対象画像の枚数より少なくなる。
【0144】
そのため、情報処理装置1は、推論対象画像を用いて推論した場合の処理時間より少ない時間で、Packed画像を用いた推論(二次推論)を実行できる。
【0145】
また、集約画像は、推論対象画像を集約した画像のため、物体を含まない領域の比率が大きい場合が多い。
【0146】
一方、Packed画像は、集約画像において物体が含まれると推論された領域に対応する画像を複製した画像である。そのため、物体推論部20は、Packed画像を用いることで、物体を含まない領域に対する推論の処理を削減できる。つまり、物体推論部20は、推論に必要となる処理の効率を改善できる。
【0147】
なお、物体推論部20は、Packed画像の生成において、一次推論において検出対象物体の領域として推論された画像領域のなかで、重複している画像領域、及び/又は、所定の距離より近接して画像領域を、まとめて一つの画像領域としてもよい。このように重複及び/又は近接する画像領域をまとめると、物体推論部20は、二次推論において、同じ物体を重複して推論する可能性、及び/又は、物体を見落す可能性を低減できる。
【0148】
あるいは、物体推論部20は、集約画像に基づいて画像をPacked画像に複製するときに、複製する画像の大きさを変更してもよい。
【0149】
Packed画像に複製する画像領域を小さくする場合、画像領域の複製として必要な面積が減る。そのため、生成するPacked画像の枚数は、少なくなる。その結果、物体推論部20は、Packed画像を用いる推論(二次推論)の時間を短縮できる可能性がある。
【0150】
一方、Packed画像に複製する画像領域を大きくする場合、物体推論部20は、二次推論の認識精度を改善できる可能性がある。
【0151】
そこで、例えば、オペレータが、予め、検出対象物体を考慮して、複製する画像の大きさの変更内容を物体推論部20に設定してもよい。
【0152】
あるいは、物体推論部20が、画像領域の大きさの変更を決定してもよい。
【0153】
例えば、物体推論部20が、画像領域の大きさに基づいて、画像領域の大きさを変更するか否かを決定してもよい。
【0154】
例えば、物体推論部20は、予め指定された大きさの範囲に入らない画像領域の大きさを、指定された大きさに変更してもよい。つまり、物体推論部20は、画像領域の大きさを所定の範囲に収めるように変更してもよい。
【0155】
あるいは、物体推論部20は、一次推論の結果(例えば、BBの画像内の位置、BBのサイズ、物体のクラス、又は、confidence)を用いて、画像領域の大きさを変更するか否か、及び、変更後の大きさを決定してもよい。
【0156】
情報処理装置1は、推論対象画像、集約画像、及び、Packed画像の一部又は全ての画像において、異なる画像サイズを用いてもよい。例えば、情報処理装置1のオペレータが、情報処理装置1の処理性能、処理実行に用いられるハードウェア上での実行効率、及び、希望の計算精度などに基づいて、それぞれの画像サイズを選択してもよい。
【0157】
[動作の説明]
次に、第1の実施形態にかかる情報処理装置1における動作の一例を、図面を用いて説明する。
【0158】
(A)学習済モデルの生成の動作
図7は、第1の実施形態にかかる情報処理装置1における機械学習の動作の一例を示すフロー図である。
【0159】
なお、動作に先立ち、教師データ保存部40は、オリジナルデータを保存している。また、モデル保存部60は、学習前モデルを保存している。
【0160】
情報処理装置1は、所定の条件を契機に、機械学習の動作(学習済モデルの生成)を開始する。
【0161】
例えば、情報処理装置1は、情報処理装置1のオペレータからの指示を契機に、機械学習の動作を開始する。この場合、情報処理装置1は、指示に合わせて、オペレータから学習済モデルの生成に必要な情報(例えば、パラメタ)を受信してもよい。パラメタは、モデルに対応して、適宜、決定される。パラメタは、例えば、学習用に用いるオリジナルデータの指定、又は、機械学習に関連する値である。
【0162】
なお、情報処理装置1は、学習済モデルの生成に必要なパラメタに加え、他の情報を受信してもよい。例えば、情報処理装置1は、オペレータから、オリジナルデータを受け取ってもよい。この場合、情報処理装置1は、受信したオリジナルデータを、教師データ保存部40に保存してから、動作を開始してもよい。
【0163】
教師データ生成部30は、学習用集約データを生成する(ステップS100)。詳細には、教師データ生成部30は、次のように動作する。
【0164】
教師データ生成部30は、教師データ保存部40からオリジナルデータを取得する。そして、教師データ生成部30は、データ集約部10にオリジナルデータを提供して、オリジナルデータから集約データを生成させる。生成された集約データが、学習用集約データである。
【0165】
教師データ生成部30は、学習用集約データに、機械学習に必要な情報(例えば、正解データを示す正解ラベル)を加えてもよい。
【0166】
教師データ生成部30は、生成した学習用集約データを教師データ保存部40に保存する。
【0167】
モデル学習部50は、教師データ保存部40から学習用集約データを取得する。そして、モデル学習部50は、取得した学習用集約データを用いて、モデル保存部60に保存されている学習前モデルの機械学習を実行して、物体推論部20が一次推論に用いる学習済モデルを生成する(ステップS101)。そして、モデル学習部50は、生成した学習済モデルをモデル保存部60に保存する。
【0168】
次に、教師データ生成部30は、学習用詰め込みデータを生成する(ステップS102)。詳細には、教師データ生成部30は、次のように動作する。
【0169】
教師データ生成部30は、教師データ保存部40から学習用集約データを取得する。そして、教師データ生成部30は、物体推論部20に、学習用集約データを提供して、詰め込みデータを生成させる。生成された詰め込みデータが、学習用詰め込みデータである。
【0170】
教師データ生成部30は、学習用詰め込みデータに、機械学習に必要な情報(例えば、正解データを示す正解ラベル)を加えてもよい。
【0171】
教師データ生成部30は、生成した学習用詰め込みデータを、教師データ保存部40に保存する。
【0172】
モデル学習部50は、教師データ保存部40から学習用詰め込みデータを取得する。そして、モデル学習部50は、学習用詰め込みデータを用いて、モデル保存部60に保存されている学習前モデルの機械学習を実行して、物体推論部20が二次推論に用いる学習済モデルを生成する(ステップS103)。そして、モデル学習部50は、生成した学習済モデルをモデル保存部60に保存する。
【0173】
なお、モデル学習部50は、ステップS101とS103とにおいて、異なる学習前モデルを用いてもよい。あるいは、モデル学習部50は、ステップS101とS103において、同じ学習前モデルを用いて学習を実行してもよい。
【0174】
あるいは、物体推論部20が、集約データの推論と、詰め込みデータの推論とに同じ学習済モデルを使用する場合、モデル学習部50は、ステップS103において、学習前モデルに替えて、ステップS101において生成した学習済モデルを用いてもよい。
【0175】
なお、教師データ生成部30が、学習用集約データ及び学習用詰め込みデータを、モデル学習部50に出力してもよい。
【0176】
あるいは、教師データ生成部30及びモデル学習部50は、別々に動作してもよい。この場合の動作を説明する。
【0177】
教師データ生成部30は、所定のデータ(オリジナルデータ)をデータ集約部10に適用して学習用集約データを生成する(ステップS100)。続いて、教師データ生成部30は、生成した学習用集約データを物体推論部20に適用して学習用詰め込みデータを生成する(ステップS102)。そして、教師データ生成部30は、生成した学習用集約データと学習用詰め込みデータとを教師データ保存部40に保存する。
【0178】
そして、所定の時点において、モデル学習部50は、保存された学習用集約データを用いて、集約データを適用する学習済モデルを生成する(ステップS101)。さらに、モデル学習部50は、保存された学習用詰め込みデータを用いて、詰め込みデータを適用する学習済モデルを生成する(ステップS103)。そして、モデル学習部50は、生成した学習済みモデルをモデル保存部60に保存する。
【0179】
このような動作を用いて、情報処理装置1は、学習済モデルを生成する。
【0180】
情報処理装置1は、ステップS103の終了後の、所定の動作を実行してもよい。例えば、情報処理装置1は、学習済モデルの生成の終了をオペレータに通知してもよい。
【0181】
(B)推論の動作
次に、図面を用いて、情報処理装置1が、データ取得部70が取得した推論対象データを用いて検出対象物体を推論する動作について説明する。
【0182】
図8は、第1の実施形態にかかる情報処理装置1における推論の動作の一例を示すフロー図である。
【0183】
なお、モデル保存部60は、学習済モデルを保存している。
【0184】
モデル保存部60が学習済モデルを保存していない場合、情報処理装置1は、上記の「(A)学習済モデルの生成の動作」を実行して学習済モデルを生成してから、推論の動作を開始してもよい。
【0185】
情報処理装置1は、所定の条件を契機に、推論の動作を開始する。
【0186】
例えば、情報処理装置1は、情報処理装置1のオペレータからの指示を契機に、推論の動作を開始する。あるいは、情報処理装置1は、装置起動後に自動的に推論の動作を開始してもよい。
【0187】
情報処理装置1は、動作の開始において、動作に関連するパラメタ(例えば、モデル保存部60が複数の学習済モデルを保存する場合、推論に使用する学習済モデルの指定)をオペレータから受信してもよい。あるいは、情報処理装置1は、予め与えられたパラメタ(例えば、学習済モデルの指定)を使用してもよい。
【0188】
なお、物体推論部20は、一次推論と、二次推論とにおいて、異なる学習済モデルを使用してもよい。あるいは、物体推論部20は、同じ学習済モデルを使用してよい。
【0189】
情報処理装置1は、オペレータから指示された所定の条件を満足するまで、図8の動作を繰り返す。所定の条件は、例えば、オペレータからの終了指示の受信である。ただし、所定の条件は、上記に限定されず、任意である。例えば、オペレータが、予め、推論対象データと、検出対象物体と、学習済モデルとをして考慮して条件を決定し、決定した条件を情報処理装置1に設定する。
【0190】
データ取得部70は、推論対象データを取得する(ステップS113)。例えば、データ取得部70は、所定の枚数の画像を取得する。
【0191】
データ集約部10は、推論対象データに基づいて、集約データを生成する(ステップS114)。データ集約部10は、一つの集約データを生成してもよく、複数の集約データを生成してもよい。
【0192】
物体推論部20は、生成された集約データを用いて、一次推論を実行する(ステップS115)。
【0193】
物体推論部20は、一次推論の結果に基づいて、集約データ又は推論対象データから、詰め込みデータを生成する(ステップS116)。具体的には、物体推論部20は、集約データおいて推論された検出対象物体の領域(例えば、BB)に対応する、集約データの領域、又は、推論対象データの領域を複製した詰め込みデータを生成する。
【0194】
なお、物体推論部20は、一次推論の結果において、一部が重なっている領域、及び/又は、位置が近い領域を一つにまとめて、詰め込みデータを生成してもよい。
【0195】
物体推論部20は、生成された詰め込みデータに対し二次推論を実行する(ステップS117)。
【0196】
物体推論部20は、二次推論の結果、並びに、第1及び第2の対応関係(例えば、第1及び第2の座標変換)に基づいて、推論対象データにおける検出対象物体の推論する(ステップS118)。
【0197】
情報処理装置1は、所定の条件を満足するまで、図8を参照して説明した動作を繰り返して、推論対象データに対する推論を実行する。
【0198】
そして、情報処理装置1は、推論の結果を所定の装置に出力する。
【0199】
なお、情報処理装置1は、上記のような所定の条件を満足するまで繰り返すループ動作ではなく、所定の周期で、ステップS113からS118の動作を繰り返し実行してもよい。
【0200】
[効果の説明]
次に、第1の実施形態の効果について説明する。
【0201】
第1の実施形態にかかる情報処理装置1は、検出対象物体の推論の時間を短縮するとの効果を奏することができる。
【0202】
その理由は、次のとおりである。
【0203】
情報処理装置1は、データ集約部10と、物体推論部20とを含む。データ集約部10は、少なくとも一部のデータが検出対象物体を含む複数のデータである推論対象データに基づいて、推論対象データに含まれるデータの数より少ない数のデータである集約データを生成する。物体推論部20は、一次推論として、集約データを学習済モデルに適用して集約データにおける検出対象物体の領域である第1の領域を推論する。そして、物体推論部20は、第1の領域の複製又は第1の領域に対応する推論対象データの領域の複製を詰め込んだデータである詰め込みデータを生成する。そして、物体推論部20は、二次推論として詰め込みデータを学習済モデルに適用して詰め込みデータに含まれる検出対象物体の領域である第2の領域を推論する。そして、物体推論部20は、第2の領域に基づいて推論対象データにおける検出対象物体を推論する。
【0204】
推論対象データは、少なくとも一部が検出対象物体を含む複数のデータである。データ集約部10は、推論対象データに基づいて、推論対象データよりデータの数が少ない集約データを生成する。そして、物体推論部20は、一次推論として、集約データにおける検出対象物体の領域を推論する。
【0205】
集約データは、推論対象データよりデータの数が少ない。つまり、物体推論部20は、一次推論において、推論対象データに含まれるデータの数より少ない数のデータである集約データを用いた推論を実行する。
【0206】
さらに、物体推論部20は、一次推論の結果に基づいて、集約データにおいて検出対象物体を含む領域に対応するデータを詰め込んだ詰め込みデータを生成する。そして、物体推論部20は、二次推論として、詰め込みデータにおける検出対象物体の領域を推論する。そして、物体推論部20は、詰め込みデータにおける推論の結果に基づいて、推論対象データにおける検出対象物体を含む領域を推論する。
【0207】
一般的に、検出対象物体を含む領域は、推論対象データの一部である。そして、詰め込みデータは、検出対象物体の領域の複製を詰め込んで生成されたデータである。例えば、推論対象データの領域を用いて詰め込みデータを生成した場合、詰め込みデータの数は、推論対象データの数より少ない。
【0208】
このように、情報処理装置1は、一次推論及び二次推論として、推論対象データより少ない数のデータを用いて推論するため、推論に掛かる時間を短縮できる。
【0209】
時間を短縮について、画像を用いて、説明する。なお、画像の集約などの推論以外の処理は、推論(特に、学習済モデルの用いる推論)の処理に比べ計算の負荷がかなり小さい。そのため、以下の説明ではこれらの処理の時間を省略し、学習済モデルを用いる推論の回数を用いて推論の負荷を説明する。
【0210】
一般的な物体検出タスクでは、推論対象画像に含まれる画像の枚数が、推論の実行回数である。
【0211】
一方、情報処理装置1における推論の実行回数は、一次推論の実行回数と二次推論の実行回数との合計である。
【0212】
一次推論の実行回数は、集約画像の枚数と同じである。そして、集約画像の枚数は、推論対象画像の枚数より少ない。つまり、一次推論の実行回数は、推論対象画像に含まれる画像の枚数より少ない。
【0213】
また、二次推論の実行回数は、Packed画像の枚数と同じである。Packed画像の枚数は、一次推論において推論された検出対象物体の数及び大きさに依存する。しかし、一般的に、検出対象物体が推論対象画像及び集約画像に占める面積の割合は、かなり小さい場合が多い。そのため、Packed画像の枚数(すなわち、二次推論の実行回数)は、推論対象画像に含まれる画像の枚数、及び、集約画像の枚数より、かなり少ないことが期待される。
【0214】
そのため、情報処理装置1における推論の実行回数、つまり、「集約画像の枚数+Packed画像の枚数」は、「推論対象画像の枚数」より、かなり少なくなる場合が多い。
【0215】
そのため、情報処理装置1は、推論対象画像を個別に推論する場合の推論の実行回数より、推論の実行回数を減らすことができる。その結果として、情報処理装置1は、推論の時間を短縮できる。
【0216】
なお、集約データの領域を用いて詰め込みデータに生成した場合、詰め込みデータの数は、集約データの数より少ない。そして、集約データの数は、推論対象データの数より少ない。そのため、この場合、情報処理装置1は、二次推論に掛かる時間をさらに短縮できる。
【0217】
また、詰め込みデータは、検出対象物体を含むと推論された領域を詰め込んだデータである。そのため、物体推論部20における二次推論は、検出対象物体を含まない領域に対する推論の比率が低くなる。そのため、情報処理装置1は、推論の効率を改善できる。
【0218】
なお、監視カメラの画像における物体検出の時間の短縮の方法として、監視カメラ又は監視カメラの周辺の機器が、推論を実行する方法(すなわち、エッジ環境での処理)が考えられる。
【0219】
しかし、監視カメラが設置されるようなエッジ環境は、設置に関する制限が多い。例えば、エッジ環境では、高性能な装置を設置できる場所を確保できない場合がある。あるいは、エッジ環境では、供給可能な電力、及び、冷却能力などが制約される場合が多い。このように、エッジ環境に設置可能な装置は、利用可能な計算リソースが制限される場合が多い。そのため、エッジ環境で物体検出タスクを実行する場合、処理に多くの時間が必要となる。そこで、エッジ環境において物体検出タスクを実行するために、処理の時間の短縮が望まれている。
【0220】
情報処理装置1は、上記の動作に基づいて推論の時間を短縮できるため、エッジ環境のようなリソースが制限される環境において、利用可能である。
【0221】
さらに、情報処理装置1は、モデル学習部50を含む。モデル学習部50は、教師データを所定のモデル(学習前モデル)に適用して、学習済モデルを生成する。
【0222】
情報処理装置1は、上記構成を用いて、他の装置を用いなくても、推論に用いる学習済モデルを生成できる。
【0223】
さらに、情報処理装置1は、教師データ生成部30を含む。教師データ生成部30は、所定のデータ(オリジナルデータ)をデータ集約部10に適用して学習用集約データを生成する。さらに、教師データ生成部30は、生成した学習用集約データを物体推論部20に適用して学習用詰め込みデータを生成する。そして、モデル学習部50は、生成された学習用集約データを用いて、集約データを適用する学習済モデルを生成する。さらに、モデル学習部50は、生成された学習用詰め込みデータを用いて、詰め込みデータを適用する学習済モデルを生成する。
【0224】
情報処理装置1は、上記の構成を用いて、推論に用いる学習済モデル用の教師データを生成して、生成した教師データを用いて学習済モデルを生成できる。
【0225】
[ハードウェア構成]
上記の説明では、データ集約部10、物体推論部20、教師データ生成部30、教師データ保存部40、モデル学習部50、モデル保存部60、及び、データ取得部70、が同じ装置(情報処理装置1)に含まれる例を用いて説明した。しかし、第1の実施形態の構成は、これに限定されない。
【0226】
例えば、情報処理装置1は、各構成に相当する機能を備えた装置を、所定のネットワークを介して接続して、構成されてもよい。例えば、情報処理装置1は、クラウドコンピューティングを用いて実現されてもよい。
【0227】
あるいは、情報処理装置1の各構成部は、個別のハードウェア回路で構成されてもよい。
【0228】
あるいは、情報処理装置1において、複数の構成部が、1つのハードウェアで構成されてもよい。
【0229】
あるいは、情報処理装置1は、CPUと、ROM(Read Only Memory)と、RAM(Random Access Memory)とを含むコンピュータ装置として実現されてもよい。情報処理装置1は、上記構成に加え、さらに、ネットワークインターフェース回路(NIC:Network Interface Circuit)を含むコンピュータ装置として実現されてもよい。あるいは、情報処理装置1は、学習及び推論の一部又は全部の計算処理を実行する算術演算ユニット(ALU:Arithmetic Logic Unit)をさらに含むコンピュータ装置として実現されてもよい。
【0230】
図9は、情報処理装置1のハードウェア構成の一例を示すブロック図である。
【0231】
情報処理装置1は、CPU610と、ALU611と、ROM620と、RAM630と、記憶装置640と、NIC650とを含み、コンピュータ装置を構成している。ただし、情報処理装置1は、ALU611を含まなくてもよい。
【0232】
CPU610は、ROM620及び/又は記憶装置640からプログラムを読み込む。そして、CPU610は、読み込んだプログラムに基づいて、ALU611と、RAM630と、記憶装置640と、NIC650とを制御する。そして、CPU610を含むコンピュータ装置は、これらの構成を制御し、図1に示されている各構成要素の機能を実現する。なお、図1に示されている構成要素とは、データ集約部10と、物体推論部20と、教師データ生成部30と、教師データ保存部40と、モデル学習部50と、モデル保存部60と、データ取得部70とである。
【0233】
CPU610は、各機能を実現する際に、RAM630又は記憶装置640を、プログラム及びデータの一時記憶媒体として使用してもよい。
【0234】
また、CPU610は、コンピュータで読み取り可能にプログラムを保存した記録媒体690が含むプログラムを、図示しない記録体読み取り装置を用いて読み込んでもよい。あるいは、CPU610は、NIC650を介して、図示しない外部の装置からプログラムを受け取り、RAM630又は記憶装置640に保存して、保存したプログラムを基に動作してもよい。
【0235】
ALU611は、所定の計算処理、及び、CPU610における所定の処理の一部を担当する。例えば、ALU611は、CPU610に制御されて、学習及び推論の一部又は全ての計算処理を実行する。例えば、ALU611は、GPU(Graphics Processing Unit)、又は、FPGA(Field-Programmable Gate Array)である。あるいは、ALU611は、例えば、ASIC(Applicaton Specific Integrated Circuit)でもよい。ALU611における演算の実行に必要な情報(データ、プログラム、及び、回路情報等)は、予め、ROM620、RAM630、又は、記憶装置640に保存されている。
【0236】
ROM620は、CPU610が実行するプログラム及び固定的なデータを保存する。ROM620は、例えば、P-ROM(Programmable-ROM)又はフラッシュROMである。
【0237】
RAM630は、CPU610が実行するプログラム及びデータを一時的に保存する。RAM630は、例えば、D-RAM(Dynamic-RAM)である。
【0238】
記憶装置640は、情報処理装置1が長期的に保存するデータ及びプログラムを保存する。記憶装置640は、教師データ保存部40として動作する。また、記憶装置640は、モデル保存部60として動作する。なお、記憶装置640は、CPU610の一時記憶装置として動作してもよい。記憶装置640は、例えば、ハードディスク装置、光磁気ディスク装置、SSD(Solid State Drive)又はディスクアレイ装置である。
【0239】
ROM620と記憶装置640とは、不揮発性(non-transitory)の記録媒体である。一方、RAM630は、揮発性(transitory)の記録媒体である。そして、CPU610は、ROM620、記憶装置640、又は、RAM630に記録されているプログラムを基に動作可能である。つまり、CPU610は、不揮発性記録媒体又は揮発性記録媒体を用いて動作可能である。
【0240】
NIC650は、ネットワークを介した図示しない外部の装置とのデータのやり取りを中継する。例えば、NIC650は、推論対象データを取得する。あるいは、NIC650は、推論の結果を出力する。NIC650は、例えば、LAN(Local Area Network)カードである。さらに、NIC650は、有線に限らず、無線を用いてもよい。
【0241】
このように構成された情報処理装置1は、図1の情報処理装置1と同様の効果を得ることができる。
【0242】
その理由は、情報処理装置1のCPU610が、プログラムに基づいて、図1の情報処理装置1と同様の機能を実現できるためである。あるいは、情報処理装置1のCPU610及びALU611が、プログラムに基づいて、図1の情報処理装置1と同様の機能を実現できるためである。
【0243】
[システム]
次に、図面を参照して、情報処理装置1を含む情報処理システム400を説明する。
【0244】
図10は、情報処理装置1を含む情報処理システム400の構成の一例を示すブロック図である。
【0245】
情報処理システム400は、情報処理装置1と、入力装置200と、表示装置300とを含む。情報処理システム400は、それぞれの装置として、複数の装置を含んでもよい。例えば、情報処理システム400は、複数の入力装置200を含んでもよい。
【0246】
入力装置200は、情報処理装置1に、推論対象データを出力する。なお、入力装置200は、情報処理装置1に、教師データの生成するためのオリジナルデータを出力してもよい。
【0247】
入力装置200は、例えば、監視用のカメラである。この場合、入力装置200は、推論対象データとして、撮影した画像を情報処理装置1に出力する。
【0248】
情報処理装置1は、入力装置200から取得した推論対象データにおける検出対象物体を推論し、推論結果(例えば、BB、クラス、及び、確実性(confidence))を表示装置300に出力する。
【0249】
表示装置300は、情報処理装置1から受信した情報(例えば、検出対象物体の推論の結果)を表示する。
【0250】
表示装置300は、例えば、監視システムの液晶ディスプレイである。この場合、表示装置300は、情報処理装置1から受信した検出対象物体の推論結果を表示する。
【0251】
オペレータは、表示装置300に表示を参照して、検出対象物体を確認できる。
【0252】
<第2の実施形態>
一般的に、検出対象物体が推論対象画像に占める面積の割合は、かなり小さい場合が多い。しかし、情報処理装置1は、検出対象物体の占める割合が大きい推論対象画像を受信する場合もある。
【0253】
このような場合は、第1の実施形態において説明した推論の動作より、推論対象画像をそれぞれ推論した動作の方が、推論に必要となる処理の時間が短い。
【0254】
そこで、第2の実施形態にかかる情報処理装置1Bは、集約データを用いた一次推論及び詰め込みデータを用いた二次推論(以下、「二段階推論」と呼ぶ)の負荷と、推論対象データを集約しない推論(以下、「一段階推論」と呼ぶ)の負荷とを判定する。具体的には、情報処理装置1Bは、推論対象データを用いた推論の負荷に関連する情報を用いて、それぞれの負荷を判定する。そして、情報処理装置1Bは、判定の結果に基づいて、二段階推論と、一段階推論とのどちらを用いるかを決定する。そして、情報処理装置1Bは、決定した推論を用いて、推論対象データにおける検出対象物体を推論する。
【0255】
なお、一段階推論は、任意である。オペレータが、検出対象物体と推論対象データとを考慮して、一段階推論として、適切な推論を選択すればよい。例えば、一段階推論は、一般的な物体検出タスクでもよい。なお、一段階推論に用いられる推論は、一次推論又は二次推論のどちらかに用いられる推論と同じ推論でもよい。つまり、一段階推論に用いられる推論は、二段階推論に用いられる推論と同じでもよい。
【0256】
以下、図面を参照して、第2の実施形態について説明する。なお、第2の実施形態の説明において参照する各図面において、第1の実施形態と同様の構成及び動作には同一の符号を付して、その詳細な説明を省略する場合がある。
【0257】
[構成の説明]
まず、第2の実施形態にかかる情報処理装置1Bの構成について、図面を用いて説明する。なお、情報処理装置1Bは、第1の実施形態と同様に、図9に示したようなコンピュータ装置を用いて構成されてもよい。また、情報処理システム400は、情報処理装置1に替えて、情報処理装置1Bを含んでもよい。
【0258】
図11は、第2の実施形態にかかる情報処理装置1Bの構成の一例を示すブロック図である。
【0259】
情報処理装置1Bは、データ集約部10と、物体推論部20Bと、教師データ生成部30と、教師データ保存部40と、モデル学習部50Bと、モデル保存部60と、データ取得部70とを含む。
【0260】
情報処理装置1Bは、物体推論部20B及びモデル学習部50Bを除いて、第1の実施形態の情報処理装置1と同様の構成要素を含む。そのため、第1の実施形態と同様の構成の説明を省略し、第2の実施形態に特有の構成について説明する。
【0261】
モデル学習部50Bは、第1の実施形態のモデル学習部50と同様に、二段階推論(一次推論及び二次推論)において用いられる学習済モデルを生成する。
【0262】
さらに、モデル学習部50Bは、一段階推論に用いる学習済モデルを生成する。
【0263】
一段階推論に用いる学習済モデルの生成手法は、任意である。例えば、モデル学習部50Bは、二段階推論に用いる学習済モデルの生成と同様に、一段階推論に用いる学習済モデルを生成してもよい。
【0264】
例えば、教師データ保存部40が、予め、一段階推論に用いるモデルの学習用の教師データを保存する。さらに、モデル保存部60が、一段階推論用の学習前モデルを保存する。そして、モデル学習部50Bが、保存されている教師データを学習前モデルに適用して、一段階推論用の学習済モデルを生成する。そして、モデル学習部50Bは、生成した一段階推論用の学習済モデルを、モデル保存部60に保存する。
【0265】
情報処理装置1Bは、一段階推論に用いる学習済モデルとして、二段階推論に用いる学習済モデルを使用してもよい。この場合、情報処理装置1Bは、モデル学習部50Bに替えて、モデル学習部50を含んでもよい。
【0266】
あるいは、情報処理装置1Bは、図示しない装置から、一段階推論に用いる学習済モデルを取得してもよい。この場合、情報処理装置1Bは、モデル学習部50Bに替えて、モデル学習部50を含んでもよい。
【0267】
物体推論部20Bは、まず、最初の推論では、第1の実施形態の物体推論部20と同様に、データ集約部10が生成した集約データを取得し、二段階推論(一次推論及び二次推論)を実行し、推論対象データに対する、推論の結果を生成する。
【0268】
そして、物体推論部20Bは、推論の負荷に関連する情報を保存する。物体推論部20Bは、以降の推論においても、履歴として、推論の負荷に関連する情報を保存する。
【0269】
物体推論部20Bが履歴として保存する推論の負荷に関連する情報は、任意である。
【0270】
推論の負荷に関連する情報の一例を説明する。
【0271】
例えば、推論対象データに含まれる検出対象物体の領域が少ない場合、二段階推論において、詰め込みデータの数は、少なくなる。その結果、二次推論の実行回数が減る。つまり、この場合、二段階推論を用いた方が、一段階推論を用いるより、推論の時間が短くなる。
【0272】
一方、推論対象データに含まれる検出対象物体の領域が多い場合、詰め込みデータの数は、多くなる。その結果、二次推論の実行回数は、多くなる。二次推論の実行回数がかなり多い場合、一段階推論を用いた方が、二段階推論を用いるより、推論の時間が短くなる。
【0273】
このように、推論に用いられるデータの数は、推論(学習済モデルを用いる推論)の実行回数となる。そして、推論の負荷(推論時間)は、概ね推論の実行回数に比例する。
【0274】
そして、二段階推論における推論の実行回数は、「集約データの数+詰め込みデータの数」である。一方、一段階推論における推論の実行回数は、「推論対象データの数」である。
【0275】
そこで、物体推論部20Bは、推論の負荷に関連する情報として、データ取得部70が取得した推論対象データの数、データ集約部10において生成された集約データの数、及び、生成した詰め込みデータの数を保存してもよい。
【0276】
そして、物体推論部20Bは、2回目以降の推論において、推論の負荷に関連する情報の履歴を用いて、二段階推論と、一段階推論とのどちらを用いるかを決定する。
【0277】
物体推論部20Bにおける推論の選択について、さらに詳細に説明する。
【0278】
物体推論部20Bは、履歴として保存されている推論の負荷に関連する情報に基づいて、次の推論において、一段階推論の推論時間が、二段階推論の推論時間より短いか否かの可能性を判定する。
【0279】
一段階推論の推論時間が二段階推論の推論時間より短い可能性が高い場合、物体推論部20Bは、一段階推論を使用する。一方、一段階推論の推論時間が二段階推論の推論時間より短い可能性が低い場合、物体推論部20Bは、二段階推論を使用する。このような動作に基づいて、物体推論部20Bは、常に二段階推論を用いる場合に比べ、推論の時間をさらに短縮させる。
【0280】
例えば、物体推論部20は、「推論対象データの数」と、「集約データの数+詰め込みデータの数」とを比較して、どちらの推論を用いるか決定する。より具体的には、例えば、「推論対象データの数」が「集約データの数+詰め込みデータの数」より多い場合、物体推論部20は、二段階推論を選択する。
【0281】
ただし、物体推論部20Bが負荷の判定として用いる履歴の情報は、任意である。例えば、物体推論部20は、履歴における最も新しい負荷に関連する情報から所定数の情報を用いてもよい。この場合、物体推論部20は、負荷の判定として用いる値として、選択した情報の含まれる負荷の平均値、又は、移動平均値を用いてもよい。例えば、物体推論部20は、詰め込みデータの数として、直近から所定数の情報に含まれる詰め込みデータの数の平均値を用いてもよい。
【0282】
さらに、物体推論部20Bは、負荷の比較において、所定のオフセット値(又は、バイアス値)を用いてもよい。あるいは、物体推論部20Bは、比較する値として、所定のヒステリシスを用いて算出した値を用いてもよい。
【0283】
物体推論部20Bは、推論の選択に、データ集約部10が集約に用いた推論対象データに含まれるデータに関連する情報(例えば、画像の解像度、又は、撮影条件)を用いてもよい。
【0284】
あるいは、物体推論部20Bは、それぞれの推論の処理時間を計測して保存し、保存した処理時間に所定の処理(例えば、過去の処理時間の平均)を用いて算出した値を用いて、推論を選択してもよい。
【0285】
そして、物体推論部20Bは、決定した推論を用いて、検出対象物体を推論する。
【0286】
二段階推論が選択された場合、物体推論部20Bは、物体推論部20と同様に、二段階推論を実行する。
【0287】
一段階推論が選択され場合、物体推論部20Bは、データ取得部70から推論対象データを取得し、一段階推論を実行する。
【0288】
なお、物体推論部20Bは、データ集約部10がデータを集約する前に、推論を選択してもよい。そして、一段階推論が選択された場合、情報処理装置1Bは、データ集約部10の動作を省略してもよい。このように動作すると、一段階推論が選択された場合、情報処理装置1Bは、推論に使用しない集約データの生成のため時間を削減できる。
【0289】
なお、一段階推論が選択された場合、情報処理装置1Bは、二段階推論を実行しない。つまり、一段階推論が選択されると、情報処理装置1Bは、「集約データの数」及び「詰め込みデータの数」の履歴(負荷を判定する情報)を更新しない。そのため、推論対象データに含まれる検出対象物体の比率などが変化して、二段階推論の負荷が、一段階推論より低くなっても、一段階推論が選択される可能性がある。
【0290】
そこで、負荷に関連する情報の更新が止まる場合(例えば、一段階推論が連続的に選択された場合)、情報処理装置1Bは、一段階推論を所定回数実行すると、二段階推論を実行して負荷に関連する情報の履歴を更新するように動作してもよい。
【0291】
[動作の説明]
次に、第2の実施形態にかかる情報処理装置1Bの動作を説明する。
【0292】
(A)学習済モデル生成の動作
第2の実施形態にかかる情報処理装置1Bは、第1の実施形態にかかる情報処理装置1と同様に、一次推論に用いる学習済モデルと、二次推論に用いる学習済みモデルを生成して、モデル保存部60に保存する。
【0293】
さらに、第2の実施形態にかかる情報処理装置1Bは、一段階推論に用いる学習済モデルを生成する。そして、情報処理装置1Bは、生成した学習済モデルをモデル保存部60に保存する。
【0294】
(B)推論の動作
次に、図面を用いて、情報処理装置1Bが、データ取得部70が取得した推論対象データを用いて推論する動作について説明する。
【0295】
図12は、第1の実施形態にかかる情報処理装置1Bにおける推論の動作の一例を示すフロー図である。
【0296】
なお、モデル保存部60は、学習済モデルを保存している。
【0297】
モデル保存部60が学習済モデルを保存していない場合、情報処理装置1Bは、上記の「(A)学習済モデルの生成の動作」を実行して学習済モデルを生成してから、推論の動作を開始してもよい。
【0298】
情報処理装置1Bは、所定の条件を契機に、推論の動作を開始する。
【0299】
例えば、情報処理装置1Bは、情報処理装置1Bのオペレータからの指示を契機に、推論の動作を開始する。あるいは、情報処理装置1Bは、装置起動後に自動的に推論の動作を開始してもよい。
【0300】
情報処理装置1Bは、動作の開始において、動作に関連するパラメタ(例えば、モデル保存部60が複数の学習済モデルを保存する場合、使用する学習済モデルの指定)をオペレータから受信してもよい。あるいは、情報処理装置1Bは、予め与えられたパラメタを使用してもよい。
【0301】
物体推論部20Bは、一次推論と、二次推論と、一段階推論とで異なる学習済モデルを用いてもよい。あるいは、物体推論部20Bは、全ての推論において、同じ学習済モデルを用いてもよい。
【0302】
情報処理装置1Bは、オペレータから指示された所定の条件を満足するまで、図12の動作を繰り返す。所定の条件は、第1の実施形態と同様である。
【0303】
データ取得部70は、推論対象データを取得する(ステップS113)。例えば、データ取得部70は、所定の枚数の画像を取得する。
【0304】
データ集約部10は、推論対象データに基づいて、集約データを生成する(ステップS114)。データ集約部10は、一枚の集約データを生成してもよく、複数の集約データを生成してもよい。
【0305】
物体推論部20Bは、初回の推論か否かを判定する(ステップS121)。
【0306】
初回の推論の場合(ステップS121でYes)、物体推論部20Bは、二段階推論(ステップS124)に進む。
【0307】
初回の推論でない場合(ステップS121でNo)、物体推論部20Bは、推論の負荷の履歴に基づいて、推論を選択する(ステップS122)。より詳細には、物体推論部20Bは、二段階推論の負荷と、一段階推論の負荷とに基づいて、推論を選択する。
【0308】
一段階推論が選択された場合(ステップS122で一段階推論)、物体推論部20Bは、一段階推論を実行する(ステップS123)。
【0309】
例えば、情報処理装置1Bは、ステップS123の動作として、予め決められた一段階推論(例えば、一般的な物体検出タスク)の動作を実行すればよい。
【0310】
二段階推論が選択された場合(ステップS121でYes、又は、ステップS122で二段階推論)、物体推論部20Bは、二段階推論を実行する(ステップS124)。そして、物体推論部20Bは、履歴として、推論の負荷に関連する情報を保存する。
【0311】
なお、物体推論部20Bは、ステップS124の二段階推論として、推論の負荷に関連する情報を保存することを除き、図8のステップS115からS118と同様の動作を実行すればよい。
【0312】
上記の動作を繰り返して、情報処理装置1Bは、データ取得部70が取得した推論対象データにおける検出対象物体を推論する。
【0313】
なお、情報処理装置1Bは、上記のような所定の条件を満足するまで繰り返すループ動作ではなく、所定の周期で、上記動作を繰り返し実行してもよい。
【0314】
なお、情報処理装置1Bは、ステップS114の動作を、ステップS124の前に実行してもよい。言い換えると、情報処理装置1Bは、二段階推論を実行する場合に、集約データを生成してもよい。
【0315】
[効果の説明]
次に、第2の実施形態の効果について説明する。
【0316】
第2の実施形態は、第1の実施形態の効果に加え、さらに、推論の時間を短縮するという効果を得ることができる。
【0317】
その理由は、次の通りである。
【0318】
物体推論部20Bは、一次推論及び二次推論を用いる二段階推論の負荷と、推論対象データを集約しない推論である一段階推論の負荷とに基づいて、二段階推論と一段階推論とのどちらかを選択する。そして、物体推論部20Bは、選択した推論を用いて推論対象データにおける検出対象物体を推論する。
【0319】
このように、物体推論部20Bが、推論の負荷に基づいて、使用する推論を選択するためである。
【0320】
その結果、物体推論部20Bは、推論の時間をさらに短縮できる。
【0321】
さらに、情報処理装置1Bは、モデル学習部50Bを含む。モデル学習部50Bは、所定のデータと、所定のモデルとを用いて、一段階推論に用いる学習済モデルを生成する。
【0322】
そのため、情報処理装置1Bは、一段階推論にも、適切に学習された学習済モデルを使用できる。
【0323】
<第3の実施形態>
なお、情報処理装置1及び1Bは、他の装置から学習済モデルを取得してもよい。さらに、情報処理装置1及び1Bは、推論に用いる学習済モデルとして、外部の装置の保存された学習済モデルを用いてもよい。
【0324】
図13は、第3の実施形態にかかる情報処理装置1Cの構成の一例を示すブロック図である。
【0325】
情報処理装置1Cは、データ集約部10と、物体推論部20とを含む。データ集約部10は、少なくとも一部のデータが検出対象物体を含む複数のデータである推論対象データに基づいて、推論対象データに含まれるデータの数より少ない数のデータである集約データを生成する。物体推論部20は、一次推論として、集約データを学習済モデルに適用して集約データにおける検出対象物体の領域である第1の領域を推論する。そして、物体推論部20は、第1の領域の複製又は第1の領域に対応する推論対象データの領域の複製を詰め込んだデータである詰め込みデータを生成する。そして、物体推論部20は、二次推論として詰め込みデータを学習済モデルに適用して詰め込みデータに含まれる検出対象物体の領域である第2の領域を推論する。そして、物体推論部20は、第2の領域に基づいて推論対象データにおける検出対象物体を推論する。
【0326】
情報処理装置1Cの各構成は、情報処理装置1における対応する各構成と同様に動作する。
【0327】
このように構成された情報処理装置1Cは、情報処理装置1と同様の効果を得ることができる。すなわち、情報処理装置1Cは、検出対象物体の推論の時間を短縮するという効果を奏することができる。
【0328】
その理由は、情報処理装置1Cの各構成が、情報処理装置1における対応する各構成と同様に動作するためである。
【0329】
なお、情報処理装置1Cは、情報処理装置1の最小構成である。
【0330】
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【0331】
(付記1)
少なくとも一部のデータが検出対象物体を含む複数のデータである推論対象データに基づいて、推論対象データに含まれるデータの数より少ない数のデータである集約データを生成するデータ集約手段と、
一次推論として集約データを学習済モデルに適用して集約データにおける検出対象物体の領域である第1の領域を推論し、第1の領域の複製又は第1の領域に対応する推論対象データの領域の複製を詰め込んだデータである詰め込みデータを生成し、二次推論として詰め込みデータを学習済モデルに適用して詰め込みデータに含まれる検出対象物体の領域である第2の領域を推論し、第2の領域に基づいて推論対象データにおける検出対象物体を推論する物体推論手段と、
を含む情報処理装置。
【0332】
(付記2)
教師データを所定のモデルに適用して、学習済モデルを生成するモデル学習手段
を含む付記1に記載の情報処理装置。
【0333】
(付記3)
所定のデータをデータ集約手段に適用して学習用集約データを生成し、生成した学習用集約データを物体推論手段に適用して学習用詰め込みデータを生成する教師データ生成手段を含み、
モデル学習手段が、生成された学習用集約データを用いて集約データを適用する学習済モデルを生成し、生成された学習用詰め込みデータを用いて詰め込みデータを適用する学習済モデルを生成する
付記2に記載の情報処理装置。
【0334】
(付記4)
物体推論手段が、一次推論及び二次推論を用いる二段階推論の負荷と、推論対象データを集約しない推論である一段階推論の負荷とに基づいて、二段階推論と一段階推論とのどちらかを選択して、選択した推論を用いて推論対象データにおける検出対象物体を推論する
付記1ないし3のいずれか1項に記載の情報処理装置。
【0335】
(付記5)
物体推論手段が、一次推論及び二次推論を用いる二段階推論の負荷と、推論対象データを集約しない推論である一段階推論の負荷とに基づいて、二段階推論と一段階推論とのどちらかを選択して、選択した推論を用いて推論対象データにおける検出対象物体を推論し、
モデル学習手段が、所定のモデルと、所定のデータとを用いて、一段階推論に用いる学習済モデルを生成する
付記2又は3に記載の情報処理装置。
【0336】
(付記6)
検出対象物体を含むデータが、画像であり、
データ集約手段が、集約データとして、複数の画像から各画素の値の平均値からなる画像を生成する
付記1ないし5のいずれか1項に記載の情報処理装置。
【0337】
(付記7)
付記1ないし6のいずれか1項に記載の情報処理装置と、
情報処理装置に推論対象データを出力する入力装置と、
情報処理装置の推論の結果を取得して表示する表示装置と
を含む情報処理システム。
【0338】
(付記8)
少なくとも一部のデータが検出対象物体を含む複数のデータである推論対象データに基づいて、推論対象データに含まれるデータの数より少ない数のデータである集約データを生成し、
一次推論として集約データを学習済モデルに適用して集約データにおける検出対象物体の領域である第1の領域を推論し、第1の領域の複製又は第1の領域に対応する推論対象データの領域の複製を詰め込んだデータである詰め込みデータを生成し、二次推論として詰め込みデータを学習済モデルに適用して詰め込みデータに含まれる検出対象物体の領域である第2の領域を推論し、第2の領域に基づいて、推論対象データにおける検出対象物体を推論する
情報処理方法。
【0339】
(付記9)
教師データを所定のモデルに適用して、学習済モデルを生成する
付記8に記載の情報処理方法。
【0340】
(付記10)
所定のデータを用いて学習用集約データを生成し、生成した学習用集約データを用いて学習用詰め込みデータを生成し、
生成された学習用集約データを用いて集約データを適用する学習済モデルを生成し、生成された学習用詰め込みデータを用いて詰め込みデータを適用する学習済モデルを生成する
付記9に記載の情報処理方法。
【0341】
(付記11)
一次推論及び二次推論を用いる二段階推論の負荷と、推論対象データを集約しない推論である一段階推論の負荷とに基づいて、二段階推論と一段階推論とのどちらかを選択して、選択した推論を用いて推論対象データにおける検出対象物体を推論する
付記8ないし10のいずれか1項に記載の情報処理方法。
【0342】
(付記12)
一次推論及び二次推論を用いる二段階推論の負荷と、推論対象データを集約しない推論である一段階推論の負荷とに基づいて、二段階推論と一段階推論とのどちらかを選択して、選択した推論を用いて推論対象データにおける検出対象物体を推論し、
所定のモデルと、所定のデータとを用いて、一段階推論に用いる学習済モデルを生成する
付記9又は10に記載の情報処理方法。
【0343】
(付記13)
検出対象物体を含むデータが、画像であり、
集約データとして、複数の画像から各画素の値の平均値からなる画像を生成する
付記8ないし12のいずれか1項に記載の情報処理方法。
【0344】
(付記14)
情報処理装置が、付記8ないし13のいずれか1項に記載の情報処理方法を実行し、
入力装置が、情報処理装置に推論対象データを出力し、
表示装置が、情報処理装置の推論の結果を取得して表示する
情報処理方法。
【0345】
(付記15)
少なくとも一部のデータが検出対象物体を含む複数のデータである推論対象データに基づいて、推論対象データに含まれるデータの数より少ない数のデータである集約データを生成する処理と、
一次推論として集約データを学習済モデルに適用して集約データにおける検出対象物体の領域である第1の領域を推論し、第1の領域の複製又は第1の領域に対応する推論対象データの領域の複製を詰め込んだデータである詰め込みデータを生成し、二次推論として詰め込みデータを学習済モデルに適用して詰め込みデータに含まれる検出対象物体の領域である第2の領域を推論し、第2の領域に基づいて、推論対象データにおける検出対象物体を推論する処理と
をコンピュータに実行させるプログラムを記録する記録媒体。
【0346】
(付記16)
教師データを所定のモデルに適用して、学習済モデルを生成する処理
をコンピュータに実行させるプログラムを記録する付記15に記載の記録媒体。
【0347】
(付記17)
所定のデータを用いた学習用集約データを生成する処理と、生成した学習用集約データを用いて学習用詰め込みデータを生成する処理と、
生成された学習用集約データを用いて集約データを適用する学習済モデルを生成する処理と、生成された学習用詰め込みデータを用いて詰め込みデータを適用する学習済モデルを生成する処理と
をコンピュータに実行させるプログラムを記録する付記16に記載の記録媒体。
【0348】
(付記18)
一次推論及び二次推論を用いる二段階推論の負荷と、推論対象データを集約しない推論である一段階推論の負荷とに基づいて、二段階推論と一段階推論とのどちらかを選択して、選択した推論を用いて推論対象データにおける検出対象物体を推論する処理
をコンピュータに実行させるプログラムを記録する付記15ないし17のいずれか1項に記載の記録媒体。
【0349】
(付記19)
一次推論及び二次推論を用いる二段階推論の負荷と、推論対象データを集約しない推論である一段階推論の負荷とに基づいて、二段階推論と一段階推論とのどちらかを選択して、選択した推論を用いて推論対象データにおける検出対象物体を推論する処理と
所定のモデルと、所定のデータとを用いて、一段階推論に用いる学習済モデルを生成する処理と
をコンピュータに実行させるプログラムを記録する付記16又は17に記載の記録媒体。
【0350】
(付記20)
検出対象物体を含むデータが、画像であり、
集約データとして、複数の画像から各画素の値の平均値からなる画像を生成する処理
をコンピュータに実行させるプログラムを記録する付記15ないし19のいずれか1項に記載の記録媒体。
【0351】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成及び詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【符号の説明】
【0352】
1 情報処理装置
1B 情報処理装置
1C 情報処理装置
10 データ集約部
20 物体推論部
20B 物体推論部
30 教師データ生成部
40 教師データ保存部
50 モデル学習部
50B モデル学習部
60 モデル保存部
70 データ取得部
200 入力装置
300 表示装置
400 情報処理システム
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