monocon 环境配置详细步骤

2024-05-15 15:44

本文主要是介绍monocon 环境配置详细步骤,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、monocon简介
  • 二、环境配置
    • 1.下载
    • 2.创建环境
    • 3、安装其他包
  • 三、遇到问题
      • 1、AttributeError: module 'distutils' has no attribute 'version'
      • 2、libNVVM cannot be found. Do `conda install cudatoolkit`:
      • 3、解压kitti 3D 的数据遇到error: invalid zip file with overlapped components (possible zip bomb)
  • 四、训练结果
    • 1、训练
    • 2、结果
  • 五、测试
    • 1、测试命令
      • Inference
    • 2、测试结果


前言

3D 目标检测是


一、monocon简介

monocon 是一个延续CenterNet框架的3D 目标检测网络;在不依赖dcn 模块的情况下有不错的性能。

二、环境配置

1.下载

代码如下(示例):

git clone https://github.com/2gunsu/monocon-pytorch.gitcd monocon-pytorch

2.创建环境

conda create -n monocon-pytorch python=3.8
conda activate monocon-pytorch

3、安装其他包

pip install torch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2 --index-url https://download.pytorch.org/whl/cu118pip install -r requirements.txt 

三、遇到问题

1、AttributeError: module ‘distutils’ has no attribute ‘version’

python train.py
Traceback (most recent call last):File "train.py", line 6, in <module>from engine.monocon_engine import MonoconEngineFile "/devdata/deeplearn/cv/3D/monocon-pytorch/engine/monocon_engine.py", line 14, in <module>from engine.base_engine import BaseEngineFile "/devdata/deeplearn/cv/3D/monocon-pytorch/engine/base_engine.py", line 11, in <module>from torch.utils.tensorboard import SummaryWriterFile "/devdata/anaconda3/envs/monocon-pytorch/lib/python3.8/site-packages/torch/utils/tensorboard/__init__.py", line 4, in <module>LooseVersion = distutils.version.LooseVersion
AttributeError: module 'distutils' has no attribute 'version'

解决:

方法一:将setuptools版本降低到59.5.0
# If you use pip:
pip install setuptools==59.5.0# For pip3:
pip3 install setuptools==59.5.0# If you use conda:
conda install setuptools=59.5.0方法二:升级或者安装更高版本的torch
# If you use pip:
pip install torch==1.11.0# For pip3:
pip3 install torch==1.11.0# If you use conda:
conda install pytorch=1.11.0

2、libNVVM cannot be found. Do conda install cudatoolkit:

