基于丹摩智算平台-手把手拿下经典目标检测模型 Faster-Rcnn

文章目录

    • 1. 前言
      • 1. 1 丹摩智算平台
      • 1.2 经典目标检测模型 Faster-Rcnn
    • 2. 前置准备
      • 2.1 WindTerm(远程连接服务器)
      • 2.2 项目源码
    • 3. 服务器平台配置
      • 3.1 创建实例
      • 3.2 远程链接
    • 4. Faster-rcnn 的环境配置
      • 4.1 上传文件,解压
      • 4.2 安装所需环境
    • 5. 数据集简介
    • 6. 开始训练
    • 7. 测试数据保存
    • 8. 训练结果导出
    • 9. 结语

1. 前言

1. 1 丹摩智算平台

DAMODEL(丹摩智算)是专为 AI 打造的智算云,致力于提供丰富的算力资源与基础设施助力 AI 应用的开发、训练、部署。

image-20240923113304837

平台特点:

  • 💡 超友好!配备 124G 大内存和 100G 大空间系统盘,一键部署,三秒启动,让 AI 开发从未如此简单!
  • 💡 资源多!从入门级到专业级 GPU 全覆盖,无论初级开发还是高阶应用,你的需求,我们统统 Cover!
  • 💡 性能强!自建 IDC,全新 GPU,每一位开发者都能体验到顶级的计算性能和专属服务,大平台值得信赖!
  • 💡 超实惠!超低价格体验优质算力服务,注册即送优惠券!还有各类社区优惠活动,羊毛薅不停!

1.2 经典目标检测模型 Faster-Rcnn

Faster RCNN是two-stage目标检测模型中的典型代表,已经是多年的老模型

Fast R-CNN的工作流程是先通过选择性搜索(Selective Search)算法等方法生成候选框,这些候选框作为可能包含目标的区域。接着,整个图像与其对应的候选框一起输入到CNN中。CNN在前向传播过程中同时完成了特征提取、边界框分类和边界框回归三个任务。通过将这三个任务融合到同一个CNN中,Fast R-CNN大大提高了目标检测的效率和准确性,不再需要对每个候选框单独进行特征提取和分类,从而加快了检测速度。

fast-RCNN算法的3个步骤:

1.一张图像生成1K~2K个候选区域(使用Selective Search方法)

2.将图像输入网络得到相应的特征图,将SS算法生成的候选框投影到特征图上获得相应的特征矩阵

3.将每个特征矩阵通过ROI pooling层缩放到7x7大小的特征图,接着将特征图展平通过一系列全连接层得到预测结果

2. 前置准备

2.1 WindTerm(远程连接服务器)

WindTerm SSH工具,服务器管理,远程桌面加速软件,支持Windows,macOS,Linux - WindTerm官网

image-20240923144116177

2.2 项目源码

下载地址:点击下载源码

3. 服务器平台配置

这里服务器平台我选择的是丹摩智算的平台,大家可以注册使用体验一下 丹摩智算平台

3.1 创建实例

  1. 创建实例,选择 4090 显卡,并且下载私钥

image-20240923114912171

image-20240923115204325

选择4090显卡,24g显存,124g内存,磁盘150g即可

  1. 镜像选择:pytorch 2.1.2,python 3.10

image-20240923115357419

  1. 创建密钥对

image-20240923115603704

密钥对创建后记得保存文件,用于后续免密链接登录,也可以不记录

  1. 完成创建

完善相关配置后,点击创建,等待创建完成

image-20240923115746105

3.2 远程链接

  1. 复制访问链接

image-20240923141817790

ssh -p 42894 root@cn-north-b.ssh.damodel.com
HFyoNrTei9
  1. WindTerm链接

回话-新建回话-根据链接完善主机,端口-输入密码

image-20240923144322914

  1. 连接成功

显示如下界面我们就成功了!

image-20240923144448910

4. Faster-rcnn 的环境配置

