Skip to content

Latest commit

 

History

History
87 lines (67 loc) · 4.13 KB

ReadmeChinese.md

File metadata and controls

87 lines (67 loc) · 4.13 KB

English | 简体中文

SNE-RoadSeg2

概述

SNE-RoadSeg2基于SNE-RoadSeg:将表面法线信息纳入语义分割以进行准确的自由空间检测官方pytorch实现,已被ECCV 2020接收,这是他们的项目主页

在此仓库中,我们为KITTI道路数据集提供了训练和测试配置。 此项目源代码已经在Python 3.7,CUDA 10.0,cuDNN 7和PyTorch 1.1环境中测试,并且提供了Dockerfile来构建我们使用的docker镜像。


Setup

请根据以下文件夹结构设置KITTI道路数据集和预训练的权重:

SNE-RoadSeg
 |-- checkpoints
 |  |-- kitti
 |  |  |-- kitti_net_RoadSeg.pth
 |-- data
 |-- datasets
 |  |-- kitti
 |  |  |-- training
 |  |  |  |-- calib
 |  |  |  |-- depth_u16
 |  |  |  |-- gt_image_2
 |  |  |  |-- image_2
 |  |  |-- validation
 |  |  |  |-- calib
 |  |  |  |-- depth_u16
 |  |  |  |-- gt_image_2
 |  |  |  |-- image_2
 |  |  |-- testing
 |  |  |  |-- calib
 |  |  |  |-- depth_u16
 |  |  |  |-- image_2
 |-- examples
 ...

可以从KITTI道路数据集下载image_2gt_image_2calib。 我们根据KITTI道路数据集提供的LiDAR数据实现depth_u16,可以从这里下载。 请注意,depth_u16是uint16数据格式,并且实际深度(以米为单位)可以通过double(depth_u16)/1000来获得。 此外,我们的SNE-RoadSeg-152的预训练权重kitti_net_RoadSeg.pth可以从这里下载。

如何使用

运行一个示例

我们在examples中提供了一个示例。 要运行它,您只需要如上所述设置checkpoints文件夹即可。 然后,运行以下脚本:

bash ./scripts/run_example.sh

然后您将在examples中看到normal.pngpred.pngprob_map.pngnormal.png是我们SNE的正常估算;pred.png是我们的SNE-RoadSeg进行的自由空间预测; prob_map.png是我们的SNE-RoadSeg预测的概率图。

为KITTI做提交测试

对于KITTI提交,您需要如上所述设置checkpointsdatasets/kitti/testing文件夹。 然后,运行以下脚本:

bash ./scripts/test.sh

您将在testresults中获得预测结果。 之后,您可以按照提交说明 submission instructions将预测结果转换为BEV透视图以进行提交。

如果一切正常,您将获得URBAN的MaxF分数96.74。 请注意:这是我们重新实现的权重,与本文中报告的权重非常相似(对于URBAN,MaxF得分为96.75)。

在KITTI数据集上作训练

为了进行训练,您需要如上所述设置datasets/kitti文件夹。 您可以根据需要将原始训练集分为新的训练集和验证集。 然后,运行以下脚本:

bash ./scripts/train.sh

权重将保存在checkpoints中,包含损耗曲线以及验证集性能的张量板记录将保存在runs中。 注意:如果我们将使用我们的SNE模型,train.sh中的use-sne可以控制,默认值为True。 如果删除它,我们的RoadSeg将以深度图像作为输入,并且您还需要删除test.sh中的use-sne以避免测试时出错。

引用

[paper] | [video]

致谢

我们的代码受pytorch-CycleGAN-and-pix2pix的启发,非常感谢Jun-Yan Zhu分享的出色工作。