国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于輕量化卷積神經(jīng)網(wǎng)絡(luò)的服裝分類方法①

2019-03-11 06:02羅夢研劉雁飛
關(guān)鍵詞:關(guān)鍵點(diǎn)卷積神經(jīng)網(wǎng)絡(luò)

羅夢研,劉雁飛

(浙江理工大學(xué) 信息學(xué)院,杭州 310018)

根據(jù)央視財(cái)經(jīng)頻道聯(lián)合中國社科院財(cái)經(jīng)戰(zhàn)略研究院發(fā)布的《2017中國電商年度發(fā)展報告》中國的相關(guān)數(shù)據(jù)顯示,在我國,電商產(chǎn)業(yè)發(fā)展迅猛,體量也日益龐大.就目前而言,電商交易額達(dá)到了全世界電商總交易額的40%以上.一直以來我國網(wǎng)絡(luò)購物市場銷售占比最高的品類是服裝鞋帽類,2017年服裝鞋帽類網(wǎng)購率比例已達(dá)8成.

伴隨著市場需求的增大,一個待需解決的問題逐漸凸顯出來:電商平臺對于商品往往需要對平臺內(nèi)的商品進(jìn)行分類,貼上合適的標(biāo)簽,以便于用戶通過類別進(jìn)行挑選或者搜索.但是采用人工進(jìn)行分類和標(biāo)注的方式往往會難以避免諸如時間和人力成本,標(biāo)注結(jié)果容易受到個體差異的影響等問題.

傳統(tǒng)的圖像分類算法主要是集中在對圖像的全局特征和局部特征進(jìn)行提取上,其中全局特征又包括顏、形狀、紋理等.對于形狀特征,使用鏈碼直方圖[1]、P階矩陣[2].以及使用了幾何不變矩[3]等方式.除此之外,有基于結(jié)構(gòu)的LBP描述子[4]、基于頻譜的Gabor[5]描述子等對紋理特征進(jìn)行提取的方法.對于局部特征而言,可以利用 Harris[6]角點(diǎn)、SIFT[7]特征、HOG[8]特征進(jìn)行分類.Bossard[9]利用了HOG和LBP等局部特征,結(jié)合機(jī)器學(xué)習(xí)當(dāng)中的SVM和隨機(jī)森林等方式來進(jìn)行分類.

以上這些傳統(tǒng)圖像分類算法,在具有較高質(zhì)量、沒有復(fù)雜背景的服裝圖像中可以得到較好的效果.但是在實(shí)際的使用場景中,會因?yàn)楸尘靶畔⒌母蓴_,圖像采集過程不夠規(guī)范,圖像質(zhì)量不高等因素導(dǎo)致模型準(zhǔn)確率下降,不能很好地應(yīng)用到實(shí)際的使用場景中來.

本文設(shè)計(jì)了一套基于輕量化卷積神經(jīng)網(wǎng)絡(luò)的服裝分類方法.著重針對于傳統(tǒng)圖像分類中易受背景干擾,魯棒性較差等缺點(diǎn)進(jìn)行改進(jìn).利用物體檢測算法對圖像中的行人進(jìn)行檢測,來對輸入圖片進(jìn)行初步的預(yù)處理,從而將其與背景相分離,減少無關(guān)的背景信息對分類結(jié)果產(chǎn)生的干擾;為了提升模型的分類效果,增強(qiáng)魯棒性,使用局部信息輔助進(jìn)行分類.通過對服裝圖片中的關(guān)鍵點(diǎn)進(jìn)行定位,從而將局部特征和全局特征進(jìn)行融合,輔助提高模型的分類效果.考慮到卷積神經(jīng)網(wǎng)絡(luò)的運(yùn)行需要較高的硬件支持,為了拓寬模型的應(yīng)用范圍,在保證模型一定的分類效果的前提下,對模型進(jìn)行了壓縮處理,極大的減少了計(jì)算量,使得在算法模型在低配置硬件或者移動設(shè)備也可以運(yùn)行.

1 模型的設(shè)計(jì)方案

