从零开始实现SSD目标检测(pytorch)(一)

目录

  • 从零开始实现SSD目标检测(pytorch)

    • 第一章 相关概念概述

      • 1.1 检测框表示
      • 1.2 交并比
    • 第二章 基础网络
    • 第三章 先验框设计
    • 第四章 LOSS设计

从零开始实现SSD目标检测(pytorch)

特别说明:

  1. 本系列文章是Pytorch目标检测手册的翻译+总结
  2. 知其然知其所以然,光看论文不够,得亲自实现

第一章 相关概念概述

1.1 检测框表示

边界宽(bounding box)是包围一个物体(objective)的框,用来表示这个物体的位置、形状、大小等信息。不是最小外接矩形,仅仅是一个转动角度为 0 的框。如下图1-1所示:

表示框的方法有很多(不赘述),图1-1的方式为框的边界四个极值坐标\(x_{min},y_{min},x_{max},y_{max}\)。

但是这样做的有点缺点

  • 知道\(x_{min},y_{min},x_{max},y_{max}\),我们无法知道这个目标的更多信息(比例),必须画出来才有感官
  • 如果没有图像的宽高,像素值毫无用处(其实还是无法知道比例信息)

改进方式如下图1-2所示

1-2使用比例的方式,很直观的知道目标更多的信息

但是还有一个缺点

  • 直接看这个信息,我们不知道目标长宽信息(当然你自己可以另外计算)
  • 也不知道中心位置(相对于边界,我们更关心中心)

再次改进的方式如下图1-3所示:

\(c_x,c_y,w,h\),中心点+宽高的方式,满足视觉信息最大化。

1.2 交并比

如何用来判断一个框检测的好与坏?

  1. 使用交集\(A \cap B\)

直接使用交集的大小去判断好坏,大尺度和小尺度不对等

比如:A和B大小都为100,交集50. C和D大小都为10,交集5.

如何说明这两组哪个好坏?

通过上述的例子,我们发现少了一个比例问题。。。

  1. 使用 \(\frac{A{\cap}B}{A{\cup}B}\)交集除以并集

完全解决上诉问题

注意:这里还存在一个关于LOSS的问题,具体可参考GIOU

第二章 基础网络

第三章 先验框设计

第四章 LOSS设计

原文地址:https://www.cnblogs.com/wjy-lulu/p/11827204.html

时间: 2024-11-05 20:39:44

从零开始实现SSD目标检测(pytorch)(一)的相关文章

使用SSD目标检测c++接口编译问题解决记录

本来SSD做测试的Python接口用起来也是比较方便的,但是如果部署集成的话,肯定要用c++环境,于是动手鼓捣了一下. 编译用的cmake,写的CMakeList.txt,期间碰到一些小问题,简单记录一下问题以及解决方法. 当然前提是你本地的caffe环境没啥问题.各种依赖都安好了.. 1.error: 'AnnotatedDatum' has not been declared    AnnotatedDatum* anno_datum); /home/jiawenhao/ssd/caffe/

TF项目实战(基于SSD目标检测)——人脸检测2

数据转化为VOC格式: 一.我们先看 VOC格式的数据是什么??? Annotations:存放xml 包括 文件夹信息   图片名称. 图片尺寸信息. 图片中object的信息. JPEGImages: 存放图片 二.分析Wider FACE数据集: 数据集中的txt中信息为:第一行: 图片路径第二行:多少个人脸第三行:bbox信息 存储的左上角 坐标 和 高度宽度 三.代码转换: 1 import os,cv2,sys,shutil 2 3 from xml.dom.minidom impo

关于目标检测

目标检测 Region based network RCNN 一张图像生成1K~2K个候选区域 对每个候选区域,使用深度网络提取特征 特征送入每一类的SVM 分类器,判别是否属于该类 使用回归器精细修正候选框位置 Selective Search 候选框生成 传统的生成方法,就是检测就是不同大小的滑动窗进行穷举,然后使用分类器判断哪个滑动窗是目标.而SS根据颜色,纹理之类的信息去把图片划分成不同区域可以相对于穷举搜索大量减少计算量,是简单的搜索剪枝思路.通过简单的区域划分算法,将图片划分成很多小

奇点云三角肌「秀肌肉」,端化目标检测模型再获突破

人工智能正在驱动新一轮的商业变革,而算法技术则是推动核心底层技术的重要力量.算法崛起时代,技术浪潮可谓一日千里,算法工程师也只有不断精进自身技术,才能与时俱进.驭浪前行.近日,奇点云算法工程师三角肌在目标检测算法领域又有新突破. 摘要 卷积神经网络对目标检测的精度有着显著的提升,并且随着卷积神经网络的深度加深,对目标检测精度提升也越大,但是也需要更多的浮点计算.许多研究者通过知识蒸馏的方法,通过把一个更深更大的教师网络中的知识转移到一个小的学生网络中,以提高学生网络在目标检测中的效果.而大部分知

目标检测SSD模型pytorch版的权重参数

最近,我在学习目标检测算法中的SSD(Single Shot MultiBox Detector),GitHub上已经有人对SSD算法完成了pytorch版本的代码实现(https://github.com/amdegroot/ssd.pytorch),但是其中训练好的参数(ssd300_mAP_77.43_v2.pth)并不容易下载,因此我把它分享出来:链接:https://pan.baidu.com/s/1inytkGtOtppgrf22AEwrOQ,提取码:u721. 原文地址:https

目标检测方法——SSD

SSD论文阅读(Wei Liu--[ECCV2016]SSD Single Shot MultiBox Detector) 目录 作者 文章的选择原因 方法概括 方法细节 相关背景补充 实验结果 与相关文章的对比 总结 作者 文章的选择原因 性能好,single stage 方法概括 文章的方法介绍 SSD主要用来解决目标检测的问题(定位+分类),即输入一张待测图像,输出多个box的位置信息和类别信息 测试时,输入一张图像到SSD中,网络输出一个下图最右边的tensor(多维矩阵),对该矩阵进行

深度学习 目标检测算法 SSD 论文简介

深度学习 目标检测算法 SSD 论文简介 一.论文简介: ECCV-2016 Paper:https://arxiv.org/pdf/1512.02325v5.pdf  Slides:http://www.cs.unc.edu/~wliu/papers/ssd_eccv2016_slide.pdf 二.代码训练测试: https://github.com/weiliu89/caffe/tree/ssd  一.论文算法大致流程: 1.类似"anchor"机制: 如上所示:在 featur

目标检测算法SSD在window环境下GPU配置训练自己的数据集

由于最近想试一下牛掰的目标检测算法SSD.于是乎,自己做了几千张数据(实际只有几百张,利用数据扩充算法比如镜像,噪声,切割,旋转等扩充到了几千张,其实还是很不够).于是在网上找了相关的介绍,自己处理数据转化为VOC数据集的格式,在转化为XML格式等等.具体方法可以参见以下几个博客.具体是window还是Linux请自行对号入座. Linux:http://blog.sina.com.cn/s/blog_4a1853330102x7yd.html window:http://blog.csdn.n

pytorch COCO2017 目标检测 (一)DataLoader

pytorch coco 目标检测 DataLoader实现 pytorch实现目标检测目标检测算法首先要实现数据的读入,即实现Dataset和DataLoader两个类. 借助pycocotools实现了CoCo2017用于目标检测数据的读取,并使用cv2显示. 分析 使用cv2显示读入数据,或者要送入到网络的数据应该有三个部分 图像,Nx3xHeight x Width BBs,NxMx4 类型,NxMx1 因此,可以将BBs和类型组成一个.Pytorch默认的数据类型是batchsize