HCIP-AI-EI Developer V2.5 第二章笔记
1. 计算机视觉概览
1.1 什么是计算机视觉?
计算机视觉(Computer Vision, CV)就是让机器 “看懂” 图像和视频,像人一样用眼睛观察世界、理解世界。人能一眼认出 “这是一只猫”“那是一辆车”,计算机视觉就是让机器也具备这种能力。
举个生活化例子:
你用手机拍一张照片,AI 自动给你美颜、识别人脸、生成表情包,这就是计算机视觉在工作。
你开车时,车载摄像头识别道路标线、红绿灯、行人,提醒你 “前方有行人,请注意避让”,这也是计算机视觉。
你刷短视频时,AI 自动给视频加特效、识别字幕、推荐相似内容,背后都是计算机视觉技术。
再用 “翻译” 类比:
人眼看到一张图片,大脑把像素信息翻译成 “猫”“狗”“树” 等概念。
计算机视觉就是把图像的像素数据,翻译成机器能理解的 “标签”“坐标”“语义”,比如 “这是一只猫,位置在图片左上角”。
1.2 计算机视觉的核心任务
计算机视觉的任务很多,我们用生活场景来分类:
-
图像分类:给整张图片打标签,比如 “这是猫”“这是狗”“这是风景”。
- 例子:手机相册自动分类 “人物”“风景”“美食”,就是图像分类。
- 类比:你看到一张照片,直接说 “这是火锅”,不用管火锅里有什么菜。
-
目标检测:找出图片里的所有物体,标出位置和类别,比如 “图片里有一只猫(坐标 x1,y1,x2,y2)、一辆车(坐标 x3,y3,x4,y4)”。
- 例子:自动驾驶识别道路上的行人、车辆、红绿灯,就是目标检测。
- 类比:你看到一张火锅照片,不仅说 “这是火锅”,还指出 “这里有肥牛、那里有金针菇”。
-
语义分割:给每个像素打标签,区分不同物体的边界,比如 “这部分像素是猫,那部分像素是背景”。
- 例子:美颜相机里的 “磨皮”“瘦脸”,就是先分割出人脸区域,再对区域内的像素做处理。
- 类比:你看到一张火锅照片,把每个菜的区域都圈出来,肥牛是一块,金针菇是一块,互不重叠。
-
实例分割:比语义分割更细,区分同一类别的不同个体,比如 “这是猫 1,那是猫 2”。
- 例子:监控摄像头识别 “这是张三,那是李四”,就是实例分割。
- 类比:你看到一张火锅照片,把两盘肥牛分别圈出来,标注 “肥牛 1”“肥牛 2”。
-
图像生成:根据文字或噪声,生成新的图像,比如 “输入‘一只橘猫在草地上睡觉’,AI 生成一张对应的图片”。
- 例子:AI 绘画工具(Midjourney、 Stable Diffusion)、表情包生成,都是图像生成。
- 类比:你根据朋友的描述 “一只橘猫在草地上睡觉”,在纸上画出来。
-
图像检索:根据一张图片,找到相似的图片,比如 “拍一张美食照片,找到同款美食的做法视频”。
- 例子:淘宝 “拍立淘”,拍一张衣服照片,找到同款商品,就是图像检索。
- 类比:你看到一张好看的壁纸,去网上搜 “类似的壁纸”。
1.3 计算机视觉的发展历程
我们用 “手机拍照” 的进化来类比计算机视觉的发展:
-
传统计算机视觉(2012 年之前):靠人工提取特征,比如 “边缘”“角点”“纹理”,再用传统机器学习分类,就像早期的功能机拍照,只能拍模糊的照片,识别能力很弱。
- 例子:早期的人脸识别,只能识别正脸、光线好的照片,侧脸、戴口罩就认不出来。
- 类比:你用胶卷相机拍照,只能靠手动调光圈、快门,拍出来的照片模糊,细节少。
-
深度学习时代(2012 年之后):AlexNet 模型出现,用卷积神经网络(CNN)自动提取特征,效果远超传统方法,就像智能手机拍照,自动美颜、HDR,拍出来的照片清晰,识别能力大幅提升。
- 例子:现在的人脸识别,侧脸、戴口罩、光线暗都能识别,甚至能识别双胞胎。
- 类比:你用智能手机拍照,自动优化光线、肤色,拍出来的照片清晰,细节丰富。
-
大模型时代(2020 年之后):Transformer 模型、多模态大模型出现,能同时处理图像、文本、语音,实现 “图文理解”“视频理解”,就像现在的旗舰手机拍照,能识别场景、自动生成文案、一键修图。
- 例子:GPT-4V、文心一言,能根据图片回答问题,比如 “这张图片里的猫是什么品种?”“这道菜怎么做?”。
- 类比:你用旗舰手机拍照,不仅能拍得清晰,还能自动识别 “这是火锅”,生成 “火锅的做法” 文案。
2. 数字图像处理基础
2.1 什么是数字图像?
数字图像就是把真实世界的图像,拆成一个个小方块(像素),用数字表示每个方块的颜色和亮度,就像把一张纸裁成无数个小格子,每个格子涂一种颜色,拼起来就是完整的图像。
举个例子:
一张 28x28 的手写数字图片,就是 28 行、28 列,共 784 个像素,每个像素用 0-255 的数字表示亮度(0 是黑色,255 是白色)。
一张彩色图片,每个像素用三个数字表示(R、G、B),分别代表红色、绿色、蓝色的强度,范围 0-255,比如 (255,0,0) 是纯红色,(0,255,0) 是纯绿色,(0,0,255) 是纯蓝色。
生活化类比:
数字图像就像 “十字绣”,每个格子就是一个像素,用不同颜色的线绣出来,拼起来就是完整的图案。
黑白图像是 “单色十字绣”,只有黑色和白色;彩色图像是 “三色十字绣”,用红、绿、蓝三种线混合出所有颜色。
2.2 图像的基本属性
-
分辨率:图像的像素数量,比如 1920x1080(1080P)、3840x2160(4K),分辨率越高,图像越清晰,细节越多,就像十字绣的格子越多,图案越精细。
- 例子:同样一张照片,1080P 分辨率看起来清晰,480P 分辨率就模糊,因为像素少了。
- 类比:同样大小的纸,格子越多,能绣的细节越多,图案越清晰。
-
位深度:每个像素用多少位二进制表示颜色,比如 8 位(256 色)、24 位(1677 万色),位深度越高,颜色越丰富,就像十字绣的线颜色越多,能调出的颜色越细腻。
- 例子:8 位图像只有 256 种颜色,看起来有 “色块”;24 位图像有 1677 万种颜色,看起来和真实世界一样。
- 类比:线颜色越多,能调出的渐变颜色越细腻,图案越逼真。
-
通道:图像的颜色通道,黑白图像只有 1 个通道(亮度),彩色图像有 3 个通道(R、G、B),还有带透明度的 4 通道(RGBA),就像十字绣的线,单色只有 1 种线,三色有 3 种线。
- 例子:把彩色图片的 R 通道单独拿出来,就是一张只有红色信息的灰度图;G 通道就是只有绿色信息的灰度图。
- 类比:把三色十字绣的红线单独抽出来,就是一张只有红色的图案。
-
图像格式:存储图像的文件格式,常见的有 JPG、PNG、BMP、GIF:
- JPG:有损压缩,体积小,适合照片,不支持透明。
- PNG:无损压缩,体积大,支持透明,适合图标、截图。
- BMP:无压缩,体积最大,画质最好,适合专业处理。
- GIF:支持动画,颜色少,适合表情包。
- 类比:不同的图像格式就像不同的包装方式,有的包装小(JPG),有的包装结实(PNG),有的能装动画(GIF)。
2.3 图像的数学表示
数字图像本质上是二维矩阵(黑白图像)或三维矩阵(彩色图像),每个元素就是一个像素的数值。
黑白图像:形状为 (高度, 宽度) 的二维矩阵,比如 28x28 的手写数字图像,矩阵里的每个元素是 0-255 的整数。
彩色图像:形状为 (高度, 宽度, 通道数) 的三维矩阵,比如 224x224 的彩色猫图片,矩阵里的每个元素是 (R,G,B) 三个 0-255 的整数。
举个具体例子:一张 3x3 的黑白图片,像素如下:
plaintext
255 200 100
150 0 50
75 125 255
这张图片的矩阵就是:
plaintext
[[255, 200, 100],
[150, 0, 50],
[ 75, 125, 255]]
其中 0 是黑色,255 是白色,数值越大,亮度越高。
生活化类比:
图像矩阵就像 “棋盘”,每个格子就是一个像素,格子里的数字就是颜色的深浅,数字越大,颜色越浅(白色),数字越小,颜色越深(黑色)。
3. 图像预处理技术
3.1 为什么要做图像预处理?
图像预处理就是在把图像喂给模型之前,先 “整理” 一下图像,让模型更容易学习,就像你做饭之前,先洗菜、切菜,让食材更容易烹饪。
举个例子:
一张模糊、光线暗、歪歪扭扭的猫图片,模型很难识别出 “这是猫”;预处理之后,把图片变清晰、调亮、摆正,模型就能轻松识别。
一张尺寸不一的图片,有的是 1080P,有的是 480P,预处理之后统一成 224x224,模型才能处理。
生活化类比:
图像预处理就像 “给照片修图”,磨皮、调亮、裁剪、旋转,让照片更好看,也让 AI 更容易识别。
3.2 常见的图像预处理技术
3.2.1 尺寸调整(Resize)
把图像调整到模型需要的尺寸,比如 224x224、28x28,就像把大照片裁剪成小照片,或者把小照片放大成大照片。
方法:最近邻插值、双线性插值、双三次插值,本质就是 “用周围的像素,计算新像素的数值”。
例子:把一张 1080x1920 的照片,调整成 224x224,方便输入到 CNN 模型里。
类比:把一张大的十字绣,缩小成小的十字绣,用周围的格子颜色,计算新格子的颜色。
3.2.2 归一化(Normalization)
把像素数值从 0-255,缩放到 0-1 或 - 1-1 之间,让模型更容易训练,就像把不同单位的长度,都转换成米,方便计算。
方法:像素值 = 原始像素值 / 255,把 0-255 缩放到 0-1;或者 像素值 = (原始像素值 - 127.5) / 127.5,缩放到 - 1-1。
例子:原始像素值是 255,归一化后是 1;原始像素值是 0,归一化后是 0。
类比:把不同身高的人,都缩放到 0-1 之间,方便比较谁更高。
3.2.3 灰度化(Grayscale)
把彩色图像转换成黑白图像,减少计算量,就像把彩色照片变成黑白照片,只保留亮度信息。
方法:灰度值 = 0.299*R + 0.587*G + 0.114*B,加权平均三个通道的数值,得到灰度值。
例子:把一张彩色猫图片,转换成黑白图片,只保留亮度信息,减少模型的计算量。
类比:把三色十字绣,变成单色十字绣,只保留亮度信息,绣起来更简单。
3.2.4 去噪(Denoising)
去除图像里的 “噪音”(比如模糊、颗粒感),让图像更清晰,就像把照片里的噪点去掉,让照片更干净。
方法:均值滤波、高斯滤波、中值滤波,本质就是 “用周围像素的平均值 / 中值,替换当前像素的数值”。
例子:一张模糊的老照片,用高斯滤波去噪,变得清晰一点。
类比:把十字绣里的 “错针”(噪音),用周围的线颜色替换,让图案更整齐。
3.2.5 增强(Enhancement)
提升图像的对比度、亮度,让细节更明显,就像把照片调亮、调对比度,让细节更清楚。
方法:直方图均衡化、伽马校正,本质就是 “重新分配像素的亮度值,让亮的更亮,暗的更暗”。
例子:一张光线暗的照片,用直方图均衡化,调亮之后,细节更明显。
类比:把十字绣里的浅颜色线,换成更深的颜色,让图案更突出。
3.2.6 数据增强(Data Augmentation)
对图像做 “变形”,增加训练数据的多样性,防止模型过拟合,就像把照片旋转、翻转、裁剪,生成新的照片,让模型学到更通用的规律。
- 常见操作:
- 旋转:把图片旋转 90 度、180 度、270 度。
- 翻转:水平翻转、垂直翻转。
- 裁剪:随机裁剪图片的一部分。
- 缩放:随机放大或缩小图片。
- 颜色扰动:随机调整 R、G、B 通道的数值。
- 例子:把一张猫图片,水平翻转、旋转 90 度,生成新的猫图片,让模型学到 “不管猫怎么摆姿势,都是猫”。
- 类比:把十字绣的图案,旋转、翻转、裁剪,生成新的图案,让你记住 “不管怎么摆,这都是同一个图案”。
4. 图像处理基本任务
4.1 图像滤波
图像滤波就是用一个 “小窗口”(卷积核),在图像上滑动,计算每个窗口内的像素平均值 / 加权值,替换当前像素的数值,本质就是 “模糊” 或 “锐化” 图像。
举个例子:
均值滤波:用 3x3 的窗口,计算窗口内 9 个像素的平均值,替换中心像素,用来去噪,但会模糊图像。
高斯滤波:用 3x3 的窗口,给中心像素更高的权重,周围像素更低的权重,去噪效果更好,模糊更少。
中值滤波:用 3x3 的窗口,取窗口内 9 个像素的中值,替换中心像素,适合去除 “椒盐噪声”(黑白点)。
Sobel 滤波:用 3x3 的窗口,计算图像的梯度,提取边缘,用来检测图像的边缘。
生活化类比:
图像滤波就像 “用海绵擦玻璃”,海绵就是卷积核,擦玻璃的过程就是滑动窗口,擦完之后,玻璃上的污渍(噪音)被去掉了,或者边缘更清晰了。
4.2 边缘检测
边缘检测就是找出图像里物体的边界,比如猫的轮廓、杯子的边缘,就像你用铅笔,把照片里物体的轮廓描出来。
常见的边缘检测算法:
Sobel 算子:计算图像的水平和垂直梯度,找出水平和垂直边缘。
Prewitt 算子:和 Sobel 类似,权重不同,效果差不多。
Canny 算子:最常用的边缘检测算法,先高斯滤波去噪,再计算梯度,再非极大值抑制,最后双阈值筛选,得到更干净的边缘。
举个例子:
一张猫图片,用 Canny 算子边缘检测,得到一张只有猫轮廓的黑白图,猫的轮廓清晰可见。
类比:你用铅笔,把猫的轮廓描出来,只留下线条,去掉内部的颜色和细节。
4.3 图像阈值化
图像阈值化就是把灰度图像,转换成黑白二值图像,比如把亮度大于阈值的像素变成白色(255),小于阈值的变成黑色(0),就像把照片里的亮部和暗部分开。
- 方法:
- 固定阈值:手动设置阈值,比如阈值 = 127,大于 127 的变成白色,小于 127 的变成黑色。
- 自适应阈值:根据窗口内的像素平均值,自动计算阈值,适合光线不均匀的图像。
- Otsu 阈值:自动计算最优阈值,让黑白两类像素的方差最大,适合双峰直方图的图像。
- 例子:一张手写数字图片,用 Otsu 阈值化,变成黑白二值图像,数字更清晰,方便识别。
- 类比:你把照片里的亮部涂成白色,暗部涂成黑色,只保留轮廓和细节。
4.4 图像形态学操作
图像形态学操作就是用一个 “结构元素”(卷积核),对二值图像做 “膨胀”“腐蚀”“开运算”“闭运算”,本质就是 “改变物体的形状”。
- 常见操作:
- 腐蚀:把物体的边缘 “削掉” 一点,让物体变小,适合去除小的噪点。
- 膨胀:把物体的边缘 “加厚” 一点,让物体变大,适合填充小的空洞。
- 开运算:先腐蚀,再膨胀,适合去除小的噪点,不改变物体的形状。
- 闭运算:先膨胀,再腐蚀,适合填充小的空洞,不改变物体的形状。
- 例子:一张二值手写数字图片,用开运算,去掉数字周围的小噪点,让数字更清晰。
- 类比:你用橡皮擦,把物体的边缘擦掉一点(腐蚀),或者用画笔,把物体的边缘加粗一点(膨胀)。
4.5 图像金字塔
图像金字塔就是把图像不断缩小,生成不同尺寸的图像,像金字塔一样,底层是原图,上层是缩小后的图,本质就是 “多尺度表示”。
- 方法:
- 高斯金字塔:先高斯滤波,再下采样(每隔一个像素取一个),生成缩小后的图像。
- 拉普拉斯金字塔:用高斯金字塔的上层图像,上采样(插值)后,和下层图像做差,得到细节信息。
- 例子:用高斯金字塔,把一张 224x224 的图片,缩小成 112x112、56x56、28x28,生成 4 层金字塔。
- 类比:你把一张大照片,不断缩小,生成不同尺寸的小照片,像金字塔一样,从下到上越来越小。
5. 特征提取和传统图像处理算法
5.1 什么是特征?
特征就是图像里的关键信息,比如边缘、角点、纹理、颜色,就像你识别一个人,看 “脸型、眼睛、鼻子、发型”,这些就是特征。
传统图像处理算法,就是手动提取这些特征,再用机器学习分类,就像你手动告诉模型 “看脸型、眼睛、鼻子”,让模型根据这些特征识别。
5.2 常见的传统特征提取算法
5.2.1 边缘特征(Edge Features)
用 Sobel、Canny 算子提取边缘,描述物体的轮廓,就像你用铅笔描出物体的轮廓。
例子:识别猫和狗,边缘特征能描述 “猫的耳朵尖、狗的耳朵圆”。
类比:你看一个人的轮廓,就能大概知道是谁。
5.2.2 角点特征(Corner Features)
用 Harris、Shi-Tomasi 算子提取角点,描述物体的拐角,就像你看桌子的四个角。
例子:识别书本,角点特征能描述 “书本的四个角”,方便定位书本的位置。
类比:你看一个桌子的四个角,就能知道桌子的形状和位置。
5.2.3 纹理特征(Texture Features)
用 LBP(局部二值模式)、GLCM(灰度共生矩阵)提取纹理,描述物体的表面质感,就像你摸布料,知道是棉布还是丝绸。
例子:识别猫和狗,纹理特征能描述 “猫的毛更软、狗的毛更硬”。
类比:你摸一块布,通过纹理,知道是棉布还是丝绸。
5.2.4 颜色特征(Color Features)
用颜色直方图、颜色矩提取颜色,描述物体的颜色分布,就像你看一个苹果,知道是红色的。
例子:识别苹果和梨,颜色特征能描述 “苹果是红色的,梨是黄色的”。
类比:你看一个水果,通过颜色,知道是苹果还是梨。
5.2.5 SIFT/SURF 特征
SIFT(尺度不变特征变换)、SURF(加速稳健特征)是更高级的特征,能在不同尺度、旋转、光照下,稳定提取特征,适合图像匹配、检索。
例子:用 SIFT 特征,把两张不同角度的猫图片,匹配到一起,找到对应的关键点。
类比:你看两张不同角度的同一个人照片,通过脸上的关键点(眼睛、鼻子、嘴巴),认出是同一个人。
5.3 传统图像处理算法的局限性
传统图像处理算法,需要手动设计特征,依赖专家经验,而且特征的泛化能力差,遇到复杂场景就失效,就像你手动告诉模型 “看脸型、眼睛、鼻子”,但遇到戴口罩、侧脸的人,就认不出来了。
举个例子:
传统算法识别猫和狗,只能提取 “边缘、颜色、纹理” 等简单特征,遇到 “橘猫、黑猫、折耳猫” 等不同品种,就容易认错。
深度学习算法(CNN)能自动提取更复杂的特征,比如 “猫的胡须分布、眼神神态”,准确率更高。
生活化类比:
传统算法就像 “你教孩子认人,只告诉孩子‘看脸型、眼睛’”,孩子遇到戴口罩的人,就认不出来了。
深度学习算法就像 “孩子自己看 1000 张不同人的照片,自己总结出‘不管戴不戴口罩、侧脸还是正脸,都能认出这个人’”。
6. 卷积神经网络和图像识别
6.1 什么是卷积神经网络(CNN)?
卷积神经网络(Convolutional Neural Network, CNN)是专门处理图像数据的神经网络,灵感来自于人眼的视觉皮层,能自动提取图像的特征,就像人眼一样,从简单的边缘,到复杂的纹理,再到完整的物体。
CNN 的核心是卷积层,用一个 “卷积核”(小窗口)在图像上滑动,计算局部特征,就像你用放大镜,在照片上一点点看细节。
6.2 CNN 的核心层
6.2.1 卷积层(Convolutional Layer)
卷积层的作用是提取图像的局部特征,比如边缘、角点、纹理,就像你用放大镜,在照片上看局部细节。
卷积核:一个小窗口(比如 3x3、5x5),里面有一组权重参数,用来计算局部特征。
卷积操作:把卷积核放在图像上,逐像素滑动,计算卷积核和对应图像区域的 “点积”,得到一个新的像素,就是特征图。
例子:用 3x3 的边缘检测卷积核,在猫图片上滑动,得到一张边缘特征图,只保留猫的轮廓。
类比:你用放大镜,在照片上一点点看,看到的局部细节,就是卷积层提取的特征。
6.2.2 池化层(Pooling Layer)
池化层的作用是降维,减少特征图的尺寸,保留关键信息,就像你把一张大照片,缩小成小照片,只保留关键细节。
- 常见池化:
- 最大池化(Max Pooling):取窗口内的最大值,保留最显著的特征。
- 平均池化(Average Pooling):取窗口内的平均值,保留平均特征。
- 例子:把 224x224 的特征图,用 2x2 的最大池化,缩小成 112x112,保留关键特征,减少计算量。
- 类比:你把一张大照片,缩小成小照片,只保留关键细节,比如猫的眼睛、鼻子,去掉背景的细节。
6.2.3 激活层(Activation Layer)
激活层的作用是加入非线性,让 CNN 能处理复杂的图像,就像你给直线 “掰弯”,让它能拟合更复杂的规律。
常用激活函数:ReLU(最常用),输入 > 0 时输出输入,输入 <0 时输出 0,像 “过滤器”,只保留有用的特征。
例子:卷积层输出的特征图,经过 ReLU 激活,过滤掉没用的负特征,只保留有用的正特征。
类比:你听老师讲课,只记住有用的知识点,没用的废话直接忽略。
6.2.4 全连接层(Fully Connected Layer)
全连接层的作用是把提取的特征,映射到最终的分类结果,就像你把看到的细节,汇总成 “这是一只猫” 的判断。
例子:经过卷积层、池化层提取的特征,经过全连接层,映射到 10 个神经元,对应手写数字 0-9 的概率。
类比:你看到猫的眼睛、鼻子、耳朵、胡须,汇总成 “这是一只猫” 的判断。
6.3 经典的 CNN 模型
6.3.1 LeNet-5(1998)
最早的 CNN 模型,用来识别手写数字,结构简单:输入层→卷积层→池化层→卷积层→池化层→全连接层→输出层。
例子:输入 28x28 的手写数字图片,输出 10 个数字的概率,准确率很高。
类比:小学阶段的模型,能处理简单的手写数字识别。
6.3.2 AlexNet(2012)
深度学习时代的开端,在 ImageNet 图像分类比赛中夺冠,比传统算法准确率高 30%,结构更深:输入层→5 个卷积层→3 个全连接层→输出层。
特点:用 ReLU 激活函数、Dropout 正则化、数据增强,首次证明深度学习在图像识别上的优势。
例子:输入 224x224 的彩色图片,输出 1000 个类别的概率,能识别猫、狗、汽车等复杂物体。
类比:初中阶段的模型,能处理复杂的图像分类任务。
6.3.3 VGGNet(2014)
结构更规整,所有卷积核都是 3x3,池化层都是 2x2,深度从 11 层到 19 层,越深准确率越高。
特点:用小卷积核堆叠,提取更复杂的特征,准确率比 AlexNet 更高。
例子:VGG16 有 16 层,VGG19 有 19 层,在 ImageNet 比赛中取得很好的成绩。
类比:高中阶段的模型,能处理更复杂的图像分类任务。
6.3.4 ResNet(2015)
解决了 “深层网络退化” 的问题,引入 “残差连接”,让深层网络更容易训练,深度能到 50 层、101 层、152 层。
特点:残差连接,让信息直接跳过几层,避免梯度消失,深层网络准确率更高。
例子:ResNet50 有 50 层,在 ImageNet 比赛中夺冠,现在是计算机视觉的基础模型。
类比:大学阶段的模型,能处理非常复杂的图像分类任务。
6.4 CNN 在图像识别中的应用
- 手写数字识别:用 LeNet-5、CNN 识别手写数字,准确率能到 99% 以上,比如 MNIST 数据集。
- 图像分类:用 AlexNet、VGGNet、ResNet 识别猫、狗、汽车等 1000 个类别,比如 ImageNet 数据集。
- 人脸识别:用 CNN 提取人脸特征,再用分类器识别,比如 FaceNet、ArcFace,能识别双胞胎、戴口罩的人。
- 物体检测:用 Faster R-CNN、YOLO、SSD,在图像中找出所有物体,标出位置和类别,比如自动驾驶、监控。
- 图像分割:用 U-Net、FCN,给每个像素打标签,比如医学图像分割、语义分割。
生活化类比:
CNN 就像 “一个聪明的孩子”,看了 1000 万张图片,自己总结出 “猫的特征、狗的特征、汽车的特征”,能轻松识别各种复杂的图像。
7. 生成对抗网络和图像生成
7.1 什么是生成对抗网络(GAN)?
生成对抗网络(Generative Adversarial Network, GAN)是让两个神经网络 “互相对抗”,一个生成图像,一个判别图像,最后生成的图像能以假乱真。
GAN 由两个部分组成:
- 生成器(Generator):输入噪声或文本,生成假图像,就像 “画家”,画假画。
- 判别器(Discriminator):输入图像,判断是真的还是假的,就像 “鉴定师”,鉴别画的真假。
训练过程:
生成器努力生成更逼真的假图像,骗过判别器。
判别器努力更准确地鉴别真假图像,不被生成器骗过。
最后,生成器生成的假图像,能以假乱真,判别器分不清真假。
生活化类比:
生成器是 “造假者”,判别器是 “警察”,造假者努力造更逼真的假币,警察努力更准确地鉴别假币,最后造假者造的假币,警察分不清真假。
7.2 GAN 的核心原理
GAN 的训练过程,就是两个神经网络的 “零和博弈”,目标是达到 “纳什均衡”:
生成器的目标:最小化判别器的准确率,让判别器分不清真假。
判别器的目标:最大化自己的准确率,能准确鉴别真假。
最后,生成器生成的图像,和真实图像的分布一致,判别器的准确率是 50%(瞎猜)。
举个例子:
生成器输入随机噪声,生成一张猫图片,判别器判断 “这是假的”,生成器调整参数,生成更逼真的猫图片。
判别器输入真猫图片和假猫图片,学习鉴别真假,准确率提升。
重复这个过程,最后生成器生成的猫图片,和真猫图片几乎一样,判别器分不清。
7.3 经典的 GAN 模型
7.3.1 DCGAN(2015)
把 CNN 引入 GAN,用卷积层和反卷积层构建生成器和判别器,生成的图像更清晰,是 GAN 的基础版本。
例子:生成 64x64 的人脸、猫、狗图片,效果不错。
类比:初级造假者,能造清晰的假币。
7.3.2 CycleGAN(2017)
实现 “无配对图像转换”,比如把马转换成斑马、把夏天的照片转换成冬天的照片,不需要成对的训练数据。
例子:输入一张马的图片,生成一张斑马的图片;输入一张夏天的风景照,生成一张冬天的风景照。
类比:造假者能把 “马” 变成 “斑马”,不需要先有斑马的照片。
7.3.3 StyleGAN(2018)
能生成超高分辨率的人脸图片(1024x1024),还能控制生成的人脸的风格,比如年龄、性别、发型、表情。
例子:生成一张 “20 岁的金发美女” 的图片,或者 “50 岁的胡子大叔” 的图片,细节逼真。
类比:高级造假者,能造超高分辨率、风格可控的假币。
7.3.4 Stable Diffusion(2022)
基于扩散模型的图像生成模型,能根据文本描述,生成高质量的图像,比如 “一只橘猫在草地上睡觉”“一座漂浮在云端的城堡”。
特点:用文本编码器,把文字转换成向量,再输入扩散模型,生成对应的图像。
例子:输入 “一只橘猫在草地上睡觉,阳光明媚,画风是宫崎骏”,生成一张对应的图片。
类比:顶级造假者,能根据文字描述,造任何风格的假币。
7.4 GAN 在图像生成中的应用
- AI 绘画:用 Stable Diffusion、Midjourney,根据文本描述生成图像,比如插画、海报、表情包。
- 图像修复:用 GAN 修复破损的老照片、模糊的图片,比如把模糊的人脸变清晰。
- 图像转换:用 CycleGAN,把马转换成斑马、把夏天转换成冬天、把黑白照片转换成彩色。
- 超分辨率:用 SRGAN,把低分辨率的图片,放大成高分辨率的图片,比如把 480P 的视频,放大成 4K。
- 数据增强:用 GAN 生成更多的训练数据,防止模型过拟合,比如生成更多的猫图片,训练图像分类模型。
生活化类比:
GAN 就像 “一个天才画家”,能根据你的描述,画出任何风格、任何内容的画,而且画得和真的一样。
第二章核心知识点总结
- 计算机视觉:让机器 “看懂” 图像,核心任务有图像分类、目标检测、语义分割、图像生成等,是 AI 的重要分支。
- 数字图像:由像素组成的二维 / 三维矩阵,黑白图像是二维矩阵,彩色图像是三维矩阵,分辨率、位深度、通道是基本属性。
- 图像预处理:在喂给模型之前,整理图像,包括尺寸调整、归一化、灰度化、去噪、增强、数据增强,让模型更容易学习。
- 图像处理基本任务:滤波、边缘检测、阈值化、形态学操作、图像金字塔,是传统图像处理的基础,用来提取特征、整理图像。
- 传统特征提取:手动提取边缘、角点、纹理、颜色等特征,依赖专家经验,泛化能力差,适合简单场景。
- 卷积神经网络(CNN):专门处理图像的神经网络,核心是卷积层、池化层、激活层、全连接层,能自动提取特征,准确率远超传统算法,经典模型有 LeNet-5、AlexNet、VGGNet、ResNet。
- 生成对抗网络(GAN):让生成器和判别器互相对抗,生成以假乱真的图像,核心是 “零和博弈”,经典模型有 DCGAN、CycleGAN、StyleGAN、Stable Diffusion,应用于 AI 绘画、图像修复、图像转换等。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐

所有评论(0)