安装细节

CenterFusion/src/tools/convert_nuScenes.py内容修改

  • 如果你用的是nuscenes数据集中的Mini部分,那就把convert_nuScenes.py第27行内容中的其他部分注释掉

Ubuntu16.04布置CenterFusion记录-LMLPHP

  • convert_nuScenes.py在56行处,将数量修改为3
    Ubuntu16.04布置CenterFusion记录-LMLPHP

nuscenes-devkit下载

将nuscenes-devkit克隆到CenterFusion/src/tools/nuscenes-devkit

#在 CenterFusion/src/tools 文件夹下,先删除原来的空文件夹,否则的话,克隆会报错
rm -rf nuscenes-devkit
#再下载 nuscenes-devkit
git clone https://github.com/nutonomy/nuscenes-devkit.git

DCNv2安装

将DCNv2克隆到CenterFusion/src/lib/model/networks

git clone https://github.com/CharlesShang/DCNv2/  
cd DCNv2
./make.sh

我的pytorch是1.2,推荐使用github上的这一款DCNv2——CharlesShang / DCNv2
这一款DCNv2运行时报错——lbin / DCNv2
报错信息如下
Ubuntu16.04布置CenterFusion记录-LMLPHP

test.sh修改

如果你是单显卡的话,将CenterFusion/experiments/test.sh中的内容修改

export CUDA_VISIBLE_DEVICES=1

修改为

export CUDA_VISIBLE_DEVICES=0

可视化

在运行test.py时加入--debug 4参数
同时修改CenterFusion/src/lib/utils/debugger.py文件中第 424 行

          cv2.line(bird_view, (rect[e[0]][0], rect[e[0]][1]),
                  (rect[e[1]][0], rect[e[1]][1]), lc, t,
                  lineType=cv2.LINE_AA)

修改为

          cv2.line(bird_view, (int(rect[e[0]][0]), int(rect[e[0]][1])),
                  (int(rect[e[1]][0]), int(rect[e[1]][1])), lc, t,
                  lineType=cv2.LINE_AA)

即,转为整数类型。
CenterFusion/exp/ddd/centerfusion/debug中即可找到可视化后的结果。

问题记录

解决ImportError: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.22‘ not found

解决ImportError: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.22‘ not found

【解决错误】ModuleNotFoundError: No module named ‘progress‘

其实这个问题不算是问题,你别从test.sh文件运行test.py就好了,将命令复制出来,直接用终端运行即可。
因为运行pip list可以发现已经存在progress库了,或者PyCharm里面也能够正常调用progress库。
【解决错误】ModuleNotFoundError: No module named ‘progress‘

ImportError: cannot import name ‘PILLOW_VERSION’ from ‘PIL’ (/home/jjuv/anaconda3/lib/python3.7/site-packages/PIL/init.py)

ImportError: cannot import name 'PILLOW_VERSION' from 'PIL' (/home/jjuv/anaconda3/lib/python3.7/site-packages/PIL/__init__.py)

报错解释:torchvision在运行时要调用PIL模块,调用PIL模块的PILLOW_VERSION函数。但是PILLOW_VERSION在Pillow 7.0.0之后的版本被移除了,Pillow 7.0.0之后的版本使用__version__函数代替PILLOW_VERSION函数。
你可以尝试一下,在终端启动python,然后引入torchvision库import torchvision也是报错的。
Ubuntu16.04布置CenterFusion记录-LMLPHP定位到最后一个文件,functional.py修改里面的内容

from PIL import Image, ImageOps, ImageEnhance, PILLOW_VERSION

修改为

from PIL import Image, ImageOps, ImageEnhance, __version__

即可。
Python模块问题:ImportError: cannot import name ‘PILLOW_VERSION’ from ‘PIL’

cv2.error: OpenCV(4.5.5) 👎 error: (-5:Bad argument) in function ‘line’

下面的错误
Ubuntu16.04布置CenterFusion记录-LMLPHP肯定是没有修改CenterFusion/src/lib/utils/debugger.py文件中第 424 行。

          cv2.line(bird_view, (rect[e[0]][0], rect[e[0]][1]),
                  (rect[e[1]][0], rect[e[1]][1]), lc, t,
                  lineType=cv2.LINE_AA)

修改为

          cv2.line(bird_view, (int(rect[e[0]][0]), int(rect[e[0]][1])),
                  (int(rect[e[1]][0]), int(rect[e[1]][1])), lc, t,
                  lineType=cv2.LINE_AA)

即,转为整数类型。
修改完毕就没事了。

参考文章

CenterFusion 项目超详细环境搭建步骤及可视化操作

05-16 14:06