经典计算机视觉死亡了吗?

在本文中,我将向你展示最常用的经典计算机视觉方法,给出示例,并向你展示如何使用这些算法以及何时你应该和不应该使用这些算法。

经典计算机视觉死亡了吗?

当我三年前第一次听到“计算机视觉”这个词时,一切都改变了。那时,我开始学习经典计算机视觉;图像处理、特征提取、特征匹配、相机校准、目标跟踪等等。如今,刚开始学习计算机视觉的人不再关注这些主题,因为每周都会宣布新的深度学习模型,炒作(比如 SAM3 带来的炒作)都是关于这些模型的。也许这并不是一件坏事,因为没有人想落后。但对于理解计算机视觉的整体概念,经典计算机视觉仍然很重要。

在本文中,我将向你展示最常用的经典计算机视觉方法,给出示例,并向你展示如何使用这些算法以及何时你应该不应该使用这些算法。

1、何时使用经典计算机视觉?

我认为我们都可以同意深度学习方法是强大且更适合大多数任务的,但经典计算机视觉仍有其空间。这些模型很好,但它们需要大量的计算资源。你不需要为每个任务都使用深度学习模型,通过将图像处理和不同过滤器与其他经典 CV 方法结合,你可以计数对象、过滤对象并检测运动。因此,你仍然可以对简单任务使用经典 CV。好了,现在我将谈论不同的经典计算机视觉方法,对于每部分,我都有一个专门介绍该算法的完整文章在我的个人博客网站上。我将为每篇文章分享链接。

高级深度学习模型 (SAM2) [ [视频]

2、图像处理

我觉得玩图像真的很有趣,一个接一个地应用不同的滤镜,改变参数,尝试不同的组合。你知道,我有一个项目,把棋盘图像转换成数字棋盘格式(FEN),我用了许多滤镜。第一个任务是检测棋盘,所以我用 OTSU 阈值 创建了二值图像,用 Canny 边缘检测 检测边缘,用 HoughLines 找到线条。即使只用了几个滤镜,结果也非常棒。请看看下面的图表,以及这些滤镜是如何依次使用的。

GitHub 仓库

你可以从 GitHub 仓库 中看到代码,也可以参考下面的博文了解此流程的解释。

3、特征提取

当你看到一张图像时,你会看到很多颜色、不同的形状、不同的图案。实际上,有些部分与某些特征相同,比如特定的 像素块代表人眼,或者某个特定物品的边缘。所以,想法是找到这些独特的点(关键点),并用于不同的应用,如:目标跟踪(不是精确的跟踪,你很快会看到),图像匹配,图像拼接...

我有很多文章都使用了相同的逻辑:

  1. 用户在目标对象(人、飞机等)周围画一个矩形。
  2. 从该特定区域中,提取关键点和描述符
  3. 读取视频,并为每一帧提取关键点和描述符。将这些描述符与步骤 2 的描述符进行比较,如果它们匹配超过某个阈值,就突出显示该点(特定特征)
使用 FAST 算法提取特征 [视频]

当然,这不是跟踪对象的正确方法,它更像是特征匹配,这只是给你一个想法 :)

你可以使用关键点检测器如 FAST、Harris 角点检测器或 Shi–Tomasi 角点检测器 来寻找图像中的独特点。检测这些点后,你可以使用 SIFT、SURF、ORB 和 BRIEF 等描述符来匹配这些关键点。

你可以将关键点检测器与 卡尔曼滤波器 结合起来预测运动

使用 FAST + 卡尔曼滤波器预测运动 [视频]

前两部分是通用主题,但当然经典计算机视觉不仅仅是这些,还有更多内容。但现在,我将谈论更具体的内容,并尝试给你一些想法,这样你就可以使用经典计算机视觉创造不同的东西。

4、背景减除器

想法相当简单,比如说你有移动的对象,而你的背景是静态的(或接近静态)。通过比较连续帧,你可以检测到运动。

OpenCV 中有两种不同的背景减除器:

  • K-最近邻 (KNN)
  • 高斯混合 (MOG2)

你可以在下面的文章中找到完整的代码和说明,了解如何使用背景减除器来检测运动。

5、透视变换

现在假设你想创建一个移动应用程序,从图像中提取文本使用 OCR 工具,并使用 Google 翻译 API 翻译提取的文本,再使用 NLP 模型进行总结。你将应用发布到 Google Play Store,有人开始使用它。但他们用手机拍摄的照片并不完美,方向不正确。使用 透视变换,你可以调整方向,这样你其余的流程就能更好地运行。

或者回到棋盘项目(图表),检查第 4 步。你将看到我在解释什么。再次,你可以参考这篇文章

6、如何使用颜色信息

颜色信息可能很有帮助。如果我们的目标对象有一种单一的颜色(红色苹果、白色球、灰色勺子),我们可以利用这一点。毕竟,这些颜色代表了一些数值,例如白色为 (255,255,255)。我们可以根据它们的值过滤这些颜色,并统计场景中的特定对象,甚至检测它们。我创建了一个简单的 GUI 来演示这一点,你可以阅读它

使用颜色信息

原文链接:Classical Computer Vision is Dead?

汇智网翻译整理,转载请标明出处