目标检测

news/2024/9/21 18:19:52/文章来源:https://www.cnblogs.com/erdong911/p/18424342

AlexNet
2012 年,AlexNet[4]的出现让全世界见 证了卷积神经网络(Convolutional Neural Networks, CNN)的强大特征学习能力,传统的手工设计特征方 式逐渐被取代,目标检测也随之进入深度学习时代。
Title:目标检测综述:从传统方法到深度学习

目标检测要求高准确率的分类,还需要精确的位置预测。先进的深度学习模型如区域卷积神经网络(R-CNN)及其变种(如 Fast R-CNN、FasterR-CNN、YOLO和 SSD等),不仅显著提高了检测的准确性,也极大提升了处理速度和效率。面临的挑战:特别是在处理复杂场景中的遮挡问题、提高小目标的检测率以及减少误检和漏检的准确性方面。

目标检测算法可以分为两大类:
1、双阶段检测器,首先生成潜在目标区域再进行分类和边界框回归。
2、单阶段检测器,则在一个步骤中同时预测类别和边界框,提供了更快的检测速度。
图片: https://uploader.shimo.im/f/y0uCLGau4ZhcZIuy.png!thumbnail?accessToken=eyJhbGciOiJIUzI1NiIsImtpZCI6ImRlZmF1bHQiLCJ0eXAiOiJKV1QifQ.eyJleHAiOjE3MjY5MTM4MzcsImZpbGVHVUlEIjoiZXJBZE12b3kxNml5d0szRyIsImlhdCI6MTcyNjkxMzUzNywiaXNzIjoidXBsb2FkZXJfYWNjZXNzX3Jlc291cmNlIiwidXNlcklkIjo4NDY1MzQ3MX0.LMTurGkVayM5RvDADonObG0y7j9sAI6JkrzbiAyLFao

非极大值抑制(NMS)
三大主要方法:
1)贪婪选择,
2)边界框聚合,核心理念在于将多个重叠的边界框融合或聚合成一个最终的检测结果
3)NMS 学习 ,核心理念是将NMS视为一个滤波器,用于对所有原始检测进行重新评分并 将 NMS 作为网络的一部分进行端到端的训练。

