YOLO V4 :win10+cpu环境的体验
1、前言
Yolo V3已经体验了,接下来是V4版本。
关于V4版本,学术界褒贬不一。从工业界实际应用角度看,V4做了不少的优化,精度提升了10%,速度提升了12%。详细参见:
《如何评价新出的V4》(https://www.zhihu.com/question/390191723?rf=390194081);
《yolo V4分析》(https://www.cnblogs.com/wujianming-110117/p/12807152.html)。
因此,V4必须要体验和研究一下。
2、下载和安装
关于windows环境下,使用yolo V4,参考了网上的几篇文章,大同小异,如:https://blog.csdn.net/weixin_43723614/article/details/105772081。
V4版本最好有GPU,奈何我的笔记本电脑配置的显卡是:Intel(R) UHD Graphics 620,没法用GPU。
因此我只能用CPU版本。于是cuda10.0和cuDNN7的安装就省略了。
2.1、下载v4代码
代码地址:https://github.com/AlexeyAB/darknet
Download zip或git clone方式都可以(我都试过一遍)。
2.2、安装OpenCV
到官网下载,我下载的是open 4.2.0版本,win10系统,支持VS2015。(opencv-4.2.0-vc14_vc15.exe)。
这个实际是个压缩包,exe执行解压缩。
然后按照引用网文的做法,配置OPENCV_DIR环境变量,在Path中增加:opencv\build\x64\vc14\bin的路径(其它路径可不加)。
2.3、使用gcc编译的问题
一开始,我按照V3的编译的方法,即使用cygwin来编译。
用cygwin64 terminal工具,直接在代码的根目录下,输入make,编译OK,生成了darknet.exe。
执行图片检测:
darknet.exe detect cfg/yolov3.cfg yolov3.weights test.jpg
可以的。
再下载一个yolov4.weights文件,执行:
darknet.exe detect cfg/yolov4.cfg yolov4.weights test.jpg
也是可以的。
但opencv没有用起来,提示:
OpenCV isn't used - data augmentation will be slow.
Not compiled with OpenCV, saving to predictions.png instead
于是修改makefile文件,将第4行的:OPENCV=0改为OPENCV=1。
于是问题来了。
1)首先是,pkg-config命令不能识别(makefile文件的第90行),通过更新cygwin的安装,增加pkg-config项,得以解决。
2)其次,提示:需要将包含opencv.pc文件的目录,配置到环境变量PKG_CONFIG_PATH。我上网查了一下,这是linux的opencv版本才有的文件。
折腾了一番,还是搞不定opencv。不得已,使用网上的CMake的方法。
2.4、使用CMake
参考之前引文的方法,先到官网下载CMake,然后类似配置。
配置VS2015 VC14。
关于配置,我的电脑不支持GPU,因此ENABLE_CUDA、ENABLE_CUDANN、ENABLE_CUDANN_HALF不勾选。
一个小坑:USE_INTEGRATED_LIBS必须勾选,我一不小心去掉勾选,结果报了一堆下列错误:
错误 C2011 “timespec”:“struct”类型重定义 darknet E:\workspace\darknet\3rdparty\pthreads\include\pthread.h 320
配置(configure)完成后,然后generate,没有问题。然后再点击open project,打开VS2015。
选择:release、x64,build all。
OK。
将编译生成的darknet.exe复制到:\build\darknet\x64\目录下。此为darknet.exe的运行环境。
3、效果体验
图片检测:
darknet.exe detector test cfg/coco.data yolov4.cfg yolov4.weights -ext_output dog.jpg
视频检测:
darknet.exe detector demo cfg/coco.data cfg/yolov4.cfg yolov4.weights -ext_output test.mp4
由于只使用CPU,没有GPU,openCV显示视频非常卡顿(FPS=0.2)。网上说,2G内存都没法试验,会内存溢出。我的电脑内存有16G,故只是慢一些。
YOLO V4 :win10+cpu环境的体验的更多相关文章
- YOLO V4的模型训练
1.YOLO V4模型训练的基本思路 所有机器学习涉及模型训练,一般都有训练集.验证集.测试集,因此需要准备数据集.有了数据集,再调用训练的算法,获取训练的结果.v3.v4模型训练方法相同. 2.YO ...
- 如何将Win10 的环境变量页面设置用在win7上面?
如何将Win10 的环境变量设置用在win7上面? Win7一般是如下设置: Win10 是如下设置: 解决办法: 注册表 HKEY_LOCAL_MACHINE\SYSTEM\CurrentContr ...
- mpstat---用于多CPU环境下,显示各个可用CPU的状态
mpstat命令指令主要用于多CPU环境下,它显示各个可用CPU的状态系你想.这些信息存放在/proc/stat文件中.在多CPUs系统里,其不但能查看所有CPU的平均状况信息,而且能够查看特定CPU ...
- TensorFlow CPU环境 SSE/AVX/FMA 指令集编译
TensorFlow CPU环境 SSE/AVX/FMA 指令集编译 sess.run()出现如下Warning W tensorflow/core/platform/cpu_feature_guar ...
- YOLO v4分析
YOLO v4分析 YOLO v4 的作者共有三位:Alexey Bochkovskiy.Chien-Yao Wang 和 Hong-Yuan Mark Liao.其中一作 Alexey Bochko ...
- YOLO v1到YOLO v4(下)
YOLO v1到YOLO v4(下) Faster YOLO使用的是GoogleLeNet,比VGG-16快,YOLO完成一次前向过程只用8.52 billion 运算,而VGG-16要30.69bi ...
- YOLO v1到YOLO v4(上)
YOLO v1到YOLO v4(上) 一. YOLO v1 这是继RCNN,fast-RCNN和faster-RCNN之后,rbg(RossGirshick)针对DL目标检测速度问题提出的另外一种框 ...
- 目标检测中特征融合技术(YOLO v4)(下)
目标检测中特征融合技术(YOLO v4)(下) ASFF:自适应特征融合方式 ASFF来自论文:<Learning Spatial Fusion for Single-Shot Object D ...
- 目标检测中特征融合技术(YOLO v4)(上)
目标检测中特征融合技术(YOLO v4)(上) 论文链接:https://arxiv.org/abs/1612.03144 Feature Pyramid Networks for Object De ...
随机推荐
- C++ primer plus读书笔记——第10章 对象和类
第10章 对象和类 1. 基本类型完成了三项工作: 决定数据对象需要的内存数量: 决定如何解释内存中的位: 决定可使用数据对象执行的操作或方法. 2. 不必在类声明中使用关键字private,因为这是 ...
- Ubuntu 20.04 配置多网卡链路聚合
Ubuntu 20.04 配置多网卡链路聚合 多网卡IP配置 首先查看网卡信息 root@it:~# ip add 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65 ...
- 使用LUKS加密你的磁盘
计算机数据的安全,保密性在现在的生活中显得越来越重要.随着数字化的时代的来临,越来越多的数据被数字化,特别是更多有关于我们隐私的数据在不断生成,甚至还有我们需要离线保存的密钥等.而且通常我们使用磁盘, ...
- kylin聚合组的使用案例
在使用kylin聚合组进行优化的时候,往往不知道怎么使用. 这里有2个小案例可以参考. 1. 需要对某个维度进行隔离. 如果有些维度,你不想要它和其他维度一起出现,你就可以单独给它建一个聚合组,并且在 ...
- zabbix企业级的分布式开源监控解决方案 v5.0 LTS
目录 zabbix简介 服务模块 客户端守护进程 监控流程 功能拆解 安装 zabbix 5.0 LTS 参考官网 zabbix 5.0.12-1.el7 zabbix-server相关优化 1. 字 ...
- vue 安装sass5.0版本遇到的问题
cnpm install node-sass@4.9.2 --save-dev cnpm install sass-loader@7.3.1 --save-dev cnpm install style ...
- 能够划分局域网的VLAN
VLAN与三层交换机 1. VLAN的概述与优势 1.1 分割广播域 1.2 VLAN的优势 2. VLAN的种类 2.1 静态VLAN 2.2 动态VLAN 3. VLAN的ID 4.三层交换机转发 ...
- ARM Cortex-M嵌入式C基础编程(上)
ARM Cortex-M嵌入式C基础编程(上) ARM Cortex-M Embedded C Fundamentals/Tutorial -Aviral Mittal 此技术是关于从编写简单的嵌入式 ...
- 字节首推Java成长笔记:(原理+应用+源码+调优全都有)直接复盘
今天这篇文章我为了帮助小伙伴们快速构建Java技术栈,这份笔记包含了Java技术点的答案,面经,笔记,希望大家看完可以在短期内容快速面试复盘,达到事半功倍! 本来想将文件上传到开源网站上去,但是文件太 ...
- 使用fiddler工具模拟弱网环境
1.使用CTRL+R快捷键调出设置窗口 2.CTRL+F搜索"if (m_SimulateModem)",如下图 3.设置 // 这里修改每KB上传时候的延迟速度,以ms为单位 ...
