前言 AR技术是增强现实技术的简称,是一种将虚拟信息与真实世界进行融合的技术。AR技术通过计算机生成的图像、声音和其他感官输入,将虚拟元素叠加到真实环境中,使用户可以与虚拟和真实世界进行交互。 AR技术通常使用智能手机、平板电脑、AR眼镜或头戴式显示器等设备来呈现虚拟内容。通过这些设备,用户不仅可以看到真实场景,还可以看到额外添加的特效。 AR技术在人们的生活中逐渐普及。用户可以通过支持AR芯片的手机拍摄实时的特效视频,可以通过AR眼镜等新型外设看到增强的景象,还可以通过智能驾驶技术更轻松地驾车出行。 AR技术的应用场景广泛。AR技术可用于制作电子游戏,有些AR游戏可以在现实世界中放置桌椅模型,并将所有用户虚拟成卡通人物。AR技术可用于制作远程教育应用,为学生营造出一种轻松愉快的学习氛围;在AR应用中的教具也可能是虚拟的模型,拥有更丰富的动作,因此教师也能更好地发挥自己的教学水平。AR技术可用于零售行业,消费者可以通过AR应用远程查看商品的任意角度;AR应用还支持试穿功能,实时拍摄用户的视频影像,并将服饰模型放置在人物之上,达到远程试穿的效果。制造业中的AR技术可实时展示工业设计、维修和装配的效果,提供实时指导和可视化信息,提高工作效率和准确性。 笔者依据真实的工业研发经验和在科学计算领域的积累,将实际的应用场景和理论的AR算法相融合,博采其他编程语言的经典概念,配合Octave编程的基础知识进行实战,力求使读者由浅入深地上手AR技术中的各个环节。 本书共分为13章,主要内容如下。 第1章绪论,为Octave的概述内容。 第2章从简单的模型入手,到如何创建复杂的模型,再到实际研发过程中的模型背景如何透明等技术细节,最后编写在AR画面中放置模型的实战应用。 第3章讲解与位姿相关的知识。从数学和力学等基础理论入手,到仿射变换的理论和应用,再配合Octave的仿射变换函数和其他工具的空间变换命令,最后编写机器人模型位姿变换的实战应用。从传统的几何变换到复杂的仿射变换,这种思维的转变是本章的一大难点。 第4章讲解与投影相关的知识。读者需要先理解投影的理论,再配合Octave的相机概念,即可在软件层面上轻松控制机器人模型的投影效果,最后编写控制机器人模型的投影效果的实战应用。 第5章讲解与畸变相关的知识。从投影的分类入手,再讲解畸变矫正工具的用法,配合畸变矫正的公式理论,帮助读者在拍摄AR画面时能够一步微调画面的显示效果,最后编写畸变矫正的实战应用。 第6章讲解与计算机视觉相关的知识。先讲解经典且常用的SIFT和SURF等算法,再深入讲解计算机视觉的代码如何在Octave上实现,引导读者根据实际的应用场景去编写新的算法。还涉及点云模型在计算机视觉中的用法,引领读者在开发AR应用时脱离固有的RGB彩色图像的限制,最后介绍YOLOv8等顶级的计算机视觉算法。 第7章从AR系统的硬件选型入手,意在让读者领悟理论的算法与实际的硬件之间的关联。不同的算法往往对应不同的选型方案,本章的内容对提高读者的AR系统设计能力有较大帮助。 第8章讲解与倾斜摄影相关的知识。倾斜摄影是一种高新技术,在遥感测绘等方面的AR应用上被广泛应用,并且具备卓越的性能优势。 第9章讲解SLAM算法的入门知识。先从SLAM算法的流程开始讲解,又讲解了Octave的传感器数据读取函数等基础用法,最后从头编写一套SLAM算法代码,帮助读者从能够开发单个的算法提升到能够开发整套SLAM算法。 第10章和第11章讲解SLAM算法的常用库和开源算法的实现,帮助读者能够在已有的SLAM算法基础上进行二次开发,希望读者能够具备拿来就用和知道用什么的能力。二次开发已有的开源算法也是业界常用的一种做法。 第12章讲解与贴图相关的知识。贴图是一种具有艺术性的工序,本章不但从代码层面上讲解贴图的各种实战应用,还举了大量生活中的例子,使内容更贴近实际且更容易理解。 第13章讲解推流和拉流。本章中的实战内容将算法处理完的AR视频以流媒体的形式在网络上传输,并且涵盖和部署应用相关的技术难点。 素材(源代码)等资源: 扫描封底的文泉云盘防盗码,再扫描目录上方的二维码下载。 限于本人的水平和经验,书中一定存在疏漏之处,恳请专家与读者批评指正。 于红博2023年11月于哈尔滨