第7章 使用OpenCV与朋友换脸
计算机视觉已经取得了长足的进步。现在我们可以通过识别物体来生成换脸的视频。这个功能可以通过逐帧替换一个人的脸来实现。这个过程让检测视频是变形的还是真实的变得很困难。
本章将介绍如何构建一个应用程序,它可以将一张人脸图片放在另一张图片之上。本章还将讨论包含名为dlib的机器学习算法的C++工具包和开源计算机视觉(Open Source Computer Vision,OpenCV)库。
OpenCV是一个拥有C++、Python和Java接口的库,支持Windows、Linux、macOS、iOS和Android平台。OpenCV是为计算效率和实时应用而设计的。它广泛应用于各种基于视觉的应用程序。dlib是一个C++工具包,其中包含ML算法和用于创建基于C++的实际应用程序的工具。它广泛应用于工业和学术领域,包括机器人、嵌入式设备、移动电话和大型高性能计算环境。dlib是开源的,可以在任何应用程序中免费使用。
本章创建的Android应用程序使用OpenCV、dlib和Google Vision SDK进行人脸检测,以便在两幅图像之间换脸。
本章将会讨论以下内容:
- 换脸的原理;
- 构建原生换脸库的方法;
- 构建可以换脸的Android应用程序的方法。
本章的源代码可以在GitHub网站中找到。
7.1 换脸
长期以来,人脸一直是计算机视觉工程师的基础研究内容。这项研究的第一个应用是人脸识别特征。要识别输入图像或视频帧中的人脸,算法首先要检测人脸的位置。然后算法将生成一个边框,以框住图像中的一张人脸,如下图所示。 ...
Get 移动端机器学习实战 now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.