毕业设计:基于深度学习的面部表情动作迁移及唇形同步系统

基于PaddleGAN项目人脸表情动作迁移学习(五)图像补帧上色与超分修复 学习目标 体验基于PaddleGAN的图像上色、补针、超分等功能,涉及模型包括DAIN、DeOldify、RealSR、DeepRemaster、EDVR、PPMSVSR等。 一、算法原理 1.补帧模型DAIN DAIN 模型通过探索深度的信息来显式检测遮挡。并且开发了一个深度感知的流投影层来合成中间流。在视频补帧方面有较好的效果。 2.上色模型DeOldify 3.上色模型DeepRemaster DeepRemaster 模型基于时空卷积神经网络和自注意力机制。并且能够根据输入的任意数量的参考帧对 阅读详情

目录

前言

项目背景

设计思路

表情标签

面部动作单元识别

表情图像合成

数据集

实验环境

实验结果分析

更多帮助


前言

    📅大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后面临的就业升学做准备,一边要为毕业设计耗费大量精力。近几年各个学校要求的毕设项目越来越难,有不少课题是研究生级别难度的,对本科同学来说是充满挑战。为帮助大家顺利通过和节省时间与精力投入到更重要的就业和考试中去,学长分享优质的选题经验和毕设项目与技术思路。

        🚀对毕设有任何疑问都可以问学长哦!

       大家好,这里是海浪学长计算机毕设专题,本次分享的课题是

       🎯基于深度学习的面部表情动作迁移及唇形同步系统

项目背景

       随着人工智能技术的飞速发展,面部表情动作迁移及唇形同步技术正成为研究热点。该技术通过深度学习模型捕捉并迁移一个人的面部表情到另一人脸上,实现动画人物的唇形同步等效果,在影视制作、虚拟角色互动、游戏设计等领域具有广泛的应用前景。研究基于深度学习的面部表情动作迁移及唇形同步系统,不仅能够推动相关技术的发展,还能够为上述行业带来创新性的应用解决方案,具有重要的现实意义和科研价值。

设计思路

表情标签

       表情标签是通过描述性词语对不同面部表情进行主观分类的。然而,由于描述本身具有主观性,对表情的描述缺乏统一的标准,因此在20世纪中期的大量表情研究中并没有产生统一被普遍认可的理论体系。面部表情所表现的情绪比六种基本情绪要复杂得多,使用离散的情绪标签无法准确地表征细微的、模糊的情感。因此,一些研究者选择使用情感维度空间,旨在将自然情感数据表现得更加丰富细腻。情感维度空间是一种笛卡尔空间,其中每个维度代表一种情感的心理学属性。在这种维度空间中,表情特征可以量化为某一个点。

面部动作单元识别

       基于几何特征的运动单元识别方法,该方法基于面部特征点的定位和跟踪,通过划分不同的待观测肌肉区域来识别动作单元。在这个过程中,面部特征点的定位和跟踪是关键问题,它们决定了待观测肌肉位置的准确性和动作单元识别的准确性。通过圈取面部肌肉待观测区域,并确定该区域的形变与哪些AU编码和AU强度相对应,可以决定AU序列的最终结果。在该方法中,人脸检测是基础,它将面部图像中的面部区域标出,为后续的面部特征点定位提供感兴趣区域。最大边距目标检测算法(MMOD)和梯度直方图(HOG)是常用的人脸检测算法。梯度直方图可以用于计算面部图像的梯度方向,以获取多个梯度直方信息。

毕业设计:基于深度学习的面部表情动作迁移及唇形同步系统

表情图像合成

       生成对抗网络(GAN)是常用的图像生成算法,研究人员不断将其生成对抗思想应用到新的图像生成网络框架中,不断提升生成效果。生成对抗网络是一种无监督学习模型,通过博弈对抗的方式进行训练。GAN的结构由生成模型(Generator)和判别模型(Discriminator)组成,两种模型的构成是独立的两个神经网络模型。其中,生成模型是一个样本生成器,是我们想要使用的主要网络,输入一组随机噪声,生成高维度的图像。判别模型是一个二分类模型,可以使用一个简单的神经网络结构,输入一张图像,模型计算出该图片的概率值。通过概率值计算图像的真假,当概率值大于0.5时,该图像为真实图像,当概率值小于0.5时,该图像为合成的虚拟图像。

