当前位置: 首页 > news >正文

优达学城 Generative AI 课程3:Computer Vision and Generative AI

文章目录

  • 1 官方课程内容自述
      • 第 1 课:图像生成简介
      • 第 2 课:计算机视觉基础
      • 第 3 课:图像生成与生成对抗网络(GANs)
      • 第 4 课:基于 Transformer 的计算机视觉模型
      • 第 5 课:扩散模型
      • 第 6 课(项目):使用补全技术进行 AI 照片编辑
  • 2 练习
    • 2.1 Introduction to Image Generation
      • 1 Face Recognition with Eigenfaces and DLIB.ipynb
      • 2 Generative Adversarial Network: training.ipynb
      • 3 Using a State-Of-The-Art (SOTA) GANs.ipynb
    • 2.2 Transformer-Based Computer Vision Models
      • Image Segmentation with SAM (Segment Anything Model).ipynb
    • 2.3 Diffusion Models
      • 1 build-a-DDPM.ipynb(重点)
      • 2 Diffusion models and the diffusers library from hugginface.ipynb
  • 3 项目:基于SAM和stable diffusion对图像进行背景替换

在这里插入图片描述

1 官方课程内容自述

学习计算机如何处理和理解图像数据,并利用最新的生成式人工智能模型创造新图像的能力。


第 1 课:图像生成简介

在本课中,您将定义图像生成,并理解其在人工智能和机器学习中的相关性。


第 2 课:计算机视觉基础

了解计算机如何“看”图像,并使用经典的图像处理技术,如图像转换、降噪等,执行关键的图像处理任务。


第 3 课:图像生成与生成对抗网络(GANs)

探索计算机视觉领域中的生成式人工智能工具,学习它们如何被评估。了解什么是生成对抗网络(GANs)及其生成图像的方式。


第 4 课:基于 Transformer 的计算机视觉模型

在本课中,我们将探索 Vision Transformers 模型及其工作原理。我们还将研究 DALL-E、DINO 和 SAM 等视觉 Transformers 模型。


第 5 课:扩散模型

学习 Transformer 的基本原理。然后,通过创建扩散算法,并使用 Huggingface Diffusers 生成和处理图像。


第 6 课(项目):使用补全技术进行 AI 照片编辑

在本项目中,您将利用生成式人工智能处理一幅著名画作,替换背景,并与 Stable Diffusion 生成的图像结合进行编辑。


2 练习

2.1 Introduction to Image Generation

1 Face Recognition with Eigenfaces and DLIB.ipynb

内容总结:一个人脸识别项目,评估基于传统视觉的Eigenfaces人脸识别方法与基于深度学习的DLIB库人脸识别方法。人脸数据集是Labeled Faces in the Wild (LFW),13,233 images of 5,749 people。本项目只用1183 images of 22 people这么点人来测试。

Eigenfaces and DLIB 简介:

Eigenfaces: 一种基于主成分分析(PCA)的经典人脸识别方法。通过提取训练集中人脸图像的主要特征,将人脸表示为线性组合的特征脸,用于识别和分类。

DLIB: 一种基于深度学习的人脸识别库。DLIB 提供了预训练模型,可用于检测人脸特征点并提取人脸的 128 维特征嵌入向量,通过比较这些向量的距离进行人脸匹配和识别。

最终结果:Eigenfaces方法精度0.46,DLIB库精度:0.98。

2 Generative Adversarial Network: training.ipynb

内容总结:完整实现一个GAN网络。数据集是CIFAR-10 数据集中的汽车类别,网络结构就是简单的卷积和转置卷积。数据增强和训练技巧用到:颜色变换、平移变换、随机遮挡、随机翻转、label smoothing、DiffAugment。

3 Using a State-Of-The-Art (SOTA) GANs.ipynb

内容总结:下载基于GAN方法的SOTA级生成模型StyleGAN-3,直接使用预训练模型体验一下生成的图像的效果。

2.2 Transformer-Based Computer Vision Models

Image Segmentation with SAM (Segment Anything Model).ipynb

内容总结:调用SAM的预训练模型,学会使用并体验其语义分割功能。

