大数跨境
0
0

从算法开发到落地部署的全流程记录

从算法开发到落地部署的全流程记录 极市平台
2023-05-12
0
↑ 点击蓝字 关注极市平台

希望能够帮助大家稳扎稳打的提升项目实操经验,极市平台从去年开始举办了免费的视觉AI工程项目实训活动,近期第七期语义分割算法实训营正在招募当中!本次实训已经在上周进行了第一次的教学直播,大佬带队手把手的带领大家从算法开发到落地部署的全流程,平台提供已标注真实数据和免费GPU等算力支持,让大家可以在真实的工业项目中练手,体验最真实的算法开发流程!

本文对实训的整体流程、各环节的重难点进行了梳理,错过了教学直播或者对平台功能流程等还不熟悉的小伙伴们建议收藏!


极市平台也配套推出了开发套件等算法开发工具,帮助开发者提升算法开发效率25%以上!

亮点速览:
1)训练套件拥有数据转换、划分、增强等数据预处理能力
2)预置SOTA网络高性能实现, 囊括主流CV任务
3)提供 onnx, atlas ,TensorRT等模型转换工具
4)提供统一的跨硬件推理接口

开发套件体验活动招募中!使用套件完成开发后将使用体验和建议反馈给极市,我们将会送出的瑞幸/奈雪的30代金券~

详情链接:https://cvmart.net/community/detail/7521


一、模型开发流程

1 报名打榜

算法项目打榜列表(推荐选择前列项目):https://www.cvmart.net/topList

实训baseline请参考:

目标检测:https://github.com/daimaohui/cvmart_yolov5

语义分割:https://github.com/daimaohui/cvmart_linknet

语义分割-STDC:https://github.com/daimaohui/cvmart_STDC

最新一期语义分割实训营招募中:

本次我们邀请人工智能专业博士作为实训导师,开启基于算法开发任务的实战共学,期待大家一起加入学习交流!

添加极小新(微信ID:cvmart8)凭报名完成的截图领取配套资料和进入学习群。

长按扫描二维码入群报名

加速你的视觉AI学习进程

2 创建镜像

2.1 创建镜像

2.2 选择torch编码环境

2.3 进入编码环境

3 编码环境

新建Terminal

3.1 数据介绍

#新建Terminal
cd /home/data
ls

将数据拷贝到/project/train/src_repo

cp -r /home/data/1225 /project/train/src_repo/trainval

cp -r /home/data/599 /project/train/src_repo/trainval

cp -r /home/data/820 /project/train/src_repo/trainval

3.2 数据处理

将代码中的split.py 直接拷贝,修改路径,主要修改下面两张图的部分

运行split.py

python split.py

3.3 yolov5代码

  • 下载yolov5代码
#下载yolov5代码
wget https://extremevision-js-userfile.oss-cn-hangzhou.aliyuncs.com/user-14177-files/6c888875-7de7-4f60-ba15-88de0304fe70/yolov5.zip
#解压
unzip yolov5.zip
cd yolov5
#安装python库
pip install -r requirements.txt
#下载yolov5s模型
wget https://extremevision-js-userfile.oss-cn-hangzhou.aliyuncs.com/user-14177-files/d8ee0651-9d48-4480-a161-d22750ba7eba/yolov5s.pt
wget https://extremevision-js-userfile.oss-cn-hangzhou.aliyuncs.com/user-14177-files/d97a419e-2bb4-4822-b398-b37244473a5f/Arial.ttf
  • 在yolov5/data/目录下新建fire.yaml文件
#数据路径,不用更改
train: ../train.txt
val: ../val.txt

#类别数量,根据题目设定
nc: 3

#类别名称,根据题目设定
name: ['fire','big_fire','smoke']
python train.py --batch-size 32 --epochs 3 --data ./data/fire.yaml --hyp ./data/hyps/hyp.scratch-low.yaml --weight ./yolov5s.pt --img 640 --project /project/train/models/ --cfg ./models/yolov5s.yaml

4.训练

就是在编码做了哪些事情,在训练环境环境也需要去做

新建 run.sh 脚本

