JP2021144428A - データ処理装置、データ処理方法 - Google Patents

データ処理装置、データ処理方法 Download PDF

Info

Publication number
JP2021144428A
JP2021144428A JP2020042183A JP2020042183A JP2021144428A JP 2021144428 A JP2021144428 A JP 2021144428A JP 2020042183 A JP2020042183 A JP 2020042183A JP 2020042183 A JP2020042183 A JP 2020042183A JP 2021144428 A JP2021144428 A JP 2021144428A
Authority
JP
Japan
Prior art keywords
filter
data processing
layer
data
unit
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.)
Pending
Application number
JP2020042183A
Other languages
English (en)
Other versions
JP2021144428A5 (ja
Inventor
ソクイ チン
Tsewei Chen
ソクイ チン
政美 加藤
Masami Kato
政美 加藤
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2020042183A priority Critical patent/JP2021144428A/ja
Priority to US17/191,777 priority patent/US20210287070A1/en
Publication of JP2021144428A publication Critical patent/JP2021144428A/ja
Publication of JP2021144428A5 publication Critical patent/JP2021144428A5/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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; CALCULATING OR 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • General Health & Medical Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Neurology (AREA)
  • Complex Calculations (AREA)
  • Image Processing (AREA)
  • Image Analysis (AREA)

Abstract

【課題】 参照するデータの範囲を拡大してフィルタ処理を行うケースにおいて、該フィルタ処理で用いるフィルタ係数の転送量を削減するための技術を提供すること。【解決手段】 転送されたフィルタのフィルタ係数を保持し、該保持されたフィルタ係数を順に読み出しながら、前記転送されたフィルタのサイズを拡大した拡大フィルタを生成し、該拡大フィルタにおけるフィルタ係数を用いて畳み込み処理を行う。【選択図】 図4

Description

本発明は、フィルタ処理技術に関するものである。
近年、深層学習の進歩により、画像認識の精度が上がっている。畳み込みニューラルネットワーク(CNN:Convolutional Neural Network)は、深層学習に用いられる手法として知られている。
CNNでは、複数のレイヤが階層的に接続されており、各レイヤの中には複数枚の特徴画像がある。図2に、レイヤ数が「4」で、各レイヤの中に特徴画像が4枚あるCNNのネットワーク構成の一例を示す。CNNでは、特徴画像の画素(特徴データ)に対して、学習したフィルタ係数(重み係数)を用いてフィルタ処理の結果を計算する。フィルタ処理は積和演算であり、複数の乗算と累積加算を含んでいる。図2の矢印は積和演算を意味する。
現レイヤの中の特徴画像は前レイヤの中の特徴画像と前レイヤに対応するフィルタ係数を用いて計算する。現レイヤの中の1枚の特徴画像を計算するためには、前レイヤの中の複数枚の特徴画像の情報が必要である。現レイヤの中の特徴画像を求めるための積和演算は以下の式(1)に従って行われる。
Figure 2021144428
ここで、nは現レイヤ中の特徴画像のインデックスであり、m(m=1〜M)は前レイヤ中の特徴画像のインデックスである。Oi,j(n)は、現レイヤにおけるインデックス=nの特徴画像中の位置(i,j)における特徴データ(積和演算結果)を示す。Ii,j(m)は、前レイヤにおけるインデックス=mの特徴画像中の位置(i,j)における特徴データを示す。Cx,y(m,n)は、現レイヤにおけるインデックス=nの特徴画像と前レイヤにおけるインデックス=mの特徴画像中の位置(x、y)の特徴データとの間のフィルタ係数を示す。式(1)では、フィルタ係数(C0,0(m,n)〜CX−1,Y−1(m,n))は(X×Y)個あり、特徴画像によって異なる。X,Yは参照範囲を示す変数である。現レイヤの特徴データを計算するための積和演算回数は(M×X×Y)回である。
フィルタ処理をした後に、ネットワーク構造に基づき、積和演算結果Oi,j(n)を用いて活性化処理やプーリング等の処理を行い、現レイヤの特徴画像を計算する。
CNNは画像分割にも適用されている。非特許文献1に記載の拡張畳み込み処理(Dilated Convolution)は、画像分割の精度を向上させるための技術である。拡張畳み込み処理を行う場合、積和演算は以下の式(2)に従って行われる。
Figure 2021144428
ここで、変数Dは拡張畳み込み処理の倍率である。変数Dが1の場合、式(2)は式(1)と同じ式になる。変数Dの値が大きいほど、前レイヤの特徴画像における参照範囲が広い。拡張した後に、参照範囲は(X×Y)から〔D×(X−1)+1〕×〔D×(Y−1)+1〕になる。この演算では、フィルタ係数を飛ばさずに処理するが、特徴画像の特徴データを(D−1)個おきに処理するため、水平方向または垂直方向の特徴データを飛ばしながら参照する。
CNNは積和演算の回数が多いため、携帯端末や車載機器等の組み込みシステムに適用する場合、特徴データとフィルタ係数の転送量を削減し、積和演算を効率的に行い、全体的な処理時間を短縮しなければならない。特許文献1では、複数の特徴データを並列に処理する構成が提案されている。
特開2018−67154号公報
Y. Wei, et al.,"Revisiting Dilated Convolution: A Simple Approach for Weakly− and Semi− Supervised Semantic Segmentation," IEEE/CVF Conference on Computer Vision and Pattern Recognition, 2018.
特許文献1に記載の手法では、複数の異なる特徴データと共通のフィルタ係数を用いて出力データを並列に計算する。しがしながら、非特許文献1に記載の拡張畳み込み処理(Dilated Convolution)のような処理をする場合、前レイヤにおける特徴画像の特徴データを飛ばしながら参照することができない。特徴データを保持するためのレジスタを飛ばし先の特徴データを保持するためのレジスタと繋げる必要があるため、制御と配線が複雑になる。また、拡張畳み込み処理のためにフィルタサイズを大きくし、フィルタを拡張する場合、フィルタ係数の転送量が大きくなるという課題がある。本発明では、参照するデータの範囲を拡大してフィルタ処理を行うケースにおいて、該フィルタ処理で用いるフィルタ係数の転送量を削減するための技術を提供する。
本発明の一様態は、転送されたフィルタのフィルタ係数を保持する保持手段と、前記保持手段に保持されたフィルタ係数を順に読み出しながら、前記転送されたフィルタのサイズを拡大した拡大フィルタを生成する生成手段と、前記拡大フィルタにおけるフィルタ係数を用いて畳み込み処理を行う演算手段とを備えることを特徴とする。
本発明の構成によれば、参照するデータの範囲を拡大してフィルタ処理を行うケースにおいて、該フィルタ処理で用いるフィルタ係数の転送量を削減することができる。
データ処理装置によるフィルタ処理のフローチャート。 階層型ニューラルネットワーク(CNN)の構成例を示す図。 データ処理装置のハードウェア構成例を示すブロック図。 処理部305の構成例を示すブロック図。 拡張フィルタにおける有効係数と処理時間の例を示す図。 拡張前後のフィルタの例を示す図。 処理部305の構成例を示すブロック図。 階層型ニューラルネットワークにおける畳み込み処理の一例を示す図。 ステップS108における処理の詳細を示すフローチャート。 拡張前のフィルタのサイズが3×3で、拡張畳み込み処理の倍率D=2の例を示す図。 保持部402、保持部404、演算部406の詳細な構成例を示すブロック図。 演算部406の構成例を示す図。
以下、添付図面を参照して実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る発明を限定するものではない。実施形態には複数の特徴が記載されているが、これらの複数の特徴の全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。さらに、添付図面においては、同一若しくは同様の構成に同一の参照番号を付し、重複した説明は省略する。
[第1の実施形態]
まず、複数のデータに対してフィルタ処理を行うフィルタ処理装置として機能するデータ処理装置のハードウェア構成例について、図3のブロック図を用いて説明する。このようなデータ処理装置には、PC(パーソナルコンピュータ)、スマートフォン、タブレット端末装置、などのコンピュータ装置を適用することができる。
入力部301は、キーボード、マウス、タッチパネル画面などのユーザインターフェースであり、ユーザが操作することで各種の指示をCPU306に対して入力することができる。
保存部302は、各種のコンピュータプログラムやデータを保存するためのメモリ装置である。保存部302には、例えば、ハードディスク、フレキシブルディスク、CD−ROM、CD−RやDVD、メモリーカード、CFカード、スマートメディア、SDカード、メモリスティック、xDピクチャーカード、USBメモリを適用することができる。保存部302に保存されているコンピュータプログラムには、データ処理装置が行うものとして後述する各処理をCPU306や処理部305に実行もしくは制御させるためのコンピュータプログラムが含まれている。
通信部303は、外部の装置との間のデータ通信を行う。例えば通信部303は、保存部302に保存されているものとして後述する各種の情報を外部の装置から受信して該保存部302に保存してもよい。
表示部304は、液晶画面やタッチパネル画面を有する表示装置であり、CPU306や処理部305による処理結果を画像や文字などでもって表示することができる。なお、表示部304はデータ処理装置が有することに限らず、データ処理装置の外部装置としてもよく、その場合は、表示部304は、有線もしくは無線の通信を介してデータ処理装置と通信可能に該データ処理装置に接続される。また、入力部301と表示部304と一体化させてタッチパネル画面を構成してもよい。
処理部305は、CPU306による制御に従って、RAM308に格納されているデータに対してフィルタ係数を用いた積和演算を行うことで該データに対するフィルタ処理を行う。そして処理部305は、フィルタ処理を行ったデータ(フィルタ処理結果)をRAM308、保存部302などのメモリ装置に格納する。
CPU306は、RAM308やROM307に格納されているコンピュータプログラムやデータを用いて各種の処理を実行する。これによりCPU306は、データ処理装置全体の動作制御を行うとともに、データ処理装置が行うものとして後述する各処理を実行もしくは制御する。なお、図3では、CPU306の個数を1としているが、CPU306の個数は2以上であってもよい。
ROM307には、データ処理装置の起動プログラムや設定データなど、書き換え不要の情報が格納されている。RAM308は、ROM307や保存部302からロードされたコンピュータプログラムやデータ、通信部303が外部の装置から受信したデータ、処理部305から出力されたフィルタ処理結果、を格納するためのエリアを有する。さらにRAM308は、CPU306や処理部305が各種の処理を実行する際に用いるワークエリアを有する。このようにRAM308は、各種のエリアを適宜提供することができる。なお、RAM308における一部のエリアを保存部302として利用しても良い。
また、データ処理装置が外部の装置からコンピュータプログラムを通信部303を介して受信する場合、該コンピュータプログラムを一旦保存部302に保存した後でRAM308に読み込むもしくは通信部303から直接RAM308に読み込んで実行する。
画像処理部309は、CPU306による制御に従って、保存部302に保存されている画像を読みだして該画像における各画素の画素値のレンジ調整等の画像処理を行い、該画像処理を行った画像(画像処理結果)を保存部302やRAM308に出力する。
なお、本実施形態で説明する各種のデータの取得元や出力先は一例であり、本実施形態で説明するデータの取得元や出力先に限定することを意図するものではない。また、図3では、入力部301、保存部302、表示部304が全て1つの装置内に含まれる構成を示しているが、これらの機能部が公知の通信方式による通信路で接続されており、全体としてこのような構成となっているのであっても構わない。このように、図3に示した構成は、以下に説明するフィルタ処理を実施可能な装置に適用可能な構成の一例であり、各種の変形/変更が可能である。
次に、処理部305がフィルタ処理で用いる階層型ニューラルネットワーク(CNN)の構成例について、図2を用いて説明する。図2に示す階層型ニューラルネットワークは、レイヤ1、レイヤ2、レイヤ3、レイヤ4の4つのレイヤを有し、それそれのレイヤは4つの特徴画像を有し、それぞれの特徴画像は、複数の特徴データを含む。図2では、レイヤL(L=1,2,3,4)における特徴画像を「特徴画像(L,i)」(i=1,2,3,4)と表記している。iは特徴画像のインデックスである。前レイヤにおける特徴画像(入力特徴画像)の特徴データとフィルタ係数(重み係数)との積和演算(フィルタ処理)である畳み込み処理を行うことで、現レイヤにおける特徴画像(出力特徴画像)を生成する。フィルタ処理における積和演算(式(2))で使用するフィルタ係数(重み係数)Cを、後述する式(4)の拡大後(拡張後)のフィルタにおけるフィルタ係数C’に置き換えた積和演算を以下の式(3)に示す。
Figure 2021144428
式(3)において式(1)や式(2)と共通する変数については上記の通りであるから、その説明は省略する。フィルタ係数C’x,y(m,n)を以下の式(4)に示す。
Figure 2021144428
x,yがDの倍数の場合、フィルタ係数C’x,y(m,n)の値はフィルタ係数Cx/D,y/D(m,n)と同じであり、有意の値(有効係数)である。一方、x,yがDの倍数ではない場合、フィルタ係数C’x,y(m,n)の値は0になり、計算が省略されることを意味する。ここで、
Figure 2021144428
は床関数であり、X以下の最大の整数を出力する。また、図2には、各レイヤに対するDの値(拡張畳み込み処理の倍率)を示している。拡張前のフィルタのサイズは2×2であり、4個のフィルタ係数を有する。拡張前後のフィルタの例を図6に示す。拡張畳み込み処理の倍率はネットワークの階層毎に異なる。
レイヤ1の拡張畳み込み処理の倍率は1であるので、枠601内に示す如く、拡張の前後でフィルタは拡張(拡大)されず、よって、拡張の前後でフィルタ処理(畳み込み処理)は変わらない。
レイヤ2の拡張畳み込み処理の倍率は2であるので、枠602内に示す如く、拡張後(拡大後)のフィルタのサイズは3×3になり、拡張前のフィルタにおいて縦横に隣接するフィルタ係数間には(倍率−1)=1個の0が挿入される。
レイヤ3の拡張畳み込み処理の倍率は4であるので、枠603内に示す如く、拡張後(拡大後)のフィルタのサイズは5×5になり、拡張前のフィルタにおいて縦横に隣接するフィルタ係数間には(倍率−1)=3個の0が挿入される。
次に、各レイヤにおける特徴画像の生成について説明する。式(3)に基づいてレイヤ1における複数枚の特徴画像とフィルタ係数とを用いた積和演算を行うことで、レイヤ2における複数枚の特徴画像を生成する。次に、式(3)に基づいてレイヤ2における複数枚の特徴画像とフィルタ係数とを用いた積和演算を行うことで、レイヤ3における複数枚の特徴画像を生成する。次に、式(3)に基づいてレイヤ3における複数枚の特徴画像とフィルタ係数とを用いた積和演算を行うことで、レイヤ4における複数枚の特徴画像を生成する。
階層型ニューラルネットワークにおける畳み込み処理の一例を図8に示す。図8に示す如く、レイヤ1の4枚の特徴画像801において同じ位置(黒塗りの矩形で示した位置)から特徴データを抽出し、該特徴データとフィルタ係数との積和演算の結果を、次のレイヤ(レイヤ2)の特徴画像802において該位置と同じ位置(黒塗りの矩形で示した位置)の特徴データとして求める。
次に、上記の処理部305の構成例を、図4のブロック図を用いて説明する。制御部401は、処理部305全体の動作制御を行う。保持部408は、特徴画像における特徴データ、それぞれのフィルタに対応するフィルタ係数、階層型ニューラルネットワークの構造に係る情報である構造情報(各レイヤにおける積和演算の計算量、特徴画像のサイズ、枚数等)を保持している。
保持部402は、制御部401による制御に従って保持部408から読みだされた特徴画像におけるそれぞれの特徴データを保持するためのメモリである。拡張部403は、制御部401による制御に従って保持部408から転送されたフィルタを保持部404に格納する。そして拡張部403は、該格納したフィルタを「現レイヤに対応する倍率」に従って拡張(拡大)した拡張フィルタ(拡大フィルタ)を生成し、該生成した拡張フィルタを保持部404に格納する。
演算部406は、保持部402に格納されている特徴画像と、保持部404に格納されている拡張フィルタと、を用いて上記の式(3)に従った演算処理(フィルタ処理)を行う。
処理部407は、演算部406による演算処理の結果に対して活性化・プーリング処理を行い、該活性化・プーリング処理の結果を、現レイヤにおける特徴画像として出力する。
特徴データは上記の如く保持部402に保持され、順番に移動させて出力される。特徴データを保持部402におけるレジスタに保持する場合、積和演算を式(2)に従って行うと、特徴データを飛ばしながら参照することが困難であるため、本実施形態では、フィルタを拡張した拡張フィルタを用いて式(3)の積和演算を行う。
保持部402、保持部404、演算部406の詳細な構成例について、図11のブロック図を用いて説明する。保持部402は、特徴画像におけるそれぞれの特徴データを保持するために、複数個の格納ユニット1104を有する。保持部404は、フィルタにおけるそれぞれのフィルタ係数を保持するために、複数個の格納ユニット1105を有する。格納ユニット1104は、隣接する格納ユニット1104に特徴データを転送することができる。従来の拡張畳み込み処理の式(式(2))では、特徴データを飛ばして参照するため、格納ユニット1104は隣接しない格納ユニットに特徴データを転送する必要があり、そのための制御と配線が複雑になる。これに対し、本実施形態では、式(3)に従って拡張畳み込み処理を行うため、特徴データを飛ばして転送する必要がなく、そのための制御と配線が、従来よりもシンプルになる。
演算部406は、保持部402および保持部404からデータを読み出すためのアドレス(それぞれ格納ユニット1104および格納ユニット1105)を設定する。そして演算部406における乗算器1101は、保持部402において設定されたアドレスから読みだされた特徴データと、保持部404において設定されたアドレスから読みだされたフィルタ係数と、を用いて上記の式(3)における乗算演算を行う。演算部406における加算器1102は、乗算器1101における乗算結果を用いて上記の式(3)における加算演算を行い、該加算演算の結果を格納ユニット1103に格納されている加算演算の結果に累積加算して該格納ユニット1103に格納する。
次に、本実施形態に係るデータ処理装置によるフィルタ処理について、図1のフローチャートに従って説明する。ステップS101では、制御部401は、保存部302から、「複数枚の画像特徴(入力画像特徴)の特徴データ」、「各フィルタのフィルタ係数」、「構造情報」を読み出して、保持部408に格納する。
ステップS102〜S113の処理は、階層型ニューラルネットワークにおける各レイヤについて行われる。図2の例では、レイヤ1,2,3,4の順にそれぞれのレイヤについてステップS102〜S113の処理が行われる。
ステップS103では、制御部401は、保持部408に格納されている構造情報に応じて、拡張畳み込み処理の倍率Dを設定する。本実施形態では、同じレイヤの倍率Dは同じであるものとするが、同じレイヤでも特徴画像ごとに倍率Dを設定しておき、着目特徴画像に適用するフィルタは該着目特徴画像に対して設定されている倍率Dに応じて拡大するようにしてもよい。また、特徴画像を複数のグループに分けておき、グループ毎に倍率Dを設定しておき、着目特徴画像に適用するフィルタは該着目特徴画像が属するグループに対して設定されている倍率Dに応じて拡大するようにしてもよい。
ステップS104〜S112の処理は、現レイヤにおけるそれぞれの特徴画像(出力特徴画像)について行われる。図2の例では、現レイヤ(インデックス=Lのレイヤ)における特徴画像(L,1)、特徴画像(L,2)、特徴画像(L,3)、特徴画像(L,4)、のそれぞれについて、ステップS104〜S112の処理が行われる。
ステップS105では、制御部401は、演算部406における格納ユニット1103に保持されている畳み込み処理の結果を0に初期化する。ステップS106〜S109の処理は、前レイヤにおけるそれぞれの特徴画像(入力特徴画像)について行われる。
ステップS107では、制御部401は、保持部408から入力特徴画像におけるそれぞれの特徴データを読み出して保持部402に転送する。また、制御部401は、保持部408からフィルタにおけるそれぞれのフィルタ係数を読み出して拡張部403に転送する。
ステップS108では、拡張部403は、転送されたフィルタを保持部404に格納し、該格納したフィルタを、ステップS103で設定された倍率に従って拡張した拡張フィルタを生成し、該拡張フィルタを保持部404に格納する。そして、演算部406は、保持部402に転送された入力特徴画像と、保持部404に格納された拡張フィルタと、を用いて上記の式(3)に従った畳み込み処理(フィルタ処理)を行う。ステップS108では、ステップS114〜S120の処理を行う。ステップS108の詳細については後述する。
ステップS110に処理が進んだ時点で、前レイヤにおけるすべての入力特徴画像についての畳み込み処理が完了している。ステップS110では、処理部407は、前レイヤにおけるすべての入力特徴画像の畳み込み処理の結果に対して、以下の式(5)に従って活性化処理を行う。
Figure 2021144428
ここで、f()は活性化関数であり、xは、畳み込み処理の結果である。この例では、ReLU(Rectified Linear Unit)を用いて活性化関数を実現したが、活性化関数はReLUに限らず、他の非線形の関数または量子化関数で実現してもよい。次に、処理部407は、レイヤの情報に応じて、活性化処理結果に基づいてプーリング処理を行い、必要に応じて出力特徴画像のサイズを調整する。
ステップS111では、処理部407は、ステップS110における処理で生成された出力特徴画像を、次のレイヤにおける出力特徴画像を求めるために入力特徴画像として用いるべく保持部402に格納する。上記のような処理を行うことで、次のレイヤにおけるそれぞれの特徴画像(出力特徴画像)を生成することができる。
図1のフローチャートに従った処理では、フィルタを保持部404に転送した後に該フィルタを拡張するため、拡張後のフィルタを転送する場合より転送時間が短くすむ、という効果がある。
次に、上記のステップS108における特徴画像の特徴データと拡張フィルタにおけるフィルタ係数との畳み込み演算処理の詳細(ステップS114〜S120)について説明する。
ステップS114では、拡張部403は、保持部408から転送されたフィルタを保持部404に格納し、該格納したフィルタを、ステップS103で設定された倍率Dに従って拡張した拡張フィルタを生成する。具体的には、拡張前のフィルタにおけるフィルタ係数Cx,y(m,n)に基づいて拡張フィルタにおけるフィルタ係数C’x,y(m,n)を計算する。
ステップS115では、拡張部403は、ステップS114で生成した拡張フィルタを保持部404に格納する。ステップS116〜S120の処理は、特徴データとフィルタ係数の組ごとに行われる。
ステップS117では、演算部406は、保持部402および保持部404からデータを読み出すためのアドレス、つまり、式(4)のx、yに対応するアドレスを設定して、特徴データとフィルタ係数の読み出される順番を決定する。
ステップS118では、演算部406における乗算器1101は、保持部402において設定されたアドレスから特徴データを読み出し、保持部404において設定されたアドレスからフィルタ係数を読み出す。
複数個の特徴データは複数個の格納ユニット1104に保持されている。保持部402は、格納ユニット1104に保持されている特徴データを隣接する格納ユニット1104に転送することで、特徴データを出力する。
ステップS119では、演算部406における乗算器1101は、ステップS118で読みだされた特徴データとステップS118で読みだされたフィルタ係数とを用いて上記の式(3)における乗算演算を行う。演算部406における加算器1102は、乗算器1101における乗算結果を用いて上記の式(3)における加算演算を行い、該加算演算の結果を格納ユニット1103に格納されている加算演算の結果に累積加算して該格納ユニット1103に格納する。処理がステップS109に進んだ時点で格納ユニット1103に格納されている加算演算結果が、1枚の入力特徴画像に対応する畳み込み処理結果であるので、この畳み込み処理結果がステップS110における処理対象となる。
このように、本実施形態に係るデータ処理装置は、特徴データを一つずつ参照しながら拡張フィルタを効率的に処理することが可能である。図5の枠501に、拡張フィルタにおける有効係数(非0のフィルタ係数)と処理時間の例を示す。倍率D=2であり、拡張前後のフィルタの例を図6の枠602に示す。
時間軸を1ns−10nsで表現する。1nsでは、特徴画像における左上の特徴データIi,j(m)とフィルタ係数C0,0(m、n)との積を計算し、畳み込み処理の累積値の初期値にする。2nsでは、特徴画像における特徴データI’i+1,j(m)とフィルタ係数0との積を計算し、該積を累積値に加算する。3nsでは、特徴画像における右上の特徴データI’i+2,j(m)とフィルタ係数C1,0(m、n)との積を計算し、該積を累積値に加算する。4ns−6nsでは、特徴画像における特徴データとフィルタ係数0との積を計算し、該積を累積値に加算する。7nsでは、特徴画像における左下の特徴データI’i,j+2(m)とフィルタ係数C0,1(m、n)との積を計算し、該積を累積値に加算する。8nsでは、特徴画像における特徴データI’i+1,j+2(m)とフィルタ係数0との積を計算し、該積を累積値に加算する。9nsでは、特徴画像における右下の特徴データI’i+2,j+2(m)とフィルタ係数C’1,1(m、n)との積を計算し、該積を累積値に加算する。10nsでは、累積値を畳み込み処理結果として出力する。
なお、フィルタ係数が0の場合、特徴データとフィルタ係数0との積を計算し、該積を累積値に加算すると説明したが、演算コスト削減のため、特徴データとフィルタ係数0との積を計算して該積を累積値に加算する処理は省いてもよい。
そしてCPU306は、上記のような階層型ニューラルネットワークにおける最終レイヤ(図2の例ではレイヤ4)からの出力結果に基づいて、画像処理結果を得る。例えば、階層型ニューラルネットワークの入力レイヤ(図2の例ではレイヤ1)に撮像画像(動画像における各フレームの画像や静止画像)を入力して該階層型ニューラルネットワークの上記演算処理を行うことで最終レイヤから出力される出力結果を得たとする。この場合、CPU306は、該出力結果に基づき、撮像画像に対する画像処理または画像認識を行う。CPU306により処理された画像処理または画像認識の結果は、RAM308や保存部302等に格納される。
このように、本実施形態によれば、特徴データを1ずつ処理しながら拡張畳み込み処理を行うことができる。また、拡張後のフィルタではなく、拡張前のフィルタを転送するため、フィルタの転送量は増加しない。特に、階層的に多数の畳み込み処理を処理するCNNでは効果がより大きい。
[第2の実施形態]
以下では、第1の実施形態との差分について説明し、以下で特に触れない限りは、第1の実施形態と同様であるものとする。本実施形態に係る処理部305の構成例を、図7のブロック図に示す。図7において図4に示した機能部と同じ機能部には同じ参照番号を付しており、説明は適宜省略する。
保持部701は、制御部401による制御に従って保持部408から読みだされたフィルタを保持するためのメモリである。拡張部702は、保持部701に格納されているフィルタから、現レイヤに対応する倍率に従って拡張した拡張フィルタを生成して出力する。演算部406は、保持部402に格納されている特徴データと、拡張部702が出力するフィルタ係数と、を用いて上記の式(3)に従った演算処理(フィルタ処理)を行う。
本実施形態に係るデータ処理装置によるフィルタ処理は、第1の実施形態と以下の点で相違する。ステップS107では、制御部401は、保持部408から入力特徴画像におけるそれぞれの特徴データを読み出して保持部402に転送する。また、制御部401は、保持部408からフィルタを読み出して保持部701に転送する。
本実施形態では、ステップS108では、図9に示すステップS901〜S907の処理を行う。ステップS901では、制御部401は、保持部402に転送した特徴データを保持部402に格納する。また制御部401は、保持部701に転送したフィルタを保持部701に格納する。ステップS902〜S907の処理は、特徴データとフィルタ係数の組ごとに行われる。
ステップS903では、演算部406は、保持部402および保持部701からデータを読み出すためのアドレス、つまり、式(4)のx、yに対応するアドレスを設定して、特徴データとフィルタ係数の読み出される順番を決定する。ここで、演算部406は、x,yが両方とも倍率Dの倍数になる場合に限って、該x、yに対応するアドレスを拡張部702に通知する。
ステップS904では、演算部406の乗算器1101は、保持部402において設定されたアドレスから特徴データを読み出す。また、拡張部702は、演算部406からアドレスの通知があれば、保持部701において該通知されたアドレスからフィルタ係数を読み出す。
ステップS905では、拡張部702は、演算部406からアドレスの通知があれば、保持部701から読みだしたフィルタ係数を出力し、該通知がなければ、フィルタ係数として「0」を出力する。拡張部702から出力されたフィルタ係数を順に並べて形成されるフィルタが「拡張前のフィルタをD倍したサイズの拡張フィルタ」となる。つまり、本実施形態では、保持部701には拡張前のフィルタを保持しておき、拡張部702は、該拡張前のフィルタから拡張フィルタを生成し、該生成した拡張フィルタにおけるフィルタ係数を出力している。
ステップS906では、演算部406における乗算器1101は、ステップS904で読みだされた特徴データと、ステップS905で拡張部702から出力されたフィルタ係数と、を用いて上記の式(3)における乗算演算を行う。演算部406における加算器1102は、乗算器1101における乗算結果を用いて上記の式(3)における加算演算を行い、該加算演算の結果を格納ユニット1103に格納されている加算演算の結果に累積加算して該格納ユニット1103に格納する。
このように、拡張前のフィルタにおけるフィルタ係数を保持部408から保持部701に転送するため、拡張後のフィルタのフィルタ係数を転送する場合より転送時間が短い。また、本実施形態では、第1の実施形態と異なり、保持部701は拡張後のフィルタにおけるフィルタ係数ではなく、拡張前のフィルタにおけるフィルタ係数を保持するため、第1の実施形態よりも、メモリのサイズが削減される。
本実施形態に係るデータ処理装置では、特徴データを一つずつ参照しながら拡張前のフィルタを効率的に処理することが可能である。図5の枠502にステップS905に相当するフィルタ係数と処理時間の例を示す。拡張畳み込み処理の倍率D=2であり、拡張前後のフィルタ係数の例を図6の枠602に示す。第1の実施形態と同様に、10ステップ(10ns)に分けて処理する。
処理順番は第1の実施形態と同様であるが、拡張前のフィルタ係数を保持するため、2nsn、4−6ns、8nsでは、x,yが両方とも倍率Dの倍数になるわけではないため、フィルタ係数が0になる。しかし、本実施形態では、0のフィルタ係数をメモリに保持しなくてもよく、拡張畳み込み処理は処理可能である。
[第3の実施形態]
第1の実施形態では、処理部407で活性化処理を実施する形態について説明したが、他の機能部が活性化処理を実行してもよく、例えば、CPU306が活性化処理を実行してもよい。これはほかの処理についても同様で、処理の主体は上記で説明した主体に限らない。
また、図4,7,11,12において、メモリとして機能する機能部(保持部や格納ユニットなど)を除く各機能部はハードウェアで実装してもよいし、一部若しくは全部をソフトウェア(コンピュータプログラム)で実装してもよい。後者の場合、このコンピュータプログラムは保存部302に格納されており、CPU306や処理部305(制御部401)が該コンピュータプログラムを実行することで、対応する機能部の機能を実現させることができる。
また、第1の実施形態では、階層型ニューラルネットワークのネットワーク構造に応じて、活性化・プーリング処理を実行する形態について説明したが、場合によっては、活性化・プーリング処理の両方または一方を省略することもある。
また、第1の実施形態では、演算部406が乗算器1101、加算器1102、格納ユニット1103のセットを1セット有しているものとして説明した。しかし、演算部406は、乗算器1101、加算器1102、格納ユニット1103のセットを複数セット有してもよく、その場合、それぞれのセットを並列に動作させることで処理の高速化を図ってもよい。
乗算器1101、加算器1102、格納ユニット1103のセットを4セット有している演算部406の構成例を図12に示す。このような構成によれば、共通のフィルタ係数と複数個の特徴データを並列に処理することで、拡張畳み込み処理の処理効率を高めることができる。
また、第1の実施形態では、拡張前のフィルタのサイズ(フィルタの高さと幅)が2×2の例について説明したが、このサイズに限定するものではなく、任意のサイズで良い。図10に拡張前のフィルタのサイズ(フィルタの高さと幅)が3×3であり、拡張畳み込み処理の倍率D=2の例を示す。拡張後のフィルタのサイズは5×5になる。
また、第1の実施形態では、拡張畳み込み処理の倍率Dが1、2、4で、フィルタのサイズが2×2の例について説明したが、これらの数値に限るものではなく、任意の拡張畳み込み処理の倍率と任意のサイズでも良い。
また、上記の各実施形態において使用した数値、演算方法、処理の実行タイミング等は、具体的な説明を行うために一例として挙げたものであり、各実施形態がこれらの一例に限定されることを意図したものではない。
また、以上説明した各実施形態の一部若しくは全部を適宜組み合わせて使用しても構わない。また、以上説明した各実施形態の一部若しくは全部を選択的に使用しても構わない。
(その他の実施形態)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
発明は上記実施形態に制限されるものではなく、発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、発明の範囲を公にするために請求項を添付する。
401:制御部 402:保持部 403:拡張部 404:保持部 406:演算部 407:処理部 408:保持部

Claims (14)

  1. 転送されたフィルタのフィルタ係数を保持する保持手段と、
    前記保持手段に保持されたフィルタ係数を順に読み出しながら、前記転送されたフィルタのサイズを拡大した拡大フィルタを生成する生成手段と、
    前記拡大フィルタにおけるフィルタ係数を用いて畳み込み処理を行う演算手段と
    を備えることを特徴とするデータ処理装置。
  2. 前記生成手段は、前記生成した拡大フィルタのフィルタ係数をメモリに格納することを特徴とする請求項1に記載のデータ処理装置。
  3. 前記生成手段は、前記保持手段に保持されたフィルタ係数をメモリに格納し、該メモリに格納したフィルタ係数を用いてフィルタのサイズを拡大した拡大フィルタを生成することを特徴とする請求項1に記載のデータ処理装置。
  4. 前記生成手段は、前記保持されたフィルタ係数に係数0を加えて前記拡大フィルタを生成することを特徴とする請求項1ないし3の何れか1項に記載のデータ処理装置。
  5. 前記生成手段は、前記保持されたフィルタ係数において縦横に隣接するフィルタ係数間に(拡大の倍率−1)個の0を係数として挿入した拡大フィルタを生成することを特徴とする請求項4に記載のデータ処理装置。
  6. 前記生成手段は、レイヤごとに、該レイヤについて拡大フィルタを生成することを特徴とする請求項1ないし5の何れか1項に記載のデータ処理装置。
  7. 前記演算手段は、前記レイヤごとに、前記生成手段が該レイヤについて生成した拡大フィルタにおけるフィルタ係数を用いて、該レイヤに対応する畳み込み処理を行うことを特徴とする請求項6に記載のデータ処理装置。
  8. 前記生成手段は、前記レイヤに対応する倍率に応じて前記転送されたフィルタのサイズを拡大した拡大フィルタを生成することを特徴とする請求項6または7に記載のデータ処理装置。
  9. 前記生成手段は、畳み込み処理を行うデータに適用するフィルタを、該データに対して設定されている倍率に応じて拡大した拡大フィルタを生成することを特徴とする請求項6または7に記載のデータ処理装置。
  10. 前記生成手段は、畳み込み処理を行うデータに適用するフィルタを、該データが属するグループに対して設定されている倍率に応じて拡大した拡大フィルタを生成することを特徴とする請求項6または7に記載のデータ処理装置。
  11. 前記レイヤは、階層型ニューラルネットワークにおける各レイヤであり、前記データは該レイヤにおける特徴画像に含まれるそれぞれの特徴データであり、前記フィルタ係数は該レイヤに対応する重み係数であることを特徴とする請求項9または10に記載のデータ処理装置。
  12. 前記演算手段は、前記畳み込み処理の結果に対して、活性化処理および/またはプーリング処理を行うことを特徴とする請求項1ないし11の何れか1項に記載のデータ処理装置。
  13. データ処理装置が行うデータ処理方法であって、
    前記データ処理装置の保持手段が、転送されたフィルタのフィルタ係数を保持する保持工程と、
    前記データ処理装置の生成手段が、前記保持工程で保持されたフィルタ係数を順に読み出しながら、前記転送されたフィルタのサイズを拡大した拡大フィルタを生成する生成工程と、
    前記データ処理装置の演算手段が、前記拡大フィルタにおけるフィルタ係数を用いて畳み込み処理を行う演算工程と
    を備えることを特徴とするデータ処理方法。
  14. コンピュータを、請求項1ないし12の何れか1項に記載のデータ処理装置の前記生成手段、前記演算手段として機能させるためのコンピュータプログラム。
JP2020042183A 2020-03-11 2020-03-11 データ処理装置、データ処理方法 Pending JP2021144428A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2020042183A JP2021144428A (ja) 2020-03-11 2020-03-11 データ処理装置、データ処理方法
US17/191,777 US20210287070A1 (en) 2020-03-11 2021-03-04 Data processing apparatus, data processing method, and non-transitory computer-readable storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020042183A JP2021144428A (ja) 2020-03-11 2020-03-11 データ処理装置、データ処理方法

Publications (2)

Publication Number Publication Date
JP2021144428A true JP2021144428A (ja) 2021-09-24
JP2021144428A5 JP2021144428A5 (ja) 2023-03-20

Family

ID=77664783

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020042183A Pending JP2021144428A (ja) 2020-03-11 2020-03-11 データ処理装置、データ処理方法

Country Status (2)

Country Link
US (1) US20210287070A1 (ja)
JP (1) JP2021144428A (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022022876A (ja) * 2020-07-09 2022-02-07 キヤノン株式会社 畳み込みニューラルネットワーク処理装置

Also Published As

Publication number Publication date
US20210287070A1 (en) 2021-09-16

Similar Documents

Publication Publication Date Title
Yu et al. Path-restore: Learning network path selection for image restoration
CN107729996A (zh) 零系数跳过卷积神经网络引擎
EP3093757B1 (en) Multi-dimensional sliding window operation for a vector processor
JP7414930B2 (ja) 情報処理装置、情報処理方法
US11822900B2 (en) Filter processing device and method of performing convolution operation at filter processing device
CN111709415B (zh) 目标检测方法、装置、计算机设备和存储介质
JP2023541350A (ja) 表畳み込みおよびアクセラレーション
JP6567381B2 (ja) 演算装置、方法及びプログラム
CN111008631A (zh) 图像的关联方法及装置、存储介质和电子装置
JP2021144428A (ja) データ処理装置、データ処理方法
CN114022518B (zh) 图像的光流信息获取方法、装置、设备和介质
CN115908116A (zh) 一种图像处理方法、装置、设备及存储介质
JP2024004400A (ja) データ処理装置及びその方法
CN109583512B (zh) 图像处理方法、装置及系统
CN113902639A (zh) 图像处理方法、装置、电子设备及存储介质
JP2016103089A (ja) 情報処理装置、信号処理方法、プログラム
CN117058668B (zh) 一种三维模型减面评估方法及装置
JP6361195B2 (ja) 画像処理装置、画像処理方法、画像処理プログラム及び記録媒体
JP2019197324A (ja) 画像処理装置、画像処理方法
JP7321213B2 (ja) 情報処理装置、情報処理方法
US20220309778A1 (en) Image processing apparatus, image processing method, and non-transitory computer-readable storage medium
JP7114321B2 (ja) データ処理装置及びその方法
WO2023119642A1 (ja) 情報処理装置、情報処理方法、及び記録媒体
CN111626305B (zh) 目标检测方法、装置和设备
CN117115309A (zh) 旅行相册视频生成方法和系统

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20210103

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210113

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230310

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230310

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20231212

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240112

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240307