IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> CenterFusion项目超详细环境搭建步骤(这几天正在做,有什么问题评论区一起讨论) -> 正文阅读

[Python知识库]CenterFusion项目超详细环境搭建步骤(这几天正在做,有什么问题评论区一起讨论)

说明:本文引用 CenterFusion: Center-based Radar and Camera Fusion for 3D Object Detection,复现此论文中的代码,互相学习。

注意:由于博主这几天都在复现这个项目,博客的内容的进度也是博主项目复现的进度,如果遇到找不到页面的情况,是由于内容在待审核,过一会儿就出来了。

一、AutoDL云服务器

说明:如果使用其它服务器,可以忽略掉这部分。

  • 目前,熟知的大众服务器基本上是腾讯、阿里云等,但是自己又是学生,按月租服务器实在太贵,自己仅仅只是学习而已图片名称
  • 所以,这里我使用的服务器是 AutoDL后续的代码复现也是围绕这个服务器执行

AutoDL:适用学生租借,可以按小时结算!!!!!图片名称
官网链接:https://www.autodl.com/docs/

  • 好的,现在我们注册好了~~~~~~~~~~~~~~
  • 最好是学生认证一下,会便宜很多,还有优惠(这个就自己弄了,当然如果还不知道咋认证的话就就就就就······图片名称拉倒吧~)。
  • 什么?你不知道教育邮箱?图片名称今日校园里面邮箱自助开户,然后······等等,我是在复现代码的,不是来教开通教育邮箱的图片名称
  • 好的,下面开始进入正题
  • 租实例,需要注意的有两点,如下图所示:
    在这里插入图片描述
  • 内存:我之前租了个RTX A5000、内存32GB,然后报内存不够这个错误,所以后来我选了个RTX 3090、内存80GB,如果选择60GB,应该也是够的。
    数据盘:这个盘一定要选择超过300GB的,才够用,这里是数据盘100GB+最大扩容300GB=共400GB
  • 然后选择1个GPU、扩容300GB。
    在这里插入图片描述
  • 镜像选择。
    在这里插入图片描述
  • 然后,【立即创建】。
  • 好了现在云服务器创建好了。

二、环境配置

  • 先把源码下载下来。
  • CenterFusion 源码地址:https://github.com/mrnabati/CenterFusion
  • 打开 JupyterLab。
    在这里插入图片描述
  • 打开一个新终端。
    在这里插入图片描述
  • 按照 ConterFusion 中的 README.md 文件中的步骤进行配置。图片名称

第1步:新建虚拟环境

  • 根据 README.md 文件中的信息可知,需要 python3.7 的版本。
    在这里插入图片描述
  • 所以新建一个 python3.7 的虚拟环境。
conda create -n env1 python=3.7
  • 更新bashrc中的环境变量。
conda init bash && source /root/.bashrc
  • 切换到创建的虚拟环境:env1
conda activate env1

第2步:安装 Pytorch

pip install torch==1.7.1+cu110 torchvision==0.8.2+cu110 torchaudio==0.7.2 -f https://download.pytorch.org/whl/torch_stable.html

第3步:安装 COCOAPI

  • 命令如下:
pip install cython
pip install -U 'git+https://github.com/cocodataset/cocoapi.git#subdirectory=PythonAPI'
  • 如果安装失败,多试几次就行了。

第4步:克隆 CenterFusion 存储库

  • 其实就是使用 git 下载 CenterFusion 源码并放进 CF_ROOT 这个路径中。
  • 这里,我手动下载源码到 PC 中,然后通过 AutoDL 的公共网盘功能上传到云服务器中。
  • AutoDL 云服务上传的文件都是放在 /root/autodl-tmp 文件夹中。
    在这里插入图片描述
  • 解压缩命令。
unzip CenterFusion-master.zip
  • 解压缩后的文件夹为 CenterFusion-master,使用如下命令可以重命名文件夹:
mv + 重命名前 + 重命名后
如: mv CenterFusion-master CenterFusion
  • 这里建立路径快捷方式的命令为(如果是其它服务器的话,路径会略有不同):
CF_ROOT=/root/autodl-tmp/CenterFusion

第5步:安装环境所需要的包

  • 命令如下:
cd $CF_ROOT
pip install -r requirements.txt

第6步:构建可变形卷积库

unzip -d 路径 .zip压缩包
  • 这里需要解压缩到 ~/CenterFusion/src/lib/model/networks 文件夹下。
unzip -d /root/autodl-tmp/CenterFusion/src/lib/model/networks DCNv2-pytorch_1.7.zip
  • 然后重命名 DCNv2-pytorch_1.7 为 DCNv2。
    在这里插入图片描述
  • 进入 DCNv2 中执行 make.sh 文件。
cd DCNv2
./make.sh
  • 执行过程中,会出现警告,只要最后出现如下红框中的结果就行。
    在这里插入图片描述
  • 第一次执行 make.sh 文件时出现大量的警告,具体原因忘了图片名称反正不是代码的问题,图中没有警告信息是我第3次执行了。

