首页 > 其他分享 >Datawhale AI 夏令营 全球Deepfake攻防挑战赛

Datawhale AI 夏令营 全球Deepfake攻防挑战赛

时间:2024-07-17 21:28:59浏览次数:17  
标签:视频 AI dB Datawhale sample path ffdv Deepfake

        

        近日有学习多模态技术的需求,碰巧撞上Datawhale的夏令营,初看要求颇高,既要打卡还要分享,心中顿起燥心,转念一想,其实不失为一次磨练机会,为提高自己逃课摆烂的成本,邃开始撰写自己第一篇公开的学习笔记,若多日后看见虎头蛇尾的学习笔记,想必羞愧难当。

        闲话少说,先来看看学习的竞赛项目:

全球Deepfake攻防挑战赛 音视频赛题: https://www.kaggle.com/competitions/multi-ffdv/overview

  • 在这个赛道中,比赛任务是判断一张人脸图像(目测是另一个赛道的要求,这里的识别目标是视频)是否为Deepfake图像,并输出其为Deepfake图像的概率评分。参赛者需要开发和优化检测模型,以应对多样化的Deepfake生成技术和复杂的应用场景,从而提升Deepfake图像检测的准确性和鲁棒性。
  • 以AUC作为评价指标
  • 需求非常明确:开发更加有效的深度学习模型来辨别真实视频和AI生成的人脸图像,我想这里应该

        即对于模型要求能够接收视频作为输入,得到该视频是真实视频的概率,做一个深度学习分类模型,由于视频既包括连续的图片,有包括音频信息,需要模型能够处理这两种不同格式的数据,所谓多模态。

        今日笔记简单介绍完成这样一个项目baseline的流程:

  1. 准备训练数据:项目主办方会提供的,而且使用私有数据可能违规哦
    #notebook里使用shell中的命令需要再前面加!,下面两命令用于统计训练集和验证集行数
    !wc -l /kaggle/input/ffdv-sample-dataset/ffdv_phase1_sample/train_label.txt
    !wc -l /kaggle/input/ffdv-sample-dataset/ffdv_phase1_sample/val_label.txt

  2. 下载导入pytorch以及可能需要的第三方工具:比如我是第一次处理视频数据,发现baseline中用到了可以在notebook中播放视频的工具Video
    from IPython.display import Video
    Video("/kaggle/input/ffdv-sample-dataset/ffdv_phase1_sample/valset/00882a2832edbcab1d3dfc4cc62cfbb9.mp4", embed=True)
  3. 提取音频并做初处理,将音频转为Mel频谱图并归一化,代码都太长了,后面就不粘贴了,官方文档里都有
    import moviepy.editor as mp
    import librosa
    import numpy as np
    import cv2
    
    def generate_mel_spectrogram(video_path, n_mels=128, fmax=8000, target_size=(256, 256)):
        # 提取音频
        audio_path = 'extracted_audio.wav'
        video = mp.VideoFileClip(video_path)
        video.audio.write_audiofile(audio_path, verbose=False, logger=None)
    
        # 加载音频文件
        y, sr = librosa.load(audio_path)
    
        # 生成MEL频谱图
        S = librosa.feature.melspectrogram(y=y, sr=sr, n_mels=n_mels)
    
        # 将频谱图转换为dB单位
        S_dB = librosa.power_to_db(S, ref=np.max)
    
        # 归一化到0-255之间
        S_dB_normalized = cv2.normalize(S_dB, None, 0, 255, cv2.NORM_MINMAX)
        
        # 将浮点数转换为无符号8位整型
        S_dB_normalized = S_dB_normalized.astype(np.uint8)
    
        # 缩放到目标大小
        img_resized = cv2.resize(S_dB_normalized, target_size, interpolation=cv2.INTER_LINEAR)
    
        return img_resized
    
    # 使用示例
    video_path = '/kaggle/input/ffdv-sample-dataset/ffdv_phase1_sample/trainset/001b0680999447348bc9f89efce0f183.mp4'  # 替换为您的视频文件路径
    mel_spectrogram_image = generate_mel_spectrogram(video_path)
  4. 后续和其他深度学习任务相同:使用dataset和dataloader读取数据;训练验证;保存参数。这里的模型框架是残差神经网络resnet18
    import timm 
    #pretrueed设为true意味着要下载预训练参数,相较于从头训练,预训练模型+微调往往更快速准确
    #由于是二分类任务num_cluss=2
    model = timm.create_model('resnet18', pretrained=True, num_classes=2)
  5. 将prediction.txt.csv(这里面是训练集和验证集里的一小部分)中视频的预测结果作为submission提交得到分数

