11.1 基础概念及图像表示
11.1.1 数字图像根基
概念 | 描述 | 典型值/示例 |
像素 | 作为图像的最小构成单元 | 在 1920×1080 分辨率的图像中,蕴含约 207 万像素 |
色彩空间 | 一种颜色的编码模式 | 常见如 RGB(具备 3 个通道)、HSV(基于色相与饱和度) |
量化深度 | 体现单通道颜色的精确程度 | 通常有 8 比特(取值范围 0 - 255)、16 比特(取值范围 0 - 65535) |
11.1.2 图像预处理
灰度化公式:
- 高斯滤波核:
def gaussian_kernel(size=3, sigma=1):
# 生成一维线性空间,用于后续构建二维网格
ax = np.linspace(-(size - 1) / 2, (size - 1) / 2, size)
# 利用一维线性空间创建二维网格坐标
xx, yy = np.meshgrid(ax, ax)
# 依据高斯函数公式计算高斯核矩阵
kernel = np.exp(-(xx ** 2 + yy ** 2) / (2 * sigma ** 2))
# 对高斯核矩阵进行归一化处理
return kernel / kernel.sum()
11.2 传统视觉手段
11.2.1 特征检测算法
- Harris角点检测:
- SIFT特征描述符:
11.2.2 图像分割
- 大津阈值法(Otsu阈值法):
def otsu_threshold(hist):
# 计算直方图元素总和
total = hist.sum()
# 初始化类间方差最大值和对应的阈值
current_max, threshold = 0, 0
# 遍历所有可能的阈值
for t in range(1, len(hist)):
# 计算前景和背景的像素总数
w0 = hist[:t].sum()
w1 = hist[t:].sum()
# 计算前景的平均灰度值,若前景像素总数为零则平均灰度值为零
mu0 = np.sum(np.arange(t) * hist[:t]) / w0 if w0 > 0 else 0
# 计算背景的平均灰度值,若背景像素总数为零则平均灰度值为零
mu1 = np.sum(np.arange(t, len(hist)) * hist[t:]) / w1 if w1 > 0 else 0
# 计算类间方差
var_between = w0 * w1 * (mu0 - mu1) ** 2
# 如果当前类间方差大于之前记录的最大值,则更新最大值和对应的阈值
if var_between > current_max:
current_max, threshold = var_between, t
# 返回使类间方差最大的阈值
return threshold
11.3 深度学习模型
11.3.1 卷积神经网络
- 卷积运算:
- 经典架构对比:
模型 | 深度 | 创新亮点 | Top - 5准确率 | 时代特性 |
AlexNet | 8 | ReLU激活函数与多GPU训练 | 84.7% | 2012年ImageNet竞赛折桂之作 |
ResNet50 | 50 | 残差连接机制 | 93.3% | 有效化解梯度消失难题 |
EfficientNet | 复合缩放策略 | 深度、宽度与分辨率协同调校 | 94.7% | 实现资源效率的革命性跨越 |
11.3.2 目标检测
- YOLOv5模型架构:
- 损失函数:
11.4 三维视觉
11.4.1 立体匹配
视差计算:
- 点云生成:
def disparity_to_depth(disparity, baseline, focal_length):
"""
此函数用于将视差转换为深度。通过结合基线长度和焦距信息,利用给定的视差值计算对应的深度值。
参数:
disparity (float): 输入的视差值。
baseline (float): 基线长度,即两个相机光心之间的距离。
focal_length (float): 相机的焦距。
返回:
float: 计算得出的深度值。
"""
return baseline * focal_length / (disparity + 1e-6)
11.4.2 NeRF神经渲染
- 体积渲染公式:
11.5 应用系统
11.5.1 人脸识别系统——处理流程:
- 人脸检测(采用MTCNN算法)
- 关键点定位(实施68点检测)
- 特征提取(运用ArcFace方法)
- 相似度比对(借助余弦距离度量)
11.5.2 自动驾驶感知——多传感器融合:
11.6 前沿方向
11.6.1 视觉大模型——SAM分割模型:
# 从segment_anything库中导入SamPredictor类
from segment_anything import SamPredictor
# 初始化SamPredictor对象,将预训练的SAM模型传递给它
predictor = SamPredictor(sam_model)
# 为预测器设置待处理的图像
predictor.set_image(image)
# 利用预测器进行预测,传入点坐标和点标签
# 函数返回分割掩码、分数和日志its,此处仅保留分割掩码
masks, _, _ = predictor.predict(point_coords=points, point_labels=labels)
11.6.2 生成式视觉——Stable Diffusion模型:
- 应用场景:
- 图像修复:对受损或有瑕疵的图像进行修复与完善。
- 风格迁移:实现图像风格的转换与迁移。
- 超分辨率重建:达成图像的超分辨率重建,提升图像清晰度与质量。
小结
计算机视觉的核心技术涵盖以下关键方面:
- 特征表示层面,历经从手工特征到深度学习特征表示的显著演进。
- 理解范畴上,实现了从二维图像理解迈向三维场景重建的跨越。
- 模型发展态势为,从专用模型朝着通用大模型的方向不断推进。
- 任务融合维度,达成了判别式任务与生成式任务的有机融合。
关键词:卷积核、感受野、非极大抑制、视差图、扩散模型。