本論文從實(shí)際應(yīng)用場景出發(fā),結(jié)合當(dāng)下在圖像分類領(lǐng)域取得巨大突破的卷積神經(jīng)網(wǎng)絡(luò)算法,設(shè)計(jì)基于卷積神經(jīng)網(wǎng)絡(luò)的服裝分類算法模型.雖然基于卷積神經(jīng)網(wǎng)絡(luò)的圖像分類算法在各大數(shù)據(jù)集競賽(ImageNet、Kaggle等)都取得了不俗的成績[10,11],但是針對于本文所涉及的實(shí)際應(yīng)用場景,還是存在一些難題需要進(jìn)行解決.于是本論文針對一些問題進(jìn)行了改進(jìn)和優(yōu)化,設(shè)計(jì)了應(yīng)用場景更廣,模型的魯棒性更強(qiáng)的算法模型.

1.1 剔除背景信息的干擾

在分類模型實(shí)際進(jìn)行使用過程中,進(jìn)行分類的圖片除了包含服裝信息之外,不可避免的會包含部分背景信息,對最終的分類結(jié)果產(chǎn)生極大的干擾.為了提升模型的分類效果以及魯棒性,背景信息的剔除就顯得尤為重要了.本文巧妙的利用了卷積神經(jīng)網(wǎng)絡(luò)在物體檢測領(lǐng)域的優(yōu)勢,使用物體檢測算法進(jìn)行行人檢測,從而將圖片中的行人和背景相分離.利用物體檢測比賽MPII中的數(shù)據(jù)集(包括行人在內(nèi)的20種物體的標(biāo)注數(shù)據(jù)),將其中包含行人的圖片提取出來,得到了5717張標(biāo)注了圖片中行人位置的訓(xùn)練數(shù)據(jù),用來進(jìn)行行人檢測算法的訓(xùn)練.這里我們分析對比了主流的物體檢測算法模型的實(shí)現(xiàn)方案,從檢測效果mAP和處理速度FPS上進(jìn)行考量.采用了Faster-RCNN和YOLO3進(jìn)行測試對比,對比結(jié)果如表1所示.

表1 運(yùn)行時間和 IOU 對比

雖然Faster-RCNN預(yù)測的準(zhǔn)確率較YOLOv3有較大優(yōu)勢,但是作為模型的預(yù)處理階段,不宜耗費(fèi)太高的計(jì)算成本和時間成本,于是本論文選擇基于YOLOv3算法訓(xùn)練出的行人檢測模型來進(jìn)行背景信息的移除,減少干擾.

1.2 局部特征的提取

針對于服裝圖像的分類問題,往往可以對局部信息比如Harris[6]角點(diǎn)、SIFT[7]特征、HOG[8]特征進(jìn)行分類.一般而言,對于服裝圖片,其袖口、衣領(lǐng)、雙肩等位置的特征往往包含了更多的關(guān)于服裝種類的信息.傳統(tǒng)的基于卷積神經(jīng)網(wǎng)絡(luò)的分類算法使用整張圖片作為輸入,利用若干層層卷積層的疊加進(jìn)行全局特征的提取,然后再利用分類器進(jìn)行分類操作.為了對服裝圖片當(dāng)中的局部信息加以利用,論文考慮設(shè)計(jì)服裝圖片的關(guān)鍵點(diǎn)定位算法,用來定位到服裝圖片當(dāng)中的衣領(lǐng)、袖口等部位,幫助進(jìn)行局部特征的提取操作.

對于關(guān)鍵點(diǎn)定位問題,本文對傳統(tǒng)的卷機(jī)神經(jīng)網(wǎng)絡(luò)進(jìn)行改進(jìn),一方面借鑒了 Residual Learning 中的“跳層連接”,對模型結(jié)構(gòu)進(jìn)行改進(jìn).

如圖1所示,首先通過卷積核大小為1×1 的卷積操作調(diào)整 Feature map 的通道數(shù)量,減少計(jì)算量.然后再經(jīng)過卷積核大小為3×3的卷積操作,最終輸出的Feature map的同道數(shù)量再經(jīng)過1×1大小的卷積核進(jìn)行調(diào)整.

