版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。

初步总结的SSD和yolo-v3之间的一些区别。

其中的一些概念还有待充分解释。

SSD YOLOv3
Loss Softmax loss Logistic loss
Feature extractor VGG19 Darknet-53
Bounding Box Prediction direct offset with default box offset with gird cell by sigmoid activation
Anchor box Different scale and aspect ratio K-means from coco and VOC
Small objects Semantic value for bottom layer is not high. Worse for small objects. Higher resolution layers have higher semantic values. Better for small objects.
Big objects Better. Feature map rangers from 38 * 38 to 3 * 3 ,1 * 1. Worse. 13 * 13 feature map is the most coarse-grained.
Data Augmentation different sample IOU crop on original image randomly put the scaled original image (from 0.25 to 2) on the gray canvas
Input resize original image to fixed size Random multi-scale input
FPN no with FPN

SSD的loss中,不同类别的分类器是softmax,最终检测目标的类别只能是一类。而在yolo-v3中,例如对于80类的coco数据集,对于类别进行判断是80个logistic分类器,只要输出大于设置的阈值,则都是物体的类别,物体同时可以属于多类,例如一个物体同时是person和woman。

Backbone network。ssd原版的基础网络就是VGG19,也可以用mobile-net、resnet等。yolo-v3的基础网络是作者自己设计的darknet-53(因为具有53个卷积层),借鉴了resnet的shortcut层,根据作者的话,以更少的参数、更少的计算量实现了接近的效果。

Anchor box。ssd从faster-rcnn中吸收了这一思想,采用的是均匀地将不同尺寸的default box分配到不同尺度的feature map上。例如6个feature map的尺度,default box的大小从20%到90%的占比,同时有aspect_ratios = [[2], [2, 3], [2, 3], [2, 3], [2], [2]] ,最终可以计算出不同default box大小。而yolo-v3延续了yolo-v2的方法:从coco数据集中对bouding box 的(width, height)进行聚类,作者聚出9类,每类中心点取出作为一个box_size, 将每三个box_size划分给一个feature map。例如总共有(10,13), (16,30), (33,23), (30,61), (62,45), (59,119), (116,90), (156,198), (373,326)共9组w,h, 作者将后三个(116,90), (156,198), (373,326)作为13 * 13 的gird cell上的anchor box size。

图片输入。yolo-v3将输入图片映射到第一层feature map的固定比例是32。对于输入为416 * 416的图片,第一层feature map 大小为13 * 13。但是yolo-v3支持从300到600的所有32的倍数的输入。例如输入图片为320 * 320,这样第一层feature map就为10 * 10,在这样的gird cell中同样可以进行predict和match groudtruth。

Bounding Box 的预测方法。在不同的gird cell上,SSD预测出每个box相对于default box的位置偏移和宽高值。yolo-v3的作者觉得这样刚开始训练的时候,预测会很不稳定。因为位置偏移值在float的范围内都有可能,出现一个很大的值的话,位置都超出图片范围了,都是完全无效的预测了。所以yolov3的作者对于这位置偏移值都再做一个sigmoid激活,将范围缩为0-1 。b_x和b_y的值在(cell_x_loc, cell_x_loc+1), (cell_y_loc, cell_y_loc+1)之间波动。


  1. yolov3为什么比ssd好.
    不仅仅因为YOLO V3引入FPN结构,同时它的检测层由三级feature layers融合,而SSD的六个特征金字塔层全部来自于FCN的最后一层,其实也就是一级特征再做细化,明显一级feature map的特征容量肯定要弱于三级,尤其是浅层包含的大量小物体特征。

https://www.zhihu.com/question/269909535/answer/471978963

