杜佳
(深圳市標準技術研究院,廣東深圳,518000)
隨著互聯(lián)網(wǎng)的移動端的飛速發(fā)展,人類自農(nóng)業(yè)社會、工業(yè)社會后逐漸步入信息社會,人們的數(shù)字習慣在很短的時間內(nèi)發(fā)生了巨大的變化。擁有互聯(lián)網(wǎng)寬帶連接的家庭數(shù)量迅速增加,經(jīng)常使用互聯(lián)網(wǎng)的人數(shù)(即每周至少連接一次的人)也增加了。如今,孩子們經(jīng)常上網(wǎng),要么是為了娛樂,要么是為了學習。就像現(xiàn)實世界一樣,互聯(lián)網(wǎng)有很多不安全的地方,孩子們可能會接觸到有害的內(nèi)容。
隨著互聯(lián)網(wǎng)的普及,廣告也隨之成為人們生活中隨處可見的信息輸出源。大量的廣告信息魚龍混雜且難以監(jiān)管,不少不法份子趁虛而入,披著廣告的“外衣”傳播不良信息,荼毒人民尤其是青少年的心靈,引起嚴重的后果。傳統(tǒng)的廣告內(nèi)容監(jiān)管主要是文本審查方面,以人工審查為主。目前廣告內(nèi)容監(jiān)管范圍主要是如新浪微博、貼吧等社區(qū)平臺,以文本內(nèi)容為主,有關監(jiān)管部門通過投入大量的人力資源對各種社交平臺的內(nèi)容進行人工審核,在過去取得了一定得監(jiān)管效果,但是費事費力費人。由于科學技術的發(fā)展,廣告也逐漸擺脫了純文字的范疇,內(nèi)容豐富圖片、視頻廣告逐漸進入國民的生活,讓廣告內(nèi)容的監(jiān)管更加困難。加上現(xiàn)在整個人類社會進入大數(shù)據(jù)時代,海量且多模態(tài)的廣告信息人人工審核這一監(jiān)管方法顯得更加不適應當下社會。如何進行有效、高效、快速、精準的非文本廣告內(nèi)容審核成為不可避免需要解決的問題。
自2021年來,國家網(wǎng)信辦、公安局、文化和旅游局、市場監(jiān)管局聯(lián)合開展“2021雷霆凈網(wǎng)”網(wǎng)絡生態(tài)治理專項行動,對互聯(lián)網(wǎng)上的廣告信息進行嚴格監(jiān)管。為響應國家“凈網(wǎng)行動”的號召,本實驗提出了一種底層基于殘差網(wǎng)絡(ResNet)[1]的人臉檢測識別方法和利用OCR(光學字符識別)技術獲得圖片中文本信息然后利用文本匹配的文本識別方法,圖文結(jié)合對包含敏感人物的廣告進行識別檢測,達到廣告監(jiān)管的目的。
關于廣告審核技術,國內(nèi)外主要以文本審核為主。主要應用自動文本分類器進行審核工作。這些系統(tǒng)最初主要用于信息檢索,后來用于信息過濾、文本分類、推薦系統(tǒng)、情感分析、文檔摘要等。同樣,這些技術也被應用于許多領域,如醫(yī)學、工程、心理學、商業(yè)等。大多數(shù)文本分類過程可以分為以下五個階段(a)數(shù)據(jù)采集和標簽;(b)預處理;(c)特征提取或文本編碼(d)降維(e)分類器訓練(f)評價,不同的研究解決了這個領域中出現(xiàn)的不同問題。
本實驗分別將圖片廣告分成圖片信息和圖片里蘊涵的文本信息兩部分,先構建相關敏感人物人臉圖片庫,利用face_recognition庫進行人臉識別,并和人臉數(shù)據(jù)庫圖片進行對比,識別圖片中是否含有敏感人物;文本部分則采用基于百度paddle深度學習平臺里的paddleocr庫進行文字抽取,然后利用flashtext算法基于敏感人名字典進行高效匹配,判斷圖片中文字部分是否含有敏感人名,對廣告圖片進行圖文結(jié)合的審核。具體的流程圖如下。
本實驗采用的face_recognition庫是基于由c++編寫的dlib圖像處理庫,而其最底層實際是一個具有29個卷積層的 ResNet網(wǎng)絡。ResNet(Residual Neural Network)是由微軟提出的特殊CNN(卷積神經(jīng)網(wǎng)絡)結(jié)構,殘差網(wǎng)絡由多個殘差塊組成,結(jié)構簡單便于優(yōu)化,并且能夠進一步加深神經(jīng)網(wǎng)絡來提高效果。其內(nèi)部的殘差塊在輸入輸出直接加了一條直接通道,即輸入直接加到輸出上,可以減緩在神經(jīng)網(wǎng)絡中,隨著訓練的網(wǎng)絡深度逐漸加深,可能會出現(xiàn)的vanishing gradient問題,使得在訓練更深更大的神經(jīng)網(wǎng)絡的同時還能保持良好的性能。殘差塊的模型結(jié)構圖如下。
圖1 圖文監(jiān)管流程圖
圖2 殘差塊的模型結(jié)構圖
Scrapy是一個基于python的網(wǎng)頁爬取和網(wǎng)頁爬取框架[2],可以用來爬取網(wǎng)站本身,也可以從頁面內(nèi)容里抽取出所需要的相應數(shù)據(jù)。它用法多樣,可擴展性很強,能做最基本的數(shù)據(jù)挖掘工作,也能做自動化層面的數(shù)據(jù)監(jiān)控和測試工作。而且Scrapy是一個網(wǎng)頁爬取的框架,可以根據(jù)具體需求方便的修改,具有較高的易用性和高效性。
本實驗利用scrapy網(wǎng)絡爬蟲技術從公開的百度圖庫數(shù)據(jù)集上爬取目標敏感人物的人臉照,按人名保存至相應的文件夾,構建敏感人物人臉圖數(shù)據(jù)庫。
3.3.1 人臉檢測
人臉識別的首要任務是人臉檢測,這是一種特殊的物體檢測技術,是一個非常重要的過程,簡而言之是從數(shù)字圖像或者視頻中檢測到人臉正面的計算機視覺技術。本實驗采用的face_recognition庫通過對鼻子和上嘴唇進行面部地標檢測,根據(jù)面部中心店標志鼻子來檢測正面人臉。
3.3.2 人臉對齊
Face_recognition庫是對由c++編寫的計算機圖像處理庫dlib,Dlib的核心組件包括線性代數(shù)組件(BLAS)和機器學習工具組件兩部分。前者是從數(shù)學的角度出發(fā)解決線性代數(shù)問題,后者主要用于基于Bayesian network的分類、聚類、排序等算法的實現(xiàn)。
線性代數(shù)組件基于Veldhuizen和Ponnambalam(1996)在Blitz++數(shù)值軟件中陳述的模板表達式技術。與BLAS一起使用的Dlib可以獲得作為優(yōu)化庫的代碼的性能和速度。Dlib調(diào)用線性代數(shù)組件里的庫轉(zhuǎn)換用戶輸入的表達式,從而使用戶能以最直接簡單的的形式編寫等式,而將軟件優(yōu)化的細節(jié)留給庫本身來操作。
機器學習組件的主要目標是為機器學習的相關算法提供簡單和高模塊化的體系結(jié)構。Dlib的限制較少,輸入只需要結(jié)構化數(shù)據(jù),無論是正常的圖像還是一個向量都可以實現(xiàn)功能。Dlib所處理的數(shù)據(jù)和它背后封裝的算法幾乎沒有關聯(lián)性,這樣就可以保證dlib可以靈活的操作對象,和一些只能處理固定長度的算法相比,dlib更加實用,可操作性也更強。
3.3.3 面部剪裁
人臉裁剪是使神經(jīng)網(wǎng)絡只學習人臉圖像的特征的過程。人臉裁剪的優(yōu)點是根據(jù)人臉的距離以可變的分辨率切割人臉。如果正面的距離高,則一般采用分辨率為64×64;如果距離低,則96×96將是更合適的分辨率。
3.3.4 特征提取
人臉圖像特征提取是人臉識別中最關鍵的任務,卷積神經(jīng)算法提取的特征是深度學習的一種變體[3]。在目前的計算機視覺領域,無論是目標檢測、模式識別還是其下游任務人臉識別,基于深度學習的特征抽取方法效果一直是最好的,而在圖像中CNN(卷積神經(jīng)網(wǎng)絡)是應用最廣泛的。卷積神經(jīng)網(wǎng)絡使用三個主要的手段來抽取面部圖像的特征:局部接受域、權重共享和池化。Dlib利用含有29個卷積層的殘差網(wǎng)絡對面部圖像特征進行抽取,從而達到人臉識別的效果。
OCR是指對于利用打印機等外接設備打印在紙上的字詞內(nèi)容[4],通過檢測每一個像素的三通道顏色情況來確定字詞的外框形狀,然后通過這種亮暗模式將形狀轉(zhuǎn)換為機器可以理解的字符的過程,以便計算機可以直接編輯文字部分完成后續(xù)的下游任務。
本實驗采用基于百度的開源平臺飛漿paddlepaddle里的paddleocr包,采用PP-OCRv2[5]算法進行ocr文字抽取工作。該算法主要有五個特點。
采用CML協(xié)同互學習知識蒸餾策略。在CML中,兩個子學生模型使用DML方法互相學習。同時,還有一種教師模式來指導兩種學生模式的學習。教師模型以ResNet18為骨干,學生模型以規(guī)模為0.5的MobinenetV3大模型為骨干。CML旨在優(yōu)化子學生模型。凍結(jié)教師模型的參數(shù),只對子學生模型進行設計損失訓練。一般情況下,子學生模型的監(jiān)督信息包括ground truth標簽、另一個學生模型的后驗熵和教師模型的輸出三部分。
利用CopyPaste數(shù)據(jù)增強。它可以合成新的具體文本圖像數(shù)據(jù)來自動對訓練數(shù)據(jù)中的正負數(shù)據(jù)比例進行一定程度上的平衡,這是傳統(tǒng)的圖像增強技術如改變色偏、隨機取像素點等做不到的。由于前臺的所有文本都是獨立的,CopyPaste粘貼文本時不會在隨機選擇的背景圖像上重疊。
提出了一個輕量級的CPU神經(jīng)網(wǎng)絡。該神經(jīng)網(wǎng)絡是一種基CPU的輕量級骨干網(wǎng)絡,在啟用mkldnn的情況下提供了更快、更準確的OCR識別算法。主要改進包括提供了更好的激活函數(shù)、將SE模塊放到合適的位置、更大的卷積核和GAP后更多維度的1×1卷積層。
提出了深度相互學習(U-DML)方法。這是一種兩個學生網(wǎng)絡相互學習的方法,不需要一個更大的具有預先訓練權重的teacher網(wǎng)絡來進行知識蒸餾。在DML中,對于圖像任務,損失函數(shù)包含兩個部分:(1)student網(wǎng)絡和groundtruth之間的損失函數(shù)。(2)student網(wǎng)絡輸出標簽中的kl散度損失函數(shù)。
改進增強的CTC loss。對了解決漢語識別中大量的相似字符的混淆問題,它結(jié)合了原始的CTCLoss和度量學習中的CenterLoss的思想。并對其進行了改進,使其適合于序列識別任務。
Flashtext是一種基于前綴樹字典和AC自動機算法。它首先整合所有關鍵詞,把他們一起作為輸入,通過這些關鍵字建立一個非壓縮前綴樹字典,構造有限狀態(tài)模式匹配機,然后就可以將文本字符串輸入模式匹配機進行匹配?;趂lashtext的關鍵詞匹配方法相較于正則表達式匹配,其優(yōu)點在于速度更快、性能更高,flashtext的查找速度是正則表達式的近80倍左右。
本文對當前網(wǎng)絡環(huán)境下的圖片廣告監(jiān)管工作,創(chuàng)新性的提出了基于人臉識別和基于OCR文字抽取技術的圖文信息結(jié)合的人物敏感廣告審核系統(tǒng)。通過構建敏感人物的人臉庫和人名庫進行對比識別,具有較高的效率、較高的準確率和較強的可擴展性。同時經(jīng)過知識蒸餾、壓縮后的模型擁有更小的體量,在實際應用部署中更加簡單,對硬件設備要求低,甚至在移動端也能支撐該審核系統(tǒng)。
面對復雜的網(wǎng)絡廣告信息和飛速發(fā)展的廣告形式,我們應該時刻保持警惕,學習最先進的技術來對不同模態(tài)的廣告審核,甚至做到多模態(tài)融合審核監(jiān)管,嚴守互聯(lián)網(wǎng)底線,響應國家“凈網(wǎng)行動”維護積極向上、充滿正能量的網(wǎng)絡空間。