《计算机视觉40例》内容简介

本文摘选自《计算机视觉40例——从入门到深度学习(OpenCV-Python)》(电子工业出版社:李立宗)的前言部分。

------------------------------------------------------------------------------------------

前言

计算机视觉是目前最热门的研究领域之一,而OpenCV-Python(Python API for OpenCV)结合了OpenCV C++ API和Python语言的最佳特性,这使得它成为计算机视觉领域内极具影响力和实用性的工具。

近年来,我深耕计算机视觉领域的课程研发工作,在该领域尤其是OpenCV-Python方面积累了一点儿经验。因此,我经常会收到该领域相关知识点的咨询,内容涵盖图像处理的基础知识、OpenCV工具的使用、深度学习的具体应用等多个方面。为了更好地把所积累的知识以图文的形式分享给大家,我将该领域内的知识点进行了系统的整理,编写了本书。希望本书的内容能够对大家在计算机视觉方向的学习有所帮助。

本书的主要内容

本书对计算机视觉涉及到的知识点进行了全面、系统、深入的梳理,旨在帮助读者快速掌握该领域的核心知识点。全书包含5个部分,40余个计算机经典案例,主要内容如下:

第1部分 基础知识导读篇

本部分对计算机视觉领域的基础内容进行了系统的梳理,以帮助初学者能够快速入门。本部分主要包含以下三方面内容:

  1. 图像处理基础理论(第1章)
  2. Python基础(第2章)
  3. OpenCV基础(第3章)

第2部分 基础案例篇

本部分主要使用OpenCV-Python实现了图像处理领域经典的案例。主要包含:

  1. 图像加密(第4章)
  2. 图像关键部位打码(第4章)
  3. 数字水印(第5章)
  4. 物体计数(第6章)
  5. 次品排查(第7章)
  6. 手势识别(第8章)
  7. 答题卡识别(第9章)
  8. 隐身术(第10章)
  9. 图像检索(第11章)
  10. 手写数字识别(第12章)
  11. 车牌识别(第13章)
  12. 指纹识别(第14章)

上述案例采用传统的图像处理方法解决问题,重点帮助大家理解如下知识点:

  1. 图像预处理方法(阈值处理、形态学操作、图像边缘检测、滤波处理)
  2. 色彩空间处理
  3. 逻辑运算(按位与、按位异或)
  4. 感兴趣区域ROI
  5. 计算图像轮廓
  6. 特征值提取、比对
  7. 距离计算

第3部分 机器学习篇(ml模块)

本部分主要对机器学习基础知识及K近邻算法、SVM算法、K均值聚类算法进行了具体介绍。在上述基础上,使用OpenCV机器学习模块实现了下述案例:

  1. KNN实现手写字符(数字、英文字母)识别(第16章)
  2. K近邻求解数独(第17章)
  3. SVM实现手写数字识别(第18章)
  4. 行人检测(第19章)
  5. K均值聚类实现艺术画(第20章)

第4部分 深度学习篇(dnn模块)

本部分介绍了深度学习基础知识、卷积神经网络基础知识、深度学习案例。在第24章介绍了使用深度学习模块实现计算机视觉的经典案例,主要有:

  1. 图像分类
  2. 目标检测(YOLO、SSD方法)
  3. 语义分割
  4. 实例分割
  5. 风格迁移
  6. 姿势识别

第5部分 人脸识别

对人脸识别的相关基础、Dlib库、人脸的典型应用进行了深入介绍。部分案例如下:

  1. 人脸检测(第25章)
  2. 人脸识别(第26章)
  3. 勾勒五官(第27章)
  4. 人脸对齐(第27章)
  5. 表情识别(第28章)
  6. 疲劳驾驶检测(第28章)
  7. 易容术(第28章)
  8. 性别与年龄识别(第28章)

本书的主要特点

在内容的安排、组织、设计上秉承了如下思路:

1 适合入门

第1部分对计算机视觉的基础知识点进行了全面的梳理,主要包括图像处理基础、Python基础、OpenCV基础。重点对计算机视觉中用到的基础理论、算法、数字图像的应用,Python程序设计基础语法,OpenCV核心函数进行了介绍。该部分内容能够帮助没有计算机视觉基础的读者快速入门,也能够帮助有一定计算机视觉基础的读者对核心知识点进行快速梳理。

