华为云用户手册

  • Planning_trajectory stamp_secs: 1617336640 stamp_nsecs: 809739351 timestamp: 1617336640809 trajectory_points { x: -151.27487182617188 y: 486.55096435546875 theta: 0.0023324606008827686 kappa: -0.0017824547830969095 } trajectory_points { x: -151.21182250976562 y: 486.5510559082031 theta: 0.0022713469807058573 kappa: -0.0017127590253949165 } ......
  • Routing_path timestamp: 1630057162125 stamp_secs: 1630057162 stamp_nsecs: 125769156 routing_path_info { id: 1 path_point { x: -203.34230041503906 y: 125.63516998291016 z: -0.5 } path_point { x: -203.34915161132812 y: 125.72517395019531 z: -0.5 }......}
  • Ego_tf localization_info { timestamp: 1604996332855 stamp_secs: 1604996332 stamp_nsecs: 855301408 pose_position_x: 1165.5460205078125 pose_position_y: -479.2198486328125 pose_position_z: -1.48505699634552 pose_orientation_x: 0.003883248195052147 pose_orientation_y: -0.0031167068518698215 pose_orientation_z: 0.7017714977264404 pose_orientation_w: 0.7123847603797913 pose_orientation_yaw: 1.5557808876037598 velocity_linear: 12.21684455871582 velocity_angular: 0.014540454372763634 acceleration_linear: 0.23571151494979858 acceleration_angular: 0.0 }
  • Vehicle vehicle_info { stamp_secs: 1604996332 stamp_nsecs: 847945211 autonomy_status: 0 gear_value: 4 vehicle_speed: 43.93000030517578 steering_angle: 0.699999988079071 yaw_rate: 0.0 interior_temperature: 0.0 outside_temperature: 0.0 brake: 0.0 timestamp: 1604996332847 turn_left_light: 0 turn_right_light: 0 longitude_acc: -0.03125 lateral_acc: 0.0 }
  • KITTI 目录 标注文件目录结构 +--- image_2 | +--- 000000.png | +--- 000001.png | +--- 000002.png +--- label_2 | +--- 000000.txt | +--- 000001.txt | +--- 000002.txt 推理文件目录结构 +--- 000000.txt +--- 000001.txt +--- 000002.txt 示例标注/推理文件 2D目标检测-KITTI.txt Car 0.00 0 -1.57 956 503 980 524 2.61 2.77 5.92 3.39 54.15 -0.01 -1.55 0. Car 0.00 0 -1.57 904 508 931 531 2.36 1.41 11.72 -3.22 40.29 1.14 -1.57 0. Car 0.00 0 -1.57 1118 514 1149 538 1.138 2.723 10.583 -0.636 40.702 0.747 -1.57 0. Car 0.00 0 -1.57 1018 497 1038 520 1.32 1.14 3.78 2.43 37.73 -1.08 -1.57 0. Car 0.00 0 -1.57 1048 508 1078 536 1.61 0.75 5.70 -3.11 28.20 0.63 -1.59 0. Car 0.00 0 -1.57 1175 517 1235 557 1.75 1.96 3.75 -7.57 12.66 -0.67 -1.54 0. Car 0.00 0 -1.57 756 517 802 552 2.61 2.77 5.92 3.39 54.15 -0.01 -1.55 0. Car 0.00 0 -1.57 304 533 446 612 2.36 1.41 11.72 -3.22 40.29 1.14 -1.57 0. Car 0.00 0 -1.57 0 491 310 766 1.138 2.723 10.583 -0.636 40.702 0.747 -1.57 0. Truck 0.00 0 -1.57 510 442 697 601 1.32 1.14 3.78 2.43 37.73 -1.08 -1.57 0. Car 0.00 0 -1.57 879 516 917 546 1.61 0.75 5.70 -3.11 28.20 0.63 -1.59 0. Car 0.00 0 -1.57 986 506 1056 577 1.75 1.96 3.75 -7.57 12.66 -0.67 -1.54 0. Car 0.00 0 -1.57 1072 494 1124 552 1.75 1.96 3.75 -7.57 12.66 -0.67 -1.54 0.
  • Octopus 目录 标注文件目录结构 +--- 1599625710056 | +--- 1599625710056.jpg | +--- 1599625710056.json +--- 1599625740054 | +--- 1599625740054.jpg | +--- 1599625740054.json 推理文件目录结构 +--- 1599625710056 | +--- 1599625710056.json +--- 1599625740054 | +--- 1599625740054.json
  • 逻辑场景管理 逻辑场景功能可批量生成仿真场景,扩充仿真场景库,为自动驾驶开发提供海量仿真场景。自定义逻辑场景的可以进行修改、删除操作,并支持仿真器B。 逻辑场景中场景是完全独立存储与使用的,在逻辑场景生成的泛化场景非常多,其中有价值的场景比例低,如果存储到场景中会对场景模块造成冲击,当前如果认为逻辑场景中保存的个别场景价值高,可以采用下载场景文件到本地再上传到场景模块的方式保留该逻辑场景。 逻辑场景 泛化场景 父主题: 场景管理
  • 预审核任务相关操作 在“预审核任务”列表,还可以进行以下操作。 表2 预审核任务相关操作 任务 操作步骤 查询预审核任务 在搜索输入框中输入搜索条件,按回车键即可查询任务。 查看模型 单击模型名称,界面跳转至模型详情,可查看模型。 查看任务日志 单击操作栏中的“日志”,可查看或下载日志详情。 删除任务 选择单个任务,单击操作栏的“删除”,删除单个任务。 勾选多个任务,单击列表上方的“批量删除”,可批量删除任务。
  • 场景预览 场景预览当前有两种呈现方式:动态场景预览和地图场景预览。 动态场景预览:场景文件中存在完整的地图文件和动态场景文件,且动态场景文件为.xosc格式时显示。 地图场景预览:场景文件缺失或部分缺失,动态场景文件为.xml格式,场景文件解析失败或其他不支持动态场景预览的情况时显示。 动态场景预览 图1 动态场景预览页面 表2 动态场景预览页面详细说明 序号 区 域名 称 说明 1 动态场景预览区域 车辆的行驶轨迹,随着主车的行驶感知在主车辆周围出现的其他物体,如其他车辆、行人和交通信号等。目前可感知的物体类型请见感知物体类型。鼠标移动至道路时,道路会变红。遇到信号灯,车辆会按照红绿灯指示行驶。 2 交通参与物状态 可根据需要选择显示参与物状态。当前支持的参与物有参考线、车道、车道线、中心车道、交通信号、Trigger。 默认勾选Trigger,当出现时,单击图标,地图中会出现trigger的详细信息。 交通信号包含信号灯和交通标识牌。 3 视频播放控件 控制视频播放暂停回放按钮,支持逐帧和倍速播放。地图文件超过1MB不支持高倍速预览。 4 场景切换 视角切换:跟车、俯视、驾驶,自由。当在3D回放页面拖动鼠标时,即可切换为自由视角。 2D/3D切换:可单击“2D/3D”,可切换2D,3D场景。 地图场景预览 图2 地图场景预览页面 表3 地图场景预览页面详细说明 序号 区域名称 说明 1 地图场景预览区域 鼠标上下滚动,可以放大缩小图片,鼠标左键可旋转图片,右键可拖动图片。 2 交通参与物状态 可根据需要选择显示参与物状态。当前支持的参与物有参考线、车道、车道线、中心车道、信号灯。 3 场景刷新 单击右下方加号、减号和刷新按钮,放大、缩小、还原地图。
  • 编辑评测指标 评测类型为内置评测配置时,可为评测添加或删除评测指标,便于管理。 单击评测名称,在评测项目详情页,自定义评测配置部分,单击“编辑”。 单击“添加评测指标”,选择需要添加的内置评测的指标,单击“确认”。 设置指标的阈值和重要度。 阈值设置:单击“阈值设置”列中的编辑按钮,可设置对应阈值。部分指标支持设置阈值,请以界面展示为准。 重要度:在“重要度”列选择主要或次要。 设置评分方案。 可选主要次要log函数、主要次要均匀权重、全部均匀权重。具体介绍请查看评测分数计算介绍。 删除评测指标。 单击评测指标“操作”列内的“删除”,删除该评测指标。 被任务使用的评测项目和镜像不能删除。 以上信息选择无误后,单击“保存”,评测指标编辑完成。
  • 绘制对象 单击语音标注任务名称,选择任意一个文件进入语音标注模板工具进行人工标注。 播放音频。 单击播放按钮或音频展示区,播放音频。 添加标注。 按下鼠标左键在音频展示区域拖动,松开鼠标后,标注列表中将增加一行标注信息。 修改标注类型。 单击“标注类型”,选择合适的标注物。 完善标注信息。 选择音频的性别和额外属性,填写音频的内容和讲话人角色信息。 性别:选择讲话人的性别。 内容:描述当前讲话的内容。 角色:判断当前讲话人的角色。 属性:选择音频的额外属性。 修改标注音频。 鼠标悬浮到已标注的音频段落前后,出现方向箭头后,拖动标注框,可以延长或缩短标注音频段落。 播放音频段落。 单击标注任务列表操作栏的“播放”,可以播放当前标注的音频段落。 删除音频段落。 单击标注任务列表操作栏的“删除”,可以删除当前标注的音频段落。 审核音频段落。 单击标注任务列表操作栏的“审核”,可以审核当前标注的音频段落。 调整播放倍速。 拖动播放倍速进度条,调整播放倍速。调整范围为(0.1,10]。 设置前后静音段。 勾选前后静音段的前面的复选框后,即可在进度条上设置前静音段和后静音段。 快进快退播放音频。 单击快进或快退按钮,快速定位音频播放时间点。 查看标注物列表和快速搜索标注物。 单击悬浮框中的Open按钮,可以展开标注物列表,查看当前支持的所有标注物;打开Search开关后,可以输入关键字快速搜索标注物。 展开标注物列表,支持过滤搜索。
  • 2D图像列表相关操作 在2D图像列表,还可以进行以下操作。 表1 2D图像列表相关操作 任务 操作步骤 搜索模型生成的2D图像 在搜索框中输入关键字搜索相关2D图像生成作业名称。 查看模型生成的2D图像详情 单击模型生成的2D图像生成作业名称,即可查看模型生成的2D图像详情页。 显示位置框:可选择是否显示位置框。 下载图片:鼠标悬停图片,可选择单张下载图片至本地。 删除图片:可选择单张或批量删除图片。 清理失效图片:如果有失效的图片,可选择单击右上角“清理失效图片”,清理失效图片。 终止模型生成2D图像 单击操作栏的“终止”,即可终止状态为“执行中”的模型。 删除模型生成的2D图像 单击操作栏的“删除”,即可删除模型生成的2D图像信息。 说明: 删除后无法恢复,请谨慎操作(OBS中的图片数据需用户手动清理)。
  • 2D3D关联标注 2D3D关联标注复杂,类型多样,故平台开发多种标注工具,辅助标注工作,提高标注人员标注效率。 表9 标注工具说明 一级图标 二级图标 名称 功能 快捷键 无 选择 单击3D框进入选择状态,可对3D框进行三维拖动。 无 无 修改 双击3D框进入修改状态,可对3D框的三视图进行调整。 无 从上至下依次是: 标注 智能缩框标注 标注:在标注类别中选择标注框,进行普通3D框标注。 智能缩框标注:可根据框选范围内点云大小智能缩进标注框 标注:V 智能缩框标注:B 从上至下依次是: 撤销 恢复 撤销:撤销上一次操作。 恢复:恢复上一次撤销的操作。 撤销:Ctrl+Z 恢复:Ctrl+Y 从上至下依次是: 旋转 旋转90° 旋转180° 旋转点云图像。长按图标或快捷键点云图像会一直旋转。 按照箭头所示方向分别旋转点云图像90度和180度。 顺转:1或左键图标 逆转:Shift +1或右键图标 顺转90°:2或左键图标 逆转90°:Shift +2或右键图标 旋转180°:3 从上至下依次是: 记录位置 返回记录位置 复位 点云角度保持原状 通过单击“记录位置”记录当前点云的视角,调整视角后可通过单击‘返回记录位置’,回到记录视角。 复位:回到初始点云视角。 点云角度保持原状:开启后,双击打开三视图不会改变点云视角。 记录位置:R 返回记录位置:Shift+R 复位:O 从上至下依次是: 复制上帧 对比上帧 同步追踪数据 显示轨迹线 添加轨迹点 插值标注 复制上帧:将上一帧标注框完全复制到当前帧。第一帧不可用复制上帧功能。 对比上帧:标注界面分为两部分,左图是上一帧点云,右图是当前帧点云,可对前后两帧信息进行对比。 同步追踪数据:选中标注物后执行该操作可将当前任务中相同ID的所有标注物的大小类型进行覆盖。 显示轨迹线:选择3D框,开启此功能后可将当前任务中与此标注物ID相同的框进行轨迹线的连接。 添加轨迹点:开启后左键添加轨迹点,右键撤销当页轨迹点,并重新规划轨迹线,此ID最后一帧不可操作。 插值标注:当需要在第n帧和第n+k帧中标注完同一个追踪对象时,可以自动计算出此对象在中间k-1帧中的标注框。 复制上帧:F 从上至下依次为: 添加 列表 添加:选中标注物,添加提示信息后自动进入全局标注物列表。 列表:打开列表可对添加的标注物进行应用、删除、保留ID等操作。 添加:I 列表:D 无 2D3D互转开关 开启后绘制2D、3D框后可转换出对应3D、2D框。 无 无 假想 预设各标注物类别的xyz参考值,选中框后单击对应参考值可直接应用。 无 无 高度过滤 设置高度限制,该高度以下点云无法被框选标注。 无 无 地面点限制 开启后无法对地面点云进行标注。 无 无 删除 选中3D框后单击图标或快捷键可删除框。 Delete 无 长宽互换 可对3D框的xy值进行互换。 T 无 补框 仅3D联合任务和2D3D关联标注任务点开2D缩略图时会显示此工具,当3D框缺少对应2D框时可使用此工具。 G 无 比例尺 调整比例。 U 从上至下依次为: 全部添加 全部删除 增加单个 删除单个 全部添加:为所有3D框添加锚点。 全部删除:删除所有3D框的锚点。 增加单个:选择单个3D框后增加单个锚点。 删除单个:删除单个3D框的锚点。 注:可通过Shift+左键单击3D框正上方角点修改锚点位置。 全部添加:Z 全部删除:X 增加单个:Shift+Z 删除单个:Shift+X 从上至下依次为: 缩略图 标注列表 隐藏范围线 缩略图:开启后隐藏界面下方缩略图。 标注列表:开启后隐藏标注列表。 隐藏范围线:开启后隐藏范围线。 无 无 无 标注物 标注物快捷键,最多8个,按照使用频次排序。 Alt+(1~8) 无 下降/上升 前移/后移 左移/右移 通过单击按钮或快捷键执行平移操作。 下降:Q 上升:E 前移:W 后移:S 左移:A 右移:D 无 上旋/下旋 左旋/右旋 无 上旋:↑ 下旋:↓ 左旋:← 右旋:→ 无 上一张 无 Shift+Q 无 下一张 无 Shift +E 无 保存 保存当页信息,勾选已标注/审核通过。 Ctrl+S
  • 3D语义标注 3D语义标注复杂,类型多样,故平台开发多种标注工具,辅助标注工作,提高标注人员标注效率。 表7 标注工具使用说明 一级图标 二级图标 功能 快捷键 无 多边形绘制 Z 无 矩形绘制 X 无 画笔绘制 C 无 画笔调整变大小 鼠标滚轮前后滚动 无 框选绘制 框选:V 确认:Enter 取消:空格键 无 撤回上一步 Ctrl+Z 隐藏范围线 缩略图 标注列表 无 记录当前位置 回到上次位置 复位 记录当前位置:R 回到上次位置:Shift+R 点云图复位:O 无 显示强度屏 I 旋转 旋转90° 旋转180° 顺转:1或左键图标 逆转:Shift +1或右键图标 顺转90°:2或左键图标 逆转90°:Shift +2或右键图标 旋转180°:3 无 下降/上升 前移/后移 左移/右移 下降:Q 上升:E 前移:W 后移:S 无 上旋/下旋 左旋/右旋 上旋:↑ 下旋:↓ 左旋:← 右旋:→ 无 标注物 标注物快捷键,最多8个,按照使用频次排序。 Alt+(1~8) 无 无 点云图复位。 O 无 无 上一张。 Shift+Q 无 无 下一张。 Shift+E 无 无 结束绘制状态。 ESC 无 无 保存当页信息,勾选已标注/审核通过。 Ctrl+S 表8 标注快捷键说明 快捷键 功能 1 多边形绘制。 2 矩形绘制。 3 画笔绘制。 4 框选绘制。 Ctrl+Z 撤回上一步。 空格键 取消框选。 Enter 确认框选。 ESC 结束绘制状态。 向后滚动鼠标滚轮 画笔调整变大。 向前滚动鼠标滚轮 画笔调整变小。 O 点云图复位。
  • 2D语义标注 2D语义标注任务较多,类型多样,复用了大部分2D标注工具,在此基础上增加了以下快捷键促进标注速度。请参考下表。 表4 标注快捷键说明 快捷键 功能 空格键 多边形闭合。 X 相交多边形共边。 5(非小键盘) 进入多边形绘制工具。 右键 未闭合状态撤销多边形上一点。 Alt+V/alt+鼠标左键 删除多边形上某点。 Alt+鼠标左键/鼠标滚轮 拖动语义标注的图片。 9(非小键盘) 绘制切割线。 M 绘制切割线后切割。 Z 开启交互式分割。 Ctrl+C 复制属性。 Ctrl+V 粘贴属性。 Delete 删除标注对象。 Shift+b 比例尺。 Ctrl+Z 撤回上一步操作。 S 保存本页标注。 T 隐藏标题。 L 隐藏标注。
  • 2D标注 2D标注任务较多,类型多样,故平台开发多种标注工具,辅助标注工作,提高标注人员标注效率。 表1 标注工具说明 一级图标 二级图标 名称 功能 快捷键 无 选择 拖动标注框。 ~ 无 修改 可修改点的位置、线和框的形状,右键可打开属性。 Escape 从上至下依次为: 点 实线 矩形 obb 多边形 2.5D 虚线 圆形 切割线 分别为点、实线、矩形、obb、多边形、2.5D、虚线、圆。 标注任务创建完毕,该标注任务所使用的所有标注已添加在任务中。单击标注形状,选择标注类别即可进行标注。 参考二级图标中的数字 从上至下依次为: 复制上帧 对比上帧 复制上帧:将上一帧标注物完全复制到当前帧,适用于当前帧与上一帧标注物位置大致相同。 说明: 第一帧图片不可用追踪功能。当前帧没有任何标注物。 对比上帧:上一帧和当前帧同屏展示,可进行对比前后帧信息。 复制上帧:F 从上至下依次为: 添加 列表 在同一标注任务中,会有多张图片中存在相似或一致的待标注对象。此时可利用全局标注工具将标注对象添加到全局标注列表中,只要切换图片应用即可,省去重复标注步骤。 添加: 为标注物添加提示信息后自动加入到列表。 列表: 打开全局标注物列表,可对列表中的标注物进行应用、删除、保留ID等操作。 添加:I 列表:D 无 比例尺 开启后鼠标指针带比例尺。一格为5px。 shift+b 无 撤回 撤销上一步。 Ctrl+z 无 复位 将图片重置到初始位置、大小。 o 无 悬浮 开启后可通过鼠标悬停标注物查看额外属性、审核属性及描述。 + 从上至下依次为: 隐藏标注 隐藏标题 隐藏预览图 隐藏标注列表 网格 隐藏标注:开启后隐藏所有标注物。 隐藏标题:开启后隐藏所有标注物的标题。 隐藏预览图:开启后可隐藏界面下方缩略图。 隐藏标注列表:开启后可隐藏界面右侧标注列表。 网格:开启后可全图显示网格,每个小方格的边长为5px。 隐藏标注:L 隐藏标题:T 从上至下依次为: 绘制顺序 ID顺序 绘制顺序:可调整透明度,区域重叠时依照后绘制在上覆盖原则。 ID顺序:可调整透明度,图层重叠时按照ID较大的覆盖较小的原则,不支持实时刷新。 暂无 无 上一张 无 Ctrl+Q 无 下一张 无 Ctrl+E 无 保存 保存当页信息。 S
  • 数据处理作业队列相关操作 在“作业队列”页签,还可以进行以下操作。 表1 作业队列相关操作 任务 操作步骤 置顶作业 单击操作栏中的“置顶”,即可将作业调整至队列中最高优先级。 置底作业 单击操作栏中的“置底”,即可将作业调整至队列中最低优先级。 上移作业 单击操作栏中的“上移”,即可将作业调整至队列中上一级。 下移作业 单击操作栏中的“下移”,即可将作业调整至队列中下一级。 更新作业优先级 勾选单个或多个作业。 单击“更新优先级”,输入[-50,50]的整数,数字越大,优先级越高。 单击“确定”,优先级更改成功。相同优先级的任务,作业队列更新时间越早,优先级越高。 搜索作业 在搜索输入框中输入“作业ID”,按回车键即可查询。
  • 考试记录 当项目关联了考试题库时,系统会自动在考试系统生成待考试记录。项目管理考试题库操作请参考关联题库。 管理员可查看考试记录,并进行以下操作。 流程 操作 编辑考试记录 在考试记录列表,单击“考试记录”,单击操作栏中的“编辑”,可根据情况编辑考试记录的状态。 复核考试记录 在考试记录列表,单击“考试记录”,单击操作栏中的“复核”。 单击“确认”,单击图片上的“复核”,对分数进行复核。 说明: 当考试记录的状态为终态(判卷失败、已通过、失败)时,方可进行复核操作。 删除考试记录 在考试记录列表,单击“考试记录”,单击操作栏中的“删除”,可根据情况删除考试记录的状态。 说明: 当考试记录的状态为终态(判卷失败、已通过、失败)时,方可进行删除操作。 只有一条未通过记录不允许删除。 当考试记录生成后,由对应的标注员或者审核员登录系统,单击“考试记录”名称,根据提示就可以进行考试。
  • 仿真服务简介 Octopus仿真服务支持多种功能操作。包括用户在云上以类似操作远程桌面方式操作图形化界面的仿真软件的在线仿真服务,基于OpenSCENARIO等标准格式的仿真场景管理。泛化大量仿真场景,规控算法工程管理,多场景并行高速运行的批量仿真服务。用户可通过仿真服务完成在线仿真、仿真场景,创建仿真评测任务等。仿真服务开发流程如下。 图1 仿真服务开发流程 仿真服务操作引导如下: 在线仿真:提供类似本地开发的体验,支持客户直接使用线上仿真器开发,并无痛对接云端的场景管理:包含加载、绘制、保存等操作。 算法管理:用于对接客户的上云算法,并支持算法的版本级管理,并可自动化触发关联的批量算法。 评测管理:支持内置评测配置和自定义评测镜像,对仿真任务中的算法展开评测。 场景管理:包含场景、场景库、逻辑场景、逻辑场景库、测试用例、测试套件等。支持页面上传、泛化、在线仿真编辑等场景录入方式,支持地图、场景的在线预览,并支持场景标签等功能。 任务管理:选择仿真算法和仿真场景创建仿真任务,从行车安全、驾驶行为、乘员舒适性等角度衡量仿真算法控制效果,支持可视化仿真结果。 父主题: 仿真服务
  • 制作推理服务镜像 推理服务镜像同训练任务镜像一样,必须内置一个用户名为“ma-user”,组名为“ma-group”的普通用户,且必须确保该用户的uid=1000、gid=100。 需要明确设置镜像的启动命令。执行命令为:CMD sh /home/mind/run.sh 服务端必须使用https协议, 且暴露在所有网络平面(0.0.0.0)的“8080”端口。 在“8080”端口,提供URL路径为“/health”的健康检查接口供健康检查使用。 接口仅支持POST、GET、PUT、DELETE四种方法。 Dockerfile示例: FROM python:3.11 USER root RUN useradd -m -d /home/ma-user -s /bin/bash -g 100 -u 1000 ma-user USER ma-user RUN pip install --progress-bar off flask cryptography WORKDIR /home/ma-user COPY server.py . CMD python server.py HTTPS Server示例: from flask import Flask, request import json app = Flask(__name__) @app.route('/greet', methods=['POST']) def say_hello_func(): print("----------- in hello func ----------") data = json.loads(request.get_data(as_text=True)) print(data) username = data['name'] rsp_msg = 'Hello, {}!'.format(username) return json.dumps({"response":rsp_msg}, indent=4) @app.route('/goodbye', methods=['GET']) def say_goodbye_func(): print("----------- in goodbye func ----------") return '\nGoodbye!\n' @app.route('/', methods=['POST']) def default_func(): print("----------- in default func ----------") data = json.loads(request.get_data(as_text=True)) return '\n called default func !\n {} \n'.format(str(data)) @app.route('/health', methods=['GET']) def healthy(): return "{\"status\": \"OK\"}" # host must be "0.0.0.0", port must be 8080 if __name__ == '__main__': # 访问创建推理服务时选择的模型版本文件 torchserve = PTVisionService(model_path=os.getenv('OCTOPUS_MODEL') + '/best.pt') # host must be "0.0.0.0", port must be 8080 app.run(host="0.0.0.0", port=8080, ssl_context='adhoc') 注意:在创建推理服务时选择的模型版本文件将在服务启动时下载到OCTOPUS_MODEL对应的路径下: 环境变量名称 含义 默认值(默认值可能会随版本变化,不建议直接使用) OCTOPUS_MODEL 模型版本文件下载目录 /home/mind/model 在本地机器调试 自定义引擎的规范可以在安装有docker的本地机器上通过以下步骤提前验证: 将自定义引擎镜像下载至本地机器,假设镜像名为“custom_engine:v1”。 将模型版本文件夹复制到本地机器,假设模型包文件夹名字为“model”。 在模型文件夹的同级目录下验证如下命令启动服务: docker run -u 1000:100 -p 8080:8080 -v /home/model:/home/mind/model -e OCTOPUS_MODEL=/home/mind/model custom_engine:v1 在本地机器上启动另一个终端,执行以下验证指令,得到符合预期的推理结果。 curl -k https://127.0.0.1:8080/${推理服务的请求路径} 本地调试完成后,每次都需将镜像推送至新版本,使用二次推送镜像功能会导致推理服务镜像更新不生效。
  • 制作训练镜像 八爪鱼训练镜像使用ma-user用户运行,用户需保证镜像内已创建ma-user用户,且训练过程中使用到的python环境或其他依赖对ma-user具有权限。本地镜像构建完成后,需要将镜像上传到八爪鱼平台镜像仓库。 如果使用dockerfile构建,参考命令为docker build -f Dockerfile -t new_image:1.0 如果使用容器命令行方式构建,参考命令为docker commit {container-id} new_image:1.0 以下分别介绍“从0到1构建”和“从已有镜像迁移”两种制作方式。
  • 管理团队成员 平台管理员可根据业务需求对团队中的成员进行管理,可为团队新增人员或删除人员,可为团队中成员重新分配职能。 单击团队名称,可查看该团队内所有成员及职能。 查找成员:在搜索框内输入名字进行查找。 新增人员:单击团队名称,单击“新增人员”,选择人员并分配职能。 删除成员:单击人员名称后“操作”一栏内的“删除”,可删除该成员。删除后不可恢复,请谨慎操作。 成员删除后,该成员在此团队关联的所有项目内的标注效率也被删除。 该成员名下有未完成任务,不可删除该成员。
  • 上传模型文件新建版本 Octopus支持用户对已有的模型进行版本更新,步骤如下: 数据上传中刷新或关闭浏览器会导致文件上传异常,请谨慎操作! 准备模型文件,模型文件具体要求请参见模型文件说明。 单击模型仓库名称进入详情界面,单击“新建版本”或者在模型列表页单击“新建版本”。 根据不同数据来源创建模型版本。 数据来源选择“本地”(模型文件存放在本地)。 根据需要输入模型版本描述,选择关联已有算法。 在“模型版本”单击添加按钮,选择本地数据。或直接将本地模型文件夹拖入框内。 单击“上传”,等待数据上传成功。 数据来源选择“OBS”(模型文件存放在OBS指定路径)。 根据需要输入模型版本描述,选择关联已有算法。 输入访问密钥、私有访问密钥和OBS地址,勾选服务声明信息。 单击“上传”,等待数据上传成功。
  • 在线编辑模型 平台提供模型编辑器,在模型详情页单击“在线编辑”,进入该模型的在线编辑页面。界面左侧显示的是该模型包内的所有文件,以目录树的形式展示,支持编程语言的渲染,支持MarkDown文件的实时双屏预览。 新建文件夹:选中文件夹并单击,用户将新建一个该文件夹的子文件夹。选中工程文件并单击,将会新建一个新的文件夹,与用户已有的文件夹同级。 新建文件:单击,用户可新建文件。 修改文件:单击,用户可对文件名称进行修改。 下载文件:单击,用户可下载文件。 删除文件:单击,用户可删除文件。 文件(夹)名称不能为空,且只能包含数字、英文、中文、点、下划线和中划线。 删除后不可恢复,请谨慎操作。 配置界面:单击,按照喜好配置界面基本属性,查看快捷键说明。 删除当前模型文件:单击“删除”,删除当前页面的模型文件。删除后不可恢复,请谨慎操作。 保存模型文件:单击“保存”,保存当前模型。模型更新完毕请及时保存。
  • 模型仓库介绍 模型管理模块支持以模型仓库的方式对模型进行纳管和归档,每个模型仓库中又可以创建若干个模型版本,方便对同类模型统一管理。 模型包含镜像和文件两部分。其中镜像与模型仓库绑定,也就是说同一个模型仓库的版本共享一个镜像;文件存储在对象存储(OBS)中, 各个版本的文件一般不同。 模型可用于预标注、预审核、训练、评测、编译、推理等服务,下图介绍3种常见作业流程: 图1 新建空模型仓库归档训练作业产物 图2 预训练模型上云进行增量训练 图3 利用云上算力部署模型为推理服务
  • 套件用例相关操作 在“用例列表”,还可以进行以下操作。 表2 套件用例相关操作 任务 操作步骤 在线查看用例 单击用例列表后的操作栏中的“查看场景”,可选择在线仿真器,在线查看用例。 复用用例 单击操作栏中“另存为”,输入名称,即可生成另一个名称的用例。 删除用例 单击操作栏中“从套件中删除”,删除用例,删除后无法恢复,请谨慎操作。 查询用例 在页面右侧,可按照“用例名称”、“用例ID”查询用例,也可在搜索框中输入搜索内容对用例进行查询。
  • 编译镜像相关操作 在“编译镜像”列表,可对镜像进行以下操作。 表2 编译镜像相关操作 任务 操作步骤 查询镜像 在搜索输入框中输入搜索条件,按回车键即可查询。 查看镜像详情 单击镜像名称,查看镜像详情。 镜像详情:镜像ID、名称、描述、状态、芯片名称、引擎名称、创建时间、更新时间、Boot文件路径等。 参数详情:参数列表和环境变量的参数详情。 删除镜像 单击操作栏的“删除”,删除镜像。 编辑镜像 单击操作栏的“编辑”,可修改镜像信息。
  • 预审核规则格式说明 预审核模型使用的审核规则以字典的格式保存在特定目录下的json文件中(TARGET_RULES_DIR),以便在审核报告中展示。 { "rules": [ { "rule": "", #规则名称 "description": "", #规则具体要求 "inspection_attribute": "" #此规则对应的审核属性,2D包含:多标,漏标,类型错误,未贴合,属性错误。3D包含:多标,漏标,类型错误,未贴合,属性错误,车头方向错误,锚点错误。 } … … ] } 示例: { "rules": [ { "rule": "标注框贴合精度", "description": "标注框与实际对象误差不超过5个像素", "inspection_attribute": "未贴合" }, { "rule": "标注框类别", "description": "类别标注错误", "inspection_attribute": "类型错误" } ] }
  • 预审核结果格式说明 审核完毕后,需要按照规定格式组织预标注结果,并保存在特定路径(TARGET_RESULT_DIR)下的json文件中。路径要求见镜像制作(标注)。 Json文件内容组织结构如下所示,labels字段中保存每个对象的标注信息、审核模型预测信息(predict_infos)和审核结果信息(inspection)。 { "labels":[{ #1. 此对象的标注信息 (直接从源数据labels.json中获取),如果未标注出此对象,则无此部分信息 … … #2.此对象的模型预测信息 ,如果模型未预测出此对象,则无此部分信息 "predict_infos": { #形状坐标信息 #对象类别名称 #额外属性信息 } #3.审核结果,如果未审核此对象,则无此部分信息 "inspection": { #字段名称取自OCTPS_INSPECTION_ATTRI_DIR文件 } }, … … ] } 其中3D大规模点云分割任务还包含“labels_ext”和“predict_labels_ext”字段,具体参考•3D大规模点云分割:。 { "labels":[], "labels_ext":{ } "predict_labels":[] } 以2D目标检测为例,完整json结果文件样例如下: { "labels": [ { #1. 此对象的标注信息(直接从源数据labels.json中获取) "label_meta_id": 1846, "bndbox": { "ymin": 545.4334, "xmin": 1158.3188, "ymax": 705.71844, "xmax": 1436.3274 }, "name": "框0504", "shape_type": "bndbox", "serial_number": 2, "label_object_id": 2, "attribute": "{\"优先级\":\"1\"}", "label_meta_name": "框0504", #2.此对象的模型预测信息 "predict_infos": { "bndbox": { "ymin": 545.4334, "xmin": 1158.3188, "ymax": 725.71844, "xmax": 1456.3274 }, "label_meta_name": "框0504", "attribute": "{\"优先级\":\"1\"}" }, #3.审核结果 "inspection": { #字段名称取自OCTPS_INSPECTION_ATTRI_DIR文件 "miss_label_error": false, "vehicle_direction_error": false, "error_desc": "无效", "attribute_error": true, "out_range_label_error": true, "anchor_error": false, "classification_error": false, "extra_label_error": false } } ] } 不同类型的标注对象形状基本信息所需格式不同。下面为各类标注对象predict_infos的字段说明: 2D目标检测 {"predict_infos": { "bndbox": { "ymin": 545.4334, "xmin": 1158.3188, "ymax": 725.71844, "xmax": 1456.3274 }, "label_meta_name": "框0504", "attribute": "{\"优先级\":\"1\"}" } } 2D语义分割 {"predict_infos": { "polygon": { "size": 3, "points": [ { "xpoint": 135.03, "ypoint": 482.94937 }, { "xpoint": 84.318344, "ypoint": 554.4891 }, { "xpoint": 135.03, "ypoint": 482.94937 } ] }, "label_meta_name": "多边形0504", "attribute": "{\"优先级\":\"1\"}" } } 2D车道线 {"predict_infos": { "line": { "size": 3, "points": [ { "xpoint": 901.138, "ypoint": 553.583 }, { "xpoint": 741.36, "ypoint": 630.367 }, { "xpoint": 618.153, "ypoint": 681.566 } ] }, "label_meta_name": "线0504", "attribute": "{\"优先级\":\"1\"}" } } 3D目标检测 { "predict_infos": { "label_meta_name": "Car", "cube_3d": { "rotation": { "x": 0.0, "y": 0.0, "z": 0.08726646 }, "location": { "x": -40.23651584555386, "y": 1.2362389665094042, "z": -0.8413386615781039 }, "attribute": "{}", "dimensions": { "length": 4.459540762142082, "width": 1.4870339632034302, "height": 1.4895729290943762 } } } } 3D大规模点云分割 {"predict_infos": { "polygon_3d_v2": { "ascii_char": "2" }, "name": "car", } } 3D大规模点云分割完整样例 { "labels": [ { "label_meta_id": 4867, "create_time": 0, "polygon_3d_v2": { "ascii_char": "3" }, "name": "car", "shape_type": "polygon_3d_v2", "serial_number": 0, "label_object_id": -1, "attribute": "", "label_meta_name": "car", "inspection": { "miss_label_error": false, "vehicle_direction_error": false, "error_desc": "", "attribute_error": false, "out_range_label_error": false, "anchor_error": false, "classification_error": false, "extra_label_error": false }, "predict_infos": { "polygon_3d_v2": { "ascii_char": "2" }, "name": "car" } }, { "predict_infos": { "polygon_3d_v2": { "ascii_char": "4" }, "name": "van" } } ], "labels_ext": { "ascii_string": "3333333333 3333333333" }, "predict_labels_ext": { "ascii_string": "222222222244444 2222222222" } } labels_ext中保存点云中每个点的标注类别,具体内容说明参考OCTOPUS数据集格式说明。predict_labels_ext中保存点云中每个点的模型预测类别。 3D语义分割审核结果可视化说明:针对有审核属性错误的标注对象,展示该标注对象对应位置点的预测类别。
  • 构建镜像 Octopus平台依赖算子镜像内的/bin/bash、stdbuf、tee软件,请确保基础镜像内包含上述软件且能通过PATH找到。 Dockerfile示例 图8 示例 启动命令: python3 /home/main/ros2opendata.py --lidar_calibration_id 5 构建镜像 运行命令: docker build -f dockerfile -t rosbag2opendata:0.1 . 本地调试 准备一个待处理的rosbag,如~/data/20220620.bag,一个示例Octopus_data_collections文件,如~/data/Octopus_data_collections.yaml运行如下命令(基于上述示例镜像): docker run -v ${HOME}/data/20220620.bag:/tmp/data/20220620.bag -v ${HOME}/tmp/output:/tmp/output -v ${HOME}/data/Octopus_data_collections.yaml:/tmp/Octopus_data_collections.yaml --env output_dir=/tmp/output --env rosbag_path=/tmp/data/20220620.bag --env yaml_path=/tmp/Octopus_data_collections.yaml --env tmp_dir=/tmp/workspace rosbag2opendata:0.1 /bin/sh -c “/home/main/ros2opendata.py --lidar_calibration_id 5” 完成后在${HOME}/tmp/output目录查看运行结果文件: 图9 运行结果
共100000条
提示

您即将访问非华为云网站,请注意账号财产安全