0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

BM3D算法學(xué)習(xí)

FPGA開(kāi)源工作室 ? 來(lái)源:BM3D算法學(xué)習(xí) ? 作者:愛(ài)酷的胡巴 ? 2022-04-06 16:11 ? 次閱讀

前些日子在學(xué)習(xí)圖像降噪的算法,自然而然的發(fā)現(xiàn)了這篇里程碑式的作品,“BM3D”3D塊匹配降噪算法,想來(lái)時(shí)間也久,趕緊再寫(xiě)下來(lái),以免過(guò)后忘記。

在學(xué)習(xí)的過(guò)程中,由于沒(méi)學(xué)過(guò)數(shù)字圖像處理,學(xué)起來(lái)還是挺墨跡的,前前后后得有四五天吧,才算整個(gè)大差不差,期間看了許多前輩的博客和代碼,也總算有些許的進(jìn)步和理解,特此感謝,并將算法原文、參考博客和文獻(xiàn)附文末。

從“頭”開(kāi)始

圖像去噪是非?;A(chǔ)也是非常必要的研究,去噪常常在更高級(jí)的圖像處理之前進(jìn)行,是圖像處理的基礎(chǔ)。圖像中噪聲的來(lái)源有許多種,種類(lèi)也各不相同,比如椒鹽噪聲、高斯噪聲等。對(duì)于輸入的帶有噪聲的圖像v(x),其加性噪聲可以用一個(gè)方程來(lái)表示:

b009d9cc-ac2d-11ec-aa7f-dac502259ad0.png

如果能夠精確地獲得噪聲,用輸入圖像減去噪聲就可以恢復(fù)出原始圖像。但實(shí)際中除非明確地知道噪聲生成的方式,否則噪聲很難單獨(dú)求出來(lái)。由此,便誕生了一堆的圖像降噪算法,從傳統(tǒng)算法到現(xiàn)在的機(jī)器學(xué)習(xí)的算法,降噪算法得到了很大的發(fā)展。

那么傳統(tǒng)的想法是什么呢,我們主要分為以下兩大類(lèi)。

b01af1f8-ac2d-11ec-aa7f-dac502259ad0.jpg

對(duì)于我們來(lái)講,一個(gè)自然而然地想法就是,能不能把空間域和變換域的降噪方法結(jié)合起來(lái),在對(duì)圖像進(jìn)行降噪處理,我們能想到,自然也有人想得到,NL-means應(yīng)運(yùn)而生。

b02ecf7a-ac2d-11ec-aa7f-dac502259ad0.jpg

非局部均值算法的主要想法在于它充分利用了自然圖像的“空間相似性”,將圖像分成一個(gè)個(gè)的小塊,在以圖像為單位對(duì)圖像進(jìn)行降噪,簡(jiǎn)單來(lái)講,假設(shè)我們?nèi)?1*11的窗口作為處理的小圖像塊,我們?cè)趫D像上選取幾個(gè)類(lèi)似的圖像斑塊,例如上述的q1、q2和q3,但是q1和q2明顯比q3近一點(diǎn),根據(jù)空間相似性我們很容易知道q1q2應(yīng)該和p更為相似,故我們?cè)趯?duì)P圖像斑塊進(jìn)行處理的時(shí)候,我們可以對(duì)q1q2q3分別賦予不同的權(quán)重,再把他們“摞起來(lái)”,求個(gè)加權(quán)平均。形象來(lái)講,假設(shè)存在一個(gè)每一層結(jié)構(gòu)都完全相同的大樓,那么在進(jìn)行加權(quán)平均的時(shí)候,我們這樣想,我們把P想象為其中的一層,我們最終是要P圖像斑塊里面每一個(gè)像素的值,p若是一層樓,那么里面的每一個(gè)像素就是這層樓中的每一個(gè)房間,P為3樓,q1q2為1層和4層,q3為5層,那么p像素的值的大小就應(yīng)該為q1q2q3每個(gè)與p對(duì)應(yīng)房間(像素)值的加權(quán)平均,這樣就對(duì)P圖像斑塊完成了降噪的過(guò)程,類(lèi)似一個(gè)基于大斑塊的高斯濾波算法。此外,從這個(gè)舉例中我們也大概摸索出了BM3D里面3D的來(lái)歷.......

