【深度学习】点云深度学习笔记(目标检测)

Second环境的配置参考

参考:second.pytorch环境配置及训练运行折腾史_华青水上的博客-CSDN博客


遇到的错误

1、执行python create_data.py kitti_data_prep --root_path=data/KITTI_DATASET_ROOT 遇到了错误

NvvmSupportError: libNVVM cannot be found. Do conda install cudatoolkit: library nvvm not found. Please ensure you have package cudatoolkit 7.5

解决:Jetson Nano安装Numba遇到的一些坑_ゞ 灰酱的博客-CSDN博客

2、

Traceback (most recent call last):
File "/data/sp/second/data/qhdata/train_qh.py", line 327, in train
    for example in dataloader:
File "/opt/conda/lib/python3.6/site-packages/torch/utils/data/dataloader.py", line 637, in __next__
    return self._process_next_batch(batch)
File "/opt/conda/lib/python3.6/site-packages/torch/utils/data/dataloader.py", line 658, in _process_next_batch
    raise batch.exc_type(batch.exc_msg)
KeyError: 'Traceback (most recent call last):\n
File "/opt/conda/lib/python3.6/site-packages/torch/utils/data/dataloader.py", line 138, in _worker_loop\n   
samples = collate_fn([dataset[i] for i in batch_indices])\n  
File "/opt/conda/lib/python3.6/site-packages/torch/utils/data/dataloader.py", line 138, in <listcomp>\n    
samples = collate_fn([dataset[i] for i in batch_indices])\n  
File "/data/sp/second/pytorch/builder/input_reader_builder.py", line 42, in __getitem__\n    
return self._dataset[idx]\n  
File "/data/sp/second/data/wjdata/wj_dataset.py", line 95, in __getitem__\n    
example = self._prep_func(input_dict=input_dict)\n  
File "/data/sp/second/data/preprocess.py", line 226, in prep_pointcloud\n    
calib=calib)\n  
File "/data/sp/second/core/sample_ops.py", line 137, in sample_all\n    
avoid_coll_boxes)\n  
File "/data/sp/second/core/sample_ops.py", line 239, in sample_class_v2\n    
sampled = self._sampler_dict[name].sample(num)\n
KeyError: \'cyclist\'\n'

这个错误是因为,我的数据集里面只有car一个类别,所以对应的要把config文件中的class_setting和sample_groups中修改一下,把多余的类别删掉即可

3、在镜像中大概说的是无法使用open3d,Could not initialize GLX

解决方法:重新安装电脑主机上的显卡一开始是450,后来装了440,可以成功使用

4、    l, h, w = dims[:, 0:1], dims[:, 1:2], dims[:, 2:3]
         IndexError: too many indices for array: array is 1-dimensional, but 2 were indexed

错误的原因是有一个label里面没有东西,所以导致错误


代码理解:Second代码数据处理kitti_dataset.py的理解

3D目标检测——代码理解——Second代码:数据处理kitti_dataset.py的理解_FridayFreedom++的博客-CSDN博客

3D点云学习:SECOND目标检测③源码注释_themasterbi的博客-CSDN博客_second目标检测


Docker在ubuntu下的部署

安装显卡驱动

1.离线显卡的安装,先下载好安装包

2.sudo chmod  a+x NVIDIA-Linux-x86_64-xxx.run    //给文件权限

3.sudo ./NVIDIA-Linux-x86_64-xxx.run -no-x-check -no-nouveau-check -no-opengl-files

安装docker

1.查看ubuntu的版本、codename:lsb_release -a

确定架构:dpkg --print-architecture

2.从官网上下载,例如xenial/pool/stable/amd64,离线下载:containerd.io_1.2.5-1_amd64.deb,docker-ce_18.09.6~3-0~ubuntu-xenial_amd64.deb,docker-ce-cli_18.09.6~3-0~ubuntu-xenial_amd64.deb

3.使用 sudo dpkg -i 安装包  。分别安装以上三个安装包,如果有错误的话,调整一下顺序

安装nvidia-docker:如果出现错误,加上sudo!!