4.1 上传文件,解压

将我们的代码文件拖入/root/workspace/目录下,然后解压

image-20240923145002864

解压文件

unzip mmdetection-3.3.0.zip

image-20240923145018116

4.2 安装所需环境

# 安装mmcv包
pip install mmcv==2.1.0 -f https://download.openmmlab.com/mmcv/dist/cu121/torch2.1/index.html -i https://mirrors.aliyun.com/pypi/simple/# 从源码安装mmdetection-3.3.0
cd mmdetection-3.3.0
pip install -r requirements/build.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/
pip install -v -e ./ -i https://pypi.tuna.tsinghua.edu.cn/simple/# 安装必要包
pip install numpy==1.24.4 -i https://pypi.tuna.tsinghua.edu.cn/simple/
pip install setuptools==69.5.1 -i https://pypi.tuna.tsinghua.edu.cn/simple/
pip install instaboostfast -i https://pypi.tuna.tsinghua.edu.cn/simple/# 安装全景分割依赖panopticapi
cd panopticapi
pip install -e . -i https://pypi.tuna.tsinghua.edu.cn/simple/
cd ..# 安装 LVIS 数据集依赖
cd lvis-api
pip install -e . -i https://pypi.tuna.tsinghua.edu.cn/simple/
cd ..# 安装 albumentations 依赖
pip install -r requirements/albu.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/
pip install mmengine -i https://pypi.tuna.tsinghua.edu.cn/simple/

逐个处理,保证环境配置正确

环境安装完成,简单测试

python 1.py

image-20240923145441626

5. 数据集简介

COCOmini 数据集是一个用于各种计算机视觉任务的数据集,包括但不限于目标检测、实例分割、关键点检测、和图像分类。

特点与组成部分:

  • 多标签:不同于单一标签的数据集,COCO 中的图像通常包含多个不同的对象类别,这使得它非常适合上下文理解的研究。
  • 多样性和复杂性:图像涵盖了广泛的生活场景,从室内到室外,从城市到自然环境,提供了丰富的视觉多样性。
  • 详尽的注释:每个对象实例都有精确的边界框和分割掩码,以及关键点注释对于人体类别的对象。
  • 80 个对象类别:COCO 包含了 80 种常见的物体类别,如人、动物、交通工具、家具等。

000000009590

6. 开始训练

# 为了方便上手,因此我们的代码都是调试好的,因此可以直接输入命令进行训练python ./tools/train.py ./checkpoints/faster-rcnn_r50_fpn_1x_coco.py# 他会自动下载权重,并开始训练,耐心等待即可~~~
  1. 输入命令,开始程序

image-20240923145822550

  1. 自行下载,数据准备

image-20240923145938473

  1. 数据训练中

image-20240923150607213

7. 测试数据保存

# 经过训练,我们得到pth权重,通过pth权重预测我们的数据集,左侧为真实物体的位置,右侧为预测结果。
# 我们这里直接使用训练好的权重进行预测python tools/test.py ./checkpoints/faster-rcnn_r50_fpn_1x_coco.py ./checkpoints/faster_rcnn_r50_fpn_1x_coco_20200130-047c8118.pth --show-dir /root/workspace/mmdetection-3.3.0/result/

训练完成,数据保存result文件夹

image-20240923151031838

8. 训练结果导出

选择result文件夹,导出本地文件

下载传输速度也是非常可观的

image-20240923151201478

训练结果展示:

image-20240923151314346

image-20240923151344834

image-20240923151419045

9. 结语

前往控制台-GPU云实例,保存镜像,这样我们可以下次使用时省去配置环境的过程。

image-20240923151517309

整体体验下来,我的使用感受还是很好的,有以下个人感受

  1. 收费较低,目前优惠力度很大,学生福利够给力
  2. 性能强劲,训练速度很快,响应快捷
  3. 官方界面整洁OK,感官不错
  4. 售后保证,有问题联系官方及时反馈

