华为云用户手册

  • 标注服务简介 Octopus标注服务为标注团队提供标注平台管理员、团队管理员和标注任务操作人员(标注员/审核员/验收员)三类职能。三类职能对标注平台的操作权限不同,保证标注任务的数据安全。标注服务管理员根据不同标注任务创建标注团队,分配标注任务操作人员不同职能。创建标注项目,并在项目下创建标注模板及标注任务。团队管理员管理团队内部成员,可为团队创建项目和标注任务,供成员认领。标注任务的操作人员是标注任务的实际执行人员,根据标注任务所处流程,有标注员、审核员和验收员三种职能。 标注服务的开发流程如下: 图1 标注服务开发流程 标注任务创建成功后,由团队中的标注员认领任务,标注任务进入标注流程。标注任务全流程如下,根据项目流程,可对除交付之外的其他流程进行裁剪: 图2 标注任务全流程 项目管理:通过对项目内的任务以及项目内的标注物管理,用户可根据业务需求不同,创建不同类型的项目。 团队管理:为标注团队进行人员职能的分配。未分配到标注项目的团队不可查看该项目信息,确保标注任务的安全性。 标注管理:提供项目外的可视化的标注物管理,支持自定义创建多种标注物的形状和颜色,可用于预标注和人工标注指定物体,或自定义算法模型中关联特定标注物。 模板管理:提供预标注模板和人工标注模板,用户可根据需求选择。 脚本管理:用户可以根据自身业务的需要创建标注脚本,推送和拉取对应引擎的镜像,用于标注任务。 用户管理:可为任务提供角色分配,对所有团队下普通用户进行管理。 父主题: 标注服务
  • 绘制对象 单击2D3D关联任务,单击任意一帧,进入人工标注。 左侧工具栏“2D3D互转开关”,开启状态下,平台依据新建的2D或3D框自动转成对应的3D或2D框。开关状态在同一任务中继承。 选择标注类别。标注下拉列表页选择一标注名,进入标注状态。 单击左侧标注工具栏,选择对应的标注工具。 在图片界面单击左侧工具栏“补框”,绘制2D框,此时右侧标注列表只展示关联对象的标注物。键盘按键“ESC”退出绘制状态,右侧标注列表展示所有的标注物。 图2 2D补框 在点云界面单击左侧工具栏“AI标注”(快捷键b),框选3D,此时右侧标注列表只展示关联对象的标注物。双击空白处退出绘制状态,右侧标注列表展示所有的标注物。 图3 点云补框 双击3D框,打开三视图。 图4 打开三视图 依据标注规范要求,结合下方真实图片中对应标注物大小,调整点云图像中标注物三视图中标注框。 图5 调整三视图 修改标注类别 右键单击目标图形,可进入选择类别的跳出框,即可修改类别。 修改额外属性。 右键单击目标图形,如果目标含有额外属性,单击即可选择属性。 图6 修改额外属性 修改对象ID。 右键单击目标图形,可以在对象ID栏手动输入数值来修改ID,由此将2D框和3D框数据手动关联。 图7 修改对象ID
  • 操作步骤 登录华为云首页。 单击页面右上角的“控制台”。 在控制台页面,选择自动驾驶云服务 Octopus 支持的区域。 单击左上角展开服务列表,在搜索栏中输入“八爪鱼自动驾驶云服务 Octopus”。 图1 服务列表中搜索服务名称 单击服务名称进入八爪鱼自动驾驶云服务 Octopus管理控制台。 单击“立即申请”。 图2 公测页面 根据实际情况设置企业规模、研发人员比例、应用场景、业务当前阶段等信息。 用户第二次申请公测时,可以继承上一次申请该产品公测活动所填写的必填项信息。 选中“同意《公测试用服务协议》”。 单击“申请公测”,完成公测申请。 等待运营开通公测权限。单击“前往公测管理”,可以查看已经申请的公测产品或者服务。
  • 实时评测 图1 实时评测 实时评测的基本架构如上图所示,实时评测算法从仿真器和AD算法按帧接收数据,每接收一帧数据,就调用一次评测函数,在最后仿真结束时将评测结果写成评测pb文件。 实时评测的实现包括如下几个步骤: 代码内实现与仿真器的通信,实时接收仿真器的帧数据,也可同时接收仿真器和AD算法的数据。 处理每帧数据,不断更新评测结果。 仿真结束时,将最后一帧的评测结果作为最终的评测结果,通过EVA_PATH环境变量获取评测pb路径,经评测结果写入到评测pb文件中。
  • 延时评测 图2 延时评测 如上图所示,延时评测以仿真pb文件作为输入,进行评测逻辑处理后,将评测结果写成评测pb。 其中仿真pb是通过八爪鱼提供的sim_osi.proto进行序列化和反序列化,评测pb是通过八爪鱼提供的eva.proto进行序列化和反序列化的。 延时评测算法的实现有如下几个步骤: 在代码内通过SIM_OSI_PATH环境变量获取仿真pb路径,通过EVA_PATH环境变量获取评测pb路径。 通过文件Open的方式打开仿真pb路径,读取字节流,利用sim_osi.proto中的SimData反序列化仿真pb中的内容。该步骤会得到一个SimData的内存对象,用户通过访问对象中的字段即可获取自己关注的数据。 SimData中包含仿真器输出的整个仿真过程数据,用户处理根据自身评测逻辑处理所有帧数据。 用户自定义的评测指标包含通过,不通过等结果,将该结果写入到eva.proto中的Evaluation类中,然后通过文件Open的形式打开评测pb路径,将评测结果写成评测pb文件。 写成评测pb文件后,延时评测镜像的工作就完成了,仿真平台的控制程序在运行自定义评测容器时会主动将评测pb文件上传到对象存储中,前端通过下载该评测pb文件进行解析,可以将自定义评测结果和内置评测结果一样完全兼容地进行展示。 评测算法代码开发完成后,将代码构建成算法镜像上传到仿真平台评测管理模块即可被仿真任务使用。在制作评测算法镜像的Dockerfile中,建议将评测代码编译成的二进制文件COPY到系统的/usr/bin目录下,便于在前端界面填写评测镜像的运行命令时直接填写该二进制文件的名称即可。在镜像中新建一个shell脚本来运行评测代码也是可以接受的方案。
  • 动作 change_lane 动作主体:车辆vehicle 结束时间:当动作主体actor 位于目标车道lane 中、目标偏移offset 处时,动作结束. 是否支持modifier:否 参数:参数如下表,支持关键字参数. rate_peak 和rate_profile 是必选项,用于设置osc1中的dynamics . target 和reference 必须设置且只设置其中之一,前者用于指定绝对车道,后者用于指定相对车道. 表1 change_lane参数 Parameter Type Mandatory Description number_of_lanes uint no The target lane is "num_of_lanes" to the side of the reference entity. Use in conjunction with "side". side lane_change_side no Select on which side of the reference entity. reference entity no Default=it.actor. Reference to the entity that is used to determine the target lane. If this argument is omitted, the actor itself is used as reference. offset length no Default=0.0. Target offset from center of the target lane that the actor follows at the end of the action. rate_profile dynamics_shape yes Assign a shape for the change of the lateral position variable (t-axis). This profile affects the lateral velocity during action execution. rate_peak speed yes Target value for the peak lateral velocity that must be achieved during the action. target lane_id(uint) no The actor starts and finishes the action in the target lane. 目标lane必须在地图上。 中心线左侧的lane_id为正,如'1','2'.右侧的lane_id为负,如'-1','-3'.绝对值越大,距离中心线越远。 offset值不能超出当前所在lane的宽度范围。 使用相对位置时,参考对象reference必须是车辆,否则仿真器A无法支持。 rate_profile只能选择linear或step。 绝对车道1 my_lane: lane with: keep(it.lane_id == '1') m_profile: dynamics_shape = linear side_vehicle.change_lane(target: my_lane, rate_profile: m_profile, rate_peak: 0.3mps) 绝对车道2 my_lane: lane with: keep(it.lane_id == '-1') m_profile: dynamics_shape = linear side_vehicle.change_lane(target: my_lane, offset: -0.2m, rate_profile: m_profile, rate_peak: 0.4mps) 相对车道1 m_profile: dynamics_shape = step m_side: lane_change_side = left m_profile: dynamics_shape = step Ego.change_lane(number_of_lanes: 2, side: m_side, reference: side_vehicle, offset: 0.8m, rate_profile: m_profile, rate_peak: 0.3mps) 相对车道2 m_profile: dynamics_shape = step m_side: lane_change_side = same m_profile: dynamics_shape = step Ego.change_lane(number_of_lanes: 1, reference: side_vehicle, side:m_side, rate_profile: m_profile, rate_peak: 0.3mps) 父主题: 动作 Actions
  • 文本格式约定 文本对比:支持TXT、JSON文件格式。 图5 文本对比 报告对比:用户自定义评测结果如果需要使用报告对比功能,需满足Octopus格式要求,仅支持JSON文件格式,并且需要满足以下格式要求。 表2 报告对比格式要求 名称 说明 示例 kind 文件标识符,e-res表示评测结果可进行评测对比 e-res spec 评测结果内容 JSON格式 支持简单指标结果、带类别复杂指标结果、折线图结果 {“accuracy”: 0.21, “fp”: 1.0, “fn”: 1.0} 简单指标结果 { "accuracy": 0.21, "fn": 1.0, "fp": 1.0, } 简单键值对,键表示指标名称,值表示该指标对应的评测结果数值。 带类别复杂指标结果 { "ap": [{"Car": 0.2, "Truck": 0.4}, 0.3], "precision": [{"Car": 0.8, "Truck": 0.7}, 0.75], "recall": [{"Car": 0.8, "Truck": 0.9}, 0.85], } 键值对,键表示指标名称,值为字典或列表。当值为列表时,第一项为各类别对应的该指标评测结果字典,第二项为所有类别的指标均值。当值为字典时,仅包含上述第一项。 折线图类指标结果 { "pr_curve": { "Car": [ [0.0, 0.2, 0.4, 0.6, 0.8, 1.0], [1.0, 1.0, 0.8, 0.8, 0.6, 0.4] ] } } 键值对,键表示指标名称,值为字典或列表。当值为列表时,第一项为各类别对应的该指标评测结果字典,第二项为所有类别的指标均值。当值为字典时,仅包含上述第一项。 以上各种类型可混合使用,参考完整示例如下: { "kind": "e-res", "spec": { "accuracy": 0.21, "fn": 1.0, "fp": 1.0, "ap": [{"Car": 0.2, "Truck": 0.4}, 0.3], "precision": [{"Car": 0.8, "Truck": 0.7}, 0.75], "recall": [{"Car": 0.8, "Truck": 0.9}, 0.85], "pr_curve": { "Car": [ [0.0, 0.2, 0.4, 0.6, 0.8, 1.0], [1.0, 1.0, 0.8, 0.8, 0.6, 0.4] ] } } }
  • 评测对比相关操作 在“评测对比”列表,可对任务进行以下操作。 表1 评测对比相关操作 任务 操作步骤 查找对比任务 在搜索输入框中输入搜索条件,按回车键即可查询。 查看对比任务详情 单击对比任务名称,可在对比任务详情页查看该评测对比详情、报告对比、任务日志。 评测对比详情:任务ID、名称、描述、状态等信息。 文本对比:单击“文本对比”,查看或下载评测对比任务对比文本。 报告对比:单击“报告对比”,查看或下载评测对比任务在运行过程中生成的报告。 任务日志:单击“任务日志”,查看或下载评测对比任务在运行过程中生成的所有日志。 删除对比任务 单击操作栏的“删除”,删除单个对比任务。 勾选多个任务,单击列表上方的“删除”,可批量删除对比任务。 创建新任务 单击操作栏内的“创建新任务”,输入新对比任务名称(以“任务组名-自定义名称”的形式),同时可重新选择需要修改的参数。 停止任务 单击对比任务后的“停止”,停止评测对比任务。
  • 场景库相关操作 在“场景库”页签,可对场景库进行以下操作。 表1 场景库相关操作 任务 操作步骤 查看场景库信息 单击左侧场景库名称,查看右侧该场景库信息以及场景库包含场景信息。 场景库信息:场景库名称、创建人、仿真器、描述、关联仿真任务数和创建时间等信息。 场景列表:该场景库中包含的所有场景。场景的具体操作请参考场景管理。 修改场景库信息/场景库分类信息 单击场景库名称或场景库分类后的,修改场景库或场景库分类的信息。 删除场景库/场景库分类 单击场景库名称或场景库分类后的,删除指定场景库或场景库分类。 查询场景 根据“场景名称”或“创建人”,输入搜索条件,查询场景列表中的场景。
  • 场景文件结构 场景文件结构样例 OpenSCENARIO2.0 ├─ RoadNetwork │ ├─ LogicFile │ └─ SceneGraphFile (0..1) ├─ ParameterDeclarations (0..1) ├─ Entities │ └─ Entity (1+) └─ Storyboard ├─ StopTrigger ├─ InitActions │ ├─ AssignInitSpeedAction │ └─ AssignInitPositionAction └─ Story └─ Act (1+) ├─ StartTrigger (Wait) │ └─ ConditionGroup │ └─ Condition (1+) └─ Action
  • 场景组成说明 场景文件的主体是一个场景剧本storyboard,用户需要在storyboard前先声明将会使用的路网RoadNetwork、参数Parameter,和实体Entities。然后在Storyboard中通过InitActions对实体进行初始化(给定初始速度和位置)。通过场景故事Story中实体Entities间的一个个动作集Act来展开场景。对于动作集Act 内的每个行为Action,用户还可以通过Wait设置一个或多个触发条件。
  • 应对对向车辆占道(Encroaching vehicle)检测 在双向车道路上, 会存在主车与对向车辆存在横向冲突的情况, 应对对向车辆冲突行驶检测的目的是判断主车在这种情况下, 能否进行适当的转向和减速避让, 从而保证安全性。 其中主车需要进行避让的前提条件是: 当主车前端与对向行驶的车道纵向距离一定范围内(本设计取10m), 并且主车与对向车辆的横向距离小于两者一半车宽的和。 当满足该条件后, 如果主车没有进行转向避让和减速避让, 则对应的检测不通过。 减速避让检测不通过是指主车的加速度大于0。 其中转向避让检测考虑到中国是靠右行使, 在设计该类测试场景时, 对向车会是在主车的左侧。 转向避让检测不通过是指主车没有向右边转向。 该指标关联的内置可视化时间序列数据为:暂无。 该指标的异常时间点记录类型为:POINT_TYPE_REGION。 父主题: 内置评测指标说明
  • 预审核任务相关操作 在“预审核任务”列表,还可以进行以下操作。 表1 预审核任务相关操作 任务 操作步骤 查询预审核任务 在搜索输入框中输入搜索条件,按回车键即可查询任务。 查看模型 单击模型名称,界面跳转至模型详情,可查看模型。 查看任务报告 单击操作栏中的“报告”,可查看或下载任务报告。 查看任务日志 单击操作栏中的“日志”,可查看或下载日志详情。 删除任务 选择单个任务,单击操作栏的“删除”,删除单个任务。 勾选多个任务,单击列表上方的“批量删除”,可批量删除任务。
  • 标签管理相关操作 在“标签管理”界面,还可以进行以下操作。 表1 标签管理相关操作 任务 操作步骤 新建根标签 单击“新增标签”,输入标签名称。 新建标签 单击标签后的,输入标签名称。 修改标签 单击标签后的,可对标签的名称进行修改。 删除标签 单击标签后的,可删除标签或其子节点标签。 说明: 平台预置场景标签暂不支持编辑、删除。 导出标签 单击根标签后的,可导出标签至本地。 搜索标签 在搜索框输入搜索内容,可模糊搜索标签。 多项搜索:可根据需要决定是否启用多项搜索,输入多个关键字,中间用“;”隔开,可搜索多个关键字。
  • 作业输入输出规范 用户完成自定义Rosbag转opendata算子创建,运行作业容器时Octopus平台向其中注入以下环境变量: rosbag_path: 作为数据源的rosbag存放路径,例如/tmp/data/20220620.bag yaml_path: 启动数据收集任务的yaml文件路径,例如/tmp/Octopus_data_collections.yaml output_dir: rosbag数据包作业运行结果输出目录,例如/tmp/output tmp_dir: 供用户存储作业临时文件的目录,例如/tmp/workspace 用户的作业容器需要解析rosbag,并将转换结果输出到output目录,结果示例如下: 每个传感器提取的数据保存在单独的文件夹,其中camera和lidar传感器提取的样本文件必须以时间戳命名。任务结束标志文件,_SUCEESS或_FAILURE分别代表任务成功或失败。opendata_to_platform.yaml文件以yaml格式记录该opendata数据包的元数据,格式如下: sensor_type字段标识传感器类型,可取以下值:camera、lidar、gnss、vehicle、ego_tf、object_array_vision、traffic_light_matched、tag_record、planning_trajectory、predicted_objects、control、routing_path、localization_visualization。具体定义参考数据包格式。 示例opendata_to_platform.yaml文件内容如下: 父主题: Rosbag转opendata作业
  • 感知物体类型 由于各类仿真器对交通参与物类型的覆盖面不同,可能产生仿真器不支持某种类型,或仿真器与仿真回放中类型不匹配。 以下模型均为副车的颜色,主车ego的颜色为白色,其他车比主车颜色更深。 表2 车辆和行人 类别 标签 三维感知框/未选中 三维感知框/选中 3D模型 未知车辆/其他车辆/小型车/紧凑型轿车/中型车/豪华车 送货车/重型卡车/半挂式拖车/拖车 行人 公交车 未知/其他/轮椅 摩托车/自行车 电车/火车 暂无 动物 暂无 表3 交通信号 类型 名称 图标 信号灯 红黄绿灯 方向灯-箭头向上 方向灯-箭头向左 方向灯-箭头向前向左 方向灯-箭头向右 方向灯-箭头向前向右 交通标识牌 注意安全 人行横道 两侧变窄 右侧变窄 左侧变窄 减速让行 停车让行 禁止驶入 禁止掉头 禁止停车 禁止长时停放 注意落石
  • 回放图层 在回放图层区域,可以选择不同图层,多层次观看3D回放视频。 真值物体:包含选项有真值物体类型及ID、物体模型,可控制真值物体显示或隐藏。 预测算法:可显示或隐藏除主车以外,他车的朝向前的行驶轨迹。 定位算法:可显示或隐藏主车的定位(通过算法计算出的信息)和真值(实际信息)的坐标信息。 规控算法:可显示或隐藏“主车局部规划轨迹”和“主车全局规划轨迹”。 高精地图:显示“路面”、“车道线”、“车道参考线”、“中心车道线”、“交通信号”,可控制对应功能显示或者隐藏。 动态场景:显示场景trigger信息,目前支持设置了Distance,ReachPosition,End Of Road,Collision,OffRoad,Time Head Way,Time To Collision,Acceleration,StandStill,Speed,Relative Speed,Traveled Distance,Relative Distance这几类trigger。地图会以的图标展现,鼠标单击图标时,地图中会出现trigger的详细信息。 当有trigger作用于某个交通参与物时,且该trigger自身没有position。该交通参与物模型上会显示trigger图标。(注:Time To Collision类型的trigger可能包含position信息,但是该position代表目标位置,不是其本身位置,所以此类trigger也会显示在交通参与物上)。 一个trigger作用于多个交通参与物时,涉及到的交通参与物都会带有trigger图标。 一个交通参与物带有多个trigger时,只会显示一个trigger图标,鼠标悬浮上去,会在右上角列出所有trigger的内容。
  • 镜像制作(仿真) Octopus仿真服务平台定义了一些proto接口,用于支持用户自定义评测等功能。这些自定义功能通常以镜像的形式上传到云仿真平台,然后参与到业务运行流程中。 本文档对常见业务功能的镜像制作进行指导说明。 自定义评测镜像涉及的样例代码,如有需要,请联系相关人员。 算法镜像和评测镜像cmd以用户创建项目时输入的运行命令为准,仿真器镜像不支持cmd自定义以后台默认的运行命令为准。Entrypoint只在算法镜像生效,评测镜像和仿真器镜像不支持配置entrypoint。 目前自定义算法、自定义评测、自定义脚本的镜像制作使用的基础镜像版本要求为:ubuntu18.04及以上。算法与仿真器需要采用TCP协议进行通信。 自定义评测镜像制作 与datahub对接的算法镜像制作 评测算法的自研proto接口 父主题: 镜像仓库
  • 数据场景 Octopus平台处理完原始采集数据后,平台支持内置和自定义场景挖掘算法,可自动提取对应场景行为的片段,展示在数据场景模块中。用户可将其生成单个仿真场景片段,为后续仿真开发做准备。 数据场景依赖以下三个topic:ego_tf(主车定位)、 object_array_vision(目标感知)、vehicle(底盘)。自定义场景挖掘算法对topic无特殊要求,由客户算法自行定义。 场景展示 标签管理 内置场景挖掘规则 父主题: 数据资产
  • Struct struct类型,又称结构类型,是一种由简单类型(例如int、float、string类型,scalar类型,简单的struct类型等)构建的复杂类型,一般用于表示抽象的道路结构,与地图文件中的具体的道路结构建立关联.osc2.0支持的struct类型有:odr_point、position_3d、road_point、orientation_3d和pose_3d position_3d xyz_point road_point odr_point orientation_3d pose_3d 父主题: 附录 Appendix
  • lane_change_side 用于动作change_lane. lane_change_side list ENUM_LANE_CHANGE_SIDE = ("left", "right", "inside", "outside", "same") left:参考实体左侧的车道 right:参考实体右侧的车道 inside:参考实体内侧的车道 outside:参考实体外侧的车道 same:与参考实体相同的车道 父主题: Enum Lists
  • 2D图像列表相关操作 在2D图像列表,还可以进行以下操作。 表1 2D图像列表相关操作 任务 操作步骤 搜索模型生成的2D图像 在搜索框中输入关键字搜索相关2D图像生成作业名称。 查看模型生成的2D图像详情 单击模型生成的2D图像生成作业名称,即可查看模型生成的2D图像详情页。 图4 2D图像详情 显示位置框:可选择是否显示位置框。 下载图片:鼠标悬停图片,可选择单张下载图片至本地。 删除图片:可选择单张或批量删除图片。 清理失效图片:如果有失效的图片,可选择单击右上角“清理失效图片”,清理失效图片。 终止模型生成2D图像 单击操作栏的“终止”,即可终止状态为“执行中”的模型。 删除模型生成的2D图像 单击操作栏的“删除”,即可删除模型生成的2D图像信息。 说明: 删除后无法恢复,请谨慎操作。(OBS中的图片数据需用户手动清理。)。
  • 通用存储相关操作 在“通用存储”列表,还可以完成以下操作。 表1 通用存储相关操作 任务 操作步骤 查看通用存储 单击通用存储名称,可查看通用存储详情。具体可查看通用存储详情。 查询通用存储 在搜索框中输入搜索条件,按回车键即可查询。 删除通用存储 选择单个通用存储,单击操作栏的“ 删除”,删除单个通用存储。 勾选多个通用存储,单击列表上方的“删除”,可删除多个通用存储。 说明: 当通用存储中存在数据处理任务时,不可删除通用存储,需先删除完数据处理任务才可删除通用存储。 编辑通用存储 单击操作栏内的“编辑”,可编辑通用存储。
  • 初始动作 assign_init_speed 动作主体:车辆vehicle 或行人pedestrian . 结束时间:当动作主体actor 达到指定的速度speed 时,动作结束. 是否支持modifier:是 参数:参数如下表. 表1 assign_init_speed参数 Parameter Type Mandatory Description target speed yes Desired (scalar) speed assigned by the user. assign_init_speed支持设置绝对速度和相对速度,设置相对速度时使用 修饰器speed来给出相对值. 设置初始速度时,初始速度不能超过该主体所在道路的限速. 如果所需场景起始速度为0,无需使用assign_init_speed动作. 绝对速度 init_speed: speed = 10.0mps Ego.assign_init_speed(init_speed) 相对速度 cut_in_vehicle.assign_init_speed() with: speed(speed: 5mps, faster_than: Ego) 父主题: 动作 Actions
  • 本地调试 命令示例: docker run -v ${HOME}/workspace/guikong/2022-09-23-15-26-54_6.bag_pnc.bag:/tmp/input.bag -v ${HOME}/workspace/output:/tmp/output --env rosbag_path=/tmp/input.bag --env output_dir=/tmp/output --entrypoint /bin/sh guikong-demo:0.1 “-c” “bash /home/Octopus/run.sh” 运行后查看输出结果: 确定算法输出、yaml和_SUC CES S标识文件都存在,且文件所有人可读。
  • 镜像制作(训练) Octopus平台依赖算子镜像内的/bin/bash、stdbuf、tee软件,请确保基础镜像内包含上述软件且能通过PATH找到。 一般情况下,训练与评测定义为同一个引擎,主要包括算法或评测脚本运行所需要的基本依赖环境。用户可使用命令行模式或Dockerfile模式进行构建。以训练、评测镜像为例,一般的镜像制作Dockerfile示例如下(xxx替换为实际路径): # 载入基础镜像,训练或评测引擎一般需包含cuda/cudnn等算法基础环境。用户可手动制作或拉取官方镜像 FROM xxx/cuda:11.0.3-devel-ubuntu18.04 # 设置工作目录【可选】默认为ROOT,用户可修改USER及PATH WORKDIR /root/workspace # 安装用户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 编译镜像类似上述训练、评测镜像制作方式,但一般不包含cuda/cudnn库,需替换为用户的编译环境。 对于Dockerfile的统一构建方式如下: docker build –f [DockerfileName] –t [ImageName:ImageVersion] . 镜像运行时,会向运行环境注入部分默认文件配置: 表1 环境变量说明 任务名称 文件名 环境变量 训练任务 增量模型目录 MODEL_PATH="/tmp/data/model" 训练产物目录 TMP_RESULT_PATH= "/tmp/result" 数据集目录 DATASET_PATH=" ['/tmp/data/dataset/dataset-0']" 评测任务 评测结果目录 TMP_RESULT_PATH= "/tmp/result" 模型版本文件目录 MODEL_PATH="/tmp/data/model" 数据集目录 DATASET_PATH= "/tmp/data/dataset/dataset-0" 编译任务 模型版本文件目录 MODEL_PATH="/tmp/data/model" 编译产物目录 TMP_RESULT_PATH= "/tmp/result" 预标注任务 数据集目录 OCTPS_DATASET_DIR="/tmp/…/data" 模型版本文件目录 OCTPS_MODEL_DIR="/tmp/…/model" 模型版本关联标注物文件路径 OCTPS_META_PATH="/tmp/…/meta/label_meta_infos.json" 预标注结果数据目录 TARGET_RESULT_DIR="/tmp/…/result/data" 预标注日志文件目录 TARGET_ LOG _DIR="/tmp/…/result/log" 父主题: 镜像仓库
  • 用例管理 在测试用例的详情页,可以进行以下操作: 查看测试用例详情。 单击用例名称查看该用例详细信息。 图1 测试用例详情 编辑测试脚本。 可根据需要添加测试脚本,在测试用例详情页,单击测试脚本后面的“编辑”,编辑脚本类型。 图2 编辑测试脚本 用例发布。 当用例状态为“编辑中”时,用例详情页面,单击用例名称后“发布”,可对用例进行发布。 关闭用例。 当用例状态为“已发布”时,用例详情页面,单击用例名称后“关闭用例”,可对用例进行关闭。 修改用例。 单击用例名称,进入用例详情页,单击右上角“编辑”,即可修改用例信息。 用例状态为"已关闭"和"已发布"时,不支持编辑用例基本信息。 用例编辑中/发布/关闭的使用逻辑: 测试用例在被创建时的默认状态是编辑中,当测试用例中的场景和测试脚本以及其他相关信息都确认达到测试条件时,可以选择发布测试用例,发布后的测试用例才能被用于创建仿真任务,并且用例一旦发布,就不允许删除,从而保证测试结果的可追溯。当发布后的测试用例后续不会再进行测试时,可以选择关闭测试用例,关闭后的测试用例不能用于创建仿真任务,并且同样关闭后的测试用例不能被删除,从而保证结果的可追溯性。 父主题: 测试用例管理
  • 数据资产简介 在自动驾驶产品的开发过程中,海量的数据存储和管理是当前自动驾驶平台面临的业务挑战之一。 Octopus平台的数据服务模块提供了海量数据采集、存储以及数据并行处理等功能,供后续服务进行统一使用。数据服务开发流程如下: 图1 数据服务开发流程 地图管理:支持上传高精地图数据,可用于数据回放、仿真场景等功能。 标定管理:支持车辆、车辆传感器标定的配置,方便即时管理车辆以及标定信息。 源数据包:此模块展示导入成功的数据包,支持对源数据包的查看,回放等功能。 数据场景:平台处理完原始采集数据后,平台支持内置和自定义场景挖掘算法,可自动提取对应场景行为的片段,展示在此模块中。 数据集:支持数据集多版本管理和统计。同时支持用户将本地符合平台规范的数据集导入平台,以及将平台上的数据集导出到自有OBS桶中。 数据缓存:提供专用高速文件存储功能,加速训练和评测读取数据集的速度。 模型管理:负责对模型仓库和模型版本进行各种操作,模型仓库可包含多个模型版本,支持上传符合平台规范的模型用于标注或训练任务。 通用存储:支持创建通用存储,用于数据存储。 父主题: 数据资产
  • 绘制对象 绘制多边形。 选择左侧工具栏多边形按钮,(快捷键4,非小键盘)绘制多边形。 图2 绘制多边形 选择标注。 标注列表页选择符合的标注。 图3 选择标注 绘制标注形状。 绘制标注形状有两种方法:点式绘制和交互式分割工具,用户可根据需要选择绘制方式 点式绘制形状:通过单击目标对象的边缘,点状连线,获得闭合的多边形,操作如下: 通过鼠标左键单击添加点标注图中对象,未闭合状态可通过“alt+Z”撤销上一步绘制的点,标注过程中可通过“alt+鼠标左键”拖动图片。按住键盘上空格键进行闭合,该对象标注完成。 项目类型为语义标注、道路特征提取、可行驶区域,这三类任务是空格键闭合且alt+鼠标左键拖动图片,其余任务使用左键拖动图片和闭合多边形。 交互式分割工具(仅在“语义标注”项目中使用):通过在标注对象及附近区域单击正点(目标对象区域的点)或负点(非目标对象区域的点), 自动得到较优的多边形。具体步骤如下: 单击快捷键‘4,非小键盘’,进入多边形绘制状态。 单击快捷键“z”键进入目标对象的交互式标注模式, 页面右上角出现“交互式分割已开启”字样。 在前景区域,通过鼠标左键单击正点(目标对象区域的点),得到预测的多边形。 在背景区域,通过鼠标左键单击负点(非目标对象区域的点),修正多边形。在多边形区域未包含的前景区域左键单击正点,修正多边形。 重复单击正或负点,修正预测的多边形,直到多边形达到较好的效果。 一般情况下,单击3-5个点即可达到较好效果,如果超过10个点还未达到较好效果,则此对象的此次交互式标注基本无效,建议退出。 再次单击快捷键“z”键,可退出目标对象的交互式标注模式, 页面右上角“交互式分割已开启”字样消失。该对象标注完成。 切割线工具修改多边形。 单击左侧标注工具栏切割线(快捷键8,非小键盘),切割线空格键闭合,切割线绘制完成通过键盘上”m”键可完成切割。 切割线可用于切割多边形不贴合部分,切割线首尾两点与多边形需有交点。 其他常用标注工具。 绘制共边对象:通过键盘上”X”键实现两对象共边。 全局标注:选中一标注对象,单击左侧工具栏”全局标注物”按钮,或通过键盘快捷键“i”复制该对象到图层中,选中该对象可应用到本图或者下一张图中。该步骤可用于有相同对象的图片,或者有覆盖类型的标注中。 图4 全局标注 删除对象:选中一对象,通过键盘上“delete”键可在图中删除该对象。 撤回上一步:单击左侧工具栏“撤回”,或通过快捷键“shift+z”撤回上一步。 隐藏标注列表和预览图:单击左侧工具栏“隐藏标注列表”、“隐藏预览”,扩大标注区域。 调整透明度:单击左侧工具栏“调整透明度”,调整图片。 更改标注类别 多边形闭合后可在该对象上单击鼠标右键,更改该对象类别。 图5 更改标注类别 修改额外属性。 右键单击目标图形,如果目标含有额外属性,如果其默认属性错误,单击即可选择属性。 修改对象ID。 右键单击目标图形,可以在对象ID栏手动输入数值来修改ID。
  • 注册华为账号 并开通华为云 在使用华为云服务之前您需要申请华为云账号并进行实名认证。通过此账号,您可以使用所有华为云服务,并且只需为您所使用的服务付费。 如果您已有一个华为云账号,请跳到下一个任务。如果您还没有华为云账号,请参考以下步骤创建。 打开华为云官网,单击“注册”。 根据提示信息完成注册,详细操作请参见注册华为账号并开通华为云。 注册成功后,系统会自动跳转至您的个人信息界面。 参考实名认证完成个人或企业账号实名认证。 父主题: 准备工作
共100000条