2 以案例为载体

按照知识点安排的教材,其特点在于“相互独立,完全穷尽”(MECE,Mutually Exclusive Collectively Exhaustive),能够保证介绍的知识点“不重叠,不遗漏”。但是,采用这种方式学习后有可能会导致一个问题:“我了解了每一个知识点,可是在遇到问题时,感觉无从下手,不知道该把哪些知识点拿出来组合以解决当前的问题”。

知识点是一个个的小石子,解决问题的思路是能够把许多石子串成一条漂亮项链的绳子。绳子可以赋予石子更大的意义和价值,解决问题能够让我们的知识点得以闪光。

本书采用案例的方式来介绍相关知识点。同时,尽量避免将案例作为一个孤立的问题来看待,而是更多地考虑知识点之间的衔接、组合、应用场景等。例如,我们采用了多种不同的方式实现手写数字识别,帮助大家更好地从不同的角度去理解和分析问题。本书从案例实战的角度来展开,将案例作为一根线,将所有的知识点串起来,帮助大家理解知识点间的关系及组合运用,做到融会贯通,提高对知识点的理解和运用能力。

3 轻量级实现

将一个问题以尽量简单明了的方式实现,能够更好地帮我们搞清楚问题的核心和算法。用最简化的方式实现系统(MVP,minimum viable product),用最小的成本和代价快速验证和迭代一个算法,更有利于理解问题、解决问题。使用现有的资源、最低的成本、最快的速度行动起来才最关键的。所以,在本书中,我们尽可能让每一个案例简化,尽量将代码控制在100行左右。希望通过这样的设计,能够让我们更好地关注算法核心。

4 专注算法

抽象,帮我们屏蔽了无关细节,让我们能够专注于工具的使用,极大地提高了工作效率。OpenCV及很多其他库提供给我们的函数都是封装好的,我们直接把输入传递给函数,函数就能够把需要的结果返回给我们。因此,在本书中没有对函数再做过多的介绍,而将注意力放在了实现案例所使用的核心算法上。

5 图解

一图胜千言。当描述关系、流程等一些相对比较复杂的知识点时,单纯使用语言描述可能会让我们一时难以理解。面对复杂的知识点时,有经验的学习者在学习时会根据知识点自己脑补出一幅关于该知识点的图,甚至会手动绘制出一幅图,来进一步理解知识点。这是因为图像能够更加清晰、直观、细致地将知识点的全局、结构、关系、流程、脉络等信息体现出来。本书中,我们精心制作了大量的图表,希望借此能够更好地帮助大家理解相关知识点。

6 案例全面

本书涉及案例40余个,都是在相关领域中比较典型的案例,涵盖了计算机视觉领域的核心应用和关键知识点。案例主要有:

  1. 基础部分:图像安全(加密、解密、信息隐藏、隐身)、图像识别(答题卡、手势、车牌、指纹、数字)、物体计数、图像检索、次品排查等
  2. 机器学习:KNN字符识别(数字、字母)、数独求解(KNN)、SVM数字识别、行人检测、艺术画(K均值聚类)等
  3. 深度学习:图像分类、目标检测(YOLO、SSD方法)、语义分割、实例分割、风格迁移、姿势识别等
  4. 人脸相关:人脸检测、人脸识别、勾勒五官、人脸对齐、表情识别、疲劳驾驶检测、易容术、性别与年龄识别等

互动方式

限于本人水平,书中存在着很多不足之处,欢迎大家提出宝贵的意见和建议,也非常欢迎大家跟我交流关于OpenCV的各种问题,我的邮箱是:lilizong【at】gmail.com。

