介紹
查看《ISP算法及架構分析介紹》
今天項目的順序就是先介紹幾個關于ISP算法架構的項目,包括python、matlab、c等高級語言實現的ISP算法架構,最后介紹一個FPGA實現ISP的項目。
openISP
https://github.com/cruxopen/openISP
項目介紹
用python實現的ISP架構,該架構涉及到的知識如下:
下圖是最新實現的模塊:
主要模塊如下:
死點校正
黑電平補償
鏡頭陰影校正
抗混疊噪聲濾波器
AWB 增益控制
降噪(拜耳領域)
去馬賽克
伽瑪校正
顏色校正矩陣
色彩空間轉換
亮度/色度噪聲過濾器
亮度降噪
雙邊過濾
非局部均值去噪
邊緣增強
假色抑制
色相/飽和度控制
亮度/對比度控制
關于項目的其他介紹,可以查看項目代碼
isp
https://github.com/mushfiqulalam/isp
用python實現的ISP架構,整體項目架構不如OpenISP,但是有幾個算法是OpenISP沒有的,可以綜合兩者看下,主要實現的算法如下:
=> 黑電平校正[e]
=> 漸暈/鏡頭陰影校正[e]
=> 壞像素校正[e]
=> 通道增益白平衡[e]
=> Bayer denoise[d]
=> Demosaic[m]
=> Demosaic 偽影減少 [m]
=> 顏色校正[e]
=> Gamma[e]
=> 色差校正 [m]
=> 色調映射[e]
=> 顏色增強[m]
=> 降噪[e]
=> 銳化[e]
=> 失真校正[e]
其中,[e]、[m] 和 [d] 分別表示當前算法上的簡單、中等或困難。
利用 MATLAB 和 DCRAW 處理數碼相機 RAW 文件的完整流程
http://t.csdn.cn/ZV6j8
這篇文章非常詳細地介紹了利用matlab處理RAW圖像流程,包括每一步處理后圖像的現象以及代碼,非常值得一看~
matlab_isp
https://github.com/EricMiukyQin/Raw_image_processing_pipeline
https://github.com/WaterdropsKun/ISP_Matlab
https://github.com/sauravgupta139/Image_Processing
https://github.com/xiaoshipipi/ISP_matlab
以上都是matlab實現ISP架構的源碼,但是項目不完整,沒有說明,建議結合上面文章一起了解相關函數作用。
ISP-pipeline-hdrplus
https://github.com/jhfmat/ISP-pipeline-hdrplus
Matlib 是一個開源(C/C++)圖像算法庫,可在多平臺(Window、Linux、Android)下使用,包含各種常規圖像處理算法,所有功能均采用底層優化技術,包括(Neon、Openmp、Linebuf、Mempool等),性能比OpenCV快,代碼只有1M,非常簡化,沒有依賴,使用起來非常方便,我們可以在上面使用neon指令窗口平臺開發,開發使用非常友好,可以快速將開發集成到自己的代碼中。
這也是使用c/c++開發的ISP架構,據作者介紹,自己也是非常喜歡ISP這個領域,項目里也有作者建立的交流群,
zynq_isp
https://github.com/bxinquan/zynq_camera_vdma_lcd
介紹
本項目基于zynq-7020(正點原子啟明星+OV5640+4.3'800x480)實現了ISP圖像處理(將ov5640的isp關閉,在7020上實現ISP功能),輸出到LCD和HDMI,軟件基于SDK裸機開發
實現的算法
處理模塊
isp_dpc - 壞點校正 (5x5領域內的8個臨近像素同時大于或同時小于中心像素,且差值大于門限,則認為壞點,使用中值替換)
isp_blc - 黑電平校正 (RGGB四通道分別減去配置好的黑電平值)
isp_bnr - 拜耳降噪 (可選擇的高斯濾波器)
isp_dgain - 數字增益 (直接乘以配置好增益值)
isp_demosaic - 去馬賽克 (G基于邊緣方向上插值 RB基于色差恒定理論插值)
isp_wb - 白平衡增益 (RGB三通道乘以配置的增益值)
isp_ccm - 色彩校正矩陣 (RGB三通道乘以配置的3x3矩陣)
isp_csc - 色彩空間轉換 (基于整數優化的RGB2YUV轉換公式)
isp_gamma - Gamma校正 (對亮度基于查表的Gamma校正)
isp_2dnr - 2d降噪(7x7雙邊濾波降噪)
isp_ee - 邊緣增強 (基于特定的3x3濾波器)
統計模塊
isp_stat_ae - 自動曝光統計 (支持統計選取區域內亮度總和與像素個數,支持RGGB四通道直方圖統計)
isp_stat_awb - 自動白平衡統計 (支持符合白點限定條件的RGB三通道數值總和與白像素個數,支持RGB三通道直方圖統計)
ISP Lite IP
位置: zynq_camera_vdma_lcd/xil_ip_repo/xil_isp_lite_1.0
這個項目包含了常規的算法,基本可以覆蓋常規的SNSOR,雖然項目介紹的比較少(基本齊全),但是提供了Vivado的完整工程,包含所有的源碼,親測編譯沒問題,功能尚未驗證。
總結
今天介紹了3個主流高級語言(MATLAB、C/C++、Python)實現的ISP架構,前面三個平臺架構適合學習ISP架構,如果之前沒有任何高級語言的基礎,建議使用python(人生苦短,我用Python)入門。最后FPGA實現的方案也是非常值得學習的,ZYNQ020價格不貴,值得深入學習。
還有就是最近使用HLS實現的ISP架構也很快和大家見面了,還在努力中...
最后,還是感謝各個大佬開源的項目,讓我們受益匪淺。后面有什么感興趣方面的項目,大家可以在后臺留言或者加微信留言,今天就到這,我是爆肝的碎碎思,期待下期文章與你相見。
審核編輯 :李倩
-
算法
+關注
關注
23文章
4620瀏覽量
93046 -
ISP
+關注
關注
6文章
477瀏覽量
51882
原文標題:優秀的 Verilog/FPGA開源項目介紹(二十六)- ISP (圖像信號處理)
文章出處:【微信號:Open_FPGA,微信公眾號:OpenFPGA】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論