基于Transformer的detr目标检测算法思路分析
[YOLO系列④] YOLOv5模型训练与流程解析
[YOLO系列③] YOLOv3和YOLOv4优化策略
[YOLO系列②] YOLOv2十大改进点解析
[YOLO系列①] 物体检测评估指标和YOLO-v1实现思路
OpenCV之目标追踪
1.目标追踪
目标追踪(Object Tracking)是指在视频序列中持续追踪目标的位置,这是计算机视觉中的核心难点,其核心挑战包括遮挡、光照变化和快速运动。在视频分析、自动驾驶、智能监控、人机交互等领域中应用广泛。
1.按任务类型分类
- 单目标追踪(SOT, Single Object Tracking):只追踪一个初始帧中给定的目标,典型方法如:
- Siamese-based Tracking(孪生网络)
- Transformer-based Tracking
- 多目标追踪(MOT, Multi-Object Tracking):同时追踪多个目标,通常包括目标检测与数据关联两个阶段,典型方法如:
- 基于检测的跟踪(Tracking-by-Detection)
- 端到端方法
- 多摄像头追踪(MTMC, Multi-Camera Multi-Object Tracking):跨视角数据关联,更复杂的特征匹配,常结合ReID、时空建模、图神经网络等
2.传统目标追踪算法
除了基于深度学习的追踪算法,还有依赖传统的机器学习的目标追踪算法,它们适用于某些轻量级、实时或资源受限的场景(如嵌入式设备)。
OpenCV之停车场车位识别
1.实现流程
- 训练基于VGG16的迁移学习图像分类模型,使其能够分类每个车位有车或者没车
- 通过OpenCV处理停车场图片,分割成单个车位图像数据
- 基于训练模型识别并绘制出空车位
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 个神经元。
OpenCV之全景图像拼接
1.实现流程
通过提取图像中的特征点并匹配这些特征点来找到图像间的对应关系,再通过透视变换(Homography)将两幅图像拼接成一幅完整的图像,大致流程:
- 特征点检测与描述
- 使用 SIFT 算法检测两张图像中的关键点,并计算特征描述子(局部特征向量)
- 特征匹配
- 采用 KNN 近邻匹配(k=2)找到两张图像间的最佳匹配点对
- 使用 比值测试(ratio test) 过滤掉低质量的匹配点,减少误匹配
- 单应性矩阵计算
- 通过 RANSAC 算法 计算 单应性矩阵 (Homography, H),剔除误匹配点
- 单应性矩阵用于 透视变换,使一张图像对齐另一张图像
- 图像变换与拼接
- 利用 cv2.warpPerspective() 对图像A进行透视变换,使其尽可能与图像B对齐
- 将图像B放入最终结果中,合成拼接图像
- 可视化匹配结果
- 在两张图像上绘制匹配点连线,帮助观察特征匹配的效果
2.相关算法
1.SIFT(尺度不变特征变换)
SIFT (Scale-Invariant Feature Transform) 是一种 关键点检测和描述算法,能够在 不同尺度、旋转、光照变化 下仍然保持稳定的特征匹配。