目标检测-One Stage-YOLO v3

文章目录

  • 前言
  • [一、YOLO v3的网络结构和流程](#一、YOLO v3的网络结构和流程)
  • [二、YOLO v3的创新点](#二、YOLO v3的创新点)
  • 总结

前言

根据前文目标检测-One Stage-YOLOv2可以看出YOLOv2的速度和精度都有相当程度的提升,但是精度仍较低,YOLO v3基于一些先进的结构和思想对YOLO v2做了一些改进。


提示:以下是本篇文章正文内容,下面内容和可供参考

一、YOLO v3的网络结构和流程

  1. 将影像输入卷积网络(DarkNet53)+FPN得到多尺度特征图

ps:Darknet53,由Darknet19结合Resnet而成

  1. 利用anchor机制获取预选框
  2. 将上一步得到的anchor输入不同的分类和边框回归器
  3. 使用非极大值抑制NMS去除冗余窗口

二、YOLO v3的创新点

具体来说,没有什么大的创新点,但是结合先进的思想改进了YOLOv2:

  • 将backbone的网络结构进行了改进,将Darknet19结合Resnet(残差块轻量化),变成了Darknet53(Darknet53的性能与ResNet152相似,速度快2倍)
  • 引入多尺度特征图(feature maps),每个尺寸的feature map各司其职,13 × 13负责大目标物体,26 × 26负责中目标物体和52 × 52负责小目标物体。原因很简单,越深层的信息越抽象,越浅层的越粗糙,浅层还保留着小物体的信息,深层就不一定还在了。

ps:和SSD一样,感受野小的feature map检测小目标(较小的scale),使用感受野大的feature map检测更大目标(较大的scale),但加入了特征融合机制。

  • 类别预测方面使用多个逻辑回归分类器(logistic)代替softmax分类器,以此来确定预测框属于多类的可能
  1. softmax(全部类别的概率之和为1)假定全部类别是互斥的,即如果预测框属于类别A,那么就不可能属于类别B
  2. 但面对非互斥类别集时,softmax不能判别多类别归属,比如预测框可能既属于"动物",又属于"狗",尤其对于Open Images这种数据集,目标可能有重叠的类别标签
  3. 因此yolov3使用不同的logistic回归分类器(数量和类别数对应)检验bbox为每个类别的置信度(objectness score),如果超过一定阈值,就可认为bbox属于某个类别,即可实现多类别分类

总结

YOLOv3-320(28.2mAP)与SSD321一样准确(28.0mAP[.5, .95]),但速度快三倍(61ms -> 22ms)

在mAP50上(57.9),YOLOv3-608和当时的SOTA(RetinaNet-101-800)精度一样(57.5),但要快3.8倍(198ms -> 51ms)

相关推荐
@小匠1 天前
Read Frog:一款开源的 AI 驱动浏览器语言学习扩展
人工智能·学习
W23035765731 天前
经典算法:最长上升子序列(LIS)深度解析 C++ 实现
开发语言·c++·算法
网教盟人才服务平台1 天前
“方班预备班盾立方人才培养计划”正式启动!
大数据·人工智能
芯智工坊1 天前
第15章 Mosquitto生产环境部署实践
人工智能·mqtt·开源
菜菜艾1 天前
基于llama.cpp部署私有大模型
linux·运维·服务器·人工智能·ai·云计算·ai编程
TDengine (老段)1 天前
TDengine IDMP 可视化 —— 分享
大数据·数据库·人工智能·时序数据库·tdengine·涛思数据·时序数据
小真zzz1 天前
搜极星:第三方多平台中立GEO洞察专家全面解析
人工智能·搜索引擎·seo·geo·中立·第三方平台
minji...1 天前
Linux 线程同步与互斥(三) 生产者消费者模型,基于阻塞队列的生产者消费者模型的代码实现
linux·运维·服务器·开发语言·网络·c++·算法
GreenTea1 天前
从 Claw-Code 看 AI 驱动的大型项目开发:2 人 + 10 个自治 Agent 如何产出 48K 行 Rust 代码
前端·人工智能·后端
火山引擎开发者社区1 天前
秒级创建实例,火山引擎 Milvus Serverless 让 AI Agent 开发更快更省
人工智能