0环境教你怎么安装配置GPU环境运行车流量检测代码

news2024/11/18 22:53:50

项目效果:

python车流量检测双向车流计数

1、环境配置

1.1 安装显卡加速工具

(1) 安装CUDA和cudnn

NVIDIA CUDA® 深度神经网络库 (cuDNN) 是经 GPU 加速的深度神经网络基元库。cuDNN 可大幅优化标准例程(例如用于前向传播和反向传播的卷积层、池化层、归一化层和激活层)的实施。

世界各地的深度学习研究人员和框架开发者都依赖 cuDNN 实现高性能 GPU 加速。借助 cuDNN,研究人员和开发者可以专注于训练神经网络及开发软件应用,而不必花时间进行低层级的 GPU 性能调整。cuDNN 可加速广泛应用的深度学习框架,包括 Caffe2、Chainer、Keras、MATLAB、MxNet、PyTorch 和 TensorFlow。如需获取经 NVIDIA 优化且已在框架中集成 cuDNN 的深度学习框架容器,请访问 NVIDIA GPU CLOUD 了解详情并开始使用。

①查看显卡信息

若计算机带有英伟达系列的显卡的话才需要安装,没有的话跳过1.1。

查看自己的显卡的版本以及显卡支持的CUDA版本,在显卡驱动中,右键控制面板,点击左下角的系统信息,点击组件,查看NVCUDA64.DLL,可以看出我的计算机的最高支持的CUDA版本为11.1.96,安装小于这个版本的即可。本人使用的CUDA版本为10.1,其他版本其实也可以,但是防止报错和不兼容等问题还是推荐使用10.1。30系的显卡仅支持11版本的CUDA。

如果没有安装显卡驱动也不要紧,在安装CUDA时会对显卡驱动进行安装。

②下载CUDA

CUDA10.1:

以及对应cudnn:    

链接:https://pan.baidu.com/s/1PJb2RXJ37XOWlqDWzs3eZw 

提取码:715s

如果安装CUDA10.1就可以不进行以下操作了。

下载网址为CUDA Toolkit Archive | NVIDIA Developer

选择对应的版本,依次点击‘windows’,‘x86_64’,‘10’,‘exe(local)’,‘Download’。

③CUDA的安装

运行下载好的exe文件

步骤如下(部分过程图):

路径不需要修改。选择自动定义安装。

取消CUDA下面Visual Studio integration的勾选。

其余选项全部勾选。点击下一步。

④安装cudnn

可以从③中的百度网盘连接中下载,就不需要到网站中进行下载了。

下载网址:cuDNN Archive | NVIDIA Developer

在其中找到对应CUDA的cudnn版本,点击之后找到对应你的操作系统的cudnn后,不要直接点进去,可能需要你进行登录操作,比较麻烦,选中后右键‘复制链接地址’,然后使用迅雷等下载工具进行下载。

下载完成后,将其解压到CUDA的安装位置:

⑤配置环境变量

安装完成,需要将CUDA和cudnn添加到操作系统的环境变量中。首先打开‘此电脑’后,在空白处右键选择‘属性’,点击‘高级系统设置’,点击‘高级’,‘环境变量’,选择‘系统变量’一栏下的Path后点击‘编辑’,点击新建将CUDA下的bin文件夹和解压的cudnn文件夹的路径位置添加到环境变量中,我需要添加的两个位置为:

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\bin

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\cuda

供大家参考。

配置完成之后连续点击确定即可。

1.2安装anaconda3

Anaconda指的是一个开源的Python发行版本,其包含了conda、Python等180多个科学包及其依赖项。 因为包含了大量的科学包,Anaconda 的下载文件比较大(约 531 MB),如果只需要某些包,或者需要节省带宽或存储空间,也可以使用Miniconda这个较小的发行版(仅包含conda和 Python)。

下载地址:Free Download | Anaconda

Anaconda 是跨平台的,有 Windows、macOS、Linux 版本,我们这里以 Windows 版本为例,点击那个 Windows 图标。双击下载好的anaconda文件,出现如下界面,点击 Next 即可。

点击 I Agree (我同意),不同意,当然就没办法继续安装啦。

Install for: Just me还是All Users,假如你的电脑有好几个 Users ,才需要考虑这个问题.其实我们电脑一般就一个 User,就我们一个人使用,如果你的电脑有多个用户,选择All Users,我这里直接 All User,继续点击 Next 。(这里选哪个都可以,按照推荐的选择即可)

选择Anaconda的安装位置,因为Anaconda需要管理很多的三方库以及代码运行环境,所以需要很大的安装空间,建议不要安装到系统盘内。

选择添加环境变量,两个勾都需要选上。

安装完成后可以取消这两个勾,点击完成即可。

