自动驾驶-2D目标检测

yolo及yolo的变体

anchor boxes (锚框)

intersection over union 并集交集

用于计算两个边界框的差异程度

bounding box predictions 边界框预测

non maximum suppression非极大值抑制

为了分离这些边界框并为每个对象获得单个边界框,我们使用IOU。这种获取单个边界框并分离不同边界框的技术称为非极大值抑制。分别对这些边界框应用非最大抑制

YOLO(You Only Look Once)是一种广泛使用的实时对象检测算法,因其速度快且性能优越而受到欢迎。YOLO的变体,如YOLOv2、YOLOv3和YOLOv4,进一步改进了算法的精度和效率。理解YOLO及其变体需要掌握几个关键概念:锚框(Anchor Boxes)、交并比(Intersection over Union, IoU)、边界框预测(Bounding Box Predictions)和非极大值抑制(Non-Maximum Suppression, NMS)。

YOLO及其变体

YOLO系列算法的基本思想是将对象检测问题转化为一个单阶段的回归问题,将输入图像分割成一个网格,每个网格单元直接预测对象的类别和边界框。YOLO的变体在多个方面进行了改进,例如:

  • YOLOv2:引入了批归一化、锚框、更多的预测边界框等技术。
  • YOLOv3:使用了多尺度特征图进行预测,引入了更深的网络结构和FPN(特征金字塔网络)。
  • YOLOv4:集成了许多最新的技术,例如CSPDarknet53主干网络、Mish激活函数、PANet路径聚合网络等。

锚框(Anchor Boxes)

锚框是预定义的一组矩形框,用于在图像中提供不同的比例和宽高比的初始边界框。这些锚框通过与预测的偏移量相结合,生成最终的边界框。YOLOv2及以后的版本使用锚框来提高检测精度和对不同大小和形状对象的适应能力。

如何生成锚框

锚框是在训练数据中通过K-means聚类或其他方法预定义的。每个锚框有一个固定的宽高比和尺寸,网络学习的是如何调整这些锚框以更好地匹配对象。

交并比(Intersection over Union, IoU)

IoU是衡量两个边界框重叠程度的指标,计算公式如下:

KaTeX parse error: Undefined control sequence: \[ at position 2: \̲[̲ \text{IoU} = \...

其中,交集(Intersection Area)是两个边界框重叠区域的面积,并集(Union Area)是两个边界框的总面积减去重叠区域的面积。IoU的取值范围是0到1,值越高表示两个边界框越相似。

边界框预测(Bounding Box Predictions)

在YOLO算法中,每个网格单元预测多个边界框(通常与锚框相关)。每个边界框预测包含以下信息:

  1. 中心坐标(x, y):相对于网格单元的位置。
  2. 宽度和高度(w, h):相对于锚框的尺寸。
  3. 置信度分数:该边界框包含对象的概率。
  4. 类别概率分布:该边界框中对象属于每个类别的概率。

非极大值抑制(Non-Maximum Suppression, NMS)

NMS用于从大量重叠的边界框中选择最优的边界框,步骤如下:

  1. 选择具有最高置信度分数的边界框
  2. 计算该边界框与其他边界框的IoU
  3. 删除IoU超过阈值的边界框(即重叠程度过高的边界框)
  4. 重复上述步骤,直到没有剩余的边界框

NMS的目的是减少重叠的预测框,只保留最有可能的框,从而提高检测的准确性。

关联与流程

  1. 图像输入:将输入图像分割成网格。
  2. 锚框生成:每个网格单元生成多个锚框。
  3. 边界框预测:每个锚框预测偏移量、置信度和类别。
  4. 计算IoU:用于评估预测边界框与真实边界框的重叠程度。
  5. 应用NMS:通过NMS选择最终的边界框,去除重叠框。
  6. 输出结果:最终检测结果包括图像中的对象类别和对应的边界框。

2D目标检测几乎是一个已经完成的任务,但是3D目标检测还需要进一步研究。https://www.kaggle.com/code/sakshaymahna/lyft-3d-object-detection-eda#Videos

相关推荐
2601_962293242 小时前
Python自动化统计团队工作量并生成可视化仪表盘的脚本方案【指导】
python·数据分析·自动化·可视化·仪表盘
2601_962293793 小时前
OCRmyPDF批处理脚本:使用Python自动化复杂OCR任务
python·自动化·批处理脚本·ocrmypdf·ocr任务
Java后端的Ai之路5 小时前
20、Python - 备忘录模式
开发语言·人工智能·python·外观模式·备忘录模式
2601_962077715 小时前
基于Python与NLP的新闻事件信息抽取实战:从NER到时空标准化
python·nlp·transformers·spacy·新闻事件抽取
JavaPub-rodert6 小时前
LangChain 从入门到 Agent 实战:用 Python 搭建一个真正能调用工具和知识库的 AI 助手
人工智能·python·langchain
郝学胜-神的一滴6 小时前
Qt 高级编程 045:坐标体系深度实战
开发语言·c++·windows·python·qt·程序人生
m0_380743877 小时前
给 OpenAI API 调用加上模型切换:GPT-5.1 和 Codex 的配置实践
人工智能·python·gpt
2601_962297487 小时前
在python3中、下列输出变量a的正确写法是_2020超星大数据Python免费答案
数据结构·python·算法·编程·字符串操作
“AI国潮设计-小江”7 小时前
Python实战 | SDXL精准控制“普宁英歌舞×星空蛋糕”IP落地,附核心Prompt与商用授权思路
开发语言·人工智能·python·prompt·aigc
公爵爱学习8 小时前
无人机视觉识别前序-Linux-YOLO安装
python·yolo·计算机视觉·conda·无人机