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