圖像處理算法在各種場景中都有廣泛應用,借助于FPGA并行計算的優勢可以將算法性能有效提升,但為了提升系統整體性能,僅僅提升某一部分的性能是不夠的,一個好的方法是在FPGA內實現全部視頻輸入輸出接口和圖像算法的完整通路。本Overlay的視頻輸入來自OV5640攝像頭,包含多個可任意切換的圖像處理算法,并包含了一個HDMI輸出接口顯示處理結果。
圖像處理算法在各種場景中都有廣泛應用,借助于FPGA并行計算的優勢可以將算法性能有效提升,但為了提升系統整體性能,僅僅提升某一部分的性能是不夠的,一個好的方法是在FPGA內實現全部視頻輸入輸出接口和圖像算法的完整通路。本Overlay的視頻輸入來自OV5640攝像頭,包含多個可任意切換的圖像處理算法,并包含了一個HDMI輸出接口顯示處理結果。
設備清單
- PYNQ-Z2套件
- OV5640 Camera Board
(如Waveshare OV5640或者其它兼容版本)
- PMOD-Camera adapter
- HDMI monitor
系統架構

算法列表
Overlay中實現了多個圖像處理算法,在HLS中實現并封裝為IP后在Block Design中被調用,讀者如有興趣可以在Github的/boards/src/ip/目錄獲取源代碼。
1) rgb2hsv
2) subsample
3) equalizehist
4) gaussianBlur
5) sobel
6) canny
7) dilation
8) erosion

快速開始
環境需求PYNQ v2.4,在PYNQ-Z2板卡聯網并啟動后在終端中運行如下代碼安裝Overlay到本地:
# (on PYNQ v2.4 only)
sudo pip3 install --upgrade git+https://github.com/xupsh/Pynq-CV-OV5640.git
案例演示
Notebook名稱:pynq4cv.ipynb
在Overlay中例化了一個I2C接口來對OV5640進行配置,我們可以在Jupyter Notebook上通過Python對攝像頭進行初始化,也可以通過改動ov5640_config.py文件的內容來修改配置。

接下來,我們對Overlay中實現的圖像處理算法進行配置。

配置完成后,還需要選擇使能Overlay中的某一個算法來對從OV5640獲取的圖像進行處理,默認不經過任何圖像處理算法,從OV攝像頭獲取的圖像直接在HDMI顯示器上顯示。

我們也可以抓取OV5640拍攝的圖片并在Jupyter Notebook上顯示。
接下來,我們可以使能不同的圖像處理算法,通過觀察HDMI顯示器的輸出,觀察不同算法的處理結果。

在運行完畢后,記得關閉VDMA,以防止運行其它Overlay時報錯。

總結與展望
本案例在PL內實現了一個完整的視頻通路,對圖像數據直接進行硬件加速處理。相比于USB攝像頭減少了圖像數據從PS到PL拷貝和回傳的負載,提高了系統的性能同時極大降低了圖像處理的延時
編輯:hfy
-
FPGA
+關注
關注
1660文章
22411瀏覽量
636277 -
圖像處理
+關注
關注
29文章
1342瀏覽量
59509
發布評論請先 登錄
為啥 AI 計算速度這么驚人?—— 聊聊 GPU、內存與并行計算
一文看懂AI大模型的并行訓練方式(DP、PP、TP、EP)
MarketsandMarkets FPGA行業報告,2026~2030 FPGA市場洞察
從自然仿真到智能調度——GPU并行計算的多場景突破
在樹莓派Pico上運用不同的并行化手段
Kintex UltraScale 純 FPGA 開發平臺,釋放高速并行計算潛能,高性價比的 FPGA 解決方案
AI芯片:加速人工智能計算的專用硬件引擎
多節點并行處理架構
邊緣AI廣泛應用推動并行計算崛起及創新GPU滲透率快速提升
解鎖樹莓派集群:一步步打造你的超級計算陣列!
讀懂極易并行計算:定義、挑戰與解決方案
基于FPGA并行計算的圖像處理案例
評論