python train.py
Traceback (most recent call last):File "train.py", line 6, in <module>from engine.monocon_engine import MonoconEngineFile "/devdata/deeplearn/cv/3D/monocon-pytorch/engine/monocon_engine.py", line 15, in <module>from dataset.monocon_dataset import MonoConDatasetFile "/devdata/deeplearn/cv/3D/monocon-pytorch/dataset/monocon_dataset.py", line 11, in <module>from dataset.base_dataset import BaseKITTIMono3DDatasetFile "/devdata/deeplearn/cv/3D/monocon-pytorch/dataset/base_dataset.py", line 12, in <module>from engine.kitti_eval import kitti_evalFile "/devdata/deeplearn/cv/3D/monocon-pytorch/engine/kitti_eval/__init__.py", line 1, in <module>from .eval import kitti_eval, do_evalFile "/devdata/deeplearn/cv/3D/monocon-pytorch/engine/kitti_eval/eval.py", line 11, in <module>from kitti_eval.rotate_iou import rotate_iou_gpu_evalFile "/devdata/deeplearn/cv/3D/monocon-pytorch/engine/kitti_eval/../kitti_eval/__init__.py", line 1, in <module>from .eval import kitti_eval, do_evalFile "/devdata/deeplearn/cv/3D/monocon-pytorch/engine/kitti_eval/../kitti_eval/eval.py", line 11, in <module>from kitti_eval.rotate_iou import rotate_iou_gpu_evalFile "/devdata/deeplearn/cv/3D/monocon-pytorch/engine/kitti_eval/../kitti_eval/rotate_iou.py", line 283, in <module>def rotate_iou_kernel_eval(N,File "/devdata/anaconda3/envs/monocon-pytorch/lib/python3.8/site-packages/numba/cuda/decorators.py", line 115, in _jitdisp.compile(argtypes)File "/devdata/anaconda3/envs/monocon-pytorch/lib/python3.8/site-packages/numba/cuda/dispatcher.py", line 794, in compilekernel = _Kernel(self.py_func, argtypes, **self.targetoptions)File "/devdata/anaconda3/envs/monocon-pytorch/lib/python3.8/site-packages/numba/core/compiler_lock.py", line 35, in _acquire_compile_lockreturn func(*args, **kwargs)File "/devdata/anaconda3/envs/monocon-pytorch/lib/python3.8/site-packages/numba/cuda/dispatcher.py", line 75, in __init__cres = compile_cuda(self.py_func, types.void, self.argtypes,File "/devdata/anaconda3/envs/monocon-pytorch/lib/python3.8/site-packages/numba/core/compiler_lock.py", line 35, in _acquire_compile_lockreturn func(*args, **kwargs)File "/devdata/anaconda3/envs/monocon-pytorch/lib/python3.8/site-packages/numba/cuda/compiler.py", line 210, in compile_cudacres = compiler.compile_extra(typingctx=typingctx,File "/devdata/anaconda3/envs/monocon-pytorch/lib/python3.8/site-packages/numba/core/compiler.py", line 716, in compile_extrareturn pipeline.compile_extra(func)File "/devdata/anaconda3/envs/monocon-pytorch/lib/python3.8/site-packages/numba/core/compiler.py", line 452, in compile_extrareturn self._compile_bytecode()File "/devdata/anaconda3/envs/monocon-pytorch/lib/python3.8/site-packages/numba/core/compiler.py", line 520, in _compile_bytecodereturn self._compile_core()File "/devdata/anaconda3/envs/monocon-pytorch/lib/python3.8/site-packages/numba/core/compiler.py", line 499, in _compile_coreraise eFile "/devdata/anaconda3/envs/monocon-pytorch/lib/python3.8/site-packages/numba/core/compiler.py", line 486, in _compile_corepm.run(self.state)File "/devdata/anaconda3/envs/monocon-pytorch/lib/python3.8/site-packages/numba/core/compiler_machinery.py", line 368, in runraise patched_exceptionFile "/devdata/anaconda3/envs/monocon-pytorch/lib/python3.8/site-packages/numba/core/compiler_machinery.py", line 356, in runself._runPass(idx, pass_inst, state)File "/devdata/anaconda3/envs/monocon-pytorch/lib/python3.8/site-packages/numba/core/compiler_lock.py", line 35, in _acquire_compile_lockreturn func(*args, **kwargs)File "/devdata/anaconda3/envs/monocon-pytorch/lib/python3.8/site-packages/numba/core/compiler_machinery.py", line 311, in _runPassmutated |= check(pss.run_pass, internal_state)File "/devdata/anaconda3/envs/monocon-pytorch/lib/python3.8/site-packages/numba/core/compiler_machinery.py", line 273, in checkmangled = func(compiler_state)File "/devdata/anaconda3/envs/monocon-pytorch/lib/python3.8/site-packages/numba/core/typed_passes.py", line 105, in run_passtypemap, return_type, calltypes, errs = type_inference_stage(File "/devdata/anaconda3/envs/monocon-pytorch/lib/python3.8/site-packages/numba/core/typed_passes.py", line 83, in type_inference_stageerrs = infer.propagate(raise_errors=raise_errors)File "/devdata/anaconda3/envs/monocon-pytorch/lib/python3.8/site-packages/numba/core/typeinfer.py", line 1086, in propagateraise errors[0]
numba.core.errors.TypingError: Failed in cuda mode pipeline (step: nopython frontend)
Failed in cuda mode pipeline (step: nopython frontend)
Failed in cuda mode pipeline (step: nopython frontend)
Internal error at <numba.core.typeinfer.CallConstraint object at 0x7f2e00c0a8b0>.
libNVVM cannot be found. Do `conda install cudatoolkit`:
[Errno 2] No such file or directory: '/usr/local/cuda-11.8:/nvvm/lib64'
During: resolving callee type: type(CUDADispatcher(<function rbbox_to_corners at 0x7f2e01e80550>))
During: typing of call at /devdata/deeplearn/cv/3D/monocon-pytorch/engine/kitti_eval/../kitti_eval/rotate_iou.py (241)Enable logging at debug level for details.File "engine/kitti_eval/rotate_iou.py", line 241:
def inter(rbbox1, rbbox2):<source elided>rbbox_to_corners(corners1, rbbox1)^During: resolving callee type: type(CUDADispatcher(<function inter at 0x7f2e01e51700>))
During: typing of call at /devdata/deeplearn/cv/3D/monocon-pytorch/engine/kitti_eval/../kitti_eval/rotate_iou.py (269)File "engine/kitti_eval/rotate_iou.py", line 269:
def devRotateIoUEval(rbox1, rbox2, criterion=-1):<source elided>area2 = rbox2[2] * rbox2[3]area_inter = inter(rbox1, rbox2)^During: resolving callee type: type(CUDADispatcher(<function devRotateIoUEval at 0x7f2e01e518b0>))
During: typing of call at /devdata/deeplearn/cv/3D/monocon-pytorch/engine/kitti_eval/../kitti_eval/rotate_iou.py (332)File "engine/kitti_eval/rotate_iou.py", line 332:
def rotate_iou_kernel_eval(N,<source elided>tx * K + i)dev_iou[offset] = devRotateIoUEval(block_qboxes[i * 5:i * 5 + 5],

解决办法:

pip install torch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2 --index-url https://download.pytorch.org/whl/cu118
conda install cudatoolkit==11.8 -c nvidia //安装对应版本的cuda

3、解压kitti 3D 的数据遇到error: invalid zip file with overlapped components (possible zip bomb)

解决办法:安装7z 来解压

sudo apt-get install p7zip
sudo apt-get install p7zip-full
sudo apt-get install p7zip-rar7z x 001.zip //001.zip 是需要解压的文件

四、训练结果

1、训练

python train.py

2、结果

[2024-05-15 06:03:10] Evaluating on Epoch 200...
Collecting Results...: 100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 472/472 [04:16<00:00,  1.84it/s]----------- Eval Results ------------
Pedestrian AP40@0.50, 0.50, 0.50:
bbox AP40:67.7988, 54.6922, 47.5099
bev  AP40:2.6367, 2.3894, 1.8246
3d   AP40:1.9083, 1.6483, 1.5825
aos  AP40:55.60, 44.47, 38.21
Pedestrian AP40@0.50, 0.25, 0.25:
bbox AP40:67.7988, 54.6922, 47.5099
bev  AP40:16.7131, 14.1143, 11.7589
3d   AP40:15.5213, 13.6702, 11.4670
aos  AP40:55.60, 44.47, 38.21
Cyclist AP40@0.50, 0.50, 0.50:
bbox AP40:63.4784, 37.8742, 34.3940
bev  AP40:6.7544, 3.7150, 3.0675
3d   AP40:5.1372, 2.6349, 2.6652
aos  AP40:58.13, 34.36, 31.23
Cyclist AP40@0.50, 0.25, 0.25:
bbox AP40:63.4784, 37.8742, 34.3940
bev  AP40:24.8584, 14.0738, 12.7809
3d   AP40:22.3357, 12.2825, 11.7030
aos  AP40:58.13, 34.36, 31.23
Car AP40@0.70, 0.70, 0.70:
bbox AP40:98.3601, 89.8058, 82.5364
bev  AP40:34.9062, 24.2195, 20.8772
3d   AP40:24.4504, 17.9385, 15.3246
aos  AP40:97.97, 89.21, 81.42
Car AP40@0.70, 0.50, 0.50:
bbox AP40:98.3601, 89.8058, 82.5364
bev  AP40:70.2495, 50.6545, 45.7686
3d   AP40:64.2237, 46.7250, 40.8438
aos  AP40:97.97, 89.21, 81.42Overall AP40@easy, moderate, hard:
bbox AP40:76.5458, 60.7907, 54.8134
bev  AP40:14.7658, 10.1080, 8.5898
3d   AP40:10.4986, 7.4072, 6.5241
aos  AP40:70.57, 56.01, 50.29
-------------------------------------
[2024-05-15 06:07:38] Checkpoint is saved to 'checkpoints/epoch_200.pth'.
[2024-05-15 06:07:39] Checkpoint is saved to 'checkpoints/epoch_200_final.pth'.

五、测试

1、测试命令

### Evaluation
```bash
python test.py  --config_file       [FILL]      # Config file (.yaml file)--checkpoint_file   [FILL]      # Checkpoint file (.pth file)--gpu_id            [Optional]  # Index of GPU to use for testing (Default: 0)--evaluate                      # Perform evaluation (Quantitative Results)

Inference

python test.py  --config_file       [FILL]      # Config file (.yaml file)--checkpoint_file   [FILL]      # Checkpoint file (.pth file)--visualize                     # Perform visualization (Qualitative Results)--gpu_id            [Optional]  # Index of GPU to use for testing (Default: 0)--save_dir          [FILL]      # Path where visualization results will be saved topython test.py --config_file /devdata/deeplearn/cv/3D/monocon-pytorch/config.yaml --checkpoint_file /devdata/deeplearn/cv/3D/monocon-pytorch/checkpoints/epoch_200_final.pth --visualize --gpu_id 0 --save_dir /devdata/deeplearn/cv/3D/monocon-pytorch/result --visualize

2、测试结果

2D 效果
3D 效果

bev效果

这篇关于monocon 环境配置详细步骤的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/992240

相关文章

浅谈配置MMCV环境,解决报错,版本不匹配问题

《浅谈配置MMCV环境,解决报错,版本不匹配问题》:本文主要介绍浅谈配置MMCV环境,解决报错,版本不匹配问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录配置MMCV环境,解决报错,版本不匹配错误示例正确示例总结配置MMCV环境,解决报错,版本不匹配在col

Nginx中配置HTTP/2协议的详细指南

《Nginx中配置HTTP/2协议的详细指南》HTTP/2是HTTP协议的下一代版本,旨在提高性能、减少延迟并优化现代网络环境中的通信效率,本文将为大家介绍Nginx配置HTTP/2协议想详细步骤,需... 目录一、HTTP/2 协议概述1.HTTP/22. HTTP/2 的核心特性3. HTTP/2 的优

Python 安装和配置flask, flask_cors的图文教程

《Python安装和配置flask,flask_cors的图文教程》:本文主要介绍Python安装和配置flask,flask_cors的图文教程,本文通过图文并茂的形式给大家介绍的非常详细,... 目录一.python安装:二,配置环境变量,三:检查Python安装和环境变量,四:安装flask和flas

Java图片压缩三种高效压缩方案详细解析

《Java图片压缩三种高效压缩方案详细解析》图片压缩通常涉及减少图片的尺寸缩放、调整图片的质量(针对JPEG、PNG等)、使用特定的算法来减少图片的数据量等,:本文主要介绍Java图片压缩三种高效... 目录一、基于OpenCV的智能尺寸压缩技术亮点:适用场景:二、JPEG质量参数压缩关键技术:压缩效果对比

Java调用C++动态库超详细步骤讲解(附源码)

《Java调用C++动态库超详细步骤讲解(附源码)》C语言因其高效和接近硬件的特性,时常会被用在性能要求较高或者需要直接操作硬件的场合,:本文主要介绍Java调用C++动态库的相关资料,文中通过代... 目录一、直接调用C++库第一步:动态库生成(vs2017+qt5.12.10)第二步:Java调用C++

Python基础文件操作方法超详细讲解(详解版)

《Python基础文件操作方法超详细讲解(详解版)》文件就是操作系统为用户或应用程序提供的一个读写硬盘的虚拟单位,文件的核心操作就是读和写,:本文主要介绍Python基础文件操作方法超详细讲解的相... 目录一、文件操作1. 文件打开与关闭1.1 打开文件1.2 关闭文件2. 访问模式及说明二、文件读写1.

Ubuntu中远程连接Mysql数据库的详细图文教程

《Ubuntu中远程连接Mysql数据库的详细图文教程》Ubuntu是一个以桌面应用为主的Linux发行版操作系统,这篇文章主要为大家详细介绍了Ubuntu中远程连接Mysql数据库的详细图文教程,有... 目录1、版本2、检查有没有mysql2.1 查询是否安装了Mysql包2.2 查看Mysql版本2.

Oracle数据库常见字段类型大全以及超详细解析

《Oracle数据库常见字段类型大全以及超详细解析》在Oracle数据库中查询特定表的字段个数通常需要使用SQL语句来完成,:本文主要介绍Oracle数据库常见字段类型大全以及超详细解析,文中通过... 目录前言一、字符类型(Character)1、CHAR:定长字符数据类型2、VARCHAR2:变长字符数

Win11安装PostgreSQL数据库的两种方式详细步骤

《Win11安装PostgreSQL数据库的两种方式详细步骤》PostgreSQL是备受业界青睐的关系型数据库,尤其是在地理空间和移动领域,:本文主要介绍Win11安装PostgreSQL数据库的... 目录一、exe文件安装 (推荐)下载安装包1. 选择操作系统2. 跳转到EDB(PostgreSQL 的

Python3.6连接MySQL的详细步骤

《Python3.6连接MySQL的详细步骤》在现代Web开发和数据处理中,Python与数据库的交互是必不可少的一部分,MySQL作为最流行的开源关系型数据库管理系统之一,与Python的结合可以实... 目录环境准备安装python 3.6安装mysql安装pymysql库连接到MySQL建立连接执行S