mmdet3d+waymo dataset v1.3.1环境配置方法与问题

Posted ZLTJohn

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mmdet3d+waymo dataset v1.3.1环境配置方法与问题相关的知识,希望对你有一定的参考价值。

实验室里不同服务器集群的环境稍有差别,而且第一次配置mmdet3d,遇到了不少坑。文中内容主要为自己备忘用。takeaway是后面的两个install.sh;前面写一下一些坑。

anaconda 安装与换源

服务器上没有我管理员权限,底层环境共享,所以最好都用conda安装包,不要apt get
国内连conda 和 pip太慢了,特别是上海的机器,网不好的时候pip经常丢失连接。
下载conda:Anaconda官网下载anaconda_xxx.sh
显示conda源配置:conda config --set show_channel_urls yes

.condarc 放入清华源

不太好用,但胜在速度快:

ssl_verify: true
channels:
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
show_channel_urls: true

pip换源

一般直接在pip install后面加-i https://pypi.tuna.tsinghua.edu.cn/simple/

conda env 配置

新建一个conda环境,用python3.7和3.8应该都行。

conda create -n open-mmlab python=3.7
conda activate open-mmlab

pytorch与cudatoolkit

如果用pytorch官网的conda装的话,就要额外装cudatoolkit,如果按他的pip装感觉就不用,比如:

pip install torch==1.10.2+cu113 -f https://download.pytorch.org/whl/cu113/torch_stable.html

别忘了安装torchvision~
之后mmdet或者waymo里运行的时候会有cuda的warning,其实没事,如果错了一般都是别的问题。

waymo-open-dataset安装

可以按mmdet官方装,但我要用v1.3.1的特性,所以得装新版的配套库1.4.7。

pip install waymo-open-dataset-tf-2-6-0==1.4.7 -i https://pypi.tuna.tsinghua.edu.cn/simple/

可以加–user,这样不装到conda环境里了。
注意到1.4.7的pip包里是缺少了camera/ops/py_camera_model_ops.py的,安装好之后,在waymo_open_dataset/third_party/camera/ops/里能找到,直接复制到包安装目录即可,一般是

.local/lib/python3.7/site-packages/waymo_open_dataset/camera/ops

或者

anaconda3/envs/open-mmlab/lib/python3.7/site-packages/waymo_open_dataset/camera/ops

跟waymo提了issue说1.4.7有问题,他们跟我说修好了发了1.4.8,结果pip装dependency的时候又有bug…,找不到我环境里的openexr啥的。还是装1.4.7好了。
最好是先装waymo再装mmdet,这样能先把tensorflow装进来。另外可能需要安装protobuf-3.20,因为安装其他包过程中可能依赖了更新版的protobuf。
如果要编译出waymo的evaluation tool,以供模型进行evaluation,那么还需要去waymo的github repo里clone一份对应版本的project,然后用bazel编译。bazel的安装就直接conda install bazel即可。

open-mmlab系列安装

mmdet3d 的官方教程getting_started也挺好。但是我第一次装傻乎乎,装了他的测试版v1.0.0rc2,结果一堆bug _(¦3」∠)_
要安装mmcv,mmdet,mmsegmentation,ninja,然后才能装mmdet3d
在上海的node系列机器上,glibc版本比较旧,mmcv-1.5.1装不进去,mmcv-1.4.8可以用,其他没试过。
我使用mmdet3d v1.0.0rc2来处理waymo dataset,具体方法见上一篇文章。但是发现最新版的training和evaluation都有问题,连官方给的fcos3d都训不对,loss一直降不下去,所以使用了稳定的0.17.3。
除了mmdet3d,其他直接pip即可,mmdet3d要自己去git clone对应版本。
具体mmlab系列库版本的对应表,可以去官网查,下面给出两个能跑的配置。

如果要用rc2来train或者test,可能会遇到pytorch多线程的error,解决办法是在main函数开头加上torch.multiprocessing.set_start_method(‘fork’)

install_mmdet3d_0_17_3.sh

# conda activate open-mmlab
pip install waymo-open-dataset-tf-2-6-0==1.4.7 -i https://pypi.tuna.tsinghua.edu.cn/simple/
pip3 install torch==1.10.2+cu113 torchvision==0.11.3+cu113 torchaudio==0.10.2+cu113 -f https://download.pytorch.org/whl/cu113/torch_stable.html
pip install mmcv-full==1.4.0 -f https://download.openmmlab.com/mmcv/dist/cu113/torch1.10.2/index.html
pip install mmdet==2.19.1
pip install mmsegmentation==0.14.1
pip install ninja
#wget https://github.com/open-mmlab/mmdetection3d/archive/refs/tags/v0.17.3.zip
#or git clone and checkout 940e429
#要是git clone不上就先下载到本机再scp到服务器上
cd ~/mmdet3d/
pip install -v -e . -i https://pypi.tuna.tsinghua.edu.cn/simple/
pip install protobuf==3.20
conda install bazel
# don't forget to copy py_camera_ops.oy to waymo dataset!

install_mmdet3d_rc2.sh

# conda activate open-mmlab
source ~/anaconda3/bin/activate
conda activate mmlab-rc2
pip install waymo-open-dataset-tf-2-6-0==1.4.7 -i https://pypi.tuna.tsinghua.edu.cn/simple/
pip3 install torch==1.11.0+cu113 torchvision==0.12.0+cu113 -f https://download.pytorch.org/whl/cu113/torch_stable.html
pip install mmcv-full==1.4.8
pip install mmdet
pip install mmsegmentation
pip install ninja
## wget https://github.com/open-mmlab/mmdetection3d/archive/refs/tags/v1.0.0rc2.zip
#要是git clone不上就先下载到本机再scp到服务器上
cd ~/mmdetecion3d-rc2-waymo-dataonly
pip3 install -e . -i https://pypi.tuna.tsinghua.edu.cn/simple/
pip install protobuf==3.20
conda install bazel
# don't forget to copy py_camera_ops.oy to waymo dataset!

上海与北京服务器的代码同步

现在采取北京机器作为git origin,设置上海机器的remote为北京来实现两组服务器的代码同步。
一些必要命令:

git clone ssh://$ServerName/~/mmdet3d
git remote add origin ssh://$ServerName/~/mmdet3d

在北京机器上需要修改.git/config:

[receive]
denyCurrentBranch = updateInstead

misc

如果用清华源conda来下载pytorch,需要到清华源网址查看版本对应,不然容易把pytorch下载成cpu版,给出一个example:
conda install pytorch=1.11.0 cudatoolkit=11.3
装torchvision:conda install torchvision -c pytorch
好像清华源的包依赖分析不太行,还是pytorch源好些。但国内连pytorch源太慢了,还是pip吧…

以上是关于mmdet3d+waymo dataset v1.3.1环境配置方法与问题的主要内容,如果未能解决你的问题,请参考以下文章

mmdet3d纯视觉baseline之数据准备:处理waymo dataset v1.3.1

mmdet3d+waymo dataset v1.3.1环境配置方法与问题

mmdet3d+waymo dataset v1.3.1环境配置方法与问题

mmdet3d+waymo dataset v1.3.1环境配置方法与问题

Waymo dataset+mmdet3d的坐标系问题

Waymo dataset+mmdet3d的坐标系问题