圖像處理算法在各種場(chǎng)景中都有廣泛應(yīng)用,借助于FPGA并行計(jì)算的優(yōu)勢(shì)可以將算法性能有效提升,但為了提升系統(tǒng)整體性能,僅僅提升某一部分的性能是不夠的,一個(gè)好的方法是在FPGA內(nèi)實(shí)現(xiàn)全部視頻輸入輸出接口和圖像算法的完整通路。本Overlay的視頻輸入來(lái)自O(shè)V5640攝像頭,包含多個(gè)可任意切換的圖像處理算法,并包含了一個(gè)HDMI輸出接口顯示處理結(jié)果。
圖像處理算法在各種場(chǎng)景中都有廣泛應(yīng)用,借助于FPGA并行計(jì)算的優(yōu)勢(shì)可以將算法性能有效提升,但為了提升系統(tǒng)整體性能,僅僅提升某一部分的性能是不夠的,一個(gè)好的方法是在FPGA內(nèi)實(shí)現(xiàn)全部視頻輸入輸出接口和圖像算法的完整通路。本Overlay的視頻輸入來(lái)自O(shè)V5640攝像頭,包含多個(gè)可任意切換的圖像處理算法,并包含了一個(gè)HDMI輸出接口顯示處理結(jié)果。
設(shè)備清單
- PYNQ-Z2套件
- OV5640 Camera Board
(如Waveshare OV5640或者其它兼容版本)
- PMOD-Camera adapter
- HDMI monitor
系統(tǒng)架構(gòu)
算法列表
Overlay中實(shí)現(xiàn)了多個(gè)圖像處理算法,在HLS中實(shí)現(xiàn)并封裝為IP后在Block Design中被調(diào)用,讀者如有興趣可以在Github的/boards/src/ip/目錄獲取源代碼。
1) rgb2hsv
2) subsample
3) equalizehist
4) gaussianBlur
5) sobel
6) canny
7) dilation
8) erosion
快速開始
環(huán)境需求PYNQ v2.4,在PYNQ-Z2板卡聯(lián)網(wǎng)并啟動(dòng)后在終端中運(yùn)行如下代碼安裝Overlay到本地:
# (on PYNQ v2.4 only)
sudo pip3 install --upgrade git+https://github.com/xupsh/Pynq-CV-OV5640.git
案例演示
Notebook名稱:pynq4cv.ipynb
在Overlay中例化了一個(gè)I2C接口來(lái)對(duì)OV5640進(jìn)行配置,我們可以在Jupyter Notebook上通過(guò)Python對(duì)攝像頭進(jìn)行初始化,也可以通過(guò)改動(dòng)ov5640_config.py文件的內(nèi)容來(lái)修改配置。
接下來(lái),我們對(duì)Overlay中實(shí)現(xiàn)的圖像處理算法進(jìn)行配置。
配置完成后,還需要選擇使能Overlay中的某一個(gè)算法來(lái)對(duì)從OV5640獲取的圖像進(jìn)行處理,默認(rèn)不經(jīng)過(guò)任何圖像處理算法,從OV攝像頭獲取的圖像直接在HDMI顯示器上顯示。
我們也可以抓取OV5640拍攝的圖片并在Jupyter Notebook上顯示。
接下來(lái),我們可以使能不同的圖像處理算法,通過(guò)觀察HDMI顯示器的輸出,觀察不同算法的處理結(jié)果。
在運(yùn)行完畢后,記得關(guān)閉VDMA,以防止運(yùn)行其它Overlay時(shí)報(bào)錯(cuò)。
總結(jié)與展望
本案例在PL內(nèi)實(shí)現(xiàn)了一個(gè)完整的視頻通路,對(duì)圖像數(shù)據(jù)直接進(jìn)行硬件加速處理。相比于USB攝像頭減少了圖像數(shù)據(jù)從PS到PL拷貝和回傳的負(fù)載,提高了系統(tǒng)的性能同時(shí)極大降低了圖像處理的延時(shí)
編輯:hfy
-
FPGA
+關(guān)注
關(guān)注
1625文章
21624瀏覽量
601245 -
圖像處理
+關(guān)注
關(guān)注
27文章
1275瀏覽量
56577
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論