概述
此項(xiàng)目解釋了如何在FPGA上使用resizer IP來(lái)調(diào)整圖像的大小。其中對(duì)比了兩種圖像大小調(diào)整的解決方案的運(yùn)算速度,其中之一為使用Python Image Library通過(guò)軟件算法實(shí)現(xiàn)圖像大小調(diào)整,另一種使用Xilinx xfopencv library實(shí)現(xiàn)了在FPGA上硬件加速的圖像大小調(diào)整。
初始化
1. 首先在SD卡內(nèi)配置Pynq-Z2最新鏡像PYNQ image v2.5并燒錄在其中
2. 根據(jù)pynq.io上的官方指南配置環(huán)境
(https://pynq.readthedocs.io/en/latest/getting_started/pynq_z2_setup.html)
根據(jù)數(shù)字編號(hào)依次連接并點(diǎn)亮板卡,最后在板卡出現(xiàn)BTN0~BTN3同時(shí)點(diǎn)亮閃爍一次后為開(kāi)機(jī)完成狀態(tài)。
3. 在筆記本電腦上配置網(wǎng)絡(luò),使得無(wú)線網(wǎng)卡的上網(wǎng)功能與Pynq-Z2連接的以太網(wǎng)網(wǎng)口共享,以做到Pynq-Z2同時(shí)能夠上網(wǎng)。
4. 借用Xshell或者開(kāi)源軟件PuTTY對(duì)于Pynq-Z2端口進(jìn)行SSH獲得其新ip口,此時(shí)其一般會(huì)被重定向至192.168.137.X。此時(shí)在瀏覽器內(nèi)登錄此ip即可通過(guò)Jupyter Notebook與Pynq-Z2板卡通信。
5. 在Jupyter Notebook中新建terminal并ping 182.61.200.6驗(yàn)證與百度的連接是否正常上述驗(yàn)證完成后即為Pynq-Z2板卡與網(wǎng)絡(luò)的基礎(chǔ)通信功能與配置完成。
快速開(kāi)始
在Jupyter Notebook的Terminal中輸入以下指令:
sudo pip3 install --upgrade git+
https://github.com/xilinx/pynq-helloworld.git
更新在Pynq-Z2內(nèi)所有Packages并從github下載本次項(xiàng)目的代碼。
(更新需要耐心等待一定時(shí)間。)
(項(xiàng)目Github文件及其詳細(xì)代碼請(qǐng)點(diǎn)擊查看原文)
案例測(cè)試
1. 最終會(huì)在Files文件夾下生成名為helloworld/的文件夾,點(diǎn)開(kāi)此文件夾可以看到兩個(gè)Jupyter Notebook文件(.ipynb)。
2. 其中resizer_PS.ipynb的軟件方案采用了Python內(nèi)建的Python Imaging Library通過(guò)軟件上的算法實(shí)現(xiàn)完成對(duì)于一張640*360的sample圖像壓縮為原圖像的四分之一大?。?20*180)。此軟件方案通過(guò)PIL庫(kù)加載與重置圖像的大小,用numpy庫(kù)存儲(chǔ)圖像的像素矩陣,用IPython.display在Jupyter notebook中顯示圖像。
3. 而resizer_PL.ipynb的FPGA硬件方案并沒(méi)有直接在ARM核中單純采用算法借用Python本地的內(nèi)存進(jìn)行運(yùn)算后直接返回。而是先將圖片數(shù)據(jù)通過(guò)ARM核從SD卡中讀入,再以數(shù)據(jù)流的形式通過(guò)Python的本地內(nèi)存的DRAM形式傳入共享的物理內(nèi)存中。
接下來(lái)通過(guò)AXI的內(nèi)部連接將PS層面的數(shù)據(jù)傳入PL層的可編輯邏輯單元,通過(guò) Xilinx xfopencv library在DMA與Resize IP之間的運(yùn)算最后將數(shù)據(jù)傳回ARM核至SD卡。
最后,在縮小圖片的演示最后我們可以看到PS方案得到的最快單次圖像處理為24.1ms,而在PL方案中最快單次圖像處理僅僅為8.95ms,在此實(shí)際圖像案例上處理圖像的時(shí)間效率上縮小了接近2.7倍。如果放至更多張更高像素的圖片,相信此圖像處理方案會(huì)有著較大優(yōu)勢(shì)。
-
FPGA
+關(guān)注
關(guān)注
1629文章
21738瀏覽量
603463 -
圖像處理
+關(guān)注
關(guān)注
27文章
1292瀏覽量
56754 -
Xilinx
+關(guān)注
關(guān)注
71文章
2167瀏覽量
121441 -
python
+關(guān)注
關(guān)注
56文章
4797瀏覽量
84694
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論