win10+vs2013+opencv 3.1编译darknet YOLOv3 采坑记录

2023-12-24 19:48

本文主要是介绍win10+vs2013+opencv 3.1编译darknet YOLOv3 采坑记录,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

网上教程很多,推荐https://blog.csdn.net/maweifei/article/details/81150489这篇博客讲的很详细,基本按照这个流程没有问题。

但是每个人的电脑环境都不同,我的环境:

win10 x64位,vs2013,opencv contrib 3.10版本,显卡GTX1060,cuda版本10.1,cudnn版本7.5

我在此记录下遇到的一些问题:

1、首先用vs编译c文件会出现一些语法错误,比如xxx没有声明,不明确的定义...之类的,举个例子

这个问题我查到的原因是,要将变量的声明放在函数的最开头,不能放在其他语句之后。就像这里的

#ifdef GPU
    if(gpu_index >= 0) return train_network_datum_gpu(net, x, y);
#endif

这一部分就放在了network_state state;声明之前了,解决办法如下:

还有其他类似的变量声明问题也可以按这个办法解决。

2、darknet是用C语言写的,里面有关于二进制操作的语句:

就像这里的0b1,表示二进制1,在c++中好像没有这种直接表示二进制的写法,所以会报错, 我这里的解决办法是,直接将2进制转成10进制,也可以进行&操作。

如果是0b1111就转成15即可。报错是没有了,这么操作不知道会不会有什么不好的结果。

3、关于im2col_kernel.cu文件中报的各种错误,直接忽略,可以编译成功。

4、关于std::min和std::max报错,在预处理器定义中加入NOMINMAX即可。

其他的一些问题我这里就不记录了,百度一下基本就可以找到。

编译成功之后就会在下面的文件夹下生成darknet.exe。此外我也试着编译生成了darknet_no_gpu.exe,这个配置比较简单,不用配置cuda什么的。

后续会在c++中调用编译好的YOLOv3模型。

这篇关于win10+vs2013+opencv 3.1编译darknet YOLOv3 采坑记录的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/532921

相关文章

基于Spring Boot 的小区人脸识别与出入记录管理系统功能

《基于SpringBoot的小区人脸识别与出入记录管理系统功能》文章介绍基于SpringBoot框架与百度AI人脸识别API的小区出入管理系统,实现自动识别、记录及查询功能,涵盖技术选型、数据模型... 目录系统功能概述技术栈选择核心依赖配置数据模型设计出入记录实体类出入记录查询表单出入记录 VO 类(用于

Win10安装Maven与环境变量配置过程

《Win10安装Maven与环境变量配置过程》本文介绍Maven的安装与配置方法,涵盖下载、环境变量设置、本地仓库及镜像配置,指导如何在IDEA中正确配置Maven,适用于Java及其他语言项目的构建... 目录Maven 是什么?一、下载二、安装三、配置环境四、验证测试五、配置本地仓库六、配置国内镜像地址

java中pdf模版填充表单踩坑实战记录(itextPdf、openPdf、pdfbox)

《java中pdf模版填充表单踩坑实战记录(itextPdf、openPdf、pdfbox)》:本文主要介绍java中pdf模版填充表单踩坑的相关资料,OpenPDF、iText、PDFBox是三... 目录准备Pdf模版方法1:itextpdf7填充表单(1)加入依赖(2)代码(3)遇到的问题方法2:pd

OpenCV在Java中的完整集成指南分享

《OpenCV在Java中的完整集成指南分享》本文详解了在Java中集成OpenCV的方法,涵盖jar包导入、dll配置、JNI路径设置及跨平台兼容性处理,提供了图像处理、特征检测、实时视频分析等应用... 目录1. OpenCV简介与应用领域1.1 OpenCV的诞生与发展1.2 OpenCV的应用领域2

在Java中使用OpenCV实践

《在Java中使用OpenCV实践》用户分享了在Java项目中集成OpenCV4.10.0的实践经验,涵盖库简介、Windows安装、依赖配置及灰度图测试,强调其在图像处理领域的多功能性,并计划后续探... 目录前言一 、OpenCV1.简介2.下载与安装3.目录说明二、在Java项目中使用三 、测试1.测

Go语言编译环境设置教程

《Go语言编译环境设置教程》Go语言支持高并发(goroutine)、自动垃圾回收,编译为跨平台二进制文件,云原生兼容且社区活跃,开发便捷,内置测试与vet工具辅助检测错误,依赖模块化管理,提升开发效... 目录Go语言优势下载 Go  配置编译环境配置 GOPROXYIDE 设置(VS Code)一些基本

Zabbix在MySQL性能监控方面的运用及最佳实践记录

《Zabbix在MySQL性能监控方面的运用及最佳实践记录》Zabbix通过自定义脚本和内置模板监控MySQL核心指标(连接、查询、资源、复制),支持自动发现多实例及告警通知,结合可视化仪表盘,可有效... 目录一、核心监控指标及配置1. 关键监控指标示例2. 配置方法二、自动发现与多实例管理1. 实践步骤

java使用protobuf-maven-plugin的插件编译proto文件详解

《java使用protobuf-maven-plugin的插件编译proto文件详解》:本文主要介绍java使用protobuf-maven-plugin的插件编译proto文件,具有很好的参考价... 目录protobuf文件作为数据传输和存储的协议主要介绍在Java使用maven编译proto文件的插件

Python使用OpenCV实现获取视频时长的小工具

《Python使用OpenCV实现获取视频时长的小工具》在处理视频数据时,获取视频的时长是一项常见且基础的需求,本文将详细介绍如何使用Python和OpenCV获取视频时长,并对每一行代码进行深入解析... 目录一、代码实现二、代码解析1. 导入 OpenCV 库2. 定义获取视频时长的函数3. 打开视频文

Visual Studio 2022 编译C++20代码的图文步骤

《VisualStudio2022编译C++20代码的图文步骤》在VisualStudio中启用C++20import功能,需设置语言标准为ISOC++20,开启扫描源查找模块依赖及实验性标... 默认创建Visual Studio桌面控制台项目代码包含C++20的import方法。右键项目的属性: