俞文靜,張明軍,李梓瑞,賴冬宜
(廣州大學華軟軟件學院,廣州510990)
人臉檢測技術近年來得到了高速的發展[1],尤其基于視頻流的人臉檢測技術,是圖像處理領域最成熟、應用最廣的一項技術,相應的思想、算法、框架和技術都比較完備和成熟。然而現實應用中,由于物理設備成本高、易受各種成像環境限制等因素影響,大多數字成像系統獲得的圖像分辨率并不高,尤其遠距離小人臉、多人臉的精準檢測仍是人臉檢測領域的一個難點,遠距離拍攝,在無法獲得人臉特征的情況下,如何解決在拍攝得到的待識別圖像中進行人臉檢測的難度大、誤檢率高的問題已成為人臉檢測研究領域的一個關鍵問題。超分辨率圖像重建[2]就是利用同一場景下的一幅或多幅具有互補信息的模糊、變形以及噪聲污染的低分辨率圖像來重建一副高分辨率圖像。其目的是彌補硬件不足,從軟件角度提高圖像分辨率及質量,基于超分辨率技術的特點,將該技術應用到遠距離小人臉檢測中,可以將無法獲得人臉特征的小人臉圖像進行超分辨率重建與恢復預處理后再進行人臉檢測與識別。
本文在建立基于圖像超分辨率恢復的遠距離小人臉、多人臉檢測模型的基礎上,結合人臉圖像中的結構信息,以及傳統的凸集投影(Projection Onto Convex Sets,POCS)算法只能得到低對比度、低信噪比、邊緣模糊的圖像特點,設計了基于人臉特征增強的改進POCS小人臉超分辨率恢復算法,仿真實驗表明經過超分辨率放大恢復后的圖像應用Dlib人臉檢測模型進行人臉檢測,可以大大提高小人臉的檢測精確度。
本文針對在實際應用中小人臉檢測難度大、誤檢率高的問題[5],結合圖像超分辨率恢復以及人臉圖像結構信息特點,建立基于圖像超分辨率恢復的遠距離小人臉、多人臉檢測模型:將遠距離拍攝的無法獲得人臉特征并檢測不到的小人臉、多人臉視頻圖像進行人臉圖像增強預處理,包括直方圖均衡化、圖像降噪和邊緣增強處理,再將處理后的圖像作為POCS超分辨率圖像重建的輸入并進行圖像超分辨率處理,最后將處理后的圖像應用Dlib模型進行人臉檢測,并得到檢測結果。

圖1 小人臉檢測模型圖
為了從低分辨率小人臉圖像中更好地獲取各個小人臉的結構信息,本文算法先對低分辨率圖像進行圖像增強預處理,主要通過直方圖均衡化方法調節圖像因光照、模糊等原因對圖像的干擾,通過圖像降噪和邊緣檢測優化加強人臉結構信息表達。
直方圖均衡化[3]通過將原始圖像中分布不均衡的灰度分量進行調整,使灰度值在整個直方圖中近于均勻分布,可使圖像的灰度動態范圍和明暗對比度得到提高,圖像的細節得到增強。
對于灰度級范圍為[ ]0,L-1的數字圖像,其直方圖可表示為一個離散函數:

其中nK是第k級灰度值rK的像素個數。也就是說,橫坐標代表了灰度值rK,縱坐標代表了該灰度級的個數nK。實際應用中,通常要先對直方圖進行歸一化,假設灰度圖像的維數是M×N,MN表示圖像的像素總數,則歸一化直方圖可以表示為:

本文圖像降噪采用均值濾波,先定義一個固定大小和參數的濾波器模板,該模板通過鄰域平均法計算中心像素點,對整幅圖像進行濾波,以達到圖像降噪的效果。本文使用算數均值濾波器。令Sxy表示中心點在(x,y)處,大小為m×n的濾波器窗口。算術均值濾波器計算中心點領域像素均值并賦給中心點的過程可以表示為:

邊緣檢測通過檢測圖像中亮度變化梯度大的像素點識別圖像的邊緣部分,可大幅度地減少原始圖像中的無效數據量,保留了圖像重要的結構屬性。本文選擇Sobel邊緣檢測算子,它包含兩組3×3的矩陣,分別為橫向及縱向模板,可分別檢測圖像的垂直邊緣和水平邊緣。在人臉圖像中,人臉邊緣及五官結構一般都與皮膚像素值不同,并且在人臉檢測中并不關心皮膚的紋理特征。Sobel算子恰好對細紋理不敏感,因此可大幅度減少與人臉特征無關的信息,這大大減少了之后的算法數據信息量。
本文將以下兩個模板(見公式(4)-(5))與圖像作平面卷積來檢測圖像邊緣,就可以分別獲得圖像橫向及縱向的亮度差分近似值。
檢測水平邊沿橫向模板Gx:

檢測垂直邊沿縱向模板Gy:

圖像中每一個像素點的橫向和縱向梯度近似值的大小可用以下公式來計算:

通常,為了提高效率,使用不開平方的近似值表示為:

