1°入门使用,具体见这篇博客
YOLOv5训练自己的数据集(超详细完整版)_深度学习菜鸟的博客-CSDN博客_yolov5训练自己的数据
(补充说明:其中的数据一开始是VOC格式自定义数据集,因此建议直接使用labelImg来标注自己的数据,导出直接是VOC格式)
训练技巧与优化:
官网中的: https://github.com/ultralytics/yolov5/blob/master/README.zh-CN.md
竞赛经验|Kaggle竞赛中使用YoloV5将物体检测的性能翻倍的心路历程
2°训练结束后看训练结果,看这些博客:
yolov5 训练结果解析_sinat_37322535的博客-CSDN博客_yolov5训练结果分析
3°YOLO5原理与代码解读
你一定从未看过如此通俗易懂的YOLO系列(从V1到V5)模型解读!
深入浅出Yolo系列之Yolov5核心基础知识完整讲解_江大白*的博客-CSDN博客_yolov5(强烈推荐)
Yolov5总结文档(理论、代码、实验结果)YoloV5代码详细解读_浩瀚之水_csdn的博客-CSDN博客_yolov5代码解读Yolov5总结文档(理论、代码、实验结果)
mmdetection/README_zh-CN.md at master · open-mmlab/mmdetection · GitHub
https://mmdetection.readthedocs.io/_/downloads/zh_CN/latest/pdf/
其中,
1°安装(可以参考里面的“从零开始设置脚本”那一节):https://github.com/open-mmlab/mmdetection/blob/master/docs/zh_cn/get_started.md
2°自定义数据集看这篇:
mmdetection/2_new_data_model.md at master · open-mmlab/mmdetection · GitHub
其中,建议使用COCO格式的自定义数据集,因此我们可以使用labelme工具标记数据(矩形框),然后可以参考这篇:
目标检测前奏:labelme的矩形框标记好数据以后,转成COCO格式_starDu-CSDN博客_labelme转coco 目标检测
视频学习教程:飞桨AI Studio - 人工智能学习与实训社区
GitHub - PaddlePaddle/PaddleDetection: Object Detection toolkit based on PaddlePaddle. It supports object detection, instance segmentation, multiple object tracking and real-time multi-person keypoint detection.
Paddle/README_cn.md at develop · PaddlePaddle/Paddle · GitHub
https://github.com/PaddlePaddle/awesome-DeepLearning (工业项目案例,建议以此作为入门实战,例如目标检测的话可以学习里面的头盔检测,包括优化模型思路)
“白话”目标检测系列:YOLO X
【深度学习】解决YOLOX训练时AP为0_MangoloD的博客-CSDN博客_扫描到的ap数目为0
官网去下载使用即可,已亲测可用:
GitHub - ultralytics/yolov5: YOLOv5 in PyTorch > ONNX > CoreML > TFLite
②常用框mmmdetection
mmdetection/README_zh-CN.md at master · open-mmlab/mmdetection · GitHub
其中,自定义数据集看这篇:
mmdetection/2_new_data_model.md at master · open-mmlab/mmdetection · GitHub
建议使用COCO格式的自定义数据集,因此我们可以使用labelme工具标记数据(多边形框),可以参考这篇来制作COCO数据集(多边形):
labelme标注格式转coco格式_1037号森林里一段干木头的博客-CSDN博客
(备注:转化建议在linux下可成功运行,windows下运行可能会报错)
Paddle/README_cn.md at develop · PaddlePaddle/Paddle · GitHub
https://github.com/PaddlePaddle/awesome-DeepLearning (工业项目案例,建议以此作为入门实战,目标分割的话例如里面的钢材缺陷检测)
视频学习教程:飞桨AI Studio - 人工智能学习与实训社区
做界面的常用方法有:C#的话有自带图形界面控件;c++的话有MFC、C++版本的QT;python的话可以选择PyQT【第五节】PyQt5事件和信号-PyQt5中文教程,然后调用深度学习算法(一般为python编写,封装在docker里面,提供post接口与外部联系)的时候,假如出现按钮卡顿等现象,界面可以使用多线程解决。
1°框架mmdetection是直接带有并行推理的例子的;
2°框架paddlePaddle,有server以及K8s分布式推理接口
3°yolov5,可以官网教程看看(好像推出了支持分布式推理以及云服务)
4°假如需要自己写的话,也可以学习以下常用模式:{python的并发例子+flask等web框架提供算法post端口+docker封装算法},相关学习资料如下:
实战教程|基于 docker 和 Flask 的深度学习模型部署!
Python3 多线程 | 菜鸟教程
使用Web框架 - 廖雪峰的官方网站
水下目标检测算法赛解决方案分享 | 2020年全国水下机器人(湛江)大赛 -
水下目标检测赛获奖解决方案https://code.ihub.org.cn/projects/33630
天池篡改赛Rank 5方案(含第一名Code)
1°其实最简单的话,是直接用英伟达的带GPU的嵌入式设备(NVIDIA Jetson),适配等工作做得好,易用性高。支持国产设备的话,有百度、华为昇腾、寒武纪、瑞芯微等AI嵌入式产品,可能用起来需要花时间多一些,中间的坑多一些,但优点是支持国货,还有例如瑞芯微的板子体积比较小,便宜些。
2°瑞芯微板卡跑yolo5推理模型可以参考:先在yolo5官网查看.pt转成.onnx步骤,然后再把.onnx转成.rkkt,具体步骤可以参考:
利用瑞芯微3399Pro推理yoloV5s目标检测模型:踩坑笔记_starDuXY的博客-CSDN博客_rknn yolov5