实验记录 MV3D 代码复现

实验记录 MV3D 代码复现
condamv3d2
file path : ~/work//didi/
1, 下载好数据 , 不要下载错了
2 , 按照数据布局进行数据摆放
然后对raw进行数据摆放
3 , 摆放好数据后 , 编译ver3的代码 , 生成两个动态库
这里要注意按照文件 , 对路径进行修正 。
但是这里我也碰到一个问题 , 
怎么实现numpy array to beinto ‘raw’ to .so in .py line 126.
我尝试raw=np.load(“.so”,=True),但是这会报错动态库文件没法当打开 。
如果有朋友会 , 私信我 , 感谢 。
4 , 生成动态库文件后 ,  data.py
这里要注意的是
运行data.py文件以后 , 在data文件中产生6个文件夹 , 如下图:
储存154个npy文件 , 每个文件对应一帧点云数据中所有boxes的8个坐标信息
储存了154和png文件 , 是将2Dbox画在img上的png文件(并不是所有额obj都被画了出来 , 根据.xml文件可知 , 点云数据中还有和行人等目标 , 但是在data阶段没有画出来)
文件夹里边包含154个npy文件 , 储存对应点云中boxes目标框的标签 , 比如[1,1].代表这帧点云中有两个boxes框 , 且种类标签都为1
rgb 154个png文件 , 代表归一化后的原始image;不要诧异图片是黑色的 , 黑色的原因是因为原始图片的rgb范围是[0,255].黑色的图片rgb范围是[0,1];
top npy.npz文件 , mv3d的top视图 , 将点云平均分为M个切片 , 为每一个切片计算高度图 , 得到M个高度图;代码中的M计算得15;
首先将点云分为很对个3维格子 , 设置格子的长宽高分辨率;然后根据点的三维坐标确定位于的格子;取每个格子内所有点的最大高度为切片对应得2D 格子的高度值;源码里边将每个点云切片分为500*300的分辨率;每个npy.npz文件可以得到一个shape为[500,300,15]的数组
5 , 调试
这个时候要用到 , 因此需要不断调试 。
版本太高了 , 需要降低到1
pip-gpu1.1.0
卸载干净
版本太高 , 降低到.6
conda.6
但是降低版本太麻烦 , 不如重新创建一个环境
conda--name mv3d2 =3.6
conda-gpu==1.4.1
conda=8
【实验记录 MV3D 代码复现】condacudnn=6
然后缺啥补啥 。
5.1 首先测试是否正常能用
Test your -GPU isby"
5.2 测试 -gpu是否可用 5.3 修改相关文件和查询gpu的算力
After -GPU could work If you are not usingK520 GPU, you need to“arch=sm_30” to other value in src/net/lib/setup.py and src/lib/make.sh in order to*.so file right. Here is short list for archfor.
因为我用的是 , 所以sm_86
6 ,  train.py
碰到新问题卡住了
: /usr/lib/-linux-gnu/.so.0::
搞定又有新问题 , 我都无语了
: /home/siat//ENTER/envs/mv3d2/bin/…/lib/-2.0.so.0:: ds
第一种可能glib的版本跟系统版本不同
查看后果然版本不同
mv3d 是2.58.2
是2.56.4
ubunu 是2.64.6
是2.72.1
降低glib版本 , 注意不要再的终端进行 , 要在终端进行
conda-cglib==2.56.1
成功解决该问题
但是版本降低又会出现新的问题 。。。无语
: /usr/lib/-linux-gnu/.so.2::
那么我再查看是否版本问题
当前cairo 版本是1.12.18
是1.15.0
将两者版本调为一致试试
调整失败
谷歌说版本要和cari版本匹配 , 但是匹配关系没找到