杜佳
(深圳市標準技術研究院,廣東深圳,518000)
隨著互聯網的移動端的飛速發展,人類自農業社會、工業社會后逐漸步入信息社會,人們的數字習慣在很短的時間內發生了巨大的變化。擁有互聯網寬帶連接的家庭數量迅速增加,經常使用互聯網的人數(即每周至少連接一次的人)也增加了。如今,孩子們經常上網,要么是為了娛樂,要么是為了學習。就像現實世界一樣,互聯網有很多不安全的地方,孩子們可能會接觸到有害的內容。
隨著互聯網的普及,廣告也隨之成為人們生活中隨處可見的信息輸出源。大量的廣告信息魚龍混雜且難以監管,不少不法份子趁虛而入,披著廣告的“外衣”傳播不良信息,荼毒人民尤其是青少年的心靈,引起嚴重的后果。傳統的廣告內容監管主要是文本審查方面,以人工審查為主。目前廣告內容監管范圍主要是如新浪微博、貼吧等社區平臺,以文本內容為主,有關監管部門通過投入大量的人力資源對各種社交平臺的內容進行人工審核,在過去取得了一定得監管效果,但是費事費力費人。由于科學技術的發展,廣告也逐漸擺脫了純文字的范疇,內容豐富圖片、視頻廣告逐漸進入國民的生活,讓廣告內容的監管更加困難。加上現在整個人類社會進入大數據時代,海量且多模態的廣告信息人人工審核這一監管方法顯得更加不適應當下社會。如何進行有效、高效、快速、精準的非文本廣告內容審核成為不可避免需要解決的問題。
自2021年來,國家網信辦、公安局、文化和旅游局、市場監管局聯合開展“2021雷霆凈網”網絡生態治理專項行動,對互聯網上的廣告信息進行嚴格監管。為響應國家“凈網行動”的號召,本實驗提出了一種底層基于殘差網絡(ResNet)[1]的人臉檢測識別方法和利用OCR(光學字符識別)技術獲得圖片中文本信息然后利用文本匹配的文本識別方法,圖文結合對包含敏感人物的廣告進行識別檢測,達到廣告監管的目的。
關于廣告審核技術,國內外主要以文本審核為主。主要應用自動文本分類器進行審核工作。這些系統最初主要用于信息檢索,后來用于信息過濾、文本分類、推薦系統、情感分析、文檔摘要等。同樣,這些技術也被應用于許多領域,如醫學、工程、心理學、商業等。大多數文本分類過程可以分為以下五個階段(a)數據采集和標簽;(b)預處理;(c)特征提取或文本編碼(d)降維(e)分類器訓練(f)評價,不同的研究解決了這個領域中出現的不同問題。
本實驗分別將圖片廣告分成圖片信息和圖片里蘊涵的文本信息兩部分,先構建相關敏感人物人臉圖片庫,利用face_recognition庫進行人臉識別,并和人臉數據庫圖片進行對比,識別圖片中是否含有敏感人物;文本部分則采用基于百度paddle深度學習平臺里的paddleocr庫進行文字抽取,然后利用flashtext算法基于敏感人名字典進行高效匹配,判斷圖片中文字部分是否含有敏感人名,對廣告圖片進行圖文結合的審核。具體的流程圖如下。
本實驗采用的face_recognition庫是基于由c++編寫的dlib圖像處理庫,而其最底層實際是一個具有29個卷積層的 ResNet網絡。ResNet(Residual Neural Network)是由微軟提出的特殊CNN(卷積神經網絡)結構,殘差網絡由多個殘差塊組成,結構簡單便于優化,并且能夠進一步加深神經網絡來提高效果。其內部的殘差塊在輸入輸出直接加了一條直接通道,即輸入直接加到輸出上,可以減緩在神經網絡中,隨著訓練的網絡深度逐漸加深,可能會出現的vanishing gradient問題,使得在訓練更深更大的神經網絡的同時還能保持良好的性能。殘差塊的模型結構圖如下。

圖1 圖文監管流程圖

