计算机视觉简介 计算机视觉是一门旨在让计算机从数字图像中获得高层次理解的学科。这个定义相当宽泛,因为“理解”可以有很多不同的含义,包括在图片中找到物体(目标检测)、理解正在发生的事情(事件检测)、用文本描述图片,或者重建场景的三维结构。还有一些与人类图像相关的特殊任务:年龄和情绪估计、面部检测和识别、以及三维姿态估计等。 课前测验 计算机视觉最简单的任务之一是图像分类。 计算机视觉通常被视为人工智能的一个分支。如今,大多数计算机视觉任务都是通过神经网络来解决的。在本节中,我们将学习用于计算机视觉的特殊类型的神经网络,即卷积神经网络。 然而,在将图像传递给神经网络之前,很多时候使用一些算法技术来增强图像是有意义的。
计算机视觉是一门旨在让计算机从数字图像中获得高层次理解的学科。这个定义相当宽泛,因为“理解”可以有很多不同的含义,包括在图片中找到物体(目标检测)、理解正在发生的事情(事件检测)、用文本描述图片,或者重建场景的三维结构。还有一些与人类图像相关的特殊任务:年龄和情绪估计、面部检测和识别、以及三维姿态估计等。
计算机视觉最简单的任务之一是图像分类。
计算机视觉通常被视为人工智能的一个分支。如今,大多数计算机视觉任务都是通过神经网络来解决的。在本节中,我们将学习用于计算机视觉的特殊类型的神经网络,即卷积神经网络。
然而,在将图像传递给神经网络之前,很多时候使用一些算法技术来增强图像是有意义的。
有几种Python库可用于图像处理:
OpenCV 被认为是图像处理的默认标准。它包含了许多有用的算法,这些算法是用C++实现的。你也可以从Python调用OpenCV。
学习OpenCV的好地方是this Learn OpenCV课程。在我们的课程中,我们的目标不是学习OpenCV,而是向你展示一些示例,说明在哪些情况下可以使用它,以及如何使用它。
在Python中,图像可以通过NumPy数组方便地表示。例如,大小为320x200像素的灰度图像将存储在一个200x320的数组中,而相同尺寸的彩色图像将具有形状为200x320x3(对于3个颜色通道)。要加载图像,你可以使用以下代码:
import cv2 im = cv2.imread(https://www.aiknowledge.cn/images/初学者的AI课程/'image.webp)
传统上,OpenCV使用BGR(蓝-绿-红)编码彩色图像,而Python的其他工具则使用更传统的RGB(红-绿-蓝)。为了让图像看起来正确,你需要将其转换到RGB颜色空间,方法是在NumPy数组中交换维度,或者调用OpenCV函数:
im = cv2.cvtColor(im, cv2.COLOR_BGR2RGB)
OpenCV提供了多种功能来增强图像质量:
在我们的OpenCV笔记本中,我们提供了一些计算机视觉可以用于执行特定任务的例子:
![]() |
![]() |
![]() |
|---|
图片来自 OpenCV.ipynb

图片来自 OpenCV.ipynb
使用光流检测运动。光流允许我们理解视频帧中每个像素是如何移动的。有两种类型的光流:

图片来自 OpenCV.ipynb
让我们通过探索OpenCV笔记本做一些OpenCV实验。
有时,相对复杂的任务如运动检测或指尖检测可以通过计算机视觉纯软件方式解决。因此,了解计算机视觉的基本技术,以及像OpenCV这样的库能做什么是非常有帮助的。
观看AI Show中的这段视频,了解Cortic Tigers项目的详情以及他们如何通过机器人构建一个基于模块的解决方案来普及计算机视觉任务。研究其他类似项目,帮助新学习者进入该领域。
阅读更多关于光流的内容,参考this很棒的教程。
在这个实验室中,你将处理一段带有简单手势的视频,你的目标是使用光流提取上下左右的运动。
声明:
本文件灏天文库团队进行了翻译。尽管我们力求准确,但请注意,翻译可能包含错误或不准确之处。原文档以其原始语言为准。我们不对因使用此翻译而产生的任何误解或误译负责。