整个简历的讲解(falling+mimic+refidet)
1.解决方案
下边缘:
a.论文的数据来自kitti,gt数据来自于激光雷达,利用kitti自带的开发包先将激光雷达的数据映射到图片的二维平面,每个x,y会生成对应的d(x,y),即depth.再对每个x,y求倒数,即1/d,即D(x,y).对每个D求y方向的偏导,图像的偏导就是f'y(x,y) = f(x,y+1)-f(x,y).在每个y方向上,找到那个从typical road value to about zero的点,这个点就是障碍物的下边缘点.自己在做的过程中对于typical road value没办法很好理解,一列里面为0的点其实有很多,发邮件问作者也没得到回复,最后在他的主页找到了他公开的gt数据.
b.第一篇论文主要是把图片分成了一个个竖条,可以看成一个个bin,每个竖条宽度为24,高度为370(也就是图片原始的高度),将这些竖条输入进网络,经过1个11*5的卷积和1个5*3的卷积,然后接3个fc最后生成一个1*50的向量,这50个值就是可能为下边缘点概率值.如果用离散的思想,这50个值就是把竖直方向均分成50个bin,然后每个值代表在这一个bin里面的所有的像素点可能是下边缘的概率.作者提出的是一种半离散的思想,这50个值是竖直方向上均匀分布的50个点的坐标(这50个点的求法有点特别,先把竖直方向分成50个bin,然后每个bin的中点就是一个值的点,比如1到30分成6个bin,第一个点的坐标是1,第二个是2.5,然后是7.5,倒数第二个是27.5,最后一个是30,1到2.5可以计算插值,2.5到7.5也可以计算插值),如果你的gt的值在两个点之间,可以通过插值的方式得到他的概率,然后在用-logp计算loss,作者称其为pl-loss(gt的数据的坐标的取值范围是0-370).第一篇论文的网络结构太过于简单,效果并不是特别好,并且用起来很麻烦.第二篇论文的输入不再是一个个竖条,而是整张图片,用inception先提取特征,所以到1/8之后就开始接4个相同的block,两个3*3卷积然后做vertical pooling,每次在竖直方向缩小一半.最后再接一个没有vertical padding的3*3卷积,最后生成一个cude,74*1*100,74是channel这个位置,代表的是竖直方向的74个点,100对应的是水平方向的100个bin.这样整张图为下边缘的概率就都可以求出来.
c.
上边缘:曾经考虑过颜色,类别,还有深度,
类别用mask的方式,讲分割网络
stixel-world的复现,上下边缘的两篇paper,如何用superpixel和edgebox进行补偿
自定义的roi方式
2.mimic+refindet
a.之前的mimic网络主要做分类问题,方法是将大网络的softmax层的前一层的feature map与小网络的feature map进行euclidean loss计算(或者说L2 loss),各个probability 之间差异太大,容易造成shallow net注意力集中在较大的probability上,忽略值较小的probability.检测直接套用这种方式还没有直接finetune的效好.因为分类和location都是在最后一层feature map上,但是直接这样做不容易收敛.作者提出的方法:同一张图片输入给大小网络,在特征提取层最后一层feature map上roi-pooling,因为小网络的channel小,所以不能进行euclidean loss计算,小网络还要用3*3的网络做升维(先pooling再升维,不是先升维再pooling),这样大小网络提出的c、h、w一样大,然后做euclidean loss计算.整个loss是由mimic-loss + 分类、loc-loss组成,分类、loc-loss就是正常的faster rcnn中的rpn网络的loss,也就是说rpn网络本身还是要正常进行分类检测计算.两个loss相加有一个权重,在训练中,mimic loss可能会大,这个权重设置就必须小心,作者在euclidean loss上进行了标准化,就是每个proposal除以了c*h*w,这样网络训练稳定,权重也设置为1.这是第一步训练,第二步如果直接finetune然后训练效果没有再做一个mimic效果好.finetune第一步的参数,,参数不用固定然后把整个网络当做是一个分类的mimic,即按照分类的方法进行mimic就得出最终的结果.
问题:1.cityscape的数据集的训练集到底多大?图片的size是多大?
2.ssd大model在cityscape上训练的准确率是多少,模型大小是多少,耗时是多少?还是不太会使用那个网站.
3.为什么在conv5_3上做mimic loss?
4.refinedet现在的准确率是多少,模型大小是多少,耗时是多少
refinedet的样本不均衡我还没理解到?
b.refinedet与ssd一样,以vgg为backbone,不同于点在于:只预测了4层,并且只在vgg的fc7后面增添了2层,即conv6_1和conv6_2.refinedet由3个部分组成,一个是arm模块,相当于faster中的rpn网络对anchor进行二分类,对anchor进行精修,然后把anchor的score和位置的regression传给odm模块,不是所有的anchor都要传,如果anchor的negative的得分大于一个阈值,就不会传,这也是refinedet的anchor negative filter策略;一个是rcb,这部分连接arm和odm,将arm模块中进行预测的4层的feature map经过卷积操作传给odm模块,并且融合高层信息,这一点类似于rpn网络的top-down思想;odm模块其实和和ssd很像,只是说进行loss计算要经过两次regression,做anchor和gt的matching以及hard negative mining和ssd一样,保持1:3.
refinedet有3个优点:1.negative anchor filter:即anchor的negative类别的得分超过一个阈值,就不再往odm传,这个方法提升了0.5个点 2.refinedet在anchor部分加了回归,整个网络对bounding box进行了两次回归,这个方法提升了2.2个点 3.tcb这个网络模块提升了1个点.看原论文,发现他的模型在voc上相对于ssd提升2,3个点,但在coco上提升5、6个点,甚至用把vgg换成resnet,能提升7、8个点,这表明refinedet在小物体上表现的更好.除了以上3个优点,我个人还觉得refinedet的在conv5上进行了预测(这个地方我理解错了,refinedet在conv5预测,也就是在1/16上预测,ssd也是有在1/16上预测的,只不过不再conv5,他的1/16在fc7。不过的确有点不同的是,refinedet只在1/8~1/64上预测,ssd在1/8~1/256上预测),这是ssd没有做的.并且我觉得那3个优点可能提升的点不止那么多,因为refinedet用了比ssd更少的aspect ratio和size,实际上他那些实验都是在跟自身作比较
c.我们使用标准vgg的ssd在cityscape上训练模型,数据集大小为2975,,ap值为0.6,以这个为需要mimic的大网络.小网络的网络结构借鉴了refinedet,backbone和ssd一样,使用vgg,但每层的channel数变为原来的1/8,也就是说conv1_1从64变成了8.refinedet只做了4层预测,在fc7后面只增添了两层,不像ssd的8层,这两层的channel也只有原始ssd的1/8,删除了TCB部分,直接将信息传给ODM部分,因为TCB使用了deconvolution,fpga没办法实现.借鉴mimic那篇paper,我们在conv5_3上进行了mimic_loss的计算,当网络稳定后,又去掉mimic_loss计算,进行整个refinedet的训练.当然中间做了两种剪枝操作,一种是剪channel,一种是改变图片大小,最开始网络输入的图片大小384*786.最终打到ap值57,耗时10ms.
3.检测
我做的两个检测项目都属于gt较少的,所以先讲我们paste一些物体到空白的地方进行数据增强
整个简历的讲解(falling+mimic+refidet)的更多相关文章
- [No00007F]2016-面经[下] 英文简历写作技巧
一.简历种类 1.中式 中式简历中,常包括政治面貌,性格及身高体重等.如果中英文简历一起递交,建议中文不写政治面貌,因为如果去外企工作,背景中的政治色彩越少越好,起码没有必要让老外知道. 性格是一个主 ...
- Html基础知识讲解
Html基础知识讲解 <title>淄博汉企</title> </head> <body bgcolor="#66FFCC" topmar ...
- Pacman主题下给Hexo增加简历类型
原文 http://blog.zanlabs.com/2015/01/02/add-resume-type-to-hexo-under-pacman-theme/ 背景 虽然暂时不找工作,但是想着简历 ...
- IT人如何打造个性化的个人网站(在线简历)
前言 众所周知,IT行业人员在求职时,如果拥有自己的技术博客和个人网站多少是可以加些分的,因为这也是IT人的技术证明之一.内容丰富的技术博客就不必多少了,往往技术博客大神市场上多是供不应求的,而且技术 ...
- M451例程讲解之GPIO.H
到了CORTEX-M4,几乎每一快都有很大的知识量,单单GPIO库文件这一项就有很长的章节要描述,加油吧 GPIO.h.是最基础的一个库文件,下面结合数据手册来一一进行讲解: 先把库文件粘上,方便一一 ...
- 大白话系列之C#委托与事件讲解大结局
声明:本系列非原创,因为太精彩才转载,如有侵权请通知删除,原文:http://www.cnblogs.com/wudiwushen/archive/2010/04/20/1698795.html 今天 ...
- Java 快速排序讲解
快速排序由于排序效率在同为 O(nlogn) 的几种排序方法中效率最高,因此经常被采用.再加上快速排序思想——分治法也确实非常实用,所以 在各大厂的面试习题中,快排总是最耀眼的那个.要是你会的排序算法 ...
- 曾Python培训讲师-2年Python开发无包装简历-20191217-可公开
目录 个人介绍 技能介绍 项目经历 自我评价 简历非完整版,需要完整版看下述信息,禁止任何一切私人用途.转发 我生日是27号,那就27元一份,有需求的来购买!只会涨价不会降价,大概卖10份涨1元:曾P ...
- [LeetCode] 931. Minimum Falling Path Sum 下降路径最小和
Given a square array of integers A, we want the minimum sum of a falling path through A. A falling p ...
随机推荐
- linux 输出 之 nl 命令
1.命令格式:nl [选项]... [文件]... 2.命令参数: -b :指定行号指定的方式,主要有两种: -b a :表示不论是否为空行,也同样列出行号(类似 cat -n): -b t :如果 ...
- jquery、js判断复选框是否选中
js: if (document.getElementById("checkboxID").checked) { alert("checkobx is checked&q ...
- (转)通过shell脚本实现批量添加用户和设置随机密码以及生产环境如何批量添加
通过shell脚本实现批量添加用户和设置随机密码以及生产环境如何批量添加 原文:http://www.21yunwei.com/archives/4773 有一个朋友问我如何批量创建用户和设置密码 , ...
- filter 静态资源
package com.itheima.web.filter; import java.io.IOException; import javax.servlet.Filter; import java ...
- svn checkout时连接不到服务器,重装也没有弹出用户名和密码输入框的问题
用公司的电脑,是win7 64位的系统,可以checkout出东西.现在用自己的电脑上,系统是win7 64位的,却再也连不上SVN. 1.不提示输入用户名和密码,不管重装多少次都一样. 2.Tort ...
- JS识别不同浏览器信息
总所周知,不同浏览器兼容是不一致的,然而今天我在Coding的时候深深体会到那个痛苦,一样的代码在Firefox里面是没问题的,可以根据索引找到 对应的对象元素然后进行操作,但是同样的却获取不到对象元 ...
- 初学Hadoop之计算TF-IDF值
1.词频 TF(term frequency)词频,就是该分词在该文档中出现的频率,算法是:(该分词在该文档出现的次数)/(该文档分词的总数),这个值越大表示这个词越重要,即权重就越大. 例如:一篇文 ...
- tornado基本使用【服务】
1.安装 2.请求处理程序和请求参数 1.安装 pip install tornado 2.请求处理程序和请求参数 Tornado 的 Web 程序会将 URL 或者 URL 范式映射到 tornad ...
- 02.List泛型集合
List泛型可以转换成数组 List泛型和数组的相同点: List泛型的数据类型必须是指定的,数组的数据类型也必须是指定的. List泛型和数组的不同点: List泛型的长度是随意的,而数组的长度必须 ...
- Python进阶篇四:Python文件和流
摘要: Python对于文件和流的操作与其他编程语言基本差不多,甚至语句上比其他语言更为简洁.文件和流函数针对的对象除了这两者之外还有,类文件(file-like),即python中只支持读却不支持写 ...