OKK,今天的任务马上完成,看了一遍下来我发现自己并没有理解所谓多模态技术。。。看起来似乎是用resnet18这个CV领域的模型处理音频,对此有许多困惑(图片的预训练网络处理音频是合理的吗???),希望在后续的学习过程中希望对这个问题做进一步回答。

标签:视频,AI,dB,Datawhale,sample,path,ffdv,Deepfake
From: https://blog.csdn.net/Z_Zhangyijian/article/details/140363814

相关文章

  • Datawhale AI 夏令营 全球Deepfake攻防挑战赛 task2
    数天未见,进步如何?距第一篇笔记发布已过多日,在笔记中立下的flag推动下再次打开CSDN创作中心来记录学习进展。首先让我来对竞赛项目和datawhale提供的baseline做一个简单的梳理:balseline网址:https://www.kaggle.com/code/littlejian/deepfake-ffdv-baseline项目要求:判断一......
  • Datawhale AI夏令营第二期——机器学习 基于神经网络stack融合策略的多模型融合
    #AI夏令营#Datawhale夏令营基于神经网络stack融合策略的多模型融合改进点:1.数据清洗,异常值替换(板块2)2.基于神经网络的stack模型融合(板块5)根据大佬的提示对Task3所做的改进,大佬链接:http://t.csdnimg.cn/RSC3o1.模型导入导入所需要包:importpandasaspdimportnumpy......
  • AI Earth——MuSyQ 30m/10天叶片叶绿素含量产品(中国)应用 app
    应用介绍 ​​​​​​​30m/10天合成的叶片叶绿素含量产品是空天院多源协同定量遥感产品生产系统((Multi-sourcedataSynergizedQuantitativeremotesensingproductionsystem,MuSyQ))产品之一。叶片叶绿素含量(Chlleaf)是植被遥感监测中最重要的参数之一,目前国际上缺少高分......
  • LangChain补充一:一些小且有用的点
    一:LangChain表达式语言LCEL(LangChainExpressionLanguage)chain:我们可以将包括大模型调用在内的一组操作组成“链条”,即所谓“调用链”(一)概念LangChain提供的LangChainExpressionLanguage(LCEL)让开发可以很方便地将多个组件连接成AI工作流(或者说是调用链)。如下是一......
  • LangChain补充五:Agent之LangGraph的使用
    一:LangGraph入门https://www.51cto.com/article/781996.htmlhttps://blog.csdn.net/weixin_41496173/article/details/139023846https://blog.csdn.net/wjjc1017/article/details/138518087https://langchain-ai.github.io/langgraph/https://langchain-ai.github.io/langg......
  • LangChain补充四:Agent知识点和案例补充
    https://www.alang.ai/langchain/101/lc07一:基本流程和概念(一)概念LangChainAgent的核心思想是,使用大语言模型选择一系列要执行的动作。在Chain中,一系列动作是硬编码在代码中的。在Agent中,大语言模型被用作推理引擎,以确定要采取的动作及其顺序。它包括3个组件:规划:将任......
  • [AIZU ONLINE JUDGE] 计算几何 CGL_3_C (射线法判断一点是否在多边形内部)
    Polygon-Point-ContainmentForagivenpolygon g andtargetpoints t,print"2"if g contains t,"1"if t isonasegmentof g,"0"otherwise.g isrepresentedbyasequenceofpoints p1, p2,..., pn wherelinesegmentsconnec......
  • 【AI原理解析】—生成对抗网络(GAN)原理
    目录一、基本原理二、核心算法原理和数学模型三、训练过程四、GAN的优缺点生成对抗网络(GenerativeAdversarialNetwork,简称GAN)是一种深度学习模型,自2014年由IanGoodfellow等人提出以来,在人工智能领域得到了广泛应用。GAN的基本原理是通过两个神经网络——生成器(Genera......
  • OpenAI新模型代号曝光,Blackwell需求强劲、英伟达与台积电的晶圆订单量增加25%
      ChatGPT狂飙160天,世界已经不是之前的样子。更多资源欢迎关注每日行业新闻1、OpenAI正在开发新的人工智能模型,代号为“草莓”据知情人士和媒体查阅的内部文件,ChatGPT开发商OpenAI正在一个代号为“草莓”的项目中开发一种新的人工智能模型。该项目的细节此前从未被......
  • 探索Mojo编程语言:AI开发者的新宠儿
    文章目录探索Mojo编程语言:AI开发者的新宠儿一、Mojo编程语言概述什么是Mojo?二、Mojo的安装与配置安装MojoWindowsmacOSLinux配置Mojo三、基本语法与数据类型标量变量数组哈希四、控制结构条件语句循环语句五、函数与模块函数模块六、文件操作与正则表达式文件读取......