Windows10下编译opencv以及yolov4、yolov4_cpp_dll.dll

2023-05-16

编译的安装顺序是,CUDA+CUDNN(安装包与压缩包不要删除,不要删除,不要删除,防止踩坑的后备),然后是VisualStdio,其次是OPENCV + 扩展库,最后是cmake。

环境变量配置,参考博文window10运行yolov4 GPU版 编译yolo_cpp_dll_小井dsc的博客-CSDN博客。其中,CUDA与OPENCV都需要进行环境配置,这对于以后的编译十分重要。

CUDA可以从nvidia官网进行安装,然后cudnn下载cuDNN Library for Windows (x86)即可,将各个文件夹下的分别对应放入cuda的文件夹内,然后配置环境变量。

VS是最好装的一个软件了,不需要博文参考。

OPENCV的编译坑非常多。参考:Windows系统下配置具有Contrib扩展模块的GPU版OpenCV(Windows10+VS2015+OpenCV3.4.3+CUDA9.0+cuDNN7.0)_stjuliet的博客-CSDN博客 

                                                      opencv4.2.0-windows-cuda-源码编译 - 知乎

1.无法下载一些.data,.i,或者zip文件。在opencv的build打开cmakedownload.txt,里边有下载的网址,下载完成后放入.cache对应的文件夹下,命名规则是hash值+文件名,cmakedownload.txt中也有相应提示。

如若hash值不对应的话,再进行config时,依然会报错,而且以后进行编译也会有隐患,最好自己下载。

2.必须找到with_cuda这个选项,其次还需要设置扩展库的路径,注意斜杠的方向,或者从cmake中找,然后自动填充路径。

编译yolov4

1.先cmake,找到cuda选项、cudnn选项以及OPENCV_DIR等,必须全部找到,没有找到CUDA的话,说明安装顺序有问题,卸载CUDA再重新安装一遍。如果OPENCV_DIR没有的话,在Cmakelist中加入

注意:一定要找到build文件下,并且注意时反斜杠。

2.再进行生成,打开项目。

3.在VS中,找到BUILDALL选项,生成(也可以在此配置好库、依赖等),如果用不到import darknet的话,则不需要配置。然后找到install,右击生成。完成编译。

编译yolo_cpp_dll.dll  思路参考:WIN10+YOLOv4,windows上完美执行YOLOv4目标检测丶Java教程网-IT开发者们的技术天堂

1.先修改yolo_cpp_dll.vcxproj中的CUDA版本与VS中的版本一致。路径在:C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\BuildCustomizations\CUDA 11.2.props,设置成Releas ×64

2.在VS中打开,进行生成,如果生成失败的话,出现错误MSB3721,那么将编译版本进行选择一下。都选择到最新即可。

3.添加包含库、库目录  参考:WIN10+YOLOv4,windows上完美执行YOLOv4目标检测丶Java教程网-IT开发者们的技术天堂

包含库

C:\Program Files (x86)\opencv\build\include
C:\Program Files (x86)\opencv\build\include\opencv 
C:\Program Files (x86)\opencv\build\include\opencv2

库目录

C:\Program Files (x86)\opencv\build\x64\vc14\lib

添加依赖,解决报错Link错误,无法解析外部符号,参考:opencv4.2.0-windows-cuda-源码编译 - 知乎

 

 CUDA C/C++选项中,修改device  compute值参考https://www.cnblogs.com/learnAI/archive/2004/01/13/12436540.html

然后右击项目,即可生成。将生成后的yolo_cpp_dll.lib拷贝至根目录下,即可,解决报错OSError: [WinError 126] 找不到指定的模块。

在daeknet.py中添加,解决报错ForceCPU未定义问题。

