思想领袖

将人工智能应用于实时视频处理:基础知识和更多

mm
将 Unite.AI 添加到您在 Google 上的首选来源

作者:Maksym Tatariants,数据科学工程师,MobiDev

使用人工智能(AI)进行视频处理并不是什么新鲜事。如果你超越图像处理——这是人工智能最常见的用例之一。就像图像处理一样,视频处理使用诸如计算机视觉、对象识别、机器学习和深度学习等成熟技术来增强此过程。

无论您是在视频编辑和生成中使用计算机视觉和NLP,还是在视频内容自动标记任务中使用对象识别,或者使用机器学习来简化AI视频分析,或者使用深度学习来加速实时背景移除,用例每天都在增长。

继续阅读以了解您可以采取什么方法来使用AI进行视频处理。

实时视频处理的基础知识

让我们从基础开始。实时视频处理是使用对象和面部识别的监控系统中的必备技术。它也是工业领域中AI视觉检查软件的主要过程。

那么,视频处理是如何工作的?视频处理涉及一系列步骤,包括解码、计算和编码。以下是您需要了解的内容:

  • 解码:将视频从压缩文件转换回其原始格式所需的过程。
  • 计算:在原始视频帧上执行的特定操作。
  • 编码:将处理后的帧转换回其原始压缩状态的过程。

现在,任何视频处理任务的目标都是尽可能快、尽可能准确地完成这些步骤。实现这一目标的最简单方法是:并行工作并优化算法以提高速度。简单来说?您需要利用文件分割和管道架构。

什么是视频文件分割?

视频文件分割允许算法同时工作,使其能够使用更慢、更准确的模型。这是通过将视频分割成单独的部分,然后同时处理它们来实现的。

您可以将视频分割视为一种虚拟文件生成,而不是子文件生成。

尽管如此,视频文件分割并不是实时视频处理的最佳选择。为什么?这个过程使得您难以在处理过程中暂停、恢复和重放文件。

什么是管道架构?

另一个选项是管道架构。这个过程旨在分割和并行化处理过程中执行的任务,而不是直接分割视频。

以下是一个管道架构在实践中的快速示例,以及它如何在视频监控系统中用于实时检测和模糊面部。

在这个例子中,管道将任务分割为解码、面部检测、面部模糊和编码。如果您想提高管道的速度,您可以使用管道深度学习技术

解码和编码解释

那么,解码和编码呢?有两种方法可以完成这些过程:软件和硬件。

您可能已经熟悉了硬件加速的概念。这个过程得到了最新的NVIDIA图形卡和CUDA核心的支持。

那么,当谈到解码和编码的硬件加速时,您有哪些选择?以下是一些更流行的选项:

  • 使用CUDA支持编译OpenCV:使用CUDA支持编译OpenCV可以优化解码和使用OpenCV的任何管道计算。请记住,您需要用C++编写它们,因为Python包装器不支持此功能。但是,在需要同时进行解码和使用GPU的数值计算而无需从CPU内存复制的情况下,它仍然是更好的选择之一。
  • 使用NVDEC/NVENC代码编译FFmpeg或GStreamer:另一个选项是使用NVIDIA解码器和编码器,它们包含在FFmpeg和Gstreamer的自定义安装中。 然而,我们建议使用FFmpeg,因为它需要更少的维护。另外,大多数库都是由FFmpeg提供支持的,这意味着您将通过替换FFmpeg来自动提高库的性能。
  • 使用NVIDIA视频处理框架:最后一个选项是使用Python包装器直接将帧解码到GPU上的PyTorch张量中。这个选项消除了从CPU到GPU的额外复制。

面部检测和模糊

对象检测模型(SSDs或RetinaFace)是完成面部检测的流行选择。这些解决方案旨在在帧中定位人脸。根据我们的经验,我们倾向于更喜欢Caffe Face跟踪和TensorFlow对象检测模型,因为它们提供了最好的结果。另外,两个模型都可以使用OpenCV库的dnn模块

那么,面部检测后会发生什么?然后,基于Python和OpenCV的系统将显示边界框和检测置信度。最后,模糊算法被应用于裁剪区域。

如何构建AI驱动的实时视频处理软件?

视频处理、其驱动的编解码器以及所需的硬件和软件都是相当技术性的。

但是,这并不意味着您不能使用这些工具来构建自己的实时视频处理软件。

以下是简要概述:

  1. 首先,调整您的预训练神经网络以完成所需的任务。
  2. 配置您的云基础设施以处理视频处理,并根据需要进行扩展。
  3. 构建软件层以简化该过程,并集成特定的用例,例如移动应用程序和管理或Web面板。

使用预训练神经网络和简单应用层开发类似视频处理软件的MVP可能需要长达四个月的时间。然而,范围和时间表取决于每个项目的细节。在大多数情况下,首先进行概念验证开发以探索项目具体细节并找到最佳流程是有意义的。

Maksym 热衷于在数据科学和机器学习领域获得新的见解和经验。他特别感兴趣于基于深度学习的技术及其在商业用例中的应用。