yolov4的Pytorch(cpu版)安装步骤详解,有手就能学会

2023-11-05 08:30

本文主要是介绍yolov4的Pytorch(cpu版)安装步骤详解,有手就能学会,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

我的环境

win10+anaconda(创建的python=3.6版本)+yolov4+Pytorch(cpu版)

1. 准备文件

  1. pytorch-YOLOv4代码下载 https://github.com/Tianxiaomo/pytorch-YOLOv4
    上面这个是别人一直在更新的,本文中用可能会出错,因为我是之前下载的版本,你们可以下载这个,按照文中步骤应该就没问题。(9月13日上传)
    链接:https://pan.baidu.com/s/1AmCL25n6yKpABF1j7w1CFg
    提取码:w448
  2. 权重(weights)模型下载
    谷歌云盘 https://drive.google.com/open?id=1cewMfusmPjYWbrnuJRuKhPMwRe_b9PaT
    GitHub下载https://github.com/AlexeyAB/darknet/releases/download/darknet_yolo_v3_optimal/yolov4.weights
    把上面的代码下载之后解压,解压之后的目录下创建一个weight的文件夹,在weight的文件夹里放上面的权重文件。整理之后如下图:在这里插入图片描述
    这样子文件都准备完成了

2. 创建环境

  1. anaconda创建python=3.6的虚拟环境
    进入cmd,命令 conda create -n yolov4(这个是起的名字)python=3.6
conda create -n yolov4 python=3.6

激活这个环境

activate yolov3-pytorch

还需要安装依赖,可以去官网根据自己的需要选择,https://pytorch.org/

我的命令如下

conda install pytorch torchvision cpuonly -c pytorch

我的只需要安装这一个就行的,所有的依赖包如下,我也不懂每一个都有什么意义。

(ceshi) C:\Users\Administrator\Desktop\YOLOv4\pytorch-YOLOv4-master\pytorch-YOLOv4-master>pip list
Package      Version
------------ -------------------
certifi      2020.4.5.1
mkl-fft      1.0.15
mkl-random   1.1.0
mkl-service  2.3.0
numpy        1.18.1
olefile      0.46
Pillow       7.1.2
pip          20.0.2
setuptools   46.1.3.post20200330
six          1.14.0
torch        1.5.0
torchvision  0.6.0
wheel        0.34.2
wincertstore 0.2

到这里,文件准备好了,环境搭建好了,接下来就是测试。

3. 测试

打开cmd,激活搭建的环境,在进入到你解压的文件目录下,然后用如下命令,确保每一个文件都在对应的文件夹下(yolov4.cfg在cfg文件夹下,yolov4.weights在weight文件夹下,dog.jpg在data文件夹下)

python demo.py cfg/yolov4.cfg weight/yolov4.weights data/dog.jpg

运行之后部分代码如下:

  149 conv    255  1 x 1 / 1    38 x  38 x 512   ->    38 x  38 x 255150 detection151 route  147152 conv    512  3 x 3 / 2    38 x  38 x 256   ->    19 x  19 x 512153 route  152 116154 conv    512  1 x 1 / 1    19 x  19 x1024   ->    19 x  19 x 512155 conv   1024  3 x 3 / 1    19 x  19 x 512   ->    19 x  19 x1024156 conv    512  1 x 1 / 1    19 x  19 x1024   ->    19 x  19 x 512157 conv   1024  3 x 3 / 1    19 x  19 x 512   ->    19 x  19 x1024158 conv    512  1 x 1 / 1    19 x  19 x1024   ->    19 x  19 x 512159 conv   1024  3 x 3 / 1    19 x  19 x 512   ->    19 x  19 x1024160 conv    255  1 x 1 / 1    19 x  19 x1024   ->    19 x  19 x 255161 detection
Loading weights from weight/yolov4.weights... Done!
data/dog.jpg: Predicted in 5.850648 seconds.
truck: 0.970982
dog: 0.999997
bicycle: 1.000000
save plot results to predictions.jpg

文件夹下面就多了一个图片文件,咱们可以重新命名predictions_yolov4.jpg,否则你测试另外一个图片,这个就会被覆盖。之后可以在测试另外一个图片,命令如下:

python demo.py cfg/yolov4.cfg weight/yolov4.weights data/giraffe.jpg

这样两个图片的测试就完成了。yolov4
第二个
在这里插入图片描
如果你有yolov3.weights,https://pjreddie.com/media/files/yolov3.weights
把这个权重也放在weight文件夹下面,你可以在测试yolov3的效果。代码需要修改一下,就是把yolov4变成yolov3就行了,命令如下:

python demo.py cfg/yolov3.cfg weight/yolov3.weights data/dog.jpg