毕业设计:基于深度学习的面部表情动作迁移及唇形同步系统

       生成对抗网络(GAN)通过分布采样而非建模的方式进行训练,使其生成的图像更贴近真实图像,但这种生成过程失去了控制。为了解决这个问题,Mirza等人提出了一种变形网络框架,称为条件生成对抗网络(CGAN)。CGAN是一种有约束的生成网络,将无监督的GAN转化为有监督模型,使得图像生成过程可控。在生成模型和判别模型中引入条件变量,这个条件变量可以是图像或者编码序列,其限制的内容可以是位置、颜色、形状等特征。额外添加一个条件变量相当于给生成网络引入了潜在的约束,可以指导生成对抗网络的生成方向,生成多类别高质量的图像。

毕业设计:基于深度学习的面部表情动作迁移及唇形同步系统

       循环生成对抗网络(CycleGAN)是针对无法配对的图像数据的图像转换模型。它由两个生成模型G和F以及两个判别模型D和E组成,形成一个完整的生成对抗网络。生成模型G和判别模型D组成一个原始的生成对抗网络,生成模型F和判别模型E组成另一个独立的生成对抗网络。循环生成对抗网络可以看作是两个镜像对称的原型生成对抗网络构成的环形网络。这两组原型生成对抗网络共享同一个生成模型的参数,并分别对应一个独立的判别模型。

毕业设计:基于深度学习的面部表情动作迁移及唇形同步系统

数据集

       为了实现面部表情动作迁移及唇形同步系统的研究,我们发现现有的公开数据集在表情多样性和唇形动作细节上不足以满足我们的需求。因此,我们决定自制一个更为精细的数据集。首先,我们选择了多位志愿者,让他们在多种情感状态下进行面部表情和唇形动作的录制。通过高清摄像头捕捉这些细微的动作变化,并记录下高质量的视频数据。接着,我们利用图像处理技术,从这些视频中逐帧提取出人脸区域,并进行细致的标注工作,以确保每张人脸图像都对应着准确的表情和唇形标签。

       在面部表情动作迁移及唇形同步系统的研究中,数据扩充显得尤为重要,因为它可以模拟不同光照条件、拍摄角度、人脸姿态等因素对图像的影响。常见的数据扩充方法包括旋转、平移、缩放、裁剪等几何变换,以及亮度、对比度、色彩抖动等颜色变换。这些变换可以应用于训练集图像,以生成更多不同形态和风格的新图像,从而增强模型的鲁棒性。

 

import cv2  
import numpy as np  
import random  
  
def augment_image(image, label):  
    # 几何变换  
    # 随机旋转  
    angle = random.randint(-30, 30)  
    (h, w) = image.shape[:2]  
    center = (w / 2, h / 2)  
    M = cv2.getRotationMatrix2D(center, angle, 1.0)  
    rotated = cv2.warpAffine(image, M, (w, h))  
      
    # 随机平移  
    tx, ty = random.randint(-10, 10), random.randint(-10, 10)  
    M = np.float32([[1, 0, tx], [0, 1, ty]])  
    translated = cv2.warpAffine(rotated, M, (w, h))  
      
    # 随机缩放  
    scale = random.uniform(0.9, 1.1)  
    scaled = cv2.resize(translated, None, fx=scale, fy=scale, interpolation=cv2.INTER_LINEAR)  

实验环境

       该面部表情迁移系统的全部实验分析是在实验室内部的设施平台上完成的。所使用的设备包括视频采集设备,用于捕获目标人物面部图像。模型训练使用核心数据处理平台,包括Dell R720型服务器和显存大小为12GB的NVIDIA Titan X GPU显卡。编程环境使用PyCharm 2017,CUDA版本为8.0.61,cuDNN版本为6.0.21,远程调用服务40。使用IntelIJ IDEA 2017作为系统框架的编程环境,调用模型实现系统流程的串联。

