基于DAMODEL——Faster-RCNN 训练与测试指南

news2024/11/17 13:54:19

Faster-RCNN 训练与测试指南

前言

今天我们要来实现一个经典的目标检测模型:Faster-Rcnn。我们使用DAMODEL云平台来实现,这是个很强大的云端平台,功能众多,你可以投你所好去进行你想做的事情。

1. 环境与工具准备

1.1 远程连接工具:Mobaxterm

首先,你需要通过 Mobaxterm 来远程连接服务器,这是一个简单而功能强大的SSH远程连接工具。

安装步骤:

  1. 点击上方链接,下载并安装 Mobaxterm。

    image-20240924232649697
    速度可能会比较慢,我们稍微等待。

  2. 安装完成后,可以用它来登录云服务器。

1.2 获取源码

下载本文所用到的源码,并准备好以便后续操作。

点击此处下载源码:https://s3.damodel.com/damodel-openfile/mmdetection-3.3.0.zip


2. 配置 Faster-RCNN 环境并进行训练

2.1 云服务器平台设置

第一步:创建实例
  1. 在云服务器平台创建 GPU 实例,推荐使用 4090 显卡,确保有充足的计算能力。
    image-20240924233549593
    image-20240924233641399
  2. 下载并保存私钥文件,它将用于免密登录。
第二步:登录服务器
  1. 服务器创建成功后,复制 SSH 连接地址。
  2. 打开 Mobaxterm,选择 SSH 远程登录,并使用下载的私钥进行免密登录。
    image-20240924233800604
ssh -p 39763 root@cn-north-b.ssh.damodel.com

成功登录后,你将进入服务器的命令行界面。

image-20240924234026557

输入root再按回车即可登录。

2.2 配置 Faster-RCNN 环境

第一步:上传与解压代码
  1. 将下载的源码文件上传至服务器的 /root/workspace/ 目录。
  2. 使用如下命令解压文件:
unzip mmdetection-3.3.0.zip
第二步:安装依赖库

接下来,安装 Faster-RCNN 的所需环境。你需要依次运行以下命令:

# 安装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
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 setuptools==69.5.1 instaboostfast -i https://pypi.tuna.tsinghua.edu.cn/simple/

# 安装全景分割依赖
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/

image-20240924234850025

第三步:验证安装是否成功

运行测试脚本,确保所有环境安装完毕:

python 1.py

2.3 数据集简介

COCOmini 数据集是一种常用于目标检测、实例分割、关键点检测等计算机视觉任务的数据集。它包含以下特点:

  • 多标签分类:每个图像包含多个对象类别,非常适合多对象环境的研究。
  • 多样化场景:涵盖室内外、城市和自然等不同场景,提供丰富的视觉样本。
  • 详尽的注释:每个对象实例都包含精确的边界框、分割掩码和关键点注释。

你可以使用 COCO 数据集进行训练,模型将从中学习多样化的物体特征。


2.4 开始训练

Faster-RCNN 的代码已经调试完成,你只需运行以下命令,即可开始训练模型:

python ./tools/train.py ./checkpoints/faster-rcnn_r50_fpn_1x_coco.py
# 他会自动下载权重,并开始训练,耐心等待即可。

该命令会自动下载预训练权重,开始模型训练。请耐心等待,训练时间视硬件配置而定。

image-20240924234946896


2.5 测试模型并保存结果

经过训练后,你可以使用训练好的模型权重进行数据集预测,以下是测试步骤:

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/

测试结果将会保存在指定目录中,包含原始物体位置和模型预测的对比。

image-20240924235005885


2.6 保存实验数据与下载

为了保存训练环境和结果数据,你可以创建一个镜像,这样下次使用时不需要重新配置环境。具体步骤如下:

  1. 前往控制台,选择GPU云实例
  2. 点击保存镜像,保存当前的实验环境和数据。

以上就是 Faster-RCNN 训练与测试的完整流程。通过上述步骤,你可以顺利完成云端训练环境的搭建、模型训练与测试,并保存实验结果方便后续使用。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

经颅磁刺激技术,脑科学研究——精神患者治疗方案

经颅磁刺激(Transcranial Magnetic Stimulation ,TMS)技术是一种利用脉冲磁场作用于中枢神经系统(主要是大脑),改变皮层神经细胞的膜电位,使之产生感应电流,影响脑内代谢和神经电活动…

开放原子开源基金会OPENATOM

AtomGit_开放原子开源基金会代码托管平台-AtomGit 开放原子开源基金会是致力于推动全球开源事业发展的非营利机构,于 2020 年 6 月在北京成立,由阿里巴巴、百度、华为、浪潮、360、腾讯、招商银行等多家龙头科技企业联合发起。 精选项目: 比…

HDFS_API文件和文件夹

