日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

视频降噪

發布時間:2023/12/29 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 视频降噪 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一直沒有接觸過視頻圖像處理,一來這個問題太南了,二來也確實沒有想過要接觸這方面的東西,借著這個機會看一下傳說中的視頻圖像處理,和單幀圖像處理又什么區別,他是如何利用多幀信息更好處理圖像,又是如何解決幀間(時間序列)一致性這樣一個問題。

文章目錄

    • Supervised Raw Video Denoising with a Benchmark Dataset on Dynamic Scenes
    • Unprocessing Images for Learned Raw Denoising
    • A Physics-based Noise Formation Model for Extreme Low-light Raw Denoising
    • Benchmarking Denoising Algorithms with Real Photographs
    • FastDVDnet: Towards Real-Time Deep Video Denoising Without Flow Estimation
    • CycleISP
    • Efficient Semantic Video Segmentation with Per-frame Inference


Supervised Raw Video Denoising with a Benchmark Dataset on Dynamic Scenes

文章做了這么幾件事

  • 利用谷歌Unprocessing 仿真了視頻的raw, 用的是MOT 追蹤的數據
  • 使用定格動畫采集了真實視頻對用于微調網絡(多幀平均得到GT,這樣還是會有噪聲的BM3D降噪)
  • 提出了估計噪聲的兩種方法lambda_shot 使用flat frame, lambda_read 使用bias frame
  • 采用空間, channnel,和幀間多種信息融合,使用了可形變的卷積(deformable conv)和一種信息融合的方法

  • 我們先來看怎么從RGB 仿真RAW unprocessing,知道了怎么仿真數據,那么我們開始看這個文章的做法。

    • unprocessing 實現了兩個問題
  • raw 的仿真,已實現
  • 噪聲估計,已實現,使用的是本文的方法


  • 看訓練框架,輸入三幀,恢復中間幀

    • predenoise
      輸入3xhxwx4, 輸出 3xhxwx4
    • alignment
      • deformable convolution[13, 35]
        [43] 使用的是 ‘explicit flow information’
        大家說DConv 是自適應的dilatation conv,是Spatial Transformer Networks(STN) 的類似產物


    pkp_kpk? 是常規卷積的偏移量
    δpk\delta p_kδpk? 是學習的偏移量
    δmk\delta m_kδmk? 是偏移量位置的權重
    看這個博客


    上面的圖看起來很暈,看edvr的圖

    兩個疑問:(暫且猜測這樣做,看完代碼再做評判)

  • offset 上采樣后和相應level 的特征concat 卷積得到新的level 的offset
  • DConv 卷積后上采樣的特征和相應level 的DConv 怎樣融合,通過卷積

    • Non-local Attention
      使用separated attention modules 分離的注意模塊,包括spatial attention, channel attention, temporal attention, 他們的輸出相加,然后再接一個輸入的殘差相加。文章使用的是一個criss-cross attention[20], 降低計算量和內存

      沒看懂

    • Temporal fusion[35]

    • spatial fusion[37]
      10 個residual blocks

    • ISP

    • Loss


    時間損失,怎么得到的,相鄰兩幀怎么會對應同一個raw 呢?他和SMID 又不一樣??


    看代碼

  • 第一階段訓練predenoise 和ISP 網絡
    相當于單張圖像raw 域降噪,分別訓練,聯合優化
  • 仿真數據訓練 RViDeNet


  • Unprocessing Images for Learned Raw Denoising


    • 寫在前面, 我們可以得到干凈的raw 為什么還需要仿真raw 圖呢?直接在干凈的raw 上加噪聲,然后使用仿真的噪聲來訓練一個去噪的網絡,把問題回歸到一個更簡單的領域。來看看文章的說法
  • RAW 域的噪聲適合sensor 強相關的,我們不能針對每一款相機都采集大量的訓了數據。(那么我就是可以針對有限的幾款相機訓練有限的幾個模型-False)
  • 難以獲取paired 數據,由于相機的抖動,物體的運動等(確實是這樣的,暫時沒有很好的方法獲取有效多的運動視頻-True)
  • 大多這樣的數據對采用長短曝光的快門采集靜態場景的數據,短快門作為噪聲數據,長快門作為干凈數據,這樣的數據場景亮度不一致(對于視頻超微光來說這樣的場景是不是更適合呢?但是視頻數據對還是采不到的-True or False)
  • 按照以上說法似乎單張圖像降噪并沒有仿真數據的必要,而視頻數據或許是可行的
  • 對于夜間降噪或許又和這篇文章的降噪問題不太一樣,我們怎樣解決這個問題,看這個文章是怎么針對極端光照下的圖像建模的
  • raw 域的降噪后怎么實行后面的ISP 流程呢?即怎么提亮?怎么做顏色校正?怎么做這一些列的圖像增強?這仍舊是一個需要探討的問題

  • 官方代碼 google-research/unprocessing/
    torch實現 aasharma90/UnprocessDenoising_PyTorch
    文章依據Darmstadt Noise Dataset 流程仿真的數據,我下載不下來這個數據,所以無從得知這個數據集的具體樣貌,整個流程的代碼操作很明確,但是諸多參數的估計有些云里霧里,他只給了公式,一個流程一個流程梳理看,最重要的其實就是噪聲估計



    文章根據DND 數據模擬的ISP 流程

  • Shot 和read 噪聲估計
    針對RGB 圖像我們很難估計出每個像素的噪聲,但是對于相機sensor 的噪聲我們已經有了一定的認知,即光子到達sensor 的統計(shot) 和電路系統的不準確性(read),前者符合泊松分布,后者近似于0均值和固定方差的高斯噪聲,所以對于觀測值我們有以下模型


    以上g_d和g_a 分別是數字增益和模擬增益,δr\delta_{r}δr? 表示read 噪聲的固定方差,基于此,我們可以看出噪聲的參數和增益時強相關的,也和sensor 是相關的,而增益在相機中是ISO(感光度)起作用。
    以上一頓操作,我們可以獲取相機的噪聲水平,但是這個噪聲水平怎么得到呢?可以從不同的曝光場景中得到,文章說是從DND 數據集中統計得到的。

    我的猜測是相機會記錄下數字增益和模擬增益的大小,那么δr\delta_{r}δr?怎么估計出來的。按照上一篇文章的說法兩者的噪聲方差可以通過實驗室環境采集得到。原理不得而知,但是方法很明確。以下分布怎么來的看不太懂。
  • Demosaic
    雙線性/最近鄰
  • 數字增益

    簡單認為其為一個全局的scale,為了生成這個scale,假設仿真和真實數據圖像灰度是從不同的指數分布中采樣,不懂。
  • 白平衡
    就是 rgainr_{gain}rgain? bgainb_{gain}bgain?, 為了防止g>1 的時候,亮區沒有信息,設置th=0.9,保護了一下
  • 顏色校正
    這涉及到相機CCM 參數校正,在DND 數據集中記錄了兩個矩陣cam2xyz,xyz2rgb
  • gamma 壓縮
  • Tone Mapping

  • 數據仿真大概就是這樣,后面他們又發了一篇CycleISP 來解決這個數據仿真的問題,我們暫時按照這個來做

    • framework
    • 數據
      使用MIR Flicker,并且使用高斯下采樣了兩倍來減少噪聲,量化,jpeg 壓縮,去馬賽克和其他影響。
    • 網絡輸入
      四通道的bayer 圖像+四通道的像素方差估計
    ''' 添加噪聲,添加某增益下噪聲采樣,注意每個pixel 獨立采樣 預估某增益下噪聲水平,本來噪聲的方差應該用真值估計,但是真值往往不可得,所以用觀測值代替''' variance = image * shot_noise + read_noise noise = tf.random_normal(tf.shape(image), stddev=tf.sqrt(variance)) image_noise = image + noise image_var = image_noise * shot_noise + read_noise

    其他好像沒有什么需要注意的了,嗯沒有norm layer,batchsize=16,leakyReLU,下采樣了4次,殘差學習


    A Physics-based Noise Formation Model for Extreme Low-light Raw Denoising


    Benchmarking Denoising Algorithms with Real Photographs

    • analog gains (ISO values)
      通過控制ISO,文章的解釋就是模擬增益來獲取不同水平的噪聲,然后通過調整曝光時長來控制圖像的平均亮度。
    • 那么在ISP 中增益和ISO 有什么樣的關系呢?他們又是怎樣控制圖像亮度的呢?

    ISP 中增益一般以db位單位,db和提高亮度之間的關系符合db=20logxdb=20logxdb=20logx,即每提高一倍的亮度需提高的增益

    # coding=utf-8 """ ISO Gain(db, intensity) 之間的關系 ISO 感光度,指sensor 的感光能力,同樣的場景下ISO 越好,那么圖像就越亮,但是通常情況下,相機的硬件固定了以后ISO就固定了 故我們通常通過調整模擬增益(analog gains)來提高ISO 那么我們通常所說的ISO-200、ISO-2500 和0db 增益30db 增益是怎樣控制圖像亮度的呢? 其實他們都和提升的亮度的倍數有關 $db=20logscale$, 即每提升2倍的亮度db 大約提高6db,ISO 提高2倍 舉個栗子: ISO | db | intensity| ---| --- | --- | 100 | 0 | 1 | 200 | 6 | 2 | 400 | 12 | 4 | """import numpy as np import matplotlib.pyplot as plti = np.linspace(1, 20, 100) # i-db db = 20 * np.log(i) plt.figure(1) plt.plot(i, db) plt.xlabel('i_scale') plt.xlim(1) plt.ylabel('gain_db') plt.ylim(0) plt.savefig('i_db.png') plt.figure(2) plt.plot(db, i) plt.xlabel('gain_db') plt.xlim(0) plt.ylabel('i_scale') plt.ylim(1) plt.savefig('db_i.png') # i-ISO # 就是正比


    論文之路止步于此…
    2020.11.24 再來看下這個文章
    文章通過在不同的ISO 下調整曝光時長來獲取配對的圖像,那么在低ISO 的圖像近似無噪聲的作為參考。
    這個參考(reference) 并不是gt,需要細致的后處理

    • 空間對齊(correct spatial misalignment)
    • 校正曝光參數(cope with inaccuracies in the exposure parameters)
      基于各向異性的Tobit 回歸模型的線性灰度變換
    • 去除低頻偏置殘差(remove residual low-frequency bias that stems, e.g., from minor illumination changes)
      這些操作都不知道

    去噪數據GT的獲取,目前看來,多幀平均或者低增益配合長曝光,兩種模式。1. 對齊問題是存在的,但是就超微光的經驗來看,我們的采集方式應該不會有影響。2. 亮度不同確實是這樣的,如果所有的差異都差不多或者差異的趨勢一致,那么這個對于應用會有很大影響嗎?影響肯定是有的,但是對于去噪這個任務的影響大小呢?但是對于作為benchmark 評估來說肯定是有影響的吧?3. 看不懂

    我發現這幾篇文章估計噪聲的方式好像不太一樣

    • unprocessing—在固定增益下,估計高斯噪聲的方差參數,這個參數是相機原始數據記載的,我們的相機并沒有記錄啊
    • Burst Denoising with Kernel Prediction Networks
      unprocessing 引的這篇,也是他們自己寫的

      確實看起來是一樣的,但是還是有一個疑問 δs\delta_sδs?,還是 δs2\delta_s^2δs2?,感覺應該是指方差
    • RViDe

      這個才是最接近原始物理意義的
    • K-sigma transform
      看了這篇文章才覺得以上幾篇文章都白看了。做完這一系列實驗,優化實驗就在他身上了。

    既然我都知道噪聲估計的方法了,這篇文章到此為止。


    FastDVDnet: Towards Real-Time Deep Video Denoising Without Flow Estimation


    FastDVDNet 舍棄了視頻處理中常用的光流方法和可形變卷積,直接使用two-stage 的卷積處理視頻信息,有利有弊吧。


    • 20201214 總結下上面所作的工作
  • unprocessing 仿真raw 數據
    使用imx305 D50 下的白平衡和ccm 矩陣替換了谷歌的流程,仿真的 raw 數據和真實的raw 數據通過真實數據預訓練的ISP 有色差,但是仿真的raw 數據訓練raw 域降噪還是可以的
  • 標定imx305 的噪聲
    使用的是RViDeNet 標定噪聲的方法,和論文表現一致,可復現性較高
  • 訓練了三個降噪模型
    3.1 raw denoise + isp
    3.2 two-stage raw denoise + isp
    3.3 FastDVDNet two-stage 和one-stage 都嘗試過
    上述模型可以做到raw 域降噪的效果,但是效果不盡如人意。感覺不知道時序一致性到底是降噪沒有訓練好還是時序一致性沒有訓練好。接下來想要擁有兩個目標,一個是訓練一個好的去噪網絡,但是實際上ssim 已經到了0.98,但是噪聲還是很大,并沒有論文放出來的圖那么好。下次閱讀論文應該先復現,在用自己的數據做實驗,看到底是自己的問題,就不用老是懷疑論文了,比較有目標性的調優。
  • 工作計劃
    4.1 復現 cycleISP
    4.2 使用cycleISP 仿真的數據做實驗
    4.3 復現沈老師的工作
    4.4 另外k-sigma transform 的工作也值得關注

  • CycleISP

    github 20201217 沒有放出訓練代碼

    在low-level 問題中獲取pixel-wise paired 數據是必要且困難的,但是實際上空間像素的不對齊,顏色,亮度的不匹配時不可避免的,且不同場景,不同設備的數據獲取代價巨大且工作重復。

    The main idea is to inject noise in the RAW images obtained with our learned device-agnostic transformation rather than in the sRGB images directly
    文章主要的思想是在通過學習得到的設備無關的變換的RAW 加入噪聲而不是直接將噪聲加在RGB 上

    • 文章主要工作
      • CycleISP - 一個設備無關的變換,可以使rgb 和 raw 之間相互轉換
      • 真實噪聲的合成
      • 雙注意力機制(dual attention mechanism)
      • 輕量的網絡,最好的效果
      • other application

    20201218 日 先用MOT 數據做沈老師的時序一致性,這樣的話還是得有raw 的視頻流噪聲和無噪聲+無噪聲的gt


    20210126 我現在有一個不成熟的想法,學習到的raw 圖除以一定的scale 就可以仿真低照度的raw 圖啦?



    Efficient Semantic Video Segmentation with Per-frame Inference

    視頻流的處理,要么使用光流將結果
    這篇文章關于時序一致性的約束其實和SMID 并無區別。
    實驗證明,選擇合適的超參是有效果的,但是約束時序一致性的同時會造成圖像的模糊。那么這兩者好像是不可調和的矛盾?怎樣緩解呢?
    20210126 暫時并無辦法解決,也沒有想通為什么會這樣。

    總結

    以上是生活随笔為你收集整理的视频降噪的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。