最详细的目标检测SSD算法讲解
深度学习之目标检测 SSD的理解和细节分析
SSD算法—-模型结构的详解及Python源码分析
SSD框架详细解读(一)

关于SSD的实现,参考了https://github.com/balancap/SDC-Vehicle-Detection,其中阐述了实现的细节。
the SSD network used the concept of anchor boxes for object detection. The image below illustrates the concept: at several scales are pre-defined boxes with different sizes and ratios. The goal of SSD convolutional network is, for each of these anchor boxes, to detect if there is an object inside this box (or closely), and compute the offset between the object bounding box and the fixed anchor box.

In the case of SSD network, we use VGG16 as a based architecture: it provides high quality features at different scales, the former being then used as inputs for multibox modules in charge of computing the object type and coordinates for each anchor boxes. The architecture of the network we use is illustrated in the following TensorBoard graph. It follows the original SSD paper:

  • Convolutional Blocks 1 to 7 are exactly VGG modules. Hence, these weights can be imported from VGG weights, speeding massively training time;
  • Blocks 8 to 11 are additional feature blocks. They consist of two convolutional layers each: a 3x3 convolution followed by a 1x1 convolution;
  • Yellow blocks are multibox modules: they take VGG-type features as inputs, and outputs two components: a softmax Tensor which gives for every anchor box the probability of an object being detected, and an offset Tensor which describes the offset between the object bounding box and the anchor box. These two Tensors are the results of two different 3x3 convolutions of the input Tensor.

For instance, consider the 8x8 feature block described in the image above. At every coordinate in the grid, it defines 4 anchor boxes of different dimensions. The multibox module taking this feature Tensor as input will thus provide two output Tensors: a classification Tensor of shape 8x8x4xNClasses and an offset Tensor of shape 8x8x4x4, where in the latter, the last dimension stands for the 4 coordinates of every bounding box.

As a result, the global SSD network will provide a classification score and an offset for a total of 8732 anchor boxes. During training, we therefore try to minimize both errors: the classification error on every anchor box and the localization error when there is a positive match with a grountruth bounding box. We refer to the original SSD paper for the precise equations defining the loss function.

SSD模型结构与YOLO对比

完整的模型图请点击:
https://github.com/bjzhao143/objectiveDetect/blob/master/models/ssd300_model.png


anchors计算示意图


预训练的SSD-tesnforflow模型

本人下载了https://github.com/HiKapok/SSD.TensorFlow中的代码和预训练模型,用于细粒度识别。

附录:VGG16与VGG19的模块

首先解释一下图中的结构,ABCDE分别为当时VGG项目组测试的不同的网络结构,对于不同的结构进行了效果上的比较,从中发现LRN(local response normalization)好像并没什么用,之后就在后面的结构中舍弃了。图中D和E分别为VGG16和VGG19

VGG19中的“19”是怎么来的?

在模型文件中,VGG19把激活层也当作一层,因此具有43个layers:

#43 layers
VGG19_LAYERS = ('conv1_1', 'relu1_1', 'conv1_2', 'relu1_2', 'pool1','conv2_1', 'relu2_1', 'conv2_2', 'relu2_2', 'pool2','conv3_1', 'relu3_1', 'conv3_2', 'relu3_2', 'conv3_3', 'relu3_3', 'conv3_4', 'relu3_4', 'pool3','conv4_1', 'relu4_1', 'conv4_2', 'relu4_2', 'conv4_3', 'relu4_3', 'conv4_4', 'relu4_4', 'pool4','conv5_1', 'relu5_1', 'conv5_2', 'relu5_2', 'conv5_3', 'relu5_3', 'conv5_4', 'relu5_4', 'pool5','fc6', 'relu6','fc7', 'relu7','fc8', 'softmax',)

