华为云用户手册

  • 指示标志牌前行为(Mandatory Sign)检测 指示标志牌前行为检测的目的是判断主车在这些指示标志牌前的行为是否合理,本设计考虑的指示标志牌有: 左转指示牌 右转指示牌 直行指示牌 左转直行指示牌 右转直行指示牌 左转右转指示牌 靠左行驶指示牌 靠右行驶指示牌 当主车前端超过左转指示牌, 并且主车不存在左转行为, 则左转指示牌前行为检测不通过。 当主车前端超过右转指示牌, 并且主车不存在右转行为, 则右转指示牌前行为检测不通过。 当主车前端超过直行指示牌, 并且主车不存在直行行为, 则直行指示牌前行为检测不通过。 当主车前端超过左转直行指示牌, 并且主车不存在左转直行行为, 则左转直行指示牌前行为检测不通过。 当主车前端超过右转直行指示牌, 并且主车不存在右转直行行为, 则右转直行指示牌前行为检测不通过。 当主车前端超过左转右转指示牌, 并且主车不存在左转右转行为, 则左转右转指示牌前行为检测不通过。 该指标关联的内置可视化时间序列数据为:暂无。 该指标的异常时间点记录类型为:POINT_TYPE_REGION。 父主题: 内置评测指标说明
  • 模型文件说明(训练) Octopus模型管理模块,支持用户上传模型,并将其用于模型评测、模型编译任务。如果需要将模型用于内置评测模板评测,除模型文件外,需另外包含推理启动文件: customer_inference.py 仅当需要使用内置评测指标计算时需要添加推理启动文件,文件名称可自定义,将该文件置于模型目录下。具体要求请参见模型推理文件。 为了显示以上文件的使用流程,可参考如下图示: 模型文件基本要求 模型推理文件 父主题: 模型管理
  • 初始动作 assign_init_position 动作主体:车辆vehicle 或行人pedestrian . 结束时间:当动作主体actor 到达指定的位置坐标时,动作结束. 是否支持modifier:是 参数:参数如下表. 表1 assign_init_position参数 Parameter Type Mandatory Description position pose_3d no Desired position assigned by the user. assign_init_position支持设置绝对位置和相对位置,设置相对位置时使用 修饰器position和修饰器lane来给出相对值. 当初始位置需要车辆转换朝向时,通过设置pose_3d的orientation来设定朝向,以与所在车道朝向一致,例如车辆所在车道和road0呈90°夹角时,设置orientation的yaw为1.57rad,否则车辆启动后会有转向行为,影响场景的正常执行. 设置初始位置时所采用的地图元素必须是对应的地图中有的元素,比如设置绝对位置create_odr_point('0', '-4', 5.0m, 0.0m)时,地图上必须有id为'0'的road,该road上必须有lane_id为 '-4'的lane,该lane至少有5.0m以上的长度.如果设置的初始位置找不到地图中的对应元素,将泛化出无效的场景. 绝对位置 m_odr: odr_point = map.create_odr_point('0', '-4', 5.0m, 0.0m) m_orientation: orientation_3d with: keep(it.roll == 0.0rad) keep(it.pitch == 0.0rad) keep(it.yaw == 1.57rad) init_position: pose_3d with: keep(it.odr_point == m_odr) keep(it.orientation == m_orientation) Ego.assign_init_position(position: init_position) 相对位置 cut_in_vehicle.assign_init_position() with: lane(lane: raletive_lane_id, side_of: Ego, side: left) position(distance: 85.0m, behind: Ego) 父主题: 动作 Actions
  • split匝道分流 用途:创建split高速匝道合流的静态场景(地图) 参数:参数如下表. 表1 split参数 Parameter Type Mandatory Description lane_width length yes 每个车道宽度. left_lane_num int yes 左侧车道数量. right_lane_num int yes 右侧车道数量. ramp_lane_num int yes 匝道车道数量. main_speed speed yes 主路的限速值. ramp_speed speed yes 匝道的限速值. radius_of_curvature length yes 匝道的曲率半径. ramp_length length yes 匝道的长度. road_aids_type road_aids_type yes 道路辅助设施类型,匝道分流时匝道和主路的连接方式,目前共有三种:DType-1(直接式1)、DType-2(直接式2)和PType(平行式). 参数取值范围: lane_width: length = [3m..4m] left_lane_num: int = [0, 1, 2, 3, 4] right_lane_num: int = [3, 4] ramp_lane_num: int = [1, 2] main_speed: speed = [80kph..120kph] ramp_speed: speed = [40kph..60kph] radius_of_curvature: length = [150m..1000m] ramp_length: length = [200m..500m] road_aids_type: road_aids_type = ["DType-1", "DType-2", "PType"] keep创建 my_road_aids_type: road_aids_type = "DType-1" my_merge: merge with: keep(it.lane_width == 3m) keep(it.left_lane_num == 0) keep(it.right_lane_num == 3) keep(it.ramp_lane_num == 1) keep(it.main_speed == 120kph) keep(it.ramp_speed == 60kph) keep(it.radius_of_curvature == 200m) keep(it.ramp_length == 250m) keep(it.road_aids_type == my_road_aids_type) create创建 my_road_aids_type: road_aids_type = "DType-1" my_merge: merge = scenery.create_merge(lane_width: 3m, left_lane_num: 0, right_lane_num: 3, main_speed: 120kph, ramp_speed: 60kph, radius_of_curvature: 200m, ramp_length: 250m, road_aids_type: my_road_aids_type) merge和split场景使用的road_aids_type为enum类型,详见附录Enum lists的road_aids_type一节 在road_aids_type为"DType-2"时,right_lane_num必须大于ramp_lane_num. 如果希望车道属性需要搭建同一方向,不能存在left和right属性同时出现,可以将left_lane_num设置为0. 父主题: 领域模型设计
  • 数据处理作业队列相关操作 在“作业队列”页签,还可以进行以下操作。 表1 作业队列相关操作 任务 操作步骤 置顶作业 单击操作栏中的“置顶”,即可将作业调整至队列中最高优先级。 置底作业 单击操作栏中的“置底”,即可将作业调整至队列中最低优先级。 上移作业 单击操作栏中的“上移”,即可将作业调整至队列中上一级。 下移作业 单击操作栏中的“下移”,即可将作业调整至队列中下一级。 更新作业优先级 勾选单个或多个作业。 单击“更新优先级”,输入[-50,50]的整数,数字越大,优先级越高。 单击“确定”,优先级更改成功。相同优先级的任务,作业队列更新时间越早,优先级越高。 搜索作业 在搜索输入框中输入“作业ID”,按回车键即可查询。
  • 考试记录 当项目关联了考试题库时,系统会自动在考试系统生成待考试记录。项目管理考试题录操作请参考关联题库。 图3 考试记录 管理员可查看考试记录,并进行以下操作。 流程 操作 编辑考试记录 在考试记录列表,单击“考试记录”,单击操作栏中的“编辑”,可根据情况编辑考试记录的状态。 复核考试记录 在考试记录列表,单击“考试记录”,单击操作栏中的“复核”。 单击“确认”,单击图片上的“复核”,对分数进行复核。 说明: 当考试记录的状态为终态(判卷失败、已通过、失败)时,方可进行复核操作。 删除考试记录 在考试记录列表,单击“考试记录”,单击操作栏中的“删除”,可根据情况删除考试记录的状态。 说明: 当考试记录的状态为终态(判卷失败、已通过、失败)时,方可进行删除操作。 当考试记录生成后,由对应的标注员或者审核员登录系统,单击“考试记录”名称,根据提示就可以进行考试。
  • 延时评测 仿真器输出的仿真过程数据会按照OSI的GroundTruth格式存储为pb文件,根据创建任务配置时是否选择使用datahub,该仿真pb有两种格式: 使用datahub时,该仿真pb的每帧数据是GroundTruth结构,然后按照OSI标准推荐的存储格式,先按小端顺序存储4个字节,该4个字节表示下一帧GroundTruth总的字节数,然后继续4个字节,更下一帧GroundTruth的字节数,以此类推。 未使用datahub时,该仿真pb按照sim_osi.proto定义的格式进行存储,所有仿真数据帧GroundTruth存储到一个列表字段“frames”中。 仿真平台定义了sim_osi.proto和eva.proto,用于支持用户自定义评测的功能,具体的proto字段说明见请联系接口人获取仿真服务的proto协议。
  • catalog 目录catalog可使一些元素得以重复使用,在目录catalog中参数化类型是可维护的,并且可以在场景文件中 被引用仿真器A尚未支持使用catalog. catalog list ENUM_CATALOG = ("vehicle_catalog", "controller_catalog", "pedestrian_catalog", "misc_object_catalog") vehicle_catalog:场景中可复用的车辆类型列表. controller_catalog:场景中可复用的控制器类型列表. pedestrian_catalog:场景中可复用的行人类型列表. misc_object_catalog:场景中可复用的杂项对象类型列表. 父主题: Enum Lists
  • 模型推理启动文件实例 如果要将自定义模型用于评测,启动文件请参考如下示例,以2D目标检测为例: # -*- coding: utf-8 -*- """ 用户自定义启动脚本,用于模型评测 """ # 用户推理入口,函数名不限 def detect(image_dir, output_dir): # 用户处理脚本,此处省略 # 示例推理过程,用户也可根据dataloader等完成推理过程 for img in os.listdir(image_dir): img_path = os.path.join(image_dir, img) img_data = cv2.imread(img_path) detections = model.predict(img_data) # 将单个样本的推理结果保存为如下的json文件 results = [] for x1, y1, x2, y2, score, cls_pred in detections: bbox = {} bbox["xmin"] = int(x1) bbox["ymin"] = int(y1) bbox["xmax"] = int(x2) bbox["ymax"] = int(y2) results.append({ "name": classes[int(cls_pred)], "score": f"{score:0.4f}", "bndbox": bbox }) # 保证推理结果文件与图片(样本)同名存入结果路径(保存为Octopus-2d检测推理格式) sample_dir = os.path.join(output_path, os.path.basename(image_path).split(".")[0]) os.makedirs(sample_dir, exist_ok=True) json_file = os.path.join(sample_dir, os.path.basename(image_path).split(".")[0] + ".json") json.dump(results, open(json_file, "w")) # 推理脚本入口 if __name__ == '__main__': # 获取数据集路径与推理结果存放路径,用户根据命令行参数获取数据集位置和推理结果存储位置 parser = argparse.ArgumentParser() parser.add_argument("--image_dir", type=str, default=os.getenv("DATASET"") parser.add_argument("--output_dir", type=str, default=os.getenv("INFER_RESULT") args, unparsed = parser.parse_known_args() # 接收数据路径合结果路径后,调用推理服务,根据用户实际推理方法或文件进行替换 detect(args.image_dir, args.output_dir)
  • 触发器与触发条件 Trigger and condition 用户可以使用wait+触发条件的方式来设置动作的触发条件condition ,可以使用的触发条件有: elapsed 、 object_distance、 point_distance 、time_to_collision、 time_headway 、 speed ,和acceleration . 如果不满足等待时长或触发条件,后续动作将无法执行. 使用wait来设定触发条件condition时,必须在serial:下执行,否则wait无效. 触发条件 elapsed 触发条件 object_distance 触发条件 point_distance 触发条件 time_to_collision 触发条件 time_headway 触发条件 speed 触发条件 acceleration 父主题: 代码样例 Code Examples
  • 编译镜像相关操作 在“编译镜像”列表,可对镜像进行以下操作。 表1 编译镜像相关操作 任务 操作步骤 查询镜像 选择"编译镜像名称"或"芯片名称",在搜索输入框中输入搜索条件,按回车键即可查询。 查看镜像详情 单击镜像名称,查看镜像详情。 镜像详情:镜像ID、名称、描述、状态、芯片名称、引擎名称、创建时间、更新时间、Boot文件路径等。 参数详情:参数列表和环境变量的参数详情。 删除镜像 单击操作栏的“删除”,删除镜像。 编辑镜像 单击操作栏的“编辑”,可修改镜像信息。
  • 初始动作 acquire_position_init 动作主体:车辆vehicle或行人pedestrian 结束时间:当动作主体actor 获取目标位置position 时,动作结束. 是否支持modifier:否 参数表: 参数如下表,pose_3d是point和orientation的组合结构, point可以使用xyz_point或 odr_point或road_point中的任意一个,orientation非必选项. 表1 acquire_position_init参数 Parameter Type Mandatory Description target pose_3d yes target position. 目标位置必须在地图设定的道路上,且是可达的. xyz_point,有方向要求 m_x: length = 0.0m m_xyz: xyz_point = map.create_xyz_point(x: m_x, y: 10.0m ,z: 0.0m) m_heading: angle = 1.57rad m_orientation: orientation_3d with: keep(it.roll == 0.0rad) keep(it.pitch == 0.0rad) keep(it.yaw == m_heading) m_position: pose_3d with: keep(it.xyz_point == m_xyz) keep(it.orientation == m_orientation) Ego.acquire_position_init(target: m_position) odr_point,无方向要求 m_odr: odr_point = map.create_odr_point(road_id: '0', lane_id: '-4', s: 5.0m, t: 0.0m) m_position: pose_3d with: keep(it.odr_point == m_odr) Ego.acquire_position_init(target: m_position) road_point,无方向要求 m_road: road_point = map.create_road_point(road_id: '0', s: 5.0m, t: 0.0m) m_position: pose_3d with: keep(it.road_point == m_road) Ego.acquire_position_init(target: m_position) 父主题: 动作 Actions
  • 警告标志前行为(Warning Sign)检测 警告类交通标志前行为检测的目的是判断主车在各种警告类标志前行为是否合理,主要包括两个方面的检测: 在警告类标志前车速是否太大 在警告类标志前是否有明显的加速行为 本设计认为当主车的车速大于或者加速度大于时,警告类标志前行为检测不通过。 该指标关联的内置可视化时间序列数据为:暂无。 该指标的异常时间点记录类型为:POINT_TYPE_REGION。 父主题: 内置评测指标说明
  • 购买服务 登录Octopus服务平台,在左侧菜单栏中单击“总览”。 单击购买服务入口。 图1 购买服务入口 选择需要购买的服务基础版(以购买“八爪鱼自动驾驶云服务-基础版”为例),配置购买时长、购买个数、是否自动续费和仿真器类型。 图2 购买服务 购买了八爪鱼自动驾驶云服务-基础版后,不支持再购买其他云服务基础版。 购买了单独云服务模块基础版,不支持再购买八爪鱼自动驾驶云服务-基础版。 已购买的服务会在服务后打上“已购买”的标签,不支持到期前的重复购买。 合规服务依赖数据服务,在购买合规云服务-基础版前,需先购买数据云服务-基础版。 单击“下一步”,购买存储扩容包、通用处理节点和AI处理节点,请详见购买扩展资源包。 单击“下一步:确认配置”,并勾选“我已阅读并同意《八爪鱼自动驾驶云服务声明》”。 图3 确认配置 单击“去支付”,界面生成支付订单,可根据自身情况选择支付方式,确认付款。
  • 平顺性(Ride Comfort)检测 平顺性检测通常指汽车的垂向平顺性。平顺性用加速度均方根值来衡量。 加速度均方根值计算公式如下所示。 表示变量的均方根值,表示第个值,表示值的个数。 汽车的垂向平顺性是由悬架系统决定的,自动驾驶算法对垂向平顺性几乎没有影响,其影响的是车辆的纵向和侧向平顺性。 因此,本设计平顺性检测从纵向平顺性和侧向平顺性进行考量。 平顺性检测考虑的是整个仿真时间段的加速度均方根值。当纵向或侧向加速度均方根值大于,则认为对应的纵向/侧向平顺性检测不通过。 纵向平顺性关联的内置可视化时间序列数据为:accX。横向平顺性关联的内置可视化时间序列数据为:accY。 该指标的异常时间点记录类型为:POINT_TYPE_ALL。 父主题: 内置评测指标说明
  • merge 简述:地图场景为匝道合流.主车Ego在主道行驶,初始速度为Ego_InitSpeed_Ve0,Ego设定了目标在主道右侧2车道上的目标点Target_position,仿真开始后激活Ego控制器(控制器会影响Ego去往Target_position的寻路算法,但目前仿真器B尚不支持寻路动作acquire_position),从车side_vehicle在匝道行驶,初始速度为SideVehicle_InitSpeed_Ve0.side_vehicle从匝道汇入主道.控制器有时会根据side_vehicle的位置更改主车Ego的速度. 地图文件(odr) scenario Merge: m_scene: scenery lane_width: length = [3m, 4m] radius_of_curvature: length = [200m..1000m] ramp_lane_num: int = 1 ramp_length: length = [200m..300m] main_speed: speed = 120kph ramp_speed: speed = 60kph road_aids_type: road_aids_type = ["DType-1", "DType-2", "PType"] merge_1: merge with: keep(it.lane_width == lane_width) keep(it.left_lane_num == 0) keep(it.right_lane_num == 2) keep(it.ramp_lane_num == ramp_lane_num) keep(it.main_speed == main_speed) keep(it.ramp_speed == ramp_speed) keep(it.radius_of_curvature == radius_of_curvature) keep(it.ramp_length == ramp_length) keep(it.road_aids_type == road_aids_type) 场景文件(osc) import standard scenario Merge: # map map: map map.set_map_file("./merge.odr") # parameter Ego_InitSpeed_Ve0: speed = [90kph..110kph] Ego_InitPosition_LaneId: string = ['-1', '-2'] Ego_InitPosition_s: length = [0m..30m] Ego_Odr: odr_point = map.create_odr_point(road_id: '10', lane_id: Ego_InitPosition_LaneId, s: Ego_InitPosition_s, t: 0.0m) Ego_InitPosition: pose_3d with: keep(it.odr_point == Ego_Odr) SideVehicle_InitSpeed_Ve0: speed = [45kph, 50kph, 55kph] SideVehicle_s: length = [30.0m..80.0m] SideVehicle_Odr: odr_point = map.create_odr_point(road_id: '1', lane_id: '-1', s: SideVehicle_s, t: 0.0m) SideVehicle_InitPosition: pose_3d with: keep(it.odr_point == SideVehicle_Odr) Target_xyz: xyz_point = map.create_xyz_point(x: 530m, y: -2m ,z: 0.0m) Target_position: pose_3d with: keep(it.xyz_point == Target_xyz) Duration: time = 100s # entity Ego: vehicle with: keep(it.name == "Saimo") keep(it.initial_bm == "默认驾驶员") side_vehicle: vehicle with: keep(it.name == "Saimo") keep(it.initial_bm == "默认驾驶员") # storyboard do parallel(duration: Duration): # init Ego.assign_init_position(position: Ego_InitPosition) Ego.assign_init_speed(Ego_InitSpeed_Ve0) side_vehicle.assign_init_position(position: SideVehicle_InitPosition) side_vehicle.assign_init_speed(SideVehicle_InitSpeed_Ve0) Ego.activate_controller(true, true) Ego.acquire_position(target: Target_position) 父主题: 种子地图的逻辑场景样例(仿真器B)
  • 训练服务简介 训练服务模块上承接数据服务和标注服务两大模块,为自动驾驶研发提供方便易用的模型训练和评测平台,让用户无需过多关注底层资源,聚焦算法和模型开发。用户可上传符合Octopus平台规范的训练算法,将成熟的算法创建训练任务生成训练模型。此外,训练服务提供多种模型评测指标,从多维度衡量模型质量。让自动驾驶研发更便捷。训练服务的开发流程如下: 图1 训练服务的开发流程 训练服务操作引导如下: 算法管理:负责管理用户上传的符合平台规范的算法。 训练任务:用户选择训练算法和训练数据集创建训练任务进行训练。 模型评测:负责管理评测脚本、评测任务和评测对比任务。 编译管理:包含编译任务和编译镜像。训练产生的模型版本,往往不可直接被车载芯片识别,需要经过编译工具,模型编译成车载芯片识别的产物。 父主题: 训练服务
  • 购买扩展资源包 购买扩容包和节点时,需要事前购买相对应的服务。 登录Octopus服务平台,在左侧菜单栏中单击“总览”。 单击购买服务入口。 图1 购买入口 选择需要购买的扩展资源包(以购买“同时在线用户数扩容包”为例),设置购买时长、购买个数以及是否自动续费。 图2 购买“同时在线用户数扩容包” 单击“下一步”,按需选择存储扩容包、通用处理节点和AI处理节点,此处以购买“自动驾驶数据管理缓存扩容包”和“octopus计算型CPU(16u32g)专属实例”为例。 图3 购买扩容包和通用处理节点 单击“下一步:确认配置”,并勾选“我已阅读并同意《八爪鱼自动驾驶云服务声明》”。 图4 确认配置 单击“去支付”,界面生成支付订单,可根据自身情况选择支付方式,确认付款。
  • 查看和下载任务日志 标注任务运行的过程中生成任务日志,平台提供了日志的查看以及下载功能。 单击任务名称,在该任务的详情页面,单击"日志",可查看该任务日志列表及日志详情。支持下载至本地。如果日志较多,可在搜索框中输入关键字,查找指定日志内容。搜索内容为当前已加载内容 ,最多为1M(首次加载时)。如图,在日志服务页面中的日志列表部分详细展示了该任务包含的日志文件的大小以及最近写入时间。单击文件后的"查看",该文件的详细执行过程则在日志详情部分展示。也可在日志文件后的"操作"栏,单击"下载",即可将该日志文件下载到本地查看。 图5 日志
  • 回收站 Octopus平台支持用户删除数据包,执行删除操作的数据包将暂存回收站,等待用户可根据项目情况及时恢复或永久删除。具体操作参考如下: 在“数据包”页签,单击指定数据包操作栏内的“删除”。 确认后单击“确认删除”,删除后的数据包将放入回收站。 图1 删除数据包 查看数据包状态。 单击“回收站”,删除后的数据包状态为“待处理”,此状态下的数据包还可进行以下操作: 还原 :恢复该数据包,参考步骤3。 永久删除:该数据包及关联的任务将会被Octopus平台永久删除,参考步骤4。 删除后不可恢复且不能再被使用,请谨慎操作。 恢复数据包。 单击操作栏中“还原”,删除后的数据包将从回收站中恢复至数据包列表,可继续用于回放、标注等操作。 永久删除数据包。 单击操作栏中“永久删除”,确认无误后单击“删除”。 图2 永久删除 查询数据包。 可按照“数据量”、“收集时间”进行列表排序,也可通过“数据包ID”、“数据包名称”、“车辆名称”、“收集时间段”,以及关键字查找目标数据包。 父主题: 源数据包
  • 车道保持(Lane Keeping)检测 车道保持检测的目的是判断主车在行使过程中能否很好地沿车道中心线行使。 车道保持检测分为两个指标: 偏移车道中心线距离检测 偏移车道中心线横摆角检测 偏移车道中心线距离检测是指主车的质心相对于车道中心线的垂直距离,当该偏移距离大于某一阈值时(本设计取0.3m,该阈值可以用户自定义),则偏移车道中心线距离检测不通过。 偏移车道中心线横摆角检测是指主车行使时速度方向与车道中心线的夹角,当该夹角大于某一阈值时(本设计取0.05rad,该阈值可以用户自定义),则偏移车道中心线横摆角检测不通过。 车道保持检测需要排除主车进行了换道操作,对于换道期间进行偏移车道中心线距离检测和偏移车道中心线横摆角检测,将会出现假阳性的结果。 当主车所在的road id保持不变,在某一时刻,其lane id 发生变化,在该时刻的前后一定时间内(本设计取2s)发生换道。 车头横摆角偏离检测关联的内置可视化时间序列数据为:relativeYaw。横向偏移距离检测关联的内置可视化时间序列数据为:lateralOffset。 该指标的异常时间点记录类型为:POINT_TYPE_POINT。 父主题: 内置评测指标说明
  • 任务队列相关操作 在“任务队列”页签,还可以进行以下操作。 表1 任务队列相关操作 任务 操作步骤 置顶任务 单击操作栏中的“置顶”,即可将任务调整至队列中最高优先级。 置底任务 单击操作栏中的“置底”,即可将任务调整至队列中最低优先级。 上移任务 单击操作栏中的“上移”,即可将任务调整至队列中上一级。 下移任务 单击操作栏中的“下移”,即可将任务调整至队列中下一级。 更新任务优先级 勾选单个或多个批次任务。 单击“更新优先级”,输入[-50,50]的整数,数字越大,优先级越高。 单击“确定”,优先级更改成功。相同优先级的任务,任务队列更新时间越早,优先级越高。 搜索任务 在搜索输入框中输入搜索条件,按回车键即可查询。
  • Dockerfile示例 一般情况下,引擎主要包含预标注算法或预审核算法运行所需要的基本依赖环境,用户也可将预标注算法或预审核算法包内置在AI引擎中。用户可使用命令行模式或Dockerfile模式进行构建。以预标注自定义镜像为例,一般的镜像制作Dockerfile示例如下(xxx替换为实际路径): # 载入基础镜像,训练或评测引擎一般需包含cuda/cudnn等算法基础环境。用户可手动制作或拉取官方镜像 FROM xxx/cuda:11.0.3-devel-ubuntu18.04 # 设置工作目录【可选】默认为ROOT,用户可修改USER及PATH WORKDIR /root/workspace # 如果是内置预标注算法的自定义镜像,需要把预标注算法复制到工作目录下, COPY /path/to/algorithom /path/to/algorithom # 按需安装用户APT环境。如果需要修改/etc/apt/sources.list可替换 COPY /path/to/sources.list /etc/apt/sources.list RUN apt-get install vim # 按需安装用户算法环境。如果需要修改~/.pip/pip.conf可替换。用户也可安装miniconda进行包管理 COPY /path/to/pip.conf /root/.pip/pip.conf COPY /path/to/requirements.txt /root RUN pip install –r /root/requirements.txt # 设置环境变量【可选】 ENV PYTHONUNBUFFERED 1 对于Dockerfile的统一构建方式如下: docker build –f [DockerfileName] –t [ImageName:ImageVersion] . 父主题: 镜像制作(标注)
  • dynamics_shape 表示给定变量随时间或距离的变化.用于动作change_speed, change_lane. dynamics_shape list ENUM_DYNAMICS_SHAPE = ("linear", "cubic", "sinusoidal", "step") linear:变化曲线是一个线性linear 函数f(x) = f_0 +变化速率*x. cubic:变化曲线是一个三次变迁Cubical transition 函数f(x)=Ax3+B*x2+Cx+D,约束梯度在开始和结束时必须为零. sinusoidal:变化曲线是一个正弦变迁Sinusoidal transition 函数 f(x)=A*正弦(x)+B,约束梯度在开始和结束时必须为零. step:变化曲线是一个阶段变迁Step transition 函数 父主题: Enum Lists
  • 回放图层 在回放图层区域,可以选择不同图层,多层次观看数据回放视频。增加主车规划轨迹和感知目标预测轨迹,可以直观检验规控算法和控制模型的有效性及准确性。 对比回放源:可选择不同的回放源,进行对比。 摄像头:控制车辆摄像头采集的视频数据显示或隐藏。 主车定位:控制主车定位信息显示或隐藏。 感知目标:包含选项有感知目标ID、物体、类型、朝向、感知框。控制感知目标显示或隐藏。当选择了对比源之后,感知目标会由不同颜色和不同类型的感知框来展示。 信号灯:如果在场景片段中包含了信号灯时,回放片段中支持信号灯的展示,控制信号灯信息显示或隐藏。 毫米波雷达:控制毫米波雷达图像显示或隐藏。 激光雷达:控制3D点云图像显示或隐藏。 轨迹:包含有planning_trajectory、localization和predicted_objects。控制主车规划轨迹、主车车辆行动轨迹和感知目标预测轨迹显示或隐藏。其中不同感知目标拥有不同的预测路径,一个感知目标可以拥有多条预测路径。 高精地图:当视频中含有高精地图map_id时,此选项才会显示。显示“路面”,控制高精地图路面显示或者隐藏。
  • split 简述:地图场景为匝道分流.lead_vehicle和主车Ego在主道的同一车道上分别以35kph和Ego_InitSpeed_Ve0的初始速度一前一后行驶,Ego设定了目标在匝道上的目标点Target_position,仿真开始后激活Ego控制器(控制器会影响Ego去往Target_position的寻路算法,但目前仿真器B尚不支持寻路动作acquire_position).控制器有时会根据lead_vehicle的位置更改主车Ego的速度. 使用xyz坐标创建终点时,由于匝道地图泛化会使终点偏移,建议在创建测评任务时为检测终点设置合适的的半径,例如"到达半径5m". 地图文件(odr) scenario Split: m_scene: scenery lane_width: length = [3m..4m] main_speed: speed = 120kph ramp_speed: speed = 60kph ramp_length: length = [300m..350m] road_aids_type: road_aids_type = "DType-2" split_1: split with: keep(it.lane_width == lane_width) keep(it.left_lane_num == 0) keep(it.right_lane_num == 3) keep(it.ramp_lane_num == 1) keep(it.main_speed == main_speed) keep(it.ramp_speed == ramp_speed) keep(it.radius_of_curvature == 200m) keep(it.ramp_length == ramp_length) keep(it.road_aids_type == road_aids_type) 场景文件(osc) import standard scenario Split: # map map: map map.set_map_file("./split.odr") # parameter Ego_InitSpeed_Ve0: speed = [90kph..110kph] Ego_InitPosition_LaneId: string = ['-1', '-2'] Ego_InitPosition_s: length = [0m..100m] Ego_Odr: odr_point = map.create_odr_point(road_id: '10', lane_id: Ego_InitPosition_LaneId, s: Ego_InitPosition_s, t: 0.0m) Ego_InitPosition: pose_3d with: keep(it.odr_point == Ego_Odr) m_InitDistance: length = [60m..100m] Target_xyz: xyz_point = map.create_xyz_point(x: 445m, y: -46.5m ,z: 0.0m) Target_position: pose_3d with: keep(it.xyz_point == Target_xyz) Duration: time = 100s # entity Ego: vehicle with: keep(it.name == "Saimo") keep(it.initial_bm == "默认驾驶员") lead_vehicle: vehicle with: keep(it.name == "Saimo") keep(it.initial_bm == "默认驾驶员") # storyboard do parallel(duration: Duration): # init Ego.assign_init_position(position: Ego_InitPosition) Ego.assign_init_speed(Ego_InitSpeed_Ve0) lead_vehicle.assign_init_position() with: lane(same_as: Ego) position(distance: m_InitDistance, ahead_of: Ego) lead_vehicle.assign_init_speed(35kph) Ego.activate_controller(true, true) Ego.acquire_position(target: Target_position) 父主题: 种子地图的逻辑场景样例(仿真器B)
  • 数据场景相关操作 在“数据场景”模块,还可以完成以下操作。 表1 数据场景相关操作 任务 操作步骤 切换视图 单击列表右上角“切换视图”,场景片段可以由列表和时间轴两种视图相互切换。 删除场景片段 选择目标场景片段,单击列表上方的“删除”,可删除单个或多个场景片段。 回放场景片段 鼠标悬停在目标场景片段时间轴上,单击“回放”,页面自动跳转至“数据回放”模块,详情请参考数据回放。 筛选场景片段 在搜索输入框中输入搜索条件或者根据起始时间查询场景片段。
  • 乘员舒适性(Driving Comfort)检测 乘员舒适性检测关注的是自动驾驶车辆行使过程中,驾驶员感受到的舒适程度。 舒适程度通常可以利用整个行使过程中的速度方差来进行客观反映,而变异系数是可以对不同速度区间舒适程度进行比较。 变异系数的公式如下所示。 表示变异系数,表示标准差,表示均值。 本设计当主车速度的变异系数大于0.15时,判定乘员舒适性检测不通过。 该指标关联的内置可视化时间序列数据为:speedX。 该指标的异常时间点记录类型为:POINT_TYPE_ALL。 父主题: 内置评测指标说明
  • 开通我的模型 登录Octopus服务平台,在左侧菜单栏中单击“总览”。 在“我的模型”模块,单击操作栏中的“开通服务”。 图1 开通服务 选择需要开通服务的用户名,单击操作栏中的“开通服务”。 图2 开通服务 也可选择多个用户名,单击用户名上方的“批量开通”,批量开启服务。 取消服务。 单击开通服务的账号后的操作栏中“取消服务”,即可关闭服务。 也可选择已开通服务的多个用户名,单击用户名上方的“批量取消”,批量关闭服务。
  • 数据批导简介 在使用平台进行自动驾驶开发时,首先需要用户把原始数据上传至Octopus平台,即数据上云。下文介绍了数据导入任务的三种方式,帮助用户把车载平台输出的数据上传至Octopus平台上。 对象存储导入数据:用户需先将数据包上传至对象存储桶(可自定义)中,再导入到Octopus平台。上传速率快,适合上传大数据量(超过2G)的数据包。 单个数据包时长均不可超过10分钟。 目前MP4文件只支持对象存储导入。 数据导入任务的流程如下: 图1 数据导入任务流程 父主题: 数据批导
共100000条