037、目标检测-算法速览

之------常用算法速览

目录

之------常用算法速览

杂谈

正文

[1.区域卷积神经网络 - R-CNN](#1.区域卷积神经网络 - R-CNN)

[2.单发多框检测SSD,single shot detection](#2.单发多框检测SSD,single shot detection)

3.yolo


杂谈

快速过一下目标检测的各类算法。


正文

1.区域卷积神经网络 - R-CNN

region_based CNN,奠基性的工作。

选择锚框是一个较为复杂的算法,来自于神经网络还没发展的时候;启发式算法选择出锚框后,每一个锚框当做一个图片,然后用预训练好的CNN抽取特征;然后训练SVM用来分类,训练一个回归模型来预测边缘框,具体是:

  1. 将每个提议区域的特征连同其标注的类别作为一个样本。训练多个支持向量机对目标分类,其中每个支持向量机用来判断样本是否属于某一个类别;

  2. 将每个提议区域的特征连同其标注的边界框作为一个样本,训练线性回归模型来预测真实边界框。

然而锚框的选择大小与比例是不一定的,这种情况下如何生成规则的训练batch呢,于是提出了RoI(region of interest),兴趣区域池化:

这个方法不会严格均匀地切割,而是会尽量按比例切割满足最后输出,看对应颜色:

Fast RCNN:

对于RCNN的加强,主要的改进是直接对整张图片抽特征而不是对锚框抽特征:

R-CNN的主要性能瓶颈在于,对每个提议区域,卷积神经网络的前向传播是独立的,而没有共享计算。 由于这些区域通常有重叠,独立的特征抽取会导致重复的计算。 Fast R-CNN 对R-CNN的主要改进之一,是仅在整张图象上执行卷积神经网络的前向传播。

搜到锚框之后再映射到CNN之后的feature map上:

再把特征图上的ROI展平投入到全连接层进行预测。

Faster R-CNN:

更进一步的改进是:

为了较精确地检测目标结果,Fast R-CNN模型通常需要在选择性搜索中生成大量的提议区域。 Faster R-CNN 提出将选择性搜索替换为区域提议网络(region proposal network),从而减少提议区域的生成数量,并保证目标检测的精度。

二分类预测锚框合理与不合理:

Mask R-CNN:

如果有像素级别的标号就用FCN来处理,提升原有的性能;roi pooling改为了roi align以避免像素级的误差:

比较贵,实用性不高:


2.单发多框检测SSD,single shot detection

单发步枪,只跑一遍,不需要两个网络。

生成锚框的办法:

然后的操作:

多个分辨率下去锚框然后用算法预测类别和边界框,参考上面RCNN的预测方法。

性能,更快但没那么准:

主要原因应该是没有什么改进?


3.yolo

you only live once:

you only look once:

每个锚框预测了多个边缘框,因为这样均匀分割的锚框可能会同时挨到多个真实边缘框。

后续通过细节改进进行提升,比如引入数据集真实框的先验知识之类的。

YOLO(You Only Look Once)是一种流行的实时目标检测系统,可以在图像或视频流中检测多个物体。YOLO的关键思想是将图像分成网格,并为每个网格单元预测边界框和类别概率。这使得YOLO能够在神经网络的单次前向传递中对多个物体进行预测,从而具有高效的计算能力。

YOLO算法的主要步骤包括:

  1. 输入图像:

    • YOLO接收输入图像并将其划分为网格。
  2. 网格划分:

    • 将图像划分为一个 S x S 的网格。每个网格单元负责预测对象,如果对象的中心落入该单元,则该单元负责预测该对象。
  3. 边界框预测:

    • 每个网格单元预测多个边界框,同时预测它们的置信度分数。这些边界框由(x,y,w,h)表示,其中(x,y)是边界框的中心,(w,h)是宽度和高度。
  4. 类别预测:

    • 每个边界框预测对象的不同类别的概率。
  5. 物体置信度分数:

    • YOLO为每个边界框预测一个物体置信度分数,表示该框内存在物体的可能性。
  6. 非极大值抑制:

    • 在进行预测后,会应用一种后处理步骤称为非极大值抑制,以过滤重复或低置信度的预测结果。它保留最有信心的预测结果并删除重叠显著的预测。
  7. 输出:

    • 最终输出是一个边界框列表,每个边界框关联着一个类别标签和置信度分数。

YOLO已经推出了几个版本,通过提高准确性和速度进行改进。一些知名的版本包括YOLOv1,YOLOv2(YOLO9000),YOLOv3和YOLOv4。每个版本都引入了架构改进,并解决了目标检测中的特定挑战。

值得注意的是,由于其实时处理能力,YOLO被广泛应用于自动驾驶车辆、监控和机器人等各种应用领域。YOLO的实现可在流行的深度学习框架(如TensorFlow和PyTorch)中找到,使其对研究人员和开发人员更易于接触和使用。


相关推荐
xp_xht1233 分钟前
Day1 概率机器学习 信息论
人工智能·机器学习·信息论
chuan.bai16 分钟前
Java RAG 实战(第 3 篇):从交互式聊天到多轮上下文
java·人工智能·macos·ai
雪隐20 分钟前
个人电脑玩AI-16让5060 Ti给你打工——MiniMax H3 提速实录:从"泡杯茶等视频"到"视频等你",一张 5060 Ti 的自我修养
前端·人工智能·后端
深兰科技23 分钟前
深兰科技亮相天津医疗器械创新生态大会,DeepAgent智能体赋能医疗医美并签约天津OPC项目
人工智能·科技·r语言·symfony·视觉大模型·深兰科技·deepagent智能体
cxr82824 分钟前
从“对象本体”到“关系本体”
人工智能·架构
shxjnpl27 分钟前
Whisper + CAM++ + 本地大模型:一套完全离线的AI会议处理链路
人工智能·机器学习·whisper
小润nature32 分钟前
AI 与嵌入式三时简报|早报
人工智能
今天AI了吗33 分钟前
MCP 协议打通 AI 与国产数据库,SQL 调优全流程一站式闭环
数据库·人工智能·sql
大任视点35 分钟前
“我与秦岭”主题征文与故事及“秦岭微镜头”短视频、摄影作品征集活动通知
大数据·人工智能·业界资讯
FBI HackerHarry浩37 分钟前
Pandas 库中用于分类变量独热编码(One-Hot Encoding)的函数 pd.get_dummies() 函数
开发语言·人工智能·python·pandas