最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

視頻圖像色彩增強的主要方法與落地實踐

2022-03-10 11:33 作者:聲網(wǎng)RTE開發(fā)者社區(qū)  | 我要投稿

背景

色彩增強作為視頻后處理中畫質(zhì)增強技術(shù)的一部分,指的是通過調(diào)整圖片和視頻畫面的飽和度特性,使得畫面色彩更加豐富和逼真,提升人的視覺主觀感受。由于設(shè)備攝像頭的多樣性,部分攝像頭在視頻采集時存在飽和度不足,畫面發(fā)灰,色彩寡淡等問題,這些情況在拍攝室外景物和顏色豐富的場景時尤其容易出現(xiàn)。這些問題可以通過算法的后處理調(diào)整進行改善。色彩增強配合視頻降噪,暗光增強,對比度調(diào)整,邊緣增強等技術(shù),可以對視頻畫質(zhì)起到較大的提升作用。


■色彩增強效果示意圖(左:原圖 右:增強后)
原圖來源:HEVC 標準測試碼流



色彩增強算法的設(shè)計


后處理對于顏色的調(diào)整,一般有兩個不同的目標,“還原”和“好看”?!斑€原”指的是使畫面能夠真實呈現(xiàn)場景的真實顏色,不偏色。“好看”指的是畫面的顏色層次足夠豐富和自然,能夠提升人視覺的舒適感,使天空更藍草地更綠,出來的畫面更符合人的喜好,是一個相對主觀的指標。色彩增強主要關(guān)注在“好看”這一目標上。目前針對色彩增強的客觀評價標準和公共數(shù)據(jù)集都比較缺乏,根據(jù)搜集到的一些資料,大約可以歸納出以下色彩增強算法的設(shè)計目標:


1. 調(diào)整后能夠提高人對畫面質(zhì)量的主觀感受。這個目標是否達成,主要依賴于開發(fā)人員、評測人員和用戶的主觀判斷打分。

2. 算法具有適應(yīng)性。適應(yīng)性是指對于不同圖像,或者同一圖像的不同部分,調(diào)節(jié)強度因應(yīng)圖像特性而有差異。避免導(dǎo)致原來已經(jīng)較為鮮艷的色彩出現(xiàn)過飽和的現(xiàn)象。

3. 調(diào)整后不產(chǎn)生明顯瑕疵。色彩增強比較容易產(chǎn)生的問題是過飽和,畫面細節(jié)的丟失,偏色,或者導(dǎo)致顏色分層等瑕疵。另外也很容易強化畫面暗部的彩色噪聲。

4. 對于視頻幀序列來說,色彩增強的處理不能造成畫面顏色突變。比如一些依賴于全局統(tǒng)計量的算法,光源的突然出現(xiàn)可能會造成畫面效果的突變,造成畫面效果的跳變。

5. 對人像的膚色進行保護。單純的色彩增強算法容易導(dǎo)致人像膚色變“橙”的問題。由于人的膚色與物體的顏色不同,存在一個經(jīng)驗合理范圍,調(diào)整超出這個范圍之后就會使人像看上去不真實。所以需要對人的膚色進行一定的保護。

6. 需要考慮色彩增強在整個視頻處理流程中與其他畫質(zhì)調(diào)整模塊的配合,會否造成整體效果變差的情況。


以上的各點可以看做是算法設(shè)計時的一個自檢表,并非必要全部嚴格滿足,但是如果其中的一項出現(xiàn)了比較嚴重的問題,那么這個算法的可用性會大打折扣。


顏色模型的選擇


色彩增強方法一般通過將 RGB 顏色轉(zhuǎn)換到合適的顏色模型,比如HSV,YUV,Lab 顏色模型等,再套用設(shè)計好的算法對特定通道進行調(diào)整。一般希望將表征色彩鮮艷程度的分量提取出來進行單獨調(diào)整,這樣調(diào)整的時候就不會對明暗造成影響,也不會造成偏色。


■調(diào)整流程示意



除此之外,目前還有使用基于神經(jīng)網(wǎng)絡(luò)的方法去做圖像增強,由網(wǎng)絡(luò)自己完成對圖像的調(diào)整,而不需要由人來設(shè)計公式。深度學(xué)習(xí)的增強方法一般會將色彩,對比度,亮度增強同時實現(xiàn)在一個網(wǎng)絡(luò)中同時調(diào)整,達到畫質(zhì)增強的效果,而其中又分為黑盒方法和白盒方法等。