实验结果分析

       系统的常见评价指标,包括准确率、均方误差、峰值信噪比、结构相似性指数、唇部形状相似度、同步误差和主观评价。这些指标用于衡量模型在分类、回归或生成任务中的准确性,以及图像的相似度和唇形同步的效果。通过综合使用客观和主观评价,可以全面评估系统的性能。

相关代码示例:

import torch
import torchvision
import torch.nn as nn

# 定义面部表情动作迁移模型
class FacialExpressionTransferModel(nn.Module):
    def __init__(self):
        super().__init__()
        # 定义模型的层结构

    def forward(self, input_image, target_expression):
        # 前向传播计算

# 定义唇形同步模型
class LipSynchronizationModel(nn.Module):
    def __init__(self):
        super().__init__()
        # 定义模型的层结构

    def forward(self, input_audio, input_image):
        # 前向传播计算

# 加载训练数据
train_data = loadfacial_expression_data()  # 加载面部表情数据
train_audio = load_lip_sync_audio_data()  # 加载唇形同步音频数据

# 定义训练循环
for epoch in range(num_epochs):
    for batch in data_loader:
        # 获取当前批次的数据
        input_image, target_expression = batch
        input_audio, _ = batch

        # 计算损失
        expression_loss = model_loss(expression_transfer_model(input_image, target_expression), target_expression)
        lip_sync_loss = model_loss(lip_sync_model(input_audio, input_image), input_image)

        # 反向传播更新模型参数
        optimizer.zero_grad()
        (expression_loss + lip_sync_loss).backward()
        optimizer.step()

# 在测试数据上进行推理
test_image = load_test_image()  # 加载测试图像
test_audio = load_test_audio()  # 加载测试音频

transferred_expression = expression_transfer_model(test_image)
synced_lip = lip_sync_model(test_audio, test_image)

# 显示结果或进行其他后续处理
show_transfered_expression(transferred_expression)
show_synced_lip(synced_lip)

海浪学长项目示例:

更多帮助

MuseTalk的最新唇形同步模型落地实践经验总结(不看后悔) MuseTalk 是由腾讯音乐娱乐的 Lyra 实验室开发的一款强大的开源项目,旨在为虚拟人物提供逼真的口型动画。 该项目不仅支持中文、英文和日文等多语言输入,还适用于多种应用场景,无论是短视频制作、长剧集还是教育与培训材料,都能确保高质量的唇形同步效果。 阅读详情

相关推荐

数字人VideoRetalking项目总结|文本(语音)驱动的音唇同步问题

数字人项目

BeGeek的博客 4618

【唇形同步】Diff2Lip: Audio Conditioned Diffusion Models for Lip-Synchronization

嘴唇同步的任务(唇同步)寻求将人脸的嘴唇与不同的音频相匹配。它在电影行业以及创建虚拟化身和视频会议中有各种应用。这是一个具有挑战性的问题,因为人们需要同时引入详细、逼真的嘴唇动作,同时保持身份、姿势、情绪和图像质量。许多试图解决这个问题的先前方法由于缺乏完整的上下文信息而遭受图像质量下降。在本文中,我们提出了Diff2Lip,这是一种基于音频条件扩散的模型,它能够在保持这些质量的同时在野外进行嘴唇同步。我们在Voxceleb2上训练我们的模型,这是一个视频数据集,包含狂野的会说话的人脸视频。

一只大憨憨的博客 2719

快手开源LivePortrait,实现表情姿态极速迁移,GitHub 6.5K Star

近日,快手可灵大模型团队开源了名为LivePortrait的可控人像视频生成框架,能够准确、实时地将驱动视频的表情、姿态迁移到静态或动态人像视频上,生成极具表现力的视频结果。

kuaishoutech的博客 6602

基于First Order Motion实现人脸表情迁移

本案例基于PaddleGAN的First Order Motion实现人脸表情迁移,提供预训练模型,无需训练可直接使用,快速实现表情迁移效果。让老照片中的人物 “动起来”,让回忆鲜活地浮现在眼前。

