本文总结了使用yolo过程中出现的一些问题,在网络上找到了相关的解决方案。
1 使用darknet.py预测位置不准
1.1 使用python调用darknet
一般来说,模型训练好了,也可以使用shell命令进行预测了,下一步该在业务里面使用别的语言来调用了,我们这里使用python来调用yolo模型。
为了提高识别效率,当然不能直接在python里面来调用shell,这样的话每次调用都会重新加载一次模型,你想想有多慢?
darknet官方项目提供了python调用yolo模型的示例,也就是使用python与C交互,加载模型后就可以进行预测了,最后返回预测的坐标(其实返回的是中心点坐标和box的高宽)。
我们直接看到最后的代码部分:
if __name__ == "__main__":
#net = load_net("cfg/densenet201.cfg", "/home/pjreddie/trained/densenet201.weights", 0)
#im = load_image("data/wolf.jpg", 0, 0)
#meta = load_meta("cfg/imagenet1k.data")
#r = classify(net, meta, im)
#print r[:10]
net = load_net("cfg/tiny-yolo.cfg", "tiny-yolo.weights", 0)
meta = load_meta("cfg/coco.dat