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,一经查实,立即删除!

相关文章

java实现pdf转word

java实现pdf转word 前言pom文件启动入口过滤器对象ConvertPdfToWordWithFlowableStructure转换实现类 前言 1.java实现pdf转word。 2.纯免费开源。 3.pdf解析完会生成word文件和图片文件夹。 4.无页码限制,文本类型生成到word中,图片生成到图片文件夹中…

基于 llvm 3.4 的C++重构工具

还未测试,存个档,未完待续 1,源码 Makefile LLVM_CONFIG?llvm-configifndef VERBOSE QUIET: endifSRC_DIR?$(PWD) LDFLAGS$(shell $(LLVM_CONFIG) --ldflags) COMMON_FLAGS-Wall -Wextra CXXFLAGS$(COMMON_FLAGS) $(shell $(LLVM_CONFIG) --cxxflags…

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

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

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

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

vue项目部署和镜像打包

vue项目部署和镜像打包 SpringBootVue 前后端分离 微服务项目 打包部署全流程(原始部署/宝塔部署) 前端vue项目部署主要考虑以下方面: vue项目启动、打包; 以vue-admin-template为例,开发环境启动项目:…

Java常用的并发工具类。

在Java中,会经常使用到一些并发工具类来处理多线程问题,从而提高系统性能,本文总结一下在开发中常用的工具类。 1. CountDownLatch java.util.concurrent.CountDownLatch允许一个或多个线程等待其他线程完成操作后再继续执行。 CountDownL…

树莓派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允许您实时协作编辑文档,就像在浏览器中运行的实时多人编辑器一样这样…

el-table报错 error: [ElTable] prop row-key is required

报错信息显示缺少了一个必需的属性 “row-key”。在使用 Element UI 的表格组件 <el-table> 时&#xff0c;需要为每一行的数据提供一个唯一的标识键&#xff08;row-key&#xff09;&#xff0c;以便在更新数据时能够正确地识别每一行。你可以通过在 <el-table> 上…

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

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

基于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 定时

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

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

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

9、Linux-安装JDK、Tomcat和MySql

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

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

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

GO语言接入支付宝

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

【杂记】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 鼠标右击代码编辑器空白区域&#xff0c;选择Edit 项目名.main()... 2.…

模型驱动软件开发

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