在深入研究每个步骤之前,让我们看看计算机视觉技术最适合哪些情况:
图像分割
物体检测
图像分类
跟踪一段时间内移动的物体
人脸检测与识别
光学字符识别
图像生成
当今计算机视觉专家所需的基本技能:
Python语法
数学分析
线性代数
OpenCV 库
TensorFlow 深度学习框架
现在让我们回顾一下掌握计算机视觉技能的 8 个步骤。
第 1 步:基本成像技术
您可以首先观看 Joseph Redmon 创作的这个精彩的 Youtube 系列,名为“计算机视觉的古老秘密”。
然后请务必阅读Richard Szeliski 所著的《计算机视觉:算法与应用》。本书讨论了图像形成和处理、特征检测和匹配、分割、基于特征的对齐、计算摄影、3D 重建和渲染等计算机视觉方法。总而言之,它应该成为您的手册和计算机视觉开发世界的重要指南。
要锻炼和实践上述书中的知识,请尝试使用此OpenCV 工具。
该网站还包含许多教程,可帮助您练习 GUI 功能、图像处理、视频分析、相机校准以及解决不同的计算机视觉挑战。
步骤 2:运动跟踪和光流分析
光流是通过相对于场景移动观察者或物体而获得的物体图像序列。
参加 Udacity 上的计算机视觉课程,特别注意第 6 课中有关定向梯度的内容。课程的重点是培养讲座方法的直觉和数学能力,然后了解问题集中理论与实践之间的差异。
在学习课程的同时,请再次观看“计算机视觉的古老秘密”的第 8 集,并阅读 Szeliski 书中的第 10.5 和 8.4 节。
图片标题
第 3 步:基本细分
在计算机视觉中,分割是将数字图像划分为多个片段(超像素)的过程。分割的目的是简化和/或改变图像的表示,使其更容易且更易于分析。
例如,霍夫变换有助于通过投票程序找到特定形状类别内的对象的不完美实例。
观看这些视频以增强知识:
另外,看看这个自动驾驶汽车车道查找项目。
第四步:安装
不同的数据需要特定的拟合方法和特定的算法。这个视频会有帮助的!
此外,请阅读“计算机视觉:算法与应用”的4.3.2 è 5.1.1节。
作为作业,分析地平线上消失点的检测和跟踪。这将有力地提升您的计算机视觉技能。
第 5 步:匹配不同视点的图像
Sean Mullery 的这个YouTube 播放列表会派上用场。
对于家庭作业,您可以获取自己的数据,例如从不同角度拍摄的家具照片,并从平面相册中在 OpenCV 中制作 3D 对象。
第 6 步:3D 场景
如果您知道如何从平面图像创建 3D 对象,则可以尝试创建 3D 现实。
考虑学习 Coursera 上免费提供的立体视觉、密集运动和跟踪课程。
要巩固您的新知识,请观看以下视频:
对于家庭作业,尝试使用3D 场景重建并构建实时应用程序来估计相机姿势,以便在给定 2D 图像及其 3D 纹理模型的情况下跟踪具有六个自由度的纹理对象。
步骤7:物体识别和图像分类
TensorFlow作为深度学习的框架,使用起来非常方便。它是最流行的框架之一,因此您会找到大量示例。要开始在 TensorFlow 中处理图像,请阅读本教程。
接下来,使用下面的链接,考虑探索以下主题:
语义分割:对象、场景、活动的分类
物体检测(非极大值抑制、滑动窗口、锚框)
使用YOLO和Darknet、区域提议网络(RPN)进行实时目标检测
监督图像分类
视觉属性
光学字符和文本识别
人脸检测
作为家庭作业,创建一个TensorFlow 神经网络,可以通过图像定义狗的品种。
第 8 步:深度学习
强烈建议您观看斯坦福大学工程学院的全部 16 个讲座,这些讲座涉及一系列人工智能和计算机视觉主题,从卷积神经网络到 CNN 架构,从检测和分割到深度强化学习。