日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > ChatGpt >内容正文

ChatGpt

baseline发布!OPPO安全AI挑战赛,人脸识别对抗攻击赛题详解

發布時間:2024/10/8 ChatGpt 119 豆豆
生活随笔 收集整理的這篇文章主要介紹了 baseline发布!OPPO安全AI挑战赛,人脸识别对抗攻击赛题详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

baseline線上評測101.53分,文末附項目github地址。

今年6月,由OPPO發起,OPPO安全主辦的“OPPO安全AI挑戰賽”正式拉開序幕。比賽主要聚焦人臉識別場景中的對抗攻擊。為了模擬真實的人臉識別場景并增加比賽的難度,主辦方在后臺使用了一組已經添加了防御措施的識別模型,要求參賽選手在不知道這些后臺模型具體細節的前提下,對它們進行黑盒攻擊。

掃描下方二維碼

或點擊閱讀原文

前往大賽官網報名參賽

賽題介紹

比賽任務

本次比賽主要使用人臉識別數據集,具體的圖片來自公開數據集 CASIA-FaceV5 和 CelebA 中的人臉圖片。每個人都有2-5張不同圖片,并被保存在一個文件夾中(如./images/0/,./images/1/…)。

參賽者需要修改這些圖片,并保留原始圖片尺寸和數據集目錄結構。同時,對圖片的修改必須足夠微小。關于擾動的添加對于圖像質量的影響,比賽組織者采用添加了擾動 Lp 范數和 Full Reference-IQA (FR-IQA) 來進行評價,其中 FR-IQA 部分將采用 MS-SSIM 圖像結構相似性指標來進行量化。

除了自動判斷外,在線下決賽環節,組織者還會對對抗樣本的肉眼視覺差異進行更加嚴格的評判,即對抗樣本和原始樣本的視覺差異越小越好。

在把數據集提交到系統后,后臺的防御模型會對上傳數據集進行預測。攻擊數據集要盡量讓防御模型產生錯誤的結果。當攻擊不成功時,得分為0,當攻擊成功時,得分由擾動添加前后的圖像差異大小來衡量,對原圖的影響越小得分越高。最終得分由擾動大小和判斷原圖片和修改后圖片的圖像質量評分(multi-scale structural similarity)共同決定。

賽程與獎勵

【大賽賽程】

06月18日-09月15日|組隊報名

07月12日-09月15日|線上初賽

09月26日-10月21日|線上復賽

? 11月|線下決賽

【獎金設置】

總獎金60萬元

冠軍:15萬元

亞軍(2支隊伍):每支隊伍9萬元

季軍(3支隊伍):每支隊伍5萬元

優勝獎(4支隊伍):每支隊伍3萬元

大賽地址:https://security.oppo.com/challenge/home.html

baseline

作者:孫裕道

北京郵電大學博士生,主要研究方向為人工智能安全中深度情緒識別模型的攻擊和防御。

模型介紹

給定待攻擊的干凈樣本和不同人名的的目標樣本。將干凈樣本,對抗樣本和目標樣本一同輸入到多個人臉識別模型中,經過多個模型整合后得到與之對應的人臉編碼向量,和。計算和的相似度,并且我們希望的值越小越好。計算和的相似度,我們希望的值越大越好。通過優化的損失,得到對抗擾動,從而能夠達到以上兩個目的。利用正則化損失來限制對抗擾動擾動的范圍。得到的對抗擾動經過高斯平滑后與人臉一起加在干凈樣中得到更新后的人臉對抗樣本。


人臉Mask

本次比賽的任務是攻擊人臉圖像,考慮現有神經網絡模型在訓練人臉數據的時候對于重要的部位是比較敏感的。因此添加對抗擾動時只針對人臉的五官。使用??標定人臉的???,選取了??個點連接組成一個待攻擊的區域,對于很少的無法用??標定??的圖片,手動框出人臉范圍。最后將生成的人臉??轉化成??j矩陣對對抗擾動??做矩陣乘法。

人臉識別模型

人臉識別模型的訓練可以利用如下人臉識別網絡結構在本地訓練自己的人臉識別模型,也可以下載已經訓練好的人臉識別模型參數。給定一張人臉圖片,經過多個人臉識別模型生成多個人臉編碼向量,最終整合成一個人臉編碼向量。

人臉識別模型網絡結構:

  • ?鏈接:https://github.com/davidsandberg/facenet

  • ?鏈接: https://github.com/luckycallor/InsightFace-tensorflow.git

  • 鏈接:https://github.com/sirius-ai/MobileFaceNet_TF.git

  • ?鏈接:https://github.com/yule-li/CosFace.git

相似度計算

人臉編碼向量之間的相似度計算可以分為和。表示的是對抗樣本與干凈樣本人臉編碼向量之間的相似度。表示的是為對抗樣本與目標樣本編碼向量之間的相似度。給定向量和,向量的相似度計算公式可以被總結為:

  • 內積計算:

  • 余弦相似度:

  • 歐氏距離:

  • 皮爾遜相關系數:

  • 斯皮爾曼相關系數:

最常用的相似度計算公式是余弦相似度,時間允許的情況下其它的相似度計算公式可以嘗試看看,是否也會對成績有所提高。

