技术标签: DL
这篇文章分析了小尺度与预训练模型尺度之间的关系, 并且提出了一个和 Cascade R-CNN 有异曲同工之妙的中心思想: 要让输入分布接近模型预训练的分布(本文主要探讨尺度的分布不一致带来的问题).
之后利用分析的结论, 提出了一个多尺度训练(MST)的升级版:Scale Normalization for Image Pyramids (SNIP).
上了深度网络后, 分类任务已经做到了误差率2%(ImageNet). 为什么在COCO上才62%? 这么悬殊的距离主要因为检测数据集中包含了大量小物体, 他们成了绊脚石.
* 结论: 检测器必须同时应对如此之大的尺度变化的样本, 这就导致了我们使用ImageNet(或其他分类)预训练模型时, 有严重的domain-shift问题.
尽管Feature Pyramids 有效的综合了多卷积层特征图信息,但是对于very small/large objects 检测效果不是很好
借由分类模型的实验, 探索检测中domain-shift带来的影响. 检测中的Domain-shift主要来自于训练/测试尺度不匹配:
* 训练800x1200. 因为显存有所限制, 不能更大了
* 测试1400x2000. 为了提升小物体检测性能
CNN-B是一个在224x224尺度上训练的模型, 其 stride=2 s t r i d e = 2 . 我们将测试图片降采样到 [48x48, 64x64, 80x80, 96x96,128x128], 然后再放大回224x224用于测试. 结果如图:
* 结论: 训/测尺度(实际上是清晰度)差距越大, 性能跌的越厉害. 因为不用与训练尺度相互匹配的尺度进行测试, 会使得模型一直在sub-optimal发挥.
CNN-S是根据上述原则, 我们做一个训/测尺度匹配的实验. 选取48x48作为训/测尺度. 并且 stride=1 s t r i d e = 1 , 因为如果不修改 stride s t r i d e 的话很容易就卷没了. 模型架构变了, 于是针对与上文CNN-S的可比较性问题, 作者说:
After-all, network architectures which obtain best performance on CIFAR10 [17] (which contains small objects) are different from ImageNet
根据结果看到, 训/测尺度匹配后, 性能大幅提升. 同样将48换成96也得到一致的结果.
我们很容易想到的另一种方法就是, 为了在伪高清尺度测试, 我们就把由原图训练的CNN-B用伪高清去做微调. 最终CNN-B-FT的结果甚至好于CNN-S.
数据库中原图尺寸为640x48, 小物体是小于32x32的物体
800all 800 a l l | 1400all 1400 a l l |
---|---|
19.6 | 19.9 |
* 分析: 正如之前分析的一样, 当训/测尺度一致时, 得到的结果最好. 所以 1400all 1400 a l l 胜出.
* 问题: 但是为什么只超过了一点点呢? 因为在考虑小物体的分类性能而放大图片的同时, 也将中/大尺度的样本放大得太大, 导致无法正确识别.
1400<80px 1400 < 80 p x | 800all 800 a l l | 1400all 1400 a l l |
---|---|---|
16.4 | 19.6 | 19.9 |
* 分析问题: 跟预想的不一样, 为什么性能下降这么多? 其根本原因是因为这种做法抛去了太多的样本(~30%), 导致训练集丰富性下降, 尤其是抛弃的那个尺度的样本.
1400<80px 1400 < 80 p x | 800all 800 a l l | 1400all 1400 a l l | MST M S T |
---|---|---|---|
16.4 | 19.6 | 19.9 | 19.5 |
* 分析问题: 其最终性能跟 800all 800 a l l 没太大差别, 主要原因和”实验 800all 800 a l l vs 1400all 1400 a l l 类似, 因为这一次引入了极大/极小的训练样本.
If there are no ground truth boxes within the valid range at a particular resolution in an image, that image- resolution pair is ignored during training
考虑到GPU显存, 需要crop图片来满足显存局限.
* 用最少数量的1000x1000的chips来囊括所有的小物体. 如果没有小物体的话, 这个区域就不需要进行任何计算, 加速训练.
* 操作:
只对1400x2000的图片进行采样. 800x1200/480x640/图片无小物体时, 不进行采样
sampled_chips = []
while num_sampled_unique_object < num_object:
chips = get_random_chips(size=(1000,1000), number=50)
sampled_chips.append( chips.where(chips.num_objects is max ) )
sampled_chips = sampled_chips.truncate_boundary()
2006年,Hinton提出深度学习网络,指出深度神经网络因为层数过多导致训练参数多的问题可以利用逐层初始化解决。在工业界和学术界掀起了深度学习的浪潮,并在语音识别和图像处理领域取得了巨大成功。2011年微软和谷歌在语音识别上采用DNN模型,将词错误率降低20%-30%。这里的DNN主要采用的是DBN,即深度置信网络。随着语音识别以及深度学习的发展,研究人员发现将CNN和RNN模型应用于语音识别领
最近在做这么一个功能,如图,不知道我画 的清楚不清楚,整体的是一个大的列表,黄色部分就是列表每个项的名称,剩下的都是他的子项,刚开始我整体用expandlistview,然后子集里面的嵌套了一个griedview与一个listview,是不是很傻,虽然可以正常显示,但是点击后,滑动,再绑定listview的时候就错位了,但是我也重写每个listview和griedview 的onMeasure
图一是我导入的第一张表,最大数据量也就2万多条,hibernate关闭二级缓存勉强能够导入,导入图二的7万多条数据时,就会在执行hibernate的save()停在2万多条.具体配置:1.修改spring的管理hibernate的配置&lt;bean id="webDataSource" class="com.alibaba.druid.pool.DruidDataSource" init-me...
有些centos 没有 lsof命令,需要安装yum install lsof -y使用:lsof -i:端口号转载于:https://www.cnblogs.com/IWings/p/7289977.html
巧了,最近面试的时候问过一个差不多的题目。某年双11,商家以4499的价格上架了某iphone,比官网价格便宜了1000员,库存总数10台,运营设置11/11 00:00活动生效,一人只能购买1台,商品售完为止。首先梳理下用户端的流程图:根据九章算法独家系统设计4S分析法,第一步Scenario场景。需要确定设计哪些功能,承受多大的访问量?这里要知道秒杀系统的常见概念QPS(Queries Per Second),即一秒内可以处理的请求数量。假如一个服务的RT(Response time)是
泛型----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------为了让集合集合记住其数据类型,jdk1.5开始,增加了泛型.增加了泛型的集合,可以记住集合中数据元素的类型. java中泛型应用最多的地方是集合类。1 定义数组和集合的比较在定义数组时都需要指定元素的类型,例如:String[] arr =
gravity和layout_gravity区别本文地址:http://blog.csdn.net/caroline_wendy在Android的控件属性中:gravity是控件的内容如何定位在控件内;layout_gravity是控件如何在它的父布局中的定位。例如:EditText控件,gravity属性决定,输入内容的位置:如center,表示输入内容居中;layout_gravity表示Ed
当开始着手实践 Hadoop 时,安装 Hadoop 往往会成为新手的一道门槛。尽管安装其实很简单,书上有写到,官方网站也有 Hadoop 安装配置教程,但由于对 Linux 环境不熟悉,书上跟官网上简略的安装步骤新手往往 Hold 不住。加上网上不少教程也甚是坑,导致新手折腾老几天愣是没装好,很是打击学习热情。本教程适合于原生 Hadoop 2,包括 Hadoop 2.6.0, Hado
球上自平衡全向移动机器人控制系统
题号:no9题目名:字符串轮转原题URL:https://leetcode-cn.com/problems/string-rotation-lcci/题目描述字符串轮转。给定两个字符串s1和s2,请编写代码检查s2是否为s1旋转而成(比如,waterbottle是erbottlewat旋转后的字符串)。示例示例 1: 输入:s1 = "waterbottle", s2 = "erbottlewat" 输出:True示例 2: 输入:s1 = "aa", s2 = "aba" 输出:F
利用图片和滑动门技术做出圆角效果,做出比较好看的菜单效果,就是在原有的spry插件中稍作改动,令菜单不显得那么死板需要用到的图片(背景图)(鼠标点击)(鼠标经过图)html代码:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DT...
使用yum安装# step 1: 安装必要的一些系统工具sudo yum install -y yum-utils device-mapper-persistent-data lvm2# Step 2: 添加软件源信息sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/doc...