文章目录
- 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中一些开源生成式模型,展示各种功能和效果,具体展示了如下一些应用:
-
Unconditional generation 无条件生成:调用google/ddpm-celebahq-256模型,输入一个随机噪音图,生成一个人脸图。
a. -
Text-to-image 文本生成图像:调用stabilityai/sdxl-turbo模型,输入一个文本提示,生成一张高清图像。
a. -
Image-to-image 图像生成图像:输入一张简练的图像+文本提示,生成一张复杂的图像。
a. -
Inpainting 图像修补:提供一张原图+mask区域图+文本提示,生成一张新图。
a. -
视频生成:基于文本提示,直接生成视频。基于一张图片,生成一张该图片的动态视频。
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 图像修补。流程大概如下:
- 找一张汽车图像
- 用SAM预训练模型把图像中的汽车和背景分割出来。
- 然后把汽车、背景的掩码图、生成新背景的提示词,一起输给stable diffusion预训练模型,从而生成一张新图。效果如下:
a.
b. 提示词:
i. prompt = “a car driving on Mars. Studio lights, 1970s” # 定义正面提示词,描述图像生成的场景为“火星上行驶的汽车,带有摄影棚灯光,70年代风格”
ii. negative_prompt = “artifacts, low quality, distortion” # 定义负面提示词,排除图像中的“失真、低质量或杂乱无章的元素”