1 前言

传统的植入广告,存在着许多问题。对于广告主来说,植入广告成本高昂且难以调整;对于制片方来说,需要在影视制作前期进行繁琐的准备工作;而对于用户来说,过多的贴片广告更是让人难以忍受。

那么,如何在视频中实现用户无感知、低成本、流畅的广告植入呢?答案就是通过 AI 技术,自动识别视频中合适的广告位,并自动插入相关的广告素材。

2 算法框架

3 算法概述

我们的算法由目标检测模块、区域分割模块、广告替换模块和环境光渲染模块四个部分组成。

(1)输入端是一段视频或者视频流输入到广告区域检测模块,检测广告植入区域和广告区域遮挡物;

(2)对广告植入区域进行处理,若有遮挡则进行遮挡处理,先将遮挡物分割出来。若无遮挡则不处理;

(3)将遮挡处理后的结果送入广告替换模块,计算基于前后帧的视角变换矩阵,将广告绘制到待植入区域中;

(4)对植入广告后的新视频帧送入环境光渲染模块,进行光线环境融合。

下面分模块描述每部分算法。

4 目标检测

在一段视频中,到底哪些地方是合适植入广告的区域呢?一个很简单的思路就是对原来存在广告的区域进行替换。那么问题就转变成了检测广告。广告主要分为两大类,一类是生活工作中的商品,自然广告;另一类是广告商做的广告牌广告,如公交亭后面的广告区域、街头的电子广告屏幕等等。本次算法主要针对第二种进行讨论。

目标检测算法主流的主要分为两类,一类是两阶段算法,另一类就是一阶段算法。在工业界,由于对检测速度和准确率等要求较高,所以一阶段系列算法应用更广泛。本算法选取的是一阶段算法。在 5 帧/秒到 160 帧/秒范围内,其速度和精度都超过了大部分已知的目标检测器,在 GPU V100 已知的 30 帧/秒以上的实时目标检测器中,准确率最高。

算法网络

网络主要包含了 Input(输入)、Backbone(骨干网)、Neck(颈部)、Head(头部)这四个部分。首先,图片经过输入部分数据增强等一系列操作进行预处理后,被送入骨干网,骨干网部分对处理后的图片提取特征;随后,提取到的特征经过 Neck 模块特征融合处理得到大、中、小三种尺寸的特征;最终,融合后的特征被送入检测头,经过检测之后输出得到结果。

5 区域分割

在实际生活中,广告有时会被行人或其他物品遮挡。想象一下,在公交站台上,您正准备植入某个广告,但行人挡住了一部分广告内容。那么,如何透过行人进行广告植入呢?这就是我们分割技术发挥作用的时候了。我们首先将遮挡物体进行分割,再插入广告,然后恢复遮挡的行人或物品。通过这种方法,我们可以实现无缝广告插入,同时保持场景的完整性和真实性。

由于遮挡物的多样性和不确定性,特定的行人分割模型或者其他多类的分割模型往往无法满足这种场景的需求。为了解决这个问题,我们使用处理图像分割任务的通用模型,完美地解决了多样性和不确定性这两个难题。它能够准确地分割各种遮挡物体,无论是行人、物品还是其他障碍物,都能得到精确的分割结果。这样我们能够高效地处理各种遮挡情况,并为顺利进行广告植入,提供了更大的灵活性和准确性。

处理图像分割任务的通用模型介绍

模型结构分为三部分:Prompt Encoder(提示编码器),Image Encoder(图像编码器)和 Mask Decoder(分割解码器)。模型支持点坐标、检测框、分割图和文本描述四种提示,提示编码器和图像编码器分别对提示和图像进行编码,再将抽取的提示特征和图像特征输入分割解码器中,最终得到分割图。

我们将算法模型和处理图像分割任务的通用模型串联,图片经过检测模型后输出检测框,然后将检测框和图片一起输入处理图像分割任务的通用模型中,得到检测目标的分割图。

6 广告替换

常规思路是利用检测器检测广告牌区域->进行仿射变换->植入广告。经实验证明,由于是对视频做广告植入,尽管前后帧视角变化微小,但是组合成视频后还是会抖动巨大。

既然植入广告的视频会抖动,那肯定是人为观察到了前后帧植入广告区域的差异,能否计算前后帧视角变化,得到对应的视角变换矩阵后,再进行仿射变换植入广告呢?

实践是检验真理的唯一标准,经过多次实验,该理论是行得通的。我们分别尝试了深度学习方法的 superPoint、MatchFormer 等角点检测和传统 Sift、Orb 等角点检测方法,实验证明 Sift 算法鲁棒性更好。

Sift(Scale-invariant feature transform):尺度不变特征变换。Sift 算法是一种基于局部兴趣点的算法,因此不仅对图片大小和旋转不敏感,而且对光照、噪声等影响的抗击能力也非常优秀,因此该算法有着非常强的鲁棒性,所以在目标检测和特征提取方向占据着重要地位。

Sift 算法主要分为四个步骤

  • Scale-space extrema detection(空间尺度极值点检测):通过使用高斯差分函数来计算并搜索所有尺度上的图像位置,用于识别对尺度和方向不变的潜在兴趣点。

  • Keypoint localization(关键点定位):通过拟合精细的模型在每个候选位置上确定位置和尺度,关键点的选择依赖于它们的稳定程度。

  • Orientation assignment(方向匹配):基于局部图像的梯度方向,为每个关键点位置分配一个或多个方向,后续所有对图像数据的操作都是相对于关键点的方向、尺度和位置进行变换。

  • Keypoint descripto(关键点描述):在每个关键点周围的区域内以选定的比例计算局部图像梯度,这些梯度被变换成一种表示,这种表示允许比较大的局部形状的变形和光照变化。

7 环境光渲染

在完成广告替换后,尽管解决了抖动、遮挡等问题,但原场景特定的颜色、光线、亮度等,会使得植入广告略显突兀。

那怎么才能使得广告融入主体呢?我们采用了环境光渲染策略,将广告和原场景更好地融为一体。

具体算法流程如下:

  • 将图像从 RGB 转换为 ℓαβ 颜色空间

  • 统计和色彩校正