pytorch入门物体检测算法

Posted 啊~小 l i

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pytorch入门物体检测算法相关的知识,希望对你有一定的参考价值。

R-CNN

  • 使用启发式搜索算法来选择锚框
  • 使用预训练模型对每个锚框抽取特征
  • 使用一个SVM来对类别分类
  • 训练一个线性回归模型来预测边缘框
输入的图片
CNN
Categroy prediction
Bounding box prediction

锚框大小不一致,怎么使得这些锚框变为一个批量?
解决:RoI
兴趣区域(RoI)池化层

  • 给定一个锚框,均匀分割成n×m块,输出每块里的最大值
  • 不管锚框多大,总是输出nm个值

Fast RCNN

  • 使用CNN对图片抽取特征
  • 使用RoI池化层对每个锚框生成固定长度特征
  • 不需要SVM
输入的图片
CNN
RoI pooling
Dense layer
Categroy prediction
Bounding box prediction

Faster R-CNN

  • 使用一个区域提议网络来替代启发式搜索来获得更好的锚框

Mask R-CNN

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

总结

  • R-CNN是最早的,也是最有名的一类基于锚框和CNN的目标检测算法
  • Fast/Faster R-CNN持续提升性能
  • Faster R-CNN和Mask R-CNN是在最要求高精度的场景下常用算法

SSD(单发多框检测)

生成锚框

  • 对每一个像素为中心生成锚框
  • 给定n个大小s1,s2,……,和m个高宽比,那么生成n+m-1个锚框,其大小和高宽比为:
    (s1,r1),(s2,r1),……,(sn,r1),(s1,r2),……,(s1,rm)

SSD模型

  • 一个基础网络来抽取特征,然后多个卷积层来减半高宽
  • 在每段都生成锚框
    • 底部段来拟合小物体,顶部段来拟合大物体
  • 对每个锚框预测类别和边缘检测

总结

  • SSD通过单神经网络来检测模型
  • 以每个像素为中心的产生多个锚框
  • 在多个段的输出上进行多尺度的检测

YOLO

  • SSD中锚框大量重叠,因此浪费了很多计算
  • YOLO将图片均匀分成S×S个锚框(锚框没有重叠)
  • 每个锚框预测B个边缘框
  • 后续版本有持续改进

参考李沐深度学习:跟李沐学AI

以上是关于pytorch入门物体检测算法的主要内容,如果未能解决你的问题,请参考以下文章

物体检测算法:R-CNN,SSD,YOLO 动手学深度学习v2 pytorch

FCOS论文复现:通用物体检测算法

华为云ModelArts入门开发(完成物体分类物体检测)

物体检测object detection object recognition和coco数据集 动手学深度学习v2 pytorch

计算机视觉中的物体检测方法

如何快速入门深度学习目标检测?