(10-3-01)智能行为决策算法:基于自动驾驶大模型的车辆轨迹预测系统(1)

10.3  基于自动驾驶大模型的车辆轨迹预测系统

LyftModel 是指来自 Lyft Level 5 Research 的一个用于自动驾驶的深度学习模型。Lyft 是一家美国的科技公司,致力于开发自动驾驶技术,他们的 Level 5 Research 部门专注于研究和开发自动驾驶技术。LyftModel 很可能是他们开发的一种用于自动驾驶的深度学习模型,用于实现自动驾驶系统中的各种功能,例如感知、规划、控制等。

实例10-5:车辆轨迹预测系统(codes/7/lyft-eda-training.ipynb

10.3.1  项目介绍

本项目使用开源的Lyft Level 5 Autonomous Vehicle数据集,通过加载、理解、可视化、抽象化数据,构建并训练了一个基于PyTorch的卷积神经网络(LyftModel),并实现了对自动驾驶场景中车辆轨迹的预测。通过数据处理、模型构建和训练,项目提供了全面的解决方案,包括数据增强和天气效果的引入,以提高模型性能。最终,通过模型推断和预测,实现了对未来车辆轨迹的准确预测,为自动驾驶领域的实际应用提供了实用性指导。

本项目的实现步骤如下所示。

  1. 数据加载和理解:通过使用Lyft Level 5数据集,项目介绍了如何加载并理解自动驾驶场景中的数据,包括车辆、道路、轨迹等。
  2. 数据可视化:使用lyft-l5kit的可视化工具,项目展示了如何在地图上可视化自动驾驶场景,以更好地理解数据。
  3. 数据处理和抽象:介绍了如何使用Lyft的l5kit库中的数据抽象类,将原始数据处理为模型可以使用的形式,包括使用rasterizer生成栅格图像。
  4. 模型构建:使用PyTorch构建了一个简单的卷积神经网络(CNN)模型(LyftModel),并介绍了如何调整模型的输入和输出以适应任务需求。
  5. 模型训练:使用训练数据集,项目演示了如何在Lyft数据集上训练模型,包括设置训练参数、准备数据加载器、定义损失函数等。
  6. 模型评估:介绍了模型评估的方法,包括使用训练和验证损失,以及可视化目标轨迹等。
  7. 模型推断和预测:展示了如何使用已经训练好的模型进行推断,以生成对未来车辆轨迹的预测。
  8. 数据增强:介绍了如何使用albumentations库进行数据增强,包括CutOut、CoarseDropout等,以提高模型的鲁棒性。
  9. 天气增强:展示了如何使用albumentations库添加天气效果的增强,包括雨、雾和雪。

本项目通过一系列的步骤和代码,全面介绍了Lyft Level 5 Autonomous Vehicle数据集的处理、建模和训练过程,是一个深入学习自动驾驶场景分析的实用教程。

10.3.2  准备工作

(1)导入与Lyft Level 5 Kit(L5Kit)相关的库,并设置了数据路径。为自动驾驶车辆的运动预测项目做了准备,包括数据加载、可视化和处理感知标签等功能。

import matplotlib.pyplot as plt
 
import numpy as np
 
from l5kit.data import ChunkedDataset, LocalDataManager
from l5kit.dataset import EgoDataset, AgentDataset
 
from l5kit.rasterization import build_rasterizer
from l5kit.configs import load_config_data
from l5kit.visualization import draw_trajectory, TARGET_POINTS_COLOR
from l5kit.geometry import transform_points
from tqdm import tqdm
from collections import Counter
from l5kit.data import PERCEPTION_LABELS
from prettytable import PrettyTable
import os
PATH_TO_DATA = "../input/lyft-motion-prediction-autonomous-vehicles"
os.environ["L5KIT_DATA_FOLDER"] = PATH_TO_DATA

(2)在cfg配置中定义用于自动驾驶车辆运动预测项目的关键参数,包括模型架构、数据加载设置、栅格化参数、训练和验证数据集配置,以及训练参数。这些参数将被用于配置和训练模型,以实现对车辆轨迹的准确预测。

cfg = {
    'format_version': 4,  # 配置文件格式版本
 
    'model_params': {
        'model_architecture': 'resnet50',  # 使用的模型架构
 
        'history_num_frames': 0,  # 过去帧数
        'history_step_size': 1,  # 过去帧之间的步长
        'history_delta_time': 0.1,  # 过去帧之间的时间间隔
 
        'future_num_frames': 50,  # 预测的未来帧数
        'future_step_size': 1,  # 未来帧之间的步长
        'future_delta_time': 0.1  # 未来帧之间的时间间隔
    },
 
    'raster_params': {
        'raster_size': [224, 224],  # 栅格图像大小
        'pixel_size': [0.5, 0.5],  # 像素大小
        'ego_center': [0.25, 0.5],  # 智能驾驶汽车在栅格图像中心的位置
        'map_type': 'py_semantic',  # 地图类型
        'satellite_map_key': 'aerial_map/aerial_map.png',  # 卫星图像路径
        'semantic_map_key': 'semantic_map/semantic_map.pb',  # 语义地图路径
        'dataset_meta_key': 'meta.json',  # 数据集元数据路径
        'filter_agents_threshold': 0.5  # 过滤代理的阈值
    },
 
    'train_data_loader': {
        'key': 'scenes/train.zarr',  # 训练数据集路径
        'batch_size': 32,  # 批量大小
        'shuffle': True,  # 是否打乱数据
        'num_workers': 4  # 数据加载器的工作进程数
    },
 
    'val_data_loader': {
        'key': 'scenes/validate.zarr',  # 验证数据集路径
        'batch_size': 12,  # 批量大小
        'shuffle': False,  # 是否打乱数据
        'num_workers': 4  # 数据加载器的工作进程数
    },
 
    'test_data_loader': {
        'key': 'scenes/test.zarr',  # 测试数据集路径
        'batch_size': 8,  # 批量大小
        'shuffle': False,  # 是否打乱数据
        'num_workers': 4  # 数据加载器的工作进程数
    },
 
    'train_params': {
        'checkpoint_every_n_steps': 5000,  # 每隔多少步保存一次模型
        'max_num_steps': 1000  # 最大训练步数
    }
}

未完待续

  • 8
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码农三叔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值