凸集投影法(Projection Onto Convex Sets,POCS)[4-5]是超分辨率重建方法的重要理論方法之一。該方法以其強大的先驗知識包含能力,成為圖像復原領域中的一種主要方法,并得到了很好的應用。其基本原理是:把高分辨率圖像的每一個約束條件定義為向量空間的一個凸集合,所求高分辨率圖像包含于這些集合中,取得這些集合的交集,就可得到超分辨率圖像的解?;綪OCS算法的流程描述為:先利用插值預估超分辨率圖像,也就是建立參考幀,然后根據觀察圖像和參考幀進行圖像配準,從而指導圖像修正,直到可接受的重建圖像。
本文為了更好地突出人臉圖像的結構特點,對基本的POCS算法進行了改進,將原始小人臉圖像增強處理,更加能夠突出人臉結構特征,再將該圖像作為POCS算法的低分辨圖像的輸入,其次,應用雙三次樣條插值放大,并利用中值濾波進行優化得到高分辨圖像初始值Y1,最后本文采用最小絕對差分配準則的塊匹配算法進行圖像配準,將觀測圖像YK與Y1進行配準,當圖像配準不滿足要求時,進行圖像賦值投影和矯正,直到符合迭代要求,就停止迭代,輸出結果。改進的POCS算法流程如圖2所示。

圖2 本文改進POCS算法流程圖
本文算法[6]中利用待采樣點周圍16個點的灰度值作三次插值,不僅考慮到4個直接相鄰點的灰度影響,而且考慮到各鄰點間灰度值變化率的影響,可以得到更接近高分辨率圖像的放大效果,式(11)為雙三次插值公式,其中A、B、C均為矩陣,分別如式(9)-(11)所示,且式(9)、(11)中的數學表達函數S(x)如式(12)所示,在優化插值的基礎上,修改像素間的偏差距離,能使圖像最大地保持邊緣細節信息;

本文實驗重點研究了小人臉圖像中的人臉檢測問題,實驗物理環境:64位的Windows 10操作系統PC一臺,8GB內存,CPU為Intel Core i5-6300HQ,GPU為NVIDIA GeForce GTX 950M,主要軟件環境有Python 3.6版本、OpenCV 3.1版本、TensorFlow 2.0版本、NVID?IA顯卡加速庫CUDA 10.0版本,人臉檢測算法采用的是Dlib模型人臉檢測算法。
本文試驗中,人臉圖像增強部分所用到的算法均源于Python的自帶模型庫。小人臉圖像依次經過了直方圖均衡化、均值濾波和邊緣增強的處理,以處理后的圖像作為改進POCS算法的輸入,對圖像進行了重建。實驗選擇了一組具有部分遮擋的集體畢業照錄像中的幀作為原圖輸入,原始圖像大小650×340像素,總人臉數為132,分別采用三次樣條插值算法、基本POCS算法以及本文改進的算法分別進行2倍、4倍大小放大,再利用原圖和三種算法得到的超分辨率圖像分別在Dlib人臉檢測模型算法中進行小人臉檢測,其中4倍檢測效果分別如下圖3(a)-(d)所示。

圖3 原圖及三種超分辨率圖像小人臉檢測效果圖
由圖3(a)-(d)中原圖及三種超分辨率圖像小人臉檢測效果圖可以看出,由于原圖像素較小,在人臉較小的情況下,無法獲取人臉特征,利用Dlib人臉檢測模型檢測不到人臉,因此,本文實驗中分別用三次樣條插值、基本POCS以及本文所提出的改進POCS算法進行4倍放大后,再進行人臉檢測,都可以檢測到小人臉。此外,實驗進一步將原圖根據三種算法進行了2倍重建后人臉檢測測試,根據實驗中的檢測,對檢測數據進行統計,如表1所示。

表1 測試結果對比
由表1的測試數據分析可以看出,通過三次插值2倍重建的圖像檢測不到,4倍重建的圖像檢測率為52.27%,基本POCS算法重建2倍圖像檢測率為57.58%,而4倍重建圖像檢測率較高達到了90.90%,本文提出的POCS算法重建2倍圖像檢測率為68.94%,而本文改進算法的4倍重建檢測率達到了93.94%。從對比結果可以看出,圖像的超分辨率重建可以有效提高小人臉圖像的人臉檢測率,并且隨著人臉圖像重建倍數的增大,檢測率精準率越高,本文提出的改進算法在與三次樣條插值以及基本的POCS算法的對比中,可以看出本文的算法在重建倍數越高的情況下,檢測率越高,在同等條件下比三次樣條插值以及基本的POCS算法都有更好的表現。
本文結合傳統圖像增強技術和圖像超分辨率重建算法,針對實際應用中視頻流小人臉檢測難度大、誤檢率高的問題,結合人臉圖像結構信息及特點,提出了基于圖像超分辨率的小人臉檢測模型,并設計了應用于小人臉精準檢測的改進POCS圖像超分辨率算法,最后用重建后的圖像進行Dlib人臉檢測模型進行人臉檢測。本文的研究重點有以下幾點:
(1)結合人臉圖像結構信息以及圖像超分辨率恢復算法的特點,提出了基于改進圖像超分辨率的小人臉檢測模型。
(2)設計了應用于小人臉精準檢測的改進POCS超分辨率重建算法,該算法首先對原圖進行圖像增強(直方圖均衡化、圖像降噪、邊緣增強)處理,以獲取各個小人臉結構信息,在此基礎上將增強處理后的圖像作為POCS超分辨率算法的基礎幀,并在傳統的POCS算法中利用三次樣條插值和中值濾波進行邊緣優化超分辨率放大,并不斷與觀測圖像進行配準,進行圖像矯正。
(3)將重建后的圖像進行Dlib人臉檢測模型人臉檢測:本文分別采用三次樣條插值算法、基本POCS算法以及本文改進的算法分別進行2倍、4倍大小重建后人臉檢測,實驗結果表明本文的超分辨率重建算法可以有效提高小人臉圖像的人臉檢測率,并且隨著人臉圖像重建倍數的增大,檢測率精準率越高,