神经网络实现---SSD相关推荐

  1. ssd训练自己数据集

    1.用labelImg标数据 2.将数据转换为tfrecord 错误记录: NotFoundError:无法创建NewWriteableFile 解决方法:您需要在运行此脚本的运行环境文件夹中自己创建 ...

  2. (一)目标检测定位算法之SSD检测自己的图片

    参考 https://blog.csdn.net/zzz_cming/article/details/81128460 1.下载SSD-Tensorflow   https://download.cs ...

  3. Opencv C++ 学习视频整理源代码(1)

    0.代码基本框架 #include <opencv2/opencv.hpp> #include <opencv2/tracking.hpp> #include <iost ...

  4. pytorch系统学习

    经过网络后的输出图片形状的计算公式: 第一种情况:如果stride值为0的话,输入形状是n_h x n_w,卷积核窗口是k_h x k_w,那么输出形状是(n_h - k_h +1) x (n_w - ...

  5. 基于CNN目标检测方法(RCNN,Fast-RCNN,Faster-RCNN,Mask-RCNN,YOLO,SSD)行人检测,目标追踪,卷积神经网络

    一.研究意义 卷积神经网络(CNN)由于其强大的特征提取能力,近年来被广泛用于计算机视觉领域.1998年Yann LeCun等提出的LeNet-5网络结构,该结构使得卷积神经网络可以端到端的训练,并应 ...

  6. matlab ssd检测,基于SSD神经网络的违章停车车辆实时检测方法与流程

    本发明属于图像识别和计算机视觉技术领域,尤其涉及一种停车车辆的检测方法,可用于城市环境中对违章停车车辆的检测. 背景技术: 随着现代社会经济的快速发展和城市化的普及,汽车作为一种重要的交通工具,其数量 ...

  7. OpenCv-C++-深度神经网络(DNN)模块-使用SSD模型实现对象检测

    首先我们要搞明白图像分类和对象检测的区别: 1.图像分类: 图像分类就是将这幅图像归为某一类,图像中的对象尽量要单一. 2.对象检测: 对象检测就是将不同的对象用框圈出来并规定为某一类,对象可以多个. ...

  8. 基于神经网络的目标检测论文之目标检测方法:改进的SSD目标检测算法

    4.2 改进的SSD 上一章我们了解到,物体识别检测算法是在传统CNN算法基础上加上目标区域建议策略和边框回归算法得到的.前辈们的工作主要体现在目标区域建议的改进策略上,从最开始的穷举建议框,到划分图 ...

  9. 神经网络: SSD目标检测网络解析

    一.SSD(Single Shot MultiBox Detector)简介 SSD是2016年ICCV的一篇论文,是目前为止主要的目标检测算法. 算法的主要优点: 速度比Faster-Rcnn快,精 ...

最新文章

  1. pandas计算滑动窗口中的中位数实战(Rolling Median of a Pandas Column):计算单数据列滑动窗口中的中位数、计算多数据列滑动窗口中的中位数
  2. .NET常见线程简介
  3. 20155308 《信息安全系统设计基础》课程总结
  4. boost::geometry::remove_spikes用法的测试程序
  5. 错误管道反应:Paul Szymkowiak和上下文驱动的思想家如何交谈
  6. Dijkstra算法的C语言程序
  7. 关于iphone中微信无法调用百度api的解决方案
  8. 2006年博客之星(小废物点评版)
  9. 计算器计算经纬距离_造价人如何熟练运用计算器来做题?
  10. Softmax 回归的从零开始实现 pytorch
  11. android 编译 libjpeg-turbo,编译Android环境的libjpeg-turbo
  12. DoTween动画系统
  13. R语言笔记3_回归分析(EDA OLS Power)
  14. VERY DEEP CONVOLUTIONAL NETWORKS FOR LARGE-S CALE IMAGE RECOGNITION-论文笔记
  15. 在Linux上运行若依出错,解决若依linux启动ERROR
  16. 使用CSS展现出各行星轨道
  17. Flume-三大核心组件
  18. 《解剖PetShop》系列之五(Bruce Zhang)
  19. Mac解决gyp: No Xcode or CLT version detected!问题
  20. Android:下载图片

热门文章

  1. iptv登录系统 无法连接服务器,电信宽带电视连接到83%接入平台进不去什么情况-网络电视接入平台失败...
  2. 谷歌浏览器Chrome无法搜索Google的解决办法
  3. Java动态数组的用法详解
  4. 【MATLAB】柱状图(bar的用法)
  5. LeetCode github集合,附CMU大神整理笔记
  6. 用python做一个简单的投票程序_如何编写一个自动投票程序
  7. 我的运动、通勤好搭档,南卡Runner Pro 4骨传导耳机深度测评
  8. PTA 排序(快速排序,基数排序)
  9. dubbo核心源码流程分析
  10. c语言7-1 多项式a除以b,多项式除以单项式优秀教案范文