CN117726921B 基于流處理和非阻塞的orb特征提取加速器(上海科技大學(xué))_第1頁
CN117726921B 基于流處理和非阻塞的orb特征提取加速器(上??萍即髮W(xué))_第2頁
CN117726921B 基于流處理和非阻塞的orb特征提取加速器(上??萍即髮W(xué))_第3頁
CN117726921B 基于流處理和非阻塞的orb特征提取加速器(上??萍即髮W(xué))_第4頁
CN117726921B 基于流處理和非阻塞的orb特征提取加速器(上??萍即髮W(xué))_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

(12)發(fā)明專利號專利代理師翁若瑩柏子霓本發(fā)明公開了一種FPGA實(shí)現(xiàn)的基于流處理算法精確控制并緩沖rBRIEF描述子計(jì)算窗口的發(fā)明在做到高速特征點(diǎn)提取的同時也保證了特bufter a2下采樣模塊,用于將輸入的圖像調(diào)整的所需尺寸,獲得原圖像;角點(diǎn)檢測模塊,用于確定模糊圖像中的特征點(diǎn)位,輸出特征點(diǎn)掩膜;rBRIEF計(jì)算模塊,以非極大值抑制模塊輸出的原圖像、模糊圖像和特征點(diǎn)掩膜作為輸入,計(jì)算rBRIEF描述子并輸出給排序模塊,通過緩存管理算法使得窗口列選擇、rBRIEF計(jì)算rBRIEF描述子的工作區(qū)域?yàn)?7x37的滑動窗口,該滑動窗口在每個時鐘周期更新,每當(dāng)滑動窗口更新時:檢測特征點(diǎn)掩膜最左一列像素的中間像素leftpixel以及最右一列像素的中間像素rightpixel;若中間像素rightpixel是一個特征點(diǎn),則模糊圖像的最中間一列被看作是某個窗口的第一列,將模糊圖像的最中間一列寫入窗口列FIFO,同時計(jì)數(shù)器清零,且接下來的36個最中間一列也被寫入窗口列FIFO;若中間像素leftpixel是一個特征點(diǎn),則模糊圖像的最中間一列被看做是某個窗口的最后一列,在將每一個最中間一列寫入窗口列FIFO時附帶一個標(biāo)簽用來指示它是起始列還是結(jié)束列,rBRIEF計(jì)算模塊根據(jù)標(biāo)簽決定是否進(jìn)行rBRIEF的計(jì)算;rBRIEF計(jì)算模塊從窗口列FIFO中讀取數(shù)據(jù)后將其拼接成另一個窗口矩陣,新的一列在每個時鐘周期被插入到該窗口矩陣的最后,窗口矩陣的其它列依次左移,窗口拼接以每周期1列的吞吐量運(yùn)行,直到某一列為結(jié)束列;隨后停止窗口列FIFO的讀取,然后進(jìn)行rBRIEF的計(jì)算,計(jì)算rBRIEF時,原圖像用于計(jì)算質(zhì)心方向,隨后根據(jù)該方向角度將BRIEF坐標(biāo)旋轉(zhuǎn)以計(jì)算rBRIEF描述子;排序模塊,為采用硬件實(shí)現(xiàn)的計(jì)數(shù)排序;所述排序模塊與所述rBRIEF計(jì)算模塊集成在一起,當(dāng)一個rBRIEF描述子計(jì)算完成后,其索引被立刻存入容器;當(dāng)所有的rBRIEF描述子計(jì)算完成后,索引按照順序依次輸出。2.如權(quán)利要求1所述的基于流處理和非阻塞的ORB特征提取加速器,其特征在于,所述排序模塊內(nèi)部使用256個容器來緩存特征點(diǎn)的索引,具有相同響應(yīng)值的特征點(diǎn)對應(yīng)的索引被緩存在同一個容器中。3技術(shù)領(lǐng)域[0001]本發(fā)明涉及一種基于F背景技術(shù)[0002]ORB特征提取[1]是計(jì)算機(jī)視覺的常用算法,主要作用是提取連續(xù)的圖像中保持不變的像素點(diǎn)(特征點(diǎn)),并且計(jì)算特征點(diǎn)的描述子(用于特征點(diǎn)的匹配)。后續(xù)可以應(yīng)用各種SLAM算法(如ORB_SLAM),通過提取和比較前后兩幀圖片的特征來估計(jì)出相機(jī)的運(yùn)動軌跡,同時可以得到由特征點(diǎn)組成的點(diǎn)云地圖。該算法廣泛應(yīng)用于視覺定位和三維重建領(lǐng)域。[0003]目前,隨著相機(jī)的分辨率和幀率不斷提升,0RB特征提取的速度受到極大的挑戰(zhàn),SLAM的速度僅為每秒6幀,遠(yuǎn)遠(yuǎn)達(dá)不到相機(jī)的幀率,其中ORB特征提取占到了每幀處理時間[0004]為了解決這一問題,相關(guān)學(xué)者提出了一系列的硬件設(shè)計(jì)以加速ORB特征提取的運(yùn)算。ORB特征提取硬件設(shè)計(jì)的難點(diǎn)之一是rBRIEF描述子[5]的計(jì)算復(fù)雜且很難做到并行,eSLAM[2]提出了RS-BRIEF描述子可以顯著降低計(jì)算復(fù)雜度,但是導(dǎo)致了精度大幅降低。FSLAM[3]使用量化和查表等方法加快特征點(diǎn)角度的計(jì)算,但是對rBRIEF的整體計(jì)算速度提升有限。另一方面,由于rBRIEF描述子的計(jì)算難以應(yīng)用流水線處理,所以在計(jì)算一個描述子時,輸入的像素流將被阻塞直到描述子計(jì)算完。[2][3][4]中的設(shè)計(jì)均基于阻塞式的計(jì)算,由于阻塞而造成的延遲占到30%。除此之外,輸出的描述子需要根據(jù)其響應(yīng)值進(jìn)行排序,由于描述子的數(shù)據(jù)位寬較大且數(shù)量較多,通常的硬件排序?qū)⒄加么罅康钠蟽?nèi)存和邏輯資源。eSLAM[3]使用了硬件的堆排序,ac2SLAM[4]在堆排序的基礎(chǔ)上增加乒乓緩沖區(qū)以減少資源占用。alternativetosiftorsurf,"in2011IVision,2011,pp.2564-2571.56thAnnualDesignAutomationConference2019,2019,pp.1-acceleratoronsocfpgasProgrammableTechnology(ICFPT),2022,pp.1-9.acceleratedhigh-accuracyslamwithheapsortan (ICFPT),2021,pp.1-9.4independentelementaryfeaturesVision,2010,pp.778-792.發(fā)明內(nèi)容[0011]本發(fā)明的目的是:加快ORB特征提取的速度以顯著提升ORB_SLAM等算法的運(yùn)行效[0012]為了達(dá)到上述目的,本發(fā)明的技術(shù)方案是提供了FPGA實(shí)現(xiàn)的基于流處理和非阻塞[0017]rBRIEF計(jì)算模塊,通過緩存管理算法使得窗口列選擇、rBRIEF計(jì)算和窗口列FIFO[0018]rBRIEF描述子的工作區(qū)域?yàn)?7x37的滑動窗口,該滑動窗口在每個時鐘周期更新,每當(dāng)滑動窗口更新時:檢測特征點(diǎn)掩膜最左一列像素的中間像素leftpixel以及最右一列像素的中間像素rightpixel;若中間像素rightpixel是一個特征點(diǎn),則模糊圖像的最中間一列被看作是某個窗口的第一列,將模糊圖像的最中間一列寫入窗口列FIFO,同時計(jì)數(shù)器清零,且接下來的36個最中間一列也被寫入窗口列FIFO;若中間像素leftpixel是一個特征點(diǎn),則模糊圖像的最中間一列被看做是某個窗口的最后一列,在將每一個最中間一列寫入窗口列FIFO時附帶一個標(biāo)簽用來指示它是起始列還是結(jié)束列,rBRIEF計(jì)算模塊根據(jù)標(biāo)簽決定是否進(jìn)行rBRIEF的計(jì)算;[0019]rBRIEF計(jì)算模塊從窗口列FIFO中讀取數(shù)據(jù)后將其拼接成另一個窗口矩陣,新的一列在每個時鐘周期被插入到該窗口矩陣的最后,窗口矩陣的其它列依次左移,窗口拼接以每周期1列的吞吐量運(yùn)行,直到某一列為結(jié)束列;隨后停止窗口列FIFO的讀取,然后進(jìn)行rBRIEF的計(jì)算,計(jì)算rBRIEF時,原圖像用于計(jì)算質(zhì)心方向,隨后根據(jù)該方向角度將BRIEF坐標(biāo)旋轉(zhuǎn)以計(jì)算rBRIEF描述子;[0021]優(yōu)選地,所述排序模塊內(nèi)部使用256個容器來緩存特征點(diǎn)的索引,具有相同響應(yīng)值的特征點(diǎn)對應(yīng)的索引被緩存在同一個容器中。[0022]優(yōu)選地,所述排序模塊與所述rBRIEF計(jì)算模塊集成在一起,當(dāng)一個rBRIEF描述子計(jì)算完成后,其索引被立刻存入容器;當(dāng)所有的rBRIEF描述子計(jì)算完成后,索引按照順序依次輸出。[0023]上述技術(shù)方案主要包括了以下兩個方面的創(chuàng)新:[0024]1)提出了一種基于流處理的非阻塞式硬件架構(gòu)和緩沖管理算法。該技術(shù)通過算法精確控制并緩沖rBRIEF描述子計(jì)算窗口的每一列,使得描述子在計(jì)算的同時可以接收新的像素流輸入,以實(shí)現(xiàn)非阻塞的處理。[0025]2)提出了一種嵌入在加速器內(nèi)部的高效硬件排序設(shè)計(jì)。該技術(shù)基于計(jì)數(shù)排序算5法,使用極少的資源實(shí)現(xiàn)硬件上的rBRIEF的排序,并將其嵌入在加速器內(nèi)部。[0026]本發(fā)明所公開的技術(shù)方案主要應(yīng)用于低功耗平臺的視覺SLAM中,通過獨(dú)特的架構(gòu)實(shí)現(xiàn)高速低功耗的ORB特征提取。本發(fā)明中的非阻塞式的rBRIEF描述子計(jì)算顯著提升了數(shù)據(jù)的吞吐量,同時集成的硬件排序模塊進(jìn)一步降低整體的延遲和資源占用。本發(fā)明在做到附圖說明[0027]圖1示意了加速器的系統(tǒng)架構(gòu);[0028]圖2示意了rBRIEF描述子計(jì)算的硬件架構(gòu);[0029]圖3示意了排序模塊的硬件架構(gòu);[0030]圖4示意了實(shí)驗(yàn)數(shù)據(jù)對比;[0031]圖5示意了非阻塞計(jì)算的驗(yàn)證。具體實(shí)施方式[0032]下面結(jié)合具體實(shí)施例,進(jìn)一步闡述本發(fā)明。應(yīng)理解,這些實(shí)施例僅用于說明本發(fā)明而不用于限制本發(fā)明的范圍。此外應(yīng)理解,在閱讀了本發(fā)明講授的內(nèi)容之后,本領(lǐng)域技術(shù)人員可以對本發(fā)明作各種改動或修改,這些等價形式同樣落于本申請所附權(quán)利要求書所限定的范圍。[0033]本發(fā)明所公開的加速器已完全實(shí)現(xiàn)在FPGA上運(yùn)行,整個加速器的系統(tǒng)框架如圖1[0034]圖像數(shù)據(jù)由ARM處理器(圖1中PS部分)通過AXIDMA,以像素流的形式輸入到FPGA描述子計(jì)算(rBRIEF)和排序(Sort)六個子模塊,其中:[0035]下采樣模塊(Resizer)使用線性插值方法將輸入的圖像調(diào)整到所需尺寸。[0036]調(diào)整過尺寸的圖像被輸入到高斯濾波模塊(GaussianFilter),使用固定的高斯卷積核對圖像進(jìn)行模糊。[0037]模糊的圖像(blurredimage)和原圖像(image)被同步輸入到角點(diǎn)檢測模塊糊的圖像和原圖像被同步輸出。其中,特征點(diǎn)的掩膜上的數(shù)據(jù)值為該點(diǎn)的harris響應(yīng)值[0038]非極大值抑制模塊(NMS)在特征點(diǎn)的掩膜上進(jìn)行3乘3的非極大值抑制,并同步輸出模糊的圖像、原圖像和非極大值抑制之后的特征點(diǎn)掩膜。[0039]rBRIEF描述子的計(jì)算(圖1中rBRIEF)分為三個部分:窗口的選擇、rBRIEF計(jì)算和窗口列FIFO。本發(fā)明通過提出新的緩存管理算法使得三個部分可以并行計(jì)算。整個算法結(jié)構(gòu)如圖2所示,下面是算法的流程描述:[0041]rBRIEF描述子計(jì)算的工作區(qū)域?yàn)?7x37的滑動窗口,該滑動窗口在每個時鐘周期都會進(jìn)行更新。每當(dāng)滑動窗口更新時,我們檢測特征點(diǎn)掩膜最左和最右兩列像素的中間兩個像素(圖2中的leftpixel和rightpixel),然后決定是否將模糊圖像的最中間的一列寫入FIFO。如果rightpixel是一個特征點(diǎn),那么模糊圖像的最中間的一列(中間列)可以被看6作是某個窗口的第一列(從左到右),在圖2中用虛線框3表示,這一中間列將被寫入窗口列FIFO,同時計(jì)數(shù)器清零,而且接下來的36個中間列也要被寫入窗口列FIFO。如果leftpixel是一個特征點(diǎn),那么最中間的一列可以被看做是某個窗口(在圖2中用虛線框1表示)的最后一列。在將每一個中間列寫入窗口列FIFO時會附帶一個標(biāo)簽用來指示它是起始列(第一列)還是結(jié)束列(最后一列),rBRIEF計(jì)算模塊會根據(jù)它的標(biāo)簽決定是否進(jìn)行rBRIEF的計(jì)算。[0043]如圖2中區(qū)域5所示,rBRIEF計(jì)算模塊從窗口列FIFO中讀取數(shù)據(jù)然后將它們拼接成另一個窗口矩陣。新的一列在每個時鐘周期被插入到窗口矩陣的最后,窗口矩陣的其它列依次左移。窗口拼接以每周期1列的吞吐量運(yùn)行,直到某一列為結(jié)束列。隨后它將停止窗口列FIFO的讀取,然后花費(fèi)約300個周期進(jìn)行rBRIEF的計(jì)算。計(jì)算rBRIEF時,原始圖像用于計(jì)算質(zhì)心方向,隨后根據(jù)該方向角度將BRIEF坐標(biāo)旋轉(zhuǎn)以計(jì)算rBRIEF描述子。[0045]窗口列緩沖(圖2中區(qū)域4)的存在允許了窗口列不同的的生產(chǎn)和消費(fèi)速率。通過控制窗口列FIFO的深度可以實(shí)現(xiàn)rBRIEF計(jì)算的同時,新像素輸入不會被打斷。[0046]最后一步是排序(Sort),本設(shè)計(jì)采用硬件實(shí)現(xiàn)的計(jì)數(shù)排序,如圖3所示。硬件排序內(nèi)部使用256個容器來緩存特征點(diǎn)的索引,具有相同響應(yīng)值的特征點(diǎn)對應(yīng)的索引被緩存在同一個容器中。排序模塊實(shí)際上與rBRIEF模塊集成在一起,當(dāng)一個描述子計(jì)算完成后,它的索引會被立刻存入容器。當(dāng)所有的描述子計(jì)算完成后,索引會按照順序依次輸出。由于只對特征點(diǎn)的索引進(jìn)行緩存,額外的資源占用僅需一個BRAM和幾百個LUT。[0047]圖4展示了本發(fā)明與原始ORB_SLAM3和現(xiàn)有的加速器設(shè)計(jì)(eSLAM、ac2SLAM和FSLAM)的對比,實(shí)驗(yàn)數(shù)據(jù)顯示本發(fā)明具有最低的時延和資源占用以及最高的精度,同時具有最低的能耗。圖5是加速器的時延隨著特征點(diǎn)密度變化的曲線,說明了在實(shí)際的工況下,本發(fā)明實(shí)現(xiàn)了rBRIEF描述子的非阻塞計(jì)算。

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論