caffe学习(七)caffe-YOLO模型

原本YOLO是一个darknet的独立代码,网上有些大神把其网络用caffe实现了。贴一个传送门https://github.com/xingwangsfu/caffe-yolo。这里参考这个代码实现一下,没有训练代码,需要将darknet训练好的参数转换成caffe格式。

修改deploy

要把yolo_deploy.prototxt里的fc26层中的num_output参数改为实际需要的。

参数模型格式转换

用darknet训练好的网络参数通过create_yolo_caffemodel.py用caffe读进来。darknet的权重保存格式很简单,前4个数是int型,分别表示major、minor、revision和net.seen,第五个参数开始就是一个一维浮点数组,存成二进制文件。读入之后,根据网络结构得到net的各层weights和bias的size大小,并按顺序传入。调用格式如下:

python create_yolo_caffemodel.py -m ./prototxt/yolo_deploy.prototxt -w yolo_final.weights -o yolo.caffemodel

YOLO检测

python yolo_main.py -m ./prototxt/yolo_deploy.prototxt -w yolo.caffemodel -i xxx.jpg