專利名稱:基于積分圖的特征查找和遍歷的硬件特征框的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及圖像特征查找技術(shù)領(lǐng)域,具體涉及用于特征查找與遍歷,占用資源較 小的硬件特征框。
背景技術(shù):
隨著對人機(jī)交互需求的增加,人們對人機(jī)交互系統(tǒng)提出了越來越高的要求。其中 一個非常重要的指標(biāo)就是系統(tǒng)的分辨率。但人機(jī)交互其固有特點是數(shù)據(jù)處理量大,并且實 時性要求高。這就是阻礙其走向高分辨率系統(tǒng)應(yīng)用的一大瓶頸。人機(jī)交互領(lǐng)域用到了大量的模式識別方法。但兩者最大的不同在于——模式識別 給定一幅圖(如大小為20*20),再去識別這幅圖是否所需要找的目標(biāo)(如人臉);而人機(jī)交互 給定一幅圖(如大小為640*480),再去識別這幅圖中的什么位置上是否有所需要找的目標(biāo) (如大小為20*20的人臉)。因此,與模式識別相比,人機(jī)交互多出了一個在整幅圖像遍歷查 找的過程。對特定目標(biāo)(如人臉)進(jìn)行查找需要用到特征。特征一般由多個像素點作和組成, 并且不同的特征其所包含的像素點數(shù)不同。因此計算每個特征需要的運算數(shù)量和運算時間 也是不同的,這不利于硬件的實現(xiàn)。所以現(xiàn)在一般均采用基于積分圖計算特征的方法。積 分圖中每一個點的值為其左上所有點的灰度值之和。因此在計算每一個特征時,僅僅需要 用其4個端點的積分值進(jìn)行2次加法運算和1次減法運算即可。這樣既降低了運算復(fù)雜度 又保證了每次的運算時間。人機(jī)交互因其數(shù)據(jù)處理量大,并且實時性要求高的特點成為其應(yīng)用于通用處理的 一大瓶頸。最近幾年,世界各地也開始了 一些把人機(jī)交互處理做到FPGA或ASIC上的嘗試。 考慮到運算復(fù)雜度、運算速度、功耗等因素,現(xiàn)今主流的做法均采用基于積分圖的特征查找 和遍歷。其中,有3種典型的方法。第一種方法,把整幅圖像的積分圖存儲到寄存器(寄存 器)中。第二種方法,把積分圖按行或者按列存儲到RAM中。第三種方法,在RAM與寄存器之 間加入特定數(shù)量的行buffer (如圖像為640*480,檢測目標(biāo)的大小為20*20,則加入(20+步 進(jìn))個長度為640的行buffer),數(shù)據(jù)先從RAM到buffer,再最后到達(dá)寄存器(參見Proposed FPGA Hardware Architecture for High Frame Rate OlOOfps) Face Detection Using
Feature Cascade Classifiers - Hung-Chih Lai, Marios Savvides, Tsuhan Chen
Department of Electrical and Computer Engineering Carnegie Mellon University ;
FPGA-Based Face Detection System Using Haar Classifiers - Junguk Cho,
Shahnam Mirzaei, Jason Oberg, Ryan Kastner Department of Computer Science and Engineering University of California)。不管采用以上的哪一種設(shè)計,在實際應(yīng)用當(dāng)中都會存在制約。第一種方法,其所需 用到的寄存器數(shù)目很多,只能用于整幅圖像比較小的情況。第二種方法,提取特征的速度太 慢將拖慢整個系統(tǒng)的速度。方法三雖然對前面兩種方法進(jìn)行了折中處理,但卻額外消耗了 很多的buffer資源。現(xiàn)階段基于積分圖的特征查找和遍歷最大的難點在于怎么用盡可能少的硬件資源進(jìn)行盡可能快的特征提取。
發(fā)明內(nèi)容
本發(fā)明的目的在于克服現(xiàn)有技術(shù)存在的上述不足,提供基于積分圖的特征查找和 遍歷的硬件特征框。本發(fā)明可以很好地在提取速度和硬件資源上取得折中,具體技術(shù)方案 如下。基于積分圖的特征查找和遍歷的硬件特征框,包括一個特征提取框和位于特征 提取框上、下、右方的三個緩沖區(qū),所述特征提取框由一個行X列為MXN的用于存儲積分 圖數(shù)據(jù)的寄存器陣列組成,M為大于2的自然數(shù),N為大于1的自然數(shù);在所述特征提取框 中,除最上方X行、最下方X行、最右方Y(jié)列外,每個寄存器在上、下方向上與距離該寄存器 為X的寄存器相連,在右方向上與距離該寄存器為Y的寄存器相連,X為行步進(jìn),X取值為小 于M/2的自然數(shù),Y為列步進(jìn),Y取值為小于N的自然數(shù);所述上、下緩沖區(qū)均由行X列為 XXN的用于存儲積分圖數(shù)據(jù)的寄存器陣列組成;右緩沖區(qū)由行X列為MXY的存儲積分圖 數(shù)據(jù)的寄存器陣列組成;所述上緩沖區(qū)中的每個寄存器與下方特征提取框中距離該寄存器 為X的寄存器相連,所述下緩沖區(qū)中的每個寄存器與上方特征提取框中距離該寄存器為X 的寄存器相連,右緩沖區(qū)中的每個寄存器和左方特征提取框中距離該寄存器為Y的寄存器 相連。上述的硬件特征框中,所述特征提取框為MXN的用于存儲積分圖數(shù)據(jù)的多輸入 寄存器陣列;所述上、下緩沖區(qū)為XXN的用于存儲積分圖數(shù)據(jù)的單輸入多輸出移位寄存器 陣列;所述右緩沖區(qū)為MXY的用于存儲積分圖數(shù)據(jù)的單輸入多輸出移位寄存器陣列。本發(fā)明通過上述的硬件特征框的上移、下移和右移3種基本操作即可以使特征提 取框遍歷完全整幅圖。所述遍歷包括一次以上重復(fù)由多次下移操作、一次右移操作、多次上 移操作和一次的右移操作組成的流程后完成對整副圖像的遍歷。所述下移操作為所述特征提取框中除最上方X行的寄存器外,每個寄存器將所 存儲的數(shù)據(jù)寫進(jìn)其上方距離為行步進(jìn)X的寄存器中,并且所述下緩沖區(qū)中的寄存器將所存 儲的數(shù)據(jù)寫進(jìn)與其連接的特征提取框中的寄存器中。所述右移操作為所述特征提取框中除最左方Y(jié)列的寄存器外,每個寄存器將所 存儲的數(shù)據(jù)寫進(jìn)其左方距離為列步進(jìn)Y的寄存器中,并且所述右緩沖區(qū)中的寄存器將所存 儲的數(shù)據(jù)寫進(jìn)與其連接的特征提取框中的寄存器中。所述上移操作為所述特征提取框中除最下方X行的寄存器外,每個寄存器將所 存儲的數(shù)據(jù)寫進(jìn)其下方距離為行步進(jìn)X的寄存器中,并且所述上緩沖區(qū)中的寄存器將所存 儲的數(shù)據(jù)寫進(jìn)與其連接的特征提取框中的寄存器中。相對于現(xiàn)有技術(shù),本發(fā)明具有如下優(yōu)點
(1)應(yīng)用于較高分辨率圖像時,所需要的硬件資源很少。以圖像為640*480,檢測目標(biāo) 的大小為20*20,步進(jìn)為2作為說明。采用本發(fā)明所用的方案需要520個(20*20+3*2*20) 寄存器。如果采用整個積分圖存儲的方案需要307200個(640*480)寄存器。如果采用添 加buffer的方案需要400個(20*20)寄存器和22個深度為640的block RAM。由此可以 看出,采用本發(fā)明所述方案能有效減少硬件資源,并且對于分辨率越高的圖像,越能有效地 減少所需資源。
(2)在有效減少硬件資源的同時,不會對處理速度有大的影響。本發(fā)明在每一次基 本操作之后會根據(jù)狀態(tài)機(jī)的情況迅速定出下一次所需的基本操作。在特征提取框中進(jìn)行提 取的同時,把數(shù)據(jù)寫入相應(yīng)的緩沖區(qū)中(每次僅有一個緩沖區(qū)在工作——寫入數(shù)據(jù))。由于 這兩者是同時進(jìn)行的,并且大部分情況下,步進(jìn)比較小,特征提取的用時會長于數(shù)據(jù)寫入, 這樣并不會帶來額外的延時。而步進(jìn)較大并且特征提取很快結(jié)束這樣的情況相對很少,這 種情況下,雖然會帶來一定的延時,但相比起資源的節(jié)省這也是完全可以接受的。
圖1是本發(fā)明的基于積分圖的特征查找和遍歷的硬件特征框的結(jié)構(gòu)框圖,圖中 reg表示寄存器。圖2是硬件特征框的上移操作,圖中小方框為寄存器reg。圖3是硬件特征框的下移操作,圖中小方框為寄存器reg。圖4是硬件特征框的右移操作,圖中小方框為寄存器reg。圖5是實施例中的硬件特征框,圖中小方框為寄存器reg。圖6是整個圖像搜索方案的過程圖。
具體實施例方式下面結(jié)合附圖對本發(fā)明的步驟作進(jìn)一步的說明,但本發(fā)明要求保護(hù)的范圍并不局 限于下例表述的范圍。圖1是本發(fā)明的基于積分圖的特征查找和遍歷的硬件特征框的結(jié)構(gòu)框圖,包括一 個特征提取框和位于特征提取框上、下、右方的三個緩沖區(qū);特征提取框由一個行X列為 MXN的用于存儲積分圖數(shù)據(jù)的寄存器陣列組成,M為大于2的自然數(shù),N為大于1的自然數(shù); 在所述寄存器陣列中,除最上方X行、最下方X行、最右方Y(jié)列外,每個寄存器在上、下方向 上與距離該寄存器為X的寄存器相連,在右方向上與距離該寄存器為Y的寄存器相連,X為 行步進(jìn),X取小于M/2的自然數(shù),Y為列步進(jìn),Y取小于N的自然數(shù);上、下緩沖區(qū)均由行X 列為XXN的用于存儲積分圖數(shù)據(jù)的寄存器陣列組成;右緩沖區(qū)由行X列為MXY的存儲積 分圖數(shù)據(jù)的寄存器陣列組成;所述上緩沖區(qū)中的每個寄存器與下方特征提取框中距離該寄 存器為X的寄存器相連,所述下緩沖區(qū)中的每個寄存器與上方特征提取框中距離該寄存器 為X的寄存器相連,右緩沖區(qū)中的每個寄存器和左方特征提取框中距離該寄存器為Y的寄 存器相連。如圖2,硬件特征框的上移操作為所述特征提取框中除最下方X行的寄存器外, 每個寄存器將所存儲的數(shù)據(jù)寫進(jìn)其下方距離為行步進(jìn)X的寄存器中,并且所述上緩沖區(qū)中 的寄存器將所存儲的數(shù)據(jù)寫進(jìn)與其連接的特征提取框中的寄存器中。如圖3,硬件特征框的下移操作為所述特征提取框中除最上方X行的寄存器外, 每個寄存器將所存儲的數(shù)據(jù)寫進(jìn)其上方距離為行步進(jìn)X的寄存器中,并且所述下緩沖區(qū)中 的寄存器將所存儲的數(shù)據(jù)寫進(jìn)與其連接的特征提取框中的寄存器中。如圖4,硬件特征框的右移操作為所述特征提取框中除最左方Y(jié)列的寄存器外, 每個寄存器將所存儲的數(shù)據(jù)寫進(jìn)其左方距離為列步進(jìn)Y的寄存器中,并且所述右緩沖區(qū)中 的寄存器將所存儲的數(shù)據(jù)寫進(jìn)與其連接的特征提取框中的寄存器中。
如圖5所示,是本實施例的硬件特征框,其特征提取框大小為10X10 ;在特征提取 框的上方和下方,分別是一個列X行為10X2的緩沖區(qū),分別稱為上緩沖區(qū)和下緩沖區(qū);在 特征提取框的右方,是一個列X行為2X10的緩沖區(qū),稱之為右緩沖區(qū)。如圖6所示,本實施例整個圖像遍歷過程如下
(1)遍歷開始開始時,特征提取框內(nèi)的數(shù)據(jù)都是無效的,要進(jìn)行特征提取必須先把圖像 最左上方的數(shù)據(jù)輸入特征提取框;由于特征提取框與外圍沒有接口,所以必須先通過下緩 沖區(qū)輸入數(shù)據(jù);
(2)數(shù)據(jù)輸入下緩沖區(qū),然后進(jìn)行一次下移操作,數(shù)據(jù)移進(jìn)特征提取框的最下方的兩
行;
(3)重復(fù)步驟(2),一共5次,直到圖像最左上方的數(shù)據(jù)就全部移進(jìn)特征提取框;
(4)進(jìn)行一次圖像特征提取,由于下一次的操作也為下移操作,所以同時圖像再往下兩 行的圖像數(shù)據(jù)存入下緩沖區(qū),待本次特征提取完成后進(jìn)行一次下移操作;
(5)重復(fù)步驟(4),直至圖像再往下方?jīng)]有數(shù)據(jù)。此時,下一次的操作為右移,右緩沖區(qū) 開始工作,在特征提取的同時,圖像再往右方兩列的圖像數(shù)據(jù)存入右緩沖區(qū);
(6)進(jìn)行一次右移操作,此時,下一次的操作為上移,上緩沖區(qū)開始工作,在特征提取的 同時,圖像再往上方兩行的圖像數(shù)據(jù)存入上緩沖區(qū);
(7)進(jìn)行一次上移操作,再進(jìn)行圖像特征提??;同時,由于下一次的操作也為上移操作, 所以圖像再往上方兩行的數(shù)據(jù)數(shù)據(jù)存入上緩沖區(qū);
(8)重復(fù)步驟(7),直至圖像再往上方?jīng)]有數(shù)據(jù);此時,下一次的操作為右移,右緩沖區(qū) 開始工作,在特征提取的同時,圖像再往右方兩列的圖像數(shù)據(jù)存入右緩沖區(qū);
(9)重復(fù)之前的步驟(4)至步驟(8),如圖6所示,直至整個目標(biāo)圖像被遍歷完畢。本發(fā)明應(yīng)用于較高分辨率圖像時,所需要的硬件資源很少。以圖像為640*480,檢 測目標(biāo)的大小為20*20,步進(jìn)為2為例。采用本發(fā)明所用的方案需要520個(20*20+3*2*20) 寄存器。如果采用整個積分圖存儲的方案需要307200個(640*480)寄存器。如果采用添 加buffer的方案需要400個(20*20)寄存器和22個深度為640的block RAM。由此可以 看出,采用本發(fā)明所述方案能有效減少硬件資源,并且對于分辨率越高的圖像,越能有效地 減少所需資源。
權(quán)利要求
1.基于積分圖的特征查找和遍歷的硬件特征框,其特征在于包括一個特征提取框和 位于特征提取框上、下、右方的三個緩沖區(qū),所述特征提取框由一個行X列為MXN的用于 存儲積分圖數(shù)據(jù)的寄存器陣列組成,M為大于2的自然數(shù),N為大于1的自然數(shù);在所述特 征提取框中,除最上方X行、最下方X行、最右方Y(jié)列外,每個寄存器在上、下方向上與距離 該寄存器為X的寄存器相連,在右方向上與距離該寄存器為Y的寄存器相連,X為行步進(jìn), X取值為小于M/2的自然數(shù),Y為列步進(jìn),Y取值為小于N的自然數(shù);所述上、下緩沖區(qū)均由 行X列為XXN的用于存儲積分圖數(shù)據(jù)的寄存器陣列組成;右緩沖區(qū)由行X列為MXY的 用于存儲積分圖數(shù)據(jù)的寄存器陣列組成;所述上緩沖區(qū)中的每個寄存器與下方特征提取框 中距離該寄存器為X的寄存器相連,所述下緩沖區(qū)中的每個寄存器與上方特征提取框中距 離該寄存器為X的寄存器相連,右緩沖區(qū)中的每個寄存器和左方特征提取框中距離該寄存 器為Y的寄存器相連。
2.根據(jù)權(quán)利要求1所述的硬件特征框,其特征在于所述特征提取框為MXN的用于存儲 積分圖數(shù)據(jù)的多輸入寄存器陣列。
3.根據(jù)權(quán)利要求1所述的硬件特征框,其特征在于所述上、下緩沖區(qū)為XXN的用于存 儲積分圖數(shù)據(jù)的單輸入多輸出移位寄存器陣列。
4.根據(jù)權(quán)利要求廣3任一項所述的硬件特征框,其特征在于所述右緩沖區(qū)為MXY的用 于存儲積分圖數(shù)據(jù)的單輸入多輸出移位寄存器陣列。
全文摘要
本發(fā)明公開基于積分圖的特征查找和遍歷的硬件特征框,其包括一個特征提取框和位于特征提取框上、下、右方的三個緩沖區(qū),所述特征提取框中,除最上方X行、最下方X行、最右方Y(jié)列外,每個寄存器在上、下方向上與距離該寄存器為X的寄存器相連,在右方向上與距離該寄存器為Y的寄存器相連,上緩沖區(qū)中的每個寄存器與下方特征提取框中距離該寄存器為X的寄存器相連,下緩沖區(qū)中的每個寄存器與上方特征提取框中距離該寄存器為X的寄存器相連,右緩沖區(qū)中的每個寄存器和左方特征提取框中距離該寄存器為Y的寄存器相連,X為行步進(jìn),Y為列步進(jìn)。采用本發(fā)明所述方案能有效減少硬件資源,并且對于分辨率越高的圖像,越能有效地減少所需資源。
文檔編號G06K9/46GK102117409SQ20111004702
公開日2011年7月6日 申請日期2011年2月28日 優(yōu)先權(quán)日2011年2月28日
發(fā)明者周德祥, 姜小波, 李芳苑 申請人:華南理工大學(xué)