pytorch_retinaface训练Resnet50_Final.pth过程+无图版安装Nvidia+CUDA驱动GPU

在这里插入图片描述

背景

当前处于人脸检测分支,项目就是retinaface官方的代码加上数据集目录结构,目的是训练出最后的模型文件Resnet50_Final.pth

代码

https://gitee.com/congminglst/pytorch_-retinaface.git

项目结构与设计

图片数据集采用widerface,
前四个代表的是人脸框的坐标,其中前两个表示左上角坐标,后两个表示宽高,后面每三个数字为一组,每组前两个数字代表5个特征点xy位置,眼镜,鼻子,嘴角,第三个数字,1代表遮挡,0代表不遮挡,最后一个好像是置信度
在这里插入图片描述

import cv2
import numpy as npimage_path = "data/widerface/train/images/0--Parade/0_Parade_marchingband_1_117.jpg"# 读取图像
image = cv2.imread(image_path)# 检查图像是否成功加载
if image is None:print(f"Error: Unable to load image from {image_path}")exit(1)# 输入数据
input_str = """
69 359 50 36 92.232 391.397 1.0 94.451 377.451 1.0 103.326 386.326 0.0 109.348 388.228 0.0 109.348 377.134 0.0 0.53
227 382 56 43 244.0 399.0 1.0 248.0 418.0 1.0 238.0 412.0 0.0 234.0 405.0 0.0 237.0 416.0 0.0 0.5
296 305 44 26 324.0 318.0 1.0 324.0 330.0 1.0 316.0 329.0 0.0 308.0 320.0 0.0 307.0 331.0 0.0 0.4
353 280 40 36 371.737 295.464 1.0 379.116 302.844 1.0 370.464 304.879 1.0 360.54 306.152 1.0 367.665 312.513 1.0 0.4
885 377 63 41 919.076 401.371 1.0 915.103 413.29 1.0 907.951 407.33 1.0 899.607 395.808 0.0 896.429 406.536 0.0 0.66
819 391 34 43 838.0 431.0 1.0 842.0 416.0 1.0 847.0 425.0 0.0 849.0 421.0 1.0 849.0 414.0 1.0 0.49
727 342 37 31 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 0.5
598 246 33 29 609.0 266.0 0.0 616.0 259.0 0.0 615.0 269.0 0.0 618.0 273.0 0.0 625.0 268.0 0.0 0.29
740 308 45 33 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 -1.0 0.48
"""# 将输入字符串按行分割
lines = input_str.strip().split('\n')# 遍历每行
for line in lines:# 将每行按空格分割,获取所有数字values = line.split()# 提取前4个数字,代表框的范围box = [int(values[i]) for i in range(4)]# 将浮点数列表分组成(x, y)坐标对,每组保留第12个数字,去掉第3个数字,直到第19个数字keypoints = [(float(values[i]), float(values[i + 1]), float(values[i + 2])) for i in range(4, 19, 3)]# 将坐标转换为整数keypoints = np.array(keypoints, dtype=np.int32)# 遍历关键点,使用不同颜色进行标记for point in keypoints:if point[2] == 1.0:cv2.circle(image, (point[0], point[1]), 5, (0, 0, 255), -1)  # 红色else:cv2.circle(image, (point[0], point[1]), 5, (0, 255, 0), -1)  # 绿色# 在图像上绘制边界框cv2.rectangle(image, (box[0], box[1]), (box[0] + box[2], box[1] + box[3]), (0, 0, 255), 2)# 显示图像
cv2.imshow("Bounding Box and Key Points", image)
cv2.waitKey(0)
cv2.destroyAllWindows()

代码反向生成特征点,不难了解到如何标定之后的图片文件,就是按照上述规则,用ImageMe标定,标定请参考https://blog.51cto.com/u_16213620/7447622
在这里插入图片描述

项目目录结构如下所示
在这里插入图片描述
如果像下面的报错就修改batch_size是2的n次方就好
在这里插入图片描述

