CEASC项目环境搭建(训练VisDrone数据集)

news2025/2/1 19:53:49

CEASC项目环境搭建(训练VisDrone数据集)

论文地址:https://openaccess.thecvf.com/content/CVPR2023/papers/Du_Adaptive_Sparse_Convolutional_Networks_With_Global_Context_Enhancement_for_Faster_CVPR_2023_paper.pdf

Code:https://github.com/Cuogeihong/CEASC.git

1 创建conda虚拟环境

conda create -n name python==3.8
conda init bash && source /root/.bashrc
conda activate name 
conda install pytorch==1.10.1 torchvision==0.11.2 torchaudio==0.10.1 cudatoolkit=11.3 -c pytorch

2 安装MMDection环境

pip install openmim
mim install mmdet==2.24.1 mmcv-full==1.5.1

3 下载CEASC源码 and Install albumentations and other packages.

git clone https://github.com/Cuogeihong/CEASC.git
cd CEASC
pip install nltk
pip install -r requirements/albu.txt

4 Install our Sparse Convolution Implementation

cd ./Sparse_conv
python setup.py install
cd ..
pip install -r requirements/build.txt
pip install -v -e .  # or "python setup.py develop"

5 下载解压数据集

参考https://github.com/PuAnysh/UFPMP-Det
VisDrone:链接:https://pan.baidu.com/s/1FfAsAApHZruucO5A2QgQAg 提取码:qrvs

解压:
sudo apt-get install p7zip-full
7za x VisDrone_Dataset_COCO_Format.zip

6 在JupyterLab的Notebook中使用新的Conda环境

# 将新的Conda虚拟环境加入jupyterlab中
conda activate name                         # 切换到创建的虚拟环境:tf
conda install ipykernel
ipython kernel install --user --name=name   # 设置kernel,--user表示当前用户,tf为虚拟环境名称

7 训练

  • 更改配置文件中数据集路径
CEASC/configs/UAV/baseline_fasterrcnn_res18_visdrone.py

第118行
data_root = '/path/to/dataset/' -> data_root = '/root/autodl-tmp/CEASC/VisDrone_coco/VisDrone_Dataset_COCO_Format/'

下图路径与数据集文件相对应:

image-20230717162415145

CUDA_VISIBLE_DEVICES=0 python tools/train.py ./configs/UAV/baseline_fasterrcnn_res18_visdrone.py --work-dir ./work-dir

报错:

Traceback (most recent call last):
  File "tools/train.py", line 237, in <module>
    main()
  File "tools/train.py", line 226, in main
    train_detector(
  File "/root/autodl-tmp/CEASC/mmdet/apis/train.py", line 244, in train_detector
    runner.run(data_loaders, cfg.workflow)
  File "/root/miniconda3/envs/wgt/lib/python3.8/site-packages/mmcv/runner/epoch_based_runner.py", line 127, in run
    epoch_runner(data_loaders[i], **kwargs)
  File "/root/miniconda3/envs/wgt/lib/python3.8/site-packages/mmcv/runner/epoch_based_runner.py", line 45, in train
    self.call_hook('before_train_epoch')
  File "/root/miniconda3/envs/wgt/lib/python3.8/site-packages/mmcv/runner/base_runner.py", line 309, in call_hook
    getattr(hook, fn_name)(self)
  File "/root/autodl-tmp/CEASC/mmdet/datasets/utils.py", line 158, in before_train_epoch
    self._check_head(runner)
  File "/root/autodl-tmp/CEASC/mmdet/datasets/utils.py", line 144, in _check_head
    assert module.num_classes == len(dataset.CLASSES), \
AssertionError: The `num_classes` (1) in RPNHeadExpand of MMDataParallel does not matches the length of `CLASSES` 10) in RepeatDataset

网上没找到答案!!!

经过对源码的查看,发现RPNHeadExpand是在RPNHEAD进行的修改

然而在CEASC/mmdet/datasets/utils.py文件中,这里是将RPNHEAD跳过,不检查module是否具有num_classes属性。所以同理,RPNHeadExpand 也应该跳过。

image-20230717163124656

改为下面这俩行:

from mmdet.models.dense_heads import GARPNHead, RPNHead, RPNHeadExpand, RPNDYHeadExpand