图片: https://uploader.shimo.im/f/Tjiftx8JyVt97d34.png!thumbnail?accessToken=eyJhbGciOiJIUzI1NiIsImtpZCI6ImRlZmF1bHQiLCJ0eXAiOiJKV1QifQ.eyJleHAiOjE3MjY5MTM4MzcsImZpbGVHVUlEIjoiZXJBZE12b3kxNml5d0szRyIsImlhdCI6MTcyNjkxMzUzNywiaXNzIjoidXBsb2FkZXJfYWNjZXNzX3Jlc291cmNlIiwidXNlcklkIjo4NDY1MzQ3MX0.LMTurGkVayM5RvDADonObG0y7j9sAI6JkrzbiAyLFao
双阶段检测算法
RCNN
RCNN通过结合区域提议CNN显著提高了物体检测的准确性.
慢的原因:卷积特征重复计算量太大(每张图片的预选框区域【约2000个】都会计算CNN特征)
图片: https://uploader.shimo.im/f/BuBSkSu52JP7Urb8.png!thumbnail?accessToken=eyJhbGciOiJIUzI1NiIsImtpZCI6ImRlZmF1bHQiLCJ0eXAiOiJKV1QifQ.eyJleHAiOjE3MjY5MTM4MzcsImZpbGVHVUlEIjoiZXJBZE12b3kxNml5d0szRyIsImlhdCI6MTcyNjkxMzUzNywiaXNzIjoidXBsb2FkZXJfYWNjZXNzX3Jlc291cmNlIiwidXNlcklkIjo4NDY1MzQ3MX0.LMTurGkVayM5RvDADonObG0y7j9sAI6JkrzbiAyLFao
SPP-Net
SPP-Net主要用于解决传统CNN无法处理不同尺寸输入图像的限制。
SPP-Net 的核心特性是其空间金字塔池化(SPP)层,该层位于卷积层之后,全连接层之前。SPP层通过在不同尺度上对特征图进行区域划分和池化操作(如最大池化),生成固定长度的特征向量,允许模型接受任意尺寸的输入图像。但是带来了网络设计的复杂性增加以及计算负担的提升。
两大改进
1、直接输入整图,所有区域共享卷积计算
先卷积得到特征图,再在特征图中进行选框。
2、引入空间金字塔池化
在特征图上按1x1, 2x2,4x4 三种方式划分块Bin,得到21个Bin,每个Bin内使用Max pooling 得到特征拼接在一起。
继承了R-CNN的剩余问题:
1、需要存储大量特征
2、复杂的多阶段训练
3、训练时间还是长(25.5h)
Fine-tune微调(16)+特征提取(5.5)+SVM/Bbox训练(4)
新问题:
SPP层之前的所有卷积层参数不能fine tune
Fast R-CNN
改进:
所有层都可以fine tune(使用了ROI,即只用了4x4这一种方式进行金字塔池化)
多任务损失
Faster R-CNN
Faster R-CNN = Fast R-CNN + RPN
Faster R-CNN这种模型是 R-CNN和 Fast R-CNN技术的继承者,主要通过区域提议网络来优化对象检测流程。
RPN是一种全卷积网络,可以实时从输入图像的深度特征图中生成对象的候选区域。这些候选区域后续通过更详细的网络结构进行精确的对象分类和边界框回归。
流程:
1、在 Faster R-CNN中,一旦 RPN生成了区域提议,这些提议就被送入下一个阶段的网络——一个Fast R-CNN检测器。
2、该检测器使用一个叫做RoI(Region of Interest)池化层的技术来从每个提议中提取固定大小的特征图。
3、这些特征图接着被用于确定提议中是否存在对象,并对其类别进行分类,同时调整提议的边界框以更精确地框定对象。
这一整合流程使得 Faster R-CNN能够以一种端到端的方式进行训练,提高了模型的学习效率和检测准确性。
Faster R-CNN缺陷:在处理小目标和复杂场景时仍面临挑战。
R-FCN
R-FCN基于 FasterRCNN的架构进行优化,结构如图所示。
R-FCN的训练和检测流程包括利用基础卷积网络提取特征,通过区域提议网络生成目标区域,以及使用得分图进行类别判断和位置精调。
图片: https://uploader.shimo.im/f/I9xp3zJpHgM1PaJb.png!thumbnail?accessToken=eyJhbGciOiJIUzI1NiIsImtpZCI6ImRlZmF1bHQiLCJ0eXAiOiJKV1QifQ.eyJleHAiOjE3MjY5MTM4MzcsImZpbGVHVUlEIjoiZXJBZE12b3kxNml5d0szRyIsImlhdCI6MTcyNjkxMzUzNywiaXNzIjoidXBsb2FkZXJfYWNjZXNzX3Jlc291cmNlIiwidXNlcklkIjo4NDY1MzQ3MX0.LMTurGkVayM5RvDADonObG0y7j9sAI6JkrzbiAyLFao
FPN网络特别适用于对象检测和语义分割任务,尤其是在处理不同尺寸的对象时表现出色。

FPN的主要创新在于它构建了一个多级特征金字塔,该金字塔能够有效地结合不同层级的特征,提供丰富的语义信息和细节信息,从而提高模型的识别能力。

FPN的架构包括自底向上的特征提取和自顶向下的特征融合两个主要部分。在自底向上的过程中,模型通过常规的卷积网络从输入图像中逐层抽取特征,形成一系列的特征图,这些特征图随着网络层级的加深而逐渐减小尺寸同时增加深度。达到顶层后,FPN通过自顶向下的路径引入横向连接,使用上采样技术将高层的精细特征向低层传递,与原有的浅层特征相结合,实现了多尺度特征的融合。