圖1 “跳層連接”結(jié)構(gòu)示意

除此之外,增加了一條由1×1的卷積核構(gòu)成的卷積層作為旁路,將輸入該卷積模塊的Feature map分別通過兩條同道進(jìn)行計(jì)算,最終的結(jié)果進(jìn)行通道上的疊加.一方面可以保存原Feature map在更多尺度下的特征信息,另一方面增加了旁路連接可以更好的幫助梯度進(jìn)行傳遞,幫助模型進(jìn)行訓(xùn)練.

為了更好的處理不同尺度的特征向量,一些常見的做法是針對不同尺度的特征分別進(jìn)行處理,然后再將處理的結(jié)果進(jìn)行融合和疊加[12,13].本文則是采用了通過多次使用短連接的方式不斷的將不同尺度的信息進(jìn)行融合.

在通過堆疊的卷積模塊進(jìn)行特征提取的同時,為了提升對多尺度信息的處理能力,增加了若干層旁路連接,多次將不同尺度的特征信息進(jìn)行融合,圖中的橘黃色向下箭頭表示使用Max-Pooling進(jìn)行下采樣操作,橘黃色向上的箭頭表示通過使用雙線性插值的方式進(jìn)行上采樣.從而產(chǎn)生了不同尺度下的特征信息,很好的兼顧到了由于圖片中衣服大小不一而導(dǎo)致的信息提取困難的問題.

考慮到對于不同種類的服裝圖像,其圖片中所含的關(guān)鍵點(diǎn)數(shù)量也不一致.而 Convolutional Pose Machine和Hourglass只能對圖片中固定數(shù)量的關(guān)鍵點(diǎn)進(jìn)行定位.于是對上述兩種算法的Loss進(jìn)行改進(jìn),綜合考慮到各種不同服裝圖像中關(guān)鍵點(diǎn)數(shù)量,每張圖片中輸出20個關(guān)鍵點(diǎn)位置進(jìn)行損失函數(shù)的計(jì)算,不存在的關(guān)鍵點(diǎn)的Loss值設(shè)置為 0.采用了 Online Hard Keypoints Mining (CPN),僅保留損失值較大的關(guān)鍵點(diǎn)進(jìn)行回傳,閾值設(shè)置總關(guān)鍵點(diǎn)數(shù)量的一半.

1.3 卷積神經(jīng)網(wǎng)絡(luò)的輕量化處理

基于卷積神經(jīng)網(wǎng)絡(luò)的算法模型,由于堆疊了大量的卷積運(yùn)算,模型的訓(xùn)練和使用階段都需要較高硬件環(huán)境的支持,由此而導(dǎo)致了時間成本和硬件成本的提升.目前深度學(xué)習(xí)模型的研究主要也是集中在了提升模型的效果和減少參數(shù)和計(jì)算量這兩個方面.考慮到為了節(jié)省運(yùn)行本設(shè)計(jì)所需要花費(fèi)的硬件成本(如果需要花費(fèi)較高價格購買高配置的設(shè)備,則與本設(shè)計(jì)節(jié)省成本的初衷相違背).為了使得所設(shè)計(jì)的算法模型有更多的應(yīng)用場景,勢必需要對本設(shè)計(jì)的模型采用輕量化的模型結(jié)構(gòu),對計(jì)算量進(jìn)行壓縮.以便于在保證一定準(zhǔn)確度的前提下盡量減少運(yùn)算開銷和時間成本.

當(dāng)使用1×1的卷積核進(jìn)行卷操作時,會使得輸出的Feature map的尺寸不發(fā)生變化,而只會改變Feature map的通道數(shù).所以卷積核大小為1×1的卷及操作往往被用來對Feature map的大小進(jìn)行調(diào)節(jié).在進(jìn)行卷積操作之前先對Feature map的通道數(shù)量進(jìn)行壓縮,從而可以一定程度上減少計(jì)算量和參數(shù)量.GoogleNet和ResNet均采用這種方式對模型的計(jì)算量進(jìn)行一定程度的削減.輕量化模型結(jié)構(gòu)SqueezeNet中的Fire modul模塊通過這種方式達(dá)到了輕量化模型的設(shè)計(jì).