if hasattr(module, 'num_classes') and not isinstance(
                        module, (RPNDYHeadExpand, RPNHeadExpand, RPNHead, VGG, FusedSemanticHead, GARPNHead)):

然后再进行编译,在主目录在面/CEASC

pip install -v -e .

然后再运行就可以了!!!

image-20230717163637670

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

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

相关文章

同比环比数据可视化

引言 数据分析和可视化在现代商业环境中变得越来越重要。随着数据的迅速增长&#xff0c;我们需要有效的工具来解释和理解这些数据。 数据可视化提供了一种直观的方式&#xff0c;帮助我们从海量数据中提取有意义的见解&#xff0c;以支持业务决策。 同比环比图作为一种常见的…

AI制图工具丨Midjourney产品功能介绍

了解如何使用Discord上的Midjourney Bot通过简单的文本提示创建自定义图像 Midjourney是一款AI制图工具&#xff0c;只要关键字&#xff0c;就能透过AI算法生成相对应的图片&#xff0c;只需要不到一分钟。 可以选择不同画家的艺术风格&#xff0c;例如安迪华荷、达芬奇、达利…

JavaScript中的JSON

一&#xff1a;分类  简单值&#xff1a;字符串、数值、布尔值和 null 可以在 JSON 中出现&#xff0c;就像在 JavaScript 中一样。特殊 值 undefined 不可以。 对象&#xff1a;第一种复杂数据类型&#xff0c;对象表示有序键/值对。每个值可以是简单值&#xff0c;也可以…

如何通过三级缓存解决 Spring 循环依赖

以下内容基于 Spring6.0.4。 这个其实是一个特别高频的面试题&#xff0c;松哥也一直很想和大家仔细来聊一聊这个话题&#xff0c;网上关于这块的文章很多&#xff0c;但是我一直觉得要把这个问题讲清楚还有点难度&#xff0c;今天我来试一试&#xff0c;看能不能和小伙伴们把…

一张证,三年月薪翻三倍!

18年9月&#xff0c;我获取了PMP&#xff08;项目管理&#xff09;认证&#xff0c;19年6月获取了PgMP&#xff08;项目集群管理&#xff09;认证。考证过程并不是很难&#xff0c;月薪却从1万突破3万&#xff0c;也找到了自己喜欢和擅长的工作领域&#xff0c;获益无穷。 什么…

Navicat 用户权限功能 | 预防 MySQL 删库风险

近期&#xff0c;我们后台收到一位用户的问询&#xff0c;有关于误删库的解决办法。对于企业来说&#xff0c;这可能是一个大事故&#xff01;但幸运的是&#xff0c;该用户在不久之前看了我们的 Navicat 自动备份功能文章&#xff0c;并且实施了数据库备份操作&#xff0c;所以…

如何下载SRA存放在AWS的原始数据

通常&#xff0c;我们都是利用prefetch从NCBI上获取数据&#xff0c;然后用fasterp-dump/fastq-dump 转成fastq。但遗憾的SRA的数据是原数据的有损压缩&#xff0c;比如说我19年参与发表的文章里单细胞数据上传的是3个文件&#xff0c;但是当时的faster-dump/fastq-dump只能拆出…

MongoDB源码安装

文章目录 MongoDB源码安装&#xff1a;注&#xff1a;下载&#xff1a;解压&#xff1a;创建数据目录&#xff1a;创建软链接&#xff1a;创建变量脚本&#xff1a;执行脚本&#xff1a;启动mongodb:检查&#xff1a;连接mongodb&#xff1a; MongoDB源码安装&#xff1a; 注&…

Flutter系列文章-Flutter基础

Flutter是Google推出的一种新的移动应用开发框架&#xff0c;允许开发者使用一套代码库同时开发Android和iOS应用。它的设计理念、框架结构、以及对Widget的使用&#xff0c;都让开发者能更有效率地创建高质量的应用。 一、Flutter设计理念 Flutter的设计理念是“一切皆为Wid…

安装hive数据仓库

