目录

  • 0. 前言
  • 1. 整个流程
  • 2. 具体过程
    • 2.1 部署基本环境
    • 2.2 按COCO格式准备自己的数据集
    • 2.3 修改yolact_edge/data/config.py文件的配置
      • 2.3.1 修改一:增加自己的数据集定义
      • 2.3.2 修改二:在DATASET部分增加自己的数据集
      • 2.3.3 修改三:增加自己数据集的训练配置
      • 2.3.4 修改四:在代码的最后制定cfg为你2.3.3配置的cfg名称
    • 2.4 训练模型,检测模型
  • 3. 总结

0. 前言

前段时间在Jetson Xavier上试了试官方的demo,发现效果还不错,帧率能跑到13fps左右,昨天开始用自己的数据集训练yolact_edge模型,记录下大致过程。

1. 整个流程

整个流程比较简单,大致如下:

(1)在Jetson Xavier上部署基本环境
(2)按coco格式准备自己的数据集
(3)修改yolact_edge/data/config.py文件的配置
(4)训练模型,检测模型

2. 具体过程

2.1 部署基本环境

基本环境的部署我上一篇写过,参考这里。

2.2 按COCO格式准备自己的数据集

这里的大致流程为:
(1)安装labelme工具
(2)使用labelme工具打标签
(3)将数据转换成coco格式
(4)将数据按文件夹分为train、val、test
具体过程我在之前的博客也写有,参考这篇博客的2.2和2.3部分(我这篇博客写的很清楚了)。

2.3 修改yolact_edge/data/config.py文件的配置

我们在使用train.py训练模型时,相关配置都放在yolact_edge/data/config.py文件中,我们要根据自己的数据集来修改配置文件,具体需要修改以下几处:

2.3.1 修改一:增加自己的数据集定义

我们需要自己定义我们数据集的种类和标签,比如我的标签只有一类“truck”,就修改如下:

2.3.2 修改二:在DATASET部分增加自己的数据集

其中:
(1)name:你的数据集名字
(2)class_name:你的类的名称,就是你在2.3.1部分起的类名
(3)label_map:你的标签名称,就是你在2.3.1部分起的标签名称
(4)train_info:你在2.2部分训练集数据通过labelme2coco.py文件生成的.json文件所在位置
(5)train_images:你的训练集数据所在位置
(6)valid_info:你在2.2部分验证集数据通过labelme2coco.py文件生成的.json文件所在位置
(7)valid_images:你的验证集数据所在位置

2.3.3 修改三:增加自己数据集的训练配置

(1)name:自己定义的名字
(2)dataset:你在2.3.2中的dataset
(3)num_classes:在类别数的基础上要加1
(4)backbone:主干网络,写我写的这个就行
(5)max_iter:最大迭代次数,我写的50是因为我想先做一个初步的尝试。

2.3.4 修改四:在代码的最后制定cfg为你2.3.3配置的cfg名称

2.4 训练模型,检测模型

首先需要下载resnet50-19c8e357.pth文件作为基模型,下载链接我放在下面:

链接:https://pan.baidu.com/s/14zdlkneSjAClFmS-DQ4lQg
提取码:aaaa

下载好文件后新建一个weights的文件夹,把resnet50-19c8e357.pth放在这个文件夹下,然后运行命令:

python train.py --config=你的config名称(即你在2.3.4中的cfg名称)

例如我的命令是:

python train.py --config=yolact_edge_truck_config

然后就开始了训练过程,训练可能会提前结束,训练好的模型会存在weights文件夹中。我们将训练好的.pth文件拷到Jetson Xavier上,然后进行测试:

python3 eval.py --trained_model=weights/你训练的模型 --score_threshold=0.3 --top_k=100 --video=0 --ues_tensorrt_safe_mode

例如我的命令是:

python3 eval.py --trained_model=weights/yolact_edge_truck_25_50.pth --score_threshold=0.3 --top_k=100 --video=0 --use_tensorrt_safe_mode

这里注意,一定要加–use_tensorrt_safe_mode,否则会报错,类似于:IndexError:The shape of mask [32] at index 0 does not match the shape of the indexed tensor [1, 32] at index 0

测试的结果还可以,帧率能达到13fps左右。

3. 总结

OK,以上就是整个过程。这篇博客只是记录我的训练和部署过程,大致过程不会出问题,具体细节有问题需要自行百度解决。

