JP7368924B2 - 勾配方向ヒストグラムの演算のためのハードウェアアクセレレータ - Google Patents

勾配方向ヒストグラムの演算のためのハードウェアアクセレレータ Download PDF

Info

Publication number
JP7368924B2
JP7368924B2 JP2023026830A JP2023026830A JP7368924B2 JP 7368924 B2 JP7368924 B2 JP 7368924B2 JP 2023026830 A JP2023026830 A JP 2023026830A JP 2023026830 A JP2023026830 A JP 2023026830A JP 7368924 B2 JP7368924 B2 JP 7368924B2
Authority
JP
Japan
Prior art keywords
component
gradient
magnitude
value
bin
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
JP2023026830A
Other languages
English (en)
Other versions
JP2023065515A (ja
Inventor
ドゥバイ アイシュワルヤ
Original Assignee
テキサス インスツルメンツ インコーポレイテッド
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 テキサス インスツルメンツ インコーポレイテッド filed Critical テキサス インスツルメンツ インコーポレイテッド
Publication of JP2023065515A publication Critical patent/JP2023065515A/ja
Application granted granted Critical
Publication of JP7368924B2 publication Critical patent/JP7368924B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/13Edge detection
    • 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/50Extraction of image or video features by performing operations within image blocks; by using histograms, e.g. histogram of oriented gradients [HoG]; by summing image-intensity values; Projection analysis
    • 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
    • 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
    • G06V10/955Hardware or software architectures specially adapted for image or video understanding using specific electronic processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2218/00Aspects of pattern recognition specially adapted for signal processing
    • G06F2218/08Feature extraction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/28Indexing scheme for image data processing or generation, in general involving image processing hardware

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Software Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Image Analysis (AREA)
  • Image Processing (AREA)

Description

先進運転者支援システム(ADAS)における歩行者認識などの埋込みコンピュータビジョン応用例の場合、高速の加重勾配(角度)計算が必要とされる。例えば、キャニー及びその他の角度エッジ及び特徴検出アルゴリズムには、正確な狭いエッジの保証に役立つよう、画像画素上の勾配方向の計算が必要とされる。別の例において、勾配方向ヒストグラム(HOG:histogram of oriented gradients)の特徴が、一般の物体検出のための多くのビジョンアルゴリズムによって用いられ、こうした一般の物体検出は、画像の複数のウィンドウにおける画素毎の勾配方向の計算及びウィンドウ毎の勾配方向のヒストグラム分布の計算を必要とする。
勾配方向及びヒストグラムの計算は計算コストがかかる。例えば、HOGアルゴリズムの場合、或る画素についてのx及びy勾配の方位角θ並びに勾配の大きさは、下記によって与えられる。
θ(x,y)=tan-1(G/G
Figure 0007368924000001
ここで、G及びGは、それぞれの水平及び垂直勾配である。方位角θ及びGmagは、或る画像における複数の重なった検出ウィンドウにおける各画素に対して計算される。埋込みコンピュータビジョン応用例における大画像に対してこのような計算をリアルタイムで実施することは、埋込みデバイスにおいて現在用いられるプロセッサの演算パワーの全部ではないにしても大部分を消費し得る。
説明される例は、勾配方向のヒストグラムの演算を加速させるための方法及び装置に関する。一態様において、勾配方向ヒストグラムの演算のためのハードウェアアクセレレータが提供される。ハードウェアアクセレレータは、或る画素の勾配G及びGを演算するように構成される勾配演算構成要素、複数の代表的な方位角、G、並びにG及びGの符号に基づいて、その画素についての角度ビンのビン識別子を決定するように構成されるビン識別構成要素、及び、複数の代表的な方位角とビン識別子とに基づいて勾配の大きさGmagを決定するように構成される大きさ構成要素を含む。
一態様において、ハードウェアアクセレレータにおける勾配方向ヒストグラムの演算のための方法が提供される。この方法は、ハードウェアアクセレレータの勾配演算構成要素において或る画素の勾配G及びGを演算すること、ハードウェアアクセレレータのビン識別構成要素においてその画素について角度ビンのビン識別子を決定すること、及び、ハードウェアアクセレレータの大きさ構成要素において勾配Gmagの大きさを決定することを含み、ビン識別子は、複数の代表的な方位角、G、並びにG及びGの符号に基づいて決定され、勾配Gmagの大きさは、複数の代表的な方位角とビン識別子とに基づいて決定される。
一態様において、システムオンチップ(SOC)が提供される。SOCは、勾配方向ヒストグラム(HOG)の演算のためのハードウェアアクセレレータであって、或る画像における各画素に対してビン識別子及び勾配大きさを生成するように構成可能なハードウェアアクセレレータ、ビンID及び勾配大きさをストアするようにハードウェアアクセレレータに結合されるメモリ、メモリに結合されるHOGジェネレータであって、ハードウェアアクセレレータによって生成されるビンID及び勾配大きさを用いてHOG記述子を生成するように構成可能なHOGジェネレータ、及び、メモリ及びハードウェアアクセレレータに結合されるプロセッサを含む。プロセッサは、複数のオブジェクトを検出するようにプログラムされるビジョン処理応用例を実行するように動作可能である。ビジョン処理応用例は、ビンID及び勾配の大きさを生成するようにハードウェアアクセレレータを構成し、ビンID及び勾配大きさを用いて複数のオブジェクトの各オブジェクトに対してHOG記述子を生成するようにHOGジェネレータを構成する、ソフトウェア命令を含む。
一態様において、勾配方向ヒストグラム(HOG)の演算のためのハードウェアアクセレレータを用いるための方法が提供される。この方法は、ハードウェアアクセレレータによって或る画像における各画素に対してビン識別子及び勾配大きさを決定すること、及び、ビンID及び勾配大きさを用いて複数のタイプのオブジェクトの分類のためのHOG記述子を演算することを含む。
勾配方向のヒストグラム(HOG)を計算するための方法のフローチャートである。
歩行者認識のためのHOG演算の例である。
例示のマルチプロセッサシステムオンチップ(SOC)のハイレベルブロック図である。
図3のSOCの例示のHOGアクセレレータのハイレベルブロック図である。
或る画素についてのビン識別子及び大きさを決定するための方法のフローチャートである。
HOG記述子を生成するための方法のフローチャートである。
図面において、一貫性のために同様の要素は同様の参照数字で示す。
図1は、勾配方向のヒストグラムを計算するための方法のフローチャートである。この方法を図2の例を参照して説明する。図2は、歩行者認識のために実施されるHOG演算を表す。他のオブジェクト認識アルゴリズムにおいて、異なるウィンドウサイズについて同様のHOG演算が実施される。概して、HOGは、オブジェクト認識タスクのための特徴セットとして用いられる。基本的な考え方は、局所オブジェクトの外観及び形状が、対応する勾配又はエッジ位置を精密に知ることなく、局所強度勾配又はエッジ方向の分布によって特徴付けられるということである。
図2の例において、初期の歩行者の場所を決定するために、或る画像にわたって検出ウィンドウ200がシフトされるスライディングウィンドウ手法が用いられる。各検出ウィンドウに対して、ウィンドウにおける画素からHOG特徴セットが生成され、歩行者の存在について評価される。この例では、検出ウィンドウ200は、64×128画素と仮定する。
ここで図1を参照すると、検出ウィンドウ200における各画素の勾配G及びGが、大きさGmagとともに演算される(100)。勾配ベクトル又は画像勾配とも称する画素の勾配は、画素の周りでx方向及びy方向に沿って画素値の変化を測定したものである。概して、或る画素についての勾配は、画素を中心とする畳み込みフィルタによって、画像における画素がフィルタによって覆われる状態で演算される。フィルタのサイズ及び構成は変わり得る。大きさGmagは、
Figure 0007368924000002
により演算される。
各画素に対して勾配の方位角θも演算される(102)。或る画素についての方位角θは、
θ=tan-1(G/G
により演算される。次いで、これらの方位角を用いて各画素に対して角度ビンが決定される(104)。ビンを決定するために、検出ウィンドウ200は、セルと称する局所空間領域に分割される。図2の例において、セル202は8×8画素である。各セルにおける64画素を離散化して、それらの方位角に従った角度ビンにする。角度ビンは、勾配が符号付きか符号なしかによって、0~180度又は0~360度にわたって均一に広がる。例えば、符号付き勾配の場合、0~180度にわたって均一に広がる9個の角度ビンがあり得る。或る画素についての方位角θにより、その画素についての特定のビンが決まる。
次いで、勾配方向のヒストグラムが、検出ウィンドウ200における各セルに対し、そのセルにおけるビンと画素の大きさとに基づいて演算される(106)。或るビンに割り当てられる画素の勾配の大きさにより、そのビンに対応するヒストグラムにおけるバーの高さが決まる。すなわち、ヒストグラムにおけるバーの高さは、対応するビンに割り当てられた画素の勾配大きさの関数である。例えば、高さは、画素の大きさの合計又は加重合計であり得る。
勾配強さは、影、照明の局所変動、及び前景/背景コントラストなどの要因のため広範囲にわたって変動する。したがって、局所コントラスト正規化が必要とされる。そのために、ブロックと称する空間領域として隣接セルの群を考える。図2の例において、ブロック204は2×2の隣接セルの群である。各ブロックは、L2ノルムを用いるなどの、正規化された、対応する4個のセルのヒストグラムの連結によって表される。検出ウィンドウ200についての最終的なHOG記述子は、正規化されたブロック応答の連結によって表される。
上述したように、埋込みコンピュータビジョン応用例において、大画像に対して勾配方向のヒストグラムをリアルタイムで演算することは、埋込みデバイスにおいて現在用いられるプロセッサの演算パワーの全部ではないにしても大部分を消費し得る。例示の実施形態は、HOG演算のためのハードウェアアクセレレータを提供する。より具体的には、ハードウェアアクセレレータの例が、勾配方向のヒストグラムを演算するために必要とされる画素のビン識別子及び勾配大きさの決定を加速する。
図3は、コンピュータビジョン処理をサポートするように構成される例示のマルチプロセッサシステムオンチップ(SOC)300のハイレベルブロック図である。SOC300は、デュアル汎用プロセッサ(GRP)302、デュアルデジタルシグナルプロセッサ(DSP)304、ビジョンプロセッサ306、HOGジェネレータ314、及びHOGアクセレレータ312を含み、これらは高速相互接続322を介して結合される。
ビジョンプロセッサ306は、加速テストによる特徴(FAST)の特徴演算、ディープニューラル畳み込みネットワーク演算など、様々なコンピュータビジョン及びその他の信号処理タスクに対して調整されるベクトルプロセッサである。GRP302は、オペレーティングシステムをホストし、HOGアクセレレータ312によって成される処理のスケジューリングを含めてSOC300の動作の全体的な制御を提供する。DSP304は、HOGジェネレータ314の出力を用い得る、オブジェクト検出及び分類などのコンピュータビジョン処理に対するサポートを提供する。
SOC300はさらに、ダイレクトメモリアクセス(DMA)構成要素308、外部カメラ324に結合されるカメラ捕捉構成要素310、ディスプレイ管理構成要素316、例えばコンピュータ可読媒体などのオンチップランダムアクセスメモリ(RAM)318、及び、様々な入力/出力(I/O)周辺装置320を含み、これらはすべて、相互接続322を介して、プロセッサ、HOGアクセレレータ312、及びHOGジェネレータ314に結合される。カメラ324は、アナログ接続、イーサネットケーブル、低電圧差動シグナリング(LVDS)ケーブル、又は他の適切な有線又は無線接続を介して、SOC300に結合され得る。
図4を参照してより詳細に説明するように、HOGアクセレレータ312は、カメラ324によって捕捉される画像における画素のビン識別子及び勾配の大きさを決定するための機能を有する。DSP304上で実行されるコンピュータビジョン応用例が、その応用例によって特定されるパラメータに従って、画像における画素のビン識別子及び勾配大きさを生成するようにHOGアクセレレータ312を構成する。例えば、応用例は、セルヒストグラムにおけるビンの数、及び各ビンの代表的な方位角などの、HOGアクセレレータ312のパラメータを構成し得る。代表的な方位角及びHOGアクセレレータ312の構成を、図4を参照して説明する。HOGアクセレレータ312は、構成されたパラメータに従って画像における各画素に対してビン識別子及び勾配大きさを決定し、HOGジェネレータ314による使用のため、このデータをRAM318にストアする。
HOGジェネレータ314は、HOGアクセレレータ312によって生成されたビン識別子及び勾配大きさを用いて検出ウィンドウのためのHOG記述子を生成するための機能を有する。より具体的には、HOGジェネレータ314は、コンピュータビジョン応用例が画像において探索するオブジェクトのタイプに従ってHOGアクセレレータ312によって生成されるデータを用いてHOG記述子を生成するように構成可能である。例えば、歩行者検出の場合、応用例は、検出ウィンドウサイズ、HOG記述子を生成するために用いる画像の部分(これは、画像のサブセット又は画像全体とし得る)、セルサイズ、及びブロックサイズなどの、HOGジェネレータ314のパラメータを構成し得る。車両検出の場合、応用例は上記と異なるようにパラメータを構成し得る。
HOGジェネレータ314は、ストアされたデータを用いて、特定された検出ウィンドウサイズ、セルサイズ、及びブロックサイズに従った、特定された画像部分における検出ウィンドウのためのHOG記述子を生成する。より具体的には、HOGジェネレータ314は、画像の特定部分に対応するHOGアクセレレータ312によって生成されるデータにわたって特定サイズの検出ウィンドウがシフトされるスライディングウィンドウ手法を実装する。HOGジェネレータ314は、各検出ウィンドウに対してHOG記述子を生成する。上述したように、検出ウィンドウのためのHOG記述子の生成は、セルに対してHOGを生成すること、セルのブロックのHOGを正規化すること、及び、得られた正規化されたHOGを連結して検出ウィンドウのためのHOG記述子を形成することを含む。ビンのID及び大きさは、HOGアクセレレータ312によって或る画像について一度に生成され得、ビジョン処理応用例によって構成されるように異なるオブジェクトタイプの検出のためのHOG記述子を生成するためにHOGジェネレータ314によって複数回用いられ得ることに留意されたい。
図4は、例示のHOGアクセレレータ312のブロック図である。HOGアクセレレータ312のアーキテクチャは下記の観察に基づいている。上述したように、或る画素の勾配大きさGmagは、
Figure 0007368924000003
により演算され得る。ここで、G及びGは、それぞれ、x方向の画素の勾配及びy方向の画素の勾配である。或いは、勾配の大きさGmagは、
mag=G*sec(θ)
により演算され得る。ここで、sec(θ)=1/cos(θ)であり、θは勾配の方位角である。したがって、勾配大きさ及びtan-1(G/G)を演算するための2つの基本式が、
mag=G*sec(θ)
=G*tan(θ)
と表され得る。
また、表1に示すように、方位角θの象限は、勾配G及びGの符号に基づいて決定され得る。したがって、すべての象限についてtan-1(G/G)を演算する必要がない。代わりに、方位角演算は、例えば0~90度の、1つの象限について実施され得、符号ビットを用いて方位角θの実際の象限を決定し得る。
Figure 0007368924000004
HOGアクセレレータ312は、勾配演算構成要素400、ビン識別構成要素402、及び、勾配大きさ演算構成要素404を含む。勾配演算構成要素400は、或る画素についてx及びyの勾配Gx及びGyを演算する。勾配を演算するための任意の適切な技術が用いられ得る。幾つかの例において、勾配は、
=[1 0 -1]*I
=[1 0 -1]*I
により演算される。ここで、Iは画素を含む画像であり、*は畳み込みである。勾配演算構成要素400の出力は、G、G、及び勾配の符号を含む。
ビン識別構成要素402は、勾配演算構成要素400からの演算された勾配G及びG、及び勾配についての符号ビットを受け取り、これらの入力を用いてその画素についての角度ビンを識別する。或る画素についての角度ビンを識別するために、ビン識別構成要素402は、0度と90度の間とする必要がある代表的な方位角のいずれが勾配の実際の方位角に最も近いかを決定し、次いで、この情報及び符号ビットを用いてその画素の角度ビンを識別する。上述したように、ビジョン処理応用例が、ヒストグラムにおけるビンの数、及び、第1の象限、すなわち、0度と90度の間の象限、におけるビンについての代表的な方位角を特定し得る。
ビン識別構成要素402は、Gy推定構成要素406、比較器構成要素408、及びビン決定構成要素410を含む。Gy推定構成要素406は、複数の代表的な方位角についてGの推定値を演算するように構成される。つまり、G推定構成要素406は、特定された代表的な方位角各々に対して、
=G*tan(θ)
を演算するように構成される。これらの演算は並行して実施され、特定され得る代表的な方位角の数は実装に依存する。或る応用例が、G推定構成要素406によってサポートされる最大値までの任意の数の角度について値を特定し得る。幾つかの例において、最大45個の角度についての並列演算をサポートするための回路要素が存在する。上述したように、各特定された角度値は、第1の象限におけるビンに対応する。G推定構成要素406の出力は、特定された代表的な方位角についてのGの推定値である。
比較器構成要素408は、G推定構成要素406によって出力された推定G値出力の各々を、勾配演算構成要素400によって出力された実際のG値と比較し、各推定G値に対して0又は1を出力するように構成され、実際のG値が推定G値より大きいかどうかが示される。
ビン決定構成要素410は、比較器構成要素408の出力及び勾配演算構成要素400からの符号ビットを用いて、360度の範囲で画素についてのビン識別子を決定するための機能を含む。幾つかの例において、ビン決定構成要素410は、表2のルックアップテーブルなどのルックアップテーブルを用いて、第1の象限におけるビン識別子を決定する。表2は、比較器構成要素による1の出力が、Gの実際の値が対応する推定G値より大きいことを示すと仮定している。表の行の最後の0の位置がビン識別子を決める。すべての出力が1の場合、実際のGはどの推定G値よりも大きく、ビン識別子は1である。
次いで、ビン決定構成要素410は、符号ビットを用いて表1により実際の象限を決定し、実際の象限が第1の象限でない場合、ビン決定構成要素410は実際の象限においてビン識別子を決定する。正接は対称関数なので、第1の象限における各ビンに対し他の3つの象限の各々に対称ビンがある。例えば、第1の象限におけるビン識別子がnの場合、他の象限における対称ビン識別子は、nの決定論的関数である。ビン決定構成要素410の出力は、画素についてのビン識別子である。0度と90度の間の1つの象限のみにおいて、400で生成された符号ビットを比較器408の出力とともに用いることによって、ビン決定構成要素410は、全360度空間において実際の画素ビンを正確に識別し得る。
Figure 0007368924000005
大きさ構成要素404は、ビン識別構成要素402からビン識別子を受け取り、勾配演算構成要素400から勾配Gx及び符号ビットを受け取り、これらの入力を用いて画素の勾配の大きさを決定する。或る画素について大きさを決定するために、大きさ構成要素404は、特定された代表的な方位角の各々に対して大きさを演算し、符号ビット及びビン識別子を用いて、ビン識別子を決定する際に用いられる方位角に対応する演算された大きさを選択する。
大きさ構成要素404は、大きさ演算構成要素412、大きさセレクタ構成要素416、及びマルチプレクサ414を含む。大きさ演算構成要素412は、複数の代表的な方位角に対応する大きさを演算するように構成される。すなわち、大きさ演算構成要素412は、各特定された代表的な方位角を用いて、
mag=G*sec(θ)
を演算するように構成される。こういった演算は並列に成され、代表的な方位角はG推定構成要素406によって用いられるものと同じである。大きさ演算構成要素の出力は、特定された代表的な方位角に対応する演算された大きさである。
マルチプレクサ414は、大きさ演算構成要素412の出力の1つを、大きさセレクタ構成要素416によって決定されるセレクタを用いて、画素についての大きさとして選択するように構成される。
大きさセレクタ構成要素416は、ビン識別構成要素402からのビン識別子及び勾配演算構成要素400からの勾配の符号ビットを用いて、マルチプレクサ414のためのセレクタ値を決定するように構成される。代表的な方位角が単一の象限に限定される一方で、ビン識別子は4つの象限のいずれかにあり得るので、ビン識別子は、大きさ演算構成要素412の出力の数より大きくなり得る。大きさセレクタ構成要素416は、対称正接グラフに従って、すなわち、ビン識別子の複数の値が単一のセレクタ値にマッピングされるように、ビン識別子を量子化するための機能を含む。4つまでのビン識別子値が、同じセレクタにマッピングされ得る。大きさセレクタ構成要素416は、或る象限におけるビン数とともに符号ビットを用いて、このマッピングを実施する。
例えば、HOGアクセレレータ312が40ビンヒストグラムに対して構成される場合、象限当たり10個のビンがある。ビン決定構成要素410が、或る画素についてのビン識別子が12であり、これが第2の象限に含まれると決定すると仮定する。このビン識別子に対する大きさGmagは、ビンID2、22、及び32についての大きさと同じである。Gmagが正しく分解されることを保証するために、大きさセレクタ構成要素416は、ビンID2、12、22、及び32を同じセレクタ値にマッピングする。
HOGアクセレレータ312はさらに、ビジョン処理応用例によって設定される様々な制御及び構成パラメータをストアするために用いられるメモリマッピングレジスタ(これは特に示されていない)を含む。パラメータには、第1の象限における代表的な方位角値及びビンの数が含まれる。ビジョン処理応用例は、各ビンに対し1つの代表的な方位角値を特定する。
上述したように、G推定構成要素406は、代表的な方位角各々に対して、
=G*tan(θ)
を演算し、大きさ演算構成要素412は、代表的な方位各々に対して、
max=G*sec(θ)
を演算する。G*tan(θ)及びG*sec(θ)を演算するために任意の適切な技術がこれらの構成要素において用いられ得る。例えば、こういった演算は、tan(θ)及びsec(θ)についてのルックアップテーブルに基づき得る。
幾つかの例において、こういった演算は、座標回転デジタルコンピュータ(CORDIC)アルゴリズムに基づいて実装される。CORDICは、正接や正割などの三角法関数を計算するための単純シフト可算演算を用いる。すなわち、tan(θ)及びsec(θ)は、Σ(-1)X(2)-i→CORDIC実装と表され得る。ここで、iは-8と+8の間の整数であり、mは1又は2である。例えば、CORDIC実装において、G tan(20)≒G*0.36が、G*(0.25+0.125-0.015625)→Gを2だけ左にシフト+Gを4だけ左にシフト-Gを6だけ左にシフトと計算され得、G sec(20)≒G*1.00625が、G*sec(20)→G+Gを4だけ右にシフトと計算され得る。幾つかのこのような例において、全CORDICエンジンを実装するのではなく、制限された範囲のCORDICエンジンが実装される。ここで、制限された範囲は、アクセレレータがサポートするように設計されるビン/方位角の最大数によって決定される。例えば、或る制限された範囲のCORDICエンジンが、32個のビン/方位角の最大値の計算をサポートするように実装され得る。
図5は、HOGアクセレレータ312などのハードウェアアクセレレータによって成され得る、或る画素についてのビン識別子及び大きさを決定するための方法のフローチャートである。まず、その画素の勾配G及びGが演算される(500)。勾配を演算するために任意の適切なアルゴリズムを用いられ得る。
次いで、0度と90度の間の複数の代表的な方位角についてGの値が推定される(502)。代表的な方位角の数及び値は、ビジョン処理応用例によって決定され、最大数はハードウェア設計によって設定される。Gの推定値は、代表的な方位角各々に対して、
=G*tan(θ)
により演算される。
推定G値が、実際のG値と比較されて(504)、その画素について最良の代表的な方位角が選択される。上述したように、選択プロセスは、ルックアップテーブルを用いて実装され得る。勾配の符号及び選択された代表的な方位角を用いて(506)、その画素についてのビン識別子を決定する。上述したように、勾配の符号は、方位角の実際の象限を決定するために用いられる。
代表的な方位角の各々に対応する大きさGmagも、
mag=G*sec(θ)
により演算され(508)、ビン識別子及び勾配符号ビットを用いて、ビン識別子を決定するために用いられる代表的な方位角に対応する演算された大きさを選択する(510)。
図6は、図3のSOC300によって成され得る、或る画像のHOG記述子を生成するための方法のフローチャートである。まず、カメラ324によって捕捉される画像における各画素についてのビン識別子及び大きさが、HOGアクセレレータ312によって決定される(600)。DSP304上で実行するビジョン処理応用例が、画像の画素についてのビンID及び大きさを決定し、そのデータをRAM318にストアするようにHOGアクセレレータ312を構成する。ビジョン処理応用例は、ビジョン処理応用例が検出するようにプログラミングされる特定のタイプのオブジェクトに従って、代表的な方位角値及びビン数を用いるようにHOGアクセレレータ312を構成する。
次いで、ビンID及び大きさを用いて複数タイプのオブジェクトの分類に用いるため、HOG記述子がHOGジェネレータ314によって演算される(602)。すなわち、ビジョン処理応用例が検出するようにプログラミングされるオブジェクトの各タイプに対し、ビジョン処理応用例は、RAM318にストアされたビンID及び大きさを用いて各オブジェクトタイプに適切な、検出ウィンドウ、セル、及びブロックサイズのためのHOG記述子を生成するようにHOGジェネレータ314を構成する。例えば、ビジョン処理応用例が、歩行者、車両、及び道路標識を検出するようにプログラムされる場合、ビジョン処理応用例は、歩行者を検出するためのHOG記述子を生成するようにHOGジェネレータ314をプログラムする。このタスクが完了すると、ビジョン処理応用例は、車両のためのHOG記述子を生成するようにHOGジェネレータ314をプログラムする。このタスクが完了すると、ビジョン処理応用例は、道路標識のためのHOG記述子を生成するようにHOGジェネレータ314をプログラムする。HOGジェネレータ314は、これらのHOG記述子生成タスクの各々に対して、RAM318にストアされたビンID及び大きさを再利用する。
他の例
本明細書において説明される幾つかの例において、ビン決定構成要素410は、第1の象限におけるビン識別子を決定するために、表2のルックアップテーブルなどのルックアップテーブルを用い、次いで、符号を適用して、実際の象限及び真のビン識別子を決定する。他の例において表は符号を含む。
本明細書では、一度に1つの画素に作用するHOGアクセレレータの例を説明している。他の例において、HOGアクセレレータは、複数の画素に並列に作用する付加的な機能を有する。
幾つかの例において、SOCはHOGジェネレータを含まず、HOGジェネレータの機能(HOGアクセレレータの出力を用いるHOG記述子の生成など)は、SOCのプロセッサの1つに対して実行される応用例によって成される。
本明細書において説明される幾つかの例において、任意の象限に存し得るビン識別子が、大きさセレクタ構成要素によって量子化されて、大きさのためのセレクタが生成される。他の例において、第1の象限に対して生成された当初のビン識別子が、大きさを選択するために用いられ、大きさセレクタ構成要素は存在しない。
幾つかの例において、HOGジェネレータ及びHOGアクセレレータが単一のアクセレレータにおいて組み合わされる。
本明細書において、構成可能なHOGジェネレータの例を本明細書で説明している。他の例において、HOGアクセレレータは、所定の角度値及び所定のビン数を有する。
幾つかの例において、RAMにおけるピンポンバッファを用いてHOGアクセレレータの出力をストアし、そのため、HOGジェネレータは、一方のバッファにおいて1つの画像のためのデータを用いることができ、その間に、HOGアクセレレータは、別の画像についてビンID及び大きさを生成し、そのデータを他方のバッファにストアしている。
特許請求の範囲内で、説明した実施形態における改変が可能であり、他の実施形態が可能である。

Claims (20)

  1. デバイスであって、
    ピクセルに対して第1の勾配値を第2の勾配値とを決定するように構成される勾配構成要素と、
    前記勾配構成要素に結合される推定構成要素であって、
    前記第1の勾配値を受信し、
    角度のセットの各角度に対して前記第1の勾配値にそれぞれの角度の正接を乗算することによってそれぞれの値を決定する、
    ように構成される、前記推定構成要素と、
    前記勾配構成要素と前記推定構成要素とに結合される比較器であって、
    前記第2の勾配値を受信し、
    前記角度のセットの前記それぞれの値を受信し、
    前記角度のセットの前記それぞれの値の各々に対して比較のセットのそれぞれの比較を生成するために前記それぞれの値を前記第2の勾配値と比較する、
    ように構成される、前記比較器と、
    前記比較器に結合されるビン識別構成要素であって、
    前記比較のセットを受信し、
    前記比較のセットに基づいて前記ピクセルに対してヒストグラムビンを決定する、
    ように構成される、前記ビン識別構成要素と、
    を含む、デバイス。
  2. 請求項1に記載のデバイスであって、
    前記勾配構成要素が、前記第1の勾配値の第1の符号ビットと前記第2の勾配値の第2の符号ビットとを決定するように更に構成され、
    前記ビン識別構成要素が、
    前記第1の符号ビットと前記第2の符号ビットとを受信し、
    前記第1の符号ビットと前記第2の符号ビットとに基づいて前記ピクセルに関連する前記ヒストグラムビンを決定する、
    ように更に構成される、デバイス。
  3. 請求項2に記載のデバイスであって、
    前記ビン識別構成要素が、
    前記第1の符号ビットと前記第2の符号ビットとに基づいて前記ピクセルに関連する象限を決定し、
    前記比較のセットと前記象限とに基づいて前記ピクセルに対して前記ヒストグラムビンを決定する、
    ように更に構成される、デバイス。
  4. 請求項1に記載のデバイスであって、
    前記勾配構成要素に結合される大きさ構成要素であって、
    前記第1の勾配値を受信し、
    前記角度のセットの各角度に対して前記第1の勾配値に前記それぞれの角度の正割を乗算することによってそれぞれの大きさ値を決定する、
    ように構成される、前記大きさ構成要素と、
    前記大きさ構成要素に結合され、前記角度のセットのそれぞれの大きさ値を受信するように構成されるマルチプレクサと、
    前記ビン識別構成要素と前記マルチプラクサとに結合される大きさセレクタであって、
    前記ヒストグラムビンの識別子を受信し、
    前記ヒストグラムビンの識別子に基づいて前記マルチプレクサに前記角度のセットのそれぞれの大きさ値の第1の大きさを提供させる、
    ように構成される、前記大きさセレクタと、
    を更に含む、デバイス。
  5. 請求項4に記載のデバイスであって、
    前記ビン識別構成要素と前記マルチプレクサとに結合される勾配ヒストグラム発生器であって、前記ヒストグラムビンの識別子と前記第1の大きさとに基づいて勾配ヒストグラムを決定するように構成される、前記勾配ヒストグラム発生器を更に含む、デバイス。
  6. 請求項4に記載のデバイスであって、
    前記勾配構成要素が、前記第1の勾配値の第1の符号ビットと前記第2の勾配値の第2の符号ビットとを決定するように更に構成され、
    前記大きさセレクタが、
    前記第1の符号ビットと前記第2の符号ビットとを受信し、
    前記第1の符号ビットと前記第2の符号ビットとに基づいて前記マルチプレクサに前記第1の大きさを提供させる、
    ように更に構成される、デバイス。
  7. 請求項1に記載のデバイスであって、
    前記推定構成要素が、前記角度のセットの各角度に対して前記それぞれの角度の正接を決定するように構成される座標回転デジタルコンピュータ(CORDIC)エンジンを含む、デバイス。
  8. 請求項1に記載のデバイスであって、
    前記ビン識別構成要素が、ルックアップテーブルを格納するように構成されるメモリを含み、
    前記ビン識別構成要素が、前記1組の比較に基づいて前記ルックアップテーブルに問い合わせることによって前記ヒストグラムビンを決定するように構成される、デバイス。
  9. 請求項1に記載のデバイスであって、
    前記角度のセットの各角度が、1つの象限内である、デバイス。
  10. 請求項1に記載のデバイスであって、
    前記角度のセットの各角度が、0°と90°との間である、デバイス。
  11. 請求項1に記載のデバイスであって、
    前記推定構成要素が、前記角度のセットに対して並列に前記それぞれの値を決定するように構成される、デバイス。
  12. デバイスであって、
    ピクセルに対して第1の勾配値を決定するように構成される勾配構成要素と、
    前記勾配構成要素に結合される大きさ構成要素であって、
    前記第1の勾配値を受信し、
    角度のセットの各角度に対して前記第1の勾配値にそれぞれの角度の正割を乗算することによってそれぞれの大きさ値を決定する、
    ように構成される、前記大きさ構成要素と、
    前記大きさ構成要素に結合され、前記角度のセットのそれぞれの大きさ値を受信するように構成されるマルチプレクサと、
    前記マルチプレクサに結合される大きさセレクタであって、
    前記ピクセルに対するヒストグラムビンの識別子を受信し、
    前記ヒストグラムビンの識別子に基づいて前記マルチプレクサに前記角度のセットのそれぞれの大きさ値の第1の大きさを提供させる、
    ように構成される、前記大きさセレクタと、
    を含む、デバイス。
  13. 請求項12に記載のデバイスであって、
    前記勾配構成要素が、前記第1の勾配値の第1の符号ビットと、第2の勾配値と、前記第2の勾配値の第2の符号ビットとを決定するように更に構成され、
    前記大きさセレクタが、
    前記第1の符号ビットと前記第2の符号ビットとを受信し、
    前記第1の符号ビットと前記第2の符号ビットとに基づいて前記マルチプレクサに前記第1の大きさを提供させる、
    ように更に構成される、デバイス。
  14. 請求項12に記載のデバイスであって、
    前記勾配構成要素が、第2の勾配値を決定するように更に構成され、
    前記デバイスが、
    前記勾配構成要素に結合される推定構成要素であって、
    前記第1の勾配値を受信し、
    前記角度のセットの各角度に対して前記第1の勾配値に前記それぞれの角度の正接を乗算することによってそれぞれの値を決定する、
    ように構成される、前記推定構成要素と、
    前記勾配構成要素と前記推定構成要素とに結合される比較器であって、
    前記第2の勾配値を受信し、
    前記角度のセットのそれぞれの値を受信し、
    前記角度のセットのそれぞれの値の各々の対して比較のセットのそれぞれの比較を生成するために前記それぞれの値を前記第2の勾配値と比較する、
    ように構成される比較器と、
    前記比較器に結合されるビン識別構成要素であって、
    前記比較のセットを受信し、
    前記比較のセットに基づいて前記ピクセルに対して前記ヒストグラムビンを決定し、
    前記ヒストグラムビンの識別子を前記大きさセレクタに提供する、
    ように構成される、前記ビン識別構成要素と、
    を更に含む、デバイス。
  15. 請求項14に記載のデバイスであって、
    前記勾配構成要素が、前記第1の勾配値の第1の符号ビットと前記第2の勾配値の第2の符号ビットとを決定するように更に構成され、
    前記ビン識別構成要素が、
    前記第1の符号ビットと前記第2の符号ビットとを受信し、
    前記第1の符号ビットと前記第2の符号ビットとに基づいて前記ピクセルに対する前記ヒストグラムビンを決定する、
    ように更に構成される、デバイス。
  16. 請求項15に記載のデバイスであって、
    前記ビン識別構成要素が、
    前記第1の符号ビットと前記第2の符号ビットとに基づいて前記ピクセルに関連する象限を決定し、
    前記比較のセットと前記象限とに基づいて前記ピクセルに対する前記ヒストグラムビンを決定する、
    ように更に構成される、デバイス。
  17. 請求項12に記載のデバイスであって、
    前記大きさ構成要素が、前記角度のセットの各角度に対して前記それぞれの角度の正割を決定するように構成される座標回転デジタルコンピュータ(CORDIC)エンジンを含む、デバイス。
  18. 請求項12に記載のデバイスであって、
    前記角度のセットの各角度が、象限内である、デバイス。
  19. 請求項12に記載のデバイスであって、
    前記角度のセットの各角度が、9°と90°との間である、デバイス。
  20. 請求項12に記載のデバイスであって、
    前記大きさ構成要素が、前記角度のセットに対する前記それぞれの大きさ値を並列に決定するように構成される、デバイス。
JP2023026830A 2017-04-18 2023-02-24 勾配方向ヒストグラムの演算のためのハードウェアアクセレレータ Active JP7368924B2 (ja)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US201762486557P 2017-04-18 2017-04-18
US62/486,557 2017-04-18
US15/954,590 2018-04-16
US15/954,590 US11004205B2 (en) 2017-04-18 2018-04-16 Hardware accelerator for histogram of oriented gradients computation
JP2019556907A JP7265107B2 (ja) 2017-04-18 2018-04-17 勾配方向ヒストグラムの演算のためのハードウェアアクセレレータ
PCT/US2018/027959 WO2018195069A1 (en) 2017-04-18 2018-04-17 Hardware accelerator for histogram of oriented gradients computation

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2019556907A Division JP7265107B2 (ja) 2017-04-18 2018-04-17 勾配方向ヒストグラムの演算のためのハードウェアアクセレレータ

Publications (2)

Publication Number Publication Date
JP2023065515A JP2023065515A (ja) 2023-05-12
JP7368924B2 true JP7368924B2 (ja) 2023-10-25

Family

ID=63790831

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2019556907A Active JP7265107B2 (ja) 2017-04-18 2018-04-17 勾配方向ヒストグラムの演算のためのハードウェアアクセレレータ
JP2023026830A Active JP7368924B2 (ja) 2017-04-18 2023-02-24 勾配方向ヒストグラムの演算のためのハードウェアアクセレレータ

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2019556907A Active JP7265107B2 (ja) 2017-04-18 2018-04-17 勾配方向ヒストグラムの演算のためのハードウェアアクセレレータ

Country Status (5)

Country Link
US (2) US11004205B2 (ja)
EP (1) EP3612979A4 (ja)
JP (2) JP7265107B2 (ja)
CN (1) CN110663046B (ja)
WO (1) WO2018195069A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10460144B2 (en) * 2016-07-20 2019-10-29 Cypress Semiconductor Corporation Non-finger object rejection for fingerprint sensors
CN114359683B (zh) * 2021-12-31 2023-10-20 电子科技大学 一种面向文本定位的单内核hog高效异构加速方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015184908A (ja) 2014-03-24 2015-10-22 東芝アルパイン・オートモティブテクノロジー株式会社 画像処理装置および画像処理プログラム
US20160203384A1 (en) 2015-01-08 2016-07-14 Linear Algebra Technologies Limited Hardware accelerator for histogram of gradients
US20170091575A1 (en) 2015-09-25 2017-03-30 Intel Corporation Method and system of low-complexity histrogram of gradients generation for image processing
US20170098135A1 (en) 2014-11-28 2017-04-06 Fotonation Limited Method for producing a histogram of oriented gradients

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6104833A (en) * 1996-01-09 2000-08-15 Fujitsu Limited Pattern recognizing apparatus and method
US6408109B1 (en) * 1996-10-07 2002-06-18 Cognex Corporation Apparatus and method for detecting and sub-pixel location of edges in a digital image
US6975764B1 (en) * 1997-11-26 2005-12-13 Cognex Technology And Investment Corporation Fast high-accuracy multi-dimensional pattern inspection
GB2431717A (en) * 2005-10-31 2007-05-02 Sony Uk Ltd Scene analysis
CN100405017C (zh) * 2007-06-22 2008-07-23 北京航空航天大学 阵列小孔式太阳敏感器信号处理方法和装置
US20090094306A1 (en) * 2007-10-09 2009-04-09 Krishnakalin Gahn W Cordic rotation angle calculation
FR2939547B1 (fr) * 2008-12-09 2011-06-10 Commissariat Energie Atomique Dispositif et procede pour le reconnaissance et la localisation d'objets dans une image par balayage de fenetres de detection
US9189670B2 (en) * 2009-02-11 2015-11-17 Cognex Corporation System and method for capturing and detecting symbology features and parameters
JP5361530B2 (ja) * 2009-05-20 2013-12-04 キヤノン株式会社 画像認識装置、撮像装置及び画像認識方法
US8510354B1 (en) * 2010-03-12 2013-08-13 Altera Corporation Calculation of trigonometric functions in an integrated circuit device
US9936132B2 (en) * 2012-10-26 2018-04-03 The Regents Of The University Of Michigan CMOS image sensors with feature extraction
US20160026898A1 (en) * 2014-07-24 2016-01-28 Agt International Gmbh Method and system for object detection with multi-scale single pass sliding window hog linear svm classifiers
CN104268857B (zh) * 2014-09-16 2017-07-18 湖南大学 一种基于机器视觉的快速亚像素边缘检测与定位方法
EP3109823A1 (en) * 2015-06-22 2016-12-28 Sick IVP AB Method and arrangements for estimating one or more dominating orientations in a digital image
EP3311364B1 (en) * 2015-09-30 2018-12-26 FotoNation Limited A method and system for tracking an object
US9639777B1 (en) * 2015-12-17 2017-05-02 Linear Algebra Technologies Limited Systems and methods for providing an image classifier
KR20170103472A (ko) * 2016-03-04 2017-09-13 한국전자통신연구원 허프 변환을 이용한 하드웨어 기반 원 검출 장치 및 방법
JP6656988B2 (ja) * 2016-03-30 2020-03-04 株式会社エクォス・リサーチ 画像処理装置、半導体装置、画像認識装置、移動体装置、及び画像処理方法
GB2556908B (en) * 2016-11-24 2021-10-13 Emdalo Tech Limited Ie System and method for determining the presence of objects in an image

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015184908A (ja) 2014-03-24 2015-10-22 東芝アルパイン・オートモティブテクノロジー株式会社 画像処理装置および画像処理プログラム
US20170098135A1 (en) 2014-11-28 2017-04-06 Fotonation Limited Method for producing a histogram of oriented gradients
US20160203384A1 (en) 2015-01-08 2016-07-14 Linear Algebra Technologies Limited Hardware accelerator for histogram of gradients
US20170091575A1 (en) 2015-09-25 2017-03-30 Intel Corporation Method and system of low-complexity histrogram of gradients generation for image processing

Also Published As

Publication number Publication date
CN110663046A (zh) 2020-01-07
US20210264612A1 (en) 2021-08-26
EP3612979A1 (en) 2020-02-26
JP2023065515A (ja) 2023-05-12
JP2020518052A (ja) 2020-06-18
US20180300881A1 (en) 2018-10-18
CN110663046B (zh) 2024-05-28
US11004205B2 (en) 2021-05-11
EP3612979A4 (en) 2020-04-29
JP7265107B2 (ja) 2023-04-26
WO2018195069A1 (en) 2018-10-25

Similar Documents

Publication Publication Date Title
JP7368924B2 (ja) 勾配方向ヒストグラムの演算のためのハードウェアアクセレレータ
CN108898086B (zh) 视频图像处理方法及装置、计算机可读介质和电子设备
US9122954B2 (en) Performing a histogram using an array of addressable registers
CN104221031B (zh) 将影像特征与参考特征相匹配之方法及其所用集成电路
US20190011263A1 (en) Method and apparatus for determining spacecraft attitude by tracking stars
US20220084215A1 (en) Dense optical flow processing in a computer vision system
CN107368790B (zh) 行人检测方法、系统、计算机可读存储介质及电子设备
CN112861870B (zh) 指针式仪表图像矫正方法、系统及存储介质
Zhi et al. Realization of CUDA-based real-time registration and target localization for high-resolution video images
US11682212B2 (en) Hierarchical data organization for dense optical flow processing in a computer vision system
WO2023284358A1 (zh) 相机标定方法、装置、电子设备及存储介质
CN109766896B (zh) 一种相似度度量方法、装置、设备和存储介质
JP2012123631A (ja) 注目領域検出方法、注目領域検出装置、及びプログラム
TWI769603B (zh) 影像處理方法及存儲介質
CN113793370A (zh) 三维点云配准方法、装置、电子设备及可读介质
Yin et al. A feature points extraction algorithm based on adaptive information entropy
Song et al. Automatic calibration method based on improved camera calibration template
Dinh et al. StereoPairFree: Self-Constructed Stereo Correspondence Network From Natural Images
CN111009004B (zh) 一种加速图像匹配的硬件优化方法
WO2015086076A1 (en) Method for determining a similarity value between a first image and a second image
CN111223139B (zh) 目标定位方法及终端设备
Hu et al. An improved ORB, gravity-ORB for target detection on mobile devices
Hui et al. Determining shape and motion from monocular camera: A direct approach using normal flows
CN112464753B (zh) 图像中关键点的检测方法、检测装置及终端设备
Gu et al. Pose ambiguity elimination algorithm for 3c components assembly pose estimation in point cloud

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230324

A625 Written request for application examination (by other person)

Free format text: JAPANESE INTERMEDIATE CODE: A625

Effective date: 20230324

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20231010

R150 Certificate of patent or registration of utility model

Ref document number: 7368924

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150