使用GPU运行基于pytorch的yolov3代码的准备工作

记录一下自己刚拿到带独显的电脑,如何成功使用上GPU跑程序的过程。

环境:win10
平台:pycharm
代码是基于pytorch的yolo目标检测程序,是B站的一个up分享的,链接如下:https://www.bilibili.com/video/BV14f4y1q7ms

1 下载安装cuda以及CUDNN

教程参考:深度学习环境搭建(GPU)CUDA安装(完全版)
注意:教程中cuda的安装地址选择系统默认值,否则容易出错,即系统找不到路径。
在配置路径时,可以先检查自己的cuda是否安装成功,即win+R 输入cmd,跳转到命令提示符中,在命令提示符打开至\CUDA安装路径下,输入nvcc -V看是否显示CUDA版本信息。如果成功,则不需要额外配置路径。

2 安装APEX

基于pytorch的yolo代码使用了apex,提升GPU上的训练速度。百度后发现这个是需要下载安装的,安装非常简单。
在github中文镜像网站中,下载源码:
https://codechina.csdn.net/mirrors/nvidia/apex

下载好后,解压,并记住该文件位置。win+R 输入cmd,跳转到命令提示符中,打开至apex文件夹位置,输入下面的指令即可安装成功
python setup.py install

3 下载cuda下的pytorch

以前用的都是cpu,所以pip install pytorch是基于cpu的版本
我们找到pytorch的官网:https://pytorch.org/
在下拉页面中找到合适自己的gpu版本,复制Run this Command到命令提示符中回车即可。(注意要先退回到C盘 :C:\Users\名字>)
在这里插入图片描述

全部完成后,调试程序,可以看到现在以及在GPU下运行了
在这里插入图片描述

5 遇到的问题

