JP7089179B2 - 画像認識装置、画像認識方法および画像認識プログラム - Google Patents
画像認識装置、画像認識方法および画像認識プログラム Download PDFInfo
- Publication number
- JP7089179B2 JP7089179B2 JP2018161464A JP2018161464A JP7089179B2 JP 7089179 B2 JP7089179 B2 JP 7089179B2 JP 2018161464 A JP2018161464 A JP 2018161464A JP 2018161464 A JP2018161464 A JP 2018161464A JP 7089179 B2 JP7089179 B2 JP 7089179B2
- Authority
- JP
- Japan
- Prior art keywords
- data elements
- elements
- blocks
- image recognition
- sorting
- 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
Links
- 238000000034 method Methods 0.000 title claims description 99
- 238000012545 processing Methods 0.000 claims description 78
- 230000008569 process Effects 0.000 claims description 63
- 238000003860 storage Methods 0.000 claims description 45
- 238000011156 evaluation Methods 0.000 claims description 35
- 238000004364 calculation method Methods 0.000 description 47
- 238000010586 diagram Methods 0.000 description 24
- 238000013527 convolutional neural network Methods 0.000 description 15
- 238000007781 pre-processing Methods 0.000 description 14
- 238000004422 calculation algorithm Methods 0.000 description 9
- 239000000284 extract Substances 0.000 description 8
- 238000003780 insertion Methods 0.000 description 7
- 230000037431 insertion Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 238000012986 modification Methods 0.000 description 6
- 230000004048 modification Effects 0.000 description 6
- 238000005192 partition Methods 0.000 description 6
- 230000007423 decrease Effects 0.000 description 5
- 239000004065 semiconductor Substances 0.000 description 5
- 238000012546 transfer Methods 0.000 description 5
- 238000013500 data storage Methods 0.000 description 4
- 230000010365 information processing Effects 0.000 description 4
- 238000012856 packing Methods 0.000 description 4
- 238000013528 artificial neural network Methods 0.000 description 3
- 238000011176 pooling Methods 0.000 description 3
- 241000282412 Homo Species 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 238000005520 cutting process Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005401 electroluminescence Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 238000003909 pattern recognition Methods 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000001629 suppression Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
- G06V10/44—Local 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/443—Local 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/449—Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters
- G06V10/451—Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters with interaction between the filter responses, e.g. cortical complex cells
- G06V10/454—Integrating the filters into a hierarchical structure, e.g. convolutional neural networks [CNN]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/764—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/94—Hardware or software architectures specially adapted for image or video understanding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/52—Parallel processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/11—Region-based segmentation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Multimedia (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Databases & Information Systems (AREA)
- Medical Informatics (AREA)
- Biomedical Technology (AREA)
- Biodiversity & Conservation Biology (AREA)
- Molecular Biology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Image Processing (AREA)
- Image Analysis (AREA)
Description
[第1の実施の形態]
第1の実施の形態を説明する。
第1の実施の形態の画像認識装置10は、画像を受け付け、受け付けた画像の中から物体が写った位置と物体の種類とを検出する。画像認識装置10は、携帯情報端末や車載装置などのクライアント装置でもよいし、遠隔の撮像装置やクライアント装置や他のサーバ装置などとネットワークを介して通信するサーバ装置でもよい。分析対象の画像は、直前に撮像されたものでもよいし蓄積されたものでもよい。
演算処理装置11は、演算部11-1~11-8を含む複数の演算部を有する。演算部11-1~11-8は、並列にスレッドを実行可能な演算コアである。好ましくは、演算処理装置11は、数千個以上の多数のスレッドを並列に実行可能である。例えば、演算部11-1~11-8は、GPUに含まれる演算コアである。なお、パイプライン処理技術などにより1つの演算部が2以上の論理スレッドを実行することもある。
次に、第2の実施の形態を説明する。
第2の実施の形態の画像認識装置100は、ニューラルネットワークを用いて、入力画像の中から物体の位置および種類を判定する画像認識を行う。画像認識装置100は、例えば、カメラ映像の中から車両や歩行者を検出する交通監視システムや都市監視システムなどに用いることが可能である。画像認識装置100を情報処理装置やコンピュータと言うこともできる。画像認識装置100は、クライアント装置でもサーバ装置でもよい。
画像認識装置100は、バスに接続されたCPU101、RAM(Random Access Memory)102、HDD(Hard Disk Drive)103、GPU104、画像信号処理部105、入力信号処理部106、媒体リーダ107および通信インタフェース108を有する。画像認識装置100は、第1の実施の形態の画像認識装置10に対応する。
GPU104は、グローバルメモリ123、スケジューラ124、および、複数のストリーミングマルチプロセッサ(SM:Streaming Multi-Processor)であるストリーミングマルチプロセッサ121-1,121-2,…,121-nを有する。
図4は、画像認識の流れの例を示す図である。
画像認識装置100が使用する画像認識モデルは、畳み込みニューラルネットワーク層(CNN層)33、物体領域予測ネットワーク層(RPN(Region Proposal Network)層)35および高速R-CNN層37を含む。画像認識装置100は、入力画像に対して前処理31を行い、前処理後の入力画像32をCNN層33に入力する。画像認識装置100は、CNN層33が出力する特徴マップ34をRPN層35に入力する。画像認識装置100は、RPN層35が出力する物体候補領域36と上記の特徴マップ34を高速R-CNN層37に入力する。これにより認識結果38が得られる。
画像41は、RPN層35が出力する物体候補領域を示す枠線を、入力画像に重ねて表示したものである。RPN層35は1枚の入力画像に対して300個の物体候補領域を出力するが、図5の例では理解を容易にするため少数の物体候補領域のみを表示している。画像41には、検出対象となる物体として自動車、犬、馬および2人の人間が写っている。なお、図5の例では地面や森林などの背景を省略している。画像41では、検出対象となる物体を正確に切り出す矩形領域である正解の物体候補領域に加えて、その周辺に位置やサイズの異なる複数の物体候補領域が抽出されている。RPN層35の中では、このような物体候補領域に加えて、スコアの小さい多数の物体候補領域も一時的に抽出される。
図6は、画像認識装置の機能例を示すブロック図である。
スコア算出部138は、入力画像から複数の物体候補領域を抽出し、各物体候補領域のスコアを算出する。選択部139は、複数の物体候補領域に対応する複数の要素を有し、各要素は物体候補領域の位置およびスコアを含むスコア付き位置データを組み立てる。選択部139は、物体候補領域を絞り込む。選択部139は、スコア付き位置データの要素をスコアの高い順(降順)にソートし、スコアの高い方から6000個の要素を選択する。選択部139は、NMS(Non-Maximum Suppression)処理により、重なりが大きい2以上の物体候補領域のうちの1つを残して他を削除する。選択部139は、残った要素のうちスコアの高い方から300個の要素を選択して出力する。
(S10)前処理部133は、入力画像を前処理する。前処理には、入力画像の幅のピクセル数および高さのピクセル数を、畳み込みニューラルネットワークの仕様に合わせて変更することが含まれる。また、前処理には、入力画像の平均輝度が一定になるように、入力画像の各ピクセルの輝度を全体的にシフトさせる。
物体候補領域選択は、上記のステップS13で実行される。
(S20)選択部139は、スコア付き位置データを組み立てる。スコア付き位置データは、ステップS12で抽出された複数の物体候補領域に対応する複数の要素を含み、各要素は物体候補領域の位置座標とスコアを含むデータ集合である。この時点では、スコア付き位置データの要素はまだソートされていない。
(S24)選択部139は、ソート後のスコア付き位置データから、6000位より後の要素を削除する。上位6000個の要素の選択は、6000位より後の要素を無視するだけでよい。これにより、スコアの高い6000個の物体候補領域が選択される。
図9は、スコア付き位置データのソート例を示す図である。
スコア付き位置データ141は、物体候補領域を示す要素の集合であり、中間データ記憶部132に記憶される。要素はレコードやエントリや単位データなどと言うこともできる。スコア付き位置データ141に含まれる各要素は、スコア、最小X座標、最小Y座標、最大X座標および最大Y座標を含む。最小X座標は、矩形の物体候補領域の左上の頂点のX座標である。最小Y座標は、左上の頂点のY座標である。最大X座標は、右下の頂点のX座標である。最大Y座標は、右下の頂点のY座標である。ただし、要素は物体候補領域の位置を特定できればよく、最小X座標、最小Y座標、最大X座標および最大Y座標に代えて、最小X座標、最小Y座標、幅および高さなどを用いてもよい。
図10は、第1段階ソートの例を示す図である。
第2段階では、1つのストリーミングマルチプロセッサが、ソート済みのN個のブロックを連結して、1024要素×6ブロック=6144個のソート済みの要素列を形成する。ソート処理の後段で選択部139は上位6000個の要素を選択することから、要素数nに関係なくスコアが高い6ブロック分の要素を抽出できればよい。ここでは、あるストリーミングマルチプロセッサを用いて、ソート済みのブロック142-1~142-7を連結して上位6144個のソート済み要素列を形成することを考える。
グループ内ソートは、第1段階ソートにおいて同一グループ内の8個の要素をソートするときに行われる。ここでは、要素143-1~143-8の8個の要素が順に並んでいるとする。要素143-1~143-8に対して8個のスレッドが1対1に割り当てられる。各スレッドは要素143-1~143-8の全てを参照することができる。グループ内ソートは、インデックス計算と要素移動の2段階を含む。インデックス計算も要素移動も要素間で独立に実行できるため、並列化することができる。
グループ間ソートは、第1段階ソートにおいてソート済みグループを連結するときや、第2段階ソートにおいてソート済みブロックを連結するときに行われる。ここでは、ソートされた要素144-1~144-8の8要素グループと、ソートされた要素145-1~145-8の8要素グループとを連結することを考える。要素144-1~144-8,145-1~145-8に対して16個のスレッドが1対1に割り当てられる。各スレッドは要素144-1~144-8,145-1~145-8の全てを参照することができる。グループ間ソートも、インデックス計算と要素移動の2段階を含む。インデックス計算も要素移動も要素間で独立に実行できるため、並列化することができる。
ここでは、ストリーミングマルチプロセッサ121-1がスレッド161-1~161-1024の1024個のスレッドを実行して、同じブロックに属する要素#1~#1024の1024個の要素をソートすることを考える。
ここでは、ストリーミングマルチプロセッサ121-1がスレッド161-1~161-1024の1024個のスレッドを実行して、バブルソート方式により2つのブロックの連結と上位ブロックの抽出とを繰り返すことを考える。
スレッド161-1は、要素#1~#2048の中で要素#1のインデックスを算出する。スレッド161-2は要素#2のインデックスを算出し、スレッド161-3は要素#3のインデックスを算出し、スレッド161-1024は要素#1024のインデックスを算出する。また、スレッド161-1は、要素#1~#2048の中で要素#1025のインデックスを算出する。スレッド161-2は要素#1026のインデックスを算出し、スレッド161-3は要素#1027のインデックスを算出し、スレッド161-1024は要素#2048のインデックスを算出する。
図16は、GPUにおけるメモリ使用例を示す図である。
ここでは説明を簡単にするため、3個のブロックに対して第2段階ソートを行うことを考える。ストリーミングマルチプロセッサ121-1が有する共有メモリ122-1には、区画146-1(区画A)と区画146-2(区画B)が確保される。グローバルメモリ123には、3個のブロックを記憶する区画147-1~147-3が確保される。
ストリーミングマルチプロセッサ121-1は、区画146-2のブロックを区画147-2に上書き保存する。また、区画146-1に記憶されたブロックは最終的なソート結果の先頭ブロックとして確定するため、ストリーミングマルチプロセッサ121-1は、区画146-1のブロックを区画147-1に上書き保存する。
グループ内ソートにおいて、k個の要素を含むグループをソートする場合、スコア同士を比較する比較回数はk2である。グループ間ソートにおいて、k個の要素を含むデータセットをk個の要素を含む他のデータセットと連結する場合、当該データセットについてスコア同士を比較する比較回数はk×(log(k)+1)である。ただし、k個の要素の処理は並列化されるため、グループ内ソートの比較回数は実質的にkであり、グループ間ソートの比較回数は実質的にlog(k)+1である。
図18は、物体候補領域ソートの手順例を示すフローチャートである。
物体候補領域ソートは、前述のステップS23で実行される。
図19は、物体候補領域ソートの手順例を示すフローチャート(続き)である。
(S40)選択部139は、グローバルメモリ123からストリーミングマルチプロセッサ121-1にブロックiをロードする。ブロックiは、連続するN個の記憶領域のうち先頭からi番目の記憶領域に記憶されたブロックである。
(S42)選択部139は、グローバルメモリ123からストリーミングマルチプロセッサ121-1にブロックiをロードする。
(S45)選択部139は、ソートした2048個の要素のうち下位1024個の要素を抽出し、ストリーミングマルチプロセッサ121-1からグローバルメモリ123にブロックi+1として書き出す。例えば、抽出した下位1024個の要素が、連続するN個の記憶領域のうち先頭からi+1番目の記憶領域に上書きされる。また、選択部139は、ソートした2048個の要素のうち上位1024個の要素を、ブロックiとしてストリーミングマルチプロセッサ121-1に保持させる。
(S47)選択部139は、ストリーミングマルチプロセッサ121-1が保持しているブロックiをグローバルメモリ123に書き出す。例えば、1024個の要素が、連続するN個の記憶領域のうち先頭からi番目の記憶領域に上書きされる。
このように、第2段階ソートは、1つのストリーミングマルチプロセッサを用いてバブルソート方式によりN個のブロックの要素をソートする。ただし、他の方法で第2段階ソートを行うこともできる。そこで、第2段階ソートの変形例を説明する。
前述の第2段階ソートでは、ブロック#Nからブロック#1に向かってスコアの高い要素を収集する第1パスを通じてブロック#1を確定し、その後にブロック#Nからブロック#2に向かってスコアの高い要素を収集する第2パスを通じてブロック#2を確定する。これに対し、第1の変形例では、複数のストリーミングマルチプロセッサを用いて異なるパスを部分的に重複して実行できるようにする。すなわち、第1パスが通過したブロックについて第1パスの完了を待たずに第2パスを開始するようにする。
第2の変形例の第2段階ソートは、第1段階ソートと同様に、多くのストリーミングマルチプロセッサを使用して並列度を上げるようにする。第2の変形例の第2段階ソートは、隣接する2つのブロックを連結することを木構造で繰り返す。このため、ブロック数を2のべき乗とし、不足する分についてはスコアが全て0のダミーブロックを用意する。
図22は、スコア付き位置データのNMS処理例を示す図である。
スコア付き位置データ151は、物体候補領域を示す要素の集合であり、スコアの大きい順にソートされたものである。物体候補領域生成部135の選択部139は、NMS処理によりスコア付き位置データ151から一部の要素を削除する。削除する要素は、スコアの小さい物体候補領域のうちスコアの大きい物体候補領域との間で領域重複割合が高いものを示す要素である。領域重複割合の指標としてIoUを使用することができる。物体候補領域Aと物体候補領域Bの間のIoUは、IoU=(A∩B)/(A∪B)であり、物体候補領域A,Bの全体領域のうち重複している部分の面積の割合である。IoUは領域の重なりが多いほど1に近くなり、領域の重なりが少ないほど0に近くなる。選択部139は、物体候補領域A,BのIoUが閾値(例えば、0.7)を超えている場合、物体候補領域A,Bのうちスコアの小さい方を削除する。
図23は、NMS処理の逐次実行の手順例を示すフローチャートである。
逐次実行のNMS処理は、前述のステップS25で実行することができる。
(S51)選択部139は、変数jの値をj=i+1に初期化する。
(S52)選択部139は、スコア付き位置データのi番目の要素(要素i)が示す物体候補領域と、スコア付き位置データのj番目の要素(要素j)が示す物体候補領域との間で、領域重複割合であるIoUを算出する。
(S57)選択部139は、要素iよりスコアの小さい要素(順位の低い要素)が残っているか判断する。要素iよりスコアの小さい要素が残っている場合はステップS58に進み、残っていない場合はNMS処理が終了する。
上記ではNMS処理の逐次実行について説明した。これに対し、2つの要素の間でIoUが閾値を超えているか否かをビットマップで管理するようにし、GPU104を用いてNMS処理を並列化することが考えられる。そこで、NMS処理の並列化を説明する。
ビットマップ152は、スコア付き位置データの2つの要素の間でIoUが閾値を超えているか否かを示すフラグの集合である。ビットマップ152は、6000行×6016列の行列である。ビットマップ152の1行目から6000行目は、ソートされたスコア付き位置データに含まれる6000個の要素に対応する。1行目は1番目の要素に対応し、2行目は2番目の要素に対応し、6000行目は6000番目の要素に対応する。ビットマップ152の1列目から6000列目も6000個の要素に対応する。1列目は1番目の要素に対応し、2列目は2番目の要素に対応し、6000列目は6000番目の要素に対応する。6001列目から6016列目はダミーの列である。
異なる2つの要素の間のIoUの計算は、要素の順序と無関係である。すなわち、ビットマップ152に含まれるフラグのうち、i行j列のフラグとj行i列のフラグは同じ値をとる。また、同じ要素同士のIoUの計算は不要である。このため、ビットマップ152のうち対角線を除く上三角部分のフラグのみ判定すればよい。1つのスレッドは横方向に連続する64ビットの単位ビット列を担当するため、対角線上のフラグと単位ビット列との間の位置関係によって3通りの処理パターンが考えられる。
ビットマップ152が生成されると、以下のようにして削除すべき要素を判定できる。ビットマップ152の1つの行に相当する6016ビットのビット列を行ビット列とする。選択部139は、1行目の行ビット列を基準行ビット列として選択する。選択部139は、2行目から6000行目までのフラグ情報を基準行ビット列に集約する。
図27は、NMS処理の並列実行の手順例を示すフローチャートである。
並列実行のNMS処理は、前述のステップS25で実行される。
(S61)選択部139は、GPU104に6000×94個のスレッドを起動し、それぞれ64ビットを含む6000×94個の単位ビット列に異なるスレッドを割り当てる。以下のステップS62~S70は単位ビット列毎に並列実行される。
(S65)選択部139は、変数jの値をj=i+1とする。
(S66)選択部139は、ソート済みのスコア付き位置データからi番目の要素(要素i)とj番目の要素(要素j)を読み出す。選択部139は、要素iの座標情報と要素jの座標情報に基づいて、領域重複割合としてIoUを算出する。
(S69)選択部139は、変数jの値が最大担当列番号と一致するか判断する。変数jの値が最大担当列番号と一致する場合はステップS71に進み、変数jの値が最大担当列番号と一致しない場合はステップS70に進む。
図28は、NMS処理の並列実行の手順例を示すフローチャート(続き)である。
(S71)選択部139は、GPU104に94個のスレッドを起動し、それぞれ64列を含む94個の列集合に異なるスレッドを割り当てる。これ以降、ステップS75までの処理は列集合毎に並列実行される。選択部139は、変数iの値をi=2に設定する。
(S74)選択部139は、i=6000であるか判断する。i=6000である場合はステップS76に進み、i≠6000である場合はステップS75に進む。
(S76)選択部139は、ビットマップの1行目でフラグが1になっている列を検索し、フラグが1の列に対応する要素をスコア付き位置データから削除する。スコア付き位置データからの要素の削除は、その要素のスコアを、float型最小値など要素が無効であることを示す所定値に設定することで行うことができる。
図29は、ソートとNMS処理の実行時間例を示すグラフである。
グラフ50は、物体候補領域生成部135におけるソート処理の実行時間とソート実装方法との間の関係を示している。更に、グラフ50は、物体候補領域生成部135におけるNMS処理の実行時間とNMS実装方法との間の関係を示している。実行時間は、Faster R-CNN方式による入力画像1つ当たりの時間である。
グラフ60は、1つの入力画像(1フレーム)当たりの画像認識全体の実行時間を示している。なお、ソート処理自体の高速化およびNMS処理自体の高速化による実行時間の短縮に加えて、できる限りGPU104にデータを保持し続けてGPU104とRAM102の間のデータ転送を削減することによっても実行時間が短縮されている。
11 演算処理装置
11-1~11-8 演算部
12 記憶部
13-1~13-8 データ要素
14-1~14-8 インデックス
Claims (9)
- 複数の演算部を含む演算処理装置と、
画像の中から検出された複数の候補領域に対応して、それぞれが候補領域の位置および評価値を示す複数のデータ要素を記憶する記憶部とを有し、
前記演算処理装置は、前記複数のデータ要素それぞれのソート後の順位を示すインデックスを、当該データ要素の評価値および少なくとも一部の他のデータ要素の評価値を参照して、前記複数の演算部を用いて並列に算出し、前記インデックスの算出後、前記複数の演算部を用いて、前記インデックスに基づいて前記複数のデータ要素を並列に移動させることで、前記複数のデータ要素をソートし、
前記演算処理装置は、ソート後の前記複数のデータ要素の順序に基づいて、前記複数の候補領域の中から一部の候補領域を選択する、
画像認識装置。 - 前記複数のデータ要素のソートでは、前記演算処理装置は、
前記複数のデータ要素を複数の単位グループに分割し、
前記複数の単位グループそれぞれの中で、当該単位グループに属するデータ要素の間で評価値を比較して、当該単位グループに属するデータ要素をソートし、
ソート済みの2つの単位グループの間で、一方の単位グループに属するデータ要素の連結後の順位を示すインデックスを、前記一方の単位グループ内における順位と当該データ要素を他方の単位グループに挿入する場合の前記他方の単位グループ内における順位とから算出して、前記2つの単位グループを連結したソート済みのグループを生成する、
請求項1記載の画像認識装置。 - 前記複数のデータ要素のソートでは、前記演算処理装置は、
前記複数のデータ要素を、所定数のデータ要素をもつ複数のブロックに分割し、
前記複数のブロックそれぞれの中でデータ要素をソートし、
ソート済みの2つのブロックを連結してソート済みの連結ブロックを生成し、前記連結ブロックから前記評価値の順に前記所定数のデータ要素を抽出し、抽出した前記所定数のデータ要素と他のブロックとを連結することを繰り返すことで、前記複数のデータ要素の中から前記評価値の順に前記所定数のデータ要素を抽出する、
請求項1記載の画像認識装置。 - 前記複数のブロックのうち一部のブロックを一時的に記憶する他の記憶部を更に有し、
前記複数のデータ要素のソートでは、前記演算処理装置は、前記2つのブロックを前記記憶部から前記他の記憶部に読み込み、連結後に前記所定数のデータ要素を前記他の記憶部に保持して、前記連結ブロックの中の他のデータ要素を前記他の記憶部から前記記憶部に書き出し、前記他のブロックを前記記憶部から前記他の記憶部に読み込む、
請求項3記載の画像認識装置。 - 前記複数のデータ要素のソートでは、前記演算処理装置は、第1のブロックと第2のブロックとを連結して第1の連結ブロックを生成し、前記第1の連結ブロックのうちの前記所定数のデータ要素と第3のブロックとを連結して第2の連結ブロックを生成した場合、前記第2の連結ブロックのうちの前記所定数のデータ要素と第4のブロックとを連結する処理と、前記第1の連結ブロックのうちの残りのデータ要素と前記第2の連結ブロックのうちの残りのデータ要素とを連結する処理とを並列に実行する、
請求項3記載の画像認識装置。 - 前記複数の演算部は、所定の並列度をもつ複数の演算部グループに分かれており、
前記複数のデータ要素のソートでは、前記演算処理装置は、前記複数のデータ要素を前記所定の並列度に応じた個数のデータ要素をもつ複数のブロックに分割し、前記複数のブロックそれぞれの中でデータ要素をソートする第1の処理と、それぞれソート済みである前記複数のブロックを連結する第2の処理とを、異なるソート方法によって実行する、
請求項1記載の画像認識装置。 - 前記複数の演算部は、GPU(Graphics Processing Unit)が有するプロセッサコアであり、前記記憶部は、前記GPUが有するメモリである、
請求項1記載の画像認識装置。 - 画像認識装置が、
画像の中から検出された複数の候補領域に対応して、それぞれが候補領域の位置および評価値を示す複数のデータ要素を取得し、
前記複数のデータ要素それぞれのソート後の順位を示すインデックスを、当該データ要素の評価値および少なくとも一部の他のデータ要素の評価値を参照して、前記画像認識装置が有する複数の演算部を用いて並列に算出し、
前記インデックスの算出後、前記複数の演算部を用いて、前記インデックスに基づいて前記複数のデータ要素を並列に移動させることで、前記複数のデータ要素をソートし、
ソート後の前記複数のデータ要素の順序に基づいて、前記複数の候補領域の中から一部の候補領域を選択する、
画像認識方法。 - コンピュータに、
画像の中から検出された複数の候補領域に対応して、それぞれが候補領域の位置および評価値を示す複数のデータ要素を取得し、
前記複数のデータ要素それぞれのソート後の順位を示すインデックスを、当該データ要素の評価値および少なくとも一部の他のデータ要素の評価値を参照して、前記コンピュータが有する複数の演算部を用いて並列に算出し、
前記インデックスの算出後、前記複数の演算部を用いて、前記インデックスに基づいて前記複数のデータ要素を並列に移動させることで、前記複数のデータ要素をソートし、
ソート後の前記複数のデータ要素の順序に基づいて、前記複数の候補領域の中から一部の候補領域を選択する、
処理を実行させる画像認識プログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018161464A JP7089179B2 (ja) | 2018-08-30 | 2018-08-30 | 画像認識装置、画像認識方法および画像認識プログラム |
US16/543,668 US11080812B2 (en) | 2018-08-30 | 2019-08-19 | Image recognition apparatus and image recognition method for sorting candidate regions detected in image |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018161464A JP7089179B2 (ja) | 2018-08-30 | 2018-08-30 | 画像認識装置、画像認識方法および画像認識プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2020035195A JP2020035195A (ja) | 2020-03-05 |
JP7089179B2 true JP7089179B2 (ja) | 2022-06-22 |
Family
ID=69639996
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018161464A Active JP7089179B2 (ja) | 2018-08-30 | 2018-08-30 | 画像認識装置、画像認識方法および画像認識プログラム |
Country Status (2)
Country | Link |
---|---|
US (1) | US11080812B2 (ja) |
JP (1) | JP7089179B2 (ja) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111242117A (zh) * | 2018-11-28 | 2020-06-05 | 佳能株式会社 | 检测装置和方法及图像处理装置和系统 |
US11481190B2 (en) * | 2020-05-22 | 2022-10-25 | International Business Machiines Corporation | Selecting a plurality of processing systems to sort a data set |
CN114968547A (zh) * | 2021-02-25 | 2022-08-30 | 华为技术有限公司 | 一种排序装置及方法 |
KR20230154274A (ko) * | 2021-06-09 | 2023-11-07 | 닛폰세이테츠 가부시키가이샤 | 감시 시스템, 감시 방법, 프로그램 및 컴퓨터 프로그램이 기억된 컴퓨터 판독 가능한 기록 매체 |
CN113781388A (zh) * | 2021-07-20 | 2021-12-10 | 许继集团有限公司 | 基于图像增强的输电线路通道隐患图像识别方法及装置 |
CN114356512B (zh) * | 2021-10-25 | 2024-11-26 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、设备以及计算机可读存储介质 |
CN114364017B (zh) * | 2021-12-21 | 2024-03-01 | 威海北洋电气集团股份有限公司 | 级联节点物理位置自动标定及校准方法、装置、介质和设备 |
CN114037912A (zh) * | 2022-01-07 | 2022-02-11 | 成都国星宇航科技有限公司 | 遥感图像的变化检测方法、装置及计算机可读存储介质 |
WO2023175848A1 (ja) * | 2022-03-17 | 2023-09-21 | 日本電気株式会社 | 表示支援装置、表示支援方法、および記録媒体 |
CN115546009B (zh) * | 2022-11-29 | 2023-02-03 | 合肥中科类脑智能技术有限公司 | 非极大值抑制算法的优化方法、装置以及设备、存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005006237A (ja) | 2003-06-16 | 2005-01-06 | Mitsubishi Precision Co Ltd | 演算処理方法及びその装置並びに画像合成方法及びその装置 |
JP2014093023A (ja) | 2012-11-06 | 2014-05-19 | Canon Inc | 物体検出装置、物体検出方法及びプログラム |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10334054A (ja) * | 1997-05-29 | 1998-12-18 | Hitachi Ltd | 並列画像生成方法とそのためのデータ分割手法 |
DE69935437T2 (de) | 1998-09-10 | 2007-11-15 | Ecchandes Inc., Gamagori | Visuelle vorrichtung |
JP2001148023A (ja) | 1999-09-07 | 2001-05-29 | Ecchandesu:Kk | 視覚装置及び視覚方法 |
WO2015089115A1 (en) * | 2013-12-09 | 2015-06-18 | Nant Holdings Ip, Llc | Feature density object classification, systems and methods |
CN106296638A (zh) | 2015-06-04 | 2017-01-04 | 欧姆龙株式会社 | 显著性信息取得装置以及显著性信息取得方法 |
CN110060195B (zh) * | 2018-01-19 | 2021-05-04 | 华为技术有限公司 | 一种数据处理的方法及装置 |
-
2018
- 2018-08-30 JP JP2018161464A patent/JP7089179B2/ja active Active
-
2019
- 2019-08-19 US US16/543,668 patent/US11080812B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005006237A (ja) | 2003-06-16 | 2005-01-06 | Mitsubishi Precision Co Ltd | 演算処理方法及びその装置並びに画像合成方法及びその装置 |
JP2014093023A (ja) | 2012-11-06 | 2014-05-19 | Canon Inc | 物体検出装置、物体検出方法及びプログラム |
Also Published As
Publication number | Publication date |
---|---|
JP2020035195A (ja) | 2020-03-05 |
US20200074690A1 (en) | 2020-03-05 |
US11080812B2 (en) | 2021-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7089179B2 (ja) | 画像認識装置、画像認識方法および画像認識プログラム | |
Wu et al. | Stacked cross refinement network for edge-aware salient object detection | |
Radenović et al. | Revisiting oxford and paris: Large-scale image retrieval benchmarking | |
US11265598B2 (en) | Method and device for determining duplicate video | |
CN105844669B (zh) | 一种基于局部哈希特征的视频目标实时跟踪方法 | |
WO2019238560A1 (en) | Generative adversarial networks for image segmentation | |
US11537857B2 (en) | Pooling processing method and system applied to convolutional neural network | |
US20130235050A1 (en) | Fully parallel construction of k-d trees, octrees, and quadtrees in a graphics processing unit | |
CN109508675B (zh) | 一种针对复杂场景的行人检测方法 | |
KR101991763B1 (ko) | 조밀 탐색 방법 및 화상 처리 장치 | |
CN112181991B (zh) | 基于快速构建kd树的地球模拟系统网格重映射方法 | |
Shah et al. | Geometry-aware feature matching for structure from motion applications | |
CN104680531B (zh) | 一种连通量统计信息提取方法及vlsi结构 | |
Bastani et al. | OTIF: Efficient tracker pre-processing over large video datasets | |
CN101299213A (zh) | N维聚类排序记录树空间索引方法 | |
JP7085600B2 (ja) | 画像間の類似度を利用した類似領域強調方法およびシステム | |
Li et al. | Real-time mobile acceleration of dnns: From computer vision to medical applications | |
US20150086118A1 (en) | Method for recognizing a visual context of an image and corresponding device | |
CN110097581B (zh) | 基于点云配准icp算法构建k-d树的方法 | |
KR102102181B1 (ko) | 부호화된 방향성 네트워크에서의 표현 학습 방법 및 장치 | |
CN111079527A (zh) | 一种基于3d残差网络的镜头边界检测方法 | |
Dziri et al. | Late fusion of multiple convolutional layers for pedestrian detection | |
US9781357B2 (en) | Method and an apparatus for generating an approximate nearest neighbor field (ANNF) for images and video sequences | |
CN114780151A (zh) | 一种基于归并排序算法实现可变规模数量的数据排序系统 | |
US10504000B2 (en) | Methods, systems, and computer readable media for image overlap detection |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20210513 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20210524 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20210524 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20220426 |
|
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: 20220510 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20220523 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7089179 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |