想象一下:你和你的自动驾驶车正在穿越拥挤的街道。你是否曾经想过这样的自动驾驶汽车是如何看待这个世界的?它实际上在不到1/10秒的时间内玩起了“我瞧瞧”的游戏。
自动驾驶汽车必须在瞬间内识别人、标志和车辆。这就是为什么在当今社会中,准确找到图像中的对象如此重要的原因。准确找到物体有助于这些汽车迅速做出决策,以确保我们所有人的安全。如果汽车错误地认为标志是行人,可能会发生糟糕的事情。
车车辆在图像中的检测
什么是目标检测?
这些自动驾驶汽车正在进行的正式名称是目标定位。目标检测旨在不仅对图像中的对象进行分类,还要找到该对象在图像中的位置。这对于各种不同的任务都非常重要,因为它使自动驾驶车辆能够在复杂的交通场景中安全导航。
目标检测有各种不同的应用。在医学成像中,目标检测对于诊断疾病至关重要,在农业技术中用于作物监测,在增强现实中用于无缝用户交互。准确的目标检测不仅有助于理解和解释视觉内容,而且还为做出明智决策奠定了基础。
在图像中检测对象
目标检测是如何工作的?
计算机中的目标检测由卷积神经网络提供支持。这些卷积神经网络能够从图像中提取特征,从而实现图像的分类。有许多不同类型的目标定位模型。一些目标定位模型包括YOLO、SSD和R-CNN。YOLO是最强大且最高效的模型。它是最常用的目标检测模型。
这些图像检测神经网络首先通过分类头预测图像中的内容。然后,在回归头中预测每个对象在图像中的位置。分类旨在对图像进行特定数量的类别分类,而回归旨在找到一个相关的数字,在图像检测的情况下是边界框的x和y坐标。
图像检测神经网络的架构
介绍YOLO
YOLO,即“You Only Look Once”,改变了目标检测领域的游戏规则,它非常快速和高效。
YOLOv5是如何工作的?
与旧方法进行多轮图像处理不同,它使用深度神经网络,特别是卷积神经网络(CNNs),来检测对象。但是,它以聪明的方式使用CNN。它将图像分成小节并预测事物的位置以及对其猜测的自信程度,所有这些都一次性完成。
它将图像分为SxS网格,每个单元格一个。如果对象的中心落在单元格下,该单元格负责该特定对象。对于每个单元格,它预测B个边界框。它还使用C类概率预测每个框的置信度。对于每个边界框,有5个预测:x、y、宽度、高度和置信度分数。最终的预测被编码为SxSx(Bx5+C)张量,即多维向量。当YOLO在Pascal VOC上进行评估时,这是一个用于目标检测的著名数据集,图像被分为一个7x7的网格,每个单元格有2个边界框的预测,以及20个总标签类。这导致了一个7x7x30的张量作为预测。
相较之前的方法Faster R-CNN,它依赖于一个更复杂的系统。它首先在图像中提出潜在区域,然后分析每个区域以单独检测对象。这种方法涉及多个步骤,使其相对于YOLOv5而言更慢。另一方面,YOLOv5跳过了区域建议步骤,直接预测边界框和对象概率。这个简化的过程显著加速了目标检测,同时保持了高准确性。
数据集
YOLOv5训练的数据集是COCO数据集。COCO数据集是640x640的图像,可用于图像检测、图像分割和图像字幕。总共有80个类别在COCO数据集中。由于COCO是一个非常庞大的数据集,因此它对于创建诸如YOLOv5之类的通用模型非常有用。
评估图像检测模型的准确性
与所有机器学习模型一样,我们需要测量模型的准确性。那么对于目标检测模型,如何进行准确性评估呢?图像检测模型使用一种称为交并比(IoU)的方法。较高的IoU表示预测边界框与实际边界框之间的匹配程度更高。
它通过将重叠区域的面积除以并集的面积来实现。IoU为1意味着预测和实际情况完全相同。
IoU的计算方式
使用Python进行YOLO
既然我们了解了YOLO的工作原理以及它是如何训练的,我们如何在自己的程序中编写代码并实施呢?Ultralytics已经将YOLOv5开源,允许任何人在其自己的程序中使用YOLOv5。使用PyTorch hub,我们可以使用YOLOv5并测试图像识别功能。
在实施YOLOv5时,我面临的最具挑战性的决定之一实际上是弄清楚如何实现它。有许多不同的方法,如Ultralytics和Roboflow。我决定使用Ultralytics,因为Ultralytics使得与Python程序集成变得非常容易,尤其是与PyTorch一起使用。
你也可以查看Roboflow!Roboflow可以让工程师创建和注释数据集,开发模型,并将模型部署在API端点上,我们可以将其部署到NVIDIA Jetson、iOS、浏览器和Raspberry Pi上!
TL;DR
- 目标检测对于自动驾驶汽车和医学诊断等应用非常重要。
2. YOLOv5通过准确地在图像中识别对象,大大简化和改进了目标检测,超越了以前的方法(如Faster R-CNN)的复杂性和速度。
结论
总的来说,YOLO是机器学习和计算机视觉中非常强大的工具。它非常准确,而且由于Ultralytics对这些模型的开源,任何人,包括你和我,都可以利用这些最先进的模型进行工作和创建酷炫的应用程序。