魯 瑞,張 南,辛君芳
(1.澳大利亞國立大學(xué) 計算機與工程學(xué)院,堪培拉 2600;2.北京工商大學(xué) 計算機學(xué)院,北京 100048)
隨著大數(shù)據(jù)與人工智能時代的悄然到來,人們可以輕松地利用社交平臺分享自己的生活。據(jù)中國互聯(lián)網(wǎng)絡(luò)信息中心發(fā)布的《中國互聯(lián)網(wǎng)絡(luò)發(fā)展狀況統(tǒng)計報告》顯示,截至2022年6月,我國網(wǎng)民規(guī)模為10.51億,互聯(lián)網(wǎng)普及率達74.4%。據(jù)文獻資料統(tǒng)計,約95%左右的網(wǎng)民會將自己的上網(wǎng)時間分配給社交平臺[1]。圖片作為信息的重要載體,與通過文字表達信息相比更加直觀、形象和生動,人們將圖片上傳到社交平臺的現(xiàn)象非十分普遍。但是,這在給人們的生活增加趣味的同時,也帶來了隱私信息泄露等安全風(fēng)險。因此,對圖像中關(guān)鍵信息,特別是人臉等隱私部位進行選擇性加密非常必要。當前,人們一般通過手動加密或打馬賽克的方式對網(wǎng)絡(luò)上發(fā)布的圖片區(qū)域進行加密,此方法不僅需要花費時間和精力,還很容易被破解。
隨著隱私問題越來越被人們重視,圖像加密問題受到學(xué)術(shù)界的廣泛關(guān)注。通過研究發(fā)現(xiàn),傳統(tǒng)密碼學(xué)對圖像數(shù)據(jù)加密的加密方法在信息量大,像素之間相關(guān)性強的圖像中效果不好。而基于混沌系統(tǒng)的加密算法具有初值敏感性、不可預(yù)測性等特點,使其可以更好地與密碼學(xué)相適應(yīng),在此基礎(chǔ)上,其易于實現(xiàn),因此其被學(xué)者們應(yīng)用于圖像加密領(lǐng)域?;煦缦到y(tǒng)主要包括Logistic映射、Henon 映射以及Chen混沌系統(tǒng)[2]。其中,Logistic混沌系統(tǒng)源于人口統(tǒng)計動力學(xué)系統(tǒng),是加密系統(tǒng)中的常用系統(tǒng)。當Loginstic函數(shù)的初值與參數(shù)滿足條件時,Logistic函數(shù)工作于無法預(yù)測且無序的混沌狀態(tài),可以生成混沌矩陣對原圖矩陣進行處理,達到加密目的。Logistic系統(tǒng)比傳統(tǒng)圖像加密方法更安全,在圖像加密領(lǐng)域具有很好的發(fā)展前景[3-5]。因此,本文采用Logistic混沌系統(tǒng)進行圖像的加密。
值得注意的是,圖像加密大多是對整幅圖進行加密,但是在軍事和醫(yī)療等方面的應(yīng)用中,并不強制加密整個圖像。比如,在包含罪犯的圖片中只需要將圖片中的人臉進行加密,因此針對圖像的特定目標部分加密的研究十分重要,有學(xué)者指出可以先提取包含主要信息的目標區(qū)域,在此基礎(chǔ)上對圖像的目標區(qū)域進行加密工作,從而實現(xiàn)針對目標區(qū)域的圖像加密[6]。對于圖像解密部分,有文獻表明,解密結(jié)果可以與原始圖像有些許差別,因為人類本身對圖像具有感知特性,只要圖像內(nèi)容不受影響,解密結(jié)果在一定的范圍內(nèi)出現(xiàn)小的失真現(xiàn)象是被允許的,為了實現(xiàn)針對人臉區(qū)域的圖像選擇性加密,需要對人臉進行準確地定位[7]。目前采用的人臉定位方法主要包括基于知識、基于特征與基于表象三類傳統(tǒng)人臉定位技術(shù)和基于深度學(xué)習(xí)的人臉定位技術(shù)[8-10]。陳小梅[11]等人先對人臉圖像進行識別,然后對其進行預(yù)處理去除噪音,最后通過灰度投影獲得主要特征點為人臉進行定位。有文獻指出采用和迭代過程識別圖像中可能存在的人臉輪廓區(qū)域,之后利用Snake算法對可能存在的人臉區(qū)域進行精煉細化,以獲得最終的目標結(jié)果[12]。
深度學(xué)習(xí)憑借其高準確率、高效率的特性被廣泛應(yīng)用于計算機視覺等各個領(lǐng)域。其中,級聯(lián)卷積神經(jīng)網(wǎng)絡(luò)等網(wǎng)絡(luò)結(jié)構(gòu)在人臉檢測問題上被深入研究與應(yīng)用,并取得了不錯的效果。文獻[13]提出級聯(lián)的CNN 網(wǎng)絡(luò)結(jié)構(gòu)進行人臉識別,為了更精準地定位人臉區(qū)域此方法設(shè)計了一種邊界校訂網(wǎng)絡(luò),并可以進行多分辨率解析,因此成為當時識別效果和速度最好的算法。文獻[14]依照實驗級聯(lián)CNN 模型,提出了MTCNN 模型,此模型級聯(lián)的多任務(wù)框架,對人臉檢測和關(guān)鍵點對其兩個認為進行級聯(lián)。并對三個卷積神經(jīng)網(wǎng)絡(luò)P-Net、R-Net、O-Net進行串行,從而可以精確的預(yù)測人臉的位置坐標和面部特征點坐標。目前,有不少學(xué)者提出了通過haar級聯(lián)和神經(jīng)網(wǎng)絡(luò)混合的方法構(gòu)造分類器對人臉區(qū)域進行識別[15]。也有一些學(xué)者提出不使用級聯(lián)結(jié)構(gòu)進行人臉檢測的深度學(xué)習(xí)算法。其中,文獻[16]采用單個基于深度學(xué)習(xí)的卷積神經(jīng)網(wǎng)絡(luò)模型對多方位的人臉進行檢測,該方法使得輸入圖像的大小不受限制,跟類能力較強,而且不需要對面部姿勢等內(nèi)容進行注釋。
通過對上述模型方法的研究,本文研究了一種通過深度學(xué)習(xí)算法自動檢測人臉的關(guān)鍵區(qū)域,并對其進行定位和選擇性加密的方法。此方法可以有效保護人們的肖像等隱私安全,使得人們可以更放心、安全、自由地享受互聯(lián)網(wǎng)帶來的便捷與快樂。
2016年,中國科學(xué)院深圳研究院提出了用于人臉檢測的多任務(wù)卷積神經(jīng)網(wǎng)絡(luò)(MTCNN,multi-task convolutional neural network)深度學(xué)習(xí)模型,它是一個多任務(wù)人臉檢測算法[14],可以同時進行人臉檢測、人臉區(qū)域定位和人臉特征點標注三個任務(wù)。MTCNN 是一個進行多次單目標檢測的多目標檢測網(wǎng)絡(luò)模型,它級聯(lián)了3層卷積神經(jīng)網(wǎng)絡(luò)PNe、R-Net、O-Net[17-18],模型通過上述三層卷積神經(jīng)網(wǎng)絡(luò)對人臉圖像逐步精化,以得到最終的人臉框坐標和關(guān)鍵的人臉特征點(眼睛、鼻子以及兩個嘴角)的坐標。本文試圖先得到人臉區(qū)域的坐標以方便下一步的加密過程實現(xiàn),而不需要得到人臉的特征點的坐標。因此,本文的具體實現(xiàn)過程,主要針對網(wǎng)絡(luò)的人臉檢測和人臉定位兩個任務(wù)進行訓(xùn)練和測試。
1.1.1 MTCNN 算法實現(xiàn)過程
將輸入圖片分割為不同尺寸的圖像,將其構(gòu)造為形如金字塔的結(jié)構(gòu),稱為圖像金字塔。將圖像金字塔輸入P-Net以獲取含有人臉的候選框,通過NMS對候選框進行過濾,去除冗余的候選框得到最終的人臉候選框。然后將所有包含人臉的候選框輸入到R-Net中,通過更為嚴格的臉部特征點標準,對候選框進行進一步細化,去掉錯誤判斷,通過Bounding-Box Regression和NMS對結(jié)果進行優(yōu)化,獲得置信度高的人臉候選框。最后,上一步結(jié)果輸入O-Net中,定位最終人臉候選框坐標以及確定5個特征點的位置坐標。MTCNN 算法的工作流圖如圖1所示。在本文中,由于沒有運用MTCNN 算法人臉對齊的任務(wù),所以不會做地標標注。
圖1 MTCNN算法的工作流圖[14]
1.1.2 MTCNN 算法的網(wǎng)絡(luò)結(jié)構(gòu)
P-Net全稱為Proposal Network,是一個包含3個卷積層的卷積網(wǎng)絡(luò),他的主要作用就是判斷圖像中是否包含人臉,并輸出人臉候選框和關(guān)鍵點的位置坐標。如圖2所示,首先,P-Net對輸入圖像進行卷積操作的卷積核是一個大小為3*3,步長為1的卷積核,在此基礎(chǔ)上,對其進行最大池化,其中進行范圍為2*2,步長為2,從而可以得到一個大小為5*5,通道數(shù)為10的特征圖。之后,將上一步得到的特征圖繼續(xù)與一個大小為3*3,步長為1的卷積核進行卷積,得到大小為3*3,通道數(shù)為16的特征圖,之后將其再進行上述卷積操作得到一個特征圖。最后,將上一步得到的1*1*32的特征圖繼續(xù)進行卷積操作生成最終的特征圖并將其用于人臉分類預(yù)測、人臉邊界框預(yù)測與人臉地標預(yù)測。
圖2 P-Net的網(wǎng)絡(luò)結(jié)構(gòu)圖[14]
R-Net也就是Refine Network,是一個卷積神經(jīng)網(wǎng)絡(luò),其在P-Net的基礎(chǔ)上增加了一個全連接層,對上個階段的輸出進行進一步細化。如圖3所示,它與P-Net相比參數(shù)不同,而且R-Net增加了全連接操作。全連接層允許更精細的處理,消除大量錯誤的候選區(qū)域。R-Net有規(guī)定的輸入大小限制,為24*24,它可以在圖像經(jīng)過P-Net產(chǎn)生候選框后對其進行篩選、排除,得到更加精確的人臉區(qū)域。
圖3 R-Net的網(wǎng)絡(luò)結(jié)構(gòu)圖[14]
O-Net全稱Output Network,如圖4 所示,它也是一個卷積神經(jīng)網(wǎng)絡(luò)而且比R-Net更復(fù)雜,它又比R-Net多一個卷積層。O-Net的輸入大小為48*48,它可以對經(jīng)過RNet人臉區(qū)域進一步過濾,得到最終的輸出結(jié)果。
圖4 O-Net的網(wǎng)絡(luò)結(jié)構(gòu)圖[14]
通過對上述三個卷積網(wǎng)絡(luò)的了解可以看到MTCNN 級聯(lián)的三個網(wǎng)絡(luò)的結(jié)構(gòu)都比較簡單,訓(xùn)練起來比較容易,通過對這三個網(wǎng)絡(luò)逐步精化,了以得到較為準確的檢測結(jié)果。因此,MTCNN 在檢測速度和檢測率上表現(xiàn)都比較好。
MTCNN 算法模型包括交并比和非極大值抑制兩種工具,用其判斷候選區(qū)域和加塊區(qū)域識別速度。交并比實際表示兩個識別框之間交集和并集的比值,它用于表示兩個識別框之間的相似程度。除此之外,在生成訓(xùn)練數(shù)據(jù)時,交并比可以判斷樣本屬于正樣本、負樣本還是部分樣本,或者在非極大值抑制過濾候選框時,判斷去除與其余候選框相似度高的候選區(qū)域。非極大值抑制用于抑制不是極大值的元素,并搜索此區(qū)域內(nèi)的極大值。非極大值抑制以得到的候選框的置信度(為人臉區(qū)域的概率)為標準進行排序。檢測每個網(wǎng)絡(luò)時,可以通過非極大值抑制去掉置信度較低且與其他候選框區(qū)域交并比較大的候選框區(qū)域。通過非極大值抑制對候選框進行篩選,可以將效果較好的人臉候選區(qū)域進行篩選,從而減少下一個網(wǎng)絡(luò)中輸入的候選框數(shù)目,以此來提高 人臉區(qū)域的檢測速度。
混沌是指確定性動力學(xué)系統(tǒng)表現(xiàn)出的看似隨機、卻無法預(yù)測的運動[19]。混沌系統(tǒng)憑借其初值敏感性、隨機性等良好的混沌特性,可以很好地提高圖像加密的效果。Logistic系統(tǒng)是一種經(jīng)典的混沌系統(tǒng),在圖像加密領(lǐng)域得到廣泛應(yīng)用。Logistic映射的系統(tǒng)方程如式(5)所示:
式中,Xn為迭代結(jié)果,X0為初值,Xn∈(0,1);U為參數(shù),U∈(0,4]。當X0∈(0,1),當U∈(3.569,4]時,Logistic映射工作處于混沌狀態(tài)。如圖5所示,當參數(shù)滿足設(shè)定的條件時,對初值進行迭代獲得的序列是沒有周期性的,即使參數(shù)發(fā)生微小改變,迭代的結(jié)果也會發(fā)生巨大變化。
圖5 Logistic映射迭代圖[20]
將參數(shù)U設(shè)定在指定區(qū)間,使Logisic函數(shù)工作于混沌狀態(tài),對其進行若干次迭代,便可獲得一組混沌序列。在計算機中圖像通過矩陣形式進行存儲與處理,因此可以將圖像的矩陣表達形式與生成的混沌序列進行運算對圖像進行加密,由于圖像像素值處于0~255之間而生成混沌序列值位于0~1之間,因此對混沌序列按照0~255的范圍進行歸一化處理從而得到新的混沌序列。在此之后,將新序列轉(zhuǎn)化為二維矩陣,與原圖進行異或操作,得到加密后的圖像,以上便是圖像的Logistic混沌置亂加密流程,設(shè)定的參數(shù)U和初值X0即為秘鑰。
本文提出了FIIE 算法模型對人臉圖像進行識別和加密,該模型首先對輸入數(shù)據(jù)進行分類,識別出目標圖片是否包含人臉以及識別出的區(qū)域是否是人臉區(qū)域,然后對人臉所在區(qū)域進行預(yù)測,識別出人臉預(yù)測框并計算其與真實數(shù)據(jù)之間的偏移量,以確定人臉邊界框的最終范圍,最后,通過Logistic加密算法對上述結(jié)果進行加密,完成目標圖片的最終加密結(jié)果。FIIE(face image information encryption)算法實現(xiàn)過程如圖6所示。
圖6 FIIE算法結(jié)構(gòu)圖
FIIE算法融合了MTCNN 網(wǎng)絡(luò)模型的重要部分及Logistic加密算法思想,運用人臉/非人臉分類、人臉邊界框回歸、人臉邊界框檢測結(jié)果可確定識別人臉標記框,再通過圖像選擇性加密算法實現(xiàn)對標記框中的人臉進行準確、安全加密。
MTCNN 網(wǎng)絡(luò)模型可以進行人臉/非人臉分類、人臉邊界框回歸和人臉關(guān)鍵點定位三個任務(wù)的訓(xùn)練,本文則提出采用增強人臉邊界精確表示算法,只需對人臉進行識別并通過邊界框標記,無需對人臉關(guān)鍵點進行標記,因此本文只加強了前兩個任務(wù)的訓(xùn)練。
2.1.1 人臉/非人臉分類任務(wù)
該任務(wù)的學(xué)習(xí)目標是一個二分類問題,以此來解決人臉和非人臉區(qū)域的問題,此問題用交叉熵損失函數(shù):
式(1)中,pi為網(wǎng)絡(luò)模型輸出候選樣本是人臉的概率;表示樣本的真實標簽,其取值為0或1。
2.1.2 人臉邊界框回歸任務(wù)
MTCNN 網(wǎng)絡(luò)將其視為一個回歸問題,將上面人臉非人臉區(qū)域的分類結(jié)果進行標出,得到一個人臉候選框,此問題采用均方誤差損失函數(shù):
2.1.3 多任務(wù)訓(xùn)練
綜合上述兩個任務(wù)的損失函數(shù)為:
式(3)中,N為訓(xùn)練樣本數(shù)目;αj為權(quán)重值,表示每個任務(wù)的重要性,其中,分類任務(wù)的權(quán)重αdet為1,邊界框回歸任務(wù)的權(quán)重αbox為0.5;為上述的損失函數(shù);為樣本類型,其值為0或1。
現(xiàn)有對圖像加密的研究主要是使用Logistic混沌加密算法對整幅圖進行加密,本文為了達到對區(qū)域進行選擇性加密的目的,對此算法進行了改進,在圖像不失真的情況下大大增強圖像加密的安全性。不同于傳統(tǒng)算法中將由混沌序列生成的圖像二維矩陣與需要加密的圖像進行異或操作從而得到加密圖像,本文先利用前一步驟得到的人臉區(qū)域坐標生成所需掩碼,通過掩碼過濾掉圖像中與人臉不相關(guān)的區(qū)域,使其不參與運算,從而減少運算成本,之后將其與混沌序列生成的二維矩陣以及需要加密的圖像進行異或操作,完成對圖像的人臉區(qū)域進行加密的任務(wù)。具體操作過程如圖7所示。
圖7 Logistic加密過程圖
本文使用了WIDER FACE 數(shù)據(jù)集在對MTCNN 模型進行訓(xùn)練。WIDER FACE數(shù)據(jù)集包含32 203張圖片,一共包含了393 703個人臉數(shù)據(jù),如圖8所示,根據(jù)這些圖片場景的不同,改數(shù)據(jù)集又分為了Parade、Handshaking、Rescue、Ceremony等61個類,并將每個類別以4:1:5的比例劃分為訓(xùn)練集、驗證集和測試集。在實驗中,本文從訓(xùn)練集中隨機選取了中的3 069張圖片對模型進行訓(xùn)練。
圖8 WLDERFACE數(shù)據(jù)集
官網(wǎng)中的關(guān)于圖像標注的文件有MATLAB存儲格式和文本格式兩種,本文主要采用文本格式的標注文件。如圖9所示,在圖像標注文件中,第一行代表每個圖片的名稱,第二行表示此圖片中標注的人臉個數(shù),接下來的每一行依次表示圖片中標注的邊界框的左上角點x、y坐標、邊界框的寬、高、人臉的模糊程度、做出表情的程度等10個詳細信息。本文主要利用與人臉邊界框位置相關(guān)的4個信息。
圖9 標注文件格式
為了簡便后續(xù)實驗操作,本文對原始的標注文件內(nèi)容進行了修改,如圖10所示,修改后的標注文件一行代表一張圖片,每張圖片的信息以圖片為首,除此之外的其他數(shù)據(jù)每四個為一組來表示此圖片中所有標注過人臉的邊界框的左上角點以及右下角的點x、y坐標。修改后的標注文件就可以直接用于MTCNN 模型進行訓(xùn)練。
圖10 修改后的數(shù)據(jù)集標注文件格式
在對MTCNN 網(wǎng)絡(luò)模型進行訓(xùn)練時,需要分階段依次對P-Net、R-Net和O-Net網(wǎng)絡(luò)進行數(shù)據(jù)準備。
在準備P-Net的數(shù)據(jù)時,需要對訓(xùn)練集的圖片進行截取,將截取的正方形區(qū)域與標注文件中的人臉邊界框進行IOU 的計算,根據(jù)得到的結(jié)果對截取的區(qū)域進行分類。當IOU 小于0.3時,則表明此區(qū)域沒有人臉的圖像,將其分類到負樣本中;如果IOU 大于等于0.4但小于0.65,則表明此區(qū)域含有局部人臉圖像,屬于部分樣本;如果IOU 大于等于0.65,表明此區(qū)域含有一張完整人臉,分類為正樣本。在訓(xùn)練P-Net時,其輸入都是12*12*3的圖像,所以要將這些樣本調(diào)整大小為12*12,之后分別保存到如圖11所示的negative、part、positive文件夾下。
圖11 P-Net訓(xùn)練數(shù)據(jù)的目錄
通過上述操作可以得到本實驗的訓(xùn)練樣本,在此之后制作這些樣本的標注文件。如圖12~14所示,用代碼0表示負樣本的標簽樣本類型;用代碼1 表示正樣本的標簽樣本類型,其中正樣本標簽中包含圖片對于真實人臉邊界框的偏移量,偏移量是通過真實框左上角點和右下角點的坐標值與建議框?qū)?yīng)的坐標值相減并除以建議框的尺寸所得到的;部分樣本的標簽用類型代碼-1 表示,其也包含它對于真實人臉邊界框的偏移量。將這三個標注文件完成后,將其整合到一個文本文件中,便于后續(xù)訓(xùn)練網(wǎng)絡(luò)使用。
圖12 負樣本的標注文件
圖13 部分樣本的標注文件
圖14 正樣本的標注文件
正樣本和負樣本用來訓(xùn)練人臉分類任務(wù),正樣本和部分樣本用于訓(xùn)練人臉邊框回歸任務(wù)。
R-Net的訓(xùn)練樣本需要用P-Net訓(xùn)練好的網(wǎng)絡(luò)來生成,并將生成的樣本調(diào)整大小為24*24。生成樣本之后,對樣本的分類方法和標注文件的格式與P-Net都相同。同理,O-Net的訓(xùn)練樣本需要R-Net訓(xùn)練好的模型來生成,此部分大小需調(diào)整為48*48。
將網(wǎng)絡(luò)訓(xùn)練好之后,對訓(xùn)練好的網(wǎng)絡(luò)進行測試,測試結(jié)果如圖15所示。
通過實驗發(fā)現(xiàn),即使實驗圖片中包含較多的人臉數(shù)目時,MTCNN 算法也能有效地檢測并定位人臉位置,并且該算法可以識別擁有較多人臉信息的側(cè)臉。不過,對于一些面部大量被遮擋的圖片信息以及與人臉十分相似的圖片信息,MTCNN 網(wǎng)絡(luò)模型在檢測過程中也會出現(xiàn)檢測不出或者過度檢測的情況。但是,對于大多數(shù)的圖片結(jié)果,此算法模型還是可以輸出較好的檢測和定位結(jié)果。
通過對Logistic加密算法的創(chuàng)新,得到如圖16所示的加密結(jié)果。
由圖16可以看出本文使用的加密方法對加密圖片中部分區(qū)域有比較不錯的實現(xiàn)效果,由此可見,通過創(chuàng)新后的Logistic混沌置亂加密可以解決保護圖像中面部區(qū)域隱私問題。
本文研究了一種針對圖像的面部區(qū)域進行選擇性解密的算法模型,實現(xiàn)對圖片中的人臉隱私部位的有效保護。該方法融合了人臉檢測算法、人臉對齊方法及圖像加密算法,對圖像中的人臉信息進行加密保護。通過對WLDER FACE數(shù)據(jù)集的標注數(shù)據(jù)進行修改,并用此數(shù)據(jù)集以及修改后的標注文件對MTCNN 模型進行訓(xùn)練。此外MTCNN網(wǎng)絡(luò)模型級聯(lián)了P-Net、R-Net、O-Net三層卷積神經(jīng)網(wǎng)絡(luò),并對上述三個網(wǎng)絡(luò)分別依次進行訓(xùn)練。將三個網(wǎng)絡(luò)模型訓(xùn)練好后,通過訓(xùn)練好的模型對圖片數(shù)據(jù)集進行人臉檢測和定位,便可得到圖片中人臉區(qū)域標記的矩形框的坐標。通過得到的矩形框坐標可以生成掩碼,利用掩碼對Logistic混沌序列和原圖片進行OpenCV 位運算,然后對得到的區(qū)域進行加密從而獲得加密后的圖像。后續(xù)將在檢測速度或較多遮擋情況下的人臉隱私等方面展開進一步的研究。