编辑推荐
适读人群 :本书可作为计算机几何学、计算机图形学、图像处理、模式识别、机器人学等专业高年级本科生和研究生的双语教材或参考书,也可供从事相关领域研究的工程技术人员参考阅读。 *数学知识简洁,清晰
*关于现代特征的内容
*现代图像编辑技术以及物体识别技术
内容简介
计算机视觉是研究如何使人工系统从图像或多维数据中"感知”的科学。本书是计算机视觉领域的经典教材,内容涉及几何摄像模型、光照及阴影、颜色、线性滤波、局部图像特征、纹理、立体视觉运动结构、聚类分割、组合与模型拟合、跟踪、配准、平滑表面与轮廓、深度数据、图像分类、对象检测与识别、基于图像的建模与渲染、人形研究、图像搜索与检索、优化技术等内容。与前一版相比,本书简化了部分主题,增加了应用示例,重写了关于现代特性的内容,详述了现代图像编辑技术与对象识别技术。
作者简介
David Forsyth:1984年于威特沃特斯兰德大学取得了电气工程学士学位,1986年取得电气工程硕士学位,1989年于牛津贝列尔学院取得博士学位。之后在艾奥瓦大学任教3年,在加州大学伯克利分校任教10年,再后在伊利诺伊大学任教。2000年和2001年任IEEE计算机视觉与模式识别会议(CVPR)执行副主席,2006年任CVPR常任副主席,2008年任欧洲计算机视觉会议执行副主席,是所有关于计算机视觉主要国际会议的常任执委会成员。他为SIGGRAPH执委会工作了5期。2006年获IEEE技术成就奖,2009年成为IEEE会士。
Jean Ponce:于1988年在巴黎奥赛大学获得计算机科学博士学位。1990年至2005年,作为研究科学家分别供职于法国国家信息研究所、麻省理工学院人工智能实验室和斯坦福大学机器人实验室;1990年至2005年,供职于伊利诺伊大学计算机科学系。2005年开始,成为法国巴黎高等师范学校教授。
目录
i image formation 1
1 geometric camera models 3
1.1 image formation 4
1.1.1 pinhole perspective 4
1.1.2 weak perspective 6
1.1.3 cameras with lenses 8
1.1.4 the human eye 12
1.2 intrinsic and extrinsic parameters 14
1.2.1 rigid transformations and homogeneous coordinates 14
1.2.2 intrinsic parameters 16
1.2.3 extrinsic parameters 18
1.2.4 perspective projection matrices 19
1.2.5 weak-perspective projection matrices 20
1.3 geometric camera calibration 22
1.3.1 alinear approach to camera calibration 23
1.3.2 anonlinear approach to camera calibration 27
1.4 notes 29
2 light and shading 32
2.1 modelling pixel brightness 32
2.1.1 reflection at surfaces 33
2.1.2 sources and their effects 34
2.1.3 the lambertian+specular model 36
2.1.4 area sources 36
2.2 inference from shading 37
2.2.1 radiometric calibration and high dynamic range images 38
2.2.2 the shape of specularities 40
2.2.3 inferring lightness and illumination 43
2.2.4 photometric stereo: shape from multiple shaded images 46
2.3 modelling interreflection 52
2.3.1 the illumination at a patch due to an area source 52
2.3.2 radiosity and exitance 54
2.3.3 an interreflection model 55
2.3.4 qualitative properties of interreflections 56
2.4 shape from one shaded image 59
2.5 notes 61
3 color 68
3.1 human color perception 68
3.1.1 color matching 68
3.1.2 color receptors 71
3.2 the physics of color 73
3.2.1 the color of light sources 73
3.2.2 the color of surfaces 76
3.3 representing color 77
3.3.1 linear color spaces 77
3.3.2 non-linear color spaces 83
3.4 amodel of image color 86
3.4.1 the diffuse term 88
3.4.2 the specular term 90
3.5 inference from color 90
3.5.1 finding specularities using color 90
3.5.2 shadow removal using color 92
3.5.3 color constancy: surface color from image color 95
3.6 notes 99
ii early vision: just one image 105
4 linear filters 107
4.1 linear filters and convolution 107
4.1.1 convolution 107
4.2 shift invariant linear systems 112
4.2.1 discrete convolution 113
4.2.2 continuous convolution 115
4.2.3 edge effects in discrete convolutions 118
4.3 spatial frequency and fourier transforms 118
4.3.1 fourier transforms 119
4.4 sampling and aliasing 121
4.4.1 sampling 122
4.4.2 aliasing 125
4.4.3 smoothing and resampling 126
4.5 filters as templates 131
4.5.1 convolution as a dot product 131
4.5.2 changing basis 132
4.6 technique: normalized correlation and finding patterns 132
4.6.1 controlling the television by finding hands by normalized
correlation 133
4.7 technique: scale and image pyramids 134
4.7.1 the gaussian pyramid 135
4.7.2 applications of scaled representations 136
4.8 notes 137
5 local image features 141
5.1 computing the image gradient 141
5.1.1 derivative of gaussian filters 142
5.2 representing the image gradient 144
5.2.1 gradient-based edge detectors 145
5.2.2 orientations 147
5.3 finding corners and building neighborhoods 148
5.3.1 finding corners 149
5.3.2 using scale and orientation to build a neighborhood 151
5.4 describing neighborhoods with sift and hog features 155
5.4.1 sift features 157
5.4.2 hog features 159
5.5 computing local features in practice 160
5.6 notes 160
6 texture 164
6.1 local texture representations using filters 166
6.1.1 spots and bars 167
6.1.2 from filter outputs to texture representation 168
6.1.3 local texture representations in practice 170
6.2 pooled texture representations by discovering textons 171
6.2.1 vector quantization and textons 172
6.2.2 k-means clustering for vector quantization 172
6.3 synthesizing textures and filling holes in images 176
6.3.1 synthesis by sampling local models 176
6.3.2 filling in holes in images 179
6.4 image denoising 182
6.4.1 non-local means 183
6.4.2 block matching 3d (bm3d) 183
6.4.3 learned sparse coding 184
6.4.4 results 186
6.5 shape from texture 187
6.5.1 shape from texture for planes 187
6.5.2 shape from texture for curved surfaces 190
6.6 notes 191
iii early vision: multiple images 195
7 stereopsis 197
7.1 binocular camera geometry and the epipolar constraint 198
7.1.1 epipolar geometry 198
7.1.2 the essential matrix 200
7.1.3 the fundamental matrix 201
7.2 binocular reconstruction 201
7.2.1 image rectification 202
7.3 human stereopsis 203
7.4 local methods for binocular fusion 205
7.4.1 correlation 205
7.4.2 multi-scale edge matching 207
7.5 global methods for binocular fusion 210
7.5.1 ordering constraints and dynamic programming 210
7.5.2 smoothness and graphs 211
7.6 using more cameras 214
7.7 application: robot navigation 215
7.8 notes 216
8 structure from motion 221
8.1 internally calibrated perspective cameras 221
8.1.1 natural ambiguity of the problem 223
8.1.2 euclidean structure and motion from two images 224
8.1.3 euclidean structure and motion from multiple images 228
8.2 uncalibrated weak-perspective cameras 230
8.2.1 natural ambiguity of the problem 231
8.2.2 affine structure and motion from two images 233
8.2.3 affine structure and motion from multiple images 237
8.2.4 from affine to euclidean shape 238
8.3 uncalibrated perspective cameras 240
8.3.1 natural ambiguity of the problem 241
8.3.2 projective structure and motion from two images 242
8.3.3 projective structure and motion from multiple images 244
8.3.4 from projective to euclidean shape 246
8.4 notes 248
iv mid-level vision 253
9 segmentation by clustering 255
9.1 human vision: grouping and gestalt 256
9.2 important applications 261
9.2.1 background subtraction 261
9.2.2 shot boundary detection 264
9.2.3 interactive segmentation 265
9.2.4 forming image regions 266
9.3 image segmentation by clustering pixels 268
9.3.1 basic clustering methods 269
9.3.2 the watershed algorithm 271
9.3.3 segmentation using k-means 272
9.3.4 mean shift: finding local modes in data 273
9.3.5 clustering and segmentation with mean shift 275
9.4 segmentation, clustering, and graphs 277
9.4.1 terminology and facts for graphs 277
9.4.2 agglomerative clustering with a graph 279
9.4.3 divisive clustering with a graph 281
9.4.4 normalized cuts 284
9.5 image segmentation in practice 285
9.5.1 evaluating segmenters 286
9.6 notes 287
10 grouping and model fitting 290
10.1 the hough transform 290
10.1.1 fitting lines with the hough transform 290
10.1.2 using the hough transform 292
10.2 fitting lines and planes 293
10.2.1 fitting a single line 294
10.2.2 fitting planes 295
10.2.3 fitting multiple lines 296
10.3 fitting curved structures 297
10.4 robustness 299
10.4.1 m-estimators 300
10.4.2 ransac: searching for good points 302
10.5 fitting using probabilistic models 306
10.5.1 missing data problems 307
10.5.2 mixture models and hidden variables 309
10.5.3 the em algorithm for mixture models 310
10.5.4 difficulties with the em algorithm 312
10.6 motion segmentation by parameter estimation 313
10.6.1 optical flow and motion 315
10.6.2 flow models 316
10.6.3 motion segmentation with layers 317
10.7 model selection: which model is the best fit? 319
10.7.1 model selection using cross-validation 322
10.8 notes 322
11 tracking 326
11.1 simple tracking strategies 327
11.1.1 tracking by detection 327
11.1.2 tracking translations by matching 330
11.1.3 using affine transformations to confirm a match 332
11.2 tracking using matching 334
11.2.1 matching summary representations 335
11.2.2 tracking using flow 337
11.3 tracking linear dynamical models with kalman filters 339
11.3.1 linear measurements and linear dynamics 340
11.3.2 the kalman filter 344
11.3.3 forward-backward smoothing 345
11.4 data association 349
11.4.1 linking kalman filters with detection methods 349
11.4.2 key methods of data association 350
11.5 particle filtering 350
11.5.1 sampled representations of probability distributions 351
11.5.2 the simplest particle filter 355
11.5.3 the tracking algorithm 356
11.5.4 a workable particle filter 358
11.5.5 practical issues in particle filters 360
11.6 notes 362
v high-level vision 365
12 registration 367
12.1 registering rigid objects 368
12.1.1 iterated closest points 368
12.1.2 searching for transformations via correspondences 369
12.1.3 application: building image mosaics 370
12.2 model-based vision: registering rigid objects with projection 375
12.2.1 verification: comparing transformed and rendered source
to target 377
12.3 registering deformable objects 378
12.3.1 deforming texture with active appearance models 378
12.3.2 active appearance models in practice 381
12.3.3 application: registration in medical imaging systems 383
12.4 notes 388
13 smooth surfaces and their outlines 391
13.1 elements of differential geometry 393
13.1.1 curves 393
13.1.2 surfaces 397
13.2 contour geometry 402
13.2.1 the occluding contour and the image contour 402
13.2.2 the cusps and inflections of the image contour 403
13.2.3 koenderink’s theorem 404
13.3 visual events: more differential geometry 407
13.3.1 the geometry of the gauss map 407
13.3.2 asymptotic curves 409
13.3.3 the asymptotic spherical map 410
13.3.4 local visual events 412
13.3.5 the bitangent ray manifold 413
13.3.6 multilocal visual events 414
13.3.7 the aspect graph 416
13.4 notes 417
14 range data 422
14.1 active range sensors 422
14.2 range data segmentation 424
14.2.1 elements of analytical differential geometry 424
14.2.2 finding step and roof edges in range images 426
14.2.3 segmenting range images into planar regions 431
14.3 range image registration and model acquisition 432
14.3.1 quaternions 433
14.3.2 registering range images 434
14.3.3 fusing multiple range images 436
14.4 object recognition 438
14.4.1 matching using interpretation trees 438
14.4.2 matching free-form surfaces using spin images 441
14.5 kinect 446
14.5.1 features 447
14.5.2 technique: decision trees and random forests 448
14.5.3 labeling pixels 450
14.5.4 computing joint positions 453
14.6 notes 453
15 learning to classify 457
15.1 classification, error, and loss 457
15.1.1 using loss to determine decisions 457
15.1.2 training error, test error, and overfitting 459
15.1.3 regularization 460
15.1.4 error rate and cross-validation 463
15.1.5 receiver operating curves 465
15.2 major classification strategies 467
15.2.1 example: mahalanobis distance 467
15.2.2 example: class-conditional histograms and naive bayes 468
15.2.3 example: classification using nearest neighbors 469
15.2.4 example: the linear support vector machine 470
15.2.5 example: kernel machines 473
15.2.6 example: boosting and adaboost 475
15.3 practical methods for building classifiers 475
15.3.1 manipulating training data to improve performance 477
15.3.2 building multi-class classifiers out of binary classifiers 479
15.3.3 solving for svms and kernel machines 480
15.4 notes 481
16 classifying images 482
16.1 building good image features 482
16.1.1 example applications 482
16.1.2 encoding layout with gist features 485
16.1.3 summarizing images with visual words 487
16.1.4 the spatial pyramid kernel 489
16.1.5 dimension reduction with principal components 493
16.1.6 dimension reduction with canonical variates 494
16.1.7 example application: identifying explicit images 498
16.1.8 example application: classifying materials 502
16.1.9 example application: classifying scenes 502
16.2 classifying images of single objects 504
16.2.1 image classification strategies 505
16.2.2 evaluating image classification systems 505
16.2.3 fixed sets of classes 508
16.2.4 large numbers of classes 509
16.2.5 flowers, leaves, and birds: some specialized problems 511
16.3 image classification in practice 512
16.3.1 codes for image features 513
16.3.2 image classification datasets 513
16.3.3 dataset bias 515
16.3.4 crowdsourcing dataset collection 515
16.4 notes 517
17 detecting objects in images 519
17.1 the sliding window method 519
17.1.1 face detection 520
17.1.2 detecting humans 525
17.1.3 detecting boundaries 527
17.2 detecting deformable objects 530
17.3 the state of the art of object detection 535
17.3.1 datasets and resources 538
17.4 notes 539
18 topics in object recognition 540
18.1 what should object recognition do? 540
18.1.1 what should an object recognition system do? 540
18.1.2 current strategies for object recognition 542
18.1.3 what is categorization? 542
18.1.4 selection: what should be described? 544
18.2 feature questions 544
18.2.1 improving current image features 544
18.2.2 other kinds of image feature 546
18.3 geometric questions 547
18.4 semantic questions 549
18.4.1 attributes and the unfamiliar 550
18.4.2 parts, poselets and consistency 551
18.4.3 chunks of meaning 554
vi applications and topics 557
19 image-based modeling and rendering 559
19.1 visual hulls 559
19.1.1 main elements of the visual hull model 561
19.1.2 tracing intersection curves 563
19.1.3 clipping intersection curves 566
19.1.4 triangulating cone strips 567
19.1.5 results 568
19.1.6 going further: carved visual hulls 572
19.2 patch-based multi-view stereopsis 573
19.2.1 main elements of the pmvs model 575
19.2.2 initial feature matching 578
19.2.3 expansion 579
19.2.4 filtering 580
19.2.5 results 581
19.3 the light field 584
19.4 notes 587
20 looking at people 590
20.1 hmm’s, dynamic programming, and tree-structured models 590
20.1.1 hidden markov models 590
20.1.2 inference for an hmm 592
20.1.3 fitting an hmm with em 597
20.1.4 tree-structured energy models 600
20.2 parsing people in images 602
20.2.1 parsing with pictorial structure models 602
20.2.2 estimating the appearance of clothing 604
20.3 tracking people 606
20.3.1 why human tracking is hard 606
20.3.2 kinematic tracking by appearance 608
20.3.3 kinematic human tracking using templates 609
20.4 3d from 2d: lifting 611
20.4.1 reconstruction in an orthographic view 611
20.4.2 exploiting appearance for unambiguous reconstructions 613
20.4.3 exploiting motion for unambiguous reconstructions 615
20.5 activity recognition 617
20.5.1 background: human motion data 617
20.5.2 body configuration and activity recognition 621
20.5.3 recognizing human activities with appearance features 622
20.5.4 recognizing human activities with compositional models 624
20.6 resources 624
20.7 notes 626
21 image search and retrieval 627
21.1 the application context 627
21.1.1 applications 628
21.1.2 user needs 629
21.1.3 types of image query 630
21.1.4 what users do with image collections 631
21.2 basic technologies from information retrieval 632
21.2.1 word counts 632
21.2.2 smoothing word counts 633
21.2.3 approximate nearest neighbors and hashing 634
21.2.4 ranking documents 638
21.3 images as documents 639
21.3.1 matching without quantization 640
21.3.2 ranking image search results 641
21.3.3 browsing and layout 643
21.3.4 laying out images for browsing 644
21.4 predicting annotations for pictures 645
21.4.1 annotations from nearby words 646
21.4.2 annotations from the whole image 646
21.4.3 predicting correlated words with classifiers 648
21.4.4 names and faces 649
21.4.5 generating tags with segments 651
21.5 the state of the art of word prediction 654
21.5.1 resources 655
21.5.2 comparing methods 655
21.5.3 open problems 656
21.6 notes 659
vii background material 661
22 optimization techniques 663
22.1 linear least-squares methods 663
22.1.1 normal equations and the pseudoinverse 664
22.1.2 homogeneous systems and eigenvalue problems 665
22.1.3 generalized eigenvalues problems 666
22.1.4 an example: fitting a line to points in a plane 666
22.1.5 singular value decomposition 667
22.2 nonlinear least-squares methods 669
22.2.1 newton’s method: square systems of nonlinear equations670
22.2.2 newton’s method for overconstrained systems 670
22.2.3 the gauss―newton and levenberg―marquardt algorithms 671
22.3 sparse coding and dictionary learning 672
22.3.1 sparse coding 672
22.3.2 dictionary learning 673
22.3.3 supervised dictionary learning 675
22.4 min-cut/max-flow problems and combinatorial optimization 675
22.4.1 min-cut problems 676
22.4.2 quadratic pseudo-boolean functions 677
22.4.3 generalization to integer variables 679
22.5 notes 682
index 684
list of algorithms 707
精彩书摘
《计算机视觉――一种现代方法(第二版)(英文版)》:
The sensitivities of the three different kinds of receptor to different wavelengths can be obtained by comparing color matching data for normal observers with color matching data for observers lacking one type of cone.Sensitivities obtained in this fashion are shown in Figure 3.3.The three types of cone are properly called S cones, M cones, and L cones (for their peak sensitivity being to short—,medium—, and long—wavelength light, respectively).They are occasionally called blue, green, and red cones; however, this is bad practice, because the sensation of red is definitely not caused by the stimulation of red cones, and so on.
3.2 THE PHYSICS OF COLOR
Several different mechanisms result in colored light.First, light sources can produce different amounts of light at different wavelengths.This is what makes incandescentlights look orange or yellow, and fluorescent lights look bluish.Second, for mostdiffuse surfaces, albedo depends on wavelength, so that some wavelengths may be largely absorbed and others largely reflected.
……
《视觉的奥秘:探索人类与机器的感知边界》 本书并非一本介绍特定计算机视觉技术细节的教科书,而是旨在从一个更广阔的视角,深入剖析“视觉”这一人类最基本、最核心的感知能力,以及我们如何尝试在人工智能领域复制、理解乃至超越这种能力。它是一次关于视觉本质的哲学思辨,一次关于感知技术发展的历史回顾,更是一次关于未来人机交互无限可能性的畅想。 第一部分:视觉的演化与本质 在本书的第一部分,我们将追溯视觉在生命演化史上的漫长旅程。从最简单的趋光性生物,到拥有复杂视觉系统的脊椎动物,我们会探讨不同生物为了生存和繁衍,是如何一步步演化出对光线的敏感度、色彩的辨别能力、运动的感知以及对三维世界的理解。我们将深入研究眼睛这一精妙的生物光学仪器,从晶状体、视网膜到视觉皮层,理解光信号如何转化为大脑可以识别的信息。 随后,我们将聚焦于人类视觉的独特之处。我们不仅仅是被动地接收光线,更是主动地解读、建构和理解我们所见的。这一部分将探讨视觉心理学中的关键概念,例如: 知觉的形成: 大脑如何从二维的视网膜图像中重建出三维世界的深度、形状和距离?我们将介绍格式塔原则等经典理论,解释我们如何将零散的视觉元素组织成有意义的整体。 注意力的机制: 在信息爆炸的世界里,我们的大脑如何筛选出最重要的视觉信息?我们将讨论自上而下和自下而上的注意力引导机制,以及它们如何影响我们的感知过程。 记忆与视觉: 我们如何记住我们所见?视觉信息与记忆是如何相互交织,塑造我们的世界观?我们将探讨视觉记忆的存储、提取和重构过程。 情感与色彩: 色彩不仅仅是物理的波长,它们更承载着丰富的情感和文化含义。我们将探索色彩心理学,理解不同颜色如何影响我们的情绪、行为和决策。 幻觉的启示: 视觉幻觉并非大脑的“故障”,它们恰恰揭示了我们视觉系统的工作原理和潜在的局限性。我们将剖析一些经典的视觉幻觉,从中反思我们感知的可靠性。 第二部分:从模仿到超越:人工智能与视觉的对话 进入第二部分,我们将视角转向人工智能领域,探讨人类如何尝试复制和扩展机器的“视觉”能力。这一部分将勾勒出人工智能视觉探索的宏大图景,而非罗列具体的算法和模型。 模拟的起点: 早期的机器视觉是如何尝试模仿人类眼睛和大脑的?我们将回顾一些早期具有开创性的研究,了解科学家们是如何试图让机器“看见”世界的。 感知智能的演进: 随着计算能力的提升和理论的突破,人工智能的视觉能力取得了长足的进步。我们将讨论不同阶段的关键思想,例如: 特征提取的艺术: 如何从图像中提取出有意义的特征,是机器理解图像的关键。我们将探讨从传统的SIFT、HOG特征到深度学习的自动特征学习,理解这个过程的演变。 分类与识别的挑战: 让机器能够准确地识别图像中的物体、场景,甚至情绪,是视觉AI的核心任务之一。我们将讨论这些任务的复杂性和实现路径。 生成与创造的边界: 当机器不仅能“看见”,还能“画出”和“想象”时,我们该如何理解?我们将探讨生成对抗网络(GANs)等技术,它们如何模糊了真实与虚幻的界限。 超越人类的视角: 有些方面,人工智能的“视觉”能力已经展现出超越人类的潜力。我们将探讨: 数据驱动的洞察: AI能够处理和分析海量数据,从中发现人类难以察觉的模式和规律,例如在医学影像分析、天文学观测等领域。 跨越感官的融合: 视觉信息并非孤立存在,它常常与其他感官信息相互印证。我们将探讨多模态学习,理解AI如何整合视觉、听觉、触觉等信息,构建更全面的世界模型。 非生物的感知: 除了可见光,AI还能“看见”红外线、紫外线,甚至电磁波等人类无法直接感知的信号,为科学研究和工业应用开辟新的可能性。 第三部分:视觉的未来:人机共生与智慧生活 在本书的第三部分,我们将目光投向未来,探讨人工智能视觉的蓬勃发展将如何深刻地影响我们的生活和社会。 智能化的生活空间: 从智能家居到自动驾驶汽车,视觉AI将成为我们生活中无处不在的“眼睛”。我们将畅想这些技术将如何提升我们的生活便利性、安全性和效率。 医疗健康的新篇章: 在疾病诊断、药物研发、康复辅助等方面,AI视觉将扮演越来越重要的角色,为人类健康带来革命性的改变。 科学探索的加速器: 从物质科学到宇宙探索,AI视觉将帮助科学家们处理海量数据,加速发现的进程,拓展人类认知的边界。 艺术与创作的融合: AI生成艺术已经成为一股不可忽视的力量。我们将探讨AI在艺术创作中的角色,以及它如何与人类艺术家共同探索新的表达形式。 伦理与哲学的新思考: 随着AI视觉能力的增强,我们也将面临新的伦理和社会挑战。例如,隐私保护、信息偏见、责任归属等问题。本书将引导读者思考这些问题,并对未来可能出现的“视觉伦理”进行前瞻性的讨论。 人机共生的新模式: 最终,我们希望描绘一个AI视觉并非取代人类,而是与人类协同工作、相互赋能的未来。视觉AI将成为人类智慧的延伸,帮助我们更好地理解世界,更有效地解决问题,共同创造一个更加美好的未来。 《视觉的奥秘:探索人类与机器的感知边界》是一次关于视觉的深度探索,它融合了生物学、心理学、神经科学、计算机科学和哲学等多个学科的视角,旨在激发读者对视觉本质的思考,对人工智能发展的洞察,以及对未来人机关系的畅想。它不提供明确的答案,但鼓励读者去提问,去探索,去理解我们所见的,以及我们所能看见的,无限可能。