[深度预测]CVPR2019|基于ubuntu20.04的RNN-DP复现踩坑记录——待更新

一、论文介绍

2019年CVPR深度预测论文
Recurrent Neural Network for (Un-)supervised Learning of Monocular Video Visual Odometry and Depth
论文链接:https://ieeexplore.ieee.org/document/8954360
代码链接:https://github.com/wrlife/RNN_depth_pose
数据集链接:
数据集解析链接:KITTI数据集calib文件解析

二、配置环境

论文中要求的是tensorflow1.12.0,但是我的环境用的tensorflow-gpu 2.4版本
(问就是装不上1.12.0o(╥﹏╥)o)
下面就是在tensorflow-gpu2.20,ubuntu20.04, python3.7版本下的代码调试记录。

我先编译的model.py
1、tensorflow.contrib
在这里插入图片描述原因:tensorflow2.x版本没有contrib这个包了
解决办法:
a、安装第三方库

pip install tf-slim

b.修改源码

#import tensorflow.contrib.slim as slim 
import tf_slim as slim

参考教程:https://blog.csdn.net/qq_38251616/article/details/114820099

2.opencv

    import cv2 as cv
ModuleNotFoundError: No module named 'cv2'

解决办法:

pip install opencv-python

3.matplotlib

pip install matplotlib

4.AttributeError: module ‘tensorflow’ has no attribute ‘x’
AttributeError: module ‘tensorflow’ has no attribute ‘placeholder’
等因为tensorflow2.x不能调用1.x的
将所有调用tensorflow的地方都换为这两句。(血泪教训!!tensorflow版本不一致真的太烦了!!)

#import tensorflow as tf
import tensorflow.compat.v1 as tf
tf.disable_v2_behavior()

4.安装kitti数据集处理的python包
https://github.com/utiasSTARS/pykitti

pip install pykitti

三、pykitti——kitti专用处理包说明

1、创建一个dataset
其中dataset中包含的属性

dataset = pykitti.raw(basedir, date, drive)
# dataset.calib:         Calibration data are accessible as a named tuple
# dataset.timestamps:    Timestamps are parsed into a list of datetime objects
# dataset.oxts:          List of OXTS packets and 6-dof poses as named tuples
# dataset.camN:          Returns a generator that loads individual images from camera N
# dataset.get_camN(idx): Returns the image from camera N at idx
# dataset.gray:          Returns a generator that loads monochrome stereo pairs (cam0, cam1)
# dataset.get_gray(idx): Returns the monochrome stereo pair at idx
# dataset.rgb:           Returns a generator that loads RGB stereo pairs (cam2, cam3)
# dataset.get_rgb(idx):  Returns the RGB stereo pair at idx
# dataset.velo:          Returns a generator that loads velodyne scans as [x,y,z,reflectance]
# dataset.get_velo(idx): Returns the velodyne scan at idx
#self.cam3_files = sorted(glob.glob(os.path.join(self.data_path, 'image_03', 'data', '*.{}'.format(self.imtype))))

2、尝试了解pykitti
可以运行github上的文件demo_raw.py,可以得到以下信息
在这里插入图片描述

四、复现步骤

4.1 生成训练数据

新建一个dataset/KITTI文件夹,将下载好的KITTI数据集中的raw文件夹和depth文件夹,放在dataset文件夹下。(原始代码中没有新建文件夹的命令,也可以自己写)
其中数据集的目录分布为如下所示。

图KITTI

新建一个文件夹training_data在dataset文件夹
运行generate_kitti_train_datasets.py,生成很多cam3_[date]_ drive_[number]_sync.tfrecords文件。

4.2 运行程序

main.py文件。
修改dataset_dir为.tfrecords文件所在的目录,也就是dataset/KITTI/training_data。
运行main.py文件就开始训练了!

loss为nan.,.,能跑起来,但是不知道哪里出了问题o(╥﹏╥)o,有大佬知道吗

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值