楊必成, 張團(tuán)善
(西安工程大學(xué) 機(jī)電工程學(xué)院, 陜西 西安 710048)
近年來,隨著工業(yè)生產(chǎn)效率的不斷提高,人們對(duì)織物的顏色有了越來越高的要求。以前,織物之間的色差都是由專業(yè)的師傅肉眼進(jìn)行辨別,但是由于長(zhǎng)時(shí)間工作產(chǎn)生的視覺疲勞的影響,織物的色差檢驗(yàn)準(zhǔn)確率較低[1-2]。為了提升檢驗(yàn)的準(zhǔn)確率,機(jī)器視覺被引入織物的色差檢驗(yàn)中,然而由于工業(yè)生產(chǎn)環(huán)境復(fù)雜,不同的燈光顏色以及明暗程度都會(huì)對(duì)織物產(chǎn)生一定的色偏,進(jìn)而影響色差的檢驗(yàn)效果。
移除不同光照顏色帶來的色偏稱為計(jì)算顏色恒常性。計(jì)算顏色恒常性的目標(biāo)是模擬人類視覺系統(tǒng)在不同光照下對(duì)物體顏色的感知能力保持不變的特性。隨著人工智能的發(fā)展,計(jì)算顏色恒常性為計(jì)算機(jī)視覺下游任務(wù)提供了穩(wěn)定的顏色特征,例如:目標(biāo)檢測(cè)、3維重建等。因此,顏色恒常性在計(jì)算機(jī)視覺中扮演著越來越重要的角色。
目前,計(jì)算顏色恒常性的方法分為2類:基于統(tǒng)計(jì)的方法和基于學(xué)習(xí)的方法。最經(jīng)典的統(tǒng)計(jì)算法是灰度世界算法(gray-world),該算法假設(shè)世界上的顏色都趨向于中性灰色,因此,光照顏色可以被估計(jì)為輸入圖像的平均顏色。隨后,在此基礎(chǔ)上又提出了灰色陰影算法(shade of grey)和灰色邊緣算法(grey-edge)。這類算法是高效、快速、敏捷的,但由于是利用像素統(tǒng)計(jì)和物理特征來估計(jì)場(chǎng)景中的光照且對(duì)于光照反射的分布統(tǒng)計(jì)過于簡(jiǎn)化,因而很難去處理復(fù)雜世界的復(fù)雜場(chǎng)景。隨著機(jī)器學(xué)習(xí)和深度學(xué)習(xí)的不斷發(fā)展,基于學(xué)習(xí)的顏色恒常性算法在性能方面得到了很大的提高。Barron等[3]提出了快速傅里葉顏色恒常性,這個(gè)算法是把顏色恒常性問題轉(zhuǎn)化為環(huán)面上的空間定位問題,通過頻域操作,性能得到了很大的提高,可以作為一種精確、實(shí)時(shí)的自動(dòng)白平衡算法。Hu[4]等提出了帶有置信度加權(quán)池的全卷積顏色恒常性算法,該模型會(huì)自適應(yīng)地給予每個(gè)patch局部位置不同的權(quán)重來進(jìn)行端對(duì)端的訓(xùn)練,解決了某些patch可能包含信息模糊的問題,從而實(shí)現(xiàn)了更高的效率和準(zhǔn)確性。Banic[5]等提出了基于學(xué)習(xí)的無監(jiān)督的顏色恒常性模型,模型在逼近訓(xùn)練圖像的未知真實(shí)地面光照后學(xué)習(xí)其參數(shù)值,避免了校準(zhǔn)。McDonagh[6]等把相機(jī)自適應(yīng)顏色恒常性問題視為少鏡頭的元學(xué)習(xí)問題,利用色溫的概念進(jìn)行少樣本的回歸任務(wù),可以快速適應(yīng)之前看過的相機(jī)。Afify等[7-14]在顏色恒常性方面做出了很大的貢獻(xiàn),利用基于U-Net的多輸入多輸出網(wǎng)絡(luò)結(jié)構(gòu)提出了跨相機(jī)卷積顏色恒常性,這個(gè)模型可以生成卷積顏色恒常性的權(quán)重從而動(dòng)態(tài)的適應(yīng)不同的相機(jī),同時(shí)挑戰(zhàn)傳統(tǒng)的單幀時(shí)域顏色恒常性算法,通過取景器中的多幀來完成光照顏色的估計(jì)。最近,Tang等[15]使用統(tǒng)計(jì)方法與遷移學(xué)習(xí)相結(jié)合的思想,把數(shù)據(jù)集處理為與相機(jī)無關(guān)的情況,從而實(shí)現(xiàn)了跨相機(jī)顏色恒常性。Zhou[16]等為了消除場(chǎng)景光照對(duì)染色織物色差評(píng)價(jià)的影響,提出了一種基于極限學(xué)習(xí)機(jī)和灰狼優(yōu)化器-蟻獅優(yōu)化器的染色織物光照校正算法。另外,Zhou[17]等針對(duì)印染環(huán)境中光源的不穩(wěn)定會(huì)引起織物表面顏色的變化,造成嚴(yán)重的色差評(píng)價(jià)誤差問題,提出了一種基于正則化隨機(jī)向量函數(shù)鏈接網(wǎng)絡(luò)的染色織物光照估計(jì)方法。Liu[18]等針對(duì)染色織物易受光線變化影響,影響染色織物色差分類正確性的顏色特性,提出了基于改進(jìn)海洋捕食者算法優(yōu)化隨機(jī)向量函數(shù)鏈的染色織物色恒度計(jì)算方法。后來,Liu[19]等為了解決現(xiàn)有照明估計(jì)方法在圖像恢復(fù)時(shí)精度不高的問題,提出了一種基于鯨魚優(yōu)化算法的隨機(jī)向量函數(shù)鏈接照明估計(jì)算法。以上這些基于學(xué)習(xí)的方法相較于基于統(tǒng)計(jì)的方法,在準(zhǔn)確性方面有很大的提高,也可以去處理復(fù)雜世界中的場(chǎng)景。但是,由于計(jì)算量和參數(shù)量較大,在速度、推理方面較慢,不適合部署到計(jì)算機(jī)資源有限的移動(dòng)終端上。
因此,本文提出了一種基于改進(jìn)ShuffleNetV2的織物顏色恒常性算法。這個(gè)算法以ShuffleNetV2的框架為基礎(chǔ)[20-21],使用H-Sigmoid激活函數(shù)代替ReLU激活函數(shù),引入通道注意力機(jī)制[22]。在公共數(shù)據(jù)集上的結(jié)果表明,本文提出的算法可以有效地消除圖像中的色偏,而且在織物的顏色校正上短時(shí)間內(nèi)也能取得很好的效果。
在RGB顏色空間中,物體表面一點(diǎn)的顏色與相機(jī)、物體表面、光照有關(guān),圖像成像模型如下:
(1)
式中:x表示RGB空間中的坐標(biāo);λ表示可見光的波長(zhǎng);[m1,m2]表示可見光譜,可見光波長(zhǎng)范圍為380~780 nm;g(x)表示實(shí)際獲取的圖片;E(λ)表示光源光譜分布;R(x,λ)表示物體表面x處在標(biāo)準(zhǔn)白光照射下的光譜反射率;C(λ)表示相機(jī)傳感器的感光特性函數(shù)。
如果在圖像采集的過程中,場(chǎng)景中只有一種光源,那么光照顏色只與光源的光譜分布和相機(jī)的感光特性函數(shù)有關(guān),那么光照顏色可表示為
(2)
式中,e代表的是光照顏色向量。
與VonKries模型類似,在2種不同光照下,同一相機(jī)拍攝出來的同一場(chǎng)景的圖片可以由對(duì)角乘積來互相轉(zhuǎn)換??梢员硎緸?/p>
(3)
由對(duì)角模型可知,顏色恒常性問題的解決需要估計(jì)出場(chǎng)景光源的顏色。神經(jīng)網(wǎng)絡(luò)可以學(xué)習(xí)一個(gè)函數(shù)來估計(jì)出光源的顏色,可表示為
ec=f(I)。
(4)
式中:ec表示光源顏色;I表示輸入圖片;f(I)表示構(gòu)建的神經(jīng)網(wǎng)絡(luò)。
為了充分提取關(guān)于光照的顏色特征并解決部署在計(jì)算資源有限的移動(dòng)終端的算法適配性不強(qiáng)的問題,提出了基于改進(jìn)ShuffleNetV2的顏色恒常性算法,該算法的整體網(wǎng)絡(luò)框架如圖1所示(見封2)。本文算法首先對(duì)數(shù)據(jù)集進(jìn)行預(yù)處理,將預(yù)處理后的圖片傳入改進(jìn)的ShuffleNetV2結(jié)構(gòu)進(jìn)行特征提取,提取出的特征經(jīng)過6×6×64以及1×1×4兩個(gè)卷積層后得到4維特征層,第1維特征層為confidence(置信度),剩余3維特征層為estimation(估計(jì))。然后通過對(duì)提取的特征進(jìn)行置信度加權(quán)以獲得更多的用于光照估計(jì)的特征從而準(zhǔn)確地估計(jì)出光源,最終,用估計(jì)出來的光源來矯正帶有色偏的圖片,從而獲得標(biāo)準(zhǔn)光源下的圖片。
ShffleNetV2網(wǎng)絡(luò)的框架是根據(jù)4條輕量化網(wǎng)絡(luò)設(shè)計(jì)準(zhǔn)則進(jìn)行搭建的:1)輸入輸出通道數(shù)相同時(shí),內(nèi)存訪問量MAC(內(nèi)存訪問成本)最小;2)分組數(shù)過大的分組卷積會(huì)增加MAC;3)碎片化操作對(duì)并行加速不友好;4)逐元素操作(element-wise)帶來的內(nèi)存訪問和耗時(shí)不可忽略。根據(jù)這4條準(zhǔn)則設(shè)計(jì)出的ShffleNetV2網(wǎng)絡(luò)單元結(jié)構(gòu)如圖2所示。
(a) stride=1(b) stride=2
在圖2(a)的單元結(jié)構(gòu)(下稱a單元結(jié)構(gòu))中,首先對(duì)輸入的特征圖進(jìn)行Channel Split(特征層在通道維度劃分),把輸入特征圖的維度分給左、右分支各一半,左分支的經(jīng)過Channel Split后保持不變;右分支通過3個(gè)卷積,分別為步距為1的1×1的普通卷積,3×3的DWConv(深度可分離卷積),1×1的Conv(普通卷積);左右分支的結(jié)果通過Concat連接(特征層在通道數(shù)維度進(jìn)行拼接),最終通過Channel Shuffle(通道重洗)使得通道之間的信息充分融合。在圖2(b)的單元結(jié)構(gòu)(下稱b單元結(jié)構(gòu))中,一開始沒有進(jìn)行Channel Split,左分支通過步距為2的3×3的深度可分離卷積之后,緊接著經(jīng)過1×1的普通卷積;右分支通過2個(gè)1×1的普通卷積、1個(gè)3×3的步距為2的深度可分離卷積。最后通過Channel Shuffle來實(shí)現(xiàn)不同組之間的信息融合。
a單元結(jié)構(gòu)左分支從1×1的分組卷積換為1×1的普通卷積滿足了準(zhǔn)則2分組數(shù)過大的分組卷積會(huì)增加MAC;右分支沒有進(jìn)行任何操作滿足了準(zhǔn)則3碎片化程度對(duì)并行加速不友好;最后用Concat代替Add(特征層在各自維度進(jìn)行相加)以及ReLU(激活函數(shù))放在Concat之上滿足了準(zhǔn)則4的逐元素操作會(huì)增加內(nèi)存訪問;左右分支輸入輸出的Channel數(shù)相同滿足了準(zhǔn)則1的條件。b單元結(jié)構(gòu)同樣也滿足4條準(zhǔn)則。ShuffleNetV2的單元結(jié)構(gòu)設(shè)計(jì)大大加速了網(wǎng)絡(luò)的推理速度,適合部署在計(jì)算機(jī)資源有限的移動(dòng)終端上。
如圖3所示,ShuffleNetV2 0.5x網(wǎng)絡(luò)結(jié)構(gòu)的輸入圖片大小為3×224×224,經(jīng)過卷積核大小為3×3、步距為2的普通卷積后得到24×112×112的特征圖,緊接著是卷積核大小為3×3、步距為2的最大池化層得到24×56×56的特征圖,然后通過Stage2、Stage3、Stage4。每個(gè)Stage都是由ShuffleNetV2的a單元結(jié)構(gòu)以及ShuffleNetV2的b單元結(jié)構(gòu)組成,每個(gè)Stage中a單元結(jié)構(gòu)以及b單元結(jié)構(gòu)的重復(fù)次數(shù)的比例分別為1:3、1:7、1:3。最后,通過1×1的普通卷積以及全局池化層來防止過擬合,提高網(wǎng)絡(luò)的泛化能力。
圖3 ShuffleNetV2網(wǎng)絡(luò)結(jié)構(gòu)Fig.3 ShuffleNetV2 network structure
圖4為改進(jìn)后的ShuffleNetV2網(wǎng)絡(luò)結(jié)構(gòu)圖。與分類網(wǎng)絡(luò)不同的是,顏色恒常性網(wǎng)絡(luò)結(jié)構(gòu)不需要提取特別復(fù)雜的特征信息,僅僅需要中層語義信息。因此,去除Stage4模塊,并且把Stage2、Stage3中a單元結(jié)構(gòu)與b單元結(jié)構(gòu)的Repeat的次數(shù)比例分別調(diào)整為1∶1。同時(shí)在每個(gè)Stage的ShuffleNetV2單元結(jié)構(gòu)中添加ECA注意力機(jī)制模塊,來關(guān)注明暗、顏色等特征信息。在Conv1中使用H-Sigmoid激活函數(shù)代替ReLU激活函數(shù),使得網(wǎng)絡(luò)結(jié)構(gòu)深度降低的同時(shí)仍然可以保證網(wǎng)絡(luò)的性能。改進(jìn)的ShuffleNetV2結(jié)構(gòu)經(jīng)過2個(gè)卷積層后得到一個(gè)4維特征層,第1維為置信度,剩余3維為估計(jì),置信度與估計(jì)進(jìn)行加權(quán)后使得圖片的不同局部區(qū)域具有不同的權(quán)重,進(jìn)而更加準(zhǔn)確的估計(jì)出光照顏色。
圖4 改進(jìn)的ShuffleNetV2網(wǎng)絡(luò)結(jié)構(gòu)Fig.4 Improved ShuffleNetV2 network structure
顏色恒常性網(wǎng)絡(luò)結(jié)構(gòu)主要是為了進(jìn)行光照估計(jì),因而提取顏色特征是很關(guān)鍵的。通道注意力機(jī)制主要關(guān)注的是明暗、顏色等特征,空間注意力機(jī)制主要關(guān)注的是空間中的某部分物體,因此在網(wǎng)絡(luò)中增加通道注意力機(jī)制可以更好的提取顏色特征。常用的通道注意力機(jī)制有ECA和SE。ECA通道注意力機(jī)制相當(dāng)于是SE通道注意力機(jī)制的改進(jìn)版本,它是一種輕量的通道注意力機(jī)制模塊,模型復(fù)雜度小。SE注意力機(jī)制對(duì)輸入的特征圖進(jìn)行了通道壓縮,而這樣的壓縮對(duì)學(xué)習(xí)通道之間的依賴關(guān)系有不利影響。其次,SE注意力機(jī)制模塊捕獲所有通道的依賴關(guān)系,因而是低效的。ECA注意力機(jī)制避免降維,使用一個(gè)1D卷積代替原來的全連接層,實(shí)現(xiàn)了跨通道信息的獲取,提高了通道之間的依賴關(guān)系。
ECA注意力機(jī)制首先對(duì)特征圖進(jìn)行全局平均池化,其次進(jìn)行卷積核大小為k的1維卷積操作,并使用sigmoid激活函數(shù)得到各個(gè)通道的權(quán)重。權(quán)重與原始輸入特征圖對(duì)應(yīng)元素的乘積得到最終的輸出特征圖,如圖5所示。其中卷積核的大小是根據(jù)通道系數(shù)自適應(yīng)選擇,公式如下:
圖5 ECA注意力機(jī)制模塊Fig.5 ECA attention mechanism module
(5)
式中:ksize是指卷積核大小;b與Cgamma都是常量,分別等于1和2;a表示通道個(gè)數(shù)。
本文的實(shí)驗(yàn)環(huán)境為英特爾i5CPU,GPU為NVIDIA GeForce RTX3080,12GB顯存,操作系統(tǒng)為Ubuntu 20.02的64位系統(tǒng)。本文所提網(wǎng)絡(luò)是在Python3.7.2、Pytorch1.9.1下搭建的。實(shí)驗(yàn)中采用Adam優(yōu)化器進(jìn)行網(wǎng)絡(luò)反向傳播的優(yōu)化,使用余弦淬火學(xué)習(xí)率進(jìn)行網(wǎng)絡(luò)的迭代訓(xùn)練。
為了驗(yàn)證本文算法的有效性,實(shí)驗(yàn)采用Gehler-shi和NUS-8兩個(gè)常用的顏色恒常性算法公共數(shù)據(jù)集。Gehler-shi數(shù)據(jù)集[23]是最經(jīng)典的1個(gè)數(shù)據(jù)集,它包含室內(nèi)和室外的場(chǎng)景圖片共568張,這些圖片分別是由Cannon 1D和Cannon 5D相機(jī)進(jìn)行捕捉得到。NUS-8數(shù)據(jù)集[24]一共有1 736張圖片,該數(shù)據(jù)集中的圖片是由8個(gè)相機(jī)進(jìn)行捕捉得到,每張圖片包含用于提供光源真實(shí)顏色的顏色檢查器,進(jìn)行網(wǎng)絡(luò)訓(xùn)練的時(shí)候,這部分被遮蓋。
數(shù)據(jù)集圖片傳入神經(jīng)網(wǎng)絡(luò)之前需要進(jìn)行預(yù)處理,預(yù)處理方式有隨機(jī)裁剪、去馬賽克、去飽和度等一些操作,從而進(jìn)一步加速網(wǎng)絡(luò)的推理過程,提高網(wǎng)絡(luò)的泛化能力。
為了更加準(zhǔn)確地估計(jì)出光源顏色,得到近乎標(biāo)準(zhǔn)光源下的圖片,采用角度誤差函數(shù)作為網(wǎng)絡(luò)訓(xùn)練過程中的損失函數(shù)。
(6)
為了評(píng)估算法的性能,從角度誤差的均值、中值、三均值、最好25%、最差25%等5個(gè)指標(biāo)來進(jìn)行評(píng)估。
表1的角度誤差統(tǒng)計(jì)結(jié)果表明,在Gehler-shi數(shù)據(jù)集上,本文算法在中值、均值、三均值指標(biāo)上都有最優(yōu)的結(jié)果,在最好25%、最差25%指標(biāo)上有著競(jìng)爭(zhēng)性的結(jié)果,表明本文算法性能不錯(cuò)。表2的角度誤差統(tǒng)計(jì)結(jié)果表明,在NUS數(shù)據(jù)集上,本文算法在均值、最好25%、最差25%指標(biāo)上有著最優(yōu)的結(jié)果,在均值與中值指標(biāo)上有著競(jìng)爭(zhēng)性的結(jié)果,表明本文算法在面對(duì)復(fù)雜環(huán)境時(shí)穩(wěn)健性以及魯棒性較好,因此可以處理復(fù)雜世界的復(fù)雜場(chǎng)景。
表1 Gehler-shi數(shù)據(jù)集上角度誤差統(tǒng)計(jì)結(jié)果Table1 Statistical results of angle error on Gehler-shi dataset
表2 NUS數(shù)據(jù)集角度誤差統(tǒng)計(jì)結(jié)果Table 2 Statistical results of angle error on NUS dataset
表3的實(shí)驗(yàn)結(jié)果表明,不同的基于學(xué)習(xí)的顏色恒常性算法模型復(fù)雜度不同,因此,每個(gè)模型的參數(shù)量不同,一般情況而言,參數(shù)量越大,FLOPs(計(jì)算量)就越大,從而網(wǎng)絡(luò)推理每張圖片所用時(shí)間不同。從實(shí)驗(yàn)結(jié)果可以看出,本文的算法的參數(shù)量最少,因而間接表明網(wǎng)絡(luò)的推理速度最快,測(cè)試一張圖片大約需要0.02 s,滿足了部署在資源有限的移動(dòng)終端的性能要求。
表3 不同算法之間的復(fù)雜度對(duì)比Table 3 Complexity comparison between different algorithm
實(shí)驗(yàn)平臺(tái)主要是由電腦、 相機(jī)、 光源、 傳送帶、 可調(diào)節(jié)支架、 織物等裝置組成, 如圖6所示。 電腦是i5CPU,GPU為NVIDIA GeForce MX250,2GB顯存; 相機(jī)選擇邁德威視公司的MV-LD-25-5M-K工業(yè)鏡頭, 焦距為0 1—電腦; 2—光源; 3—布匹; 4—傳送帶; 5—相機(jī); 6—可調(diào)支架。圖6 織物顏色校正平臺(tái)Fig.6 Fabric color correction platform 通過調(diào)節(jié)紅、綠、藍(lán)LED光源的亮度為25%、50%、75%及100%的不同比例,得到了不同顏色的光源,如品紅色光源、黃色光源等。在這些光源照射的同時(shí),右側(cè)上方也安裝了1個(gè)標(biāo)準(zhǔn)的白色光源進(jìn)行照射,以避免室內(nèi)場(chǎng)景的一些光源亮度不足對(duì)實(shí)驗(yàn)結(jié)果的影響。采集了不同光照下的織物數(shù)據(jù)集,以在公共數(shù)據(jù)集上訓(xùn)練的的算法權(quán)重作為預(yù)訓(xùn)練權(quán)重,來訓(xùn)練織物的顏色恒常性網(wǎng)絡(luò),其流程如圖7所示。實(shí)驗(yàn)結(jié)果表明,所采集的織物數(shù)據(jù)集經(jīng)過本文算法的校正后得到了近似標(biāo)準(zhǔn)光源下照射的織物的結(jié)果。 圖7 訓(xùn)練流程Fig.7 Training flowchart NUS數(shù)據(jù)集的可視化結(jié)果如圖8所示(見封2)。 圖9為織物的顏色校正可視化結(jié)果(見封3)。實(shí)驗(yàn)結(jié)果表明,本文的算法在素布、花布的顏色校正上都得到很不錯(cuò)的效果,對(duì)最后1張織物圖片的校正結(jié)果與標(biāo)準(zhǔn)光照下的結(jié)果有些偏差,可能是由于采樣的時(shí)候相機(jī)的曝光度太高所致,其余3張織物的校正結(jié)果都與標(biāo)準(zhǔn)光照下的結(jié)果近似。 表4是不同織物顏色恒常性算法的色度誤差統(tǒng)計(jì)結(jié)果。從表4可以看出,本文的算法雖然在最小值與平均值上不是最小的,但最大值與標(biāo)準(zhǔn)差是所有算法中最小的,說明算法具有良好的預(yù)測(cè)性能。同時(shí),標(biāo)準(zhǔn)差最小也表明算法的穩(wěn)定性比較好。 表4 不同織物顏色恒常性算法的色度誤差統(tǒng)計(jì)結(jié)果Table 4 Chromaticity error statistics of different fabric color constancy algorithms 本文提出了一種基于改進(jìn)ShuffleNetV2的織物顏色恒常性算法,解決了目前算法部署在計(jì)算機(jī)資源有限的移動(dòng)終端的適配性不強(qiáng)、實(shí)時(shí)準(zhǔn)確校正織物的色偏準(zhǔn)確率不高的問題。在2個(gè)公共數(shù)據(jù)集結(jié)果表明,該算法在FLOPs、參數(shù)量較低的情況下,性能保持較高的水平。在NUS數(shù)據(jù)集上,角度誤差的均值、最好25%、最差25%指標(biāo)上有著最優(yōu)的結(jié)果,在均值與中值指標(biāo)上有著競(jìng)爭(zhēng)性的結(jié)果。在Gehler-shi數(shù)據(jù)集上,角度誤差的中值、均值、三均值指標(biāo)上都有最優(yōu)的結(jié)果,在最好25%、最差25%指標(biāo)上有著競(jìng)爭(zhēng)性的結(jié)果。最后,該算法用于織物的顏色校正取得了滿意的效果,不足之處在于一些織物采集曝光度過高導(dǎo)致與矯正過的織物差別較大。下一步將會(huì)重點(diǎn)研究多光源下的顏色恒常性,提高算法的實(shí)用性。3 結(jié) 論