pytorch入门物体检测算法
Posted 啊~小 l i
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pytorch入门物体检测算法相关的知识,希望对你有一定的参考价值。
R-CNN
- 使用启发式搜索算法来选择锚框
- 使用预训练模型对每个锚框抽取特征
- 使用一个SVM来对类别分类
- 训练一个线性回归模型来预测边缘框
锚框大小不一致,怎么使得这些锚框变为一个批量?
解决:RoI
兴趣区域(RoI)池化层
- 给定一个锚框,均匀分割成n×m块,输出每块里的最大值
- 不管锚框多大,总是输出nm个值
Fast RCNN
- 使用CNN对图片抽取特征
- 使用RoI池化层对每个锚框生成固定长度特征
- 不需要SVM
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
物体检测object detection object recognition和coco数据集 动手学深度学习v2 pytorch