这里调整config.py的batch_size保证其能跑动,就行了
在这里插入图片描述
训练数据集跑train.py,修改这一行换成是你文件的路径即可

parser.add_argument('--training_dataset', default='./data/widerface/train/label.txt', help='训练数据集目录')

最后跑出的结果是
在这里插入图片描述

安装依赖过程

Windows环境

CUDA安装
步骤 1:检查 GPU 和驱动
确保你的计算机上有 NVIDIA GPU,并且已经安装了最新的 NVIDIA 显卡驱动程序。你可以在 NVIDIA 的官方网站上下载并安装最新的显卡驱动程序。

你可以通过以下步骤从 NVIDIA 的官方网站下载并安装最新的显卡驱动程序:
步骤 1:确定显卡型号
a. 打开系统的设备管理器。
■ 在 Windows 10 中,你可以右键点击“开始”按钮,选择“设备管理器”。
■ 在 Windows 7 中,你可以通过控制面板找到“设备管理器”。
b. 展开“显示适配器”部分,找到你的 NVIDIA 显卡。在此处你可以看到你的显卡型号。
步骤 2:访问 NVIDIA 驱动程序下载页面
a. 打开你的网络浏览器,访问 NVIDIA 驱动程序下载页面(https://www.nvidia.com/Download/index.aspx)。
b. 在 “自动查找” 部分,NVIDIA 会自动检测你的显卡型号并为你推荐适用的驱动程序。如果你的浏览器支持,可以选择 “开始下载”。
步骤 3:手动选择显卡型号
如果自动检测无法使用,你可以手动选择显卡型号:
a. 在 “手动搜索” 部分,选择显卡系列、型号和操作系统。
b. 点击 “搜索”。
步骤 4:下载驱动程序
a. 在搜索结果中,找到适用于你的操作系统和显卡型号的最新驱动程序。
b. 点击 “下载” 按钮。
步骤 5:安装驱动程序
a. 下载完成后,运行下载的 .exe 文件。
b. 在安装过程中,你可以选择 “自定义安装” 以进行更详细的设置,或选择 “快速安装” 以使用默认选项。
c. 完成安装后,可能需要重新启动计算机。
请注意:在安装新驱动程序之前,建议卸载旧版本的 NVIDIA 显卡驱动程序,以确保系统的稳定性。你可以在 “控制面板” > “程序” > “卸载程序” 中找到并卸载旧版本的 NVIDIA 驱动程序。
安装完成后,你的 NVIDIA 显卡将能够充分发挥性能,并支持最新的特性和优化。
步骤 2:下载 CUDA Toolkit
● 访问 NVIDIA 官方网站的 CUDA Toolkit 下载页面:NVIDIA CUDA Toolkit Downloads(https://developer.nvidia.com/cuda-12-1-0-download-archive?target_os=Windows&target_arch=x86_64&target_version=11&target_type=exe_local)。
● 在 “Operating System” 下拉菜单中选择 “Windows”。
● 在 “Architecture” 下拉菜单中选择适用于你的 GPU 架构的版本(通常选择 x86_64)。
● 选择适用于你的操作系统的安装类型(通常选择 “exe (local)”)。
● 点击 “Download” 按钮。
步骤 3:安装 CUDA Toolkit
● 运行下载的 CUDA Toolkit 安装程序。
● 按照安装向导的步骤进行操作。在安装过程中,你可以选择是否安装 GPU 驱动、CUDA Toolkit 和其他组件。
● 安装好后的截图

步骤 4:设置环境变量
● 添加 CUDA Toolkit 的 bin 目录到系统的 PATH 环境变量。通常,这个目录是 ,其中 X.Y 是 CUDA Toolkit 的版本号。
● 添加 CUDA Toolkit 的 libnvvp 目录到系统的 PATH 环境变量。通常,这个目录是 。
● 配置完环境变量如下图:

步骤 5:验证安装
● 打开命令提示符(cmd)。
● 输入以下命令,检查 CUDA 是否正确安装:
nvcc --version

nvidia-smi

如果以上命令执行没有问题,且显示了 CUDA 版本和 GPU 信息,那么 CUDA 就已经在你的 Windows 环境中成功安装了。
成功后的控制台输出为下图:

请注意,安装 CUDA 可能需要重新启动计算机。此外,确保你的项目或框架(例如 PyTorch pip install torch1.13.1+cu116 torchvision0.14.1+cu116 torchaudio==0.13.1 --extra-index-url https://download.pytorch.org/whl/cu116或 TensorFlow)与安装的 CUDA 版本兼容。在使用这些框架时,通常可以在官方文档中找到有关与 CUDA 版本匹配的信息。

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

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

相关文章

如何通过隐藏服务器真实IP来防御DDOS攻击

我们知道,服务器对外提供服务,基本上都是放置在公网上的。所以说服务器放置在公网上会面临很多攻击,如果不做好必要的防护措施,服务器被人攻击只是时间上的问题。 而我们面临的众多攻击中,DDoS攻击是最常见同时也是影响…

【Flink】Flink 的八种分区策略(源码解读)

Flink 的八种分区策略(源码解读) 1.继承关系图1.1 接口:ChannelSelector1.2 抽象类:StreamPartitioner1.3 继承关系图 2.分区策略2.1 GlobalPartitioner2.2 ShufflePartitioner2.3 BroadcastPartitioner2.4 RebalancePartitioner2…

树莓派4B Ubuntu20.04 Python3.9安装ROS踩坑记录

问题描述 在使用sudo apt-get update命令更新时发现无法引入apt-pkg,使用python3 -c "import apt_pkg"发现无法引入,应该是因为:20.04的系统默认python是3.8,但是我换成了3.9所以没有编译文件,于是使用sudo update-alte…

three.js如何实现简易3D机房?(四)点击事件+呼吸灯效果

接上一篇: three.js如何实现简易3D机房?(三)显示信息弹框/标签:http://t.csdnimg.cn/5W2wA 目录 八、点击事件 1.实现效果 2.获取相交点 3.呼吸灯效果 4.添加点击事件 5.问题解决 八、点击事件 1.实现效果 2.…

蓝桥杯大赛软件python赛道真题:蛇形填数

真题链接:https://www.lanqiao.cn/problems/594/learning/ 题目描述: 本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。 如下图所示,小明用从1开始的正整数“蛇形”填充无限大的矩阵。 1 2 6 …

【打工日常】使用docker部署个人实时在线文档协助编辑器

一、Etherpad介绍 Etherpad是一个高度可定制的开源在线编辑器,提供真正实时的协作编辑。放在自己的服务器里面,可以更大程度的保护自己工作的隐私,并且Etherpad允许您实时协作编辑文档,就像在浏览器中运行的实时多人编辑器一样这样…

SpringBoot轻松搞定接口防抖(防重复提交)

大家好,我是月夜枫,作为一名合格的码农,在开发后端Java业务系统,包括各种管理后台和小程序等。在这些项目中,我设计过单/多租户体系系统,对接过许多开放平台,也搞过消息中心这类较为复杂的应用&…

基于Java的高校实验室管理系统(Vue.js+SpringBoot)

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、研究内容2.1 实验室类型模块2.2 实验室模块2.3 实验管理模块2.4 实验设备模块2.5 实验订单模块 三、系统设计3.1 用例设计3.2 数据库设计 四、系统展示五、样例代码5.1 查询实验室设备5.2 实验放号5.3 实验预定 六、免责说明 一、摘…

【STM32】HAL库 CubeMX 教程 --- 通用定时器 TIM2 定时

实验目标: 通过CUbeMXHAL,配置TIM2,1s中断一次,闪烁LED。 一、常用型号的TIM时钟频率 1. STM32F103系列: 所有 TIM 的时钟频率都是72MHz;F103C8不带基本定时器,F103RC及以上才带基本定时器。…

[BUG] docker运行Java程序时配置代理-Dhttp.proxyHost后启动报错

[BUG] docker运行Java程序时配置代理-Dhttp.proxyHost后启动报错 bug现象描述 版本:2.0.4(客户端和服务端都是) 环境:私有云环境,只有少量跳板机器可以访问公网,其他机器均通过配置代理方式访问公网 bug现…

9、Linux-安装JDK、Tomcat和MySql

目录 一、安装JDK 1、传输JDK文件(.tar.gz) 2、解压 3、备份环境变量 4、配置环境变量 5、重新加载环境变量 6、验证(java -version) 二、安装Tomcat 1、传输文件,解压到/usr/local 2、进入Tomcat的bin目录 …

[PyQt5]PyQt5连接MYSQL时显示Driver not loaded解决方案

在第一次用PyQt5的 QSqlDatabase.addDatabase 连接mysql的时候,可能会出现Driver not loaded的情况,如下: from PyQt5.QtSql import QSqlQuery, QSqlDatabase from PyQt5.QtWidgets import QApplication import sysapp QApplication(sys.ar…

GO语言接入支付宝

GO语言接入支付宝 今天就go语言接入支付宝写一个教程 使用如下库,各种接口较为齐全 "github.com/smartwalle/alipay/v3"先简单介绍下加密: 试想,当用户向支付宝付款时,若不进行任何加密,那么黑客就可以任…

【杂记】IDEA和Eclipse如何查看GC日志

1.Eclipse查看GC日志 1.1 右击代码编辑区 -> Run As -> Run Configurations 1.2 点击Arguments栏 -> VM arguments:区域填写XX参数 -> Run 1.3 控制台输出GC详细日志 2.IDEA查看GC日志 2.1 鼠标右击代码编辑器空白区域,选择Edit 项目名.main()... 2.…

模型驱动软件开发

MDE 模型驱动工程(MDE, Model-Driven Engineering)是软件工程的一个分支,它将模型与建模拓展到软件开发的所有方面,形成一个多维建模空间,从而将工程活动建立在这些模型的映射和转换之上。[1] MDE的基本原则是将模型视…

实验二(一):IPV4编址及IPV4路由基础实验

一实验介绍 1.关于本实验 IPv4( Internet Protocol Version 4)是 TCP/IP 协议族中最为核心的协议之一。 它工作在 TCP/IP参考模型的网际互联层,该层与 OSI参考模型的网络层相对应。 网络层提供了无连接数据传输服务,即网络在发送分组时不需要先建立连…

学会与自己和解

最近半年来,在学习智能驾驶方面的技术,但有些文档和资料不方便分享,有一段时间没有写 写文档啦!那就写一些技术之外的东西吧,最近也一直在学心理建设,学会与自己和解 行动 唯有自己先行动起来,…

使用Migration升级数据库

使用Migration升级数据库 package com.tiger.room2;import android.content.Context;import androidx.annotation.NonNull; import androidx.room.Database; import androidx.room.Room; import androidx.room.RoomDatabase; import androidx.room.migration.Migration; impo…

Jmeter---非GUI命令行的执行生成报告、使用ant插件执行接口测试脚本生成报告

非GUI命令行的执行 1. 在jmx后缀的文件目录下打开命令行 2. 运行: jmeter -n -t filename.jmx(-n : 非GUI的方式 -t: 指定需要执行的脚本) 生成jtl报告 运行: jmeter -n -t filename.jmx -l result_filename.jtl 生成html报…

【Java探索之旅】数据类型与变量,字面常量,整型变量

🎥 屿小夏 : 个人主页 🔥个人专栏 : Java入门到精通 🌄 莫道桑榆晚,为霞尚满天! 文章目录 📑前言一、字面常量二、数据类型三、变量3.1 变量概念3.2 语法格式 四、整型变量4.1 整型变…