os.environ["CUDA_VISIBLE_DEVICES"] = '0'

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Windows10下编译opencv以及yolov4、yolov4_cpp_dll.dll 的相关文章

  • 为什么我的 DLL 无法注册?

    我正在 VS2005 中构建一个项目 但我的几个 DLL 无法注册 我在 Visual Studio 中收到的错误消息是 项目 错误 PRJ0019 工具从 注册 ActiveX 控件 返回错误代码 这很模糊 当我通过命令行手动注册DLL时
  • iphone opencv - 模板匹配

    我已经在我的 iphone 项目中实现了这个 OpenCV 构建 http aptogo co uk 2011 09 opencv framework for ios http aptogo co uk 2011 09 opencv fra
  • 从扫描文档中提取行表 opencv python

    我想从扫描的表中提取信息并将其存储为 csv 现在我的表提取算法执行以下步骤 应用倾斜校正 应用高斯滤波器进行去噪 使用 Otsu 阈值进行二值化 进行形态学开局 Canny 边缘检测 进行霍夫变换以获得表格行 去除重复行 10像素范围内相
  • 从 NumPy 数组到 Mat 的 C++ 转换 (OpenCV)

    我正在围绕 ArUco 增强现实库 基于 OpenCV 编写一个薄包装器 我试图构建的界面非常简单 Python 将图像传递给 C 代码 C 代码检测标记并将其位置和其他信息作为字典元组返回给 Python 但是 我不知道如何在 Pytho
  • 如何在dll级别读取app.config? [复制]

    这个问题在这里已经有答案了 我在一个解决方案中有一个控制台应用程序项目和库项目 dll The 图书馆项目有 app config 文件 我在其中存储我在库中使用的一些键值对 控制台应用程序引用此 dll 我有另一个 app config
  • 深度估计的准确性 - 立体视觉

    我正在研究立体视觉 我对这个问题的深度估计的准确性感兴趣 这取决于几个因素 例如 适当的立体校准 旋转 平移和失真提取 图像分辨率 相机和镜头质量 失真越小 色彩捕捉正确 两个图像之间的匹配特征 假设我们没有低成本的相机和镜头 没有廉价的网
  • 让网络摄像头在 OpenCV 中工作

    我正在尝试让我的网络摄像头在 Windows 7 64 位中的 OpenCV 版本 2 2 中捕获视频 但是 我遇到了一些困难 OpenCV 附带的示例二进制文件都无法检测到我的网络摄像头 最近我发现这篇文章表明答案在于重新编译一个文件 o
  • HoughLinesP后如何合并线?

    My task is to find coordinates of lines startX startY endX endY and rectangles 4 lines Here is input file 我使用下一个代码 img c
  • 将字符串作为 PChar 从 CSharp 传递到 Delphi DLL

    我正在尝试将字符串从 C 传递到 Delphi 构建的 DLL Delphi DLL 需要 PChar 这是Delphi导出 procedure DLL Message Location PChar AIntValue integer st
  • opencv中如何去除二值图像噪声?

    将图像转换为二值图像 黑白 后如果有任何噪音怎么办 我消除了那些不需要的噪音 您可以看到下图的黑色区域内有一些白噪声 我该如何去除噪声 使用opencv http img857 imageshack us img857 999 blackn
  • 应用程序处于中断模式。您的应用程序已进入中断状态,

    我发现自己遇到了同样的问题here https stackoverflow com questions 36204009 disable break mode page in vs2015 我在 dll 中使用 Windows 窗体 这是针
  • 未加载库:@rpath/libopenblasp-r0.2.19.dylib

    我应该如何解决这个问题 Monas MacBook Pro 02 02 mona python Python 3 6 1 Anaconda custom x86 64 default May 11 2017 13 04 09 GCC 4 2
  • 我的 Opencv 应用程序处理速度非常慢

    我正在构建一个 OpenCV 应用程序 它从相机捕获视频 并在删除背景后将其覆盖在另一个视频上 我无法达到合理的速度 因为它以大约 1 fps 的速度播放输出 而我的背景去除以 3 fps 的速度工作 有没有办法以正常速度显示背景视频并以
  • 如何在 Windows 10 PRO 上的 Visual Studio 2019 中添加对 Windows.ApplicationModel.DataTransfer 命名空间的引用

    Windows 10 Pro Visual Studio 2019 Net 版本 4 8 03752 几天前全新安装了所有内容 我正在尝试将 Windows ApplicationModel DataTransfer 命名空间添加到 Vis
  • 获取进程的所有 DLL

    我想获取为给定进程加载的所有 dll 的列表 我目前正在使用 NET框架4 0 我知道有一个bug https connect microsoft com VisualStudio feedback details 546430 syste
  • C++ OpenCV 3.4 / FFMPEG 3.4.1 VideoWriter 和 MP4 输出文件格式

    我正在运行 Linux 内核 4 9 35 ti r44 的 ARM BeagleBone X 15 Debian 机器 在我的 C Qt 5 应用程序中 我想将 cv Mat 帧保存为 MP4 格式视频 我安装了 libx264 并从头开
  • Alpha 混合可消除图像中的接缝

    我缝合了两张图像 但在最终图像中存在可见的接缝 我正在尝试使用阿尔法混合去除那条接缝 我知道 Alpha 混合是使用cvAddweight 函数 但在此函数参数是两个图像 alpha beta gamma和目的地 我正在服用gamma 0
  • 在 Tensorflow-lite Android 中将位图转换为 ByteBuffer(浮点)

    在用于图像分类的tensorflow lite android演示代码中 图像首先转换为ByteBuffer格式以获得更好的性能 这种从位图到浮点格式的转换以及随后到字节缓冲区的转换似乎是一个昂贵的操作 循环 按位运算符 float mem
  • 导入 SciPy 或 scikit-image,“from scipy.linalg import _fblas:导入错误:DLL 失败”

    我正在导入 from scipy import misc io 但我收到这些错误 Traceback most recent call last File C work asaaki code generateProposals py li
  • kubectl:在 WSL 终端中找不到

    我按照以下说明在 Windows10 上安装了 WSL2 https learn microsoft com en us windows wsl install win10 https learn microsoft com en us w

随机推荐