图片是下面的,这个没有yolov4的效果好,应该与我的程序没有修改有关系!!在这里插入图片描述
在这里插入图片描述

4. camera.py和models.py

如果想用comera.py,需要增加一个依赖包opencv-python,命令如下:

pip install opencv-python

然后直接运行camera.py就可以,就是调用电脑的摄像头,框选图像并标注,命令是:

python camera.py

图像是:
在这里插入图片描述

这个电脑摄像头和精度堪忧啊。

好了,就写这么多了,感觉我这都是傻瓜式的,一步一步来的,有手就能学废,你学废了吗。。。。。学废的扣6,没学废的扣眼珠子。
至于models.py,我还没怎么看,关键是我也不太懂啊,就先不写了。

参考:https://blog.csdn.net/AliceZyxw/article/details/105307498

https://blog.csdn.net/weixin_45829462/article/details/104705937

这篇关于yolov4的Pytorch(cpu版)安装步骤详解,有手就能学会的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

HTML5的input标签的`type`属性值详解和代码示例

《HTML5的input标签的`type`属性值详解和代码示例》HTML5的`input`标签提供了多种`type`属性值,用于创建不同类型的输入控件,满足用户输入的多样化需求,从文本输入、密码输入、... 目录一、引言二、文本类输入类型2.1 text2.2 password2.3 textarea(严格

windows下安装Nginx全过程

《windows下安装Nginx全过程》文章介绍了HTTP和反向代理服务器的概念,包括正向代理和反向代理的区别,并详细描述了如何安装和配置Nginx作为反向代理服务器... 目录概念代理正向代理反向代理安装基本属性nginx.conf查询结构属性使用运行重启停止总结概念是一个高性能的HTTP和反向代理we

C++ move 的作用详解及陷阱最佳实践

《C++move的作用详解及陷阱最佳实践》文章详细介绍了C++中的`std::move`函数的作用,包括为什么需要它、它的本质、典型使用场景、以及一些常见陷阱和最佳实践,感兴趣的朋友跟随小编一起看... 目录C++ move 的作用详解一、一句话总结二、为什么需要 move?C++98/03 的痛点⚡C++

MySQL中between and的基本用法、范围查询示例详解

《MySQL中betweenand的基本用法、范围查询示例详解》BETWEENAND操作符在MySQL中用于选择在两个值之间的数据,包括边界值,它支持数值和日期类型,示例展示了如何使用BETWEEN... 目录一、between and语法二、使用示例2.1、betwphpeen and数值查询2.2、be

python中的flask_sqlalchemy的使用及示例详解

《python中的flask_sqlalchemy的使用及示例详解》文章主要介绍了在使用SQLAlchemy创建模型实例时,通过元类动态创建实例的方式,并说明了如何在实例化时执行__init__方法,... 目录@orm.reconstructorSQLAlchemy的回滚关联其他模型数据库基本操作将数据添

Java中ArrayList与顺序表示例详解

《Java中ArrayList与顺序表示例详解》顺序表是在计算机内存中以数组的形式保存的线性表,是指用一组地址连续的存储单元依次存储数据元素的线性结构,:本文主要介绍Java中ArrayList与... 目录前言一、Java集合框架核心接口与分类ArrayList二、顺序表数据结构中的顺序表三、常用代码手动

JAVA线程的周期及调度机制详解

《JAVA线程的周期及调度机制详解》Java线程的生命周期包括NEW、RUNNABLE、BLOCKED、WAITING、TIMED_WAITING和TERMINATED,线程调度依赖操作系统,采用抢占... 目录Java线程的生命周期线程状态转换示例代码JAVA线程调度机制优先级设置示例注意事项JAVA线程

详解C++ 存储二进制数据容器的几种方法

《详解C++存储二进制数据容器的几种方法》本文主要介绍了详解C++存储二进制数据容器,包括std::vector、std::array、std::string、std::bitset和std::ve... 目录1.std::vector<uint8_t>(最常用)特点:适用场景:示例:2.std::arra

C++构造函数中explicit详解

《C++构造函数中explicit详解》explicit关键字用于修饰单参数构造函数或可以看作单参数的构造函数,阻止编译器进行隐式类型转换或拷贝初始化,本文就来介绍explicit的使用,感兴趣的可以... 目录1. 什么是explicit2. 隐式转换的问题3.explicit的使用示例基本用法多参数构造

Android使用java实现网络连通性检查详解

《Android使用java实现网络连通性检查详解》这篇文章主要为大家详细介绍了Android使用java实现网络连通性检查的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录NetCheck.Java(可直接拷贝)使用示例(Activity/Fragment 内)权限要求