OverFeat 的架构采用了类似于 AlexNet 的结构,但进行了一些关键的改进和调整以适应多任务处理。

单阶段检测算法
YOLO系列
SSD
SSD的设计目标是在单次前向传递中同时预测对象的类别和位置,实现快速且准确的检测。
图片: https://uploader.shimo.im/f/ehVrP3a63xnTkS1Q.png!thumbnail?accessToken=eyJhbGciOiJIUzI1NiIsImtpZCI6ImRlZmF1bHQiLCJ0eXAiOiJKV1QifQ.eyJleHAiOjE3MjY5MTM4MzcsImZpbGVHVUlEIjoiZXJBZE12b3kxNml5d0szRyIsImlhdCI6MTcyNjkxMzUzNywiaXNzIjoidXBsb2FkZXJfYWNjZXNzX3Jlc291cmNlIiwidXNlcklkIjo4NDY1MzQ3MX0.LMTurGkVayM5RvDADonObG0y7j9sAI6JkrzbiAyLFao
YOLO (You Only Look Once)是一种基于回归思想的 one-stage 检测算法,是把检测问题转化为一个基于 深度学习的回归问题,使用神经网络对检测到的对象执行边界框的分类和预测。
yolov1
需求1:如何实现图像中多个目标的检测?
将图片设置为16个区域,每个区域用1个(c,x,y,w,h)去负责
图片: https://uploader.shimo.im/f/zYVTJkky1sIbbHqO.png!thumbnail?accessToken=eyJhbGciOiJIUzI1NiIsImtpZCI6ImRlZmF1bHQiLCJ0eXAiOiJKV1QifQ.eyJleHAiOjE3MjY5MTM4MzcsImZpbGVHVUlEIjoiZXJBZE12b3kxNml5d0szRyIsImlhdCI6MTcyNjkxMzUzNywiaXNzIjoidXBsb2FkZXJfYWNjZXNzX3Jlc291cmNlIiwidXNlcklkIjo4NDY1MzQ3MX0.LMTurGkVayM5RvDADonObG0y7j9sAI6JkrzbiAyLFao
c代表的是此区域包含目标的概率
需求2:同一个区域中包含多个目标怎么办?
2个类,one-hot就是【0,1】【1,0】

主干网络:darknet

创新点:把检测当作回归问题,用一个网络输出位置和类别,是 one-stage 的。
优点:回归问题流程较为简单,故检测速度较快 [4];与 FastR-CNN 相比,YOLO 预测背景出错的次数少了 一半,可以减少背景错误;训练集和测试集类型不同时,YOLO 的检测速度和精度较好,且应用于新领域也很 少出现崩溃的情况,较为稳定 [5]。
局限性:一个单元格只能预测两个框和一个类别,这种空间约束限制了预测的数量;识别物体位置精准 性差;YOLOv1 能够识别目标的上限为 49,因此 YOLOv1 不利于识别密集型目标和小目标,所以在较小的物 体和物体密集的场景中性能相对较差。
yolov2
创新点:YOLOv2 中,开发者通过批处理规范化、应用高分辨率分类网络、使用锚框预测边界框、多尺度 训练等方法提高检测性能;使用尺寸簇作为定位框来预测边界框;提出新的分类模型 Darknet-19,使用批归一 化稳定训练,提升了检测速度;提出 ImageNet 和 COCO 数据集的结合方法、对分类和检测数据进行联合训练 的方法,扩大了检测类别的数量,训练后的模型称为 YOLO9000。
优点:YOLOv1 的基础上提高了预测精度、速度、识别物体数目,每张图像的预测框由 98 个提升到超过 1000 个;通过使用更深层的卷积神经网络提高了准确性;YOLOv2 可以检测不同的对象类别多达 9000 种,并 且可以在各种图像尺寸下进行检测,在速度和精度之间的权衡很好。
局限性:YOLOv2 使用锚框来预测边界框,精度有小幅度下降。
YOLOv3
创新点:YOLOv3 的特征提取器使用 Darknet-53 网络结构来代替 Darknet-19 网络结构,利用特征金字塔 网络结构实现了多尺度检测。
优点:YOLOv3 头的空间金字塔池化和路径聚合网络(PAN),为单帧中的多个物体检测提供了最佳的速 度和准确性;应用 Darknet-53 网络结构,浮点运算更少,速度更高。
局限性:使用锚框 x、y 偏移预测,降低了模型稳定度;使用线性预测而不是逻辑预测,导致 mAP 下降两点。

