關(guān)鍵詞:HSV色彩空間;感興趣區(qū)域;目標(biāo)檢測;色彩閾值
0 引言(Introduction)
基于深度學(xué)習(xí)的目標(biāo)檢測在大部分場景中的應(yīng)用效果顯著,具有重大的現(xiàn)實(shí)意義[1]。基于深度學(xué)習(xí)的目標(biāo)檢測的計(jì)算量大,因此在移動和嵌入式設(shè)備中部署深度學(xué)習(xí)檢測模型面臨設(shè)備算力不足的問題[2]。使用感興趣區(qū)域(Region of Interest,ROI)提取是解決設(shè)備算力不足問題的一種有效方法,它的恰當(dāng)運(yùn)用可大幅縮短處理時間[3]。手動標(biāo)注是常規(guī)的感興趣區(qū)域提取方法,雖然精度較高但是效率過低。有一些學(xué)者使用閾值分割、邊緣檢測等方法實(shí)現(xiàn)自動提取感興趣區(qū)域,但這些方法只關(guān)注灰度圖中與色彩無關(guān)的邊緣輪廓等信息,造成色彩信息的浪費(fèi)[4]?;谏实哪繕?biāo)檢測通常在RGB(Red,Green,Blue)色彩空間進(jìn)行,但即使同一種顏色的物體,在不同的光照強(qiáng)度、角度、陰晴天氣等條件下,其分量值差異也會很大。也有一些學(xué)者進(jìn)行了HSV色彩空間的檢測研究,如鄒偉[5]通過分析色度峰值后,采用人工方式劃定HSV閾值,實(shí)現(xiàn)了使用機(jī)器視覺技術(shù)對柑橘品質(zhì)的分類。游子繹等[6]采用綜合多色彩空間檢測結(jié)果的方法,降低了無人機(jī)影像檢測對松枯死樹的漏檢率。但是,以上解決方法只使用了HSV色彩空間中單個維度的信息,不能充分挖掘其各分量之間的關(guān)聯(lián)。
1 研究與實(shí)現(xiàn)方法(Research and implementationmethod)
為解決以上問題,首先,將檢測目標(biāo)圖像的像素信息由RGB色彩空間轉(zhuǎn)換為HSV色彩空間,并通過MATLAB軟件實(shí)現(xiàn)兩種色彩空間下的可視化,對大量圖像的色彩分布特性進(jìn)行分析,從而選定在H-S平面下進(jìn)行研究。其次,提出色相-飽和度感興趣區(qū)域(Hue-Saturation Region of Interest,HS-ROI)提取方法,使用DBSCAN聚類算法對映射在H-S平面的像素點(diǎn)群數(shù)據(jù)進(jìn)行去離群點(diǎn)處理,得到主色彩的散點(diǎn)分布數(shù)據(jù)后,使用Quickhull凸包算法擬合主色彩在H-S維度平面的分布范圍,根據(jù)獲取的色彩區(qū)域信息對待檢測圖片像素進(jìn)行遍歷,保留符合條件的像素并將背景設(shè)置為白色,然后過濾雜亂像素,返回擴(kuò)展的邊界框信息,根據(jù)此邊界框信息提取原圖中的感興趣區(qū)域。HS-ROI方法研究與實(shí)現(xiàn)流程如圖1所示。
2 色彩空間轉(zhuǎn)換(Color space conversion)
2.1 RGB色彩空間與HSV色彩空間
RGB色彩空間是一種面向計(jì)算機(jī)及顯示設(shè)備的色彩模型,是數(shù)碼設(shè)備中常見的色彩空間,也是計(jì)算機(jī)圖形數(shù)據(jù)默認(rèn)的存儲形式。其色彩的展現(xiàn)基于三原色理論,是一種混色的色彩模式。R、G、B的意義分別對應(yīng)為紅、綠、藍(lán)三種顏色的英文首字母,其3個顏色分量也被稱作“通道”。RGB顏色模型如圖2(a)所示。
人眼對R、G、B三種顏色的敏感度不同,因此在色彩空間中,兩種顏色間的知覺差異并不能簡單地通過計(jì)算兩點(diǎn)間的距離表示。并且,由于RGB色彩模式具有混色特性,圖像中的三個顏色通道數(shù)值高度相關(guān),使得即使在差異非常細(xì)微的情況下,由光學(xué)設(shè)備從現(xiàn)實(shí)生活中獲得的真實(shí)圖像中的兩種顏色,其部分通道值也會出現(xiàn)跳變的情況。鑒于以上原因,基于RGB色彩空間模式的數(shù)據(jù)處理應(yīng)用并不適用于對圖像的分類和檢測等。
HSV色彩空間是基于色相(Hue,H)、飽和度(Saturation,S)、明度(Value,V)3個顏色分量指標(biāo)的圓柱坐標(biāo)系的色彩模型。其中,色相表示人眼所能感知的顏色種類,在HSV顏色模型中,所有的顏色分布在一個平面的色相環(huán)上,整個色相環(huán)為360°的圓心角,不同的角度代表不同的顏色;明度用來控制色彩的明暗變化;飽和度也是使用[0,1]的值描述在相同色相、相同明度下的色彩純度變化,比如在同樣的色相與明度情況下的綠色,根據(jù)飽和度分為不同程度的深綠色與淺綠色。與RGB色彩空間相比,HSV色彩空間使用這3個指標(biāo)能更直接、準(zhǔn)確地描述檢測目標(biāo)的色彩特點(diǎn)[7],對于相近顏色的變化差異,可以更直觀地使用HSV中的分量指標(biāo)體現(xiàn)出來,HSV顏色模型如圖2(b)所示。
2.2 RGB色彩空間到HSV色彩空間的轉(zhuǎn)換
圖像在顯示設(shè)備上是由像素點(diǎn)按規(guī)定順序排列在相應(yīng)的位置而形成并存儲于設(shè)備中,每個像素點(diǎn)都存在由此像素點(diǎn)對應(yīng)位置的RGB數(shù)據(jù)。每個像素點(diǎn)的HSV色彩空間的分量值可以由RGB值通過非線性變換獲得,具體過程如下。
Step1:以廣泛使用的8 bit色深數(shù)據(jù)為例,記圖像中第i 行的第j 列的像素點(diǎn)ij 的數(shù)據(jù)為(Rij,Gij,Bij),轉(zhuǎn)換前需先將像素點(diǎn)ij 的RGB值進(jìn)行歸一化處理:
Step2:將像素點(diǎn)ij 在RGB色彩空間中歸一化后的數(shù)據(jù)通過公式(2)至公式(4)映射到HSV色彩空間,其中max和min分別為(Rij,Gij,Bij)中的最大值與最小值:
由此得到像素點(diǎn)ij 在RGB色彩空間映射到HSV色彩空間下的坐標(biāo)值(Hij,Sij,Vij),對應(yīng)HSV色彩空間圓柱坐標(biāo)系中的一點(diǎn);將圖像中每個像素點(diǎn)根據(jù)公式(2)至公式(4)進(jìn)行映射,得到圖像所有像素點(diǎn)在HSV色彩空間下的H、S、V坐標(biāo),坐標(biāo)參數(shù)與HSV色彩空間上的位置一一對應(yīng),根據(jù)這種方式可以得到HSV空間下的散點(diǎn)圖。
讀取圖片中每個像素點(diǎn)的RGB數(shù)據(jù)后,將每個像素點(diǎn)RGB數(shù)據(jù)根據(jù)公式(1)至公式(4)進(jìn)行轉(zhuǎn)換,獲得HSV色彩空間數(shù)據(jù),采用這些數(shù)據(jù)創(chuàng)建散點(diǎn)圖,以此進(jìn)行數(shù)據(jù)可視化。由于常規(guī)的仿真軟件實(shí)現(xiàn)三維數(shù)據(jù)可視化是基于笛卡兒坐標(biāo)系實(shí)現(xiàn)的,需將HSV空間的極坐標(biāo)值通過公式(5)轉(zhuǎn)換為笛卡兒坐標(biāo)值,目的是在笛卡兒坐標(biāo)系中,模擬圖片的HSV色彩空間的數(shù)據(jù)分布。
將一張?zhí)O果圖片中的像素數(shù)據(jù)分別進(jìn)行RGB與HSV色彩空間散點(diǎn)的可視化和HSV色彩空間H-S數(shù)據(jù)極坐標(biāo)下的可視化,HSV色彩空間與RGB色彩空間下的像素分布情況如圖3所示。
圖3(a)為蘋果的原圖像,圖3(b)由各像素點(diǎn)在RGB色彩空間信息映射到笛卡兒坐標(biāo)系得到,圖3(c)為HSV色彩空間像素散點(diǎn)數(shù)據(jù)由公式(5)對應(yīng)在笛卡兒坐標(biāo)系下位置的映射得到,圖3(d)為各像素的色相、飽和度在極坐標(biāo)平面下的分布,其中極角變化代表色相變化,而極徑方向?qū)?yīng)飽和度,此表示方法在本文中保持一致。由圖3(b)與圖3(c)可以觀察到,像素點(diǎn)數(shù)據(jù)在HSV色彩空間下的分布明顯比在RGB色彩空間下的分布集中,并且在明度方向分布較廣。此外,對于具有主色彩的一類物體,其像素點(diǎn)在色相-飽和度(H-S)維度的分布具有聚類現(xiàn)象,而在RGB色彩空間像素點(diǎn)在3個通道的分布并無明顯規(guī)律。
3 主色彩HS 閾值范圍獲取(Acquisition ofmain color HS threshold range)
對大量具有主色彩特征的目標(biāo)圖像在HSV色彩空間內(nèi)散點(diǎn)圖的分布進(jìn)行了研究分析,2.2小節(jié)中“像素點(diǎn)數(shù)據(jù)在HSV色彩空間下的分布明顯比在RGB色彩空間下的分布集中”“在明度方向分布較廣”“在H-S維度的分布具有聚類現(xiàn)象”等規(guī)律在圖片存在主色彩特征的條件下具有普適性。這說明在一定情況下,HSV色彩空間的H-S維度更能反映檢測目標(biāo)的色彩分布特性。同時,考慮到模型計(jì)算量的大小,對HSV色彩空間的像素分布信息范圍的研究可以簡化為在極坐標(biāo)下的H-S平面進(jìn)行。
為了避免在獲取主色彩閾值數(shù)據(jù)時混入雜亂色彩,使用邊緣檢測等方法提取原圖片中目標(biāo)主體,將背景區(qū)域設(shè)置為白色,得到只有主體畫面的圖片。一些檢測目標(biāo)除主色彩外,還附帶了少部分其他色彩,并且主體目標(biāo)中也存在彩色噪點(diǎn),在H-S維度上使用DBSCAN聚類算法進(jìn)行學(xué)習(xí)檢測目標(biāo)的主色彩色相-飽和度閾值,可以在獲得檢測目標(biāo)的色彩同時過濾掉偏離檢測目標(biāo)主色彩的離群點(diǎn)。
3.1 DBSCAN聚類算法
DBSCAN聚類算法是基于密度的聚類方法,屬于機(jī)器學(xué)習(xí)中的無監(jiān)督學(xué)習(xí)方法,擅長解決不規(guī)則形狀的聚類問題[8-9];它將簇看作數(shù)據(jù)空間中被低密度區(qū)域分隔開的稠密對象區(qū)域,其核心概念是通過定義密度可達(dá)性和密度相連性確定簇的邊界,只要鄰近區(qū)域的密度超過某個MinPts,就繼續(xù)聚類,直至找出數(shù)據(jù)空間中密度相連的點(diǎn)的最大集合,即簇。實(shí)現(xiàn)DBSCAN聚類算法方法如下。
給定一個數(shù)據(jù)集D={x1,x2,…,xn},其中的元素xi 為數(shù)據(jù)點(diǎn),DBSCAN聚類算法中定義了以下概念。
Eps:數(shù)據(jù)點(diǎn)關(guān)于Eps 數(shù)值的鄰域半徑,用來確定一個數(shù)據(jù)點(diǎn)的鄰域范圍。
MinPts:鄰域中最小的數(shù)據(jù)點(diǎn)數(shù)目,用來確定核心點(diǎn)。
核心點(diǎn):鄰域存在大于或等于MinPts 個數(shù)據(jù)點(diǎn)。
直接密度可達(dá):若數(shù)據(jù)點(diǎn)p 在q 的鄰域內(nèi),并且q 是一個核心點(diǎn),則p 從數(shù)據(jù)點(diǎn)q 出發(fā)是直接密度可達(dá)的。
密度可達(dá):若存在一個數(shù)據(jù)點(diǎn)鏈p1,p2,…,pn,其中p1=q,pn=p,對于任意pi∈D(1≤i≤n),pi+1 是從pi 關(guān)于Eps和MinPts 直接密度可達(dá)的,則數(shù)據(jù)點(diǎn)p 是從q 關(guān)于Eps 和MinPts 密度可達(dá)的。
DBSCAN聚類算法的實(shí)現(xiàn)步驟如下。
Step1:對于每個數(shù)據(jù)點(diǎn)xi,計(jì)算其半徑為Eps 鄰域內(nèi)的數(shù)據(jù)點(diǎn)數(shù)目Neps(xi)。
Step2:若Neps(xi)≥MinPts,則將xi 標(biāo)記為核心點(diǎn)。
Step3:對于每個核心點(diǎn),從其鄰域內(nèi)選擇一個未被訪問的數(shù)據(jù)點(diǎn),將其加入當(dāng)前簇,并遞歸地將其密度可達(dá)的點(diǎn)加入當(dāng)前簇。
Step4:重復(fù)“步驟3”,直到當(dāng)前簇中的所有數(shù)據(jù)點(diǎn)都被訪問過。
Step5:對于未被訪問的非核心點(diǎn),標(biāo)記為噪聲點(diǎn)和離群點(diǎn)。
通過以上步驟,DBSCAN聚類算法可以將核心點(diǎn)與其密度相連的點(diǎn)連接成簇,同時識別噪聲點(diǎn)和離群點(diǎn)。
3.2 DBSCAN聚類算法處理離群點(diǎn)
在很多情況下,目標(biāo)主體的像素色彩信息在H-S平面的一定范圍內(nèi)呈聚類現(xiàn)象,但在聚類簇之外很大的范圍內(nèi)同樣存在大量雜亂的離群點(diǎn)。在本研究中,使用DBSCAN聚類算法標(biāo)記出離群點(diǎn)和噪聲點(diǎn),通過刪除標(biāo)記的點(diǎn),排除圖像中其他色彩對檢測目標(biāo)主色彩的干擾,得到主色彩的散點(diǎn)數(shù)據(jù),此時處理后的散點(diǎn)數(shù)據(jù)所在極坐標(biāo)上的覆蓋范圍代表檢測目標(biāo)的主色彩在H-S屏幕的色彩范圍。以一張?zhí)幱诎氤墒祀A段橘子的圖片為例,根據(jù)處于半成熟階段橘子圖片的H、S數(shù)據(jù)創(chuàng)建極坐標(biāo)下的散點(diǎn)圖,由此可以發(fā)現(xiàn)在飽和度為0.4~0.6、色相為30°~90°的范圍內(nèi)出現(xiàn)聚類現(xiàn)象,但是在此范圍外明顯存在一定數(shù)量的離群點(diǎn),使用聚類算法對圖片在H-S平面上的數(shù)據(jù)點(diǎn)聚類時,會把這些離群點(diǎn)對應(yīng)的其他雜色誤引入主色彩范圍中,使用DBSCAN聚類算法標(biāo)記并刪除這些離群點(diǎn)后,就排除了其他雜色的干擾,得到處于半成熟階段橘子的主色彩H-S維度的散點(diǎn)數(shù)據(jù)。DBSCAN 聚類算法處理離群點(diǎn)的過程如圖4所示。
使用此方法得到關(guān)于單張檢測目標(biāo)圖片在極坐標(biāo)下的H-S維度的主色彩散點(diǎn)分布數(shù)據(jù)。在不同的光照情況下,如晴天與陰天、中午與黃昏、室內(nèi)與室外等場景,光照的差異往往會影響檢測目標(biāo)圖像的色相和飽和度的呈現(xiàn),即使是同一個物體,在不同的光照條件下其色相與飽和度也會在一定連續(xù)范圍內(nèi)變化,可以根據(jù)實(shí)際情況選用對應(yīng)場景下的圖片進(jìn)行上述處理,以獲取該場景下的主色彩像素分布信息。
3.3 主色彩閾值擬合
對H-S平面上的散點(diǎn)數(shù)據(jù)使用DBSCAN算法聚類且刪除標(biāo)記的離群點(diǎn)后得到的往往是不規(guī)則形狀的簇,但是此時H-S平面中散點(diǎn)簇的覆蓋范圍,對應(yīng)目標(biāo)色彩在H-S平面的色彩范圍。將離散的簇邊緣數(shù)據(jù)連續(xù)化、具體化,能更清晰、明確地表達(dá)簇邊界,可以通過擬合簇邊緣的散點(diǎn)的方式獲取對應(yīng)區(qū)域的邊界信息,擬合后其所覆蓋范圍即目標(biāo)色彩在H-S平面的目標(biāo)色彩范圍。對于不規(guī)則形狀的簇,可以使用Quickhull凸包算法,它將散點(diǎn)簇分割成更小的子集,然后找出小凸多邊形的頂點(diǎn)進(jìn)行擬合[10-11]。使用Quickhull凸包算法實(shí)現(xiàn)3.2小節(jié)中的散點(diǎn)擬合(圖5)。
3.4 主色彩區(qū)域的HS-ROI的提取
根據(jù)3.3小節(jié)中介紹的方法得到檢測目標(biāo)主色彩H-S分布范圍,根據(jù)此范圍對待檢測圖像進(jìn)行ROI提?。簩D像的像素進(jìn)行遍歷,驗(yàn)證像素的H-S數(shù)據(jù)是否在此色彩范圍中,若符合,則保存此像素。遍歷結(jié)束之后,對保留的像素進(jìn)行連通組件分析,使用開運(yùn)算處理圖像,先進(jìn)行腐蝕操作,再進(jìn)行膨脹操作,排除圖片中一些符合主色彩信息但分布在主體之外的雜亂像素。此時,檢測目標(biāo)的主色彩對應(yīng)的像素在其邊界像素之內(nèi),考慮到保留的邊界信息,將得到的區(qū)域位置信息向外擴(kuò)展直至占一定比例的范圍,根據(jù)擴(kuò)展范圍后的像素位置信息確定矩形邊界框左上角(X,Y)坐標(biāo)與矩形框?qū)挾?、高度,將邊界框信息映射到原圖中,提取原圖中邊界框信息對應(yīng)區(qū)域的像素,將得到的畫面作為檢測圖片的候選框區(qū)域,并將其他區(qū)域生成白色掩膜。主色彩區(qū)域的HS-ROI提取示例如圖6所示。
4 實(shí)驗(yàn)與分析(Experiment and analysis)
實(shí)驗(yàn)中選取籃球、葡萄和彩色排針連接器3個類別的物體作為檢測對象,對應(yīng)生活、農(nóng)業(yè)、工業(yè)3個場景中具有主色彩特征的物體(圖7)。對每個類別的物體,根據(jù)光照與角度的不同準(zhǔn)備1 500張圖片進(jìn)行模型訓(xùn)練,準(zhǔn)備100張圖片進(jìn)行檢測實(shí)驗(yàn),每張圖片的分辨率為640×480像素。檢測模型部署于NVIDIA Jetson Nano開發(fā)板,軟件環(huán)境為基于Linux的操作系統(tǒng),使用Python 編程語言,圖像處理與機(jī)器學(xué)習(xí)庫分為OpenCV和PyTorch。
使用ROI提取作為深度學(xué)習(xí)檢測的前處理步驟,由于這種方式更適用于二階段(Two-Stage)的神經(jīng)網(wǎng)絡(luò),所以選用Faster R-CNN神經(jīng)網(wǎng)絡(luò)進(jìn)行檢測實(shí)驗(yàn)。為驗(yàn)證本文方法的性能,將本文方法與以下3種形式的檢測方式進(jìn)行實(shí)驗(yàn)比較。①直接使用Faster R-CNN進(jìn)行檢測。②使用本文的HS-ROI方法生成的區(qū)域代替Faster R-CNN中RPN生成的候選區(qū)(簡稱HS-ROI+Faster R-CNN)后,再進(jìn)行檢測。③使用EdgeBoxes(一種基于邊緣信息生成對象候選框的方法)生成的區(qū)域代替Faster R-CNN中RPN生成的候選區(qū)(簡稱Edge Boxes+Faster R-CNN)后,再進(jìn)行檢測。
本文方法旨在減少模型檢測的計(jì)算量與推理耗時,實(shí)驗(yàn)評價指標(biāo)包括推理耗時(Inference Time)、浮點(diǎn)計(jì)算量(GFLOPs)、召回率(Recall,R)及精確率(Precision,P),并取4個類別檢測指標(biāo)的平均數(shù)據(jù),實(shí)驗(yàn)結(jié)果見表1。
通過分析表1中的數(shù)據(jù)可以發(fā)現(xiàn):HS-ROI+Faster R-CNN在減少推理耗時和計(jì)算量方面表現(xiàn)突出,與Faster R-CNN相比,推理耗時減少了57.08%。同時,浮點(diǎn)運(yùn)算量也從161.8 G降至59.7 G,降幅達(dá)63.1%。同時,在召回率和精確率上也有小幅度提升,分別提升了0.8百分點(diǎn)和0.9百分點(diǎn)。EdgeBoxes+Faster R-CNN雖然在推理耗時上相比于HS-ROI+Faster R-CNN具有一定優(yōu)勢,但其平均召回率和精確率卻明顯下降。
5 結(jié)論(Conclusion)
本文提出一種基于HSV色彩空間的HS-ROI提取方法,將像素數(shù)據(jù)轉(zhuǎn)換為HSV色彩空間,根據(jù)分析的色彩分布特性將色彩在HSV空間的數(shù)據(jù)映射在H-S平面進(jìn)行處理,使用DBSCAN聚類算法過濾掉雜亂色彩數(shù)據(jù)后,使用Quickhull凸包算法獲取此類檢測目標(biāo)對應(yīng)的主色彩分布范圍數(shù)據(jù),由此可以精確定位HSV空間內(nèi)對應(yīng)區(qū)域的目標(biāo)色彩像素,從而提取待檢測圖像的ROI。在嵌入式設(shè)備上進(jìn)行實(shí)驗(yàn)驗(yàn)證,實(shí)驗(yàn)結(jié)果證明,將ROI提取方法運(yùn)用到二階段檢測模型中,能夠在保證準(zhǔn)確率的基礎(chǔ)上顯著降低浮點(diǎn)運(yùn)算量,同時減少整個檢測過程的平均耗時,從而為在移動和嵌入式設(shè)備中部署深度模型進(jìn)行實(shí)時圖像處理和目標(biāo)檢測提供了一種新的優(yōu)化方案。