作者:翟天保Steven 前言? ? ? ?360度全景攝像機可無盲點監(jiān)測覆蓋所處場景 ,通過一個魚眼鏡頭或者一個反射鏡面(如拋物線,雙曲線鏡面等),或者多個朝向不同方向的普通鏡頭拼接而成,擁有360度全景視場(Field of View, FOV)。一臺全景攝像機可以取代多臺普通的監(jiān)控攝像機監(jiān)控攝像機,做到了無縫監(jiān)控,實現(xiàn)了監(jiān)控新應(yīng)用,應(yīng)用于各個領(lǐng)域,其中包括監(jiān)獄、政府機關(guān)、銀行、社會安全、公共場所、文化場所等。 一、場景痛點? ? ? ?對全景相機而言,通過鏡頭的旋轉(zhuǎn)可獲取多張不同方向的圖像,對其進行多圖像拼接,最終可形成完整的全景圖像。 ? ? ? ?但是在拼接過程中,很容易受到背景光不一致等外在因素的干擾,而使得拼接的圖像中光場分布不均勻,這很容易導(dǎo)致圖像之間出現(xiàn)間隙或雙亮接縫,兩者都非常令人反感,尤其是對于相機正在平移或物體在接縫上移動的內(nèi)容。 ? ? ? ?解決方案是將兩個圖像大量重疊并修改重疊區(qū)域中的像素,以使重疊盡可能不可見。這樣做的原因是,現(xiàn)在任何輕微的投影儀未對準(zhǔn)或鏡頭像差都只會顯示為圖像的輕微模糊,而不是尖銳的接縫或間隙。融合結(jié)果如圖2所示。 ? ? ? ?雖然上述解決方案可以將平鋪全景圖像盡可能地融合,但無法保證圖像兩側(cè)也能有效融合。要知道平鋪全景圖像最終是要呈現(xiàn)為360度立體環(huán)視效果的,左右兩側(cè)不融合將使得全景場景出現(xiàn)亮度突變縫,這會讓觀看者感到極度不適。如圖3所示。 ? ? ? ? 綜上所述,在此類圖像拼接場景下,亮度突變縫的消除是一大難題。難點主要有三:
? ? ? ? 如何將全景平鋪圖像的左右兩側(cè)也進行有效的融合,進而使360度全景環(huán)視效果更佳,是一個非常有挑戰(zhàn)的課題。 二、需求說明? ? ? ?第一部分講解了全景圖像拼接過程中存在的一大難點,即平鋪圖像左右側(cè)的有效融合問題。針對該問題,提出需求:全景圖像左右側(cè)進行有效融合,使得左側(cè)連接右側(cè)后,不存在肉眼可見的明顯亮縫。圖4處理至圖5狀態(tài)。 ? ? ? ?為了滿足該需求,本文提出了一種基于伽馬變換自適應(yīng)修正的全景首尾融合算法。 三、算法原理和流程? ? ? ?之所以存在亮縫,歸根結(jié)底是兩部分的圖像背景光不一致,我們可以將左側(cè)和右側(cè)分別進行一個伽馬變化,伽馬變化的終點修正為一致,再反變化回去,就可以使得中心部分較好融合,且圖像像素漸變。 ? ? ? ? 左右兩側(cè)是從1到k,k是中心接壤的比例因子,因此有公式如下,其中G是伽馬變化的因子,G為1時,是線性變化,改變G,曲線變化示意圖如圖6所示。x是歸一化的值,中心為0,邊緣為1。 ? ? ? ?不難發(fā)現(xiàn),邊緣處即x為1時,f(x)也為1,這樣的目的是使得這部分圖像拼接完成后,在回歸到原圖后,依然是融合態(tài);只讓其拼接部分是漸變?nèi)诤系摹?/p> ? ? ? ?伽馬自適應(yīng)校準(zhǔn)就是k值的校準(zhǔn),校準(zhǔn)完成后進行反伽馬變換,即可實現(xiàn)圖像的恢復(fù)和融合。 ? ? ? ?綜上,該算法的流程圖可簡化為: 四、拼接效果圖五、代碼分享? ? ? ?C++代碼不免費分享,有意獲取者可以私我。算法不是魔法,不能解決一切問題。該算法的核心邏輯可用于工程開發(fā),但仍有許多需要結(jié)合實際完善的地方,不建議直接拷貝使用。 PS:感謝陳先生提供的全景圖像。 |
|