楊 雄
(福州大學(xué)至誠(chéng)學(xué)院,福州 350002)
互聯(lián)網(wǎng)的快速發(fā)展,為人們生活、學(xué)習(xí)和工作帶來(lái)便利的同時(shí),也造成了大量敏感信息的快速傳播,對(duì)社會(huì)造成了一定的危害,其中以色情圖像尤為嚴(yán)重。為了有效遏制網(wǎng)絡(luò)色情,基于圖像內(nèi)容的識(shí)別過(guò)濾技術(shù)成為網(wǎng)絡(luò)掃黃的重要工具。據(jù)統(tǒng)計(jì),互聯(lián)網(wǎng)圖像每年新增數(shù)量超過(guò)千億,如何快速有效檢測(cè)超大容量的網(wǎng)絡(luò)圖像從而凈化網(wǎng)絡(luò)環(huán)境已經(jīng)受到越來(lái)越多的關(guān)注。
不同于IP和文本分析過(guò)濾,近年來(lái)針對(duì)色情圖像的識(shí)別主要是基于圖像內(nèi)容的檢測(cè),國(guó)內(nèi)外學(xué)者對(duì)此都做了大量的研究工作。主流的色情圖像識(shí)別技術(shù)可分成三種:
1)基于膚色和紋理檢測(cè)的色情圖像識(shí)別。例如:胡柳等[1]提出一種以YCbCr顏色空間膚色檢測(cè)為主,結(jié)合模板匹配、特定情景的識(shí)別實(shí)現(xiàn)對(duì)不良圖片的快速檢測(cè)。王國(guó)營(yíng)等[2]提出一種基于膚色信息的投票機(jī)制提取出顯著區(qū)域,再采用SVM對(duì)敏感圖像進(jìn)行分類的方法。
2)基于多維度特征的色情圖像識(shí)別。鑒于膚色和紋理檢測(cè)算法對(duì)于紋理復(fù)雜以及類膚色區(qū)域較多的正常圖像容易產(chǎn)生誤檢,學(xué)者們開(kāi)始研究提取更多的特征,基于多個(gè)維度來(lái)進(jìn)行色情圖像的識(shí)別。例如:陳曉等[3]提出的將軀干部分作為興趣區(qū)域的不良圖片識(shí)別算法,Wang等[4]提出以肚臍為中心的人體軀干矩形為特征進(jìn)行分類。
3)基于深度學(xué)習(xí)的色情圖像識(shí)別。近年來(lái),深度學(xué)習(xí)在目標(biāo)檢測(cè)、定位和分類等視覺(jué)任務(wù)中占據(jù)了主導(dǎo)地位。隨著計(jì)算機(jī)視覺(jué)的發(fā)展,改進(jìn)的訓(xùn)練數(shù)據(jù)和深度學(xué)習(xí)算法,使計(jì)算機(jī)能夠更精確地自動(dòng)分類色情圖像。
基于上述需求,提出一種在傳統(tǒng)色情圖像識(shí)別方法的基礎(chǔ)上,融合基于深度學(xué)習(xí)的神經(jīng)網(wǎng)絡(luò)模型的網(wǎng)絡(luò)色情網(wǎng)像檢測(cè)方法。首先通過(guò)爬蟲(chóng)從指定網(wǎng)站爬取圖像,然后對(duì)圖像中的人物進(jìn)行快速識(shí)別、定位和分割,其次結(jié)合YCbCr顏色空間膚色模型和深度學(xué)習(xí)的NSFW模型判定預(yù)處理后的圖像是否包含色情內(nèi)容,最后將圖像信息和識(shí)別結(jié)果存儲(chǔ)到數(shù)據(jù)庫(kù)中,由審查人員根據(jù)結(jié)果對(duì)目標(biāo)網(wǎng)站做出相應(yīng)處理。實(shí)驗(yàn)結(jié)果表明,該檢測(cè)方法識(shí)別正確率較傳統(tǒng)方法有較大提升,滿足實(shí)際應(yīng)用需求。
網(wǎng)絡(luò)色情圖像檢測(cè)系統(tǒng)的總體流程如圖1所示。
圖1 網(wǎng)絡(luò)色情圖像檢測(cè)系統(tǒng)總體流程圖
其中的互聯(lián)網(wǎng)為未經(jīng)過(guò)檢測(cè)的原始數(shù)據(jù)源,其很可能包含帶色情內(nèi)容的圖像,檢測(cè)系統(tǒng)為處理單元,包含了圖像采集和色情圖像識(shí)別,將網(wǎng)站批量圖像的識(shí)別結(jié)果反饋給審查人員,由部門審查人員對(duì)相關(guān)網(wǎng)站做出整改或屏蔽與否等操作。
網(wǎng)絡(luò)圖像抓取的關(guān)鍵在于網(wǎng)絡(luò)圖像爬蟲(chóng)的設(shè)計(jì),該模塊以Scrapy-Redis為基礎(chǔ),設(shè)計(jì)實(shí)現(xiàn)了分布式抓取網(wǎng)絡(luò)圖像。
爬蟲(chóng)模塊的基本流程如圖2所示。
圖2 爬蟲(chóng)模塊的基本流程圖
網(wǎng)絡(luò)圖像各式各樣,為了減少背景的干擾,提高色情圖像識(shí)別的正確率,在進(jìn)行識(shí)別前先進(jìn)行預(yù)處理,將圖像中的人與背景相分離。
一般網(wǎng)站中正常圖像的比例要高于色情圖像的比例,基于YCbCr膚色模型檢測(cè)的色情圖像識(shí)別的局限性在于容易被類膚色的圖像背景誤導(dǎo),但該算法對(duì)于正常圖像有較高的識(shí)別率,因此該模塊使用YCbCr膚色模型和NSFW模型進(jìn)行級(jí)聯(lián)識(shí)別,首先由YCbCr膚色模型進(jìn)行一級(jí)識(shí)別,若被判定為疑似色情圖像則再利用NSFW模型進(jìn)行二級(jí)識(shí)別。色情圖像識(shí)別模塊的流程如圖3所示。
1.2.1 圖像預(yù)處理
由于網(wǎng)絡(luò)圖像參差不齊,圖像中若存在多個(gè)皮膚裸露層度不同的人物或者類膚色背景時(shí),對(duì)識(shí)別成功率會(huì)造成負(fù)影響,因此在色情圖像識(shí)別流程中需要先將圖像中的人物與背景相分離,再對(duì)人物進(jìn)行針對(duì)性的識(shí)別。圖像預(yù)處理組件的功能就是將提取原始圖像中的人物圖像,并調(diào)整成256×256像素大小。
人物圖像分離是通過(guò)TensorFlow框架來(lái)實(shí)現(xiàn)的,使用谷歌已經(jīng)訓(xùn)練好的ssd_mobilenet模型。首先對(duì)圖像中的物體進(jìn)行識(shí)別,獲取與“人”相似率高于50%的物體坐標(biāo)矩陣,接著根據(jù)坐標(biāo)矩陣對(duì)圖像進(jìn)行切割獲取人體圖像,最后將人體圖像按照指定大小保存。圖像預(yù)處理的流程如圖4所示。
圖3 色情圖像識(shí)別流程圖
圖4 圖像預(yù)處理的流程
1.2.2 色情圖像識(shí)別
基于YCbCr膚色檢測(cè)算法對(duì)系統(tǒng)資源消耗較少效率較高,而基于深度學(xué)習(xí)的NSFW模型相比膚色檢測(cè)算法的資源消耗相對(duì)較高,因此對(duì)預(yù)處理后的圖像文件,只有在一級(jí)識(shí)別為疑似色情圖像時(shí)再進(jìn)行二級(jí)判定,能夠在較低的資源消耗下同時(shí)提高識(shí)別準(zhǔn)確率。
YCbCr檢測(cè)算法定義非色情圖像的規(guī)則為:
1)皮膚區(qū)域面積所占的像素占整幅圖像的比值小于15%;
2)最大皮膚區(qū)域的面積占總皮膚面積的比值小于45%;
3)皮膚區(qū)域數(shù)量小于3或超過(guò)60個(gè)。
算法實(shí)現(xiàn)的關(guān)鍵步驟為:
1)首先遍歷圖像上的所有像素點(diǎn),檢測(cè)像素顏色是否為膚色;
2)將相鄰的判定為膚色的像素合并為某個(gè)皮膚區(qū)域,從而可以得到n個(gè)皮膚區(qū)域;
3)對(duì)某個(gè)皮膚區(qū)域的像素?cái)?shù)量進(jìn)行判斷,若像素量極少(小于30個(gè))則剔除。
基于YCbCr膚色檢測(cè)算法的局限性在于如皮膚裸露較多但非色情圖像的誤檢率較高,如對(duì)圖5中的比基尼和米開(kāi)朗琪羅著名作品《大衛(wèi)》兩張圖像,YCbCr膚色檢測(cè)算法均識(shí)別為色情圖像,因此當(dāng)一級(jí)識(shí)別結(jié)果為色情圖像時(shí),再利用NSFW模型識(shí)別進(jìn)行二級(jí)識(shí)別。
圖5 疑似色情圖像
本文提出的基于深度學(xué)習(xí)的NSFW模型是由基于加權(quán)的混合卷積神經(jīng)網(wǎng)絡(luò)來(lái)實(shí)現(xiàn)的。模塊體系結(jié)構(gòu)如圖6所示,包含8個(gè)CNN模型,每個(gè)模型都使用相同的體系結(jié)構(gòu),并使用普通最小二乘法計(jì)算每個(gè)模型的權(quán)重值。
圖6 加權(quán)的混合卷積神經(jīng)網(wǎng)絡(luò)
由于深度神經(jīng)網(wǎng)絡(luò)模型需要較長(zhǎng)的訓(xùn)練時(shí)間,本文是采用在單個(gè)訓(xùn)練過(guò)程中同時(shí)獲取具有不同權(quán)重的八個(gè)子模型的方法,它可大幅減少訓(xùn)練時(shí)間。子模型是基于深度卷積神經(jīng)網(wǎng)絡(luò)的二分類模型,輸出結(jié)果為0~1,數(shù)值越接近于1,疑似色情的概率越大。若數(shù)值<0.2表示很安全;當(dāng)數(shù)值>0.8表示有非常大可能性是色情圖像。實(shí)驗(yàn)?zāi)P偷木W(wǎng)絡(luò)使用Caffe[5]在Hadoop和Spark模型訓(xùn)練集群中深度學(xué)習(xí),網(wǎng)絡(luò)結(jié)構(gòu)采用ResNet[6]。
基于NSFW模型的色情圖像識(shí)別流程如圖7所示。
圖7 基于NSFW模型的色情圖像識(shí)別流程
利用NSFW模型分別對(duì)圖5中的兩張疑似色情圖像進(jìn)行檢測(cè),輸出結(jié)果分別為0.01973和0.54456,在閾值為0.8時(shí)可判定為正常圖像。
首先,選擇4000張彩色圖片對(duì)色情圖像識(shí)別進(jìn)行試驗(yàn),圖像大小跨度幾十至上千像素,圖像種類包括BMP、JPG、PNG等網(wǎng)絡(luò)常見(jiàn)圖片格式,其中正常圖片3200張(包含風(fēng)景、幼兒、比基尼、實(shí)體雕像、人物等),色情圖像(包括裸露皮膚和只露點(diǎn)等)800張,兩者比例為4∶1。試驗(yàn)結(jié)果如表1所示。
表1 圖像種類判斷結(jié)果
通過(guò)實(shí)驗(yàn)結(jié)果我們可以看到,對(duì)正常圖像和色情圖像的總體檢測(cè)率達(dá)到97%以上,表明該方法可滿足實(shí)際應(yīng)用的需求。
1)選取從今日頭條 https://www.toutiao.com 通過(guò)關(guān)鍵字美女爬取的357幅圖像作為實(shí)驗(yàn)數(shù)據(jù),其中未發(fā)現(xiàn)色情圖像,識(shí)別正確率為100%。
2)選取某色情網(wǎng)站爬取的5726幅圖像進(jìn)行識(shí)別,其中107幅為正常圖像,其余為色情圖像,試驗(yàn)結(jié)果如表2所示。
表2 某色情網(wǎng)站圖像識(shí)別結(jié)果
試驗(yàn)結(jié)果顯示該系統(tǒng)可以滿足網(wǎng)絡(luò)色情圖像檢測(cè)的要求,將傳統(tǒng)方法90%左右的正檢率提升至97%。但在實(shí)際中還存在一些誤判的情況,主要是兩方面:一是將一些性感但不露點(diǎn)圖像識(shí)別為色情圖像;二是部分情趣露點(diǎn)或只露點(diǎn)但其他皮膚未裸露圖像未能夠正確識(shí)別,仍然被認(rèn)為是正常圖像。
在互聯(lián)網(wǎng)信息膨脹、網(wǎng)絡(luò)不良圖像泛濫的今天,色情圖像識(shí)別過(guò)濾技術(shù)的研究具有很大的意義。本文將傳統(tǒng)基于YCbCr膚色檢測(cè)算法和基于深度學(xué)習(xí)的NSFW模型有效結(jié)合起來(lái),構(gòu)成二級(jí)識(shí)別模型,并使用分布式網(wǎng)絡(luò)爬蟲(chóng)技術(shù)提高了網(wǎng)絡(luò)色情圖像的檢測(cè)效率。實(shí)驗(yàn)統(tǒng)計(jì)結(jié)果表明,本文的色情圖像識(shí)別技術(shù)能很好地實(shí)現(xiàn)色情圖像的檢測(cè),并達(dá)到97%以上精度。
隨著網(wǎng)絡(luò)帶寬的增大和流媒體技術(shù)的發(fā)展,網(wǎng)絡(luò)視頻和直播在互聯(lián)網(wǎng)上所占的比重日益增大,對(duì)網(wǎng)絡(luò)視頻和直播內(nèi)容的監(jiān)控和識(shí)別勢(shì)必成為未來(lái)的研究熱點(diǎn)。對(duì)于網(wǎng)絡(luò)視頻和直播內(nèi)容的檢測(cè)也是后續(xù)的研究工作。該部分可通過(guò)提取出網(wǎng)絡(luò)視頻文件的關(guān)鍵幀圖像和直播視頻過(guò)程的截圖,對(duì)其進(jìn)行圖像識(shí)別,從而實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)視頻文件和直播內(nèi)容的檢測(cè)。