[Paddle2.0学习之第三步]目标检测(上)理论

简介: [Paddle2.0学习之第三步]目标检测(上)理论

[Paddle2.0学习之第三步]目标检测(上)

目标检测的主要目的是让计算机可以自动识别图片或者视频帧中所有目标的类别,并在该目标周围绘制边界框,标示出每个目标的位置


相比上一章节的图像分类,目标检测针对的是图中物体。


白话:图像分类是看图片属于什么类别,目标检测是看图片有什么东西,那个东西在哪里16a84e4c3e27a27901ce2eef08a0c516.png


边界框(bounding box)

检测任务需要同时预测物体的类别和位置,因此需要引入一些跟位置相关的概念。


通常使用边界框(bounding box,bbox)来表示物体的位置,边界框是正好能包含物体的矩形框,如上面的右图所示,图中3只斑马分别对应3个边界框。


通常有两种格式来表示边界框的位置:

  1. x1y1x2y2 即
    每个框的左上角和右下角坐标。
  2. xywh 即
    每个框的中心点和框的长和宽。


ps:图片坐标的原点在左上角,x轴向右为正方向,y轴向下为正方向。


锚框(Anchor box)

锚框与物体边界框不同,是由人们假想出来的一种框。

先设定好锚框的大小和形状,再以图像上某一个点为中心画出矩形框。

在下图中,以像素点[300, 500]为中心可以使用下面的程序生成3个框,如图中蓝色框所示,其中锚框A1跟人像区域非常接近。

43a284f2fcebc5debd5d69a16a9d870c.png

在目标检测任务中,通常会以某种规则在图片上生成一系列锚框,将这些锚框当成可能的候选区域。模型对这些候选区域是否包含物体进行预测,如果包含目标物体,则还需要进一步预测出物体所属的类别。还有更为重要的一点是,由于锚框位置是固定的,它不大可能刚好跟物体边界框重合,所以需要在锚框的基础上进行微调以形成能准确描述物体位置的预测框,模型需要预测出微调的幅度。在训练过程中,模型通过学习不断的调整参数,最终能学会如何判别出锚框所代表的候选区域是否包含物体,如果包含物体的话,物体属于哪个类别,以及物体边界框相对于锚框位置需要调整的幅度。


不同的模型往往有着不同的生成锚框的方式。


交并比 Iou

微信截图_20230214161005.png

这个比值越大越好


为了直观的展示交并比的大小跟重合程度之间的关系,下图示意了不同交并比下两个框之间的相对位置关系,从 IoU = 0.95 到 IoU = 0.


ede3710f0ed0daa46ea228604d99f0f3.png看完是不是直接就懂了QwQ




相关文章
|
机器学习/深度学习 人工智能 编解码
AI虫子种类识别数据集(近3000张图片已划分、已标注)|适用于YOLO系列深度学习分类检测任务【数据集分享】
本数据集包含近3000张已划分、标注的虫子图像,适用于YOLO系列模型的目标检测与分类任务。涵盖7类常见虫子,标注采用YOLO格式,结构清晰,适合农业智能化、小样本学习及边缘部署研究。数据来源多样,标注精准,助力AI虫害识别落地应用。
|
10月前
|
数据采集 JSON 测试技术
如何在Python中高效实现CSV到JSON的数据转换
在实际项目中,数据格式转换是常见问题,尤其从CSV到JSON的转换。本文深入探讨了多种转换方法,涵盖Python基础实现、数据预处理、错误处理、性能优化及调试验证技巧。通过分块处理、并行处理等手段提升大文件转换效率,并介绍如何封装为命令行工具或Web API,实现自动化批量处理。关键点包括基础实现、数据清洗、异常捕获、性能优化和单元测试,确保转换流程稳定高效。
489 83
|
存储 负载均衡 算法
一致性哈希汇总
本文介绍了多种一致性哈希算法,包括Consistent Hashing Ring、Rendezvous、Jump、Multi-probe、Maglev、Anchor和Dx。这些算法各有特点,如Jump Hash实现了完美的key分布,而DxHash结合了多种算法的优点,支持动态扩缩容。文章还分析了各算法的性能指标,如内存使用、初始化时间、查询时间和调整集群大小的效率,以及均衡性和单调性。最后讨论了副本、权重和负载均衡策略的应用。
565 62
一致性哈希汇总
|
JSON API 开发工具
gitlab如何实现批量clone仓库
在Windows环境下,通过GitLab Group ID获取项目URL的步骤概要: 1. 使用API `http://gitlab域名/api/v4/groups/你的group id` 获取JSON,提取`http_url_to_repo`。 2. 在Sublime中处理JSON,用快捷键选中并提取所有`http_url_to_repo`值。 3. 保存到h.txt,去除其他信息,仅保留URL。 4. 创建e.bat文件,内容为克隆h.txt中所有URL的批处理命令。 5. 放置h.txt和e.bat在同一文件夹,运行e.bat批量克隆仓库。URL含凭证,便于后续操作。
663 8
|
消息中间件 Go API
Golang深入浅出之-Go语言中的微服务架构设计与实践
【5月更文挑战第4天】本文探讨了Go语言在微服务架构中的应用,强调了单一职责、标准化API、服务自治和容错设计等原则。同时,指出了过度拆分、服务通信复杂性、数据一致性和部署复杂性等常见问题,并提出了DDD拆分、使用成熟框架、事件驱动和配置管理与CI/CD的解决方案。文中还提供了使用Gin构建HTTP服务和gRPC进行服务间通信的示例。
956 0
|
前端开发 JavaScript 开发者
React的函数组件与类组件:探索两者之间的区别
【4月更文挑战第25天】React提供函数组件和类组件,两者在语法、状态管理、生命周期和性能优化上有所不同。函数组件简单且易于理解,使用 Hooks 可添加状态管理;类组件支持复杂状态管理和生命周期方法,适用于需要精细控制更新的场景。随着 Hooks 的发展,函数组件功能增强,成为更多开发者的首选。选择组件类型应根据实际需求权衡。
|
机器学习/深度学习 人工智能 算法
人工智能在医学领域的局限性
随着科技发展,人工智能技术在教育领域中的应用已取得较大进展。近年来,人工智能(AI)技术和由其引发的大数据时代自社会的各个层面包括我们的思维、生活方式和工作模式产生了巨大的变革;其与医学的结合给医疗系统带来深远的影响。从互联网到云计算,再到由大数据集合而成的人工智能,不断更新的处理手段使医疗行业也开始尝试新的转变,从传统的人工诊疗、教学模式逐步转变为依据机器学习来获取更高效的信息,并在医学多个领域已有比较广泛的应用。本文将从人工智能在医学领域的优势、当前的进展、应用、局限性和未来方向来进行综述。
838 1
|
弹性计算 Ubuntu 固态存储
linux 格式化和挂载数据盘
1. linux 格式化和挂载数据盘 要格式化并挂载 Linux 中的数据盘,您需要执行以下步骤: 首先,使用以下命令查看您系统中的磁盘信息:
1499 0
|
人工智能 JSON 数据可视化
[Paddle2.0学习之第三步]目标检测(下)AI识虫实战
[Paddle2.0学习之第三步]目标检测(下)AI识虫实战
[Paddle2.0学习之第三步]目标检测(下)AI识虫实战