CN111819837B - 识别静态视频的方法和系统 - Google Patents

识别静态视频的方法和系统 Download PDF

Info

Publication number
CN111819837B
CN111819837B CN201980005872.8A CN201980005872A CN111819837B CN 111819837 B CN111819837 B CN 111819837B CN 201980005872 A CN201980005872 A CN 201980005872A CN 111819837 B CN111819837 B CN 111819837B
Authority
CN
China
Prior art keywords
video
video frame
motion
pixels
smoothed
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201980005872.8A
Other languages
English (en)
Other versions
CN111819837A (zh
Inventor
洪微
林盛怡
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Priority to CN202111611460.4A priority Critical patent/CN114143555A/zh
Publication of CN111819837A publication Critical patent/CN111819837A/zh
Application granted granted Critical
Publication of CN111819837B publication Critical patent/CN111819837B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/521Processing of motion vectors for estimating the reliability of the determined motion vectors or motion vector field, e.g. for smoothing the motion vector field or for correcting motion vectors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformation in the plane of the image
    • G06T3/40Scaling the whole image or part thereof
    • G06T5/70
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/269Analysis of motion using gradient-based methods
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20076Probabilistic image processing

Abstract

一些实施方式可以包括用于识别静态视频的方法和系统。一种方法可以包括从输入视频的一个或多个视频帧中获得输入视频帧,其中在接收到快门按下指示之前和在接收到快门按下指示之后获取视频帧。该方法还包括下采样,平滑,计算时间梯度,估计局部运动,估计全局运动,计算一个或多个对象运动矢量,将一个或多个对象运动矢量转换为得分映射,基于得分映射计算熵得分,映射熵得分,识别静态帧的数量,以及如果输入视频中的静态帧的数量与视频帧的数量的比率满足静态帧阈值,则确定输入视频是静态视频。

Description

识别静态视频的方法和系统
背景技术
一些移动设备可以包括捕获视频和静止图像的能力。在一些情况下,可以捕获记录恰好在检测快门按下之前和之后出现的图像以捕获静止图像的视频。这种视频可以是有趣的,并且有助于捕获单个静止图像可能不包含的主题的图像。然而,静态或一般静态场景(例如建筑物或景观)的视频可能不利于用户,并且可能不值得存储在设备上的存储器或外部存储器中。存在用于区分静态视频和具有移动的视频的技术困难。例如,如果使用移动设备捕获图像,则用户的手可能抖动地厉害会使其看起来好像视频包括移动一样。因此,识别视频是静态的(例如,记录相对静态的场景或对象)可能是有用的。
本文提供的背景描述是出于一般地呈现本公开的上下文的目的。在此背景技术部分中描述了本发明的发明人的工作,以及在提交时可能不作为现有技术的描述的各方面,既不明确地也不隐含地承认作为本公开的现有技术。
发明内容
一些实施方式通常涉及移动设备图像捕获,并且尤其涉及用于识别静态视频的方法和系统。
一些实施方式可以包括计算机实现的方法。所述方法可包括从输入视频的一个或多个视频帧中获取输入视频帧,其中在接收到快门按下指示之前和在接收到所述快门按下指示之后,获取所述视频帧。该方法还包括对所述输入视频帧进行下采样,以生成经下采样的视频帧。该方法还包括对所述经下采样的视频帧进行平滑处理,以生成经平滑的视频帧。该方法还包括计算所述经平滑的视频帧的时间梯度和空间梯度。该方法还包括通过计算局部运动矢量来估计局部运动,所述局部运动矢量对应于来自所述经平滑的视频帧内的一个或多个候选像素块中的相应候选像素块,其中所述局部运动矢量基于所述空间梯度和所述时间梯度。该方法还包括通过计算与所述经平滑的视频帧相对应的全局运动矢量来估计全局运动。该方法还包括基于对应的局部运动矢量和全局运动矢量,计算一个或多个对象运动矢量。所述方法还包括将所述一个或多个对象运动矢量转换为得分映射(score map)。所述方法还包括基于所述得分映射计算熵得分。该方法还包括将所述熵得分映射到与所述经平滑的视频帧相对应的对象运动得分。该方法还包括基于所述对象运动得分来识别静态帧的数量。该方法还包括:如果静态帧的数量与所述视频帧的数量的比率满足静态帧阈值,则确定所述输入视频是静态视频,并且如果所述率不满足所述静态帧阈值,则确定所述输入视频是运动视频。该方法还包括:如果所述输入视频被识别为所述静态视频,则进行第一操作。该方法还包括:如果所述输入视频被识别为所述运动视频,则进行第二操作。
该方法还可以包括在平滑之前将所述经下采样的视频帧从彩色转换成灰度级。在一些实施例中,计算经平滑的视频帧的空间梯度和时间梯度包括:将所述经平滑的视频帧中的曝光不足的像素和所述经平滑的视频帧中的曝光过度的像素标记为无效;和对于所述经平滑的视频帧内的有效像素:计算时间梯度;计算x方向上的空间梯度;和计算y方向上的空间梯度。在一些实施例中,通过以下步骤来确定所述一个或多个候选像素块:在所述经平滑的视频帧内选择一个或多个网格点作为参考点,用于运动估计;针对与所述一个或多个网格点中的每一个网格点对应的像素块选择像素块宽度和像素块高度;计算每个像素块的统计信息;确定所述像素块是否具有满足阈值纹理值的纹理;并且如果所述像素块具有满足所述阈值纹理值的纹理,则将所述像素块识别为用于运动估计的候选像素块。在一些实施例中,计算所述局部运动矢量包括基于所述候选像素块中的像素的所述空间梯度和所述时间梯度来计算局部x运动值并计算局部y运动值。在一些实施例中,计算所述全局运动矢量包括基于有效局部运动矢量的平均值来计算所述全局运动矢量。在一些实施例中,计算所述一个或多个对象运动矢量包括从相应的局部运动矢量中减去所述全局运动矢量。在一些实施例中,将所述一个或多个对象运动矢量转换成所述得分映射包括对所述经平滑的视频帧内的像素的相应对象运动矢量的大小进行归一化。在一些实施例中,计算与关于所述得分映射的所述熵得分成反比的所述对象运动得分包括,当运动被定位时,向所述经平滑的视频帧分配较高得分,并且当运动在所述经平滑的视频帧内是全局的时,向所述经平滑的视频帧分配较低得分。在一些实施例中,所述第一操作包括将所述输入视频标记为静态,将对应于所述输入视频的快门图像保留在存储器中,以及从存储器中删除所述输入视频。在一些实施例中,第二操作包括将对应于所述输入视频的快门图像和所述输入视频保留在存储器中。
一些实施方式可以包括系统。该系统可以包括一个或多个处理器;以及其上存储有指令的存储器,所述指令在由所述一个或多个处理器执行时使所述一个或多个处理器执行操作,所述操作包括:从输入视频的一个或多个视频帧中获取输入视频帧,其中在接收到快门按下指示之前和在接收到所述快门按下指示之后,获取视频帧;对所述输入视频帧进行下采样,以生成经下采样的视频帧;对所述经下采样的视频帧进行平滑处理,以生成经平滑的视频帧;计算所述经平滑的视频帧的时间梯度和空间梯度;通过计算局部运动矢量来估计局部运动,所述局部运动矢量对应于来自所述经平滑的视频帧内的一个或多个候选像素块中的相应候选像素块,其中所述局部运动矢量基于所述空间梯度和所述时间梯度;通过计算与所述经平滑的视频帧相对应的全局运动矢量来估计全局运动;基于对应的局部运动矢量和全局运动矢量计算一个或多个对象运动矢量;将所述一个或多个对象运动矢量转换为得分映射(score map);基于所述得分映射计算熵得分;将所述熵得分映射到与所述经平滑的视频帧相对应的对象运动得分;基于所述对象运动得分来识别静态帧的数量;如果静态帧的数量与所述视频帧的数量的比率满足静态帧阈值,则确定所述输入视频是静态视频,并且如果所述率不满足所述静态帧阈值,则确定所述输入视频是运动视频;如果所述输入视频被识别为所述静态视频,则进行第一操作;并且如果所述输入视频被识别为所述运动视频,则进行第二操作。
在一些实施例中,所述指令还使所述一个或多个处理器进行操作,所述操作包括在平滑之前将所述经下采样的视频帧从彩色转换成灰度级。在一些实施例中,计算所述经平滑的视频帧的所述空间梯度和所述时间梯度包括:将所述经平滑的视频帧中的曝光不足的像素和所述经平滑的视频帧中的曝光过度的像素标记为无效;和对于所述经平滑的视频帧内的有效像素:计算时间梯度;计算x方向上的空间梯度;和计算y方向上的空间梯度。在一些实施例中,通过以下步骤来确定所述一个或多个候选像素块:在所述经平滑的视频帧内选择一个或多个网格点作为参考点,用于运动估计;针对与所述一个或多个网格点中的每一个网格点对应的像素块选择像素块宽度和像素块高度;计算每个像素块的统计信息;确定所述像素块是否具有满足阈值纹理值的纹理;并且如果所述像素块具有满足所述阈值纹理值的纹理,则将所述像素块识别为用于运动估计的候选像素块。
一些实施方式可以包括具有指令的非暂时性计算机可读介质,所述指令在由一个或多个计算机执行时使所述一个或多个计算机执行操作,所述操作包括:从输入视频的一个或多个视频帧中获取输入视频帧,其中在接收到快门按下指示之前和在接收到所述快门按下指示之后,获取所述视频帧;对所述输入视频帧进行下采样,以生成经下采样的视频帧;对所述经下采样的视频帧进行平滑处理,以生成经平滑的视频帧;计算所述经平滑的视频帧的时间梯度和空间梯度;通过计算局部运动矢量来估计局部运动,所述局部运动矢量对应于来自所述经平滑的视频帧内的一个或多个候选像素块中的相应候选像素块,其中所述局部运动矢量基于所述空间梯度和所述时间梯度;通过计算与所述经平滑的视频帧相对应的全局运动矢量来估计全局运动;基于对应的局部运动矢量和全局运动矢量,计算一个或多个对象运动矢量;将所述一个或多个对象运动矢量转换为得分映射(score map);基于所述得分映射计算熵得分;将所述熵得分映射到与所述经平滑的视频帧相对应的对象运动得分;基于所述对象运动得分来识别静态帧的数量;如果静态帧的数量与所述视频帧的数量的比率满足静态帧阈值,则确定所述输入视频是静态视频,并且如果所述率不满足所述静态帧阈值,则确定所述输入视频是运动视频;如果所述输入视频被识别为所述静态视频,则进行第一操作;并且如果所述输入视频被识别为所述运动视频,则进行第二操作。
在一些实施例中,所述操作还包括在平滑之前将所述经下采样的视频帧从彩色转换成灰度级。在一些实施例中,计算所述经平滑的视频帧的所述空间梯度和所述时间梯度包括:将所述经平滑的视频帧中的曝光不足的像素和所述经平滑的视频帧中的曝光过度的像素标记为无效;和对于所述经平滑的视频帧内的有效像素:计算时间梯度;计算x方向上的空间梯度;和计算y方向上的空间梯度。在一些实施例中,通过以下步骤来确定所述一个或多个候选像素块:在所述经平滑的视频帧内选择一个或多个网格点作为参考点,用于运动估计;针对与所述一个或多个网格点中的每一个网格点对应的像素块选择像素块宽度和像素块高度;计算每个像素块的统计信息;确定所述像素块是否具有满足阈值纹理值的纹理;并且如果所述像素块具有满足所述阈值纹理值的纹理,则将所述像素块识别为用于运动估计的候选像素块。在一些实施例中,计算所述局部运动矢量包括基于所述候选像素块中的像素的所述空间梯度和所述时间梯度来计算局部x运动值并计算局部y运动值。
附图说明
图1是可用于本文所述的一个或多个实施方式的示例系统和网络环境的框图;
图2是示出根据一些实施方式的识别静态视频的示例方法的流程图;
图3是根据一些实施方式的示例视频和快门按下时间线的图;
图4是示出根据一些实施方式的识别静态视频的示例方法的流程图;和
图5是可用于本文所述的一个或多个实施方式的示例设备的框图。
具体实施方式
本文提供的系统和方法可以克服一些常规成像系统和方法的一个或多个缺陷。例如,成像设备(例如,智能电话等)允许用户用单个快门按下事件来捕获视频和静止图像。在此提供的系统和方法的一些实施方式可以识别静态视频(例如,静态场景或静态对象的视频),并且基于静态视频的识别(例如,从存储器中删除或移除静态视频)来采取动作,这可以帮助减少存储器使用,通信带宽使用和/或处理器周期使用。特别地,一些实施方式可以帮助补偿图像采集中的全局运动(例如,在图像采集期间在智能电话或其它设备中的手抖动),并且通过使用基于熵计算的评分系统来强调局部化的对象运动(例如,儿童演奏),并且帮助削弱广泛的一般运动(例如,树叶在风中移动),从而在运动遍布帧时减少运动的检测。一些传统的成像系统可能不能提供有效和高效的方式来识别静态视频,其中有效和高效地识别静态视频对于用户可能是有用的。
图1示出了示例性网络环境100的框图,该网络环境可以在这里描述的一些实施方式中使用。在一些实施方式中,网络环境100包括一个或多个服务器系统,例如图1的示例中的服务器系统102。例如,服务器系统102可以与网络130通信。服务器系统102可以包括服务器设备104和数据库106或其它存储设备。网络环境100还可以包括一个或多个客户端设备,例如客户端设备120,122,124和126,它们可以经由网络130彼此通信和/或与服务器系统102通信。网络130可以是任何类型的通信网络,包括因特网,局域网(LAN),无线网络,交换机或集线器连接等中的一个或多个。在一些实施方式中,网络130可以包括设备之间的对等通信132,例如,使用对等无线协议。
为了便于说明,图1示出了用于服务器系统102,服务器设备104和数据库106的一个块,并且示出了用于客户端设备120,122,124和126的四个块。代表服务器系统102,104和106的块可以代表多个系统,服务器设备和网络数据库,并且可以以与所示不同的配置来提供这些块。例如,服务器系统102可代表可经由网络130与其它服务器系统通信的多个服务器系统。在一些示例中,数据库106和/或其它存储设备可以提供在服务器系统块中,该服务器系统块与服务器设备104分离并且可以经由网络130与服务器设备104和其它服务器系统通信。同样,可以有任何数量的客户端设备。
每个客户端设备可以是任何类型的电子设备,例如,台式计算机,膝上型计算机,便携式或移动设备,相机,蜂窝电话,智能电话,平板计算机,电视,电视机顶盒或娱乐设备,可佩戴设备(例如,显示器眼镜或护目镜,头戴式显示器(HMD),手表,头戴式耳机,臂带,珠宝等),启用虚拟现实(VR)和/或增强现实(AR)的设备,个人数字助理(PDA),媒体播放器,游戏设备等。一些客户端设备还可以具有类似于数据库106或其它存储的本地数据库。在其它实施方式中,网络环境100可以不具有所示的所有组件,和/或可以具有包括其它类型的元件的其它元件,而不是这里描述的那些元件,或者除了这里描述的那些元件之外还包括其它类型的元件。
在各种实施方式中,终端用户U1,U2,U3和U4可以包括会话中的一个或多个参与者,并且可以使用相应的客户端设备120,122,124和126与服务器系统102通信和/或彼此通信。在一些示例中,用户U1,U2,U3和U4可以经由在相应的客户端设备和/或服务器系统102上运行的应用和/或经由在服务器系统102上实现的网络服务(例如,图像共享服务,消息服务,社交网络服务或其它类型的网络服务)来彼此交互。例如,相应的客户端设备120,122,124和126可以将数据传送到一个或多个服务器系统(例如,服务器系统102)和从一个或多个服务器系统(例如,服务器系统102)传送数据。
在一些实施方式中,服务器系统102可以向客户端设备提供适当的数据,使得每个客户端设备可以接收上传到服务器系统102和/或网络服务的通信内容或共享内容。在一些示例中,用户可以经由音频或视频会议,音频,视频或文本聊天,或其他通信模式或应用进行交互。在一些示例中,网络服务可以包括允许用户进行各种通信,形成链接和关联,上传和发布共享内容(例如图像,图像合成(例如,包括一个或多个图像的相册,图像拼贴,视频等),音频数据和其它类型的内容),接收各种形式的数据,和/或进行与社交相关的功能。例如,网络服务可以允许用户向特定或多个其他用户发送消息,以与网络服务内的其他用户关联的形式形成社交链接,对用户列表、朋友列表或其他用户组中的其他用户进行分组,发布或发送包括文本,图像,图像合成,音频序列或记录的内容、或用于由网络服务的指定用户组访问的其他类型的内容,参与实况视频,音频和/或文本视频会议或与服务的其它用户聊天等。在一些实施方式中,“用户”可以包括一个或多个程序或虚拟实体,以及与系统或网络对接的人。
用户界面可以允许在客户端设备120,122,124和126(或者在服务器系统102)上显示图像,图像合成,数据和其它内容以及通信,隐私设置,通知和其它数据。可以使用客户端设备上的软件,服务器设备上的软件和/或在服务器设备104上执行的客户端软件和服务器软件的组合(例如,与服务器系统102通信的应用软件或客户端软件)来显示这种界面。用户界面可以由客户端设备或服务器设备(例如,显示屏,投影仪等)的显示设备来显示。在一些实施方式中,运行在服务器系统上的应用程序可以与客户端设备通信,以在客户端设备处接收用户输入,并且在客户端设备处输出诸如视觉数据,音频数据等的数据。
这里描述的特征的各种实现可以使用任何类型的系统和/或服务。例如,社交网络服务,图像收集和共享服务,辅助消息服务或其它网络服务(例如,连接到因特网)可以包括由客户端和服务器设备访问的一个或多个所描述的特征。任何类型的电子设备都可以利用这里描述的特征。一些实施方式可以在与计算机网络断开连接或间歇地连接到计算机网络的客户端或服务器设备上提供本文所述的一个或多个特征。在一些示例中,包括或连接到显示设备的客户端设备可以检查和显示存储在客户端设备本地的存储设备上的图像(例如,不通过通信网络连接),并且可以提供用户可看见的这里描述的特征和结果。
图2是示出根据一些实施方式来识别静态视频的示例方法200(例如,计算机实现的方法)的流程图。静态视频可以包括视频,其中视频的给定百分比的帧被确定为是静态的,如这里所描述的。静态视频还可以包括在视频的某些时间部分是静态的并且其中运动可以在其它时间部分发生的视频(例如,当对象移动或当拍摄图像的设备降低或移动等时,视频从开始到接近视频的结束是静态的)。或者,根据特定实施方式,其中运动发生在视频的某些部分(例如,开始,中间或结束)处的视频可被识别为运动视频或静态视频。通常,用于识别静态视频的参数可以基于在此公开的主题的预期应用或实施方式来添加,调整,配置或移除。这样的参数可以包括用于局部运动估计的阈值,用于对象运动得分的阈值,用于具有满足阈值的对象运动得分的帧与视频的其它帧的比率的阈值等。下面参考图4更详细地讨论阈值。
在一些实施方式中,方法200(和方法400)可以例如在如图1所示的服务器系统102上实现。在其它实施方式中,方法200的一些或全部可以在如图1所示的一个或多个客户端设备120,122,124或126,一个或多个服务器设备,和/或服务器设备和客户端设备两者上实现。在所描述的示例中,实现的系统包括一个或多个数字硬件处理器或处理电路("处理器"),以及一个或多个存储设备(例如,数据库106或其它存储器)。在一些实施方式中,一个或多个服务器和/或客户端的不同组件可以执行方法200的不同块或其它部分。
一些实施方式可以基于用户输入和/或设备情景(通过用户的许可获得)来启动方法200。例如,用户可以从所显示的用户界面中选择方法200的启动。在一些实施方式中,方法200或其部分可以由用户通过用户输入的指导来执行。例如,一些实施方式可以包括向用户呈现选项以启用禁用静态视频识别。在没有来自用户的明确许可的情况下,系统可以不使用,处理或存储用户信息,例如视频和图像信息等。
在一些实施方式中,方法200可被自动调用(或在用户许可的情况下被自动调用)。例如,静态视频的识别可以在用户拍摄照片时自动执行,并且可以用于确定是否向用户呈现与照片相关联的视频(例如,如果视频被识别为静态,则视频可以不被呈现或存储,并且如果视频被确定为运动视频,则视频可以被存储并呈现给用户。例如,当用户观看与视频相关联的照片时)。
在一些实施方式中,方法200或方法的一部分可以由设备自动启动。例如,该方法(或其部分)可以周期性地执行,或基于一个或多个特定事件或条件的发生来执行。例如,这样的事件或条件可以包括由用户获取,由设备(例如,用户设备)接收,上传到设备(例如,用户设备)或以其他方式由设备(例如,用户设备)可访问的给定数量的照片,自从方法200的上次执行以来已经过了的预定时段,和/或在实现方法200的设备的设置中可以指定的一个或多个其他事件或条件发生。在一些实施方式中,这种条件可以由用户预先在存储的用户定制偏好中指定(在用户同意的情况下可以由设备或方法访问)。在一些示例中,设备(服务器或客户端)可以通过访问接收电子会话消息(如果接收到用户同意)的一个或多个应用来执行方法200。在另一个示例中,相机,蜂窝电话,平板计算机,可佩戴设备或其它客户端设备可以获取视频和静止图像,并且可以执行方法200。另外,或者可替换地,客户端设备可以通过网络向服务器发送一个或多个视频,并且服务器可以使用方法200来处理视频。关于方法200的上述讨论也适用于方法400。
在202,接收包括帧的输入视频。例如,视频可以由与用户相关联的客户端设备(例如移动设备)捕获。可以响应于相机或其它成像设备的快门按下来捕获视频以捕获帧。例如,用户可以打开智能电话或其它移动设备上的相机应用。相机应用可以在接收到快门按下指示之前开始获取视频图像,并且在接收到快门按下指示之后继续捕获视频。因此,该视频捕获了在智能手机上执行的相机应用内的快门按下之前和之后的瞬间。处理继续到204。
例如,如图3所示,视频302可以包括在快门按下指示310之前捕获的帧(304,306)和在快门按下指示310之后捕获的帧(308)。视频也可以以类似的方式在相机或其它图像获取设备内被捕获。预处理可以包括下采样,转换到灰度级和/或平滑。
在204处,对输入视频的帧进行预处理。下面结合图4的404-408描述示例性预处理的细节。处理继续到206。
在206,估计局部运动。局部运动包括作为视频的帧的子集的一部分的移动,诸如与叶子抖动相关联的运动。例如,可以计算局部运动矢量,其表示视频帧的一个或多个像素块(即,像素段或像素组)内的局部运动的估计。下面在图4的410-424中描述示例性局部运动估计的细节。处理继续到208。
在208处,补偿全局运动。全局运动可以包括在视频的所有或大部分帧中发生的运动。全局运动可能是由手部运动引起的。例如,用智能电话拍摄图片的用户可能由于手抖动、意外地掉落智能电话等而在捕获图像之前,期间和/或之后具有一些手的移动。用户的手移动可以作为视频内的全局运动出现,该视频覆盖了从快门按下之前到快门按下之后的时间段。全局运动补偿寻求减少或消除全局运动的影响,以允许系统比如果没有补偿全局运动伪影更精确地识别静态视频。下面在图4的426-428处描述示例性全局运动补偿的细节。处理继续到210。
在块210中,基于已经通过全局运动补偿调整的局部运动估计的熵来计算对象运动得分。下面在图4的430-432处描述基于熵的对象运动得分计算的细节。处理继续到212。
在212,对象运动得分被归一化。处理继续到214。
在214,确定输入视频是否是静态视频。确定可包括使用如本文所述的系统或方法来识别静态场景或对象的视频,并提供静态场景或对象的视频(或当没有静态视频识别时的运动视频)的指示。基于该确定,处理继续到216或218。
如果输入视频不是静态视频,则在216,输入视频和帧都被提供给用户。在一些实施例中,输入视频和帧都被包括在存储器中。如果输入视频是静态视频,则在218,帧被提供给用户,而不是输入视频被提供给用户。在一些实施例中,将帧而不是输入视频保存在存储器中。
在附图中2和4,各个块(例如,分别是块202-218和402-440)被示出为顺序执行。然而,应当理解,这些块中的一个或多个可以被重新布置以便于适应特定的实施方式,并且这些块或其部分可以在一些实施方式中同时执行。还应当理解,在一些示例中,可以消除各种块,将其划分为附加块,和/或与其它块组合。然后,该表可以被用于基于表中的值来确定阈值。
图4是示出根据一些实施方式的识别静态视频的示例方法的流程图。在图4中,402和412是数据或数据存储,并且以虚线示出以帮助说明该方法。
在操作中,获得视频帧402。可以从视频的一个或多个视频帧中获得输入视频帧,其中在接收快门按下指示之前和在接收快门按下指示之后获得视频帧。例如,可以在快门按下指示之前和之后的预定时间量捕获视频帧,例如在快门按下指示之前和之后的两秒钟。
在404,对视频帧进行下采样。下采样可以包括减小视频帧的大小(文件大小,帧大小,视频分辨率等),以提高处理时间,减少存储器使用等。处理继续到406。
在406,视频帧被转换为灰度级。因为颜色可能不是识别静态视频所必需的,所以转换到灰度级可有助于加快处理时间并减少存储器使用。处理继续到408。
在408处,对下采样的灰度级图像进行平滑,如下所述。
404-408可以包括预处理。例如,输入视频帧402可以具有高分辨率,例如4032×3024。为了减少计算,首先将输入视频帧402下采样为小得多的帧I,例如64×48。在某些情况下,输入视频帧可以是Bayer(拜耳)红绿蓝(RGB)格式或YUV格式。灰度级帧可用于检测是否存在运动,因此彩色视频帧可被转换为灰度级帧。例如,获得64×48Bayer帧并对其进行下采样。通过对R,Gr,Gb,B通道求平均,可以将Bayer帧转换为灰度图像。为了快速地将12/14/16位Bayer数据转换为8位并保持动态范围,计算拜耳帧的平均值并通过desired_average/average_value来缩放像素,其中desired_average是手动选择的值,例如,desired_average=128。
为了提高该技术对图像噪声的鲁棒性,可以通过高斯滤波器对输入帧I进行平滑,并且将得到的帧表示为I_smoothed。高斯平滑的前一帧被表示为I_smoothed_previous。
在预处理之后,例如在框410-424中估计局部运动。处理继续到410。
在410处,使用来自帧缓冲器412的前一帧和当前视频帧402来计算时间梯度。在414处,使用当前视频帧来计算空间梯度。
在一些实施方式中,为了加速局部运动估计,可以预先计算输入帧的空间梯度和时间梯度。例如,可以如下计算空间梯度和时间梯度:
将所有曝光过度的像素(例如,强度高于阈值(例如,“over_expose_threshold”)的像素)和曝光不足的像素(例如,强度低于阈值(例如,“under_expose_threshold”)的像素)标记为无效像素。
Valid(x,y)=1,如果under_expose_threshold<=I_smoothed(x,y)<=over_expose_threshold
并且
under_expose_threshold<I_smoothed_previous(x,y)<over_expose_threshold
并且
under_expose_threshold<I_smoothed_previous(x+1,y)<over_expose_threshold
并且
under_expose_threshold<I_smoothed_previous(x-1,y)<over_expose_threshold
并且
under_expose_threshold<I_smoothed_previous(x,y+1)<over_expose_threshold
并且
under_expose_threshold<I_smoothed_previous(x,y-1)<over_expose_threshold
对于其他的,Valid(x,y)=0
对于Valid(x,y)=1的有效像素,如下计算三个梯度I_t(x,y),I_x(x,y),I_y(x,y):
时间梯度,即I_smoothed和I_smoothed_previous之间的像素差被表示为I_t(x,y)=I_smoothed(x,y)-I_smoothed_previous(x,y)。
沿x方向的I_smoothed的空间梯度被表示为
I_x(x,y)=(I_smoothed(x+1,y)-I_smoothed(x-1,y))/2。
沿y方向的I_smoothed的空间梯度被表示为
I_y(x,y)=(I_smoothed(x,y+1)-I_smoothed(x,y-1))/2。
对于Valid(x,y)=0的无效像素,设置I_t(x,y)=I_x(x,y)=I_y(x,y)=0。
处理继续到416。
在416处,生成点的网格,并且在418处,为每个网格点确定像素块。
例如,计算帧内的点p(i,j)的网格来进行局部运动估计,其中i在1和网格宽度之间,j在1和网格高度之间。当计算网格时,可以排除每一侧的一定百分比的余量,例如6.25%。网格点可以均匀间隔,例如沿着x方向间隔4个像素,并且沿着y方向间隔4个像素。例如,如果帧大小是64×48,则在四侧上排除64×6.25%=4个像素,留下网格宽度=15、网格高度=11的网格。
处理继续到420。
在420,计算每个像素块的统计信息。例如:
对于网格中的每个点p(i,j),从I_smoothed得到patchWidth xpatchheight(例如,patchWidth=patchHeight=7)的块。
首先收集此块的一组统计信息:
Ixx是块内所有像素的I_x(x,y)*I_x(x,y)的平均值。
Iyy是块内所有像素的I_y(x,y)*I_y(x,y)的平均值。
Ixy是块内所有像素的I_x(x,y)*I_y(x,y)的平均值。
1xt是块片内所有像素的I_x(x,y)*I_t(x,y)的平均值。
Iyt是块内所有像素的I_y(x,y)*I_t(x,y)的平均值。
统计信息的计算可以通过使用积分图像来优化。
处理继续到422。
在422,确定每个块是否具有满足纹理阈值的纹理。检查块的纹理可能是有帮助的,因为使用无纹理块来检测运动是无用的。而且,边缘上的块可能不会有助于使用,因为运动可以沿着边缘检测是任意的。结果,如果纹理不能满足纹理阈值,则在一些实施例中,方法400执行从402开始的步骤,直到纹理满足纹理阈值。检查适当的纹理可以包括:
上述块的Hessian矩阵是2×2矩阵:
{Ixx Ixy
Ixy Iyy}
该矩阵的行列式表示为det。该矩阵具有两个特征值。较大的一个被表示为最大特征值(max-eigenvalue),而较小的一个被表示为最小特征值(min_eigenvalue)。
块必须满足以下条件才能被认为具有足够的纹理:
det>0且
min_eigenvalue>特征值阈值*帧宽度*帧高度
max-eigenvalue<特征值比率阈值*min_eigenvalue
可以手动调节特征值阈值,并且典型的值是0.0025。
特征值比率阈值也可以手动调节,并且典型的值为5。
如果块没有通过上述条件检查,则将该块的运动矢量设置为不可用,并且在以下步骤中排除该块。
motion(运动)_x=不可用。
motion(运动)_y=不可用。
对于具有满足纹理阈值的纹理的块,处理继续到424。
在424处,计算局部运动矢量以估计对应块的局部运动。局部运动矢量可以对应于来自经平滑的视频帧内的一个或多个候选像素块中的相应候选像素块,其中局部运动矢量基于空间梯度和时间梯度。例如:
motion_x=(-Ixt*Iyy+Iyt*Ixy)/det
motion_y=(Ixt*Ixy-Iyt*Ixx)/det
处理继续到426。
在426,计算全局运动矢量以估计全局运动。在一些实施例中,全局运动矢量对应于经平滑的视频帧。因为当用户在移动设备上捕获照片或视频时经常有小的手移动,所以估计当前帧和前一帧之间的全局相机运动对于补偿全局运动是有用的。相机运动可以被建模为平移矢量[global_motion_x,global_motion_y],并通过对来自前一步骤的有效运动矢量求平均来估计。或者,如果有更多的计算可用,则仿射模型或单应性模型可与随机样本一致(RANSAC)一起使用,以更精确地估计全局运动。处理继续到428。
在428,通过从局部运动矢量中减去全局运动矢量来计算对象运动矢量。例如:
从运动矢量中减去全局运动以获得对象运动矢量[subject_motion_x,subject_motion_y]=[motion_x-global_motion_x,motion_y-global_motion_y]。
处理继续到430。
在430处,计算每个块的得分并将其放置到得分映射中。例如:
将运动矢量的大小转换为每个块的0和1之间的得分,以创建得分映射(scoremap),如下所示:
score(i,j)=1-exp(-(subject_motion_x(i,j)*subject_motion_x(i,j)+
subject_motion_y(i,j)*subject_motion_y(i,j))/motion_param。
可以手动地确定motion_param(运动参数),并且在一些实施方式中,典型的值是3。
处理继续到432。
在432,为视频帧计算基于熵的对象运动得分。对象运动得分可以基于对应的局部运动矢量和全局运动矢量。例如:
首先,如下计算得分映射的熵得分:
对于所有的k和l,total_score=sum(score(k,l)+ε)。
p(k,l)=(score(k,l)+ε)/total_score。
熵=-sum(Log[p(k,1)]*p(k,1))
ε可以是小数,以避免由0引起的问题。
然后,使用非线性映射函数,将熵映射到与经平滑的视频帧相对应的subject_motion_score中,其中subject_motion_score在0和1之间:
subject_motion_score=1-exp(熵*subject_motion_param1)*subject_motion_param2
subject_motion_param1和subject_motion_param2是手动调解的两个参数。
当在场景中存在大的对象运动时,该对象运动得分大。当场景是静态时,它非常接近于0。
处理继续到434。
在434,对一个或多个帧的对象运动得分进行归一化。例如:
对于每个视频,被处理用于静态视频识别的每个帧(具有帧号i)接收subject_motion_score(i)(对象运动得分(i))。对象运动得分的最大值被表示为:
对所有i,subject_motion_score_max=max(subject_motion_score(i))
如果subject_motion_score_i不太小,则通过subject_motion_score_max对subject_motion_score进行归一化。例如:
normalized_subject_motion_score_i>normalized_subject_motion_min_threshold时,
normalized_subject_motion_score_i=subject_motion_score_i/
subject_motion_score_max
否则,normalized_subject_motion_score_i=subject_motion_score_i
处理继续到436。
在436,对归一化的对象运动得分进行阈值处理。例如:
计算具有低归一化对象运动得分的帧的数量。
number_of_static_frames=count(normalized_subject_motion_score_i<normalized_subject_motion_score_threshold)。
处理继续到438。
在438处,将被识别为静态的视频帧与视频中的所有帧的比率与静态帧比率阈值进行比较。例如:
如果静态帧数(number_of_static_frames)/(number_of_all_frames)所有帧数>静态帧比率阈值,将视频标记为静态视频,否则不将视频标记为静态视频。
处理继续到440。
在440处,基于是否将视频识别为静态视频来采取动作。例如,如果视频被识别为静态,则执行一个操作,并且如果视频被识别为非静态,则执行不同的操作。在一些示例中,当视频被识别为静态时,视频可被标记为静态,对应于视频的快门图像(或静止图像)可被保留在存储器中,且视频可被从存储器中删除。当视频被识别为非静态时,快门图像(或静止图像)和视频都可以被保留在存储器(例如,存储器)中,并且在一些示例中,视频可以被呈现给用户,例如,在用户设备或其它设备的显示设备上被显示为连续帧。
图5是可以用于实现这里描述的一个或多个特征的示例设备500的框图。在一个示例中,设备500可用于实现计算机设备,例如服务器设备(例如,图1的服务器设备104),并执行本文所述的适当方法实施方式。设备500可以是任何合适的计算机系统,服务器或其它电子或硬件设备。例如,设备500可以是大型计算机,台式计算机,工作站,便携式计算机或电子设备(便携式设备,移动设备,蜂窝电话,智能电话,平板计算机,电视,电视机顶盒,个人数字助理(PDA),媒体播放器,游戏设备,可佩戴设备等)。在一些实施方式中,设备500包括处理器502,存储器504和I/O接口506。
处理器502可以是执行程序代码并控制设备500的基本操作的一个或多个处理器和/或处理电路。“处理器”包括处理数据,信号或其它信息的任何合适的硬件和/或软件系统,机制或组件。处理器可包括具有通用中央处理单元(CPU),多个处理单元,用于实现功能的专用电路的系统,或其它系统。处理不必限于特定的地理位置,或者具有时间限制。例如,处理器可以以“实时”,“离线”,“批处理模式”等方式执行其功能。部分处理可以在不同的时间和不同的位置由不同的(或相同的)处理系统执行。计算机可以是与存储器通信的任何处理器。
存储器504通常被提供在设备500中以供处理器502访问,并且可以是任何合适的处理器可读存储介质,例如随机存取存储器(RAM),只读存储器(ROM),电可擦只读存储器(EEPROM),闪存等,适于存储由处理器执行的指令,并且与处理器502分离地定位和/或与处理器502集成在一起。存储器504可以存储由处理器502在服务器设备500上操作的软件,包括操作系统508,一个或多个应用510,例如静态视频识别应用512,其它应用514和应用数据520。在一些实施方式中,应用510可包括使处理器502能够执行本文所述的功能(例如,图2和/或4的方法的一些或全部)的指令。
其它应用514(或引擎)也可或替代地包括在应用510中,例如相机应用,电子邮件应用,SMS和其它电话通信应用,web浏览器应用,媒体显示应用,通信应用,web托管引擎或应用,社交网络引擎或应用等。存储器504中的任何软件可替换地存储在任何其它合适的存储位置或计算机可读介质上。此外,存储器504(和/或其它连接的存储设备)可以存储应用数据,诸如电子会话消息,电子会话消息组,会话帧元素,用户数据和偏好,以及在这里描述的特征中使用的其它指令和数据。存储器504和任何其它类型的存储(磁盘,光盘,磁带或其它有形介质)可以被认为是“存储”或“存储设备”。例如,应用数据520可以包括图像522和视频524。
I/O接口506可以提供使设备500能够与其它系统和设备接口的功能。例如,网络通信设备,存储设备(例如,存储器和/或数据库106)和输入/输出设备可以经由I/O接口506进行通信。在一些实施方式中,I/O接口可以连接到包括输入设备(键盘,定点设备,触摸屏,麦克风,相机,扫描仪等)和/或输出设备(显示设备,扬声器设备,打印机,电动机,触觉输出设备等)的接口设备。音频输入/输出设备530是可用于接收音频输入并提供音频输出(例如,语音接口输出)的输入和输出设备的示例,如本文所述。音频输入/输出设备530可以经由本地连接(例如,有线总线,无线接口)和/或经由联网连接被连接到设备500,并且可以是任何合适的设备,其一些示例在下面描述。
为了便于说明,图5示出了处理器502,存储器504,I/O接口506以及软件块508和510中的每一个的一个块。这些块可以表示一个或多个处理器或处理电路,操作系统,存储器,I/O接口,应用和/或软件模块。在其它实施方式中,设备500可以不具有所示的所有组件和/或可以具有包括其它类型的元件的其它元件,而不是,或除了这里所示的那些元件之外。虽然服务器系统102被描述为执行本文中的一些实施方式中所描述的操作,但是服务器系统102或类似系统的任何合适的组件或组件的组合,或者与这样的系统相关联的任何合适的处理器或多个处理器可以执行所描述的操作。
客户端设备也可以实现这里描述的特征和/或与这里描述的特征一起使用,例如,图1中所示的客户端设备120-126。示例客户端设备可以是包括与设备500类似的一些组件的计算机设备,例如处理器502,存储器504和I/O接口506。适于客户端设备的操作系统,软件和应用可以在存储器中提供并由处理器使用,例如图像管理软件,客户端组通信应用软件等。用于客户端设备的I/O接口可以连接到网络通信设备以及输入和输出设备,例如用于捕获图像或视频的相机,用于输出声音的音频扬声器设备,用于输出图像或视频的显示设备,或其它输出设备。
本文描述的一个或多个方法(例如,方法200和400)可以由可以在计算机上执行的计算机程序指令或代码来实现。例如,该代码可以由一个或多个数字处理器(例如,微处理器或其他处理电路)实现,并且可以存储在计算机程序产品上,该计算机程序产品包括非暂时性计算机可读介质(例如,存储介质),例如,磁、光、电磁或半导体存储介质,包括半导体或固态存储器,磁带,可移动计算机磁盘,随机存取存储器(RAM),只读存储器(ROM),闪存,刚性磁盘,光盘,固态存储器驱动器等。程序指令还可以包含在电子信号中,并作为电子信号提供,例如以软件的形式作为从服务器(例如,分布式系统和/或云计算系统)递送的服务(SaaS)。或者,可在硬件(逻辑门等)中或在硬件和软件的组合中实施一个或多个方法。示例硬件可以是可编程处理器(例如现场可编程门阵列(FPGA),复杂可编程逻辑器件),通用处理器,图形处理器,专用集成电路(ASIC)等。一个或多个方法可以作为在系统上运行的应用的一部分或组件来执行,或者作为结合其它应用和操作系统运行的应用或软件来执行。
在此描述的一个或多个方法可以运行在独立的程序中,该独立的程序可以运行在任何类型的计算设备上,运行在web浏览器上的程序,运行在移动计算设备(例如,蜂窝电话,智能电话,平板计算机,可佩戴设备(手表,臂带,珠宝,头饰,护目镜,眼镜等),膝上型计算机等)上的移动应用(“app”)。在一个示例中,可以使用客户端/服务器架构,例如,移动计算设备(作为客户端设备)将用户输入数据发送到服务器设备,并且从服务器接收用于输出(例如,用于显示)的最终输出数据。在另一示例中,可以在移动计算设备上的移动应用(和/或其它应用)内执行所有计算。在另一个例子中,计算可以在移动计算设备和一个或多个服务器设备之间被分开。
存储器中的任何软件可替换地存储在任何其它合适的存储位置或计算机可读介质上。此外,存储器(和/或其他连接的存储设备)可以存储一个或多个消息,一个或多个分类,电子百科全书,词典,辞典,知识库,消息数据,语法,用户偏好,和/或在这里描述的特征中使用的其它指令和数据。存储器和任何其它类型的存储(磁盘,光盘,磁带或其它有形介质)可以被认为是“存储”或“存储设备”。
I/O接口可以提供使服务器设备能够与其它系统和设备接口的功能。接口设备可以被包括作为设备的一部分,或者可以是分离的并且与设备通信。例如,网络通信设备、存储设备(例如,存储器和/或数据库106)和输入/输出设备可以通过I/O接口进行通信。在一些实施方式中,I/O接口可以连接到接口设备,诸如输入设备(键盘,定点设备,触摸屏,麦克风,相机,扫描仪,传感器等)和/或输出设备(显示设备,扬声器设备,打印机,电动机等)。
可以连接到I/O接口的接口设备的一些示例可以包括一个或多个显示设备,该显示设备可以用于显示内容,例如图像,视频,和/或这里描述的输出应用的用户接口。显示设备可以经由本地连接(例如,显示总线)和/或经由联网连接而连接到设备,并且可以是任何合适的显示设备。显示设备可以包括任何合适的显示设备,例如LCD,LED,或等离子体显示屏,CRT,电视,监视器,触摸屏,3-D显示屏,或其它可视显示设备。例如,显示设备可以是在移动设备上提供的平面显示屏,在护目镜或耳机设备中提供的多个显示屏,或者用于计算机设备的监视器屏幕。
I/O接口可以接口到其它输入和输出设备。一些示例包括一个或多个相机或能够捕获图像的其它成像设备。一些实施方式可以提供用于捕获声音(例如,作为所捕获图像的一部分,语音命令等)的麦克风,用于输出声音的音频扬声器设备,或其它输入和输出设备。
尽管已经针对特定的实施方式进行描述,但是这些特定的实施方式仅仅是说明性的,而不是限制性的。示例中所示的概念可应用于其它示例和实施方式。
在这里讨论的某些实施方式可以收集或使用关于用户的个人信息(例如,用户数据,关于用户的社交网络的信息,用户的位置和用户在该位置的时间,用户的生物信息,用户的活动和人口统计信息)的情况下,向用户提供一个或多个机会来控制是否收集信息,是否存储了个人信息,是否使用个人信息,以及如何收集,存储和使用关于用户的信息。也就是说,在此讨论的系统和方法收集,存储和/或使用用户个人信息,特别是在从相关用户接收到明确的授权时这样做。例如,向用户提供对程序或特征是否收集关于该特定用户或与该程序或特征相关的其他用户的用户信息的控制。向要为其收集个人信息的每个用户呈现一个或多个选项,以允许对与该用户相关的信息收集进行控制,从而提供关于是否收集信息以及关于要收集信息的哪些部分的许可或授权。例如,可以通过通信网络向用户提供一个或多个这样的控制选项。此外,在存储或使用某些数据之前,可以以一种或多种方式来处理这些数据,以便去除个人可识别的信息。作为一个示例,可以处理用户的身份,从而不能确定个人可识别的信息。作为另一个示例,用户的地理位置可以被推广到更大的区域,使得用户的特定位置不能被确定。
注意,本公开中描述的功能块,操作,特征,方法,设备和系统可以被集成或划分为系统,设备和功能块的不同组合,如本领域技术人员所公知的。可以使用任何合适的编程语言和编程技术来实现特定实施方式的例程。可以采用不同的编程技术,例如,过程或面向对象。例程可以在单个处理设备或多个处理器上执行。尽管步骤,操作或计算可以以特定的顺序呈现,但是在不同的特定实施方式中可以改变该顺序。在一些实施方式中,本说明书中示出为顺序的多个步骤或操作可以同时执行。

Claims (20)

1.一种识别静态视频的方法,其特征在于,包括:
从输入视频的视频帧中获取输入视频帧,其中在接收到快门按下指示之前和在接收到所述快门按下指示之后,通过以下获取所述视频帧:
对于每个所述输入视频帧:
对所述输入视频帧进行下采样,以生成经下采样的视频帧;
对所述经下采样的视频帧进行平滑处理,以生成经平滑的视频帧;
计算所述经平滑的视频帧的时间梯度和空间梯度;
通过计算局部运动矢量来估计局部运动,所述局部运动矢量对应于来自所述经平滑的视频帧内的一个或多个候选像素块中的相应候选像素块,其中所述局部运动矢量是基于所述空间梯度和所述时间梯度的;
通过计算与所述经平滑的视频帧相对应的全局运动矢量来估计全局运动;
基于对应的局部运动矢量和全局运动矢量,计算一个或多个对象运动矢量;
将所述一个或多个对象运动矢量转换为得分映射;
基于所述得分映射计算熵得分;以及
将所述熵得分映射到与所述经平滑的视频帧相对应的对象运动得分;
基于所述输入视频帧的所述对象运动得分来识别所述输入视频帧的静态帧的数量;
如果静态帧的数量与所述视频帧的数量的比率满足静态帧阈值,则确定所述输入视频是静态视频,并且如果所述比率不满足所述静态帧阈值,则确定所述输入视频是运动视频;
如果所述输入视频被识别为所述静态视频,则进行第一操作,其中,所述第一操作包括将所述输入视频标记为静态,将对应于所述输入视频的快门图像保留在存储器中,以及从所述存储器中删除所述输入视频;并且
如果所述输入视频被识别为所述运动视频,则进行第二操作,其中,所述第二操作包括将对应于所述输入视频的快门图像和所述输入视频保留在所述存储器中。
2.如权利要求1所述的识别静态视频的方法,其特征在于,还包括在平滑之前将所述经下采样的视频帧从彩色转换成灰度级。
3.如权利要求1所述的识别静态视频的方法,其特征在于,计算所述经平滑的视频帧的所述空间梯度和所述时间梯度包括:
将所述经平滑的视频帧中的曝光不足的像素和所述经平滑的视频帧中的曝光过度的像素标记为无效;和
对于所述经平滑的视频帧内的有效像素:
计算时间梯度;
计算x方向上的空间梯度;和
计算y方向上的空间梯度。
4.如权利要求3所述的识别静态视频的方法,其特征在于,所述一个或多个候选像素块由以下确定:
在所述经平滑的视频帧内选择一个或多个网格点作为参考点,用于运动估计;
针对与所述一个或多个网格点中的每一个网格点对应的像素块选择像素块宽度和像素块高度;
计算每个像素块的统计信息;
确定所述像素块是否具有满足阈值纹理值的纹理;并且
如果所述像素块具有满足所述阈值纹理值的纹理,则将所述像素块识别为用于运动估计的候选像素块。
5.如权利要求1所述的识别静态视频的方法,其特征在于,计算所述局部运动矢量包括基于所述候选像素块中的像素的所述空间梯度和所述时间梯度来计算局部x运动值并计算局部y运动值。
6.如权利要求1所述的识别静态视频的方法,其特征在于,计算所述全局运动矢量包括基于有效局部运动矢量的平均值来计算所述全局运动矢量。
7.如权利要求1所述的识别静态视频的方法,其特征在于,计算所述一个或多个对象运动矢量包括从相应的局部运动矢量中减去所述全局运动矢量。
8.如权利要求1所述的识别静态视频的方法,其特征在于,将所述一个或多个对象运动矢量转换成所述得分映射包括对所述经平滑的视频帧内的像素的相应对象运动矢量的大小进行归一化。
9.如权利要求1所述的识别静态视频的方法,其特征在于,计算与关于所述得分映射的所述熵得分成反比的所述对象运动得分包括,当运动被定位时,向所述经平滑的视频帧分配较高得分,并且当运动在所述经平滑的视频帧内是全局的时,向所述经平滑的视频帧分配较低得分。
10.一种识别静态视频的系统,其特征在于,包括:
一个或多个处理器;和
存储器,在所述存储器上存储有指令,所述指令在由所述一个或多个处理器执行时使所述一个或多个处理器进行以下操作:
从输入视频的视频帧中获取输入视频帧,其中在接收到快门按下指示之前和在接收到所述快门按下指示之后,通过以下获取视频帧:
对于每个所述输入视频帧:
对所述输入视频帧进行下采样,以生成经下采样的视频帧;
对所述经下采样的视频帧进行平滑处理,以生成经平滑的视频帧;
计算所述经平滑的视频帧的时间梯度和空间梯度;
通过计算局部运动矢量来估计局部运动,所述局部运动矢量对应于来自所述经平滑的视频帧内的一个或多个候选像素块中的相应候选像素块,其中所述局部运动矢量是基于所述空间梯度和所述时间梯度的;
通过计算与所述经平滑的视频帧相对应的全局运动矢量来估计全局运动;
基于对应的局部运动矢量和全局运动矢量计算一个或多个对象运动矢量;
将所述一个或多个对象运动矢量转换为得分映射;
基于所述得分映射计算熵得分;以及
将所述熵得分映射到与所述经平滑的视频帧相对应的对象运动得分;
基于所述输入视频帧的所述对象运动得分来识别所述输入视频帧的静态帧的数量;
如果静态帧的数量与所述视频帧的数量的比率满足静态帧阈值,则确定所述输入视频是静态视频,并且如果所述比率不满足所述静态帧阈值,则确定所述输入视频是运动视频;
如果所述输入视频被识别为所述静态视频,则进行第一操作,其中,所述第一操作包括将所述输入视频标记为静态,将对应于所述输入视频的快门图像保留在存储器中,以及从所述存储器中删除所述输入视频;并且
如果所述输入视频被识别为所述运动视频,则进行第二操作,其中所述第二操作包括将对应于所述输入视频的快门图像和所述输入视频保留在所述存储器中。
11.如权利要求10所述的系统,其特征在于,计算所述局部运动矢量包括基于所述候选像素块中的像素的所述空间梯度和所述时间梯度来计算局部x运动值并计算局部y运动值。
12.如权利要求10所述的系统,其特征在于,计算所述全局运动矢量包括基于有效局部运动矢量的平均值来计算所述全局运动矢量。
13.如权利要求10所述的系统,其特征在于,所述指令还使所述一个或多个处理器进行操作,所述操作包括在平滑之前将所述经下采样的视频帧从彩色转换成灰度级。
14.如权利要求10所述的系统,其特征在于,计算所述经平滑的视频帧的所述空间梯度和所述时间梯度包括:
将所述经平滑的视频帧中的曝光不足的像素和所述经平滑的视频帧中的曝光过度的像素标记为无效;和
对于所述经平滑的视频帧内的有效像素:
计算时间梯度;
计算x方向上的空间梯度;和
计算y方向上的空间梯度。
15.如权利要求14所述的系统,其特征在于,所述一个或多个候选像素块由以下确定:
在所述经平滑的视频帧内选择一个或多个网格点作为参考点,用于运动估计;
针对与所述一个或多个网格点中的每一个网格点对应的像素块选择像素块宽度和像素块高度;
计算每个像素块的统计信息;
确定所述像素块是否具有满足阈值纹理值的纹理;并且
如果所述像素块具有满足所述阈值纹理值的纹理,则将所述像素块识别为用于运动估计的候选像素块。
16.一种具有指令的非暂时性计算机可读介质,所述指令在由一个或多个计算机执行时使所述一个或多个计算机进行操作,所述操作包括:
从输入视频的视频帧中获取输入视频帧,其中在接收到快门按下指示之前和在接收到所述快门按下指示之后,通过以下获取所述视频帧:
对于每个所述输入视频帧:
对所述输入视频帧进行下采样,以生成经下采样的视频帧;
对所述经下采样的视频帧进行平滑处理,以生成经平滑的视频帧;
计算所述经平滑的视频帧的时间梯度和空间梯度;
通过计算局部运动矢量来估计局部运动,所述局部运动矢量对应于来自所述经平滑的视频帧内的一个或多个候选像素块中的相应候选像素块,其中所述局部运动矢量是基于所述空间梯度和所述时间梯度的;
通过计算与所述经平滑的视频帧相对应的全局运动矢量来估计全局运动;
基于对应的局部运动矢量和全局运动矢量,计算一个或多个对象运动矢量;
将所述一个或多个对象运动矢量转换为得分映射;
基于所述得分映射计算熵得分;以及
将所述熵得分映射到与所述经平滑的视频帧相对应的对象运动得分;
基于所述输入视频帧的所述对象运动得分来识别所述输入视频帧的静态帧的数量;
如果静态帧的数量与所述视频帧的数量的比率满足静态帧阈值,则确定所述输入视频是静态视频,并且如果所述比率不满足所述静态帧阈值,则确定所述输入视频是运动视频;
如果所述输入视频被识别为所述静态视频,则进行第一操作,其中,所述第一操作包括将所述输入视频标记为静态,将对应于所述输入视频的快门图像保留在存储器中,以及从所述存储器中删除所述输入视频;并且
如果所述输入视频被识别为所述运动视频,则进行第二操作,其中,所述第二操作包括将对应于所述输入视频的快门图像和所述输入视频保留在所述存储器中。
17.如权利要求16所述的计算机可读介质,其特征在于,所述操作还包括在平滑之前将所述经下采样的视频帧从彩色转换成灰度级。
18.如权利要求16所述的计算机可读介质,其特征在于,计算所述经平滑的视频帧的所述空间梯度和所述时间梯度包括:
将所述经平滑的视频帧中的曝光不足的像素和所述经平滑的视频帧中的曝光过度的像素标记为无效;和
对于所述经平滑的视频帧内的有效像素:
计算时间梯度;
计算x方向上的空间梯度;和
计算y方向上的空间梯度。
19.如权利要求18所述的计算机可读介质,其特征在于,所述一个或多个候选像素块由以下确定:
在所述经平滑的视频帧内选择一个或多个网格点作为参考点,用于运动估计;
针对与所述一个或多个网格点中的每一个网格点对应的像素块选择像素块宽度和像素块高度;
计算每个像素块的统计信息;
确定所述像素块是否具有满足阈值纹理值的纹理;并且
如果所述像素块具有满足所述阈值纹理值的纹理,则将所述像素块识别为用于运动估计的候选像素块。
20.如权利要求16所述的计算机可读介质,其特征在于,计算所述局部运动矢量包括基于所述候选像素块中的像素的所述空间梯度和所述时间梯度来计算局部x运动值并计算局部y运动值。
CN201980005872.8A 2018-03-11 2019-03-08 识别静态视频的方法和系统 Active CN111819837B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111611460.4A CN114143555A (zh) 2018-03-11 2019-03-08 静态视频识别

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201862641383P 2018-03-11 2018-03-11
US62/641,383 2018-03-11
PCT/US2019/021442 WO2019177906A1 (en) 2018-03-11 2019-03-08 Static video recognition

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202111611460.4A Division CN114143555A (zh) 2018-03-11 2019-03-08 静态视频识别

Publications (2)

Publication Number Publication Date
CN111819837A CN111819837A (zh) 2020-10-23
CN111819837B true CN111819837B (zh) 2022-01-14

Family

ID=65861729

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201980005872.8A Active CN111819837B (zh) 2018-03-11 2019-03-08 识别静态视频的方法和系统
CN202111611460.4A Pending CN114143555A (zh) 2018-03-11 2019-03-08 静态视频识别

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN202111611460.4A Pending CN114143555A (zh) 2018-03-11 2019-03-08 静态视频识别

Country Status (5)

Country Link
US (2) US11006122B2 (zh)
EP (2) EP3707895B1 (zh)
JP (2) JP6946566B2 (zh)
CN (2) CN111819837B (zh)
WO (1) WO2019177906A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113870303A (zh) * 2020-06-30 2021-12-31 晶晨半导体(上海)股份有限公司 静态标识区域检测方法及模块、芯片、电子设备和介质
CN113411569B (zh) * 2021-06-15 2022-08-12 北京百度网讯科技有限公司 检测静态画面的方法和装置
CN113873099B (zh) * 2021-08-27 2024-04-12 山东信通电子股份有限公司 一种输电通道视频稳像方法、设备及介质
WO2023149188A1 (ja) * 2022-02-02 2023-08-10 ソニーグループ株式会社 信号処理装置および方法、並びにプログラム
CN117255222A (zh) * 2023-11-20 2023-12-19 上海科江电子信息技术有限公司 一种数字电视监测的方法、系统及应用

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002016867A (ja) * 2000-06-30 2002-01-18 Toshiba Corp 静止画取込システム、静止画保存方法および静止画識別方法
CN1691770A (zh) * 2004-04-29 2005-11-02 明基电通股份有限公司 动态判定视频数据的方法、储存媒体以及视频传送装置
CN101339661A (zh) * 2008-08-18 2009-01-07 清华大学 一种基于手持设备运动检测的实时人机交互方法和系统
CN101356797A (zh) * 2006-09-28 2009-01-28 卡西欧计算机株式会社 用于从视频中捕获并记录静止图像的成像装置和控制方法
CN101489031A (zh) * 2009-01-16 2009-07-22 西安电子科技大学 基于运动分类的自适应帧速率上转换方法
CN102246196A (zh) * 2008-09-29 2011-11-16 制造资源国际公司 利用单播放器向多个显示器提供变化内容的系统
CN103297752A (zh) * 2013-04-25 2013-09-11 杭州阿启视科技有限公司 一种视频监控方法及视频监控系统
CN103856764A (zh) * 2012-11-30 2014-06-11 浙江大华技术股份有限公司 一种利用双快门进行监控的装置
CN104144345A (zh) * 2013-09-18 2014-11-12 腾讯科技(深圳)有限公司 在移动终端进行实时图像识别的方法及该移动终端
CN105227927A (zh) * 2015-10-15 2016-01-06 桂林电子科技大学 一种监控视频数据存储方法及装置
CN106027893A (zh) * 2016-05-30 2016-10-12 广东欧珀移动通信有限公司 控制Live Photo生成的方法、装置及电子设备
CN110662042A (zh) * 2018-06-29 2020-01-07 英特尔公司 用于视频处理的准确全局运动补偿的全局运动估计和建模

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0767077A (ja) * 1993-08-30 1995-03-10 Sanyo Electric Co Ltd 映像記録再生装置
JP4234968B2 (ja) 2002-09-27 2009-03-04 富士フイルム株式会社 デジタルカメラ
US7408986B2 (en) 2003-06-13 2008-08-05 Microsoft Corporation Increasing motion smoothness using frame interpolation with motion analysis
CN101156450A (zh) * 2005-04-12 2008-04-02 皇家飞利浦电子股份有限公司 利用区域的动态高宽比的基于区域的3drs运动估计
JP2008131572A (ja) 2006-11-24 2008-06-05 Toshiba Corp 監視カメラ装置および監視カメラの撮影方法
JP4623111B2 (ja) * 2008-03-13 2011-02-02 ソニー株式会社 画像処理装置、画像処理方法及びプログラム
CN101778275B (zh) * 2009-01-09 2012-05-02 深圳市融创天下科技股份有限公司 一种自适应时间域和空间域分辨率框架的图像处理方法
JP5498059B2 (ja) 2009-06-02 2014-05-21 オリンパスイメージング株式会社 撮影装置、撮影方法、再生方法、画像処理装置、および画像処理用プログラム
JP5218508B2 (ja) * 2009-10-02 2013-06-26 株式会社ニコン 撮像装置
US9491464B2 (en) * 2011-08-29 2016-11-08 Beamr Imaging Ltd Controlling a video content system by computing a frame quality score
CN103139578A (zh) * 2011-11-24 2013-06-05 联咏科技股份有限公司 调整影像的运动景深的方法
JP2015111746A (ja) * 2012-04-09 2015-06-18 ソニー株式会社 画像処理装置、画像処理方法、プログラム
KR101931631B1 (ko) * 2012-05-02 2018-12-21 삼성전자주식회사 카메라 장치의 이미지 부호화장치 및 방법
US9070020B2 (en) * 2012-08-21 2015-06-30 International Business Machines Corporation Determination of train presence and motion state in railway environments
US9715903B2 (en) * 2014-06-16 2017-07-25 Qualcomm Incorporated Detection of action frames of a video stream
US9811732B2 (en) * 2015-03-12 2017-11-07 Qualcomm Incorporated Systems and methods for object tracking
GB2539198B (en) * 2015-06-08 2019-09-25 Imagination Tech Ltd Motion estimation using collocated blocks
CN107635101B (zh) * 2017-10-27 2020-07-03 Oppo广东移动通信有限公司 拍摄方法、装置、存储介质和电子设备

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002016867A (ja) * 2000-06-30 2002-01-18 Toshiba Corp 静止画取込システム、静止画保存方法および静止画識別方法
CN1691770A (zh) * 2004-04-29 2005-11-02 明基电通股份有限公司 动态判定视频数据的方法、储存媒体以及视频传送装置
CN101356797A (zh) * 2006-09-28 2009-01-28 卡西欧计算机株式会社 用于从视频中捕获并记录静止图像的成像装置和控制方法
CN101339661A (zh) * 2008-08-18 2009-01-07 清华大学 一种基于手持设备运动检测的实时人机交互方法和系统
CN102246196A (zh) * 2008-09-29 2011-11-16 制造资源国际公司 利用单播放器向多个显示器提供变化内容的系统
CN101489031A (zh) * 2009-01-16 2009-07-22 西安电子科技大学 基于运动分类的自适应帧速率上转换方法
CN103856764A (zh) * 2012-11-30 2014-06-11 浙江大华技术股份有限公司 一种利用双快门进行监控的装置
CN103297752A (zh) * 2013-04-25 2013-09-11 杭州阿启视科技有限公司 一种视频监控方法及视频监控系统
CN104144345A (zh) * 2013-09-18 2014-11-12 腾讯科技(深圳)有限公司 在移动终端进行实时图像识别的方法及该移动终端
CN105227927A (zh) * 2015-10-15 2016-01-06 桂林电子科技大学 一种监控视频数据存储方法及装置
CN106027893A (zh) * 2016-05-30 2016-10-12 广东欧珀移动通信有限公司 控制Live Photo生成的方法、装置及电子设备
CN110662042A (zh) * 2018-06-29 2020-01-07 英特尔公司 用于视频处理的准确全局运动补偿的全局运动估计和建模

Also Published As

Publication number Publication date
EP3707895B1 (en) 2021-07-28
EP3707895A1 (en) 2020-09-16
CN114143555A (zh) 2022-03-04
EP3823267B1 (en) 2023-05-10
EP3823267A1 (en) 2021-05-19
CN111819837A (zh) 2020-10-23
JP6946566B2 (ja) 2021-10-06
JP2022003797A (ja) 2022-01-11
JP2021506019A (ja) 2021-02-18
US20210258584A1 (en) 2021-08-19
US11917158B2 (en) 2024-02-27
US11006122B2 (en) 2021-05-11
US20210021833A1 (en) 2021-01-21
WO2019177906A1 (en) 2019-09-19

Similar Documents

Publication Publication Date Title
CN111819837B (zh) 识别静态视频的方法和系统
JP7110502B2 (ja) 深度を利用した映像背景減算法
US8854412B2 (en) Real-time automatic scene relighting in video conference sessions
US9639956B2 (en) Image adjustment using texture mask
AU2014331622B2 (en) Image blur with preservation of detail
US11538211B2 (en) Puppeteering remote avatar by facial expressions
CN107798654B (zh) 图像磨皮方法及装置、存储介质
US8983188B1 (en) Edge-aware smoothing in images
CN112258404A (zh) 图像处理方法、装置、电子设备和存储介质
JP2017507626A (ja) 関連アプリケーションに対するビデオ会議相互参照の改善
JP2021526693A (ja) ポーズ補正
US11776201B2 (en) Video lighting using depth and virtual lights
CN111429371A (zh) 图像处理方法、装置及终端设备
WO2021128835A1 (zh) 图像处理方法及装置、视频处理方法及装置、电子设备和存储介质
WO2022111269A1 (zh) 视频的细节增强方法、装置、移动终端和存储介质
US10282633B2 (en) Cross-asset media analysis and processing
CN114640815A (zh) 一种视频的处理方法、装置、电子设备及存储介质
CN111314627B (zh) 用于处理视频帧的方法和装置
US20230267620A1 (en) Computing platform using machine learning for foreground mask estimation

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant