(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-11-07
(45)【発行日】2023-11-15
(54)【発明の名称】情報処理装置、情報処理方法及びプログラム
(51)【国際特許分類】
G06T 7/00 20170101AFI20231108BHJP
【FI】
G06T7/00 350C
(21)【出願番号】P 2022573477
(86)(22)【出願日】2020-06-05
(86)【国際出願番号】 JP2020022405
(87)【国際公開番号】W WO2021245942
(87)【国際公開日】2021-12-09
【審査請求日】2022-11-29
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100103894
【氏名又は名称】家入 健
(72)【発明者】
【氏名】ソンバトシリ サリター
【審査官】山田 辰美
(56)【参考文献】
【文献】特開2020-64333(JP,A)
【文献】米国特許出願公開第2019/0379589(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00
(57)【特許請求の範囲】
【請求項1】
入力特徴マップにおいてマスクチャネルを使用して、前記入力特徴マップにおける特徴チャネルのピクセルをマスクし、マスクされた特徴チャネルを生成するマスキング演算手段と、
前記マスクされた特徴チャネルと畳み込みカーネルの間で畳み込み演算を実行し、出力特徴マップを生成する畳み込み演算手段と、
を備える情報処理装置。
【請求項2】
前記入力特徴マップを前記マスクチャネルと前記特徴チャネルとに分割し、それらを前記マスキング演算手段に送るスプリッタ手段をさらに備える、
請求項1に記載の情報処理装置。
【請求項3】
前記出力特徴マップを処理する処理レイヤをさらに備える、
請求項1又は2に記載の情報処理装置。
【請求項4】
画像データを使用して前記入力特徴マップを生成する生成レイヤをさらに備える、
請求項1から3のいずれか1項に記載の情報処理装置。
【請求項5】
前記畳み込み演算手段は、
前記出力特徴マップのマスクチャネルを生成するためのマスクチャネルの1または複数のカーネルと、前記出力特徴マップの特徴チャネルを生成するための特徴チャネルの1または複数のカーネルと、を含む前記畳み込みカーネルのストレージとして動作する畳み込みカーネル記憶手段と、
前記畳み込みカーネル記憶手段内の前記カーネルとの畳み込みを、前記マスクされた特徴チャネルにわたって実行する畳み込み手段と、を有する
請求項1から4のいずれか1項に記載の情報処理装置。
【請求項6】
前記出力特徴マップは画像の予測である、
請求項1から5のいずれか1項に記載の情報処理装置。
【請求項7】
前記画像の予測およびgroundtruthデータからタスク損失を計算するタスク損失計算手段と、
前記出力特徴マップのマスクチャネルと前記画像のgroundtruthマスクからマスク損失を計算するマスク損失計算手段と、
前記タスク損失と前記マスク損失から総損失を計算する総損失計算手段と、をさらに備える、
請求項6に記載の情報処理装置。
【請求項8】
groundtruth BBoxデータからgroundtruthマスクを生成するマスク生成手段をさらに備え、
前記マスク損失計算手段は、前記生成されたgroundtruthマスクと前記出力特徴マップの前記マスクチャネルから前記マスク損失を計算する、
請求項7に記載の情報処理装置。
【請求項9】
入力特徴マップにおいてマスクチャネルを使用して、前記入力特徴マップにおける特徴チャネルのピクセルをマスクし、マスクされた特徴チャネルを生成することと、
前記マスクされた特徴チャネルと畳み込みカーネルの間で畳み込み演算を実行し、出力特徴マップを生成すること、
を備える情報処理方法。
【請求項10】
入力特徴マップにおいてマスクチャネルを使用して、前記入力特徴マップにおける特徴チャネルのピクセルをマスクし、マスクされた特徴チャネルを生成することと、
前記マスクされた特徴チャネルと畳み込みカーネルの間で畳み込み演算を実行し、出力特徴マップを生成すること、
をコンピュータに実行させるプログラム
。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、情報処理装置、情報処理方法および非一時的なコンピュータ可読媒体に関する。
【背景技術】
【0002】
畳み込みニューラルネットワーク(CNN)は、分類やオブジェクト検出などのいくつかのコンピュータビジョンタスクに対して優れた結果を提供する。そのため、普及がなされ、顔認識や監視システムなどの画像認識や動画解析の分野で、現実のアプリケーションに導入されている。
【0003】
CNNにおいて最も計算集約的な部分は畳み込みレイヤである。畳み込みは入力画像と特徴マップ(feature map)のすべてのピクセルに対して行われるため、画像の背景領域のような一部の計算は冗長となる。
【0004】
非特許文献1(NPL1)は、レイヤの各ピクセルに対する停止スコア(halting score)を計算することにより、CNNの推論処理を加速するための適応的計算時間法を開示している。この停止スコアは、計算から省略できる冗長ピクセルを示す。
【先行技術文献】
【非特許文献】
【0005】
【文献】Figurnov et al., "Spatially Adaptive Computation Time for Residual Networks", CVPR2017, 2017
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、非特許文献1で開示された方法には2つの問題がある。(1)停止スコアは、余分な行列乗算またはCNN内の畳み込みレイヤで計算されるものであり、計算集約的で、関数呼び出しのオーバーヘッドを消費する。(2)複雑な詳細を有する背景領域は省略できない。
【0007】
本開示の目的は、CNNにおける冗長な計算を削減することができる情報処理装置、情報処理方法、及び非一時的なコンピュータ可読媒体を提供することである。
【課題を解決するための手段】
【0008】
第1の例の態様では、情報処理装置は、入力特徴マップにおいてマスクチャネルを使用して、入力特徴マップにおける特徴チャネルのピクセルをマスクし、マスクされた特徴チャネルを生成するマスキング演算手段と、マスクされた特徴チャネルと畳み込みカーネルの間で畳み込み演算を実行し、出力特徴マップを生成する畳み込み演算手段を備える。
【0009】
第2の例の態様では、情報処理方法は、入力特徴マップにおいてマスクチャネルを使用して、入力特徴マップにおける特徴チャネルのピクセルをマスクし、マスクされた特徴チャネルを生成することと、マスクされた特徴チャネルと畳み込みカーネルの間で畳み込み演算を実行し、出力特徴マップを生成することを備える。
【0010】
第3の例の態様は、入力特徴マップにおいてマスクチャネルを使用して、入力特徴マップにおける特徴チャネルのピクセルをマスクし、マスクされた特徴チャネルを生成することと、マスクされた特徴チャネルと畳み込みカーネルの間で畳み込み演算を実行し、出力特徴マップを生成することをコンピュータに実行させるプログラムを格納する非一時的なコンピュータ可読媒体である。
【発明の効果】
【0011】
本開示によれば、CNNにおける冗長な計算を削減することができる情報処理装置、情報処理方法、及び非一時的なコンピュータ可読媒体を提供することができる。
【図面の簡単な説明】
【0012】
【
図1】
図1は、本開示の実施の形態1の構成を示す構成図である。
【
図2】
図2は、本開示の実施の形態2の構成を示す構成図である。
【
図3】
図3は、RGM-CNNの特徴マップの構成を示す図である。
【
図4】
図4は、本開示の実施の形態2の畳み込み演算子の構成を示す構成図である。
【
図5】
図5は、実施の形態2の動作フローを示すフロー図である。
【
図6】
図6は、本開示の実施の形態2の入力特徴マップのチャネルを分割する動作を示す図である。
【
図7】
図7は、本開示の実施の形態2のマスクチャネルによる特徴チャネルをマスキングする動作を示す図である。
【
図8】
図8は、本開示の実施の形態2の畳み込み演算を示す図である。
【
図9A】
図9Aは、本開示の実施の形態3の動作を示す図である。
【
図9B】
図9Bは、本開示の実施の形態3の動作を示す図である。
【
図10】
図10は、実施の形態3の動作フローを示すフロー図である。
【
図11】
図11は、本開示の実施の形態4の構成を示す構成図である。
【
図12】
図12は、実施の形態4の動作フローを示すフロー図である。
【
図13】
図13は、関連技術の動作フローを示す構成図である。
【
図16】
図16は、各実施形態にかかる情報処理装置の構成図である。
【発明を実施するための形態】
【0013】
(畳み込みレイヤ処理の概要)
本開示による実施形態を説明する前に、畳み込みレイヤにおける計算の概要を、
図13から15Bを参照して説明する。
【0014】
一般に、
図13に示すように、アプリケーションはCNN推論システム100を配備する。入力画像IMは、シングルまたはマルチチャネルの画像データである。まず、前処理手段101によって入力画像IMが前処理される。前処理手段101は、画像のサイズ変更、ピクセル値の正規化、画像のクロップ、背景の減算などを行うことができる。その後、順伝播手段102は、前処理された画像を伝播して、推論処理を行うCNNを通じて結果を生成する。最後に、後処理手段103は、順伝播の結果に対して後処理を行い、システム100の出力として予測(Prediction)PRを生成する。後処理には、non-maximal suppressionなどが含まれるが、含まれるものはこれに限定されない。予測PRは、システム100の画像認識または動画解析の回答を示す。予測PRはシステム100のタスクに依存する。例えば、分類タスクの予測PRは、入力画像内のオブジェクトのクラスであり、オブジェクト検出タスクの予測PRは、バウンディングボックス(BBox:各オブジェクトを囲むボックス)と、入力画像内の1または複数のオブジェクトのクラスなどである。
【0015】
CNN推論システム100は、1または複数の畳み込みレイヤで構成される。
図14A及び14Bは、CNNの順伝播手段102の概要を示す。画像IMは、CNNの入力レイヤに供給される。順伝播は、画像全体を分析して、画像内のオブジェクトを検出および/または分類する。まず、第1の畳み込みレイヤ201は、特徴チャネル(feature channel)と呼ばれる画像IMの特徴を表す、1または複数の中間特徴マップ(intermediate feature map)IFM1を生成する。第2から第Mの畳み込みレイヤは、中間特徴マップIFM2~IFM4を生成するために、第1の畳み込みレイヤ201と同様の方法で動作する。また、精度を向上させるために、サブサンプリング(プーリング)レイヤ、バッチ正規化レイヤ、非線形活性化関数レイヤ、完全接続レイヤなど、他の種類のレイヤを含めることもできる。
【0016】
図15Aを参照すると、畳み込みレイヤ300は、入力特徴マップ(input feature map:IFM)に対して畳み込み演算子301による畳み込みを実行し、出力特徴マップ(OFM)を生成する。
図15Bを参照すると、畳み込み演算子301は、特徴を生成するための特徴チャネルの1または複数のカーネルを格納する畳み込みカーネルストレージ302と、畳み込みを行うコンボリュータ(convolutor)303を含む。
【0017】
CNNは優れた結果を提供するが、CNNは計算集約型であるため、CNNでの計算がシステムのボトルネックを生ずるという問題がある。
図13において、システム100のボトルネックは手段102である。アプリケーションが進展するにつれて、ネットワークはより深くなって膨大な量の計算に関与するため、リアルタイムで処理することは困難になる。
【0018】
CNNの最も計算集約的な部分は畳み込みレイヤである。畳み込みは、入力画像と特徴マップの全てのピクセルに対して行われる。言い換えると、畳み込みレイヤには大量の積和(MAC)演算が含まれる。そのため、画像の背景領域など、一部の計算が冗長になる。
【0019】
非特許文献1は、MAC演算を省略しようとする方法を開示しているが、前述のように、以下の問題を有する:(1)停止スコアは、余分な行列乗算またはCNN内の畳み込みレイヤで計算されるものであり、計算集約的で、関数呼び出しのオーバーヘッドを消費する。(2)複雑な詳細を有する背景領域は省略できない。問題(1)に関しては、この方法は決定を計算するために、分離した完全接続または畳み込みレイヤを必要とするため、計算のオーバーヘッドだけでなく、特定のアクセラレータでの関数呼び出しのオーバーヘッドももたらす。問題(2)については、コスト関数はオブジェクト自体よりもオブジェクトのテクスチャの解析に重点を置いているため、複雑な詳細を有する背景領域を省略することができない。
【0020】
“Combining Background Subtraction and Convolutional Neural Network for Anomaly Detection in Pumping-Unit Surveillance”, Yu et al., Algorithms 2019, 2019は、背景のCNN計算を除去するために、CNNでオブジェクトのクラスを予測する前に、背景の減算と前景オブジェクト抽出を適用する方法を開示している。しかしながら、この方法には2つの問題がある。(1)動的な背景には適していない;(2)オブジェクトが重複している場合、重複領域は複数回計算されるため冗長になる。(1)については、この方法が動的背景に適していない理由は、背景の減算が静的背景に対してのみ有効であるためである。
【0021】
米国特許出願公開番号US2019/0304102 A1および米国特許出願公開番号US2019/0311202 A1は、前のフレームのBBoxを有するフレームの計算を抑制する方法を開示している。しかしながら、これらの方法は高速な動的オブジェクトでは問題になる可能性があり、前のフレームから生成されたマスクはオブジェクトの動きを捉えることができない。
【0022】
“SkipNet:Learning Dynamic Routing in Convolutional Networks”, Wang et al., ECCV 2018, 2018及び“BlockDrop: Dynamic Inference Paths in Residual Networks” Wu et al., CVPR 2018, 2018は、ネットワーク、別名SkipNetのゲーティングネットワークとBlockDropのポリシーモデルを開示し、各入力データの推論フェーズ中に、どの残余ネットワーク(ResNet)の残余ブロックを省略できるかを決定する。しかし、これらのネットワークには3つの問題がある。(1) 余分なCNNまたは余分な行列乗算または畳み込みレイヤのいずれかを必要とする;(2)残余ブロックのあるResNet Family-CNNに限られる;(3)残余ブロック全体をスキップすることは、オブジェクト検出などの一部のタスクでは、粒度が粗すぎる。
【0023】
米国特許出願公開番号US2020/0012904 A1は、セマンティックセグメンテーションのためのマスクの損失関数を開示する。しかしながら、この方法における用語「マスク」は、画像のピクセルによるオブジェクトの分類を意味するものであり、この方法は、CNN内のピクセルを計算するか省略するかの決定には焦点を当てていない。
【0024】
以下、添付図面を参照して、本開示の実施形態を詳細に説明する。これらの実施形態は、CNNを配備するシステムおよび装置に適用できる。本開示は、画像分類やオブジェクト検出などのアプリケーションに適用できる。しかしながら、本開示のアプリケーションは分類およびオブジェクト検出に限定されず、CNNが使用される他のアプリケーションも含む。
【0025】
(実施の形態1)
まず、実施の形態1にかかる情報処理装置1を、
図1を参照して説明する。
【0026】
本開示の実施の形態1である
図1を参照すると、情報処理装置1は、マスキング演算子 (マスキング演算手段)2と畳み込み演算子(畳み込み演算手段)3を含む。情報処理装置1は、CNNに使用することができる。
【0027】
マスキング演算子2は、入力特徴マップのマスクチャネル(mask channel)を使用して、入力特徴マップの特徴チャネルのピクセルをマスクし、マスクされた特徴チャネルを生成する。畳み込み演算子3は、マスクされた特徴チャネルと畳み込みカーネルとの間で畳み込み演算を行い、出力特徴マップを生成する。
【0028】
図1に示された構成は、情報処理装置1に搭載されたソフトウェアやハードウェアで行うことができる。入力特徴マップと出力特徴マップは、情報処理装置1の内部または外部に格納されることができる。
【0029】
(効果の説明)
次に、本実施形態の効果について説明する。前述のように、マスキング演算子2は入力特徴マップのマスクチャネルを使用して、入力特徴マップの特徴チャネルのピクセルをマスクし、マスクされた特徴チャネルを生成する。マスクされた特徴チャネルは、畳み込み演算に使用される。したがって、マスクされた特徴チャネルの冗長領域はマスクされるため、それらのピクセルに関する計算は省略される。これはCNNにおける冗長な計算を減らすのに役立つ。
【0030】
(実施の形態2)
まず、添付図面を参照して、本開示の実施の形態2を以下で説明する。
【0031】
(構成の説明)
本開示の実施の形態2を示す
図2を参照すると、Region-Masked(RGM)畳み込みレイヤ10は、スプリッタ11、マスキング演算子12および畳み込み演算子13を含む。この実施形態は、推論処理のための順伝播の構成と動作を説明する。RGM畳み込みレイヤ10は、汎用プロセッサシステム、又はGraphic Processing Unit(GPU)、Application-Specific Integrated Circuit(ASIC)、Application-Specific Instruction set Processor(ASIP)のような特定の回路、およびField Programmable Gate Array(FPGA)のような再構成可能デバイスを使用するために実装することができるが、使用するものはこれらに限定されない。
【0032】
RGM畳み込みレイヤ10は、その入力特徴マップの1または複数のマスクチャネルを使用することで冗長な計算を省略し、次のレイヤの入力として使用されるマスクチャネルと特徴チャネルを含む1または複数の特徴マップを生成する。RGM畳み込みレイヤ10の入力と出力は、それぞれマルチチャネル入力特徴マップM1と出力特徴マップM2である。入力特徴マップM1は、データの任意の種類の多次元テンソルとすることができる。
【0033】
特徴マップには、
図3に示すように、1または複数のマスクチャネルMC1と、1または複数の特徴チャネルMF1が含まれる。マスクチャネルMC1は、畳み込み計算から省略できるピクセルを示すためのものである。
図3では、このマスク領域(masked region)はハッチング領域として示され、非マスク領域(unmasked region)は非ハッチング領域として示されている。特徴チャネルMF1は特徴値を表す。
【0034】
図2に示された構成は、情報処理装置またはシステムに搭載されたソフトウェアやハードウェアで行うことができる。入力特徴マップM1と出力特徴マップM2は、情報処理装置またはシステム内の一時的または固定の記憶装置に格納することができる。しかしながら、入力特徴マップM1を情報処理装置またはシステムの外部に代わりに配置し、情報処理装置またはシステムは、出力特徴マップM2を他の情報処理装置またはシステムに送信することもできる。RGM畳み込みレイヤ10は、ソフトウェアとハードウェアの協同によって構成することができる。
【0035】
RGM畳み込みレイヤ10は、入力特徴マップ内のチャネルを使用して、畳み込みレイヤの空間的に冗長な計算を省略し、出力特徴マップを生成することができる。この出力特徴マップには、次のレイヤの計算を省略するために使用できるマスクチャネルと特徴チャネルが含まれている。
上記の手段は、概して以下のように動作する。
スプリッタ11は、入力特徴マップM1を、マスクチャネルMC1と特徴チャネルMF1に分割する。
マスキング演算子12は、マスクチャネルMC1を使用して、特徴チャネルMF1のピクセルをマスクし、マスクされた特徴チャネルを生成する。
畳み込み演算子13は、マスクされた特徴チャネルとRGM畳み込みレイヤのカーネルとの間で畳み込み演算を実行して、出力特徴マップM2を生成する。
【0036】
図4を参照すると、畳み込み演算子13は、畳み込みカーネルストレージ14とコンボリュータ15を含む。この実施形態の
図4および他の図は、各RGM畳み込みレイヤに対して1つだけのマスクチャネルがある場合しか示していないが、各RGM畳み込みレイヤに対して複数のマスクチャネルがあってもよい。この手段は次のように動作する。
【0037】
畳み込みカーネルストレージ14は、RGM畳み込みレイヤのカーネル(畳み込みカーネル)のストレージとして動作する。カーネルには、出力特徴マップM2のマスクチャネルを生成するためのマスクチャネルの1または複数のカーネルと、出力特徴マップM2の特徴チャネルを生成するための特徴チャネルの1または複数のカーネルが含まれる。畳み込みカーネルストレージ14は、レジスタ、Static Random-Access Memory(SRAM)、Dynamic Random-Access Memory(DRAM)などを使用するバッファとして実装されるが、使用されるのはこれらに限定されない。
【0038】
コンボリュータ15は、マスクされた特徴チャネルにわたって、畳み込みカーネルストレージ14内のカーネルと畳み込みを実行する。マスクされたピクセルは畳み込み計算から省略できるため、計算回数を減らすことができる。
【0039】
(動作の説明)
次に、
図5のフローチャートを参照して、本実施形態の概略的な動作を説明する。
【0040】
まず、スプリッタ11は、
図6に示すように、入力特徴マップM1を取得し(
図5のステップS1)、入力特徴マップM1をマスクチャネルMC1と特徴チャネルMF1に分割する(
図5のステップS2)。そして、スプリッタ11はこれらのチャネルをマスキング演算子12に送信する。
【0041】
次に、マスキング演算子12は、マスクチャネルMC1の値に従って、特徴チャネルMF1の値に対してマスキング動作を行う(
図5のステップS3)。たとえば、マスクチャネルMC1のピクセルの値がしきい値未満の場合、マスクチャネルMC1のピクセルの位置と同じ位置にある特徴チャネルMF1のピクセルの値は冗長と見なされ、抑制される(例えば、値を0にする、など。)。別の例では、マスクチャネルの1つのピクセルは、特徴チャネルの領域(その特徴チャネル内の複数のピクセル)をマスクするために用いられることができる。
図7は、マスキング動作を示す。
図7のマスクチャネルMC1のハッチング領域はマスク領域であり、計算を省略できる特徴チャネルのピクセルの位置に対応しているが、
図7のマスクチャネルMF1の非ハッチング領域は非マスク領域である。このマスクは特徴チャネルMF1に適用され、このステップの出力はマスクされた特徴チャネルになる。マスクされた特徴チャネルのマスク領域は冗長であってマスクされ、それらのピクセルに関連する計算は省略される。たとえば、それらのピクセルは背景領域である。非マスク領域は、計算が意味のあるものと見なされるピクセルを示し、これらのピクセルの値は特徴チャネルの値と同じである。複数のマスクチャネルMC1がある場合、マスキング演算子12は、'AND'、'OR'、'SUM'演算をこれらのマスクチャネルMC1と併せて使用するが、マスクチャネルMC1と併せて使用されるのはこれに限定されない。
【0042】
最後に、畳み込み演算子13は、
図8に示すように、マスクされた特徴チャネルと畳み込み演算子13内の畳み込みカーネル(フィルタまたは重みとしても知られる)との間で畳み込み演算を実行する(
図5のステップS4)。畳み込みカーネルは、マスクチャネルのカーネルと特徴チャネルのカーネルを含む。このステップでは、出力特徴マップM2が生成される。マスクされた特徴チャネルとマスクチャネルのカーネル間の畳み込みによって、出力特徴マップM2のマスクチャネルMC2が生成される。出力特徴マップM2のマスクチャネルMC2は、このプロセスで計算された新しいマスク領域を有する。出力特徴マップM2のこの新しいマスク領域は、
図8に示される。さらに、出力特徴マップM2のマスクチャネルMC2は、入力特徴マップM1のマスクチャネルMC1のものよりも小さい、新しい非マスク領域を有する。この新しい非マスク領域も、
図8に示される。さらに、畳み込み演算子13は、マスクされた特徴チャネルと特徴チャネルのカーネルとの間の畳み込み演算によって、出力特徴マップM2の特徴チャネルMF2を生成する。
【0043】
マスクされた特徴チャネルと特徴チャネルのカーネル間の畳み込みにより、出力特徴マップM2の特徴チャネルが生成される。マスクされた入力特徴マップのマスク領域に関連する畳み込みは、出力特徴マップM2のマスクチャネルと出力特徴マップM2の特徴チャネルの両方に対して省略されるため、その領域に対応する出力特徴マップM2は、値「0」、または、マスクチャネルMC1内のマスク領域の領域と同じ領域内にある入力特徴マップM1の値で埋められるが、埋められる値は、これに限定されない。出力特徴マップM2のこの埋められた領域は、
図8でマスク領域として示されている。複数のマスクチャネルMC1がある場合、各マスクチャネルは、マスクチャネルのそれぞれのカーネルによって生成される。
【0044】
(効果の説明)
次に、本実施形態の効果について説明する。前述のように、マスキング演算子12は、入力特徴マップM1のマスクチャネルMC1を使用して、入力特徴マップM1の特徴チャネルMF1のピクセルをマスクし、畳み込み演算に使用されるマスクされた特徴チャネルを生成する。したがって、マスクされた特徴チャネルの冗長領域はマスクされるため、それらのピクセルに関する計算は省略される。これはCNNにおける冗長な計算を減らすのに役立つ。
【0045】
前述のように、非特許文献1で開示された方法には2つの問題がある。(1)停止スコアは、余分な行列乗算またはCNN内の畳み込みレイヤで計算されるものであり、計算集約的で、関数呼び出しのオーバーヘッドを消費する。(2)複雑な詳細を有する背景領域は省略できない。しかしながら、本実施形態は、RGM畳み込みレイヤ10が入力特徴マップM1を使用することで冗長な演算を省略し、畳み込みカーネルがマスクチャネルMC1に対するマスクチャネルのカーネルを含むように構成されている。したがって、関数呼び出しのオーバーヘッドが発生する余分な行列乗算や畳み込みレイヤ無しで、畳み込みのMAC演算を省略することが可能である。また、削減する計算を決定するためのオーバーヘッドも小さくなる。RGM畳み込みレイヤは、VGG、ResNetなどのすべてのCNNに適用できる。これにより計算数を減らすことができるが、結果のピクセルレベルをなおも細粒度または中粒度にすることができる。さらに、本開示は、入力特徴マップ内での決定を伴うレイヤのMAC演算を省略し、次のレイヤの決定は、レイヤ内で計算される。
【0046】
さらに、計算を省略する決定は、分離したレイヤではなく、RGM畳み込みレイヤ内で計算される。そのため、上記の演算により、計算オーバーヘッドの数または規模を下げることができる。
【0047】
また、この実施形態では、各画像(フレーム)を解析し、各画像(フレーム)に対して個別に決定を生成するように構成されているため、動的な背景を省略することができる。
【0048】
(実施の形態3)
次に、本開示の実施の形態3は、Region-Masked CNN(RGM-CNN)と呼ばれるCNNにおける1または複数のRGM畳み込みレイヤの使用法を示す。このRGM-CNNは、
図13の手段によって処理されるCNNの代わりに使用される。添付図面を参照することにより、これが説明される。
【0049】
(構成の説明)
図9A及び9Bを参照すると、RGM-CNNは、1または複数のRGM畳み込みレイヤを含む。各RGM畳み込みレイヤは、その入力データを処理する処理レイヤとして機能する。入力画像IMは、シングルまたはマルチチャネルの画像データである。人間H1と円柱C1という2つのオブジェクトがこの画像内にあると仮定すると、順伝播によって、オブジェクトの位置とクラスだけでなく、背景などといった、省略可能な冗長な計算も解析される。
【0050】
入力画像IMはマスクチャネルを有さないため、第1のRGM畳み込みレイヤ21(前の処理レイヤ;生成レイヤ)は、入力画像IMから、1つの特徴マップM1がマスクチャネルMC1、その他が特徴チャネルMF12~MF1mである、1または複数の特徴マップM1を生成する。特徴マップM1は、実施の形態2における入力特徴マップM1に対応する。マスクチャネルMC1はマスク領域と非マスク領域を有し、それぞれ
図9Aにハッチング領域と非ハッチング領域として示されている。
【0051】
第2のRGM畳み込みレイヤ22は、冗長ピクセルの位置を示すマスクチャネルMC1を使用して、特徴チャネルMF12からMF1mの計算を省略する。第2のRGM畳み込みレイヤ22は、実施の形態2におけるRGM畳み込みレイヤ10に対応する。
【0052】
図9Aは、マスクチャネルが特徴チャネルに与える影響を示しており、マスク領域は計算が省略されるピクセルを示している。次に、第2のRGM畳み込みレイヤ22は、マスクされた特徴チャネルMF12~MF1mから、特徴マップの1つがマスクチャネルMC2で、その他が特徴チャネルMF22~MF2nである、1または複数の特徴マップM2を生成する。マスクチャネルMC2は、新しい非マスク領域H2、C2および新しいマスク領域を有し、これらは、それぞれ
図9Aの非ハッチング領域およびハッチング領域として示されている。新しい非マスク領域H2、C2は、それぞれ、入力画像IMの人間H1と円柱C1の領域に対応し、これらの新しい非マスク領域H2、C2は、マスクチャネルMC1の
非マスク領域よりも小さい。マスクチャネルMC2は冗長ピクセルの位置を示し、特徴チャネルMF22からMF2nの計算を省略する。
【0053】
次のRGM畳み込みレイヤは、RGM-CNNを通して、第2のRGM畳み込みレイヤ22と同様の方法で動作する。最後に、最後の(第mの)RGM畳み込みレイヤ23 (次の処理レイヤ)は、マスクされた特徴マップM3から特徴チャネルのみで構成される1または複数の特徴マップFMを生成する。特徴マップFMは、入力画像IMの予測または予測自体を生成するための、他の後続のレイヤへの入力特徴マップと解釈することができる。
【0054】
さらに、
図9Aおよび9Bに示される構成は、以下のように変更できる。RGM-CNNは、畳み込みレイヤ、プーリングレイヤ、バッチ正規化レイヤ、非線形活性化レイヤ、完全接続レイヤなど、上記以外のレイヤを含んでもよい。入力画像は、ユーザの定義または背景の減算など、上記以外の方法による前処理手段で生成されたマスクチャネルを含んでもよい。
【0055】
(動作の説明)
次に、
図10のフローチャートを参照して、本実施形態の概略動作を詳述する。
最初に、RGM-CNNの順伝播は、RGM-CNNの入力レイヤに画像を供給することによって開始される(
図10のステップS11)。そして、順伝播処理は、次のレイヤに進む(
図10のステップS12)。処理は各レイヤの種類に依存しており(
図10のステップS13)、レイヤごとに処理が進む。レイヤがRGM畳み込みレイヤであれば、実施の形態2に従ってレイヤの順伝播が進む。レイヤが畳み込みレイヤ、バッチ正規化レイヤなどの別の種類のレイヤである場合、順伝播はレイヤの種類に応じて進行する。最後に、
図10のステップS12~S14を、RGM-CNN処理の最後のレイヤまで繰り返す(
図10のステップS14)。
【0056】
さらに、
図10のフローチャートのこれらの前述のステップは、パイプライン方式で処理することができる。
【0057】
(効果の説明)
前述のように、RGM畳み込みレイヤは、入力特徴マップ内のチャネルを使用して、畳み込みレイヤの空間的に冗長な計算を省略し、次のレイヤと特徴チャネルの計算を省略するために使用できるマスクチャネルを含む出力特徴マップを生成する。
【0058】
(実施の形態4)
特徴マップのマスクチャネルを使用した計算を効果的に省略するには、マスクチャネルのカーネルを適切にトレーニングし、特徴マップの特徴チャネルの冗長または意味のある領域を学習する必要がある。実施の形態4では、RGM-CNNをトレーニングするシステムの例を説明する。
【0059】
(構成の説明)
図11を参照して、本開示の実施の形態4を以下に説明する。RGM-CNNトレーニングシステム30は、RGM-CNNプロパゲータ31、タスク損失計算器32、マスク生成器33、マスク損失計算器34、及び総損失計算器35を含む。RGM-CNNプロパゲータ31は、実施の形態3で開示したRGM-CNNを含み、トレーニング方向計算手段および重み更新手段として機能する。RGM-CNNトレーニングシステム30は、汎用プロセッサシステム、又はGraphic Processing Unit(GPU)、Application-Specific Integrated Circuit(ASIC)及びApplication-Specific Instruction set Processor(ASIP)のような特定の回路、およびField Programmable Gate Array(FPGA)のような再構成可能デバイスを使用して実装できるが、使用するものはこれに限定されない。
【0060】
RGM-CNNトレーニングシステム30は、RGM-CNN内のレイヤのパラメータをトレーニングする。RGM-CNN内のRGM畳み込みレイヤに対して、このシステムは、マスクのカーネルと特徴チャネルをトレーニングする。入力DAは、1または複数の画像とgroundtruthを含むデータセットである。groundtruthは、各画像の正確な予測データを意味する。これは、BBox、および/または画像内の各オブジェクトのクラス、各オブジェクトのピクセル単位のクラスなどであり得る。出力MOは、レイヤのシーケンスとRGM-CNNのパラメータの値(カーネルなど)を含むRGM-CNNモデルである。
【0061】
RGM-CNNトレーニングシステム30は、マスクのカーネルとRGM畳み込みレイヤの特徴チャネルをトレーニングできるため、マスクチャネルを使用して特徴マップの冗長領域を省略できる。
【0062】
図11に示された構成は、情報処理装置またはシステムに搭載されたソフトウェアやハードウェアで行うことができる。データセットDAおよびRGM-CNNモデルMOは、情報処理装置またはシステム内の一時的または固定の記憶装置に格納することができる。しかしながら、データセットDAを情報処理装置またはシステムの外部に代わりに配置し、情報処理装置またはシステムは、RGM-CNNモデルMOを他の情報処理装置またはシステムに送信することもできる。RGM-CNNトレーニングシステム30は、ソフトウェアとハードウェアの協同によって構成することができる。
【0063】
上記の手段は、概略、以下のように動作する。
RGM-CNNプロパゲータ31は、順伝播、トレーニング方向の計算、および重みの更新を実行する。
タスク損失計算器32は、予測とgroundtruthからタスク損失を計算する。
マスク生成器33は、groundtruth BBoxからgroundtruthマスクを生成する。
マスク損失計算器34は、生成されたgroundtruthマスクと、順伝播からの特徴マップのマスクチャネルからマスク損失を計算する。
総損失計算器35は、タスク損失とトレーニング方向の計算に使用されるマスク損失からRGM-CNNの総損失を計算する。
【0064】
(動作の説明)
次に、
図12のフローチャートを参照して、本実施形態の一般的な動作を説明する。
【0065】
まず、RGM-CNNプロパゲータ31は、データセットDAからデータのバッチ (1または複数の画像/フレーム) を取得し(
図12のステップS21)、その画像データをRGM-CNNの入力として用いて、順伝播を行う(
図12のステップS22)。順伝播は、実施の形態3で説明したように進められ、タスク損失計算器32に予測を出力する。例えば、オブジェクト検出タスクの予測には、入力画像内のオブジェクトのBBoxとクラスが含まれる。典型的な順伝播の結果である予測に加えて、RGM-CNNの順伝播プロセスはまた、中間RGM畳み込みレイヤの特徴マップのマスクチャネルをマスク損失計算器34にもたらす。特徴マップは、実施の形態1または2における出力特徴マップに対応する。
【0066】
次に、マスク生成器33は、データセットDAからgroundtruth BBoxデータを取得し、画像のgroundtruthマスクを1または複数生成する(
図12のステップS23)。各groundtruthマスクのサイズは、RGM畳み込みレイヤの特徴マップのサイズに対応している。groundtruth BBoxはマスクのサイズに合わせてスケーリングされ、入力画像の変換に合わせてフリップされる。groundtruth BBox内のgroundtruthマスクのピクセルは、計算に意味があると見なされるため、「計算」を示す値、たとえば値1でマークされる。逆に、groundtruth BBoxの外側のgroundtruthマスクのピクセルは、計算には冗長と見なされるため、「省略」を示す値、たとえば値0でマークされる。このステップにより、マスク損失計算器34にgroundtruthマスクがもたらされる。
【0067】
また、ステップS22とS23の手順を同時に行うことができる。さらに、RGM-CNNプロパゲータ31が順伝播を行う前に(ステップS22)、マスク生成器33は、データセットDAからgroundtruth BBoxデータを取得し、groundtruthマスクを生成してもよい(ステップS23)。
【0068】
そして、タスク損失計算器32は、タスク損失を計算する(
図12のステップS24)。たとえば、オブジェクト検出のタスク損失は、groundtruth BBox/Classesと予測のBBox/Classesから計算される典型的な損失である。オブジェクト検出損失の例としては、focal loss、ssd lossなどがあり、focal lossは、"Focal Loss for Dense Object Detection"、 Lin et al., CCV 2017, 2017に示されている。ssd lossは、"SSD: Single Shot MultiBox Detector", Liu et al., ECCV 2016に示されている。
【0069】
RGM畳み込みレイヤに対して、マスク損失計算器34は、順伝播中にRGM-CNNから生成される特徴マップのマスクチャネルをgroundtruthマスクと比較することによって、マスク損失を計算する(
図12のステップS25)。たとえば、マスク損失関数は、平均二乗誤差関数などの要素ごとの値の比較でもよいが、これに限定されない。
【0070】
また、ステップS24とS25の手順を同時に行うことができる。さらに、タスク損失計算器32がタスク損失を計算する前に(ステップS24)、マスク損失計算器34がマスク損失を計算してもよい(ステップS25)。
【0071】
さらに、総損失計算器35は、タスク損失とマスク損失から総損失を計算する(
図12のステップS26)。たとえば、次の式で示される係数を使用して、タスク損失とマスク損失の合計から総損失が計算できる。
L=αL
T+βL
M
L、L
T、L
Mは、それぞれ総損失、タスク損失およびマスク損失である。αとβは、
図12のステップS27で総損失を最適化するために各損失の重みを指定する係数値である。
【0072】
最後に、RGM-CNNプロパゲータ31はトレーニング方向(勾配)を計算する(
図12のステップS27)。トレーニング方向の計算は、トレーニングアルゴリズムによって決まる。たとえば、トレーニングアルゴリズムが勾配降下ファミリー(gradient descent family)の場合、トレーニング方向の計算では、総損失からの逆伝播(勾配計算)が実行される。トレーニングアルゴリズムは、ニュートン法、共役勾配法などでもよい。
図12のステップS28において、RGM-CNNプロパゲータ31は、トレーニング方向に応じて重み更新を行う。トレーニングが終了すると(
図12のステップS29)、RGM-CNNプロパゲータ31はRGM-CNNモデルMOを出力として与える。それ以外の場合は、
図12のステップS21からトレーニングが継続される。
【0073】
(効果の説明)
次に、本実施形態の効果について説明する。
本実施形態は、システム30がオブジェクトのgroundtruth BBoxを使用してマスクチャネルのカーネルをトレーニングするように構成されているため、複雑な詳細を有する背景の計算を省略することができる。
【0074】
本開示は、RGM畳み込みレイヤをトレーニングし、groundtruth BBoxのオブジェクトの位置を使用して、省略するピクセルを決定する。推論処理の間、RGM畳み込みレイヤは、前述のオブジェクトベースのトレーニングに従って、ピクセルを統計的に省略する。つまり、計算を省略する決定のためのトレーニングは、groundtruth BBoxのオブジェクトの位置に基づく。
【0075】
次に、上記の複数の実施形態で説明した情報処理装置の構成例を、
図16を参照して以下に説明する。
【0076】
図16は、情報処理装置の構成例を示すブロック図である。情報処理装置91は、
図16に示すように、プロセッサ92とメモリ93を備えている。
【0077】
プロセッサ92は、上記の実施形態のシーケンス図やフローチャートを参照して説明した情報処理装置91により実行される処理を、メモリ93からソフトウェア (コンピュータプログラム)をロードして実行することにより実行する。プロセッサ92は、例えば、マイクロプロセッサ、MPU(Micro Processing Unit)またはCPU(Central Processing Unit)であってもよい。プロセッサ92は、複数のプロセッサを含んでもよい。
【0078】
メモリ93は、揮発性メモリと不揮発性メモリの組み合わせによって形成される。メモリ93は、プロセッサ92から離れて配置されたストレージを含んでもよい。この場合、プロセッサ92は、I/Oインターフェイス(不図示)を介してメモリ93にアクセスしてもよい。
【0079】
図16に示した例では、メモリ93は、ソフトウェアモジュールのグループを格納するために使用される。プロセッサ92は、メモリ93からソフトウェアモジュール群を読み込み、読み込んだソフトウェアモジュールを実行することで、上記の実施形態で説明した情報処理装置によって行われる処理を行うことができる。
【0080】
図16を参照して以上で説明したように、上記の実施形態の情報処理装置に含まれる各プロセッサは、命令群を含む1または複数のプログラムを実行して、図面を参照して上述されたアルゴリズムをコンピュータに実行させる。
【0081】
また、情報処理装置91は、ネットワークインタフェースを有してもよい。ネットワークインタフェースは、通信システムを構成する他のネットワークノード装置との通信に使用される。ネットワークインタフェースは、例えば、IEEE 802.3シリーズに準拠したネットワークインタフェースカード(NIC)を含んでもよい。情報処理装置91は、ネットワークインタフェースを用いて、入力特徴マップを受信してもよいし、出力特徴マップを送信してもよい。
【0082】
上記の例では、任意の種類の非一時的なコンピュータ可読媒体を使用することで、プログラムが格納され、コンピュータに提供されることができる。非一時的なコンピュータ可読媒体には、任意の種類の有形記憶媒体が含まれる。非一時的なコンピュータ可読媒体の例には、磁気記憶媒体(フロッピーディスク、磁気テープ、ハードディスクドライブなどといったもの)、光磁気記憶媒体(例えば光磁気ディスク)、CD-ROM(compact disc read only memory)、CD-R(compact disc recordable)、CD-R/W(compact disc rewritable)、及び半導体メモリ(マスクROM、PROM(programmable ROM)、EPROM(erasable PROM)、フラッシュROM、RAM(random access memory)などといったもの)が含まれる。プログラムは、任意の種類の一時的なコンピュータ可読媒体を使用してコンピュータに提供されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号及び電磁波を含む。一時的なコンピュータ可読媒体は、有線通信回線(例えば電線、光ファイバー)または無線通信回線を介してコンピュータにプログラムを提供することができる。
【0083】
なお、本開示は、上記の実施形態に限定されるものではなく、本開示の趣旨及び範囲を逸脱することなしに適宜変更することができる。
【符号の説明】
【0084】
1 情報処理装置
2 マスキング演算子
3 畳み込み演算子
10 Region-Masked(RGM)畳み込みレイヤ
11 スプリッタ
12 マスキング演算子
13 畳み込み演算子
14 畳み込みカーネルストレージ
15 コンボリュータ
21 第1のRGM畳み込みレイヤ
22 第2のRGM畳み込みレイヤ
23 第mのRGM畳み込みレイヤ
30 RGM-CNNトレーニングシステム
31 RGM-CNNプロパゲータ
32 タスク損失計算器
33 マスク生成器
34 マスク損失計算器
35 総損失計算器
91 情報処理装置
92 プロセッサ
93 メモリ