三、数据集准备

  • NuScenes 数据集官网:https://www.nuscenes.org/download

  • 需要注册,再下载中找到完整的 NuScenes 数据集。
    在这里插入图片描述

  • Mini 部分全部下载下来。
    在这里插入图片描述

  • Trainval 部分只需要下载 Metadata,然后每个部分只需要下载 Keyframe(关键帧数据)、Radar(毫米波雷达数据)、Camera(相机数据)这三个,Lidar(激光雷达数据)就不用下载,共 10 个 part。
    在这里插入图片描述

  • Test 部分需要下载 Metadata,再下载 Radar、Camera 即可。
    在这里插入图片描述

  • 共计 240GB 左右图片名称太特么大了!!!!

  • 最后将下载下来的数据集压缩包 .tgz 上传到服务器中。

  • 这里先在 /CenterFusion/data 路径下新建一个 【nuscenes】文件夹,然后将 tgz 压缩包解压到 nuscenes 文件夹中。

  • 如果想偷懒,而且会写批量解压缩 tgz 到指定文件夹的 sh 脚本的话,请务必教教我图片名称

  • 如果不会写,看我接下来的神操作图片名称

  • 现在,所有的压缩包都上传到服务器中了~~~~~~~~~~~~

  • 开始解压缩······

  • 我先用命令 tar -zxvf .tgz压缩包 -C 路径 解压缩一个 tgz 压缩包,然后再用命令 rm .tgz压缩包 删除已经解压缩完的 tgz 压缩包,这样一直循环下去······铛铛铛~解压缩完了图片名称俺不偷懒,最光荣,都是俺亲手解压滴~

  • 解压完后 nuscenes 中的格式如下,它位于 ~/CenterFusion/data 路径下。

CenterFusion
`-- data
    `-- nuscenes
        |-- maps
        |-- samples
        |   |-- CAM_BACK
        |   |   | -- xxx.jpg
        |   |   ` -- ...
        |   |-- CAM_BACK_LEFT
        |   |-- CAM_BACK_RIGHT
        |   |-- CAM_FRONT
        |   |-- CAM_FRONT_LEFT
        |   |-- CAM_FRONT_RIGHT
        |   |-- RADAR_BACK_LEFT
        |   |   | -- xxx.pcd
        |   |   ` -- ...
        |   |-- RADAR_BACK_RIGHT
        |   |-- RADAR_FRON
        |   |-- RADAR_FRONT_LEFT
        |   `-- RADAR_FRONT_RIGHT
        |-- sweeps
        |-- v1.0-mini
        |-- v1.0-test
        `-- v1.0-trainval
  • 最后将数据集,转换为 COCO 格式。
  • 不过在转换之前,需要将 /CenterFusion/src/tools 路径下的【convert_nuScenes.py】文件中第 56 行,将 NUM_SWEEPS 的值改为 3,否则后面出现找不到数据集路径的错误。
    在这里插入图片描述
  • 然后开始转换。
cd $CF_ROOT/src/tools
python convert_nuScenes.py
  • 如果转换的过程中,突然被 killed 掉,那是因为内存不够了,需要换个更大内存的服务器。

四、预训练模型下载

五、训练

  • 使用 /CenterFusion/experiments/train.sh 脚本可以用来训练网络。
  • 不过在训练之前需要修改 train.sh 中的参数。
  • 我训练时报错,发现 24GB 的显存不够用,把 batch_size 改为了 16。
  • 由于包里钱钱不太多图片名称只配置了一个 gpu,所以参数由 gpu 0,1 改为 gpu 0

在这里插入图片描述

  • 在训练过程中,都会遇到如下问题,先解决后,再一次性训练成功图片名称

错误1:

Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).
Traceback (most recent call last):
  File "test.py", line 215, in <module>
    prefetch_test(opt)
  File "test.py", line 73, in prefetch_test
    Logger(opt)
  File "/root/autodl-tmp/CenterFusion/src/lib/logger.py", line 34, in __init__
    subprocess.check_output(["git", "describe", "--always"])))
  File "/root/miniconda3/envs/env1/lib/python3.7/subprocess.py", line 411, in check_output
    **kwargs).stdout
  File "/root/miniconda3/envs/env1/lib/python3.7/subprocess.py", line 512, in run
    output=stdout, stderr=stderr)
subprocess.CalledProcessError: Command '['git', 'describe', '--always']' returned non-zero exit status 128.
  • 看倒数第二个 File 路径,打开 /root/miniconda3/envs/env1/lib/python3.7/subprocess.py 文件,修改第 411-1=410 行,将 check=True 改为 check=False 即可。
    在这里插入图片描述
  • 如果是其它服务器,或者没有使用虚拟环境,去找 …/lib/python3.7/subprocess.py 这样的路径,实在找不到的话可以先训练一下子,等它报错,然后看倒数第二个路径就可以很容易找到了。

错误2:

python: can't open file 'tools/nuscenes-devkit/python-sdk/nuscenes/eval/detection/evaluate.py': [Errno 2] No such file or directory
Traceback (most recent call last):
  File "main.py", line 140, in <module>
    main(opt)
  File "main.py", line 106, in main
    with open('{}/metrics_summary.json'.format(out_dir), 'r') as f:
FileNotFoundError: [Errno 2] No such file or directory: '/root/autodl-tmp/CenterFusion/src/lib/../../exp/ddd/centerfusion/nuscenes_eval_det_output_mini_val//metrics_summary.json'
  • 这是由于 ~/CenterFusion/src/tools/nuscenes-devkit 这个文件夹居然是空的图片名称还要自己手动去下载。
  • 命令如下:
#在 ~/CenterFusion/src/tools 文件夹下,先删除原来的空文件夹
rm -rf nuscenes-devkit
#再下载 nuscenes-devkit
git clone https://github.com/nutonomy/nuscenes-devkit.git
  • 下载失败没事,再试几次就好了。
    在这里插入图片描述

  • 排除了第二个错误后,开始训练(可能还会遇到错误,遇到了再贴出来解决)。

cd $CF_ROOT
bash experiments/train.sh
  • 如下图所示(中间的警告信息可以不用管):
    在这里插入图片描述
  • 训练结束,如下图(训练完了再贴出来):
  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-04-18 17:36:48  更:2022-04-18 17:37:52 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 17:21:24-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码