1.3集成开发环境(Integrated Development Environment,IDE)

(1)安装

我一直是用的pycharm,感觉功能很全还是比较好用的,当然使用其他的编译器如VSCode、spider等都可以,这里仅介绍pycharm的安装以及使用方法。

Pycharm的下载网址:PyCharm: the Python IDE for Professional Developers by JetBrains

下载社区版本的pycharm

安装过程中勾选以上选项后,点击Next。

默认即可,点击 install。如果你勾选了上图中的最后一个选项“安装JetBrains自带的JRE”,会出现如下的下载界面,等待其自动下载完毕即可,然后等待安装完毕。

(2)使用

首次启动 pycharm,会弹出配置窗口:

如果你之前使用过 pycharm 并有相关的配置文件,则在此处选择;如果没有,默认即可。同意用户使用协议:

确定是否需要进行数据共享,可以直接选择Don't send

选择主题,左边为黑色主题,右边为白色主题,根据需要选择:

下载插件,你可以根据需要下载,也可以不装。建议只装 MarkDown插件即可:

1.4 代码环境配置

(1)打开代码

现在安装代码所需要的代码库,简称环境配置,从百度网盘中下载好代码,右键Yolov5_DeepSort_Pytorch-master1文件(就是你下载的项目文件,这个文件是YOLO v5目标检测算法,如果配置的环境可以运行这个代码,那么其他代码都可以运行)选择open folder as pycharm,点击右下角的terminal,如图:

点开后会出现这样的终端:

(2)建立虚拟环境

这里可以使用anaconda的基础环境,就不需要再建立虚拟环境了,直接跳过该步骤。

也可以自建一个独立的虚拟环境,建议读者使用这种方法。

操作如下:每次输入命令后需要按回车,并且出现需要你输入Y/N的时候都输入Y然后回车。

建立虚拟环境:conda create –n yolov5-deepsort python =3.7

红色字的部分为建立虚拟环境的名称,可以按照自己的需要进行修改。

激活建立的虚拟环境:conda activate yolov5-deepsort

激活后,左边括号里的就是在使用的环境。

在新版本的pycharm中存在一种bug,无法在终端中直接激活虚拟环境,如果这样的话使用步骤(4)进行虚拟环境的激活。

(3)安装环境

在终端中输入pip install -r requirements.txt

等待安装完成。如果安装缓慢的话,可是使用清华镜像源,在输入安装命令后加上-i Simple Index

安装完成后继续安装torch,安装与你安装的 Cuda版本对应的torch,torch安装包比较大,网络不好的话可能下载失败,可以在torch的官网中复制命令进行下载:

https://pytorch.org/get-started/previous-versions/

在官网中找打对应操作系统以及对应CUDA的torch版本,安装操作如:在终端中输入:conda install pytorch==1.7.0 torchvision==0.8.0 torchaudio==0.7.0 cudatoolkit=10.1 -c pytorch或者是pip install torch==1.7.0+cu101 torchvision==0.8.0+cu101 torchaudio==0.7.0 -f https://download.pytorch.org/whl/torch_stable.html

如果是cuda10.2,输入conda install pytorch==1.7.0 torchvision==0.8.0 torchaudio==0.7.0 cudatoolkit=10.2 -c pytorch 或者pip install torch==1.7.0 torchvision==0.8.0 torchaudio==0.7.0

等待安装完成

(4)将配置好的环境在pycharm中调用,点击pycharm的左上角file中的settings

点击project下的python interpreter,然后点击右边的小齿轮,中的add

选中conda environment,再选中existing environment,右边的…

选中之前建立的yolov5-deepsort环境下的python.exe

全部点击ok即可。

环境配置完成。

2、目标检测算法训练

YOLOv5目标检测算法,是该系统获取视频中车辆信息的第一步,使用深度学习框架Pytorch搭建。这里可以通过训练自己的数据集来检测所需要检测的目标,训练的代码与该系统的项目代码是分开的,主要由coco128、yolov5-master1两个文件夹组成:

coco128文件夹中train文件夹中存放训练集,vaild文件夹中存放验证集:

train和valid文件夹下有:

Images文件夹中存放训练的图片,labels文件夹下存在训练图片对应的标签文件,两者数量和名称上必需要同一。一般的数据集的标签格式不是按照YOLO格式进行标注的,所以需要进行格式的转换,YOLO标签的格式如下。

coco128.yaml是关于配置训练参数的文件,其中nc代表本次训练样本类别的数量,names代表每个类别的名称。

使用IDE打开yolov5-master1,其中的train.py为训练文件,配置其中关于训练参数的信息即可运行代码(提前配置好所需环境)。weights是预训练的权重文件,即接下来的训练是在该模型的基础上进行的;epoch为训练的迭代次数;batch_size为每次训练时放入图片的张数,显存越低该数值需要调的越低。

