序一
OpenCV以其易得、易懂、易用为国内学术界和工业界所熟知。作为经典的图形图像类开源软件,OpenCV可以说是兼具“大而全”和“小而精”特点。“大而全”是指OpenCV全面涵盖了从教科书式的基本图像处理单元算法,到更复杂的高级算法,直至最新的围绕机器学习的算法。“小而精”是指其每个算法的实现被社区反复锤炼、优化,甚至满足一些项目需求的KPI,可以直接用于产品化。
本书的作者团队长期从事图形图像和视频编解码处理的算法研究、软件的功能实现及性能加速,各自在OpenCV项目里都有重要贡献,直至成为一些模块的维护者。本书从OpenCV入门,结合行业热点,花大量笔墨介绍机器学习相关实现及平台相关的性能优化,贴近实战,为学生、工程技术人员提供了实用指导。
作者团队所在的Intel开源软件中心音视频团队,自2008年开始从事GPU内核驱动开发,开发项目贯穿整个图形图像软件栈,涵盖开源软件桌面(X.org)、3D加速协议OpenGL(Mesa)、通用计算加速协议OpenCL(Project Beignet)、视频编解码与处理(FFmpeg/GStreamer)及基于软件的全栈式摄像头流水线处理算法实现(libXCam)。很多团队成员如今在流媒体框架、图形图像处理等主要开源软件社区成长为项目维护者。
开源软件开发作为一种开发模式,社区互动是必不可少的组成部分。我们和OpenCV社区的互动,最早可以追溯到2010年。彼时OpenCV已经在业内流行了,但来自国内的贡献很少。最初,我们也经历了彷徨和不安,担心代码会不被接受。经过一些尝试后,我们逐渐与社区、OpenCV项目的维护者Vadim先生建立了良好的合作关系。待后来Intel收购了Itseez公司之后,大家成为同事,合作就变得更多了。本书的各位作者作为参与OpenCV项目的开发者,贡献了重要算法的优化和实现。他们希望通过本书,分享自己的成长经历,携手国内开源社区的程序员和工程师一起参与OpenCV项目的开发。
图形图像技术自诞生之日起,就与网络技术的发展相辅相成。随着机器学习的发展,技术热点也从围绕存储和分发,越来越多地转向内容的分析和挖掘。华为的任正非先生曾经说过,下一个时代是图像时代。智能手机的普及使得拍摄成为最通俗易用的信息产生方式,由此产生了海量数据。为这些非结构化数据的有效挖掘和利用将催生下一个行业巨人。“把图像处理变得像文字处理一样简单”,一直是本书作者们及其所在团队追求的技术方向。机器学习和图像处理相结合,必将对机器人、工业自动化、医疗和生物技术带来深远的影响。5G的低延时、物对物的连接特性,也将给图形图像技术注入新的催化剂并带来广阔的应用。有幸能为本书作序,借此与读者共勉。
傅文庆
Intel公司系统软件产品事业部研发总监
于美国俄勒冈州