网上翻了一天,没找到称心的教程,最后发现还是Ultralytics官方的教程文档好用!这里贴上官方教程一起学习!
【1:找到官方教程文档】
yolov5官方下载地址:GitHub - ultralytics/yolov5: YOLOv5 🚀 in PyTorch > ONNX > CoreML > TFLite
下载方法如下:
下载后解压为文件夹打开,在“segment”目录下的文件【tutorial.ipynb】就是官方提供的教程了。
(注:.ipynb是notebook格式,若电脑编辑器无法打开也可在github网站单击打开)
【2:教程文档解读】
内容包括Setup、Predict、Validate、Train、Visualize、Environments、Status和Appendix共8个部分:
第1部分:Setup
从github网站采用git工具克隆到本地,并导入查看版本。(采用【第1步】方法下载也可以)
第2部分:Predict
翻译:segment/predict.py在各种源上运行YOLOv5实例分割推理,从最新的YOLOv5版本自动下载模型,并将结果保存到runs/predict中。示例推理源有:
在notebook中输入如下命令开始预测:
(采用权重为yolov5s-seg.pt,由第4部分的Train步骤得到,图片放缩至640*640,置信度阈值设为0.25,预测对象为“data/images”目录下的所有图片)
如显示下面结果则表示完成预测,预测结果保存在“runs/predict-seg/exp”目录下。
第3部分:Validate
教程文档采用coco数据集作为验证集
翻译: 在COCO数据集的val或测试分割上验证模型的准确性。模型自动从最新的YOLOv5版本下载。要按类显示结果,请使用——verbose标志。
在notebook中输入如下命令下载coco数据集:
在notebook中输入如下命令开始验证:
(采用权重为yolov5s-seg.pt,由第4部分的Train步骤得到,验证数据集采用coco.yaml文件中定义的路径读取,图片放缩至640*640,使用FP16半精度推理)
如显示下面结果则表示完成验证,验证结果保存在“runs/val-seg/exp”目录下。
第4部分:Train
训练自己的数据:
教程文档推荐的是在线标注网站Roboflow,这个网站与yolo模型深度集成,功能强大且易上手。
文档还提供了使用roboflow制作图像分割数据集的详细教程:
Custom Training Examplehttps://blog.roboflow.com/train-yolov5-instance-segmentation-custom-dataset/
开始训练:
上面第1段代码是用于在Google Colab或类似的Jupyter Notebook环境中选择并初始化一个机器学习实验的logger(日志记录器)。Logger在机器学习项目中非常重要,因为它可以帮助你跟踪实验过程中的各种指标、参数和输出,从而更好地理解和比较不同的实验结果。这里提到的YOLOv5是一种流行的实时对象检测算法。
让我们逐行解析这段代码:
1. `# @title Select YOLOv5 🚀 logger {run: 'auto'}` 这是一个注释,但在Colab中它具有特殊意义。`@title`定义了一个可交互的小部件标题,在本例中是"Select YOLOv5 🚀 logger"。`{run: 'auto'}`意味着当用户更改这个小部件时,后面的代码会自动运行。
2. `logger = "Comet" # @param ['Comet', 'ClearML', 'TensorBoard']` 定义了`logger`变量,并设置了默认值为"Comet"。这里的`# @param`注解允许创建一个下拉菜单,让用户可以在提供的选项中选择一种logger:Comet, ClearML 或 TensorBoard。
3. 接下来是一系列条件语句,根据`logger`变量的值来安装对应的库并进行初始化:
- 如果选择了`Comet`,则使用`%pip install -q comet_ml`静默地安装Comet ML库,并通过`import comet_ml`导入该库,然后调用`comet_ml.init()`初始化Comet。
- 如果选择了`ClearML`,则安装ClearML库,导入并登录到ClearML浏览器界面。
- 如果选择了`TensorBoard`,则加载TensorBoard扩展,并启动TensorBoard服务指向`runs/train`目录,这通常是TensorFlow或PyTorch保存训练日志的地方。
总的来说,这段代码提供了一种方便的方式来配置不同类型的日志记录工具,这些工具可以用来监控和记录YOLOv5模型训练过程中产生的数据。这样可以根据需要灵活切换不同的日志系统,而无需手动修改大量的代码。
第5部分:Visualize
使用Comet网站在线可视化:
此外,使用ClearML网站在线可视化:
当然,也可以采用Tensorboard在本地进行实时可视化:
第6部分:Environments
这里的环境指运行python代码的平台,教程文档推荐4类环境,分别是1)可免费使用GPU的notebook:Gradient AI、Google Colab、Kaggle,2)谷歌云平台:Google Cloud,3)亚马逊计算平台:Manage AWS Resources - AWS Management Console - AWS.,4)Docker镜像:Ultralytics HUB
第7部分:Status
翻译:如果此徽章为绿色,则表示当前所有YOLOv5 GitHub Actions持续集成(CI)测试都通过了。CI测试每24小时在macOS, Windows和Ubuntu上验证YOLOv5训练(train.py),测试(value .py),推理(detect.py)和导出(export.py)的正确操作。
第8部分:Appendix
这段代码展示了如何使用 PyTorch Hub 来加载 YOLOv5 模型并进行推理(即对图像进行对象检测)。YOLOv5 是一个非常流行且高效的实时对象检测算法。下面是代码的详细解释:
1. **加载模型**:
model = torch.hub.load(
"ultralytics/yolov5", "yolov5s-seg", force_reload=True, trust_repo=True
)
- `torch.hub.load` 从指定的 GitHub 仓库中加载预训练模型。
- `"ultralytics/yolov5"` 是仓库的名称,这里是 Ultralytics 的 YOLOv5 仓库。
- `"yolov5s-seg"` 是要加载的具体模型名称。这里选择了 `yolov5s-seg`,它是一个轻量级的分割版本。你也可以选择其他变体,如 `yolov5n`, `yolov5m`, `yolov5l`, `yolov5x` 等。
- `force_reload=True` 强制重新加载模型,即使缓存中已经存在。
- `trust_repo=True` 表示信任这个仓库,允许执行其中的脚本。
2. **准备输入图像**:
im = "https://ultralytics.com/images/zidane.jpg"
- `im` 可以是文件路径、URL、PIL 图像、OpenCV 图像、NumPy 数组或列表。在这个例子中,`im` 是一个指向图像的 URL。
3. **进行推理**:
results = model(im)
- `model(im)` 对输入图像 `im` 进行推理,并返回检测结果。
4. **显示结果**:
results.print()
- `results.print()` 打印出检测到的对象及其置信度等信息。
- 你还可以使用其他方法来处理结果:
- `results.show()` 显示带有边界框和标签的图像。
- `results.save()` 保存带有边界框和标签的图像到文件。
- `results.crop()` 裁剪出检测到的对象并返回裁剪后的图像。
- `results.pandas()` 将结果转换为 Pandas DataFrame 格式,方便进一步的数据处理和分析。
### 示例代码
下面是一个完整的示例代码,你可以直接在支持 PyTorch 和 Jupyter Notebook 或者 Google Colab 的环境中运行:
import torch
# 加载模型
model = torch.hub.load("ultralytics/yolov5", "yolov5s-seg", force_reload=True, trust_repo=True)
# 准备输入图像
im = "https://ultralytics.com/images/zidane.jpg"
# 进行推理
results = model(im)
# 打印结果
results.print()
# 显示结果图像
results.show()
这段代码将下载并加载 YOLOv5s-seg 模型,对提供的图像进行对象检测,并打印和显示检测结果。
【3:train在线教程】
在第2章的第4部分train中,教程文档推荐了一个详细的在线教程,进行进去后页面如下:
在线教程内容包含:环境设置、准备数据集、模型训练、测试与验证、模型性能提升、模型部署。
具体内容这里就不展开细讲了,以后得空再专门写一篇。