什么是 YOLO?
YOLO,全称 “You Only Look Once”(你只看一次),是一个开创性的目标检测模型家族。与多次扫描图像的传统模型不同,YOLO 在单次处理中就能分析整个图像,使其速度极快,非常适合实时应用。最新的迭代版本,如 Ultralytics 开发的 YOLOv8,进一步推动了速度和准确性的极限,使 YOLO 成为需要在从强大服务器到低功耗边缘设备的各种设备上进行即时目标识别任务的标准。
主要特点
- 实时性能: YOLO 以其能够以高帧率(FPS)处理视频流而闻名,是实时视频分析的理想选择。
- 高准确度: 在保持高速的同时,现代 YOLO 版本保持了与更慢、更复杂的模型相媲美的高准确度(mAP)。
- 多重任务: YOLOv8 在一个统一的框架内不仅支持目标检测,还支持实例分割、图像分类和姿态估计。
- 可扩展模型: 它提供多种尺寸(例如,nano、small、medium、large),允许开发人员根据其特定硬件和应用需求,在速度和准确度之间选择合适的平衡点。
- 易于使用: Ultralytics 库提供了一个非常简单直观的 Python API 和命令行界面(CLI),用于训练、验证和运行预测。
应用场景
- 自动驾驶汽车: 检测行人、其他车辆、交通灯和路标,以实现安全导航。
- 安防监控: 监控入侵者、跟踪感兴趣的目标以及分析公共场所的人群密度。
- 零售分析: 跟踪顾客动线、监控货架库存以及支持无人收银系统。
- 农业: 识别害虫、监测作物健康状况以及自动化收割过程。
- 医学影像: 通过在医学扫描中检测肿瘤或细胞等异常情况来辅助医生。
入门指南
得益于 ultralytics Python 包,开始使用 YOLOv8 非常简单。
首先,使用 pip 安装该包: ```bash pip install ultralytics
接下来,您可以使用预训练模型,仅用几行 Python 代码即可对图像进行预测:
```python from ultralytics import YOLO
加载一个官方预训练模型(例如,yolov8n.pt 是 nano 版本)
model = YOLO(‘yolov8n.pt’)
定义用于预测的源图像
image_source = ‘https://ultralytics.com/images/bus.jpg’
运行预测
results = model(image_source)
显示结果(这将打开一个带有注释图像的窗口)
results[0].show()
您也可以通过编程方式访问边界框数据
for box in results[0].boxes: print(f”检测到: {model.names[int(box.cls)]},置信度为 {box.conf.item():.2f}”)
定价
YOLO 本身是一种开源模型架构。由 Ultralytics 实现的流行 YOLOv8 版本采用 AGPL-3.0 许可证。这意味着它对于开源项目和研究是免费的。但是,要在闭源商业应用中使用,必须从 Ultralytics 购买单独的商业许可证。