RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

深度偽造人臉檢測項目

MATLAB ? 來源:MATLAB ? 2024-10-17 10:46 ? 次閱讀

各位 AI 愛好者們,準(zhǔn)備好通過各種 AI 技術(shù)來應(yīng)對一個迫切需要被解決的全球問題了嗎?MathWorks 誠邀您參加 2025 IEEE Signal Processing Cup 挑戰(zhàn)賽:“野外深度偽造人臉檢測”(DFWild-Cup)。

為什么挑戰(zhàn)深度偽造?

隨著合成數(shù)據(jù)生成的興起,深度偽造已成為一個重大威脅——它能夠操縱公眾輿論,甚至導(dǎo)致身份盜竊。在這個挑戰(zhàn)賽中,您可以運用在現(xiàn)實世界場景中獲得的多樣化的數(shù)據(jù),來設(shè)計與實現(xiàn)算法,以識別面部圖像的真實性。

參加挑戰(zhàn)有什么好處?

您不僅有機會應(yīng)用 AI 技術(shù)處理一個亟待解決的全球問題,還能有機會在IEEE ICASSP 2025——全球最大的信號處理技術(shù)學(xué)術(shù)會議上展示您的作品以贏取5000 美元的大獎!

您準(zhǔn)備好了嗎?

開始設(shè)置環(huán)境并啟動深度偽造檢測項目吧!您可以點擊閱讀原文,在打開網(wǎng)頁的右下方,點擊“Download Live Script”來獲取這個項目的MATLAB 入門代碼。

如果您所在的學(xué)校沒有MATLAB 全校使用授權(quán),您可以訪問 MathWorks 的 IEEE Signal Processing Cup 網(wǎng)站 ,申請免費的MATLAB競賽軟件許可并獲取其他相關(guān)學(xué)習(xí)資源。您也可以訪問MATLAB Academy 學(xué)習(xí)多門免費自定義進(jìn)度的在線入門課程。

目錄

第一步:加載數(shù)據(jù)

第二步:創(chuàng)建 Image Datastores

第三步:加載或創(chuàng)建網(wǎng)絡(luò)

第四步:準(zhǔn)備訓(xùn)練數(shù)據(jù)

第五步:訓(xùn)練神經(jīng)網(wǎng)絡(luò)

第六步:測試神經(jīng)網(wǎng)絡(luò)

第七步:創(chuàng)建提交

總結(jié)

第一步:加載數(shù)據(jù)

注冊您的團隊,然后獲取下載訓(xùn)練和驗證數(shù)據(jù)集的說明。將這些壓縮文件存放在當(dāng)前目錄下名為 datasetArchives 的子文件夾中。

wKgaomcQesGAA4zqAAC1W9V78cg836.png

下面的代碼將幫您自動解壓這些文件,并將數(shù)據(jù)集整理到“real”和“fake”類別中:

datasetArchives=fullfile(pwd,"datasetArchives");
datasetsFolder=fullfile(pwd,"datasets");


if~exist(datasetsFolder,'dir')
mkdir(datasetsFolder);
untar(fullfile(datasetArchives,"train_fake.tar"),fullfile(datasetsFolder,"train"));
untar(fullfile(datasetArchives,"train_real.tar"),fullfile(datasetsFolder,"train"));
untar(fullfile(datasetArchives,"valid_fake.tar"),fullfile(datasetsFolder,"valid"));
untar(fullfile(datasetArchives,"valid_real.tar"),fullfile(datasetsFolder,"valid"));
end

第二步:創(chuàng)建 Image Datastores

想要高效地處理包含大量圖像的數(shù)據(jù)集,創(chuàng)建 Image Datastore 是必不可少的。這種數(shù)據(jù)格式允許我們存儲大量的圖像數(shù)據(jù),包括那些超出內(nèi)存容量的,并在神經(jīng)網(wǎng)絡(luò)訓(xùn)練期間高效地批次讀取圖像。

以下是為訓(xùn)練和驗證數(shù)據(jù)集分別創(chuàng)建 Image Datastore 的方法。您需要在函數(shù) imageDatastore 中指定其所需要包含圖像的文件夾,并指明子文件夾名稱對應(yīng)于圖像的標(biāo)簽,然后可以利用 shuffle 函數(shù)對圖像進(jìn)行隨機排序的處理。

trainImdsFolder=fullfile(datasetsFolder,'train');
validImdsFolder = fullfile(datasetsFolder,'valid');


imdsTrain=shuffle(imageDatastore(trainImdsFolder,...
IncludeSubfolders=true,...
    LabelSource="foldernames"));


