1.2 计算摄像学相关课程
很多国际顶尖大学在计算机或电子工程系都曾经或正在开设计算摄像学相关课程,为高校师生和专业人士学习相关技术提供了宝贵的参考资料。这里主要介绍几门目前在持续更新的课程资源,以下排名不分先后,并无“经典”程度的区分,主要对其各自的特点进行简单概述,供感兴趣的读者在阅读本书时对照进行参考学习。
CMU 15-463[1]:卡内基梅隆大学的这门课程在参考了众多其他大学前序课程的基础上(例如,MIT MAS.531/MAS.131,U-Toronto CSC320S,UIUC CS 445等,相关课程链接可以在参考文献[1]的网站和课件上找到),对成像原理的基础和计算摄像的前沿进展做出了相对完备的和系统性的介绍。前十几讲关于成像原理的流程、相机的基本工作原理可以作为几乎零基础读者的入门参考,配套的课程作业设置也比较深入浅出,有助于配合讲义通过实操深入理解成像相关的基本原理及其代码实现。目前开设这门课的Ioannis Gkioulekas教授是光传播(light transport)分析方面的专家,此课程后面几讲对于光传播的一些高级话题(例如飞行时间、光传播矩阵等)的探讨较为深入,是这门课比较独特的一部分内容。
Stanford EE367/CS448I[4] :斯坦福大学的这门课程更加偏向成像(imaging)的原理,从成像系统构建的角度对正向和逆向问题求解当中的数学问题进行了系统的论述。目前负责这门课程的Gordon Wetzstein教授是计算显示(Computational Display)领域全球顶尖专家之一,2022年之前该课程还包含了与显示相关的技术。由于显示的基本原理和建模过程与成像是相辅相成的,共享了很多通用的数学工具与分析方法,同步学习成像和显示有助于对二者的原理进行全方位的深入理解。2022年之后,该课程对于深度学习在逆向求解成像问题中的应用也进行了介绍,对照基于优化的传统方法进行学习,可以更加全面地理解如何(正向)构建并(逆向)求解一个计算成像系统的各个组成成分。
First Principles of Computer Vision[5] :这是一门从2021年3月开始更新的在线视频课程,主讲者是哥伦比亚大学的Shree Nayar教授。Nayar教授是计算摄像领域全球最知名的学者之一,他是美国三院(工程、艺术与科学、发明家科学院)院士,曾经多次获得马尔奖等计算机视觉会议的最佳论文奖。他从一名资深学者的视角,围绕“成像(imaging)—特征(features)—重建(reconstruction)—感知(perception)”娓娓道来,对计算机视觉的“第一性原理”进行了透彻的阐述。得益于他对成像原理和系统极其富有深度的见解,这门视频课程对基本概念和重要原理的讲解简练、生动、精准和贯通。非常推荐从深度学习时代之后开始接触计算机视觉或者计算摄像学的读者,在尝试用深度学习建模和解决问题之前,对相关的经典概念、模型等“第一性原理”通过该课程的权威解读进行了解。
本书所对应的课程是作者在北京大学计算机学院从2018年春季学期起面向计算机和智能科学等相关专业本科生开设的与本书同名的课程“计算摄像学:成像模型理论与深度学习实践”(课号:04833970)。顾名思义,这门课程以图像的物理形成过程和相机获取数字图像的原理为支撑,介绍计算摄像学中的基本问题、模型、理论及其用传统最优化、信号处理方法的解决方案。结合对于各问题近些年随着深度学习技术的发展带来的全新进展,介绍深度学习和计算摄像问题的结合与应用。深度学习作为目前视觉计算领域广受关注的技术之一,在高层计算机视觉的目标检测、识别和分类等问题上带来了传统方法无法企及的性能突破。深度学习技术在计算摄像学中也正在发挥广泛而积极的作用。通过适当的方法,将传统计算摄像学在光学特性、物理过程和成像模型等方面的先验、约束与数据驱动方法强大的学习、建模能力进行优势互补,可以为众多计算摄像难题的求解提供全新的思路和手段。
本课程的目标是使学生对计算摄像的原理形成相对系统性的认知,培养学生结合传统和现代计算机应用方法,通过从数据获取的源头改善系统输入层面的信息维度和数据质量,来解决视觉计算问题的能力。
作业和考核方面涉及经典问题编程实践、相关文献调研总结和前沿论文讲解复现三个环节,希望学生能够就计算摄像领域的一个或多个课题对科研的完整环节进行体验与实操,培养基本理论、动手实践、论文撰写和学术演讲等全方位的能力。
在成像模型理论方面,这门课从数字图像的形成和数码相机的工作原理入手,介绍基于几何和光学的成像模型,然后针对几类计算摄像学的典型问题(高动态范围成像、光度立体视觉、超分辨率和去模糊等)进行深入介绍;每类问题分别介绍基于物理成像原理和信号处理的经典方法和基于数据驱动与深度学习实践的最新方法。通过本课程的学习,学生可以全面理解数字图像成像的流程和相机工作的原理,并初步掌握用经典理论和前沿技术提升数字图像质量和改善数字摄影体验的能力。这门课的课时分配与本书的章节组织一一对应:
1)计算摄像学概述:介绍计算摄像学的基本概念、研究范畴和研究内容,并对国内外相关的课程和教材进行简要介绍。
2)数字摄像原理:介绍图像传感器的基本原理、色彩形成的基本原理和相机内部的图像处理流程(白平衡、去马赛克和色调再现等)。
3)相机几何模型:介绍图像形成的几何原理,通过针孔相机模型和透视投影原理,讲述相机矩阵和相机几何标定的方法等。
4)镜头与曝光:介绍镜头模型、视场与镜头选用(对焦距离与变焦)和曝光控制(光圈与景深)等基本概念。
5)焦点堆栈与光场摄像:介绍焦点堆栈、全聚焦图像和光场等基本概念,以及重对焦的计算摄像实现方法。
6)光度成像模型:介绍图像形成的光学原理、相机辐射响应标定方法和光度成像模型的三个基本要素(表面法线、反射率与光源模型)等。
7)光度立体视觉:介绍从多张光照变化的图像恢复形状的方法,包括经典方法、泛化方法和基于深度学习的解法。
8)高动态范围成像:介绍融合多张不同曝光图像的高动态范围成像经典方法,利用非传统相机和深度学习实现单张图像高动态范围的算法。
9)超分辨率:介绍传统的基于子像素位移拼接多图的超分辨率技术,通过改进传感器像素结构的超分辨率技术,以及单张图像超分辨率技术。
10)去模糊:介绍基于(盲)解卷积的去模糊技术,基于光圈编码、震颤快门等计算摄像方法以及利用深度学习去模糊的技术。
11)图像恢复高级专题I:基于Retinex理论,介绍利用多张或单张图进行本征成分分解的方法,以及深度学习在该问题上的应用。
12)图像恢复高级专题II:介绍将一张受反射干扰的图像分解为反射层和透射层的一系列经典方法、基准评测数据集和深度学习解法。
13)图像恢复高级专题III:介绍新型神经形态相机的工作原理、视觉信号处理算法及其与传统相机融合的计算摄像方法(包括对神经形态和传统视觉信号的增强)。
第2~6章(讲)主要围绕相机的基本工作原理、几何与光学的成像模型与其中涉及的基本概念进行讲解,具有比较紧密的承前启后的衔接关系(对应本书的第一部分,这部分可以串讲);第7~13章(讲)精选了计算摄像学中有代表性的部分研究内容,相对独立(对应本书的第二部分,这部分可以选讲),读者可以针对自己感兴趣的专题进行选择性的研读。每一章(讲)均按照“成像模型理论”和“深度学习实践”两部分组织内容,从问题的成因,即该问题在整个成像流程中的位置展开,介绍正向成像模型的基本概念和逆向成像模型的经典求解方法;随后介绍近些年相关的深度学习知识和模型如何对应求解同样的问题(能不能“学”出来?怎样“学”更有效?),相比传统方法其优势和劣势分别是什么。这是这门课程也是本书的最主要特色之一。每一章的最后都提供了对应该章内容的课程实践参考设计。本书的课程实践具有两个特点:第一,每个题目均从传统方法和深度学习两个方面给出了可以编程实践本章讲述内容的实验设计参考;第二,每个题目均布置了需要自己动手尝试拍摄真实图像进行验证的选项。上述课程实践的特点,有助于读者(或选课学生)深入理解成像流程的每一个环节,通过完成相应的编程作业进一步加深对理论的理解,实操体验计算摄像学在真实场景中的应用,真正做到学以致用。