圖2 殘差塊的模型結構圖
Scrapy是一個基于python的網頁爬取和網頁爬取框架[2],可以用來爬取網站本身,也可以從頁面內容里抽取出所需要的相應數據。它用法多樣,可擴展性很強,能做最基本的數據挖掘工作,也能做自動化層面的數據監控和測試工作。而且Scrapy是一個網頁爬取的框架,可以根據具體需求方便的修改,具有較高的易用性和高效性。
本實驗利用scrapy網絡爬蟲技術從公開的百度圖庫數據集上爬取目標敏感人物的人臉照,按人名保存至相應的文件夾,構建敏感人物人臉圖數據庫。
3.3.1 人臉檢測
人臉識別的首要任務是人臉檢測,這是一種特殊的物體檢測技術,是一個非常重要的過程,簡而言之是從數字圖像或者視頻中檢測到人臉正面的計算機視覺技術。本實驗采用的face_recognition庫通過對鼻子和上嘴唇進行面部地標檢測,根據面部中心店標志鼻子來檢測正面人臉。
3.3.2 人臉對齊
Face_recognition庫是對由c++編寫的計算機圖像處理庫dlib,Dlib的核心組件包括線性代數組件(BLAS)和機器學習工具組件兩部分。前者是從數學的角度出發解決線性代數問題,后者主要用于基于Bayesian network的分類、聚類、排序等算法的實現。
線性代數組件基于Veldhuizen和Ponnambalam(1996)在Blitz++數值軟件中陳述的模板表達式技術。與BLAS一起使用的Dlib可以獲得作為優化庫的代碼的性能和速度。Dlib調用線性代數組件里的庫轉換用戶輸入的表達式,從而使用戶能以最直接簡單的的形式編寫等式,而將軟件優化的細節留給庫本身來操作。
機器學習組件的主要目標是為機器學習的相關算法提供簡單和高模塊化的體系結構。Dlib的限制較少,輸入只需要結構化數據,無論是正常的圖像還是一個向量都可以實現功能。Dlib所處理的數據和它背后封裝的算法幾乎沒有關聯性,這樣就可以保證dlib可以靈活的操作對象,和一些只能處理固定長度的算法相比,dlib更加實用,可操作性也更強。
3.3.3 面部剪裁
人臉裁剪是使神經網絡只學習人臉圖像的特征的過程。人臉裁剪的優點是根據人臉的距離以可變的分辨率切割人臉。如果正面的距離高,則一般采用分辨率為64×64;如果距離低,則96×96將是更合適的分辨率。
3.3.4 特征提取
人臉圖像特征提取是人臉識別中最關鍵的任務,卷積神經算法提取的特征是深度學習的一種變體[3]。在目前的計算機視覺領域,無論是目標檢測、模式識別還是其下游任務人臉識別,基于深度學習的特征抽取方法效果一直是最好的,而在圖像中CNN(卷積神經網絡)是應用最廣泛的。卷積神經網絡使用三個主要的手段來抽取面部圖像的特征:局部接受域、權重共享和池化。Dlib利用含有29個卷積層的殘差網絡對面部圖像特征進行抽取,從而達到人臉識別的效果。
OCR是指對于利用打印機等外接設備打印在紙上的字詞內容[4],通過檢測每一個像素的三通道顏色情況來確定字詞的外框形狀,然后通過這種亮暗模式將形狀轉換為機器可以理解的字符的過程,以便計算機可以直接編輯文字部分完成后續的下游任務。
本實驗采用基于百度的開源平臺飛漿paddlepaddle里的paddleocr包,采用PP-OCRv2[5]算法進行ocr文字抽取工作。該算法主要有五個特點。
采用CML協同互學習知識蒸餾策略。在CML中,兩個子學生模型使用DML方法互相學習。同時,還有一種教師模式來指導兩種學生模式的學習。教師模型以ResNet18為骨干,學生模型以規模為0.5的MobinenetV3大模型為骨干。CML旨在優化子學生模型。凍結教師模型的參數,只對子學生模型進行設計損失訓練。一般情況下,子學生模型的監督信息包括ground truth標簽、另一個學生模型的后驗熵和教師模型的輸出三部分。
利用CopyPaste數據增強。它可以合成新的具體文本圖像數據來自動對訓練數據中的正負數據比例進行一定程度上的平衡,這是傳統的圖像增強技術如改變色偏、隨機取像素點等做不到的。由于前臺的所有文本都是獨立的,CopyPaste粘貼文本時不會在隨機選擇的背景圖像上重疊。
提出了一個輕量級的CPU神經網絡。該神經網絡是一種基CPU的輕量級骨干網絡,在啟用mkldnn的情況下提供了更快、更準確的OCR識別算法。主要改進包括提供了更好的激活函數、將SE模塊放到合適的位置、更大的卷積核和GAP后更多維度的1×1卷積層。
提出了深度相互學習(U-DML)方法。這是一種兩個學生網絡相互學習的方法,不需要一個更大的具有預先訓練權重的teacher網絡來進行知識蒸餾。在DML中,對于圖像任務,損失函數包含兩個部分:(1)student網絡和groundtruth之間的損失函數。(2)student網絡輸出標簽中的kl散度損失函數。
改進增強的CTC loss。對了解決漢語識別中大量的相似字符的混淆問題,它結合了原始的CTCLoss和度量學習中的CenterLoss的思想。并對其進行了改進,使其適合于序列識別任務。
Flashtext是一種基于前綴樹字典和AC自動機算法。它首先整合所有關鍵詞,把他們一起作為輸入,通過這些關鍵字建立一個非壓縮前綴樹字典,構造有限狀態模式匹配機,然后就可以將文本字符串輸入模式匹配機進行匹配?;趂lashtext的關鍵詞匹配方法相較于正則表達式匹配,其優點在于速度更快、性能更高,flashtext的查找速度是正則表達式的近80倍左右。
本文對當前網絡環境下的圖片廣告監管工作,創新性的提出了基于人臉識別和基于OCR文字抽取技術的圖文信息結合的人物敏感廣告審核系統。通過構建敏感人物的人臉庫和人名庫進行對比識別,具有較高的效率、較高的準確率和較強的可擴展性。同時經過知識蒸餾、壓縮后的模型擁有更小的體量,在實際應用部署中更加簡單,對硬件設備要求低,甚至在移動端也能支撐該審核系統。
面對復雜的網絡廣告信息和飛速發展的廣告形式,我們應該時刻保持警惕,學習最先進的技術來對不同模態的廣告審核,甚至做到多模態融合審核監管,嚴守互聯網底線,響應國家“凈網行動”維護積極向上、充滿正能量的網絡空間。