顏碩彥 錢巨



摘 要:為了解決照片中移動設備屏幕圖像的獲取問題,提出了一種基于視覺的移動設備屏幕圖像提取與規范化方法。首先使用輪廓識別算法對原始圖像進行邊緣檢測,獲得包含設備和手部的輪廓;其次,通過種子填充法從輪廓得到設備和手部的填充區域;接著在原始圖像上使用基于顏色空間的皮膚檢測方法得到手部區域,再與之前得到的填充區域做減運算,以得到獨立的設備區域;然后再在獨立設備區域的輪廓上做多邊形擬合,得到設備的四個頂點;最后通過透視變化得到規范化后的設備屏幕圖像。實驗表明,該方法在背景不復雜且設備作為主體的照片環境下具有較高的準確率。
關鍵詞:移動設備;圖像提取;邊緣檢測;皮膚檢測
中圖分類號:TP391????? 文獻標識碼:A
A Visual Screen Extraction and Normalization
Method for Mobile Devices
YAN Shuo-yan,QIAN Ju
(College of Computer Science and Technology, Nanjing University of Aeronautics
and Astronautics,Nanjing,Jiangsu 211106, China)
Abstract:A visual screen extraction and normalization method for mobile devices is proposed to get the mobile devices screen images from photos. First, we do Canny edge detection to detect the edges of the mobile device. The detected edges may include some parts of the hand holding the device. Then, a seed filling operation is conducted on the image of edges to get the filling area of the whole device and parts of the hand. Next, we do color space based skin detection on the original image to get the filling area of the hand. After that, the area of the device can be calculated by subtracting the filling area of the hand from that of the device and parts of the hand. Four corner points of the device can be got by conducting a polygon fitting operation on the calculated area. Finally, we get the normalized device screen image by perspective transformation according to the corner points. The experiment shows that the method accurately works when the subject device is the main object in a photo and the background of the photo is not complicated.
Key words:mobile device;image extraction; edge detection;skin detection
當前移動應用多采用迭代開發的模式,當應用完成開發后,仍然需要對其進行不斷優化。但是,在有限的時間內應該側重于哪部分功能的優化是一個很難決定的問題。通過了解用戶對應用不同功能的使用頻率從而對功能優化設置不同的優先級是非常必要。傳統的方法往往選擇在應用的源碼中加入數據采集功能,以返回用戶使用信息給服務器。該方法實施復雜,且可能影響用戶的使用體驗。
因此,可以使用一種基于圖像的方法來統計應用不同功能的使用頻率。該方法首先收集用戶在移動設備上使用目標應用的日常圖片,接著從圖片中提取出只包含設備屏幕的部分并作規范化處理,最后再根據設備屏幕圖像判斷用戶正在使用的軟件功能,實施統計分析。
對設備屏幕圖像的提取與規范化是該方法的重點。解決該問題的方法通常有兩類,一類是基于機器學習的物體檢測方法,例如著名的YOLO方法[1]。趙德安等使用YOLO深度卷積神經網絡實現了復雜背景下蘋果的檢測定位[2];王宇寧等實現了基于YOLO算法的車輛實時檢測[3]。該類基于機器學習的方法往往需要大量的樣本進行訓練,工作量巨大,而僅使用現有的預訓練模型往往無法在精度上達到要求。
另一類則是使用傳統的圖像處理方法,例如邊緣檢測、輪廓識別等。許鑫杰等開發了一種基于邊緣檢測的零件輪廓識別系統[4];楊靜嫻等實現了基于圖像處理的白酒酒花輪廓檢測[5];林耀海等實現了結合圖像和圖形特征的原木輪廓識別[6]。該類方法工作量較小,可靠性高,在一些給定的場景下也能夠取得令人滿意的準確率。
因此,提出了一種基于傳統圖像處理的移動設備屏幕圖像提取與規范化方法。
1 方法原理流程
由于移動設備日常使用一般都發生在手持場景下,因此,在對設備屏幕進行檢測時,需要特別注意排除人手的存在可能造成的干擾。
圖1展示了對一張日常手持使用移動設備的示例圖片進行屏幕提取和規范化的理想效果圖。
本方法的流程如圖2所示。首先,使用邊緣檢測和輪廓識別算法找到設備的大致輪廓。由于人手的存在,該輪廓無法直接代表設備輪廓,所以需要進一步處理以排除人手對設備輪廓檢測的干擾。接著,使用多邊形擬合的方法在輪廓上找到設備的四個頂點坐標。最后,通過透視矯正得到規范化后的設備屏幕圖像。
2 步驟詳情
2.1 邊緣檢測
常用的邊緣檢測方法包括Sobel、Laplacian、Canny等。圖3是不同邊緣檢測算法在使用Otsu自適應閾值[7-9]的情況下得到的邊緣檢測結果圖像。
就當前問題而言,Sobel方法具有一定抗噪能力,但是對邊緣定位的準確性有所不足,對弱邊緣的檢測能力也有限;Laplacian算法很容易造成目標邊緣信息的丟失,出現邊緣不連續的情況,且抗噪能力較弱;Canny算法不容易受到噪聲干擾,能夠檢測到真正的弱邊緣,效果最好。所以本方法選用Canny算法進行邊緣檢測。
在使用Canny方法得到圖像中邊緣信息的二值圖后,使用輪廓檢測方法選擇圖像中外接矩形面積最大的輪廓作為初步識別的設備輪廓。將該輪廓重新繪制在新的圖像中,如圖4所示。可見,設備輪廓受到了手部輪廓的嚴重干擾,所以接下來需要繼續排除手部輪廓的干擾。
2.2 排除手部輪廓干擾
在得到設備和手部的輪廓信息后,就可以通過種子填充法得到其區域信息。在圖4中,以圖像的4個角落為種子執行漫水填充,完成后再對圖像中的像素全部取反,就得到了包含完整設備以及部分人手的區域,如圖5(a)所示。
接下來,需要將設備區域與人手區域進行區分,以得到只有移動設備的區域。此處,可以使用基于顏色空間的皮膚檢測算法[10]。
基于顏色空間的皮膚檢測算法是一種利用人體膚色與周圍環境顏色的差異實現的檢測算法。可以應用于皮膚檢測的顏色空間有很多,而應用于皮膚檢測的顏色空間也有許多, 目前國際常用的比較正規的色彩空間有RGB、YCbCr、HSV、YUV、LAB等[11-12]。人體的膚色信息在不同的顏色空間中有不同的分布范圍。對于在哪個顏色空間中皮膚檢測能達到最佳的效果引起了許多學者的廣泛關注與研究。
由于YCbCr色彩空間中藍色色度Cb和紅色色度Cr受光照強度影響不大且依賴性不大, 因此本方法采用基于YCrCb顏色空間的皮膚檢測算法。
Y = 0.257*R + 0.564*G + 0.098*B + 16
Cb = -0.148*R – 0.291*G + 0.439*B + 128
Cr = 0.439*R – 0.368*G – 0.071*B + 128(1)
通過如下公式(1)可以將像素點從RGB值轉換成所對應的YCbCr值。再根據人體膚色所處的Cb、Cr值的范圍分割出圖像中的手部區域。最終從原始圖像中檢測出的手部區域,如圖5(b)所示。
將圖5(a)記作Imixed,圖5(b)記作Ihand,最后將Imixed與Ihand作減運算,即得到獨立的設備區域Idevice,如圖5(c)所示。
Idevice = subtract(Imixed, Ihand)(2)
在圖5(c)的基礎上再次進行輪廓檢測,取面積最大的輪廓作為真正的設備輪廓,如圖5(d)所示。
2.3 多邊形擬合得到設備頂點
在得到設備的輪廓信息后,使用Douglas-Peucker算法[13]對輪廓進行多邊形擬合。該算法是一種經典的線要素壓縮算法,主要是通過刪除曲線上的非特征點, 保留特征點來減少數據量, 即通過保留關鍵點, 刪除次要點來達到抽稀壓縮的目的。圖6是該算法的示意圖,其主要步驟如下:
(1)在曲線首尾兩點之間連接一條直線AB,該直線為曲線的弦;
(2)得到曲線上離該直線段距離最大的點C,計算其與AB的距離d1;
(3)比較該距離與預先給定的精度閾值的大小,如果小于該閾值,則該直線段作為曲線的近似,該段曲線處理完畢;
(4)如果距離大于閾值,則用C將曲線分為兩段,并分別對兩段曲線進行步驟(1)~(3)的處理;
(5)當所有曲線都處理完畢時,依次連接各個分割點形成的折線,即可以作為曲線的近似。
算法1 二分法擬合設備頂點的算法
function GetDeviceCornerPoints (C): P
C: all points in device contour
P: four corner points of the device
begin
1 maxThr := 1;
2 FP := PolygonFitting(C, maxThr);
3 while count(FP) >4 do
4 minThr :=? maxThr;
5 maxThr := 2*maxThr;
6 FP := PolygonFitting(C, maxThr);
7 end
8 midThr := (minThr+maxThr)/2;
9 FP := PolygonFitting(C, midThr);
10while count(FP) != 4 do
11midThr := (minThr+maxThr)/2;
12FP := PolygonFitting(C, midThr);
13if count(FP) > 4 then
14minThr:= midThr
15elseif count(FP) < 4 then
16maxThr:= midThr
17end
18end
19P := FP
end
由于該算法只提供的精度閾值,無法直接設置擬合點的個數,所以此處使用二分法逐漸調整該算法的精度閾值,最終控制擬合點的個數為4個,即作為設備輪廓的四個頂點,如算法1所示。
算法2的第1-7行簡單確定了需要查找的精度區間[minThr,maxThr],第8-18行則是在得到的精度區間中使用二分查找法逐漸縮小查找范圍,直到得到的擬合點FP的個數為4個。
擬合的效果圖如圖7(a)所示。
2.4 規范化設備界面圖像
由于通過拍攝得到的設備屏幕圖像往往存在傾斜和透視等情況,所以在得到設備的四個頂點后,還需要對其進行透視變換以得到規范化的設備界面圖像。經過透視變化最終提取得到的設備屏幕圖像如圖7(b)所示。
3 實驗結果分析
選取多張在不同日常場景下使用多種移動設備的照片,在Python3.6環境下基于OpenCV工具進行實驗,以檢驗該方法的準確率。
設備屏幕提取準確的要求有下列三點:
(1)最終得到的規范化圖像至少包含設備完整界面圖像內容85%的占比;
(2)最終得到的規范化圖像中與設備界面無關的內容不超過15%的占比;
(3)最終得到的規范化圖像與理想圖像不存在超過10°的傾斜偏差。
此外,將選取的照片按照3種不同的條件分為以八組進行實驗:
(1)簡單背景,正常光照,手持狀態。
(2)簡單背景,正常光照,放置狀態。
(3)簡單背景,弱光環境,手持狀態。
(4)簡單背景,弱光環境,放置狀態。
(5)復雜背景,正常光照,手持狀態。
(6)復雜背景,正常光照,放置狀態。
(7)復雜背景,弱光環境,手持狀態。
(8)復雜背景,弱光環境,放置狀態。
實驗結果如表1和圖8所示。表1按上述八個分組進行了實驗結果統計,每組選取了30張圖片,并按照上述的準確要求統計結果準確的圖片數量和計算結果準確率。圖8則是分別以單個條件為標準計算得到的準確率對比柱狀圖。
根據實驗結果可知,在正常光照條件簡單照片背景的情況下,手持與放置狀態的設備圖像提取結果均具有較高的準確率(精度分別為80%和83.3%),說明排除手部干擾的步驟起到了很好的效果。
而在正常光照復雜背景下,該方法則不易取得較好的效果(精度僅為60%和43.3%),一方面是因為復雜背景下有時難以得到完整閉合的設備輪廓;另一方面是因為有時會得到移動設備和背景物體的混合輪廓而難以區分;此外,復雜背景下也難以保證移動設備是照片中的主體目標,從而難以選擇正確的輪廓。
此外,在弱光條件下,無論背景是否復雜,都可以得到叫高的準確率(平均精度達到了85.8%)。這是因為弱光環境模糊了照片中物體的輪廓,而設備屏幕由于自發光的原因,可以得到準確的輪廓。
4 結 論
提出了一種使用圖像處理技術從日常照片中提取移動設備屏幕圖像并將其規范化的方法。實驗結果表明,該方法應用在背景不復雜、移動設備作為主要物體的照片中具有較高的準確率。該方法的主要流程可以概括為下面的四個步驟:
(1)通過Canny算法檢測設備邊緣信息;
(2)使用基于YCrCb顏色空間的皮膚檢測算法排除人手對移動設備輪廓定位的干擾;
(3)使用Douglas-Peucker多邊形擬合算法得到設備的四個頂點;
(4)使用透視矯正得到規范化處理后的設備屏幕圖像。
參考文獻
[1] REDMON J, DIVVALA S, GIRSHICK R, et al. You only look once: unified, real-time object detection[C].Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2016: 779-788.
[2] 趙德安,吳任迪,劉曉洋,等.基于YOLO深度卷積神經網絡的復雜背景下機器人采摘蘋果定位[J].農業工程學報,2019,35(3):164-173.
[3] 王宇寧,龐智恒,袁德明.基于YOLO算法的車輛實時檢測[J].武漢理工大學學報,2016,38(10):41-46.
[4] 許鑫杰,王秀鋒,魯文其,等.基于邊緣檢測的零件輪廓識別系統開發[J].機電工程,2019,36(2):201-205.
[5] 楊靜嫻,任小洪.基于圖像處理的白酒酒花輪廓檢測[J].食品與機械,2019,35(12):52-55.
[6] 林耀海,楊澤燦,張澤均.結合圖像和圖形特征的原木輪廓識別[J].福建農林大學學報(自然科學版),2020,49(3):412-417.
[7] MEI Fang YUE Guang-xue, YU Qing-cang. The study on an application of otsu method in canny operator[C].Proceedings of The 2009 International Symposium on Information Processing (ISIP 2009),Academy Publisher, 2009: 109.
[8] 李華強,喻擎蒼,方玫.Canny算子中Otsu閾值分割法的運用[J].計算機工程與設計,2008(9):2297-2299.
[9] SA Ji-ming, SUN Xiao-shuang, ZHANG Ting-ting, et al. Improved Otsu segmentation based on sobel operator[C].International Conference on Systems, 2016: 886-890.
[10]TSAGARIS A, MANITSARIS S. Colour space comparison for skin detection in finger gesture recognition[J].International Journal of Advances in Engineering & Technology, 2013, 6(4): 1431.
[11]CAO Jian-qiu, WANG Hua-qing, LAN Zhang-li. Skin color division base on modified YCrCb color space [J].Journal of Chongqing Jiaotong University (Natural Science), 2010, 3: 40.
[12]吳要領. 基于YCrCb色彩空間的人臉檢測算法的設計與實現[D].成都:電子科技大學,2013.
[13]HERSHBERGER J, SNOEYINK J. An O (n log n) implementation of the Douglas-Peucker algorithm for line simplification[C].Proceedings of the tenth annual symposium on Computational geometry. 1994: 383-384.