1.本公开涉及计算机视觉领域,尤其涉及一种使用计算机视觉控制视频数据内容的方法和系统。
背景技术:2.在zoom或 microsoft teams 等会议中的虚拟协作,严重依赖于在参与者之间网络摄像头播放馈送。这些馈送中的视野和在接收端查看它们的大小并不能提供太多阅读肢体语言或非语言提示的用途。
3.为了解决缺乏非语言提示和无法在不分散参与者注意力的情况下说话的问题,zoom 和 teams 等协作软件允许用户们“举手”或向正在共享的视频源添加表情符号。要调用这些功能,用户必须点击软件图形用户界面 (graphical user interface,gui) 中的相应图标。此外,参与者可以利用即时消息或聊天侧边栏来提问或提供更新,例如“我马上回来”。然而,这些功能都不像非语言提示或侧边栏发声那样可以快速回应或自然地使用,如果与所有成员进行协作,就会发生无法用语言快速回应的情况。
技术实现要素:4.为了解决用户在视频会议中无法用语言快速回应的问题,本公开提供一种方法、存储介质和系统,用计算机视觉控制视频数据内容,来解决用户在视频会议中无法用语言快速回应的问题。技术方案如下:本公开提供了一种控制视频数据的方法,包括将参与者的输入视频数据接收到计算机处理器中;分析输入视频数据以识别参与者做出的手势或动作;根据参与者的手势或动作选择叠加图像;将叠加图像合并到输入视频数据中,从而生成包括叠加图像的输出视频数据;以及将输出视频数据传输给一个或多个其他参与者的设备。
5.在一些实施例中,所述方法还包括分析输入视频数据的视野;确定参与者不再处于输入视频数据的视野中;以及向一个或多个参与者设备发送关于参与者的状态或在线情况的指示。
6.在一些实施例中,所述方法还包括根据所述参与者在所述输入视频数据中做出的所述动作或手势的位置,将叠加图像合并到输出视频数据中的相应位置中。
7.在一些实施例中,所述方法还包括根据参与者选择的输出视频数据中的位置将叠加图像合并到输出视频数据中的位置中。
8.在一些实施例中,所述方法包括从参与者接收参与者想要记录个人手势或动作的输入的指示;从输入的视频数据中捕捉参与者做出的个人手势或动作;并将个人手势或动作存储在数据库中。
9.在一些实施例中,所述方法还包括从参与者接收个人叠加图像;将个人叠加图像存储在数据库中;将来自参与者的个人叠加图像与从参与者接收到的个人手势或动作相关联;并且在检测到个人手势或动作时,将个人叠加图像合并到输出视频数据中。
10.在一些实施例中,所述方法还包括将音频数据与参与者做出的手势或动作相关联;将音频数据传输至一个或多个参与者设备。
11.在一些实施例中,所述方法还包括接收参与者做出的第二手势或第二动作;以及根据第二手势或第二动作将第二叠加图像并入输出视频数据中。
12.在一些实施例中,所述方法还包括在预设时间段内从输出视频数据中去除叠加图像。
13.在一些实施例中,所述方法还包括确定输入视频数据包括手语;并将手语的文本翻译合并到输出视频数据中。
14.在一些实施例中,所述方法还包括根据虚拟会议的类型或与虚拟会议相关联的参与者的类型选择适当的叠加图像。
15.在一些实施例中,所述方法还包括根据叠加图像与输出视频数据的背景之间的对比度、颜色、亮度和视觉复杂度差异中的一项或多项选择叠加图像的版本。
16.在一些实施例中,所述方法还包括在基本同时从多个参与者接收输入视频数据;生成多个参与者的输入视频数据的顺序;并根据顺序传送输出视频数据。
17.在一些实施例中,叠加图像包括几乎整个输出视频数据。
18.在一些实施例中,所述方法还包括确定输出视频数据已被裁剪;确定裁剪后的输出视频数据已经去除或部分去除了叠加图像;以及在输出视频数据中重新定位叠加图像。
19.在一些实施例中,所述方法还包括根据参与者做出的手势或动作来模糊输出视频数据。
20.在一些实施例中,所述方法还包括根据参与者的特征选择叠加图像,该特征包括肤色、性别、头发颜色、头发长度和眼睛颜色中的一种或多种。
21.在一些实施例中,所述输入视频数据包括虚拟会议、录制的摄像机馈送或直播的摄像机馈送。
22.本公开提供一种存储有指令的计算机可读介质,所述指令在由处理器执行时执行包括将包括参与者的输入视频数据接收到计算机处理器中的过程;分析输入视频数据以识别参与者做出的手势或动作;根据参与者的手势或动作选择叠加图像;将叠加图像合并到输入视频数据中,从而生成包括叠加图像的输出视频数据;将输出的视频数据传输至一个或多个参与者设备。
23.本公开提供一种计算机处理器的系统;与计算机处理器耦合的计算机存储设备;其中计算机处理器和计算机存储设备可操作用于将包括参与者的输入视频数据接收到计算机处理器中;分析输入视频数据以识别参与者做出的手势或动作;根据参与者的手势或动作选择叠加图像;将叠加图像合并到输入视频数据中,从而生成包括叠加图像的输出视频数据;将输出的视频数据传输至一个或多个参与者设备。
附图说明
24.图1,2 和3是说明使用计算机视觉控制视频数据内容的系统和方法的特征和操作的框图。
25.图4是本公开提供的一个输入视频数据的示意图。
26.图5是本公开提供的一个带有叠加图像的输出视频数据的示意图。
27.图6是本公开提供的另一个输入视频数据的示意图。
28.图7是本公开提供的另一个带有叠加图像的输出视频数据的示意图。
29.图8是本公开提供的另一个输入视频数据的示意图。
30.图9是本公开提供的另一个带有叠加图像的输出视频数据的示意图。
31.图10是本公开提供的用于实现实施例方法的计算机系统的框图。
具体实施方式
32.在下面的描述中,参考一部分的附图,并且通过图示的方式示出了可以实践的具体实施例。通过对这些实施例的详细描述以使本领域技术人员能够实现本发明。 应当理解的是,本领域技术人员可以利用其他实施例并且可以在不脱离本发明范围的情况下进行结构、逻辑和电气改变。下述的实施例作为示例不应被理解为限制性的, 本发明的范围由所附权利要求限定。
33.在一个实施例中,本说明描述的功能或算法可以在软件中实现。所述软件可包括存储在计算机的可读介质或计算机可读存储设备的计算机可执行指令, 例如一个或多个非暂时性存储器或其他类型的基于硬件的本地或网络的存储设备上的计算机可执行指令组成。此外,这些功能对应的模块,模块可以是软件、硬件、固件或其任意组合。可以根据需要在一个或多个模块中执行多种功能,所述实施例仅是示例。上述软件可以在数字信号处理器、asic、微处理器或在计算机系统上运行的其他类型的处理器上执行,例如个人计算机、服务器或其他计算机系统,将上述计算机系统变成专门编程的机器。
34.本公开的实施例涉及虚拟会议或其他虚拟协作,在这些虚拟协作中,网络摄像头用来看到虚拟会议或协作期间的参与者。在本实施例中,视频数据的原始馈送是从网络摄像头接收到的。原始馈送通常包含参与者,然而,有时这个参与者可能已经离开虚拟协作,本公开将进一步详细讨论这种情况的处理。在本实施例,使用计算机视觉分析和技术来识别参与者做出的手势或动作。根据参与者的手势或动作,将图像叠加到视频数据中,然后,所述叠加后的视频数据被传输给虚拟协作中的其他参与者。例如,参与者可能想在虚拟协作期间举起他/她的手,但是鉴于参与者屏幕的大小和/或参与者屏幕上的干扰因素,其他参与者可能很难看到这一点。为了解决这个问题,一个更容易被看到的叠加图像被放置到传输给其他参与者的视频源中。在一个实施例中,一个过程或软件模块用来处理手势或动作的感测和识别,以及将叠加图像合并到视频数据中。然后将这些带有覆盖的视频数据被传输到另一个过程或软件模块,该模块处理带有叠加图像的视频数据并另其在参与者的设备屏幕上的显示。虽然在本公开的一个实施例中可以结合虚拟协作和网络摄像头使用这个技术,但其他实施例也可以结合录制的摄像机馈送或广播的摄像机馈送使用此技术。
35.图1,2 和3示出了使用计算机视觉分析和计算机视觉技术来控制视频数据内容的实施例的操作和特征。图1、2和3的示例包括操作或特征块110-172。尽管在参考图1、2和3中,这些操作和特征块基本上连续排列,然而,在其他实施例中这些操作块可以重新排列,例如,可以省略一个或多个操作块,和/或,通过多个处理器执行两个或多个块,或单个处理器由两个或更多个虚拟机或子处理器组成。此外,其他示例还可以将块实现为一个或多个特定互连硬件或集成电路模块。所述一个或多个特定互连硬件或集成电路模块具有相关控制和数据信号并在模块之间并通过模块进行通信。因此,任何处理流程都适用于软件、固
件、硬件和混合实现。
36.参考图1, 2 和3,在110,计算机处理器接收到输入视频数据。如112所示,这些输入视频数据可以源自虚拟会议、录制的摄像机馈送、广播的摄像机馈送或可以生成视频数据的任何其他源。例如,在虚拟会议链接中,输入视频数据可以源自会议参与者的笔记本电脑、个人计算机或其他设备相关联的网络摄像头。在一些实施例中,输入的视频数据通常包括虚拟会议参与者的图像。
37.在120,分析输入视频数据以识别由虚拟会议中的参与者做出的手势或动作。这些手势和动作是通过几种计算机视觉分析和技术中的任何一种来识别的。任何手势或动作都可以通过计算机视觉分析来识别,这些手势和动作包括但不限于挥手、微笑、竖起大拇指或向下竖起大拇指、头部倾斜或翘起、举起手、举起食指,举起一只手的并竖起两根手指,举起一只手并张开所有手指,视野中没有人,单次挥手,手向上或向下动作、手靠近相机、在相机前打响指、参与者的头转向一侧或远离屏幕,以及可识别的手语。
38.在130,根据参与者做出的手势或动作来选择叠加图像。如131所示,对于叠加图像的选择可以是基于虚拟会议类型或与虚拟会议相关联的参与者类型。例如,对公司董事会的虚拟会议选择的叠加图像可能于为在线游戏环境中的虚拟协作选择的叠加图像有所不同。此外,如在132处所示,可以根据叠加图像与输出视频数据的背景之间的对比度、颜色、亮度和视觉复杂性差异来选择叠加图像的版本。例如,如果输出视频数据的背景主要是浅色,则可能需要选择深色的叠加图像。进一步如133所示的,以参与者的特征为根据来选择叠加图像,这些特征包括肤色、性别、头发颜色、头发长度和/或眼睛颜色。
39.在140,叠加图像结合到输入视频数据中,来生成包括所述叠加图像的输出视频数据。如141所示,叠加图像基本上在输出视频数据的上方展示。例如,“马上回来”的消息可放置在整个屏幕上,并可以保持相机看到的背景,或可以将背景完全遮挡,例如用纯色背景。
40.在150,输出视频数据被传送到与在线协作中的其他参与者相关联的一个或多个参与者设备。如151所示,在一个实施例中,叠加图像在特定时间段内消退和/或从输出视频数据中移除,因而从其他参与者的设备中消失。所述特定时间段可以是预设的标准持续时间,例如两分钟,或者所述时间可以由参与者设置并存储在参与者的个人资料中。
41.上述公开所描述的手势和动作,可以分配以下解释和含义,叠加图像可以根据检测到的手势或动作来设置。
42.挥手可以被解释为参与者说“嗨”、“再见”、或“在这里”,这样,叠加图像可以选择包括挥手表情符号图形的叠加图像,然后将其显示在其他参与者的设备上, 如图4 和5所示。例如,在图4中检测到挥手动作,然后选择比参与者的手更明显的手挥动表情符号来叠加输出的图5。
43.微笑可以被解释为参与者觉得很高兴,并且可以选择笑脸表情符号作为叠加图像,然后将其显示在其他参与者的设备上。竖起大拇指或大拇指向下可以解释为参与者表示赞同或不赞同,并且可以选择竖起大拇指或大拇指向下的表情符号图像作为叠加图像,然后将其叠加在传出的视频源上,显示在其他参与者的设备上。参与者头部的倾斜或翘起可以被解释为参与者有疑惑,并且可以选择表现出疑惑的表情符号作为叠加图像,叠加在传出的视频源上,然后显示在其他参与者的设备上。参与者举手可以解释为参与者有问题要问,并且可以选择举手表情符号作为叠加图像,叠加在传出的视频源上,然后显示在其他
参与者的设备上。
44.竖起手的食指可以被解释为参与者出于某种原因表明他或她“等一下”,并且可以选择包括“等一下”的文本叠加图像,叠加在传出的视频源上,然后显示在其他参与者的设备上,如图 6 和 7所示。同样,举起两根手指的手可以解释为参与者等一会儿,并且可以选择“等一下”或“等一会儿”的叠加图像,叠加在传出的视频源上,然后显示在其他参与者的设备上。
45.举起手并且所有手指都张开可以解释为参与者表示他或她必须离开五分钟,五分钟之后回来,所以选择“马上回来”或“五分钟之后回来”的文本作为叠加图像,覆盖在传出的视频源上,然后显示在其他参与者的设备上,如图8 和 9所示。类似地,当视野中没有人时,可以解释为参与者暂时离开了会议,可以选择包括“很快回来”的文本叠加图像,覆盖在传出的视频源上,然后显示在其他参与者的设备上。
46.单次挥手、向上或向下的手的动作可以解释为“隐藏我”动作,即参与者必须离开一会儿,但会马上回来,并且参与者会以某种方式隐藏。然后叠加图像可以以某种方式隐藏参与者,例如通过变暗的屏幕,变暗的屏幕将显示在其他参与者的设备上。类似地,手接近相机的手势或动作也可以解释为“隐藏我”手势,并且可以选择包含“我在这里听着”或“马上回来”文本的叠加图像,叠加在传出的视频数据,然后显示在其他参与者的设备上。
47.在摄像机前打响指可以被解释为参与者表明他或她从休息或短暂离开中回来,并且现在可以重新参与直播,这样,任何叠加的文本或表情符号或表示隐藏状态的叠加图像都可以终止,上述参与者可以恢复参与,恢复参与的叠加图像可以显示在其他参与者的设备上。
48.将头部转向一侧或远离相机可以解释为参与者必须暂时将他或她的注意力转移到另一件事上。然而,参与者可能不想向其他参与者显示任何类型的消息。在这种情况下,参与者在处理其他事情时可能需要一点隐私,这样,叠加图像可以使得传出的视频变模糊,然后显示在其他参与者的设备上。
49.本公开的一实施例可以包括:确定参与者的手势是可识别的手语,确定可识别手语之后,可以将手语的文本翻译并入输出视频数据中,然后显示在其他参与者的设备上。
50.除了上述的手势和动作之外,在一实施例中,在121处分析输入视频数据的视野,在122,确定了参与者并不在输入视频数据的视野中,并且在123向一个或多个参与者设备发送关于参与者的状态或是否在线的指示。
51.如在144处所示,叠加图像被叠加在输出视频数据的某一位置上,所述位置与参与者在输入视频数据中做出的手势或动作的位置的关系为一函数。例如,如果参与者举起他或她的手以引起其他参与者的注意,则叠加图像的位置可以位于举起的手的正上方。此外,叠加图像可以包括由于图标的大小、颜色、动作、闪烁或其他特性而更容易被其他参与者看到的手的图标。或者,如在145处所示,叠加图像被叠加到输出视频数据中的位置可与参与者选择的输出视频数据中的位置形成函数关系。例如,参与者可能希望在其他参与者的屏幕顶部显示诸如“马上回来”之类的文本消息,因为参与者可能认为这样的位置更能吸引注意力。
52.在一个实施例中,在146处,确定被裁剪的输出视频数据。然后,在147处,进一步确定裁剪的输出视频数据已经去除或部分去除了叠加图像。确定之后,在 143c处,叠加图像
在输出视频数据中重新定位,以使其再次在参与者的设备上可见。
53.在另一实施例中,如操作160所示,输入视频数据收到所述参与者的指示,例如所述参与者表示他/她想要记录个人手势或动作(也称作个性化手势或动作)。这种个人手势动作还没有在当前系统的认知或功能范围内。在161,参与者做出的个人手势或动作在输入视频数据中被捕获。在162,参与者的个人手势或动作被存储在数据库中。稍后,在163,从参与者接收与个人手势或动作相关联的个人叠加图像(也称作个性化叠加图像)。在164,所述个人叠加图像被存储在数据库中。并且在165,来自参与者的个人叠加图像与从参与者接收的个人手势或动作相关联(操作161)。然后,在166,在检测到个人手势或动作时,将个人叠加图像合并到输出视频数据中。
54.如148所示,音频数据也可以与参与者做出的手势或动作相关联,并且在149,音频数据连同叠加图像可以被传送到一个或多个参与者设备。例如,参与者在摄像机做响指,可以将弹响手指的音频文件传输到其他参与者设备。
55.在另一个实施例中,如在118 所示,系统接收到由参与者做出的第二手势或第二动作,并且在 119,第二个叠加图像作为与第二手势或第二动作相关的函数被并入到输出视频数据中。例如,第二个手势可以表示参与者从休息中回来,那么所述叠加图像可以从输出数据中移除。例如,第二手势可以表示以某种方式改变或修改叠加图像,例如显示“还需要五分钟”。
56.如在170所示,几乎可以在同时收到多个参与者的输入视频数据。此时,在171,处理器会生成来自多个参与者的输入视频数据的顺序。然后,在 172,输出视频数据根据顺序被传输到其他参与者的设备。在该实施例中,可以看到来自多个参与者的到达时间顺序,然后将该信息传递回所涉及的每个参与者,以便运行叠加功能的客户端实用程序的另一个进程可以做出相应的反应。
57.图10是根据实施例用于实现计算资源的计算机系统500的示意框图。在各种实施例中不需要使用所有组件。例如,计算机设备500可以包括处理单元502、存储器503、可动作存储510和不可动作存储512。虽然示例计算设备被图示和描述为计算机500,在不同的实施例中,计算设备可以是不同的形式。例如,计算设备可以是智能手机、平板电脑、智能手表、智能存储设备(ssd)或包括与关于图10所示和描述的相同或相似元件的其他计算设备。 智能手机、平板电脑、智能手表等设备,一般统称为动作设备或用户设备。尽管各种数据存储元件被示为计算机500的一部分,但是存储也可包括可通过网络访问云存储,例如互联网或基于服务器的存储。需要注意的是,ssd 可能包括一个解析器在上可运行的处理器,从而已解析、过滤的数据可而通过 ssd 和主存储器之间的 i/o 通道传输。存储器 503可以包括易失性存储器 514 和非易失性存储器 508。计算机 500 可以包括或有权访问包括各种计算机可读介质,例如易失性存储器 514 和非易失性存储器508、可动作存储器510和不可动作存储器512。计算机存储器包括随机存取存储器(random access memory, ram)、只读存储器(read only memory, rom)、可擦除可编程只读存储器(erasable programmable read-only memory, eprom)或电可擦除可编程只读存储器(electrically erasable programmable read-only memory, eeprom),闪存或其他存储技术、光盘只读存储器 (compact disc read-only memory, cd rom)、数字多功能磁盘 (digital versatile disks, dvd) 或其他光盘存储,盒式磁带、磁带、磁盘存储器或其他磁存储设备,或任何其
他能够存储计算机可读指令的介质。计算机 500 可包括或可以访问计算环境,该计算环境包括输入界面 506、输出界面 504 和通信界面516。输出界面 504 包括显示设备,例如触摸屏,触摸屏也可以用作输入设备。计算机可在网络环境中操作通过通信连接以连接到一台或多台远程计算机,例如数据库服务器。远程计算机可以包括个人计算机(personal computer, pc)、服务器、路由器、网络pc、对等设备或其他常见,的数据流网络交换机等。通信连接可以包括局域网(local area network, lan)、广域网(wide area network, wan)、或其他网络。
58.存储在计算机可读介质上的计算机可读指令可由计算机500的处理单元502执行,硬盘驱动器、cd-rom 和 ram 是包括非暂时性计算机可读介质(例如存储设备)的物品的一些示例。例如在一些实施例中,程序518可用于使处理单元502执行本文所述的一种或多种方法或算法。计算机程序518可以存储在设备上或者可以通过诸如因特网的网络从服务器下载到设备。计算机可读指令也可以被包括在被出售和/或提供的计算机可读存储介质上,其中计算机可读存储介质被定义为不包含瞬态信号、载波和/或信号本身。
59.本公开实际应用举例如下。
60.示例1:一种过程,包括将参与者的输入视频数据接收到计算机处理器中;分析输入视频数据以识别参与者做出的手势或动作;根据参与者的手势或动作选择叠加图像;将叠加图像合并到输入视频数据中,从而生成包括叠加图像的输出视频数据;以及将输出视频数据传输给一个或多个其他参与者的设备。
61.示例2:包括示例1的过程,还包括分析输入视频数据的视野;确定参与者不再处于输入视频数据的视野中;以及向一个或多个参与者设备发送关于参与者的状态或在线情况的指示。
62.示例3:包括示例1的过程,还包括根据所述参与者在所述输入视频数据中做出的所述动作或手势的位置,将叠加图像合并到输出视频数据中的相应位置中。
63.示例4:包括示例1的过程,还包括根据参与者选择的输出视频数据中的位置将叠加图像合并到输出视频数据中的位置中。
64.示例5:包括示例1的过程,还包括从参与者接收参与者想要记录个人手势或动作的输入的指示;从输入的视频数据中捕捉参与者做出的个人手势或动作;并将个人手势或动作存储在数据库中。
65.示例6:示例5的过程,还包括从参与者接收个人叠加图像;将个人叠加图像存储在数据库中;将来自参与者的个人叠加图像与从参与者接收到的个人手势或动作相关联;并且在检测到个人手势或动作时,将个人叠加图像合并到输出视频数据中。
66.示例7:示例1的过程,还包括将音频数据与参与者做出的手势或动作相关联;将音频数据传输至一个或多个参与者设备。
67.示例8:示例1的方法,还包括接收参与者做出的第二手势或第二动作;以及根据第二手势或第二动作将第二叠加图像并入输出视频数据中。
68.示例9:示例1的过程,还包括在预设时间段内从输出视频数据中去除叠加图像。
69.示例10:示例1中的过程, 还包括确定输入视频数据包括手语;并将手语的文本翻译合并到输出视频数据中。
70.示例11:示例1中的过程,还包括根据虚拟会议的类型或与虚拟会议相关联的参与
者的类型选择适当的叠加图像。
71.示例12:示例1中的过程,还包括根据叠加图像与输出视频数据的背景之间的对比度、颜色、亮度和视觉复杂度差异中的一项或多项选择叠加图像的版本。
72.示例13:示例1的过程,还包括在基本上同时的时间从多个参与者接收输入视频数据;生成多个参与者的所述输入视频数据的顺序;并根据顺序传送输出视频数据。
73.示例14:示例1中的过程,叠加图像包括几乎整个输出视频数据。
74.示例15:示例1中的过程,还包括确定输出视频数据已被裁剪;确定裁剪后的输出视频数据已经去除或部分去除了叠加图像;以及在输出视频数据中重新定位叠加图像。
75.示例16:示例1中的过程,还包括根据参与者做出的手势或动作来模糊输出视频数据。
76.示例17:示例1中的过程,还包括根据参与者的特征选择叠加图像,该特征包括肤色、性别、头发颜色、头发长度和眼睛颜色中的一种或多种。
77.示例18:示例1中的过程,其中输入视频数据包括虚拟会议、记录的摄像机馈送或广播摄像机馈送。
78.示例19:指令的计算机可读介质,所述指令在由处理器执行时执行包括将包括参与者的输入视频数据接收到计算机处理器中的过程;分析输入视频数据以识别参与者做出的手势或动作;根据参与者的手势或动作选择叠加图像;将叠加图像合并到输入视频数据中,从而生成包括叠加图像的输出视频数据;将输出的视频数据传输至一个或多个参与者设备。
79.示例20:计算机处理器的系统;与计算机处理器耦合的计算机存储设备;其中计算机处理器和计算机存储设备可操作用于将包括参与者的输入视频数据接收到计算机处理器中;分析输入视频数据以识别参与者做出的手势或动作;根据参与者的手势或动作选择叠加图像;将叠加图像合并到输入视频数据中,从而生成包括叠加图像的输出视频数据;将输出的视频数据传输至一个或多个参与者设备。
80.尽管上面已经详细描述了几个实施例,但是其他修改也是可能的。例如,图中描绘的逻辑流程不需要所示的特定顺序或顺序来实现期望的结果。可以从所描述的流程中提供其他步骤,或者可以消除步骤,并且可以向所描述的系统添加或移除其他组件。其他实施例可能在以下权利要求的范围内。