如果您最近在社交媒体上关注FaceApp炒作和狂热,并尝试使用此AI应用程序来查看您在成熟的年龄中的样子,那么您肯定会发现计算机视觉技术背后的所有力量。虽然他们还处于初期阶段,我们尚未在各个领域和垂直行业看到更具吸引力和发人深思的计算机视觉用例,但您有机会获得并掌握您的AI技能并通过成为计算机愿景来满足未来的需求大师。
在与几位致力于人工智能和计算机视觉项目的开发人员交谈之后,我提出了八个步骤,成为一名出色的计算机视觉开发人员。但是,在深入研究每个步骤之前,让我们看一下计算机视觉技术最适合的案例:
- 图像分割
- 物体检测
- 图像分类
- 随时间跟踪移动物体
- 人脸检测和识别
- 光学字符识别
- 图像生成
今天计算机视觉专家所需的基本技能:
- Python语法
- 数学分析
- 线性代数
- OpenCV库
- TensorFlow深度学习框架
现在让我们回顾一下掌握计算机视觉技能的8个步骤。
Step1:基本成像技术
你可以先看看约瑟夫·雷蒙(Joseph Redmon)所说的“计算机视觉的古老秘密”这个优秀的Youtube系列。
然后请务必阅读Richard Szeliski撰写的 “计
算机视觉:算法和应用”
。该书涉及计算机视觉方法,如图像形成和处理,特征检测和匹配,分割,基于特征的对齐,计算摄影,3D重建和渲染。总而言之,它应该成为您的手册和计算机视觉开发世界的重要指南。
要从上述书中练习和练习您的知识,请尝试使用此
OpenCV工具
。
该网站还包含许多教程,可帮助您练习GUI功能,图像处理,视频分析,摄像机校准以及解决不同的计算机视觉挑战。
Step2:运动跟踪和光流分析
光流是通过相对于场景移动观察者或对象而获得的一系列对象的图像。 参加关于Udacity的 计算机视觉 课程,特别注意有关渐变渐变的第6课。本课程的重点是在讲座中发展方法的直觉和数学,然后了解问题集中理论与实践的区别。 随着课程,再次观看“计算机视觉的古代秘密”
第8集
,并阅读Szeliski的书10.5和8.4节。
Step3:基本细分
在计算机视觉中,分割是将数字图像分成若干段(超像素)的过程。分割的目的是简化和/或改变图像的表示,以使分析更容易和更容易。 例如, 霍夫变换 通过投票程序帮助找到特定类形状内的对象的不完美实例。 观看这些视频以增强知识: 另外,看看这个 自动驾驶汽车的车道寻找项目
。
Step4:拟合
不同的数据需要特定的拟合方法和特定的算法。这段视频会有所帮助! 此外,阅读“计算机视觉:算法和应用”的4.3.2和5.1.1节。 对于家庭作业,分析 检测和跟踪地平线上的消失点
。这将有力地提升您的计算机视觉技能。
Step5:匹配来自不同视点的图像
Sean Mullery的这个
Youtube播放列表
将派上用场。
对于家庭作业,您可以使用自己的数据,如从不同角度拍摄的家具图片,并从平面图像相册在OpenCV中制作3D对象。
Step6:3D场景
如果您知道如何从平面图像创建3D对象,则可以尝试创建3D现实。
考虑在Coursera上免费提供
Stereo Vision,Dense Motion和Tracking
课程。
要修复新知识,请观看以下视频:
对于家庭作业,尝试使用
3D场景重建
并构建实时应用程序来估计相机姿势,以便在给定2D图像及其3D纹理模型的情况下跟踪具有六个自由度的纹理对象。
Step7:对象识别和图像分类
作为
深度学习
的框架,TensorFlow使用起来非常方便。它是最流行的框架之一,所以你会发现很多例子。要开始使用TensorFlow中的图像,请阅读本
教程
。
接下来,使用以下链接,考虑探索以下主题:
- 语义分割:对象,场景,活动的分类
- 物体检测(非最大抑制,滑动窗口,锚箱)
- 使用YOLO和Darknet进行实时对象检测,区域提议网络(RPN)
- 监督图像分类
- 视觉属性
- 光学字符和文本识别
- 人脸检测
对于家庭作业,创建一个
TensorFlow神经网络
,可以通过图像定义狗的品种。