在無目標攻擊的視角下,對抗樣本的人臉編碼向量的與干凈樣本編碼向量的相似度越小越好,關于樣本的負梯度方向是我們想要的方向:

在有目標攻擊的視角下,對抗樣本的人臉編碼向量的與目標樣本編碼向量的相似度越大越好,關于樣本?的梯度方向是我們想要的方向:

綜上所述總的相似度計算如下公式:

此時對的梯度方向能夠同時獲得有無目標攻擊和有目標攻擊的這兩個梯度方向:

正則化損失

正則化損失可以分為損失函數和損失函數,它們的作用是限制對抗擾動的大小并對圖像進行平滑處理。

范數損失

給定干凈人臉圖像和對抗圖像

  • 形式:

  • 形式2:

損失

全稱Total Variation Loss,其作用主要是降噪,圖像中相鄰像素值的差異可以通過降低TV Loss來一定程度上進行解決 ,從而保持圖像的光滑性。

  • 連續的定義為:

其中,,是定義域。

  • 離散的定義為:

在比賽中,采用的是離散的,并且階數取為。

動量迭代

本次比賽主要利用的是基于梯度的迭代攻擊,在迭代的攻擊過程中加入動量項之后可以穩定更新方向并在迭代期間從較差的局部最大值中離開,從而產生更多遷移性更強的的對抗樣本。為了進一步提高黑盒攻擊的成功率。具體的計算公式如下所示:

圖像去噪平滑

生成的對抗擾動通過高斯濾波進行去噪平滑。考慮到OPPO人臉對抗樣本線上測試可能會有高斯濾波這種防御機制因而在算法生成噪聲的時候加入高斯濾波一定程度上也能使防御機制失效從而提高樣本攻擊率。使用高斯核函數進行卷積就能完成上述操作,高斯核如下:

核心代碼

如下代碼為人臉對抗樣本生成的過程,對照上面的模型流程圖以及各個模塊的細節講解在代碼中都有所顯示,主要的核心代碼提供了詳細的解釋和注釋。

def?adv_attack(tmp_noise,?origin_img,?target_img,?mask,?gaussian_blur,?model_pool,?index,?loss1_v,?momentum=0,?lr=1):tmp_noise.requires_grad?=?True#?對對抗擾動進行高斯平滑處理noise?=?gaussian_blur(tmp_noise)#?對人臉圖像的擾動范圍進行限制noise?*=?maskloss1?=?0#?整合多個人臉識別模型的人臉編碼向量for?model_dict?in?model_pool:model?=?model_dict['model']proportion?=?model_dict['proportion']#?對抗樣本的人臉編碼向量v1?=?l2_norm(model(origin_img?+?noise))?#?干凈樣本的人臉編碼向量v2_1?=?l2_norm(model(origin_img)).detach_()??#?目標樣本的人臉編碼向量v2_2?=?l2_norm(model(target_img)).detach_()?#?對抗樣本和干凈樣本之間的內積相似度,越小越好tmp1?=?(v1*v2_1).sum()?#?對抗樣本和目標樣本的內積相似度,越大越好tmp2?=?(v1*v2_2).sum()??r1?=?1r2?=?1if?tmp1?<?0.2:??r1?=?0if?tmp2?>?0.8:?r2?=?0?#?將兩個相似度進行整合成總的相似度函數loss1?+=?(r1?*?tmp1?-?r2?*?tmp2)?*?proportion??#?Cos?Loss#?求解相似度關于樣本的梯度loss1.backward(retain_graph=True)??loss1_v?=?tmp_noise.grad.detach()?*?(1?-?momentum)?+?loss1_v?*?momentum??tmp_noise.grad.data.zero_()#?L2范數損失和TV損失的量級比較大需要將它們適當的縮小r3?=?1if?index?>?100:r3?*=?0.1if?index?>?200:r3?*=?0.1#?L2范數的損失loss2?=?(noise**2).sum().sqrt()?#?TV損失loss3?=?tv_loss(noise)??#?TV?loss#?求解正則化L2和TV損失函數關于樣本的梯度loss?=?r3?*?0.025?*?loss2?+?r3?*?0.004?*?loss3loss.backward()#?將相似度損失的梯度與正則化損失的梯度進行整合得到對抗擾動tmp_noise?=?tmp_noise.detach()?-?lr?*?(tmp_noise.grad.detach()?+?loss1_v)#?將對抗擾動的像素進行適當的截斷tmp_noise?=?(tmp_noise?+?origin_img).clamp_(-1,?1)?-?origin_im?gtmp_noise?=?tmp_noise.clamp_(-0.2,?0.2)return?tmp_noise,?loss1_v

(滑動查看完整代碼)

github代碼及其成績

項目的??代碼鏈接為:https://github.com/guidao20/OPPO_ADVERSARIAL_ATTACK

相關的細節已經在??中有所介紹。因為前期需要處理生成人臉?之類的操作需要耗費一定的時間,在中程序共耗時一天多,前面的鋪墊工作完成后,生成人臉對抗樣本的時間大約只有不到個小時。

最終初賽的評測成績為

點擊“閱讀原文”進入官網報名參賽~

總結

以上是生活随笔為你收集整理的baseline发布!OPPO安全AI挑战赛,人脸识别对抗攻击赛题详解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。