m0_63642362的博客 3497

基于PaddleGAN项目人脸表情动作迁移学习(二)单人表情迁移

学习目标: 提示:这里可以添加学习目标 例如:一周掌握 Java 入门知识 学习内容: 提示:这里可以添加要学的内容 例如: 1、 搭建 Java 开发环境 2、 掌握 Java 基本语法 3、 掌握条件语句 4、 掌握循环语句 学习时间: 提示:这里可以添加计划学习的时间 例如: 1、 周一至周五晚上 7 点—晚上9点 2、 周六上午 9 点-上午 11 点 3、 周日下午 3 点-下午 6 点 学习产出: 提示:这里统计学习计划的总量 例如: 1、 技术笔记 2 遍 2、优快云 技术博客 3 篇

h363924219的博客 4393

HelloMeme:开源的面部表情与姿态迁移框架,将视频中的人物表情迁移到静态图像中生成动态视频

HelloMeme 是一个基于 Stable Diffusion 1.5 模型的面部表情与姿态迁移框架,通过集成空间编织注意力机制,实现了自然且物理合理的表情包视频生成。该框架具有强大的泛化能力和扩展性,适用于多种应用场景。

士多啤梨先生の博客 1214

python 实现表情迁移

使用 Python 生成表情迁移的视频。使用软件生成会有可能,即软件供应商收集你的面部素材,这也是下架的原因。

rao826699158的博客 2872

唇形同步wav2lip

唇形迁移wav2lip

jacke121的专栏 990

基于Unity尝试唇同步/LipSync/OVRLipSync(附Demo及源码)

编者言 在视频创作的时候,这个小破站的审核制度有点气人。所以想着写一个工具,以相对较小的成本,尽可能快的加工视频。算是在唇同步技术上的一个小尝试。 目的和初步的想法 基于Unity3D开发语音输入与3D模型开发唇同步软件,以此来丰富个人视频创作的内容,解决个人创作资源相对匮乏的局面,让个人可以把更多的精力投入到内容的组织上去,是这个软件所要解决的问题。 在Unity3D中加载已经组织好的视频,利用Oculus Lipsync视频中的音频所拥有的面部动作,并在选中的模型上播放该动作,并逐帧录制导出

qq_29261149的博客 1万+

革新唇形同步体验——KeySync:高精度、抗遮挡的视频音频对齐工具

在虚拟人像生成、AI配音、影视后期和内容创作领域,唇形同步(Lip Sync)技术起着至关重要的作用。然而,传统方法常常受限于表情干扰、嘴部遮挡、动作不连贯等问题,导致最终效果不尽如人意。最近推出的KeySync,作为一款开源的唇形同步工具,凭借其创新性的两阶段框架设计,成功解决了行业中长期存在的“表情泄漏”与“遮挡敏感”问题,为高质量音视频同步提供了全新的解决方案。KeySync 的一大亮点在于其能够有效抑制原始视频中人物表情对唇部动作的影响,即避免了“表情泄漏”现象。即使人物面部表情丰富,或嘴巴被手、杯

这里汇聚了前沿的技术分享与实用的开发技巧,带你探索从创意到企业的技术创业之路。 438

Unity URP管线下的Highlight Plus插件,从导入到实现物体高亮的保姆级避坑指南

本文详细解析了在Unity URP管线中使用Highlight Plus插件实现物体高亮的完整流程与常见问题解决方案。从URP环境配置、插件导入避坑到相机设置优化,提供了一套完整的保姆级指南,帮助开发者高效解决高亮效果不显示等典型问题,并包含移动端性能优化与复杂场景管理的高级技巧。

weixin_27379781的博客 408

AI唇形同步技术:只需一段视频和语音,轻松实现自然对口效果

使用视频素材时,建议使用720p分辨率的视频,因为这些模型通常在较低分辨率下训练,相较于1080p视频,720p能提供更好的效果。如果使用EasyWavlip和VideoRetalking得到的视频不高清,想要更高清,欢迎公众hao call me,教你如何使用模型将视频变的更高清。PS:这里的输出视频长度不是由音频决定的,是由视频决定的,你需要多长的语音,就需要提供和语音一样长度的视频,用视频剪辑软件剪切拼接下重复人脸片段即可。下载压缩包,解压到本地,全路径不能包含中文,包括视频、语音素材。