cp -r /home/data/1225 /project/train/src_repo/trainval
cp -r /home/data/599 /project/train/src_repo/trainval
cp -r /home/data/820 /project/train/src_repo/trainval
python /project/train/src_repo/split.py
cd /project/train/src_repo/yolov5
python train.py --batch-size 64 --epochs 100 --data ./data/fire.yaml --hyp ./data/hyps/hyp.scratch-low.yaml --weight ./yolov5s.pt --img 640 --project /project/train/models/ --cfg ./models/yolov5s.yaml

发起训练之前将编码环境里面生成的数据清理一下

  • 删除 trainval 文件夹

  • 删除 val.txt ,train.txt val.cache train.cache

  • 删除 /project/train/models/ 文件夹下面的所有文件

发起训练

在执行命令里面输入:

bash /project/train/src_repo/run.sh

5.测试

在 /project/ev_sdk/src 目录下新建ji.py,只需要更改这里的参数

常见问题汇总:https://www.cvmart.net/community/detail/6967

二、算法封装

对于算法的应用落地来说,开发出算法模型仅仅是第一步,还需要将算法进行业务封装测试并提供使用接口给产业端。以下是一些关于封装的详细文章以及官方详解视频教程,对SDK开发过程中常见的一些易错点和常见功能进行了编码说明和重点展示。

Demo:

1、开发者封装demo文件 (极市新版本demo提供了以下两种算法方案封装的案例,对SDK开发过程中常见的一些易错点和常见功能进行了编码说明和重点展示)

2、大家可以基于demo为起点能够更快速,准确的进行算法开发。对其中的 test-ji-api 工具增加了测试整个文件夹中图片的功能,地址如下:

基于tensorrt推理yolov5模型的新版本SDK DEMO:

  1. https://github.com/ExtremeMart/ev_sdk_demo4.0_pedestrian_intrusion_yolov5.git
  2. https://gitee.com/cvmart/ev_sdk_demo4.0_pedestrian_intrusion_yolov5.git

语义分割封装demo:

https://gitee.com/cvmart/ev_sdk-semantic-segment

使用tensorrt推理的demo:

https://gitee.com/cvmart/ev_sdk_demo4.0_vehicle_plate_detection

使用onnx_runtime推理的demo:

https://gitee.com/cvmart/ev_sdk_demo4.0_pedestrian_intrusion/tree/master

在atlas平台上推理的demo:

https://gitee.com/cvmart/ev_sdk_atlas_demo4.0_head_detection

极市算法封装(C++)验收测试说明(简易版):

https://www.cvmart.net/community/detail/6656

EV_SDK开发测试指南(官方版):

https://www.cvmart.net/community/detail/6753

新同学开发算法流程&冠军方案指引:

https://www.cvmart.net/community/detail/6364

极市平台官方技术文档:

https://cvmart.net/document

三、算法tricks&冠军方案

添加极小新(cvmart8)即可领取PDF合集

干货文章:

Pytorch预训练模型、内置模型实现图像分类、检测和分割

盘点计算机视觉各大主流任务上的数据增强策略

一文汇总超参自动优化方法

训练/测试集分布不一致解法总结

PyTorch常用代码段合集

模型转换和可视化入门教程

OpenCV C++基础代码参考

AI 框架部署方案之模型转换

哪些模型trick和数据的方法可以大幅度让你的分类性能更上一层楼

深度学习模型大小与模型推理速度的探讨

目标检测优化的实用Trick

目标检测模型精确度评估

语义分割中选择模型、训练模型、模型改进的方面的实用技巧

训练CV模型常用的Tips & Tricks

公众号后台回复“CVPR2023”获取最新论文分类整理资源
极市干货
极视角动态推进智能矿山建设,极视角「皮带传输系列算法」保障皮带安全稳定运行!
CVPR2023CVPR 2023|21 篇数据集工作汇总(附打包下载链接)
数据集:垃圾分类、水下垃圾/口罩垃圾/烟头垃圾检测等相关开源数据集汇总异常检测开源数据集汇总语义分割方向开源数据集资源汇总
点击阅读原文进入CV社区
收获更多技术干货

【声明】内容源于网络
0
0
极市平台
为计算机视觉开发者提供全流程算法开发训练平台,以及大咖技术分享、社区交流、竞赛实践等丰富的内容与服务。
内容 8155
粉丝 0
极市平台 为计算机视觉开发者提供全流程算法开发训练平台,以及大咖技术分享、社区交流、竞赛实践等丰富的内容与服务。
总阅读3.2k
粉丝0
内容8.2k