成功训练的效果为:

训练后的权重文件以及训练过程参数存放在:yolov5-master1\runs\train中

3、关于其他代码的运行

(1)打开工程文件下的track.py文件,找到下图的位置

--weights代表了权重,在后面的default后为代码所使用权重的位置’../best.pt’其中..代表了和工程文件相同的位置的,若工程文件放到了桌面,该位置就代表了桌面上的best.pt,best.pt为权重的名称;--source为需要检测的视频,default后的路径就代表了桌面上的convert文件夹中的out_1.avi文件,名称和位置必须要求正确,否则会报错。并且在代码中输入关于路径的地方全部需要使用/而不是\;--output代表输出的视频文件,一般不需要修改。

(2)将文件位置和路径配置好后就可以运行代码,点击代码中的任意位置,右键点击run(还有其他运行代码的按键,不一一列举)

代码运行成功的效果如下图所示:

代码运行结束后,视频会保存到如下位置

项目下载:

https://download.csdn.net/download/babyai996/85020479icon-default.png?t=N3I4https://download.csdn.net/download/babyai996/85020479

部署视频教程:

https://download.csdn.net/download/babyai996/85100267icon-default.png?t=N3I4https://download.csdn.net/download/babyai996/85100267

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/455198.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

4月23日作业

#include <iostream> #include <cstring> using namespace std; class Student //学生类 { private: string name; //姓名 int year; //年龄 double sorce; //分数 public: Student (){} //无参构造 Student(string a,int b,double c):name(a),y…

五分钟学会在微信小程序中使用 vantUI 组件库

前言 我们在开发微信小程序时&#xff0c;设计和实现好用的用户界面无疑是至关重要的一步。但是微信小程序官方自带的 UI 组件库无法满足很多使用场景&#xff0c;这个时候就需要我们使用一些第三方的 UI 组件库。而 vant Weapp 作为一款优秀的前端 UI 组件库&#xff0c;可以帮…

MP长篇综述 | 植物泛基因组及其应用

2022年12月15日&#xff0c;中山大学史俊鹏副教授、中国科学院遗传与发育生物学研究所田志喜研究员、中国农业大学赖锦盛教授和上海师范大学黄学辉教授共同撰文&#xff0c;在Molecular Plant杂志发表了题为“Plant pan-genomics and its applications”的长篇综述。该论文对植…

(Ubuntu22.04 Jammy)安装ROS2 Humble

文章目录 (Ubuntu22.04 Jammy)安装ROS2 (Humble)版本一、设置本地区域二、设置源三、安装ROS2软件包四、环境设置五、测试用例Talker-listener 六、卸载ros2 (Ubuntu22.04 Jammy)安装ROS2 (Humble)版本 提示&#xff1a;以下内容是已经安装了ubuntu22.04 下进行安装ros2 一、设…

iptables防火墙和Firewalld

引言 在 Internet 中&#xff0c;企业通过各种应用系统来为用户提供各种服务&#xff0c;如 Web 网站、电子邮件系统、FTP 服务器、数据库系统等&#xff0c;那么&#xff0c;如何来保护这些服务器&#xff0c;过滤企业不需要的访问甚至是恶意的入侵呢&#xff0c;接下来&#…

设计模式--建造者模式

