具体实施方式
为了更清楚地说明说明书一个或多个实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本说明书的一些示例或实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图将本说明书一个或多个实施例应用于其它类似情景。除非从语言环境中显而易见或另做说明,图中相同标号代表相同结构或操作。
应当理解,本文使用的“系统”、“系统”、“单元”和/或“模组”是用于区分不同级别的不同组件、元件、部件、部分或装配的一种方法。然而,如果其他词语可实现相同的目的,则可通过其他表达来替换词语。
如本说明书一个或多个实施例和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其它的步骤或元素。
说明书一个或多个实施例中使用了流程图用来说明根据本说明书一个或多个实施例的系统所执行的操作。应当理解的是,前面或后面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各个步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。
图1为根据本说明书的一些实施例所示的广告视频画面裁剪的系统的应用场景图;如图1所示。广告视频画面的裁剪可以基于目标画面尺寸设定裁剪框,该裁剪框的中心与进行画面裁剪的广告视频的画面的中心重合,然后基于裁剪框进行画面裁剪。这样的画面裁剪方式可能使得广告视频的主要信息在裁剪后缺失(如广告商品的画面被裁剪掉)。如图1所示,本申请的广告视频画面裁剪的系统可以通过执行广告视频裁剪的方法来实现对视频画面的尺寸进行转换的目的。广告视频画面裁剪的系统可以通过将基于主体信息和预设画面尺寸来对视频的画面进行裁剪,可以使得经过画面裁剪后的广告视频的主要信息不易缺失(如广告商品的画面被保留)。广告视频画面裁剪的系统可以包括处理终端11。
处理终端11可以在多种应用场景中用于转换视频的画面尺寸。例如,处理终端11可以用于将原本在户外电子屏上投放的广告视频的画面尺寸进行转换,使其适合在地铁电视屏幕上投放。又例如,处理终端11可以用于将手机或摄像机拍摄的视频的画面尺寸,调整为视频网站播放的优选尺寸。再例如,处理终端11可以用于将横屏视频转换为竖屏视频。
在一个典型的应用场景中,当需要将横屏视频(例如画面的宽高比为16:9)转换为竖屏视频(例如画面的宽高比为9:16)时,处理终端11可以获取待处理视频14(横屏视频),并基于模型12将待处理视频14拆分成多个视频片段16;处理终端11可以识别出待处理视频14中的主体15;处理终端11可以根据主体15以及竖屏视频的预设画面尺寸来为所述待处理视频14配置裁剪框13,并根据裁剪框13来分别裁剪多个视频片段16的画面17,再将裁剪之后的视频片段16重新拼接为完整的视频,以得到竖屏视频。
处理终端11可以理解为具有计算能力的终端,可以包括各种计算机,比如服务器、个人计算机,也可以是由多台计算机以各种结构连接组成的计算平台。
处理终端11中可以包括处理器,处理器可以执行程序指令。处理器可以包括各种常见的通用中央处理器(centralprocessingunit,CPU),图形处理器(GraphicsProcessingUnit,GPU),微处理器,特殊应用集成电路(application-specificintegratedcircuit,ASIC),或其他类型的集成电路。
处理终端11中可以包括存储介质,存储介质可以存储指令,也可以存储数据。存储介质可包括大容量存储器、可移动存储器、易失性读写存储器、只读存储器(ROM)等或其任意组合。
处理终端11还可以包括用于内部连接和与外部连接的网络。也可以包括用于输入或输出数据的设备。网络可以是有线网络或无线网络中的任意一种或多种。用于输入或输出数据的设备可以包括各类具有信息接收和/或发送功能的设备,如网关设备、蓝牙设备、接口设备等。
在处理终端11中可以包括模型12。处理终端11基于模型12,获取主体15和/或视频片段16。示例的,模型12可以为机器学习模型,识别出的视频片段16中的主体15,例如,主体15可以是人、汽车、化妆品等。
模型12可以被存储在处理终端11中,当需要使用模型12的相关功能时,处理终端11执行调用模型12的操作。模型12可以指基于处理终端11而进行的若干方法的集合。这些方法可以包括大量的参数。在使用模型12时,模型12中的参数可以是被预先设置好的,也可以是可以动态调整的。一些参数可以通过训练的方法获得,一些参数可以在执行的过程中获得。关于本说明书中涉及模型的具体说明,可参见本说明书的相关部分。
处理终端11可以对待处理视频14进行处理(包括分割为镜头片段、画面裁剪等处理)。待处理视频14可以理解为需要裁剪的视频。待处理视频可以是广告视频、动画视频、电影电视剧视频、教学视频等。裁剪框13可以理解为根据待处理视频待转换的目标尺寸而确定的裁剪边界。在基于裁剪框13进行视频的画面裁剪的过程中,可以保留裁剪框13内的画面而删除裁剪框13外的画面,从而可以将待处理视频裁剪为目标视频的尺寸。
在一些实施例中,处理终端11可以为用于播放待进行画面裁剪的广告视频的播放设备,因此,用于播放待进行画面裁剪的广告视频的播放设备可以获取广告视频,并基于该设备自身播放视频的尺寸来对广告视频的画面进行裁剪,并将进行画面裁剪后的广告视频进行自动播放。在另一些实施例中,处理终端可以为能够执行广告视频的画面裁剪的操作的智能设备(例如电脑、手机、智能穿戴设备等),智能设备可以将经过画面裁剪后的广告视频发送给用于播放待进行画面裁剪的广告视频的播放设备。
如图1所示的广告视频画面裁剪的方法可以由处理终端执行。例如,广告视频画面裁剪的方法可以以程序或指令的形式存储在存储装置(如处理终端的存储设备、存储器)中,当用于广告创意效果预测的系统(如处理器)执行该程序或指令时,可以实现广告视频画面裁剪的方法。上述广告视频画面裁剪的方法的流程100可以包括以下步骤:
步骤110,获取待进行画面裁剪的广告视频。具体地,步骤110可以由获取模块410执行。
广告视频可以理解为一种借助灵活的创意锁定与之相关联的受众群体的视频内容,以达到向该受众群体传播信息或营销商品等目的。在一些实施例中,广告视频可以通过电视、户外广告屏、电子设备(如手机、电脑、智能穿戴设备等)的网页或弹窗等形式呈现给受众群体。画面剪裁可以理解为一种基于预设的尺寸对视频的画面按照预设画面尺寸进行裁剪的方式。在一些实施例中,对画面进行裁剪可以基于画面中的主要信息和预设画面尺寸(可以理解为目标画面尺寸)来设置一个裁剪框,并基于裁剪框对画面进行裁剪。画面中的主要信息可以包括场景、人物、商品等。对关于画面裁剪的更详细的阐述,可参见步骤340的相关描述。获取模块410通过读取(如通过程序接口或数据接口读取)、接收(如通过网络或蓝牙接收)等方式来获取广告视频。
步骤120,基于广告视频确定一个或多个镜头片段。具体地,步骤120可以由分割模块420执行。
镜头片段可以是构成视频的图像序列的子序列,且镜头片段可以理解为一段连续的且未经拼接的视频片段。在一些实施例中,一个广告视频可以仅包括一个镜头片段,则整个在广告视频作为一个镜头片段。在另一些实施例中,一个广告视频可以由多个镜头片接拼接而形成,两个相邻的镜头片段的连接处的一个或多个连续的视频帧可以称为镜头边界帧。在一些实施例中,可以以镜头片段为单元对所述广告视频中的多个镜头片段进行分割。在将广告视频分割为多个镜头片段时,可以在镜头边界帧处进行分割。
在一些实施例中,将广告视频分割为多个镜头片段的方法可以具体可以包括以下步骤:
步骤1,获取广告视频的多个视频帧以及视频帧的特征信息;
步骤2,根据视频帧的特征信息,分别计算各个视频帧与从多个视频帧中预选定的视频帧之间的相似度,以确定镜头边界帧;
步骤3,根据镜头边界帧,将广告视频分割为多个镜头片段。
在一些实施例中,在上述步骤1中,可以使用图像嵌入模型来获取广告视频的多个视频帧以及视频帧的特征信息。将广告视频输入图像嵌入模型中,图像嵌入模型可以提取组成广告视频的各个视频帧的图像,并提取视频帧的图像的特征,生成各个视频帧的图像对应的向量。在一些实施例中,可以将已经提取出的视频帧的图像输入图像嵌入模型中,图像嵌入可以对应输出各个视频帧的图像的向量。
在另一些实施例中,在上述步骤1中,视频帧的特征信息可以基于imagenet图片库预训练的mobilenet模型(如mobilenetV2模型)获得。mobilenetV2模型可以较为准确而快速地提取每个视频帧的图像的特征。例如,可以将各个视频帧输入mobilenetV2模型中,通过mobilenetV2模型可以输出每个视频帧对应的归一化的1280维向量。在一些实施例中,还可以通过其他具有类似功能的机器学习模型来获得视频帧的特征信息,例如GoogLeNeT模型、VGG模型、ResNet模型等,本申请对此不做限制。通过使用机器学习模型来提取视频帧的特征,可以更准确地确定镜头边界帧,从而实现镜头片段的准确分割,以使得后续对广告视频的画面裁剪时能够更方便的操作,避免将广告视频的主要信息裁剪掉。
在一些实施例中,在上述步骤2中,可以将两个视频帧的特征向量的内积作为这两个视频帧之间的相似度。在一些实施例中,计算各个视频帧与从多个视频帧中预选定的视频帧之间的相似度可以是计算各个视频帧与其前和/或后相邻的视频帧之间的相似度,也可以是计算各个视频帧与其前和/或后间隔预设间隔帧数的视频帧之间的相似度。
在一些实施例中,确定镜头边界帧可以包括确定镜头片段的硬切边界帧。如果相邻的两个镜头片段间未使用过渡效果,相邻的两个镜头片段的相邻两个视频帧直接跳变,则相邻的这两个视频帧可以理解为硬切边界帧。在确定硬切边界帧的过程中,可以计算各个视频帧与其前和/或后相邻的视频帧之间的相似度,如果两个相邻的视频帧之间的相似度低于相似度阈值,则确定这两个相邻的视频帧为硬切边界帧。
在一些实施例中,确定镜头边界帧还可以包括确定镜头片段的软切边界帧。如果相邻的两个镜头片段间使用了过渡效果,相邻的两个镜头片段的相邻视频帧不会直接跳变,则两个镜头片段之间用于过渡的若干分视频帧可以理解为软切边界帧。软切边界帧可以通过以下方法进行确定:
首先,可以通过计算各个视频帧与其前和/或后间隔预设间隔帧数的视频帧之间的相似度来确定候选分割区域。在确定候选分割区域的过程中,预设间隔帧数可以设定为2帧、3帧或5帧等。如果计算出两个视频帧之间的相似度小于预设阈值,则将这两个视频帧之间的视频帧作为候选分割区域,而这两个视频帧作为候选分割区域的边界帧。例如,预设间隔帧数为2帧,则可以计算第10帧和第14帧之间的相似度,如果该相似度小于相似度阈值,则将第12帧和第13帧作为候选分割区域,第10帧和第14帧为候选分割区域的边界帧。然后,还可以进一步对候选分割区域进行融合,即将重叠的候选分割区域合并到一起。如第12帧和第13帧为候选分割区域,第13帧和第14帧也为候选分割区域,则将第12、13和14帧合并为一个候选分割区域。
由于前述步骤可能混入处于同一个镜头片段内但是画面变化较剧烈的一些视频帧,此后,还可以再对候选分割区域进行进一步筛选。在对候选分割区域进行筛选的过程中,可以基于候选分割区域内的相似度S1以及候选分割区域外的相似度S2来对候选分割区域进行筛选。
计算分割区域内的相似度S1的方法可以是:计算候选分割区域的边界帧与位于候选分割区域内且与候选分割区域边界帧间隔预设间隔帧数的视频帧的相似度,以获得候选分割区域内相似度S1。例如,候选分割区域为第12帧和第13帧,预设间隔帧数为2,则计算第11帧与第13帧的相似度以及第12帧与第14帧的相似度,将两个相似度的最小值作为分割区域内的相似度S1。
计算候选分割区域外的相似度S2的方法可以是:计算候选分割区域内前部的视频帧与在其前间隔预设间隔帧数的视频帧之间的相似度,以及计算候选分割区域内后补的视频帧与在后间隔预设间隔帧数的视频帧之间的相似度,以获取候选分割区域外相似度S2。例如,候选分割区域为第12帧和第13帧,预设间隔帧数为2,则计算第10帧与第12帧的相似度,以及第13帧与第15帧的相似度,将两个相似度的最小值作为分割区域外的相似度S2。如果S2大于S1的值超过阈值,则将该候选分割区域认定为最终的分割区域,并基于最终的分割区域进行镜头片段的分割操作。
步骤130,使用机器学习模型获取每个镜头片段中的主体信息;主体信息用于至少反映主体的位置。具体地,步骤130可以由识别模块执行。
主体可以理解为每个镜头片段中所出现的主要物体。例如,主体可以包括生物(人、动物等)、商品(汽车、日用品、装饰品、化妆品等)、背景(山、路、桥、房子等)等。机器学习模型能够识别每个所述镜头片段中的主体,机器学习模型还可以在识别到主体的同时获取主体信息。主体信息可以表示与主体相关的一些信息,主体信息用于至少反映主体的位置。在一些实施例中,主体信息只需包括主体的位置信息和名称信息。在另一些实施例中,主体信息可以包括主体的位置信息、尺寸信息、名称信息、类别信息等。主体的位置信息可以理解位置在广告视频的画面中所处的位置的信息,例如可以是参考点的坐标的信息。主体的尺寸信息可以包括主体的实际尺寸信息和主体占广告视频的画面的尺寸的比例信息等。主体的类别信息可以理解为主体的分类,例如,主体的类别信息包括主体的分类是人或是物的信息,又例如,主体的类别信息还可以包括主体是护肤品、洗护用品或是汽车等的信息。仅作为示例,当主体为洗发水时,则主体的名称信息可以为洗发水,主体的类别信息可以为洗护用品。
在一些实施例中,机器学习模型可以是生成模型、判定模型,也可以是机器学习中的深度学习模型,例如,可以是采用yolo系列算法、FasterRCNN算法或EfficientDet算法等的算法的深度学习模型。机器学习模型可以在每个视频帧的画面中检测到已设定的需关注的对象。需要关注的物体可以包括生物(人、动物等),商品(汽车、装饰物、化妆品等)、背景(山、路、桥、房子等)等。进一步地,对于广告视频而言,需关注的对象可以进一步进行设定,例如可以设定为人脸或商品等。可以将多个镜头片段输入该机器学习模型中,机器学习模型能够输出各个镜头片段中的主体的名称信息和位置信息等数据。
在一些实施例中,可以基于大量带有标识的训练样本训练该机器学习模型,具体的,将带有标识的训练样本输入机器学习模型,通过常用的方法(例如梯度下降法)进行训练,以更新机器学习模型的相关参数。在一些实施例中,训练样本可以是镜头片段和镜头片段中的所包括的主体。训练样本的获取方式可以调用存储器及数据库中的数据。在一些实施例中,样本的标识可以是镜头片段中的对象是否是主体。如果是,标记为“1”,否则标记为“0”。在一些实施例中,标识的获取方式可以是人工标记,还可以是机器自动标记或其他方式,本实施例对此不做限制。
在一些实施例中,获取模块410还可以获取广告视频的主题信息。广告视频的主题信息可以是待处理广告视频的标题或简介中的关键词信息,也可以是广告视频的标签信息,还可以是用户自定义的信息或者是数据库中已存储的信息。
使用机器学习模型获取每个镜头片段中的主体信息还可以进一步包括以下步骤:使用机器学习模型获取每个镜头片段中的候选主体;根据主题信息,从候选主体中挑选出一个或多个主体。候选主体可以是用户预先在系统中设定的,候选主体可以专门针对一类广告视频进行设定。例如,针对化妆品类广告视频,候选主体可以是商品、人脸(包括眼睛、鼻子、嘴巴等五官)。仅作为示例,在根据主题信息,从候选主体中挑选出一个或多个主体时,广告视频的主题信息为口红,在某个镜头片段中,机器学习模型识别出的候选主体包括人脸的鼻子、人脸的嘴巴、人脸的眼睛、商品(口红)、树木、马路和房子,基于主题信息为口红,可以进一步挑选出人脸的嘴巴和商品(口红)这些与口红相关性较高的候选主体来最终作为主体。
在一些实施例中,获取广告视频的主题信息的方法可以是用户自定义或用户从列表选择。例如,用户直接输入广告视频的主题为“汽车内饰”。又例如,用户从分类列表中选择“洗护用品”->“洗发水”。在另一些实施例中,获取广告视频的主题信息的方法还可以是通过模型进行识别。例如,当用户将视频上传且未指定或选择主题信息时,则可以基于目标检测等图像识别技术,获得每个视频帧的图像中的所有物体,然后将整个广告视频中出现频次最多或占权重最大的物体作为该广告视频的默认主题。例如,在广告视频各个视频帧的画面中,汽车轮胎的图像所占面积最大,则该广告视频的默认主题可以设定为“汽车”或“汽车轮胎”。
从候选主体中挑选出主体的方法可以是基于各个候选主体与主题信息的关联度自动进行挑选,例如将各个候选主体与主题信息的关联度进行排序,然后挑选出排名前X位的候选主体,X可以设定为1、2或4等。在一些实施例中,处理器通过机器学习模型确定每个视频帧的候选主体,再基于主题信息来自动地从候选主体中挑选出主体,使得所挑选出的主体与主题信息关联度较高,为后续的画面裁剪步骤做准备,可以使得经过画面裁剪后的广告视频与主题信息相关的内容依然突出,保证广告视频的广告效果。从候选主体中挑选出主体的方法也可以是用户手动进行挑选,例如在完成候选主体的识别后,系统可以自动弹出主体挑选框,用户可以在主体挑选框中勾选候选主体,系统可以将用户勾选的候选主体作为主体。通过用户手动挑选主体,可以使得获得的主体更符合用户的意向。
步骤140,根据预设画面尺寸以及主体信息,对镜头片段的画面进行裁剪。具体地,步骤140可以由裁剪模块440执行。
预设画面尺寸可以理解为对镜头片段的画面进行裁剪的目标尺寸。预设画面尺寸可以包括画面的目标宽高比,还可以包括画面的目标宽度和/或目标高度。在一些实施例中,在进行画面裁剪的过程中,根据预设画面尺寸设定每个视频帧的裁剪框的宽高比和具体大小,基于每个视频帧的裁剪框,将每个视频帧的裁剪框外的画面裁剪掉而保留裁剪框内的画面。用户可以根据广告视频的目标播放终端的显示播放尺寸来将预设画面尺寸手动输入到系统内,系统也可以自动获取广告视频的目标播放终端显示播放的最佳尺寸,该最佳尺寸的数据可以存储在待播放广告视频的设备中。
裁剪框可以理解为根据画面裁剪的目标画面尺寸而确定的裁剪边界。裁剪框可以为矩形、平行四边形、圆形等。
在一些实施例中,为了防止每个镜头片段中的画面出现大幅抖动,步骤140可以进一步包括以下步骤:根据主体信息和预设画面尺寸,确定镜头片段中若干视频帧的裁剪框的尺寸和初始位置;对若干个视频帧的裁剪框的初始位置进行处理,确定若干个视频帧的裁剪框对应的最终位置;根据裁剪框的最终位置,将镜头片段的各个视频帧的画面进行裁剪,以保留裁剪框内的画面。在本实施例中,根据镜头片段中所包含的若干个视频帧的裁剪框的初始位置,确定若干个视频帧的裁剪框的最终位置,在保证主体位于裁剪框内的同时,还可以减小相邻的视频帧的裁剪框之间的位置差异,能够避免相邻的视频帧的裁剪框之间的位置差异过大而导致镜头片段中的画面出现突然跳变或抖动。裁剪框的初始位置可以理解为基于主体信息和预设画面尺寸初步确定出的裁剪框的位置,裁剪框的最终位置可以理解为在对初始位置的信息进行处理后确定出的新的位置。在一些实施例中,初始位置的信息可以包括参考点的初始坐标信息,最终位置的信息可以包括参考点的最终坐标信息。
在一些实施例中,当根据主体信息和预设画面尺寸,确定镜头片段中若干视频帧的裁剪框的尺寸和初始位置时,可以根据主题信息和主体信息来确定每个主体与主题信息的相关度,再根据相关度、主体信息和预设画面尺寸来确定裁剪框的初始位置和尺寸。本实施例的具体实施方法,请参照图3部分的相关阐述。
在另一些实施例中,以裁剪框为矩形为例,当根据主体信息和预设画面尺寸,确定若干视频帧的裁剪框的尺寸和初始位置时,可以根据预设画面尺寸,确定裁剪框的宽高比,再基于主体的位置、尺寸以及裁剪框的宽高比来确定裁剪框的初始位置和尺寸,再根据预设画面尺寸对裁剪框进行等比例缩放。例如,在确定裁剪框的宽高比的过程中,如果预设画面尺寸是800×800,则将裁剪框的宽高比设置为1:1。又例如,如果预设画面尺寸是720╳540,则将裁剪框的宽高比设置为4:3。在设置了裁剪框的宽高比后,可以基于宽高比设置多个等宽高比但尺寸不同的裁剪框,然后基于步骤120中识别出的主体和裁剪框的宽高比来确定裁剪框以及裁剪框的位置和尺寸,以使得每个主体均位于裁剪框内,再根据预设画面尺寸来确定对上述裁剪框及其内的画面进行等比例缩放。具体的,可以基于同宽高比的裁剪框与视频帧的画面中主体所在的区域重叠的面积来确定裁剪框的初始位置和尺寸。另外,对裁剪框以及裁剪框内的画面进行宽高等比例缩小或放大,以使得裁剪框的尺寸符合预设画面尺寸,从而防止裁剪后的画面中出现黑边。仅作为示例,视频帧的画面大小为1024╳768,而预设画面尺寸为是960╳960,可以先确定一个768╳768的裁剪框,按照裁剪框裁剪后再将视频帧的画面的宽高同比例放大至960╳960。
在一些实施例中,确定镜头片段中若干视频帧的裁剪框对应的最终位置具体可以包括:从镜头片段所包含的所有视频帧中挑选出若干个视频帧,判断每对(每两个)间隔预设帧数的视频帧的裁剪框的参考点(如中心点)之间的距离是否小于预设距离;如果小于预设距离的裁剪框的对数大于预设对数,则可以理解为该镜头片段中主体的位置是相对静止的,此时可以求出镜头片段所包含的所有视频帧的裁剪框的参考点的平均位置,并基于该平均位置调节各个视频帧的裁剪框的位置;如果小于预设距离的裁剪框的对数小于预设对数,则可以理解为该镜头片段中主体的位置是动态变化的,此时可以根据镜头片段所包含的所有视频帧的裁剪框的参考点的位置确定出平滑的轨迹线,并基于该轨迹线调节各个视频帧的裁剪框的位置(例如,使得各个视频帧的裁剪框的参考点都位于该轨迹线上)。在一些实施例中,预设帧数可以是2帧、3帧或5帧等。在另一些实施例中,间隔预设帧数的一对视频帧也可以是相邻的一对视频帧。需要说明的是,本说明书中参考点可以是裁剪框的中心点、矩形的左上顶角点、矩形的右下角等。参考点优选为裁剪框的中心点,以在移动位置裁剪框的位置时减小裁剪框与该裁剪框中各个主体的相对位置的变化。
在另一些实施例中,调节镜头片段中各个视频帧的裁剪框的位置具体可以包括以下步骤:将镜头片段的若干视频帧的裁剪框的参考点的初始坐标信息根据时间进行平滑处理;根据所述平滑处理的结果,确定参考点的最终坐标信息;基于最终坐标信息确定参考点的位置。在一些实施例中,将镜头片段的若干个视频帧的裁剪框的参考点的初始坐标信息根据时间进行平滑处理,可以是对参考点坐标值进行线性回归处理。线性回归处理的具体方法和更多细节,请参见图2的相关阐述。
图2为根据本说明书的一些实施例所示的平滑处理的方法的示意图。如图2所示,在一些实施例中,对参考点的初始坐标信息进行平滑处理包括:进行线性回归处理,以获取线性回归方程及其斜率。具体的,可以对各裁剪框的参考点的初始坐标信息基于时间做线性回归,得到线性回归方程、拟合直线段(参见图2)及线性回归方程的斜率;基于该拟合直线段和斜率,来得到各裁剪框的参考点的最终坐标信息。具体的,如果斜率的绝对值小于斜率阈值,则认为该镜头片段中主体的位置是相对静止的,取该拟合直线段的中点的位置作为每个视频帧的裁剪框的参考点的最终位置;如果斜率的绝对值大于斜率阈值,则认为该镜头片段中主体的位置是动态变化的,取该拟合直线段上每一时间点的位置作为对应时间点的各个视频帧的裁剪框的参考点的最终位置。斜率阈值可以设定为0.1、0.05或0.01等,本领域技术人员可以根据广告视频的实际情况来设定斜率阈值,例如对于主题为汽车的广告视频,由于镜头是运动的概率较高,可以将斜率阈值设置得高一些,如设为0.1。
仅作为示例,线性回归处理一个由12个视频帧组成的镜头片段。在此示例中,将横屏视频转换成竖屏视频,所以裁剪框中心的纵坐标可以固定在中心位置0.5,仅需对横坐标做平滑处理。线性回归处理的具体过程如下:对应于12个时间点1,2,3,……,12的12个视频帧,各个视频帧的裁剪框的参考点的横坐标的初始相对位置依次为:0.91,0.87,0.83,0.74,0.68,0.61,0.55,0.51,0.43,0.39,0.37,0.34。如图2所示,基于上述时间点和横坐标,得到12个数据点,坐标分别是:(1,0.91)、(2,0.87)、(3,0.83)、(4,0.74)、(5,0.68)、(6,0.61)、(7,0.55)、(8,0.51)、(9,0.43)、(10,0.39)、(11,0.37)、(12,0.34)。
基于上述12个数据点做线性拟合,得到近似线性方程为x=-0.06t+0.91,斜率约为-0.06;该斜率绝对值大于0.01,认为镜头追踪运动;将t=1,2,……,12分别代入该近似线性方程,得到各视频帧内裁剪框的最终位置的横坐标:0.91,0.85,0.79,0.73,0.67,0.61,0.55,0.49,0.43,0.37,0.31,0.25。
在另一些实施例中,将每个镜头片段所包含的多个视频帧的裁剪框的参考点的初始坐标信息根据时间进行平滑处理,可以是对坐标值进行多项式回归处理。具体的,可以对各裁剪框的参考点的坐标值基于时间做多项式回归,得到一条拟合曲线。然后,可以取该拟合曲线上每一时间点的位置作为对应时间点的各个视频帧的裁剪框的参考点的最终位置。
图3为根据本说明书的一些实施例所示的确定各个视频帧的裁剪框的尺寸和位置的方法的流程图。确定各个视频帧的裁剪框的尺寸和位置的方法300可以包括以下步骤:
步骤310,根据主题信息和主体信息,确定主体信息中的一个或多个主体与主题信息之间的相关度。
主题信息的相关说明可参见步骤130中的内容。在一些实施例中,主体与主题信息的相关度可以用来表示二者的关联程度;关联程度越高,则相关度越高。仅作为示例,“方向盘套”与“汽车内饰”的相关度大于“汽车车门”与“汽车内饰”的相关度;“汽车车门”与“汽车内饰”的相关度大于“护手霜”与“汽车内饰”的相关度。
在一些实施例中,主体与主题信息的相关度可以基于二者的解释文本得到。解释文本可以是主体或主题信息的文字描述,例如,“汽车内饰”的解释文本是“汽车内饰主要是指汽车内部改装所用到的汽车产品,涉及到汽车内部的方方面面,比如汽车方向盘套、汽车坐垫,汽车脚垫、汽车香水、汽车挂件、内部摆件、收纳箱等等都是汽车内饰产品”。又例如,“方向盘套”的解释文本是“方向盘套指套在方向盘上的套子。方向盘套带有很强的装饰性”。主体与主题信息的解释文本可以是预先存储在系统中,也可以是基于主体的名称和主题信息实时从网络上获取。
在一些实施例中,可以基于word2vec等文本嵌入模型,获得解释文本的表示向量,可以基于所述表示向量的距离,得到主体与主题信息的相关度。表示向量的距离越小,所述相关度越高。例如,通过计算主体“方向盘套”和主题信息“汽车内饰”解释文本的向量距离,可以得到二者的相关度。
步骤320,根据预设画面尺寸和主体信息,确定与视频帧中对应的多个备选裁剪框。
在一些实施例中,在每个视频帧中,可以根据预设画面尺寸和主体信息设定至少一个备选裁剪框。在不包含任何主体的视频帧内,可以只设定一个备选裁剪框,该备选裁剪框默认居中。在包含至少一个主体的视频帧内,可以设定多个备选裁剪框,多个备选裁剪框的参考点的位置和/或尺寸不同,多个备选裁剪框的宽高比相同。
步骤330,根据主体信息和相关度,为多个备选裁剪框打分;
在一些实施例中,可以基于备选裁剪框内每个主体与广告视频的主题的相关度,先为每个主体打分,确定每个主体的得分,再计算备选裁剪框的得分。具体的,可以以主体与视频主题的相关度为权重,乘以对应主体的得分,再进行求和后得到各个备选裁剪框的得分。在一些实施例中,每个主体的得分可以是该主体所占面积与视频帧的总面积的比值。仅作为示例,某视频的主题是“洗护用品”,视频中某一帧的一个备选裁剪框中,包含完整的主体:洗发水1,洗发水2,人脸1。洗发水1,洗发水2,人脸1与“洗护用品”的关联度分别为0.86、0.86,0.45,洗发水1,洗发水2,人脸1的主体得分分别为0.35,0.1,0.1。则该备选裁剪框的得分为0.86╳0.35+0.86╳0.1+0.45╳0.1=0.432。
步骤340,基于备选裁剪框的打分结果,确定视频帧的裁剪框的尺寸和位置。
在一些实施例中,基于备选裁剪框的得分,确定视频帧的裁剪框的尺寸和位置的方法可以是镜头片段中得分最高的备选裁剪框的参考点的位置为准,将该备选裁剪框的参考点的位置作为镜头片段中所有视频帧的裁剪框的参考点最终位置,将该备选裁剪框的尺寸作为镜头片段中所有视频帧的裁剪框的尺寸。在另一些实施例中,确定视频帧的裁剪框的尺寸和位置的方法也可以是挑选出每个视频帧的得分排名前Y位的备选裁剪框,计算出该Y个备选裁剪框的参考点的平均位置,将该平均位置作为该视频帧的裁剪框的位置,并将得分最高的备选裁剪框的尺寸作为该视频帧的裁剪框的尺寸。Y的取值可以选择为3、4、5或8等,本领域技术人员可以根据每个视频帧中备选裁剪框的数目来确定Y的值。
在图3所示的实施例中,基于主体信息及广告视频的主题信息与主体的相关度,确定裁剪框的尺寸和位置,主体在裁剪后的画面中能够被保留,裁剪后的广告视频损失尽可能更少的主要信息(与广告视频的主题信息相关的信息)。
在一些实施例中,用于广告视频画面裁剪的方法还可以包括:步骤150,将裁剪后的各个镜头片段按照预定顺序拼接为新的广告视频。预定顺序可以是原始的广告视频的顺序,也可以是用户自行设置的新的拼接顺序。
图4是根据本申请一些实施例所示的用于广告视频画面裁剪的系统的模块图,如图4所示,用于广告创意效果预测的系统400可以包括获取模块410、分割模块420、识别模块430、裁剪模块440。
获取模块410可以用于获取待进行画面裁剪的广告视频。在一些实施例中获取模块可以通过读取(如通过程序接口或数据接口读取)或接收(如通过网络或蓝牙接收)等方式获取待进行画面裁剪的广告视频。获取模块410还用于;获取广告视频的主题信息。
分割模块420可以用于基于广告视频确定一个或多个镜头片段。在一些实施例中,分割模块420可以通过机器学习模型来实现基于广告视频确定一个或多个镜头片段。
识别模块430可以用于使用机器学习模型获取每个镜头片段中的主体信息;所述主体信息用于至少反映主体的位置。在一些实施例中,识别模块430还可以用于:使用机器学习模型获取每个镜头片段中的候选主体;根据主题信息,从候选主体中挑选出一个或多个主体。
裁剪模块440可以用于根据预设画面尺寸以及主体信息,对镜头片段的画面进行裁剪。
在一些实施例中,裁剪模块440还可以用于:根据主体信息和预设画面尺寸,确定镜头片段中若干视频帧的裁剪框的尺寸和初始位置;对若干视频帧的裁剪框的初始位置进行处理,确定若干视频帧的裁剪框对应的最终位置;根据裁剪框的最终位置,将镜头片段的各个视频帧的画面进行裁剪,以保留裁剪框内的画面。
在一些实施例中,裁剪模块440还可以用于:将镜头片段的若干视频帧的裁剪框的参考点的初始坐标信息根据时间进行平滑处理;根据平滑处理的结果,确定参考点的最终坐标信息;基于最终坐标信息确定参考点的位置。
在一些实施例中,裁剪模块440还可以用于:进行线性回归处理,以获取线性回归方程及其斜率;根据所述平滑处理的结果,确定所述参考点的最终坐标信息,包括:当斜率的绝对值小于斜率阈值时,将线性回归方程的趋势线的中点的位置作为每个视频帧的裁剪框的参考点的最终位置;当斜率的绝对值大于等于斜率阈值时,则将线性回归方程的趋势线上每个视频帧的时间点所对应的位置作为该视频帧的裁剪框的参考点的最终位置。
在一些实施例中,裁剪模块440还可以用于:根据主题信息和主体信息,确定主体信息中的一个或多个主体与主题信息之间的相关度;根据预设画面尺寸和主体信息,确定与视频帧对应的多个备选裁剪框;根据主体信息和相关度,为多个备选裁剪框打分;基于备选裁剪框的打分结果,确定视频帧的裁剪框的尺寸和位置。
应当理解,图4所示的系统及其模块可以利用各种方式来实现。例如,在一些实施例中,系统及其模块可以通过硬件、软件或者软件和硬件的结合来实现。其中,硬件部分可以利用专用逻辑来实现;软件部分则可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域技术人员可以理解上述的方法和系统可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本说明书一个或多个实施例的系统及其模块不仅可以有诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用例如由各种类型的处理器所执行的软件实现,还可以由上述硬件电路和软件的结合(例如,固件)来实现。
需要注意的是,以上对于广告视频画面裁剪的系统及其模块的描述,仅为描述方便,并不能把本说明书限制在所举实施例范围之内。可以理解,对于本领域的技术人员来说,在了解该系统的原理后,可能在不背离这一原理的情况下,对各个模块进行任意组合,或者构成子系统与其他模块连接。例如,获取模块410可以进一步包括第一获取单元和第二获取单元,第一获取单元用于获取广告视频,第二获取单元用户获取广告视频的主体信息。
本说明书实施例可能带来的有益效果包括但不限于:(1)通过识别镜头片段中的主体,并基于主体信息来自动裁剪镜头片段的画面,可以使得裁剪后的画面中尽可能保留主体,有效防止广告视频在裁剪后主要信息的缺失;(2)通过平滑处理来调节各个视频帧的裁剪框的位置,可以有效避免各个镜头片段在进行画面裁剪后画面出现抖动;(3)在识别出候选主体后,根据广告视频的主题信息来进一步挑选出主体,使得进行画面裁剪后的广告视频依然能够体现体主要信息,保证广告效果;(4)能够基于主体与主题信息的相关度,来从候选裁剪框中挑选出裁剪框,使得基于裁剪框进行画面裁剪后的广告视频依然能够体现体主要信息,进一步保证广告效果。需要说明的是,不同实施例可能产生的有益效果不同,在不同的实施例里,可能产生的有益效果可以是以上任意一种或几种的组合,也可以是其他任何可能获得的有益效果。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
上文已对基本概念做了描述,显然,对于本领域技术人员来说,上述详细披露仅仅作为示例,而并不构成对本说明书请的限定。虽然此处并没有明确说明,本领域技术人员可能会对本说明书进行各种修改、改进和修正。该类修改、改进和修正在本说明书中被建议,所以该类修改、改进、修正仍属于本说明书示范实施例的精神和范围。
同时,本说明书使用了特定词语来描述本说明书的实施例。如“一个实施例”、“一实施例”和/或“一些实施例”意指与本说明书至少一个实施例相关的某一特征、结构或特点。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”或“一个实施例”或“一个替代性实施例”并不一定是指同一实施例。此外,本说明书的一个或多个实施例中的某些特征、结构或特点可以进行适当的组合。
此外,本领域技术人员可以理解,本说明书的各方面可以通过若干具有可专利性的种类或情况进行说明和描述,包括任何新的和有用的工序、机器、产品或物质的组合,或对他们的任何新的和有用的改进。相应地,本说明书的各个方面可以完全由硬件执行、可以完全由软件(包括固件、常驻软件、微码等)执行、也可以由硬件和软件组合执行。以上硬件或软件均可被称为“数据块”、“模块”、“引擎”、“单元”、“组件”或“系统”。此外,本说明书的各方面可能表现为位于一个或多个计算机可读介质中的计算机产品,该产品包括计算机可读程序编码。
计算机存储介质可能包含一个内含有计算机程序编码的传播数据信号,例如在基带上或作为载波的一部分。该传播信号可能有多种表现形式,包括电磁形式、光形式等,或合适的组合形式。计算机存储介质可以是除计算机可读存储介质之外的任何计算机可读介质,该介质可以通过连接至一个指令执行系统、系统或设备以实现通讯、传播或传输供使用的程序。位于计算机存储介质上的程序编码可以通过任何合适的介质进行传播,包括无线电、电缆、光纤电缆、RF、或类似介质,或任何上述介质的组合。
本说明书各部分操作所需的计算机程序编码可以用任意一种或多种程序语言编写,包括面向对象编程语言如Java、Scala、Smalltalk、Eiffel、JADE、Emerald、C++、C#、VB.NET、Python等,常规程序化编程语言如C语言、VisualBasic、Fortran2003、Perl、COBOL2002、PHP、ABAP,动态编程语言如Python、Ruby和Groovy,或其他编程语言等。该程序编码可以完全在用户计算机上运行、或作为独立的软件包在用户计算机上运行、或部分在用户计算机上运行部分在远程计算机运行、或完全在远程计算机或服务器上运行。在后种情况下,远程计算机可以通过任何网络形式与用户计算机连接,比如局域网(LAN)或广域网(WAN),或连接至外部计算机(例如通过因特网),或在云计算环境中,或作为服务使用如软件即服务(SaaS)。
此外,除非权利要求中明确说明,本说明书处理元素和序列的顺序、数字字母的使用、或其他名称的使用,并非用于限定本说明书流程和方法的顺序。尽管上述披露中通过各种示例讨论了一些目前认为有用的发明实施例,但应当理解的是,该类细节仅起到说明的目的,附加的权利要求并不仅限于披露的实施例,相反,权利要求旨在覆盖所有符合本说明书实施例实质和范围的修正和等价组合。例如,虽然以上所描述的系统组件可以通过硬件设备实现,但是也可以只通过软件的解决方案得以实现,如在现有的服务器或移动设备上安装所描述的系统。
同理,应当注意的是,为了简化本说明书披露的表述,从而帮助对一个或多个发明实施例的理解,前文对本说明书实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。但是,这种披露方法并不意味着本说明书对象所需要的特征比权利要求中提及的特征多。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。
最后,应当理解的是,本说明书中实施例仅用以说明本说明书实施例的原则。其他的变形也可能属于本说明书范围。因此,作为示例而非限制,本说明书实施例的替代配置可视为与本说明书的教导一致。相应地,本说明书的实施例不仅限于本说明书明确介绍和描述的实施例。