专业做招聘的网站有哪些微信授权登录第三方网站开发
- 作者: 五速梦信息网
- 时间: 2026年04月20日 05:05
当前位置: 首页 > news >正文
专业做招聘的网站有哪些,微信授权登录第三方网站开发,网站建设与制作视频教学,专业建设目标0. 简介 最近端到端已经是越来越火了#xff0c;以UniAD为代表的很多工作不断地在不断刷新端到端的指标#xff0c;比如最近SparseDrive又重新刷新了所有任务的指标。在端到端火热起来之前#xff0c;成熟的模块化自动驾驶系统被分解为不同的独立任务#xff0c;例如感知、…0. 简介 最近端到端已经是越来越火了以UniAD为代表的很多工作不断地在不断刷新端到端的指标比如最近SparseDrive又重新刷新了所有任务的指标。在端到端火热起来之前成熟的模块化自动驾驶系统被分解为不同的独立任务例如感知、预测和规划从而导致模块间信息丢失和错误累积。相比之下端到端范式将多任务统一到一个完全可微分的框架中从而允许以规划为导向进行优化。当然对于刚刚开始熟悉这一行的人来说最简单也最值得接触的就是UniAD这各项目这里最近受到优刻得的使用邀请正好解决了我在大模型和自动驾驶行业对GPU的使用需求。UCloud云计算旗下的Compshare的GPU算力云平台。他们提供高性价比的4090 GPU按时收费每卡2.6元月卡只需要1.7元每小时并附带200G的免费磁盘空间。暂时已经满足我的使用需求了同时支持访问加速独立IP等功能能够更快的完成项目搭建。 而且在使用后可以写对应的博客可以完成500元的赠金完全可以满足个人对GPU的需求。 对应的环境搭建已经在《如何使用共享GPU平台搭建LLAMA3环境LLaMA-Factory》介绍过了。对于自定义的无论是LibTorch还是CUDA这些都在《Ubuntu20.04安装LibTorch并完成高斯溅射环境搭建》这篇文章提到过了。这一章节我们来看一下怎么在平台上运行以UniAD为代表的端到端模型的。
UniAD环境部署 统一自动驾驶框架 (UniAD) 第一个将全栈驾驶任务整合到一个深度神经网络中的框架并可以发挥每个子任务以及各个模块的优势以执行安全的规划。 1.1 Miniconda 安装 首先第一步就是使用conda部署环境在优刻得当中是没有caonda的所以我们得先安装miniconda。通过 apt 在终端中运行以下命令确保所有系统包都是最新的。 sudo apt update sudo apt upgrade wget https://repo.anaconda.com/miniconda/Miniconda3-py39_4.9.2-Linux-x86_64.sh首先使用 SHA-256 检查下载文件的完整性 sha256sum Miniconda3-py39_4.9.2-Linux-x86_64.sh将输出的哈希值与官方给出的哈希值进行比较如果一致则为合法文件可以安装。 bash Miniconda3-py39_4.9.2-Linux-x86_64.sh安装过程中可以自定义安装路径比如可以选择安装在 /usr/local/miniconda3但是我们这里直接回车选择默认环境 为了能让所有用户都能使用Mniconda要修改 /etc/profile 文件 sudo vim /etc/profile添加如下代码 export PATH/home/ubuntu/miniconda3/bin:$PATH1.2 UniAD环境安装 首先启动conda conda create -n uniad python3.8 -y source activate conda deactivate conda activate uniad然后安装cuda和对应的torch、torchvision、torchaudio环境。安装torch1.11.0以下版本的,不然运行uniAD会报错 pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple pip install torch1.10.0cu113 torchvision0.11.0cu113 torchaudio0.10.0 –extra-index-url https://download.pytorch.org/whl/cu113然后安装mmcv、mmdet和mmseg。首先需要判断gcc以及CUDA是否在conda环境中安装了。这部分其实可以通过网站查询https://mmcv.readthedocs.io/zh-cn/v1.7.0/get_started/installation.html 进入https://mmdetection.readthedocs.io/en/v2.24.1/get_started.html找到mmcv2.7.0对应需安装 2.24.0版mmdetection 对于mmsegmenation在这里找到了对应的版本说明 #如果没有安装:
conda install -c omgarcia gcc-6 # gcc-6.2
#export PATHYOUR_GCC_PATH/bin:$PATH
Eg: export PATH/mnt/gcc-5.4/bin:$PATHexport CUDA_HOMEYOUR_CUDA_PATH/
Eg: export CUDA_HOME/usr/local/cuda然后安装对应版本的软件
sudo apt-get install build-essential sudo apt install python3.7-devpip install mmcv-full1.14.0
If its not working, try:
pip install mmcv-full1.4.0 -f https://download.openmmlab.com/mmcv/dist/cu111/torch1.9.0/index.htmlpip install mmdet2.14.0
pip install mmsegmentation0.14.11.3 UniAD代码安装编译 首先下载UniAD git clone https://github.com/OpenDriveLab/UniAD.git
国内可使用魔法下载
git clone https://mirror.ghproxy.com/https://github.com/OpenDriveLab/UniAD.git然后切换版本并编译mmdet3d
cd mmdetection3d git checkout v0.17.1 pip install scipy1.7.3 pip install scikit-image0.20.0 pip install -v -e .然后再编译UniAD cd ~ git clone https://github.com/OpenDriveLab/UniAD.git cd UniAD pip install -r requirements.txt2. 运行UniAD 首先需要下载一些预训练权重 mkdir ckpts cd ckpts# Pretrained weights of bevformer
Also the initial state of training stage1 model
wget https://github.com/zhiqi-li/storage/releases/download/v1.0/bevformer_r101_dcn_24ep.pth# Pretrained weights of stage1 model (perception part of UniAD) wget https://github.com/OpenDriveLab/UniAD/releases/download/v1.0/uniad_base_track_map.pth# Pretrained weights of stage2 model (fully functional UniAD) wget https://github.com/OpenDriveLab/UniAD/releases/download/v1.0.1/uniad_base_e2e.pth然后下载一些文件pkl文件可以在准备数据参考链接自己下载也可以直接运行脚本生成pkl文件。 方法1
官方直接提供数据集nuscenes.pkl文件下载
cd UniAD/data mkdir infos cd infos
train_infos
wget https://github.com/OpenDriveLab/UniAD/releases/download/v1.0/nuscenes_infos_temporal_train.pkl # val_infos wget https://github.com/OpenDriveLab/UniAD/releases/download/v1.0/nuscenes_infos_temporal_val.pkl 方法2 我们这里可以使用脚本下载nuscenes数据集
2 使用nuscenes数据集生成pkl文件
cd UniAD/data mkdir infos ./tools/uniad_create_data.sh
This will generate nuscenes_infostemporal{train,val}.pkl# 本人使用nuscenes-mini生成pkl文件
python tools/create_data.py nuscenes –root-path ./data/nuscenes –out-dir ./data/infos –extra-tag nuscenes –version v1.0-mini –canbus ./data/nuscenes# 3 准备motion_anchor cd UniAD/data mkdir others cd others wget https://github.com/OpenDriveLab/UniAD/releases/download/v1.0/motion_anchor_infos_mode6.pkl对应的目录结构为 UniAD ├── projects/ ├── tools/ ├── ckpts/ │ ├── bevformer_r101_dcn_24ep.pth │ ├── uniad_base_track_map.pth | ├── uniad_base_e2e.pth ├── data/ │ ├── nuscenes/ │ │ ├── can_bus/ │ │ ├── maps/ │ │ │ ├──36092f0b03a857c6a3403e25b4b7aab3.png │ │ │ ├──37819e65e09e5547b8a3ceaefba56bb2.png │ │ │ ├──53992ee3023e5494b90c316c183be829.png │ │ │ ├──93406b464a165eaba6d9de76ca09f5da.png │ │ │ ├──basemap │ │ │ ├──expansion │ │ │ ├──prediction │ │ ├── samples/ │ │ ├── sweeps/ │ │ ├── v1.0-test/ │ │ ├── v1.0-trainval/ │ ├── infos/ │ │ ├── nuscenes_infos_temporal_train.pkl │ │ ├── nuscenes_infos_temporal_val.pkl │ ├── others/ │ │ ├── motion_anchor_infos_mode6.pkl这里只介绍nuscenes数据集nuscenes下载地址。我们参考的是这一篇文章《Fast-BEV代码复现实践》
训练/评估模型 3.1 评估示例 请确保您已经准备好环境和 nuScenes 数据集。您可以通过如下命令简单地评估预训练的第一阶段track_map模型来进行检查 cd UniAD ./tools/uniad_dist_eval.sh ./projects/configs/stage1_track_map/base_track_map.py ./ckpts/uniad_base_track_map.pth 8# 对于使用 slurm 的用户
./tools/uniad_slurm_eval.sh YOUR_PARTITION ./projects/configs/stage1_track_map/base_track_map.py ./ckpts/uniad_base_track_map.pth 8如果一切准备妥当输出结果应如下所示
Aggregated results: AMOTA 0.390 AMOTP 1.300 RECALL 0.489注意如果使用不同数量的 GPU而不是 8 个进行评估结果可能会有些微差异。 3.2 GPU 要求 UniAD 分两阶段训练。第一阶段训练感知模块例如跟踪和地图第二阶段初始化第一阶段训练的权重并优化所有任务模块。建议在两个阶段的训练中都使用至少 8 个 GPU。使用更少的 GPU 进行训练也是可以的但会花费更多时间。 第一阶段训练需要大约 50 GB 的 GPU 内存在 8 个 A100 GPU 上运行 6 个 epoch 需要大约 2 天时间。 提示为了节省 GPU 内存您可以将 queue_length5 改为 3这会略微降低跟踪性能。然后训练大约需要 30 GB 的 GPU 内存适用于 V100 GPUs32GB 版本。 第二阶段训练需要大约 17 GB 的 GPU 内存在 8 个 A100 GPU 上运行 20 个 epoch 需要大约 4 天时间。 注意与第一阶段相比第二阶段需要的 GPU 内存要少得多因为在此阶段我们冻结了 BEV 编码器以专注于学习特定任务的查询。因此您可以在 V100 或 3090 设备上运行第二阶段训练。 3.3 训练命令
N_GPUS 是使用的 GPU 数量。建议 8。
./tools/uniad_dist_train.sh ./projects/configs/stage1_track_map/base_track_map.py N_GPUS# 对于使用 slurm 的用户
./tools/uniad_slurm_train.sh YOUR_PARTITION ./projects/configs/stage1_track_map/base_track_map.py N_GPUS3.4 评估命令
N_GPUS 是使用的 GPU 数量。建议 8。
如果使用不同数量的 GPU而不是 8 个进行评估结果可能会有些微差异。./tools/uniad_dist_eval.sh ./projects/configs/stage1_track_map/base_track_map.py /PATH/TO/YOUR/CKPT.pth N_GPUS# 对于使用 slurm 的用户
./tools/uniad_slurm_eval.sh YOUR_PARTITION ./projects/configs/stage1_track_map/base_track_map.py /PATH/TO/YOUR/CKPT.pth N_GPUS3.5 可视化命令
请参见 ./tools/uniad_vis_result.sh
python ./tools/analysis_tools/visualize/run.py --predroot /PATH/TO/YOUR/RESULTS.pkl --out_folder /PATH/TO/YOUR/OUTPUT --demo_video test_demo.avi --project_to_cam True4. nuscenes 数据集 由于nuscenes数据太大这里只测试nuscense提供mini版本, 下载map跟mini如下图点击红色框中US即可 注意map(v1.3) extensions压缩包下载后展开的三个目录basemap、expansion、prediction需要放在maps目录下而不是和samples、sweeps等目录平级NuScenes的train所有数据压缩包展开后samples的最底层的每个子目录下都是34149张图片sweeps里的子目录下的图片数量则是不等的例如163881、164274、164166、161453、160856、164266…等把没有标注的test数据的压缩包在nuscenes目录下展开后其里面samples和sweeps目录里子目录下的图片会自动拷贝到nuscenes/samples和nuscenes/sweeps下的对应子目录里去再次统计会看到samples下的每个子目录里的图片数量变成了40157而sweeps下的子目录里的图片数量则变成了193153、189171、189905、193082、193168、192699… 下载后得到2个压缩的文件 相机CAM有六个分别分布在前方Front、右前方Front Right、左前方Front Left、后方Back、右后方Back Right、左后方Back Left激光雷达LIDAR有1个放置在车顶TOP毫米波雷达有五个分别放置在前方Front、右前方Front Right、左前方Front Left、右后方Back Right、左后方Back Left。 解压到当前目录。解压得到nuScenes-map-expansion-v1.3与v1.0-mini两个目录, 把nuScenes-map-expansion-v1.3中的三个文件复制到v1.0-mini/map目录下。最终得到新v1.0-mini目录就行训练所需的数据集。这里将对应的数据信息给出来sample和sweeps下面主要是一些传感器的信息。详细的内容可以参考对Nuscenes数据集一无所知手把手带你玩转Nusences数据集这一篇文章
很久没有更新过了今天去官网看发现官方已经更新了数据结构和各个文件的组织关系比之前版本要清晰的多所以建议此部分直接移步官方数据标注说明。 官方提供的标注数据一共有15个json文件下面我也结合官方给的数据格式和自己实际应用的一些经验按自己的思路总结一下和官方一样直接就按照json文件来说了 1、category.json 这个json里面是所有出现在数据集中的物体的类别文件内容如下图所示 包含了三个key分别是 1token: 唯一标识 2name:物体类别名称 3description :类别详细描述。 其中物体类别一共有23类涵盖了行人、汽车、楼房、动物等等详细类别在这里。 2、attribute.json 描述了物体本身的一些状态比如行驶、停下等等内容如下图 包含三个key分别是 1token :唯一标识 2name :属性名称 3description :属性详细描述。 其中属性一共有8种每种属性的具体名称在这里 3、visibility.json 描述一个物体可视的程度即被遮挡、截断的程度。在kitti中就是那两个遮挡、截断的数字nuscences中用一个百分比来表示的内容如下图 包含三个key分别是 1token :唯一标识 2level:可视化级别是一个百分数越高则越清晰即识别越简单 3description: 详细描述。一共有4个等级分别是0到40%40到60%60到80%80到100%。 4、instance.json 以实例为单位记录某个实例出现的帧数、初始token、结尾token等内容如下图 包含5个key分别是 1token唯一表示 2category_token类别标识可以找到category.json里的对应类别 3nbr_annotations出现的数量即该实例在此数据集一共出现了多少帧 4fist_annotation_token第一帧的annotation标识在sample_annonation.json里可以找到对应标注下同 5last_annotation_token最后一帧的annotation标识 5、sensor.json 保存所有传感器的数据表包含一些简单的传感器类型内容如下图 包含3个key分别是 1token唯一标识 2channel位置 3modality类型camera、lidar、radar。 6、calibrated_sensor.json 一个比较大的数据表存放了所有场景下相机的标注信息包括了外参和内参。虽然说相机大部分场景下都是同一个但是相机外参难免会发生微调内参也会出现细微的变动因此对于每一个照片都有一个对应的相机标注内容如下图
包含5个key分别是 1token唯一标识 2sensor_token从sensor.json中对应得到相机类型 3translation相机外参偏移矩阵单位为米 4rotation相机外参四元数旋转角 5camera_intrinsic相机内参似乎只有camera会有。 两个相机外参都是相对于ego也就是相机所在车的坐标系的参数即一个相对量这里在ego_pose.json中还会提到。 7、ego_pose.json 相机所在车的标注信息内容如下图
包含4个key分别是 1token唯一标识 2timestampUnix时间戳应该是保存数据表时候的一个时间戳怀疑与图片名的后缀一一对应没有详细考证 3rotation车辆外参四元数旋转角 4translation车辆外参偏移矩阵单位为米。 ego车辆还有照片中其他车辆sample_annotation.json的外参参考坐标系是世界坐标系世界坐标系的原点是lidar或radar定义的没有什么规律所以要求其他车辆的相机坐标系坐标就需要在这三个外参ego、camera、sample换算一下具体方法下面会讲。 8、log.json 一些场景、日期的日志信息大部分情况没有太大作用内容如下图
包含5个key分别是 1token唯一标识 2logfile日志文件 3vehicle车辆名称咱也不知道是个啥 4data_captured拍摄日期 5location拍摄地点新加坡和波士顿。 9、scene.json 场景数据表Nuscenes的标注集包括850段场景视频每个场景20s这个表标注了该场景的一些简单描述和出现的头尾车辆token内容如下图
包含7个key分别是 1token唯一标识 2log_token日志token从log.json索引出对应日志 3nbr_samples场景中出现的sample的数量就是该场景下一共出现过多少个标注的物体同一物体就算一次 4first_sample_token第一个sample的token从sample.json中可以索引出唯一sample下同 5last_sample_token场景下的最后一个sample 6name场景名 7description场景描述。 10、sample.json 照片的标注以照片为单位一张照片对应一个sample内容如下
包含5个key分别是 1token唯一标识 2timestamp时间戳 3prev上一张照片token 4next下一张照片的token 5scene_token场景标识从scene.json中对应唯一场景。 11、sample_data.json sample对应的简单信息不包括标注可以索引出同一个物体前后帧的信息内容如下图
包含12个key分别是 1token唯一标识 2sample_token可以从sample.json中索引出唯一对应的sample 3ego_pose_token对应的ego车辆的token可以从ego_pose中索引出来据我观察1和3都是相同的 4calibrated_sensor_token可以从calibrated_sensor.json中索引出对应的相机外参和内参3和4就对应索引出上文所说的ego和camera的外参sample的外参并不在这个表里而是在sample_annotation.json中见下文 5timestamp时间戳 6fileformat文件格式照片和雷达格式 7is_key_frame是否是关键帧Nuscenes中每秒两帧关键帧提供标注信息 8heihgt照片像素高度似乎只有jpg才会有都是900 9width同上像素宽度都是1600 10filename照片名 11prev上一个sample_data的token从本数据表中可以索引出对应的数据是同一个物体的上一个标注即上一次出现这个物体是在哪里下同 12next下一个sample_data的token。 12、sample_annotation.json 保存了物体的标注信息内容如下图
包含了12个key分别是 1token唯一标识 2sample_token从sample.json中索引出唯一对应的sample 3instance_token从instance.json中索引出唯一对应的instance 4visibility_token从visibility.json中索引出唯一对应的visibility 5attribute_token从attribute.json中索引出唯一对应的attribute; 6translation物体外参偏移矩阵单位为米 7size物体大小单位为米顺序为宽、长、高 8rotation物体外参四元数旋转矩阵 9prev同一个物体上一帧标注的token在本数据表中索引出唯一对应的标注信息下同 10next下一帧的标注token 11num_lidar_ptsbbox中出现的lidar点数量下同 12num_radar_ptsbbox中出现的radar点数量。 不是搞lidar或radar的所以11和12这两个量并不是很懂只知道测试的时候需要保证这两个至少有一个是非零的。 13、map.json 地图相关的一些标注信息数据集的map文件夹里面会包括map的图片内容如下图
包含4个key分别是 1category地图类别似乎都是sematic的因为提供的地图图片都是分割的Nuscenes本身也包括了道路分割的数据集 2token唯一标识 3filename对应的地图文件名 4log_tokens地图中的日志文件。 14、image_annotations.json 这个表是没有出现在官方的标注格式说明中的可以看出还是有一点冗余的但是如果不用官方接口自己写dataloader还是很重要的本表包括了2DBbox等信息内容如下图
包含12个key分别是 1attribute_token从attribute.json中索引出唯一对应的attribute 2bbox_corners2DBbox像素坐标分别是x1,y1,x2,y2 3category_name类别名称谢天谢地终于不用索引了 4filename图片名 5instance_token从instance.json中索引出唯一对应的instance 6next下一个物体的信息这个应该是没有规律的最多是按照顺序来依次记录每个出现的物体通过这个文件可以遍历整个数据集中的所有物体 7num_lidar_ptsbbox中出现的lidar点数量下同 8num_radar_ptsbbox中出现的radar点数量 9prev上一个物体同6 10sample_annotation_token从sample_annotation.json中索引出唯一对应的sample_annotation 11sample_data_token从sample_data.json中索引出唯一对应的sample_data 12visivility_token从visibility.json中索引出唯一对应的visibility。
对于自己制作NuScene数据集可以参考https://github.com/linClubs/nuscenes2kitti、https://github.com/linklab-uva/rosbag2nuscenes参考链接 https://blog.csdn.net/weixin_44491423/article/details/127023092 https://blog.csdn.net/h904798869/article/details/138255214 https://blog.csdn.net/XCCCCZ/article/details/134315977?spm1001.2014.3001.5501 https://blog.csdn.net/qq_29679623/article/details/103698313
- 上一篇: 专业做英文网站的公司个人在百度上发广告怎么发
- 下一篇: 专业做制作网站腾讯云服务器可以干嘛
相关文章
-
专业做英文网站的公司个人在百度上发广告怎么发
专业做英文网站的公司个人在百度上发广告怎么发
- 技术栈
- 2026年04月20日
-
专业做鞋子的网站网站导航是什么意思
专业做鞋子的网站网站导航是什么意思
- 技术栈
- 2026年04月20日
-
专业做消防工程师的正规网站外包岗位
专业做消防工程师的正规网站外包岗位
- 技术栈
- 2026年04月20日
-
专业做制作网站腾讯云服务器可以干嘛
专业做制作网站腾讯云服务器可以干嘛
- 技术栈
- 2026年04月20日
-
专用汽车网站模板济南企业网站设计公司
专用汽车网站模板济南企业网站设计公司
- 技术栈
- 2026年04月20日
-
专用主机网站建设网站开发和运行模式的搭建
专用主机网站建设网站开发和运行模式的搭建
- 技术栈
- 2026年04月20日