另外,大家也可以关注我的微信公众号:计算机视觉之光(微信号cvlight)获取关于本书的配套资源等更多资料。公众号二维码如下:

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
课程目的:OpenCV是应用非常广泛的开源视觉处理库,在图像处理、计算机视觉和自动驾驶中有着非常重要的作用。课程设计特色:(课程当前为第一期)1、C++与Python双语教学Python语言是在计算机视觉中应用最多的一种语言,在工作中,深度学习模型的训练基本上都是使用Python语言编写的训练代码。OpenCV在这个过程中用于图像的预处理(如图像读取、数据增强)和后处理,还可以用于显示处理的结果,功能强大,使用方便。但是在功能的部署的时候,不管是部署在服务端还是PC端,开发语言基本上用的是C++,所以如何有效的使用OpenCV进行模型或者功能的部署尤为重要。C++语言应用的好坏,在面试中可以看出一个面试者的工程实践能力的强弱,两种语言的开发掌握好了可以使工作如虎添翼。2、全模块讲解我出版了一本图书《学习OpenCV4:基于Python的算法实战》,虽然这本书是写的基于Python的算法实战,但是实际上这本书有详细的介绍算法的C++接口,还有一些C++方向的案,是以Python为主。图书出版的时候就想双语写作,只是限于篇幅没有成行。本课程不仅采用双语教学,更是对C++的每个模块都做讲解,我们知道,很多的书其实只讲imgproc,如果你翻开一本书图像的形态学运算和图像滤波都是作为独立章节讲解的,那么这本书基本上就可以确定是只是讲解了imgproc模块,但是其他的模块在工作中也有很重要的作用。如:core模块定义了C++的基本数据结构和基本运算(如四则运算);highgui模块是可视化与交互的模块;feature2d是特征点与特征匹配相关算法所在的模块;ml是机器学习相关的模块;dnn是深度学习相关的模块,可以使用OpenCV进行深度学习模型的部署。这些是很多的书和课程都不会讲的。3、讲解细致本课程会从环境搭建开始讲解,环境搭建尤为重要。从我多年的授课经验总结来看,如果只是给了代码,很多的入门用户环境问题处理不好的话,后面的学习很难进行下去,甚至会丧失学习的信心。4、会讲解C++和Python的开发语法问题是入门用户的一大难关,特别是C++语言。大学只是教授了C语言相关的内容,C++很多同学只懂一点皮毛,所以写代码步履维艰,我们在讲解代码的过程中会顺带讲解C++和Python的内容。我们还会讲解编译相关知识,还有库的装载与链接,这些是学校里不会教的,目前也几乎没有课程讲解。5、讲师经验丰富我讲解过C++和OpenCV的多个课程,广受学员好评。我出版过两本图书《深度学习计算机视觉实战》和《学习OpenCV4》,两本书都是细致入微的讲解,主要针对的就是初学者,所以能够很好的处理课程的难易程度。6、讲义准备充分讲义准备的充分细致,标识清楚明确,重点和疑难点突出。
├─1.计算机视觉简介、环境准备(python, ipython) │ computer vsion.pdf │ CS231 introduction.pdf │ ├─2.图像分类问题简介、kNN分类器、线性分类器、模型选择 │ 2. 图像分类简介、kNN与线性分类器、模型选择.mp4 │ 2.初识图像分类.pdf │ ├─3.再谈线性分类器 │ 3.再谈线性分类器.mp4 │ 再谈线性分类器.pdf │ ├─4.反向传播算法和神经网络简介 │ .反向传播算法和神经网络简介.pdf │ 4. 反向传播算法和神经网络简介.mp4 │ ├─5.神经网络训练1 │ 5.-神经网络训练1.pdf │ 5.神经网络训练1.mp4 │ ├─6.神经网络训练2、卷积神经网络简介 │ 6.神经网络训练2.mp4 │ 神经网络训练2.pdf │ ├─7.卷积神经网络 │ 7.卷积神经网络.mp4 │ Lession7.pdf │ ├─8.图像OCR技术的回顾、进展及应用前景 │ 8.图像OCR技术的回顾、进展及应用前景.mp4 │ PhotoOCR_xbai.pdf │ └─9.物体定位检测 物体定位检测.pdf │ ├─10.卷积神经网络可视化 │ .卷积神经网络可视化.pdf │ 10.卷积神经网络可视化.mp4 │ ├─11.循环神经网络及其应用 │ 11.循环神经网络及其应用.mp4 │ 循环神经网络.pdf │ ├─12.卷积神经网络实战 │ 12.卷积神经网络训练实战.mp4 │ 卷积神经网络实战.pdf │ ├─13.常见深度学习框架介绍 │ 常见深度学习框架介绍.pdf │ ├─14.图像切割 │ 14.图像切割.mp4
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

superdont

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值