【LSP】使用OpenCV调用yolo3 GPU版
http://cdn.u1.huluxia.com/g4/M01/60/44/rBAAdl9yMJiAdg1GAACt4WdlvYs481.jpg
使用OpenCV的DNN模块调用yolo3默认是CPU版本的,而且也不是真的调用yolo3,只是需要一个权重weights文件,一个配置cfg文件和一个标签列表names文件。
【重要部分】
网上的关于这一块的代码都大同小异,但是关键的地方在于一次加载多次调用,简单的加入
net.setPreferableBackend(cv.dnn.DNN_BACKEND_CUDA)
net.setPreferableTarget(cv.dnn.DNN_TARGET_CUDA)
这两句话是不管用的,实际运行速度和CPU的没区别。
先看一段代码:http://cdn.u1.huluxia.com/g4/M01/60/44/rBAAdl9yMJmAC48_AADvWwpBq3g628.jpg
http://cdn.u1.huluxia.com/g4/M01/60/44/rBAAdl9yMJmALb2xAAEHaqfbhik763.jpg
http://cdn.u1.huluxia.com/g4/M01/60/44/rBAAdl9yMJqAB7rYAAD12axs90M591.jpg
这老哥有个很好的思路就是把net提到了最上边,众所周知flask接口调用一次就要重新读取一次网络结构,这样我的flask接口基本写成这样,一些设计业务逻辑的代码被我删掉了,为了看着清楚只保留最基本的代码:http://cdn.u1.huluxia.com/g4/M01/60/44/rBAAdl9yMJuATnzjAAC7ZyL3Pvg073.jpg
http://cdn.u1.huluxia.com/g4/M01/60/44/rBAAdl9yMJyAbg-ZAAIUMlVB4jA172.jpg
http://cdn.u1.huluxia.com/g4/M01/60/44/rBAAdl9yMJ2AOvYfAAC1E2pWNqs523.jpg
http://cdn.u1.huluxia.com/g4/M01/60/44/rBAAdl9yMJ-AF07VAAQ-ZCA-zvE037.jpg
经过测试 CPU下 400ms/张 GPU下 30ms/张 速度提升10倍左右 虽然照官方测试速度提升22倍还差的很远,至少可以证明这条路行得通~ 专业抢沙发的!哈哈 …… 顶起顶起顶起 鼎力支持!! 沙发??? 占位编辑 LZ敢整点更有创意的不?兄弟们等着围观捏~ 沙发???
页:
[1]