imdsValid=shuffle(imageDatastore(validImdsFolder,...
IncludeSubfolders=true,...
    LabelSource="foldernames"));


通過檢查 Image Datastore 中所包含文件的大小,您可以看到這個挑戰(zhàn)賽的訓(xùn)練數(shù)據(jù)集包含 26,2160 張圖像,而驗證數(shù)據(jù)集只包含 3072 張圖像。由于目前我們還沒有獲得用于評估性能的測試數(shù)據(jù)集,可以使用 splitEachLabel 函數(shù)將訓(xùn)練數(shù)據(jù)集劃分為兩個新的 Image Datastore,如:10% 用于訓(xùn)練、2% 用于測試。

[imdsTrain,imdsTest] = splitEachLabel(imdsTrain,0.1,0.02,"randomized")


現(xiàn)在您可以獲取數(shù)據(jù)集標(biāo)簽的類別名稱和數(shù)量,然后按如下方式查看一些面部圖像數(shù)據(jù)。

classNames=categories(imdsTrain.Labels);
numClasses=numel(classNames);


numImages=numel(imdsTrain.Labels);
idx=randperm(numImages,16);
I=imtile(imdsTrain,Frames=idx);
figure
imshow(I)


第三步:加載或創(chuàng)建網(wǎng)絡(luò)


現(xiàn)在,訓(xùn)練、驗證和測試數(shù)據(jù)集的 Image Datastore 都已經(jīng)準(zhǔn)備好了!下一步是加載一個預(yù)訓(xùn)練好的網(wǎng)絡(luò)或創(chuàng)建一個新網(wǎng)絡(luò)模型。


如果您是深度學(xué)習(xí)的新手,可以使用像 ResNet 或 VGG 這樣的預(yù)訓(xùn)練網(wǎng)絡(luò)來節(jié)省時間并提高性能。MATLAB 提供了一些預(yù)訓(xùn)練模型,可以作為起點。以下是加載預(yù)訓(xùn)練網(wǎng)絡(luò)的簡單方法:我們使用函數(shù) imagePretrainedNetwork 來加載一個具有指定標(biāo)簽類別數(shù)量的預(yù)訓(xùn)練好的 ResNet-50 神經(jīng)網(wǎng)絡(luò)作為示例。請注意,在運行代碼之前,您需要在 MATLAB 的 “Add-Ons” 下,搜索、下載并安裝名為 “Deep Learning Toolbox Model for ResNet-50 Network” 的插件。

net = imagePretrainedNetwork("resnet50",NumClasses=numClasses);


如果您更傾向于創(chuàng)建自己的網(wǎng)絡(luò)模型,MATLAB 的 Deep Network Designer 應(yīng)用程序【https://www.mathworks.com/help/deeplearning/ug/build-networks-with-deep-network-designer.html】是一個可以用來設(shè)計和可視化深度學(xué)習(xí)網(wǎng)絡(luò)模型的好工具。您還可以使用Deep Network Designer 導(dǎo)入 PyTorch 模型 【https://ww2.mathworks.cn/help/releases/R2024b/deeplearning/ug/import-pytorch-model-using-deep-network-designer.html】。


第四步:準(zhǔn)備訓(xùn)練數(shù)據(jù)


準(zhǔn)備數(shù)主要包括調(diào)整圖像大小以匹配神經(jīng)網(wǎng)絡(luò)的輸入尺寸,并通過數(shù)據(jù)增強來提高模型的魯棒性。數(shù)據(jù)增強技術(shù),如旋轉(zhuǎn)、縮放和翻轉(zhuǎn),可以使模型更具泛化能力。MATLAB 提供了便捷的內(nèi)置函數(shù),如 imageDataAugmenter 和 augmentedImageDatastore。


這里我們采用的增強操作包括:隨機沿垂直軸翻轉(zhuǎn)訓(xùn)練圖像,以及在訓(xùn)練圖像上隨機進(jìn)行最多 30 像素的水平和垂直平移。

inputSize=net.Layers(1).InputSize;


pixelRange=[-3030];
imageAugmenter=imageDataAugmenter(...
RandYReflection=true,...
RandXTranslation=pixelRange,...
    RandYTranslation=pixelRange);


augimdsTrain=augmentedImageDatastore(inputSize(1:2),imdsTrain,...
    DataAugmentation=imageAugmenter);


您需要注意的是:對于驗證和測試圖像,我們只需要調(diào)整大小而不需要進(jìn)行其他增強處理。因此,我們使用 augmentedImageDatastore 函數(shù)來自動調(diào)整大小,而不指定其他任何預(yù)處理操作。

