基于负空间识别向图像添加内容的方法和系统与流程

文档序号:24053435发布日期:2021-02-24 00:05阅读:59来源:国知局
基于负空间识别向图像添加内容的方法和系统与流程

[0001]
本发明总体上涉及计算系统,并且更具体地,涉及用于基于负空间识别向图像添加内容的各种实施例。


背景技术:

[0002]
各种类型的图像通常以显示图像本身中所显示内容以外的内容的方式呈现。例如,视频(例如电视广播、电影等)有时显示有“字幕”或“隐藏字幕”,其中包括与视频相关的声音的基于文本的版本(例如对话、音效描述、歌曲名称等)和/或其他内容(例如广告、标识等)。在某些情况下,这个内容会模糊观众希望观看的部分图像(例如观看体育赛事时与职业运动员或团队有关的统计信息)。
[0003]
该问题的当前解决方案包括,例如,禁用内容的显示和/或定制显示内容的方式。但是,用于定制内容显示的当前方法没有提供适应特定场景(例如,图像中主题的类型、大小、位置等)的灵活、动态的解决方案,并且通常导致显示内容以相对固定的方式。结果,图像的“重要”或“期望”部分仍然经常被模糊。


技术实现要素:

[0004]
提供了用于通过处理器向图像添加内容的各种实施例。接收多个图像。所述多个图像中的每个包括多个图像部分。为所述多个图像部分中的每个计算负空间得分。基于所述计算的负空间得分,选择所述多个图像部分中的至少一些图像部分以显示内容。使所述多个图像被渲染为在所述多个图像部分中的所述选择的至少一些图像部分上具有显示的内容。
[0005]
除了前述示例性实施例之外,还提供了各种其他系统和计算机程序产品实施例,并提供了相关的优点。提供了前述发明内容以简化形式介绍一些概念,这些概念将在下面的详细描述中进一步描述。本概述既不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。要求保护的主题不限于解决背景技术中指出的任何或所有缺点的实施方式。
附图说明
[0006]
为了容易理解本发明的优点,将通过参考附图中示出的特定实施例来对以上简要描述的本发明进行更具体的描述。理解这些附图仅示出了本发明的典型实施例,因此不应认为是对本发明范围的限制,将通过使用附图以附加的特征和细节来描述和解释本发明,其中:
[0007]
图1示出根据本发明的实施例的示例性计算节点的框图;
[0008]
图2示出根据本发明的实施例的示例性云计算环境的附加框图;
[0009]
图3示出根据本发明的实施例的抽象模型层的附加框图;
[0010]
图4示出根据本发明的实施例的用于向图像添加内容的方法和/或系统的框图;
[0011]
图5是根据本发明实施例的示例性接收图像的平面图;
[0012]
图6是将图5的图像分为多个部分的平面图;
[0013]
图7是在选择部分上方显示内容的图6的图像的平面图;
[0014]
图8是根据本发明实施例的在选择部分上方显示内容的示例性第二接收图像的平面图;
[0015]
图9是根据本发明实施例的在中间位置显示内容的图8的图像的平面图;
[0016]
图10是根据本发明实施例的示例性控制面板的平面图;以及
[0017]
图11是根据本发明实施例的用于向图像添加内容的示例性方法的流程图。
具体实施方式
[0018]
如上所述,经常以显示图像本身中所显示内容以外的内容的方式来渲染各种类型的图像。例如,有时会向视频(例如电视广播、电影等)显示“字幕”或“隐藏式字幕”,其中包括与视频相关的声音的基于文本的版本(例如对话、音效描述、歌名等)和/或其他内容(例如广告、标识等)。在某些情况下,此内容的显示方式会遮挡观众希望观看的部分图像。
[0019]
例如,考虑观众正在观看(或收看、消费等)实况事件的电视广播的场景,所述实况事件例如是颁奖晚会或体育赛事。如果正在为广播提供隐藏式字幕(例如,作为用户启用的可选功能),通过向图像(或视频帧)添加隐藏式字幕,可以(至少部分地)模糊(或“遮挡”)作为广播的一部分显示的各种类型的信息,例如被提名人赢得的其他奖项或与特定运动员或团队有关的统计信息。
[0020]
类似地,当观看者正在观看电影时,即使在图像边缘附近显示了这种“额外”内容(例如,字幕或广告),也可能模糊图像中被认为是“重要”的图像部分。例如,内容创建者可以有意地显示重要细节,以使其不在帧中居中。
[0021]
该问题的当前解决方案包括例如禁用内容和/或定制显示内容的方式。但是,用于定制内容显示的当前方法没有提供适应特定场景(例如,图像中主题的类型、大小、位置等)的灵活,动态的解决方案,并且通常导致内容以相对固定的方式显示。结果,图像的重要或期望部分仍然经常被模糊。
[0022]
为了解决现有技术中的这些需求和/或缺点,在本文描述的一些实施例中,公开了例如分析要渲染的图像(例如,镜头、视频等)的方法和/或系统,以及在渲染图像时,以优化用户观看体验的方式(例如,最小化图像的重要/期望部分被模糊的程度)显示内容(例如标题、广告等)。在一些实施例中,以动态方式自动执行该过程,使得不考虑正在被渲染的图像,观看均被优化。
[0023]
在一些实施例中,通过相对于“负空间”分析接收到的(和/或“待渲染”)图像来执行该过程。如本领域技术人员将理解的,负空间可以被认为是围绕图像的主题(例如背景或其他部分)的相对“空”的空间(或图像的部分),主要主题不占据该空间(即图像的“不重要”部分)。例如,如果图像显示个体(例如,不管他们在图像中的位置如何),在其后方/周围有蓝天或图案墙纸,则可以考虑图像中显示天空或墙纸的部分是负空间。相反,即使对象不一定位于图像的中心(即,图像的“重要”部分),被对象(例如,个体)占据的图像部分可以被视为“正空间”。
[0024]
例如,在一些实施例中,在被渲染之前(例如,在例如电视、计算设备显示屏等显示
器上显示),一系列图像(或至少一个图像)例如包括多个视频帧的视频(或视频剪辑)被接收(或检索、检测等)。系统将每个图像划分成较小的部分,然后对其进行处理(例如,通过视觉识别或计算机视觉软件和/或认知分析),以确定哪些部分是(或包括)负空间,哪些部分是正空间(例如,系统将每个部分分类为负空间或正空间)。例如,系统可以为每个部分计算负空间分数(或负空间置信度分数)。
[0025]
系统然后(例如,基于所计算的分数)选择图像的一个或多个部分以显示“附加”内容(例如,标题、广告等)。然后,在适合的显示设备上渲染(或使得被渲染)图像,并且内容在图像的所选部分中(或上、上方等)被显示。结果可能是,内容以这样的方式显示在图像上/上方:其位置(和/或大小、形状等)不是静态的,而是随着图像被用户(或观看者)使用(进行观看)而灵活和动态的,并且最大化或优化用户的观看体验。
[0026]
在一些实施例中,实现了附加特征以进一步增强用户的观看体验。例如,由于渲染的图像不同,上述基本方法可能导致渲染期间内容(例如标题)在图像(或显示屏)周围“跳跃”或“滑过(darting)”。即,当与视频一起使用时,在某些情况下(例如,当一个视频帧与下一个视频帧之间存在显著变化时),内容可能看起来非常快地在屏幕上移动了相对较大的距离。这样的效果可能使用户难以或沮丧“追随”内容。为了解决这个问题,在一些实施例中,系统对内容在连续图像(例如,视频帧)之间看起来可以移动多远施加“限制”。
[0027]
另外,在一些实施例中,基于例如内容在其上显示的图像(或图像的一部分)的色调、亮度等来调整或修正渲染内容的方式以进一步增强观看体验。作为一个示例,该特征可以防止黑色字幕显示在图像的深色部分上(例如,可以将字幕的颜色和/或亮度调整为相对于图像的深色部分可见)。而且,可以实现类似的功能,该功能允许将内容(例如,广告、标识、水印等)与图像的选择部分“融合”。例如,如果内容包括标识,则可以将标识的一部分的颜色调整为与图像的选择部分“融合”(例如,使得标识仍然可见但不会过度分散注意力)。可以通过使用计算视觉技术和/或认知分析来分析图像的部分(和/或内容)来实现这样的特征。
[0028]
这样,在一些实施例中,本文描述的方法和/或系统可以利用“认知分析”、“认知系统”、“机器学习”、“认知建模”、“预测分析”和/或“数据分析”,这是本领域技术人员通常理解的。通常,这些过程可以包括,例如,接收和/或检索一个或多个系统的多组输入以及相关联的输出,并(例如,使用计算系统和/或处理器)处理数据以生成或提取对应于控制和/或估计系统的操作的模型、规则,或相对于本文描述的实施例等向图像添加内容。利用模型,可以预测系统(例如,利用/基于新的输入)的性能(或操作)和/或可以通过研究输入的变化如何影响输出来优化系统的性能。还可以利用从用户和/或管理员接收(或由用户和/或管理员提供的)反馈,这可以允许系统性能在持续使用下进一步提高。
[0029]
本文描述的过程可以利用与用户(例如,提供搜索查询的用户)和/或内容(例如,文档、图像)相关联的各种信息或数据源。关于用户,数据源可以包括例如与用户相关联的任何可用数据源。例如,在一些实施例中,可以生成用户的简档(例如,认知简档)。可以用来为用户生成认知概况的数据源可以包括系统可访问的(也许在用户的许可或授权下)与用户相关的任何适当的数据源。这样的数据源的示例包括但不限于通信会话和/或其内容(或通信)(例如,电话、视频呼叫、文本消息、电子邮件、私下/面对面的对话等),用户资料(或有关用户的基本信息)(例如病史、职位、工作地点、当前位置的时间长度、家庭角色等),时间
表或日历(即,在其上列出的项目、时间表等),项目(例如,过去、当前或将来与工作有关的项目),位置(例如,先前和/或当前位置和/或与其他用户相关的位置),社交媒体活动(例如,帖子、反应、评论、群组等),浏览历史记录(例如,访问的网页)和在线购买。作为特定示例,可以利用用户的病史(例如,关于视力/视觉)来调整/修正显示内容的颜色/亮度和/或大小。
[0030]
应该理解的是,如本文所使用的,术语“计算节点”(或简称为“节点”)可以指代诸如移动电子设备或台式计算机之类的计算设备和/或应用程序(例如聊天机器人、电子邮件应用程序、社交媒体应用程序、web浏览器等)。换句话说,如本文所使用的,计算节点的示例包括例如计算设备例如移动电话、平板设备、台式计算机或其他设备,例如拥有和/或与个人(或用户)相关联的设备(iot设备),和/或个人在此类计算设备上使用的各种应用程序。
[0031]
特别地,在一些实施例中,提供了一种用于通过处理器将内容添加到图像的方法。接收多个图像。所述多个图像中的每个包括多个图像部分。为所述多个图像部分中的每个计算负空间得分。基于所述计算的负空间得分,选择所述多个图像部分中的至少一些图像部分以显示内容。使所述多个图像被渲染为在所述多个图像部分中的所述选择的至少一些图像部分上具有显示的内容。
[0032]
多个图像可以包括多个视频帧。使得要渲染多个图像的步骤可以包括:使多个图像中的第一个图像被渲染为在多个图像部分中的第一个图像部分上具有显示的内容,并且在渲染多个图像中的第一个图像之后,使得多个图像中的第二个图像被渲染为在多个图像部分中的第二个图像部分上具有显示的内容。可以限制在多个图像中的第一图像上的内容的位置与图像中的第二图像上的内容的位置之间的距离。
[0033]
内容可以包括与多个图像相关联的字幕和与多个图像相关联的广告中的至少一个。可以利用认知分析来执行针对多个图像部分中的每个图像部分的负空间得分的计算。
[0034]
可以分析多个图像部分(和/或内容)中的至少一些所选择的色调。可以基于对所选择的多个图像部分中的至少一些图像部分的色调的分析来调整内容的亮度和颜色中的至少之一。
[0035]
预先理解的是,尽管本公开内容包括关于云计算的详细描述,但是本文叙述的教导的实现方式不限于云计算环境。而是,本发明的实施例能够与现在已知或以后开发的诸如蜂窝网络的任何其他类型的计算环境结合实现。
[0036]
云计算是一种服务交付模式,用于对共享的可配置计算资源池进行方便、按需的网络访问。可配置计算资源是能够以最小的管理成本或与服务提供者进行最少的交互就能快速部署和释放的资源,例如可以是网络、网络带宽、服务器、处理、内存、存储、应用、虚拟机和服务。这种云模式可以包括至少五个特征、至少三个服务模型和至少四个部署模型。
[0037]
特征包括:
[0038]
按需自助式服务:云的消费者在无需与服务提供者进行人为交互的情况下能够单方面自动地按需部署诸如服务器时间和网络存储等的计算能力。
[0039]
广泛的网络接入:计算能力可以通过标准机制在网络上获取,这种标准机制促进了通过不同种类的瘦客户机平台或厚客户机平台(例如移动电话、膝上型电脑、个人数字助理pda)对云的使用。
[0040]
资源池:提供者的计算资源被归入资源池并通过多租户(multi-tenant)模式服务
于多重消费者,其中按需将不同的实体资源和虚拟资源动态地分配和再分配。一般情况下,消费者不能控制或甚至并不知晓所提供的资源的确切位置,但可以在较高抽象程度上指定位置(例如国家、州或数据中心),因此具有位置无关性。
[0041]
迅速弹性:能够迅速、有弹性地(有时是自动地)部署计算能力,以实现快速扩展,并且能迅速释放来快速缩小。在消费者看来,用于部署的可用计算能力往往显得是无限的,并能在任意时候都能获取任意数量的计算能力。
[0042]
可测量的服务:云系统通过利用适于服务类型(例如存储、处理、带宽和活跃用户帐号)的某种抽象程度的计量能力,自动地控制和优化资源效用。可以监测、控制和报告资源使用情况,为服务提供者和消费者双方提供透明度。
[0043]
服务模型如下:
[0044]
软件即服务(saas):向消费者提供的能力是使用提供者在云基础架构上运行的应用。可以通过诸如网络浏览器的瘦客户机接口(例如基于网络的电子邮件)从各种客户机设备访问应用。除了有限的特定于用户的应用配置设置外,消费者既不管理也不控制包括网络、服务器、操作系统、存储、乃至单个应用能力等的底层云基础架构。
[0045]
平台即服务(paas):向消费者提供的能力是在云基础架构上部署消费者创建或获得的应用,这些应用利用提供者支持的程序设计语言和工具创建。消费者既不管理也不控制包括网络、服务器、操作系统或存储的底层云基础架构,但对其部署的应用具有控制权,对应用托管环境配置可能也具有控制权。
[0046]
基础架构即服务(iaas):向消费者提供的能力是消费者能够在其中部署并运行包括操作系统和应用的任意软件的处理、存储、网络和其他基础计算资源。消费者既不管理也不控制底层的云基础架构,但是对操作系统、存储和其部署的应用具有控制权,对选择的网络组件(例如主机防火墙)可能具有有限的控制权。
[0047]
部署模型如下:
[0048]
私有云:云基础架构单独为某个组织运行。云基础架构可以由该组织或第三方管理并且可以存在于该组织内部或外部。
[0049]
共同体云:云基础架构被若干组织共享并支持有共同利害关系(例如任务使命、安全要求、政策和合规考虑)的特定共同体。共同体云可以由共同体内的多个组织或第三方管理并且可以存在于该共同体内部或外部。
[0050]
公共云:云基础架构向公众或大型产业群提供并由出售云服务的组织。
[0051]
混合云:云基础架构由两个或更多部署模型的云(私有云、共同体云或公共云)组成,这些云依然是独特的实体,但是通过使数据和应用能够移植的标准化技术或私有技术(例如用于云之间的负载平衡的云突发流量分担技术)绑定在一起。
[0052]
云计算环境是面向服务的,特点集中在无状态性、低耦合性、模块性和语意的互操作性。云计算的核心是包含互连节点网络的基础架构。
[0053]
现在参考图1,其中显示了云计算节点的一个例子。图1显示的云计算节点10仅仅是适合的云计算节点的一个示例,不应对本发明实施例的功能和使用范围带来任何限制。总之,云计算节点10能够被用来实现和/或执行以上所述的任何功能。
[0054]
云计算节点10具有计算机系统/服务器12,其可与众多其它通用或专用计算系统环境或配置一起操作。众所周知,适于与计算机系统/服务器12一起操作的计算系统、环境
和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统﹑大型计算机系统和包括上述任意系统的分布式云计算技术环境,等等。
[0055]
计算机系统/服务器12可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括执行特定的任务或者实现特定的抽象数据类型的例程、程序、目标程序、组件、逻辑、数据结构等。计算机系统/服务器12可以在通过通信网络链接的远程处理设备执行任务的分布式云计算环境中实施。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
[0056]
如图1所示,云计算节点10中的计算机系统/服务器12以通用计算设备的形式表现。计算机系统/服务器12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
[0057]
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(isa)总线,微通道体系结构(mac)总线,增强型isa总线、视频电子标准协会(vesa)局域总线以及外围组件互连(pci)总线。
[0058]
计算机系统/服务器12典型地包括多种计算机系统可读介质。这些介质可以是能够被计算机系统/服务器12访问的任意可获得的介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
[0059]
系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(ram)30和/或高速缓存存储器32。计算机系统/服务器12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图1未显示,通常称为“硬盘驱动器”)。尽管图1中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如cd-rom,dvd-rom或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
[0060]
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在存储器28中,这样的程序模块42包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
[0061]
计算机系统/服务器12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器12交互的设备通信,和/或与使得该计算机系统/服务器12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口22进行。并且,计算机系统/服务器12还可以通过网络适配器20与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机系统/服务器12的其它模块通信。应当明白,尽管图中未示出,其它硬件和/或软件模块可以与计算机系统/服务器12一起操作,包括但不限于:微代码、设备驱动器、冗余处
理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。
[0062]
在本发明的上下文中,并且如本领域技术人员将理解的,图1中描述的各种组件可以位于例如个人计算机系统、服务器计算机系统、瘦客户机、胖客户机、手持式或笔记本电脑设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络pc、移动电子设备(例如移动和/或智能)电话、个人数据助理(pda)、平板电脑、可穿戴技术设备、笔记本电脑、手持游戏机、便携式媒体播放器等,以及车辆(例如汽车、飞机、船只等)中的计算系统。但是,在某些实施例中,图1中描述的部分组件可以位于例如卫星(诸如全球定位系统(gps)卫星)中的计算设备中。例如,与示出的实施例的机制相关联的一些处理和数据存储能力可以经由本地处理组件在本地发生,而相同的组件经由网络连接到位于远程的分布式计算数据处理和存储组件以完成本发明的各种目的。再次,如本领域的普通技术人员将理解的,本说明旨在仅传达可能是共同完成各种发明方面的分布式计算组件的整个连接网络的子集。
[0063]
现在参考图2,其中显示了示例性的云计算环境50。如图所示,云计算环境50包括云计算消费者使用的本地计算设备可以与其相通信的一个或者多个云计算节点10,本地计算设备例如可以是个人数字助理(pda)或移动电话54a,台式电脑54b、笔记本电脑54c和/或汽车计算机系统(例如,集成在汽车,飞机,船只等内)54n。
[0064]
仍然参考图2,云计算节点10之间可以相互通信。可以在包括但不限于如上所述的私有云、共同体云、公共云或混合云或者它们的组合的一个或者多个网络中将云计算节点10进行物理或虚拟分组(图中未显示)。这样,云的消费者无需在本地计算设备上维护资源就能请求云计算环境50提供的基础架构即服务(iaas)、平台即服务(paas)和/或软件即服务(saas)。应当理解,图2显示的各类计算设备54a-n仅仅是示意性的,云计算节点10以及云计算环境50可以与任意类型网络上和/或网络可寻址连接的任意类型的计算设备(例如使用网络浏览器)通信。
[0065]
现在参考图3,其中显示了云计算环境50(图2)提供的一组功能抽象层。首先应当理解,图3所示的组件、层以及功能都仅仅是示意性的,本发明的实施例不限于此。如图3所示,提供下列层和对应功能:
[0066]
设备层55包括物理和/或虚拟设备,它们嵌入和/或独立的电子设备,传感器,致动器和其他对象以在云计算环境50中执行各种任务。设备层55中的每个设备都包含有到其他功能抽象层的联网能力,从而可以向其提供从设备获得的信息,和/或可以向设备提供来自其他抽象层的信息。在一个实施例中,包括设备层55在内的各种设备可以包括被统称为“物联网”(iot)的实体网络。如本领域的普通技术人员将理解的,这样的实体网络允许数据的相互通信、收集和分发以实现各种各样的目的。
[0067]
所示的设备层55包括传感器52、致动器5、具有集成处理、传感器和联网电子装置的“学习”恒温器56、照相机57、可控家用插座/插孔58和可控电气开关59,如图所示。其他可能的设备可能包括但不限于各种其他传感器设备、网络设备、电子设备(例如远程控制设备)、其他执行器设备,即所谓的“智能”设备,例如冰箱、洗衣机/干衣机、或空调单元以及各种其他可能的互连设备/对象。
[0068]
硬件和软件层60包括硬件和软件组件。硬件组件的例子包括:主机61;基于risc(精简指令集计算机)体系结构的服务器62;服务器63;刀片服务器64;存储设备65;以及网
络和网络组件66。软件组件的例子包括:网络应用服务器软件67和数据库软件68。
[0069]
虚拟层70提供一个抽象层,该层可以提供下列虚拟实体的例子:虚拟服务器71、虚拟存储72、虚拟网络(包括虚拟私有网络)73、虚拟应用和操作系统74,以及虚拟客户端75。
[0070]
在一个示例中,管理层80可以提供下述功能:资源供应功能81:提供用于在云计算环境中执行任务的计算资源和其它资源的动态获取;计量和定价功能82:在云计算环境内对资源的使用进行成本跟踪,并为此提供帐单和发票。在一个例子中,该资源可以包括应用软件许可。安全功能:为云的消费者和任务提供身份认证,为数据和其它资源提供保护。用户门户功能83:为消费者和系统管理员提供对云计算环境的访问。服务水平管理功能84:提供云计算资源的分配和管理,以满足必需的服务水平。服务水平协议(sla)计划和履行功能85:为根据sla预测的对云计算资源未来需求提供预先安排和供应。
[0071]
工作负载层90提供了云计算环境可能实现的功能的示例。在该层中,可提供的工作负载或功能的示例包括:地图绘制与导航91;软件开发及生命周期管理92;虚拟教室的教学提供93;数据分析处理94;交易处理95;
[0072]
可以从该层提供的工作负载和功能的示例包括:映射和导航91;软件开发和生命周期管理92;虚拟课堂教学交付93;数据分析处理94;交易处理95;并且,在本发明的所示实施例的上下文中,如本文所述,用于向图像添加内容的各种工作负载和功能96。本领域的普通技术人员将理解,工作负载和功能96还可以与各种抽象层的其他部分(例如,硬件和软件60,虚拟层70,管理层80和其他工作负载90(例如,数据分析处理94)结合工作,以完成本发明所示实施例的各种目的。
[0073]
如前所述,在一些实施例中,提供了用于向图像添加内容的方法和/或系统。在一些实施例中,系统分析要被渲染的图像(或至少一个图像)(例如,镜头、视频等),并且当图像被渲染时,以优化用户观看体验的方式(例如,最小化图像的重要/期望部分模糊的程度)在图像上显示内容(例如,字幕,广告等)。在一些实施例中,该过程以动态方式自动执行,以使得观看最优化,而与所渲染的图像无关。在一些实施例中,通过确定图像的哪些部分是/包括负空间(至少相对于图像的其他部分)来执行该过程,然后在渲染图像时利用负空间显示内容。
[0074]
图4示出了根据本文所述的一些实施例的用于向图像添加内容的示例性方法(和/或系统)400的框图。应当理解,图4中示出的步骤仅旨在作为这种方法的示例,因为在其他实施例中,可以利用不同的步骤和/或步骤的不同顺序。
[0075]
在方框402处,执行方法400的计算系统(和/或软件应用程序)接收并存储一个或多个图像,诸如包括多个视频帧或一个或多个静态图像的视频或视频剪辑。例如,用户可以将图像上传到系统和/或系统可以(例如,经由互联网、电视广播等)从另一系统接收图像,然后将图像存储在任何合适的存储设备上(例如,计算设备或“智能”电视中的存储器)。
[0076]
在方框404处,从图像中提取图像部分(或一个或多个图像部分)。例如,系统可以将每个图像划分成多个部分(或图像部分)。可以使用图块定位(tile localization)来执行该过程,在图块定位中,将图像“切成”较小的图像(或图块)。图像部分的数量(和/或大小)可以是可调节/可配置的。例如,用户可以(例如,经由用户界面、偏好功能等)针对每个图像被划分成的部分/图块的行和/或列的数量设置值。在一些实施例中,如果在这方面没有提供用户输入,则可以利用默认值,该默认值可以基于图像的大小被自动设置/调整。在
方框406,将图像部分与从中提取图像(例如,哪个图像,该部分/图块在图像中的位置等)的图像相关联的数据一起存储。
[0077]
在方框408,为每个图像部分计算负空间分数(或负空间置信度分数)。可以将计算出的分数确定为数值(例如,整数、小数、正/负等)或“等级”(例如,“高”、“低”等)。该过程可以包括利用计算机视觉技术和/或认知分析来分析图像部分。在一些实施例中,利用了机器学习模型,该机器学习模型已被训练以识别负空间和/或区分(或分类)负空间和正空间。
[0078]
在方框410处,将图像部分的计算出的分数映射到它们各自的图像(和/或各个图像内的位置(location)/定位(position)),并且(例如,基于计算出的分数)至少选择一些图像部分。在一些实施例中,选择具有最高负空间得分的图像部分。换句话说,选择系统确定具有包括/成为负空间的最高可能性的图像的部分。
[0079]
在一些实施例中,在渲染图像(例如,在计算设备、电视等上播放视频)时,利用选择部分来显示内容(例如,字幕、广告等)。然而,在一些实施例中,内容的位置和/或感知运动被限制(例如,当连续渲染多个图像时,如在播放视频时)。例如,仍然参考图4,在方框412,可以基于用户是否已经启用了这种功能(例如,经由偏好功能、系统设置、控制面板等)确定这种限制是否要被实现。
[0080]
如果未启用此类功能,则在方框414,将内容放置(或定位)在图像的选择部分之上(或上方),并在方框416渲染图像。不考虑特定图像是否是一系列图像(例如,视频)中的第一个图像以及先前图像(例如,先前视频帧)是否在其某些部分上添加了相似内容,将内容放置在具有最高负空间得分的图片部分上。如上所述,尽管这可能导致内容显示在不“重要”的图像部分上,但是当连续渲染多个图像时(例如,当正在播放视频时),内容可能看起来“跳跃”。
[0081]
然而,如果启用了这样的功能,则在方框418处,考虑在先前图像上显示的内容的位置(在这样的情况下/如果合适的话),其被用于通过限制它从一个图像到另一个图像的感知移动来调整(tune)/调整(adjust)内容的位置,然后在方框416处,图像被渲染具有适当放置的内容。
[0082]
例如,如果两个连续的视频帧被渲染为具有字幕,并且在第一帧中,字幕显示在帧(和/或显示屏)的右下角,并且系统确定第二张图片的左上角具有负空间的最高可能性,不是在第二帧的左上角显示字幕,系统可以选择第二帧的中间位置/区域(例如,右下角和左上角之间)来显示字幕,以限制/防止字幕在两个视频帧之间的显示屏幕上“滑过”。当系统处理/分析多个连续的图像时(例如在视频/视频帧的情况下),可以从一个图像/帧到下一个图像/帧重复此过程,以便在适当时字幕(或其他内容)会看起来在图像/屏幕上“迁移”或“平滑”过渡(假设图像负空间没有发生会影响内容放置的变化)。
[0083]
防止内容(例如字幕)从一帧移动到下一帧的程度可以基于例如内容所占据的区域的大小(例如长度、宽度等)。例如,在一些实施例中,防止内容的位置从一个视频帧到下一视频帧改变超过其占据的区域的大小的长度和/或宽度的特定百分比。该最大允许移动可以由用户设置(例如,设置在0和100之间或0%和100%之间)。
[0084]
在一些实施例中,基于例如其上显示内容(和/或内容的颜色、亮度等)的图片图像(或图像的部分)的色调、亮度等来调整或调整渲染内容的方式(例如,亮度、颜色等)以进一步增强观看体验。作为一个示例,这一特征可以防止白色字幕显示在图像的浅色部分上(例
如,可以将字幕的颜色和/或亮度调整为相对于图像的浅色部分可见)。而且,可以实现允许将内容(例如,广告、标识、水印等)与图像的选择部分“融合”的功能。例如,如果内容包括标识,则可以调整标识的一部分的颜色以使其与图像的所选择部分融合(例如,使得标识仍然可见但不会过度分散注意力)。可以通过使用计算视觉技术和/或认知分析来分析图像的部分(和/或内容)来实现这样的特征。
[0085]
图5示出了由本文描述的系统接收的示例性图像500。图像500可以是例如在渲染或播放视频之前将字幕(或其他内容)添加到的视频(例如,电影、电视节目、商业广告等)的单个帧。在所描述的实施例中,图像500示出了一个人站在历史建筑前时通过电话交谈,其中有草坪或草丛区域,包括该人附近地面上的一块斑块。
[0086]
如上所述,在一些实施例中,图像500被分成多个部分或图像部分,如图6所示。在所示的示例中,图像500被分为二十个图像部分502,它们相等大小并以网格状图案排列。应当理解,在其他实施例中,可以将所分析的图像划分为不同数量的部分,部分的大小,不同形状的部分等(例如,基于用户偏好)。
[0087]
仍然参考图6,在一些实施例中,为部分502中的每个计算负空间得分。在所描述的实施例中,应该假设部分504、506和508(即,与图像500中的草坪/草的部分相对应的部分502的特定部分)已经确定具有最高的负空间分数和/或最可能包含/为负空间(尽管在所示的特定图像中,还可以确定与建筑物上方的天空相对应的图像500的部分具有较高的负空间得分和/或适于显示内容。
[0088]
这样,当渲染图像500时,内容510显示在部分504、506和508中(或上面),如图7所示。在所示的特定示例中,内容510包括标题或标题框(例如,包括问题的对话,“您什么时间关闭?”)。但是,如上所述,可以利用其他类型的内容,例如广告、标识等或其结合(例如,与广告结合的字幕)。
[0089]
另外,在一些实施例中,可以利用计算机视觉技术(例如,对象检测)和/或认知分析(和/或与图像相关联的信息,例如标签、元数据等)来识别、辨认和/或对出现在图像中的一个或多个实体(例如,个人、位置、对象等)进行分类。在这样的情况下,可以基于识别的实体来选择所显示的内容中的至少一些(即,该内容可以与所识别的实体相关联)。例如,在图7所示的示例中,内容可以包括与所示出的建筑物/位置和/或出现在前景中的个人相关联的广告。
[0090]
在这样的情况下,系统可以相对于该实体在图像中或对图像的“重要性”(实体重要性得分))来计算或确定识别的一个(或多个)公认实体的分数(或等级)。实体重要性得分的计算可以基于,例如,图像内的实体的突出度,图像内的这种实体的数量,图像内的实体的位置(例如,是否实体在图像中相对居中)和/或与图像相关联的信息(例如标签、元数据等)。例如,如果确定图像包含占据图像80%(或超过预定阈值的一些其他数字/百分比)的一种或多种特定类型的动物(例如狗),则内容可以包括与识别出的动物(或其他类型实体)相关的广告(或一些其他类型内容)。以这种方式,实体重要性分数可以用于确定所显示的内容中的至少一些。另外,对这种实体的识别(和/或计算出的实体重要性分数)也可用于调整内容的放置(或位置)(例如,确保内容不会遮挡/模糊图像中的实体)。
[0091]
仍参考图7,应当注意,内容510显示在图像500被认为与图像的整体主题无关紧要的部分上(即草坪/草),相对于例如居中定位在图像500的底部边缘附近,其很可能导致内
容510模糊图像500中显示的个体和/或斑块。
[0092]
现在参考图8,示出了第二图像800。第二图像800可以被认为包括在图像500(图5-图7)中所示的帧之后的视频帧。特别地,第二图像800可以包括紧接在图像500中所示的视频帧之后出现的视频帧(例如,视频可以从图像500直接剪切到图像800)。尽管未详细示出,但是可以以与上述类似的方式来分析/处理第二图像800,导致如图8所示显示内容802(例如,在图像800与建筑物上方的天空相对应的部分上)。在所示的示例中,内容802包括字幕(例如,“工作日的下午7点”,该对话包括对图7中的内容510中提出的问题的响应)。尽管内容802被显示在图像800可被认为包括负空间的部分中,但是应当注意,内容802的位置与图7中的内容510的位置明显不同。在所描述的实施例中,内容(例如,字幕)已经在两个视频帧之间的图像/显示屏上“跳跃”了相当大的距离。
[0093]
相反,在图9所示的示例中,内容804的位置/移动已经以与上述类似的方式受到限制。具体地,系统没有在图像800对应于建筑物上方天空的部分中显示内容802,而是在图7中显示内容与图8中显示内容之间的中间位置显示了内容802(从比较图7、8和9可以明显看出)。即,内容802的感知移动受到限制。在一些实施例中,如果合适的话(例如,在其中帧中的负空间没有改变足够长的时间的视频中),随着视频的继续播放,内容802在方向804上朝图8示出的位置“移动”(即,在多个视频帧的过程中),从而其最终被显示在图像800具有例如最高负空间得分的部分上,如上所述。
[0094]
现在参考图10,示出了示例性控制面板(或用户界面)1000。用户可以使用控制面板1000来调整/控制本文描述的功能的一些方面。例如,控制面板1000可以在用户偏好或系统配置功能中(或在期间、部分等)呈现在(例如,计算设备或电视的)显示设备上。在所示的例子中,提供的控制是关于在播放视频(例如电影、电视节目等)时字幕的显示(或隐藏字幕)。但是,应当理解,控制面板1000(和/或另一个类似的控制面板)也可以用于控制其他类型的内容(例如广告、标识、水印等)的显示,如上所述。在所示的示例中,控制面板1000包括动态文本对比度控件1002、平滑过渡控件1004、划分调整控件1006以及平滑过渡-字幕距离计算控件1008。
[0095]
可以利用动态文本对比度控件1002(例如,经由“按钮”或二进制“滑块”)来启用/禁用字幕的动态变暗/增亮(和/或颜色改变),以确保在图像利用的负空间部分的不同色调(或亮度水平)的情况下观看者可以看到字幕,如上所述。可以利用平滑过渡控件1004(例如,通过按钮二进制滑块)来启用/禁用字幕相对于它们在先前渲染的图像上的位置的位置/移动的限制(例如,防止/限制字幕的跳跃/滑过),如上所述。
[0096]
划分调整控件1006可以被利用(例如,通过用于行和列的文本/数字框)来设置/调整系统将用于负空间计算的每个图像划分成的图像部分的数量(和/或大小),如上所述。例如,随着行/列的数量增加,图像部分的数量可以类似地增加(和/或每个图像部分的尺寸可以减小)。可以使用平滑过渡-字幕距离计算控件1008(例如,经由滑块)来设置/调整字幕(或其他内容)从一个图像(或帧)到下一图像的移动受到限制的程度。例如,随着此值的增加,从一个图像到下一个图像字幕框的位置之间的距离可能会减小(即,假设图像的负空间已更改,因此重新放置字幕是适当的)。
[0097]
转到图11,提供了用于向图像添加内容的示例性方法1100的流程图。方法1100在例如上述的一个或多个设备内(例如计算设备、智能电视等)实现的系统(和/或软件应用)
开始(步骤1102)。
[0098]
接收多个图像(或至少一个图像)(步骤1104)。多个图像中的每个图像可以包括和/或被划分为多个图像部分。多个图像可以包括多个视频帧。
[0099]
针对多个图像部分中的每个计算负空间得分(步骤1106)。如上所述,可以利用认知分析(和/或计算机视觉技术)来执行针对多个图像部分中的每个图像部分的负空间得分的计算。
[0100]
基于所计算的负空间得分,选择多个图像部分中的至少一些以显示内容(步骤1108)。内容可以包括例如与多个图像和广告相关联的字幕中的至少一个。
[0101]
使多个图像被渲染为在多个图像部分中所选的至少一些上显示内容(步骤1110)。使得多个图像被渲染的步骤可以包括:使要渲染的多个图像中的第一个图像在多个图像部分中的第一个图像部分上具有显示的内容,并且在渲染多个图像中的第一个图像之后,使要渲染的多个图像中的第二个图像在多个图像部分中的第一个图像部分上具有显示的内容。如上所述,可以限制多个图像中的第一图像上的内容的位置和多个图像中的第二图像上的内容的位置之间的距离。
[0102]
在一些实施例中,可以分析多个图像部分(和/或内容)中所选择的至少一些图像部分的色调(和/或亮度)。可以基于对多个图像部分中所选择的至少一些图像部分的色调的分析来调整内容的亮度和颜色中的至少之一。
[0103]
方法1100以例如完成多个图像的渲染结束(步骤1112)。然后,用户可以提供关于内容的显示的输入(或反馈),该输入(或反馈)可以用于随着时间改善系统的性能。该反馈可以是显式的(例如,通过对设置进行的调整来接收)或隐式的(例如,通过监视用户和/或与用户相关联的通信来检测)。
[0104]
本发明可以是系统、方法和/或计算机程序产品。该计算机程序产品可以包括其上具有用于使处理器执行本发明的方面的计算机可读程序指令的计算机可读存储介质。
[0105]
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式压缩盘只读存储器(cd-rom)、数字多功能盘(dvd)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
[0106]
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
[0107]
用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路配置数据或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如smalltalk、c++等,以及过程式编程语言—诸如“c”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
[0108]
在这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
[0109]
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
[0110]
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
[0111]
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1