pycharm打开新的项目后,发现没法调用GPU,仔细对比和之前项目的环境配置,发现之前的项目pytorch版本显示版本号+cu111,而新打开的项目只有版本号,说明第二个项目的pytorch是基于cpu的,无奈在该项目下重新更新了pytorch.

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 由于YOLOv7并非官方支持的版本,因此我将提供一个基于YOLOv5的疲劳驾驶检测系统代码。以下是整个项目的代码: ``` import cv2 import numpy as np from tensorflow.keras.models import load_model from tensorflow.keras.applications.mobilenet_v2 import preprocess_input # 加载模型 model = load_model('models/drowsiness_detection.h5') # 定义标签 labels = ['Close', 'Open'] # 定义摄像头对象 cap = cv2.VideoCapture(0) # 定义眼睛检测器 eye_cascade = cv2.CascadeClassifier('haarcascades/haarcascade_eye.xml') while True: # 读取摄像头数据 ret, frame = cap.read() if not ret: break # 转换为灰度图像 gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) # 检测眼睛 eyes = eye_cascade.detectMultiScale(gray, 1.1, 4) for (x, y, w, h) in eyes: # 提取眼睛图像 eye_img = frame[y:y+h, x:x+w] eye_gray = cv2.cvtColor(eye_img, cv2.COLOR_BGR2GRAY) eye_gray = cv2.resize(eye_gray, (224, 224)) eye_gray = preprocess_input(eye_gray) eye_gray = np.expand_dims(eye_gray, axis=0) # 预测眼睛状态 prediction = model.predict(eye_gray) label = labels[np.argmax(prediction)] # 绘制矩形框和标签 cv2.rectangle(frame, (x, y), (x+w, y+h), (0, 255, 0), 2) cv2.putText(frame, label, (x, y-10), cv2.FONT_HERSHEY_SIMPLEX, 0.8, (0, 255, 0), 2) # 显示帧 cv2.imshow('Drowsiness Detection', frame) # 按下'q'键退出 if cv2.waitKey(1) & 0xFF == ord('q'): break # 释放资源 cap.release() cv2.destroyAllWindows() ``` 该代码使用了OpenCV和TensorFlow库,以及一个基于MobileNetV2的深度学习模型进行疲劳驾驶检测。在运行代码之前,需要使用OpenCV的`cv2.VideoCapture()`函数定义摄像头对象,并将其传递给`cap`变量。此外,还需要在同一目录下保存训练好的模型文件(例如,`drowsiness_detection.h5`),并将其加载到`model`变量中。 代码使用了一个基于Haar级联分类器的眼睛检测器,它可以检测摄像头中的眼睛位置。然后,代码提取眼睛图像并使用MobileNetV2模型进行预测,以确定眼睛是否闭合。最后,代码在原始图像上绘制一个矩形框和标签,指示检测到的眼睛状态。 在运行代码之前,还需要下载Haar级联分类器和MobileNetV2模型。可以从OpenCV的官方GitHub repo中下载Haar级联分类器文件,也可以在网上找到其他可用的文件。MobileNetV2模型可以从TensorFlow的官方文档中下载,也可以使用其他预训练模型。 ### 回答2: 基于YOLOv7的疲劳驾驶检测系统代码主要涉及到以下几个方面: 1. 数据收集与预处理:首先需要收集大量的驾驶员疲劳和非疲劳状态下的图片和视频数据,并标注出相关的疲劳特征,如闭眼、打哈欠等。然后对数据进行预处理,如图像尺寸调整、数据增强等,以提高模型的泛化能力。 2. 模型训练与优化:使用YOLOv7作为疲劳驾驶检测的基础模型,通过对数据集进行训练,学习疲劳状态下的特征,并通过调整模型参数和超参数来优化模型性能。可以采用深度学习框架,如TensorFlow或PyTorch,以及相应的训练代码进行模型训练。 3. 实时检测与报警:在实际应用中,将训练好的模型应用到视频流或摄像头输入中,实时进行疲劳驾驶检测。可以通过不断地读取视频帧,并对每帧进行目标检测,判断驾驶员是否处于疲劳状态。当检测到疲劳行为时,及时触发报警系统,如声音报警、闪光灯报警等。 4. 系统集成与测试:将疲劳驾驶检测系统与车载设备或监控摄像头相结合,进行整体系统集成和测试。确保系统能够正常运行,并且在实际场景中能够准确、稳定地进行疲劳驾驶检测。 总结:基于YOLOv7的疲劳驾驶检测系统代码主要包括数据收集与预处理、模型训练与优化、实时检测与报警以及系统集成与测试等方面。这些步骤需要借助深度学习框架和相关的代码进行实现,以实现准确、稳定地检测驾驶员的疲劳状态,从而提高交通安全水平。 ### 回答3: 基于YOLOv7的疲劳驾驶检测系统代码主要涉及四个方面:数据准备、模型搭建、训练和推理。 首先,需要准备疲劳驾驶检测所需的数据。可以收集大量的疲劳驾驶和清醒驾驶的图像数据,并手动标注图像中的人脸和眼睛。然后,将数据划分为训练集和验证集。 接下来,搭建基于YOLOv7的疲劳驾驶检测模型。可以使用深度学习框架如TensorFlow或PyTorch,选择合适的YOLOv7预训练模型作为基础模型,并根据数据的特点进行相应的调整。其中,需要调整的模块包括骨干网络、检测头和分类头等。 然后,使用准备好的数据来训练模型。可以将数据传入模型,并根据损失函数(如YOLO损失函数)进行梯度下降优化。 这一步通常需要较长时间和较高的计算资源,可以使用GPU进行加速。 最后,使用经过训练的模型进行疲劳驾驶检测的推理。将待检测的图片输入到模型中,模型会输出检测结果,如人脸和眼睛的位置。根据这些结果,可以判断驾驶者是否处于疲劳状态。 整个系统的代码实现主要涉及数据预处理、模型搭建、训练循环和推理过程。同时,还需要考虑模型的保存和加载、超参数的设置以及结果的可视化等方面的代码编写。 以上是基于YOLOv7的疲劳驾驶检测系统代码的大致流程,实际实现时还需要根据具体需求进行细节的调整和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值