【yolact_edge】训练自己的yolact_edge模型(并部署在Jetson Xavier上)相关推荐

  1. 【模型部署】Jetson Xavier NX(eMMC)部署YOLOv5-5.0

    文章目录 前言 NVIDIA Jetson Jetson Xavier NX 版本区别(SD | eMMC) 规格参数 Jetpack4.6.1环境搭建 烧录系统(OS) SSD启动 SSD分区 设置 ...

  2. 深度学习模型DNN部署到安卓设备上全流程示例——{pytorch->onnx>ncnn->Android studio}

    之前写过一篇文章 "Windows配置pytorch转onnx转ncnn转android设备" 如何配置环境设置,可以参考这篇如何配置 目录 "Windows配置pyto ...

  3. 总结一下模型工程化部署的几种方式

    今天我就来聊聊的对于模型的线上部署和工程化的问题的认识和工程实践. 在企业中,我们做模型的目的就是为了能够让它来更好的解决产品在实际生产过程中所遇到的具体的问题,而模型训练好之后,下一步要做的就是将其 ...

  4. TiDB v5.1 体验: 我用 TiDB 训练了一个机器学习模型

    作者简介 韩明聪 ,TiDB Contributor,上海交通大学 IPADS 实验室博士研究生,研究方向为系统软件.本文主要介绍了如何在 TiDB 中使用纯 SQL 训练一个机器学习模型. 前言 众 ...

  5. 租用服务器,以及部署在pycharm专业版上的pytorch环境训练yolov5模型教程服务器环境安装库文件:

    租用服务器,以及部署在pycharm专业版上的pytorch环境训练yolov5模型教程服务器环境安装库文件: 一.租用服务器选择环境: 1. 租用服务器网站 2. 选择1.8的pytorch环境,点 ...

  6. 2、【KV260开发】yolov4模型训练、量化、编译、部署

    前言 由于毕业设计就是基于KV260搞智能监控那一套,因此主要关注深度学习应用这一块,硬件部门涉及比较少. 通过Vitis AI官方手册可知,成功完成一个深度学习应用需要四个步骤:模型训练.量化.编译 ...

  7. AI模型工业部署:综述【常用的部署框架:TensorRT、Libtorch】【常见提速方法:模型结构、剪枝、蒸馏、量化训练、稀疏化】【常见部署流程:onnx2trt】【常见服务部署搭配】

    作为深度学习算法工程师,训练模型和部署模型是最基本的要求,每天都在重复着这个工作,但偶尔静下心来想一想,还是有很多事情需要做的: 模型的结构,因为上线业务需要,更趋向于稳定有经验的,而不是探索一些新的 ...

  8. YOLO-v5训练自己的数据+TensorRT推理部署(2)

    YOLO-v5训练自己的数据+TensorRT推理部署(2) 代码下载地址:下载地址 YOLO v5转TensorRT模型并调用 0.pt模型转wts模型 python3 gen_wts.py # 注 ...

  9. 将公平注入AI:机器学习模型即使在不公平数据上训练也能产生公平输出

    来源:ScienceAI 本文约1800字,建议阅读9分钟 如何迫使深度度量学习模型首先学习好的特征? 如果使用不平衡的数据集训练机器学习模型,比如一个包含远多于肤色较浅的人的图像的数据集,则当模型部 ...

最新文章

  1. 新款iPad真香,谁用谁知道!
  2. Tomcat Jenkins iOS自动打包
  3. 审批政策中收入与负债核实
  4. 从本地的win传文件到本地的linux上,pscp.exe实现本地windows下的文件下载(传输)到linux上...
  5. 传递函数_使用python计算麦克风阵列信号的传递函数
  6. 五.几何对象和空间参考
  7. 【操作系统】实验 设计一个按优先权调度算法实现处理器调度的程序
  8. CANOpen服务数据对象报文
  9. Hibernate 关联映射
  10. 一起来学Spring Cloud | 第一章 :如何搭建一个多模块的springcloud项目
  11. 基于STM32通过RTC唤醒低功耗模式
  12. oracle同义词问题,ORACLE同义词总结(下)
  13. OA协同办公系统未来的趋势
  14. Maven 官网查找依赖包
  15. AcWing 188. 武士风度的牛 BFS 水题
  16. airpod蓝牙耳机音量大解决办法_关于AirPods的常见问题汇总 全面了解苹果AirPods无线耳机...
  17. 大连海事大学信息与通信工程系808考研上岸经验分享
  18. python利用PyQt5和QTDesginer开发GUI应用(二)、股票查询工具
  19. 项目经理:我是如何进行项目进度管理的
  20. 计算机专业团队研修方案,2019研修活动方案(4篇)

热门文章

  1. 海思USB2.0、USB3.0 Device UVC规格热插拔会不识别
  2. 论文笔记:Planning and Decision-Making for Autonomous Vehicles
  3. IDEA反编译出整个jar包源码
  4. vue+mintui+picker弹框选择器
  5. php如何获得系统时间,php如何获取系统时间
  6. 179是号段物联卡,179物联卡是哪个公司的
  7. SIP协议-04 SIP头域
  8. php 循环结构的联系题,php - 烧脑题,有一个程序循环逻辑问题,急在线等
  9. HT32 用TTL转串口实现与电脑通信点灯
  10. Jenkins从svn获取代码报”E170001“异常问题解决