yolov3和ssd的区别的更多相关文章

  1. emmc和ssd的区别【转】

    本文转载自:https://blog.csdn.net/hawk_lexiang/article/details/78228789 emmc和ssd eMMC和SSD主要是满足不同需求而发展出来的NA ...

  2. one-stage object detectors(1)

    2019/04/08 强烈推荐:深入理解one-stage目标检测算法 yolo系列 one-stage object detectors(YOLO and SSD) 在不专一的模型中,每个检测器应该 ...

  3. 深度学习笔记(十三)YOLO V3 (Tensorflow)

    [代码剖析]   推荐阅读! SSD 学习笔记 之前看了一遍 YOLO V3 的论文,写的挺有意思的,尴尬的是,我这鱼的记忆,看完就忘了  于是只能借助于代码,再看一遍细节了. 源码目录总览 tens ...

  4. The Accidental DBA

    The Accidental DBA (Day 1 of 30): Hardware Selection: CPU and Memory Considerations 本文大意:      全篇主要讲 ...

  5. (转)Awesome Object Detection

    Awesome Object Detection 2018-08-10 09:30:40 This blog is copied from: https://github.com/amusi/awes ...

  6. TextBoxes 与 TextBoxes ++

    TextBoxes 论文关键idea 本文和SegLink一样,也是在SSD的基础上进行改进的.相比SSD做了以下的改进: 修改了default box的apect ratio,分别为[1 2 3 5 ...

  7. mysql特性及部署规范

    --分支版本,mysql对cpu,内存,io子系统资源利用特点--oracle mysql,mariadb,percona server--部署规范建议,系统安装,mysql安装,其他规范互联网业务为 ...

  8. paper-list

    1.yolo-v1,yolo-v2,yolo-v3 2.ssd,focal loss,dssd 3.fast-rcnn,faster-rcnn,r-fcn,Light-Head R-CNN,R-FCN ...

  9. 目标检测论文解读10——DSSD

    背景 SSD算法在检测小目标时精度并不高,本文是在在SSD的基础上做出一些改进,引入卷积层,能综合上下文信息,提高模型性能. 理解 Q1:DSSD和SSD的区别有哪些? (1)SSD是一层一层下采样, ...

随机推荐

  1. 3万字长文概述:通俗易懂告诉你什么是.NET?什么是.NET Framework?什么是.NET Core?

    [转载]通俗易懂,什么是.NET?什么是.NET Framework?什么是.NET Core? 什么是.NET?什么是.NET Framework?本文将从上往下,循序渐进的介绍一系列相关.NET的 ...

  2. 网易发起“疾风”智造IoT联盟,深化“互联网+先进制造业”发展

    7月26日,2019网易云创峰会在杭州拉开序幕,本次峰会以“连接•洞察•进化”为主题,汇聚行业领袖.技术大咖及业界代表,探讨技术演进与行业应用趋势,研商生态合作升级.共赢未来的道路.上午的主论坛中,网 ...

  3. win10系统怎么设置软件开机启动

    win10开机自动启动软件设置教程: 1:在windows10桌面,右键点击桌面左下角的开始按钮,在弹出的菜单中选择运行菜单项. 2:这时就会打开windows10的运行窗口,在窗口中输入命令shel ...

  4. 基于appium的fixture应用之代码重构

    一.痛点分析 在appium自动化中,会话启动参数较多,我们使用了yaml配置文件来进行管理,并使用了PyYaml模块进行yaml文件内容的读取,我们知道,在测试场景中,不可能只会用到一种启动类型的参 ...

  5. C++入门到理解之文件操作(文本文件的读写+二进制文件的读写)

    原文地址http://www.javayihao.top/detail/168 一:概述 1.程序在运行中产生的数据都是临时数据,程序一旦运行结束会被释放,可以通过文件相关的操作将数据持久保存. 2. ...

  6. Sql 中常用时间处理函数

    1.Sql 中常用时间处理函数  GETDATE()  返回当前的日期和时间 DATEPART()  返回日期/时间的单独部分 DATEADD()   返回日期中添加或减去指定的时间间隔 DATEDI ...

  7. QAnet Encoder

    #!/usr/bin/python3# -*- coding: utf-8 -*-'''date: 2019/8/19mail: cally.maxiong@gmail.comblog: http:/ ...

  8. 基于 Swoole 的微信扫码登录

    随着微信的普及,扫码登录方式越来越被现在的应用所使用.它因为不用去记住密码,只要有微信号即可方便快捷登录.微信的开放平台原生就有支持扫码登录的功能,不过大部分人还是在用公众平台,所以扫码登录只能自行实 ...

  9. Linux系统彻底卸载MySQL数据库

    一.首先查询系统是否安装了MySQL rpm -qa | grep -i mysql 输出结果表示,我安装的MySQL Server,Client都是5.6.44的,因为我系统支持的版本是要5.7+的 ...

  10. centOS极简安装并启动ngnix

    我在网上看到过很多种方法在centOS中安装nginx,比如像这样的: 这种方式太麻烦了,看了很恶心. 我在官网看到有这样一种操作,可谓极简.特此记录一下:(官网教程地址:http://nginx.o ...