壓縮Feature map通道的方式雖然可以大幅減少模型的計(jì)算量,但是由于在壓縮過程中往往會丟失部分?jǐn)?shù)據(jù)信息,對最終的模型結(jié)果產(chǎn)生一定的影響.于是考慮從卷積操作的方式上進(jìn)行改進(jìn).將尺度為Dk×Dk×M的 (Dk為 size.M為通道數(shù)量)Feature map 切分成M/2 個獨(dú)立的 Feature map,每個 Feature map 的通道數(shù)均為2.然后分別進(jìn)行卷積核大小為3×3,輸出通道數(shù)為2,Padding為1的卷積操作,得到的結(jié)果按順序進(jìn)行通道上的疊加.得到尺度為Dk×Dk×M的Feature map.這種卷積方式稱之為“分塊卷積”具體操作如圖2所示.

圖2 分塊卷積操作示意

使用傳統(tǒng)的卷積方式,一次卷積操作的計(jì)算量為(卷積核大小為Df):

由于分塊卷積是將Feature map分離開來進(jìn)行操作,會在一定程度上減少Feature map不同通道的信息之間的相互關(guān)聯(lián)性.于是在進(jìn)行卷積操作之后通過1×1 大小的卷積核進(jìn)行卷積操作.有三點(diǎn)作用:1)幫助不同通道之間的信息進(jìn)行融合.2)可以對通道數(shù)量進(jìn)行融合.3)可以對通道數(shù)量進(jìn)行調(diào)節(jié)(輸出的同道數(shù)量設(shè)置為N).于是完整的一次分塊卷積操作所需要的計(jì)算量大小為:

現(xiàn)在最常用的卷積核大小為3×3,即則計(jì)算量減少的到原來的1/4以內(nèi)(N一般遠(yuǎn)大于9,可忽略不計(jì)).

2 算法實(shí)現(xiàn)及結(jié)果對比

2.1 訓(xùn)練與測試數(shù)據(jù)

訓(xùn)練數(shù)據(jù)采取的是 Large-scale Fashion (Deep Fashion)Database 數(shù)據(jù)集,其中針對于服裝的種類,材質(zhì),風(fēng)格等方面進(jìn)行的劃分.關(guān)于服裝種類的標(biāo)注數(shù)據(jù)有20萬張.足以滿足本算法的需求.

2.2 不同結(jié)構(gòu)模型效果對比

在Ubuntu16.04、CUDA9.0環(huán)境下,采用Pytorch框架進(jìn)行模型結(jié)構(gòu)的搭建.首先采用了DenseNet-121、DenseNet-169、DenseNet-201、DenseNet-264模型進(jìn)行測試.為了使得輸出尺寸大小不收限制,將最終的輸出層采用 Global Average Pool+1×1 的卷積層 (卷積層輸出通道數(shù)為分類數(shù)量)進(jìn)行替換.模型結(jié)構(gòu)如圖3所示.

圖3 模型結(jié)構(gòu)

訓(xùn)練過程中,使用了 Color Jittering,Random Crop Resize,Rotate等數(shù)據(jù)增強(qiáng)方法,對比了使用行人檢測消除背景前后的分類結(jié)果差異.

使用以上幾種模型結(jié)構(gòu)進(jìn)行訓(xùn)練并且測試,測試結(jié)果如圖4所示.

2.3 關(guān)鍵點(diǎn)定位效果對比

針對關(guān)鍵點(diǎn)定位問題,采用這里采用的是阿里天池大賽中服裝標(biāo)注點(diǎn)定位比賽里所采用的衡量標(biāo)準(zhǔn)NE值來對模型的定位效果進(jìn)行衡量和比較,數(shù)值越大則代表定位效果越好.

