[YOLO]《YOLOv3: An Incremental Improvement》笔记
相比较于前两篇论文,个人感觉YOLO3作者有点来搞笑的!!!虽然加了一些新的点子进来,但是,论文的开头是这样的:
简单理解就是作者花了很多时间玩Twitter去了,所以没有做啥研究!!!!
然后:
你可以引用自己的论文吗?猜猜谁会这么做,就是这家伙,然后我发现链接竟然是他自己这篇论文:
还有调侃下谷歌、脸书等大公司和目标检测等技术:
很多从事这项研究的在谷歌和脸书,所以我们应该相信他们不会用技术来采集我们的信息然后拿来卖!!!等等,你是说这才是技术的真正用途????哈哈,投资计算机视觉研究的都是军方的人,他们从未将新技术用来杀人!!!
接着作者说:
希望搞计算视觉的人是出于兴趣做一件快乐的事情,比如数数公园里斑马的数量,跟踪下房子周围的猫!!!!
重要的是接下来的一句,他说:
不要艾特我,我终于退出推特了!!!
好咯,言归正传,那么其实这篇论文相比较前两篇,倒是没啥其他特别的点,总结起来主要也就是新的骨架和多尺度。
一、Bounding Box Prediction
目标边界框的预测实际上也还是沿用YOLO2的做法,网络会预测每个网格中目标边界框的四个坐标tx、ty、tw、th,如果每个网格相对于整体图像的左上角的偏移量为(Cx,Cy),而先验边界框的宽度和高度为pw、ph,那么由预测值到坐标的映射如下:
训练的时候则是取所有损失的平方和。
YOLO3采用逻辑回归来预测每个边界框的包含目标的分数objectness score,如果边界框与ground truth object的重叠大于其它边界框,那么其分数为1,如果边界框不是最好的,但是与ground truth object的重叠大于一定阈值,那么就忽略该预测。系统只为每个ground truth object分配一个边界框,没有分配的边界框就不会对坐标或者类别的预测造成损失?
二、Class Prediction
类别预测,YOLO3不适用softmax,因为发现没啥特别影响,所以用独立的逻辑分类器。训练的时候用了二元交叉熵损失函数。
三、Predictions Across Scales
多尺度预测,YOLO3使用了三个尺度,借鉴了FPN,使用多尺度。最后一个卷积提取了一个三维的编码了边界框、目标分数和类别预测等信息的张量,以COCO数据集为例子,每个尺度都会预测三个边界盒子,那么每个尺度的张量大小为:
其中4为4个边界框偏移量,1个目标检测分数,80个类别的概率。三个尺度之间的大小关系是彼此2倍的递进的关系。通过上采样将小尺度特征图与大尺度特征图拼接,然后又新加一些卷积层对融合后的特征做了处理。
YOLO3同样使用K均值聚类来计算先验框,对三个尺度计算了9个类,分别为:
四、Feature Extractor
特征提取部分,YOLO3设计了新的骨架,Darknet53,因为用了53个卷积层:
新骨架与Darknet19和其它网络的性能对比如下:
Darknet53的表现还是比较好的。
四、Training
跟YOLO2的做法基本上是类似的。
五、Things We Tried That Didn’t Work
作者做了一些新的尝试,但是没有作用:
1、Anchor box x, y offset predictions:尝试用常规的先验框机制,也就是用线性激活函数预测x、y为边界框宽度和高度的倍数,但是没用。
2、Linear x, y predictions instead of logistic:用线性激活函数直接预测x、y偏移量,而不是用逻辑回归,没用。
3、Focal loss:尝试用Focal loss,但是没用,可能YOLO3对于Focal loss要解决的问题来说已经很溜了,不需要Focal loss了吧,这点作者做了一些测试,但是也说不准。
4、Dual IOU thresholds and truth assignment:尝试采用Faster RCNN采用的双阈值策略,但是没用。
六、YOLO3 表现:
在COCO上与其它算法的对比,不如RetinaNet,但是基本上也还是比SSD好一些(相爱相杀?)
论文:https://arxiv.org/pdf/1804.02767.pdf
支离东北风尘际,漂泊西南天地间。
三峡楼台淹日月,五溪衣服共云山。
羯胡事主终无赖,词客哀时且未还。
庾信平生最萧瑟,暮年诗赋动江关。
-- 杜甫 《咏怀古迹 五首 其一》
最新文章
- 一次修改闭源 Entity Provider 程序集以兼容新 EntityFramework 的过程
- IO(六)--- 编码和解码
- nodemailer实现node发送邮件
- linux查看rpm包创建的所有目录和文件
- Mysql 导入 MSSQL
- iOS 十六进制的相加取反
- Linux指令--df,du
- Docker 容器格式
- 推荐两个国外公共CDN服务
- ASP.NET MVC 下自定义 JsonResult,使用 Json.NET 序列化 JSON
- ABP大型项目实战(2) - 调试与排错 - 日志 - 查看审计日志
- Flask对数据库的操作-----
- Luogu4916 魔力环 莫比乌斯反演、组合、生成函数
- Android_Fragment和Activity之间的通信
- REPLACE函数的使用方法
- linxu自定义安装及网络配置
- mysql 案例 ~ pt-io工具的使用
- 好吧,我承认我是爱瞎折腾----利用YDUI改变页面UI
- GoldenGate实时投递数据到大数据平台(6)– HDFS
- threejs绘制顺序
热门文章
- Python 之并发编程之进程下(事件(Event())、队列(Queue)、生产者与消费者模型、JoinableQueue)
- 使用oracle 的 PL/Sql 定时执行一个存储过程
- egret inspector插件无法使用
- 编写跨平台Java程序注意事项
- Java8使用Stream优雅地处理集合
- java并发队列
- 一、java基础-数据类型_数据类型转化_字符编码_转义字符
- SC.Lab3对于Factory的构建过程(from HIT)
- pug
- lnmp1.5安装swoole