augimdsValid=augmentedImageDatastore(inputSize(1:2),imdsValid);
augimdsTest = augmentedImageDatastore(inputSize(1:2),imdsTest);


第五步:訓(xùn)練神經(jīng)網(wǎng)絡(luò)
當(dāng)數(shù)據(jù)和網(wǎng)絡(luò)模型都準(zhǔn)備就緒后,我們可以開始訓(xùn)練模型了。


在遷移學(xué)習(xí)里,一般具有可學(xué)習(xí)參數(shù)的最后一層需要重新訓(xùn)練。它通常是一個全連接層或一個輸出大小與標(biāo)簽類別數(shù)量匹配的卷積層。為了增加對該層的更新程度并加速收斂,您可以使用 setLearnRateFactor 函數(shù)增加這些層可學(xué)習(xí)參數(shù)的學(xué)習(xí)率因子。這里我們將它們的可學(xué)習(xí)參數(shù)的學(xué)習(xí)率因子設(shè)置為 10。

net=setLearnRateFactor(net,"res5c_branch2c/Weights",10);
    net = setLearnRateFactor(net,"res5c_branch2c/Bias",10);


接著定義訓(xùn)練選項,如優(yōu)化器和學(xué)習(xí)率等。這些選擇需要進(jìn)行經(jīng)驗分析。您可以使用MATLAB 的 Experiment Manager 應(yīng)用程序,通過實驗探索不同的訓(xùn)練選項。


作為示例,我們將訓(xùn)練選項設(shè)置如下:

使用 Adam 優(yōu)化器進(jìn)行訓(xùn)練。

為了減少對預(yù)訓(xùn)練權(quán)重的更新程度,使用較小的學(xué)習(xí)率。將學(xué)習(xí)率設(shè)置為 0.0001。

每 5 次迭代使用驗證數(shù)據(jù)驗證網(wǎng)絡(luò)。對于較大的數(shù)據(jù)集,為防止驗證減慢訓(xùn)練速度,可以增加此值。

在圖中顯示訓(xùn)練進(jìn)度并監(jiān)控準(zhǔn)確率指標(biāo)。

禁用詳細(xì)輸出。

options = trainingOptions("adam", ...
    InitialLearnRate=0.0001, ...
    MaxEpochs=3, ...
    ValidationData=augimdsValid, ...
    ValidationFrequency=5, ...
    MiniBatchSize=11, ...
    Plots="training-progress", ...
    Metrics="accuracy", ...
Verbose=false);


然后,使用 trainnet 函數(shù)訓(xùn)練神經(jīng)網(wǎng)絡(luò)。對于圖像分類,您可以使用交叉熵?fù)p失。要使用 GPU 訓(xùn)練模型,你需要一個Parallel Computing Toolbox 的許可證和一個支持的 GPU 設(shè)備。有關(guān) MATLAB 所支持設(shè)備的更多信息,請參閱 GPU 計算要求。


默認(rèn)情況下,如果有可用的 GPU,trainnet 函數(shù)將使用 GPU。否則,它將使用 CPU。您還可以在訓(xùn)練選項中設(shè)置 ExecutionEnvironment 參數(shù)以指定執(zhí)行環(huán)境。

net = trainnet(augimdsTrain,net,"crossentropy",options);

5dbf88e2-8c1d-11ef-a511-92fbcf53809c.png

第六步:測試神經(jīng)網(wǎng)絡(luò)


然后在測試數(shù)據(jù)集上評估訓(xùn)練好的模型,以測試模型在未知數(shù)據(jù)上的表現(xiàn)。您可以使用 minibatchpredict 函數(shù)對多個觀測進(jìn)行預(yù)測。該函數(shù)也會在有可用 GPU 的情況下自動使用 GPU。

YTestScore = minibatchpredict(net,augimdsTest);


您還可以使用 scores2label 函數(shù)將預(yù)測得分轉(zhuǎn)換為標(biāo)簽值。

YTest = scores2label(YTestScore,classNames);


讓我們評估分類準(zhǔn)確率,即測試數(shù)據(jù)的正確預(yù)測百分比,并在混淆矩陣中可視化分類準(zhǔn)確率。

TTest = imdsTest.Labels;
accuracy = mean(TTest==YTest);


figure
confusionchart(TTest,YTest);
title(['Accuracy','approx',num2str(round(acc*10000)/100),'%'])

5de539b6-8c1d-11ef-a511-92fbcf53809c.png

第七步:創(chuàng)建提交

