术语表

OpenCV

了解 OpenCV 的强大功能,OpenCV 是实时计算机视觉、图像处理和人工智能创新的首选开源库。

使用Ultralytics HUB 对YOLO 模型进行简单培训

了解更多

OpenCV 是 Open Source Computer Vision Library(开源计算机视觉库)的简称,是一个功能强大、用途广泛的开源库,广泛应用于人工智能(AI)机器学习(ML)领域。它提供了一套全面的工具和算法,专门用于实时计算机视觉(CV)任务、图像处理和视频分析。对于机器学习从业人员来说,OpenCV 是处理视觉数据的基本工具包,可以完成从基本图像加载和处理到复杂场景理解的各种任务。由OpenCV.org 维护的OpenCV 的开源特性促进了一个大型社区的发展和持续开发,使其成为该领域的基石技术。它可在 Windows、Linux、macOS、Android 和iOS 等各种平台上使用,并提供Python、C++、Java 和 MATLAB 等语言的接口。

人工智能和机器学习的相关性

OpenCV 在人工智能和 ML 流程中发挥着至关重要的作用,尤其是在处理视觉输入时。它为数据预处理提供了基本工具,这是将图像或视频输入机器学习模型前的关键步骤。OpenCV 处理的常见预处理步骤包括调整大小、色彩空间转换(如将 BGR 转换为 RGB,使用特定色彩顺序训练的模型通常需要这种转换)、使用高斯模糊等滤波器降噪,以及应用各种变换来提高图像质量或提取相关特征。这种预处理会极大地影响深度学习(DL)模型的性能。

OpenCV 经常与流行的 ML 框架结合使用,如 PyTorchTensorFlow等流行的 ML 框架来构建端到端 CV 应用程序。这些框架侧重于构建和训练神经网络,而 OpenCV 则处理视觉数据的输入/输出、操作以及通常的后处理,例如绘制边界框或分割掩码,这些都是由诸如 Ultralytics YOLO.OpenCV 在处理实时视频流方面的高效率使其成为需要即时视觉分析的应用不可或缺的工具,例如用于物体检测姿态估计的 实时推理

主要特点和功能

OpenCV 提供了大量功能(超过 2500 种算法),涵盖经典计算机视觉技术,并支持现代深度学习集成。主要功能包括

  • 图像和视频输入/输出读写各种图像(JPEGPNGTIFF)和视频格式(AVIMP4)。
  • 图像处理:基本操作,如调整大小、裁剪(参见对象裁剪指南)、旋转、色彩空间转换、过滤和形态转换
  • 特征检测和描述:实现SIFT、SURF(专有算法,在最近的版本中通常被ORB所取代)和 FAST 等算法,用于识别图像中的关键点。(OpenCV 特征检测文档)。
  • 物体检测:虽然它本身并不训练模型,但它提供了运行预训练检测器(如用于人脸检测的 Haar 级联)和处理 DL 模型输出(如从 YOLO11 中绘制方框)的工具。 YOLO11预测)。
  • 视频分析包括用于运动分析的工具,如光流、背景减影和物体跟踪算法(参见跟踪模式)。
  • 相机校准和 3D 重建:了解相机几何形状和重建 3D 场景的功能(相机校准指南)。
  • 机器学习模块:包括一些经典 ML 算法的实现,如支持向量机 (SVM)和 K-Nearest Neighbors (KNN),尽管深度学习任务通常依赖于专用框架。它还提供了加载和运行以下列格式导出的模型的功能 ONNX.(模型导出文档)。

OpenCV 与相关概念

将 OpenCV 与相关术语区分开来很有帮助:

  • 计算机视觉(CV)计算机视觉是一个广泛的科学领域,涉及让机器解释视觉信息。OpenCV 是用于实现 CV 应用程序的工具 或库,而非该领域本身。
  • 图像处理主要侧重于处理图像(如增强对比度、去除噪点)。OpenCV 提供广泛的图像处理功能,但也包括更高级的任务,如物体识别和场景理解,这些都属于计算机视觉的范畴。
  • ML 框架(PyTorchTensorFlow):这些框架主要用于构建、训练和部署神经网络和其他 ML 模型。OpenCV 是对它们的补充,它提供了重要的工具,用于可视数据进入模型之前(预处理)和推理之后(可视化、后处理)处理这些数据。虽然 OpenCV 拥有一些 ML 功能,但与这些专用框架相比,这并不是它的主要重点。例如,Ultralytics HUB 使用PyTorch 等框架进行模型训练,并可能隐式或显式地使用 OpenCV 进行数据处理。

实际应用

OpenCV 的多功能性使其在众多 AI/ML 应用中无处不在:

  1. 自动驾驶汽车在自动驾驶汽车和高级驾驶辅助系统(ADAS)中,OpenCV 通常用于摄像头和激光雷达数据的初始处理。任务包括车道检测、通过特征匹配或轮廓检测进行障碍物识别、交通标志识别(通常将处理后的图像输入分类器)以及环视系统的图像拼接。例如,在将原始相机帧输入深度学习模型(如 YOLOv8这样的深度学习模型,以检测汽车和行人。(探索 Waymo 的技术)。
  2. 医学图像分析OpenCV 可帮助加载各种医学图像格式(如 DICOM,通常需要其他库的帮助),增强图像对比度以更好地显示异常,使用阈值或分水岭算法等技术分割感兴趣的区域(如肿瘤或器官),以及配准不同时间或不同模式下拍摄的图像。预处理后的数据通常由专门的 ML 模型进行分析,用于诊断或治疗规划。(放射学中的人工智能 - RSNA)。

其他应用包括机器人技术(在机器人技术中集成计算机视觉)、监控(安全报警系统)、增强现实、制造业质量控制和农业(如作物健康监测)。Ultralytics 文档提供了许多示例,说明如何将 OpenCV 函数与YOLO 模型结合起来,用于预处理或后处理步骤。

阅读全部
OSZAR »