由于我們色彩增強的工程需求是快速落地,在移動端實現(xiàn)實時、輕量級,并且效果高度可控的算法,同時需要效果與美顏、暗光增強、去噪等模塊解耦并相互配合,因此非神經(jīng)網(wǎng)絡(luò)的色彩增強方法是更好的選擇。


色彩增強方法面臨的第一個問題是如何選擇合適的顏色模型去進行算法設(shè)計。


基于 HSV 顏色模型的飽和度調(diào)整


基于 HSV 飽和度的調(diào)整方法是將 RGB 顏色模型轉(zhuǎn)換為 HSV 顏色模型,其中 HSV 分別表示(Hue)色相,(Saturation)飽和度和(value)明度。只調(diào)整飽和度可以在不影響明暗和色相的情況下增強色彩的鮮艷程度。

常見的調(diào)整方法有整體抬升,按比例增加,或者曲線調(diào)整,達到將整體飽和度提高的目的。如下圖的 gamma 曲線就是比較常用的調(diào)整曲線。


■曲線調(diào)整示意圖



但是飽和度調(diào)整同時提升所有顏色的強度,比較粗暴,有可能導(dǎo)致局部過飽和,局部細節(jié)的消失。


■膚色發(fā)生了一定的過飽和現(xiàn)象(左:原圖 右:增強后)



■調(diào)整后衣服皺褶細節(jié)丟失(左:原圖 右:增強后)
原圖來源:HEVC標準測試碼流


這對這個問題,自然飽和度(Vibrance)的概念被提出。在調(diào)整自然飽和度時,會智能提升畫面中比較柔和(即飽和度低)的顏色,而使原本飽和度夠的顏色保持原狀。


基于自然飽和度的調(diào)整


自然飽和度的概念最先由 photoshop 提出,重點在于適應(yīng)性,自然飽和度調(diào)整后一般比飽和度調(diào)整要自然。下面分別介紹兩種自然飽和度調(diào)整的算法。


第一種直接在 RGB 通道上進行統(tǒng)計與調(diào)整。其自然飽和度調(diào)整的流程是:

1. 計算每個像素 r、g、b 的均值和最大值,分別記為 rgb_avg 以及 rgb_max。

2. 計算 k 值:k = ( abs( rgb_max - rgb_avg ) / 127.0 ) * Vibrance。其中 Vibrance v為調(diào)節(jié)強度系數(shù),范圍為 0~100。

3. 對 r、g、b 分別用同一公式進行調(diào)整,以 R 為例,r = (rgb_max - r) * k + r。


該種調(diào)節(jié)方式可以針對飽和度不同的像素進行不同的調(diào)整,能夠比較好避免過飽和的情況發(fā)生。但是從公式上可以知道,其調(diào)整傾向于將 rgb 值往同一個 rgb_max 值進行靠近,可能無法保證顏色保持穩(wěn)定,不同顏色的調(diào)整力度差異較大,會發(fā)生偏色的情況。


第二種通過亮度和飽和度進行自適應(yīng)調(diào)節(jié)。其自然飽和度的調(diào)整流程是:


1. 從 RGB 計算 luma 值:luma = 0.2126 * r + 0.7152 * g + 0.0722 *b。

2. 從 rgb 計算 satuation 值:satuation = max(r ,g, b) - min(r, g, b)。

3. 計算 k 值:k = 1.0 + Vibrance * (1.0 - satuation / 255.0),其中Vibrance為調(diào)節(jié)強度 0~1。

4. 對 r、g、b 分別用同一公式進行調(diào)整,以 r 為例,r = luma * (1.0 - k) + r * k。


同樣地,從公式上可以知道,其調(diào)整傾向于將 rgb 值往同一個 luma 值進行靠近,也是無法保證顏色保持穩(wěn)定,會發(fā)生偏色的情況。


■基于自然飽和度的增強(左:原圖 右:增強后)


從顏色模型上看,基于 RGB、HSV 等顏色空間的顏色調(diào)整,對于人的視覺感知是非均勻的,很可能會產(chǎn)生偏色的情況,因此需要一個更合適的顏色模型。Lab 顏色模型是 CIE 在 1976 年改進并且命名的一種色彩模式。它是一種設(shè)備無關(guān)的顏色模型,也是一種基于生理特征的顏色模型,更適合應(yīng)用在色彩增強上。


基于 Lab/Lch 顏色模型的調(diào)整


Lab 顏色模型由三個要素組成,一個要素是亮度(L),a 和 b 是兩個顏色通道。而 Lch 顏色模型采用了同 Lab 一樣的顏色空間,但它采用 c 表示飽和度值及 h 表示色調(diào)角度??梢哉J為,ch 是 ab 的極坐標表示方式。由于 Lch 模型是基于生理特征建立的,意味著如果只調(diào)節(jié) c 飽和度值的話,就可以起到保證不偏色的效果。


開源圖像處理軟件 Gimp 的自動色彩增強算法是使用 Lch 顏色模型進行調(diào)整的,其處理流程為:


1. 將 RGB 轉(zhuǎn)換到 LCH。

2. 遍歷圖像像素,找到 C 的最大值 c_max 和最小值 c_min。

3. 對每個像素的 C 進行拉伸:c = (c - c_min) / (c_max - c_min) * 100。

4. 將 LCH 轉(zhuǎn)換回 RGB。


■處理前


■處理后



在 Lch 空間進行調(diào)節(jié)要比 HSV 上調(diào)節(jié)科學(xué)得多,從實際效果上看,基本上沒有出現(xiàn)偏色的情況。不過 Gimp 的方法主要針對的是圖片,當(dāng)用在視頻上時,由于存在全局統(tǒng)計,求最大最小值,會增加一定的運算量,同時它會受圖像最強點和最弱點的影響較大,若有最強點和最弱點突然離開或進入屏幕,效果可能出現(xiàn)突變,所以這個方法不適用于視頻處理。在實際工程化的時候,需要重新設(shè)計調(diào)整公式,去除對于全局統(tǒng)計點的依賴。


彩色噪聲抑制


圖像采集的噪聲從色彩空間上劃分,可以分為 luma noise 亮度噪聲與 chroma noise 彩色噪聲。色彩增強的應(yīng)用場景中,比較容易出現(xiàn)的問題是同時把畫面中的彩色噪聲放大,因此在算法的設(shè)計過程中要盡量避免。


同樣強度的噪聲,在飽和度較低的平坦區(qū)域遠比在顏色鮮艷的區(qū)域看起來要明顯。在彩色圖像灰色區(qū)域中,噪聲往往以彩色噪點的形式出現(xiàn),色彩增強如果不加區(qū)分的話,會同時將這些噪點也一并增強,如下圖:


■彩色噪聲被增強示意圖(左:原圖 右:增強后)



針對彩色噪聲的統(tǒng)計特性,在工程化的時候,需要進行噪聲的判斷,并降低色彩增強在這些地方的調(diào)整強度。經(jīng)過噪聲抑制之后的效果如下圖:


■噪聲抑制效果



膚色保護


由于人的膚色存在一個經(jīng)驗合理范圍,調(diào)整超出這個范圍之后就是使得人像看上去不真實。所以在色彩增強的時候,需要對人的膚色進行一定的保護,避免調(diào)整過度。要對膚色進行保護,首先要對膚色進行識別,然后對于膚色的部分減弱色彩增強的影響。膚色識別算法大部分是基于某顏色空間下的統(tǒng)計特征,包含大量的經(jīng)驗值。一般主流的有以下的膚色識別方法:


基于 RGB 色彩模型的膚色識別


直接使用 RGB 色彩模型是比較簡便的手段,因為一般傳入的數(shù)據(jù)都是 RGB 為主。較為常用的方法是條件判斷法,對 RGB 的值進行條件判斷,落入經(jīng)驗范圍中則判斷為膚色。其中分為均勻光照和側(cè)光兩種判斷條件,實際操作時一般會將這兩個判斷條件同時使用,只要符合其中一個,即判斷為膚色。


除此之外,在 RGB 色彩模型中還可以使用二次多項式模式檢測。模型由兩個歸一化 R-G 平面的二次多項式和一個圓方程構(gòu)成,只要這三個公式的值落入一定經(jīng)驗范圍則判斷為膚色。


基于 RGB 的膚色識別方法操作最為簡便,一般不需要進行色彩模型的轉(zhuǎn)換。但是由于該色彩沒有將亮度和顏色進行分離,判斷公式一般都比較煩冗,膚色識別的準確性受光照條件的影響較大。


基于 YCbCr 色彩模型的膚色識別