當(dāng)您對訓(xùn)練的模型感到滿意時,可以將其應(yīng)用于識別之后所發(fā)布的測試數(shù)據(jù)集并創(chuàng)建提交!由于目前用于評估的測試數(shù)據(jù)集目前還沒有發(fā)布,我們在這里使用從訓(xùn)練數(shù)據(jù)集中所分割出來的測試數(shù)據(jù)集,展示如何利用代碼自動創(chuàng)建符合提交格式要求的文件。

testImgSize = size(augimdsTest.Files,1);
fileId = cell(testImgSize,1);
for i = 1:testImgSize
     fileId{i,1} = augimdsTest.Files{i}(1,end-10:end-4);
end
resultsTable = table(fileId, YTestScore(:,2));
outPutFilename = 'mySubmission.txt';
writetable(resultsTable,outPutFilename,'Delimiter','	','WriteVariableNames',false,'WriteRowNames',false)
zip([pwd'/mySubmission.zip'],outPutFilename)

至此,您已經(jīng)成功開啟了深度偽造人臉檢測項目!期待看到大家是如何應(yīng)對這個挑戰(zhàn)的!

最后

別忘了通過 MathWorks 的 2025 IEEE Signal Processing Cup 網(wǎng)站 申請免費的 MATLAB 競賽軟件許可,并探索更多資源!如果您有任何問題,請隨時通過 studentcompetitions@mathworks.com 聯(lián)系我們。

2025 IEEE Signal Processing Cup 將會是大家學(xué)習(xí)、創(chuàng)新并在國際舞臺上展示技能的絕佳機會——不僅能收獲人工智能和信號處理方向?qū)氋F經(jīng)驗,還有機會為這個重要研究領(lǐng)域做出貢獻(xiàn),不容錯過!

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • matlab
    +關(guān)注

    關(guān)注

    184

    文章

    2970

    瀏覽量

    230340
  • AI
    AI
    +關(guān)注

    關(guān)注

    87

    文章

    30573

    瀏覽量

    268790
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4769

    瀏覽量

    68487
  • 人臉檢測
    +關(guān)注

    關(guān)注

    0

    文章

    80

    瀏覽量

    16454

原文標(biāo)題:集結(jié)令 | IEEE Signal Processing Cup 深度偽造人臉檢測挑戰(zhàn)賽

文章出處:【微信號:MATLAB,微信公眾號:MATLAB】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    基于openCV的人臉檢測系統(tǒng)的設(shè)計

    通過對基于Adaboost人臉檢測算法的研究,利用該算法與計算機視覺類庫openCV進(jìn)行人臉檢測系統(tǒng)的設(shè)計,實現(xiàn)了對出現(xiàn)在視頻或圖像中的人臉
    發(fā)表于 12-23 14:19

    【HarmonyOS HiSpark AI Camera】活體人臉檢測

    項目名稱:活體人臉檢測試用計劃:理由:和同學(xué)在研究人臉檢測的具體落地,希望能基于AI Camera基于鴻蒙實現(xiàn)相關(guān)算法邏輯計劃:和同學(xué)合作,
    發(fā)表于 11-18 17:48

    人臉檢測_嵌入式系統(tǒng)設(shè)計與實踐項目報告

    人臉檢測_嵌入式系統(tǒng)設(shè)計與實踐項目報告。
    發(fā)表于 02-29 15:33 ?9次下載

    基于深度學(xué)習(xí)與融入梯度信息的人臉姿態(tài)分類檢測_蘇鐵明

    基于深度學(xué)習(xí)與融入梯度信息的人臉姿態(tài)分類檢測_蘇鐵明
    發(fā)表于 01-08 11:13 ?1次下載

    深度學(xué)習(xí)在人臉檢測中的應(yīng)用

    本文將主要從人臉檢測方面來講解目標(biāo)檢測。
    的頭像 發(fā)表于 07-08 09:54 ?3191次閱讀

    采用人臉活體檢測技術(shù),防止惡意者偽造和竊取

    在生物識別系統(tǒng)中,為防止惡意者偽造和竊取他人的生物特征用于身份認(rèn)證,生物識別系統(tǒng)需具有活體檢測功能,即判斷提交的生物特征是否來自有生命的個體。 一般生物特征的活體檢測技術(shù)利用的是人們的生理特征,例如
    發(fā)表于 06-17 17:33 ?1011次閱讀

    人工智能如何避免深度偽造的出現(xiàn)

    采用深度偽造(Deepfake)生成的視頻和音頻,人工智能生成的文本、詩歌和歌詞,假網(wǎng)站和假新聞進(jìn)入人們的世界。
    發(fā)表于 02-28 11:41 ?2507次閱讀

    泰爾實驗室推出“AI偽造人臉鑒別平臺”,專門應(yīng)對技術(shù)的安全風(fēng)險

    近日,泰爾終端實驗室發(fā)布了“AI偽造人臉鑒別平臺”,基于單幀和多幀的方法,利用人臉生物特征、抖動精度等特性,結(jié)合多輪訓(xùn)練模型、測試集技術(shù),能夠識別圖像、視頻文件的異常,進(jìn)而辨別真?zhèn)?。隨著人工智能、深度學(xué)習(xí)技術(shù)的發(fā)展,一些不法分子
    的頭像 發(fā)表于 04-24 14:22 ?2599次閱讀

    泰爾實驗室破解AI偽造人臉,準(zhǔn)確率達(dá)98.9%

    近日,泰爾終端實驗室發(fā)布了“AI偽造人臉鑒別平臺”,基于單幀和多幀的方法,利用人臉生物特征、抖動精度等特性,結(jié)合多輪訓(xùn)練模型、測試集技術(shù),能夠識別圖像、視頻文件的異常,進(jìn)而辨別真?zhèn)巍?/div>
    發(fā)表于 04-24 15:03 ?673次閱讀

    基于深度學(xué)習(xí)的跨域小樣本人臉欺詐檢測算法

    隨著人臉識別技術(shù)的發(fā)展,人臉欺詐攻擊已經(jīng)成為一項實際的安全問題,人臉欺詐檢測算法用于及早發(fā)現(xiàn)該類攻擊保護系統(tǒng)安全。文中將一種經(jīng)典域自適應(yīng)算法擴展到
    發(fā)表于 04-15 09:40 ?4次下載
    基于<b class='flag-5'>深度</b>學(xué)習(xí)的跨域小樣本<b class='flag-5'>人臉</b>欺詐<b class='flag-5'>檢測</b>算法

    基于生成對抗網(wǎng)絡(luò)的深度偽造視頻綜述

    ,綜述了基于視頻幀內(nèi)篡改特征的檢測方法,針對深度偽造視頻幀內(nèi)的視覺偽影、面部噪聲特征的檢測問題,介紹了相關(guān)機器學(xué)習(xí)、深度學(xué)刁等分類算法、模型
    發(fā)表于 05-10 15:39 ?11次下載

    人工智能換臉為什么人臉轉(zhuǎn)到90度時會出現(xiàn)漏洞?

    視頻偽造是 Deepfake 技術(shù)最為主要的代表,其制作假視頻的技術(shù)也被稱為人工智能換臉(AI face swap)。一直以來,研究者發(fā)現(xiàn) DeepFake 存在著這樣一個漏洞:當(dāng)偽造人臉頭部轉(zhuǎn)到 90 度時(側(cè)臉 90 度),對方就能識別視頻中的
    發(fā)表于 08-16 11:04 ?700次閱讀

    什么叫深度偽造技術(shù) 深度偽造技術(shù)發(fā)展趨勢分析

    為了打擊深度偽造,該算法不需要對特定算法生成的深度偽造音頻進(jìn)行采樣。那不勒斯大學(xué)的威爾多利瓦開發(fā)了另一類算法。在訓(xùn)練過程中,該算法學(xué)習(xí)尋找講話者的生物識別標(biāo)志。
    發(fā)表于 07-21 11:22 ?1602次閱讀
    什么叫<b class='flag-5'>深度</b><b class='flag-5'>偽造</b>技術(shù) <b class='flag-5'>深度</b><b class='flag-5'>偽造</b>技術(shù)發(fā)展趨勢分析

    紅色警戒!深度偽造欺詐蔓延全球,ADVANCE.AI助力出海企業(yè)反欺詐新升級

    近年來生成式人工智能技術(shù)迅猛發(fā)展,由此衍生的深度偽造 (Deepfake) 欺詐也愈發(fā)盛行,技術(shù)門檻的降低、生成效果的逼真、多樣化的應(yīng)用場景與檢測難度的增加,讓欺詐者們紛紛投向深度
    的頭像 發(fā)表于 06-12 15:57 ?460次閱讀

    人臉檢測模型有哪些

    人臉檢測是計算機視覺領(lǐng)域的一個重要研究方向,它涉及到從圖像或視頻中檢測出人臉的位置和大小。隨著深度學(xué)習(xí)技術(shù)的發(fā)展,人臉
    的頭像 發(fā)表于 07-03 17:05 ?982次閱讀
    RM新时代网站-首页