其中,k為關(guān)鍵點(diǎn)編號,dk表示預(yù)測關(guān)鍵點(diǎn)和標(biāo)注關(guān)鍵點(diǎn)的距離,sk為距離的歸一化參數(shù)(上衣、外套、連衣裙為兩個腋窩點(diǎn)歐式距離,褲子和半身裙為兩個褲頭點(diǎn)的歐式距離),vk表示關(guān)鍵點(diǎn)是否可見.

1)Convolutional Pose Machine 進(jìn)行關(guān)鍵點(diǎn)定位,使用了6個stage的CPM訓(xùn)練之后NE為13.37%.

2)嘗試使用Hourglass進(jìn)行定位,僅使用了翻轉(zhuǎn)進(jìn)行了數(shù)據(jù)增強(qiáng),NE值為10.78%.

3)增加了 Color Jittering,Random Crop Resize,Rotate等數(shù)據(jù)增強(qiáng)方法,降低到8.8.

4)使用Hourglass在MPII比賽上的模型參數(shù)進(jìn)行參數(shù)初始化,降低到7.86%.

5)僅訓(xùn)練單個模型進(jìn)行預(yù)測,對Loss進(jìn)行修改,不存在的關(guān)鍵點(diǎn)Loss為0,采用了CPN中提出的Online Hard Keypoints Mining (OHKM),僅保留損失較大的關(guān)鍵點(diǎn)進(jìn)行回傳.之前訓(xùn)練過的模型進(jìn)行權(quán)重的初始化,預(yù)測時通過Yolo進(jìn)行裁剪,NE降低到6.76%.

圖4 不同模型結(jié)構(gòu)測試準(zhǔn)確率對比

使用以上5種方式進(jìn)行關(guān)鍵點(diǎn)定位,測試得到的NE值對比,如圖5所示.

圖5 5種不同關(guān)鍵點(diǎn)定位的NE值對比

使用關(guān)鍵點(diǎn)定位算法來進(jìn)行局部特征提取,對原模型的提升效果如圖6所示.

圖6 關(guān)鍵點(diǎn)定位對模型準(zhǔn)確率效果提升對比

2.4 模型輕量化的實(shí)現(xiàn)及效果對比

考慮到大多數(shù)應(yīng)用場景下無法提供較高的硬件設(shè)備支持,故使用入門級的硬件設(shè)備進(jìn)行測試對比.本文采用的是 Inter Core i5 7300H CPU 搭配 NVIDIA 940mx低端入門級顯卡進(jìn)行測試.使用CUDA9.0搭配Pytorch框架進(jìn)行模型結(jié)構(gòu)的搭建.對上述采用的模型進(jìn)行測試,得到不同模型結(jié)構(gòu)進(jìn)行預(yù)測時所花費(fèi)的時間對比.如圖7所示.

圖7 分塊卷積方式和傳統(tǒng)卷積方式在不同的網(wǎng)絡(luò)結(jié)構(gòu)下的運(yùn)行時間以及準(zhǔn)確率(均未使用數(shù)據(jù)增強(qiáng)操作和背景信息的剔除操作)

從圖中的實(shí)驗(yàn)數(shù)據(jù)我們可以看到,使用分塊卷積來替代傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò)中的卷積方式,可以大幅度減少進(jìn)行計(jì)算時間,加快模型的訓(xùn)練以及預(yù)測階段的速度.降低了對硬件設(shè)備的要求,從而可以節(jié)約成本,以便于拓寬應(yīng)用場景.除此之外,使用分塊卷積的方式也減少了部分權(quán)重參數(shù),節(jié)約了存儲開銷.當(dāng)然,不可避免的是,隨著模型參數(shù)的減少,模型的擬合能力也隨之下降,準(zhǔn)確率也有了一定的損失.但是減少模型的參數(shù)量,在一定程度上降低了模型的復(fù)雜程度,從而起到減少過擬合的作用,使得模型的可遷移性更強(qiáng),適用于更多場景下采集的服裝圖像.

