Paper: https://arxiv.org/abs/2205.05509 (Old version)
Video: Bilibili Bilibili2 Youtube
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.
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.
The following instructions describe installation of conda environment. Please refer to requirement.
If you want to set it to headless mode(without X server enabled), see the MyRender in the src folder.
Note: The project needs to use the screen to run the script, if not, run the project in src folder.
Run this command to install python environment:
cd src/MyRender
pip install -v -e .
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 and unpack in the Data directory.
We suppose that you have at least one GeForce GTX 1080 Ti for fitting and inference.
Here we show an example how to run fitted scenes in the viewer.
python viewer.py --config downloads/kitti6.yaml
- 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
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
It's very simple. You just need a sequence of pictures to do it.
- Use metashape to obtain camera.xml, pointcloud.ply
- Place the above files and photos in the Data folder, for example, Data/image/xx.png, Data/camera.xml Data/pointcloud.ply
- Change the folder address in configs/paths_example.yaml and load net_ckpt/texture_ckpt model address in configs/train_example.yaml, if any.
- Run the code: python train.py --config configs/train_example.yaml --pipeline READ.pipelines.ogl.TexturePipeline --crop_size 256x256
READ can move and remove the cars in different views. A panorama with larger view can be synthesized by changing the camera parameters.
READ is able to synthesize the larger driving scenes and update local areas with obvious changes in road conditions.
In this code we refer to the following implementations: npbg and MIMO. Great thanks to them!
If our work or code helps you, please consider to cite our paper. Thank you!
@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}
}