代码: Beforepublic void init() throws URISyntaxException, IOException {URI uri new URI("hdfs://master:9000");// 创建一个配置文件Configuration entries new Configuration();// 获取到了客户端对象 // entries.set("dfs.replicat…

【C++笔试强训】

​ 学习编程就得循环渐进,扎实基础,勿在浮沙筑高台 循环渐进Forward-CSDN博客 目录 循环渐进Forward-CSDN博客 第一题:除2! 第二题:dd爱框框 第三题:简写单词 第一题:除2! 牛客网…

Uniapp 打包后的横屏控制

文章目录 问题处理参考 问题 Uniapp 打包后的横竖屏跟开发模式不太一样,需要在代码里设置一下 处理 需要改两个地方 pages.json:在 globalStyle 中添加 "pageOrientation": "auto", manifest.json:在第一层后面添加…

每日学习一个数据结构-哈希表(散列表)

文章目录 示意图一、基本概念二、工作原理三、常用哈希函数四、冲突解决方法五、优缺点六、应用场景 哈希表(Hash table),也被称为散列表,是一种基于哈希函数的数据结构,它通过把关键码值(Key value&#x…

毛竹泛基因组-文献精读52

Haplotype-based pangenomes reveal genetic variations and climate adaptations in moso bamboo populations 基于单倍型的泛基因组揭示了毛竹种群中的遗传变异和气候适应性 摘要 毛竹(Phyllostachys edulis)是东亚地区一种在生态和经济上都具有重要…

二刷LeetCode:“51.N皇后 37.解数独”题解心得(简单易懂)

引言(初遇噩梦,再遇坦然) 在阅读本文之前,建议大家已经接触过回溯算法,并完成回溯相关题目,例如:子集问题、组合问题、排列问题。 子集:子集II、子集 组合:组合、组合总和…

[spring]用MyBatis XML操作数据库 其他查询操作 数据库连接池 mysql企业开发规范

文章目录 一. MyBatis XML配置文件1. 配置链接字符串和MyBatis2. 写持久层代码方法定义Interface方法实现xml测试 3. 增删改查增:删改查 二. 开发规范(mysql)三. 其他查询操作1. 多表查询2. #{} 和 ${}(面试题)使用区别 排序功能like查询 三. 数据库连接池 一. MyBatis XML配置…

【华为】用策略路由解决双出口运营商问题

需求描述 不同网段访问互联网资源时,走不同的出口,即PC1走电信出口,PC2走移动出口。 客户在内网接口下应用策略路由后往往出现无法访问内网管理地址的现象,该举例给出解决办法。 拓扑图 基础配置 #sysname R1 # # interface G…

【hot100-java】【下一个排列】

R8-技巧篇 最近速成java中&#xff0c;算法基础需要兼顾。 class Solution {public void nextPermutation(int[] nums) {int lennums.length;List<Integer>list new ArrayList<>();boolean flagtrue;for (int ilen-1;i>0;i--){list.add(nums[i]);Collections.…

若依生成主子表

一、准备工作 确保你已经部署了若依框架&#xff0c;并且熟悉基本的开发环境配置。同时&#xff0c;理解数据库表结构对于生成代码至关重要。 主子表代码结构如下&#xff08;字表中要有一个对应主表ID的字段作为外键&#xff0c;如下图的customer_id&#xff09; -- ------…

Pyinstaller打包python程序为exe时 程序多线程导致打开非常多窗口解决

装了个Pyinstaller打包exe pip install Pyinstaller 打包命令 Pyinstaller -F main.py Pyinstaller -F -w main.py #不带控制台 Pyinstaller -F -w -i 1.ico main.py #指定图标不带控制台 打包完的exe一运行开了一坨窗口&#xff0c;一眼多线程&#xff0c;我程序里的多线程如…

RtspServer:轻量级RTSP服务器和推流器

文章目录 项目概述技术分析支持的编码格式传输方式心跳检测机制RTSP 推流安全性 架构分析RtspServer 整体架构流程分析1. 客户端连接和会话建立2. 媒体数据传输3. 心跳检测和连接维护 xop 基础库项目介绍功能特性xop 整体架构 应用场景社区问题收集与解答问题一&#xff1a;刚开…

C++:deque的底层原理

一、deque是是双端队列。 deque(双端队列)&#xff1a;是一种双开口的"连续"空间的数据结构&#xff0c;双开口的含义是&#xff1a;可以在头尾两端进行插入和删除操作&#xff0c;且时间复杂度为O(1)&#xff0c;与vector比较&#xff0c;头插效率高&#xff0c;不…

Docker自定义构建镜像dockerfile和使用数据卷

Docker自定义构建镜像dockerfile和使用数据卷 DockerFile Dockerfile 是一个文本文件&#xff0c;包含了一系列用于构建 Docker 镜像 的指令和配置信息。通过编写 Dockerfile &#xff0c;用户可以定义镜像的构建过程&#xff0c;包括基础镜像、运行命令、设置环境变量、暴露…

38.重复的子字符串

方法1&#xff1a; class Solution {public boolean repeatedSubstringPattern(String s) {if (s.equals("")) return false;String s2(ss).substring(1,(ss).length()-1);//去掉首尾字符return s2.contains(s);//判断是否包含s} } class Solution(object):def rep…

Leetcode 相交链表

一图胜千言&#xff0c;java 代码如下&#xff1a; /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode(int x) {* val x;* next null;* }* }*/ public class Solution {public ListN…

Python自动化测试之unittest框架

一、什么是框架 框架是由大佬开发或者专业的研发团队研发的技术骨架&#xff0c;框架是一个半成品&#xff0c;框架是对常用的功能&#xff0c;基础的代码进行封装的一个工具&#xff0c;这个工具对外提供了一些API&#xff0c;其他的开发者只需要调用框架的接口即可&#xff…

网络安全法中,个人信息保护的措施和原则有哪些?

《中华人民共和国网络安全法》中关于个人信息保护的规定强调了几项基本原则和措施&#xff0c;以确保个人信息的安全。以下是其中的一些要点&#xff1a; 原则 合法性&#xff1a;个人信息的收集和使用必须符合法律规定。 正当性&#xff1a;信息收集和使用的目的是正当的&…