如何通過(guò)多幀影像進(jìn)行超分辨率重構(gòu)?

姓名:于川皓 學(xué)號(hào):16140210089

轉(zhuǎn)載自:https://www.zhihu.com/question/25401250

【嵌牛導(dǎo)讀】:通過(guò)一系列低分辨率的圖像以特定算法得到一幅較高分辨率的圖像灌侣,有著廣泛的應(yīng)用。

【嵌牛鼻子】:超分辨率重構(gòu)

【嵌牛提問(wèn)】:多幀影像圖片超分辨率重建的實(shí)現(xiàn)方法是什么?

【嵌牛正文】:

取出幾幀示意如下:因?yàn)槭侄墩海⑶蚁鄼C(jī)分辨率低愧薛,已經(jīng)沒(méi)了樣晨炕。其實(shí)上面是我先把原圖的圖像隨機(jī)平移,然后線性插值降采樣到8x8分辨率得到的毫炉。在這個(gè)過(guò)程中我模擬了兩件事:1) 隨機(jī)平移模擬視頻拍攝過(guò)程中的隨機(jī)抖動(dòng)瓮栗,這是從多幀圖像中重建超分辨率圖像的關(guān)鍵,后面我會(huì)講到碘箍,同時(shí)這也是符合現(xiàn)實(shí)生活規(guī)律的遵馆,雖然宏觀來(lái)說(shuō)拍攝一段靜止的視頻很容易,可是在像素級(jí)別任何微小的畫面移動(dòng)都可以被體現(xiàn)出來(lái)丰榴。2) 線性插值降采樣模擬在CMOS上成像時(shí)圖像元素小于像素時(shí)細(xì)節(jié)的丟失货邓,線性插值是因?yàn)橄袼赜涗浀闹凳窃谙袼卦行Ц泄饷娣e上的平均曝光強(qiáng)度。這兩個(gè)過(guò)程的示意圖如下:首先看第一個(gè)圖中兩個(gè)圓的例子四濒,這兩個(gè)圓大小完全一樣换况,因?yàn)槌上裎恢貌煌瑘A在每個(gè)像素上覆蓋的面積也不一樣盗蟆,對(duì)應(yīng)像素的灰度會(huì)不一樣戈二,最后在像素陣列上對(duì)應(yīng)了不同的圖案,而這個(gè)信息正是進(jìn)行超分辨率重建的基礎(chǔ)喳资。同樣的對(duì)于寫下的屌字觉吭,在不同的抖動(dòng)位置上,也會(huì)得到不一樣的低分辨率圖案仆邓。所以問(wèn)題可以描述為鲜滩,一幅高分辨率的圖像I_{H},經(jīng)過(guò)n次某種變換\[{{I}_{L}}=F\left( {{I}_{H}} \right)\]后得到了n幅低分辨率圖像节值,其中第i幅圖像為I_{L,i}徙硅。而具體到視頻錄制中,"某種變換"就是每次拍攝每一幀的時(shí)候記錄圖像的過(guò)程搞疗,具體到這個(gè)例子中F()就是手抖導(dǎo)致的圖像平移和線性插值的降采樣嗓蘑。所以本質(zhì)上來(lái)講從多幀低分辨率圖像中進(jìn)行超分辨率重建是個(gè)Inference的問(wèn)題,高分辨率圖像中的細(xì)節(jié)信息在錄制成低分辨率幀的時(shí)候?qū)е铝藖G失,然而抖動(dòng)帶來(lái)的位移相當(dāng)于給了多一個(gè)維度的信息讓我們可以通過(guò)算法對(duì)信息進(jìn)行恢復(fù)桩皿,從某種意義上講抖動(dòng)保存了原來(lái)圖像的細(xì)節(jié)信息豌汇。抖動(dòng)有多重要呢,先來(lái)做一個(gè)簡(jiǎn)單的試驗(yàn)业簿,盡管采樣到的幀分辨率都低得可憐瘤礁,可是我們?nèi)绻讯秳?dòng)的信息恢復(fù)出來(lái),也就是把抖動(dòng)后的這些低分辨率圖片對(duì)齊梅尤,然后求一個(gè)平均柜思,結(jié)果如下:這時(shí)候已經(jīng)可以勉強(qiáng)看出屌樣了。巷燥。進(jìn)一步的赡盘,我們想推斷出更高分辨率的圖像,一個(gè)很自然的想法就是對(duì)超分辨率圖像進(jìn)行猜測(cè)缰揪,把猜測(cè)的圖像變換后的結(jié)果和錄制采樣到的結(jié)果進(jìn)行對(duì)比陨享,然后把差異作為目標(biāo)函數(shù)進(jìn)行優(yōu)化:\[\min \sum\limits_{i=1}^{n}{\left| {{I}_{L,i}}-F\left( {{I}_{H,i}} \right) \right|}\]對(duì)于上面這個(gè)優(yōu)化問(wèn)題,如果抖動(dòng)的范圍完美覆蓋了一個(gè)像素周期以內(nèi)的所有區(qū)域钝腺,并且每一幀都采樣到了這個(gè)區(qū)域內(nèi)的所有的點(diǎn)的話抛姑,那么理論上是可以恢復(fù)出高分辨率圖像的,然而通常情況并非如此艳狐,比方說(shuō)我想把我例子中24幀8x8的視頻恢復(fù)成一幅48x48的高分辨率圖像定硝,也就是6倍的分辨率提升,那么24幀顯然不夠毫目,這種情況叫做ill-posed蔬啡,也就是說(shuō)有無(wú)數(shù)個(gè)解可以滿足這個(gè)優(yōu)化問(wèn)題,所以需要一些regularization镀虐。通常而言我們看到的圖像一般都是較為平滑的箱蟆,而不是像老式電視機(jī)里沒(méi)信號(hào)是那樣滿屏的雪花斑噪聲,所以可以加入一項(xiàng)抑制圖像梯度的項(xiàng):\[\min \sum\limits_{i=1}^{n}{\left| {{I}_{L,i}}-{{F}_{i}}\left( {{I}_{H}} \right) \right|}+\left| \nabla {{I}_{H}} \right|\]注意我這里用的都是L1 Norm刮便,一般來(lái)說(shuō)L1的優(yōu)點(diǎn)是使梯度的分布更為稀疏空猜,這樣能更好的保存邊緣,另外計(jì)算量也小恨旱。用遺傳算法來(lái)解這個(gè)優(yōu)化問(wèn)題試試抄肖,得到結(jié)果如下:0代:10代20代50代100代200代500代1000代2000代20000代進(jìn)化過(guò)程動(dòng)圖的鏈接: http://images.cnitblog.com/blog/609274/201411/181506083165247.gif 因?yàn)槭荊A,所以看上去還是有一點(diǎn)瑕疵窖杀,不過(guò)屌樣已經(jīng)很明顯了,如果繼續(xù)優(yōu)化應(yīng)該能得到完美的結(jié)果裙士。當(dāng)然了入客,如前所述,我只是用一個(gè)玩具例子講一下超分辨率重構(gòu)的基本思想,具體的問(wèn)題中桌硫,除了抖動(dòng)和低分辨率采樣夭咬,還有鏡頭PSF(Point Spread Function),圖像的轉(zhuǎn)動(dòng)和其他形變铆隘,場(chǎng)景中的物體移動(dòng)等因素卓舵,優(yōu)化算法也不會(huì)是GA這種相比起來(lái)漫無(wú)目的的搜索(雖然我還修改了變異和交叉函數(shù))。另外降采樣我這里用的是線性插值膀钠,這包含一個(gè)假設(shè)掏湾,就是每個(gè)像素的感光元件的有效感光面積接近這個(gè)元件在傳感器表面占用的面積,而這個(gè)假設(shè)通常是很難成立的肿嘲,尤其是對(duì)現(xiàn)在消費(fèi)級(jí)相機(jī)和手機(jī)中流行的CMOS融击,還有一種常見(jiàn)的降采樣是點(diǎn)采樣,這個(gè)就比線性采樣相對(duì)而言簡(jiǎn)單一些雳窟,然而這個(gè)通常也不成立尊浪,并且一般應(yīng)用的消費(fèi)級(jí)CMOS還要考慮Bayer陣列的問(wèn)題。至于樓主問(wèn)到PS能否實(shí)現(xiàn)封救,據(jù)我所知應(yīng)該沒(méi)有拇涤。不過(guò)OpenCV里做這件事已經(jīng)非常簡(jiǎn)單了,一個(gè)簡(jiǎn)化版的代碼如下:cv::Ptrframes = cv::superres::createFrameSource_Video( "diao.mp4" );cv::Ptrsuper_res = cv::superres::createSuperResolution_BTVL1();

