【问题标题】:Include darknet Yolov3 for object detection包括用于对象检测的暗网 Yolov3
【发布时间】:2020-04-18 08:19:20
【问题描述】:

不幸的是,我对 C++ 和 Visual Studio 的处理不是很有经验。我要实现一个C++应用,在里面可以集成yolo或者darknet作为库,灵活使用。我正在使用 Windows 和 Visual Studio 2015。

我看过following repo。 到目前为止我所尝试的:

  • 我已经安装了 CUDA(虽然我想在 CPU 上运行模型以进行测试)、Cudnn 和 Opencv
  • 我使用 Visual Studio 从 AlexeyAb 存储库中的 build\darknet\darknet_no_gpu.sln 打开了 vs 解决方案。在 repo 中有很多头文件和 C 文件:

  • 我还将opencv\build\include 路径添加到附加包含目录opencv\x64\vc14\lib附加库目录opencv_world320.dllfile 到链接器Input 字段。

  • 我还设置了 x64Release

现在,我不知道该怎么做。仅仅创建一个source.cpp 并做一个#include "darknet.h" 似乎行不通。我收到很多错误,例如:darknet_no_gpu.exe' (Win32): Loaded 'C:\Windows\System32\kernel32.dll'. Cannot find or open the PDB file.。在 repo 中,在几个地方都提到了您必须构建解决方案,但这到底是什么意思,或者我之后得到了什么并用它做什么?

有人知道我该如何解决我的问题吗?我真的很高兴有任何建议!

【问题讨论】:

  • 有什么想法吗?

标签: c++ visual-studio solution yolo


【解决方案1】:

要在 C++ 应用程序中使用 Yolo v3,您可以使用 Alexey AB darknet repo
只需在build/darknet 文件夹中构建yolo_cpp_dll.slnyolo_cpp_dll_no_gpu.sln,具体取决于您是否需要GPU 支持。
存储库中还提供了一个示例控制台应用程序,它已经集成了 yolo dll 及其功能(请参阅build/darknet/yolo_console_dll.sln)。
您可以找到有关如何使这些解决方案发挥作用以及如何将暗网用作 dll 库 here 的更多信息。
yolo dll的C++ API可以找到here

要将 Yolo DLL 添加到 VS 项目中,您必须...

... 将 Build 设置为 Release x64
... 在 Release x64 的“配置属性”选项卡中配置以下属性:

  • Project->Configuration Properties->C/C++->General->Additional Include Directories下添加头文件(yolo_v2_class.hpp)的文件夹路径

  • Project->Configuration Properties->Linker->General->Additional Library Directories下添加lib文件的文件夹路径(yolo_cpp_dll.lib

  • Project->Configuration Properties->Linker->Input->Additional Dependencies下添加yolo_cpp_dll.lib

... 将pthreadVC2.dllyolo_cpp_dll.dll 放在您的.exe 文件附近(如果您已经构建了yolo_cpp_dll.slnyolo_cpp_dll_no_gpu.sln,您可以在build/darknet/x64 中找到这些dll)

感谢@glm_java 修复了我在使用 yolo dll 时的运行时问题!

如果您对如何构建或编译这些解决方案还有其他问题,请随时问我!

【讨论】:

  • 你知道在 Visual Studio 中包含 dll 的位置吗?
  • 对不起,那乱七八糟的请看一下编辑后的解决方案
  • 你有在树莓派上运行 yolo 的经历吗?如果是的话,如果您在这里查看我的问题,我将不胜感激:stackoverflow.com/questions/61360030/…
  • 我是否理解正确,您的主要目标是运行在 rasberry PI 上执行对象检测的控制台应用程序(用 c++ 或 python 编写)?如果是这样,从我所见,YOLOv3 是快速对象检测的一个很好的解决方案。缺点是,它需要大量的 GPU 才能这么快。因此,如果您使用的是未配备高端 GPU 的 rasberry PI,我建议您使用 YOLOv3-tiny,它不太准确,但速度更快。看看here 比较网络性能。
  • 是的,这是正确的。很棒的提示!但即使使用很小的 yolo,我的 fps 也非常低。您知道 tensorflow 中的其他模型或某些模型在嵌入式系统上是否更快?感谢您的帮助!
【解决方案2】:

@LRK 我遇到了同样的 bad_alloc 异常,我已经解决了将 Visual Studio 从调试模式更改为发布模式的问题。我希望它会起作用。

【讨论】:

  • 非常感谢!这解决了我的问题!我将编辑我的答案并给你学分
猜你喜欢
  • 1970-01-01
  • 2019-11-14
  • 1970-01-01
  • 2021-04-03
  • 1970-01-01
  • 1970-01-01
  • 2020-07-24
  • 1970-01-01
  • 2021-04-09
相关资源
最近更新 更多