余 聰,李柏巖,劉曉強
(東華大學(xué)計算機科學(xué)與技術(shù)學(xué)院,上海 201620)
近年來,隨著信息技術(shù)的高速發(fā)展,網(wǎng)站已經(jīng)成為企業(yè)和機構(gòu)與用戶交互的重要平臺,許多線上業(yè)務(wù)都必須依托網(wǎng)站開展。然而,由于網(wǎng)絡(luò)世界的虛擬性、開放性,網(wǎng)絡(luò)監(jiān)管變得尤為困難,尤其是一些色情、暴力、垃圾廣告等不良圖片的傳播,使得網(wǎng)絡(luò)應(yīng)用面臨著巨大的風(fēng)險。
針對網(wǎng)站中可能出現(xiàn)的大量不良圖片,使用人工監(jiān)管的方式,無疑需要耗費巨大的人力成本。隨著深度學(xué)習(xí)的快速發(fā)展以及深度卷積神經(jīng)網(wǎng)絡(luò)在抽象特征提取上的巨大優(yōu)勢,深度學(xué)習(xí)的方法明顯優(yōu)于傳統(tǒng)的圖像識別算法。通過設(shè)計一個基于深度學(xué)習(xí)的智能圖像審核系統(tǒng),實現(xiàn)違規(guī)圖像的自動識別,不僅可以大大節(jié)約審核人力,還可以快速、精準地對不良圖像進行過濾。
網(wǎng)絡(luò)違規(guī)圖片檢測目前也受到了工業(yè)界的關(guān)注。近年來,針對互聯(lián)網(wǎng)上傳播的違規(guī)圖片,工業(yè)界通常提供單一接口檢測單類違規(guī)圖片的服務(wù),這種檢測方式存在著一定的局限性,不適用于一些中小型企業(yè)的實時在線圖片監(jiān)測需求。首先,對于多類違規(guī)圖片檢測,用戶通常需要購買多個接口,檢測成本高,集成效率低;其次,工業(yè)界訓(xùn)練的模型復(fù)雜,對硬件要求高。本文針對目前網(wǎng)絡(luò)違規(guī)圖片實時監(jiān)測的需求,提出了一種基于深度學(xué)習(xí)的網(wǎng)頁違規(guī)圖片檢測方案。主要貢獻如下:
(1)構(gòu)建了多類別違規(guī)圖片數(shù)據(jù)集?;诰矸e神經(jīng)網(wǎng)絡(luò)的圖像識別技術(shù),需要通過大量的數(shù)據(jù)集來學(xué)習(xí)圖像中的抽象特征。本系統(tǒng)待檢測的圖片均為不良圖片,現(xiàn)有的公開數(shù)據(jù)集十分有限。本文主要通過抽取公開數(shù)據(jù)集、網(wǎng)絡(luò)爬蟲、提取視頻關(guān)鍵幀并對得到的數(shù)據(jù)進行清洗的方式構(gòu)建違規(guī)圖片數(shù)據(jù)集。
(2)基于MobileNet 設(shè)計了一個輕量級模型對色情、暴力和廣告等三類不良圖片實現(xiàn)一次性檢測,在保證準確率的前提下,提高了模型檢測的效率。
實驗和應(yīng)用表明,該模型用于檢測網(wǎng)頁違規(guī)圖片時,準確率高、速度快,可以為中小型網(wǎng)站提供一種低成本的違規(guī)圖片檢測服務(wù)。
網(wǎng)頁違規(guī)圖片檢測主要分為樣本庫構(gòu)建、模型構(gòu)建、網(wǎng)頁圖片檢測三部分,如圖1 所示。為了構(gòu)建圖片檢測模型,首先通過網(wǎng)絡(luò)爬蟲、提取視頻關(guān)鍵幀、抽取公開數(shù)據(jù)集等方式構(gòu)建初始樣本庫,由于違規(guī)圖片樣本數(shù)量有限,使用數(shù)據(jù)增強的方式來擴大訓(xùn)練樣本數(shù)量;然后以MobileNet 作為骨干網(wǎng)絡(luò),搭建違規(guī)圖片檢測模型(illegal picture detection model, IPDMnet),在保證模型準確率與檢測速度的前提下,對模型進行訓(xùn)練并優(yōu)化;在網(wǎng)頁圖片監(jiān)測階段,以爬蟲方式爬取得到網(wǎng)頁圖片,并利用違規(guī)圖片檢測模型IPDMnet 對爬取的圖片進行檢測,最后輸出檢測結(jié)果。
圖1 網(wǎng)頁違規(guī)圖片檢測整體框架圖
通過對實際業(yè)務(wù)需求的分析,將需要檢測的違規(guī)圖片分為正常、色情、暴恐、垃圾廣告這四類。數(shù)據(jù)集樣本庫的來源如下。
2.1.1 正常圖片
主要指不包含違規(guī)內(nèi)容的圖片。本文首先從公開數(shù)據(jù)集ImageNet 選取20 種最常見的類別,如人物圖、動物圖、風(fēng)景圖等,再從每個類別隨機抽取一定數(shù)量的圖片構(gòu)建正常圖片樣本。
2.1.2 色情圖片
主要指包含淫穢信息的圖片。本文構(gòu)建的色情圖片分為真人和動漫兩大類。由于公開的色情數(shù)據(jù)集十分有限且分辨率低,真人類色情圖片主要通過抽取NSFW 圖像數(shù)據(jù)集的方式構(gòu)建,動漫類色情圖片主要通過網(wǎng)絡(luò)爬蟲的方式從國外不良網(wǎng)站爬取。
2.1.3 廣告圖片
主要指包含二維碼、手機號、推銷標語等具有明顯推銷意圖的圖片。本文主要通過網(wǎng)絡(luò)下載的方式構(gòu)建。
2.1.4 暴恐圖片
主要指包含明顯打斗、血腥場景的圖片。目前沒有公開的暴恐圖片數(shù)據(jù)集,本文主要從影視視頻和暴恐視頻數(shù)據(jù)集提取視頻關(guān)鍵幀進行數(shù)據(jù)集構(gòu)建。
為了提高模型的訓(xùn)練速度以及模型的準確率,需要對訓(xùn)練的圖像數(shù)據(jù)進行預(yù)處理。本文主要從數(shù)據(jù)清洗和數(shù)據(jù)增強方面提高圖像數(shù)據(jù)的質(zhì)量。
2.2.1 數(shù)據(jù)清洗
由于采集的圖片大多來自于網(wǎng)絡(luò),圖片的形狀、大小不一,將對模型訓(xùn)練產(chǎn)生一定的影響。比如圖片的高寬比過大或者過小時,圖片會嚴重變形、失真,故本文將采集到的圖片數(shù)據(jù)進行過濾,去除高寬比大于5或者小于0.2的圖片;而當(dāng)圖片的尺寸過小時,圖片識別度大大降低,尺寸過大時,影響模型訓(xùn)練速度與成本,故本文將可用的圖片數(shù)據(jù)限制在10 K~10 M之間。
實驗表明,圖片的格式類型同樣會影響模型的訓(xùn)練,比如單通道灰度圖像、多通道的RGB 圖像和BGR 圖像等。為了提高訓(xùn)練集數(shù)據(jù)質(zhì)量與規(guī)范,本文將訓(xùn)練集數(shù)據(jù)規(guī)范為RGB 類型。對單通道的灰度圖像,先進行通道擴充;對于BGR圖像,先將其轉(zhuǎn)化為RGB圖像。
2.2.2 數(shù)據(jù)增強
為了進一步擴大訓(xùn)練數(shù)據(jù)量,從而提升模型性能,采用多種數(shù)據(jù)增量技術(shù)。傳統(tǒng)的隨機縮放裁剪方法,可以產(chǎn)生大量圖片碎片,成倍擴充數(shù)據(jù)量。但針對本文處理的違規(guī)圖片,特別是色情、暴恐類圖片,當(dāng)它們被裁切之后,往往會失去原有的屬性,造成對應(yīng)的標簽錯誤。因此,本文在輕量級數(shù)據(jù)增強技術(shù)的基礎(chǔ)上,引入一種免搜索的自動數(shù)據(jù)增強策略TrivialAugment。傳統(tǒng)的自動數(shù)據(jù)增強方法如AutoAugment往往是以數(shù)據(jù)增強策略作為搜索空間,并結(jié)合強化學(xué)習(xí)得到搜索方法,但這類自動數(shù)據(jù)增強的方式往往搜索空間巨大,實驗代價高。TrivialAugment 不需要任何搜索,方法十分簡單:先定義一個圖像增強策略集合,每次隨機選擇一個圖像增強策略,并隨機確定它的增強幅度,最后對圖像進行增強。整個過程不需要任何超參數(shù),所以不需要任何搜索。
本文首先對已有數(shù)據(jù)集圖像分別水平翻轉(zhuǎn)90°、180°、270°,將數(shù)據(jù)擴大為原來的4 倍,再引入TrivialAugment 進行自動數(shù)據(jù)增強。實驗表明,TrivialAugment 在本文的違規(guī)圖片數(shù)據(jù)集上具有良好的應(yīng)用效果。
2.3.1 IPDMnet核心結(jié)構(gòu)
傳統(tǒng)的深度卷積神經(jīng)網(wǎng)絡(luò),如AlexNet、VGG、GoogLeNet、ResNet 在圖像分類領(lǐng)域都取得了良好的效果。但是,這些傳統(tǒng)的深度卷積神經(jīng)網(wǎng)絡(luò)往往模型復(fù)雜、計算量大,對硬件資源有限、模型速度要求快的場景并不適用。本文采用輕量級網(wǎng)絡(luò)MobileNetV2 作為骨干網(wǎng)絡(luò)。MobileNetV2網(wǎng)絡(luò)是google 團隊在2018 年提出來的,該模型準確率高、參數(shù)小、運算量低。此外,最近研究表明,通道注意力機制如SE-NET 在提升深度卷積神經(jīng)網(wǎng)絡(luò)性能方面有巨大的優(yōu)勢。但是,傳統(tǒng)的注意力模塊往往需要增加大量參數(shù),提高了模型的復(fù)雜度。因此,本文在模型中引入一種輕量級注意力模塊ECANET來提升模型性能。
MobileNetV2的優(yōu)勢主要源于倒殘差結(jié)構(gòu),而SE注意力模塊在殘差網(wǎng)絡(luò)結(jié)構(gòu)上有良好的表現(xiàn)。Hu 等通過消融實驗證明,將SE 模塊引入殘差結(jié)構(gòu)之后,能夠有效提高殘差模型的性能。由于倒殘差結(jié)構(gòu)與殘差結(jié)構(gòu)提取特征的方式十分類似,ECA 模塊也相當(dāng)于對SE 模塊的一個改進,本文受此啟發(fā),將ECA 模塊引入Mobile-NetV2中的倒殘差結(jié)構(gòu)之后,構(gòu)建基于倒殘差結(jié)構(gòu)和ECA 分支的block 塊。構(gòu)建的block 塊為IPDM模型的核心部分,如圖2所示。實驗表明,ECA 與倒殘差結(jié)構(gòu)的融合在本文的違規(guī)圖片數(shù)據(jù)集上能夠取得良好的效果。
圖2 IPDMnet核心結(jié)構(gòu)示意圖
2.3.2 倒殘差網(wǎng)絡(luò)
倒殘差結(jié)構(gòu)主要分為三個部分:升維卷積PW1、特征提取卷積DW、降維卷積PW2,并借鑒ResNet 的殘差結(jié)構(gòu),使用shortcut 將輸入與輸出相加,如圖3所示,它主要是為了適配DW 卷積而設(shè)計的。由于DW 卷積自身的計算特性決定了它不能改變通道數(shù)量,所以如果上一層輸出的通道數(shù)較少,DW 卷積只能在低維空間提取特征,效果并不好。所以倒殘差結(jié)構(gòu)給每個DW卷積都配備了一個PW 卷積用于升維,通過升維系數(shù)設(shè)定。這樣即使輸入通道比較低,經(jīng)過一個PW 卷積升維后,DW 卷積都可以在一個相對更高維的空間提取特征。另一方面,相關(guān)實驗表明,激活函數(shù)在高維空間能增加非線性能力,在低維空間會破壞特征,因此,在經(jīng)過PW2 卷積的降維操作后,不再使用激活函數(shù),而是使用一個linear層線性輸出。
圖3 倒殘差結(jié)構(gòu)示意圖
2.3.3 ECA-NET分支
ECA-NET 是一種極輕量級的注意力模塊,它以SE 模塊為基礎(chǔ),通過引入一維卷積,不僅避免了特征維度的縮減,并且保證了通道間的信息交互,在降低復(fù)雜度的同時,保持了模型性能。ECA 模塊主要包含三個部分:全局平均池化產(chǎn)生對應(yīng)特征圖,計算得到自適應(yīng)的kernel_size,應(yīng)用kernel_size 到一維卷積產(chǎn)生對應(yīng)通道權(quán)重,如圖4所示。通過自適應(yīng)函數(shù)得到一維卷積的卷積核大小,可以使得通道數(shù)較大時進行更多的通道信息交互。自適應(yīng)卷積核大小計算公式為:
圖4 ECA網(wǎng)絡(luò)結(jié)構(gòu)示意圖
公式(1)中表示輸入的通道數(shù),其中= 2,= 1,表示選擇最近的奇數(shù)。
本文模型IPDMnet 的輸入為224 × 224 大小的圖片,特征提取部分包含1 個卷積層和7 個基于倒殘差結(jié)構(gòu)和ECA 的block 塊,其中構(gòu)建的block 塊為模型的核心部分。第一個卷積層采用32 個3 × 3 的卷積核,卷積核步長為2,卷積層后面設(shè)置一個BN 層,以加快模型的收斂,激活函數(shù)使用ReLU6;每個block 塊在倒殘差結(jié)構(gòu)之后構(gòu)建ECA 分支,并給對應(yīng)的通道加權(quán);分類器部分采用一個平均池化下采樣層avgpool 和一個全連接層,為了防止模型過擬合,在全連接層中加入dropout 層并設(shè)置dropout 值為0.2。由于本文做的是4分類,最后全連接層的神經(jīng)元個數(shù)設(shè)為4。
本文通過爬蟲爬取、提取視頻關(guān)鍵幀、抽取公開數(shù)據(jù)集的方式構(gòu)建初始樣本庫,并對得到的樣本進行清洗,構(gòu)建多類違規(guī)圖片數(shù)據(jù)集。由于在現(xiàn)實應(yīng)用場景中,正常圖片出現(xiàn)的概率遠遠大于違規(guī)圖片,所以構(gòu)建數(shù)據(jù)集時,正常圖片數(shù)據(jù)集的比例也要大于違規(guī)圖片。本文構(gòu)建的數(shù)據(jù)集如表1所示。
表1 數(shù)據(jù)集描述
實驗平臺操作系統(tǒng)為CentOS 7.7.1908,支持軟件版本為Python 3.6、PyTorch 1.10.0。執(zhí)行訓(xùn)練的服務(wù)器CPU 為Intel(R)Xeon(R)Silver 4208,64 G內(nèi)存,GPU為4核GTX2080Ti。
為驗證違規(guī)圖片檢測模型IPDMnet 的可行性,本文采用準確率、每張圖片平均檢測速度,模型參數(shù)大小評判模型的性能。各項評價指標的計算方法如下:
公式(2)中,表示分類正確的樣本數(shù),表示樣本總數(shù)。
公式(3)中,表示檢測100 張圖片所消耗的時間,單位為毫秒(ms)。
實驗將數(shù)據(jù)集劃分為訓(xùn)練集和測試集的比例為8∶2。通過反復(fù)的訓(xùn)練實驗,最后將模型主要訓(xùn)練參數(shù)設(shè)置如下:learning_rate:0.0001,batch_size:16,num_workers:8,模型采用Adam優(yōu)化器,交叉熵損失函數(shù)。由于本文違規(guī)圖片數(shù)據(jù)集樣本有限,為了得到更好的訓(xùn)練效果,首先,將模型在Caltech 256 數(shù)據(jù)集上進行遷移學(xué)習(xí),得到預(yù)訓(xùn)練模型,最后再在訓(xùn)練集上迭代訓(xùn)練100輪。
根據(jù)上述實驗設(shè)置以及模型評價指標,本文主要從經(jīng)典深度卷積神經(jīng)網(wǎng)絡(luò)、基于注意力機制的Transformer、輕量級網(wǎng)絡(luò)三個方面進行實驗對比。以傳統(tǒng)的深度卷積神經(jīng)網(wǎng)絡(luò)ResNet34 作為骨干網(wǎng)絡(luò),再融合ECA 注意力機制,模型準確率能夠達到97.07%,預(yù)測單張圖片需要6.08 ms;使用Swin_Transformer_Tiny 模型進行實驗,模型準確率雖然也能夠達到96.98%,但是預(yù)測單張圖片需要12.67 ms,模型復(fù)雜度較高;最后,使用IPDMnet 進行實驗,模型準確率與表現(xiàn)較優(yōu)的ECA-ResNet34 準確率十分接近,但檢測速度明顯優(yōu)于它和其他模型,并且模型復(fù)雜度大大降低。由于本文的違規(guī)圖片檢測模型主要為中小型企業(yè)提供服務(wù),綜合考慮準確率與檢測成本,IPDMnet相比于其它模型將會有較大優(yōu)勢。
表2 不同模型的檢測效果比較
網(wǎng)頁違規(guī)圖片監(jiān)測是維護網(wǎng)絡(luò)安全的重要環(huán)節(jié),而不良圖片種類繁多、形式多樣,對圖片實時監(jiān)測提出了挑戰(zhàn)。本文針對色情、暴恐和廣告違規(guī)圖片類別,構(gòu)建相應(yīng)的數(shù)據(jù)集,構(gòu)建了一個基于深度學(xué)習(xí)算法的網(wǎng)絡(luò)結(jié)構(gòu)模型,同時實現(xiàn)多類違規(guī)圖片的檢測。實驗表明,該模型準確率高、檢測速度快、模型輕量,可為中小型企業(yè)提供網(wǎng)頁違規(guī)圖片實時監(jiān)測服務(wù)。但由于違規(guī)圖片內(nèi)容復(fù)雜,具有一定的混淆性,加上違規(guī)圖片數(shù)據(jù)集有限,對于一些特征比較模糊的圖片,容易出現(xiàn)誤判。接下來的工作將進一步擴充數(shù)據(jù)集,并對模型進行優(yōu)化,提高
模型的識別范圍以及模型準確率。