1.基本使用

1.YOLOv5整体概述

YOLOv5本质上是一个经过大量优化的工程项目,不像前几代那样有对应的学术论文。它主要是在YOLOv4的基础上做了更实用的工程改进,让使用者能更轻松地应用到实际场景中。主要有以下特点:

  1. 工程优化为主
    • 没有官方论文,核心改进在于代码实现,比如训练效率、代码可读性
    • 相比YOLOv4,工程结构更简洁,配置更直观,适合直接拿来训练自己的数据
  2. 使用体验升级
    • 作者把数据增强、模型结构(如CSP、SPP模块)等复杂逻辑封装得很好,使用者几乎不用改代码
    • 支持混合精度训练,训练速度更快,对硬件要求更友好
阅读全文 »

1.YOLO-V3

1.网络架构改进

提升特征提取能力和训练稳定性​​

1.残差连接(Residual Connections)​

残差连接 是指在神经网络中将输入 x 直接跳跃连接(shortcut)加到输出 F(x) 上的那一条路径。数学形式如下:
$$
y = F(x) + x
$$

  • 其中:
    • x:输入
    • F(x):一系列卷积层后的输出(即“主干路径”)
    • x 是“旁路路径”或称“跳跃连接”
    • 两者相加形成最终输出 y
      这条连接就是 “残差连接”,它是 结构中的一条数据路径
阅读全文 »

1.YOLOv2改进概述

YOLOv2 的改进围绕 ​稳定性​(BN、位置预测)、灵活性​(全卷积、多尺度)、数据驱动​(锚框聚类)展开,同时通过结构优化(Darknet-19、Passthrough)平衡速度与精度,为后续YOLO版本再改进奠定基础。

如上图是YOLOv2的新特性和mAP(mean Average Precision,平均精度均值)之间的相关性。

阅读全文 »

1.物体检测评估指标

1.TP / FP / FN / TN

这四个指标是分类任务的基础:
TP(True Positive):预测为正,且是真正的正样本(比如检测到了一个人,且确实是人)
FP(False Positive):预测为正,但实际上是负样本(检测到了人,但其实是背景或别的物体)
FN(False Negative):实际是正样本,但没检测出来(图里有人,模型没发现)
TN(True Negative):负样本预测为负(对物体检测来说,通常不关注 TN)

举个例子

阅读全文 »

1.dlib

dlib 是一个用 C++ 编写的开源机器学习库,同时也提供了 Python 接口,它被广泛应用于计算机视觉和机器学习领域:

1.​人脸识别与生物特征分析

dlib 的人脸检测和关键点定位功能是其最突出的应用方向。通过预训练模型(如 HOG + SVM 或深度学习模型),dlib 可实现高效的人脸检测、68 个面部关键点定位(如眼睛、嘴唇、下巴等)

阅读全文 »

1.目标追踪

目标追踪(Object Tracking)是指在视频序列中持续追踪目标的位置,这是计算机视觉中的核心难点,其核心挑战包括遮挡、光照变化和快速运动。在视频分析、自动驾驶、智能监控、人机交互等领域中应用广泛。

1.按任务类型分类

  1. 单目标追踪(SOT, Single Object Tracking):只追踪一个初始帧中给定的目标,典型方法如:
    1. Siamese-based Tracking(孪生网络)
    2. Transformer-based Tracking
  2. 多目标追踪(MOT, Multi-Object Tracking):同时追踪多个目标,通常包括目标检测与数据关联两个阶段,典型方法如:
    1. 基于检测的跟踪(Tracking-by-Detection)
    2. 端到端方法
  3. 多摄像头追踪(MTMC, Multi-Camera Multi-Object Tracking):跨视角数据关联,更复杂的特征匹配,常结合ReID、时空建模、图神经网络等

2.传统目标追踪算法

除了基于深度学习的追踪算法,还有依赖传统的机器学习的目标追踪算法,它们适用于某些轻量级、实时或资源受限的场景(如嵌入式设备)。

阅读全文 »

1.实现流程

  1. 训练基于VGG16的迁移学习图像分类模型,使其能够分类每个车位有车或者没车
  2. 通过OpenCV处理停车场图片,分割成单个车位图像数据
  3. 基于训练模型识别并绘制出空车位

2.模型训练

1.VGG16

