HCIP-AI-MindSpore Developer V1.0 第四章笔记
一、图像处理概览
1.1 计算机视觉与数字图像处理:从 “看见” 到 “看懂”
在 AI 领域里,图像本质是物理世界光影信息的数字化记录:光线照射物体后反射 / 折射,被相机 / 人眼捕捉,再转成离散的数字矩阵 —— 这就是计算机能处理的 “图像”。
数字图像处理(DIP):更偏向 “修图”,是对图像本身做数学变换,目标是优化图像质量、提取底层信息。比如给老照片去划痕、把模糊图变清晰、压缩图片体积。
计算机视觉(CV):更偏向 “识图”,是让机器像人一样理解图像里的内容,目标是从图像中感知语义、做出决策。比如识别图里是猫还是狗、圈出图里的汽车、给每个像素归类 “这是天空 / 草地 / 人”。
三者的区别与联系可以这样理解:
数字图像处理:是 “图像的化妆师”,只负责把图修好看、修规整,不关心图里是什么。
计算机图形学:是 “图像的画家”,从无到有画出图像(比如 3D 建模、游戏渲染)。
计算机视觉:是 “图像的侦探”,从图里找出线索、读懂含义。
AI:是 “大脑”,用深度学习把图像处理、视觉识别、生成创造整合起来,实现更智能的视觉交互。
1.2 计算机视觉的任务与应用:机器的 “眼睛”
计算机视觉的任务可以分成三个层次,从基础到高阶,像打怪升级:
1.2.1 底层任务:图像变换与预处理(修图)
这是所有视觉任务的基础,核心是让图像更 “干净、规整”,为后续分析铺路:
去噪:去掉图像里的噪点、划痕、模糊(比如老照片修复、监控视频降噪)。
增强:调亮 / 调暗、提升对比度、增强细节(比如夜间图像增强、医学影像清晰化)。
复原:把模糊、失真的图像还原成清晰状态(比如运动模糊复原、失焦图像修复)。
压缩:在不影响清晰度的前提下,减小图像体积(比如微信发图、视频流传输)。
1.2.2 中层任务:特征提取与识别(识图)
这是计算机视觉的核心,目标是从图像里找出 “关键特征”,区分不同物体:
边缘检测:找出物体的轮廓线(比如用 Canny 算子找猫的轮廓)。
角点检测:找出图像里的 “拐角”(比如书本的角、建筑的墙角)。
纹理分析:分析物体表面的纹理(比如树皮的粗糙感、丝绸的光滑感)。
形状描述:用数学方式描述物体形状(比如圆、矩形、不规则形状)。
1.2.3 高层任务:语义理解与决策(懂图)
这是 AI 时代的核心,目标是让机器理解图像里的 “含义” 和 “关系”:
图像分类:给整张图打标签(比如 “这是猫”“这是狗”“这是汽车”)。
目标检测:圈出图里所有物体的位置,同时告诉类别(比如 “图里有 2 只猫、1 只狗,分别在左上角和右下角”)。
语义分割:给每个像素归类(比如 “这个像素是天空,这个像素是草地,这个像素是人”)。
实例分割:在语义分割基础上,区分同类不同个体(比如 “这是猫 A,这是猫 B”)。
图像生成:从文字 / 噪声 / 草图里 “凭空创造” 图像(比如文生图、图生图、超分辨率)。
1.3 图像处理的三个层次:从 “手工” 到 “智能”
图像处理的发展,经历了三个技术层次,本质是从 “人工设计” 到 “数据驱动” 的演进:
1.3.1 信号处理层次(传统图像处理)
核心逻辑:把图像看成二维信号,用傅里叶变换、卷积、滤波等数学方法处理。
特点:原理透明、人工设计特征(比如手动写 Sobel 算子找边缘),但只能处理简单场景,复杂背景下效果极差。
代表技术:边缘检测(Canny)、霍夫变换(找直线 / 圆)、传统纹理分析。
1.3.2 统计学习层次(传统机器学习)
核心逻辑:用标注数据让机器学习特征规律,不再手动设计特征。
特点:数据驱动,但仍需人工提取基础特征(比如 SIFT、HOG),再喂给 SVM、随机森林等分类器,泛化能力有限。
代表技术:HOG+SVM 做人脸检测、SIFT 做图像匹配。
1.3.3 深度学习层次(端到端智能)
核心逻辑:端到端(End-to-End)—— 直接输入原始图像,输出最终结果,中间特征提取全由神经网络自动完成。
特点:自动学习从底层像素到高层语义的特征,泛化能力极强,能处理复杂、遮挡、多变的真实场景。
代表技术:CNN(卷积神经网络)、ViT(视觉 Transformer)、ResNet、U-Net、扩散模型。
二、图像预处理技术:AI 模型的 “洗脸仪式”
在 MindSpore 或任何 AI 框架中,预处理是模型训练成功的关键—— 如果图像 “脏、乱、差”,模型根本学不到有效规律,会收敛慢、准确率低甚至完全失效。
预处理可以理解为给图像 “洗脸、化妆、换统一制服”,让图像变成模型最喜欢的 “标准格式”。
2.1 格式标准化:统一图像的 “身份证”
不同来源的图像(手机拍照、监控截图、网络下载)格式千差万别,第一步要把它们 “拉回正轨”:
2.1.1 尺寸归一化(Resize)
问题:有的图是 1080×1920(手机竖图),有的是 256×256(缩略图),比例也各不相同。
操作:把所有图像缩放到模型要求的固定尺寸(比如 224×224、416×416),缩放时可选择保持宽高比或直接拉伸。
类比:运动会要求所有选手穿统一尺码的运动服,这样比赛才公平。
2.1.2 通道与数据类型标准化
- 问题:有的图是灰度图(单通道),有的是 RGB(三通道),有的是 RGBA(四通道带透明),数据类型可能是 uint8(0~255)或 float。
- 操作:
- 灰度图转三通道(复制单通道数据到三个通道)。
- RGBA 图去掉透明通道,只保留 RGB。
- 统一数据类型为 float32,方便后续计算。
- 类比:统一语言,所有人都说中文,否则无法沟通。
2.1.3 颜色空间转换
问题:视频 / 监控图像常是 YUV 格式,模型训练一般用 RGB 格式。
操作:把 YUV、HSV 等格式转成 RGB 格式。
类比:统一货币,所有人都用人民币,避免汇率换算麻烦。
2.2 图像增强:让模型 “见多识广”
数据增强(Data Augmentation) 是用现有数据 “无中生有” 创造更多训练数据,防止模型 “死记硬背”(过拟合),提升泛化能力。
2.2.1 几何增强(改变位置,不改变内容)
模拟真实场景中物体的位置变化,让模型学会 “不管物体在哪都能识别”:
翻转:水平 / 垂直翻转图像(比如把猫的图左右翻,猫还是猫,模型学到 “左右不是关键特征”)。
裁剪:随机裁剪图像的一部分(比如只留猫头,让模型学会 “看局部也能识别”)。
旋转:旋转 90°/180°/ 任意角度(模拟物体倒立、侧躺)。
缩放:放大 / 缩小图像(模拟物体远近变化)。
平移:图像整体上下 / 左右移动(模拟物体在画面里的位置偏移)。
2.2.2 像素增强(改变外观,模拟环境变化)
模拟光照、天气、环境的变化,让模型在不同光线、环境下都能准确识别:
亮度调整:调亮 / 调暗图像(模拟白天 / 夜晚、强光 / 弱光)。
对比度调整:拉亮亮部、压暗暗部,增强图像层次感。
饱和度调整:调整颜色鲜艳程度(模拟不同色温的光线)。
噪声添加:给图像加高斯噪声 / 椒盐噪声(模拟拍摄时的颗粒感、信号干扰)。
模糊处理:用高斯滤波 / 均值滤波让图像模糊(模拟运动模糊、失焦)。
2.3 归一化与标准化:让数据 “住进舒适区”
这一步是为了让训练更稳定、收敛更快,避免梯度爆炸 / 消失。
2.3.1 像素值归一化(Normalization)
操作:把 0~255 的像素值除以 255,映射到 0~1 之间;或减 127.5 再除以 127.5,映射到 -1~1 之间。
原因:神经网络的激活函数(Sigmoid/Tanh)对 0~1 或 -1~1 的数据最敏感,梯度传递更顺畅,训练更容易收敛。
类比:把 0~255 的菜价换算成 0~1 分,更容易精准计算性价比。
2.3.2 均值减与标准化(Standardization)
操作:用每个像素值减去数据集的均值(Mean Subtraction),再除以标准差(Std)。
例子:ImageNet 数据集的均值是 [123.675, 116.28, 103.53],训练时先减均值再除标准差。
原因:消除光照的整体影响,让数据中心归零,不同通道的数值范围一致,模型训练更稳定。
类比:所有人都脱掉 10cm 厚底鞋,再比身高,结果更公平准确。
三、基于 MindSpore 的图像处理实践 —— 图像分类
图像分类是计算机视觉的 “入门课”,目标是给整张图像打标签(比如 “猫”“狗”“汽车”),是所有视觉任务的基础。
3.1 MindSpore 图像处理生态:底层支撑
MindSpore 为图像处理提供了完整的工具链,让开发者不用从零造轮子:
3.1.1 昇腾芯片的算力底座
MindSpore 深度适配华为昇腾(Ascend)芯片(昇腾 910 训练、昇腾 310 推理):
达芬奇架构:专门为卷积、矩阵乘法优化,这正是图像处理最核心的计算。
AI Core:芯片内部的 AI 计算核心,能极速执行卷积、池化、激活等算子,训练速度比同级别 GPU 快 20%~50%。
类比:昇腾芯片是专门的 “赛车发动机”,比普通汽车发动机更适合跑 AI 赛道。
3.1.2 MindSpore Vision 模块
mindspore.dataset.vision 模块封装了几乎所有预处理操作,开箱即用:
常用算子:Resize(调整尺寸)、RandomCrop(随机裁剪)、RandomHorizontalFlip(随机水平翻转)、Normalize(归一化)、Decode(解码图像)。
优势:多线程异步处理、自动并行,处理海量图像数据时速度极快,不会成为训练瓶颈。
3.2 图像分类的完整流程
在 MindSpore 上,图像分类的标准流程分为 5 步:
3.2.1 数据准备与加载
- 收集数据集:比如猫狗大战(Cat&Dog)、花卉数据集(Flower)、CIFAR-10(10 类物体)。
- 划分数据集:按 8:2 或 7:3 分成训练集(训模型)和测试集(评估效果)。
- 数据加载与预处理:用
mindspore.dataset加载图像,应用尺寸归一化、增强、归一化等预处理操作。
3.2.2 网络模型搭建
传统方案:用简单 CNN(卷积神经网络),比如 LeNet(手写数字识别)、AlexNet(经典图像分类模型)。
现代方案:用预训练大模型微调(Fine-tuning),比如 ResNet50、MobileNet、ViT—— 这些模型在海量数据上预训练过,只需要在自己的数据集上微调几层,就能得到很好的效果。
MindSpore 优势:mindspore.applications 模块内置了 ResNet、MobileNet 等现成模型,直接加载就能用,不需要自己从零搭网络。
3.2.3 损失函数与优化器
损失函数:分类任务最常用 SoftmaxCrossEntropyWithLogits(交叉熵损失),衡量模型预测结果和真实标签的差距。
优化器:常用 Adam(自适应学习率,收敛快)、Momentum(稳定)、SGD(经典),用来更新模型参数,缩小损失。
3.2.4 模型训练与监控
- 封装训练:用
mindspore.train.Model类封装网络、损失函数、优化器。 - 启动训练:调用
model.train()方法,传入训练数据、epoch 数(训练轮数)。 - 监控指标:监控 loss(损失值,越小越好)和准确率(Accuracy,越高越好),确保模型在收敛(loss 下降、准确率上升)。
3.2.5 模型评估与推理
- 评估:用测试集评估模型的准确率,看模型在 unseen 数据上的表现。
- 推理:用训练好的模型对新图片做预测,比如上传一张猫的图,模型输出 “cat” 的概率。
- 部署:训练好的模型导出为 MindIR 格式,用 MindSpore Lite 部署到手机、边缘设备,实现离线图像分类。
3.3 CNN 为什么能看懂图像?
图像分类的核心是 CNN(卷积神经网络),它利用了图像的两个关键特性:
空间局部性:图像里的物体是由局部特征组成的(比如猫由眼睛、鼻子、耳朵组成),CNN 用卷积核(小窗口)滑动提取局部特征。
平移不变性:物体不管在画面里的哪个位置,特征都一样(比如猫在左上角和右下角都是猫),CNN 能自动识别这种位置变化。
CNN 的层级结构像 “层层递进的侦探”:
第一层卷积:提取边缘、颜色点(比如猫的轮廓线)。
中间卷积层:提取纹理、部件(比如猫的眼睛、耳朵)。
高层卷积层:提取整体语义(比如完整的猫脸)。
全连接层:把提取到的特征汇总,输出分类概率。
四、基于 MindSpore 的图像处理实践 —— 图像生成
图像生成是计算机视觉的 “高阶玩法”,目标是让机器 “从无到有创造图像”,是目前 AI 最热门的方向(比如文生图、图生图、超分辨率)。
4.1 图像生成的技术演进
图像生成技术经历了三代变革,从 “对抗” 到 “扩散”:
4.1.1 第一代:GAN(生成对抗网络)
核心思想:两个网络互相对抗 ——生成器(Generator) 负责造假图,判别器(Discriminator) 负责分辨真假,直到生成器能骗过判别器,造出以假乱真的图。
代表模型:DCGAN(基础 GAN)、StyleGAN(生成高清人脸)、CycleGAN(风格迁移,比如把马变斑马、把照片变油画)。
局限:训练不稳定,容易 “模式崩溃”(生成的图都长得一样),难以控制生成内容。
4.1.2 第二代:扩散模型(Diffusion Model)
核心思想:逐步去噪—— 先给图像加很多噪声,变成纯噪声图,再训练模型一步步把噪声去掉,还原成清晰图像。
代表模型:Stable Diffusion、DALL-E 2、MidJourney。
优势:训练稳定、生成质量高、可控性强(可以用文字提示控制生成内容),是目前文生图的主流技术。
4.1.3 第三代:Transformer 生成模型
核心思想:把图像看成 “像素序列”,用 Transformer 自注意力机制建模像素之间的关系,实现更灵活的生成(比如文生图、图生图、超分辨率)。
代表模型:ViT-VQGAN、Muse。
4.2 MindSpore 图像生成实践流程
在 MindSpore 上,图像生成的标准流程和图像分类类似,但更复杂:
4.2.1 数据准备与加载
数据集:常用 FFHQ(人脸)、LSUN(场景)、LAION(海量图文对)。
预处理:和图像分类类似,需要尺寸归一化、归一化、增强(比如随机裁剪、翻转)。
4.2.2 生成模型搭建
GAN 方案:搭建生成器(输入噪声 / 向量,输出图像)和判别器(输入图像,输出真假概率)。
扩散模型方案:搭建 UNet 结构(扩散模型的核心 backbone),学习噪声预测。
MindSpore 优势:支持自定义 Cell,内置了 UNet、Attention 等模块,方便搭建复杂生成网络。
4.2.3 损失函数与训练
GAN 损失:用对抗损失(Adversarial Loss),让生成器和判别器互相对抗训练。
扩散模型损失:用 MSE(均方误差),衡量模型预测的噪声和真实噪声的差距。
训练监控:监控生成图像的质量(比如 FID 指标,数值越小越好),看生成的图是否清晰、多样。
4.2.4 模型推理与部署
推理:输入文字提示 / 噪声 / 草图,模型生成图像(比如输入 “一只橘猫在草地上睡觉”,生成对应的图)。
部署:导出为 MindIR 格式,用 MindSpore Lite 部署到手机 / 边缘设备,实现离线文生图、超分辨率。
4.3 图像生成的典型应用
文生图:用文字描述生成图像(比如 Stable Diffusion、MidJourney)。
图生图:在原图基础上修改(比如给照片换风格、修复老照片、超分辨率放大)。
风格迁移:把图像转换成不同风格(比如把照片变成梵高油画、动漫风格)。
医学影像生成:生成医学影像,辅助医生训练、数据增强。
游戏 / 影视渲染:生成游戏素材、影视场景,提高创作效率。
第四章核心知识点总结
- 图像处理 vs 计算机视觉:
- 图像处理是 “修图”,优化图像质量;计算机视觉是 “识图 / 懂图”,让机器理解图像内容。
- 图像处理分三个层次:信号处理(传统)→ 统计学习(机器学习)→ 深度学习(端到端智能)。
- 图像预处理:
- 格式标准化:统一尺寸、通道、数据类型、颜色空间。
- 数据增强:几何增强(翻转 / 裁剪 / 旋转)、像素增强(亮度 / 对比度 / 噪声),让模型 “见多识广”。
- 归一化:把像素值映射到 0~1 或 -1~1,让训练更稳定、收敛更快。
- 图像分类(MindSpore 实践):
- 流程:数据准备 → 模型搭建 → 损失 / 优化器 → 训练监控 → 评估推理。
- 核心是 CNN,利用空间局部性和平移不变性,层层提取特征实现分类。
- MindSpore 优势:内置预训练模型、高效数据 pipeline、昇腾加速、一键部署。
- 图像生成(MindSpore 实践):
- 技术演进:GAN(对抗)→ 扩散模型(去噪)→ Transformer(序列建模)。
- 流程:数据准备 → 模型搭建 → 损失 / 训练 → 推理部署。
- 应用:文生图、图生图、风格迁移、超分辨率等。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)