楊 雄
(福州大學至誠學院,福州 350002)
互聯(lián)網(wǎng)的快速發(fā)展,為人們生活、學習和工作帶來便利的同時,也造成了大量敏感信息的快速傳播,對社會造成了一定的危害,其中以色情圖像尤為嚴重。為了有效遏制網(wǎng)絡色情,基于圖像內(nèi)容的識別過濾技術成為網(wǎng)絡掃黃的重要工具。據(jù)統(tǒng)計,互聯(lián)網(wǎng)圖像每年新增數(shù)量超過千億,如何快速有效檢測超大容量的網(wǎng)絡圖像從而凈化網(wǎng)絡環(huán)境已經(jīng)受到越來越多的關注。
不同于IP和文本分析過濾,近年來針對色情圖像的識別主要是基于圖像內(nèi)容的檢測,國內(nèi)外學者對此都做了大量的研究工作。主流的色情圖像識別技術可分成三種:
1)基于膚色和紋理檢測的色情圖像識別。例如:胡柳等[1]提出一種以YCbCr顏色空間膚色檢測為主,結合模板匹配、特定情景的識別實現(xiàn)對不良圖片的快速檢測。王國營等[2]提出一種基于膚色信息的投票機制提取出顯著區(qū)域,再采用SVM對敏感圖像進行分類的方法。
2)基于多維度特征的色情圖像識別。鑒于膚色和紋理檢測算法對于紋理復雜以及類膚色區(qū)域較多的正常圖像容易產(chǎn)生誤檢,學者們開始研究提取更多的特征,基于多個維度來進行色情圖像的識別。例如:陳曉等[3]提出的將軀干部分作為興趣區(qū)域的不良圖片識別算法,Wang等[4]提出以肚臍為中心的人體軀干矩形為特征進行分類。
3)基于深度學習的色情圖像識別。近年來,深度學習在目標檢測、定位和分類等視覺任務中占據(jù)了主導地位。隨著計算機視覺的發(fā)展,改進的訓練數(shù)據(jù)和深度學習算法,使計算機能夠更精確地自動分類色情圖像。
基于上述需求,提出一種在傳統(tǒng)色情圖像識別方法的基礎上,融合基于深度學習的神經(jīng)網(wǎng)絡模型的網(wǎng)絡色情網(wǎng)像檢測方法。首先通過爬蟲從指定網(wǎng)站爬取圖像,然后對圖像中的人物進行快速識別、定位和分割,其次結合YCbCr顏色空間膚色模型和深度學習的NSFW模型判定預處理后的圖像是否包含色情內(nèi)容,最后將圖像信息和識別結果存儲到數(shù)據(jù)庫中,由審查人員根據(jù)結果對目標網(wǎng)站做出相應處理。實驗結果表明,該檢測方法識別正確率較傳統(tǒng)方法有較大提升,滿足實際應用需求。
網(wǎng)絡色情圖像檢測系統(tǒng)的總體流程如圖1所示。

圖1 網(wǎng)絡色情圖像檢測系統(tǒng)總體流程圖
其中的互聯(lián)網(wǎng)為未經(jīng)過檢測的原始數(shù)據(jù)源,其很可能包含帶色情內(nèi)容的圖像,檢測系統(tǒng)為處理單元,包含了圖像采集和色情圖像識別,將網(wǎng)站批量圖像的識別結果反饋給審查人員,由部門審查人員對相關網(wǎng)站做出整改或屏蔽與否等操作。
網(wǎng)絡圖像抓取的關鍵在于網(wǎng)絡圖像爬蟲的設計,該模塊以Scrapy-Redis為基礎,設計實現(xiàn)了分布式抓取網(wǎng)絡圖像。
爬蟲模塊的基本流程如圖2所示。

圖2 爬蟲模塊的基本流程圖
網(wǎng)絡圖像各式各樣,為了減少背景的干擾,提高色情圖像識別的正確率,在進行識別前先進行預處理,將圖像中的人與背景相分離。
一般網(wǎng)站中正常圖像的比例要高于色情圖像的比例,基于YCbCr膚色模型檢測的色情圖像識別的局限性在于容易被類膚色的圖像背景誤導,但該算法對于正常圖像有較高的識別率,因此該模塊使用YCbCr膚色模型和NSFW模型進行級聯(lián)識別,首先由YCbCr膚色模型進行一級識別,若被判定為疑似色情圖像則再利用NSFW模型進行二級識別。色情圖像識別模塊的流程如圖3所示。
1.2.1 圖像預處理
由于網(wǎng)絡圖像參差不齊,圖像中若存在多個皮膚裸露層度不同的人物或者類膚色背景時,對識別成功率會造成負影響,因此在色情圖像識別流程中需要先將圖像中的人物與背景相分離,再對人物進行針對性的識別。圖像預處理組件的功能就是將提取原始圖像中的人物圖像,并調整成256×256像素大小。
人物圖像分離是通過TensorFlow框架來實現(xiàn)的,使用谷歌已經(jīng)訓練好的ssd_mobilenet模型。首先對圖像中的物體進行識別,獲取與“人”相似率高于50%的物體坐標矩陣,接著根據(jù)坐標矩陣對圖像進行切割獲取人體圖像,最后將人體圖像按照指定大小保存。圖像預處理的流程如圖4所示。

圖3 色情圖像識別流程圖

