模型微调
模型微调是在不依赖训练服务的情况下对模型进行二次训练,达到二次调优的效果。调优后的迭代模型可以在智驾模型管理列表中查看。
新建模型微调任务
- 完成OBS授权委托,具体操作步骤请参考授权操作步骤。
- 在服务控制台“总览 > 模型微调”,开通“智驾模型微调”服务。
- 在左侧菜单栏中选择“智驾模型服务 > 模型微调”。
- 单击“新建任务”。在新建模型微调任务页面,填写基本信息。
- 名称:只能包含数字、英文、中文、下划线、中划线,输入长度不得超过64个字符。
- 描述:简要描述任务,不能包含“@^\#$%&*<>'|"/`”,输入长度不能超过256个字符。
- 完成模型配置。
- 模型级别:可选择“初始模型”和“迭代模型”。“初始模型”为Octopus平台提供的内置模型,“迭代模型”是用户二次微调后的模型。
- 输入模型:选择需要进行微调的模型和版本。初始模型提供的内置模型如下:
表1 Octopus平台提供的内置模型 模型名称
说明
hw_model_3d_detection
3D检测模型。
hw_model_2dgen_weather
2D图像生成-天气模型。
hw_model_autolabel
2D全景分割模型。
hw_model_4dbev_lane_line_detection
车道线预标注模型。
hw_model_4dbev_road_mark_detection
路面预标识模型。
hw_model_2d_3d_detection_fusion
2D3D融合检测模型。
- 输出模型:模型微调后存储的模型仓库。
- 模型版本描述:简要描述模型版本,不能包含“@^\#$%&*<>'|"/`”,输入长度不能超过256个字符。
- 完成算法配置。
- 参数列表:选择输入模型及版本后,将自动关联显示参数列表信息。支持自定义value值。
- 环境变量列表:选择输入模型及版本后,将自动关联显示环境变量列表信息。用户可以自定义value值。
当预标注模型的key为semantic_categories、instance_categories时,value值是数据集中所有的标注类型名称(允许中文,不允许遗漏某个标注类型),按语义分割和实例分割,分开统计后的值。示例如下:
- instance_categories:“交通警示物,骑行者,其它车辆,两轮车,消防栓,柱子,地面标识,限位块,行人,车辆,地锁,减速带”
- semantic_categories:“可行驶区域,路沿,车道线,车位线”
- 数据集:选择训练的数据集。最多支持选择5个数据集。数据集中的标注数据必须是八爪鱼格式的。格式参考:车道线预标注模型和路面预标识模型数据集格式。
- 资源规格:选择训练使用的资源池和资源规格。当前支持ModelArt资源池的Vnt1、Ant8、pool-octopus-ma-gpu-ant03、octopus-v100规格。
- 单击“确认”,下发模型微调任务。
模型微调任务相关操作
在模型微调任务列表页,还可以完成以下操作。
任务 |
操作步骤 |
---|---|
查看任务详情 |
单击任务名称,在任务详情页面查看模型微调任务详情,包括任务基本信息、参数详情以及任务日志。 |
停止任务 |
当任务状态为“排队中”或“运行中”时,可单击操作栏内的“停止”,进行停止任务操作。 |
复制任务 |
单击操作栏内的“复制”,可基于现有任务创建新任务。 |
单个删除任务 |
单击操作栏内的“删除”可单个删除任务。模型微调任务删除后无法恢复,请谨慎操作。 |
批量删除任务 |
勾选名称前面的复选框,单击列表上方的“删除”,可批量删除任务。模型微调任务删除后无法恢复,请谨慎操作。 |
查询模型微调任务 |
在搜索输入框中输入搜索条件,按回车键即可查询目标任务。 |
车道线预标注模型和路面预标识模型数据集格式
当模型微调选择hw_model_4dbev_road_mark_detection或是hw_model_4dbev_lane_line_detection时的输入数据格式。
|--- TestSet |--- folder_0 |--- 4DAnnotation |--- timestamps0_timestamps1.json |--- pointcloud_fusion |--- timestamps0_timestamps1.pcd |--- Metadata.xml |--- pose |--- lidar_pose.txt |--- folder_1 |--- 4DAnnotation |--- timestamps0_timestamps1.json |--- pointcloud_fusion |--- timestamps0_timestamps1.pcd |--- Metadata.xml |--- pose |--- lidar_pose.txt |--- ... |---TrainningSet |--- folder_0 |--- 4DAnnotation |--- timestamps0_timestamps1.json |--- pointcloud_fusion |--- timestamps0_timestamps1.pcd |--- Metadata.xml |--- pose |--- lidar_pose.txt |--- folder_1 |--- 4DAnnotation |--- timestamps0_timestamps1.json |--- pointcloud_fusion |--- timestamps0_timestamps1.pcd |--- Metadata.xml |--- pose |--- lidar_pose.txt |--- ... |---ValidationSet |--- folder_0 |--- 4DAnnotation |--- timestamps0_timestamps1.json |--- pointcloud_fusion |--- timestamps0_timestamps1.pcd |--- Metadata.xml |--- pose |--- lidar_pose.txt |--- folder_1 |--- 4DAnnotation |--- timestamps0_timestamps1.json |--- pointcloud_fusion |--- timestamps0_timestamps1.pcd |--- Metadata.xml |--- pose |--- lidar_pose.txt |--- ...
2D3D融合检测模型数据集格式
- 当模型微调选择hw_model_2d_3d_detection_fusion时的输入格式:
|--- raw-data |--- clip_folder1 |--- data #数据文件夹 |--- <timestamps1> #一帧数据 |--- <pcd_timestamp>.pcd #点云文件 |--- <pcd_timestamp>.json #真值结果文件 |--- front.jpg #前视 |--- rear.jpg #后视 |--- left_backward.jpg #左后 |--- left_forward.jpg #左前 |--- right_backward.jpg #右后 |--- right_forward.jpg #右前 |--- ... ... |--- param #内外参文件夹 |--- front.yaml #前视相机内外参 |--- left_backward.yaml #左后相机内外参 |--- left_forward.yaml #左前相机内外参 |--- right_backward.yaml #右后相机内外参 |--- right_forward.yaml #右前相机内外参 |--- rear.yaml #后视相机内外参 |--- lidar.yaml #雷达外参 |--- clip_folder2 |--- data |--- <timestamps1> |--- <pcd_timestamp>.pcd |--- <pcd_timestamp>.json |--- front.jpg |--- rear.jpg |--- left_backward.jpg |--- left_forward.jpg |--- right_backward.jpg |--- right_forward.jpg |--- ... ... |--- param |--- front.yaml |--- left_backward.yaml |--- left_forward.yaml |--- right_backward.yaml |--- right_forward.yaml |--- rear.yaml |--- lidar.yaml |--- ...
- 相机内外参定义
相机内外参文件名:camview.yaml, camview从白名单中选取; 相机内参包括:内参和畸变参数; 相机外参定义为:相机坐标系到IMU坐标系的变换矩阵; <camview>.yaml文件定义如下: --- cameraType: # 0-perspective, 1-fisheye type: 0 K: #opencv-matrix rows:3 cols:3 dt:1 data:[1.0, 0.0, 1.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0] # fx,fy,cx,cy为相机焦距和主点 D: #opencv-matrix rows: 4 #根据实际畸变参数个数填写 cols: 1 dt: 1 data: [0.0, 0.0, 0.0, 0.0] #填入实际的畸变参数 Imagesize: [1, 1] #填入图像宽,高 Transformation: # Camera to IMU rows: 4 cols: 4 dt: 1.0 data: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0] #请填入转换矩阵的实际值
- 激光雷达内外参定义:
文件名:lidar.yaml 外参定义:Lidar坐标系到IMU坐标系的变换矩阵 lidar.yaml文件内容定义: --- Transformation: cols: 4 rows: 4 dt: d data: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0] #根据实际内容填写