近年來,隨着深度學習技術的快速發展,基於AI的超分辨技術在圖像恢復和圖像加強領域呈現出廣闊的應用前景,受到了學術界和工業界的關注和重視。可是,在RTC視頻領域中,不少AI算法並不能知足實際場景下的應用需求。本文將着眼於AI技術從研究到部署的落地問題,分享超分辨技術在RTC領域落地應用所面臨的機遇與挑戰。算法
超分辨這一律念最先是在20世紀60年代由Harris和Goodman提出的,是指從低分辨率圖像,經過某種算法或模型生成高分辨圖像的技術,而且儘量地恢復出更多細節信息,也稱爲頻譜外推法。可是在研究初期,頻譜外推法只是用於一些假設條件下的仿真,並無獲得普遍的承認;直到單張圖像的超分辨方法提出後,超分辨技術纔開始獲得普遍的研究和應用。目前,它已經成爲圖像加強乃至計算機視覺領域的重要研究方向。微信
單張圖像的超分辨方法根據原理不一樣,能夠分爲基於插值、基於重構和基於學習的方法。前面兩種方法分別因爲算法原理簡單以及應用場景受限,在實際場景中的超分辨效果並不理想;基於學習的方法,是實際效果最好的超分辨方法,其核心包括兩個部分:算法模型的創建,以及訓練集的選取。根據算法模型和訓練集,基於學習的方法又能夠分爲傳統學習方法和深度學習方法。通常來講,傳統學習方法的算法模型比較簡單,訓練集也比較小。深度學習方法通常是指採用大量數據訓練的卷積神經網絡方法,也是目前學術界研究的熱點。所以接下來我將重點介紹基於深度學習的超分辨方法的發展過程。網絡
SRCNN是深度學習方法在超分辨問題的首次嘗試,是一個比較簡單的卷積網絡,由3個卷積層構成,每一個卷積層負責不一樣的職能。第一個卷積層的做用主要是負責提取高頻特徵,第二個卷積層則負責完成從低清特徵到高清特徵的非線性映射,最後一個卷積層的做用是重建出高分辨率的圖像。SRCNN的網絡結構比較簡單,超分辨效果也有待改善,不過它確立了深度學習方法在處理超分辨這類問題時的基本思想。後來的深度學習方法,基本都遵循這一思想去進行超分辨的重建。性能
後來的 ESPCN、FSRCNN等網絡基於SRCNN進行了一些改進,網絡層數仍然比較淺,卷積層數不會超過10,超分辨的效果也不是特別理想。由於在當時,深度卷積網絡的訓練是存在問題的。通常對於卷積神經網絡來講,當網絡層數增長的時候,性能也會增長,但在實際應用中,人們發現當網絡層數增長到了必定程度,因爲反向傳播原理,就會出現梯度消失的問題,致使網絡收斂性變差,模型性能下降。這個問題直到ResNet提出殘差網絡結構以後,才獲得比較好的解決。學習
VDSR是殘差網絡以及殘差學習思想在超分辨問題上的首次應用,將超分辨網絡的層數首次增長到了20層,優勢是利用殘差學習的方式,直接學習殘差特徵,網絡收斂會比較快,超分辨效果也更好。後來一些卷積神經網絡提出了更復雜的結構, 好比SRGAN提出使用生成式對抗網絡來生成高分辨的圖像,SRGAN由2部分組成,一個是生成網絡,另外一個是判別網絡。生成網絡的做用是根據一張低分辨率的圖像來生成一張高分辨的圖像,而判別網絡的做用是將生成網絡生成的高分辨圖像斷定爲假,這樣網絡在訓練的時候,生成網絡和斷定網絡二者之間不斷博弈,最終達到平衡,從而生成細節紋理比較逼真的高分辨圖像,具備更好的主觀視覺效果。其餘深度卷積網絡方法好比SRDenseNet、EDSR、RDN,使用了更復雜的網絡結構,網絡的卷積層愈來愈深,在單張圖像上的超分辨效果也愈來愈好。優化
超分辨技術發展的整體趨勢,基本上能夠歸納爲從傳統方法,到深度學習方法,從簡單的卷積網絡方法到深度殘差網絡方法。在這個過程當中,超分辨模型結構愈來愈複雜,網絡層次愈來愈深,單張圖像的超分辨效果也愈來愈好,不過這也會有必定的問題。編碼
在RTC領域,對於視頻處理任務來講,大可能是直播和會議等即時通訊場景,對算法的實時性要求比較高,因此視頻處理算法的實時性是優先考慮的。而後是算法的實用性,因爲用戶在使用直播或會議時,攝像頭採集到的視頻質量有時比較低下,可能包含不少噪點;另外視頻在編碼傳輸時會先進行壓縮,壓縮的過程也會致使圖像畫質退化,因此RTC實際應用場景比較複雜,而不少視頻處理方法,好比超分辨算法在研究中的是比較理想的場景。最後,如何提高用戶尤爲是移動端用戶的體驗,減小算法的計算資源佔用,適用更多終端和設備,也是視頻任務所必須考慮的。設計
對於這些需求,目前的超分辨方法尤爲是基於深度學習的超分辨方法是存在不少問題的。目前學術界關於超分辨的研究大多仍是侷限在理論階段,圖像超分,尤爲是視頻超分若是要大規模落地的話,必需要去解決一些實際問題。首先是網絡模型的問題,目前不少深度學習方法爲了追求更好的超分辨效果,採用的模型規模比較龐大,參數量愈來愈多,會耗費大量的計算資源,在不少實際場景沒法實時處理。其次是深度學習模型的泛化能力問題,對於各類深度學習模型來講,都會存在訓練集適配的問題,在訓練的時候所使用的訓練集不一樣,在不一樣場景上的表現也不一樣,用公開數據集訓練的模型,在實際應用場景中未必會有一樣良好的表現。最後是真實場景下超分效果的問題,目前學術界的超分方法,大都是關於比較理想的場景,完成從下采樣圖像到高分辨圖像的重建,但在真實場景中,圖像退化不只包括下采樣因素,還會有不少其餘因素,好比圖像壓縮、噪點、模糊等。3d
綜上而言,目前基於AI的超分辨方法,在RTC視頻任務中,所面臨的主要挑戰能夠歸納爲,如何憑藉規模比較小的網絡來實現具備良好真實效果的視頻質量加強,也就是怎麼樣「既叫馬兒跑得快,又讓馬兒少吃草」。視頻
首先,深度學習方法依然會是超分辨算法的主流。
由於傳統的方法在超分辨任務上的效果不夠理想,細節比較差。深度學習方法爲超分辨提供了一條新的思路。近年來基於卷積神經網絡的超分辨方法,逐漸成爲主流方法,效果也在不斷改善。
從上圖能夠看到,近幾年來,基於AI的超分辨方法相對於傳統方法的論文數量呈現出一邊倒的局面,而且這種局面在將來幾年還會進一步擴大。由於雖然存在一些問題,但隨着一些輕量級網絡的出現,深度學習方法未來在落地應用方面可能會有更大的突破,這些問題也將會得以解決,深度學習方法依然會是超分辨的主流研究方向。
其次,一些參數較小的輕量級網絡,在推進超分算法落地方面,會發揮更大的做用。
由於目前各類深度卷積網絡方法,好比EDSR、RDN這類深度殘差網絡難以知足視頻實時傳輸的須要,一些比較小的輕量級網絡對於實時任務會有更好的效果。
第三,未來的超分辨方法會更加聚焦真實場景任務。
學術領域的SR方法可能是針對下采樣問題進行超分,在真實場景下的表現並非很好,在真實場景中,圖像退化因素是各類各樣的,一些比較有針對性的方法,好比包含壓縮損失、編碼損失以及各類噪聲的超分辨任務,可能會更加實用。
在RTC領域中,因爲視頻文件過於龐大,咱們須要對其進行編碼,而後再傳輸到接收端解碼播放。因爲編碼的本質是對視頻的壓縮,當網絡比較差時,編碼量化參數會比較大,會形成嚴重的壓縮,致使輸出圖像產生塊效應和其餘失真,形成畫質模糊。這種狀況下,若是直接將解碼後的視頻進行超分,壓縮損失也會被放大,超分效果每每不夠理想。針對這些問題,網易雲信提出了基於編碼損失復原的視頻超分辨方法,採用數據驅動和網絡設計並重的策略,經過數據處理模擬真實失真場景,而且從模型設計到工程化實現進行層層優化,對於制約AI超分技術的兩大問題有了必定的突破,在模型實時性和真實場景超分效果方面取得了不錯的效果。
以上就是網易雲信在推動AI驅動的超分技術落地應用方面的一些實踐經驗,但願對你們有所啓發和參考。
更多技術內容歡迎關注微信公號 【網易智企技術+】