VGG16 是由牛津大学 Visual Geometry Group(VGG)在 2014 年提出的经典卷积神经网络(CNN)模型,主要用于图像分类任务。其核心特点是:

  • 结构简单但深度大:由 ​16 层​(13 个卷积层 + 3 个全连接层)组成,使用 ​3x3 小卷积核堆叠​(通过多层小卷积核模拟大感受野)。
  • ImageNet 竞赛的里程碑:在 2014 年 ImageNet 大规模视觉识别挑战赛(ILSVRC)中取得第二名(Top-5 错误率 7.3%),证明了深度网络对视觉任务的重要性。
  • 标准化设计:所有卷积层使用相同配置(3x3 卷积核,步长 1,填充 same),全连接层统一为 4096 个神经元。
阅读全文 »

1.实现流程

通过提取图像中的特征点并匹配这些特征点来找到图像间的对应关系,再通过透视变换(Homography)将两幅图像拼接成一幅完整的图像,大致流程:

  1. 特征点检测与描述
    • 使用 SIFT 算法检测两张图像中的关键点,并计算特征描述子(局部特征向量)
  2. 特征匹配
    • 采用 KNN 近邻匹配(k=2)找到两张图像间的最佳匹配点对
    • 使用 比值测试(ratio test) 过滤掉低质量的匹配点,减少误匹配
  3. 单应性矩阵计算
    • 通过 RANSAC 算法 计算 单应性矩阵 (Homography, H),剔除误匹配点
    • 单应性矩阵用于 透视变换,使一张图像对齐另一张图像
  4. 图像变换与拼接
    • 利用 cv2.warpPerspective() 对图像A进行透视变换,使其尽可能与图像B对齐
    • 图像B放入最终结果中,合成拼接图像
  5. 可视化匹配结果
    • 在两张图像上绘制匹配点连线,帮助观察特征匹配的效果

2.相关算法

1.SIFT(尺度不变特征变换)

SIFT (Scale-Invariant Feature Transform) 是一种 关键点检测和描述算法,能够在 不同尺度、旋转、光照变化 下仍然保持稳定的特征匹配。

阅读全文 »

1.OpenCV概述

OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉和图像处理库,主要用于 图像处理、视频分析、机器视觉、深度学习 等领域。它最初由 Intel 研发,现在由 OpenCV 组织 维护,目前支持 C++、Python、Java 等多种语言。擅长领域有:

  1. 图像处理
    • 去噪:去掉照片上的噪点,让图像更清晰
    • 平滑 & 锐化:模糊处理(比如美颜相机的磨皮)、增强边缘(让模糊的字变得更清楚)
    • 颜色调整:可以把彩色图转换成黑白图(灰度化),或者增强对比度
    • 图像分割:把图片中的不同区域分开,比如把人的头像从背景中抠出来(绿幕抠像)
  2. 物体检测与识别
    • 人脸检测:找到照片或视频里的人脸,并画出边框(Haar 级联分类器、DNN)
    • 车牌识别:用于交通监控,自动读取车牌号码
    • 目标检测:找出图片中的特定物体,比如识别商店里的商品、扫描条形码等
阅读全文 »

1.循环神经网络(RNN)

环神经网络(Recurrent Neural Network, RNN)也叫递归神经网络,是专门处理序列数据的神经网络架构,其核心思想是通过循环连接使网络具备“记忆”能力,从而构建序列中时序之间的依赖关系。而处理具有时序或顺序关系的数据(如语言、语音、基因序列等)的核心挑战是理解序列中的上下文依赖关系
RNN有隐藏状态(hidden state),可以保留和传递之前时刻的信息,也就是有记忆功能,从而可实现有上下文依赖性的数据处理:
通俗一点就像是人在读一句话:

  • 读到 “我” → 记住
  • 读到 “今天” → 结合前面的信息
  • 读到 “很” → 继续理解上下文
  • 读到 “开心” → 知道整体含义”我今天很开心“

1.RNN结构

RNN 通过隐藏状态(Hidden State) 存储历史信息,并通过时间步(Time Step)进行递归计算

  • 输入层:接收当前时间步的输入 $x_t$
  • 隐藏层:包含一个循环连接,用于存储历史信息:$h_t = f(W_h h_{t-1} + W_x x_t + b)$
  • 输出层:根据隐藏状态计算输出 $y_t$
阅读全文 »
0%