丹摩征文活动| 摩智算平台深度解析:Faster R-CNN模型的训练、测试与优化实践

醉熏的蚂蚁 2024-11-25 12:14:26

@

目录

  • 文章前言
  • Faster R-CNN的简介
  • Faster RCNN的训练与测试
  • 提前准备
  • 1.1 mobaxterm(远程连接服务器)
  • 1.2 本文的源码下载
  • 目标检测模型 Faster-Rcnn
  • 2.1云服务器平台
  • 数据上传
  • 内置JupyterLab的使用
  • 本地连接使用DAMODEL实例
  • 获取实例的SSH访问信息
  • 通过SSH连接
  • 通过MobaXterm连接

文章前言

  • 在计算机视觉领域,目标检测作为一项核心技术,旨在从图像或视频中自动识别出特定类别的对象,并同时定位这些对象的位置。随着深度学习技术的飞速发展,目标检测算法的性能得到了显著提升,其中Faster R-CNN(Faster Regions with Convolutional Neural Networks)无疑是这一领域的一个里程碑式成果。自其问世以来,Faster R-CNN凭借其高效、准确的特点,在学术研究和工业应用中均展现出了强大的生命力。

Faster R-CNN的简介

在Faster R-CNN这一里程碑式的目标检测算法出现之前,尽管诸如R-CNN和Fast R-CNN等前代算法已经在目标检测领域取得了显著的进展和性能提升,但它们仍然面临着计算效率低下这一难以忽视的瓶颈问题。这些算法在生成候选区域(Region Proposals),即可能包含目标物体的图像子区域时,普遍依赖于传统的图像处理方法,例如Selective Search算法。然而,这一传统方法不仅计算耗时较长,成为了整个检测流程中的性能瓶颈,而且其处理流程与后续的深度神经网络训练过程难以有效融合,从而限制了整体检测效率的提升。

为了解决这一关键问题,Faster R-CNN算法应运而生,它创新性地引入了一个名为区域建议网络(Region Proposal Network, RPN)的全新组件。RPN能够高效地生成候选区域,并且与检测网络共享卷积特征,这一设计不仅显著减少了候选区域生成所需的时间,还使得整个检测流程更加紧凑和高效。通过RPN的引入,Faster R-CNN实现了候选区域的快速生成,同时保证了检测精度的提升,从而极大地推动了目标检测算法的发展,为后续的研究和应用奠定了坚实的基础。

Faster RCNN的训练与测试

训练Faster R-CNN这一先进的目标检测算法,是一个涉及多个精密步骤的复杂过程,这些步骤涵盖了从特征提取网络的预训练,到区域建议网络(RPN)的专门训练,再到整个检测网络的联合优化训练。而在测试阶段,Faster R-CNN则展现出了其高效处理输入图像的能力,能够迅速且准确地生成高质量的候选区域,并对这些区域进行精确的分类和边界框定位,从而实现了对目标物体的有效检测。

本文旨在深入而全面地探讨Faster R-CNN的训练与测试过程,从数据集的准备与预处理,到网络架构的详细解析,包括特征提取网络、RPN以及检测头的设计细节;再到训练策略的制定,如学习率的调整、损失函数的优化以及训练过程中的正则化方法等;最后到测试阶段的评估方法,如精度、召回率以及交并比(IoU)等关键指标的计算与分析。通过这一全面而细致的解析,本文旨在揭示Faster R-CNN这一经典算法的工作原理,探讨其性能优化的多种途径,并为读者在目标检测任务中实际应用Faster R-CNN提供有力的理论支持和实践指导。通过本文的学习,读者将能够深入理解Faster R-CNN的精髓所在,掌握其在实际应用中的关键技术和方法。

提前准备

1.1 mobaxterm(远程连接服务器)

链接:https://mobaxterm.mobatek.net/download-home-edition.html

在这里插入图片描述

1.2 本文的源码下载

点击下载源代码

目标检测模型 Faster-Rcnn

2.1云服务器平台

第一步:创建实例,选择 4090 显卡,并且下载私钥

在这里插入图片描述

