【LSP】使用OpenCV调用yolo3 GPU版

柚子论坛   ·   发表于 22天前   ·   编程代码

使用OpenCV的DNN模块调用yolo3默认是CPU版本的,而且也不是真的调用yolo3,只是需要一个权重weights文件,一个配置cfg文件和一个标签列表names文件。

【重要部分】

网上的关于这一块的代码都大同小异,但是关键的地方在于一次加载多次调用,简单的加入

net.setPreferableBackend(cv.dnn.DNN_BACKEND_CUDA)

net.setPreferableTarget(cv.dnn.DNN_TARGET_CUDA)

这两句话是不管用的,实际运行速度和CPU的没区别。

先看一段代码:

这老哥有个很好的思路就是把net提到了最上边,众所周知flask接口调用一次就要重新读取一次网络结构,这样我的flask接口基本写成这样,一些设计业务逻辑的代码被我删掉了,为了看着清楚只保留最基本的代码:

经过测试 CPU下 400ms/张 GPU下 30ms/张 速度提升10倍左右 虽然照官方测试速度提升22倍还差的很远,至少可以证明这条路行得通~
0 Reply   |  Until 22天前 | 4025 View
LoginCan Publish Content