当前位置: 首页 > news >正文

南京最好的网站设计公司网站建设报告论文

南京最好的网站设计公司,网站建设报告论文,一键生成短网址,找个公司做网站需要注意什么条件文章目录 参数设置align_dynamic_thing:为了将动态物体的点云数据从上一帧对齐到当前帧流程旋转函数平移公式filter_points_in_ego:筛选出属于特定实例的点get_intermediate_frame_info: 函数用于获取中间帧的信息,包括点云数据、传感器校准信息、自车姿态、边界框及其对应… 文章目录 参数设置align_dynamic_thing:为了将动态物体的点云数据从上一帧对齐到当前帧流程 旋转函数平移公式filter_points_in_ego:筛选出属于特定实例的点get_intermediate_frame_info: 函数用于获取中间帧的信息,包括点云数据、传感器校准信息、自车姿态、边界框及其对应的实例标识等intermediate_keyframe_align 函数用于将前一帧的点云数据对齐到当前帧的自车坐标系中,并返回对齐后的点云数据和标签。prev2ego 函数用于将前一帧的点云数据转换到当前帧的自车坐标系中。该函数考虑了旋转和平移,并可选地应用速度和时间差来进行额外的位移校正。nonkeykeyframe_align 函数用于将非关键帧的点云数据对齐到当前帧的自车坐标系中将前一帧的点云数据对齐到当前帧的自车坐标系中为未标记的中间点云数据搜索标签 必要的包 from nuscenes.nuscenes import NuScenes from pyquaternion import Quaternion from nuscenes.utils.data_classes import LidarPointCloud import numpy as np from open3d import * from nuscenes.utils.data_io import load_bin_file from nuscenes.utils.geometry_utils import points_in_box import os.path as osp from functools import partial from utils.points_process import * from sklearn.neighbors import KDTree import open3d as o3d import argparse初始化全局字典,用于存储中间静态点、姿态和标签 INTER_STATIC_POINTS = {} INTER_STATIC_POSE = {} INTER_STATIC_LABEL = {}参数设置 dataroot: 数据集的根路径,类型为字符串,默认值为 ‘./project/data/nuscenes/’。 save_path: 保存路径,类型为字符串,默认值为 ‘./project/data/nuscenes//occupancy2/’,该参数是可选的。num_sweeps: 每个示例的激光雷达扫描次数,类型为整数,默认值为 10,该参数是可选的。def parse_args():parser = argparse.ArgumentParser(description='Data converter arg parser')parser.add_argument('--dataroot',type=str,default='./project/data/nuscenes/',help='specify the root path of dataset')parser.add_argument('--save_path',type=str,default='./project/data/nuscenes//occupancy2/',required=False,help='specify sweeps of lidar per example')parser.add_argument('--num_sweeps',type=int,default=10,required=False,help='specify sweeps of lidar per example')args = parser.parse_args()return argsalign_dynamic_thing:为了将动态物体的点云数据从上一帧对齐到当前帧 def align_dynamic_thing(box, prev_instance_token, nusc, prev_points, ego_frame_info):if prev_instance_token not in ego_frame_info['instance_tokens']:box_mask = points_in_box(box,prev_points[:3, :])return np.zeros((prev_points.shape[0], 0)), np.zeros((0, )), box_maskbox_mask = points_in_box(box,prev_points[:3, :])box_points = prev_points[:, box_mask].copy()prev_bbox_center = box.centerprev_rotate_matrix = box.rotation_matrixbox_points = rotate(box_points, np.linalg.inv(prev_rotate_matrix), center=prev_bbox_center)target = ego_frame_info['instance_tokens'].index(prev_instance_token)ego_boxes_center = ego_frame_info['boxes'][target].centerbox_points = translate(box_points, ego_boxes_center-prev_bbox_center)box_points = rotate(box_points, ego_frame_info['boxes'][target].rotation_matrix, center=ego_boxes_center)box_points_mask = filter_points_in_ego(box_points, ego_frame_info, prev_instance_token)box_points = box_points[:, box_points_mask]box_label = np.full_like(box_points[0], nusc.lidarseg_name2idx_mapping[box.name]).copy()return box_points, box_label, box_mask 流程 检查实例标识: if prev_instance_token ∉ ego_frame_info[‘instance_tokens’]: box_mask = points_in_box(box, prev_points[:3, :]) return (0, 0, box_mask) 计算边界框内的点: box_mask = points_in_box(box, prev_points[:3, :]) box_points = prev_points[:, box_mask] 获取上一帧边界框的中心和旋转矩阵: C_prev = box.center R_prev = box.rotation_matrix 将点旋转到原点并平移到当前帧的中心: box_points = R_prev^-1 * (box_points - C_prev) 获取目标边界框的中心和旋转矩阵: target = ego_frame_info[‘instance_tokens’].index(prev_instance_token) C_ego = ego_frame_info[‘boxes’][target].center R_ego = ego_frame_info[‘boxes’][target].rotation_matrix 平移到当前帧的中心并再次旋转: box_points = box_points + (C_ego - C_prev) box_points = R_ego * box_points 过滤当前帧边界框内的点: box_points_mask = points_in_box(ego_frame_info[‘boxes’][target], box_points[:3, :]) box_points = box_points[:, box_points_mask] 生成点云数据的标签: box_label = full_like(box_points[0], nusc.lidarseg_name2idx_mapping[box.name]) 返回结果: return (box_points, box_label, box_mask) numpy.full_like()是根据现有数组的形状和数据类型来创建新数组,而numpy.full()则需要手动指定形状和数据类型。 旋转函数 def rotate(points, rot_matrix: np.ndarray, center=None) - np.array:"""Applies a rotation.:param rot_matrix: np.float: 3, 3. Rotation matrix."""if center is not None:points[:3, :] = np.dot(rot_matrix, points[:3, :]-center[:, None]) + center[:, None]else:points[:3, :] = np.dot(rot_matrix, points[:3, :])return points 平移公式 def translate(points, x: np.ndarray) - np.array:"""Applies a translation to the point cloud.:param x: np.float: 3, 1. Translation in x, y, z."""for i in range
http://www.w-s-a.com/news/203866/

