ubuntu搭建 自动驾驶单目3d检测smoke 环境

news2024/11/14 2:39:26

论文:SMOKE:Single-Stage Monocular 3D Object Detection via Keypoint Estimation
论文链接
源码
操作系统:ubuntu18.04
显卡:RTX2080TI

一、搭环境(前面和GitHub上一样,补上我踩的坑)
1.创建虚拟环境

conda create -n smoke python=3.7

2.激活smoke环境

source activate smoke

3.创建pytorch环境
torch官方提供的方法

注意:
我的显卡是2080TI,我没安装最新的torch,怕有问题,我之前用的1.7, 1.8, 1.9都是没问题的。所以我安装了1.7。

我一般都不用conda安装,喜欢用pip安装,这边看自己的习惯。

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

4.检查环境是否搭建成功

python
import torch
torch.cuda.is_available()
torch.zeros(1).cuda()

二、 准备训练工作
1.克隆代码
文件夹找到smoke环境,右键,选择从终端打开,执行:

git clone https://github.com/lzccccc/SMOKE

2.修改DCNv2文件
说明:这里使用的torch版本为1.7,所以要修改成对应1.7版本的dcn文件
pytorch1.7时需要用这个库torch1.7对应的DVN2

首先下载DCNv2文件:

git clone -b pytorch_1.7 https://github.com/lbin/DCNv2.git

然后,将SMOKE源码中的smoke/csrc中的文件全部替换为DCNv2/src中的文件,将smoke/layers/dcn_v2.py文件替换为DCNv2/dcn_v2.py文件。
3.上述工作完成后,再cd到SMOKE目录:

cd SMOKE
python setup.py build develop

然后新建数据集目录,并连接到数据集(提前准备好数据集格式)

mkdir datasets
ln -s /path_to_kitti_dataset datasets/kitti

注意:
关于数据集稍微啰嗦一句。
我的数据集目录结构是这样的,train的SMOKE/datasets/kitti/training

kitti
│──training
│    ├──calib 
│    ├──label_2 
│    ├──image_2
│    └──ImageSets
└──testing
     ├──calib 
     ├──image_2
     └──ImageSets

我的网盘kitti数据集链接: https://pan.baidu.com/s/1te2spGGUtSiNmCOZNqvODQ
提取码: 7btg
可以自取,下好了按照上面目录放就行。

4.开始训练

对于单GPU,执行:

python tools/plain_train_net.py --config-file "configs/smoke_gn_vector.yaml"

根据自己电脑的性能,修改config中的batch_size,修改num_works=0。
5.在单GPU上进行test:

python tools/plain_train_net.py --eval-only --config-file "configs/smoke_gn_vector.yaml"

测试DCN是否可以编译:

git clone -b pytorch_1.7 https://github.com/lbin/DCNv2.git
cd DCNv2
./make.sh

正常人到这边应该结束了。能训练能预测不报错。但我不是正常人,在单GPU上进行test一直报错。

错误1
FileNotFoundError: [Errno 2] No such file or directory: ‘./smoke/data/datasets/evaluation/kitti/kitti_eval’
官方issues里找到了解决方案:

../smoke/data/datasets/evaluation/kitti/kitti_eval 
should be
 ./smoke/data/datasets/evaluation/kitti/kitti_eval

错误2
FileNotFoundError: [Errno 2] No such file or directory: ‘datasets/kitti/testing/ImageSets/test.txt’
数据集链接是这个

下好了里面的txt放ImageSets里

错误3
ERROR: Couldn’t read: 004627.txt of ground truth. Please write me an email! An error occurred while processing your results

官方issues有解决方案 官方issues
两种方法我都可以。造成这个的原因
原因
解释的很清楚。因为测试集没有标签,所以将config/smoke_gn_vector.yaml里的 using " TEST: (“kitti_test”,) " and TEST_SPLIT: “test” 换成"TEST: (“kitti_train”,)" and TEST_SPLIT: “val”。
第一种:

also make sure to have gnuplot, ghostscript, texlive-extra-utils installed

这样再测试我是没问题的。

第二种:

sudo apt-get install texlive-extra-utils
sudo apt-get install gnuplot
sudo apt-get install ghostscript
git clone https://github.com/asharakeh/kitti_native_evaluation.git
cd /content/kitti_native_evaluation
cmake ./
make

再运行这句:

./evaluate_object_3d_offline /media/qiao/autopilot/SMOKE/datasets/kitti/training/label_2  /media/qiao/autopilot/SMOKE/tools/logs/inference/kitti_train

result would be similar to this :

cyclist_detection_AP : 96.161880 96.238068 91.152649
PDFCROP 1.38, 2012/11/02 - Copyright © 2002-2012 by Heiko Oberdiek.
==> 1 page written on cyclist_detection_AP.pdf’. cyclist_orientation_AOS : 95.185928 95.402016 90.347366 PDFCROP 1.38, 2012/11/02 - Copyright © 2002-2012 by Heiko Oberdiek. ==> 1 page written on cyclist_orientation_AOS.pdf’.
car_detection_BEV_AP : 86.162407 82.500969 75.850616
PDFCROP 1.38, 2012/11/02 - Copyright © 2002-2012 by Heiko Oberdiek.
==> 1 page written on `car_detection_BEV_AP.pdf’.
结果图

接下来不算问题,我想可视化kitti数据集,网上找了找办法。
链接: KITTI Object data transformation and visualization

我是直接用的smoke虚拟环境:

  1. 安装 opencv, pillow, scipy, matplotlib
pip install opencv-python pillow scipy matplotlib
  1. 安装mayai
    官方是 conda install mayavi -c conda-forge
    我直接 pip install mayavi --user
  2. test install
python kitti_object.py --show_lidar_with_depth --img_fov --const_box --vis

这句运行的时候报错。
错误1
pip install pyqt5时报错:Preparing wheel metadata … error
按照这个博客解决问题 anaconda下tensorflow安装遇到的问题记录及解决办法

sudo pip install --user pyqtwebengine==5.12
sudo pip install --user pyqt5==5.12
sudo pip install typed-ast

这三行可以解决问题。

其他问题我忘了,想起来再补。
运行
python kitti_object.py --show_lidar_with_depth --img_fov --const_box --vis --show_image_with_boxes

最终的图像结果
我这边也是能正常显示图像结果的。

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

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

相关文章

PayPal轮询系统解放你的生产力助力起航

现在很多跨境商家手里都有很多PayPal账号,本来多个PayPal账号就是为了防止一个账号出现问题,导致工作没办法继续下去。但是手动切换让很多盯站的商家觉得很麻烦。而且多账号之间本可以相互配合,让彼此的安全系数越来越高,风控越来…

win10 设备管理器中的黄色感叹号(华硕)

目录一、前言二、原因三、方案四、操作一、前言 打开设备管理器,我们可以看到自己设备的信息,但是在重装系统后,你总会在不经意间发现。咦,怎么多了几个感叹号??? 由于我已经解决该问题&#…

数据库事务详解

概述事务就是数据库为了保证数据的原子性,持久性,隔离性,一致性而提供的一套机制, 在同一事务中, 如果有多条sql执行, 事务可以确保执行的可靠性.数据库事务的四大特性一般来说, 事务是必须满足 4 个条件(ACID):原子性(Atomicity&…

vscode ssh一直卡在wget的解决方案

vscode ssh一直卡在wget的解决方案找到commit_id 在服务器下点进该目录 .vscode-server\bin 一般日期最新的那一串就是我们需要的commit_id下载vscode-server-linux-x64.tar https://update.code.visualstudio.com/commit:${commit_id}/server-linux-x64/stable 将加粗部分替换…

2023年天津财经大学珠江学院专升本专业课考试题型

天津财经大学珠江学院关于2023年高职升本科专业课考试时间及题型一、专业课考试 (一)时间安排 2023年天津财经大学珠江学院高职升本科专业课考试定于2023年3月25日14:00-17:00进行,凡报考工商管理、旅游管理、税收学专业的考生&am…

智慧监所三维综合管控平台 构建数字智慧监管体系

建设背景监狱肩负着戒治管理、维持监所安全稳定等职责,目前全国有监管场所5500多个,监狱680多个。近年来,司法部不断加大司法行政改革力度,持续推进“数字法治,智慧司法”信息化体系建设战略部署。“智慧监狱”管理应用…

变更数据捕获(CDC)

从广泛意义上说,全球许多企业每天都需要通过频繁的数据批量处理与加载,来定期将数据从一个数据库迁移到另一个数据库(或数据仓库)。这类定期批量加载的工作,往往既耗费时间,又会消耗原始系统的大量处理能力。因此,管理…

design\project\学习 OAuth 读书笔记(二)

OAuth(二) 原文链接:OAuth 2.0 tutorial | OAuth flows 本文假设您已经看过 OAuth(一) 目录OAuth(二)OpenId ConnectOAuth2:令牌自检(Token Introspection)…

Qt std :: bad_alloc

文章目录摘要问题出现原因第一种 请求内存多余系统可提供内存第二种 地址空间过于分散,无法满足大块连续内存的请求第三种 堆管理数据结构损坏稍微总结下没想到还能更新参考关键字: std、 bad、 alloc、 OOM、 异常退出摘要 今天又是被BUG统治的一天&a…

fengMap 自定义dom 偏离实际位置;缩放时飘出地图所在区域

目录 一、问题 二、原因及解决方法 三、总结 一、问题 1.前人写了一份代码,很奇怪。使用 new fengmap.FMCompositeMarker添加的复合覆盖物位置是正常的,缩放的时候也是正常的,仍然处于地图内部;但是new fengmap.FMDomMarker添加…

Nginx 负载均衡服务失败场景

nginx可以配置负载均衡,我们可以通过配置实现nginx负载均衡。这里部署了两个服务producter-one和producter-one2。 upstream proxyproducter-one {server producter-one:8080 weight1;server producter-one2:8080 weight1;}# 访问其他服务server {listen 9090…

Netty学习(三):Netty线程模型

〇、前言网络编程的基本线程模型,详见:Netty学习(二):线程模型一、工作原理简图Netty主要基于主从 Reactors 多线程模型(如下图) 做了一定的改进,其中主从Reactor 多线程模型有多个R…

ServerSocket的构造方法

在开发TCP程序时,首先需要创建服务器端程序。JDK的java.net包中提供了一个ServerSocket娄,该类的实例对象可以实现一个服务器端的程序。通过查阅API文档可知,ServerSocket类提供了多个构造方法,接下来就对ServerSocket的构造方法进…

Pycharm配置QGIS环境

版本信息:QGIS: 3.22.16Pycharm:2022.3.2 (Community Edition)在QGIS官网下载安装包,下载稳定版本即可。配置步骤:安装完成后,使用Pycharm新建工程Python编译器选择之前配置好的编译器环境选择左侧第一个Vi…

YOLOv8训练自定义数据集(超详细)

借鉴 https://blog.csdn.net/qq_40716944/article/details/128648001一、准备训练环境安装 requirements.txt下载:https://raw.githubusercontent.com/ultralytics/ultralytics/main/requirements.txt然后在你 目录下执行pip install -r requirements.txt它的 requi…

【字符串】leetcode28. 实现 strStr()(C/C++/Java/Python/Js)

leetcode28. 实现 strStr() 1 题目2 KMP2.1 什么是KMP?2.2 KMP有什么用?2.3 什么是前缀表?2.4 最长公共前后缀2.5 为什么一定要用前缀表?2.6 如何计算前缀表2.7 前缀表与next数组2.8 使用next数组来匹配2.9…

2022 年度_职业项目总结_Java技术点归纳

Java技术点归纳目录概述需求:设计思路实现思路分析1.Structs 元工程改造2.个贷子系统开发3.架构的迭代开发,升级,部署,参考资料和推荐阅读Survive by day and develop by night. talk for import biz , show your perfect code,fu…

学编程的 4 大阶段,你到哪了?

大家好,我是阅黑马学生无数的播妞……通过观察黑马学生的学习状态,播妞总结了他们来黑马后的四个学习状态,可以说,只要跨过这四个阶段,走向辉煌的编程人生就是必然的事情。阶段一:一窍不通这个阶段的学生&a…

2023初级会计详细学习计划打卡表!自律逆袭,一次上岸!

2023年初级会计职称考试报名时间:2月7日-28日考试时间:5月13日—17日给大家整理了《经济法基础》和《初级会计实务》两科超实用的学习打卡表重要程度、难易度、易错点、要求掌握内容、章节估分等都全部总结在一起,一目了然!为什么…

rk3288-android8-IR-mouse

IR问题: mouse按键使用不了 然后排查: 1.排查上报 ir_key6{ rockchip,usercode <0xbf00>;rockchip,key_table <0xff KEY_POWER>,<0xfe KEY_MUTE>, <0xfd KEY_1>, <0xfc KEY_2>, <0xfb KEY_3>, <0xfa KEY_4>, <0xf9 KEY_5>…