2.3 Diffusion Models

1 build-a-DDPM.ipynb(重点)

内容总结:从零实现2020年经典的DDPM算法,包括训练、生成、可视化。感觉质量非常高,在学习10423课程时,我就用的这个代码练习。

2 Diffusion models and the diffusers library from hugginface.ipynb

内容总结:本代码主要是调用(自动下载预训练模型)hugginface中一些开源生成式模型,展示各种功能和效果,具体展示了如下一些应用:

  1. Unconditional generation 无条件生成:调用google/ddpm-celebahq-256模型,输入一个随机噪音图,生成一个人脸图。
    a. 在这里插入图片描述

  2. Text-to-image 文本生成图像:调用stabilityai/sdxl-turbo模型,输入一个文本提示,生成一张高清图像。
    a. 在这里插入图片描述

  3. Image-to-image 图像生成图像:输入一张简练的图像+文本提示,生成一张复杂的图像。
    a. 在这里插入图片描述

  4. Inpainting 图像修补:提供一张原图+mask区域图+文本提示,生成一张新图。
    a. 在这里插入图片描述

  5. 视频生成:基于文本提示,直接生成视频。基于一张图片,生成一张该图片的动态视频。
    a. 在这里插入图片描述

3 项目:基于SAM和stable diffusion对图像进行背景替换

AI-Photo-Editing-with-Inpainting.ipynb

内容概述:虽说是个大项目,但内容不多,跟上个练习大差不差,就是调用hugginface相关库中SAM模型(facebook/sam-vit-base)、stable diffusion模型(diffusers/stable-diffusion-xl-1.0-inpainting-0.1),实现Inpainting 图像修补。流程大概如下:

  1. 找一张汽车图像
  2. 用SAM预训练模型把图像中的汽车和背景分割出来。
  3. 然后把汽车、背景的掩码图、生成新背景的提示词,一起输给stable diffusion预训练模型,从而生成一张新图。效果如下:
    a. 在这里插入图片描述

b. 提示词:
i. prompt = “a car driving on Mars. Studio lights, 1970s” # 定义正面提示词,描述图像生成的场景为“火星上行驶的汽车,带有摄影棚灯光,70年代风格”
ii. negative_prompt = “artifacts, low quality, distortion” # 定义负面提示词,排除图像中的“失真、低质量或杂乱无章的元素”

http://www.lryc.cn/news/459065.html

相关文章:

  • UE5 C++ 通过绑定编辑器事件实现控制柄顶点编辑
  • 云计算ftp 服务器实验
  • node.js服务器基础
  • 2-SAT 问题详解:逻辑约束与图论的结合
  • 使用NetTopologySuite读写gpkg文件
  • 什么是http?列出常见方法并解他们?
  • 通过修改注册表来提高导出图像的分辨率(PPT尝试)
  • OpenCV 环境配置
  • 使用通义千问模拟ChatGPT-o1进行思考,并以类似于ChatGPT-o1的形式输出
  • 维生素对于生活的重要性
  • STM32学习--4-1 OLED显示屏
  • 原生 App 上架 Mac App Store 过程总结
  • [实时计算flink]双流JOIN语句
  • metahuman如何导入UE5
  • Python知识点:基于Python技术,如何使用TensorFlow进行自动驾驶模型训练
  • Django的请求与响应
  • [java]Iterable<Integer> 和Iterator<Integer>的区别和用法
  • JavaScript进行数据可视化:D3.js入门
  • 字符串拼接方法性能对比和分析
  • [Halcon矩阵] 通过手眼标定矩阵计算相机旋转角度
  • 推荐几本编程入门书目
  • 每天一个数据分析题(五百零五)- 提升方法
  • 华为云ECS部署DR模式的LVS
  • 如何在 Jupyter Notebook 执行和学习 SQL 语句(上)
  • 数据结构-5.7.二叉树的层次遍历
  • RISC-V知识点目录
  • C++11 新特性 学习笔记
  • Go 语言中的格式化占位符
  • QD1-P5 HTML 段落标签(p)换行标签(br)
  • Django的模板语法