当前位置: 首页 > news >正文

跟李沐学AI:目标检测的常用算法

区域神经网络R-CNN

使用启发式搜索算法来选择锚框 -> 使用预训练模型来对每个锚框抽取特征 -> 训练一个SVM对类别进行分类 -> 训练一个线性回归模型来预测边缘框偏移

 锚框大小不一,如何将不同的锚框统一为一个batch? -> 兴趣区域池化层

兴趣区域(RoI)池化层

给定一个锚框,将锚框均匀分割为n x m块,输出每块中的最大值。因此不管锚框多大,总是输出nm个值。

让每个锚框都可以变为一个形状相同的mini-batch。

Fast RCNN

与原本的RCNN相比,Fast R-CNN用来提取特征的卷积神经网络的输入是整个图像,而不是各个提议区域。Fast RCNN首先使用CNN对整个图片抽取特征得到feature map。

再将使用启发式搜索算法在原图片画出的锚框映射到feature map中。

随后使用Rol池化层对每个锚框生成固定长度的特征。

最后使用全连接层进行分类预测和偏移预测。

Faster R-CNN

使用一个区域提议网络来替代启发式搜索以得到更好的锚框。区域提议网络先粗糙地画出锚框,再将结果输入主网络。

二元类别预测用于预测当前锚框是否是一个高质量地锚框。边界框预测用于计算锚框和边缘框地偏差。

Mask R-CNN

如果有像素级别的标号,使用FCN来利用这些信息。

R-CNN总结

R-CNN是最早也是最有名一类地基于锚框和CNN地目标检测算法。

Fast/Faster R-CNN持续提升性能。

Fasster R-CNN和Mask R-CNN是在追求高精度场景下地常用算法。 

单发多框检测SSD(Single Shot Detection)

对每个像素,生成以它为中心的多个锚框。具体方法与上一节相同。

SSD模型

基本网络用于从输入图像中提取特征,因此它可以使用深度卷积神经网络。 单发多框检测论文中选用了在分类层之前截断的VGG现在也常用ResNet替代。我们可以设计基础网络,使它输出的高和宽较大。 这样一来,基于该特征图生成的锚框数量较多,可以用来检测尺寸较小的目标。

接下来的每个多尺度特征块将上一层提供的特征图的高和宽缩小(如减半),并使特征图中每个单元在输入图像上的感受野变得更广阔。

由于接近顶部的多尺度特征图较小,但具有较大的感受野,它们适合检测较少但较大的物体。底部则可以拟合小物体。

简而言之,通过多尺度特征块,单发多框检测生成不同大小的锚框,并通过预测边界框的类别和偏移量来检测大小不同的目标,因此这是一个多尺度目标检测模型。

SSD总结

SSD通过单神经网络检测模型

以每个像素为中心产生多个锚框

在多个段的输出上进行多尺度的检测

YOLO

SSD中的锚框大量重叠,因此浪费了很多计算。YOLO将图片平均分成SxS个锚框,如果一个标注的边界框的中心点落在某个锚框内,则该锚框负责预测这个边界框。每个锚框预测B个边缘框。边界框的预测包括中心点相对于网格左上角的偏移量(x, y),以及边界框的宽(w)和高(h)相对于整个图像的比例。边界框的预测包括中心点相对于网格左上角的偏移量(x, y),以及边界框的宽(w)和高(h)相对于整个图像的比例。每个网格还预测C个类别概率,C是所有可能类别的数量。

http://www.lryc.cn/news/425932.html

相关文章:

  • 基于UE5和ROS2的激光雷达+深度RGBD相机小车的仿真指南(一)---UnrealCV获取深度+分割图像
  • Java算法解析一:二分算法及其衍生出来的问题
  • 数学建模预测类—【一元线性回归】
  • 配置更加美观的 Swagger UI
  • 软件测试 - 基础(软件测试的生命周期、测试报告、bug的级别、与开发人员产生争执的调解方式)
  • RTX 4070 GDDR6显存曝光:性能与成本的平衡之选
  • canvas的基础使用
  • Windows 常用网络命令之 telnet(测试端口是否连通)
  • x264 编码器像素运算系列:asd8函数
  • 什么是AR、VR、MR、XR?
  • Epic Games 商店面向欧盟 iPhone 用户上线
  • 【计算机毕设项目】2025级计算机专业小程序项目推荐 (小程序+后台管理)
  • Fast API + LangServe快速搭建 LLM 后台
  • CSS继承、盒子模型、float浮动、定位、diaplay
  • 使用百度文心智能体创建AI旅游助手
  • 斗破C++编程入门系列之四:运算符和表达式
  • CVPR2024 | PromptAD: 仅使用正常样本进行小样本异常检测的学习提示
  • 文件批量上传,oss使用时间戳解决同名问题 以及一些sql bug
  • 机器学习——线性回归(sklearn)
  • Go 语言切片(Slice) 15
  • 嵌入式开发--STM32G030C8T6,写片上FLASH死机CFGBSY和写入出错
  • 通过Fiddler抓包保存网页上的视频(包括Bilibili、B站和其他视频站)亲测可用
  • 企业为什么需要安装加密软件
  • Spring Web MVC入门(下)
  • uniapp app中使用柱状图 折线图 圆环图和饼图
  • jmreport测试数据库出现 权限不足,此功能需要分配角色 解决方法
  • 这是啥设计模式-适配模式
  • 大语言模型(LLMs)Tokenizers详解
  • 分支-快排/归并---1
  • 代码随想录训练营 Day32打卡 动态规划 part01 理论基础 509. 斐波那契数 70. 爬楼梯 746. 使用最小花费爬楼梯