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 np

image_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 版本匹配的信息。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Go编译报错 link: running gcc failed: exit status 1(已解决)

背景 在对一个开源的Go程序二次开发 重新编译时 , 报错截图如下 报错文字如下:关键信息 link: running gcc failed: exit status 1 $ go build -o orchestrator-didi -i go/cmd/orchestrator/main.go go build: -i flag is deprecated # command-li…

2024/3/10打卡借教室——二分+差分

题目 在大学期间,经常需要租借教室。 大到院系举办活动,小到学习小组自习讨论,都需要向学校申请借教室。 教室的大小功能不同,借教室人的身份不同,借教室的手续也不一样。  面对海量租借教室的信息,我们自…

TOMCAT多实例及调优

目录 引言 一、JVM相关理论 (一)JVM组成 1.JVM组成部分 2.JVM运行时数据区 (二)垃圾回收 1.确定垃圾 2.垃圾收集算法 二、java内存调整相关参数 (一)JVM 内存常用相关参数 (二&#…

《在“裸奔”时代下如何保护网络隐私》

引言 在信息时代的今天,网络已经成为我们生活中不可或缺的一部分。然而,随着网络的普及和技术的发展,网络安全和隐私保护问题也变得越来越严峻。特别是在这个所谓的“裸奔”时代,我们的个人信息和隐私正面临着前所未有的挑战。因此,保护网络隐私变得尤为重要。 网络安全…

通过Step Back提示增强LLM的推理能力

原文地址:enhancing-llms-reasoning-with-step-back-prompting 论文地址:https://arxiv.org/pdf/2310.06117.pdf 2023 年 11 月 6 日 Introduction 在大型语言模型不断发展的领域中,一个持续的挑战是它们处理复杂任务的能力,这…

el-table 插入输入框并进行校验

<template><div><el-form :model"list" ref"ruleForm"><el-table :data"list.tableData" style"width: 100%"><el-table-column prop"time" label"日期" width"180"><…

【微服务】SpringBoot整合Resilience4j使用详解

目录 一、前言 二、熔断器出现背景 2.1 几个核心概念 2.1.1 熔断 2.1.2 限流 2.1.3 降级 2.2 为什么会出现熔断器 2.3 断路器介绍 2.3.1 断路器原理 三、Resilience4j介绍 3.1 Resilience4j概述 3.1.1 Resilience4j是什么 3.1.2 Resilience4j功能特性 3.2 Resilie…

用关系运算符和表达式比较大小、_Bool类型、for循环

本文参考C Primer Plus第六章进行C语言学习 文章目录 用关系运算符和表达式比较大小 其他真值新的_Bool类型for循环总结 一.用关系运算符和表达式比较大小 虽然关系运算符也可以用来比较浮点数&#xff0c;但是&#xff0c;要注意的是&#xff1a;尽量只使用<和>。因为浮…

【Linux】gcc与make、makefile

文章目录 1 gcc/g1.1 预处理1.2 编译1.3 汇编1.4 链接1.4.1 静态链接1.4.2 动态链接 2 make和makefile2.1 依赖关系2.2 依赖方法2.3 伪目标 3 总结 1 gcc/g 当我们创建一个文件&#xff0c;并向里面写入代码&#xff0c;此时&#xff0c;我们该如何使我们的代码能够运行起来呢&…

Vivado Repository IP Catalog 释疑

Vivado软件自带了一个IP核仓库&#xff0c;可以在IP Catalog界面查看。 在IP目录界面&#xff0c;依次给出了每个IP核的Name(名称)&#xff0c;Interface(接口)&#xff0c;State(状态)&#xff0c;License(许可证)和VLNV&#xff08;标识符&#xff09;。 Interface表示IP核的…

C++指针(五)完结篇

个人主页&#xff1a;PingdiGuo_guo 收录专栏&#xff1a;C干货专栏 前言 相关文章&#xff1a;C指针&#xff08;一&#xff09;、C指针&#xff08;二&#xff09;、C指针&#xff08;三&#xff09;、C指针&#xff08;四&#xff09;万字图文详解&#xff01; 本篇博客是介…

c++0305习题

一、求下面表达式的值 1&#xff0e;0 2&#xff0e;-1 3&#xff0e;1 4&#xff0e;&#xff08;1&#xff09;1 &#xff08;2&#xff09;3.2 &#xff08;3&#xff09;0 &#xff08;4&#xff09;7.0 5.&#xff08;1&#xff09;0&#xff08;2&#xff09;300.005&a…

[力扣 Hot100]Day49 二叉树的最近公共祖先

题目描述 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为&#xff1a;“对于有根树 T 的两个节点 p、q&#xff0c;最近公共祖先表示为一个节点 x&#xff0c;满足 x 是 p、q 的祖先且 x 的深度尽可能大&#xff08;一个节点也可以…

服务器与文件内数据的 LENGTH_IN_CHAR 参数不匹配

导入数据库数据的时候出现这个 怎么解决&#xff1a;重建数据库实例 下面是达梦的工具 使用DM数据库配置助手 新建、删除实例 新建实例时的配置需要注意的选项 主要是字符集、大小写、和VARCHAR类型以字符为单位 出现【LENGTH_IN_CHAR 参数不匹配】勾选【VARCHAR类型以字…

NUC980开发板CAN开发笔记

一、内核开启CAN CAN 设置 NUC980 系列带有2个CAN(Controller Area Network), 可以分别独立设置。 请按以下的说明来使能CAN功能. 每个CAN可以单独的开关. CAN0有多组管脚可以选择, 需要一并设置。 使用者也可以设置CAN的唤醒功能。步骤如下&#xff1a; 进入 NUC980-linux-4.…

Linux系统安装及简单操作

目录 一、Linux系统安装 二、Linux系统启动 三、Linux系统本地登录 四、Linux系统操作方式 五、Linux的七种运行级别&#xff08;runlevel&#xff09; 六、shell 七、命令 一、Linux系统安装 场景1&#xff1a;直接通过光盘安装到硬件上&#xff08;方法和Windows安装…

1.初学docker

这是在centos7上的基本操作用法。 一、基本操作 # 安装yum源 yum install -y yum-utils # 配置yum源 yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo # 安装docker yum install -y docker-ce-cli containerd.io docker-buildx-plu…

计算机网络-数据链路层

一、认识以太网 "以太网" 不是⼀种具体的网络&#xff0c;而是一种技术标准; 既包含了数据链路层的内容, 也包含了⼀些物理 层的内容。 例如&#xff1a;规定了网络拓扑结构&#xff0c;访问控制方式&#xff0c;传输速率等; 例如&#xff1a;以太网中的网线必须使用…

mysql的trace追踪SQL工具,进行sql优化

trace是MySQL5.6版本后提供的SQL跟踪工具&#xff0c;通过使用trace可以让我们明白optimizer&#xff08;优化器&#xff09;如何选择执行计划。 注意&#xff1a;开启trace工具会影响mysql性能&#xff0c;所以只适合临时分析sql使用&#xff0c;用完之后请立即关闭。 测试数…

MQ高可用相关设置

文章目录 前言MQ如何保证消息不丢失RabbitMQRocketMQKafkaMQ MQ如何保证顺序消息RabbitMQRocketMQKafka MQ刷盘机制/集群同步RabbitMQRocketMQKafka 广播消息&集群消息RabbitMQRocketMQ MQ集群架构RabbitMQRocketMQKafka 消息重试RabbitMQRockeMqKafka 死信队列RocketMQKaf…