【官方框架地址】
GitHub - ultralytics/yolov5: YOLOv5 🚀 in PyTorch > ONNX > CoreML > TFLite
【算法介绍】
YOLO(You Only Look Once)系列算法是一种在计算机视觉领域广泛应用的目标检测算法,而YOLOv5是该系列中的一款非常流行的实现。尽管YOLOv5的名称暗示它是用于目标检测,但这种算法也可以进行图像分类任务。要注意的是,YOLOv5主要被设计和优化用于目标检测,且由于是社区维护的版本,它并不是官方的后续版本。
YOLOv5采用了卷积神经网络(CNN)的架构,它通过端到端的训练能够在单个网络中同时进行特征提取、边界框预测和类别识别。
核心特点
速度快
YOLOv5的设计注重速度与精度的平衡,它能够在保持较高检测精度的同时,实现快速的推理速度,这使其非常适合实时检测任务。
权重轻
YOLOv5在不牺牲太多精度的前提下,提供了不同大小的模型,从小型的YOLOv5s到大型的YOLOv5l和YOLOv5x,满足不同计算能力的平台需求。
易于训练和部署
YOLOv5易于训练且模型文件体积小,配合其有效的预训练权重和灵活的部署能力,可以在各种硬件平台上快速启动和运行。
图像分类应用
尽管YoLOv5专为目标检测任务设计,但它也可以用于图像分类。在这种情况下,你只需要在图像中识别整体的类别,而不是检测图像中的多个对象和它们的位置。
将YOLOv5用于图像分类的一个常用方法是提取YOLOv5中的特征提取部分,即其CNN骨干网,并在此基础上添加一个用于分类的全连接层。通过这种方式,你可以在训练时仅使用标注类别的图像数据集,而不是需要目标检测标注的数据集。
YOLOv5适用场景
YOLOv5适用于需要快速、实时检测物体并对图像中的物体分类的场合,比如监控系统、无人驾驶汽车以及在零售中识别商品等。对于只需要进行图像分类而非位置检测的任务,YOLOv5可以通过网络的适当修改来适应这一需求。
总结
总的来说,尽管YOLOv5是针对目标检测问题设计的,但其快速、高效的特性也可以适用于图像分类任务。它的强大功能和灵活性意味着,通过一些修改,YOLOv5可以成为一个在多个不同任务中表现出色的工具。然而,如果任务仅限于图像分类,可能会有专门为分类优化的其他算法更为合适,比如使用ResNet、EfficientNet等网络结构。
【效果展示】
【实现部分代码】
.版本 2
.支持库 spec
Yolov5Cls_加载模型 (“yolov5n-cls.onnx”, “labels.txt”)
图片字节集 = 读入文件 (“goldfish.jpg”)
图片大小 = 取字节集长度 (图片字节集)
推理结果 = Yolov5Cls_推理_从字节集 (图片字节集, 图片大小)
调试输出 (推理结果)
Yolov5Cls_释放资源 ()
【视频演示】
https://www.bilibili.com/video/BV1t64y1N7GA/
【测试环境】
易语言5.93,opencv4.7.0