ISP(Image Signal Processor)我介紹了很多了。
ISP從圖像傳感器獲取 RAW 像素,并將其轉換為與人類對所捕獲場景的感知相匹配的圖像。ISP 是每個攝像頭和視覺系統中必不可少的基本硬件處理器。
然而,大多數廠家的 ISP 實現細節并不公開,都是給一堆函數自己調用調試。因為廠商將 ISP 算法視為保持市場競爭力的獨特秘訣。雖然之前介紹了很多開源ISP項目(優秀的 Verilog/FPGA開源項目介紹(二十六)- ISP (圖像信號處理)),這些開源ISP僅僅是實驗和探索,與商用的ISP相比,它們在性能、圖像質量和實用性方面還有所欠缺。

圖:ISP 中的相機成像算法
上圖來源:Karaimer and Brown,ECCV2016//karaimer.github.io/camera-pipeline/

圖:SoC 中ISP成像原理的頂層框圖
上圖來源:Lluis Gomez:https://hdl.handle.net/2134/19580
Infinite-ISP 是成像和視覺社區的變革者。Infinite-ISP 的所有組件都開源,并記錄整個開發過程,將浮點 ISP 管道引入其硬件實現。揭示 ISP 的內部工作原理,加速開發并鼓勵專業人士、研究人員和開源硬件愛好者為整個成像和視覺社區做出貢獻。
Infinite-ISP 介紹
Infinite-ISP 是一款開源硬件圖像信號處理器開發套件,配有算法開發浮點模型、定點參考模型(Golden Model)、RTL ISP、FPGA / ASIC 實現和 ISP 調優工具等應用程序。開源 ISP 設計包提供具有競爭力的圖像質量和性能,堪比現代SoC中ISP。

圖:Infinite-ISP硬件ISP開發套件
驗證 Infinite-ISP 硬件圖像信號處理器 (RTL ISP)。RTL ISP 經過 FPGA 驗證,具有以下規格:
適用于拜耳圖像傳感器的 10 位 4 百萬像素Sensor
最大幀尺寸:2592 x 1536
最大幀率:30 fps
像素吞吐量:高達 125 Mpix/s(可以增加幀大小,但會降低 fps)
可選符合 ITU-R 標準的 YCbCr 輸出:BT.601或BT.709
可選 RGB、YCbCr444、YCbCr422 輸出
2A 統計引擎 (AWB、AE)
多級降噪(Bayer、亮度)
可配置處理管道,支持 ISP 調優工具
演示
為了演示Infinite-ISP使用流程,我們直接使用開源的二進制文件,目前支持的傳感器包括:
Onsemi AR1335
Omnivision OV5647
Sony IMX219
本次選用 Onsemi AR1335 圖像傳感器進行演示。
按照下圖搭建演示環境:

1、燒寫鏡像
首先,去下面鏈接下載鏡像:
https://github.com/10x-Engineers/Infinite-ISP_FPGABinaries/tree/main/binaries

本次演示使用的FPGA開發板為:KV260

a. 將電腦的 IP 地址更改為靜態 IP 192.168.0.X,其中 X 可以是 2 到 254 之間的任意數字(111 除外)。網絡掩碼和網關應分別為 255.255.255.0 和 192.168.0.1。
b. 將以太網電纜與 Kria KV260 套件和電腦連接起來。
c. 將電源線插入 Kria KV260 套件的電源插孔。
d. 電路板通電后,一只手按住 FWUEN 按鈕,另一只手按住 FWUEN 按鈕的同時按下并釋放 RESET 按鈕,然后在釋放 RESET 按鈕 5-10 秒后釋放 FWUEN 按鈕。
e. 在電腦上打開瀏覽器,在地址欄中輸入 192.168.0.111,如下所示:

將打開套件的鏡像恢復工具(如下所示),如果沒有出現,請重復步驟 d。

f.然后選擇相應的鏡像進行燒寫。
2、運行 Infinite-ISP
將相關二進制文件刷入 FPGA 后,將與二進制文件對應的傳感器連接到開發板上。
按照下圖連接好線纜:

上電后,Infinite-ISP 的輸出將通過 HDMI 顯示到顯示器上。
為了與 Infinite-ISP 實時交互, Infinite-ISP 還提供了一個串口的配置菜單,用戶可以通過該菜單調整 Infinite-ISP、實時更改圖像傳感器的配置(例如曝光和增益設置),還可以在 SD 卡中捕獲 RAW 和處理后的幀圖像。
瀏覽 Infinite-ISP 交互菜單
通過串口連接到串口工具上(推薦PUTTY),波特率設置為115200。

連接到串口后,FPGA將打印ISP中模塊的中斷數、接收圖像的高度、寬度和類型 (di) ,如下所示:

按任意鍵將出現 Infinite-ISP 配置菜單,如下所示:

Infinite-ISP 配置菜單包含三個選項。可以更改傳感器配置(例如曝光時間和模擬/數字增益)、啟動連續幀的突發捕獲、更改 ISP 參數,甚至調整傳感器模塊的焦點。接下倆重點講解 ISP 參數。其他相關測試自行操作。
配置ISP參數:
通過“Configure ISP Parameters(配置 ISP 參數)”菜單選項可以配置多個 ISP 模塊。ISP 配置菜單如下所示:

輸入要配置的模塊編號。輸入有效編號后將進入模塊特定的配置菜單,其中將顯示當前參數值,并提示選擇要更改/配置的參數。

選擇要配置的參數后,將被引導至參數特定的菜單,其中將顯示該參數的當前值并提示輸入新值。

輸入新值后將被引導回模塊特定的配置菜單,您這時候將看到更改的參數已經生效。
按“E”返回 ISP 配置菜單。
視頻演示
參考鏈接
https://karaimer.github.io/camera-pipeline/
https://www.hackster.io/muhammad-abdullah3/kria-kv260-fpga-isp-getting-started-ffc985
https://hdl.handle.net/2134/19580Karaimer and Brown,ECCV2016:
總結
Infinite-ISP總體實現的ISP非常完善,下面是其模塊分類:

整個項目不是干巴巴的代碼,而是整體偏向商業SoC應用,包括上位機(本文未展示),適合學習算法和了解ISP,在此基礎上甚至可以商用,開源協議Apache 2.0(參考Android系統)。

如果大家比較感興趣,后面再出一個如何使用 Vivado 從源代碼構建 Infinite-ISP FPGA 項目的教程。
項目很完整,大家可以從GitHub上對項目提出自己的意見和建議~
-
圖像傳感器
+關注
關注
68文章
2075瀏覽量
132202 -
ISP
+關注
關注
6文章
498瀏覽量
54908 -
信號處理器
+關注
關注
1文章
263瀏覽量
26229
原文標題:開源ISP(Infinite-ISP)介紹
文章出處:【微信號:Hack電子,微信公眾號:Hack電子】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
芯源MCU進入ISP模式方法
如何進入ISP模式?
富瀚微AI ISP 2.0,融合AI超分技術,實現“暗光如晝”
請問新唐提供的ISP代碼(USB接口)如何判斷開機后是否需要ISP更新程序?
使用NuMicro_ISP_Programming_Tool的UART功能進行ISP更新時如何更改UART端口?
請問系統編程 (ISP) 工具支持哪些接口進行系統升級?
如何使用NuMicro_ISP_Programming_Tool的UART功能進行ISP更新時如何更改UART端口?
Nuvoton_8051_ISP-ICP_Programmer_v7.15中缺少ISP加載器的源代碼怎么解決?
北京君正穿戴式ISP芯片的核心技術
開源ISP(Infinite-ISP)介紹
評論