JP5963566B2 - パターン識別装置 - Google Patents

パターン識別装置 Download PDF

Info

Publication number
JP5963566B2
JP5963566B2 JP2012140034A JP2012140034A JP5963566B2 JP 5963566 B2 JP5963566 B2 JP 5963566B2 JP 2012140034 A JP2012140034 A JP 2012140034A JP 2012140034 A JP2012140034 A JP 2012140034A JP 5963566 B2 JP5963566 B2 JP 5963566B2
Authority
JP
Japan
Prior art keywords
processing
data
read
parallel
pattern identification
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.)
Expired - Fee Related
Application number
JP2012140034A
Other languages
English (en)
Other versions
JP2014006585A (ja
JP2014006585A5 (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.)
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 JP2012140034A priority Critical patent/JP5963566B2/ja
Priority to US13/916,861 priority patent/US9082041B2/en
Publication of JP2014006585A publication Critical patent/JP2014006585A/ja
Publication of JP2014006585A5 publication Critical patent/JP2014006585A5/ja
Application granted granted Critical
Publication of JP5963566B2 publication Critical patent/JP5963566B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/94Hardware or software architectures specially adapted for image or video understanding

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Image Analysis (AREA)
  • Image Input (AREA)

Description

本発明は画像認識、或いは、情報分析などのパターン識別装置関する。
情報処理分野においては、多次元配列情報を頻繁に取り扱う。その中でも、画像処理、画像認識や画像合成等に関わる一部処理や統計処理等では、特定領域範囲内における要素の総和値を求めて使用することが多い。
コンピュータ・グラフィックスの分野では、F. C. Crowが矩形のsummed-area tableと呼ばれる、元の入力画像情報に対する累積情報の概念を提案している(非特許文献1)。この文献では、summed-area tableを入力画像と同じ2次元配列とし、入力画像の座標(x,y)の画素値をI(x,y)としたとき、summed-area tableの同位置(x,y)の成分C(x,y)を次式(1)として定義している。
すなわち図7(a)の元の入力画像において原点位置(0,0)と位置(x,y)の画素を対角とする矩形内の画素の総和値が、同図(b)に示すsummed-area tableの位置(x,y)の値C(x,y)となる。尚、非特許文献1のオリジナルのsummed-area tableは、原点位置を画像左下として説明しているが、本明細書では後述の説明と整合させるため左上原点とする。
さて、この定義によれば、入力画像上で水平または垂直に置かれた任意の矩形領域内のI(x,y)の和を、次の式を使ってsummed-area table上の4点を参照するのみで、求めることができる。例えば図8に示すように(x0,y0)と(x1,y1)(X0<X1,y0<y1)を対角とする矩形領域内の画素値の総和C(x0,y0;x1,y1)を求めるには、次式(2)を演算すれば良い。
C(x0,y0;x1,y1)=C(x0-1,y0-1)-C(x0-1,y1)-C(x1,y0-1)+C(x1,y1) ...(2)
これにより、画像上の任意の矩形領域内の値の総和を高速に求めることが可能となった。なお、式(2)ではCの第一引数が-1となる場合があるが、この場合C(-1,*)は0を返す。また、Cの第二引数も同様に-1となる場合があるが、この場合C(*,-1)は0を返す。「*」はdon't careでどのような数値であっても構わない。特許文献1に累積情報の実装方法の1つが記載されている。
非特許文献2では上記summed-area tableと同等の累積情報をIntegral Imageと呼んでいる。非特許文献2ではそのIntegral Imageを用いて複数の局所領域で特徴量を算出し、パターン識別を行っている。局所領域(local area)とは、入力画像から切り出された画像領域の部分領域を示す。パターン識別に使われる特徴量を算出するためには予め学習によって求められたパラメータが使われる。パラメータには特徴量を算出する局所領域の位置や大きさなどの情報が含まれる。通常、パターン識別で参照する局所領域の位置はランダムであり、累積情報をランダムに読み出す必要がある。
例えば、1回に1データの読み出しが行えるシングルポート型のメモリに累積情報を格納した場合、局所領域中の数値の総和を求めるための4頂点(図8のA,B,C,Dの点。以下4頂点は図8のA,B,C,Dの点を指す)の読み出しはシリアル化され4回のメモリアクセスで処理される。1回のメモリアクセスに1サイクルかかるとすると4頂点を読み出すためには4サイクルが必要となる。
この方法では要求される検出性能(フレームレート、画像サイズ、検出対象物の数などに依存する)が高い場合、メモリアクセスがボトルネックになる可能性がある。高速化するにはシリアル化された4回の読み出しを全部または一部、同時に処理できることが要求される。
この読み出し時間を削減する方法の1つとして、1回で2個のデータを同時に読み出せるデュアルポート型のメモリを使う方法がある。デュアルポート型のメモリを使うと4頂点の中から2頂点ずつ読み出せるので、読み出し時間を4サイクルから2サイクルに削減することができる。但し、デュアルポート型メモリはシングルポート型メモリに比べ回路規模が大きくなる問題がある。
また他の方法として、同一の累積情報を4個のシングルポート型のメモリに書き込んでおくことで、4頂点をそれぞれのメモリから並列に読み出すことも考えられる。但し、この方法では1個のメモリを使う方法と比べて4倍のメモリサイズが必要となる。
また他の方法として、特許文献2に開示されるものがある。特許文献2には画像を複数に分割し、分割された画像それぞれで累積情報を作っておくことで、分割された画像間の境界に接する矩形の総和を求める場合に読み出し回数を減らせる方法が示されている。
また他の方法として、特許文献3に開示されるものがある。特許文献3には積分画像を複数の記憶装置に所定の規則で書き込んでおくことで読み出す際に並列に読み出すことを可能にする方法が示されている。そして特許文献3では学習時に局所領域の形状に制約をかけておくことで、実行時に積分画像の4頂点を並列に読み出せるようにしている。これによりメモリアクセスのボトルネックを解消し、高速読み出し可能な装置を実現している。
また非特許文献3によると認識精度向上のため特徴量算出で参照する領域を図15のような形状で読み出すことが提案されている。図15に示す参照領域は幅と高さが同じブロック(1550から1558)をタイル状に並べたもので、各ブロックの頂点1501から1516の16点を読み出して各ブロック内の画素の総和を算出する。以上の様に、積分画像を高速に読み出すために様々な工夫がなされている。
特開2008−299627号公報 特開2008−102792号公報 特開2012−48402号公報
F. C. Crow, "Summed-Area Tables For Texture Mapping", Computer Graphics, 1984. P. Viola, M. Jones, "Rapid Object Detection using a Boosted Cascade of Simple Features", Proc. IEEE Conf. on Computer Vision and Pattern Recognition, Vol. 1, pp.511-518, December 2001. S. Yan, S. Shan, X. Chen, and W. Gao. Locally assembled binary (lab) feature with feature-centric cascade for fast and accurate face detection. 26th IEEE Conference on Computer Vision and Pattern Recognition, CVPR, 2008.
しかしながら、認識処理で使われる特徴量は積分画像だけではなく他にも存在する。例えば画像内の任意の画素の差分を読み出して算出する差分特徴などがある。積分画像に限らず差分特徴なども含めた多様な特徴量に対応し、かつ高速処理可能な認識処理の装置を設計する場合、各特徴量に対応する様々なメモリ読み出しパターンを高速化できることが求められる。
しかしながら、これまでに説明した方法は特定の特徴量算出においての高速化であって多様な特徴量に対応するものではない。また、高速化のために局所領域の形状に制約を設けると認識精度に影響を与える場合があるため、制約を無くすことも重要である。
本発明は係る点に鑑みなされたものであり、特徴量を算出し、算出した特徴量に基づいて顔などの所定のパターンを識別するパターン識別装置における、大量のデータの高速読み出し処理を可能にする技術を提供しようとするものである。
この課題を解決するため、例えば本発明のパターン識別装置は以下の構成を備える。すなわち、
複数の処理対象領域が所定の次元の入力データの各次元方向毎に定められた間隔で配置され、各処理対象領域から所定のパターンを識別するパターン識別装置において、
所定の次元のデータの入力手段と、
前記入力手段によって得られた入力データを保持するため次元毎に割り当てられた個数の積で構成される複数の記憶手段と、
前記入力データを前記複数の記憶手段に所定の規則に従って書き込む書き込み手段と、
前記処理対象領域に基準点を設け、複数の前記処理対象領域においてそれぞれの基準点に対して相対的に同じ位置のデータを並列に読み出す並列読み出し手段と、
前記並列読み出し手段によって読み出された複数のデータを用いて特徴量を算出する特徴量算出手段と、
前記特徴量算出手段によって算出された前記特徴量を用いて所定のパターンを識別する識別手段を備え
前記各次元方向について定められた間隔と対応する前記記憶手段の個数との組の内、少なくとも1組が互いに素の関係にあることを特徴とする。
本発明によれば、特徴量を算出し、算出した特徴量に基づいて顔などの所定のパターンを識別するパターン識別装置における、大量のデータの高速読み出し処理が可能になる。また、形状や位置などの制約が無いため、認識精度に影響を与えることもない。
実施形態1に係るパターン識別装置の構成を示すブロック図。 実施形態1に係る全体処理のフローチャート。 実施形態1に係るパターン識別処理のフローチャート。 実施形態1に係るメモリの個数P1=5、P2=1に割り当てることを説明する図。 実施形態1に係る処理ウィンドウと局所領域、読み出しデータの関係を説明する図。 実施形態1に係るメモリの個数P1=5、P2=5に割り当てることを説明する図。 入力画像情報に対する累積画像情報の対応関係を説明する図。 総和算出のため累積画像情報から読み出す頂点座標を説明する図。 処理ウィンドウとその配置を説明する図。 ウィンドウグループを説明する図。 局所領域と読み出し画素の位置関係を説明する図。 実施形態3に係る一次元配列のメモリへの割り当てを説明する図。 実施形態4に係る三次元配列を説明する図。 実施形態4に係る三次元配列における処理ウィンドウを説明する図。 特徴量算出のための3×3ブロックの読み出しを説明する図。 実施形態1、2に係るP1×P2個のメモリ群の構成を説明する図。 実施形態1に係るメモリ割り当て数とストライドの関係を説明する図。 実施形態2に係る処理ウィンドウを格子状、千鳥状に配置することを説明する図。 実施形態2に係る特殊な配置での並列読み出しを説明する図。 その他の実施形態に係る一次元配列のデュアルポートメモリへの割り当てを説明する図。 実施形態5に係るウィドウグループ内の処理ウィンドウの状態を説明する図。 実施形態5に係るパターン識別装置の構成を示すブロック図。 実施形態5に係るパターン識別処理のフローチャート。 実施形態5に係る処理モードを説明する図。 実施形態5に係る処理モード切り替え前後のタイミングチャート。
以下、添付図面に従って本発明に係る実施形態を詳細に説明する。
尚、本実施形態においては、従来技術で説明したSummed-area tableあるいはIntegral Imageのような、二次元配列の情報を累積画像情報(または積分画像)と呼ぶ。特に次元数を限定しない場合は累積情報と呼ぶ。また、二次元配列の画像情報(RGB画像やGrayscale画像のような画像情報だけでなく一次微分フィルタをかけた画像など、加工された画像情報も含む)を入力画像情報と呼ぶ。
[実施形態1]
本実施形態ではまずパターン識別装置の構成について説明する。その後、累積画像情報をメモリへ分配する方法と並列読み出しについて説明する。
図1は実施形態1のパターン識別装置の構成を示すブロック図である。図中、101はCPUであって、バス105を介して接続される各部を制御する。102は入力画像情報を入力するデータ入力部であって、処理対象となる入力画像情報を装置内に取り込む。データ入力部102は、例えばCCDなどの画像センサによって構成されてもよいし、ネットワーク等所定の通信経路を持って外部装置から処理したいデータを受信するI/F装置であってもよく、その種類は問わない。104はバス105に接続される外部メモリであって、ROMやRAMあるいはHDD等のストレージ装置で構成されている。外部メモリ104は、CPU101が動作するためのプログラムコードを記憶したり、各種処理を行う上での作業領域として用いられたりする。また、必要に応じて入力画像情報やパターン識別に使用する各種情報を保持するための領域としても用いられる。103はDMAコントローラ(以下、DMAC)であって、CPU101が設定して動作指令することにより、データ入力部102、外部メモリ104、パターン識別部107に所定サイズのデータ転送を、自立的に連続に行うことが可能である。DMAC103は指令された転送動作が完了すると、バス105を介して割り込み信号をCPU101に通知する。107はパターン識別部であって、DMAC103からバス105を介して送られてくる入力画像情報をパターン識別処理する。パターン識別処理は入力画像情報に所定の検出パターン(例えば顔や人体の立像など)が検出されるか否かを判定し、検出位置、検出形状、尤度などの検出情報を出力する。検出情報はバス105を介して外部メモリ104に書き込まれる。
パターン識別部107はバスインタフェース111、累積画像情報生成部112、分配書き込み処理部113、メモリアクセス制御部114、P1×P2個のメモリM00〜M(P2-1)(P1-1)、識別処理制御部119、辞書記憶部120、特徴量算出部121、判定処理部122、処理ウィンドウ管理部123で構成される。
本実施形態のP1×P2個のメモリM00〜M(P2-1)(P1-1)にはシングルポート型のメモリを使用し、図16のメモリ群1601に示すように二次元状の構成に割り合てられたP1×P2個のメモリとして使用する。P1は横(水平)方向に割り当てられたメモリの数で、P2は縦(垂直)方向に割り当てられたメモリの数を表す。1602はアドレス、データ等の一般的なシングルポート型のメモリインタフェース信号である。メモリの入出力制御はメモリアクセス制御部114によりこれらメモリインタフェース信号を介して制御される。
次に図1のパターン識別装置の詳細と全体の処理の流れを、図2のフローチャートを使って説明する。
実施形態1のパターン識別装置は、ユーザの操作や不図示の外部装置からの処理開始トリガによって、まずデータ入力処理(S201)を実行する。S201では最初にCPU101の指示によってデータ入力部102より入力画像情報を受信し、バス105を介して外部メモリ104に蓄積する。そしてDMAC103はCPU101の制御下において、外部メモリ104に蓄積された入力画像情報をパターン識別部107に転送する。
パターン識別部107はバス105を介して転送されてくる入力画像情報をバスインタフェース111で受け、累積画像情報生成部112に転送する。なお、本実施形態では入力画像情報は画像左上の画素から画素単位でラスタ順に入力されるとする。また、本実施形態では、処理対象の画像の発生源はCCD等の撮像素子として説明するが、画像を記憶している記憶装置でも良く、その入力源の種類は問わない。
次のS202では累積画像情報生成処理を行う。累積画像情報生成部112はラスタ順で送られる入力画像情報を累積処理し、累積画像情報を生成する。実施形態1における累積画像情報生成部112は、少なくとも処理対象の水平方向の1ライン分の画素数の第1の記憶領域(変数領域)と、1つのライン上の左端から着目画素位置までの画素値の累積結果を保持する第2の領域とを有し、以下のようにして累積画像情報を算出する。
今、水平方向の画素数をWと表わすとする。従って、累積画像情報生成部112は、第1の記憶領域として、変数C(0),C(1),…,C(W-1)が確保されることになる。この変数C()は画像認識に先立ち、ゼロクリアする。一方、第2の記憶領域は1ライン単位にゼロクリアされるものとする。或るラインの水平方向の画素位置をi(0≦i≦w−1)として表わし、その画素値をXiとあらわしたとき、累積画像情報生成部112は、画素を入力する度に以下の演算により累積画像情報(C(i))を算出し、出力する。
C(i)←C(i)+ΣXk
(ただし、Σはkについての合算を示し、k=0,1,2,…、iである)
上式を簡単に説明すると、次の通りである。
最初のライン(第ゼロライン)上の水平方向のi番目の画素値を入力したとき、上式の右辺のC(i)は0である(初期状態でゼロクリアされている)。従って、最初のラインのi番目の画素Xiを入力した際の、上式の左辺のC(i)はΣXk、すなわち、『X0+X1…+Xi』で表わされる累積画像情報を持つことになる。
そして、第jライン目(j>0)の水平方向のi番目の画素Xiを入力したとき、上式の右辺のC(i)は、画像の左上隅の原点(0,0)と、1つ前のライン上の座標(i,j−1)を結ぶ線を対角線とする矩形内の累積画像情報を保持する。上式の右辺のΣXkは、着目している第jライン上の左端から着目しているi番目までの画素の値の合算であるから、上式の左辺のC(i)は、原点(0,0)と座標(i,j)を対角の頂点とする矩形内の累積画像情報を保持することとなる。
累積画像情報生成部112は、上記のようにして、入力画像情報の画像左上の画素を原点として画素値を累積し、累積結果を累積画像情報として順次、分配書き込み処理部113に転送する。
次のS203では累積画像情報の分配書き込み処理を行う。分配書き込み処理部113はまずメモリに対して書き込みを行ってよいかを処理ウィンドウ管理部123に問い合わせる。処理ウィンドウ管理部123は分配書き込み処理部113からのメモリの書き込みと識別処理制御部119からの読み出しの排他制御を管理している。
ここで、処理ウィンドウとはパターン識別処理が処理を行う画像上の処理対象領域の単位である。図9は処理ウィンドウとその配置を説明する図である。900は入力画像情報で、901は処理ウィンドウを示す。処理ウィンドウはパターン識別処理を行う1単位である。そして、処理ウィンドウ901に対してパターン識別処理を行い、この処理ウィンドウ901に所定の検出パターンが存在するかどうかを判定する。処理ウィンドウは入力画像情報900上に横方向にS1画素、縦方向にS2画素の間隔で配置される。例えば処理ウィンドウ902の右隣の処理ウィンドウは横方向にS1画素の間隔をあけた処理ウィンドウ903の位置となる。また、下の処理ウィンドウは縦方向にS2画素の間隔をあけた処理ウィンドウ904の位置となる。
処理ウィンドウ管理部123はこの処理ウィンドウの位置とメモリの管理を行っている。分配書き込み処理部113は処理対象となる処理ウィンドウを用意するために所定個数の書き込み許可を処理ウィンドウ管理部123から受ける。そして、分配書き込み処理部113は累積画像情報の画素単位で書き込み先のメモリ番号(メモリM00〜M(P2-1)(P1-1))とアドレスを決定し、メモリアクセス制御部114に書き込みを指示する。メモリ番号とアドレスの決定方法の詳細は累積画像情報をメモリへ分配する方法として後述する。
メモリアクセス制御部114は指示されたメモリ番号とアドレスに従ってメモリM00〜M(P2-1)(P1-1)に累積画像情報を格納する。分配書き込み処理部113は所定個数の書き込みが終了すると処理ウィンドウ管理部123に書き込み終了を通知する。
次のS204では、パターン識別処理を行う。このS204におけるパターン識別処理の詳細を図3のフローチャートにて示す。
まずS301にて識別処理制御部119は、処理ウィンドウ管理部123に対して処理対象となるウィンドウグループを要求する。図10に示すように入力画像情報900に水平方向の間隔S1画素で配置された複数の処理ウィンドウ1001から1005をまとめたものをウィンドウグループ1000と呼ぶ。その隣のウィンドウグループ1010は複数の処理ウィンドウ1011から1015で構成される。本実施形態ではこのウィンドウグループ内の複数の処理ウィンドウを並列にパターン識別処理する。ウィンドウグループの処理順序は入力画像情報900の左上に位置するウィンドウグループから順に図10の矢印で示す通りである。
処理対象となるウィンドウグループ分のデータがメモリM00〜M(P2-1)(P1-1)に準備できたら次のS302に移る。S302では辞書データの読み込み処理を行う。識別処理制御部119は辞書記憶部120に格納されている辞書データをもとに識別処理を制御する。辞書データは予め学習によって得られたパラメータ群である。辞書記憶部120はデータを記憶させておく手段で、ROMでもよいし、RAMであってもよい。RAMの場合は不図示の装置によって辞書データが書き込まれるものとする。辞書データには累積画像情報から特徴量を算出する局所領域の位置や形状、判定処理の係数や閾値などのパラメータが格納されている。
次のS303では特徴量を計算し判定処理するためにメモリアクセス制御部114、特徴量算出部121、判定処理部122に辞書データのパラメータを元に設定を行い、処理の開始を指示する。識別処理制御部119は辞書データのパラメータから読み出すメモリ番号とアドレスを算出し、メモリアクセス制御部114に設定を行い、累積画像情報の読み出し処理の開始を指示する。また、特徴量算出部121、判定処理部122で使用するパラメータ(係数、閾値など)も辞書データから取り出して特徴量算出部121、判定処理部122に設定し、処理の開始を指示する。
次のS304では累積画像情報の読み出し処理を行う。読み出し処理では図11に示すようにウィンドウグループ1000の中にある処理ウィンドウ1001から1005の中からデータを並列に読み出すことを行う。
はじめに、各処理ウィンドウで相対的に同じ場所に位置する局所領域1111から1115の中の読み出し画素1121から1125を並列に読み出す。次に、読み出し画素1131から1135を並列に読み出す。そして同様に、読み出し画素1141から1145、読み出し画素1151から1155を並列に読み出す。これらの画素が並列に読み出せる原理については後述する。そしてメモリアクセス制御部114はメモリから並列に読み出した上記画素データを、特徴量算出部121に送る。
次のS305では特徴量を算出する処理を行う。特徴量算出部121は処理ウィンドウの局所領域の4頂点の画素の値から総和値を算出し、S303で設定されたパラメータを使用して特徴量を算出する。これはウィンドウグループ内の処理ウィンドウごとに算出される。特徴量の算出は、例えば得られた総和値を使って正規化したり、総和値に係数を乗じたりする場合がある。また、総和値そのものを特徴量とする場合もある。その後、特徴量の算出結果は判定処理部122に送られる。
次のS306では結果判定の処理を行う。判定処理部122は特徴量の算出結果とS303で設定されたパラメータを使用して判定を行う。判定処理は例えば1つまたは複数の特徴量を使って積和演算して得られた値をLook Up Table(LUT)で非線形変換し、所定の閾値で比較し、結果を出力するような処理である。設定されるパラメータは係数値やLUTのデータ、閾値であって、特徴量の算出結果から判定処理され、例えば設定された閾値よりも高ければTrue、閾値よりも低ければFalseという判定がなされる。この判定処理はウィンドウグループ内の各処理ウィンドウに対して行われる。本実施形態ではこの判定でFalseの場合は処理ウィンドウ内に所定の検出パターンではないという判定が確定(以下、False確定)する。
次のS307ではウィンドウグループ内の各処理ウィンドウにおいて全局所領域の識別処理が終了したかチェックする。これはステップS306でTrueと判定された処理ウィンドウにおいて行われる。識別処理制御部119は次に処理する局所領域が残っていればステップS302に戻る。そしてステップS302からステップS306の処理を全局所領域数分繰り返す。この時、ステップS302からステップS306の処理ではTrue判定されている処理ウィンドウのみ処理すればよい。全局所領域にてTrue判定が得られたら、所定の検出パターンであることが確定(以下、True確定)する。ウィンドウグループ内の各処理ウィンドウでTrue確定もしくはFalse確定がなされたら識別終了となりステップS308に移る。
次にステップS308ではウィンドウグループの終了通知を行う。識別処理制御部119は処理ウィンドウ管理部123に対して処理が終了したことを通知する。通知を受けた処理ウィンドウ管理部123は次のウィンドウグループを準備する処理を開始する。True確定となった処理ウィンドウの情報は識別処理制御部119によってバスインタフェース111を介して外部メモリ104に書き出される。一方、False確定となった処理ウィンドウの情報は書き出さない。
次にステップS309では全ウィンドウグループの識別処理が終了したかどうか確認する。全ウィンドウグループの処理が終了していない場合はFalseに移り次のウィンドウグループの処理を行う。一方、全ウィンドウグループの処理が終了した場合はTrueに移る。
以上のパターン識別処理が入力画像情報の全ウィンドウグループに渡って処理が繰り返され、終了した後、ステップS205に移る。
次にステップS205では後処理を行う。識別処理制御部119は全ウィンドウグループのパターン識別処理が終了したことをCPU101に対して通知する。以上がパターン識別処理の全体の処理の流れである。
次に累積画像情報をメモリに分配する方法と並列読み出しの原理について説明する。まず累積画像情報を所定の規則に従ってメモリへ分配する方法について説明する。
図4の400に累積画像情報C(x,y)を示す。ここでは累積画像情報400の左上を原点、水平方向をx、垂直方向をyとして各画素の座標を(x,y)で表す。原点座標は(0,0)とする。累積画像情報400の1つの箱が特定の座標に対応する累積画像情報値を示す。図4の410から413は各メモリ上のデータを2次元表現したもので、それらの右の図が物理的なメモリ上の格納イメージを示す。各メモリ上のデータの2次元表現と物理的なメモリ上の格納イメージに記載された(x,y)の数値は対応する累積画像情報400の座標を示している。メモリ上のデータ410から413は分配された画像データをそれぞれ原点座標を中心に詰めて再配置した2次元配列である。例えば累積画像情報400の(0,0),(5,0),(0,1),(5,1)の画素は間を詰めて再配置されて410に示す2次元配列となっている。
次に本実施形態1における所定の規則に従ってメモリへ分配する方法について一般化したものを説明する。
累積画像情報400の座標(x,y)の画素値をC(x,y)で表す。メモリM00〜M(P2-1)(P1-1)は図16に示すように二次元的な構成に割り当てられている。P1はx方向のメモリの個数で、P2はy方向のメモリの個数である。また、各メモリはMp2p1で表す。p1、p2は0を起点とするメモリ番号でp1は水平方向のメモリ番号値、p2は垂直方向のメモリ番号値を示す。
そして、C(x, y)がメモリMp2p1のアドレス(address)に格納されることを以下のように表す。
Mp2p1[address] = C(x,y) ...(3)
ここで、座標(x,y)の画素値を格納するメモリ番号p1、p2は次式で表される。
p1 = x % P1 ...(4)
p2 = y % P2 ...(5)
(注:算術記号「%」は剰余(modulo arithmetic)を表す。)
そして、メモリMp2p1上の座標(x’,y’)は次式で表わされる。
x’ = x / P1 ...(6)
y’ = y / P2 ...(7)
(注:x’,y’ は小数点以下切り捨て)
また、メモリMp2p1に格納する画像の幅をm_width として定義すると、m_widthは累積画像情報400の幅widthとP1の値から以下のような式で表すことができる。
m_width = width / P1 ...(8)
(注: m_widthは整数に切り上げ)
格納先のメモリMp2p1のaddressは次式で表される。
address = m_width * y’ + x’ ...(9)
以上が累積画像情報をメモリへ分配する方法を式で一般化したものである。
次に、具体的にx方向のメモリの割り当て数を5(P1=5)、y方向のメモリの割り当て数を1(P2=1)とした場合について図4を用いて説明する。ここで、メモリM p2p1に格納する画像の幅は累積画像情報400の画像幅をwidth=20とすると、P1=5でm_width=4となる。以上を踏まえて各座標の累積画像情報400を各メモリに分配する。
例えばC(8,1)の格納先は式(4),(5)より、p1=3, p2=0、式(6),(7)より、x’=1, y’=1、式(9)より、address=5となる。この結果、式(3)はM03[5]=C(8,1)で表され、C(8,1)の値はメモリM03のaddress=5に格納することになる。
また、局所領域が累積画像情報の上端、左端の上に位置する場合、C(-1,*)、C(*,-1)となる。この場合、それぞれの値はC(-1,*)=0、C(*,-1)=0となる。「*」はdon’t careでどのような数値であっても構わないことを示す。以上が本実施形態における累積画像情報をメモリへ分配する方法である。
次に、本実施形態の並列読み出しの原理について説明する。複数のメモリから同時に並列読み出しを行うためには、読み出し先のメモリが重ならないよう排他関係にしなければならない。ここで重要となる条件は隣り合う処理ウィンドウの間隔(以下、ストライドと呼ぶ)と各次元に割り当てられたメモリの個数を互いに素の関係にすることである。
本実施形態ではx方向のメモリの個数を5にし、ストライドを4画素として互いに素の関係にしている。互いに素の関係にしている理由について図17を用いて説明する。図17では理解を簡単にするために1次元配列とする。まず1次元配列のデータを5個のメモリに割り当て、一定のストライドで連続する5個のデータを並列に読み出すケースを考える。図17の各表は本実施形態のメモリへの分配方法で分配した場合に座標0から5個のデータを、ストライドが1から7の間隔で読み出した場合を示す。ストライドを1から7に変化させた時の読み出し先が黒塗りで示されている。表の見方は1行目のM00からM04がメモリ番号で、2行目以降の数値が一次元データのx座標値である。例えばx=6のデータはメモリ番号M01のアドレス=1に格納される。次にストライド=4の表1704を代表に説明する。最初の読み出しデータはメモリ番号M00のアドレス=0(x=0)とすると、次の読み出しデータは座標を+4移動させた位置で、メモリ番号M04のアドレス=0である。そして次の読み出しデータは座標をさらに+4移動させた位置で、メモリ番号M03のアドレス=1となる。これを繰り返した結果から分かることは0を開始点としてストライド=4で5点連続して読み出した場合、読み出し先のメモリがすべて排他関係になるということである。ここで注目する性質は先頭座標をどこにずらしても読み出し先のメモリが排他関係になることである。これはメモリの個数とストライドとが互いに素の関係にあると起こる性質である。図17ではx方向のメモリの個数とストライドが互いに素の関係にないストライド=5を除いて同様に読み出し先のメモリがすべて排他関係になっていることが確認できる。これはストライドが8以上の場合でもメモリの個数とストライドの関係が互いに素であれば同様に成り立つ。この性質は2次元に拡張した場合も同様の効果が得られる。
次に実際の処理ウィンドウとの対応関係について図5を用いて説明する。図5(a)は処理ウィンドウと局所領域、読み出し画素の位置関係を示す図である。図5(a)のウィンドウグループ500は処理ウィンドウ501から505で構成される。581は処理ウィンドウ501の基準点であり、処理ウィンドウの左上を基準点としている。また、処理ウィンドウ502から505のそれぞれの基準点は582から585に示される。各処理ウィンドウの局所領域510から514はそれぞれ4頂点を持っている。局所領域510の4頂点は図示される520と540、不図示の矩形の右上の画素530、矩形の右下の画素550を持つ。また、局所領域511の4頂点は図示される521と541、不図示の矩形の右上の画素531、矩形の右下の画素551を持つ。また、局所領域512の4頂点は図示される522と542、不図示の矩形の右上の画素532、矩形の右下の画素552を持つ。また、局所領域513の4頂点は図示される523と543、不図示の矩形の右上の画素533、矩形の右下の画素553を持つ。また、局所領域514の4頂点は図示される524、534、544、554を持つ。
処理対象となる局所領域は各処理ウィンドウ内で同じであるため局所領域は510から514のように各処理ウィンドウの基準点581から585より相対的に同じ場所に位置する。処理ウィンドウはS1画素の距離で等間隔に並んでいるため局所領域もS1画素の距離で等間隔に並び、画素520から524もS1画素の距離で等間隔に並んでいる状態になる。このように画素が等間隔に並ぶ状態は図17で説明したストライドと対応しており、一定のストライドで読み出す条件を満たしている。そのため例えばS1=4の場合、累積画像情報をP1=5個のメモリにインタリーブして格納しておけば画素520から524を並列に読み出すことが可能になる。図5(b)に画素を並列に読み出す際のタイムチャートを示す。図5(b)中の520から554までの数値は図5(a)で示す局所領域の4頂点の画素の番号を示す。
図5(b)には時刻t0において画素520から524をメモリM00からM04から同時に読み出すことが示されている。同様にt1、t2、t3で残りの頂点の画素も同時に読み出される。
また、図5(b)からは各メモリで4回の読み出しを行うことで5個の局所領域の頂点の画素値を得ることができることがわかる。この時の速度性能は1回の読み出しに1サイクルを要するとすれば局所領域1個当たりのスループットは4/5=0.8サイクルとなる。
また、ここではストライドS1=4、メモリの個数P1=5で互いに素の関係になるようにしたが、ストライドS1=4と互いに素の関係になるメモリの個数は他にも存在する。例えばP1=7やP1=9、P1=13でもよい。これはさらに高速化したい場合に有効で、メモリの個数P1を増やすことでスループットを向上させることができる。例えばP1=13であれば13個の処理ウィンドウを並列に処理することができるようになる。この時の局所領域1個当たりのスループットは実に4/13=0.30サイクルとなる。
以上の様にメモリの個数とストライドを互いに素の関係にすることで並列読み出しが可能になり、高速化することができることを説明した。
また、本実施形態によれば処理ウィンドウを並列に処理する際、特定の処理ウィンドウに着目すると各局所領域の頂点を1点ずつ読み出すので局所領域の形状は自由である。これは本発明の適用が累積画像情報の中から矩形の4頂点を読み出して総和を計算し特徴量を算出する方法に限るものではないことを意味する。例えば画像内の2点の差分を計算して得られる差分特徴を使ってパターン識別する方法であっても読み出す画素が各処理ウィンドウの基準点から相対的に同じ位置であれば並列読み出しが可能である。
また、本実施形態では累積画像情報をP1=5、P2=1で横方向のみインタリーブする方法を説明したがP1=5、P2=5のように縦方向にもインタリーブしても構わない。図6にメモリM00からM44の構成に割り当て、累積画像情報600を各メモリに分配する例を示す。各メモリへ累積画像情報600を分配するための計算式は式(3)から(9)に示す通りである。図6はx方向のメモリの割り当て数を5(P1=5)、y方向のメモリの割り当て数を5(P2=5)とした図である。また、メモリに格納する画像の幅は累積画像情報600の画像幅width=20とすると、P1=5でm_width=4となる。以上を踏まえて各座標の累積画像情報600を割り当てる。例えばC(5,6)の格納先は式(4),(5)より、p1=0, p2=1、式(6),(7)より、x’=1, y’=1、式(9)より、address=5となる。この結果、式(3)はM10[5]=C(5,6)であらわされ、C(5,6)の値はメモリM10のaddress=5に格納することになる。以上のように累積画像情報600を分配した場合、並列化できるのは25個の処理ウィンドウで、ウィンドウグループは横方向に5個、縦方向に5個が並ぶ構成となる。
本実施形態ではパターン識別部107への入力を画像情報とし、内部で累積画像情報を作成したが、予め作成しておいた累積画像情報を入力としてもよい。その場合、累積画像情報生成部112では入力をそのまま分配書き込み処理部113に出力してもよい。また、累積画像情報生成部112はパターン識別部107から外して、バスインタフェース111と分配書き込み処理部113を直接接続した構成であってもよい。
また、本実施形態では累積画像情報の読み出しについて説明したが、これは特徴量算出処理に使うデータが累積画像情報であっただけで、累積画像情報に限定するものではない。特徴量算出処理で使う情報が画像情報であれば、画像情報をメモリに保存して読み出す方法であっても構わない。
また、本実施形態では式(3)のp1,p2,addressを計算するために式(4)から(9)による計算方法を示したが本発明はこれに限定されるものではない。本発明は割り当てるメモリ数と処理ウィンドウの間隔を互いに素の関係にすることが重要である。
また、本実施形態では図16のように二次元的なメモリの並びで説明したが、これは論理的な配置であって、物理的配置を限定するものではない。また、物理的なメモリ数がP1×P2個より多い場合でも、その中からP1×P2個を論理的に割り当てて使ってもよい。
また、本実施形態では識別処理がFalse確定した場合、処理を打ち切る例で説明したが、本発明は識別処理が途中で打ち切られない処理であってもよい。
[実施形態2]
実施形態2では累積画像情報のx方向を複数個のメモリにインタリーブし、y方向はその位置に応じてx方向のインタリーブ順序の位相を変化させる方法を説明する。そして、これによって特殊な処理ウィンドウの配置においても並列化できることを説明する。
特殊な処理ウィンドウの配置の例を図18に示す。図18は説明のため処理ウィンドウの左上の基準点だけ図示している。図18(a)は格子状の処理ウィンドウの配置を図示している。処理ウィンドウを格子状に配置する例は実施形態1でも示している。
処理ウィンドウはその配置の開始点1801から水平、垂直方向にそれぞれストライドS1、S2の間隔で配置される。次に特殊な処理ウィンドウの配置として千鳥状に配置したものを図18(b)に示す。千鳥状に配置された処理ウィンドウを並列化するための詳細は後述する。
実施形態2では実施形態1と説明が重なる部分があるため差分のみ説明する。実施形態2のパターン識別装置の構成は実施形態1と同じ図1である。異なるのは分配書き込み処理部113である。本実施形態2のメモリ構成のパラメータはP1=5、P2=1とし、分配書き込み処理部113はy方向に応じて分配計算の位相を変え、分配先のメモリを変える処理を行う。
図19を使って位相を変えてメモリに分配する方法とその効果を説明する。図19(a)は実施形態1の方法で分配した例で、図19(b)はy方向の位置に応じて+2だけ位相を変えたものである。
以下に図19(b)の累積画像情報を分配するための一般化した計算式を示す。
計算式は実施形態1で示した式(3)から式(9)とほぼ同じで、違うのはメモリ番号を決める式(4)と式(5)である。ここでは差分のみ説明する。
x方向の位相はphase1(phase1は整数)、y方向の位相をphase2(phase2は整数)で表し、座標(x,y)の画素値を格納するメモリ番号p1、p2は次式で表される。
p1 = ( x + y * phase1 ) % P1 ...(10)
p2 = ( x * phase2 + y ) % P2 ...(11)
(注: % は剰余(modulo arithmetic)を表す)
式(10)は式(4)に位相を加味した計算式で、式(11)は式(5)に位相を加味した計算式である。
図19(b)のy方向の位置に応じて+2だけ位相を変えることは、phase1=2、phase2=0と同じである。図19(a)は実施形態1の方法でP1=5、P2=1の構成のメモリに割り当て、累積画像情報を各メモリに分配した図である。累積画像情報の画素1901はメモリM00に格納され、画素1902のM04 まで順に格納される。そして次の画素1903はM00に格納され、このような格納が右端まで繰り返される。そして下の行の先頭画素1904は1行目同様にM00に格納される。図19(b)は累積画像情報をP1=5、P2=1でy方向の位置に応じて位相を変えてメモリに格納された図である。1行目は図19(a)と同じであるが2行目の先頭画素1905はメモリM02に格納されており図19(a)と違いy方向に1行進む毎に格納先のメモリが+2ずつずれている。
次に、図19(a)、(b)をそれぞれ千鳥状に読み出す場合を図19(c)、(d)を使って説明する。図19(c)に千鳥状に配置された5つの画素が太枠で示されている。太枠の画素位置のものは処理ウィンドウの左上の位置に相当する。ここで示される千鳥状の配置は画素1911が周囲4画素(1910、1912、1913、1914)の中央に位置するようしている。図19(d)も同様に千鳥状の配置がされている。
図19(c)では画素1910と画素1913、画素1912と画素1914の格納先のメモリが同じであるため並列に読めない。一方、図19(d)は画素1920から画素1924は全て格納先のメモリが異なるため並列に読めることがわかる。これは位相をずらすことでy軸方向の重なりが解消されることを意味する。そして図19(d)のように予め決めた画素の位置関係で重なりが無いことが確認できれば、どの場所でもその位置関係にある画素は並列に読み出すことができる。但し、どのような位相のずらし方であっても重なりが解消されるわけではない。例えば、位相を+1ずらした場合、図19(d)に示す千鳥状に配置された5点は画素1922、1921、1923で重なりが発生してしまう。つまり位相は読み出す位置関係を元に調整する必要がある。また、ここでは図19(d)に示したような千鳥状の配置で位相の調整を行うことを説明したが、図19(d)以外にも画素1921が1画素左にずれたり、上にずれたりしても構わない。重要なことは特殊な配置において、それらの配置から画素データを並列に読み出せるように位相を調整することである。
これは次に示すような処理ウィンドウを特殊な位置関係で配置した時の読み出しでもわかる。図19(e),(f)は1930、1931に示すような特殊な位置関係にある画素を並列に読み出したい場合の位相のずらし方を示すものである。図19(e)は位相を+2ずらした場合の図である。特殊な位置関係にある画素群1930、1931は読み出し先のメモリが重なっていることがわかる。一方、図19(f)は位相を+3ずらした場合の図である。特殊な位置関係にある画素群1940、1941は読み出し先のメモリが全て異なることが分かる。このように位相の調整によって並列に読み出せるようになることがわかる。
以上のように、y軸方向の位置に応じて位相をずらすことでy軸方向の重なりの問題が解消されることで、様々な位置関係の画素群を並列に読み出せるようになる。本実施形態2ではy軸方向の位置に応じて位相をずらしたが、本発明はy軸方向に限定されるものではなく、式(11)に示すようにx軸方向の位置に応じて位相をずらしても構わない。また、実施形態2では千鳥状の配置や特殊な位置関係の配置の 場合を説明したが、実施形態1で示した格子状のウィンドウの配置で位相を変えても構わない。また、実施形態2で割り当てたメモリ数P1=5で説明した。この値は素数であるがメモリ数P1は素数に限定されない。重要なことは割り当てた複数のメモリと処理ウィンドウの間隔が「互いに素の関係」とすることで並列に読み出せるように排他関係になるようにすることである。
本実施形態ではパターン識別部107への入力を画像情報とし、内部で累積画像情報を作成したが、予め作成しておいた累積画像情報を入力としてもよい。その場合、累積画像情報生成部112では入力をそのまま分配書き込み処理部113に出力してもよい。また、累積画像情報生成部112はパターン識別部107から外して、バスインタフェース111と分配書き込み処理部113を直接接続した構成であってもよい。
また、本実施形態では累積画像情報の読み出しについて説明したが、これは特徴量算出処理に使うデータが累積画像情報であっただけで、累積画像情報に限定するものではない。特徴量算出処理で使う情報が画像情報であれば、画像情報をメモリに保存して読み出す方法であっても構わない。
[実施形態3]
上記の実施形態1、2では累積画像情報と呼ぶ2次元配列の情報での例を説明したが、本実施形態3では1次元配列の情報に適用する方法を説明する。実施形態3では1次元配列のデータを入力とし、その入力データを一次元入力情報と呼ぶ。
実施形態3での1次元配列は図12(a)に示すように分配される。図12(a)では一次元入力情報1200の左端を開始点としている。データ中の括弧内の数値は開始点を0とした座標を示す。実施形態3のパターン識別装置の構成は実施形態1とほぼ同じで、差分は入力データの累積情報を作らないことと扱うデータが1次元配列に変わったことである。累積情報を作らないようにするには累積画像情報生成部112を外した構成にすればよい。また他の方法として累積画像情報生成部112がデータをスルーして出力する機能を持っている場合はスルーで動作させればよい。
ここでは実施形態1との差分となる1次元配列をメモリに割り当てる方法と並列読み出しについて詳細を説明する。
まず、一次元入力情報のメモリへの割り当て方法について説明する。一次元入力情報の座標(x)の値をf(x)で表す。そして、x方向のメモリの割り当て数をP1とする。メモリはMp1で表す。p1はメモリ番号値を示す。
そして、f(x)の格納先は以下のように表す。
Mp1[address] = f(x) ...(12)
座標(x)の値を格納するメモリ番号p1は次式で表される。
p1 = x % P1 ...(13)
(注: % は剰余を表す。)
そして、格納先のメモリMp1上のaddressは次式で表される。
address = x / P1 ...(14)
(注: 除算は小数点以下切り捨て)
以上が1次元入力情報を所定の規則に従ってメモリへ割り当てるための式である。
次に具体的に図12(a)、(b)を使って説明する。図12(a)の一次元入力情報1200を図12(b)に示す5個のメモリM0(1270)からM4(1274)に格納することを考える。例えばf(3)の格納先のメモリ番号は式(13)より、メモリM3となる。そして、格納先のアドレスは式(14)より、address=0となる。この結果、式(12)はメモリM1[0]=f(3)であらわされ、f(3)の値はメモリM3のaddress=0に格納することになる。これらの計算によって一次元入力情報1200は図12のメモリM0(1270)からM4(1274)に格納される。
次に、並列読み出しについて図12(a)を用いて説明する。実施形態1で説明した処理ウィンドウに相当するものは1210のデータである。処理ウィンドウ1210はf(4)からf(13)までの10個のデータからなる。処理ウィンドウは間隔S1=3で処理ウィンドウ1210から1214に示されるように5つ並んでいる。各処理ウィンドウの基準点はそれぞれf(4)、f(7)、f(10)、f(13)、f(16)の点とする。この時これら基準点に対して相対的に同じ場所に位置する1220から1224は並列に読み出しができる。理由はデータの間隔とメモリの個数が互いに素の関係になるためである。処理ウィンドウの間隔S1とデータの間隔は同じとなるためデータの間隔は3となる。この時、1次元入力情報は5つのメモリに分配されており互いに素の関係となっている。そのためこれらの位置のデータを読み出すと、図12(b)のメモリM0からM4の中の斜線で示しているように各メモリに排他的に格納された状態が保証され並列に読み出すことができる。
また、本実施形態では累積情報を使わない一次元配列について説明したが、一次元配列から累積情報を作成しても構わない。その場合は累積画像情報生成部112がある構成で処理すればよい。
[実施形態4]
実施形態4では、3次元の情報に適用した例で説明する。実施形態4では3次元配列のデータを入力とし、その入力データを三次元入力情報と呼ぶ。三次元入力情報とは例えば動画情報であって、二次元画像に時間軸の一次元が加わり三次元入力情報となる。実施形態4での三次元配列を図13に示す。三次元配列1300は原点Oを開始点として、画像の水平方向をx軸、垂直方向をy軸、時間をt軸で表される。
実施形態4のパターン識別装置の構成は実施形態1とほぼ同じで、差分は入力データの累積情報を作らないことと扱うデータが3次元配列に変わったことである。累積情報を作らないようにするには累積画像情報生成部112を外した構成にすればよい。また他の方法として累積画像情報生成部112がデータをスルーして出力する機能を持っている場合はスルーで動作させればよい。ここでは実施形態1との差分となる3次元配列をメモリに割り当てる方法と並列読み出しについて詳細を説明する。
まず、三次元配列のメモリへの割り当て方法について説明する。三次元配列の座標(x,y,t)の値をf(x,y,t)で表す。そして、x方向のメモリの割り当て数をP1、y方向のメモリの割り当て数をP2、t方向のメモリの割り当て数をP3とする。割り当てるメモリの総数はP1×P2×P3個とし、メモリはMp3p2p1で表す。p1,p2,p3はメモリ番号で、p1はx方向のメモリ番号、p2はy方向のメモリ番号、p3はt方向のメモリ番号を示す。
そして、f(x,y,t)の格納先は以下のように表す。
Mp3p2p1[address] = f(x,y,t) ...(15)
座標(x,y,t)の画素値を格納するメモリ番号p1,p2,p3は次式で表される。
p1 = x % P1 ...(16)
p2 = y % P2 ...(17)
p3 = t % P3 ...(18)
(注: % は剰余を表す。)
そして、格納先のメモリMp3p2p1へのaddressは三次元配列の幅width、高さheightとすると次式で表される。
address = ((width/P1)*(height/P2))*(t/P3)
+(width/P1)*(y/P2)
+(x/P1) ...(19)
(注:width/P1、height/P2の除算は整数に切り上げであり、t/P3、y/P2、x/P1の除算は小数点以下切り捨てである)
以上が三次元配列を所定の規則に従ってメモリへ割り当てるための式である。
次に、並列読み出しについて図13、図14を使って説明する。三次元配列1300を5個のメモリにP1=5,P2=1,P3=1で格納することを考える。図13の1301は実施形態1で説明した処理ウィンドウ相当である。以降、1301を本実施形態4では処理ウィンドウと呼ぶ。処理ウィンドウ1301は3次元の形状を持つものとする。図14の1401は実施形態1で説明したウィドウグループ相当である。以降、1401をウィンドウグループと呼ぶ。処理ウィンドウは間隔S1、S2、S3をあけて配置される。S1はx方向の処理ウィンドウの間隔、S2はy方向の処理ウィンドウの間隔、S3はt方向の処理ウィンドウの間隔である。図14はx方向の間隔S1で配置した例を示す。
また、ウィンドウグループ1401内の処理ウィンドウ1411から1415がx方向に間隔S1=4で5個並ぶものを考える。x方向にだけ並べたのは説明を簡単にするためである。処理ウィンドウをx、y、t方向に並べたウィンドウグループであっても構わない。
これら処理ウィンドウ1411から1415の基準点はそれぞれ原点に最も近い頂点に位置する点とする。この時これら基準点に対して相対的に同じ場所に位置する点1421から1425は並列に読み出すことができる。理由はデータの間隔とメモリの個数が互いに素の関係であるためである。処理ウィンドウの間隔S1とデータの間隔は同じとなるためデータの間隔は4となる。この時、3次元入力情報は5つのメモリに分配されており互いに素の関係となっている。そのためこれらの位置のデータは各メモリに排他的に格納された状態が保証され並列に読み出すことができる。
また、本実施形態では累積情報を使わない3次元配列について説明したが、3次元配列から累積情報を作成しても構わない。その場合は累積画像情報生成部112がある構成で処理すればよい。
[実施形態5]
実施形態1で説明したパターン識別処理ではステップS306の結果判定で検出対象が写っていないことが確定(False確定)した場合、その処理ウィンドウでの識別処理を打ち切る動作をする。図21(a)、(b)はウィンドウグループ内の処理ウィンドウが打ち切られた状態を示す図である。図21(a)は初期のウィンドウグループの状態で、ウィンドウグループ2100は処理ウィンドウ2101から2105がS1画素の間隔で5個配置されている。図21 (b)は処理が進み処理ウィンドウ2101、2105の中には検出対象が写っていないことが確定(False確定)し処理が打ち切られた状態を示す。
次に図21(a)、(b)の局所領域の4頂点について説明する。図21 (a)の中の局所領域の4頂点は2120から2154で示され、それぞれ各処理ウィンドウの左上の基準点から相対的に同じ位置にある。図21(a)の処理ウィンドウ2101の局所領域の4頂点は不図示の頂点も含め2120から時計周りに2130、2150、2140とする。図21(a)の処理ウィンドウ2102の局所領域の4頂点は不図示の頂点も含め2121から時計周りに2131、2151、2141とする。図21(a)の処理ウィンドウ2103の局所領域の4頂点は不図示の頂点も含め2122から時計周りに2132、2152、2142とする。図21(a)の処理ウィンドウ2104の局所領域の4頂点は不図示の頂点も含め2123から時計周りに2133、2153、2143とする。図21(a)の処理ウィンドウ2105の局所領域の4頂点は図に示す通りである。図21(b)の中の局所領域の4頂点は2161から2193で示され、各処理ウィンドウの左上の基準点から相対的に同じ位置にある。図21(b)の処理ウィンドウ2102の局所領域の4頂点は不図示の頂点も含め2161から時計周りに2171、2191、2181とする。図21(b)の処理ウィンドウ2103の局所領域の4頂点は不図示の頂点も含め2162から時計周りに2172、2192、2182とする。図21(b)の処理ウィンドウ2104の局所領域の4頂点は図に示す通りである。
次に図21(a)の状態から図21(b)の状態に移行する際のメモリ読み出しの様子を図21(c)のタイムチャートで示す。ここではP1=5個のメモリが割り当てられて累積画像情報が実施形態1に示した分配の式(3)から式(9)によって各メモリに分配されているものとする。図21(c)では局所領域の2120から2154のデータが時刻t0からt3でM00からM04の全メモリから並列に読み出されている。次に時刻t3の後、処理ウィンドウ2101と2015の処理が打ち切られることによって時刻t4からは局所領域の2161から2193のデータが読みだされている。時刻t4からt7では処理ウィンドウ2102、2103、2104の局所領域のデータを読み出すだけなのでメモリM01、M02、M03からしかメモリ読み出しを行わない。ここでFalse確定の処理ウィンドウの数がさらに増えると読み出しの無いメモリが増えメモリアクセス効率が落ちてしまう。
実施形態5では読み出しの無いメモリを最小限に抑えるための方法を説明する。図22は本実施形態5のパターン識別の構成を示す図である。基本的には実施形態1の図1で説明した構成と同様である。本実施形態の構成は図1に対してFalse確定の処理ウィンドウ数カウント部2201と処理モード切り替え指示部2202が追加されている。次に図23のフローチャートを使って動作を説明する。
図23のフローチャートは実施形態1の図3のフローチャートと基本的には同じであるがステップS2301からステップS2304 が追加されている点が異なる。これらステップについて以下に説明する。
ステップS2301ではFalse確定の処理ウィンドウのカウンタの初期化を行う。初期化はFalse確定の処理ウィンドウ数カウント部2201のカウント値を0にすることである。次にステップS302からステップS306では実施形態1と同様の処理を行う。次にステップS2302ではステップS306でFalse確定された処理ウィンドウをカウントする処理を行う。False確定の処理ウィンドウ数カウント部2201はFalse確定した処理ウィンドウの数をカウントするもので識別処理制御部119よりFalse確定の通知を受けてカウントする。
次にステップS2303ではFalse確定の処理ウィンドウの数が閾値を超えたかどうかチェックする。False確定の処理ウィンドウ数カウント部2201は処理モード切り替え指示部に対してカウント値を通知している。そして、処理モード切り替え指示部2202は受け取ったカウント値とレジスタ設定等で予め設定された閾値とを比較して閾値以上になった時に次のステップS2304に移り、処理モードの切り替えを識別処理制御部119に指示する。閾値未満の場合はステップS307に移る。上記処理モードの切り替えが発生していない場合は実施形態1と同様の動作をする。
次に、処理モードの切り替えが発生した場合の説明をする。最初の処理モードでは第一の読み出し処理モードとして実施形態1に示すようにウィンドウグループ内の処理ウィンドウの局所領域のデータを並列に読み出す。そして、ステップS2304によって切り替えられるもう1つの処理モードでは第二の読み出し処理モードとして1つの処理ウィンドウ内の局所領域の4頂点を並列に読み出す。このモードでは、積分画像をインタリーブしたメモリの数とブロックの幅、高さの関係を互いに素の関係にすることで、局所領域の4頂点の読み出しを行う。これら処理モードと切り替えについて図24を用いて説明する。
図24(a)はP1=5個のメモリ(M00からM04)を割り当て、累積画像情報をy方向の座標に応じて位相を+2画素ずつずらして分配した図である。これは実施形態2で説明した分配方法である。そして、ウィンドウグループ2400は処理ウィンドウ2401から2405で構成され、各処理ウィンドウの間隔S1は4画素としている。ここでの処理ウィンドウは縦16画素、横16画素のサイズとしている。また各画素の中に書かれているM00からM04はメモリ番号を指している。
図24(b)は実施形態1で示した最初の処理モードにおける局所領域の読み出し位置を示す図である。局所領域2406は処理ウィンドウ2401に属している。同様に局所領域2407は処理ウィンドウ2402に属し、局所領域2408は処理ウィンドウ2403に属し、局所領域2409は処理ウィンドウ2404に属し、局所領域2410は処理ウィンドウ2405に属している。これら局所領域2406から2410の4頂点を読み出すタイミングを示すタイミングチャートを図25に示す。まず時刻t1では5個の局所領域2406から2410の左上の頂点に位置するデータを読み出す。具体的には2411、2413、2415、2417、2419に位置するデータである。図25のタイミングチャートではこれらを読み出しがどのメモリから行われているかが時刻t1に図示されている。同様に時刻t2では局所領域の右上の頂点に位置するデータ、時刻t3では局所領域の左下の頂点に位置するデータ、時刻t4では局所領域の右下の頂点に位置するデータが並列に読まれていることがわかる。
次に図24(c)は処理モード切り替え後のもう1つの処理モードにおいて処理ウィンドウ内の局所領域の4頂点を並列に読み出す位置を示す図である。図24(c)は処理ウィンドウ2401と2405の処理がFalse確定し、処理モード切り替えが発生した時の状態である。図24(c)では処理ウィンドウ2402の局所領域2450、2460、2470が図示されている。処理ウィンドウ内の局所領域の4頂点を並列に読み出すとは局所領域2450の4頂点のデータである2451、2452、2453、2454に位置する画素データを並列に読み出すことに相当する。これは図25のタイミングチャート上では時刻t5に示される。その後、局所領域2460の4頂点が時刻t6、局所領域2470の4頂点が時刻t7で並列に読み出される。
以上のように処理モードを切り替えてメモリから読み込むことで5個のメモリの内、4個のメモリを使うのでメモリアクセスの効率がよい。これは同様のケースで説明した図21(c)と比較すれば効率が向上していることがわかる。この処理モードの切り替えにより処理ウィンドウのFalse確定が増えても常に4個のメモリを使うのでメモリアクセスの効率が変わることがない。
本実施形態では図24(c)に示す局所領域は全て排他関係になっている。これは、局所領域の形状に制約をかける必要があるがこれは本発明を限定するものではない。実施形態1と同様の最初の処理モードでは局所領域の形状に制約をかけることは不要であったが、切り替え後の処理モードでは局所領域の形状に制約が必要である。この対処については様々な方法が考えられる。1つは最初の処理モードにおいても切り替え後の処理モードに合わせて局所領域の形状に制約をかけておく方法が挙げられる。また他の方法として、辞書記憶部120に制約無しの辞書と制約付きの辞書の2種類を用意しておき、最初の処理モードでは制約無しの辞書を使い、切り替え後の処理モードでは制約付きの辞書を使う方法がある。また他の方法として、最初の処理モードでは制約無しの辞書を使って処理をし、切り替え後の処理モードでは所定の制約に納まるように計算によって変える方法がある。いずれにしてもパターン識別の精度に対して影響があるものなので許容できる範囲かどうか調べておく必要がある。本発明は処理モードを切り替えることでメモリアクセスの効率の低下を最小化できるものである。
また本実施形態ではFalse確定の処理ウィンドウ数のカウント値によって処理モードを切り替える方法を示したが、本発明はこれに限定するものではない。例えば予め定めた局所領域の特徴抽出までは実施形態1で示す処理モードで動作させ、以降の処理は切り替え後の処理モードで動作させてもよい。
本実施形態ではパターン識別部107への入力を画像情報とし、内部で累積画像情報を作成したが、予め作成しておいた累積画像情報を入力としてもよい。その場合、累積画像情報生成部112では入力をそのまま分配書き込み処理部113に出力してもよい。また、累積画像情報生成部112はパターン識別部107から外して、バスインタフェース111と分配書き込み処理部113を直接接続した構成であってもよい。
また、本実施形態では累積画像情報の読み出しについて説明したが、これは特徴量算出処理に使うデータが累積画像情報であっただけで、累積画像情報に限定するものではない。特徴量算出処理で使う情報が画像情報であれば、画像情報をメモリに保存して読み出す方法であっても構わない。
また、本実施形態では累積画像情報のように2次元の情報を使って説明したが本発明はこれに限定するものではなく1次元や3次元であっても本発明を適用可能であるのは明らかである。
以上の実施形態では1次元から3次元について説明した。さらに、3次元を超える多次元入力情報であっても、同様に超直方体で考えれば、本発明を適用可能であるのは明らかである。多次元、すなわち、N次元まで一般化させた場合のパターン識別装置は、これまでの説明から以下の構成なることは容易に理解できよう。すなわち、
複数の処理対象領域がN次元の入力データの各次元方向毎に間隔S1、S2、…、SNで所定の間隔に配置され、各処理対象領域から所定のパターンを識別する装置において
N次元データの入力部と、
前記入力部によって得られた入力データを保持するため次元毎にP1、P2、…、PN個が割り当てられた計P1×P2×…×PN個で構成さてる複数の記憶部と、
前記入力データを前記複数の記憶部に所定の規則に従って書き込む書き込み部と、
前記処理対象領域に基準点を設け、複数の前記処理対象領域においてそれぞれの基準点に対して相対的に同じ位置のデータを並列に読み出す並列読み出し部と、
前記並列読み出し部によって読み出された複数のデータを用いて特徴量を算出する特徴量算出部と、
前記特徴量算出部によって算出された前記特徴量を用いて所定のパターンを識別する識別部を備え
前記各次元方向の間隔S1、S2、…、SNと対応する前記P1、P2、…、PN個の記憶部の内、少なくとも1組が互いに素の関係にあることを特徴とする。
ここで、並列読み出し部によって読み出す処理対象領域はn番目の次元方向に対して1以上Pn以下の連続する前記処理対象領域であることが望ましい。
また、1つの前記記憶部から同時に読み出せるデータの数をqi(1≦i≦P1×P2×…×PN)、全ての前記記憶部で同時に読み出せるデータの数をqiの総和Qとすると、前記並列読み出し部によって並列に読み出す前記処理対象領域の数は2以上Q以下(P1×P2×…×PN以下)で、前記処理対象領域の位置関係は前記書き込み部の前記書き込み規則から決定されることが望ましい。
また、実施形態2で説明した2次元の累積画像情報をy方向の位置に応じて位相を変えて割り当てる方法はその他の次元においても適用可能である。以上の実施形態では入力データを処理ウィンドウの間隔と割り当てるメモリの個数が互いに素の関係になるようにすることでウィンドウグループ内の処理ウィンドウの点を並列読み出し可能にした。また、実施形態で説明したメモリは一度に1データが読めるシングルポートメモリであった。しかし、本発明はこれに限るものではなく一度に複数のデータが読めるメモリを使っても構わない。例えば一度に2個のデータを読み出せるデュアルポートメモリを使って入力データをインタリーブする場合を考える。図20に一次元配列2000を4個のデュアルポートメモリ2090から2093に分配した時の図を示す。図20(a)は一次元配列の論理的なイメージである。処理ウィンドウ2010から2018は間隔S1=3で配置されており、2020から2027のデータを読み出すことを考える。基準点は各処理ウィンドウの左端の点とする。図20(b)に一次元配列のデータを物理的なメモリに格納した図を示す。図20(b)では2020から2027の点が格納されている場所が斜線で描かれている。2020から2027のデータは各基準点から相対的に同じ位置にあるため間隔はS1と同じとなり等間隔に並ぶ。この間隔とメモリの個数は互いに素の関係にあるため2020から2023の点は各メモリに1つずつ割り当てられ、2024から2027の点も同様に各メモリに1つずつ割り当てられる。この結果、各メモリには2つずつ割り当てられることになる。この時割り当てられるメモリは1度に2個のデータを読めるデュアルポートメモリであるため2020から2027の8個のデータは並列に読み出すことが可能となる。これは二次元、三次元、それ以上の多次元でも同様に適用可能である。

Claims (13)

  1. 複数の処理対象領域が所定の次元の入力データの各次元方向毎に定められた間隔で配置され、各処理対象領域から所定のパターンを識別するパターン識別装置において、
    所定の次元のデータの入力手段と、
    前記入力手段によって得られた入力データを保持するため次元毎に割り当てられた個数の積で構成される複数の記憶手段と、
    前記入力データを前記複数の記憶手段に所定の規則に従って書き込む書き込み手段と、
    前記処理対象領域に基準点を設け、複数の前記処理対象領域においてそれぞれの基準点に対して相対的に同じ位置のデータを並列に読み出す並列読み出し手段と、
    前記並列読み出し手段によって読み出された複数のデータを用いて特徴量を算出する特徴量算出手段と、
    前記特徴量算出手段によって算出された前記特徴量を用いて所定のパターンを識別する識別手段を備え
    前記各次元方向について定められた間隔と対応する前記記憶手段の個数との組の内、少なくとも1組が互いに素の関係にあることを特徴とするパターン識別装置。
  2. 前記入力データは累積情報であることを特徴とする請求項1に記載のパターン識別装置。
  3. 前記書き込み手段は前記入力データを前記複数の記憶手段に書き込む順序が各次元方向の位置に応じて位相を変えることを特徴とする請求項1又は2に記載のパターン識別装置。
  4. 前記所定の次元はN次元であり、前記処理対象領域は各次元方向に間隔S1、S2、…、SNで格子状に所定の間隔に配置されていることを特徴とする請求項1乃3のいずれか1項に記載のパターン識別装置。
  5. 前記所定の次元はN次元であり、前記処理対象領域は各次元方向に間隔S1、S2、…、SNで千鳥状にずらして所定の間隔に配置されていることを特徴とする請求項1乃至3のいずれか1項に記載のパターン識別装置。
  6. n番目の次元方向に対して、前記複数の記憶手段の個数はPnであり、前記並列読み出し手段によって読み出す前記処理対象領域は1以上Pn以下の連続する前記処理対象領域であることを特徴とする請求項1乃至5のいずれか1項に記載のパターン識別装置。
  7. 前記所定の次元はN次元であって、
    前記複数の記憶手段の個数は、n番目の次元方向に対してPnであり、
    1つの前記記憶手段から同時に読み出せるデータの数をqi(1≦i≦P1×P2×…×PN)、全ての前記記憶手段で同時に読み出せるデータの数をqiの総和Qとすると、前記並列読み出し手段によって並列に読み出す前記処理対象領域の数は2以上Q以下で、前記処理対象領域の位置関係は前記書き込み手段の前記書き込み規則から決定されることを特徴とする請求項1乃至6のいずれか1項に記載のパターン識別装置。
  8. 複数の処理対象領域がN次元の入力データに配置され、各処理対象領域から所定のパターンを識別するパターン識別装置において
    N次元データの入力手段と、
    前記入力手段によって得られた入力データを保持するため次元毎にP1、P2、…、PN個が割り当てられた計P1×P2×…×PN個で構成される複数の記憶手段と、
    前記入力データを前記複数の記憶手段に所定の規則に従って書き込む書き込み手段と、
    前記処理対象領域に基準点を設け、複数の前記処理対象領域においてそれぞれの基準点に対して相対的に同じ位置のデータを並列に読み出す並列読み出し手段と、
    前記並列読み出し手段によって読み出された複数のデータを用いて特徴量を算出する特徴量算出手段と、
    前記特徴量算出手段によって算出された前記特徴量を用いて所定のパターンを識別する識別手段を備え、
    前記書き込み手段は前記入力データを前記複数の記憶手段に書き込む順序が各次元方向の位置に応じて位相を変えられ、
    前記並列読み出し手段によって並列に読み出す対象となる前記処理対象領域の数は、2以上で、且つ、P1×P2×…×PN以下であって、前記複数の処理対象領域からデータを並列に読み出せるように前記位相が調整されていることを特徴とするパターン識別装置。
  9. 前記入力データは累積情報であることを特徴とする請求項8に記載のパターン識別装置。
  10. 前記並列読み出し手段においてデータを並列に読み出す第一の読み出し処理モードと第二の読み出し処理モードを備え、第一の読み出し処理モードと第二の読み出しモードとを切り替える処理モード切り替え手段をさらに備えることを特徴とする請求項1乃至9のいずれか1項に記載のパターン識別装置。
  11. 前記第一の読み出し処理モードは前記複数の処理対象領域においてそれぞれの基準点に対して相対的に同じ位置のデータを並列に読み出す処理モードとし、前記第二の読み出し処理モードは1つの処理対象領域の中のデータを並列に読み出す処理モードであることを特徴とする請求項10に記載のパターン識別装置。
  12. 前記処理モード切り替え手段はパターンを識別する処理が予め決められた条件で切り替えることを特徴とする請求項10又は11に記載のパターン識別装置。
  13. 前記並列読み出し手段が読み出す対象とする前記複数の処理対象領域の数をカウントするカウント手段をさらに備え、
    前記処理モード切り替え手段は前記カウント手段がカウントする数値が予め決められた閾値に達した条件で切り替えることを特徴とする請求項10又は11に記載のパターン識別装置。
JP2012140034A 2012-06-21 2012-06-21 パターン識別装置 Expired - Fee Related JP5963566B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012140034A JP5963566B2 (ja) 2012-06-21 2012-06-21 パターン識別装置
US13/916,861 US9082041B2 (en) 2012-06-21 2013-06-13 Pattern identifying apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012140034A JP5963566B2 (ja) 2012-06-21 2012-06-21 パターン識別装置

Publications (3)

Publication Number Publication Date
JP2014006585A JP2014006585A (ja) 2014-01-16
JP2014006585A5 JP2014006585A5 (ja) 2015-08-06
JP5963566B2 true JP5963566B2 (ja) 2016-08-03

Family

ID=49774521

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012140034A Expired - Fee Related JP5963566B2 (ja) 2012-06-21 2012-06-21 パターン識別装置

Country Status (2)

Country Link
US (1) US9082041B2 (ja)
JP (1) JP5963566B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101522985B1 (ko) * 2008-10-31 2015-05-27 삼성전자주식회사 영상처리 장치 및 방법
US10032435B2 (en) * 2014-10-02 2018-07-24 Nagravision S.A. Accelerated image gradient based on one-dimensional data
JP7086795B2 (ja) * 2018-09-03 2022-06-20 ルネサスエレクトロニクス株式会社 半導体装置

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3127975B2 (ja) * 1994-08-10 2001-01-29 日本電信電話株式会社 ディジタル動画番組の早送り及び逆早送り再生のための蓄積・再生制御方法とその装置
JP4582079B2 (ja) 2006-10-19 2010-11-17 トヨタ自動車株式会社 画像識別装置および画像識別方法
JP5058681B2 (ja) 2007-05-31 2012-10-24 キヤノン株式会社 情報処理方法及び装置、プログラム、記憶媒体
JP5449686B2 (ja) * 2008-03-21 2014-03-19 ピーエスフォー ルクスコ エスエイアールエル マルチポートメモリ及びそのマルチポートメモリを用いたシステム
JP5579972B2 (ja) * 2008-08-01 2014-08-27 ピーエスフォー ルクスコ エスエイアールエル 半導体記憶装置及び半導体記憶装置のテスト方法
JP5455547B2 (ja) 2009-10-19 2014-03-26 キヤノン株式会社 画像処理装置及び画像処理方法
JP5390363B2 (ja) * 2009-12-10 2014-01-15 国立大学法人広島大学 特徴検出装置、特徴検出をコンピュータに実行させるためのプログラム、およびそのプログラムを記録したコンピュータ読み取り可能な記録媒体
JP5759126B2 (ja) 2010-08-25 2015-08-05 キヤノン株式会社 パターン識別装置及びその制御方法、プログラム
JP5777458B2 (ja) * 2011-09-12 2015-09-09 キヤノン株式会社 パターン識別装置、パターン識別方法及びプログラム

Also Published As

Publication number Publication date
JP2014006585A (ja) 2014-01-16
US20130343653A1 (en) 2013-12-26
US9082041B2 (en) 2015-07-14

Similar Documents

Publication Publication Date Title
US10572225B1 (en) Circuit arrangements and methods for performing multiply-and-accumulate operations
US20210216696A1 (en) Systems and methods for virtually partitioning a machine perception and dense algorithm integrated circuit
JP5340088B2 (ja) 情報処理方法及び装置
CN104067296B (zh) 一维信号抽取的方法和装置
CN103218174B (zh) 一种用于遥感图像的io双缓存交互多核处理方法
US10356385B2 (en) Method and device for stereo images processing
US20230237313A1 (en) Layout Parasitics and Device Parameter Prediction using Graph Neural Networks
US10411709B1 (en) Circuit arrangements and methods for dividing a three-dimensional input feature map
CN108388537A (zh) 一种卷积神经网络加速装置和方法
JP7261226B2 (ja) 演算処理装置
JP5963566B2 (ja) パターン識別装置
Jung et al. Implementing an interior point method for linear programs on a CPU-GPU system
US20200183833A1 (en) Virtual space memory bandwidth reduction
KR20110074453A (ko) 정보처리장치 및 정보처리방법
JP5759126B2 (ja) パターン識別装置及びその制御方法、プログラム
JP5777458B2 (ja) パターン識別装置、パターン識別方法及びプログラム
CN104869284A (zh) 一种双线性插值放大算法的高效率fpga实现方法和装置
JP7410961B2 (ja) 演算処理装置
US10387997B2 (en) Information processing device, information processing method, and storage medium
WO2022160706A1 (zh) 一种数据处理方法、装置、计算机设备及存储介质
US11704546B2 (en) Operation processing apparatus that calculates addresses of feature planes in layers of a neutral network and operation processing method
CN107256281B (zh) 一种基于裁剪法的fpga可重构资源非矩形布局方法
JP2022512311A (ja) 行列数学命令セットのタイリングアルゴリズム
Wu et al. Parallel integral image generation algorithm on multi-core system
US8934736B2 (en) Image processing apparatus, image processing system, and method for having computer process image

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150619

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150619

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160526

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160628

R151 Written notification of patent or utility model registration

Ref document number: 5963566

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees