精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

深度偽造人臉檢測項目

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

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

為什么挑戰深度偽造?

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

參加挑戰有什么好處?

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

您準備好了嗎?

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

如果您所在的學校沒有MATLAB 全校使用授權,您可以訪問 MathWorks 的 IEEE Signal Processing Cup 網站 ,申請免費的MATLAB競賽軟件許可并獲取其他相關學習資源。您也可以訪問MATLAB Academy 學習多門免費自定義進度的在線入門課程。

目錄

第一步:加載數據

第二步:創建 Image Datastores

第三步:加載或創建網絡

第四步:準備訓練數據

第五步:訓練神經網絡

第六步:測試神經網絡

第七步:創建提交

總結

第一步:加載數據

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

wKgaomcQesGAA4zqAAC1W9V78cg836.png

下面的代碼將幫您自動解壓這些文件,并將數據集整理到“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

第二步:創建 Image Datastores

想要高效地處理包含大量圖像的數據集,創建 Image Datastore 是必不可少的。這種數據格式允許我們存儲大量的圖像數據,包括那些超出內存容量的,并在神經網絡訓練期間高效地批次讀取圖像。

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

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 中所包含文件的大小,您可以看到這個挑戰賽的訓練數據集包含 26,2160 張圖像,而驗證數據集只包含 3072 張圖像。由于目前我們還沒有獲得用于評估性能的測試數據集,可以使用 splitEachLabel 函數將訓練數據集劃分為兩個新的 Image Datastore,如:10% 用于訓練、2% 用于測試。

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


現在您可以獲取數據集標簽的類別名稱和數量,然后按如下方式查看一些面部圖像數據。

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


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


第三步:加載或創建網絡


現在,訓練、驗證和測試數據集的 Image Datastore 都已經準備好了!下一步是加載一個預訓練好的網絡或創建一個新網絡模型。


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

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


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


第四步:準備訓練數據


準備數主要包括調整圖像大小以匹配神經網絡的輸入尺寸,并通過數據增強來提高模型的魯棒性。數據增強技術,如旋轉、縮放和翻轉,可以使模型更具泛化能力。MATLAB 提供了便捷的內置函數,如 imageDataAugmenter 和 augmentedImageDatastore。


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

inputSize=net.Layers(1).InputSize;


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


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


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

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


第五步:訓練神經網絡
當數據和網絡模型都準備就緒后,我們可以開始訓練模型了。


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

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


接著定義訓練選項,如優化器和學習率等。這些選擇需要進行經驗分析。您可以使用MATLAB 的 Experiment Manager 應用程序,通過實驗探索不同的訓練選項。


作為示例,我們將訓練選項設置如下:

使用 Adam 優化器進行訓練。

為了減少對預訓練權重的更新程度,使用較小的學習率。將學習率設置為 0.0001。

每 5 次迭代使用驗證數據驗證網絡。對于較大的數據集,為防止驗證減慢訓練速度,可以增加此值。

在圖中顯示訓練進度并監控準確率指標。

禁用詳細輸出。

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


然后,使用 trainnet 函數訓練神經網絡。對于圖像分類,您可以使用交叉熵損失。要使用 GPU 訓練模型,你需要一個Parallel Computing Toolbox 的許可證和一個支持的 GPU 設備。有關 MATLAB 所支持設備的更多信息,請參閱 GPU 計算要求。


默認情況下,如果有可用的 GPU,trainnet 函數將使用 GPU。否則,它將使用 CPU。您還可以在訓練選項中設置 ExecutionEnvironment 參數以指定執行環境。

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

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

第六步:測試神經網絡


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

YTestScore = minibatchpredict(net,augimdsTest);


您還可以使用 scores2label 函數將預測得分轉換為標簽值。

YTest = scores2label(YTestScore,classNames);


讓我們評估分類準確率,即測試數據的正確預測百分比,并在混淆矩陣中可視化分類準確率。

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

第七步:創建提交

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

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)

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

最后

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

2025 IEEE Signal Processing Cup 將會是大家學習、創新并在國際舞臺上展示技能的絕佳機會——不僅能收獲人工智能和信號處理方向寶貴經驗,還有機會為這個重要研究領域做出貢獻,不容錯過!

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • matlab
    +關注

    關注

    182

    文章

    2963

    瀏覽量

    230149
  • AI
    AI
    +關注

    關注

    87

    文章

    30106

    瀏覽量

    268398
  • 代碼
    +關注

    關注

    30

    文章

    4744

    瀏覽量

    68344
  • 人臉檢測
    +關注

    關注

    0

    文章

    80

    瀏覽量

    16441

原文標題:集結令 | IEEE Signal Processing Cup 深度偽造人臉檢測挑戰賽

文章出處:【微信號:MATLAB,微信公眾號:MATLAB】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    基于openCV的人臉檢測系統的設計

    通過對基于Adaboost人臉檢測算法的研究,利用該算法與計算機視覺類庫openCV進行人臉檢測系統的設計,實現了對出現在視頻或圖像中的人臉
    發表于 12-23 14:19

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

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

    人臉檢測_嵌入式系統設計與實踐項目報告

    人臉檢測_嵌入式系統設計與實踐項目報告。
    發表于 02-29 15:33 ?9次下載

    基于深度學習與融入梯度信息的人臉姿態分類檢測_蘇鐵明

    基于深度學習與融入梯度信息的人臉姿態分類檢測_蘇鐵明
    發表于 01-08 11:13 ?1次下載

    深度學習在人臉檢測中的應用

    本文將主要從人臉檢測方面來講解目標檢測
    的頭像 發表于 07-08 09:54 ?3180次閱讀

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

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

    人工智能如何避免深度偽造的出現

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

    泰爾實驗室推出“AI偽造人臉鑒別平臺”,專門應對技術的安全風險

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

    泰爾實驗室破解AI偽造人臉,準確率達98.9%

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

    基于深度學習的跨域小樣本人臉欺詐檢測算法

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

    基于生成對抗網絡的深度偽造視頻綜述

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

    人工智能換臉為什么人臉轉到90度時會出現漏洞?

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

    什么叫深度偽造技術 深度偽造技術發展趨勢分析

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

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

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

    人臉檢測模型有哪些

    人臉檢測是計算機視覺領域的一個重要研究方向,它涉及到從圖像或視頻中檢測出人臉的位置和大小。隨著深度學習技術的發展,人臉
    的頭像 發表于 07-03 17:05 ?915次閱讀