更新时间:2026-07-04 GMT+08:00
NPU标注
自动驾驶标注流程包含前处理、3D推理、2D推理、后处理等多个步骤,如果NPU可以处理全部标注流程,则可将标注方案称为NPU标注。
如果标注所有流程均可使用NPU执行,则可以在任务yaml文件中指定流程均运行在NPU上,如下的data-label-workflow-npu.yaml文件可作为标注编排的参考。
data-label-workflow-npu.yaml如下:
apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
name: workflow-name # workflow的名字,根据实际情况修改
namespace: default
spec:
dnsPolicy: ClusterFirstWithHostNet # DNS 解析策略:优先使用集群 DNS,但结合主机网络
hostNetwork: true # 使用主机网络命名空间
entrypoint: task-steps
parallelism: 300 # 并发度限制
schedulerName: volcano
podGC:
strategy: OnPodCompletion # Pod完成后的垃圾回收策略,Pod完成后立即删除
volumes:
- name: data-pvc-volume # 声明挂载远端存储的PVC
persistentVolumeClaim:
claimName: pvc-test # 对应的pvc-test与CCE上配置的PVC名称相同
- name: ascend-driver # 声明驱动,保持不动
hostPath:
path: /usr/local/Ascend/driver
- name: ascend-add-ons # 声明驱动,保持不动
hostPath:
path: /usr/local/Ascend/add-ons
- name: hccn # 声明hccn配置,保持不动
hostPath:
path: /etc/hccn.conf
- name: rclone-conf # 声明rclone conf
secret:
secretName: rclone-test
- emptyDir:
medium: Memory
sizeLimit: 20Gi
name: shm-vol # 挂载该共享内存,该内存大小需要根据实际情况调整,避免出现共享内存错误
ttlStrategy:
secondsAfterCompletion: 600 # 完成后 600 秒自动清理
templates:
- name: task-steps # 主流程入口
steps:
- - name: parallel-run-label # 并行执行步骤名
template: label-dag # 引用的子模板
arguments:
parameters:
- name: snippet-name # 输入参数,此处的snippet-name仅做示例,实际参数根据实际的标注业务进行
value: "{{item.snippet-name}}"
withItems: # 并行执行的Pod,可拓展多个Pod,多套输入参数即对应多个pod
- snippet-name: snippet-name-item
- name: label-dag
inputs:
parameters:
- name: snippet-name
dag:
tasks:
- name: data-label-task
template: data-label-template
arguments:
parameters:
- name: snippet-name
value: "{{inputs.parameters.snippet-name}}"
- name: data-label-template # 数据标注处理模板
inputs:
artifacts:
- mode: 511
name: autolabel-script
path: /root/autolabel-run.sh
raw:
data: |-
#! /bin/bash
# 在这里实现具体的标注流程脚本逻辑,此处以yolov7为例,将模型放到model_path对应的路径,将数据放置到image_folder_path对应的路径
cd /home/ma-user/infer_turbo/models/yolov7 || { echo "切换目录失败"; exit 1; }
# 执行标注脚本
python gpu_version/label.py \
--image_folder_path=/home/ma-user/yolov7/val2017 \
--model_path=/home/ma-user/yolov7/output_model.mindir
parameters:
- name: snippet-name
retryStrategy:
limit: 2 # 重试策略,指定最多重试2次
retryPolicy: Always
container:
name: data-label-container
image: swr.cn-east-4.myhuaweicloud.com/data-lable:v1.0 # 该镜像以实际上传的为准
command: ["/bin/sh", "-c"]
args:
- |
/root/autolabel-run.sh
resources:
limits:
memory: 50Gi # 限制的内存大小需要大于等于请求的内存大小
huawei.com/ascend-1980: '1' # 请求一整卡
requests:
memory: 50Gi # 请求50G内存,内存大小和输入数据量有关,应根据实际数据进行调整
huawei.com/ascend-1980: '1' # 请求一整卡
volumeMounts:
- name: data-pvc-volume # 根据需要选择是否需要挂载PVC,若不需要挂载,可删除或注释
mountPath: /home/vol # 挂载远端存储 pvc到容器/home/vol
- mountPath: /root/config/rclone.conf # 挂载rclone.conf
name: rclone-conf
readOnly: true
subPath: rclone.conf
- mountPath: /dev/shm # 挂载共享内存
name: shm-vol
- name: ascend-driver # 驱动挂载,保持不动
mountPath: /usr/local/Ascend/driver
- name: ascend-add-ons # 驱动挂载,保持不动
mountPath: /usr/local/Ascend/add-ons
- name: hccn # 驱动hccn配置,保持不动
mountPath: /etc/hccn.conf
securityContext: # 使用特权容器,建议先打开以调通流程
privileged: true
nodeSelector:
test: npu-node # 指定NPU调度,该节点标签需要在CCE集群上添加,可以指定任何名称的标签,其中test为标签的key,npu-node为标签的value
activeDeadlineSeconds: 86400 # 设置该模板步骤的最大执行时间限制为86400秒(1天) 完成上述yaml文件编写后,参考如下步骤提交Argo作业进行验证。其中第4步可以选择上传yaml文件或将yaml文件内容复制到JSON/YAML位置处,最后单击“CREATE”提交,即可开始标注流程。


查看标注结果
当标注完成后,可从OBS中导入数据到客户的标注可视化平台或者其他工具中,进行标注结果的分析和确认。
父主题: 启动标注任务