# 3D Detection & Tracking Viewer
The project is based on hailanyi/3D-Detection-Tracking-Viewer and is modified, you can find the original version of the code below:
https://github.com/hailanyi/3D-Detection-Tracking-Viewer
This project was developed for viewing 3D object detection results from the Dair-V2X-I datasets.
It supports rendering 3D bounding boxes and rendering boxes on images.
## Features
* Captioning box ids(infos) in 3D scene
* Projecting 3D box or points on 2D image
## Design pattern
This code includes two parts, one for convert tools, other one for visualization of 3D detection results.
## Change log
* (2022.02.01) Adapted to the Dair-V2X-I dataset
## Prepare data
* Dair-V2X-I detection dataset
* Convert the Dair-V2X-I dataset to kitti format using the conversion tool
## Requirements (Updated 2021.11.2)
```
python==3.7.11
numpy==1.21.4
vedo==2022.0.1
vtk==8.1.2
opencv-python==4.1.1.26
matplotlib==3.4.3
open3d==0.14.1
```
It is recommended to use anaconda to create the visualization environment
```
conda create -n dair_vis python=3.8
```
To activate this environment, use
```
conda activate dair_vis
```
Install the requirements
```
pip install -r requirements.txt
```
To deactivate an active environment, use
```
conda deactivate
```
## Convert tools
* Prepare a dataset of the following structure:
* "kitti_format" must be an empty folder to store the conversion result
* "source_format" to store the source Dair-V2X-I datasets.
```
# For Dair-V2X-I Dataset
dair_v2x_i
├── kitti_format
├── source_format
│ ├── single-infrastructure-side
│ │ ├── calib
│ │ │ ├── camera_intrinsic
│ │ │ └── virtuallidar_to_camera
│ │ └── label
│ │ ├── camera
│ │ └── virtuallidar
│ ├── single-infrastructure-side-example
│ │ ├── calib
│ │ │ ├── camera_intrinsic
│ │ │ └── virtuallidar_to_camera
│ │ ├── image
│ │ ├── label
│ │ │ ├── camera
│ │ │ └── virtuallidar
│ │ └── velodyne
│ ├── single-infrastructure-side-image
│ └── single-infrastructure-side-velodyne
```
* If you have the same folder structure, you only need change the "root path" to your local path from config/config.yaml
* Running the jupyter notebook server and open the "convert.ipynb"
* The code is very simple , so there are no input parameters for advanced customization, you need to comment or copy the code to implemented separately following functions :
-Convert calib files to KITTI format
-Convert camera-based label files to KITTI format
-Convert lidar-based label files to KITTI format
-Convert image folders to KITTI format
-Convert velodyne folders to KITTI format
After the convet you will get the following result.
the
```
dair_v2x_i
├── kitti_format
│ ├── calib
│ ├── image_2
│ ├── label_2
│ ├── label_velodyne
│ └── velodyne
```
* The label_2 base the camera label, and use the lidar label information replace the size information(w,h,l). In the camera view looks like better.
* The label_velodyne base the velodyne label.
* P2 represents the camera internal reference, which is a 3×3 matrix, not the same as KITTI. It convert frome the "cam_K" of the json file.
* Tr_velo_to_cam: represents the camera to lidar transformation matrix, as a 3×4 matrix.
## Usage
#### 1. Set the path to the dataset folder used for input to the visualizer
If you have completed the conversion operation, the path should have been set correctly. Otherwise you need to set "root_path" in the config/config.yaml to the correct path
#### 2. Choose whether camera or lidar based tagging for visualization
You need to set the "label_select" parameter in config.yaml to "cam" or "vel", to specify the label frome label_2 or velodyne_label.
#### 2. Run and Terminate
* You can start the program with the following command
```
python dair_3D_detection_viewer.py
```
* Pressing space in the lidar window will display the next frame
* Terminating the program is more complicated, you cannot terminate the program at static image status. You need to press the space quickly to make the frames play continuously, and when it becomes obvious that the system is overloaded with resources and the program can't respond, press Ctrl-C in the terminal window to terminate it. Try a few more times and you will eventually get the hang of it.
## Notes on the Dair-V2X-I dataset
* In the calib file of this dataset, "cam_K" is the real intrinsic matrix parameter of the camera, not "P". Although they are very close in value and structure.
* There are multiple camera images with different focal and perspectives in this dataset, and the camera intrinsic matrix reference will change with each image file. Therefore, when using this dataset, please make sure that the calib file you are using corresponds to the image file (e.g. do not use only the 000000.txt parameter for all image files)
* The sequence of files in this dataset is non-contiguous (e.g. missing the 000023), do not only use 00000 to lens(dataset) to get the sequence of file names directly.
* The dataset provides optimized labels for both lidar and camera, and after testing, there are errors in the projection of the lidar label on camera (but the projection matrix is correct, only the label itself has issues). Likewise, there is a disadvantage of using the camera's label in lidar. Therefore it is recommended to use the corresponding label for lidar, and use the fused label for the camera.
* There are some other objects in the label, for example you can see some trafficcone.
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
dair_v2x_i_dataset_vis-master.zip (53个子文件)
dair_v2x_i_dataset_vis-master
gui.py 1KB
.vscode
launch.json 521B
viewer
viewer.py 22KB
car.obj 481KB
ego_car.3ds 822KB
box_op.py 15KB
color_map.py 3KB
__pycache__
box_op.cpython-38.pyc 9KB
viewer.cpython-37.pyc 12KB
viewer.cpython-38.pyc 12KB
color_map.cpython-37.pyc 3KB
color_map.cpython-38.pyc 3KB
box_op.cpython-37.pyc 10KB
dairv2x_readme 900B
convert.ipynb 2.58MB
doc
points.png 71KB
box.png 26KB
cars.png 42KB
framework.jpg 308KB
125.gif 13.21MB
data
mount_kitti.sh 171B
kitti_detection
testing 54B
dataset.txt 16B
training 55B
kitti_tracking
dataset.txt 16B
convert_dair2kitti.py 4KB
readme.md 6KB
waymo_3D_viewer.py 1KB
convert.py 9KB
dataset
dair_data_base.py 6KB
ips_dataset.py 4KB
ips_data_base.py 6KB
kitti_data_base.py 4KB
waymo_base.py 3KB
kitti_dataset.py 3KB
__pycache__
kitti_dataset.cpython-37.pyc 3KB
ips_dataset.cpython-37.pyc 3KB
dair_data_base.cpython-37.pyc 4KB
kitti_data_base.cpython-38.pyc 3KB
kitti_dataset.cpython-38.pyc 3KB
kitti_data_base.cpython-37.pyc 3KB
ips_data_base.cpython-37.pyc 4KB
dair_dataset.cpython-37.pyc 2KB
dair_dataset.py 3KB
kitti_3D_detection_viewer.py 938B
until.py 19KB
docker_env.sh 379B
requirements.txt 97B
dair_3D_detection_viewer.py 2KB
.gitignore 19B
kitti_3D_tracking_viewer.py 1005B
ips_3D_detection_viewer.py 2KB
config
config.yaml 1KB
共 53 条
- 1
资源评论
unbekannten
- 粉丝: 19
- 资源: 78
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功