![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/4f22a1640f654e9a88b03143a68262ba.png

进入创建页面后,首先在实例配置中选择付费类型,一般短期需求可以选择按量付费或者包日,长期需求可以选择包月套餐;其次选择单卡或多卡启动,然后选择需求的GPU型号,首次创建实例推荐选择:按量付费--GPU数量1--NVIDIA-GeForc-RTX-4090,该配置为60GB内存,24GB的显存。

在这里插入图片描述

![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/202ae995af124bdd9d56e49e8842dd23.png

继续往下翻,配置数据硬盘的大小,每个实例默认附带了50GB的数据硬盘,首次创建可以就选择默认大小50GB,可以看到,平台提供了一些基础镜像供快速启动,镜像中安装了对应的基础环境和框架,这里选择PyTorch1.13.1的框架启动。

在这里插入图片描述

点击创建密钥对,输入自定义的名称,然后选择自动创建并将创建好的私钥保存的自己电脑中并将后缀改为.pem,以便后续本地连接使用。

创建好密钥对后,选择刚刚创建好的密钥对,并点击立即创建,等待一段时间后即可启动成功!

数据上传

DAMODEL(丹摩智算)还提供了数据上传功能,用户有20GB免费存储空间,该空间被挂载到实例的/root/shared-storage目录,跨实例共享。首先点击文件存储,点击上传文件。

在这里插入图片描述

然后选择本机待上传的文件/文件夹,上传时尽量保持该界面首页显示,等待上传成功后再进行其他操作。

在这里插入图片描述

内置JupyterLab的使用

创建好实例后,可以看到平台提供了在线访问实例的JupyterLab入口,JupyterLab是一个交互式的开发环境,具有灵活而强大的用户界面。用户可以使用它编写 notebook、操作终端、编辑 markdown 文本、打开交互模式、查看 csv 文件及图片等。

在这里插入图片描述

点击进入JupyterLab后,通常情况下,左侧文件资源管理器与右侧控制台默认显示的是/root/workspace下的文件资源

服务器各个路径具体意义如下:

/:系统盘,替换镜像,重置系统时系统盘数据都会重置。
/root/workspace:数据盘,支持扩容,保存镜像时此处数据不会重置。
/root/shared-storage:共享文件存储,可跨实例存储。
其他步骤与JupyterLab的使用流程一致,推荐参考:
官网教程--Jupyter Lab官方文档【英文】:https://jupyterlab.readthedocs.io/en/latest/
优质博客--Jupyter Lab操作指南【中文】:https://blog.csdn.net/qq_44275213/article/details/139971514

本地连接使用DAMODEL实例

本章将演示说明如何在DAMODEL平台上找到实例的SSH访问信息,以及通过三种不同方法本地连接DAMODEL实例。

获取实例的SSH访问信息

首先需要进入DAMODEL控制台复制SSH的访问链接,获取主机host以及端口号:
复制SSH登录指令

ssh -p 31729 root@gpu-s277r6fyqd.ssh.damodel.com
  • 用户名为root
  • 主机host为gpu-s277r6fyqd.ssh.damodel.com
  • 端口号为31729
  • 将以上参数记录好,后续需要使用

通过SSH连接

  • 首先打开cmd命令提示符,cd进入刚刚存下私钥的文件夹目录:

然后使用以下ssh命令连接服务器:

ssh -i <私钥文件名> -p <端口号> <用户名>@<host地址>

在这里插入图片描述

如果嫌每次需要载入密钥文件麻烦,可以将密钥设置为本地默认ssh密钥,首先编辑或创建~/.ssh/config文件(位于用户主目录下,Windows一般为C:\Users<你的用户名>.ssh\config)
并添加以下配置:

#Host          {命名的服务器信息}  #可以是任意值,仅在ssh生效,别名不限制。
#HostName      {目标服务器IP}
#Port          {目标服务器端口}
#User          {目标服务器目标用户}
#IdentityFile  {密钥文件的路径}


Host damodel1 #输入你想用的任意别名,使用空格分开
HostName gpu-s277r6fyqd.ssh.damodel.com #输入服务器Host
Port 31729 #输入服务器端口
User root
IdentityFile C:\Users\**\Desktop\ss\private_key.pem #输入密钥文件的路径

#注意结束加空行

之后,就可以直接在cmd输入ssh damodel1,直接完成服务器连接了。

通过MobaXterm连接

首先打开MobaXterm软件,点击左上方Session按钮创建一个新的Session,并选择通过SSH连接登录。

在这里插入图片描述

然后将刚刚记录的主机host填入R额模特host当中,端口号填入Port中,配置基础的SHH设置,然后点击下方Adavanced SSH settings选择高级SSH设置,勾选使用私钥登录,并将1.1中与实例绑定过的私钥导入其中。
点击ok后,即可看到成功创建了session,输入刚刚记录的用户名root,0即可连接0成功。

显示如下界面后,即连接成功,后续就可以正常通过MobaXterm连接使用服务器了。

在这里插入图片描述


...全文
532 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

5,806

社区成员

发帖
与我相关
我的任务
社区描述
专题开发/技术/项目 人工智能技术
社区管理员
  • community_35
  • SoftwareTeacher
  • 人工智能小助手
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

尊敬的用户,您好!
我们很高兴地宣布,ai.csdn.net现在已经正式上线了!这是一个全新的AI技术社区,我们将为您提供最新的AI技术资讯、最前沿的AI技术应用案例、最专业的AI技术交流平台。我们希望通过这个平台,让更多的AI技术爱好者能够相互交流、共同进步。欢迎您加入我们的大家庭,一起探讨AI技术的未来!
我们的AI技术社区还提供了AIGC(人工智能生成内容)服务,为您提供最专业的AI技术支持。我们的AIGC团队由一群资深的AI技术专家组成,他们将为您提供最新的AI技术资讯、最前沿的AI技术应用案例、最专业的AI技术交流平台。无论您是AI技术爱好者,还是AI技术从业者,我们都将为您提供最优质的服务,让您在AI技术的道路上走得更远!

试试用AI创作助手写篇文章吧