大家想做科研训练,需要算力可以考虑一下:丹摩智算

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

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

相关文章

华为HarmonyOS地图服务 1 -- 如何实现地图呈现?

如何使用地图组件MapComponent和MapComponentController呈现地图,效果如下图所示。 MapComponent是地图组件,用于在您的页面中放置地图。MapComponentController是地图组件的主要功能入口类,用来操作地图,与地图有关的所有方法从此…

基于PaddlePaddle复现的PeleeNet

转自AI Studio,原文链接:基于PaddlePaddle复现的PeleeNet - 飞桨AI Studio PeleeNet: An efficient DenseNet architecture for mobile devices 1. 简介 这是一个PaddlePaddle实现的PeleeNet。 PeleeNet是一个高效的卷积神经网络(CNN&…

数通。。。

通信:需要介质才能通信电话离信号塔(基站)越远,信号越弱。信号在基站之间传递。你离路由器越远,信号越差。一个意思 比如想传一张图片,这张图片就是数据载荷 网关,分割两个网络。路由器可以是网…

【贪心算法】贪心算法二

贪心算法二 1.最长递增子序列2.递增的三元子序列3.最长连续递增序列 点赞👍👍收藏🌟🌟关注💖💖 你的支持是对我最大的鼓励,我们一起努力吧!😃😃 1.最长递增子序列 题目链…

AI免费UI页面生成

https://v0.dev/chat v0 - UI设计 cursor - 编写代码 参考:https://www.youtube.com/watch?vIyIVvAu1KZ4 界面和claude类似,右侧展示效果和代码 https://pagen.so/

用uniapp 及socket.io做一个简单聊天 升级 9

比这之前优化了以下功能 上线通知 群聊里适时显示在线人数 约请好友 通过好友通过socket 相应端自动变化 PC端可以拉取摄象头拍照 PC端可以录音发送 拉起摄象头发送录象 <template><view class""><scroll-view scroll-y"true" class&…

【Linux篇】常用命令及操作技巧(基础篇)

&#x1f30f;个人博客主页&#xff1a;意疏-CSDN博客 希望文章能够给到初学的你一些启发&#xff5e; 如果觉得文章对你有帮助的话&#xff0c;点赞 关注 收藏支持一下笔者吧&#xff5e; 阅读指南&#xff1a; 开篇说明帮助命令常见的七个linux操作终端实用的技巧跟文件目录…

【深入理解SpringCloud微服务】了解微服务的熔断、限流、降级,手写实现一个微服务熔断限流器

【深入理解SpringCloud微服务】了解微服务的熔断、限流、降级&#xff0c;手写实现一个微服务熔断限流器 服务雪崩熔断、限流、降级熔断降级限流 手写实现一个微服务熔断限流器架构设计代码实现整体逻辑ProtectorAspect#aroundMethod(ProceedingJoinPoint)具体实现1、获取接口对…

智慧农业——InsectMamba利用状态空间模型对害虫进行分类

介绍 论文地址&#xff1a;https://arxiv.org/abs/2404.03611 害虫分类是农业中的一个重要问题。准确识别有害害虫可减少对作物的损害&#xff0c;确保粮食安全和环境的可持续发展。然而&#xff0c;害虫及其自然环境的高度拟态性和物种多样性使得视觉特征的提取极具挑战性。…

Centos7.9 使用 Kubeadm 自动化部署 K8S 集群(一个脚本)

文章目录 一、环境准备1、硬件准备&#xff08;虚拟主机&#xff09;2、操作系统版本3、硬件配置4、网络 二、注意点1、主机命名格式2、网络插件 flannel 镜像拉取2.1、主机生成公私钥2.2、为啥有 Github 还用 Gitee2.3、将主机公钥添加到 Gitee2.3.1、复制主机上的公钥2.3.2、…

< 微积分Calculus >

微积分 微分是把整体分拆为小部分来求它怎样改变 积分是把小部分连接在一起来求整体有多大&#xff0c;可以用来求面积、体积、中点和很多其他有用的东西。 lim极限 函数f(x) -> Q(x) y&#xff1a;x变量&#xff0c;f函数&#xff0c;Q(x)函数体&#xff08;多项式&am…

【Paper Reading】结合 NanoFlow 研究,优化大语言模型服务效率的探索

作者 王伟 PAI引擎团队 近年来&#xff0c;人工智能领域的快速发展推动了大型语言模型的广泛应用&#xff0c;随之而来的是对其服务效率的迫切需求。论文《NanoFlow&#xff1a;Towards Optimal Large Language Model Serving Throughput》提出了一种突破性的新型服务框架&…

CTF 技能树 LOG -GIT泄露 笔记

log 使用虚拟机kali操作 python2 安装 apt-get install python2 进入root用户&#xff0c;下载克隆git hack库 git clone https://github.com/BugScanTeam/GitHack sudo passwd root 修改root 命名密码为root 切换登录 su root 终端进入home/kali/GitHack/ python GitH…

2024年 AI大模型我该买一张什么卡?

有钱啥也不用说&#xff0c;买张最贵的就是了。对囊中羞涩的我还说&#xff0c;我该买张什么样的显卡呢&#xff1f; 我的旧显卡RTX1060 6G&#xff0c;满负荷消耗功率110多瓦&#xff0c;几乎达到设计最大TDP&#xff0c;周日时拿了朋友的RTX3060Ti 8G&#xff0c;发现是锁算…

【中国留学网-注册_登录安全分析报告】

前言 由于网站注册入口容易被黑客攻击&#xff0c;存在如下安全问题&#xff1a; 暴力破解密码&#xff0c;造成用户信息泄露短信盗刷的安全问题&#xff0c;影响业务及导致用户投诉带来经济损失&#xff0c;尤其是后付费客户&#xff0c;风险巨大&#xff0c;造成亏损无底洞…

手机在网状态查询接口如何用C#进行调用?

一、什么是手机在网状态查询接口&#xff1f; 手机在网状态查询接口是利用实时数据来对手机号码在运营商网络中的状态进行查询的工具&#xff0c;包括正常使用状态、停机状态、不在网状态、预销户状态等。 二、手机在网状态查询适用哪些场景&#xff1f; 例如&#xff1a;商…

Android RecyclerView 实现 GridView ,并实现点击效果及方向位置的显示

效果图 一、引入 implementation com.github.CymChad:BaseRecyclerViewAdapterHelper:2.9.30 二、使用步骤 1.Adapter public class UnAdapter extends BaseQuickAdapter<UnBean.ResultBean, BaseViewHolder> {private int selectedPosition RecyclerView.NO_POSITIO…

51单片机——LED灯篇

一、LED与单片机P2管脚相连 二、点亮一个LED灯 #include <STC89C5xRC.H> void main() { P2 0xFE; //1111 1110 } P2有8个管脚&#xff0c;对应8个二进制位。 LED灯右侧接电源是正极&#xff08;1&#xff09;&#xff0c;左侧给负极&#xff08;0&#xff09;即可…

C++学习指南(六)----list

欢迎来到繁星的CSDN。本期内容主要包括&#xff0c;list的介绍、使用以及与vector的优缺点。 一、什么是list 在先前的C语言学习中&#xff0c;我们接触到了顺序表和链表&#xff0c;而在C中&#xff0c;这正好对应了vector&#xff08;动态增长顺序表&#xff09;和l…

linux第三课(linux中安装nginx与redis及SpringBoot集成redis)

目录 一.nginx引入 二.关于nginx 1.什么是nginx 2.nginx的特点 3.在nginx中安装nginx 三.关于redis 1.背景引入 2.什么是redis 3.redis的特点 4.在linux下的docker中安装redis 四.redis中的数据结构 (1)String(字符串) (2)Hash (3)list(列表) (5)zset(sorted se…