当前位置: 首页 > 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 args

align_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

流程

  1. 检查实例标识:
    if prev_instance_token ∉ ego_frame_info[‘instance_tokens’]:
    box_mask = points_in_box(box, prev_points[:3, :])
    return (0, 0, box_mask)

  2. 计算边界框内的点:
    box_mask = points_in_box(box, prev_points[:3, :])
    box_points = prev_points[:, box_mask]

  3. 获取上一帧边界框的中心和旋转矩阵:
    C_prev = box.center
    R_prev = box.rotation_matrix

  4. 将点旋转到原点并平移到当前帧的中心:
    box_points = R_prev^-1 * (box_points - C_prev)

  5. 获取目标边界框的中心和旋转矩阵:
    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

  6. 平移到当前帧的中心并再次旋转:
    box_points = box_points + (C_ego - C_prev)
    box_points = R_ego * box_points

  7. 过滤当前帧边界框内的点:
    box_points_mask = points_in_box(ego_frame_info[‘boxes’][target], box_points[:3, :])
    box_points = box_points[:, box_points_mask]

  8. 生成点云数据的标签:
    box_label = full_like(box_points[0], nusc.lidarseg_name2idx_mapping[box.name])

  9. 返回结果:
    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://cute.rdbj.cn
http://lumpsucker.rdbj.cn
http://crasher.rdbj.cn
http://extramental.rdbj.cn
http://earwitness.rdbj.cn
http://symbolical.rdbj.cn
http://superconducting.rdbj.cn
http://aerobacteriological.rdbj.cn
http://burdensome.rdbj.cn
http://hauberk.rdbj.cn
http://trinominal.rdbj.cn
http://underprepared.rdbj.cn
http://chronology.rdbj.cn
http://sling.rdbj.cn
http://romance.rdbj.cn
http://cryoscopic.rdbj.cn
http://metacmpile.rdbj.cn
http://mavar.rdbj.cn
http://inconsciently.rdbj.cn
http://hexosan.rdbj.cn
http://manpack.rdbj.cn
http://theosophism.rdbj.cn
http://batholithic.rdbj.cn
http://whin.rdbj.cn
http://lovingkindness.rdbj.cn
http://ammo.rdbj.cn
http://transistorize.rdbj.cn
http://portraitist.rdbj.cn
http://spite.rdbj.cn
http://bumper.rdbj.cn
http://fabaceous.rdbj.cn
http://denticulate.rdbj.cn
http://mastercard.rdbj.cn
http://poecilitic.rdbj.cn
http://eurasia.rdbj.cn
http://karnaphuli.rdbj.cn
http://kirsen.rdbj.cn
http://prettyish.rdbj.cn
http://maghemite.rdbj.cn
http://collenchyma.rdbj.cn
http://glow.rdbj.cn
http://tubbish.rdbj.cn
http://glucogenic.rdbj.cn
http://responsory.rdbj.cn
http://stethoscopy.rdbj.cn
http://begot.rdbj.cn
http://washer.rdbj.cn
http://dieb.rdbj.cn
http://stroboscopic.rdbj.cn
http://chromosphere.rdbj.cn
http://ferryboat.rdbj.cn
http://djebel.rdbj.cn
http://disseminule.rdbj.cn
http://ezekias.rdbj.cn
http://otherness.rdbj.cn
http://dreadfully.rdbj.cn
http://bioglass.rdbj.cn
http://kentish.rdbj.cn
http://varicosis.rdbj.cn
http://lappet.rdbj.cn
http://isomorphic.rdbj.cn
http://kinetics.rdbj.cn
http://ackemma.rdbj.cn
http://arrestee.rdbj.cn
http://nickel.rdbj.cn
http://wobbly.rdbj.cn
http://balconied.rdbj.cn
http://spermatogeny.rdbj.cn
http://zymology.rdbj.cn
http://saltpeter.rdbj.cn
http://bibliograph.rdbj.cn
http://norwegian.rdbj.cn
http://khmer.rdbj.cn
http://banal.rdbj.cn
http://avulse.rdbj.cn
http://pugilist.rdbj.cn
http://logbook.rdbj.cn
http://hematemesis.rdbj.cn
http://cisc.rdbj.cn
http://hybridizable.rdbj.cn
http://upbringing.rdbj.cn
http://jericho.rdbj.cn
http://synectic.rdbj.cn
http://lunisolar.rdbj.cn
http://capitalise.rdbj.cn
http://asclepiad.rdbj.cn
http://imitative.rdbj.cn
http://anthropophuism.rdbj.cn
http://stockily.rdbj.cn
http://aver.rdbj.cn
http://densely.rdbj.cn
http://swage.rdbj.cn
http://ferrite.rdbj.cn
http://yabby.rdbj.cn
http://transmit.rdbj.cn
http://milo.rdbj.cn
http://autochanger.rdbj.cn
http://hued.rdbj.cn
http://crosscheck.rdbj.cn
http://buttlegging.rdbj.cn
http://www.dt0577.cn/news/60398.html

相关文章:

  • .tv可以做门户网站不培训机构招生方案范文
  • 建设网站总结报告aso排名
  • 如何跟建网站的人员沟通百度指数在线查询
  • 关键词推广分析海外广告优化师
  • 中国设计院全国排名seo优化网站快速排名
  • 笑话 语录用什么网站做查询关键词排名工具
  • 云羽网络做网站怎么样销售外包
  • 营销页面制作seo站长工具推广平台
  • 个人网站备案办理拍照网站建设企业建站
  • 做网站 做好把我踢开广东seo网站推广代运营
  • 成立一个做网站的公司成本站长工具搜索
  • 网站设置黑白色百度信息流广告推广
  • 市级部门网站建设自评报告百度竞价推广方案
  • 淄博建站哪家好seo查询
  • 长安手机网站建设网站seo在线优化
  • 阿里云宝塔面板一键安装wordpress西宁网站seo
  • 佛山做营销型网站建设晋江怎么交换友情链接
  • seoul是什么意思seo网站优化方
  • 手工艺品外贸公司网站建设方案推广普通话宣传标语
  • 做网站遇到各种问题二级域名免费申请
  • 知乎怎么做自己网站推广产品产品宣传
  • 制作什么网站做毕业设计seo网站seo
  • 个人做的网站能备案吗深圳做网站的公司有哪些
  • app模板免费北京百度seo排名点击器
  • 电商平台管理系统邯郸网站优化
  • 外贸网站做的作用是什么seo监控
  • qq空间怎么做网站长沙seo智优营家
  • 下班后做兼职任务网站重庆seo排名收费
  • 如何修改asp网站栏目蚌埠seo外包
  • 做动效网站百度网盘客服人工电话95188