YOLOv4
创 新 点:YOLOv4 通过创建一个 CNN 来 解 决 现 代 神 经 网 络 不 能 实 时 工 作、需 要 大 量 的 GPU 来 进行小批量的训练的问题,使 CNN 在传统 GPU 上实时运行,只需用一个传统 GPU 进行训练。使用 SelfAdversarialTraining(SAT)等多种技术进行数据增强;选用 CSPDarknet-53 为主干网络。在基础网络部分, YOLOv4 的整体架构与 YOLOv3 大致相同,但对各个子结构都进行了改进 [3]。
优点:YOLOv4 使用传统 GPU 就可以训练快速和准确的目标检测器;选用 CSPDarknet-53 为主干网络, 在保持高推理速度的同时仍具有较高精度;YOLOv4 在 COCO 数据集上的平均精度(AP)和帧率精度(FPS) 分别提高了 10% 和 12%[8]。
局限性:需要较高的计算资源:Yolov4 基于服务器进行检测,在嵌入式硬件设备中,不支持部分算法公 式;对小目标检测效果以及密集目标的检测效果不佳。
YOLOv5
创新点:融合了轻量级网络结构 GSConv,减小了模型的复杂程度。 优点:YOLOv5:2020 年,YOLOv5 发布。这个版本由 Ultralytics 开发,采用了一种轻量级的网络结构。 YOLOv5 的特点是快速、准确,支持实时目标检测和轻量级部署。
局限性:需要较高的计算资源:与 YOLOv4 相同,不适合嵌入式设备或者计算资源有限的环境;对小目标 检测效果不佳;对噪声和遮挡物的处理效果不佳:在处理噪声和遮挡物时可能会出现漏检的情况;与 YOLOv4 相比,YOLOv5 模型较大,这可能会对某些应用的资源需求造成限制。
1、网络结构
图片: https://uploader.shimo.im/f/1yX8DaHlnynk663z.png!thumbnail?accessToken=eyJhbGciOiJIUzI1NiIsImtpZCI6ImRlZmF1bHQiLCJ0eXAiOiJKV1QifQ.eyJleHAiOjE3MjY5MTM4MzcsImZpbGVHVUlEIjoiZXJBZE12b3kxNml5d0szRyIsImlhdCI6MTcyNjkxMzUzNywiaXNzIjoidXBsb2FkZXJfYWNjZXNzX3Jlc291cmNlIiwidXNlcklkIjo4NDY1MzQ3MX0.LMTurGkVayM5RvDADonObG0y7j9sAI6JkrzbiAyLFao

yolov5结果分析
1、混淆矩阵:混淆矩阵显示了分类模型的在进行预测时会对哪一部分产生混淆。它不仅可以让我们了解分类模型所犯的错误,更重要的是可以了解哪些错误类型正在发生。

