Registered users can read the full content for free
Register as a Gaohf Library member to read the complete e-book online for free and enjoy a better reading experience.
Page
1
(This page has no text content)
Page
2
前言 从21世纪初开始,整个社会逐渐进入数据驱动的时代,云计算、 大数据和人工智能的发展开始形成良性互动:一方面,云计算和大数 据的发展带来了算力的大幅提升和学习样本的极大充足,从而促进人 工智能快速发展;另一方面,人工智能的发展减少了人力劳动,提高 了数据分析和处理的效率,从而促进云计算和大数据进一步发展。 机器学习和计算机视觉是人工智能领域的热门方向。目前,在计 算机视觉领域,人工智能尚处于感知智能阶段,计算机可以对目标进 行检测和识别,但还不具备理解能力,距离真正的认知智能尚有一段 距离。随着理论的成熟和一些新模型与框架(如强化学习和迁移学 习)的提出与广泛应用,计算机视觉领域正在向越来越智能化的方向 快速发展,而支撑其发展的机器学习技术,尤其是深度学习技术发挥 了很大的作用。 目前,市场上虽然已经有不少计算机视觉方面的书籍,但是其中 大部分要么侧重介绍理论知识,要么侧重介绍应用实践。如果只强调 理论,则很难让读者了解其具体应用;如果只强调实践,则只会局限 于具体案例,而无法让读者做到举一反三,在遇到实际问题时还是无 从下手。因此,非常需要一本将理论和实践很好地结合起来的书籍, 以帮助读者系统地进行学习和实践。 笔者长期从事机器学习和计算机视觉领域的相关工作,不但熟悉 其理论知识,而且在学习和工作中积累了大量的感悟与经验,于是萌 生了写作一本理论结合实践的深度学习与计算机视觉图书的想法,以 便把自己的感悟和经验分享给想要进入这个领域的初学者和从业者。 由于机器学习与计算机视觉涉及的知识点较为庞杂,一个人完成写作 对于我而言是一个巨大的挑战,因此笔者联合了同样具有丰富经验的 印杰老师一起写作本书。希望本书能成为读者打开计算机视觉大门的 一把金钥匙。
Page
3
本书特色 1.理论知识结合应用实践 本书从工作原理、应用场景和代码实现三个方面介绍相关算法和 模型,以便让读者对相关理论知识和应用实践有更加全面的了解,从 而做到触类旁通,对不同场景进行建模。 2.由浅入深,循序渐进 本书从基本概念讲起,循序渐进地介绍机器学习、深度学习和计 算机视觉的理论知识、模型与算法原理以及典型应用,帮助读者全 面、深入地掌握相关知识。 3.图文并茂,易于理解 本书结合280余幅示意图讲解相关知识点,其中有百余幅是精心 绘制的算法和模型原理图,可以让抽象的知识变得更加直观和易于理 解,从而帮助读者高效学习。 4.模型众多,实例丰富 本书对常用算法和30余种模型做了归纳整理,并在讲解这些算法 和模型时结合大量的代码实例,帮助读者更好地理解所学理论并动手 实践。 本书内容 本书共10章,分为3篇,每篇从均基本概念、模型与算法原理以 及代码实现3个方面进行介绍。 第1篇 机器学习原理 第1章主要介绍机器学习和计算机视觉的起源、发展历史、研究 内容以及开发环境的搭建等基础知识。
Page
4
第2章主要介绍机器学习的相关概念、数据集的划分和使用、机 器学习的流程、机器学习涉及的数学基础知识和相关开发工具等,最 后给出几个AI编程入门实例。 第3章主要介绍数据分布、探索性数据分析、数据预处理、特征 选择、线性回归系列模型和决策树系列模型的理论以及模型评估等相 关内容,其中重点演示AI编程中定范式、定损失和做优化三个关键步 骤。 第2篇 计算机视觉基础 第4章首先介绍图像的结构与常见类型,然后介绍计算机视觉的 工作流程,最后介绍如何使用OpenCV处理图像和视频。 第5章首先介绍如何对图像进行分类,然后介绍如何使用传统方 法提取特征,最后演示如何对单标签图像进行分类。 第3篇 深度学习模型与计算机视觉应用 第6章首先介绍神经网络的基础知识,然后分别介绍前馈神经网 络模型和循环神经网络模型的结构、算法及应用实例等。 第7章首先介绍图像滤波和卷积的实现过程,然后介绍卷积神经 网络的结构和工作原理等相关知识。 第8章首先介绍LeNet-5、AlexNet和VGGNet等6种常见卷积神 经网络模型,然后介绍样本操作和图像分类的相关知识,最后介绍图 像识别实例的代码实现。 第9章首先介绍目标检测的原理和6种常见模型,然后结合人脸检 测实例,介绍人脸二分类器的创建、人脸初检、初检结果修正以及开 源模型人脸检测等相关知识。 第10章首先介绍目标检测、语义分割和实例分割等图像分割知 识,然后介绍FCN和Mask R-CNN两种模型,最后介绍目标追踪的相
Page
5
关知识。 本书读者对象 · 人工智能初学者; · 机器学习与深度学习初学者; · 计算机视觉技术初学者; · 机器学习与计算机视觉算法工程师; · 机器学习与计算机视觉爱好者; · 相关培训机构的学员; · 高校相关专业的学生。 本书配套资源 本书使用Python作为开发语言,使用Jupyter Notebook作为集 成开发环境。本书涉及的源代码与相关开源工具等配套资源需要读者 自行下载。读者可以关注微信公众号“方大卓越”,然后回复“计算 机视觉xww”,即可获取本书配套资源的下载地址。 谢文伟
Page
6
图2.29 四则运算模型评估 图3.54 GBDT回归预测的结果
Page
7
图4.6 色调 图4.7 HSV与RGB颜色空间的对比
Page
8
图4.9 RGB图、HSV图、灰度图与二值图 图4.15 根据颜色截取ROI 图4.16 根据轮廓截取ROI
Page
9
图6.25 神经网络模型的使用 图7.7 多通道单输出卷积
Page
10
图9.11 候选区域与人工标注区域
Page
11
图9.15 目标检测结果
Page
12
图9.43 下采样得到的图像金字塔
Page
13
第1篇 机器学习原理 第1章 认识机器学习 智慧是什么?人是怎么认识世界的?围绕这些问题,几千年来人 们一直没有停止过思考。直到20世纪三四十年代,随着人工智能的兴 起,对这些问题的探索才逐渐从哲学领域进入科学研究的范畴。虽然 如今的人工智能是不是真正意义上的智能还存在争议,但毋庸置疑的 是,人工智能已经在我们的日常生活中扮演着重要的角色。 在20世纪三四十年代,随着生物学、信息论、控制论及计算理论 等多门学科的融合,制造一台“人造大脑”成为可能。经过80年左右 的发展,以机器学习为代表的人工智能取得了巨大的进展,尤其是在 计算机视觉领域,人工智能已经可以代替人类做出一些决策。 视觉是人类获取信息的最主要渠道,大约70%的大脑皮层用来处 理视觉方面的相关信息。计算机视觉是指让计算机能看懂图像的内 容,它是实现人工智能的重要分支。近年来,随着信息技术尤其是深 度学习技术的发展,如何通过机器学习的方法从数据中发现蕴涵的知 识或有价值的信息已成为一个非常重要的研究领域,计算机视觉与机 器学习也逐渐成为研究的热点。 1.1 机器学习简介 简单来说,机器学习就是寻找数据中存在的规律,并用这个规律 对新的数据进行预测的过程。机器学习算法和模型的主要作用是为了 找到这些规律。如图1.1所示,输出Y是输入X1和X2的算术平均数。 机器学习包括传统机器学习(Machine Learning)和深度学习 (Deep Learning),它是实现人工智能(Artificial Intelligence)的重要
Page
14
手段。现在人们普遍认为,机器学习是人工智能领域的子集,而深度 学习又是机器学习领域的子集,三者之间的关系如图1.2所示。 纵观人工智能约80年的发展历史,机器学习一直都是人工智能里 的一个重要子领域,机器学习与人工智能一起经历了两次低谷和三次 崛起,如图1.3所示。 图1.1 机器学习的本质
Page
15
图1.2 机器学习、深度学习与人工智能之间的关系 图1.3 机器学习与人工智能的发展历程 虽然人工智能的发展几经挫折,但是总能够走出低谷并进入一个 新的发展期。其动力除了来自自身的发展以外,还来自社会的期待和 支持。人工智能的发展从来不是一蹴而就的,而是经过横跨多个学科 及近一个世纪众多科研人员共同努力的结果。 从技术层面来看,人工智能的发展需要算法、大数据和计算能力 这三个方面的支撑,在21世纪,随着更多的资金和研究人员的投入以 及算法和数据的积累,加之计算能力的进一步提升,人工智能必将发 挥更大的作用。
Page
16
1.2 计算机视觉简介 在早期,计算机视觉(Computer Vision)被定义为赋予机器自然 视觉能力的学科,其目标是通过对图像信息的研究,实现对图像内容 的理解。如今,计算机视觉已经成为人工智能领域最热门的研究方向 之一,计算机已经可以从数字图像或视频中获得有意义的信息,并根 据这些信息进行决策。 与人类视觉系统类似,计算机视觉赋予计算机“看到”“观察” “理解”图像的能力。迄今为止,计算机视觉已经经历了诞生和理论 准备、初步应用以及深度学习三个时代。 随着大数据和云计算的发展,机器学习逐渐进入深度学习时代。 研究人员发现,与传统的方法相比,在图像的特征提取方面,深度学 习(尤其是卷积神经网络)有着无可比拟的优势,这主要得益于样本 数据、AI模型和算力等方面的综合发展。 在样本数据方面,出现了许多实验用的标注过的数据集。 · MNIST(Modified National Institute of Standards and Technology)数据集:包含70000张扫描的手写体数字照片(每张照 片为0~9中的一个数字),是Yann LeCun实验使用的数据集。 · Pascal VOC(Pascal Visual Object Challenge)数据集:包含20 个分类,并且还包含目标在图像中的位置,有上万张照片,可用于目 标检测。 · ImageNet数据集:包含2万个分类,有上千万张图片。从2010 年开始,每年使用该数据集举行的图像识别比赛被称为计算机视觉的 奥林匹克竞赛。 在AI模型方面,出现了卷积神经网络和生成对抗网络等多种深度 学习模型。
Page
17
· 卷积神经网络(Convolution Neural Network,CNN):它于 1998年被提出,随后陆续出现了LeNet、AlexNet、GoogLeNet、 VGGNet、ResNet和DenseNet等多种模型框架。随着模型结构的加 深,其表达能力也越来越强。如今,在图像分类领域,深度学习模型 已经比较成熟了,计算机在ImageNet上的表现已经超过人类。 · 生成对抗网络(Generative Adversarial Networks,GAN):它 于2014年被提出。GAN模型使计算机具有一种创造性,能根据现有 的条件(如一些二维图像)创造出新的图像。 在算力方面,GPU和云计算提高了计算能力。 深度学习是大量的简单处理单元共同运算的过程。针对这一特 点,在深度学习方面,GPU比CPU更具优势:GPU可以提供多核并行 计算的基础结构且有大量的核心支持数据的并行计算,可以极大地提 高计算速度,从而解决大型而复杂的计算问题。 云计算提供分布式运算和存储的能力,可以将模型的训练和存储 分散到多台计算机上,从而进一步解决深度学习存在的算力和存储不 足等问题。 随着技术的发展,计算机视觉的研究内容变得更加丰富,大体可 以分为物体视觉和空间视觉两大部分。物体视觉是对物体进行精细分 类和鉴别,空间视觉则是确定物体的位置和形态。目前,计算机视觉 领域的基础与热门研究方向如图1.4所示。 · 图像分类:根据图像自身的特点,将其划分为不同的类别。 · 目标检测:找到目标在图像中的位置坐标,并通过边界框标记 出来。 · 语义分割:实现像素级的分类,将每个像素点归类到不同的类 别下。
Page
18
· 实例分割:区分每个个体,将每个像素点归类到不同的目标个 体下。 图1.4 计算机视觉主要的研究方向 · 目标追踪:针对一段视频或一组图像序列,找到同一个目标在 不同时刻所在位置的坐标。 · 视觉问答:针对输入图像,用户提问,然后通过算法进行回 答。 · 动作识别:针对一段视频或一组图像序列,识别出目标的行为 动作。 · 三维重建:对图像进行分析,结合计算机视觉知识推导出现实 环境中物体的三维信息。 1.3 开发工具的选择 本书配套源代码使用的是Python语言,使用Jupyter Notebook 作为IDE(集成开发环境),读者最好已经有Python和Jupyter
Page
19
Notebook编程基础,熟悉Python语言和Jupyter Notebook开发工 具的使用。 对于机器学习和计算机视觉常用开发包(Seaborn、Pandas、 Keras和OpenCV等)的使用,本书会在相应的章节进行介绍。 本书配套源代码用到的开发库和相应版本如表1.1所示(对于其他 版本,笔者未做过测试),机器学习部分的代码只涉及表1.1中“基础 环境与机器学习”所列的开发库,计算机视觉部分的代码则涉及表1.1 中所有的开发库。 表1.1 本书用到的开发工具 (续表)
Page
20
1.4 开发环境的搭建 在表1.1所列的开发工具中,除了Python和Graphviz需要下载安 装包进行安装外,其他的软件都可以直接使用pip进行安装。本节介 绍在Windows平台下使用Virtualenv搭建开发环境的方法(其他平台 下的搭建方法与其类似)。对于熟悉Python的读者,可以跳过这部分 内容,直接使用自己喜欢的方式进行安装即可,例如使用Anaconda 包管理器进行安装。 1.配套源代码 本 书 配 套 源 代 码 是 基 于 Python 3 生 成 的 , 使 用 Jupyter Notebook作为IDE,共有两个目录:
The above is a preview of the first 20 pages. Register to read the complete e-book.
AI Reading Assistant
Whole-book reading guide from stratified index samples; jump to passages in the text
AI guide
【One-Line Pitch】
A hands-on Chinese-language guide that walks you from Python data tooling and classical machine learning all the way to modern CNN architectures, object detection, segmentation, and tracking. Best for developers and students who want a single connected path from math fundamentals to working computer-vision code.
【Book Arc】
- **Opening (~0%–10%)**: Sets the stage with what deep learning and computer vision actually cover — image classification, detection, segmentation — plus why GPUs and cloud compute matter, and how to install the Python stack.
- **Early (~10%–30%)**: Builds the mathematical and data foundation: probability distributions, entropy and mutual information, Pandas/Seaborn exploration, data cleaning, feature engineering, and feature selection.
- **Early–Middle (~30%–40%)**: Covers classical machine learning models in depth — linear and regularized regression, decision trees, GBDT, SVM with hard/soft margins and kernels — along with evaluation metrics like ROC/AUC.
- **Middle (~40%–60%)**: Transitions into vision: digital image structure, OpenCV operations, filtering and denoising, frequency concepts, and hand-crafted features (Canny, Harris, HOG, DoG/SIFT-style pipelines).
- **Middle–Late (~60%–80%)**: Moves to neural networks and CNNs — perceptrons, activation functions, backpropagation and its pitfalls, RNNs, then LeNet through AlexNet, Inception, and DenseNet, with Keras build workflows.
- **Late–Ending (~80%–100%)**: Tackles advanced applications: object detection (R-CNN family, RPN, YOLO, mAP, NMS), image segmentation (semantic and instance, ROI Align), and target tracking via optical flow and centroid methods.
【Key Takeaways】
- **The book is a full pipeline, not just a model catalog** (Early): it insists on data exploration, cleaning, and feature work before any algorithm, which is where most real projects actually succeed or fail.
- **Classical ML is treated as prerequisite, not history** (Early–Middle): regression, trees, GBDT, and SVM are developed with formulas and Sklearn code, giving readers the vocabulary later reused in detection losses and evaluation.
- **CNN progress is framed as a chain of specific fixes** (Middle–Late): AlexNet's ReLU, Dropout, GPU training, and overlapping max pooling are each explained as a response to a concrete limitation of LeNet-5.
- **Detection is decomposed into four recurring steps** (Late): candidate generation, feature extraction, classification, and bounding-box regression — and the R-CNN → SPPNet → Fast/Faster R-CNN → YOLO progression is the story of automating those steps.
- **Evaluation changes with the task** (Late): classification metrics don't transfer directly to detection; IoU thresholds, TP/FP matching, and mAP are introduced as the correct toolkit.
- **Quantization error is a real engineering concern** (Ending): ROI Pooling's two rounding steps are shown to shift regions noticeably, motivating ROI Align in Mask R-CNN.
- **Tracking rests on explicit assumptions** (Ending): optical flow assumes brightness constancy and temporal continuity, and LK adds spatial coherence — knowing these tells you when tracking will break.
- **Code accompanies theory throughout** (all stages): OpenCV, Sklearn, Keras, Pandas, and SciPy functions are demonstrated alongside the math, so the book doubles as a reference.
【Reading Tips】
- **Skim the probability and entropy sections if you already have the math** (~10%–20%), but slow down on data cleaning and feature engineering — those chapters carry disproportionate practical value.
- **Deep-read the CNN architecture chapter** (~60%–80%): the LeNet → AlexNet → Inception → DenseNet progression is the conceptual spine for everything after it.
- **Run the code as you go**, especially the OpenCV and Keras examples; the book's value is in the working pipeline, not passive reading.
- **Treat detection and segmentation as a second pass**: the excerpts suggest these chapters assume solid understanding of classification and detection first, so don't rush them.
- **Keep the evaluation-metrics material bookmarked** — ROC/AUC, mAP, IoU, and NMS recur across chapters and are easy to confuse.
【Coverage Limits】
This guide is synthesized from stratified excerpts covering roughly the full arc, but specific chapter titles, exact percentages, and some intermediate details (e.g., transformer-based or newer detection models) are not visible in the excerpts. Where the source is thin, claims are kept general.
Passage locations
Excerpt 1
书名: 深度学习与计算机视觉:核心算法与应用 (谢文伟)(Z-Library) 作者: 谢文伟 图6.25 神经网络模型的使用 图7.7 多通道单输出卷积 · 卷积神经网络(Convolution Neural Network,CNN):它于 1998年被提出,随后陆续出现了LeNet、AlexNet、GoogL...
View in text
Excerpt 2
对无放回采样,如员工分组和从抽奖箱抽奖等,预 测事件发生的总次数。 参数:总样本量M,正例样本数量n和每次采样数量N。 概率分布计算函数:scipy.stats.hypergeom.pmf(x,M,n,N)。 (5)泊松分布 典型应用:预测单位时间内随机事件发生的次数,如每天某个车 站的客流量。 参数:单位时间内...
View in text
Excerpt 3
对这组数字进行 转换、切割、重组及过滤等过程。本节将介绍数字图像的结构、常见 类型及完整的计算机视觉工作流程。 4.1.1 图像的结构与常见类型 数字图像又称数码图像。一幅二维图像的本质是一系列像素点的 组合,这些像素点可以用一个数组或矩阵来表示。如图4.1所示,人眼 看到的是数字0,计算机“看”到的则是一个由像...
View in text
Excerpt 4
传统分类器的方法,其识别率停留在40%~50%,很难商 用。 通过卷积可以提取图像的特征,如果将卷积和神经网络相结合, 使用机器学习的方法进行训练,自动生成卷积核和特征图,这样就可 以大大地减少图像特征提取的难度。将卷积和神经网络结合到一起就 形成了卷积神经网络,简称CNN。 7.2.1 卷积神经网络的结构 第一...
View in text
Recommended for You
{{#thumbnailUrl}}
{{/thumbnailUrl}}
{{^thumbnailUrl}}
{{/thumbnailUrl}}
Loading recommended books...
Failed to load, please try again later
Tip the Site
Scan the WeChat Pay or Alipay code to tip. No login required.
WeChat Pay
Alipay