至此,非局部均值算法以經(jīng)表現(xiàn)不錯(cuò)了,但是它體現(xiàn)在簡(jiǎn)單的加權(quán)平均,并且仍然在空間域處理圖像,科技并非停滯不前,BM3D來(lái)了......

BM3D(Block-matching and 3D filtering,3維塊匹配濾波)是當(dāng)前效果最好的算法之一。該算法通過(guò)相似判定找到與參考?jí)K相近的二維圖像塊,并將相似塊按照組合成三維群組,對(duì)三維群組進(jìn)行協(xié)同濾波處理,再將處理結(jié)果聚合到原圖像塊的位置。該算法的思想跟NL-Means有點(diǎn)類(lèi)似,也是在圖像中尋找相似塊的方法進(jìn)行濾波,但是相對(duì)于NL-Means要復(fù)雜許多??傮w可以分為兩步:

b0438ab4-ac2d-11ec-aa7f-dac502259ad0.jpg

在這兩大步中,分別又有三小步:

相似塊分組(Grouping)→協(xié)同濾波(Collaborative Filtering) →聚合(Aggregation)

b0438ab4-ac2d-11ec-aa7f-dac502259ad0.jpg

我們細(xì)看每一個(gè)小步驟,編組的過(guò)程類(lèi)似于NL-means:

b0620d2c-ac2d-11ec-aa7f-dac502259ad0.jpg

接下來(lái),第二小步,像上面講述的房子一樣,我們把分好的圖像斑塊“摞起來(lái)”,形成一個(gè)3D的“塊”(Block),在每一層中進(jìn)行二維變換,變換到頻率域,此外,在第三個(gè)維度,也就是每一層的對(duì)應(yīng)的房間(像素)上進(jìn)行一維變換,變換之后,按照非局部均值的思想,對(duì)斑塊在頻率域進(jìn)行降噪處理,(其實(shí)是對(duì)像素值的加權(quán)平均),再對(duì)經(jīng)過(guò)變換之后圖像斑塊,進(jìn)行“硬閾值”處理,處理剔除不合格像素值,在經(jīng)過(guò)反三維變換變換為空間域,再對(duì)圖像進(jìn)行塊匹配,聚合至原來(lái)每個(gè)塊的位置,這樣整個(gè)圖像就從一維變?nèi)S再變回一維了。至此,第一步完成。

Aggregation:此時(shí),每個(gè)二維塊都是對(duì)去噪圖像的估計(jì)。這一步分別將這些塊融合到原來(lái)的位置,每個(gè)像素的灰度值通過(guò)每個(gè)對(duì)應(yīng)位置的塊的值加權(quán)平均。

b072329c-ac2d-11ec-aa7f-dac502259ad0.jpg

第二步與第一步類(lèi)似

Step2:最終估計(jì)

(1)Grouping:第二步中的聚合過(guò)程與第一步類(lèi)似,不同的是,這次將會(huì)得到兩個(gè)三維數(shù)組:噪聲圖形成的三維矩陣和基礎(chǔ)估計(jì)結(jié)果的三維矩陣。

(2)Collaborative Filtering:兩個(gè)三維矩陣都進(jìn)行二維和一維變換。用維納濾波將噪聲圖形成的三維矩陣進(jìn)行系數(shù)放縮,該系數(shù)通過(guò)基礎(chǔ)估計(jì)的三維矩陣的值以及噪聲強(qiáng)度得出。

Aggregation:與Step1中一樣,只是此時(shí)加權(quán)的權(quán)重取決于維納濾波的系數(shù)和噪聲強(qiáng)度。

b0438ab4-ac2d-11ec-aa7f-dac502259ad0.jpg

至此,算法完成,效果還是很好的,我們來(lái)看一些示例:

b0976ab2-ac2d-11ec-aa7f-dac502259ad0.jpg

參考文獻(xiàn):

詳盡過(guò)程

圖解噪聲與去噪 之二:從『均值濾波』到『BM3D』

阿達(dá)瑪變換詳盡

轉(zhuǎn):X264中SATD實(shí)現(xiàn)分析 - Mr.Rico - 博客園

克內(nèi)羅內(nèi)積

克羅內(nèi)克積_百度百科

小波變換

小波變換(wavelet transform)的通俗解釋?zhuān)ㄒ唬?/p>

blog.csdn.net/zizi7/art

頻域空域細(xì)致講解

blog.csdn.net/zdh198210