3 總結(jié)

通過以上的理論論述和實(shí)驗(yàn)部分的結(jié)果,得到了我們最終的模型設(shè)計(jì)方案.首先使用基于YOLOV3算法訓(xùn)練出的行人檢測模型來對輸入數(shù)據(jù)進(jìn)行預(yù)處理操作,減少背景信息對最終結(jié)果造成的干擾.將進(jìn)行裁剪后的圖像輸入關(guān)鍵點(diǎn)定位模型中,得到關(guān)鍵點(diǎn)的位置信息,與全局信息一同傳入卷積神經(jīng)網(wǎng)絡(luò)中進(jìn)行特征提取,輔助提高模型的預(yù)測效果以及算法模型的魯棒性.除此之外,使用分塊卷積對模型進(jìn)行輕量化的處理,可以幫助在較差的硬件環(huán)境下進(jìn)行使用,提高算法模型的運(yùn)行效率.

本文從實(shí)際的應(yīng)用需求出發(fā),分析了使用計(jì)算機(jī)輔助進(jìn)行服裝類別的分類的意義以及可行性.利用當(dāng)下在圖像分類領(lǐng)域取得極好效果的卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行嘗試和研究.同時結(jié)合了實(shí)際的應(yīng)用場景,從背景信息干擾,對關(guān)鍵部位信息的利用以及考慮到硬件條件限制這三個角度,設(shè)計(jì)了三種輔助操作,幫助提升基礎(chǔ)分類模型DenseNet在服裝類別分類這一應(yīng)用場景下的效果進(jìn)行提升.

最終得到的實(shí)驗(yàn)結(jié)果可以基本滿足日常的使用需求.通過一系列的改進(jìn)和優(yōu)化,極大程度的減少了拍攝場景對最終的分類效果的不良影響.很好的拓寬了模算法模型的應(yīng)用場景,很多在非幕布場景下拍攝的圖片也可以取得很好的分類效果.除此之外,在普通的PC設(shè)備上運(yùn)行基本可以達(dá)到每張1~2 s.在訓(xùn)練所使用的1080Ti顯卡上進(jìn)行計(jì)算可以達(dá)到4FPS的速度,相對于使用人工進(jìn)行分類的方式更加的高效快捷.可以很好替代人工分類,或者提供輔助.

猜你喜歡
關(guān)鍵點(diǎn)卷積神經(jīng)網(wǎng)絡(luò)
基于全卷積神經(jīng)網(wǎng)絡(luò)的豬背膘厚快速準(zhǔn)確測定
基于神經(jīng)網(wǎng)絡(luò)的船舶電力系統(tǒng)故障診斷方法
論建筑工程管理關(guān)鍵點(diǎn)
MIV-PSO-BP神經(jīng)網(wǎng)絡(luò)用戶熱負(fù)荷預(yù)測
肉兔育肥抓好七個關(guān)鍵點(diǎn)
基于改進(jìn)Hopfield神經(jīng)網(wǎng)絡(luò)的對地攻擊型無人機(jī)自主能力評價
一種基于卷積神經(jīng)網(wǎng)絡(luò)的地磁基準(zhǔn)圖構(gòu)建方法
基于3D-Winograd的快速卷積算法設(shè)計(jì)及FPGA實(shí)現(xiàn)
一種并行不對稱空洞卷積模塊①
基于神經(jīng)網(wǎng)絡(luò)的中小學(xué)生情感分析
三江| 东明县| 沁阳市| 扶沟县| 汝南县| 兴城市| 陇川县| 九龙县| 镶黄旗| 自治县| 孟津县| 报价| 古田县| 岚皋县| 华安县| 玛沁县| 岢岚县| 灵璧县| 台州市| 瑞金市| 封开县| 龙陵县| 高邑县| 台东市| 扶风县| 商南县| 安康市| 马尔康县| 资源县| 天门市| 建平县| 湾仔区| 通山县| 珲春市| 基隆市| 阳信县| 三都| 达拉特旗| 荆州市| 平南县| 扎囊县|