super_res->setInput( frames );

cv::Mat super_resolved_image;

super_res->nextFrame( super_resolved_image );

cv::imshow( "Super Resolved Image", super_resolved_image );

cv::waitKey( 0 );

我用我的高級(jí)智能手機(jī)拍了一段長(zhǎng)達(dá)2秒的176x144分辨率的視頻測(cè)試了一下這段代碼:

視頻截圖(為方便比較用Nearest Neighbor放大到和重建圖像等同分辨率):

重建的超分辨率圖像:

效果還行誉结。通常情況下超分辨率重建運(yùn)算量還是比較大的鹅士,所以實(shí)際情況代碼不會(huì)這么簡(jiǎn)單,一個(gè)用到GPU的基于OpenCV的例子可以在OpenCV的sample code里找到搓彻。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末如绸,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子旭贬,更是在濱河造成了極大的恐慌怔接,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,723評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件稀轨,死亡現(xiàn)場(chǎng)離奇詭異扼脐,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)奋刽,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,485評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門瓦侮,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人佣谐,你說(shuō)我怎么就攤上這事肚吏。” “怎么了狭魂?”我有些...
    開(kāi)封第一講書人閱讀 152,998評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵罚攀,是天一觀的道長(zhǎng)党觅。 經(jīng)常有香客問(wèn)我,道長(zhǎng)斋泄,這世上最難降的妖魔是什么杯瞻? 我笑而不...
    開(kāi)封第一講書人閱讀 55,323評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮炫掐,結(jié)果婚禮上魁莉,老公的妹妹穿的比我還像新娘。我一直安慰自己募胃,他們只是感情好旗唁,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,355評(píng)論 5 374
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著摔认,像睡著了一般逆皮。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上参袱,一...
    開(kāi)封第一講書人閱讀 49,079評(píng)論 1 285
  • 那天电谣,我揣著相機(jī)與錄音,去河邊找鬼抹蚀。 笑死剿牺,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的环壤。 我是一名探鬼主播晒来,決...
    沈念sama閱讀 38,389評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼郑现!你這毒婦竟也來(lái)了湃崩?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書人閱讀 37,019評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤接箫,失蹤者是張志新(化名)和其女友劉穎攒读,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體辛友,經(jīng)...
    沈念sama閱讀 43,519評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡薄扁,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,971評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了废累。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片邓梅。...
    茶點(diǎn)故事閱讀 38,100評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖邑滨,靈堂內(nèi)的尸體忽然破棺而出日缨,到底是詐尸還是另有隱情,我是刑警寧澤掖看,帶...
    沈念sama閱讀 33,738評(píng)論 4 324
  • 正文 年R本政府宣布殿遂,位于F島的核電站诈铛,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏墨礁。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,293評(píng)論 3 307
  • 文/蒙蒙 一耳峦、第九天 我趴在偏房一處隱蔽的房頂上張望恩静。 院中可真熱鬧,春花似錦蹲坷、人聲如沸驶乾。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 30,289評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)级乐。三九已至,卻和暖如春县匠,著一層夾襖步出監(jiān)牢的瞬間风科,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 31,517評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工乞旦, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留贼穆,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,547評(píng)論 2 354
  • 正文 我出身青樓兰粉,卻偏偏與公主長(zhǎng)得像故痊,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子玖姑,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,834評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容