相关文章:

  • 做淘宝需要知道什么网站吗有没有做软件的网站
  • 安丘网站建设制作做网站和微信小程序
  • 京东网站的建设与发展前景黑龙江建设网官网登陆
  • soho的网站怎么做微网站平台建设方案
  • 网站开发下载阿里云oss做视频网站
  • 东莞营销网站制作做一个网站建设
  • 啥网站都能看的浏览器下载网站后台管理系统展望
  • 新建站点步骤汉中 wordpress联盟
  • 坪山网站设计的公司网站 seo 设置
  • 济南网站设计公司排名如何免费注册网站域名
  • 网站开发分工甜妹妹福利wordpress
  • 网站中英文要怎么做网站建设的策划文案
  • 合肥推广外包公司佛山seo
  • 成都网站品牌设计策划课堂网站开发
  • 做直播网站赚钱公司网站空间怎么续费
  • 企业网站制作公司有哪些太原网站建设 thinkphp3.2
  • 云集网站哪个公司做的百度竞价排名怎么做
  • 做网站公司赚钱吗网站建设英语翻译
  • 网络公司除了做网站产品设计作品
  • dede网站模板替换湘潭建设路街道网站
  • 东莞网站优化效果如何网络设计工作
  • 网站备案系统验证码出错的解决方案任丘建设银行网站
  • 个人博客建站wordpress叮当app制作
  • 网站式的公司记录怎么做二手书网站策划书
  • 营销型网站的建设重点是什么帝国程序和WordPress
  • 正能量网站推荐不需要下载巴中网站建设开发公司
  • 学生模拟网站开发西安seo平台
  • 免费的app推广平台免费网站seo
  • 建一个个人网站网站建设中小企业广西
  • 优惠券网站做淘客违规吗个人建网站运营.