m0_72580657的博客 3236

AI 代码赋能短视频带货:服装及多赛道批量内容生产全流程实操

本文聚焦 AI 技术在短视频带货领域的落地应用,以服装赛道为核心,延伸至花卉绿植、图书、茶具等热门领域,系统拆解 AI 工具在选品、素材处理、视频制作(含动态效果、场景搭建)、运营优化等环节的实操方法。针对从业者普遍面临的 “内容生产低效”“无专业技术难出优质视频”“流量运营踩坑” 等痛点,提供从基础工具使用到高阶视频制作的全流程技术方案,助力相关从业者借助 AI 实现批量、高效的短视频内容产出。

m0_67958922的博客 3084

生成AI(一)—“智能讲师”口唇同步

2,下载预生成的推理模型文件Link,拷贝到:checkpoints\wav2lip_gan.pth。1,输入虚拟讲师的图片(或动态的视频)、语音,进行图像级别的opencv人脸识别、口唇识别。通过源码编译,掌握利用生成AI,实现语音与口唇同步的方式播报视频,为其它功能集成。3,笔者自创语言——胡说,口型同步逼真,没有试验猴子,估计效果也不错。3,通过视觉质量检查,模糊化背景重贴回原图,制作基于原图的视频动效。2,输入讲者的音频原声,通过音频原声推理模型,生成动态口型。

Oona_01的博客 380

从DMD芯片到3D视觉革命:揭秘DLP工业投影光机的核心技术

本文深入解析了DMD芯片在DLP工业投影光机中的核心技术应用,揭示了其如何通过3D结构光技术实现微米级精度。从DMD芯片的机械设计到工业级光机的特殊优化,再到光固化3D打印和系统集成,展现了DLP技术在工业自动化和智能制造中的革命性作用。

weixin_29048775的博客 513

工程师必看:如何用功率谱密度搞定随机振动测试(附Grms计算实例)

本文为工程师详解如何通过功率谱密度(PSD)曲线计算Grms(总均方根加速度),从而量化随机振动测试的强度。文章拆解了平直谱、斜谱的计算公式,提供了完整的Grms计算实例,并指出了单位换算、对数坐标等常见工程陷阱,帮助工程师精准完成测试准备与设备推力评估。

3c4x5z6v7b的博客 625

实时换脸新范式:DeepFaceLive中LIA模型如何实现表情精准迁移

你还在为视频通话或直播中的表情生硬而困扰?想让虚拟形象的表情更自然却不知从何入手?本文将拆解DeepFaceLive背后的LIA模型工作原理,读完你将了解: - 实时人脸表情迁移的核心技术流程 - LIA模型如何突破传统换脸的表情滞后问题 - 普通用户如何通过参数调优提升迁移效果 ## 技术架构概览:从摄像头到屏幕的表情数据流 DeepFaceLive采用模块化流水线架构,各组件像齿轮一样协同

gitblog_00751的博客 840

STM32CubeIDE中文注释变乱码终极解决方案:3步设置永久解决锟斤拷问题!

你是否在STM32CubeIDE中遇到过这样的崩溃场景?——精心编写的中文注释在重新生成代码后变成“锟斤拷”乱码,不仅影响代码可读性,反复修改更是浪费大量时间!作为STM32开发者,我曾被这个问题困扰许久,试过修改软件设置、工程编码却始终治标不治本。直到发现这个基于Java环境变量的终极解决方案,才彻底解决了中文乱码难题。

smart_boy__的博客 2958

推荐基于深度学习实时同步生成2D动画口型算法

概述 实时二维动画是一种相当新颖而强大的交流形式,它使表演者可以实时控制卡通人物,同时与其他演员或观众互动和即兴表演。 最近的例子包括史蒂芬·科尔伯特(Stephen Colbert)在《后期秀》中采访卡通客人,荷马在《辛普森一家》(The Simpsons)的一段节目中回答观众的现场电话提问,阿切尔(Archer)在ComicCon上与现场观众交谈,以及迪斯尼的《星际大战:邪恶力量》和M...