圖4 圖像預處理的流程
1.2.2 色情圖像識別
基于YCbCr膚色檢測算法對系統(tǒng)資源消耗較少效率較高,而基于深度學習的NSFW模型相比膚色檢測算法的資源消耗相對較高,因此對預處理后的圖像文件,只有在一級識別為疑似色情圖像時再進行二級判定,能夠在較低的資源消耗下同時提高識別準確率。
YCbCr檢測算法定義非色情圖像的規(guī)則為:
1)皮膚區(qū)域面積所占的像素占整幅圖像的比值小于15%;
2)最大皮膚區(qū)域的面積占總皮膚面積的比值小于45%;
3)皮膚區(qū)域數(shù)量小于3或超過60個。
算法實現(xiàn)的關鍵步驟為:
1)首先遍歷圖像上的所有像素點,檢測像素顏色是否為膚色;
2)將相鄰的判定為膚色的像素合并為某個皮膚區(qū)域,從而可以得到n個皮膚區(qū)域;
3)對某個皮膚區(qū)域的像素數(shù)量進行判斷,若像素量極少(小于30個)則剔除。
基于YCbCr膚色檢測算法的局限性在于如皮膚裸露較多但非色情圖像的誤檢率較高,如對圖5中的比基尼和米開朗琪羅著名作品《大衛(wèi)》兩張圖像,YCbCr膚色檢測算法均識別為色情圖像,因此當一級識別結果為色情圖像時,再利用NSFW模型識別進行二級識別。

圖5 疑似色情圖像
本文提出的基于深度學習的NSFW模型是由基于加權的混合卷積神經(jīng)網(wǎng)絡來實現(xiàn)的。模塊體系結構如圖6所示,包含8個CNN模型,每個模型都使用相同的體系結構,并使用普通最小二乘法計算每個模型的權重值。

圖6 加權的混合卷積神經(jīng)網(wǎng)絡
由于深度神經(jīng)網(wǎng)絡模型需要較長的訓練時間,本文是采用在單個訓練過程中同時獲取具有不同權重的八個子模型的方法,它可大幅減少訓練時間。子模型是基于深度卷積神經(jīng)網(wǎng)絡的二分類模型,輸出結果為0~1,數(shù)值越接近于1,疑似色情的概率越大。若數(shù)值<0.2表示很安全;當數(shù)值>0.8表示有非常大可能性是色情圖像。實驗模型的網(wǎng)絡使用Caffe[5]在Hadoop和Spark模型訓練集群中深度學習,網(wǎng)絡結構采用ResNet[6]。
基于NSFW模型的色情圖像識別流程如圖7所示。

圖7 基于NSFW模型的色情圖像識別流程
利用NSFW模型分別對圖5中的兩張疑似色情圖像進行檢測,輸出結果分別為0.01973和0.54456,在閾值為0.8時可判定為正常圖像。
首先,選擇4000張彩色圖片對色情圖像識別進行試驗,圖像大小跨度幾十至上千像素,圖像種類包括BMP、JPG、PNG等網(wǎng)絡常見圖片格式,其中正常圖片3200張(包含風景、幼兒、比基尼、實體雕像、人物等),色情圖像(包括裸露皮膚和只露點等)800張,兩者比例為4∶1。試驗結果如表1所示。

表1 圖像種類判斷結果
通過實驗結果我們可以看到,對正常圖像和色情圖像的總體檢測率達到97%以上,表明該方法可滿足實際應用的需求。
1)選取從今日頭條 https://www.toutiao.com 通過關鍵字美女爬取的357幅圖像作為實驗數(shù)據(jù),其中未發(fā)現(xiàn)色情圖像,識別正確率為100%。
2)選取某色情網(wǎng)站爬取的5726幅圖像進行識別,其中107幅為正常圖像,其余為色情圖像,試驗結果如表2所示。

表2 某色情網(wǎng)站圖像識別結果
試驗結果顯示該系統(tǒng)可以滿足網(wǎng)絡色情圖像檢測的要求,將傳統(tǒng)方法90%左右的正檢率提升至97%。但在實際中還存在一些誤判的情況,主要是兩方面:一是將一些性感但不露點圖像識別為色情圖像;二是部分情趣露點或只露點但其他皮膚未裸露圖像未能夠正確識別,仍然被認為是正常圖像。
在互聯(lián)網(wǎng)信息膨脹、網(wǎng)絡不良圖像泛濫的今天,色情圖像識別過濾技術的研究具有很大的意義。本文將傳統(tǒng)基于YCbCr膚色檢測算法和基于深度學習的NSFW模型有效結合起來,構成二級識別模型,并使用分布式網(wǎng)絡爬蟲技術提高了網(wǎng)絡色情圖像的檢測效率。實驗統(tǒng)計結果表明,本文的色情圖像識別技術能很好地實現(xiàn)色情圖像的檢測,并達到97%以上精度。
隨著網(wǎng)絡帶寬的增大和流媒體技術的發(fā)展,網(wǎng)絡視頻和直播在互聯(lián)網(wǎng)上所占的比重日益增大,對網(wǎng)絡視頻和直播內(nèi)容的監(jiān)控和識別勢必成為未來的研究熱點。對于網(wǎng)絡視頻和直播內(nèi)容的檢測也是后續(xù)的研究工作。該部分可通過提取出網(wǎng)絡視頻文件的關鍵幀圖像和直播視頻過程的截圖,對其進行圖像識別,從而實現(xiàn)對網(wǎng)絡視頻文件和直播內(nèi)容的檢測。