審核編輯 :李倩

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 圖像處理
    +關(guān)注

    關(guān)注

    27

    文章

    1296

    瀏覽量

    56822
  • 算法
    +關(guān)注

    關(guān)注

    23

    文章

    4624

    瀏覽量

    93110

原文標(biāo)題:BM3D算法學(xué)習(xí)

文章出處:【微信號(hào):leezym0317,微信公眾號(hào):FPGA開(kāi)源工作室】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Lenovo_B460_BITLAND_BM5958圖紙

    電子發(fā)燒友網(wǎng)站提供《Lenovo_B460_BITLAND_BM5958圖紙.pdf》資料免費(fèi)下載
    發(fā)表于 12-20 15:16 ?0次下載

    中航電測(cè)C8級(jí)精度傳感器BM8D-W16

    精準(zhǔn)稱(chēng)重高效作業(yè)的新選擇在快速發(fā)展的新能源、精細(xì)化工、制藥、食品等行業(yè)中,精確計(jì)量不僅是保證產(chǎn)品質(zhì)量的基石,更是推動(dòng)產(chǎn)業(yè)升級(jí)、提升生產(chǎn)效率的關(guān)鍵。中航電測(cè)推出了一款C8精度傳感器BM8D
    的頭像 發(fā)表于 11-29 15:48 ?202次閱讀
    中航電測(cè)C8級(jí)精度傳感器<b class='flag-5'>BM8D</b>-W16

    NPU與機(jī)器學(xué)習(xí)算法的關(guān)系

    在人工智能領(lǐng)域,機(jī)器學(xué)習(xí)算法是實(shí)現(xiàn)智能系統(tǒng)的核心。隨著數(shù)據(jù)量的激增和算法復(fù)雜度的提升,對(duì)計(jì)算資源的需求也在不斷增長(zhǎng)。NPU作為一種專(zhuān)門(mén)為深度學(xué)習(xí)等機(jī)器
    的頭像 發(fā)表于 11-15 09:19 ?536次閱讀

    CD40106BM和CD40106BM96的區(qū)別是什么?

    CD40106BM和CD40106BM96的區(qū)別
    發(fā)表于 09-27 08:27

    深度學(xué)習(xí)算法在嵌入式平臺(tái)上的部署

    隨著人工智能技術(shù)的飛速發(fā)展,深度學(xué)習(xí)算法在各個(gè)領(lǐng)域的應(yīng)用日益廣泛。然而,將深度學(xué)習(xí)算法部署到資源受限的嵌入式平臺(tái)上,仍然是一個(gè)具有挑戰(zhàn)性的任務(wù)。本文將從嵌入式平臺(tái)的特點(diǎn)、深度
    的頭像 發(fā)表于 07-15 10:03 ?1560次閱讀

    利用Matlab函數(shù)實(shí)現(xiàn)深度學(xué)習(xí)算法

    在Matlab中實(shí)現(xiàn)深度學(xué)習(xí)算法是一個(gè)復(fù)雜但強(qiáng)大的過(guò)程,可以應(yīng)用于各種領(lǐng)域,如圖像識(shí)別、自然語(yǔ)言處理、時(shí)間序列預(yù)測(cè)等。這里,我將概述一個(gè)基本的流程,包括環(huán)境設(shè)置、數(shù)據(jù)準(zhǔn)備、模型設(shè)計(jì)、訓(xùn)練過(guò)程、以及測(cè)試和評(píng)估,并提供一個(gè)基于Matlab的深度
    的頭像 發(fā)表于 07-14 14:21 ?2378次閱讀

    深度學(xué)習(xí)的基本原理與核心算法

    處理、語(yǔ)音識(shí)別等領(lǐng)域取得了革命性的突破。本文將詳細(xì)闡述深度學(xué)習(xí)的原理、核心算法以及實(shí)現(xiàn)方式,并通過(guò)一個(gè)具體的代碼實(shí)例進(jìn)行說(shuō)明。
    的頭像 發(fā)表于 07-04 11:44 ?2307次閱讀

    機(jī)器學(xué)習(xí)算法原理詳解

    機(jī)器學(xué)習(xí)作為人工智能的一個(gè)重要分支,其目標(biāo)是通過(guò)讓計(jì)算機(jī)自動(dòng)從數(shù)據(jù)中學(xué)習(xí)并改進(jìn)其性能,而無(wú)需進(jìn)行明確的編程。本文將深入解讀幾種常見(jiàn)的機(jī)器學(xué)習(xí)算法原理,包括線性回歸、邏輯回歸、支持向量機(jī)
    的頭像 發(fā)表于 07-02 11:25 ?1212次閱讀

    機(jī)器學(xué)習(xí)的經(jīng)典算法與應(yīng)用

    關(guān)于數(shù)據(jù)機(jī)器學(xué)習(xí)就是喂入算法和數(shù)據(jù),讓算法從數(shù)據(jù)中尋找一種相應(yīng)的關(guān)系。Iris鳶尾花數(shù)據(jù)集是一個(gè)經(jīng)典數(shù)據(jù)集,在統(tǒng)計(jì)學(xué)習(xí)和機(jī)器學(xué)習(xí)領(lǐng)域都經(jīng)常被
    的頭像 發(fā)表于 06-27 08:27 ?1696次閱讀
    機(jī)器<b class='flag-5'>學(xué)習(xí)</b>的經(jīng)典<b class='flag-5'>算法</b>與應(yīng)用

    bm1684運(yùn)行demo報(bào)錯(cuò)怎么解決?

    報(bào)錯(cuò)信息: linaro@bm1684:~/YOLOv5/python$ python3 yolov5_bmcv.py --input ../datasets/test --bmodel
    發(fā)表于 05-20 07:24

    機(jī)器人3D視覺(jué)引導(dǎo)系統(tǒng)框架介紹

    通過(guò)自主開(kāi)發(fā)的3D掃描儀可獲準(zhǔn)確并且快速地獲取場(chǎng)景的點(diǎn)云圖像,通過(guò)3D識(shí)別算法,可實(shí)現(xiàn)在對(duì)點(diǎn)云圖中的多種目標(biāo)物體進(jìn)行識(shí)別和位姿估計(jì)。
    發(fā)表于 04-29 09:31 ?356次閱讀
    機(jī)器人<b class='flag-5'>3D</b>視覺(jué)引導(dǎo)系統(tǒng)框架介紹

    ROHM BM6337x/BM6357x系列如何解決開(kāi)發(fā)背景中出現(xiàn)的各種問(wèn)題呢?

    BM6337x/BM6357x系列最重要的亮點(diǎn)是同時(shí)實(shí)現(xiàn)了業(yè)內(nèi)出色的降噪性能和低損耗性能。
    的頭像 發(fā)表于 04-03 14:12 ?1221次閱讀
    ROHM <b class='flag-5'>BM</b>6337x/<b class='flag-5'>BM</b>6357x系列如何解決開(kāi)發(fā)背景中出現(xiàn)的各種問(wèn)題呢?

    3D動(dòng)畫(huà)原理:電阻

    電阻3D
    深圳崧皓電子
    發(fā)布于 :2024年03月19日 06:49:19

    3D-IC 以及傳熱模型的重要性

    本文要點(diǎn)縮小集成電路的總面積是3D-IC技術(shù)的主要目標(biāo)。開(kāi)發(fā)3D-IC的傳熱模型,有助于在設(shè)計(jì)和開(kāi)發(fā)的早期階段應(yīng)對(duì)熱管理方面的挑戰(zhàn)。開(kāi)發(fā)3D-IC傳熱模型主要采用兩種技術(shù):分析法和數(shù)值計(jì)算法
    的頭像 發(fā)表于 03-16 08:11 ?887次閱讀
    <b class='flag-5'>3D</b>-IC 以及傳熱模型的重要性

    基于深度學(xué)習(xí)的方法在處理3D點(diǎn)云進(jìn)行缺陷分類(lèi)應(yīng)用

    背景部分介紹了3D點(diǎn)云應(yīng)用領(lǐng)域中公開(kāi)可訪問(wèn)的數(shù)據(jù)集的重要性,這些數(shù)據(jù)集對(duì)于分析和比較各種模型至關(guān)重要。研究人員專(zhuān)門(mén)設(shè)計(jì)了各種數(shù)據(jù)集,包括用于3D形狀分類(lèi)、3D物體檢測(cè)和3D點(diǎn)云分割等任
    的頭像 發(fā)表于 02-22 16:16 ?1245次閱讀
    基于深度<b class='flag-5'>學(xué)習(xí)</b>的方法在處理<b class='flag-5'>3D</b>點(diǎn)云進(jìn)行缺陷分類(lèi)應(yīng)用