图像算法Imalg的博客 3516

NXP S32k3 MCAL ADC配置

S32K3 配置MCAL ADC

Leon_0125的博客 5072

YOLO十年演进:从CNN到Transformer再到MoE,我看懂了2026年目标检测的落地风向标

技术永远是为业务服务的,能解决真实问题的技术,才是有价值的。YOLO的十年演进,从CNN到Transformer再到MoE,从来都不是学术上的炫技,而是一步一步解决工业落地的痛点:从让实时检测成为可能,到解决复杂场景的漏检误检,再到打破精度和算力的死局,每一步都踩在了工业落地的真实需求上。很多新入行的朋友,总喜欢追新,今天换Transformer,明天堆MoE,觉得模型越新、参数越大,就越厉害。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 748

【免费下载】 lipsync: 语音到唇形同步工具

Lipsync是一个简单的命令行工具,用于将音频文件与视频中的人物的唇形同步。它使用Python编写,并且依赖于几个开源库。 ## 使用场景 Lipsync可用于创建更真实的视频内容。例如,如果你有一个录音但没有相应的视频,你可以使用lipsync为你的音频创建一个唇形同步的动画人物。此外,lipsync还可以用于调整现有的视频中的唇形同步,以使其更加准确。 ## 特点 - 基于Pytho...

gitblog_00006的博客 1537

ABAP 平台注册 OAuth 2.0 Client 的完整实践指南(覆盖 Authorization Code、SAML Bearer 与 PKCE)

本文详述了在ABAP平台上注册入站OAuth 2.0 Client的关键技术和操作要点。文章面向SAP技术人员,系统梳理了前置条件(TLS/SSL、技术用户、授权对象)、配置路径(SOAUTH2事务)、授权类型差异(授权码、SAML Bearer、PKCE)等重要内容。特别强调入站与出站配置的区别,并提供了保密客户端和公有客户端的配置指引。文中所有事务码和参数均参考SAP官方文档,包含多个实用案例和权限配置建议,为ABAP系统作为OAuth 2.0授权服务器的实施提供全面指导。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 297

Windows部署LatentSync唇形同步(字节跳动&北京交通大学联合开源)

LatentSync:基于音频驱动的端到端唇形同步框架​LatentSync是由ByteDance开源的一个先进唇形同步框架,旨在通过音频条件驱动的潜在扩散模型实现高精度的唇形同步。与传统基于像素空间扩散或两阶段生成的方法不同,LatentSync采用端到端架构,直接利用Stable Diffusion的强大生成能力建模复杂的音频-视觉关联,避免了中间运动表征的冗余计算。针对扩散模型在时间一致性上的不足,项目创新性地提出了时间表示对齐(TREPA)​机制。

AITechLab 的博客 3207

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

AI唇形同步工具Video-retalking

Video-Retalking 是一种基于深度学习的视频编辑技术,可以根据音频内容自动调整视频中人物的嘴型和表情,使其与音频同步并更加自然。

weixin_47450720的博客 2631

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

【亲测免费】 推荐开源项目:MuseTalk——实时高质量唇同步技术

MuseTalk 是由腾讯音乐娱乐旗下 Lyra Lab 开发的一款实时高质量唇同步模型。该模型能够在 NVIDIA Tesla V100 上实现 30fps+ 的实时推理速度,适用于多种语言的音频输入,如中文、英文和日语。MuseTalk 可以与 MuseV 项目结合使用,形成一套完整的虚拟人解决方案,使静态图像或视频中的角色“活”起来。 ## 项目技术分析 ### 模型架构 MuseTa...

gitblog_00198的博客 2406

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

上一篇: 毕业设计:基于深度学习的图像分类识别系统 人工智能
下一篇: 毕业设计:基于深度学习的驾驶员分心行为检测系统 人工智能
Mini_hailang_IT
博客等级 码龄9年 5936粉丝 640原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值