1.docker volume ls -q -f driver=nvidia-docker | xargs -r -I{} -n1 docker ps -q -a -f volume={} | xargs -r docker rm -f
2.sudo apt-get purge -y nvidia-docker
3.curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | \
  sudo apt-key add -
4.distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
5.curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | \
  sudo tee /etc/apt/sources.list.d/nvidia-docker.list
6.sudo apt-get update
7.sudo apt-get install -y nvidia-docker2
8.sudo pkill -SIGHUP dockerd
9.docker run --runtime=nvidia --rm nvidia/cuda:9.0-base nvidia-smi(这一步是测试,拉一个docker镜像,自己有的话,用自己的)

 上述安装过程如果报错:unable ro locate package nvidia-docker2

解决该问题:先执行3、4、5、6


Docker镜像的使用

1. 列出本地的镜像文件:sudo docker images

2. 列出本地所有的镜像加容器:sudo docker ps -a

3. 删除其中的一个容器:sudo docker rm 容器名

4. 强制删除容器:sudo docker rm -f 容器名       适用于删除有时会报错:Error response from daemon: You cannot remove a running container 2306dba4cc54ff1198784ab77640d665d3b1cecdc1aae88b68c1f40c011e8c87. Stop the container before attempting removal or force removm

5. 使用镜像创建一个容器:sudo nvidia-docker run --runtime=nvidia   --shm-size=15G -it -v /home/qinhao/Documents/SECOND:/data --net=host --name="qhSecond" 镜像名字 bash

sudo nvidia-docker run -it --name 容器名字 --privileged --shm-size=15G -v /etc/localtime:/etc/localtime:ro -v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY=unix$DISPLAY -e GDK_SCALE -e GDK_DPI_SCALE -v /home/qinhao/Documents/pcdet:/data 镜像名字 /bin/bash

再或 sudo nvidia-docker run --runtime=nvidia --privileged -m 25G -itd -v /home/wanji/Documents/EZhou/:/data --network=host --name="ezhou" -e NVIDIA_VISIBLE_DEVICES=all 684e44e34989 /bin/bash

更改环境变量,以保证能够在镜像中显示图形化界面:export DISPLAY=xxx.xxx.xxx.xx:0

6. 进入容器:docker start 容器名       docker exec -it 容器名 bash

7. 导入镜像:docker load --input fedora.tar  或者   docker load < busybox.tar.gz

8.其他操作:Docker 镜像使用 | 菜鸟教程


在镜像中使用pycharm图形界面

1.将解压后的pycharm文件解压到docker映射的文件夹中

2.进入bin,执行./pycharm.sh

3.如果失败,显示X11无法连接ip,那么就是图形界面的事,没有装好,

4.(亲测可用)

在docker环境中设置环境变量(vim ~/.bashrc),末尾添加export DISPLAY=10.100.12.XX,这里添加主机的IP(确定主机的IP:ifconfig -a)

在主机中,sudo gedit /etc/lightdm/lightdm.conf  打开该文件 在最后一行添加 xserver-allow-tcp=true ,如果没有这个文件,有这个文件,可以自己创建一个文件,在新创建的文件中添加[SeatDefaults]

xserver-allow-tcp=true,记得换行;添加完了保存,然后重启图形界面 sudo systemctl restart lightdm ,然后打开控制台,输入指令 xhost +

这样配置就完成了。

如果还是有错误的话,可以试试换一个pycharm版本的解压后的文件


其他

1. PointNet

中文翻译    PointNet 中文翻译_APolaris。的博客-CSDN博客_pointnet翻译

代码学习    PointNet代码学习(pytorch版本)_suyunzzz的博客-CSDN博客_pointnet pytorch

2. PointNet++

中文翻译    Pointnet++中文翻译_我脾气很好的博客-CSDN博客_pointnet++翻译  

3. VoxelNet

阅读笔记    VoxelNet(端到端的点云目标检测网络)阅读笔记 - 林彦豪 - 博客园

4. Second

论文阅读    3D点云学习:SECOND目标检测①论文阅读_themasterbi的博客-CSDN博客_second论文

5. KITTI数据集介绍

目标检测中KITTI数据集的简介与使用_hairuiJY的博客-CSDN博客_kitti数据集目标检测

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值