我想使用opencv-python4.4
对YOLOv3进行推断。但是默认情况下使用CPU。我已阅读此说明here,说新版本opencv4.2.0
已支持GPU。但是该指令仅适用于Ubuntu
,而我的指令是Windows10
。
我试图请您逐步指导我如何在Wondows10中实现此功能,python?当我直接使用它时,发生了错误:
cv::dnn::dnn4_v20191202::Net::Impl::setUpNet DNN module was not built with CUDA backend; switching to CPU
似乎我必须手动编译opencv
,但是不是Cpp
吗?但是我只想在python
上实现它。有人可以给我一些指示吗?
答案 0 :(得分:1)
您确实需要自己构建OpenCV。
在将Python绑定用于OpenCV时,OpenCV库本身是用C ++而不是Python编写的。这也说明了OpenCV如何使用CUDA(另一个C ++库)来访问NVidia GPU。
您链接的说明来自与OpenCV无关的人员,该人员承认存在Windows偏见。这意味着这些说明对您没有用。
These instructions确实涵盖了Windows版本。
摘要:
cv2.cp37-win_amd64.pyd
文件。答案 1 :(得分:0)
我想通了...两个
const filterItemsFlat = (items, results = []) => {
items.forEach(item => {
if (item.items) filterItemsFlat(item.items, results)
if (item.visible) results.push(item)
})
results.forEach(r => delete r.items)
return results
}
console.log(filterItemsFlat(
[
{ id: 'a', visible: 1 },
{ id: 'b', visible: 0 },
{
id: 'c',
visible: 0,
items: [
{ id: 'd', visible: 1 },
{ id: 'e', visible: 0 }
]
},
{ id: 'f', visible: 1, items: [{ id: 'g', visible: 0 }] },
{ id: 'h', visible: 0, items: [{ id: 'i', visible: 0 }] },
]
))
必须指定,否则-DBUILD_opencv_python3=ON
-DBUILD_opencv_python2=OFF
将完全不包含任何python模块。