了解基于锚点的探测器如何通过精确定位、规模适应性和实际应用彻底改变物体检测。
基于锚点的检测器是计算机视觉(CV)中处理物体检测任务的重要基础方法。这些模型通过使用一组预定义的参考框(通常称为 "锚点 "或 "先验")来运行,这些参考框具有特定的尺寸和长宽比。锚点分布在整个图像中,充当初始猜测或模板,使模型能够更有效地预测物体的位置和类别,尤其是在处理不同尺度和形状的物体时。许多有影响力的早期物体检测模型,如某些版本的 Ultralytics YOLO系列的某些版本就采用了这种技术。
基于锚点的检测器背后的基本概念是在输入图像的多个位置和尺度上叠加这些预定义锚点的密集网格。每个锚点框对应一个具有特定大小和形状的潜在物体。在模型训练过程中,检测器会针对每个锚点学习两件主要的事情:首先,它会对锚点框是否包含相关物体或背景进行分类;其次,它会完善锚点的位置和尺寸(这一过程称为回归),以精确匹配实际物体的边界框。
考虑在繁忙街道的图像中检测各种车辆。基于锚点的模型不分析每个像素组,而是使用预定义的方框模板:较小的方框代表行人,中等大小的方框代表汽车,较大的矩形代表公交车。这些模板(锚点)被放置在整个图像中。如果锚点与汽车有明显重叠,模型就会将其归类为 "汽车",并调整锚点的坐标和大小,使其与汽车完全吻合。仅覆盖道路或建筑物的锚点则被归类为 "背景"。这种以预定义形状为指导的系统化方法有助于管理物体检测的复杂性。性能评估通常使用 "联合交叉"(IoU)和 "平均精度"(mAP)等指标。
基于锚点的检测器通常以功能强大的卷积神经网络(CNN)为骨干,具有明显的优势:
基于锚点的探测器已成功应用于许多实际场景:
近年来,无锚检测器已成为一种流行的替代方案。与基于锚点的模型(如..、 Ultralytics YOLOv5等)不同,无锚方法通常通过识别关键点(如对象中心或角落)或预测点到对象边界的距离来直接预测对象的位置和大小,从而无需预定义的锚点形状。
主要区别包括
虽然像YOLOv4这样基于锚点的探测器非常成功,但许多现代架构,包括 Ultralytics YOLO11等许多现代架构都采用了无锚点设计,以充分利用它们在简单性和效率方面的优势。您可以在YOLO11中探索无锚检测的优势,并查看不同YOLO 模型之间的比较。
无论是基于锚点还是无锚点,开发和部署对象检测模型都需要使用以下框架 PyTorch或 TensorFlow等框架和OpenCV 等库。Ultralytics HUB等平台为训练自定义模型、管理数据集和部署解决方案提供了简化的工作流程,并支持各种模型架构。为了进一步学习,Papers With Code等资源列出了最先进的模型,DeepLearning.AI等平台提供的课程涵盖了基础概念。