System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本專利技術涉及硬件圖像特征提取算法,具體涉及一種基于fpga的orb算法加速系統及方法。
技術介紹
1、目前,視覺同步定位與地圖構建(simultaneous?localization?and?mapping,slam)技術機器人導航、自動駕駛、增強現實等領域發揮著重要作用。slam算法的核心在于通過視覺傳感器捕捉環境信息,實現對設備自身位置的精確定位和對環境的實時三維建模。
2、在眾多slam算法中,基于特征點的方法因其在定位精度和系統穩定性方面的出色表現而受到廣泛關注。特征點的提取質量更是直接關系到slam系統在定位精度和構圖質量上的性能。計算機視覺中常見的特征提取算法有sift(scale-invariant?featuretransform)、fast(features?from?accelerated?segment?test)和orb(oriented?fastand?rotated?brief)算法。其中,orb特征檢測算法結合了fast角點的檢測與提取和brief描述子生成與匹配過程,提供了一種高效且魯棒的特征提取和匹配方法。
3、orb由于其算法的魯棒性和計算流程的簡潔性,適用于基于特征點的稀疏slam算法,但在fpga(field-programmable?gate?array)上執行傳統的orb特征提取算法,會存在長時間的空閑等待和內存資源的大量占用問題。
4、雖有一些研究人員進行了少量工作來研究以上問題,但現有方法仍然存在硬件資源利用率、計算時的運行效率和計算速度均不高
技術實現思路
1、本專利技術所要解決的技術問題是現有方法仍然存在硬件資源利用率、計算時的運行效率和計算速度均不高等問題。本專利技術目的在于提供一種基于fpga的orb算法加速系統及方法,該系統包括圖像特征緩存模塊、fast特征提取模塊、高斯金字塔模塊、旋轉角度計算模塊和rbrief描述符模塊,基于fpga實現通過以上各模塊的協同工作,orb算法能夠在fpga上高效、實時地提取出orb特征點,提高了硬件資源利用率、計算時的運行效率和計算速度。
2、本專利技術通過下述技術方案實現:
3、第一方面,本專利技術提供了一種基于fpga的orb算法加速系統,該系統包括:
4、圖像特征緩存模塊,用于按照圖像像素列形式,將輸入的原始圖像存儲于bram存儲單元中;在存儲過程中,采用數據對齊和移位寄存器模式實現數據更新;
5、fast特征提取模塊,用于基于雙通道并行處理電路,對圖像特征緩存模塊中的原始圖像進行初步特征點提取,得到特征點和角點;
6、高斯金字塔模塊,用于對圖像特征緩存模塊中的原始圖像進行下采樣和高斯平滑濾波處理,得到平滑后的圖像,從而提升圖像的尺度不變性;
7、旋轉角度計算模塊,用于根據特征點的坐標值和平滑后的圖像,進行灰度質心計算,得到特征點旋轉角度;
8、rbrief描述符模塊,用于根據特征點旋轉角度和平滑后的圖像,計算并生成rbrief描述符,得到orb特征點數據;在計算過程中,一對像素點的兩個點均固定在各自存儲單元的同一端口處,利用此約束降低互連結構的復雜度,便于灰度比較操作僅需從各存儲單元的各端口獲取操作數;進而避免同一行像素點對之間的訪問沖突。
9、進一步地,圖像特征緩存模塊中采用數據對齊和移位寄存器模式實現數據更新,包括:
10、在bram存儲單元的第0地址線上存儲與原始圖像的第0列像素相對應的數據;
11、當每一新像素到達時,則從對應列的bram地址中先讀出現有數據,從現有數據中移除最高位的像素,再將新到的像素附加于最低位,得到新的像素數據;并將新的像素數據隨即寫回同一內存地址中,實現數據更新;
12、當同時訪問多行輸入的新像素時,則將bram布局成移位寄存器模式,構建多行形式的行緩存,實現多行數據更新。
13、進一步地,fast特征提取模塊包括:
14、雙通道并行處理單元,用于在各通道中分別并聯16個減法器以實行原始圖像中像素點間的灰度差值計算,將計算出的灰度差值與預設的灰度閾值t進行差運算,得到運算結果;將運算結果與零值比較,并以二進制方式輸出判別結果;若判別結果大于零,則標記該像素點為亮點/暗點,輸出高電平1;反之,則標記該像素點非亮點/非暗點,輸出低電平0;
15、特征點形成單元,用于根據雙通道并行處理單元中每個通道的輸出結果,結合16次輸出的判別結果,最終形成一個16位的二進制輸出串,作為特征點;
16、角點判斷單元,用于將預先定義并存儲所有可能的模式字符串與16位的二進制輸出串進行比較,得到比較結果;基于比較結果,采用邏輯與操作處理16位的二進制輸出串進行亮點或暗點判斷;并將亮點與暗點的檢測結果利用邏輯或運算合并,從而判定該像素點是否構成角點。
17、進一步地,灰度差值的計算包括:
18、采用半徑為3的bresenham圓來選取16個關鍵采樣點,在每個時鐘周期內將進行7×7中心像素點與其周圍半徑為3的bresenham圓上16個采樣點間的灰度值對比操作,得到灰度差值。
19、進一步地,高斯金字塔模塊包括:
20、高斯濾波處理單元,用于執行高斯算法處理時,按照輸入的像素點順序對圖像矩陣的列數據先進行首尾對稱加法處理再進行乘積運算,得到乘積結果;最終通過累加乘積結果得到濾波結果,即平滑后的圖像。
21、進一步地,高斯金字塔模塊還包括動態配置機制:根據不同層級的圖像尺寸需要,動態調整行緩沖器的深度,具體包括:
22、在確立原始輸入圖像列數基礎上,按照1.2倍比例放縮,計算得到金字塔結構中各級圖象的列數;
23、行緩沖器最大深度對應比例放縮后的圖像尺寸,以此作為基準,采用逐級抽頭方式,通過多路選擇器動態配置的機制,實現對金字塔當前層圖像所需行緩沖器的深度的動態調整,確保與當前特征圖尺寸相適應。
24、進一步地,rbrief描述符模塊在計算過程中,還采用基于遺傳算法優化的靜態調度計算法對同一行像素點對進行訪問調度,避免同一行像素點對之間的訪問沖突;
25、基于遺傳算法優化的靜態調度計算法,包括:
26、將靜態模式調度問題表示為由一組像素點對p組成的集合:p={p1,p2,...,pn},其中g為集合p的子集:其中gsize是一個固定參數,表示每個組g中能夠并發訪
27、問的像素點對的最大數量;pi表示集合p中的第i個元素,即第i個像素點對;n表示集合p中元素的總數,即所有像素點對的數量;
28、構建目標函數,目標函數指的是在靜態模型調度策略下,對于所有可能的旋轉角度,以處理像素點對的計算單元的平均延遲最小來構建的;
29、基于約束條件,采用遺傳算法對目標函數求解,得到相應的解;相應的解是采用元組<p,g>表示,并以p集合中的每一元素所對應的分本文檔來自技高網...
【技術保護點】
1.一種基于FPGA的ORB算法加速系統,其特征在于,該系統包括:
2.根據權利要求1所述的一種基于FPGA的ORB算法加速系統,其特征在于,所述圖像特征緩存模塊中采用數據對齊和移位寄存器模式實現數據更新,包括:
3.根據權利要求1所述的一種基于FPGA的ORB算法加速系統,其特征在于,所述FAST特征提取模塊包括:
4.根據權利要求3所述的一種基于FPGA的ORB算法加速系統,其特征在于,所述灰度差值的計算包括:
5.根據權利要求1所述的一種基于FPGA的ORB算法加速系統,其特征在于,所述高斯金字塔模塊包括:
6.根據權利要求1所述的一種基于FPGA的ORB算法加速系統,其特征在于,所述高斯金字塔模塊還包括動態配置機制:根據不同層級的圖像尺寸需要,動態調整行緩沖器的深度,具體包括:
7.根據權利要求1所述的一種基于FPGA的ORB算法加速系統,其特征在于,所述rBRIEF描述符模塊在計算過程中,還采用基于遺傳算法優化的靜態調度計算法對同一行像素點對進行訪問調度;
8.根據權利要求7所述的一種基
9.一種基于FPGA的ORB算法加速方法,其特征在于,該方法包括:
10.根據權利要求9所述的一種基于FPGA的ORB算法加速方法,其特征在于,采用數據對齊和移位寄存器模式實現數據更新,具體步驟為:
...【技術特征摘要】
1.一種基于fpga的orb算法加速系統,其特征在于,該系統包括:
2.根據權利要求1所述的一種基于fpga的orb算法加速系統,其特征在于,所述圖像特征緩存模塊中采用數據對齊和移位寄存器模式實現數據更新,包括:
3.根據權利要求1所述的一種基于fpga的orb算法加速系統,其特征在于,所述fast特征提取模塊包括:
4.根據權利要求3所述的一種基于fpga的orb算法加速系統,其特征在于,所述灰度差值的計算包括:
5.根據權利要求1所述的一種基于fpga的orb算法加速系統,其特征在于,所述高斯金字塔模塊包括:
6.根據權利要求1所述的一種基于fpga的orb算法加速系統...
【專利技術屬性】
技術研發人員:王京,彭耀星,夏于洋,李青,王英翹,
申請(專利權)人:核工業西南物理研究院,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。