<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          如何消除圖片中的運(yùn)動(dòng)模糊?

          共 5015字,需瀏覽 11分鐘

           ·

          2021-12-01 13:51

          點(diǎn)擊上方小白學(xué)視覺(jué)”,選擇加"星標(biāo)"或“置頂

          重磅干貨,第一時(shí)間送達(dá)

          本文轉(zhuǎn)自:AI 算法與圖像處理

          如果你試過(guò)去拍攝一些運(yùn)動(dòng)場(chǎng)景,例如拍攝疾馳的汽車,或是田徑場(chǎng)上的短跑運(yùn)動(dòng)員,你一定曾經(jīng)遇到過(guò)“拍糊”的時(shí)候。這種現(xiàn)象就是我在本文中要討論的由運(yùn)動(dòng)導(dǎo)致的圖像模糊,這是一種與我之前介紹的幾種導(dǎo)致圖像模糊的方式完全不同的問(wèn)題,所以今天讓我們來(lái)看看有什么好辦法來(lái)應(yīng)對(duì)。


          我今天要給你介紹的是兩種消除運(yùn)動(dòng)模糊的技術(shù),一個(gè)叫做Coded Exposure Photography(編碼曝光),確切的說(shuō)是一種利用了Flutter Shutter(震顫快門(mén))的編碼曝光技術(shù)。另外一種則是Motion Invariant Photography(運(yùn)動(dòng)不變攝影)??赡墁F(xiàn)在還聽(tīng)起來(lái)比較拗口,不過(guò)先讓我們看看它們的效果:

          下圖是編碼曝光拍攝的原始圖像,以及經(jīng)過(guò)處理后的清晰圖像,你可以看到汽車變得非常清晰了,很神奇吧?(至于為何有原始圖像,為何又要經(jīng)過(guò)處理,我們待會(huì)再講)

          再來(lái)看看運(yùn)動(dòng)不變攝影,下面左圖是一個(gè)固定相機(jī)拍攝的運(yùn)動(dòng)物體場(chǎng)景,場(chǎng)景中的物體有遠(yuǎn)處的固定背景屏風(fēng),也有近處擺在一個(gè)托盤(pán)上的水平運(yùn)動(dòng)的物體,由于物體有遠(yuǎn)近,所以其相對(duì)相機(jī)的運(yùn)動(dòng)也是不同的,所以普通相機(jī)拍出來(lái)就呈現(xiàn)出了不同的模糊程度。而右圖則是所謂運(yùn)動(dòng)不變攝影的結(jié)果,你可以看到總體來(lái)說(shuō)畫(huà)面變清晰了。真的很驚人!

          看到這里,我想你已經(jīng)迫不及待想知道其中的技術(shù)細(xì)節(jié)了。那就讓我們開(kāi)始吧?? 我們先從運(yùn)動(dòng)模糊的基本模型和解決它的困難之處講起。

          一、運(yùn)動(dòng)模糊的基本模型


          讓我們看一個(gè)典型的場(chǎng)景,這里面背景和部分物體是固定的,但有一個(gè)裝著啤酒罐的托盤(pán)快速的帶動(dòng)啤酒罐從左向右移動(dòng),使得拍攝的畫(huà)面中啤酒罐出現(xiàn)了運(yùn)動(dòng)模糊。那么我們?nèi)绾蝸?lái)建模這種模糊呢?

          事實(shí)上,運(yùn)動(dòng)模糊和我們之前講過(guò)的幾種模糊都可以用卷積來(lái)描述。具體到上面這種均勻運(yùn)動(dòng)的模糊,可以如下表示:

          所以,似乎像以前一樣,我們只要知道了模糊核,就能夠去卷積把模糊圖像變清晰了,是嗎?

          然而,運(yùn)動(dòng)模糊的消除有幾個(gè)難點(diǎn):

          1. 很難獲取到準(zhǔn)確的卷積核,因?yàn)榫矸e核跟物體的遠(yuǎn)近、物體運(yùn)動(dòng)的速度方向都有關(guān)系。

          2. 場(chǎng)景中的各個(gè)物體有不同的運(yùn)動(dòng)方向和速度,還可能有固定的背景,所以需要把需要恢復(fù)的物體分割開(kāi)來(lái),而這本來(lái)就是一個(gè)困難的問(wèn)題。

          3. 運(yùn)動(dòng)卷積核丟失了高頻信息,去卷積技術(shù)就會(huì)面臨嚴(yán)重的信噪比低的問(wèn)題。

          那么,如何解決上述問(wèn)題呢?我們先從解決難點(diǎn)3講起,這就是我們會(huì)介紹的Coded Exposure技術(shù)

          二、Coded Exposure


          我們先來(lái)看看傳統(tǒng)相機(jī)在拍攝一個(gè)水平一維運(yùn)動(dòng)物體時(shí)的情況:

          此時(shí)模糊相當(dāng)于對(duì)圖像做一個(gè)一維的Box Filter,而這個(gè)卷積核的傅里葉變換(即OTF)如下圖所示,它實(shí)際上是一個(gè)Sinc函數(shù),可以看到這里有一些值接近零的點(diǎn)。

          卷積核不穩(wěn)定且有大量過(guò)零點(diǎn)

          于是當(dāng)我們用去卷積技術(shù)去嘗試恢復(fù)清晰圖像時(shí),會(huì)因?yàn)镺TF的大量零點(diǎn)而出現(xiàn)大量的噪聲,最終結(jié)果信噪比極低(如下圖所示)。我們說(shuō)這時(shí)的運(yùn)動(dòng)模糊使得很多頻域信息損失掉了,所以無(wú)法準(zhǔn)確的恢復(fù)出原始信號(hào)。


          那么,有沒(méi)有好辦法來(lái)減少頻域信息的損失呢?這就是這里提到的Coded Photography技術(shù),對(duì)應(yīng)的論文是:

          Raskar et al., “Coded Exposure Photography: Motion Deblurring using Fluttered Shutter,” SIGGRAPH 2006.

          我們來(lái)看看什么是Flutter Shutter,什么又是Coded Exposure

          從上面的動(dòng)圖我們看到,F(xiàn)lutter Shutter是指快門(mén)交替開(kāi)關(guān)的技術(shù)。用這種技術(shù)拍出來(lái)的圖像依然是模糊的,但這種模糊里面卻依然保留了盡可能多的頻域信息:

          OTF相對(duì)穩(wěn)定保留了高頻信息


          所以這種情況下拍攝的圖像的模糊形態(tài)和普通相機(jī)是不一樣的:

          普通攝影 vs ?編碼攝影


          這樣當(dāng)我們用去卷積算法對(duì)其進(jìn)行去模糊時(shí),就可以得到比較清晰的信噪比較高的圖像:

          普通攝影 vs ?編碼攝影


          相信你現(xiàn)在已經(jīng)有了這樣一種印象:在曝光時(shí)間內(nèi)快門(mén)交替開(kāi)關(guān)能比一直打開(kāi)保持更多的頻域信息,使得最終圖像經(jīng)過(guò)去卷積后得到更清晰的圖像。那么,到底如何開(kāi)閉快門(mén)能夠收益最大呢?

          在上述論文中,作者把快門(mén)的開(kāi)關(guān)看做是一種二進(jìn)制編碼,開(kāi)為1,關(guān)為0,這樣快門(mén)的狀態(tài)就形成了一個(gè)編碼——這也是為什么稱作Coded Exposure的原因。然后作者比較了幾種不同的編碼,最終認(rèn)為一種有52比特的編碼形態(tài)能夠使得整個(gè)系統(tǒng)保留最寬廣的頻率響應(yīng),從而信噪比最高。你可以看到下圖中,最后一種編碼的頻率響應(yīng)最平坦、穩(wěn)定,且沒(méi)有過(guò)零點(diǎn)。

          不同編碼形式得到的OTF不同


          作者利用單反相機(jī)和自制的控制電路制作了一個(gè)Flutter Shutter的原型:

          再來(lái)看一些Flutter Shutter的效果:

          看起來(lái)真是一個(gè)不錯(cuò)的技術(shù)啊——然而任何方法都不可能是完美的。我們來(lái)看看Coded Exposure by Flutter Shutter有哪些不夠好的地方:

          1. 作者采用的這種52bit的編碼中有26個(gè)1,26個(gè)0,這意味著相比傳統(tǒng)相機(jī)這種方式損失了一半的光能。

          2. 正如一開(kāi)始我所說(shuō),卷積核很難估計(jì),這跟物體的運(yùn)動(dòng)速度、遠(yuǎn)近都有關(guān)系。

          3. 需要分割運(yùn)動(dòng)的物體和固定的背景,否則做全局的去卷積會(huì)使得背景被破壞。

          那么,有沒(méi)有更好的方法呢?那么接下來(lái)我們就看一種模糊程度與目標(biāo)運(yùn)動(dòng)速度、遠(yuǎn)近等因素?zé)o關(guān)的攝影方式。

          三、Motion Invariant Photograpny(運(yùn)動(dòng)不變攝影)


          Motion Invariant Photograpny的思想來(lái)自于下面的論文

          Levin et al., “Motion-Invariant Photography,” SIGGRAPH 2008

          注意這里的作者又是Levin教授,我們之前已經(jīng)多次學(xué)習(xí)到她的文獻(xiàn)了。正如上面所說(shuō),Motion Invariant Photograpny的思路是通過(guò)將整個(gè)圖像的模糊程度變均勻,使之與物體的遠(yuǎn)近、運(yùn)動(dòng)速度等都不相關(guān),這樣就可以用簡(jiǎn)單的單一去模糊算法來(lái)使得圖像變清晰了。你有沒(méi)有覺(jué)得這種想法有點(diǎn)眼熟?是的,這個(gè)思想就是來(lái)自于我們之前提到過(guò)的波前編碼對(duì)焦掃描,不清楚的話可以參看我之前的文章:

          38. 對(duì)焦掃描技術(shù)是如何實(shí)現(xiàn)EDOF(擴(kuò)展景深)的?

          39. 消除失焦模糊的其他幾種方法

          對(duì)焦掃描


          Motion Invariant的基本假設(shè)是目標(biāo)物體只做一維方向的運(yùn)動(dòng),比如水平運(yùn)動(dòng)。雖然看起來(lái)比較嚴(yán)格,但是已經(jīng)可以涵蓋很多場(chǎng)景了。它的關(guān)鍵是要去控制相機(jī)的運(yùn)動(dòng),從而控制模糊。

          先來(lái)看看一個(gè)靜態(tài)相機(jī)拍攝運(yùn)動(dòng)場(chǎng)景時(shí)的情況:

          這樣拍攝的照片顯然是模糊的

          但如果我們能夠移動(dòng)相機(jī),使之跟蹤上面紅色的汽車,情況就不同了:

          ???

          可以看到這時(shí)候相機(jī)的位置和時(shí)間呈現(xiàn)出一種線性關(guān)系,而紅色的汽車就拍攝清晰了。當(dāng)然由于相機(jī)運(yùn)動(dòng)方向和藍(lán)色汽車相反,所以藍(lán)色汽車變得更加模糊了。

          實(shí)際上,如果從sensor的視角來(lái)看的話,曝光時(shí)間內(nèi)的畫(huà)面是這樣的:

          當(dāng)然,這并不是解決方案——因?yàn)樗m然把其中一個(gè)物體變清晰了,卻讓另外的物體變得更模糊了,包括背景也變模糊了。

          而作者提出的解決方案還是我們之前提到的老一套:

          步驟1:先把不受控的模糊變成均勻的受控模糊,見(jiàn)下圖

          步驟2:用去卷積技術(shù)處理模糊的中間圖像,得到清晰的最終圖像

          這是怎么做到的呢?作者提出了一種拋物線掃描的方式來(lái)控制相機(jī)或傳感器:

          拋物線掃描移動(dòng)相機(jī)


          我們來(lái)看看動(dòng)圖:

          從傳感器的視角看到的是這樣的畫(huà)面:


          這樣最終拍攝出來(lái)的圖像就呈現(xiàn)出一種特殊的模糊,可以用簡(jiǎn)單的單一去卷積得到最終的清晰圖像

          我們來(lái)看看用這種方式最終的效果吧:

          甚至當(dāng)運(yùn)動(dòng)不完全滿足單一方向運(yùn)動(dòng)這個(gè)條件時(shí),也能一定程度上恢復(fù)出清晰圖像:

          當(dāng)然如果實(shí)際運(yùn)動(dòng)和之前的假設(shè)太不一樣了,也會(huì)有明顯的缺陷,比如下面我們傳感器的拋物線運(yùn)動(dòng)是水平方向的,但這個(gè)人圖像站立起來(lái)呈現(xiàn)出垂直方向的運(yùn)動(dòng),最后臉部就出現(xiàn)了奇怪的缺陷——但總體來(lái)說(shuō)由于經(jīng)過(guò)了去模糊,還是比固定相機(jī)相機(jī)拍攝的結(jié)果清晰。

          下面圖中,測(cè)試者把紙板快速旋轉(zhuǎn),導(dǎo)致固定相機(jī)拍出了模糊的圖像,而運(yùn)動(dòng)不變攝影則一定程度上使圖像變清晰了。雖然由于紙板運(yùn)動(dòng)方向不是一維水平的,在邊界處出現(xiàn)了明顯的缺陷。

          作者提到,傳感器的運(yùn)動(dòng)完全可以通過(guò)控制現(xiàn)有的相機(jī)鏡頭馬達(dá)的方式來(lái)完成。但是為了實(shí)現(xiàn)的便利性,作者實(shí)現(xiàn)的原型是通過(guò)外接機(jī)械裝置來(lái)完成的,下圖中你可以看到使用了變徑齒輪加連桿使得相機(jī)在一個(gè)旋轉(zhuǎn)平臺(tái)上移動(dòng),從而模擬拋物線掃描。這里的相機(jī)就是個(gè)普通單反。

          四、總結(jié)

          4.1 兩種方法的比較

          今天我介紹了兩種實(shí)現(xiàn)消除攝影中運(yùn)動(dòng)模糊的技術(shù),一個(gè)是利用震顫快門(mén)的編碼曝光,另外一個(gè)則是利用拋物線掃描實(shí)現(xiàn)的運(yùn)動(dòng)不變攝影。

          編碼曝光使得模糊的圖像中保留了盡可能多的頻域信息,所以去卷積能夠得到信噪比較高的圖像。但是由于畫(huà)面中同時(shí)存在不同運(yùn)動(dòng)速度的物體,還有固定的背景,而震顫快門(mén)不能做到模糊程度與運(yùn)動(dòng)速度、方向無(wú)關(guān),所以還需要手動(dòng)介入來(lái)進(jìn)行分割,把想要變清晰的物體分割出來(lái)處理。同時(shí),由于我們很難去估計(jì)此時(shí)的有效卷積核,因此需要進(jìn)行較多的試錯(cuò)。同時(shí),編碼曝光使得快門(mén)有一半的時(shí)間是關(guān)閉的,因此整體畫(huà)面會(huì)偏暗。

          而利用拋物線掃描實(shí)現(xiàn)的運(yùn)動(dòng)不變攝影則使得整個(gè)畫(huà)面的模糊與物體的運(yùn)動(dòng)速度、方向都無(wú)關(guān),同時(shí)作者還證明了此時(shí)的有效卷積核中保留了比編碼曝光時(shí)更多的頻域信息(參看作者論文[3]),因此其最終結(jié)果更好(見(jiàn)下圖):

          4.2 不同圖像模糊的原因及解決方案

          到目前為止,我已經(jīng)在多篇文章中介紹了圖像模糊產(chǎn)生的原因和一些經(jīng)典的解決方案,在此做一點(diǎn)小小的匯總:

          你可以看到這里面所有的方法都有一個(gè)基本的核心,就是成像公式:

          因此很多文章都是在這個(gè)假設(shè)基礎(chǔ)上尋找合適的卷積核c, 從而恢復(fù)出清晰圖像x。

          4.3 編碼攝影

          在這個(gè)過(guò)程中,我們還引入了編碼攝影這個(gè)概念,我們來(lái)分別看看普通的攝影和編碼攝影之間的區(qū)別和聯(lián)系:

          兩種典型的編碼攝影的例子如下:

          而我在圖像模糊與去模糊這一個(gè)板塊里面,則介紹了編碼光圈、震顫快門(mén)編碼攝影等。事實(shí)上,在計(jì)算攝影這個(gè)領(lǐng)域有很多編碼成像的技術(shù),在Ramesh Raskar教授的主頁(yè)上就列舉了很多在不同的維度上進(jìn)行編碼的成像方式,感興趣的話你可以進(jìn)一步深入探索。


          下載1:OpenCV-Contrib擴(kuò)展模塊中文版教程
          在「小白學(xué)視覺(jué)」公眾號(hào)后臺(tái)回復(fù):擴(kuò)展模塊中文教程即可下載全網(wǎng)第一份OpenCV擴(kuò)展模塊教程中文版,涵蓋擴(kuò)展模塊安裝、SFM算法、立體視覺(jué)、目標(biāo)跟蹤、生物視覺(jué)、超分辨率處理等二十多章內(nèi)容。

          下載2:Python視覺(jué)實(shí)戰(zhàn)項(xiàng)目52講
          小白學(xué)視覺(jué)公眾號(hào)后臺(tái)回復(fù):Python視覺(jué)實(shí)戰(zhàn)項(xiàng)目即可下載包括圖像分割、口罩檢測(cè)、車道線檢測(cè)、車輛計(jì)數(shù)、添加眼線、車牌識(shí)別、字符識(shí)別、情緒檢測(cè)、文本內(nèi)容提取、面部識(shí)別等31個(gè)視覺(jué)實(shí)戰(zhàn)項(xiàng)目,助力快速學(xué)校計(jì)算機(jī)視覺(jué)。

          下載3:OpenCV實(shí)戰(zhàn)項(xiàng)目20講
          小白學(xué)視覺(jué)公眾號(hào)后臺(tái)回復(fù):OpenCV實(shí)戰(zhàn)項(xiàng)目20講即可下載含有20個(gè)基于OpenCV實(shí)現(xiàn)20個(gè)實(shí)戰(zhàn)項(xiàng)目,實(shí)現(xiàn)OpenCV學(xué)習(xí)進(jìn)階。

          交流群


          歡迎加入公眾號(hào)讀者群一起和同行交流,目前有SLAM、三維視覺(jué)、傳感器、自動(dòng)駕駛、計(jì)算攝影、檢測(cè)、分割、識(shí)別、醫(yī)學(xué)影像、GAN算法競(jìng)賽等微信群(以后會(huì)逐漸細(xì)分),請(qǐng)掃描下面微信號(hào)加群,備注:”昵稱+學(xué)校/公司+研究方向“,例如:”張三?+?上海交大?+?視覺(jué)SLAM“。請(qǐng)按照格式備注,否則不予通過(guò)。添加成功后會(huì)根據(jù)研究方向邀請(qǐng)進(jìn)入相關(guān)微信群。請(qǐng)勿在群內(nèi)發(fā)送廣告,否則會(huì)請(qǐng)出群,謝謝理解~


          瀏覽 161
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  天干夜天干天天天爽 | 国产一级a毛一级a做免费图片 | 91精品无码人妻系列 | 成人性生交大片免费卡看 | 九九AV|