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数据集介绍