一般我們聽到的 YUV 實際就是指 YCbCr。YCbCr 色彩模型將色彩分解為亮度值 Y 與二維色度值 CbCr,能夠只對色度進行判斷,避免光照條件的影響。使用 YCbCr 色彩模型,比較直接的膚色識別方法是范圍判斷法。從 RGB 轉(zhuǎn)換到 YCbCr 之后,對于 CbCr 組成的二維平面,只要落在經(jīng)驗范圍之內(nèi),都認為是膚色。文獻上能查到不同經(jīng)驗范圍,一般選擇其中一種使用即可,例如 133 <= Cr <= 173,77 <= Cb <= 127。


除了直接判斷范圍,YCbCr 也可以使用基于橢圓的膚色識別方法。該方法基于經(jīng)驗統(tǒng)計數(shù)據(jù),對于 CbCr 組成的二維平面,只要落在橢圓之內(nèi),都認為是膚色,準確性比單純的范圍判斷更高。這個膚色檢測方法被 opencv 所采用。在 opencv 中的橢圓參數(shù)為:[113,155.6]為橢圓中心,[23.4,15.6]為長軸和短軸,傾斜角度為 43.0。


■橢圓膚色CbCr區(qū)域示意


基于 HSV 色彩模型的膚色識別


HSV 色彩模型也同樣將亮度與顏色進行了分離,因此對于光照變化也有很強的抗干擾能力。


基于 HSV 的膚色識別方法常見的有基于高斯模型的方法。這個方法被開源處理庫 GPUImage 所采用的。其基本思路為:將 RGB 轉(zhuǎn)換到 HSV 空間,并計算 h 與 skinHue 距離:dist = abs(h – skinHue) / 0.5,其中 skinHue 為高斯模型統(tǒng)計均值,一般使用 0.05。高斯模型方差相關(guān)統(tǒng)計參數(shù)為 skinHueThreshold,一般取 40。高斯權(quán)重通過 exp(-dist * dist * skinHueThreshold)公式求得。這個方法只計算出膚色識別的權(quán)重(概率),后面可以通過設(shè)置閾值(比如>0.95)來獲得膚色檢測結(jié)果。


另外,基于 HSV 的膚色識別方法也有范圍判斷法,一般通過文獻上提供的 H、S、V 經(jīng)驗范圍進行判斷,操作比較簡單,在此不詳細列出。


■膚色識別結(jié)果示意(上:原圖 下:膚色識別結(jié)果)


■膚色保護下色彩增強效果


色彩增強算法落地效果


在加入了噪聲抑制和膚色保護之后,我們得到了最終的色彩增強算法效果。


■加入噪聲抑制和膚色保護之后的色彩增強算法效果(左:原圖 右:增強后)
原圖來源:HEVC 標準測試碼流



總結(jié)

總體來說,在我們色彩增強算法的落地過程中,加入了噪聲抑制和膚色保護的算法能夠在大部分場景下的獲得更好的更穩(wěn)定的效果。不過依然有不少可以改進的方向,例如如何把針對場景和畫面特性的適應(yīng)性做得更好,如何把膚色識別做得更精準等等。另外,目前這里討論的只是色彩增強,要做到比較好的畫質(zhì)增強,還需要配合對比度亮度的調(diào)整,去噪算法,甚至是偽 HDR 算法等,如何通過融合不同的算法輸出一個更好的結(jié)果,也是一個需要不斷迭代研究的課題。



Dev for Dev專欄介紹

Dev for Dev(Developer for Developer)是聲網(wǎng)Agora 與 RTC 開發(fā)者社區(qū)共同發(fā)起的開發(fā)者互動創(chuàng)新實踐活動。透過工程師視角的技術(shù)分享、交流碰撞、項目共建等多種形式,匯聚開發(fā)者的力量,挖掘和傳遞最具價值的技術(shù)內(nèi)容和項目,全面釋放技術(shù)的創(chuàng)造力。


視頻圖像色彩增強的主要方法與落地實踐的評論 (共 條)

分享到微博請遵守國家法律
松江区| 资中县| 乌拉特中旗| 大城县| 山阳县| 大余县| 宕昌县| 湟中县| 庄浪县| 德兴市| 揭阳市| 东宁县| 洪江市| 南京市| 郴州市| 洪湖市| 建阳市| 双鸭山市| 卢氏县| 汝州市| 胶南市| 苍梧县| 禹城市| 鄂伦春自治旗| 哈巴河县| 九龙县| 宁远县| 韩城市| 新建县| 铜山县| 岱山县| 茌平县| 锡林郭勒盟| 当雄县| 彝良县| 枞阳县| 阳原县| 资源县| 漾濞| 鲜城| 安化县|