Waymo Open Dataset (WOD) 可视化程序

编程入门 行业动态 更新时间:2024-10-27 22:33:40

Waymo Open Dataset (WOD) 可视化<a href=https://www.elefans.com/category/jswz/34/1771429.html style=程序"/>

Waymo Open Dataset (WOD) 可视化程序

Waymo Open Dataset(WOD)可视化程序

  • 1 运行环境
    • 1.1 安装环境
  • 2 代码
  • 3 注意事项

1 运行环境

版本备注
anaconda3
python3.7
tensorflow2.4.0
waymo-open-dataset-tf-2-4-0
CUDA11.0不安装应该会使用CPU计算
cudnn8.0不安装应该会使用CPU计算
pyqt5
Mayavi

1.1 安装环境

其他环境在此不再赘述,之将两个库的安装

  1. 安装Mayavi
pip3 install mayavi -i 
  1. 安装pyqt5
pip3 install pyqt5 -i 

不安装会报错,详情请参考这里

ImportError: Could not import backend for traitsui.  Make sure youhave a suitable UI toolkit like PyQt/PySide or wxPythoninstalled.

2 代码

代码来源酱油与清洛 ,笔者做一些补充,使用时直接复制进python脚本程序,然后将FILENAME后面的路径改为你自己的文件存放路径,python3 {程序名}.py运行即可。

# 作者:酱油与清洛  出处:bilibili
# 修改:Leoimport os
import tensorflowpat.v1 as tf
import math
import numpy as np
import itertools
import timetf.enable_eager_execution()from waymo_open_dataset.utils import range_image_utils
from waymo_open_dataset.utils import transform_utils
from waymo_open_dataset.utils import frame_utils
from waymo_open_dataset import dataset_pb2 as open_datasetfrom mayavi import mlab# 配置GPU显存自适应分配,防止占用所有显存
# set GPU memory to adaptively be allocated avoid all the memory being occupied
gpus = tf.config.list_physical_devices('GPU')
if gpus:try:for gpu in gpus:tf.config.experimental.set_memory_growth(gpu, True)print('info: following GPU is setted as memory_growth:')print(gpu)except RuntimeError as e:print(e)
else:print('info: there have no GPUs in this computer')@mlab.animate(delay=100)
def updateAnimation():framenumber = 0FILENAME = '../waymo_open_dataset_v_1_3_2/validation/segment-272435602399417322_2884_130_2904_130_with_camera_labels.tfrecord'dataset = tf.data.TFRecordDataset(FILENAME, compression_type='')MAXPOINT = 200000for data in dataset:framenumber += 1print('Frame Number : {}'.format(framenumber))frame = open_dataset.Frame()frame.ParseFromString(bytearray(data.numpy()))(range_images, camera_projections, range_image_top_pose) = frame_utils.parse_range_image_and_camera_projection(frame)points, cp_points = frame_utils.convert_range_image_to_point_cloud(frame,range_images,camera_projections,range_image_top_pose)x = [0]*MAXPOINTy = [0]*MAXPOINTz = [0]*MAXPOINTfor point in points:# print('len(point)=',len(point))for i in range(len(point)):x[i] = point[i][0]y[i] = point[i][1]z[i] = point[i][2]fig.mlab_source.set(x=x, y=y, z=z, mode="point")yieldMAXPOINT = 200000
fig = mlab.points3d(np.zeros(MAXPOINT), np.zeros(MAXPOINT), np.zeros(MAXPOINT),mode="point")
updateAnimation()
mlab.show() 

  上面的程序中添加了GPU显存设置,不添加会报错如下所示。当然,如果没有安装CUDA的话应该也不用添加,程序会直接使用CPU进行计算。

F tensorflow/core/util/cuda_solvers:115] Check failed: cusolverDnCreate(&cusolver_dn_handle) == CUSOLVER_STATUS_SUCCESS Failed to create cuSolverDN instance.

视频效果展示看这里

3 注意事项

注意,如下图所示,一定要单击一下这里面的任意一个视图,才可以清楚的看到点云数据。

更多推荐

Waymo Open Dataset (WOD) 可视化程序

本文发布于:2024-03-08 06:30:54,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1720067.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:程序   Open   Waymo   WOD   Dataset

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!