自动驾驶云服务 Octopus
自动驾驶云服务 Octopus
- 功能总览
- 产品介绍
- 快速入门
- 用户指南
- API参考
- SDK参考
- 常见问题
- 文档下载
- 通用参考
链接复制成功!
数据提取作业(数据集)
作业输入输出规范
- Input
- rosbag_path: rosbag路径,以.bag结尾。
- output_dir:最终输出数据集路径。
- tmp_dir:供用户存储临时文件的目录。
- task_content_json:人工打标需要的标签信息,详细参考“人工打标支持”。(如果没有人工打标,不需要此参数)。
- Output
- 必须有output_dir/dataset目录,存储数据集文件。数据集文件有格式要求(Octopus、PascalVOC...)。
- 必须有_SUCCESS或 _FAILURE文件,标志用户镜像任务完成(或失败)。
- 可选有output_dir/auxiliary目录,用于存储附加文件。对格式没有限制。
图1 output_dir的格式
- 人工打标支持
程序必须能接受task_content_json,该参数以环境变量的形式引入镜像。task_content_json格式为List of Tags。
如果没有tag,为空list。如果只有一个标签,list内只有一个Tag。
如果start与end一致,代表单帧打标。图2 每个Tag格式示例图3 task_content_json示例
示例代码
作业输入输出规范示例代码如下图所示:
图4 示例1

图5 示例2

构建镜像
Octopus平台依赖算子镜像内的/bin/bash、stdbuf、tee软件,请确保基础镜像内包含上述软件且能通过PATH找到。
- Dockerfile示例。
FROM ros:noetic COPY ros_to_dataset.py /home/main/ # 算法启动示例: # python3 /home/main/ros_to_dataset.py --topic pandar --type pcd RUN apt install ros-noetic-cv-bridge python3-pcl libpcl-dev USER root
- 构建镜像。
docker build -f Dockerfile -t ros-to-dataset:0.1
- 本地调试。
准备一个待处理的rosbag,如~/data/20220620.bag,运行如下命令(基于上述示例镜像):
docker run -v ${HOME}/data/20220620.bag:/tmp/data/20220620.bag -v ${HOME}/tmp/output:/tmp/output --env output_dir=/tmp/output --env rosbag_path=/tmp/data/20220620.bag --env tmp_dir=/tmp/workspace ros-to-dataset:0.1 /bin/sh -c “python3 /home/main/ros_to_dataset.py --topic pandar --type pcd”
完成后在${HOME}/tmp/output目录查看运行结果文件:
图6 运行结果
父主题: 算子示例