项目需求 盖房需求 (1) 需要建房子:过程为 打地基 砌墙 封顶 (2) 房子有高正各样的,比如 平房和高楼 建房子的过程虽然都一样 但是要求不要相同的细节 传统方式 public abstract class TraditionBuild {//打地基public abstract void foundation();//砌墙public abstract voi…

Linux进程的fork、exit、wait等函数;区分父子进程;GDB调试多进程

Linux系统中进程可以创建子进程。 1. fork函数&#xff1a;创建新进程 #include<sys/types.h> #include<unistd.h>pid_t fork(void); /* 功能&#xff1a;一个进程创建新进程。原进程为父进程&#xff0c;新进程为子进程。 返回值&#xff1a;成功&#xff1a;子…

SuperMap iObjects Docker打包全攻略

SuperMap iObjects Docker打包全攻略 文章目录 SuperMap iObjects Docker打包全攻略说明开始打包iObjects容器启动容器参考 说明 此教程编写时使用的iObjects版本为 10.2.1 &#xff0c;理论高版本同样支持&#xff0c;具体自测。基础镜像为 Docker 官方 ubuntu:16.04完整版。…

C++ 类和对象(中)构造函数 和 析构函数

上篇链接&#xff1a;C 类和对象&#xff08;上&#xff09;_chihiro1122的博客-CSDN博客 类的6个默认成员函数 我们在C当中&#xff0c;在写一些函数的时候&#xff0c;比如在栈的例子&#xff1a; 如上述例子&#xff0c;用C 返回这个栈是否为空&#xff0c;直接返回的话&am…

基于OpenCV-python的图像增强和滤波

目录 彩色空间 直方图均衡化 图像滤波 梯度 一、彩色空间 OpenCV 的颜色空间主要有 BGR、HSV、Lab等&#xff0c;cvtColor 函数可以让图像在不同颜色空间转换。例如通过将花的图像转换到 HSV 颜色空间&#xff0c;在HSV空间内过滤出只含有花瓣颜色的像素&#xff0c;从而提…

公共资源包发布流程详解

文章目录 公有包发布并使用npm安装git仓库协议创建及使用 npm 私有包创建及使用 group npm 私有包私有仓账密存放位置 当公司各个系统都需要使用特定的业务模块时&#xff0c;这时候将代码抽离&#xff0c;发布到 npm 上&#xff0c;供下载安装使用&#xff0c;是个比较好的方案…

SQL Server基础 第七章 连接查询(内连接、表别名、左外连接、右外连接)

前言 连接查询是关系数据库中最主要的查询&#xff0c;主要包括内连接、外连接和交叉连接等。通过连接运算符可以实现多个表查询。前面章节的查询均是基于单表进行&#xff0c;但有时需要获取的信息存储于多张表中&#xff0c;此时就必须使用本章所介绍的多表连接查询技术来获取…

关于debug一晚上的一些思考,做开发到底要养成什么习惯?

总结&#xff1a;日志一定要写&#xff0c;日志一定要写&#xff0c;日志一定要写&#xff01; 今天晚上是我学开发过程中很不一样的一晚&#xff0c;今晚学到了很多。 虽然我也只是一个开发的初学小白&#xff0c;今天的debug分享是我的一个小方法和一个小记录&#xff0c;如…

第四章——数学知识2

欧拉函数 欧拉函数表示的是1-n中与n互质数的个数。 如1-6中&#xff1a;1&#xff0c;5都和6互质&#xff0c;因此互质数为2 欧拉函数分解质因数后表示为&#xff1a; 互质数个数可表示为 int main() {int n;cin >> n;while(n--){int a;cin >> a;//分解质因数int r…

TypeScript自学笔记

目录 1.什么是Ts? 1.1 设计公司&#xff1a;微软 1.2 TS概述 1.3 TS是静态类型 JS是动态类型 1.4 TS是强类型语言 JS是弱类型语言 2.TypeScript编译器 2.1 安装 2.2 TS自动编译和编译选项设置 3.TS的数据类型 3.1 基础数据类型number、string、boolean 3.2 Arrays&a…

大数据架构(二)大数据发展史

1.传统数仓发展史 传统数据仓库的发展史这里不展开架构细讲&#xff0c;只需快速过一遍即可。了解这个历史发展过程即可。 1.1 传统数仓历史 1.1.1 5个时代 传统数仓发展史可以称为5个时代的经典论证战。按照两位数据仓库大师 Ralph kilmball、Bill Innmon 在数据仓库建设理念上…

吃透Redis面试八股文

Redis连环40问&#xff0c;绝对够全&#xff01; Redis是什么&#xff1f; Redis&#xff08;Remote Dictionary Server&#xff09;是一个使用 C 语言编写的&#xff0c;高性能非关系型的键值对数据库。与传统数据库不同的是&#xff0c;Redis 的数据是存在内存中的&#xf…

Python Review 01

1、Anaconda Installation 使用Anaconda Navigator进行python环境管理&#xff0c;使用conda进行依赖管理。 2、Use of Jupyter 将代码写入一个个cell&#xff0c;代码文件由一个个cell组成&#xff0c;书写代码时就像一行一行在写笔记&#xff0c;这就是notebook的代码编辑环…

无宿主机权限情况下,获取pod的日志文件

如果没有宿主机权限,是无法访问宿主机及里边的文件的,但是如果想获取某些文件,如日志等如何操作呢? 整体思路:通过抓包工具,抓取websocket的的信息,然后把信息处理拼接后导出即可。 1、启动抓包工具 我这里使用的是charles抓包工具 2、打开对应pod的命令行窗口 3、抓…

基于灰度图像和小波图的双模态卷积神经网络在心血管疾病分类中的应用

目录 一、研究对象和ECG记录预处理 二、机器学习和LSTM 三、将一维ECG记录转换为二维图像 四、双模态CNN模型 五、性能评估 参考文献 一、研究对象和ECG记录预处理 本研究采用Chapman大学和Shaoxing人民医院&#xff08;浙江大学医学院绍兴医院&#xff09;收集的12导联…