亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于FPGA的特征降維算法實現(xiàn)

        2021-08-23 03:17:48黃德湖鄭曉亮
        數(shù)字制造科學(xué) 2021年2期
        關(guān)鍵詞:特征

        周 曉,黃德湖,鄭曉亮

        (武漢理工大學(xué) 機電工程學(xué)院,湖北 武漢 430070)

        圖像特征提取是實現(xiàn)目標(biāo)識別算法的一個重要步驟,許多優(yōu)秀的目標(biāo)識別算法[1-4]依靠提取有效的圖像特征獲得了極高的識別率。為了獲取出色的識別精度,所提取的特征信息必須足夠豐富,這使得算法需要消耗大量的資源進行運算。巨大的計算量在帶來優(yōu)秀的性能表現(xiàn)的同時,也帶來了計算資源和時間效率的問題。FPGA(field programmable gatearray)因為其高并行和高吞吐率的特點,使得許多圖像處理算法以其作為實現(xiàn)平臺進行優(yōu)化加速[5-6]。

        在特征提取算法中,圖像的高維特征包含的信息并不完全是研究人員所需要的,在每維度的數(shù)據(jù)間還存在冗余特征。這些冗余信息不僅妨礙對有用的信息進行篩選,還使數(shù)據(jù)量變得十分龐大,占用了更多的存儲空間,浪費了大量的系統(tǒng)資源。PCA(prinicpal component analysis)技術(shù)可使高維數(shù)據(jù)變?yōu)榫S數(shù)較低的數(shù)據(jù),并包含了原始數(shù)據(jù)中的大部分信息,在圖像特征提取的領(lǐng)域得到了廣泛應(yīng)用。

        LARK(local adaptive regression kernel)算子是韓國學(xué)者Hae Jong Seo提出的一種圖像特征提取方法[4]。相比許多基于直方圖統(tǒng)計的特征描述算子,LARK算子提取的特征信息更為豐富[7]。然而,將所有的特征信息一起用于分析,又會造成信息冗余度過高的問題。因此,在提取出原始LARK特征后,需要進行PCA降維計算,以避免后續(xù)分析的計算資源過度消耗。PCA算法中的協(xié)方差運算、特征向量分解和線性空間投影等計算需要消耗大量的運算資源,并且需要消耗大量的運算時間。筆者利用PCA算法原理,對圖像LARK特征進行降維,并提出了相應(yīng)的硬件架構(gòu),極大地提高了算法的運行效率。

        1 算法原理

        1.1 LARK特征簡介

        LARK是基于經(jīng)典核回歸的一種特征描述方法,算法的核心思想是通過梯度圖像的自相似性來獲取穩(wěn)定的特征[8-9]。在LARK算子的理論中,圖像是一個三維曲面,通過像素點的空間曲線距離來衡量像素的相似性。其特征提取公式為:

        (1)

        式中:l∈[1,2,…,P],P為選定窗口內(nèi)像素的總數(shù);Cl是基于像素梯度建立的協(xié)方差矩陣;Δxl是以x點坐標(biāo)為中心的像素點坐標(biāo)矩陣。x為像素點空間坐標(biāo),s為像素點的距離。在圖像的每一個像素點處,協(xié)方差矩陣Cl都是不同的。因此,LARK算子并不是單一的利用高斯回歸核進行計算,而是根據(jù)每一像素點處的梯度大小進行回歸核形狀的調(diào)整。在這樣的特性下,LARK描述的特征信息是十分豐富的。

        LARK算子描述了在選定的窗口內(nèi),窗口中心像素與其他像素的相似性。因此,窗口尺寸大小對計算量的影響十分巨大。在本文的研究中,選取了尺寸為5×5的窗口,對應(yīng)的原始LARK特征為25維。

        1.2 PCA算法

        PCA算法是一種用于降低數(shù)據(jù)集維度的統(tǒng)計技術(shù)。它的主要思想是,在盡可能減少信息損失的情況下,找到一種降低數(shù)據(jù)維度的方法。直觀地說,PCA技術(shù)通過查找數(shù)據(jù)中方差最大的方向,根據(jù)數(shù)據(jù)的重要性對數(shù)據(jù)進行排序。PCA的使用可以看作是一種線性變換,它為原始數(shù)據(jù)集選擇一個新的坐標(biāo)系,其中數(shù)據(jù)集中方差最大的方向被選擇為第一主軸。PCA計算公式如下:

        K=VΛV-1

        (2)

        Y=XVT

        (3)

        式中:K為數(shù)據(jù)X的協(xié)方差矩陣;V為正交矩陣,并且矩陣中的列向量為K的特征向量。數(shù)據(jù)在矩陣V上的投影結(jié)果為數(shù)據(jù)的主成分。新的數(shù)據(jù)集Y包含了了原始數(shù)據(jù)集X的主要信息,其信息維度由矩陣V的維度決定。

        通常情況下,用特征向量對應(yīng)的特征值大小代表數(shù)據(jù)在此方向上的能量,當(dāng)矩陣V中的特征向量對應(yīng)的能量值超過設(shè)定值時,就可將矩陣V當(dāng)做數(shù)據(jù)的投影矩陣。

        PCA算法的主要目的是尋找一種線性變換關(guān)系,使得原先具有p維度的數(shù)據(jù)集X,經(jīng)過變換后可以表示為具有更低維度l的數(shù)據(jù)集Y。算法的整體架構(gòu)如圖1所示。

        圖1 算法整體架構(gòu)

        PCA算法的計算步驟如下:

        (1)組織數(shù)據(jù)集。假設(shè)數(shù)據(jù)集是一系列向量組合x1,x2,…,xn,其中xi是一個具有p個元素的向量,可將向量組表示為一個維度為n×p的矩陣。

        (3)計算數(shù)據(jù)集的去均值特征。將數(shù)據(jù)集的每一列都減去當(dāng)列的平均值,將計算結(jié)果儲存在矩陣X=X-huT,其中h為n維列向量,并且每個元素值為1。

        (4)計算協(xié)方差矩陣。計算數(shù)據(jù)集的均方差矩陣C=XTX,其中XT為矩陣X的轉(zhuǎn)置矩陣。

        (5)計算協(xié)方差矩陣的特征值與特征向量。將矩陣C對角化:V-1CV=D,其中D為一個對角矩陣,矩陣對角線上的值為矩陣C的特征值。矩陣V由矩陣C的p個特征向量構(gòu)成,特征值和特征向量一一對應(yīng)。

        (6)重組特征值和特征向量。將特征值降序排列,并將特征值對應(yīng)的特征向量也進行相同的調(diào)整,確保特征值與特征向量的對應(yīng)關(guān)系。

        (7)選擇特征向量作為新的基向量。選取特征值最大的L個特征向量作為新的數(shù)據(jù)集Y的基向量,并將這些向量組成投影矩陣W。

        (8)利用投影矩陣對數(shù)據(jù)進行映射。投影矩陣的每個向量為協(xié)方差矩陣的特征向量,以這些向量作為新的數(shù)據(jù)集的基向量,可以得到原始數(shù)據(jù)中具有最大代表性的數(shù)據(jù)。新的數(shù)據(jù)集Y=XWT,數(shù)據(jù)的維度為n×L。

        2 算法的FPGA架構(gòu)

        算法的硬件整體架構(gòu)如圖2所示。系統(tǒng)中的數(shù)據(jù)輸入預(yù)先存在DDR3芯片中,通過VDMA將數(shù)據(jù)傳送到FPGA內(nèi)部進行處理。系統(tǒng)采用Xilinx公司ZYNQ系列的FPGA芯片作為核心處理器件,該芯片內(nèi)嵌了一個雙核的ARM處理器,在整個系統(tǒng)中主要起到配置和調(diào)試作用。硬件邏輯處理模塊主要負(fù)責(zé)PCA算法的降維運算,并將最終結(jié)果通過數(shù)據(jù)總線與ARM端進行交互。

        圖2 硬件整體架構(gòu)

        系統(tǒng)架構(gòu)主要是基于ARM處理器和FPGA硬件邏輯實現(xiàn)的。值得注意的是,為了提高系統(tǒng)的運算時間效率,內(nèi)嵌的ARM處理器不參與數(shù)據(jù)降維過程的運算。系統(tǒng)主要計算均由FPGA實現(xiàn),在運算過程中使用流水線運算和并行運算等方法,極大地提高了系統(tǒng)的時間效率。

        系統(tǒng)中的FPGA數(shù)據(jù)流圖如圖3所示。上位機將原始數(shù)據(jù)通過調(diào)試接口置入DDR3內(nèi)存,進行定點化處理后再將數(shù)據(jù)流導(dǎo)入降維計算硬件模塊進行處理。最后,計算結(jié)果通過VDMA搬運到DDR內(nèi)存,再由上位機讀取計算結(jié)果進行分析。整個系統(tǒng)中,原始數(shù)據(jù)格式為32位浮點數(shù)據(jù),為了發(fā)揮FPGA的運算優(yōu)勢,文中將數(shù)據(jù)轉(zhuǎn)換為32位定點數(shù)。

        圖3 系統(tǒng)數(shù)據(jù)流圖

        硬件處理模塊如圖4所示,主要包括定點數(shù)轉(zhuǎn)換模塊、協(xié)方差矩陣求解模塊、SVD分解模塊、RAM模塊和重映射模塊,對于定點數(shù)運算,F(xiàn)PGA在計算周期和運算資源的消耗上能顯現(xiàn)出其突出的優(yōu)勢。定點數(shù)轉(zhuǎn)換模塊負(fù)責(zé)將VDMA傳輸過來的數(shù)據(jù)進行定點化處理,以節(jié)省內(nèi)存資源及其后續(xù)運算資源的占用。定點數(shù)據(jù)再依次經(jīng)過協(xié)方差運算、SVD分解和重映射運算得到計算結(jié)果。在協(xié)方差運算、SVD分解和重映射運算時,需要對數(shù)據(jù)進行緩存。因此用RAM資源作為共享內(nèi)存,作為各個模塊的輸出緩存。

        圖4 硬件處理模塊

        協(xié)方差矩陣的計算過程如圖5所示。首先,輸入數(shù)據(jù)在存入RAM的同時進行累加運算,在所有數(shù)據(jù)輸入完成后,進行除法運算得到數(shù)據(jù)的平均值。接著從RAM中讀出緩存的輸入數(shù)據(jù),計算去均值結(jié)果,并將結(jié)果存入RAM覆蓋原先的輸入數(shù)據(jù)。最后,將RAM中緩存的矩陣進行乘法計算得到協(xié)方差矩陣并將其輸出。至此,系統(tǒng)的RAM模塊中保留了數(shù)據(jù)的去均值特征。

        圖5 協(xié)方差矩陣計算模塊

        圖6展示了SVD模塊對協(xié)方差矩陣進行SVD分解的過程。在SVD模塊中,運用Jacobi算法對矩陣進行迭代運算[10]。模塊主要包括:輸入選擇器、輸入端口RAM、向量點乘模塊、CORDIC模塊、旋轉(zhuǎn)計算模塊和范數(shù)計算模塊。協(xié)方差矩陣數(shù)據(jù)通過輸入選擇器緩存到雙端口RAM中,作為迭代運算的起始數(shù)據(jù)。在數(shù)據(jù)輸入完成后,從RAM中讀取向量列進行點乘運算,再通過CORDIC模塊計算得出向量旋轉(zhuǎn)角度,根據(jù)角度進行旋轉(zhuǎn)運算。旋轉(zhuǎn)運算后,兩個向量更新為互相垂直的向量,再將其通過輸入選擇器寫入到RAM中代替原來的向量列。在進行若干輪迭代運算后,可以在模塊中的雙端口RAM中得到協(xié)方差矩陣的特征值和特征向量。

        圖6 SVD模塊

        在完成協(xié)方差矩陣的特征值分解后,得到了一組特征向量可以作為降維數(shù)據(jù)的向量空間。將數(shù)據(jù)的去均值特征在新的向量上進行投影運算即可得到數(shù)據(jù)的主成分。重映射的計算架構(gòu)如圖7所示。重映射模塊中主要是數(shù)據(jù)的乘加法運算,因此其硬件結(jié)構(gòu)主要由乘法器和加法器構(gòu)成。對于輸入的兩個向量A=[a0,a1,…,an]和B=[b0,b1,…,bn],輸入數(shù)據(jù)經(jīng)過乘法器計算后得到第一層的結(jié)果為[a0×b0,a1×b1,…,an×bn]。結(jié)構(gòu)的第二層由相鄰的兩個結(jié)果加法運算得到,在第三層進行第二層結(jié)果的加法運算,直到所有數(shù)據(jù)全部累加完成。為了利用FPGA的優(yōu)勢,需要對這個過程進行流水線優(yōu)化,在每一層的計算結(jié)果完成后用寄存器進行緩存,可以是后續(xù)的計算結(jié)果流水輸出。

        圖7 重映射模塊

        3 實驗結(jié)果

        設(shè)計選用了Xilinx公司ZYNQ系列的FPGA芯片作為算法的實現(xiàn)平臺。整個算法的設(shè)計過程均由Verilog語言實現(xiàn),芯片的內(nèi)置ARM處理器在整個算法過程中負(fù)責(zé)調(diào)試配置等功能。算法運算過程中對FPGA的片上RAM資源有較大需求,因此設(shè)計平臺選取了Xilinx公司的TySOM-2-7Z045/7Z100開發(fā)板,利用的硬件資源主要包括XC7Z100FPGA芯片和DDR內(nèi)存。

        系統(tǒng)輸入為一個320×320分辨率圖像的25維LARK特征,如圖8所示。圖像的LARK特征雖然包含了豐富的信息,但是有些特征圖的差別很小。如果把所有的維度特征都作為圖像的特征描述,在LARK特征的后續(xù)應(yīng)用中將造成信息冗余,計算量極度增大等問題。利用前述架構(gòu)對其進行降維運算,可以極大地提高算法的時間效率。

        圖8 輸入圖像的LARK特征

        圖9為圖像特征進行降維后的數(shù)據(jù)信息保留度。在本文的設(shè)計中,降維計算后保留了前6維特征數(shù)據(jù)。進行PCA算法后,前6個維度的數(shù)據(jù)包含了原始數(shù)據(jù)90%的信息,同時減少了76%的數(shù)據(jù)量。算法開始前,需要將圖像特征預(yù)存在DDR中,通過VDMA將DDR數(shù)據(jù)搬運到FPGA硬件實現(xiàn)模塊處理。最后,硬件輸出結(jié)果通過VDMA搬運到DDR中,由芯片內(nèi)置ARM處理器和調(diào)試接口與上位機進行交互,硬件的輸出結(jié)果如圖10所示。

        圖9 維度序數(shù)與信息保留度關(guān)系

        圖10 硬件輸出

        表1為架構(gòu)主要模塊的硬件資源利用情況。由表1可知在協(xié)方差矩陣模塊和重映射模塊中,為了提高計算的時間效率,進行了大量的并行運算和流水運算,因此消耗的硬件資源很大。其中協(xié)方差模塊中的RAM資源存儲了輸入的特征數(shù)據(jù),被整個算法實現(xiàn)過程共享。

        表1 硬件資源利用情況

        表2為在不同平臺下算法的運行時間。測試平臺為搭載了I5-6300HQ處理器的PC,其主頻為2.2 GHz,擁有16 GB的內(nèi)存。在PC上,測得算法的運行時間為108.28 ms。在同樣的輸入數(shù)據(jù)下,文中提出的硬件架構(gòu)只需要8.67 ms的運行時間,相對于PC處理速度大幅提升。

        表2 算法運行時間

        4 結(jié)論

        筆者針對圖像LARK特征存在的信息冗余特點,利用PCA算法原理,提出了基于FPGA的LARK特征降維算法實現(xiàn)。提出的架構(gòu)主要包括:協(xié)方差矩陣計算模塊、SVD分解模塊以及重映射模塊。對圖像的LARK特征進行降維計算,提取出顯著特征。通過實驗表明,所設(shè)計的硬件架構(gòu)比PC的時間效率大幅提高,可應(yīng)用在實時性要求較高的場合。

        猜你喜歡
        特征
        抓住特征巧觀察
        離散型隨機變量的分布列與數(shù)字特征
        具有兩個P’維非線性不可約特征標(biāo)的非可解群
        月震特征及與地震的對比
        如何表達(dá)“特征”
        被k(2≤k≤16)整除的正整數(shù)的特征
        不忠誠的四個特征
        詈語的文化蘊含與現(xiàn)代特征
        新聞傳播(2018年11期)2018-08-29 08:15:24
        抓住特征巧觀察
        基于特征篩選的模型選擇
        亚洲三级在线播放| 又大又粗又爽18禁免费看| 欧美激情a∨在线视频播放| 成人不卡国产福利电影在线看| 国产午夜在线观看视频| 黄片视频免费在线观看国产| 精品熟女视频一区二区三区国产| 午夜视频一区二区三区播放| 国产电影无码午夜在线播放| 四虎影库久免费视频| 精品国产午夜久久久久九九| 成年人视频在线观看麻豆| 免费av一区二区三区无码| 国产成人av一区二区三区在线| 国产人妖xxxx做受视频| 少妇又紧又色又爽又刺| 熟女一区二区三区在线观看| 国产真实夫妇视频| 亚洲香蕉成人AV网站在线观看| 国产一区二区内射最近人| 一区二区三区国产内射| 手机看片久久国产免费| 午夜一级在线| 一区二区三区av资源网| 亚洲中字幕日产av片在线| 国产精品jizz在线观看老狼| 人妻少妇人人丰满视频网站| 久久老熟女一区二区三区福利| 少妇中文字幕乱码亚洲影视| 久久无码人妻一区二区三区午夜 | 中文乱码字幕人妻熟女人妻| 国产一二三四2021精字窝| 亚洲精品久久无码av片软件 | 亚洲肥老熟妇四十五十路在线| 99久久国产一区二区三区| 日韩女优精品一区二区三区| 三级特黄60分钟在线观看| 久久精品成人免费观看97| 精品嫩模福利一区二区蜜臀 | 中文字幕在线乱码一区| 伊人色综合视频一区二区三区|