我今天真的爆发了,把十来天看的两篇论文又复习了一遍,顺便也就都写了博客
说起YOLO,很早前就听过它的大名,快速的detection方案。但是比起YOLO,我很喜欢称之为YOU ONLY LOOK ONCE(一见倾心),这个名字真的是太有诗意了,hhh,笑出猪叫声。好啦,感觉每次说废话占去我博客十分之一的字有了,下面言归正传。
一、前言
首先要对比一下YOLO与之前常见的detection之间的最大差别,之前的方法都是把分类器稍加修改用来做detect,但是呢,在YOLO中提出了一种新的思路,使用回归来做detection,在空间上分离计算出bbox以及相应的probability,并且只需要一次计算就可以算出最后的结果。与之前诸多方法相比,YOLO最大的进步就是真正意义上实现了detection的实时效果。普通的YOLO可以达到45帧每秒的速度,而一种fast YOLO的改进型可以达到155帧每秒的速度。
总结来说,YOLO对比之前的网络有着以下的三点突破:
1、YOLO的速度很快,因为将detection作为一个regression的问题之后,它就不再需要大量的计算过程了,在不使用GPU的情况下就可以达到45帧每秒的处理速度。
2、YOLO采取整个图片作为输入,它获取的是全局的信息,因而能够做出更好的预测,不像一些基于滑窗或者是建议框的方法,YOLO能够提取到更加高级的语义信息。
3、YOLO具有更强的迁移性和适应性,当它被应用于一些陌生的场景时。
二、细说YOLO
作者在文中,将整个复杂的detection过程融合到一个简单的神经网络中去了,这是一个端到端的训练过程,在保持高速的同时保持着很高的正确率。
下面来看看YOLO是如何进行工作的,YOLO将整个输入的图片分为s*s个格子,如果一个待检测物体的中心落在这个格子中,那么这个格子就负责检测这个物体。
每个格子会预测B个bbox以及相应的confidence。这个confidence代表了模型对于该格子中包含物体的信赖度。作者使用这样一个公式来计算confidence: