Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

https://github.com/JOP-Lee/READ

AAAI2023,implementation of "READ: Large-Scale Neural Scene Rendering for Autonomous Driving", the experimental results are significantly better than Nerf-based methods
https://github.com/JOP-Lee/READ

driving kitti nerf neural-rendering view-synthesis

Last synced: 3 months ago
JSON representation

AAAI2023,implementation of "READ: Large-Scale Neural Scene Rendering for Autonomous Driving", the experimental results are significantly better than Nerf-based methods

Lists

README

        

# READ: Large-Scale Neural Scene Rendering for Autonomous Driving

Commercial use is forbidden![](https://img.shields.io/badge/license-GPL-blue)

Paper: https://arxiv.org/abs/2205.05509 (Old version)

Video:
[Bilibili](https://www.bilibili.com/video/BV1we411K7ug) [Bilibili2](https://www.bilibili.com/video/BV1C84y1t7pP) [Youtube](https://www.youtube.com/watch?v=2yeH7l4oLYw)

Demo: (Use only one camera view for training)

All you need is a series of images or videos as input to get the following effect. Scenes are not only limited to driving scenes, but also can be used for tourism scenes, indoor scenes, objects, etc.








## Overview:

This is the code release for our AAAI2023 paper, PyTorch implementation of Large-Scale Neural Scene Rendering for Autonomous Driving(READ), a large-scale neural rendering method is proposed to synthesize the autonomous driving scene~(READ), which makes it possible to synthesize large-scale driving scenarios on a PC. Our model can not only synthesize realistic driving scenes but also stitch and edit driving scenes.
![contents](./image/main.jpg)

## Setup

The following instructions describe installation of conda environment. Please refer to [requirement](https://github.com/JOP-Lee/READ/blob/main/requirement.sh).

If you want to set it to headless mode(without X server enabled), see the MyRender in the [src folder](https://github.com/JOP-Lee/READ/tree/main/src).

Note: This project needs to use the screen to run the script, if not, run the project in [src folder](https://github.com/JOP-Lee/READ/tree/main/src).

Run this command to install python environment:
```bash
cd src/MyRender
pip install -v -e .
```


## Run

You can render one of the fitted scenes we provide right away in the real-time viewer or fit your own scene.

Download fitted scenes and universal rendering network weights from [here](https://zenodo.org/record/7395608#.Y4xv9HZBxPY) and unpack in the Data directory.

We suppose that you have at least one GeForce GTX 1080 Ti for fitting and inference.

### Use fitted scene

Here we show an example how to run fitted scenes in the viewer.

#### kitti6
```bash
python viewer.py --config downloads/kitti6.yaml
```

### Viewer navigation:

* Move forward: w
* Move backward: s
* Move left: a
* Move right: d
* Rise: q
* Fall: e
* Turn to the left: 1
* Turn to the right: 2
* Turn to the up: 3
* Turn to the down: 4
* Rotation: press left mouse button and drag
* Move: press rigth mouse button and drug / scroll middle mouse botton
* Pan: press middle mouse button and drug

## Train

python train.py --config configs/train_example.yaml --pipeline READ.pipelines.ogl.TexturePipeline --crop_size 256x256

The size of crop_size depends on your GPU memory, and the parameter train_dataset_args can be adjusted in the configs folder.

## Train with your own data

It's very simple. You just need a sequence of pictures to do it.

1. Use metashape to obtain camera.xml, pointcloud.ply
2. Place the above files and photos in the Data folder, for example, Data/image/xx.png, Data/camera.xml Data/pointcloud.ply
3. Change the folder address in configs/paths_example.yaml and load net_ckpt/texture_ckpt model address in configs/train_example.yaml, if any.
4. Run the code: python train.py --config configs/train_example.yaml --pipeline READ.pipelines.ogl.TexturePipeline --crop_size 256x256

## Scene Editing:

READ can move and remove the cars in different views. A panorama with larger view can be synthesized by changing the camera parameters.
![contents](./image/Scene_Editing.jpg)

## Scene Stitching:

READ is able to synthesize the larger driving scenes and update local areas with obvious changes in road conditions.
![contents](./image/Scene_Stitching.jpg)

## Novel View Synthesis:

![contents](./image/NovelView.jpg)

## Acknowledgments
In this code we refer to the following implementations: [npbg](https://github.com/alievk/npbg) and [
MIMO](https://github.com/chosj95/MIMO-UNet). Great thanks to them!

## Citation
If our work or code helps you, please consider to cite our paper. Thank you!
```BibTeX
@inproceedings{li2022read,
author = {Li, Zhuopeng and Li, Lu and Zhu, Jianke*},
title = {READ: Large-Scale Neural Scene Rendering for Autonomous Driving},
booktitle = {AAAI},
year = {2023}
}
```