背景
当前处于人脸检测分支,项目就是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)坐标对,每组保留第1、2个数字,去掉第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 版本匹配的信息。