YOLOR(You Only Learn One Representation)是一种基于YOLO模型架构的目标检测模型。它通过在COCO数据集上训练隐式知识网络,并结合显式知识,在推理阶段共同作用,以预测图像中的内容。YOLOR是YOLO系列模型的最新演进,继承了YOLOv3、YOLOv4、YOLOv5等模型的优点,并在此基础上进行了优化和改进。
在AI训练的当前模式中,通常首先在大型数据集上对网络进行预训练,然后收集特定领域的数据集以微调模型。在预训练/微调过程中,对同一组模型权重进行编辑。YOLOR在预训练阶段使用COCO数据集中的所有任务(包括目标检测、实例分割、全景分割、关键点检测、物体分割、图像描述、多标签图像分类和长尾目标识别)来训练隐式知识网络。
在针对COCO数据集进行优化时,YOLOR还训练了另一组参数,这些参数代表显式知识。在预测时,使用隐式和显式知识。这种新颖的方法使YOLOR在速度/准确性权衡的目标检测领域达到了最先进的水平。
本教程将指导如何将YOLOR模型应用于自己的数据集。首先,需要设置开发环境,克隆YOLOR基础仓库并下载必要的依赖项。接着,将下载自定义的YOLOR目标检测数据,并为YOLOR准备预训练权重。然后,将启动YOLOR训练过程,并评估YOLOR的性能。最后,将在测试图像上运行YOLOR推理,并导出保存的YOLOR权重以供将来使用。
要开始训练过程,需要运行训练命令,并指定以下选项:输入图像大小、批量大小、训练周期数、数据集路径、模型配置、权重路径、结果名称和训练超参数。例如,可以使用以下命令启动训练:
!python train.py --batch-size 8 --img 416 416 --data '../data.yaml' --cfg cfg/yolor_p6.cfg --weights '/content/yolor/yolor_p6.pt' --device 0 --name yolor_p6 --hyp '/content/yolor/data/hyp.scratch.1280.yaml' --epochs 50
训练完成后,可以通过Tensorboard可视化日志来评估训练过程的性能,或者直接在Colab中绘制结果。此外,还可以可视化训练过程中应用的数据增强效果。
现在已经训练了模型,可以在从Roboflow下载的数据集的测试图像上进行推理。所有训练过程中的权重都可以在weights文件夹中找到。要启动推理,运行以下命令:
!python detect.py --weights "runs/train/yolor_p6/weights/best.pt" --conf 0.4 --source ../test/images --names ../data.names
这将在之前未见过的测试图像上进行推理。此外,可能希望将权重导出到Colab之外,以便在其他项目中使用。为此,可以导入Google Drive模块并将它们发送出去。
from google.colab import drive
drive.mount('/content/gdrive')
%cp /content/yolor/runs/train/yolor_p6/weights/best.pt /content/gdrive/My\ Drive
现在,YOLOR目标检测模型已经训练完成,可以部署到任何需要模型的地方。
YOLOR是一个非常强大且最先进的目标检测模型。在本教程中,介绍了如何准备YOLOR环境、使用Roboflow下载自定义目标检测数据、运行YOLOR训练过程、可视化YOLOR数据以及使用YOLOR进行推理。现在,已经具备了在计算机视觉任务中使用YOLOR所需的知识。
YOLOR是否比YOLOv4更快? YOLOR在V100批量1的延迟方面比Scaled-YOLOv4快约88%,同时保持类似的性能水平。