李曉晴 張孝昌 才子嘉 馬盡文
(1.北京大學(xué)數(shù)學(xué)科學(xué)學(xué)院信息科學(xué)系,北京 100871;2.軍事醫(yī)學(xué)研究院,北京 100850)
深度神經(jīng)網(wǎng)絡(luò)模型已經(jīng)在眾多的圖像處理任務(wù)中表現(xiàn)出頂級(jí)的水平,但這些模型的學(xué)習(xí)能力通常需要大量合理的訓(xùn)練數(shù)據(jù)作為保障。數(shù)據(jù)的規(guī)模越大、質(zhì)量越高,訓(xùn)練出來的深度神經(jīng)網(wǎng)絡(luò)模型就能夠擁有更好的泛化能力。本質(zhì)上,數(shù)據(jù)的規(guī)模和質(zhì)量直接決定了深度神經(jīng)網(wǎng)絡(luò)模型學(xué)習(xí)的上限。然而,在實(shí)際應(yīng)用中,所采集的數(shù)據(jù)很難覆蓋全部的場(chǎng)景,某些場(chǎng)景也無法獲得大量數(shù)據(jù)。例如,同一場(chǎng)景拍攝的圖像可能由于光線不同就會(huì)產(chǎn)生很大的差異性;醫(yī)學(xué)圖像的獲取往往會(huì)受到條件的限制。另外,盡管可能存在大量的樣本,人工標(biāo)注往往是一件高成本的事情,需要付出很大的代價(jià)。這些問題都會(huì)影響數(shù)據(jù)的數(shù)量和質(zhì)量,從而影響訓(xùn)練出來的深度神經(jīng)網(wǎng)絡(luò)模型的性能。數(shù)據(jù)增強(qiáng)技術(shù)則可以解決數(shù)據(jù)的不足或不平衡等問題,產(chǎn)生更多的等價(jià)數(shù)據(jù),擴(kuò)大訓(xùn)練樣本的個(gè)數(shù)以及多樣性,減小不同類別樣本個(gè)數(shù)的不均衡,從而提升深度神經(jīng)網(wǎng)絡(luò)模型的魯棒性和泛化能力。
在圖像處理和檢索領(lǐng)域中,數(shù)據(jù)增強(qiáng)算法大致可以分為兩類:基本傳統(tǒng)的圖像處理技術(shù)的數(shù)據(jù)增強(qiáng)算法和基于機(jī)器學(xué)習(xí)的數(shù)據(jù)增強(qiáng)算法?;趫D像處理技術(shù)的數(shù)據(jù)增強(qiáng)算法是對(duì)原始訓(xùn)練圖像實(shí)施幾何變換、色彩空間變換等傳統(tǒng)的圖像處理技術(shù)來生成一些新的訓(xùn)練圖像。其中最為典型的方法便是幾何變換,包括翻轉(zhuǎn)、旋轉(zhuǎn)、裁剪、變形、縮放等操作。例如,深度神經(jīng)網(wǎng)絡(luò)AlexNet[1]對(duì)CIFAR數(shù)據(jù)集[2]進(jìn)行分類時(shí),使用了隨機(jī)裁剪和水平翻轉(zhuǎn)等策略來增強(qiáng)數(shù)據(jù)。顏色變換型的數(shù)據(jù)增強(qiáng)[3]方法,包括增加噪聲、模糊、顏色變換、擦除、填充等操作。例如Facebook 的人工智能研究人員則在實(shí)現(xiàn)ResNet 網(wǎng)絡(luò)時(shí)采用了顏色抖動(dòng)[2]的數(shù)據(jù)增強(qiáng)策略。它會(huì)隨機(jī)改變圖像的亮度、對(duì)比度和飽和度。這些傳統(tǒng)的數(shù)據(jù)增強(qiáng)技術(shù)在深度神經(jīng)網(wǎng)絡(luò)的訓(xùn)練中起著重要的作用。然而,具體在實(shí)際使用中,需要結(jié)合數(shù)據(jù)形式選擇相應(yīng)的數(shù)據(jù)增強(qiáng)策略,比如數(shù)據(jù)集是汽車圖像數(shù)據(jù),訓(xùn)練集和測(cè)試集都是正常拍攝的圖像,此時(shí)翻轉(zhuǎn)策略應(yīng)該只使用水平鏡像翻轉(zhuǎn),如果加入垂直或者原點(diǎn)鏡像翻轉(zhuǎn),會(huì)對(duì)原始圖像產(chǎn)生干擾。此外,還需要考慮數(shù)據(jù)增強(qiáng)方法的安全性[4],它是指圖像在轉(zhuǎn)換后保留標(biāo)簽的可能性。例如,旋轉(zhuǎn)和翻轉(zhuǎn)這兩種數(shù)據(jù)增強(qiáng)策略在ImageNet 挑戰(zhàn)賽數(shù)據(jù)集中通常是安全有效的,因?yàn)檫@個(gè)數(shù)據(jù)集中含有貓、狗等物體的圖像,但在數(shù)字識(shí)別任務(wù)中就不安全了,含有數(shù)字“9”的圖像,進(jìn)行翻轉(zhuǎn)增強(qiáng)后得到的可能是“6”,這樣數(shù)據(jù)增強(qiáng)后繼續(xù)保持標(biāo)簽會(huì)影響模型的識(shí)別能力。
基于機(jī)器學(xué)習(xí)的圖像增強(qiáng)算法是采用機(jī)器學(xué)習(xí)方式來進(jìn)行數(shù)據(jù)增強(qiáng)[5-7]。這類數(shù)據(jù)增強(qiáng)算法主要有兩種。第一種是通過機(jī)器學(xué)習(xí)模型來學(xué)習(xí)數(shù)據(jù)的概率分布,然后依此隨機(jī)生成與訓(xùn)練數(shù)據(jù)集分布一致的圖像。例如,Radford等人基于對(duì)抗生成網(wǎng)絡(luò)提出了DCGAN模型[5],可以有效地生成手寫數(shù)字圖像。第二種算法是通過模型學(xué)習(xí)出適合當(dāng)前任務(wù)的數(shù)據(jù)增強(qiáng)方法。AutoAugment[6]是這種方法的典型代表。它能夠使用增強(qiáng)學(xué)習(xí)從數(shù)據(jù)本身尋找最佳圖像變換策略,對(duì)于不同的任務(wù)學(xué)習(xí)不同的增強(qiáng)方法。基于機(jī)器學(xué)習(xí)的圖像增強(qiáng)算法雖然可以極大地改善圖像增強(qiáng)的質(zhì)量,但是它對(duì)原訓(xùn)練集中每類的原始樣本量要求都比較高,需要大量的樣本才可能有比較的效果。實(shí)際上,我們所要解決的酒標(biāo)圖像檢索任務(wù)的數(shù)據(jù)集難于達(dá)到這些條件。此外,這類算法往往需要很高的計(jì)算成本。通過上述分析,我們看到深度神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)效果與數(shù)據(jù)增強(qiáng)技術(shù)緊密相連,目前幾乎所有的圖像處理和檢索任務(wù)都用到了數(shù)據(jù)增強(qiáng)策略[8-10]。
目前,隨著人民生活水平的提高和紅酒文化的發(fā)展,建立一個(gè)高效的自動(dòng)化酒標(biāo)圖像檢索系統(tǒng)變得越來越重要。然而,由于實(shí)際的酒標(biāo)圖像數(shù)據(jù)集來自于不同用戶所提供的自己感興趣的酒標(biāo)圖像,自然存在著類別樣本量的不均衡、許多類樣本量偏少的現(xiàn)象,使得基于深度學(xué)習(xí)的酒標(biāo)圖像檢索模型難以進(jìn)行有效的訓(xùn)練和參數(shù)學(xué)習(xí)。因此,進(jìn)行適用于酒標(biāo)圖像的數(shù)據(jù)增強(qiáng)操作就變得更為必要和迫切。我們需要對(duì)一些酒標(biāo)圖像數(shù)據(jù)進(jìn)行增強(qiáng),擴(kuò)大訓(xùn)練樣本個(gè)數(shù),減小不同類別樣本個(gè)數(shù)的不均衡,提高檢索模型的學(xué)習(xí)效果。為解決這個(gè)問題,本文提出了一個(gè)專門針對(duì)于酒標(biāo)圖像進(jìn)行變換和擴(kuò)展的數(shù)據(jù)增強(qiáng)算法。受視覺成像原理[11]的啟發(fā),我們將酒標(biāo)看作是在圓柱體酒瓶表面立體成像和表示的,并通過一個(gè)拍攝視點(diǎn)投影到柱面切平面而形成了所拍攝的酒標(biāo)圖像。這樣便可通過一幅圖像對(duì)酒標(biāo)進(jìn)行柱面建模,并通過對(duì)視點(diǎn)的上下,左右,遠(yuǎn)近移動(dòng)來對(duì)柱面酒標(biāo)進(jìn)行投影變換[12]而生成新的酒標(biāo)圖像。通過在大規(guī)模的酒標(biāo)數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果表明,本文所提出的基于視點(diǎn)變換的數(shù)據(jù)增強(qiáng)策略能夠有效地實(shí)現(xiàn)對(duì)酒標(biāo)數(shù)據(jù)的增強(qiáng),并且顯著提高了酒標(biāo)檢索模型的檢索能力。
本文的結(jié)構(gòu)安排如下:在第2節(jié)中,我們?cè)敿?xì)介紹酒標(biāo)圖像檢索中的數(shù)據(jù)增強(qiáng)任務(wù);我們?cè)诘? 節(jié)中設(shè)計(jì)了基于投影變換的酒標(biāo)圖像數(shù)據(jù)增強(qiáng)算法,包括視線的左右、上下、遠(yuǎn)近移動(dòng)三種增強(qiáng)方式;在第4節(jié)中,我們進(jìn)行了對(duì)比實(shí)驗(yàn),并驗(yàn)證了所提出的酒標(biāo)圖像數(shù)據(jù)增強(qiáng)算法的有效性;最后在第5 節(jié)中對(duì)本文工作進(jìn)行總結(jié)。
酒標(biāo)圖像檢索是指當(dāng)用戶將隨手拍得的紅酒酒標(biāo)圖像輸入到酒標(biāo)圖像檢索系統(tǒng)中時(shí),該系統(tǒng)能夠返回輸入圖像中紅酒的身份信息,包括主品牌(生產(chǎn)廠家)和子品牌(酒款),反映為不同的酒標(biāo)。根據(jù)紅酒的身份,檢索系統(tǒng)則可提供出該紅酒的生產(chǎn)廠家和地區(qū)、生產(chǎn)年份、價(jià)格、購買渠道等用戶關(guān)心的信息。隨著目前人民生活水平的提高和紅酒文化的發(fā)展,建立一個(gè)高效的自動(dòng)化酒標(biāo)圖像檢索系統(tǒng)已經(jīng)變得越來越重要。盡管人們已經(jīng)開發(fā)出了一些APP 產(chǎn)品,但它們的檢索的正確性還很低,難以滿足人們的實(shí)際要求。隨著深度學(xué)習(xí)技術(shù)的快速發(fā)展,酒標(biāo)圖像檢索系統(tǒng)已經(jīng)采用深度神經(jīng)網(wǎng)絡(luò)模型,并且顯著提高了檢索的正確率。然而,目前的酒標(biāo)圖像是來自于不同用戶所提供的自己感興趣的酒標(biāo)圖像,存在著類別樣本量嚴(yán)重不均衡的現(xiàn)象,并且很多類的酒標(biāo)樣本量很少,甚至只有一個(gè)樣本。這樣所形成的酒標(biāo)圖像數(shù)據(jù)集會(huì)嚴(yán)重影響深度神經(jīng)網(wǎng)絡(luò)模型的訓(xùn)練效果,降低酒標(biāo)圖像檢索模型的泛化能力,即只對(duì)訓(xùn)練集中類樣本量多的酒標(biāo)圖像識(shí)別精度高,對(duì)類樣本量少的酒標(biāo)圖像識(shí)別精度低,嚴(yán)重影響整體的檢索性能。為了進(jìn)一步提高酒標(biāo)圖像檢索模型的性能,我們需要對(duì)這些酒標(biāo)圖像進(jìn)行數(shù)據(jù)增強(qiáng),設(shè)計(jì)一種專門針對(duì)于酒標(biāo)圖像數(shù)據(jù)的圖像增強(qiáng)策略,有效擴(kuò)大酒標(biāo)數(shù)據(jù)集中訓(xùn)練樣本的個(gè)數(shù),減小不同類別樣本個(gè)數(shù)的不均衡,提高酒標(biāo)檢索模型的學(xué)習(xí)效果。
我們所提出的紅酒酒標(biāo)圖像數(shù)據(jù)增強(qiáng)算法主要由三部分構(gòu)成:預(yù)處理部分、視點(diǎn)變換部分和后處理部分。圖1 展示了該算法的大致流程。其中,在預(yù)處理部分中,酒標(biāo)圖像是通過訓(xùn)練好的全連接網(wǎng)絡(luò)(Fully Convolutional Networks,F(xiàn)CN)[13]模型去除原始酒標(biāo)圖像中的復(fù)雜背景干擾,得到只含有酒標(biāo)區(qū)域的分割圖像。接下來,在分割后的酒標(biāo)圖像上,我們根據(jù)視點(diǎn)變換的類型(視點(diǎn)的上下,左右,遠(yuǎn)近移動(dòng)三種類型),對(duì)酒標(biāo)進(jìn)行柱面建模,通過投影變換、逆投影變換[14],雙線性插值[15]等一系列操作生成新圖像。然而,此時(shí)的新生成圖像通常含有黑色邊緣,這會(huì)干擾檢索模型的訓(xùn)練。因此,我們的算法又對(duì)其進(jìn)行了后處理去除這些黑色邊緣,最后輸出增強(qiáng)后的酒標(biāo)樣本圖像。我們下面對(duì)算法流程中的三個(gè)部分進(jìn)行詳細(xì)的描述。
為了減少酒標(biāo)圖像中背景因素對(duì)酒標(biāo)數(shù)據(jù)增強(qiáng)過程的干擾,我們首先需要將酒標(biāo)區(qū)域與背景區(qū)域進(jìn)行分離,這本質(zhì)上是一個(gè)二值語義分割問題。很多研究表明,全卷積網(wǎng)絡(luò)(FCN)對(duì)于語義分割是非常有效的。本文提出的酒標(biāo)區(qū)域分割和提取算法便是采用了FCN 模型。圖2 展示了FCN 模型提取酒標(biāo)區(qū)域的過程。我們首先將主體網(wǎng)絡(luò)為VGG19 的FCN 網(wǎng)絡(luò)在VOC2012 數(shù)據(jù)集上進(jìn)行預(yù)訓(xùn)練,然后使用遷移策略,在我們自己構(gòu)建的專門用于酒標(biāo)分割的酒標(biāo)數(shù)據(jù)集上進(jìn)行微調(diào)得到最終的FCN 模型。這樣,當(dāng)原始酒標(biāo)圖像輸入到訓(xùn)練好的FCN 模型后,我們便得到該輸入圖像的掩碼圖像。該掩碼圖像中的白的部分對(duì)應(yīng)著原始圖像中的酒標(biāo)區(qū)域,黑色部分對(duì)應(yīng)著原始圖像中的背景區(qū)域。掩碼圖像作用在原酒標(biāo)圖像上,就可以實(shí)現(xiàn)對(duì)原圖像的切割,提取出酒標(biāo)區(qū)域,從而達(dá)到了去除背景區(qū)域干擾的目的。
根據(jù)實(shí)際情況,酒標(biāo)是貼在圓柱體酒瓶的表面上。因此,我們可將真實(shí)的酒標(biāo)理解為圓柱體表面,并通過一個(gè)拍攝視點(diǎn)投影到柱面切平面而形成了通常的酒標(biāo)圖像。反過來,我們則可通過一幅酒標(biāo)圖像對(duì)酒標(biāo)進(jìn)行柱面建模,得到立體表示的酒標(biāo)。
3.2.1 基于視點(diǎn)左右移動(dòng)的圖像增強(qiáng)算法
當(dāng)視點(diǎn)在水平面上左右移動(dòng),相當(dāng)于圓柱體自身沿主軸進(jìn)行旋轉(zhuǎn)。因此,我們可采用由FCN 模型所提取的酒標(biāo)圖像,根據(jù)視點(diǎn)在水平面上的左右移動(dòng)所產(chǎn)生的旋轉(zhuǎn)角度進(jìn)行坐標(biāo)變換來建立新的酒標(biāo)圖像。圖3 是視點(diǎn)左右移動(dòng)的柱面建模示意圖,注意這里是讓視點(diǎn)E保持不變,而是等價(jià)地讓柱面逆時(shí)針旋轉(zhuǎn)θ角。圓柱上的一點(diǎn)A',在平面上的投影為A。當(dāng)圓柱逆時(shí)針旋轉(zhuǎn)θ角之后,A'點(diǎn)變換成為B'點(diǎn),而B'點(diǎn)在平面上的投影為B。E點(diǎn)為視點(diǎn),過E點(diǎn)作圓柱軸的垂線交圓柱的軸于點(diǎn)O。以O(shè)點(diǎn)為坐標(biāo)原點(diǎn),圓柱的軸為y軸建立空間坐標(biāo)系。
為了便于直觀理解,我們?cè)趫D4 展示了視點(diǎn)左右移動(dòng)的空間建模的俯視圖。根據(jù)這個(gè)俯視圖中的幾何關(guān)系,我們求解其變換規(guī)則。設(shè)圓柱的半徑為r0,坐標(biāo)原點(diǎn)到視點(diǎn)E的距離記為r1。設(shè)原始的酒標(biāo)圖像的寬的像素點(diǎn)個(gè)數(shù)為W0,高的像素點(diǎn)個(gè)數(shù)為H0,每個(gè)像素的長(zhǎng)度為a0。那么,在圖中,有幾何關(guān)系:
因此,可以得到:視點(diǎn)在水平面上前向移動(dòng)所相當(dāng)于圓柱順時(shí)針旋轉(zhuǎn)θ角。在旋轉(zhuǎn)的過程中,原來的A'點(diǎn)到達(dá)了現(xiàn)在的B'點(diǎn),在平面上看是A點(diǎn)到達(dá)了B點(diǎn)。新生成的圖像將取不到AB之間的像素。新生成的圖像的寬度變?yōu)椤珻B‖+‖CA‖,其中:
因此,新生成的圖像的寬包含的像素點(diǎn)個(gè)數(shù)W1為:
新生成的圖像的高包含的像素點(diǎn)個(gè)數(shù)H1=H0。
接下來,我們按照?qǐng)D5所示的流程,經(jīng)過一次逆透視變換(柱面投影),一次旋轉(zhuǎn)變換,一次透視變換(平面投影),建立起A,B兩點(diǎn)之間的對(duì)應(yīng)關(guān)系,再利用雙線性插值就能夠生成旋轉(zhuǎn)之后新樣本圖像。
圖5生成新樣本圖像的流程圖中每個(gè)步驟的具體變換關(guān)系如下所示:
(1)新圖像的像素點(diǎn)(i,j) →B(x1,y1,z1)
(2)柱面投影變換B(x1,y1,z1) →由于:
(6)原圖像點(diǎn)(i',j') →新圖像點(diǎn)(i,j):
由于i',j'存在不是整數(shù)的情況,需要用雙線性插值法進(jìn)行處理,從原始圖像I0(i',j')得到新圖像I1(i,j)。首先令p=i'-s,q=j'-t,其中s、t分別是不大于i',j'的整數(shù),則有:
3.2.2 基于視點(diǎn)前后移動(dòng)的圖像增強(qiáng)算法
通過3.2.1 節(jié)中的流程,我們實(shí)現(xiàn)了基于視點(diǎn)在水平面上的左右移動(dòng)時(shí)的新酒標(biāo)圖像生成的過程。同樣的原理,我們可以建立視點(diǎn)在水平方向上前后移動(dòng)的模型。如圖6 所示,圓柱上的一點(diǎn)A',在平面上關(guān)于視點(diǎn)E的投影為A,關(guān)于視點(diǎn)E'的投影為B,視點(diǎn)E與視點(diǎn)E'在水平方向上成前后關(guān)系。同樣,為了便于理解以及推導(dǎo)公式,我們?cè)趫D7展示了視點(diǎn)前后移動(dòng)的空間建模的俯視圖,基本的變量關(guān)系參見圖4的設(shè)置。
從圖7 可以看出,視點(diǎn)在水平方向上向前移動(dòng)和向后移動(dòng)所形成的投影平面的區(qū)域大小是不同的。視點(diǎn)前移,平面上的成像區(qū)域變窄;視點(diǎn)后移,成像區(qū)域變寬。設(shè)變換后像素間距為a,依據(jù)。設(shè)新生成的圖像的寬包含的像素點(diǎn)個(gè)數(shù)為W2,新生成的圖像的高包含的像素點(diǎn)個(gè)數(shù)H2,且有H2=H0。根據(jù)幾何關(guān)系,可求得:
接下來,根據(jù)像素點(diǎn)變換關(guān)系生成新圖像。
(1)新圖像的像素點(diǎn)(i,j) →B(x1,y1,z1)
(4)A(x0,y0,z0) →舊圖像的像素點(diǎn)(i',j'):
(5)原圖像點(diǎn)(i',j') →新圖像點(diǎn)(i,j):
由于i',j'存在不是整數(shù)的情況,需要用雙線性插值法進(jìn)行處理,從原始圖像I0(i',j')得到新圖像I2(i,j)。首先令p=i'-s,q=j'-t,其中s、t分別是不大于i',j'的整數(shù),則有:
3.2.3 基于視點(diǎn)上下移動(dòng)的圖像增強(qiáng)算法
視點(diǎn)在豎直方向的上下移動(dòng),即俯視與仰視的柱面建模示意圖與前兩種視點(diǎn)變換的建模示意圖不同。如圖8 所示,需增加一個(gè)與新視點(diǎn)和酒標(biāo)中心的連線垂直的平面,以用于模擬視點(diǎn)變換后生成的新圖像。圓柱上的一點(diǎn)A',在原平面上關(guān)于視點(diǎn)E的投影為A,在新增加的平面上關(guān)于視點(diǎn)E'的投影為B。同樣,為了便于推導(dǎo)公式,我們?cè)趫D9 展示了視點(diǎn)向上移動(dòng)的空間建模的俯視圖,基本的變量關(guān)系參見圖4 的設(shè)置。從圖9 可以看出,視點(diǎn)在豎直方向向上移動(dòng)平面上的成像區(qū)域變矮,設(shè)新生成的圖像的寬包含的像素點(diǎn)個(gè)數(shù)為W3,新生成的圖像的高包含的像素點(diǎn)個(gè)數(shù)H3,且有W3=W0。設(shè)變換前后像素間距分別為a0和a,同圖3的幾何關(guān)系,有:
接下來,根據(jù)像素點(diǎn)變換關(guān)系生成新圖像。
(1)新圖像的像素點(diǎn)(i,j) →B(x1,y1,z1)
(5)原圖像點(diǎn)(i',j') →新圖像點(diǎn)(i,j):
由于i',j'存在不是整數(shù)的情況,需要用雙線性插值法進(jìn)行處理,從原始圖像I0(i',j')得到新圖像I3(i,j)。首先令p=i'-s,q=j'-t,其中s、t分別是不大于i',j'的整數(shù),則有:
至此,我們已經(jīng)得到了視點(diǎn)在左右、前后和上下移動(dòng)時(shí)生成新酒標(biāo)圖像的數(shù)據(jù)增強(qiáng)算法。
由于視點(diǎn)的移動(dòng)可能會(huì)出現(xiàn)一些邊緣區(qū)域無法恢復(fù),這樣根據(jù)視點(diǎn)變換的計(jì)算公式所生成的新酒標(biāo)圖像會(huì)出現(xiàn)一些異常的情況,即所新生成的酒標(biāo)圖像的邊緣像素的坐標(biāo)值會(huì)出現(xiàn)復(fù)數(shù)。在這種情況下,我們的解決策略是將取值為復(fù)數(shù)的像素點(diǎn)的RGB 值統(tǒng)一設(shè)置為(0,0,0),即新生成圖像的有部分黑色邊緣。然而,如果用這樣新生成圖像直接訓(xùn)練酒標(biāo)檢索模型,模型會(huì)誤將黑色邊緣區(qū)域作為顯著特征,從而會(huì)影響訓(xùn)練出來的模型的檢索精度。為了解決這個(gè)問題,我們需要對(duì)視點(diǎn)變換部分生成的圖像進(jìn)行后處理,去除新生成圖像中黑色邊緣對(duì)酒標(biāo)檢索模型的影響。因此,算法的后處理部分的主要操作是:首先通過檢測(cè)視點(diǎn)變換部分生成的圖像中每行每列的像素值,確定圖像黑色邊緣區(qū)域與其非黑色區(qū)域的邊界,然后基于這個(gè)邊界取其最大內(nèi)切矩形,并將這個(gè)矩形內(nèi)的圖像區(qū)域進(jìn)行規(guī)范化處理形成最終的酒標(biāo)圖像。圖10 展示了基于視點(diǎn)變換的酒標(biāo)圖像數(shù)據(jù)增強(qiáng)算法中后處理過程。其中圖(a)中的紅線表示圖像黑色邊緣區(qū)域與其非黑色區(qū)域的邊界線,綠線表示非黑色區(qū)域的最大內(nèi)切矩形。圖(b)代表算法去除黑色邊緣區(qū)域并規(guī)范化后最終得到的酒標(biāo)圖像。
本文的實(shí)驗(yàn)所用到的數(shù)據(jù)集主要有兩個(gè):酒標(biāo)分割數(shù)據(jù)集和酒標(biāo)檢索數(shù)據(jù)集。酒標(biāo)分割數(shù)據(jù)集專門用于訓(xùn)練預(yù)處理部分中的酒標(biāo)分割模型。它是經(jīng)過專業(yè)性的收集、選擇和標(biāo)注的酒標(biāo)圖像數(shù)據(jù)集[17]。該數(shù)據(jù)集共包含9000酒標(biāo)圖像,每個(gè)酒標(biāo)圖像都被人工標(biāo)注為酒標(biāo)區(qū)域和背景區(qū)域。其中5000 個(gè)圖像用來微調(diào)訓(xùn)練FCN 分割模型,剩下的4000 個(gè)圖像用來測(cè)試FCN 模型的酒標(biāo)分割性能。其中,分割性能的評(píng)價(jià)準(zhǔn)則是均交并比[17](mean Intersection over Union,mIoU)。
酒標(biāo)檢索數(shù)據(jù)集主要用于評(píng)估本文提出的數(shù)據(jù)增強(qiáng)算法的性能。它是由睿尋科技(北京)有限公司提供的。該數(shù)據(jù)集一共包含217970 個(gè)酒標(biāo)圖像。每個(gè)圖像都被標(biāo)注為一個(gè)主品牌(生產(chǎn)廠家)和一個(gè)子品牌(酒的種類)。共52309 個(gè)酒標(biāo)主品牌(生產(chǎn)廠家),155673 個(gè)酒標(biāo)子品牌(酒的類型)。這個(gè)數(shù)據(jù)集中的所有圖像都是用戶使用手機(jī)或其他電子拍攝設(shè)備隨意拍攝得到的。所有圖像的大小均為500×375,并且所有的圖像都為RGB 格式。圖像中包含許多干擾因素,如背景變化、光線變化、對(duì)比度變化、圖像旋轉(zhuǎn)等。圖11展示了酒標(biāo)檢索數(shù)據(jù)集中的部分樣例。表1給出了該酒標(biāo)檢索數(shù)據(jù)集上主品牌的相關(guān)信息。由表1 可以看出,該酒標(biāo)檢索數(shù)據(jù)集類樣本量極不均衡,并且每個(gè)類的樣本量不足,每個(gè)酒標(biāo)主品牌的樣本量最多不超過10 個(gè),甚至很大部分的酒標(biāo)主品牌的樣本量?jī)H有1個(gè)。
表1 酒標(biāo)檢索數(shù)據(jù)集主品牌信息Tab.1 Main brand information of the wine label retrieval dataset
本文使用數(shù)據(jù)增強(qiáng)后的訓(xùn)練集訓(xùn)練出來的酒標(biāo)檢索模型的酒標(biāo)檢索性能作為增強(qiáng)算法的評(píng)估標(biāo)準(zhǔn)。并且我們使用平均精確率(Mean Precision,MP)表示對(duì)于酒標(biāo)檢索模型的性能。精確率(Precision,P)的定義為:
上式中,TP(True Positives)代表將正類預(yù)測(cè)為正類數(shù),即檢索系統(tǒng)準(zhǔn)確檢索到的相關(guān)圖像的數(shù)量;FP(False Positives)代表將負(fù)類預(yù)測(cè)為正類數(shù),即檢索系統(tǒng)錯(cuò)誤檢索到的圖像的數(shù)量,那么TP+FP 就是檢索系統(tǒng)所有檢索到的圖像總數(shù)。為了減少測(cè)量誤差,本文每個(gè)實(shí)驗(yàn)都運(yùn)行100 輪,第i輪實(shí)驗(yàn)獲得的精確率記為Pi,每個(gè)算法的MP是該算法實(shí)驗(yàn)100次獲得的P的平均值。
在沒有特殊說明的情況下,我們的實(shí)驗(yàn)均是在Ubuntu 16.04 中基于Python 代碼完成的。實(shí)驗(yàn)所用服務(wù)器的硬件配置如下:顯卡為NVIDIA Tesla M40,內(nèi)存為24GB GPU,處理器為E5-2620 v4 @2.10 GHz s×2。在數(shù)據(jù)增強(qiáng)后,我們使用CSCFM 算法[16]作為后續(xù)的酒標(biāo)檢索模型。且CSCFM 算法中的δ和M2這兩個(gè)參數(shù)分別設(shè)置為90%和5。此外,實(shí)驗(yàn)中的深度網(wǎng)絡(luò)都先在VOC2012 數(shù)據(jù)集上預(yù)先訓(xùn)練。然后再分別在各自任務(wù)下的酒標(biāo)數(shù)據(jù)集進(jìn)行微調(diào)。其他關(guān)于學(xué)習(xí)率及其他參數(shù)的設(shè)定均參考CSCFM在原始論文[16]中的設(shè)置。在基于變換的增強(qiáng)算法中,為了算法的實(shí)用性。如果視角變換和去除黑邊部分都需要采用逐像素檢查的方式,運(yùn)行速度相對(duì)較慢。所以在實(shí)驗(yàn)采用了多進(jìn)程并行的方式進(jìn)行算法加速,加大優(yōu)化力度,提高算法的實(shí)用性。
我們?cè)诰茦?biāo)檢索任務(wù)上評(píng)估了多種數(shù)據(jù)增強(qiáng)算法,這些數(shù)據(jù)增強(qiáng)算法包括兩類,一類是傳統(tǒng)的數(shù)據(jù)增強(qiáng)算法,分別是:數(shù)據(jù)復(fù)制、數(shù)據(jù)翻轉(zhuǎn)、數(shù)據(jù)旋轉(zhuǎn)、添加高斯模糊、改變數(shù)據(jù)對(duì)比度與亮度、添加噪聲和本文提出的基于視點(diǎn)變換的數(shù)據(jù)增強(qiáng)算法,另一類基于深度學(xué)習(xí)的數(shù)據(jù)增強(qiáng)算法,分別為DAGAN 算法[18]和Fast AutoAugment 算法[19]。其中,DAGAN 算法通過訓(xùn)練一個(gè)GAN,輸入已有的數(shù)據(jù),生成新的與輸入數(shù)據(jù)屬于同一類的數(shù)據(jù)。Fast AutoAugment 算法對(duì)于給定數(shù)據(jù)集,通過學(xué)習(xí)其特征探索出最優(yōu)的數(shù)據(jù)增強(qiáng)策略組合。在酒標(biāo)檢索任務(wù)中,我們選用所有酒標(biāo)主品牌樣本量大于等于2的酒標(biāo)數(shù)據(jù)組成我們實(shí)驗(yàn)用的數(shù)據(jù)集。因此,該數(shù)據(jù)集一共有212579 個(gè)酒標(biāo)數(shù)據(jù),共46918 個(gè)酒標(biāo)主品牌。并且對(duì)該數(shù)據(jù)集中的每個(gè)酒標(biāo)主品牌都隨機(jī)選擇一個(gè)樣本組成測(cè)試集,剩下的所有圖像作為原始的訓(xùn)練集。在這個(gè)原始的訓(xùn)練集上分別使用不同的數(shù)據(jù)增強(qiáng)算法進(jìn)行數(shù)據(jù)增強(qiáng),使得增強(qiáng)后的數(shù)據(jù)集中每個(gè)主品牌下的樣本量都約為20。接下來使用數(shù)據(jù)增強(qiáng)后的訓(xùn)練集訓(xùn)練CSCFM檢索模型,在測(cè)試集上評(píng)估模型的酒標(biāo)檢索性能,從而評(píng)估數(shù)據(jù)增強(qiáng)算法的有效性。
表2列出了使用不同數(shù)據(jù)增強(qiáng)策略后的訓(xùn)練集訓(xùn)練出來的酒標(biāo)檢索模型在測(cè)試集上的評(píng)測(cè)結(jié)果。從實(shí)驗(yàn)結(jié)果可以看出使用不同的數(shù)據(jù)增強(qiáng)算法訓(xùn)練出來的酒標(biāo)檢索模型的性能不一樣。使用數(shù)據(jù)翻轉(zhuǎn)比使用單純的數(shù)據(jù)復(fù)制策略訓(xùn)練出來的模型對(duì)酒標(biāo)主品牌的識(shí)別精確率低2.4%,這是因?yàn)?,?duì)于酒標(biāo)檢索數(shù)據(jù)來說,用戶拍攝酒標(biāo)時(shí),一般是正持酒瓶拍攝,得到的酒標(biāo)數(shù)據(jù)也是正的。數(shù)據(jù)翻轉(zhuǎn),無論是正反翻轉(zhuǎn),還是左右鏡面翻轉(zhuǎn)后的圖像在酒標(biāo)數(shù)據(jù)集中幾乎不存在。因此,使用數(shù)據(jù)翻轉(zhuǎn)增強(qiáng)的圖像不但沒有增加模型的泛化能力,反而可能會(huì)對(duì)模型訓(xùn)練造成干擾,因此酒標(biāo)主品牌的識(shí)別準(zhǔn)確率會(huì)低。在用戶拍攝酒標(biāo)數(shù)據(jù)時(shí),由于拍攝環(huán)境的不同,噪聲、光線的強(qiáng)度、拍攝設(shè)備都是一些重要因素,影響酒標(biāo)圖像的拍攝。因此,在酒標(biāo)數(shù)據(jù)增強(qiáng)過程中,添加噪聲,改變酒標(biāo)圖像的對(duì)比度與亮度等都是很有效的。相比于單純的數(shù)據(jù)復(fù)制,使用添加噪聲和改變對(duì)比度與亮度這兩種數(shù)據(jù)增強(qiáng)策略訓(xùn)練出來的模型對(duì)酒標(biāo)主品牌的識(shí)別精確率分別提高了1.5%和1.9%。DAGAN 算法的數(shù)據(jù)增強(qiáng)效果和數(shù)據(jù)復(fù)制的增強(qiáng)效果相似,對(duì)酒標(biāo)檢索準(zhǔn)確率的提高有限。而Fast AutoAugment 算法在提高酒標(biāo)圖像檢索準(zhǔn)確率方面明顯優(yōu)于數(shù)據(jù)復(fù)制、數(shù)據(jù)翻轉(zhuǎn)、數(shù)據(jù)旋轉(zhuǎn)、添加高斯模糊、改變數(shù)據(jù)對(duì)比度與亮度、添加噪聲等算法。這是因?yàn)椋贔ast Auto-Augment 算法中的子策略設(shè)置中已經(jīng)包含了上述所有的策略,通過學(xué)習(xí)得到的增強(qiáng)策略組合則集中了各個(gè)單一增強(qiáng)策略的優(yōu)勢(shì)。我們提出的基于視點(diǎn)變換的數(shù)據(jù)增強(qiáng)算法對(duì)應(yīng)的模型相對(duì)于數(shù)據(jù)復(fù)制對(duì)應(yīng)的模型,對(duì)酒標(biāo)主品牌的識(shí)別精度率顯著提高了4.1%,在所有的數(shù)據(jù)增強(qiáng)策略中表現(xiàn)最優(yōu)。這主要是因?yàn)?,基于視點(diǎn)變換的數(shù)據(jù)增強(qiáng)算法充分考慮了酒標(biāo)數(shù)據(jù)的特性,將酒瓶看作圓柱體,不同用戶拍攝酒標(biāo)圖像時(shí),視點(diǎn)往往不一樣,視點(diǎn)左右移動(dòng)、上下移動(dòng)、遠(yuǎn)近移動(dòng)都是很常見的現(xiàn)象。因此,基于視點(diǎn)變換的酒標(biāo)數(shù)據(jù)增強(qiáng)算法是非常有效的。
表2 使用不同數(shù)據(jù)增強(qiáng)策略訓(xùn)練的酒標(biāo)檢索模型在測(cè)試集上的評(píng)測(cè)結(jié)果Tab.2 Evaluation results of wine label retrieval models trained with different data augmentation strategies on the test dataset
我們挑選了增強(qiáng)測(cè)試集中的部分酒標(biāo)圖像,用于展示本文提出的數(shù)據(jù)增強(qiáng)算法在不同試點(diǎn)變換下的酒標(biāo)圖像增強(qiáng)效果。圖12 展示的是基于視點(diǎn)左右移動(dòng)的數(shù)據(jù)增強(qiáng)效果,其中圖12(a)為原始圖像,圖12(b)和圖12(c)分別為視點(diǎn)向左移動(dòng)和視點(diǎn)向右移動(dòng)后的增強(qiáng)圖像。從后兩幅圖像可以看出,基于視點(diǎn)左右移動(dòng)的增強(qiáng)效果是比較自然和真實(shí)的,能夠比較好的模擬現(xiàn)實(shí)生活中酒標(biāo)圖像的拍攝。圖13 展示了基于視點(diǎn)前后移動(dòng)的數(shù)據(jù)增強(qiáng)效果。其中,圖13(a)為酒標(biāo)樣本原圖,13(b)和13(c)分別是視點(diǎn)往后移動(dòng)和往前移動(dòng)下生成的增強(qiáng)圖像。圖14 展示了基于視點(diǎn)上下移動(dòng)的數(shù)據(jù)增強(qiáng)效果。其中,圖14(a)為酒標(biāo)樣本原圖,14(b)和14(c)分別是視點(diǎn)往下移動(dòng)和往上移動(dòng)生成的增強(qiáng)圖像。從這些圖像也可以看出,本文提出的基于視點(diǎn)變換的圖像增強(qiáng)算法能夠自然真實(shí)地模擬在不同視點(diǎn)下拍攝的酒標(biāo)圖像,能夠有效地實(shí)現(xiàn)對(duì)酒標(biāo)數(shù)據(jù)的增強(qiáng)。
針對(duì)現(xiàn)有的酒標(biāo)數(shù)據(jù)集存在著類別樣本量不均衡、多類樣本量很少的實(shí)際情況,本文提出了一個(gè)專門針對(duì)于酒標(biāo)圖像進(jìn)行變換和擴(kuò)展的數(shù)據(jù)增強(qiáng)算法。首先,我們通過FCN 模型去除原始酒標(biāo)圖像中的復(fù)雜背景干擾,得到只含有酒標(biāo)區(qū)域的分割圖像。然后,我們將酒標(biāo)表示在圓柱體酒瓶的表面上,即將酒標(biāo)進(jìn)行圓柱體表示,并通過一個(gè)拍攝視點(diǎn)投影到柱面切平面而形成了酒標(biāo)圖像。這樣則可通過一幅圖像對(duì)酒標(biāo)進(jìn)行柱面建模,并通過對(duì)拍攝視點(diǎn)的上下、左右、遠(yuǎn)近移動(dòng)來對(duì)柱面酒標(biāo)進(jìn)行投影變換而生成新酒標(biāo)圖像。進(jìn)一步,通過對(duì)其進(jìn)行后處理得到有效的規(guī)范化酒標(biāo)圖像樣本。我們最后在一個(gè)大規(guī)模酒標(biāo)數(shù)據(jù)集上進(jìn)行了酒標(biāo)圖像檢索實(shí)驗(yàn)。實(shí)驗(yàn)結(jié)果表明,我們提出的基于視點(diǎn)變換的數(shù)據(jù)增強(qiáng)算法能夠有效地實(shí)現(xiàn)對(duì)酒標(biāo)數(shù)據(jù)的擴(kuò)展,并且顯著提高了酒標(biāo)圖像檢索模型的檢索性能。