Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP7670142B2 - 順伝播装置、学習装置、処理方法、及びプログラム - Google Patents
[go: Go Back, main page]

JP7670142B2 - 順伝播装置、学習装置、処理方法、及びプログラム - Google Patents

順伝播装置、学習装置、処理方法、及びプログラム Download PDF

Info

Publication number
JP7670142B2
JP7670142B2 JP2023543556A JP2023543556A JP7670142B2 JP 7670142 B2 JP7670142 B2 JP 7670142B2 JP 2023543556 A JP2023543556 A JP 2023543556A JP 2023543556 A JP2023543556 A JP 2023543556A JP 7670142 B2 JP7670142 B2 JP 7670142B2
Authority
JP
Japan
Prior art keywords
heat map
mask
binary mask
forward propagation
generating
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2023543556A
Other languages
English (en)
Other versions
JPWO2023026404A1 (ja
JPWO2023026404A5 (ja
Inventor
悠生 佐田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Publication of JPWO2023026404A1 publication Critical patent/JPWO2023026404A1/ja
Publication of JPWO2023026404A5 publication Critical patent/JPWO2023026404A5/ja
Application granted granted Critical
Publication of JP7670142B2 publication Critical patent/JP7670142B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/20Image enhancement or restoration using local operators
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/764Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • G06V10/771Feature selection, e.g. selecting representative features from a multi-dimensional feature space
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/103Static body considered as a whole, e.g. static pedestrian or occupant recognition
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30196Human being; Person
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V2201/00Indexing scheme relating to image or video recognition or understanding
    • G06V2201/07Target detection

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Multimedia (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Molecular Biology (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (AREA)
  • Human Computer Interaction (AREA)
  • Image Analysis (AREA)

Description

本開示は、順伝播装置、学習装置、情報処理システム、処理方法、及びプログラムが格納された非一時的なコンピュータ可読媒体に関する。
深層ニューラルネットワーク(DNN:Deep Neural Network)による動画像認識や自然言語処理に関する技術開発が活発に行われている。特に、画像認識分野では、DNNの一種である畳み込みニューラルネットワーク(CNN: Convolutional Neural Network)が高い認識精度を達成している。上述した画像認識分野としては、例えば、物体の種類と座標位置を推定する物体認識、画像のピクセル単位で物体の種類を推定する意味的領域分割、人間の関節点の座標を推定する人物姿勢推定などが挙げられる。
大量の学習データを用いて大規模なサーバで訓練することで、CNNは高い認識を達成することができる。一方でCNNの推論では、エッジデバイスやモバイル端末など電力の限られた環境下でリアルタイムに処理を実行する必要がある。CNNは主に畳み込み層から構成されている。畳み込み層では、多くの積和演算を繰り返す必要がある。
膨大な積和演算が必要なCNNを高速に処理するために、様々な研究が行われてきた。例えば、非特許文献1は、二つのCNNを用いることによる、三次元物体検出の高速化を提案した。この文献は、一つ目のCNNである意味的領域分割CNNで物体周辺の画像領域を示すマスクを推論し、二つ目のCNNである物体検出CNNで物体周辺の画像領域のみ畳み込み演算を行う手法を提案した。この手法は、全てのピクセルで同じ回数だけ積和演算を行う通常の物体検出器と比較して、1%前後の認識精度の劣化をともなうものの2.7倍の高速化を実現した。また、非特許文献2は、2層から3層ごとに物体周辺の画像領域を推論するマスクユニットを提案した。この技術では、姿勢推定の評価において、この技術を用いない場合と比較して、認識精度の劣化なしに1.6倍の高速化を実現した。また、特許文献1乃至3は、入力特徴マップのピクセル値が0の場合の積和演算を省略することで積和演算数を削減した畳み込みのハードウェア回路について提案を行った。
Mengye Ren et al., "SBNet: Sparse Blocks Network for Fast Inference", Computer Vision and Pattern Recognition Conference (CVPR) 2018. Thomas Verelst et al., "Dynamic Convolutions: Exploiting Spatial Sparsity for Faster Inference", CVPR 2020.
米国特許出願公開第2019/0205740号明細書 米国特許出願公開第2020/0082254号明細書 米国特許出願公開第2020/0012608号明細書
このように、ニューラルネットワークを高速に処理する技術の提案が求められている。そこで、本明細書に開示される実施形態が達成しようとする目的の1つは、畳み込み層における積和演算の一部を省略した高速な処理を実現することが可能な新規な技術を提供することである。
本開示の第1の態様にかかる順伝播装置は、
ニューラルネットワークの順伝播装置であって、
二値マスクを生成するマスク生成手段と、
前記二値マスクの各座標の値にしたがってスパース畳み込み層の演算を行う層実行手段と、
を有し、
前記マスク生成手段は、
入力特徴マップに対して畳み込み層の演算を行うことにより、前記ニューラルネットワークの検知対象の種類の数のヒートマップを生成し、
ヒートマップの値を座標毎に合計することにより、検知対象の種類の数のヒートマップを1枚のヒートマップに合成した合成ヒートマップを生成し、
前記合成ヒートマップの各座標の値を所定の閾値を用いて二値化することにより前記二値マスクを生成する。
本開示の第2の態様にかかる学習装置は、
ニューラルネットワークの順伝播装置のための学習装置であって、
前記順伝播装置で生成される、前記ニューラルネットワークの検知対象の種類の数の第1のヒートマップを取得する第1のヒートマップ取得手段と、
前記検知対象の正解ラベルに基づいて生成された前記検知対象の種類の数の第2のヒートマップを取得する第2のヒートマップ取得手段と、
前記第1のヒートマップと前記第2のヒートマップの差分を計算する損失計算手段と、
計算された前記差分に基づいて、前記順伝播装置で前記第1のヒートマップを生成するための畳み込み層の重みの値を更新する更新手段と
を有し、
前記順伝播装置は、二値マスクを生成して、生成した前記二値マスクの各座標の値にしたがってスパース畳み込み層の演算を行う装置であり、
前記順伝播装置は、前記二値マスクの生成の処理において、
入力特徴マップに対して畳み込み層の演算を行うことにより、前記ニューラルネットワークの検知対象の種類の数の前記第1のヒートマップを生成し、
前記検知対象の種類の数の前記第1のヒートマップの値を座標毎に合計することにより、前記検知対象の種類の数の前記第1のヒートマップを1枚のヒートマップに合成した合成ヒートマップを生成し、
前記合成ヒートマップの各座標の値を所定の閾値を用いて二値化することにより前記二値マスクを生成する。
本開示の第3の態様にかかる情報処理システムは、
ニューラルネットワークの順伝播装置と、
前記順伝播装置のための学習装置と
を備え、
前記順伝播装置は、
二値マスクを生成するマスク生成手段と、
前記二値マスクの各座標の値にしたがってスパース畳み込み層の演算を行う層実行手段と、
を有し、
前記マスク生成手段は、
入力特徴マップに対して畳み込み層の演算を行うことにより、前記ニューラルネットワークの検知対象の種類の数の第1のヒートマップを生成し、
検知対象の種類の数の前記第1のヒートマップの値を座標毎に合計することにより、検知対象の種類の数の前記第1のヒートマップを1枚のヒートマップに合成した合成ヒートマップを生成し、
前記合成ヒートマップの各座標の値を所定の閾値を用いて二値化することにより前記二値マスクを生成し、
前記学習装置は、
前記順伝播装置で生成される、前記ニューラルネットワークの検知対象の種類の数の前記第1のヒートマップを取得する第1のヒートマップ取得手段と、
前記検知対象の正解ラベルに基づいて生成された前記検知対象の種類の数の第2のヒートマップを取得する第2のヒートマップ取得手段と、
前記第1のヒートマップと前記第2のヒートマップの差分を計算する損失計算手段と、
計算された前記差分に基づいて、前記順伝播装置で前記第1のヒートマップを生成するための前記畳み込み層の重みの値を更新する更新手段と
を有する。
本開示の第4の態様にかかる処理方法は、
ニューラルネットワークの順伝播装置の処理方法であって、
二値マスクを生成し、
前記二値マスクの各座標の値にしたがってスパース畳み込み層の演算を行い、
前記二値マスクの生成の処理において、
入力特徴マップに対して畳み込み層の演算を行うことにより、前記ニューラルネットワークの検知対象の種類の数のヒートマップを生成し、
ヒートマップの値を座標毎に合計することにより、検知対象の種類の数のヒートマップを1枚のヒートマップに合成した合成ヒートマップを生成し、
前記合成ヒートマップの各座標の値を所定の閾値を用いて二値化することにより前記二値マスクを生成する。
本開示の第5の態様にかかるプログラムは、
ニューラルネットワークの順伝播装置のコンピュータに、
二値マスクを生成するマスク生成ステップと、
前記二値マスクの各座標の値にしたがってスパース畳み込み層の演算を行う層実行ステップと、
を実行させ、
前記マスク生成ステップにおいて、
入力特徴マップに対して畳み込み層の演算を行うことにより、前記ニューラルネットワークの検知対象の種類の数のヒートマップを生成し、
ヒートマップの値を座標毎に合計することにより、検知対象の種類の数のヒートマップを1枚のヒートマップに合成した合成ヒートマップを生成し、
前記合成ヒートマップの各座標の値を所定の閾値を用いて二値化することにより前記二値マスクを生成する。
本開示によれば、畳み込み層における積和演算の一部を省略した高速な処理を実現することが可能な新規な技術を提供できる。
実施の形態1にかかる順伝播装置の構成の一例を示すブロック図である。 層実行部による、一層のスパース畳み込み層の計算を示す模式図である。 層実行部による、複数層のスパース畳み込み層の計算を示す模式図である。 二値マスク生成部及び層実行部の構成例を示すブロック図である。 二値マスク生成部及び層実行部の構成例を示すブロック図である。 マスクユニットの具体的な構成例を示すブロック図である。 実施の形態1にかかる学習装置の構成の一例を示すブロック図である。 損失の計算を説明するための模式図である。 ヒートマップ生成部による正解ヒートマップの生成例について示す模式図である。 実施の形態1にかかる学習装置の動作例を示すフローチャートである。 実施の形態1にかかる順伝播装置及び学習装置のハードウェア構成の一例を示すブロック図である。 実施の形態2にかかる情報処理システムの構成の一例を示すブロック図である。
実施の形態について説明する前に、まず、畳み込み層における演算について説明する。上述した通り、CNNは主に畳み込み層から構成されている。ここで、X(x,y,z)を(x,y,z)座標における入力特徴マップXのピクセル値、F(x,y,z,w)を重みFの値、B(z)をバイアスBの値、factを活性化関数、Z(x,y,z)を出力特徴マップZのピクセル値とする。また、入力特徴マップX(x,y,z)および出力特徴マップZ(x,y,z)の(x,y,z)座標はxが幅方向の位置、yが高さ方向の位置、zがチャネル方向の位置を示している。このとき、幅方向のサイズ及び高さ方向のサイズがいずれもKであるカーネルの畳込み層、すなわちカーネルサイズK×Kの畳み込み層は以下の式で定義される。
<式(1)>
Figure 0007670142000001
ここで、K'、X、Z、F、Bは以下を満たす。
Figure 0007670142000002
なお、Wは特徴マップの幅であり、Hは特徴マップの高さである。また、Cinは入力特徴マップ数、Coutは出力特徴マップ数である。畳み込み層では、入力特徴マップと重みとの積和演算(MAC: Multiply ACcumulation)の結果にバイアスが加算され、さらに活性化関数が適用される。活性化関数factは一般的にReLU(Rectified Linear Unit)関数などが用いられる。
通常の畳み込み層では、乗算とΣによる加算を別々に数えると、一つの出力特徴マップのピクセル値Z(x,y,z)に対して2KKCin回の積和演算が必要である。畳み込み層では、各座標位置
Figure 0007670142000003
で同じ回数の積和演算(具体的には2KKCin回の積和演算)を繰り返すため、全体で2KKCinHWCout回の積和演算が必要である。
CNNでは、畳み込み層に含まれる膨大な数の積和演算が実行時間を大きくする原因となっている。本実施の形態では、これらの積和演算の一部を省略することにより、畳み込み層の計算の高速化を行う。具体的には、CNNを高速に処理するために、特徴マップの背景部分に対応する積和演算を省略する。
<実施の形態1>
まず、実施の形態にかかる順伝播装置100について説明する。順伝播装置100は、ニューラルネットワークの順伝播装置であって、当該ニューラルネットワークを用いて、例えば、物体認識、意味的領域分割、人物姿勢推定といった画像認識などを行うための装置である。
順伝播装置100は、図1に示すように二値マスク生成部101と層実行部102とを有する。順伝播装置100はスパースCNN重み90を用いて二値マスク生成部101及び層実行部102のパラメタを設定した後、入力画像91を用いてスパースCNNの順伝播計算を行い、出力結果92を出力する。ここで、推論フェーズにおいては、スパースCNN重み90(すなわち、後述するマスクユニット110及び層実行部102の各層の重み)として、後述する学習装置200によって学習された重みが用いられる。
二値マスク生成部101は、マスクユニット110(図4、図5、図6参照)と呼ばれるネットワークを実行し、二値マスクを生成する。層実行部102は、スパース畳み込み層を含むニューラルネットワークの各層の計算を実行する。層実行部102がスパース畳み込み層を実行する場合には、二値マスクを用いて、画像における前景部分についてのみ積和演算を行う。
ここで、図2及び図3を用いて層実行部102でスパース畳み込み層を計算する方法について説明する。図2では、二値マスク生成部101で作られる二値マスクを用いて、層実行部102がスパース畳み込み層(SpConv: Sparse Convolutional Layer)を一層だけ実行する例が示されている。二値マスクは、各座標がそれぞれ0または1のいずれかの値を取る二次元画像であり、本実施の形態では1(非ゼロ値)が計算を実施するピクセル、0(ゼロ値)が計算を省略するピクセルとする。二値マスクMのサイズは、出力特徴マップZのサイズと同じである。なお、ここでは、畳み込みのストライドの大きさが1としているため(入力特徴マップXと出力特徴マップZのサイズが等しいため)、二値マスクMのサイズは、入力特徴マップXのサイズとも同じである。
層実行部102で行われる二値マスクを使用したスパース畳み込みの一層は以下の式で定義できる。
<式(2)>
Figure 0007670142000004
ただし、Yは計算過程の一時的な計算値であり、Mは二値マスクである。また、式(2)における他のシンボルは、式(1)と同様である。スパース畳み込み層では、M(x,y)が非ゼロ値の座標(x,y)の出力特徴マップZ(x,y,z)の計算では、通常の畳み込みと同様に、2KKCin回の積和演算が行われる。一方で、M(x,y)がゼロ値の座標の出力特徴マップに対しては、積和演算が行われず、出力特徴マップの値は0となる。このように、層実行部102は、二値マスクの各座標の値にしたがってスパース畳み込み層の演算を行う。つまり、層実行部102は、二値マスクにおいて所定値(ゼロ値)以外の値を有する座標について積和演算を行ない、二値マスクにおいて所定値(ゼロ値)を有する座標について積和演算を省略することでスパース畳み込み層の演算を行う。
なお、実数値(例えば、浮動小数点数)を取る
Figure 0007670142000005
を用いて、以下の式(3-1)のように、Mf(x,y)をY(x,y,z)に乗じて、M(x,y)が非ゼロ値の座標(x,y)の出力特徴マップを計算してもよい。
<式(3-1)>
Figure 0007670142000006
ここで、例えば、Mfの値としては、前景領域(Mが非ゼロの画像領域)のうち、比較的重要な画像領域に対して大きい値が設定され、比較的重要でない画像領域に対しては小さい値が設定される。Mfの値は、具体的には、例えば、後述する解像度調整部113が出力するマップの値(二値化される前のマップの値)を用いて設定されてもよい。Mfを乗じることは、前景領域内のさらに注目すべき領域を際立たせる役割を持っており、精度向上に繋がる。
また、実数値を取る
Figure 0007670142000007
を用いて、以下の式(3-2)のように、Mf'(z)をY(x,y,z)に乗じて、M(x,y)が非ゼロ値の座標(x,y)の出力特徴マップを計算してもよい。
<式(3-2)>
Figure 0007670142000008
ここで、例えば、Mf'の値としては、比較的重要なチャネルに対して大きい値が設定され、比較的重要でないチャネルに対しては小さい値が設定される。Mf'を乗じることは、前景領域内のさらに注目すべきチャネルを際立たせる役割を持っており、精度向上に繋がる。なお、Mf及びMf'は、後述するマスクヒートマップに対して畳み込み層及びプーリング層の計算を行って算出してもよい。
図2で示した例では、二値マスク生成部101は、畳み込み層の一層ごとに、後述する畳み込み層実行部111から二値化部114までの所定の一連の処理により生成された二値マスクを供給している。しかしながら、二値マスクの生成に要する時間を抑制するために、図3に示すように畳み込み層の複数層ごとに(例えば、2層又は3層ごとに)、上述した所定の一連の処理により生成される二値マスクを供給してもよい。すなわち、図3に示すように、連続する複数の畳み込み層からなるグループ(ブロック)ごとに上述した所定の一連の処理により生成される二値マスクが供給されてもよい。なお、図3では、畳み込み層の2層ごとに所定の一連の処理により生成されたマスクが供給される例を示している。
図3に示した例では、1つめの畳み込み層が各(x,y)平面において38個の入力ピクセルと重みを使用して畳み込みを行ない、16個の出力ピクセルが計算されている。そして、2つめの畳み込み層では16個の入力ピクセルと重みを使用して2個の出力ピクセルが計算されている。つまり、図3で示した例では、最終層は2つのピクセルを計算するだけでよいが、そのためには、その一つ前の層で16個のピクセルを計算している必要がある。このように、入力層に近ければ近いほど、大きな画像領域を計算しなければならない。このため、所定の一連の処理により生成された二値マスクと、この二値マスクにおける非ゼロの画像領域を拡張した二値マスクが、以下に述べるように用いられる。なお、以下の説明では、二値マスクにおける非ゼロの画像領域を拡張することにより得られる二値マスクを拡張した二値マスクと称すこととする。
複数の層ごとに所定の一連の処理により生成された二値マスクMを供給する場合、この二値マスクMは、グループ内の最終層(図3の例では、第二層)のスパース畳み込み層に使用される。上述の通り、最終層よりも一つ前の層の畳み込みでは、最終層で用いる二値マスクMにおける非ゼロの画像領域よりも大きな画像領域と重みとの積和演算を計算しなければならず、二値マスクMは使用できない。そのため、二値マスク生成部101は、畳み込みのカーネルサイズやストライドに応じて最終層の二値マスクMを拡張した二値マスクM'を生成する。ただし、拡張した二値マスクは、後述する畳み込み層実行部111から二値化部114までの所定の一連の処理を行わずに、拡張対象の二値マスクについて拡張処理を行うことで生成される。この拡張処理において、二値マスク生成部101は、拡張した二値マスクM'として、拡張対象の二値マスクMに対応する出力特徴マップを計算するために必要な入力特徴マップのピクセルの座標(x,y)が非ゼロ値となっている二値マスクを生成する。
二値マスク生成部101は、グループ内の層の数が3個の場合には、拡張した二値マスクM'を拡張対象の二値マスクとして用いて、さらなる拡張処理を行うことにより、拡張した二値マスクM''を生成する。同様に、二値マスク生成部101は、グループ内の層の数が4個の場合には、拡張した二値マスクM''を拡張対象の二値マスクとして用いて、さらなる拡張処理を行うことにより、拡張した二値マスクM'''を生成する。このように、二値マスク生成部101は、グループ内の層の数に応じた回数だけ拡張処理を繰り返し、層の数より1つ少ない数の拡張した二値マスクを生成する。
二値マスク生成部101について、図4から図6を用いて説明する。図4及び図5は、二値マスク生成部101及び層実行部102の構成例を示すブロック図である。図4及び図5では、マスクユニット110及びスパース畳み込み層(SpConv)120への入力特徴マップの供給、及び、スパース畳み込み層(SpConv)120へのマスクユニット110が生成した二値マスクの供給が示されている。また、図6は、マスクユニット110の具体的な構成例を示すブロック図である。
図4に示すように二値マスク生成部101はm個(mは1以上の整数)のマスクユニット110を備え、各マスクユニット110の計算を行う。マスクユニット110への入力は、このマスクユニット110が供給する二値マスクを用いるスパース畳み込み層120のグループ内で最初に実行されるスパース畳み込み層120へ入力される入力特徴マップである。なお、グループは、必ずしも複数のスパース畳み込み層120を含んでいなくてもよく、グループに含まれるスパース畳み込み層120が1つであってもよい。マスクユニット110は、スパース畳み込み層120のグループに対し、このグループのスパース畳み込み層120の出力特徴マップの解像度(高さH及び幅Wで規定される解像度)に応じた二値マスクMを出力する。また、マスクユニット110は、高さH、幅Wを有するJ枚のマスクヒートマップ
Figure 0007670142000009
を出力する。マスクヒートマップは、二値マスク生成部101の後述する畳み込み層実行部111によって生成される、高さH、幅Wの二次元画像であり、後述する学習装置200のマスク損失計算部206において、損失関数の計算に使用される。
図6は、マスクユニット110の内部構造の一例を示すブロック図である。図6に示すように、各マスクユニット110は、畳み込み層実行部111、合計処理部112、解像度調整部113、二値化部114、及び拡張マスク生成部115を含む。
畳み込み層実行部111は、入力特徴マップに対して畳み込みを実行し、J枚の特徴マップ(マスクヒートマップ)を出力する。すなわち、畳み込み層実行部111は、入力特徴マップからJ枚の二値画像を生成するよう設計された畳み込み層を実行する。後述する学習装置200のマスク損失計算部206において、畳み込み層実行部111が出力するマスクヒートマップと正解のヒートマップとの特徴マップ数を一致させる必要がある。このため、畳み込み層実行部111が出力するマスクヒートマップの特徴マップ数Jは、順伝播装置100のニューラルネットワークの検知対象の種類の数と等しい。ここで、検知対象の種類の数は、具体的には、順伝播装置100によって人物姿勢推定を行う場合、例えば、ニューラルネットワークによって座標が検知される人間の関節点の種類の数である。また、順伝播装置100によって物体検出を行う場合、検知対象の種類の数は、ニューラルネットワークによる物体検出で用いられるクラスの数(物体の種類の数)である。また、順伝播装置100によって意味的領域分割を行う場合、検知対象の種類の数は、ニューラルネットワークによる意味的領域分割で用いられるクラスの数(意味の種類の数)である。このように、畳み込み層実行部111は、入力特徴マップに対して畳み込み層の演算を行うことにより、ニューラルネットワークの検知対象の種類の数のマスクヒートマップを生成する。
なお、順伝播装置100が推論を行う際、マスクユニット110がJ枚のヒートマップを生成するための畳み込み層の重みの値は、後述するように、正解ラベルに基づいて生成されたヒートマップを用いて機械学習された値である。すなわち、推論フェーズにおいて、畳み込み層実行部111が実行する畳み込み層の重みの値は、正解ラベルに基づいて生成されたヒートマップを用いて機械学習された値である。
合計処理部112は、畳み込み層実行部111が生成したJ枚の特徴マップ(マスクヒートマップ)の値を座標毎に合計する。これにより合計処理部112は、J枚の特徴マップ(マスクヒートマップ)を1枚の特徴マップ(マスクヒートマップ)に合成した特徴マップ(本開示において合成ヒートマップと称すことがある)を生成する。合計処理部112の合計処理では、例えば、J枚の特徴マップの合計を以下の式(4)のように算出する。
<式(4)>
Figure 0007670142000010
ただし、Mhを合計処理部112に入力される入力特徴マップ(マスクヒートマップ)、Z'を合計処理部112から出力される出力特徴マップとする。なお、合計処理は式(4)に示されるような単純な合計ではなくてもよい。例えば、合計処理部112は、J枚の特徴マップに重みを付けて重み付総和を計算してもよい。例えば、比較的重要でないクラス(データセットで出現回数の少ないクラス)に対し小さい値の重みが設定され、比較的重要なクラス(データセットで出現回数の少ないクラス)に対し大きい値の重みが設定される。比較的重要でないクラスは、例えば、後述する学習装置200が用いるデータセットにおける出現回数が他のクラスよりも少ないクラスであり、予め特定することが可能である。同様に、比較的重要なクラスは、データセットにおける出現回数が他のクラスよりも多いクラスであり、予め特定することが可能である。なお、重要ではないことが予めわかっているクラスについては、このクラスを無視すべく、重みの値として0が設定されてもよい。このように重み付総和が計算されることにより、重要でないクラスの画像領域の計算を省略できる場合があり、さらなる高速化が可能になる。
解像度調整部113は、スパース畳み込み層の解像度に応じて、合計処理部112が出力した特徴マップ(合成ヒートマップ)の解像度を変更する。すなわち、合計処理の後、解像度調整部113による解像度調整処理によって、合成ヒートマップの解像度を、要求解像度(マスクユニット110が二値マスクを供給する各スパース畳み込み層120の出力特徴マップの解像度)に変更する。例えば、解像度調整部113は、解像度調整部113の入力特徴マップ(合計処理部112の出力特徴マップ)の高さH及び幅Wよりも大きなマスクを生成する場合には、最近傍補完などを用いてアップサンプリング(アップコンバート)を行う。また、解像度調整部113は、入力特徴マップの高さH及び幅Wよりも小さなマスクを生成する場合には平均値プーリングや最大値プーリングなどを用いてダウンサンプリング(ダウンコンバート)を行う。なお、要求解像度は、スパース畳み込み層120のパラメタから特定することが可能である。また、解像度調整部113は、解像度の調整が必要ない場合、処理を省略することができる。
このように、解像度調整部113により様々な解像度の特徴マップを生成することが可能であるため、一つのマスクユニット110で様々な解像度に対応することができる。これにより、一つのマスクユニット110は、より多くのスパース畳み込み層(例えば十層程度)へ二値マスクを供給することができる。
二値化部114は、解像度調整が行われたマスク(合成ヒートマップ)の各座標の値を所定の閾値γを用いて二値化することにより二値マスクを生成する。二値化部114による二値化処理は、解像度調整が行われたマスクをMinとして以下の式(5)で定義される。なお、解像度調整が不要である場合には、二値化部114は、合計処理部112が出力したマスクをMinとする。
<式(5)>
Figure 0007670142000011
拡張マスク生成部115は、二値化部114が生成した二値マスクに対して、上述した拡張処理を行うことにより、二値化部114が生成した二値マスクにおける非ゼロの画像領域を拡張した二値マスクを生成する。このように、拡張マスク生成部115は、畳み込み層実行部111から二値化部114までの一連の処理を再度行うことにより二値マスクを生成するのではなく、二値化部114が出力した二値マスクを用いて、新たな二値マスクを生成する。なお、上述した通り、拡張マスク生成部115は、拡張処理により得られた二値マスクに対して拡張処理を行うことにより、さらに新たな二値マスクを生成してもよい。
上述した通り、二値化部114が出力する二値マスクは、図3の第二層のように、連続するスパース畳み込み層120の最終層の演算のために生成される。そして、拡張マスク生成部115は、二値化部114によって生成された二値マスクから、最終層の前段のスパース畳み込み層の演算のための二値マスクを生成する。また、必要に応じて、拡張マスク生成部115は、さらに前段のスパース畳み込み層の演算のための二値マスクを生成する。このような構成によれば、各スパース畳み込み層のための二値マスクの生成処理に要する時間を抑制することができる。
二値化部114及び拡張マスク生成部115は、生成した二値マスクをスパース畳み込み層120に供給する。なお、スパース畳み込み層120は、図4のように直列で接続されていることに限らず、例えば図5のように並列で接続されていてもよく、マスクユニット110はあらゆるCNNの構造に対して二値マスクを生成して供給することができる。
次に、順伝播装置100のための学習装置200について説明する。学習装置200は、順伝播装置100のマスクユニット110の畳み込み層実行部111が実行する畳み込み層のパラメタと、層実行部102が実行するニューラルネットワークのパラメタを学習する。
図7は、学習装置200の構成の一例を示すブロック図である。学習装置200は、スパースCNNのモデル構造93とデータセット94を入力として用い、学習済み重み95を出力する。スパースCNNのモデル構造93は、二値マスク生成部101のマスクユニット110の構造を表すデータと層実行部102が実行するCNN構造を表すデータを含む。また、データセット94は、正解ラベルが与えられた画像データである。学習済み重み95は、マスクユニット110の畳み込み層実行部111で用いられる重みの学習済みの値及び層実行部102が実行するCNNで用いられる重みの学習済みの値を含む。
図7に示すように、初期化部201、前処理部202、順伝播部203、損失計算部204、ヒートマップ生成部205、マスク損失計算部206、パラメタ更新部207、学習終了判定部208を有する。学習装置200による学習は、ヒートマップ生成部205による処理とマスク損失計算部206による処理を含む点で、一般的な学習手順と特に異なっている。
初期化部201は、スパースCNNの重みなどのパラメタの初期化を行う。初期化部201による初期化は、層実行部102により実行されるスパース畳み込み層120の重みだけではなく、マスクユニット110の畳み込み層実行部111における重みなどスパースCNNの全ての学習パラメタの初期化である。
前処理部202は、学習のために学習装置200に入力される入力画像(データセット94に含まれる画像)に対して、所定の前処理(例えば、画像の回転処理、歪み補正処理など)を行う。
順伝播部203は、前処理部202による前処理が行われた入力画像と、スパースCNNのモデル構造93(すなわち、順伝播装置100)とを用いて、順伝播装置100における順伝播処理を行う。これにより、各スパース畳み込み層120の計算や各マスクユニット110の計算などの順伝播処理が行われる。
次に、図8を参照しつつ、損失計算部204、ヒートマップ生成部205、及びマスク損失計算部206について説明する。図8は、損失の計算を説明するための模式図である。
損失計算部204は、第1の損失関数Lossmainの計算を行う。第1の損失関数Lossmainは、CNNにおいて一般的に算出される損失関数と同様である。第1の損失関数Lossmainは、データセット94に含まれる正解ラベルと層実行部102が出力する出力特徴マップ(すなわち、順伝播装置100が出力する出力特徴マップ)とを用いて損失(loss)を算出する損失関数である。
ヒートマップ生成部205は、第2の損失関数Lossmaskの計算に必要な正解ヒートマップ
Figure 0007670142000012
を生成する。第2の損失関数Lossmaskは、マスクユニット110の重みを学習するために計算される損失関数であり、後述するマスク損失計算部206によって計算される。ヒートマップ生成部205は、正解ラベルにより特定される座標の位置に対応するように二次元正規分布を配置することにより、正解ヒートマップを生成する。より詳細には、ヒートマップ生成部205は、二次元の正規分布が配置されたヒートマップ(二次元画像)であって、検知対象の位置において正規分布の最大値が存在するようなヒートマップを生成する。
図9は、ヒートマップ生成部205による正解ヒートマップの生成例について示す模式図である。例えば、順伝播装置100によって人物姿勢推定を行う場合、正解ラベルに示される関節点座標に、二次元の正規分布の最大値が重なるように正規分布を配置することで、正解ヒートマップ
Figure 0007670142000013
を生成できる。すなわち、この場合、ヒートマップ生成部205は、人物姿勢推定のための正解ラベルに示される人間の関節点の座標において、二次元正規分布の最大値が存在するヒートマップを正解ヒートマップとして生成する。なお、人物姿勢推定の場合、正解ヒートマップの特徴マップ数Jは検知対象の関節点の数と同じである。すなわち、各関節点に対応する特徴マップが生成される。
また、例えば、順伝播装置100によって物体検出を行う場合、正解ラベルに示される矩形(物体を囲むバウンディングボックス)にあわせて二次元正規分布を変形するとともに、バウンディングボックス内の位置(重心)に正規分布の最大値が重なるように正規分布を配置することで正解ヒートマップ
Figure 0007670142000014
を生成できる。二次元正規分布の変形では、分散の調整が行われる。例えば、図9に示すように、人に対応する矩形は縦長であるため、人の検出についての正解ヒートマップの生成では、y方向の分散を大きくするよう二次元正規分布が変形される。このように、順伝播装置100によって物体検出を行う場合、ヒートマップ生成部205は、物体検出のための正解ラベルに示される矩形領域内において、二次元正規分布の最大値が存在するヒートマップを正解ヒートマップとして生成する。なお、物体検出の場合、正解ヒートマップの特徴マップ数Jは物体検出で用いられるクラスの数(物体の種類の数)と同じである。すなわち、各クラスに対応する特徴マップが生成される。
また、順伝播装置100によって意味的領域分割を行う場合、ヒートマップ生成部205は、まず、正解ラベルに示される各物体の物体領域からこの物体領域を囲む矩形を算出する。そして、ヒートマップ生成部205は、この矩形にあわせて二次元正規分布を変形するとともに、矩形内の位置(重心)に正規分布の最大値が重なるように正規分布を配置し、さらに正解ラベルに応じてトリミングをすることで正解ヒートマップ
Figure 0007670142000015
を生成する。すなわち、ヒートマップ生成部205は、正解ラベルに示される物体領域の外側に対応する座標の値がゼロであるヒートマップを生成する。なお、順伝播装置100によって意味的領域分割を行う場合における、ヒートマップ生成部205による二次元正規分布の変形処理は、順伝播装置100によって物体検出を行う場合におけるそれと同じである。このように、順伝播装置100によって意味的領域分割を行う場合、ヒートマップ生成部205は、次のような処理をする。ヒートマップ生成部205は、意味的領域分割のための正解ラベルに示される領域を囲む矩形領域内において、二次元正規分布の最大値が存在するとともに、正解ラベルに示される領域の外側の値をゼロに設定したヒートマップを正解ヒートマップとして生成する。なお、意味的領域分割の場合、正解ヒートマップの特徴マップ数Jは意味的領域分割で用いられるクラスの数(意味の種類の数)と同じである。すなわち、各クラスに対応する特徴マップが生成される。
マスク損失計算部206は、第2の損失関数Lossmaskの計算を行う。図8に示すように、Lossmaskは、スパースCNN(順伝播装置100)に含まれるm個のマスクユニット110が生成したマスクヒートマップ
Figure 0007670142000016
とヒートマップ生成部205が生成した正解ヒートマップ
Figure 0007670142000017
を用いて計算される。マスク損失計算部206は、第2の損失関数Lossmaskの計算として、マスクユニット110が生成したマスクヒートマップとヒートマップ生成部205が生成した正解ヒートマップの差分を計算する。マスク損失計算部206は、例えば、平均二乗誤差(MSE: Mean Squared Error)を用いて、以下の式(6)のように表されるLossmaskを計算する。
<式(6)>
Figure 0007670142000018
ここで、
Figure 0007670142000019
は、m個のマスクユニット110のうちのj番目のマスクユニット110のマスクヒートマップであり、
Figure 0007670142000020
である。
スパースCNNの全体の損失関数Lossallは、以下の式(7)に示されるように、LossmainとLossmaskの重み付き和で定義する。
<式(7)>
Figure 0007670142000021
ここで、α(0<α)は、LossmaskとLossmainのバランスを調整するためのパラメタである。本実施の形態のように、正解ラベルを用いて算出されるLossmaskを用いることで、畳み込みを実行するピクセルを表す二次元の二値マスクの学習を、精度よく行うことができる。
パラメタ更新部207は、式(7)で示される損失関数を用いて誤差逆伝播を行い、スパースCNNの重みなどのパラメタを更新する。
また、学習終了判定部208は、所定の学習終了条件が満たされたか否かを判定し、学習終了条件が満たされた場合、学習されたパラメタ(重み)の値を出力するよう制御する。
図10は、学習装置200の動作例を示すフローチャートである。以下、図10を参照しつつ、上述した学習装置200の構成要素の処理の流れについて説明する。
ステップS1において、学習の実施に先だって、学習装置200は、スパースCNNのモデル構造93を記憶装置から読み出す。次に、ステップS2において、初期化部201がパラメタ(重み)の初期化を行う。次に、ステップS3において、前処理部202が、入力画像に対して、所定の前処理を行う。次に、ステップS4において、順伝播部203は、前処理が行われた入力画像と、スパースCNNのモデル構造93とを用いて、順伝播処理を行う。ステップS5において、損失計算部204が、第1の損失関数Lossmainの計算を行う。そして、ステップS6において、ヒートマップ生成部205は、データセット94に含まれる正解ラベルに基づいて、正解ヒートマップを生成する。ステップS7において、マスク損失計算部206が、第2の損失関数Lossmaskの計算を行う。その後、ステップS8において、パラメタ更新部207が、誤差逆伝播を行うことによりパラメタを更新する。次に、ステップS9において、学習終了判定部208は、所定の学習終了条件が満たされたか否かを判定する。例えば、学習終了判定部208は、予め設定した回数、一連の処理が繰り返されたか否かを判定する。所定の学習終了条件が満たされていない場合、処理はステップS3に戻る。これにより、データセット94内の様々な画像に対して一連の処理が繰り返されることとなる。所定の学習終了条件が満たされた場合には、処理はステップS10に進む。ステップS10において、学習装置200は、スパースCNNの重み(マスクユニット110の畳み込み層の重み及び層実行部102のスパース畳み込み層の重み)等のパラメタを学習済み重み95として出力する。したがって、順伝播装置100が推論を行う際には、学習装置200により学習された重みが用いられる。
次に、順伝播装置100及び学習装置200のハードウェア構成の例について説明する。図11は、順伝播装置100及び学習装置200のハードウェア構成の一例を示すブロック図である。図11に示すように、順伝播装置100及び学習装置200は、入出力インタフェース301、メモリ302、及びプロセッサ303を含む。
入出力インタフェース301は、必要に応じて他の装置と通信可能に接続するためのインタフェースである。
メモリ302は、例えば、揮発性メモリ及び不揮発性メモリの組み合わせによって構成される。メモリ302は、プロセッサ303により実行される、1以上の命令を含むソフトウェア(コンピュータプログラム)、及び各種処理に用いるデータなどを格納するために使用される。
プロセッサ303は、メモリ302からソフトウェア(コンピュータプログラム)を読み出して実行することで、上述した各構成要素の処理を行う。プロセッサ303は、例えば、マイクロプロセッサ、MPU(Micro Processor Unit)、又はCPU(Central Processing Unit)などであってもよい。プロセッサ303は、複数のプロセッサを含んでもよい。
このように、順伝播装置100及び学習装置200は、コンピュータとしての機能を備えている。
プログラムは、コンピュータに読み込まれた場合に、実施形態で説明された1又はそれ以上の機能をコンピュータに行わせるための命令群(又はソフトウェアコード)を含む。プログラムは、非一時的なコンピュータ可読媒体又は実体のある記憶媒体に格納されてもよい。限定ではなく例として、コンピュータ可読媒体又は実体のある記憶媒体は、random-access memory(RAM)、read-only memory(ROM)、フラッシュメモリ、solid-state drive(SSD)又はその他のメモリ技術、CD-ROM、digital versatile disc(DVD)、Blu-ray(登録商標)ディスク又はその他の光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ又はその他の磁気ストレージデバイスを含む。プログラムは、一時的なコンピュータ可読媒体又は通信媒体上で送信されてもよい。限定ではなく例として、一時的なコンピュータ可読媒体又は通信媒体は、電気的、光学的、音響的、またはその他の形式の伝搬信号を含む。
以上、実施の形態について説明した。本実施の形態によれば、二値マスク生成部101により生成された二値マスクによって、スパース畳み込み層120における積和演算の一部を省略した高速な処理を実現することが可能になる。より詳細には、検知対象が存在する領域(すなわち、前景領域)について積和演算を行ない、その他の領域(背景領域)については積和演算を省略することが可能になる。また、特に、二値マスクの生成のためのパラメタは、正解ラベルを用いて学習されている。より詳細には、正解データに示される物体の形状に基づいて生成されたヒートマップと、ニューラルネットワークが生成したヒートマップとを比較することにより、検知対象の形状に対応する二値マスクを生成するニューラルネットワークの学習が行われる。このため、精度よく前景領域を特定することが可能となる。また、上述の通り、マスクユニット110は、解像度調整部113及び拡張マスク生成部115を備えており、処理負荷を抑制しつつ様々な二値マスクを生成できる。このため、二値マスクの生成に要する時間を抑えることができる。また、本実施の形態では、二値マスクは、CNNモデルよりも簡易な構造であるマスクユニット110により生成されるため、CNNモデルにより二値マスクを生成する場合に比べ処理速度を向上することができる。
<実施の形態2>
次に、実施の形態2について説明する。実施の形態2は、実施の形態1の特徴的な要素から構成される実施の形態である。図12は、実施の形態2にかかる情報処理システム1の構成の一例を示すブロック図である。情報処理システム1は、ニューラルネットワークの順伝播装置2と、順伝播装置2のための学習装置3とを備える。
順伝播装置2は、二値マスクを生成するマスク生成部4と、二値マスクの各座標の値にしたがってスパース畳み込み層の演算を行う層実行部5とを含んで構成されている。特に、マスク生成部4は、次のように二値マスクを生成する。マスク生成部4は、入力特徴マップに対して畳み込み層の演算を行うことにより、所定数の第1のヒートマップを生成する。ここで、所定数とは、ニューラルネットワークの検知対象の種類の数である。次に、マスク生成部4は、上記所定数の第1のヒートマップの値を座標毎に合計することにより、上記所定数の第1のヒートマップを1枚のヒートマップに合成した合成ヒートマップを生成する。そして、マスク生成部4は、合成ヒートマップの各座標の値を所定の閾値を用いて二値化することにより二値マスクを生成する。
学習装置3は、第1のヒートマップ取得部6と、第2のヒートマップ取得部7と、損失計算部8と、更新部9とを含んで構成されている。第1のヒートマップ取得部6は、順伝播装置2で生成される上記所定数の第1のヒートマップを取得する。第2のヒートマップ取得部7は、検知対象の正解ラベルに基づいて生成された上記所定数の第2のヒートマップを取得する。損失計算部8は、第1のヒートマップ取得部6が取得した第1のヒートマップと第2のヒートマップ取得部7が取得した第2のヒートマップの差分を計算する。そして、更新部9は、損失計算部8により計算された差分に基づいて、順伝播装置2で第1のヒートマップを生成するための畳み込み層の重みの値を更新する。
本実施の形態によれば、学習装置3により二値マスクを生成するための学習が行われ、順伝播装置2はこの二値マスクを用いて、積和演算の一部を省略した高速な処理を実現することが可能になる。
以上、実施の形態を参照して本願発明を説明したが、本願発明は上記によって限定されるものではない。本願発明の構成や詳細には、発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
上記の実施形態の一部又は全部は、以下の付記のようにも記載され得るが、以下には限られない。
(付記1)
ニューラルネットワークの順伝播装置であって、
二値マスクを生成するマスク生成手段と、
前記二値マスクの各座標の値にしたがってスパース畳み込み層の演算を行う層実行手段と、
を有し、
前記マスク生成手段は、
入力特徴マップに対して畳み込み層の演算を行うことにより、前記ニューラルネットワークの検知対象の種類の数のヒートマップを生成し、
ヒートマップの値を座標毎に合計することにより、検知対象の種類の数のヒートマップを1枚のヒートマップに合成した合成ヒートマップを生成し、
前記合成ヒートマップの各座標の値を所定の閾値を用いて二値化することにより前記二値マスクを生成する
順伝播装置。
(付記2)
検知対象の種類の数のヒートマップを生成するための前記畳み込み層の重みの値は、正解ラベルに基づいて生成されたヒートマップを用いて機械学習された値である
付記1に記載の順伝播装置。
(付記3)
前記マスク生成手段は、さらに、前記スパース畳み込み層の解像度に応じて、前記合成ヒートマップの解像度を変更する
付記1又は2に記載の順伝播装置。
(付記4)
前記マスク生成手段は、連続する前記スパース畳み込み層の最終層の演算のために前記二値マスクを生成し、さらに、生成された前記二値マスクから、前記最終層の前段の前記スパース畳み込み層の演算のための二値マスクを生成する
付記1乃至3のいずれか一項に記載の順伝播装置。
(付記5)
前記検知対象の種類の数は、前記ニューラルネットワークによって座標が検知される人間の関節点の種類の数である
付記1乃至4のいずれか一項に記載の順伝播装置。
(付記6)
前記検知対象の種類の数は、前記ニューラルネットワークによる物体検出で用いられるクラスの数である
付記1乃至4のいずれか一項に記載の順伝播装置。
(付記7)
前記検知対象の種類の数は、前記ニューラルネットワークによる意味的領域分割で用いられるクラスの数である
付記1乃至4のいずれか一項に記載の順伝播装置。
(付記8)
ニューラルネットワークの順伝播装置のための学習装置であって、
前記順伝播装置で生成される、前記ニューラルネットワークの検知対象の種類の数の第1のヒートマップを取得する第1のヒートマップ取得手段と、
前記検知対象の正解ラベルに基づいて生成された前記検知対象の種類の数の第2のヒートマップを取得する第2のヒートマップ取得手段と、
前記第1のヒートマップと前記第2のヒートマップの差分を計算する損失計算手段と、
計算された前記差分に基づいて、前記順伝播装置で前記第1のヒートマップを生成するための畳み込み層の重みの値を更新する更新手段と
を有し、
前記順伝播装置は、二値マスクを生成して、生成した前記二値マスクの各座標の値にしたがってスパース畳み込み層の演算を行う装置であり、
前記順伝播装置は、前記二値マスクの生成の処理において、
入力特徴マップに対して畳み込み層の演算を行うことにより、前記ニューラルネットワークの検知対象の種類の数の前記第1のヒートマップを生成し、
前記検知対象の種類の数の前記第1のヒートマップの値を座標毎に合計することにより、前記検知対象の種類の数の前記第1のヒートマップを1枚のヒートマップに合成した合成ヒートマップを生成し、
前記合成ヒートマップの各座標の値を所定の閾値を用いて二値化することにより前記二値マスクを生成する
学習装置。
(付記9)
前記正解ラベルにより特定される座標の位置に対応するように二次元正規分布を配置することにより、前記第2のヒートマップとしてのヒートマップを生成する正解ヒートマップ生成手段をさらに有する
付記8に記載の学習装置。
(付記10)
前記正解ヒートマップ生成手段は、前記ニューラルネットワークを用いた人物姿勢推定のための正解ラベルに示される人間の関節点の座標において、前記二次元正規分布の最大値が存在するヒートマップを前記第2のヒートマップとして生成する
付記9に記載の学習装置。
(付記11)
前記正解ヒートマップ生成手段は、前記ニューラルネットワークを用いた物体検出のための正解ラベルに示される矩形領域内において、前記二次元正規分布の最大値が存在するヒートマップを前記第2のヒートマップとして生成する
付記9に記載の学習装置。
(付記12)
前記正解ヒートマップ生成手段は、前記ニューラルネットワークを用いた意味的領域分割のための正解ラベルに示される領域を囲む矩形領域内において、前記二次元正規分布の最大値が存在するとともに、前記正解ラベルに示される前記領域の外側の値をゼロに設定したヒートマップを前記第2のヒートマップとして生成する
付記9に記載の学習装置。
(付記13)
ニューラルネットワークの順伝播装置と、
前記順伝播装置のための学習装置と
を備え、
前記順伝播装置は、
二値マスクを生成するマスク生成手段と、
前記二値マスクの各座標の値にしたがってスパース畳み込み層の演算を行う層実行手段と、
を有し、
前記マスク生成手段は、
入力特徴マップに対して畳み込み層の演算を行うことにより、前記ニューラルネットワークの検知対象の種類の数の第1のヒートマップを生成し、
検知対象の種類の数の前記第1のヒートマップの値を座標毎に合計することにより、検知対象の種類の数の前記第1のヒートマップを1枚のヒートマップに合成した合成ヒートマップを生成し、
前記合成ヒートマップの各座標の値を所定の閾値を用いて二値化することにより前記二値マスクを生成し、
前記学習装置は、
前記順伝播装置で生成される、前記ニューラルネットワークの検知対象の種類の数の前記第1のヒートマップを取得する第1のヒートマップ取得手段と、
前記検知対象の正解ラベルに基づいて生成された前記検知対象の種類の数の第2のヒートマップを取得する第2のヒートマップ取得手段と、
前記第1のヒートマップと前記第2のヒートマップの差分を計算する損失計算手段と、
計算された前記差分に基づいて、前記順伝播装置で前記第1のヒートマップを生成するための前記畳み込み層の重みの値を更新する更新手段と
を有する
情報処理システム。
(付記14)
前記学習装置は、前記正解ラベルにより特定される座標の位置に対応するように二次元正規分布を配置することにより、前記第2のヒートマップとしてのヒートマップを生成する正解ヒートマップ生成手段をさらに有する
付記13に記載の情報処理システム。
(付記15)
ニューラルネットワークの順伝播装置の処理方法であって、
二値マスクを生成し、
前記二値マスクの各座標の値にしたがってスパース畳み込み層の演算を行い、
前記二値マスクの生成の処理において、
入力特徴マップに対して畳み込み層の演算を行うことにより、前記ニューラルネットワークの検知対象の種類の数のヒートマップを生成し、
ヒートマップの値を座標毎に合計することにより、検知対象の種類の数のヒートマップを1枚のヒートマップに合成した合成ヒートマップを生成し、
前記合成ヒートマップの各座標の値を所定の閾値を用いて二値化することにより前記二値マスクを生成する
処理方法。
(付記16)
ニューラルネットワークの順伝播装置のコンピュータに、
二値マスクを生成するマスク生成ステップと、
前記二値マスクの各座標の値にしたがってスパース畳み込み層の演算を行う層実行ステップと、
を実行させ、
前記マスク生成ステップにおいて、
入力特徴マップに対して畳み込み層の演算を行うことにより、前記ニューラルネットワークの検知対象の種類の数のヒートマップを生成し、
ヒートマップの値を座標毎に合計することにより、検知対象の種類の数のヒートマップを1枚のヒートマップに合成した合成ヒートマップを生成し、
前記合成ヒートマップの各座標の値を所定の閾値を用いて二値化することにより前記二値マスクを生成する
プログラムが格納された非一時的なコンピュータ可読媒体。
1 情報処理システム
2 順伝播装置
3 学習装置
4 マスク生成部
5 層実行部
6 第1のヒートマップ取得部
7 第2のヒートマップ取得部
8 損失計算部
9 更新部
91 入力画像
92 出力結果
93 モデル構造
94 データセット
100 順伝播装置
101 二値マスク生成部
102 層実行部
110 マスクユニット
111 畳み込み層実行部
112 合計処理部
113 解像度調整部
114 二値化部
115 拡張マスク生成部
120 スパース畳み込み層
200 学習装置
201 初期化部
202 前処理部
203 順伝播部
204 損失計算部
205 ヒートマップ生成部
206 マスク損失計算部
207 パラメタ更新部
208 学習終了判定部
301 入出力インタフェース
302 メモリ
303 プロセッサ

Claims (10)

  1. ニューラルネットワークの順伝播装置であって、
    二値マスクを生成するマスク生成手段と、
    前記二値マスクの各座標の値にしたがってスパース畳み込み層の演算を行う層実行手段と、
    を有し、
    前記マスク生成手段は、
    入力特徴マップに対して畳み込み層の演算を行うことにより、前記ニューラルネットワークの検知対象の種類の数に対応する複数のヒートマップを生成し、
    ヒートマップの値を座標毎に合計することにより、前記複数のヒートマップを1枚のヒートマップに合成した合成ヒートマップを生成し、
    前記合成ヒートマップの各座標の値を所定の閾値を用いて二値化することにより前記二値マスクを生成する
    順伝播装置。
  2. 前記複数のヒートマップを生成するための前記畳み込み層の重みの値は、正解ラベルに基づいて生成された前記検知対象の種類の数に対応する複数のヒートマップを用いて機械学習された値である
    請求項1に記載の順伝播装置。
  3. 前記マスク生成手段は、さらに、前記スパース畳み込み層の解像度に応じて、前記合成ヒートマップの解像度を変更する
    請求項1又は2に記載の順伝播装置。
  4. 前記マスク生成手段は、連続する前記スパース畳み込み層の最終層の演算のために前記二値マスクを生成し、さらに、生成された前記二値マスクから、前記最終層の前段の前記スパース畳み込み層の演算のための二値マスクを生成する
    請求項1乃至3のいずれか一項に記載の順伝播装置。
  5. 前記検知対象の種類の数は、前記ニューラルネットワークによって座標が検知される人間の関節点の種類の数である
    請求項1乃至4のいずれか一項に記載の順伝播装置。
  6. 前記検知対象の種類の数は、前記ニューラルネットワークによる物体検出で用いられるクラスの数である
    請求項1乃至4のいずれか一項に記載の順伝播装置。
  7. 前記検知対象の種類の数は、前記ニューラルネットワークによる意味的領域分割で用いられるクラスの数である
    請求項1乃至4のいずれか一項に記載の順伝播装置。
  8. ニューラルネットワークの順伝播装置のための学習装置であって、
    前記順伝播装置で生成される、前記ニューラルネットワークの検知対象の種類の数に対応する複数の第1のヒートマップを取得する第1のヒートマップ取得手段と、
    前記検知対象の正解ラベルに基づいて生成された前記検知対象の種類の数に対応する複数の第2のヒートマップを取得する第2のヒートマップ取得手段と、
    前記第1のヒートマップと前記第2のヒートマップの差分を計算する損失計算手段と、
    計算された前記差分に基づいて、前記順伝播装置で前記第1のヒートマップを生成するための畳み込み層の重みの値を更新する更新手段と
    を有し、
    前記順伝播装置は、二値マスクを生成して、生成した前記二値マスクの各座標の値にしたがってスパース畳み込み層の演算を行う装置であり、
    前記順伝播装置は、前記二値マスクの生成の処理において、
    入力特徴マップに対して畳み込み層の演算を行うことにより、前記ニューラルネットワークの検知対象の種類の数に対応する複数の前記第1のヒートマップを生成し、
    前記複数の第1のヒートマップの値を座標毎に合計することにより、前記複数の第1のヒートマップを1枚のヒートマップに合成した合成ヒートマップを生成し、
    前記合成ヒートマップの各座標の値を所定の閾値を用いて二値化することにより前記二値マスクを生成する
    学習装置。
  9. ニューラルネットワークの順伝播装置の処理方法であって、
    二値マスクを生成し、
    前記二値マスクの各座標の値にしたがってスパース畳み込み層の演算を行い、
    前記二値マスクの生成の処理において、
    入力特徴マップに対して畳み込み層の演算を行うことにより、前記ニューラルネットワークの検知対象の種類の数に対応する複数のヒートマップを生成し、
    ヒートマップの値を座標毎に合計することにより、前記複数のヒートマップを1枚のヒートマップに合成した合成ヒートマップを生成し、
    前記合成ヒートマップの各座標の値を所定の閾値を用いて二値化することにより前記二値マスクを生成する
    処理方法。
  10. ニューラルネットワークの順伝播装置のコンピュータに、
    二値マスクを生成するマスク生成ステップと、
    前記二値マスクの各座標の値にしたがってスパース畳み込み層の演算を行う層実行ステップと、
    を実行させ、
    前記マスク生成ステップにおいて、
    入力特徴マップに対して畳み込み層の演算を行うことにより、前記ニューラルネットワークの検知対象の種類の数に対応する複数のヒートマップを生成し、
    ヒートマップの値を座標毎に合計することにより、前記複数のヒートマップを1枚のヒートマップに合成した合成ヒートマップを生成し、
    前記合成ヒートマップの各座標の値を所定の閾値を用いて二値化することにより前記二値マスクを生成する
    プログラム。
JP2023543556A 2021-08-25 2021-08-25 順伝播装置、学習装置、処理方法、及びプログラム Active JP7670142B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2021/031184 WO2023026404A1 (ja) 2021-08-25 2021-08-25 順伝播装置、学習装置、情報処理システム、処理方法、及びプログラムが格納された非一時的なコンピュータ可読媒体

Publications (3)

Publication Number Publication Date
JPWO2023026404A1 JPWO2023026404A1 (ja) 2023-03-02
JPWO2023026404A5 JPWO2023026404A5 (ja) 2024-04-17
JP7670142B2 true JP7670142B2 (ja) 2025-04-30

Family

ID=85321882

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2023543556A Active JP7670142B2 (ja) 2021-08-25 2021-08-25 順伝播装置、学習装置、処理方法、及びプログラム

Country Status (3)

Country Link
US (1) US20250139441A1 (ja)
JP (1) JP7670142B2 (ja)
WO (1) WO2023026404A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7718268B2 (ja) * 2021-12-28 2025-08-05 コニカミノルタ株式会社 画像処理装置、画像処理方法および画像処理プログラム

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020194446A (ja) 2019-05-29 2020-12-03 株式会社アーク情報システム プログラム、情報処理方法及び情報処理装置
WO2021079441A1 (ja) 2019-10-23 2021-04-29 富士通株式会社 検出方法、検出プログラム及び検出装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020194446A (ja) 2019-05-29 2020-12-03 株式会社アーク情報システム プログラム、情報処理方法及び情報処理装置
WO2021079441A1 (ja) 2019-10-23 2021-04-29 富士通株式会社 検出方法、検出プログラム及び検出装置

Also Published As

Publication number Publication date
WO2023026404A1 (ja) 2023-03-02
JPWO2023026404A1 (ja) 2023-03-02
US20250139441A1 (en) 2025-05-01

Similar Documents

Publication Publication Date Title
US11301719B2 (en) Semantic segmentation model training methods and apparatuses, electronic devices, and storage media
US11501415B2 (en) Method and system for high-resolution image inpainting
EP3979200B1 (en) Video target tracking method and apparatus, computer device and storage medium
CN109064514B (zh) 一种基于投影点坐标回归的六自由度位姿估计方法
CN110930454A (zh) 一种基于边界框外关键点定位的六自由度位姿估计算法
CN112084849B (zh) 图像识别方法和装置
CN111915660A (zh) 基于共享特征和注意力上采样的双目视差匹配方法及系统
WO2020049276A1 (en) System and method for facial landmark localisation using a neural network
US20250157055A1 (en) Method and apparatus with scene flow estimation
CN119323741B (zh) 基于时空关联的无人机视频目标检测方法及系统
CN114565953A (zh) 图像处理方法、装置、电子设备及计算机可读存储介质
CN114694119B (zh) 基于重参数化和特征加权的交通标志检测方法及相关装置
JP7670142B2 (ja) 順伝播装置、学習装置、処理方法、及びプログラム
CN116152100B (zh) 基于特征分析和尺度选择的点云去噪方法、装置及存储介质
US12561754B2 (en) Method and system for processing image based on weighted multiple kernels
CN109726769B (zh) 一种基于卷积核权重参数的目标分类和角度估计方法
KR102726834B1 (ko) 인공지능 기반의 사람 자세 추정 장치 및 방법
CN115187834A (zh) 一种票据识别的方法及装置
CN114764936A (zh) 图像关键点检测方法及相关设备
US11393069B2 (en) Image processing apparatus, image processing method, and computer readable recording medium
CN116973934B (zh) 一种结合相关滤波和势能匹配的目标跟踪方法及系统
CN114078149A (zh) 一种图像估计方法、电子设备及存储介质
EP4187483A1 (en) Apparatus and method with image processing
CN114821068B (zh) 全景分割和深度确定的处理方法、装置、设备和介质
CN115082295B (zh) 一种基于自注意力机制的图像编辑方法及装置

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240126

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20240126

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20241217

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20250214

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20250318

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20250331

R150 Certificate of patent or registration of utility model

Ref document number: 7670142

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150