yolo的官方版本依赖比较少,但是习惯用caffe了,只好动手移植过来,也算是学习下在caffe中如何写自定义的loss_layer,当做一个练习。
在复现yolo的过程中,挣扎了好长时间,主要是训练数据的标注问题,一直没理解清楚7*7的网格到底是如何标注,网上虽然各种博客都做了复现,但是问了好多人,包括一些qq群上的人,没人愿意把这个事情说清楚,可能也是大家依葫芦画瓢,自己也理解得不清楚,,,最后是跟着51上的一个课程把这件事情做好。
用caffe复现yolo的重点在于损失函数层的编写以及训练数据的标注。损失函数的编写可以参照caffe已有的层来写,前提是会一些c++的基本编程和对反向传播的理解,推荐把sigmoid_layer的源码看明白就比较清楚;而关于训练数据的标注,要注意的是yolo对于置信度、类别、定位信息的标注顺序,而我们必须对7*7个网格都做标注,每个预测窗口跟这个标注做损失计算,跟常规的回归其实并没有什么不同。
最后上一张标注信息共各位参考学习