图解:
图片: https://uploader.shimo.im/f/grEKpFsslkrl5Sqx.png!thumbnail?accessToken=eyJhbGciOiJIUzI1NiIsImtpZCI6ImRlZmF1bHQiLCJ0eXAiOiJKV1QifQ.eyJleHAiOjE3MjY5MTM4MzcsImZpbGVHVUlEIjoiZXJBZE12b3kxNml5d0szRyIsImlhdCI6MTcyNjkxMzUzNywiaXNzIjoidXBsb2FkZXJfYWNjZXNzX3Jlc291cmNlIiwidXNlcklkIjo4NDY1MzQ3MX0.LMTurGkVayM5RvDADonObG0y7j9sAI6JkrzbiAyLFao
2、性能评估指标
图片: https://uploader.shimo.im/f/JchAI5dOgc4uvEJq.png!thumbnail?accessToken=eyJhbGciOiJIUzI1NiIsImtpZCI6ImRlZmF1bHQiLCJ0eXAiOiJKV1QifQ.eyJleHAiOjE3MjY5MTM4MzcsImZpbGVHVUlEIjoiZXJBZE12b3kxNml5d0szRyIsImlhdCI6MTcyNjkxMzUzNywiaXNzIjoidXBsb2FkZXJfYWNjZXNzX3Jlc291cmNlIiwidXNlcklkIjo4NDY1MzQ3MX0.LMTurGkVayM5RvDADonObG0y7j9sAI6JkrzbiAyLFao
1)正确率(accuracy)
正确率是我们最常见的评价指标,这个很容易理解,就是被分对的样本数除以所有的样本数,通常来说,正确率越高,分类器越好;
数学公式: $ accuracy = \frac{TP+TN}{TP+TN+FP+FN} $

2)错误率(error rate)
错误率则与正确率相反,描述被分类器错分的比例,error rate = (FP+FN)/(P+N),对某一个实例来说,分对与分错是互斥事件,所以accuracy =1 - error rate;

3)灵敏度(sensitive)
sensitive = TP/P,表示的是所有正例中被分对的比例,衡量了分类器对正例的识别能力;

4)特效度(specificity)
specificity = TN/N,表示的是所有负例中被分对的比例,衡量了分类器对负例的识别能力;

5)精度(precision)
精度是精确性的度量,表示被分为正例的示例中实际为正例的比例,
数学公式: $ P = \frac{TP}{TP+FP} $

6)召回率(recall)
召回率是覆盖面的度量,度量有多个正例被分为正例,recall=TP/(TP+FN)=TP/P=sensitive,可以看到召回率与灵敏度是一样的。
数学公式: $ R = \frac{TP}{TP+FN} $

3、F1-Score
F1分数(F1-score)是分类问题的一个衡量指标。一些多分类问题的机器学习竞赛,常常将F1-score作为最终测评的方法。它是精确率和召回率的调和平均数,最大为1,最小为0。
数学公式: $ F1 = \frac{2PR}{P+R} $
YOLOv6
创新点:Yolov6 引入了一些新的技术来优化 YOLOv5 的性能,包括 PAN(PathAggregationNetwork)和 SAM(SpatialAttentionModule)等特征提取模块,以及一些新的数据增强方法和训练策略;设计了一个高效的 可重新参数化的主干——EfficientRep。
优点:相对于 YOLOv5 来说,Yolov6 在速度、准确率和效率等方面都有所提升 [9-10]。
局限性:在识别更小的物体时,精确度略有下降 [11]。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/801139.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

适用于 VitePress 的公告插件开发实记

开发了一个适用于 VitePress 站点的公告插件 vitepress-plugin-announcement前言 笔者维护的 VitePress 博客主题在近1年多的时间里集成了非常多功能,不少用户希望将里面的部分功能分离出来,方便在其它 VitePress 站点也可以独立使用。 其中分离的第一个组件类型的就是呼声较…

4 个

8 9 5 6 6 8 1 6

2024 CSP-S 游记

遗失星海超神摘要等放了假再补8.22 下午 \(huge\) 说要报名 \(CSP\) 的事情,把全网开了,光速上 \(w3\) 扒下照片然后又光速上 \(163\) 邮箱拿验证码然后就注册账号了,过了一会儿就看见教练给报好了 \(CSP-S\) 。拿 \(QQ\) 邮箱的需要验证码所以 \(huge\) 把手机发了下来,还…

基于 Qwen2.5-Coder 模型和 CrewAI 多智能体框架,实现智能编程系统的实战教程

Qwen2.5 开源的系列模型中,Qwen2.5-Coder 模型的推理能力技压群雄,本文集合 CrewAI 框架,让多智能体自己编写符合我们需求的程序……9 月 19 日,阿里开源了 Qwen2.5 系列大模型全家桶:除常规的语言模型 Qwen2.5 之外,还发布了专门针对编程的Qwen2.5-Coder模型和数学的 Qw…

CSP-S 初赛游记

乱游OI 生涯的最后一个赛季了,尽量记录一下吧。 前两天得知衡水今年没什么人参加,只有本部一个考,也省的到处跑了。 考前一天得知就在机房楼考,这下子成原生土著了,布局比教室都熟。晚上布置了考场。 考前上午体活,打了会羽毛球后回宿舍吃泡面,为啥热水水流这么大,应该…

docker阶段03 docker容器内hosts文件, DNS, 查docker空间占用, 部署自动化运维平台spug, 查看docker run启动参数命令

容器内部的hosts文件 容器会自动将容器的ID加入自已的/etc/hosts文件中,并解析成容器的IP 范例: 修改容器的 hosts文件[root@ubuntu1804 ~]#docker run -it --rm --add-host www.wangxiaochun.com:6.6.6.6 --add-host www.wang.org:8.8.8.8 busybox / # cat /etc/hosts 127.…

视频号直播自动循环发评论-自动回复评论 - 浏览器插件

功能介绍 浏览器插件源码开放,可以随意二次开发,无时间限制,无账号限制,无电脑限制 实现原理,纯浏览器插件实现,监控浏览器界面元素变动,获取直播间或者直播中控后台的评论文本,匹配回复关键词或调用AI接口,再利用js模拟输入和点击等操作 支持以下中控台或直播间地址,…

了解如何在 lt;lines (Modulojs) 中创建 API 支持的 Zelda BOTW 怪物画廊 Web 组件

模数教程回来了!大家好!暑假结束后,我带着 modulo 教程回来了。我正在制作更多教程 - 请继续关注。也就是说,如果您对我的下一个主题有任何特别的想法,请务必在评论中告诉我!我的上一篇教程是关于 api 驱动的 pokmon dance party 组件的超级快速且有趣的“仅 html,无 js…

Cortex-A7 MPCore 架构

Cortex-A7 MPCore 架构 1)Cortex-A7 MPCore 简介 Cortex-A7 MPcore 处理器支持 1~4 核,通常是和 Cortex-A15 组成 big.LITTLE 架构的,Cortex-A15 作为大核负责高性能运算,比如玩游戏啥的, Cortex-A7 负责普通应用,因为 CortexA7 省电。 Cortex-A7 本身性能也不弱,不要…

Zlmedia搭建简记

进入新公司之后,发现他们的视频播放使用的是ZlmediaKit这个工具,自己尝试使用了一下发现很好用,于是在自己机器上搭建了一个服务玩玩。 因为没有在线的摄像头,所以这里采用的是ffmpeg推送mp4文件作为视频流输入,推送到zlmedia服务,再利用zlmedia本身所带的拉流服务,最终…

C 风格字符串函数

▲《C++ Primer》 P109 我们无法保证 c_str 函数返回的数组一直有效,事实上,如果后续的操作改变了 string 的值就可能让之前返回的数组失去效用。 WARNING: 如果执行完 c_str() 函数后程序想一直都能使用其返回的数组,最好将该数组重新拷贝一份。

基于IDF的ESP32S3-LVGL DEMO移植

简介 ESP32-32出色的性价比,较好的性能与内存空间,可以好利用来完成GUI显示库的加载 LVGL LVGL是一款比较流行的致力于MCU与MPU创建漂亮UI的嵌入式图形库,免费且开源。 硬件 硬件采用的是正点原子的ESP32-S3 屏幕使用的是SPI通信方式,配合IO口控制(RST,A0),来实现LCD屏幕…