[关闭]
@wanghuijiao 2021-12-16T15:59:58.000000Z 字数 7603 阅读 5365

CVAT半自动标注:如何添加自己的预训练模型

技术文档


0. 前言

1. 如何添加新模型库到CVAT

1.1 建立yolov5库的本地镜像

  1. git clone git@github.com:ultralytics/yolov5.git yolov5
  2. cd yolov5
  1. FROM ultralytics/yolov5:latest # yolov5官方镜像
  2. RUN mkdir -p /opt/nuclio # 创建工作目录,该路径是CVAT默认工作路径,必须有
  3. WORKDIR /opt/nuclio # 指定工作目录
  4. COPY . /opt/nuclio # 复制当前路径下所有的文件到docker中
  1. docker build -t yolov5_whj_test:v1 -f Dockerfile_cvat .

1.2. 准备CVAT部署相关文件

1.3. 运行部署命令

  1. nuclio deploy --project-name cvat \ # 此处是nuclio项目名称,不用更改
  2. --path serverless/pytorch/yolov5/yolov5s_test/nuclio # 这是1.2节准备的yolov5s部署相关文件所在路径,请自行替换

2. 如何从已支持的模型库中添加新模型到CVAT

2.1 准备文件

  1. metadata:
  2. name: pth.ultralytics.yolov5.yolov5s_xxx # 此项是CVAT的function名称,根据新模型名称自行更改
  3. namespace: cvat
  4. annotations:
  5. name: yolov5s_xxx # 此项是CVAT UI界面半自动标注功能处显示的模型名称,根据新模型名称更改
  6. type: detector
  7. framework: pytorch
  8. spec: | # 此处需要根据新模型的类别信息对应更改
  9. [
  10. { "id": 1, "name": "head" },
  11. { "id": 2, "name": "person" }
  12. ]
  13. spec:
  14. description: yolov5_xxx from yolov5 # 此项是模型描述信息,根据新模型功能更改
  15. runtime: 'python:3.7'
  16. handler: main:handler
  17. eventTimeout: 30s
  18. build:
  19. image: cvat/pth.ultralytics.yolov5.yolov5s_xxx:vx # 镜像名称:镜像版本,根据需求自行更改
  20. baseImage: shuyh_cvat_yolo:v1 # yolov5的基础镜像,不需要更改
  21. directives:
  22. preCopy:
  23. - kind: WORKDIR
  24. value: /opt/nuclio
  25. triggers:
  26. myHttpTrigger:
  27. maxWorkers: 1
  28. kind: 'http'
  29. workerAvailabilityTimeoutMilliseconds: 10000
  30. attributes:
  31. maxRequestBodySize: 33554432 # 32MB
  32. resources:
  33. limits:
  34. nvidia.com/gpu: 1 # GPU 最多使用数量限制,可根据需求更改
  35. platform:
  36. attributes:
  37. restartPolicy:
  38. name: always
  39. maximumRetryCount: 3
  40. mountMode: volume

c. 改写main.py
- 只需要更改init_context(context)函数中预训练模型路径model_path = "/opt/nuclio/yolov5s_head_human.pt"model_path = "/opt/nuclio/yolov5_xxx.pt"yolov5_xxx.pt是此次要部署的预训练模型权重名称,此权重文件应该放在/ssd/wanghuijiao/cvat/serverless/pytorch/yolov5_xxx路径下。
d. model_handler.py内容不需要更改。

2.2 运行部署命令

  1. nuctl deploy --project-name cvat \
  2. --path serverless/pytorch/yolov5/yolov5s_head_person/nuclio # 准备文件所在路径,对应更改
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注