部署hive数据库 环境准备 需要安装部署完成的Hadoop的环境如果不会搭建的可以参考&#xff1a; 安装mysql 卸载Centos7自带的mariadb rpm -qa|grep mariadbrpm -e mariadb-libs-5.5.64-1.el7.x86_64 --nodepsrpm -qa|grep mariadb mariadb-libs-5.5.64-1.el7.x86_64是使用…

ToT: 利用大语言模型进行有意识的问题解决(上)

ToT 摘要介绍利用大语言模型进行有意识的问题解决1. 思维分解2. 思维产生 G(p,s,k)3. 状态评估V(p,S)4. 搜索算法 实验相关工作讨论 原文&#xff1a; 摘要 语言模型正在迅速成为一般问题解决的部署&#xff0c;但在推理过程中仍然局限于 标记级别&#xff08;token-level&…

uniapp左右滑动切换月份

左右滑动触发事件 给组件绑定事件,主要利用组件的触摸开始和触摸结束事件来实现: <view @touchstart="touchStart" @touchend="touchEnd"> 2,声明初始化点击位置变量startX data() {return {list:[],pageNum:1,pageSize:10,//初始化点击位置…

手撕Spring06

概述 该章节通过各种Context解决上下文问题&#xff0c;使用模版方法的设计模式&#xff0c;并增加了bean实例化之前、beanc初始化前后的扩展点整体设计 知识点补充 类图 context context包下主要是传递上下文、调用core.io、beans等包下的实际功能完成&#xff0c;配置文件…

12.11 FS4412开发环境搭建

目录 开发边硬件资源介绍 地址映射表 硬件控制原理 load/store 地址映射表4个G包括 开发边硬件资源介绍 地址映射表 硬件控制原理 1.数据运算指令&#xff08;CPU内部&#xff09; 2.跳转指令&#xff08;CPU内部&#xff09; 3.load/store&#xff08;通过读写对硬件…

测试的基本概念(测试系列2)

目录 前言&#xff1a; 1.什么是需求 1.1需求的定义 1.2为什么有软件需求 1.3测试人眼里的需求 2测试用例 2.1什么是测试用例 2.2为什么要有测试用例 3.软件错误&#xff08;BUG&#xff09; 3.1什么是bug 4.软件的生命周期 5.开发模型 5.1瀑布模型 5.2螺旋模型 …

【PHP源码】手术麻醉管理系统介绍

手术麻醉管理系统是什么&#xff1f; 手术麻醉信息管理系统是数字化手段应用于手术过程中的重要组成部分&#xff0c;用数字形式获取并存储手术相关信息&#xff0c;既便捷又高效。既然是管理系统&#xff0c;那就是一整套流程&#xff0c;管理患者手术、麻醉的申请、审批、安…

c#语法问题记录

1.using using 语句定义一个范围&#xff0c;在此范围的末尾将释放对象。using 指令为命名空间创建别名&#xff0c;或导入在其他命名空间中定义的类型。 2. internal sealed partial class internal&#xff1a; 关键字是类型和类型成员的访问修饰符。sealed &#xff1a;应…

IndexDB完整使用指南

IndexDB完整使用指南 数据存储是大多数 Web 应用程序的重要组成部分&#xff0c;从跟踪用户数据到应用程序数据。随着更快、更强大的 Web 应用程序的快速开发&#xff0c;需要高效的客户端存储来帮助开发。 多年来&#xff0c;Web 上的客户端存储已经发生了很大的变化&#x…

极智AI | torch与torchvision版本对应关系速查

欢迎关注我的公众号 [极智视界]&#xff0c;获取我的更多经验分享 大家好&#xff0c;我是极智视界&#xff0c;本文来介绍一下 torch与torchvision版本的对应关系。 邀您加入我的知识星球「极智视界」&#xff0c;星球内有超多好玩的项目实战源码下载&#xff0c;链接&#x…

2023年湖北安全员ABC考试题型有哪些?考多少分及格呢?

2023年湖北安全员ABC考试题型有哪些&#xff1f;考多少分及格呢&#xff1f; 安全员分为交通厅、水利厅和建设厅三个部门颁发&#xff0c;每个部门发的安全员证书也是不一样的。那么今天启程别跟大家讲的是建设厅安全员ABC证书报考的一些事宜&#xff08;启程别是谁&#xff1f…