JP6567381B2 - 演算装置、方法及びプログラム - Google Patents

演算装置、方法及びプログラム Download PDF

Info

Publication number
JP6567381B2
JP6567381B2 JP2015193188A JP2015193188A JP6567381B2 JP 6567381 B2 JP6567381 B2 JP 6567381B2 JP 2015193188 A JP2015193188 A JP 2015193188A JP 2015193188 A JP2015193188 A JP 2015193188A JP 6567381 B2 JP6567381 B2 JP 6567381B2
Authority
JP
Japan
Prior art keywords
value
unit
tensor data
coordinate
window
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
JP2015193188A
Other languages
English (en)
Other versions
JP2017068577A (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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2015193188A priority Critical patent/JP6567381B2/ja
Priority to US15/257,687 priority patent/US11120298B2/en
Publication of JP2017068577A publication Critical patent/JP2017068577A/ja
Application granted granted Critical
Publication of JP6567381B2 publication Critical patent/JP6567381B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/211Selection of the most significant subset of features
    • G06F18/2113Selection of the most significant subset of features by ranking or filtering the set of features, e.g. using a measure of variance or of feature cross-correlation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/213Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods
    • G06F18/2134Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods based on separation criteria, e.g. independent component analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2413Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on distances to training or reference patterns
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/44Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
    • G06V10/443Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components by matching or filtering
    • G06V10/449Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters
    • G06V10/451Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters with interaction between the filter responses, e.g. cortical complex cells
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/50Context or environment of the image
    • G06V20/56Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
    • G06V20/58Recognition of moving objects or obstacles, e.g. vehicles or pedestrians; Recognition of traffic objects, e.g. traffic signs, traffic lights or roads

Landscapes

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

Description

本発明の実施形態は、演算装置、方法及びプログラムに関する。
近年、ニューラルネットワークと呼ばれる数学モデルが画像認識や音声認識などのパターン認識に応用されている。ニューラルネットワークは、複数の演算層で構成されており、認識対象のパターンが入力されると、当該複数の演算層による繰り返し演算を行い、検出、識別、又はラベリングなどのパターン認識結果を出力する。
ニューラルネットワークを構成する演算層には、主に、コンボリューション層や全結合層と呼ばれる演算層が用いられる。コンボリューション層で行われる演算は、例えば、数式(1)で表される。
Figure 0006567381
ここで、xは、コンボリューション層に入力されたテンソルデータを示し、(Ox,Oy)は、当該テンソルデータに設定されたフィルタ窓の原点が位置する当該テンソルデータの座標を示し、Owは、当該フィルタ窓の幅を示し、Ohは、当該フィルタ窓の高さを示し、x(Ox+i,Oy+j)は、当該フィルタ窓内における当該テンソルデータの位置(Ox+i,Oy+j)の値を示す。w(i,j)は、フィルタ窓内の位置(i,j)における重み値を示し、bは、バイアスを示す。f()は非線形関数を表し、一般的にsigmoid関数やtanh関数などが用いられる。y(Ox,Oy)は、コンボリューション層から出力されるテンソルデータの出力値を示す。ここで、テンソルデータとは多次元の配列として表現されるものである。
なお、数式(1)において、テンソルデータの範囲と、設定されるフィルタ窓の範囲とが一致する場合、つまりテンソルデータのすべての要素がちょうどフィルタ窓に内包される場合、全結合層で行われる演算を表す。
特許第5376920号公報
岡谷貴之,齋藤真樹,"ディープラーニング,"研究報告コンピュータビジョンとイメージメディア(CVIM),2013−CVIM−185(18),1−17(2013−01−16)
しかしながら、上述したような従来技術では、コンボリューション層や全結合層で行われる演算に、重み値とテンソルデータの位置における値との乗算が発生するため、演算量が増大してしまう。
本発明が解決しようとする課題は、コンボリューション層や全結合層で行われる演算の演算量を抑えることができる演算装置、方法及びプログラムを提供することである。
実施形態の演算装置は、受付部と、設定部と、選択部と、加算部と、出力部と、を備える。受付部は、テンソルデータの入力を受け付ける。設定部は、前記テンソルデータに窓を設定する。選択部は、前記窓内における前記テンソルデータの座標毎に、当該座標における画素値と1以上の閾値とを比較し、比較結果に応じた重み値を選択する。加算部は、前記座標毎に選択された前記重み値を累積加算して、累積加算値を得る。出力部は、前記累積加算値に基づく値を出力する。
本実施形態の演算装置の例を示す構成図。 本実施形態のフィルタ窓が設定されたテンソルデータの例を示す図。 本実施形態の処理例を示すフローチャート。 応用例の車両の例を示す模式図。 応用例の車両の構成例を示す図。 応用例の認識部の詳細構成の例を示す図。 応用例の入力画像の例を示す図。 応用例の出力画像の例を示す図。
以下、添付図面を参照しながら、実施形態を詳細に説明する。
図1は、本実施形態の演算装置10の一例を示す構成図である。図1に示すように、演算装置10は、受付部11と、設定部13と、記憶部15と、選択部17と、加算部19と、写像部21と、出力部23と、を備える。
受付部11、設定部13、選択部17、加算部19、写像部21、及び出力部23は、例えば、IC(Integrated Circuit)などのハードウェアにより実現してもよいし、CPU(Central Processing Unit)などの処理装置にプログラムを実行させること、即ち、ソフトウェアにより実現してもよいし、ソフトウェア及びハードウェアを併用して実現してもよい。
記憶部15は、例えば、メモリ、HDD(Hard Disk Drive)、SSD(Solid State Drive)、光ディスク、ROM(Read Only Memory)、及びRAM(Random Access Memory)などの磁気的、光学的、又は電気的に記憶可能な記憶装置により実現できる。
本実施形態の演算装置10は、ニューラルネットワークを構成するコンボリューション層や全結合層で行われる演算を行うものであり、数式(2)に示す演算により、数式(1)に示す演算結果の近似値を求める。
Figure 0006567381
ここで、xは、演算装置10に入力されたテンソルデータを示し、(Ox,Oy)は、当該テンソルデータに設定されたフィルタ窓の原点が位置する当該テンソルデータの座標を示し、Owは、当該フィルタ窓の幅を示し、Ohは、当該フィルタ窓の高さを示し、x(Ox+i,Oy+j)は、当該フィルタ窓内における当該テンソルデータの位置(Ox+i,Oy+j)の画素値を示す。なお、テンソルデータとは、上述の通り、多次元の配列として表現されるものである。
select(i,j,x(Ox+i,Oy+j))は、フィルタ窓内の位置(i,j)における重み値を選択する関数であり、例えば、数式(3)に示す2つの重み値の中から重み値を選択する関数や数式(4)に示す3つの重み値の中から重み値を選択する関数などを利用できるが、これらに限定されるものではない。例えば、select()を4つ以上の重み値の中から重み値を選択する関数としてもよい。
Figure 0006567381
Figure 0006567381
数式(3)に示す関数は、変数aの値(数式(2)のx(Ox+i,Oy+j)の値に相当)が閾値Tより大きければ、重み値w(i,j)を選択し、変数aの値が閾値T以下であれば、重み値0を選択する関数である。
また数式(4)に示す関数は、変数aの値が閾値Tより大きければ、重み値w(i,j,+1)を選択し、変数aの値が閾値−T以上かつ閾値T以下であれば、重み値0を選択し、変数aの値が閾値−T未満であれば、重み値w(i,j,−1)を選択する関数である。
数式(2)の説明に戻り、bは、バイアスを示す。f()は非線形関数を表し、一般的にsigmoid関数やtanh関数などが用いられる。y(Ox,Oy)は、演算装置10から出力されるテンソルデータの出力値を示す。
なお、数式(2)において、テンソルデータの範囲と、設定されるフィルタ窓の範囲とが一致する場合、全結合層で行われる演算を表す。
また、数式(2)〜(4)では、表記を簡略化するため、入出力されるテンソルデータ及び選択される重み値が2次元配列である場合を示しており、以降の説明においても、言及がなければ、2次元配列を前提として説明するが、2次元配列である場合に限定されるものではない。入出力されるテンソルデータ及び選択される重み値が1次元配列や3次元以上の次元の配列である場合への拡張は容易であり一般性は失わないため、このような場合も当然本実施形態の範囲に含まれる。
以下、数式(2)〜(4)を参照しながら、受付部11、設定部13、記憶部15、選択部17、加算部19、写像部21、及び出力部23について説明する。
受付部11は、テンソルデータの入力を受け付ける。なお、受付部11により受け付けられたテンソルデータは、数式(2)のxに相当する。
例えば、演算装置10が行うコンボリューション層や全結合層の演算が、ニューラルネットワークを構成する演算層の第1層目の演算に該当する場合、受付部11は、テンソルデータとして、画像データの入力を受け付ける。例えば、画像データがRGBのカラー画像であれば、テンソルデータは、3×画像の幅×画像の高さの大きさの3次元配列のデータとなる。
また例えば、演算装置10が行うコンボリューション層や全結合層の演算が、ニューラルネットワークを構成する演算層の第n(nは2以上の自然数)層目の演算に該当する場合、受付部11は、テンソルデータとして、第n−1層目の演算層から出力された特徴量マップの入力を受け付ける。例えば、第n−1層目の演算層がコンボリューション層の特徴量マップであれば、テンソルデータは、特徴量マップの数×特徴量マップの幅×特徴量マップの高さの大きさの3次元配列のデータとなる。また例えば、第n−1層目の演算層が全結合層の特徴量マップであれば、テンソルデータは、長さが特徴量マップの数の1次元配列のデータとなる。
設定部13は、受付部11により受け付けられたテンソルデータに窓(フィルタ窓)を設定する。図2は、本実施形態のフィルタ窓32が設定されたテンソルデータ31の一例を示す図である。図2に示すように、(Ox,Oy)は、テンソルデータ31に設定されたフィルタ窓32の原点が位置する当該テンソルデータの座標を示し、Owは、当該フィルタ窓32の幅を示し、Ohは、当該フィルタ窓32の高さを示し、(Ox+i,Oy+j)は、当該フィルタ窓32内における当該テンソルデータ31の位置を示す。なお、図2に示す例では、フィルタ窓32の原点は、左上となっているが、これに限定されるものではない。なお、全結合層の場合、設定部13は、受付部11により受け付けられたテンソルデータの全範囲に窓を設定する。
記憶部15は、設定部13により設定される窓内の座標毎に、2以上の重み値を対応付けて記憶する。例えば、数式(3)に示す関数が用いられる場合であれば、記憶部15は、フィルタ窓内の座標(i,j)毎に、重み値w(i,j)及び重み値0を対応付けて記憶する。また例えば、数式(4)に示す関数が用いられる場合であれば、記憶部15は、フィルタ窓内の座標(i,j)毎に、重み値w(i,j,+1)、重み値0、及び重み値w(i,j,−1)を対応付けて記憶する。
なお、記憶部15は、フィルタ窓内の重み値の集合であるフィルタ重みを、(フィルタ窓の次元数+1)の次元数の配列で記憶する。例えば、フィルタ窓の次元数が2で、数式(4)に示す関数が用いられる場合であれば、選択可能な重みの数は3つで1つは常に0なので、記憶部15は、フィルタ重みをフィルタの幅×フィルタの高さ×2の大きさの3次元配列で記憶する。同様に、数式(3)に示す関数が用いられる場合であれば、選択可能な重みの数は2つで片方は常に0なので、記憶部15は、フィルタ重みをフィルタの幅×フィルタの高さ×1の大きさの3次元配列(この場合、実質的には2次元配列)で記憶する。
なお、記憶部15が記憶するフィルタ重みは、例えば、機械学習などの手段を用いて予め計算(学習)しておいたものを用いることができる。例えば、記憶部15が記憶するフィルタ重みとして、数式(1)のコンボリューション層を含むニューラルネットワークを確率的勾配法(SGD:Stochastic Gradient Descent)などのニューラルネットワーク向けの一般的な手法で学習することにより得られるコンボリューションフィルタの重み値を用いることができる。また例えば、記憶部15が記憶するフィルタ重みとして、数式(2)のコンボリューション層を含むニューラルネットワークを直接最適化することにより得られるコンボリューションフィルタの重み値を用いてもよい。但し、フィルタ重みの計算方法は、これらに限定されるものではない。
なお、フィルタ窓内の座標に対応付けられた2以上の重み値は、0を含むことが好ましい。つまり、フィルタ窓内の座標に対応付けられた2以上の重み値のいずれかは、0であることが好ましい。重み値が0である場合、後述の加算部19での加算処理を省略できるためである。例えば、重み値の選択に数式(3)に示す関数を用いる場合、数式(2)のバイアスbを用いて、重み値w(i,j)を調整しておけば、演算装置10の出力値であるy(Ox,Oy)の値を変えずに、重み値のいずれかを0に設定できる。
選択部17は、設定部13により設定された窓内におけるテンソルデータの座標毎に、当該座標における画素値と1以上の閾値とを比較し、比較結果に応じた重み値を選択する。具体的には、選択部17は、設定部13により設定された窓内におけるテンソルデータの座標毎に、記憶部15において、当該テンソルデータの座標と相対する当該窓内の座標に対応付けられた2以上の重み値の中から、比較結果に応じた重み値を選択する。なお、選択部17による重み値の選択は、例えば、数式(3)や(4)に示す関数により行われる。つまり、選択部17は、テンソルデータの座標における画素値と1以上の閾値との大小関係を比較し、比較結果に応じた重み値を選択する。
例えば、テンソルデータの座標(Ox,Oy)における重み値を、数式(3)を用いて選択するのであれば、選択部17は、画素値x(Ox,Oy)と閾値Tとを比較し、閾値Tより大きければ、重み値w(0,0)を選択し、閾値T以下であれば、重み値0を選択する。なお、テンソルデータの座標と相対する窓内の座標は、テンソルデータのx座標からOx、y座標からOyを減じることで求められる。このため、テンソルデータの座標(Ox,Oy)と相対する窓内の座標は、(0,0)となる。
加算部19は、設定部13により設定された窓内におけるテンソルデータの座標毎に選択部17により選択された重み値を累積加算して、累積加算値を得る。なお、加算部19の処理は、数式(2)のf()内の右辺の処理(総和記号Σの処理)に相当する。
なお、前述の通り、重み値に0が含まれ、重み値0が選択部17により選択された場合、select(i,j,x(Ox+i,Oy+j))の値も0であるため、加算処理を省略してもよい。つまり、加算部19は、設定部13により設定された窓内におけるテンソルデータの座標毎に選択部17により選択された重み値のうち値が0以外の重み値を累積加算するようにしてもよい。
なお、加算部19は、数式(2)のf()内の左辺(バイアスb)については、累積加算する変数の初期値として設定しておくか、別途累積加算結果に加算する。
写像部21は、加算部19により加算された累積加算値を写像する。なお、写像部21の処理は、数式(2)のf()の処理に相当する。
出力部23は、加算部19により加算された累積加算値に基づく値を出力する。具体的には、出力部23は、写像部21により写像された累積加算値の写像値を出力する。
図3は、本実施形態の処理の手順の流れの一例を示すフローチャートである。なお、図3に示す例では、重み値を選択する関数として、数式(3)に示す関数が用いられる場合を例に取り説明するが、これに限定されるものではない。
まず、受付部11は、テンソルデータxの入力を受け付ける(ステップS101)。
続いて、設定部13は、受付部11により受け付けられたテンソルデータxに、幅Ow、高さOhのフィルタ窓を設定する(ステップS103)。
続いて、加算部19は、累積加算値ACCの初期値にバイアスbの値を設定する(ステップS105)。
続いて、加算部19は、変数i及び変数jの値を0に初期化する(ステップS107)。
続いて、選択部17は、テンソルデータxの座標(Ox+i,Oy+j)における画素値x(Ox+i,Oy+j)が閾値Tより大きいか否かを判定する(ステップS109)。
画素値x(Ox+i,Oy+j)が閾値Tより大きい場合(ステップS109でYes)、選択部17は、重み値w(i,j)を選択し、加算部19は、累積加算値ACCに選択された重み値w(i,j)を加算する(ステップS111)。
一方、画素値x(Ox+i,Oy+j)が閾値T以下の場合(ステップS109でNo)、選択部17は、重み値0を選択するため、ステップS111の処理は行われない。
続いて、加算部19は、変数iの値をインクリメントし(ステップS113)、変数iの値が幅Ow以下であれば(ステップS115でNo)、ステップS109へ戻り、変数iの値が幅Owより大きければ(ステップS115でYes)、ステップS117へ進む。
続いて、加算部19は、変数jの値をインクリメントし(ステップS117)、変数jの値が高さOh以下であれば(ステップS119でNo)、ステップS109へ戻り、変数jの値が高さOhより大きければ(ステップS119でYes)、ステップS121へ進む。
続いて、写像部21は、加算部19により加算された累積加算値ACCを非線形関数f()で写像し、出力値y(Ox,Oy)を得る(ステップS121)。
続いて、出力部23は、写像部21により得られた出力値y(Ox,Oy)を出力する(ステップS123)。
以上のように本実施形態によれば、ニューラルネットワークを構成するコンボリューション層や全結合層で行われる演算を、選択及び加算で近似でき、乗算が不要となるため、コンボリューション層や全結合層で行われる演算の演算量を抑えることができる。これは、乗算に対し、選択や加算は、演算規模が小さいためである。これにより、コンボリューション層や全結合層で行われる演算を実行する演算装置のコストも抑えることができる。
また本実施形態によれば、フィルタ窓内の座標に対応付けられた2以上の重み値のいずれかは0であるため、重み値が0の場合、select(i,j,x(Ox+i,Oy+j))の値も0であるため、加算処理を省略することができる。これにより、コンボリューション層や全結合層で行われる演算の演算量を更に抑えることができ、コンボリューション層や全結合層で行われる演算を実行する演算装置のコストも更に抑えることができる。
(変形例1)
上記実施形態では、テンソルデータの画素値が連続値である場合を想定して説明したが、変形例1では、テンソルデータの画素値が離散値である場合を想定して説明する。以下では、上記実施形態との相違点の説明を主に行い、上記実施形態と同様の機能を有する構成要素については、上記実施形態と同様の名称・符号を付し、その説明を省略する。
変形例1の演算装置10が行うコンボリューション層や全結合層の演算は、ニューラルネットワークを構成する演算層の第n(nは2以上の自然数)層目の演算に該当する。このため、受付部11は、テンソルデータとして、第n−1層目の演算層から出力された特徴量マップの入力を受け付ける。
変形例1では、テンソルデータ(特徴量マップ)の画素値が、2値{+1、−1}の場合と、3値{+1、0、−1}の場合と、について説明するが、これらに限定されるものではない。なお、2値や3値における値の取り方は、これらに限定されるものではなく、例えば、{0、1}などの2値でもよい。また、テンソルデータの画素値が、4値以上の場合への拡張は容易であり一般性は失わないため、このような場合も当然本実施形態の範囲に含まれる。
変形例1では、選択部17は、テンソルデータの座標における画素値と1以上の閾値とが一致するか否かを比較し、比較結果に応じた重み値を選択する。選択部17は、例えば、select()として、数式(5)に示す2つの重み値の中から重み値を選択する関数や数式(6)に示す3つの重み値の中から重み値を選択する関数などを利用できるが、これらに限定されるものではない。例えば、select()を4つ以上の重み値の中から重み値を選択する関数としてもよい。
Figure 0006567381
Figure 0006567381
数式(5)に示す関数は、変数aの値が+1であれば、重み値w(i,j)を選択し、変数aの値が−1であれば、重み値0を選択する関数である。
また数式(6)に示す関数は、変数aの値が+1であれば、重み値w(i,j,+1)を選択し、変数aの値が0であれば、重み値0を選択し、変数aの値が−1であれば、重み値w(i,j,−1)を選択する関数である。
なお選択部17は、値の一致を判断する代わりに、記憶部15の重み値が記憶されている記憶領域の先頭アドレスに画素値を相対アドレスとして加算して得られたアドレスが指す値を参照するルックアップテーブル方式で重み値を選択してもよい。
変形例1では、写像部21は、加算部19により加算された累積加算値を離散値に写像する。具体的には、写像部21は、加算部19により加算された累積加算値を、非線形関数を用いて離散値に変換(写像)する。この場合、写像部21は、数式(2)のf()の代わりに、数式(7)に示す2値の中から出力値を選択する関数や数式(8)に示す3値の中から出力値を選択する関数などを利用できるが、これらに限定されるものではない。例えば、f()の代わりに、4値の中から出力値を選択する関数を用いてもよい。
Figure 0006567381
Figure 0006567381
数式(7)に示す関数は、変数a(累積加算値に相当)の値が0より大きければ、出力値を1に変換し、変数aの値が0以下であれば、出力値を−1に変換する関数である。
また数式(8)に示す関数は、変数aの値が閾値Tより大きければ、出力値を1に変換し、変数aの値が閾値−T以上かつ閾値T以下であれば、出力値を0に変換し、変数aの値が閾値−T未満であれば、出力値を−1に変換する関数である。
以上のように本実施形態によれば、入力されるテンソルデータ(特徴量マップ)の画素値が離散値であるため、テンソルデータを一時的に記憶するメモリ容量を抑えることができ、コンボリューション層や全結合層で行われる演算を実行する演算装置のコストを抑えることができる。例えば、テンソルデータの画素値が2値で表現される場合は、画素値を1ビットで記憶できるため、メモリ容量を抑えることができる。
(変形例2)
変形例2では、演算装置が出力するテンソルデータ(特徴量マップ)が複数のマップを持つ3次元配列である場合に、複数のマップの値を並列して演算する例について説明する。以下では、上記実施形態との相違点の説明を主に行い、上記実施形態と同様の機能を有する構成要素については、上記実施形態と同様の名称・符号を付し、その説明を省略する。
変形例2では、並列して演算するマップの数をLとすると、数式(2)のバイアスb及び出力値y(Ox,Oy)は、長さLのベクトルとなる。変形例2では、記憶部15は、L個のフィルタ重みに対応した重み値を記憶しており、L個のマップ出力に対応している。選択部17は、L個のフィルタ重みに対応した重み値を選択する。変形例2では、数式(3)、(4)、(5)、(6)において、wは長さLのベクトルである。変形例2では、累積加算値は長さLのベクトルとなる。
変形例2によれば、1つの入力の画素値に対して、複数の出力の画素値を並列して演算できるため、比較の演算回数を削減することができる。これにより、コンボリューション層や全結合層で行われる演算の演算量を更に抑えることができ、コンボリューション層や全結合層で行われる演算を実行する演算装置のコストも更に抑えることができる。
(応用例)
応用例では、上記実施形態、変形例1、及び変形例2で説明した演算装置10の応用例について説明する。上述したように、上記実施形態、変形例1、及び変形例2で説明した演算装置10では、ニューラルネットワークを構成するコンボリューション層や全結合層で行われる演算の演算量を抑えることができる。
このため、上記演算装置10をハードウェア(回路)として実現する場合、上述のように、乗算器を不要とすることができたり、メモリ容量を抑えることができたりするため、回路規模を削減することができる。特に上記演算装置10では、処理を並列化する場合においても、乗算器を並列化する必要がないため、処理の高速化と回路規模の削減とを両立させることができる。
従って、上記演算装置10を用いてニューラルネットワーク用の演算を行うLSI(Large-Scale Integration)を実装すれば、従来よりも回路規模を削減したニューラルネットワーク用の演算を行うLSIを実現でき、車載や家電などの組み込み機器向けに好適である。回路規模の削減は、組み込み機器におけるバッテリーの容量、販売価格、及び発熱量等の各種制約に対し、強みとなるためである。
以下では、応用例として、上記演算装置10を適用したLSIを車両に搭載し、当該LSIを用いて、パターン認識として歩行者検出を行う例について説明するが、応用例はこれに限定されるものではない。
図4は、応用例の車両100の一例を示す模式図であり、図5は、応用例の車両100の構成の一例を示す図である。図5に示すように、車両100は、撮像部110と、認識部120と、表示部130と、を備える。
撮像部110は、例えば、カメラなどの画像センサにより実現できる。認識部120は、上記LSIにより実現できる。表示部130は、例えば、ディスプレイなどにより実現できる。
認識部120は、ニューラルネットワーク用の演算を行うLSIである。図6は、応用例の認識部120の詳細構成の一例を示す図である。図6に示すように、認識部120は、第1演算層120−1〜第n演算層120−nで構成されている。なお、第1演算層120−1〜第n演算層120−nのうちコンボリューション層や全結合層に該当する演算層については、上記演算装置10で説明した構成が採用される。
認識部120には、撮像部110により撮像された画像が入力される。例えば、図7に示すように、歩行者201、202が映っている画像が入力される。
認識部120は、撮像部110から画像(テンソルデータ)が入力されると、まず、第1演算層120−1は、入力された画像を用いて歩行者検出用の演算を行って特徴量マップを第2演算層120−2に出力し、次に、第2演算層120−2は、第1演算層120−1から出力された特徴量マップを用いて歩行者検出用の演算を行って特徴量マップを第3演算層120−3に出力し、最終的に、第n演算層120−nが歩行者の検出結果を示す画像を出力し、表示部130に表示させる。例えば、図8に示すように、歩行者201、202、それぞれに、枠211、212が付された画像が出力される。
以上のように、本応用例によれば、ニューラルネットワーク用の演算を行う組み込み機器向けに好適なLSIを実現できる。
なお、上記演算装置10をハードウェア(回路)ではなくソフトウェアとしてニューラルネットワーク用の演算機能を実現してもよい。この場合、上記演算装置10をソフトウェアとして適用したニューラルネットワーク用の演算機能は、例えば、インターネットサービス等で同時に大量のデータを処理するサーバなどに好適であり、CPUの使用時間や使用メモリの量を減らすことで、コストを抑えたシステムを実現できる。
(プログラム構成)
上記実施形態及び各変形例の演算装置10及び応用例で実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、CD−R、メモリカード、DVD(Digital Versatile Disk)、フレキシブルディスク(FD)等のコンピュータで読み取り可能な記憶媒体に記憶されて提供される。
また、上記実施形態及び各変形例の演算装置10及び応用例で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するようにしてもよい。また、上記実施形態及び各変形例の演算装置10及び応用例で実行されるプログラムを、インターネット等のネットワーク経由で提供または配布するようにしてもよい。また、上記実施形態及び各変形例の演算装置10及び応用例で実行されるプログラムを、ROM等に予め組み込んで提供するようにしてもよい。
上記実施形態及び各変形例の演算装置10及び応用例で実行されるプログラムは、上述した各部をコンピュータ上で実現させるためのモジュール構成となっている。実際のハードウェアとしては、CPUがROMやHDDなどからプログラムをRAM上に読み出して実行することにより、上記各部がコンピュータ上で実現されるようになっている。
本発明は、上記実施形態及び変形例そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化することができる。また、上記実施形態及び変形例に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成することができる。例えば、上記実施形態及び変形例に示される全構成要素からいくつかの構成要素を削除してもよい。さらに、異なる実施形態及び変形例にわたる構成要素を適宜組み合わせても良い。
例えば、実施形態のフローチャートにおける各ステップを、その性質に反しない限り、実行順序を変更し、複数同時に実施し、あるいは実施毎に異なった順序で実施してもよい。
以上のように、上記実施形態、各変形例、及び応用例によれば、コンボリューション層や全結合層で行われる演算の演算量を抑えることができる。
10 演算装置
11 受付部
13 設定部
15 記憶部
17 選択部
19 加算部
21 写像部
23 出力部
100 車両
110 撮像部
120 認識部
130 表示部
120−1〜120−n 第1演算層〜第n演算層

Claims (13)

  1. テンソルデータの入力を受け付ける受付部と、
    前記テンソルデータに窓を設定する設定部と、
    前記窓内における前記テンソルデータの座標毎に、当該座標における画素値と1以上の閾値とを比較し、比較結果に応じた重み値を選択する選択部と、
    前記座標毎に選択された前記重み値を累積加算して、累積加算値を得る加算部と、
    前記累積加算値に基づく値を出力する出力部と、
    を備える演算装置。
  2. 前記窓内の座標毎に、2以上の重み値を対応付けて記憶する記憶部を更に備え、
    前記選択部は、前記窓内における前記テンソルデータの座標毎に、当該テンソルデータの座標と相対する前記窓内の座標に対応付けられた2以上の重み値の中から、比較結果に応じた重み値を選択する請求項1に記載の演算装置。
  3. 前記2以上の重み値は、0を含む請求項2に記載の演算装置。
  4. 前記加算部は、前記座標毎に選択された前記重み値のうち値が0以外の重み値を累積加算する請求項3に記載の演算装置。
  5. 前記選択部は、前記テンソルデータの座標における画素値と1以上の閾値との大小関係を比較する請求項1に記載の演算装置。
  6. 前記累積加算値を写像する写像部を更に備え、
    前記出力部は、前記累積加算値の写像値を出力する請求項1に記載の演算装置。
  7. 前記テンソルデータの画素値は、離散値であり、
    前記選択部は、前記テンソルデータの座標における画素値と1以上の閾値とが一致するか否かを比較する請求項1に記載の演算装置。
  8. 前記離散値は、2値である請求項7に記載の演算装置。
  9. 前記累積加算値を離散値に写像する写像部を更に備え、
    前記出力部は、前記累積加算値の写像値を出力する請求項7に記載の演算装置。
  10. 前記重み値及び前記累積加算値は、ベクトルである請求項1に記載の演算装置。
  11. 前記設定部は、前記テンソルデータの全範囲に前記窓を設定する請求項1に記載の演算装置。
  12. コンピュータが、テンソルデータの入力を受け付ける受付ステップと、
    前記コンピュータが、前記テンソルデータに窓を設定する設定ステップと、
    前記コンピュータが、前記窓内における前記テンソルデータの座標毎に、当該座標における画素値と1以上の閾値とを比較し、比較結果に応じた重み値を選択する選択ステップと、
    前記コンピュータが、前記座標毎に選択された前記重み値を累積加算して、累積加算値を得る加算ステップと、
    前記コンピュータが、前記累積加算値に基づく値を出力する出力ステップと、
    を含む演算方法。
  13. テンソルデータの入力を受け付ける受付ステップと、
    前記テンソルデータに窓を設定する設定ステップと、
    前記窓内における前記テンソルデータの座標毎に、当該座標における画素値と1以上の閾値とを比較し、比較結果に応じた重み値を選択する選択ステップと、
    前記座標毎に選択された前記重み値を累積加算して、累積加算値を得る加算ステップと、
    前記累積加算値に基づく値を出力する出力ステップと、
    をコンピュータに実行させるためのプログラム。
JP2015193188A 2015-09-30 2015-09-30 演算装置、方法及びプログラム Active JP6567381B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015193188A JP6567381B2 (ja) 2015-09-30 2015-09-30 演算装置、方法及びプログラム
US15/257,687 US11120298B2 (en) 2015-09-30 2016-09-06 Tensor image mapping device, method, and computer program product

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015193188A JP6567381B2 (ja) 2015-09-30 2015-09-30 演算装置、方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2017068577A JP2017068577A (ja) 2017-04-06
JP6567381B2 true JP6567381B2 (ja) 2019-08-28

Family

ID=58407356

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015193188A Active JP6567381B2 (ja) 2015-09-30 2015-09-30 演算装置、方法及びプログラム

Country Status (2)

Country Link
US (1) US11120298B2 (ja)
JP (1) JP6567381B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6848673B2 (ja) * 2017-05-17 2021-03-24 株式会社デンソー 演算処理装置
US11263526B2 (en) 2017-05-31 2022-03-01 Intel Corporation Gradient-based training engine for quaternion-based machine-learning systems
CN108154194B (zh) * 2018-01-18 2021-04-30 北京工业大学 一种用基于张量的卷积网络提取高维特征的方法
WO2019168088A1 (ja) 2018-03-02 2019-09-06 日本電気株式会社 推論装置、畳み込み演算実行方法及びプログラム
JP7189000B2 (ja) * 2018-12-12 2022-12-13 日立Astemo株式会社 情報処理装置、車載制御装置、車両制御システム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05204886A (ja) * 1992-01-23 1993-08-13 Junichi Kakumoto 神経回路網 と 神経回路網学習方式
US5473730A (en) * 1993-11-09 1995-12-05 At&T Ipm Corp. High efficiency learning network
US20100158376A1 (en) * 2008-10-17 2010-06-24 Klosterman Peter S Systems and methods for labeling and characterization of connected regions in a binary mask
JP5376920B2 (ja) 2008-12-04 2013-12-25 キヤノン株式会社 コンボリューション演算回路、階層的コンボリューション演算回路及び物体認識装置
AU2012216341A1 (en) * 2012-08-21 2014-03-13 Canon Kabushiki Kaisha Method, apparatus and system for segmenting an image in an image sequence
EP3754962B1 (en) * 2014-07-01 2022-12-21 Canon Kabushiki Kaisha Image processing apparatus, image processing method, printing medium and storage medium
US9858498B2 (en) * 2015-09-23 2018-01-02 Qualcomm Incorporated Systems and methods for incremental object detection using dual-threshold local binary pattern operators

Also Published As

Publication number Publication date
US20170091581A1 (en) 2017-03-30
US11120298B2 (en) 2021-09-14
JP2017068577A (ja) 2017-04-06

Similar Documents

Publication Publication Date Title
JP6567381B2 (ja) 演算装置、方法及びプログラム
JP7106665B2 (ja) 単眼深度推定方法およびその装置、機器ならびに記憶媒体
KR102302725B1 (ko) 룸 레이아웃 추정 방법들 및 기술들
JP6393058B2 (ja) 情報処理装置、情報処理方法
CN108416327B (zh) 一种目标检测方法、装置、计算机设备及可读存储介质
US9626766B2 (en) Depth sensing using an RGB camera
WO2020199478A1 (zh) 图像生成模型训练方法、图像生成方法、装置、设备及存储介质
US9852353B2 (en) Structure aware image denoising and noise variance estimation
US20160267349A1 (en) Methods and systems for generating enhanced images using multi-frame processing
CN112862877B (zh) 用于训练图像处理网络和图像处理的方法和装置
WO2016144552A1 (en) Two-stage vector reduction using two-dimensional and one-dimensional systolic arrays
JP2017068608A (ja) 演算装置、方法及びプログラム
CN112487979B (zh) 目标检测方法和模型训练方法、装置、电子设备和介质
JP6431404B2 (ja) 姿勢推定モデル生成装置及び姿勢推定装置
CN111008631B (zh) 图像的关联方法及装置、存储介质和电子装置
CN110809126A (zh) 一种基于自适应可变形卷积的视频帧插值方法及系统
CN110991627A (zh) 信息处理装置、信息处理方法
KR102442055B1 (ko) 전자 장치 및 그 제어 방법
JP7402623B2 (ja) フィルタ処理装置及びその制御方法
US10089764B2 (en) Variable patch shape synthesis
JP2005339535A (ja) 相違度の計算
US9679363B1 (en) System and method for reducing image noise
CN111382834B (zh) 一种置信度比较方法及装置
CN112150532A (zh) 图像处理的方法、装置、电子设备和计算机可读介质
JP2021144428A (ja) データ処理装置、データ処理方法

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20151102

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180131

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181218

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190109

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: 20190702

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190731

R151 Written notification of patent or utility model registration

Ref document number: 6567381

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151