序四
非常荣幸能为本书作序,这是一本视觉工程师必备的OpenCV深度学习开发指南。
深度学习技术的兴起,极大地促进了图像、视频相关应用的发展。现在,类似人脸动画、人体动作识别等高级别视觉任务等需要用到深度学习技术,甚至最近深度学习也在悄悄进入图片、视频压缩、质量增强等低级别视觉任务领域。
一方面,我们使用深度学习技术时需要在性能强大的服务器上训练模型;另一方面,我们需要将模型部署到移动、嵌入式、物联网设备端等。后者往往更具挑战性。
OpenCV作为计算机视觉领域最具影响力的开发工具,在模型推理部署方面也做了大量工作,其DNN模块为此提供了丰富的技术支持。但仅仅有官方文档和少量例程并不够,长久以来,业界迫切需要一本深入解析DNN模块相关技术的参考书,而本书恰好满足了广大读者的需求。
作为一直从事计算机视觉算法研究与开发的工程师,我经常关注OpenCV的新版本和新特性,在最近几次的版本更新中,深度学习DNN模块都是OpenCV开发的重点。OpenCV提供了大量基础且重要的视觉算法的实现,是快速进行产品原型开发验证的首选工具,其深度学习模块也提供了大量的方便实用的功能,是深度学习模型快速部署的重要工具。
图像和视频的应用计算量通常很大,在产品开发中后期,算法工程师更多的工作往往是程序优化,如何最大化利用硬件计算能力、减少计算冗余是颇具挑战的事情。
本书深入解析了OpenCV DNN模块,详述了深度学习引擎的性能优化策略,介绍了在GPU和CPU上进行计算加速的方法,并通过涵盖计算机视觉主流应用的几个案例展示如何在OpenCV中使用深度学习,最后则带着大家完整实现一个人脸活体检测与识别的大项目。本书提供的案例,紧跟技术前沿,贴近实际应用场景,相信对参与工程项目开发的读者具有直接的参考价值。
对于想要学习OpenCV DNN深度学习模块,并将其应用到工程实践中的读者,这无疑是一本首选参考书。
技术是不断迭代更新的,但思想可以让我们走得更远。值得一提的是,本书介绍的优化策略和加速方法,对于开发其他视觉算法也大有裨益。
强烈建议大家不要只停留在读这本书,而要动手把书里的程序跑起来,将书中介绍的方法用起来,当你成功让一段程序取得几倍加速后,你一定会获得巨大的成就感!
周强(CV君)
“我爱计算机视觉”公众号负责人