ORB特征是一種圖像識(shí)別、追蹤和匹配中常用的特征,大名鼎鼎的ORB-SLAM就是使用的這一特征。它提取FAST特征點(diǎn),并通過(guò)特征點(diǎn)附近的窗口矩計(jì)算特征點(diǎn)的方向,含方向的FAST特征也被稱(chēng)為oFAST特征。對(duì)提取到的oFAST特征,進(jìn)一步計(jì)算BRIEF描述子。ORB特征包含了兩部分,一是特征點(diǎn)位置,二是它的BRIEF 256位描述子。
ORB特征計(jì)算的流程
本項(xiàng)目實(shí)現(xiàn)了ORB_FPGA單層圖像金字塔的ORB特征提取,利用FPGA的并行計(jì)算能力,使這一過(guò)程比起純CPU執(zhí)行加速了5.6倍。
加速器結(jié)構(gòu),輸入輸出都是AXI-Stream接口
上圖為圖像加速部分的工程示意圖。這里同樣使用了HLS編寫(xiě)的加速I(mǎi)P采用AXI-Stream數(shù)據(jù)接口,數(shù)據(jù)接口與DMA首尾相連,只要控制DMA就可以驅(qū)動(dòng)它。
總體工程
本項(xiàng)目的例子輸入是SD卡中保存好的圖片,當(dāng)然也可以自己從攝像頭讀取圖片。
快速開(kāi)始
運(yùn)行下面這條命令即可快速安裝:
sudo pip3 install git+https://github.com/Siudya/ORB_FPGA.git
項(xiàng)目演示
安裝好以后打開(kāi)ORB_FPGA/ORB_FPGA..ipynb
首先是初始化軟硬件,并且讀取圖片。注意讀取進(jìn)來(lái)的圖片要拷貝到xlnk分配的內(nèi)存才可以使用DMA傳輸。
將圖片從兩個(gè)輸入DMA寫(xiě)到加速器中再?gòu)妮敵鯠MA讀回。統(tǒng)計(jì)收到的字節(jié)數(shù)可以得知1914個(gè)特征點(diǎn)被檢測(cè)到了。
這里可以打印前兩個(gè)特征點(diǎn)的內(nèi)容。可以看到前8個(gè)32位數(shù)是描述子,后兩個(gè)是坐標(biāo)。
把特征點(diǎn)畫(huà)在原來(lái)的圖像上,可以看到檢測(cè)出的特征點(diǎn)大部分是角點(diǎn)和邊緣點(diǎn)。這實(shí)際上和FAST特征是一致的,但是FAST特征不包含描述子。
接下來(lái)讀取更多圖片來(lái)看看吞吐量如何。這里讀取了20張圖片,統(tǒng)統(tǒng)送入加速器加速,可以看到幀數(shù)可以達(dá)到56幀。
項(xiàng)目中也提供了純軟件測(cè)試的可執(zhí)行程序,可以直接運(yùn)行。
-
FPGA
+關(guān)注
關(guān)注
1643文章
21950瀏覽量
613767 -
cpu
+關(guān)注
關(guān)注
68文章
11029瀏覽量
215874 -
圖像識(shí)別
+關(guān)注
關(guān)注
9文章
526瀏覽量
38880 -
orb
+關(guān)注
關(guān)注
0文章
21瀏覽量
10008
發(fā)布評(píng)論請(qǐng)先 登錄
VirtualLab應(yīng)用:基于衍射的計(jì)量和表征技術(shù)
VirtualLab 應(yīng)用:反射式金字塔波前傳感器的仿真
VirtualLab:基于衍射的計(jì)量和表征技術(shù)
VirtualLab案例:基于衍射的計(jì)量和表征技術(shù)
VirtualLab Fusion案例:反射式金字塔波前傳感器的仿真
反射式金字塔波前傳感器的仿真
使用機(jī)器學(xué)習(xí)改善庫(kù)特征提取的質(zhì)量和運(yùn)行時(shí)間

評(píng)論