CN113348486A - 具有选择性运动描述的图像显示 - Google Patents

具有选择性运动描述的图像显示 Download PDF

Info

Publication number
CN113348486A
CN113348486A CN201980090203.5A CN201980090203A CN113348486A CN 113348486 A CN113348486 A CN 113348486A CN 201980090203 A CN201980090203 A CN 201980090203A CN 113348486 A CN113348486 A CN 113348486A
Authority
CN
China
Prior art keywords
moving image
motion
image
motion score
threshold
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.)
Pending
Application number
CN201980090203.5A
Other languages
English (en)
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
Publication of CN113348486A publication Critical patent/CN113348486A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/246Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
    • G06T7/251Analysis of motion using feature-based methods, e.g. the tracking of corners or segments involving models
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/68Control of cameras or camera modules for stable pick-up of the scene, e.g. compensating for camera body vibrations
    • H04N23/681Motion detection
    • 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/20081Training; Learning
    • 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/20084Artificial neural networks [ANN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30176Document
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30196Human being; Person
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30196Human being; Person
    • G06T2207/30201Face
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30221Sports video; Sports image

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Multimedia (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • Artificial Intelligence (AREA)
  • Biomedical Technology (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Human Computer Interaction (AREA)
  • Signal Processing (AREA)
  • User Interface Of Digital Computer (AREA)
  • Image Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本文描述的实现方式涉及显示包括多个帧的运动图像的方法、设备和计算机可读介质。在一些实现方式中,计算机实现的方法包括基于多个帧来确定运动图像的运动得分。该方法进一步包括确定运动得分是否满足显示阈值。如果运动得分满足显示阈值,则该方法进一步包括通过连续地显示运动图像的多个帧来使得具有主体运动的运动图像被显示。如果运动得分不满足显示阈值,则该方法进一步包括通过显示运动图像的特定帧来使得没有主体运动的运动图像被显示。

Description

具有选择性运动描述的图像显示
背景技术
用户可以捕获图像,包括诸如照片的静态图像;包括主体运动的图像,有时也被称为运动剧照、运动照片或现场照片;360度图像;视频等。用于捕获或查看图像的设备,例如相机、智能手机、可穿戴设备、计算机等可能具有有限的容量以存储图像。包括主体运动的图像包括多个帧,可能需要比照片或静止图像更高的存储容量。在这种情况下,用户需要提供关于将图像存储到用户设备的本地存储器中的手动输入。
本文提供的背景技术描述是为了一般地呈现本公开的上下文。当前命名的发明人的工作,就其在本背景部分中描述的范围而言,以及在提交申请时可能不符合现有技术的描述方面,既没有明示也没有暗示承认作为与本公开相比的现有技术。
发明内容
本文描述的实现方式涉及一种显示包括多个帧的运动图像的方法、设备和计算机可读介质。在一些实现方式中,计算机实现的方法包括:基于多个帧来确定运动图像的运动得分。该方法进一步包括确定运动得分是否满足显示阈值。如果运动得分满足显示阈值,该方法进一步包括通过连续地显示运动图像的多个帧使得具有主体运动的运动图像被显示。如果运动得分不满足显示阈值,该方法进一步包括通过显示运动图像的特定帧,使得没有主体运动的运动图像被显示。
一些实现方式包括显示包括多个帧的运动图像的计算机实现的方法。该方法可以包括基于运动图像的多个帧来确定运动图像的运动得分。该方法可以进一步包括确定运动得分是否满足显示阈值。如果运动得分满足显示阈值,该方法可以进一步包括通过连续地显示运动图像的多个帧,使得具有主体运动的运动图像被显示。如果运动得分不满足显示阈值,该方法可以进一步包括通过显示运动图像的多个帧中的特定帧,使得没有主体运动的运动图像被显示。
在一些实现方式中,在包括一个或多个其他图像的用户界面中显示运动图像。在这些实现方式中,如果运动得分满足显示阈值,则用户界面中的运动图像的大小大于一个或多个其他图像中的至少一个其他图像。
在一些实现方式中,该方法可以包括确定一个或多个其他图像的各自的运动得分。该方法可以进一步包括基于各自的运动得分选择显示阈值。该选择包括确定与高于运动图像的运动得分的各自的运动得分相关联的一个或多个其他图像的数量。如果数量等于或大于阈值数量,该选择进一步包括将显示阈值设置为高于运动图像的运动得分。如果数量小于阈值数量,该选择进一步包括将显示阈值设置为低于运动图像的运动得分。一些实现方式进一步包括至少部分地基于显示运动图像的软件应用的执行线程的数量来确定阈值数量。
在一些实现方式中,确定运动得分包括基于多个帧的各自的像素值,确定运动图像的背景部分的稳定性水平、运动图像的主体的类型以及运动图像中的主体的移动水平;以及基于稳定性水平、主体的类型和主体的移动水平计算运动得分。在一些实现方式中,当主体的类型是风景或无生命对象时,计算运动得分包括将运动得分设置为小于显示阈值的值。
在一些实现方式中,计算运动得分包括确定主体的移动水平是否满足阈值移动水平。如果确定主体的移动水平满足阈值移动水平,计算运动得分进一步包括将运动得分设置为满足显示阈值的值。如果确定主体的移动水平不满足阈值移动水平,计算运动得分进一步包括将运动得分设置为不满足显示阈值的值。在一些实现方式中,第一主体类型是面部以及第二主体类型是身体,以及与面部相关联的第一阈值移动水平低于与身体相关联的第二阈值移动水平。
在一些实现方式中,确定运动图像的运动得分可以进一步包括,如果运动图像的观看次数满足观看率阈值或者如果基于运动图像创建了至少一个运动伪影,则将运动得分设置为满足显示阈值的值。
在一些实现方式中,确定运动图像的运动得分包括应用训练过的机器学习模型,训练过的机器学习模型包括神经网络,神经网络包括在多个层中组织的多个节点,以及神经网络被配置为确定运动得分。在这些实现方式中,将运动图像提供为训练过的机器学习模型的输入。
在一些实现方式中,运动图像由客户端设备捕获并且被存储在客户端设备的易失性存储器中。在这些实现方式中,该方法可以进一步包括确定运动得分满足存储阈值。如果运动得分满足存储阈值,该方法可以进一步包括将运动图像存储在客户端设备的非易失性存储器中。如果运动得分不满足存储阈值,该方法可以进一步包括自动地将运动图像改变为静态图像,其中,静态图像仅包括多个帧中的特定帧并且具有小于运动图像的文件大小。在一些实现方式中,将运动图像改变为静态图像包括去除多个帧中的其他帧以及将静态图像存储在客户端设备的非易失性存储器中。
一些实现方式可以包括一种显示包括多个帧的运动图像的设备。该设备可以包括:处理器以及其上存储有指令的非暂时性计算机可读介质。指令当被处理器执行时,使处理器进行以下操作,包括:基于多个帧来确定运动图像的运动得分。操作可以进一步包括确定运动得分是否满足显示阈值。如果运动得分满足显示阈值,操作可以进一步包括通过连续地显示运动图像的多个帧,使得具有主体运动的运动图像被显示。如果运动得分不满足显示阈值,操作可以进一步包括通过显示运动图像的多个帧中的特定帧,使得没有主体运动的运动图像被显示。
在一些实现方式中,确定运动图像的运动得分的操作包括应用存储在设备上的训练过的机器学习模型,该训练过的机器学习模型包括神经网络,该神经网络包括在多个层中组织的多个节点并且被配置为确定运动得分。在一些实现方式中,运动图像被提供为训练过的机器学习模型的输入。
在一些实现方式中,操作可以进一步包括确定运动图像的观看次数满足观看率阈值或从运动图像产生了运动伪影。操作可以进一步包括,响应于该确定来更新训练过的机器学习模型。在一些实现方式中,更新训练过的机器学习模型包括调整多个节点中的至少一个节点的权重。在一些实现方式中,更新训练过的机器学习模型包括更新多个节点中的至少一对节点之间的连接。
在一些实现方式中,操作可以进一步包括确定运动图像的背景部分的稳定性水平以及确定运动图像的主体的类型以及运动图像中的主体的移动水平。在一些实现方式中,将背景部分的稳定性水平、主体的类型以及主体的移动水平提供给训练过的机器学习模型作为进一步的输入。
在一些实现方式中,操作可以进一步包括接收用户输入以通过仅显示多个帧中的特定帧来将运动图像显示为静态图像。操作可以进一步包括响应于用户输入,更新训练过的机器学习模型。在一些实现方式中,更新训练过的机器学习模型包括调整多个节点之一的权重。在一些实现方式中,更新训练过的机器学习模型包括更新多个节点中的一对节点之间的连接。
在一些实现方式中,该设备可以进一步包括捕获运动图像的相机。在一些实现方式中,运动图像被存储在设备的易失性存储器中。在这些实现方式,操作可以进一步包括确定运动得分是否满足存储阈值。如果运动得分满足存储阈值,操作可以进一步包括将运动图像存储在设备的非易失性存储器中。如果运动得分不满足存储阈值,操作可以进一步包括自动地将运动图像改变为静态图像,其中,该静态图像仅包括多个帧中的特定帧并且具有小于运动图像的文件大小。在一些实现方式中,将运动图像改变为静态图像可以包括去除多个帧中的其他帧以及将静态图像存储在设备的非易失性存储器中。
一些实现方式可以包括一种其上存储有指令的非暂时性计算机可读介质,该指令当由处理器执行时,使处理器执行包括基于运动图像的多个帧确定运动图像的运动得分的操作。操作可以进一步包括确定运动得分是否满足显示阈值。如果运动得分满足显示阈值,操作可以进一步包括通过连续地显示运动图像的多个帧,使得具有主体运动的运动图像被显示。如果运动得分不满足显示阈值,操作可以进一步包括通过显示运动图像的多个帧中的特定帧,使得没有主体运动的运动图像被显示。
在一些实现方式中,非暂时性计算机可读介质可以进一步包括存储在其上的指令,该指令当由处理器执行时,使处理器执行可以包括确定运动图像的背景部分的稳定性水平;以及确定运动图像的主体的类型和运动图像中的主体的移动水平的操作。在一些实现方式中,运动得分基于稳定性水平、主体的类型和主体的移动水平。
在一些实现方式中,非暂时性计算机可读介质可以进一步包括存储在其上的指令,该指令当由处理器执行时,使处理器执行可以包括确定一个或多个其他图像的各自的运动得分以及基于各自的运动得分选择显示阈值的操作。在一些实现方式中,选择操作可以包括确定与高于运动图像的运动得分的各自的运动得分相关联的一个或多个其他图像的数量。如果该数量等于或大于阈值数量,该操作进一步包括将显示阈值设置为高于运动图像的运动得分。如果该数量小于阈值数量,则将显示阈值设置为低于运动图像的运动得分。
附图说明
图1是可以被用于本文描述的一个或多个实现方式的示例性网络环境的框图。
图2是图示根据一些实现方式的显示和/或存储运动图像的示例性方法的流程图。
图3是图示根据一些实现方式的用于确定运动图像的运动得分的示例性方法的流程图。
图4是图示根据一些实现方式的用于确定运动图像的运动得分的另一示例性方法的流程图。
图5图示了示例性运动图像。
图6是根据一些实现方式的包括图像网格的示例性用户界面的图解说明。
图7是可以用于本文描述的一个或多个实现方式的示例性设备的框图。
具体实现方式
一些实现方式包括方法、设备和具有指令的计算机可读介质以显示包括多个帧的运动图像。例如,运动图像可以包括利用相机在较短的持续时间(例如,小于或等于三秒)内捕获的多个帧。可以在没有显著的相机移动(例如,没有需要移动相机的摇摄、缩放、倾斜或其他操作)的情况下捕获运动图像。
运动图像可以描绘主体和背景。用户对运动图像具有不同程度的兴趣,例如,描绘朋友绽开笑容、宠物跳跃、舞步、体育动作等的运动图像可能是用户高度感兴趣的。在另一示例中,用户可能对在多个帧期间描绘很少或没有运动的运动图像、不包括用户感兴趣的主体的运动图像(例如,文档或无生命对象的图像)等不感兴趣。
技术问题是具有捕获、显示或存储运动图像的能力的设备在这样的操作中浪费计算资源。例如,许多设备提供捕获运动图像的默认设置。这样的设备可以捕获和存储运动图像,这需要将被操作的设备的相机并且将得到的图像数据存储在设备上。在这种情况下,即使当运动图像在被显示为运动图像时并没有增强用户体验时,也会利用设备资源来捕获和存储运动图像,浪费了捕获和处理运动图像的计算能力以及存储运动图像的存储容量。例如,当图像中存在可以被观看用户感知的显著主体运动时,所显示的运动图像提供高质量的用户体验。此外,当用户观看这样的运动图像时,利用设备的处理器、存储器和显示屏来加载多个帧并显示描绘主体运动的运动图像。虽然用户可以选择性地禁用运动图像的捕获、存储或显示,但这类设置本质上是全局的,并且不考虑单个图像特征或用户偏好。
本文描述的实现方式通过分析运动图像的多个帧,自动地确定运动图像的运动得分。如果运动图像的运动得分满足显示阈值,则在用户界面中显示描述主体运动的多个帧;否则,显示运动图像的特定帧,提供静态图像。以这种方式选择性显示可以减少用于显示运动图像的计算资源的使用。
在一些实现方式中,提供了显示多个图像的用户界面。在这些实现方式中,例如,基于可用的硬件容量,评估运动得分以仅将有限数量的图像显示为运动图像。例如,图像的数量可以基于生成可以在可用硬件上执行的用户界面的程序或软件应用的线程的数量。因此,渲染用户界面以适应可用的硬件资源,这使得不同类型的设备能够显示用户界面,而无需修改实现代码或修改运动图像。此外,在一些实现方式中,基于运动图像的运动得分来确定用户界面中的运动图像的大小。图像大小的这种自定义可以提供更易于使用的用户界面。例如,包括不同大小的图像的图像网格以比其他图像更大的尺寸显示某些图像,从而允许用户感知这些图像中的更大细节度,例如,因为更大份额的可用显示屏幕空间被用于这些图像。这样的显示使得用户能够以与当以较小尺寸显示图像时相比,更确切地做出关于是否编辑图像、全屏查看图像、生成基于图像的创建、共享图像的确定等。有选择地以较大尺寸显示某些图像也确保了在屏幕上可以显示任意数量的图像,同时仍能显示足够的图像细节。
此外,在一些实现方式中,将运动得分与存储阈值进行比较,并且在存储之前将运动图像改变为静态图像(包括单个帧)。这种选择性转换可以降低存储运动图像所需的存储容量。当用户图像被上传到服务器时,选择性转换可以降低将图像发送到服务器的传输成本,并且降低存储运动图像的服务器存储容量的利用率。
在更进一步的实现方式中,使用训练过的机器学习模型来确定运动得分。训练过的ML模型可以提供一种确定运动得分的计算上高效的机制,因此为此目的优化了模型并且该模型可以在专用硬件(诸如FPGA、ASIC、GPU或机器学习处理器)上实现。
在利用训练过的ML模型的一些实现方式中,如果用户允许,则基于用户交互更新模型,例如查看运动图像、生成运动伪影、从运动图像中丢弃运动分量(帧)等。对模型的这种更新可以提供进一步改进的运动图像的显示和存储,因为由模型确定的运动得分特定于该用户。更进一步,当用户允许时,这些模型更新可以从大量用户接收并可以被用于进一步训练ML模型,例如,在联合学习方法中,以改进运动得分的确定。
在图像捕获时并且在非易失性存储器中存储之前确定运动得分的一些实现方式中,所描述的技术可以通过丢弃用户可能不太感兴趣的运动图像中的帧来减少非易失性存储器的使用。在一些实现方式中,本文描述的技术提供用户界面以使得用户能够选择性地丢弃运动。与捕获运动图像的默认模式相比,这减少了资源的使用。
图1和其他图使用相同的附图标记来标识相同的元件。参考数字后的字母,诸如“156a”指示该文本特指具有特定参考数字的元件。文本中没有跟随字母的参考数字,诸如“156”,是指附图中带有该附图标记的任何或全部元件(例如,文本中的“156”是指附图中的附图标记“156a”和/或“156b”)。
图1图示了示例性网络环境100的框图,其可以在本文描述的一些实现方式中使用。在一些实现方式中,网络环境100包括一个或多个服务器系统,例如图1的示例中的服务器系统102。例如,服务器系统可以与网络130通信。服务器系统102可以包括服务器设备104和数据库106或其他存储设备。数据库106可以存储一个或多个图像以及与该一个或多个图像相关联的元数据。在一些实现方式中,服务器设备104可以提供图像管理应用156b。图像管理应用程序156b可以访问存储在数据库106中的图像。
网络环境100还可以包括一个或多个客户端设备,例如,客户端设备120、122、124和126,这些客户端设备可以经由网络130彼此和/或与服务器系统102和/或第二服务器系统140进行通信。网络130可以是任何类型的通信网络,包括因特网、局域网(LAN)、无线网络、交换机或集线器连接等中的一个或多个。在一些实现方式中,网络130可以包括设备之间的对等通信,例如使用对等无线协议(例如,
Figure BDA0003177557930000091
Wi-Fi、Direct等)等。两个客户端设备120和122之间的对等通信的一个示例由箭头132示出。
为了便于图示,图1示出用于服务器系统102、服务器设备104和数据库106的一个框,以及示出了用于客户端设备120、122、124和126的四个框。服务器框102可以表示多个系统、服务器设备和网络数据库,并且可以按照与所示不同的配置提供这些框。例如,服务器系统102可以表示可以经由网络130与其它服务器系统进行通信的多个服务器系统。在一些实现方式中,例如,服务器系统102可以包括云托管服务器。在一些示例中,数据库106和/或其它存储设备可以被设置在与服务器设备104分开的服务器系统框中并且可以经由网络130,与服务器设备104和其它服务器系统进行通信。另外,可以存在任何数量的客户端设备。每个客户端设备可以是任何类型的电子设备,例如,台式计算机、膝上型计算机、便携式或移动设备、手机、智能电话、平板电脑、电视、TV机顶盒或娱乐设备、可穿戴设备(例如,显示眼镜或护目镜、腕表、头戴式耳机、臂章、珠宝等)、个人数字助理(PDA)、媒体播放器、游戏设备等。一些客户端设备也可以具有与数据库106或其它存储类似的本地数据库。在一些实现方式中,网络环境100可以不具有所示的所有组件和/或代替本文描述的那些元件或除本文描述的那些元件之外,可以具有包括其它类型的元件的其他元件。
在各种实现方式中,终端用户U1、U2、U3和U4可以使用各自的客户端设备120、122、124和126来与服务器系统102和/或彼此进行通信。在一些示例中,用户U1、U2、U3和U4可以经由在各自的客户端设备和/或服务器系统102或第二服务器系统140上运行的应用和/或经由在服务器系统102上实现的网络服务(例如,社交网络服务或其它类型的网络服务)彼此交互。例如,各自的客户端设备120、122、124和126可以与一个或多个服务器系统(例如,系统102、第二服务器系统140)来回地传送数据。
在一些实现方式中,服务器系统102可以向客户端设备提供适当的数据,使得每个客户端设备可以接收被上传到服务器系统102和/或网络服务的通信内容或共享内容。在一些示例中,用户U1-U4可以经由音频或视频会议、音频、视频或文本聊天、或其它通信模式或应用交互。由服务器系统102实现的网络服务可以包括允许用户执行各种通信、形成链接和关联、上传并发布诸如图像、文本、视频、音频和其它类型的内容的共享内容,和/或执行其它功能的系统。例如,客户端设备可以显示所接收的数据,诸如被发送或者流传输到客户端设备、并且经由服务器和/或网络服务而源自不同的客户端设备(或者直接地来自不同的客户端设备)、或源自服务器系统和/或网络服务的内容帖子。在一些实现方式中,客户端设备可以例如使用如上所述的客户端设备之间的对等通信来彼此直接地通信。在一些实现方式中,“用户”可以包括一个或多个程序或虚拟实体,以及与系统或网络对接的人。
在一些实现方式中,客户端设备120、122、124和/或126中的任一个可以提供一个或多个应用。例如,如图1所示,客户端设备120可以提供相机应用152和图像管理应用156a。客户端设备122-126也可以提供类似的应用。例如,相机应用152可以为各自的客户端设备的用户(例如,用户U1-U4)提供使用他们各自的用户设备的相机来捕获图像的能力。例如,相机应用152可以是在客户端设备120上执行的软件应用。
在一些实现方式中,相机应用152可以提供用户界面。例如,用户界面可以使得客户端设备120的用户能够选择图像捕获模式,例如静态图像(或照片)模式、连拍模式(例如,在短时间段内捕获连续数量的图像)、运动图像模式、视频模式、高动态范围(HDR)模式等。例如,运动图像模式可以对应于在客户端设备120的相机激活时捕获静态图像,并且捕获包括在激活相机前后的多个帧的短片。例如,短片的持续时间可以是1到3秒。
在一些实现方式中,运动图像可以在客户端设备120的易失性存储器中获得为单个图像文件,该图像文件包括图像数据部分中的静态图像和第二部分(例如,图像元数据部分)中的多个帧。在一些实现方式中,运动图像可以在客户端设备120的易失性存储器中获得为两个单独的图像文件,包括静态图像的第一文件以及包括短片的第二文件。在一些实现方式中,第一文件和/或第二文件可以包括指示同时捕获另一个文件的图像元数据。在一些实现方式中,相机应用152可以实现本文参考图2-4描述的方法。在一些实现方式中,图像管理应用156a和/或图像管理应用156b可以实现本文参考图2-4所述的方法。
可以使用客户端设备120的硬件和/或软件来实现相机应用152和图像管理应用156a。在不同的实现方式中,图像管理应用156a可以是独立的应用,例如,在客户端设备120-124中的任一个上执行,或者可以协同在服务器系统102上提供的图像管理应用156b工作。在用户许可下,图像管理应用156可以执行一个或多个自动功能,诸如备份图像(例如,备份到服务器系统102的数据库106)、增强图像、稳定图像、识别图像中的一个或多个对象(例如,面部、身体、无生命对象等)等。可以基于来自客户端设备120的加速度计、陀螺仪或其他传感器的输入和/或基于运动图像或视频的多个帧的比较来执行图像稳定。
图像管理应用156可以提供图像管理功能,诸如在用户界面中(例如,在包括单个图像的单页(one-up)视图中,在包括多个图像的网格视图中等)显示图像、编辑图像(例如,调整图像设置、应用过滤器、改变图像焦点、移除运动图像或视频的一帧或多帧)、与(例如,客户端设备122-126中的)其他用户共享图像、归档图像(例如,存储图像使得不会出现在主用户界面中)、生成基于图像的创作(例如,拼贴画、相册、基于运动的伪影,诸如动画、故事、视频循环等)。
客户端设备120、122、124和/或126上的用户界面可以使得能够显示用户内容和其它内容,包括图像、视频、数据、和其它内容以及通信、隐私设置、通知和其它数据。可以使用客户端设备上的软件、服务器设备上的软件和/或在服务器设备104上执行的客户端软件和/或服务器软件的组合(例如,与服务器系统102通信的应用软件或客户端软件)来显示这样的用户界面。用户界面可由客户端设备或服务器设备的显示设备(例如,触摸屏或其它显示屏幕、投影仪等)来显示。在一些实现方式中,在服务器系统上运行的应用可以与客户端设备通信,以在客户端设备处接收用户输入并且在客户端设备处输出诸如可视数据、音频数据等数据。
在一些实现方式中,服务器系统102和/或一个或多个客户端设备120-126中的任一个可以提供通信应用程序。该通信程序可以允许系统(例如,客户端设备或服务器系统)提供用于与其它设备进行通信的选项。该通信程序可以提供被显示在与服务器系统或客户端设备相关联的显示设备上的一个或多个关联的用户界面。用户界面可以向用户提供各种选项来选择通信模式、与之进行通信的用户或设备等。在一些示例中,通信程序可以提供向广播区域广播内容帖子的选项,和/或可以输出指示已经由设备接收到内容帖子并且该设备处于该帖子的被定义广播区域中的通知。通信程序可以例如以各种格式中的任一种显示或者以其它方式输出传送的内容帖子以及所接收的内容帖子。内容帖子可以包括例如与其他用户分享的图像。
本文描述的特征的其它实现方式可以使用任何类型的系统和/或服务。例如,代替社交联网服务或者除了社交联网服务之外,还可以使用其它联网服务(例如,连接到因特网)。任何类型的电子设备可以利用本文描述的特征。一些实现方式可以在从计算机网络断开或者间歇地连接到计算机网络的一个或多个客户端或服务器设备上提供本文描述的一个或多个特征。在一些示例中,包括或者连接到显示设备的客户端设备可以显示在对于客户端设备是本地的存储设备上存储的内容帖子,例如,先前通过通信网络接收到的内容帖子。
图2是图示根据一些实现方式的显示和/或存储运动图像的示例性方法200的流程图。在一些实现方式中,可以例如在如图1中所示的服务器系统102上实现方法200。在一些实现方式中,可以在如图1中所示的一个或多个客户端设备120、122、124或126上、在一个或多个服务器设备上和/或在(多个)服务器设备和/或(多个)客户端设备两者上实现方法200的一些或全部。在所描述的示例中,实现系统包括一个或多个数字处理器或处理电路(“处理器”)以及一个或多个存储设备(例如,数据库106或其它存储)。在一些实现方式中,一个或多个服务器和/或客户端的不同组件可以执行方法200的不同框或其它部分。在一些示例中,第一设备被描述为执行方法200的框。一些实现方式可以使方法200的一个或多个框由可以将结果或数据发送到第一设备的一个或多个其它设备(例如,其它客户端设备或服务器设备)执行。
在一些实现方式中,方法200或该方法的一部分可以由系统自动地启动。在一些实现方式中,实现系统是第一设备。例如,该方法(或其部分)可以周期性地被执行,或者基于一个或多个特定事件或条件,例如,应用(例如相机应用152、图像管理应用156等)来执行,该应用正被用户启动、接收系统新上传或可访问的一个或多个图像、自最后执行方法200以来已经经过预定时间段和/或发生可以在由该方法读取的设置中指定的一个或多个其它条件。在一些实现方式中,可以由用户在所存储的该用户的自定义偏好中指定这些条件。
在各种实现方式中,客户端设备120可以是独立的相机、包括相机的另一设备(例如智能手机、平板电脑、计算机)、可穿戴设备(诸如智能手表、耳机等),或可以接收由另一设备捕获的图像的其他客户端设备。在一些实现方式中,客户端设备120可以是仅捕获设备,例如不包括屏幕的相机。在一些实现方式中,客户端设备120可以是仅查看设备,例如,包括可以在其上显示图像的屏幕但不具有相机或其他捕获图像的能力的设备。在一些实现方式中,客户端设备120可以同时具有图像捕获和图像查看能力。
在一些实现方式中,客户端设备120可以包括单个相机来捕获图像。在一些实现方式中,客户端设备120可以包括多个相机(或镜头)。例如,智能手机或其他设备可以包括一个或多个前置相机(作为屏幕位于设备的同一侧)和/或一个或多个后置相机。在一些实现方式中,一个或多个前置或后置相机在图像捕获期间可以一起操作,例如,第一相机可以捕获深度信息而第二相机可以捕获图像像素。在一些实现方式中,不同的相机可以被用于不同类型的图像捕获,例如,具有不同的变焦水平(例如,长焦镜头、广角镜头等)。在一些实现方式中,客户端设备120可以被配置为捕获360度图像。在一些实现方式中,相机或镜头可以使用单个图像传感器(例如,CCD或CMOS传感器)或多个传感器来捕获图像。在一些实现方式中,其他传感器,例如深度传感器等,可以在图像捕获时与一个或多个相机一起使用。
在一些实现方式中,客户端设备120可以将在图像传感器处从一个或多个相机(或镜头)捕获的原始图像数据与从其他传感器(例如,加速度计、陀螺仪、位置传感器、深度传感器等)获得的其他数据结合以形成单个图像。例如,当在捕获多个图像帧的模式(例如将多个帧快速连续捕获为运动图像的连拍模式或运动模式、捕获视频的视频模式、将不同曝光的多个图像组合成单个合成图像的高动态范围模式等)中操作客户端设备120时,可以利用从传感器获得的数据以稳定捕获的图像。例如,可以利用加速度计或陀螺仪数据来通过对齐多个捕获的帧来补偿相机移动,例如,由于图像捕获期间的捕获用户的手抖动。在一些实现方式中,捕获的图像可以被裁剪以产生稳定的版本,例如具有减少的背景运动。
客户端设备120可以使得用户能够以不同的模式(例如,捕获单个帧的静态图像(或照片)模式、捕获多个帧的连拍或运动图像模式、捕获视频的视频模式等)捕获图像。在一些实现方式中,当相机配置多个帧时,可以在图像捕获时执行方法200。
客户端设备120可以使得用户能够查看不同的用户界面中的图像,例如由客户端设备120捕获的图像或与用户相关联的其他图像。例如,可以提供单页模式或幻灯片模式,使得用户能够一次查看单个图像。在另一个示例中,可以提供画廊模式,使得用户能够同时查看多个图像,例如,作为图像网格。
在一些实现方式中,客户端设备可以执行方法200。在另一示例中,客户端设备或服务器设备可以执行方法200。一些实现方式可以基于用户输入启动方法200。用户(例如,操作员或终端用户)可以例如已经从显示的用户界面(例如,应用用户界面或其它用户界面)选择启动方法200。在一些实现方式中,方法200可以由服务器设备实现。
在一些实现方式中,可以自动地启动方法200,例如,当客户端设备的用户操作相机以捕捉运动图像时、当客户端设备的用户查看存储在客户端设备或服务器设备上的图像时。
如本文所参考的图像可以包括具有像素的数字图像,所述像素具有一个或多个像素值(例如,颜色值、亮度值等)。图像可以是静态图像(例如,静止照片、具有单个帧的图像等)或运动图像(例如,包括多个帧的图像,诸如动画、动画GIF、图像的一部分包括运动而其它部分为静态的电影图片、包括具有或不具有音频的多个帧的视频)。如本文所引用的文本可以包括字母数字字符、表情符号、符号、或其它字符。
在框202中,检查是否已经获得用户同意(例如,用户许可)以在方法200的实现方式中使用用户数据。例如,用户数据可以包括由用户使用客户端设备捕获的图像、由用户例如使用客户端设备存储或者访问的图像、图像元数据、与消息收发应用的使用有关的用户数据、用户偏好、用户生物统计信息、用户特性(例如,身份、姓名、年龄、性别、职业等)、关于用户的社交网络和联系人的信息、社交和其它类型的动作和活动、由用户创建或者提交的内容、评级和意见、用户的当前位置、历史用户数据、由用户生成、接收和/或访问的图像、由用户查看或者共享的图像等。本文描述的方法的一个或多个框可以在一些实现方式中使用这些用户数据。
如果已经从可以在方法200中使用用户数据的相关用户获得了用户同意,则在框204中,确定像针对那些框所描述的那样在可能使用用户数据的情况下实现本文的方法的框,并且方法继续到框212。如果尚未获得用户同意,则在框206中确定了将在不使用用户数据的情况下实现框,并且方法继续到框212。在一些实现方式中,如果尚未获得用户同意,则在不使用用户数据的情况下并且利用合成数据和/或通用或公开可访问的且公开可用的数据来实现框。在一些实现方式中,如果尚未获得用户同意,则不执行方法200。
在框212中,确定运动图像的运动得分。在一些实现方式中,可以在相机捕获到新的运动图像时执行方法200。在这些实现方式中,可以基于图像数据(例如,运动图像的多个帧的像素值)和图像元数据来执行运动图像的运动得分的确定。在一些实现方式中,可以执行方法200来确定所存储的运动图像(例如,存储在客户端设备120的非易失性存储器中的)的运动得分,所存储的运动图像包括多个帧并且要为其确定运动得分。例如,如果与运动图像(例如,存储在图像数据库中的)相关联的图像元数据或其他数据不包括运动得分或包括已经流逝的运动得分,则可以执行运动得分的确定。例如,运动图像的运动得分可以流逝,例如运动图像在被用户(例如,客户端设备120的)捕获或最后观看的特定天数之后、在运动图像被修改时、在基于运动图像生成动画GIF、视频、拼贴画或其他创作时。
可以例如使用参考图3描述的方法300或参考图4描述的方法400来执行基于运动图像的多个帧的运动得分的确定。当运动图像与有效运动得分(例如,先前计算并存储在图像元数据或图像的数据库中的)相关联时,确定运动得分包括访问图像元数据或图像数据库以检索运动得分。框212之后可以是框214。
在框214中,确定运动图像的运动得分是否满足显示阈值。在用户许可的情况下,可以基于用户数据(例如,用户对描绘运动图像的用户界面的先前查看、图像捕获/查看模式的手动切换以包括或排除主体运动等)来确定显示阈值的值。在一些实现方式中,例如,当运动图像被显示为包括一个或多个其他图像的用户界面的一部分时,可以基于一次显示的运动图像的目标数量来设置显示阈值,使得显示不超过运动图像的目标数量(例如,通过顺序地显示多个帧)。在一些实现方式中,例如,当在单个图像模式中(例如,在单页模式中或作为幻灯片的一部分)显示运动图像时,可以将显示阈值设置为基于当顺序地显示时,运动图像的多个帧内的主体运动的兴趣度确定的值。例如,主体运动的兴趣度基于运动图像的主体运动与用户(或其他用户)观看正在单页或幻灯片模式中显示的运动的其他运动图像中的主体运动的相似性。
在一些实现方式中,例如,当运动图像被显示为包括一个或多个其他图像的用户界面的一部分(例如,作为图像网格的一部分)时,显示阈值可以被设置为基于一个或多个其他图像的运动得分的值。例如,如果一个或多个其他图像可以包括其他运动图像。如果一个或多个其他图像中至少阈值数量的其他图像具有高于运动图像的阈值数量的运动得分,则可以将显示阈值设置为使得运动图像的运动得分不满足显示阈值的值。例如,可以将显示阈值设置为高于运动图像的运动得分的值。如果运动得分高于运动图像的运动得分的其他图像的数量小于阈值数量,则可以将显示阈值设置为使得运动图像的运动得分满足显示阈值的值。例如,可以将显示阈值设置为低于运动图像的运动得分的值。
在一些实现方式中,阈值数量可以基于执行方法200的设备(例如,客户端设备120)的硬件能力。例如,方法200可以由软件应用执行(或调用)以显示运动图像。软件应用可以以多线程方式执行,例如,其中,软件应用的一个或多个执行线程在客户端设备120的硬件处理器上运行。在一些实现方式中,每个单独的执行线程可以处理相应的运动图像以网格显示并且渲染多个帧以供显示。在这些实现方式中,阈值数量可以基于执行线程的数量,例如,阈值数量可以小于或等于执行线程的数量。
在一些实现方式中,执行线程的数量可以基于硬件能力,例如客户端设备120的硬件处理器的处理核的数量、客户端设备120的可用存储器等。例如,当每个单独的执行线程运行在相应的处理核上时,执行线程的数量可以不超过可用处理核的数量。可用处理核的数量又可以基于可用电量(例如电池)、操作系统设置(例如,限制每个应用的执行线程的数量的配置设置)等。
基于硬件能力选择阈值数量可以确保渲染以在用户界面(例如,图像网格)中显示的运动图像的数量受到硬件的支持。例如,阈值数量可以被设置为1(例如,如果只有单个处理核可用于渲染图像网格中的图像),使得图像网格仅包括一个图像,而该图像包括多个帧。在该示例中,通过渲染每个其他运动图像的单个帧以供显示,运动网格中的其他运动图像被显示为静态图像。在另一个示例中,如果有4个核可用于渲染运动网格中的图像,则阈值数量可以被设置为4。以这种方式设置阈值数量提供了无延迟渲染图像网格并使用可用硬件能力的技术优势。
如果运动图像的运动得分满足显示阈值,则框214之后是框216。如果运动图像的运动得分不满足显示阈值,则框214之后是框218。
在框216中,使得具有主体运动的运动图像被显示。运动图像可以被显示为用户界面的一部分,例如由图像库应用提供。在一些实现方式中,显示运动图像包括连续地显示运动图像的多个帧,例如,使得运动图像的多个帧内的主体运动可被用户感知。例如,可以以单页模式或幻灯片模式,在用户界面中显示运动图像,其中,一次显示单个图像。
在一些实现方式中,显示运动图像进一步包括在包括图像网格的用户界面中,以比其他图像更大的尺寸显示运动图像,该图像网格包括多个图像。如参考所描述的,阈值数量的上下文选择使得能够显示具有一个或多个运动图像的图像网格,这些运动图像与满足显示阈值的运动得分相关联并且与主体运动一起被显示。在一些实现方式中,与满足显示阈值的运动得分相关联的运动图像可以比网格中的一个或多个其他图像更大的尺寸显示在用户界面中。与不满足显示阈值的相应得分相关联的用户界面中的其他运动图像在没有主体运动的情况下被显示在用户界面中,例如,通过仅显示这些运动图像的特定帧。框216之后可以是框220。
如果运动图像的运动得分不满足显示阈值,则执行框218以显示没有主体运动的运动图像,例如,通过仅显示运动图像的特定帧。以这种方式显示特定帧可以节省计算资源,因为运动图像的其他帧不会被显示。框218之后可以是框220。
在框220中,确定运动得分是否满足存储阈值。存储阈值可以基于各种因素。例如,存储阈值可以基于存储运动图像的用户设备(例如,客户端设备120)的可用非易失性存储器容量。在另一个示例中,例如,当运动图像被存储在服务器上时,存储器阈值可以基于分配给存储运动图像的特定用户账户的服务器的存储容量。在一些实现方式中,可以基于用户设备的非易失性存储器容量与所分配的服务器的存储容量的组合来设置存储阈值。如果运动得分满足存储阈值,则框220之后是框222。如果运动得分不满足存储阈值,框220之后可以是框224。
在框222,运动图像被改变为静态图像。例如,当在客户端设备捕获运动图像后执行方法200时,运动图像可以被临时存储在客户端设备的易失性存储器(例如,RAM)中。当运动图像不满足存储阈值时,仅存储运动图像的多个帧中的特定帧,例如被写入客户端设备的非易失性存储器。运动图像的多个帧中的其他帧在存储该图像之前被去除。
例如,多个帧可以包括在用户激活客户端设备的相机之前,由用户捕获的一个或多个帧、在用户激活瞬间捕获的单个帧,以及在用户激活之后捕获的一个或多个帧。例如,运动图像的总长度可能高达3秒。在一些实现方式中,特定帧可以是在用户激活的瞬间捕获的单个帧,例如,与相机激活相匹配的时间戳相关联。在一些实现方式中,特定帧可以是运动图像的多个帧中的任何其他帧。
例如,可以基于运动图像的不同特性来选择特定帧,这些特性是基于以编程方式分析图像而确定的。例如,这些特征可以包括帧中的模糊程度、帧是否描绘了具有笑脸和/或睁着眼睛的人类主体、对主体的聚焦质量等。可以评估每个帧的不同特性来确定质量得分,并且可以将与最高质量得分相关联的帧选择为特定帧。在一些实现方式中,可以随机地选择特定帧。
将运动图像更改为静态图像提供了技术益处。例如,由于静态图像包括单个帧,因此静态图像的文件尺寸小于包括多个帧的运动图像的文件尺寸。因此,存储静态图像需要较少的存储空间。此外,将静态图像传送到例如服务器设备或其他客户端设备降低了网络利用率。框222之后可以是框224。
在框224中,图像被存储在例如客户端设备120的非易失性存储器、服务器设备的非易失性存储器或两者中。当在框220之后执行框224时,存储运动图像(包括多个帧的),并且当在框222之后执行框224时,存储静态图像。
尽管已经参考图2中的各个框描述了方法200,但是可以理解到,可以在不执行图2中的一些框的情况下执行本公开中描述的技术。在各种实现方式中,可以并行地或以不同于图2中所示的顺序执行方法200的一些框。
例如,在一些实现方式中,其中,执行方法200以显示包括一个或多个预存图像的用户界面,可以不执行框220-224。在另一示例中,例如,当在运动图像捕获后立即执行方法200时,以及其中,用户已经提供运动图像当被捕获时将被存储的指示时,不执行框220和222,并且在框216或框218之后执行框224。在一些实现方式中,例如,当用户已经提供了总是显示具有主体运动的运动图像的指示时,不执行框214,并且在框212之后执行框216。在这些实现方式的进一步变化中,可以执行框216来显示运动图像,以及可以在框216之后执行框212以确定运动得分。
更进一步,一些实现方式可以完全排除运动图像的显示,例如,在这样的实现方式中不执行框214-218。在这些实现方式中,为运动图像确定运动得分(框212),并且如果运动得分满足存储阈值(框220),则将运动图像选择性地转换为静态图像(框222)。将运动图像或静态图像存储在非易失性存储器中(框224)。例如,服务器设备可以利用这些实现方式来节省存储的使用。在这些实现方式中,可以在存储图像之后显示图像,例如,如果所存储的版本是运动图像,则将图像显示为运动图像,而如果存储的版本是静态图像,则将其显示为静态图像。
更进一步地,在一些实现方式中,可以在框212和220-224之后执行框214-218,例如,以显示先前已经存储的运动图像。在这些实现方式中,运动得分可以与图像一起存储,或者可以在显示图像时重新计算。
图3是图示根据一些实现方式的用于确定运动图像的运动得分的方法300的一个示例的流程图。在一些实现方式中,方法300可以例如在如图1所示的服务器系统102上实现。在一些实现方式中,方法300中的一些或全部可以在如图1所示的一个或多个客户端设备120、122、124或126、一个或多个服务器设备,和/或(多个)服务器设备和(多个)客户端设备两者上实现。在所描述的示例中,实现系统包括一个或多个数字处理器或处理电路(“处理器”),以及一个或多个存储设备(例如,数据库106或其他存储)。在一些实现方式中,一个或多个服务器和/或客户端的不同组件可以执行方法300的不同框或其他部分。在一些示例中,第一设备被描述为执行方法300的框。一些实现可以具有由可以向第一设备发送结果或数据的一个或多个其他设备(例如,其他客户端设备或服务器设备)执行的方法300的一个或多个框。
在一些实现方式中,方法300或方法的部分可以由系统自动地启动。在一些实现方式中,实现系统是第一设备。例如,该方法(或其部分)可以周期性地被执行,或者基于一个或多个特定事件或条件,例如,应用(相机应用152、图像管理应用156等)来执行,该应用正被用户启动、接收系统新上传或可访问的一个或多个图像、自最后执行方法300以来已经经过预定时间段、和/或发生可以在由该方法读取的设置中指定的一个或多个其它条件。在一些实现方式中,可以由用户在所存储的该用户的自定义偏好中指定这些条件。
在各种实现方式中,客户端设备120可以是独立相机、手机、智能电话、平板电脑、可穿戴设备或其他客户端设备,其可以接收用户对客户端设的内容备输入(例如,图像捕获),并且可以执行方法300。在另一个示例中,客户端设备或服务器设备可以执行方法300。一些实现方式可以基于用户输入启动方法300。用户(例如,操作员或终端用户)可以例如已经从所显示的用户界面(例如,应用用户界面或其他用户界面)中选择了启动方法300。在一些实现方式中,方法300可以由客户端设备实现。在一些实现方式中,方法300可以由服务器设备实现。
在框302中,确定运动图像的稳定性水平。在一些实现方式中,可以基于运动图像的多个帧的连续帧中的相应像素的像素值的比较来确定稳定性水平。例如,当显著比例(例如,90%)的像素匹配(例如,具有相等或相似的值)时,可以确定图像是稳定的。在一些实现方式中,可以以编程方式分析运动图像以确定运动图像的背景部分。在这些实现方式中,可以仅针对对应于背景部分的像素的子集执行像素值的比较。
在一些实现方式中,可以基于从捕获运动图像的设备(例如,客户端设备120)的一个或多个传感器获得的数据来确定稳定性水平。例如,这样的数据可以包括来自设备的加速度计和/或陀螺仪的读数。例如,如果来自传感器的数据指示该设备在运动图像的捕获期间(例如,在较短的持续时间(例如高达3秒)内执行的)没有移动或旋转,则可以确定稳定性水平高。另一方面,捕获期间的设备移动(例如,如由传感器测量的由设备的位移和/或旋转指示的)可能指示稳定性水平低。
在一些实现方式中,稳定性水平的确定可以基于多个帧的像素值和基于传感器读数。也可以使用确定稳定性水平的其他技术。框302之后可以是框304。
在框304中,确定运动图像是否稳定。例如,可以将运动图像的稳定性水平与稳定性阈值进行比较。如果稳定性水平满足稳定性阈值,则框304之后是框306。否则,框304之后是框330。
在框306中,以编程方式分析运动图像以检测运动图像的主体并确定主体的类型。例如,可以利用对象识别技术来检测运动图像中的各种对象的存在,例如人脸、人体、动物、树木和诸如建筑物、家具、车辆等无生命对象。运动图像的主体可以被确定为出现在多个帧的中心附近的一个或多个对象、聚焦的对象、占据图像内的最大区域的对象等。例如,描绘了聚焦和/或位于中心的人脸的运动图像可以对应于主体类型“人脸”或“肖像”。在另一个示例中,描绘一群人的运动图像可以对应于主体类型“合影”。在又一示例中,描绘狗、猫或其他动物的运动图像可能对应于主体类型“宠物”或“动物”等。
还可以分析运动图像的多个帧以确定运动图像内的主体的移动水平。例如,如果主体类型是“人脸”,则可以基于多个帧中的人脸的像素值的变化来确定移动水平。在该示例中,表情变化很小或没有变化的运动图像可能对应于主体的低移动水平,而主体露出微笑、扬起眉毛、转动或倾斜脸部等的运动图像可能对应于主体的高移动水平。
在另一示例中,如果主体类型是人体,则主体运动(诸如从一个点跳跃或移动到另一个点)可能对应于高移动水平,而以其他方式移动的静止主体(例如举手、倾斜头部等)可能对应于低移动水平。在一些实现方式中,用于比较的移动阈值水平可以基于主体类型,例如,与当主体是身体时相比,主体为面部时的阈值更低。可以利用各种技术来检测主体的移动,例如光流、图像分割、图像配准等。例如,可以利用对象识别技术来检测对象以及与该对象相对应的像素的光流,例如可以测量对象的外边界以确定对象的移动水平。在另一个示例中,可以利用图像配准技术来对齐多个帧的像素,并且可以利用如由不同像素坐标指示的对象的位置的变化来确定移动水平。在一些实现方式中,可以利用技术的组合。框306之后可以是框308。
在框308中,确定主体的移动水平是否满足阈值移动水平。如果确定主体的移动水平满足阈值,则框308之后是框310。否则,框308之后是框330。
在框310中,确定主体类型是风景还是无生命对象。例如,当检测到的对象包括诸如山、树、河流、海洋等对象时,将运动图像的主体类型确定为风景,而当例如检测到的对象包括诸如家具、建筑物、汽车等对象时,将其确定为无生命对象。在一些实现方式中,例如,当在具有风景或无生命对象的图像中检测到人或动物(例如,宠物)时,主体类型不是风景或无生命对象,因为已经检测到人或动物主体。如果主体的类型是风景或无生命对象,则框310之后是框330。否则,框310之后是框312。
在框312中,确定运动图像的观看次数是否满足观看率阈值。例如,如果之前已经连续观看了运动图像的多个帧,从而提供主体运动的显示达到至少阈值次数,则将运动图像确定为满足观看率阈值。例如,可以将用户(或与其共享图像的其他用户)观看多次(例如,5次、10次等)的存储图像确定为满足观看率阈值,使得图像中的运动为用户感兴趣的。如果运动图像的观看次数满足观看率阈值,则框312之后可以是框320。否则,框312之后可以是框314。
在框314中,确定是否从运动图像产生了运动伪影。例如,运动伪影可以包括动画GIF或其他动画,例如,包括运动图像的两帧或更多帧。例如,运动伪影可以包括设置为循环播放的两个或更多帧。循环中的两个或更多帧可以按顺序播放,例如,第一帧之后是第二帧,而第二帧之后是第三帧。运动伪影可以是前向循环,其中,在最后一帧之后提供第一帧,以提供连续的、不间断的动画。运动伪影可以是反向循环(也称为回旋镖),其中,帧按从第一帧到最后一帧的顺序播放,然后是从最后一帧到第一帧的倒序播放,以重复的方式提供连续动画。在一些实现方式中,运动伪影可以包括基于运动图像的其他创作,例如,包括运动图像的两帧或更多帧的拼贴画、将运动图像的两帧或更多帧叠加成单个静态图像的运动模糊图像等。
相机应用、图库应用或任何其他应用可以提供创建运动伪影的功能,例如自动或手动。如果产生了运动伪影,例如,用户通过提供输入产生了运动伪影,或者选择保存自动生成的运动伪影,则框314之后可以是框316。否则,框314之后可以是框320。
在框316中,计算运动图像的运动得分。在一些实现方式中,运动得分可以基于运动图像的稳定性水平、运动图像的主体类型或运动图像的多个帧中的主体的移动水平中的一个或多个。例如,运动得分可以是运动中的稳定性水平和主体的移动水平的加权组合。在一些实现方式中,较高的稳定性水平可以对应于较高的运动得分,反之亦然。在一些实现方式中,较高的主体的移动水平可以对应于较高的运动得分,反之亦然。在一些实现方式中,可以基于主体的类型,为主体的移动水平分配不同的权重。例如,与主体类型为身体相比,可以为主体类型为面部的移动水平分配更高的权重。
在一些实现方式中,除了前述因素之外,还可以利用一个或多个其他因素。例如,如果用户允许使用面部识别技术,则可以确定图像的主体是用户已知(例如,用户社交网络的一部分,在由用户捕获的其他图像中描绘过或者存储在用户的图像库中等)的人或动物(例如宠物)。在其他因素相同的情况下,描绘已知主体的运动图像的运动得分可能高于描绘未知主体的运动图像。在一些实现方式中,某些主体类型可以与更高的权重相关联,例如,描绘运动或体育活动、舞蹈等的运动图像,并且描绘这样的主体类型的运动图像可以相应地接收更高的运动得分。换句话说,高运动得分指示用户感知运动图像的跨帧变化大或显著,使得图像的运动方面在显示时增加和增强用户体验、感知和用户通过运动方面获得的信息。另一方面,低运动得分指示运动图像的跨帧变化小或微不足道,使得运动信息的丢失,无论是通过静态显示还是去除运动信息以及将运动图像转换为静态图像,都不会降低甚至可能提高用户体验以及对图像内容的感知和识别。在后一种情况下,例如,包括在运动图像中的运动方面可以包括在捕获静态场景的运动图像时由相机的抖动或颤动引起的摇动。在这种情况下,运动信息和将图像显示为运动图像实际上可能会降低用户感知,例如,由于运动方面引入的摇动,用户无法正确聚焦和识别静态场景的细节。
在一些实现方式中,运动图像可以包括指示主体类型的标签(例如,指示主体类型是文档、屏幕截图、收据等的“存档”标签)或与该标签相关联,并且这样的标签可以被用于确定运动得分。在一些实现方式中,运动图像可以包括例如在捕获运动图像期间录制的声音。在这些实现方式中,可以以编程方式分析声音以确定它是否对应于与感兴趣的运动相关联的声音类别,例如,瀑布的声音、球拍击球的声音、舞曲、笑声等可能与感兴趣的运动相关联,而诸如背景噪声、车辆噪声等的其他声音可能与不描绘感兴趣的运动的图像相关联。
在一些实现方式中,所计算的运动得分可以与图像相关联地(例如,在运动图像元数据中)存储为与运动图像相关联的标签、存储在存储关于运动图像的数据的数据库中等。例如,当生成包括运动图像的用户界面时、当建议创建运动伪影或其他图像创建时等,可以访问所存储的运动得分。
在框320中,如果运动图像的观看次数满足观看率阈值或者如果从运动图像创建运动伪影,则执行该框320,运动得分可以被设置为满足显示阈值的值。例如,可以如参考框316所述,计算运动得分并将其与显示阈值进行比较。如果运动得分不满足显示阈值,则可以将运动得分设置为满足显示阈值的值。以这种方式更新运动得分可以确保指示运动图像的兴趣度的用户输入覆盖自动确定的运动得分,使得用户感兴趣的运动图像以允许用户感知运动的方式显示,例如,通过连续地显示运动图像的多个帧。
如果运动图像不稳定(如框304中所确定的)、如果主体的移动水平不满足阈值移动水平(框308)或者如果运动图像的主体类型是风景或或无生命对象(框310),则执行框330。在框330中,运动得分可以被设置为不满足显示阈值的值,例如低于显示阈值的值。以这种方式设置运动得分可以确保运动图像被显示为静态图像(例如以上参考图2所述,通过仅显示运动图像的特定帧),这些运动图像是不提供高质量观看体验(例如抖动或不稳定)的图像、主体具有最小移动或主体类型不适合显示运动图像的多个帧的图像。以这种方式设置运动得分节省了计算资源以渲染图像的多个帧,并且还可以在将运动图像存储到非易失性存储器,或发送到服务器或其他客户端设备时节省存储空间。
尽管已经参考图3中的各个框描述了方法300,但是可以理解到,可以在不执行图3的一些框的情况下执行本公开描述的技术。例如,一些实现方式,例如,当观看次数或关于运动伪影的创建的信息不可用,则不执行框312、314和320。在一些实现方式中,可以组合图3所示的一个或多个框。在各种实现方式中,可以并行地或以不同于图3中所示的顺序执行方法300的一些框。
图4是图示根据一些实现方式的用于确定运动图像的运动得分的方法400的一个示例的流程图。在一些实现方式中,方法400可以例如在如图1所示的服务器系统102上实现。在一些实现方式中,方法400中的一些或全部可以在如图1所示的一个或多个客户端设备120、122、124或126、一个或多个服务器设备,和/或(多个)服务器设备和(多个)客户端设备两者上实现。在所描述的示例中,实现系统包括一个或多个数字处理器或处理电路("处理器"),以及一个或多个存储设备(例如,数据库106或其他存储)。在一些实现方式中,一个或多个服务器和/或客户端的不同组件可以执行方法400的不同框或其他部分。在一些示例中,第一设备被描述为执行方法400的框。一些实现可以具有由可以向第一设备发送结果或数据的一个或多个其他设备(例如,其他客户端设备或服务器设备)执行的方法400的一个或多个框。
在一些实现方式中,方法400或方法的部分可以由系统自动地启动。在一些实现方式中,实现系统是第一设备。例如,该方法(或其部分)可以周期性地被执行,或者基于一个或多个特定事件或条件,例如,应用(相机应用152、图像管理应用156等)来执行,该应用正被用户启动、接收系统新上传或可访问的一个或多个图像、自最后执行方法400以来已经经过预定时间段、和/或发生可以在由该方法读取的设置中指定的一个或多个其它条件。在一些实现方式中,可以由用户在所存储的该用户的自定义偏好中指定这些条件。
在各种实现方式中,客户端设备120可以是独立相机、手机、智能电话、平板电脑、可穿戴设备或其他客户端设备,其可以接收用户对客户端设备的内容输入(例如,图像捕获),并且可以执行方法400。在另一个示例中,客户端设备或服务器设备可以执行方法400。一些实现方式可以基于用户输入启动方法400。用户(例如,操作员或终端用户)可以例如已经从所显示的用户界面(例如,应用用户界面或其他用户界面)中选择了启动方法400。在一些实现方式中,方法400可以由客户端设备实现。在一些实现方式中,方法400可以由服务器设备实现。
在框402中,确定运动图像的观看次数是否满足观看率阈值。框402可以类似于参考图3描述的框312。如果观看次数满足观看率阈值,则框402之后是框410。否则,框402之后是框404。
在框404中,确定是否从运动图像创建了运动伪影。框404可以类似于参考图3所描述的框314。如果创建了至少一个运动伪影,则框404之后是框410。否则,框404之后是框410。
在框406中,确定是否已经接收到用户输入以将运动图像显示为静态图像,例如通过显示运动图像的特定帧。例如,用户可以通过选择诸如“关闭该图像的运动”的选项来提供这类输入。这样的用户输入可以是观看者没有在感兴趣的图像内发现运动的指示。如果已经接收到用户输入,则框406之后是框420。否则,框406之后可以是框408。
在框408中,计算运动图像的运动得分。在一些实现方式中,通过应用训练过的机器学习模型来计算运动得分,该机器学习模型包括神经网络,该神经网络包括在多个层中组织并被配置为确定图像的运动得分的多个节点。运动图像被提供为训练过的机器学习模型的输入。
一些实现方式包括训练机器学习模型以确定运动图像的运动得分。例如,未经训练的机器学习模型可以包括神经网络,该神经网络包括在多个层中组织的多个节点。每层中的节点可以连接到前一层中的节点以及后一层中的节点。第一层中的节点可以被配置为将运动图像接受为输入,并且多个层的最后一层中的节点可以被配置为输出运动得分。每个节点可以是任何类型的神经网络节点,例如LSTM节点。
在训练之前,可以为每个节点分配初始权重,并且可以初始化神经网络的不同层的节点之间的连接。可以获得运动图像的训练数据集并将其提供为神经网络的输入。例如,训练数据集可以包括多个运动图像和相关联的运动得分或标签。例如,训练数据集中的第一组运动图像可以与一个或多个标签相关联,这些标签指示每个图像中的主体运动是用户感兴趣的。可以基于用户输入或从经用户许可获得的用户数据(例如,运动图像的观看率、运动伪影的创建等)获得此类标签。
训练数据集中的第二组运动图像可以与一个或多个标签相关联,这些标签指示第二组图像中的每一个图像的主体运动不是用户感兴趣的。可以基于用户输入或从在用户许可下获得的用户数据(例如,运动图像的丢弃帧、删除运动图像等)获得标签。第一组可以被称为正训练示例,而第二组可以被称为“负训练示例”。训练集可以包括描绘各种类型的主体的运动图像,具有不同的稳定性水平和多个帧内的主体的移动水平。可以选择训练集以确保训练集包括不同类型图像的示例,这些示例可以随后在现场使用期间被提供为模型的输入。
多个运动图像可以被提供为训练中的模型的输入,并且模型可以被配置为输出每个训练图像的运动得分。在一些实现方式中,训练图像和相关联的标签可以首先被提供为训练中的模型的输入。在该训练阶段,可以自动地调整各个节点的权重(以及可选的,节点数量)、不同层中的节点之间的连接性(或可选的,层数),使得由模型输出的运动得分与相关联标签中的运动得分相匹配。在一些实现方式中,这可以被称为初始训练阶段。
在一些实现方式中,可以在初始训练阶段排除训练图像集的子集。该子集可以在初始训练阶段之后提供,并且可以将由该模型输出的运动得分与该子集中的图像相关联的运动得分进行比较。如果运动得分不匹配,则可以将这种不匹配提供为模型的训练输入(强化学习)。在该阶段,可以调整模型参数(诸如一个或多个节点的权重、节点之间的连接性等),直到模型正确地预测图像子集的运动得分为止。第二阶段可以被重复任意次数,例如,直到模型在预测运动得分方面达到令人满意的准确度水平为止。在一些实现方式中,可以进一步修改训练模型,例如,压缩(以使用更少的节点或层)、变换(例如,以可以在不同类型的硬件上使用)等。可以在设备(例如,客户端设备120或服务器设备)上提供训练模型,以计算运动图像的运动得分。在一些实现方式中,可以提供模型的不同版本,例如,模型的客户端版本可以针对大小进行优化并且具有降低的计算复杂度,而模型的服务器版本可以针对准确性进行优化。
在框408中,将运动图像提供为训练过的机器学习(ML)模型的输入。训练过的ML模型可以基于运动图像计算运动得分。在一些实现方式中,代替运动图像或除了运动图像之外,可以提供关于运动图像的其他数据作为训练过的ML模型的输入。例如,这样的因素可以包括运动图像的稳定性水平(例如,背景部分的)、运动图像的主体类型或运动图像中的主体的移动水平。在不同的实现方式中,可以基于图像的像素值,使用参考图3描述的技术来确定这些因素。在一些实现方式中,可以提供被训练以确定稳定性的水平、主体的类型或主体的移动水平的单独的ML模型,并且可以将这些ML模型的输出提供给该训练过的ML模型。在一些实现方式中,训练过的ML模型可以将这些因素确定为中间层的输出。
如果运动图像的观看次数满足观看率阈值(框402)或者如果从运动图像创建了运动伪影(框404),则执行框410。在框410中,运动得分被设置为满足显示阈值的值,类似于参考图3描述的框320。框410之后可以是框430。
在框420中,运动得分被设置为不满足显示阈值的值,例如,类似于参考图3描述的框330。框420之后可以是框430。
在框430中,可以更新训练过的ML模型。例如,当在框410之后执行框430时,可以基于将运动得分设置为满足显示阈值的值(基于用户输入)来更新该模型,从而指示运动图像描绘了用户感兴趣的运动。在另一个示例中,当在框420之后执行框420时,可以基于将运动得分设置为不满足显示阈值的值来更新模型,从而指示运动图像描绘了用户不感兴趣的运动。
在一些实现方式中,更新ML模型可以包括调整多个节点中的至少一个节点的权重或者更新多个节点中的至少一对节点之间的连接。在一些实现方式中,可以调整权重使得在更新之后,ML模型计算与在框410或420中设置的运动得分相匹配的运动得分。在一些实现方式中,例如,当用户未提供使用用户数据的许可时,不执行框430。在用户允许使用用户数据的实现方式中,更新的ML模型可以被提供给服务器,例如,以实现联合学习。以这种方式更新训练过的ML模型可以使运动得分计算能够针对观看运动图像的用户进行个性化,从而根据由于由ML模型确定的运动得分正确地指示用户捕获或查看的运动图像的兴趣度,来提供改进的运动图像的显示,同时降低计算负担或减少存储成本。
尽管已经参考图4中的各个框描述了方法400,但是可以理解到,可以在不执行图4的一些框的情况下实现本公开描述的技术。例如,一些实现方式,不执行框402和/或404。在一些实现方式中,可以组合图4中所示的一个或多个框。在各种实现方式中,可以并行地或以不同于图4中所示的顺序执行方法400的一些框。例如,在一些实现方式中,可以同时执行框402和404。
图5图示了示例性运动图像。具体地,示出了示例性运动图像的三个帧(502、512和522)。这三个帧可以在短间隔(例如,1-3秒)内的不同时间点被捕获。如图5所见,运动图像的主体(506、516、526)是秋千上的人。在捕获运动图像期间,该人从后向前摆动秋千并展开他们的腿,如帧502、512和522中所见。这种运动可以由存储在深度图像中的深度数据指示,例如,当使用能够确定深度信息的相机捕获运动图像时。该运动图像还包括背景部分(504)。
图5中所示的运动图像包括经历显著运动并且可以被确定为具有相对高的运动得分(例如,满足显示阈值)的主体(人)。其他运动图像可以包括主体,例如文档、家具或其他无生命对象,或风景,或者可以不包括显著的主体运动,并且可能被确定为具有相对低的运动得分,例如,不满足显示阈值。尽管图5图示了稳定图像(背景504在帧502、512和522之间未改变),但其他运动图像可能包括抖动或不稳定的图像,例如具有在多个帧之间改变的背景的图像。
图6是包括图像网格的示例性用户界面600的示意图。图6中所示的示例性用户界面包括作为图像网格的一部分的图5中所示的运动图像。示出了用户界面的三个视图(602、612、622)以说明用户界面连续地显示运动图像的多个帧。在该示例中,运动图像以比图像网格中的其他图像更大的尺寸显示。
在该示例性用户界面中,示出了单个运动图像,具有在该用户界面中被显示的主体运动;然而,将理解到,基于图像网格中的图像的各自的运动得分,可以示出具有主体运动的任何数量(例如零个、两个、三个或更多个)的图像,如参考图3所解释的。在各种实现方式中,用户界面600可以由显示设备(例如,由图1的客户端设备120、122、124和/或126的显示屏或服务器系统102)显示。
图7是可以被用于实现本文描述的一个或多个特征的示例性设备700的框图。在一个示例中,设备700可以被用于实现客户端设备,例如,图1中所示的任何客户端设备(120、122、124、126)。可替代地,设备700可实现服务器设备,例如,服务器104。在一些实现方式中,设备700可以被用于实现客户端设备、服务器设备、或客户端和服务器设备两者。设备700可以是如上所述的任何适合的计算机系统、服务器或其它电子或硬件设备。
可以在可在任何类型的计算设备上执行的独立程序、在web浏览器上运行的程序、在移动计算设备(例如,手机、智能电话、平板计算机、可穿戴设备(腕表、臂章、珠宝、头饰、虚拟现实护目镜或眼镜、增强现实护目镜或眼镜、头戴式显示器等)、膝上型计算机等)上运行的移动应用(“app”)中运行本文描述的一种或多种方法。在一个示例中,可以使用客户端/服务器架构,例如,移动计算设备(作为客户端设备)向服务器设备发送用户输入数据并且从服务器接收最终输出数据以进行输出(例如,以进行显示)。在另一示例中,可以在移动计算设备上的移动app(和/或其它apps)内执行所有计算。在另一示例中,计算可以在移动计算设备和一个或多个服务器设备之间被分解。
在一些实现方式中,设备700包括处理器702、存储器704、输入/输出(I/O)接口706和相机716。处理器702可以是用于执行程序代码以及控制设备700的基本操作的一个或多个处理器和/或处理电路。“处理器”包括处理数据、信号或其它信息的任何适合的硬件系统、机制、或组件。处理器可以包括具有带一个或多个核(例如,在单核、双核、或多核配置中)的通用中央处理单元(CPU)、多个处理单元(例如,在多处理器配置中)、图形处理单元(GPU)、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、复杂可编程逻辑器件(CPLD)、用于实现功能性的专用电路、用于实现基于神经网络模型的处理的专用处理器、神经电路、针对矩阵计算(例如,矩阵乘法)而优化的处理器的系统或其它系统。在一些实现方式中,处理器702可以包括实现神经网络处理的一个或多个协处理器。在一些实现方式中,处理器702可以是处理数据以产生概率输出的处理器,例如,由处理器702产生的输出可以是不精确的或者可以在距预期输出的范围内是准确的。处理不必限于特定地理位置或者具有时间限制。例如,处理器可以“实时地”、“离线”、以“批处理模式”等执行其功能。可以通过不同的(或相同的)处理系统来在不同的时间并在不同的位置处执行处理的一部分。计算机可以是与存储器通信的任何处理器。
存储器704通常被设置在设备700中以供处理器702访问,并且可以是适合于存储由处理器执行的指令并与处理器702分开放置和/或与其集成的任何适合的处理器可读存储介质,诸如随机存取存储器(RAM)、只读存储器(ROM)、电可擦除只读存储器(EEPROM)、闪存等。存储器704可以存储由处理器702在服务器设备700上操作的软件,包括操作系统708、机器学习应用730、其它应用712以及应用数据714。其它应用712可以包括诸如相机应用、图库或图像库应用、数据显示引擎、web托管引擎、图像显示引擎、通知引擎、社交联网引擎等应用。在一些实现方式中,机器学习应用730和其它应用712可以分别包括使得处理器702能够执行本文描述的功能(例如,图2、3和4的方法中的一些或全部)的指令。
其它应用712可以包括例如相机应用、图像库或图库应用、媒体显示应用、通信应用、web托管引擎或应用、绘图应用、媒体共享应用等。本文公开的一种或多种方法可以在若干环境和平台中操作,例如,作为可在任何类型的计算设备上运行的独立计算机程序、作为具有web页面的web应用、作为在移动计算设备上运行的移动应用(“app”)等。
在各种实现方式中,机器学习应用可以利用贝叶斯分类器、支持向量机、神经网络或其它学习技术。在一些实现方式中,机器学习应用730可以包括训练模型734、推理引擎736和数据732。在一些实现方式中,数据732可以包括训练数据,例如,用于生成训练模型734的数据。例如,训练数据可以包括任何类型的数据,诸如文本、图像、音频、视频等。例如,训练数据可以包括运动图像。可以从任何源获得训练数据,例如专门为训练数据而标记的数据储存库、已提供许可以便用作用于机器学习的训练数据的数据等。在一个或多个用户许可使用他们各自的用户数据来训练机器学习模型(例如,训练模型734)的实现方式中,训练数据可以包括这种用户数据。在用户许可使用他们各自的用户数据的实现方式中,数据732可以包括许可的数据,诸如图像或图像元数据(例如,运动图像、运动伪影或其他用户生成的图像、关于与其他用户共享图像的数据、与图像相关联的标签等)、通信(例如,电子邮件;诸如文本消息、话音、视频等聊天数据)、文档(例如,电子表格、文本文档、演示文稿等)。
在一些实现方式中,训练数据可以包括为了训练目的而生成的合成数据,诸如不基于正在被训练的上下文中的用户输入或活动的数据,例如,从模拟或计算机生成的运动图像等生成的数据等。在一些实现方式中,机器学习应用730排除数据732。例如,在这些实现方式中,可以例如在不同的设备上生成训练模型734,并且训练模型734被提供为机器学习应用730的一部分。在各种实现方式中,训练模型734可以被提供为包括模型结构或形式(例如,定义神经网络节点的数量和类型、节点之间的连接性以及将节点组织成多个层的)以及关联的权重的数据文件。推理引擎736可以读取用于训练模型734的数据文件,并且基于训练模型734中指定的模型结构或形式来实现具有节点连接、层和权重的神经网络。
机器学习应用730还包括训练模型734。在一些实现方式中,训练模型可以包括一个或多个模型形式或结构。例如,模型形式或结构可以包括任何类型的神经网络,诸如线性网络、实现多个层(例如,输入层与输出层之间的“隐藏层”,其中每个层是线性网络)的深度神经网络、卷积神经网络(例如,将输入数据拆分或分割多个部分或拼贴,使用一个或多个神经网络层来分别处理每个拼贴,并且聚合来自每个拼贴的处理的结果的网络)、序列到序列的神经网络(例如,将顺序数据(诸如句子中的单词、视频中的帧等)视为输入并且产生结果序列作为输出的网络)等。模型形式或结构可以指定各种节点之间的连接以及将节点组成成层。例如,第一层(例如,输入层)的节点可以接收数据作为输入数据732或应用数据714。例如,当训练模型被用于例如包括多个帧的运动图像的图像分析时,这种数据可以包括例如每节点一个或多个像素。后续中间层可以接收在模型形式或结构中指定的每连接的前一层的节点的输出作为输入。这些层也可以被称为隐藏层。最后层(例如,输出层)产生机器学习应用的输出。例如,取决于具体训练模型,输出可以是运动得分、用于图像的一组标签、许可将图像与其它图像相比较的图像的表示(例如,用于图像的特征向量)、响应于输入句子的输出句子、针对输入数据的一个或多个分类等。在一些实现方式中,模型形式或结构还指定每个层中的节点的数量和/或类型。
在不同的实现方式中,训练模型734可以包括每个模型结构或形式内被布置成层的多个节点。在一些实现方式中,节点可以是没有存储器的计算节点,例如,被配置成处理输入的一个单元以产生输出的一个单元。由节点执行的计算可以包括例如将多个节点输入中的每一个乘以权重、获得加权和,以及利用偏置或截距值来调整加权和以产生节点输出。在一些实现方式中,由节点执行的计算还可以包括将阶跃/激活函数应用于调整后的加权和。在一些实现方式中,阶跃/激活函数可以是非线性函数。在各种实现方式中,这种计算可以包括诸如矩阵乘法的计算。在一些实现方式中,可以并行执行由多个节点执行的计算,例如,使用多核处理器的多个处理器核、使用GPU的各个处理单元或专用神经电路。在一些实现方式中,节点可以包括存储器,例如,可以能够在处理后续输入时存储并使用一个或多个较早的输入。例如,具有存储器的节点可以包括长短期记忆(LSTM)节点。LSTM节点可以使用存储器来维护“状态”,该“状态”许可节点像有限状态机(FSM)一样进行动作。具有此类节点的模型在处理顺序数据(例如,句子或段落中的单词、视频中的帧、语音或其它音频等)时可能是有用的。
在一些实现方式中,训练模型734可以包括用于各个节点的嵌入或权重。例如,可以将模型启动为组织成如由模型形式或结构所指定的层的多个节点。在初始化时,可以将各自的权重应用于连接到每个模型形式的每对节点之间的连接(例如,神经网络的连续层中的节点)。例如,各自的权重可以被随机地指定或者被初始化为默认值。然后可以例如使用数据732来训练模型以产生结果。
例如,训练可以包括应用监督学习技术。在监督学习中,训练数据可以包括多个输入(例如,一组图像)和用于每个输入的相应预期输出(例如,用于每个图像的一个或多个标签)。基于模型的输出与预期输出的比较,自动地调整权重的值,例如以增加模型在被提供类似的输入时产生预期输出的概率的方式。
在一些实现方式中,训练可以包括应用无监督学习技术。在无监督学习中,可以仅提供输入数据并且可以训练模型以区分数据,例如,以将输入数据聚类成多个组,其中,每个组包括以某种方式类似的输入数据。例如,可以训练模型以向运动图像指定得分。
在各种实现方式中,训练模型包括与模型结构相对应的一组权重或嵌入。在省略了数据732的实现方式中,机器学习应用730可以包括基于在先训练(例如,由机器学习应用730的开发者、由第三方等进行的)的训练模型734。在一些实现方式中,训练模型734可以包括固定的一组权重(例如,从提供权重的服务器下载的)。
机器学习应用730还包括推理引擎736。推理引擎736被配置成将训练模型734应用于数据(诸如应用数据714)(例如运动图像),以提供推理。在一些实现方式中,推理引擎736可以包括要由处理器702执行的软件代码。在一些实现方式中,推理引擎736可以指定使得处理器702能够应用训练模型的电路配置(例如,用于可编程处理器、用于现场可编程门阵列(FPGA)等)。在一些实现方式中,推理引擎736可以包括软件指令、硬件指令或组合。在一些实现方式中,推理引擎736可以提供可由操作系统708和/或其它应用712使用来调用推理引擎736的应用程序接口(API),例如,以将训练模型734应用于应用数据714以生成推理。
机器学习应用730可以提供若干技术优点。例如,当基于无监督学习生成训练模型734时,训练模型734可以由推理引擎736应用来从输入数据(例如,应用数据714)产生知识表示(例如,数值表示)。例如,用于图像分析而训练的模型可以产生具有比输入图像(例如,10MB)更小的数据大小(例如,1KB)的图像的表示。在一些实现方式中,此类表示可以有助于降低处理成本(例如,计算成本、存储器使用等)以生成输出(例如,标签、分类、描述图像的句子等)。在一些实现方式中,可以将此类表示提供为从推理引擎736的输出产生输出的不同的机器学习应用的输入。在一些实现方式中,可以例如通过网络将由机器学习应用730生成的知识表示提供给进行进一步处理的不同的设备。在此类实现方式中,提供知识表示而不是图像可以提供技术益处,例如,使得能够以降低的成本更快地进行数据传输。在另一示例中,为聚类文档而训练的模型可以由输入文档产生文档集群。文档集群可以适合于进一步处理(例如,确定文档是否与话题有关、确定文档的分类类别等),而无需访问原始文档,因此,节约了计算成本。
在一些实现方式中,可以以离线方式实现机器学习应用730。在这些实现方式中,可以在第一阶段中生成训练模型734,并且将其提供为机器学习应用730的一部分。在一些实现方式中,可以以在线方式实现机器学习应用730。例如,在此类实现方式中,调用机器学习应用730的应用(例如,操作系统708、一个或多个其它应用712)可以利用由机器学习应用730产生的推理,例如,将推理提供给用户,并且可以生成系统日志(例如,如果被用户许可,则基于推理由用户采取的动作;或者如果被用作进一步处理的输入,则为进一步处理的结果)。系统日志可以被周期性地(例如,每小时、每月、每季度等)产生,并且可以在用户许可的情况下用于更新训练模型734,例如,更新用于训练模型734的嵌入。
在一些实现方式中,可以以可以适于在其上执行机器学习应用730的设备700的特定配置的方式实现机器学习应用730。例如,机器学习应用730可以确定利用可用的计算资源(例如,处理器702)的计算图。例如,如果机器学习应用730被实现为在多个设备上的分布式应用,则机器学习应用730可以确定要以优化计算的方式在各个设备上执行的计算。在另一示例中,机器学习应用730可以确定处理器702包括具有特定数量的GPU核(例如,1000个)并且相应地实现推理引擎(例如,作为1000个各个进程或线程)的GPU。
在一些实现方式中,机器学习应用730可以实现训练模型的集合。例如,训练模型734可以包括分别适用于相同的输入数据的多个训练模型。在这些实现方式中,机器学习应用730可以例如基于可用的计算资源、具有先验推理的成功率等来选取特定的训练模型。在一些实现方式中,机器学习应用730可以执行推理引擎736使得多个训练模型被应用。在这些实现方式中,机器学习应用730可以组合来自应用各个模型的输出,例如,使用对来自应用每个训练模型的各个输出进行评分的投票技术,或者通过选取一个或多个特定输出。另外,在这些实现方式中,机器学习应用可以应用用于应用各个训练模型的时间阈值(例如,0.5ms)并且仅利用在该时间阈值内可用的那些各个输出。可以不利用(例如,丢弃)在时间阈值内未接收到的输出。例如,例如当通过操作系统708或一个或多个应用712调用机器学习应用的同时存在指定的时间限制时,此类方法可能是合适的。
在不同的实现方式中,机器学习应用730可以产生不同类型的输出。例如,机器学习应用730可以提供表示或聚类(例如,输入数据的数值表示)、标签(例如,用于包括图像、文档等输入数据)、短语或句子(例如,描述图像或视频,适合于用作对输入句子的响应等)、图像(例如,由机器学习应用响应于输入而生成)、音频或视频(例如,响应于输入视频,机器学习应用730可以产生应用有特定效果的输出视频,例如,当使用来自漫画书或特定艺术家等的训练数据来训练训练模型734时,以漫画书或特定艺术家的风格进行渲染)。在一些实现方式中,机器学习应用730可以基于由调用应用(例如,操作系统708或一个或多个应用712)指定的格式来产生输出。在一些实现方式中,调用应用可以是另一机器学习应用。例如,此类配置可以被用在生成对抗网络中,其中,使用来自机器学习应用730的输出来训练调用机器学习应用,反之亦然。
存储器704中的任一软件可以可替代地被存储在任何其它适合的存储位置或计算机可读介质上。此外,存储器704(和/或其它连接的存储设备)可以存储一个或多个消息、一个或多个分类法、电子百科全书、词典、同义词库、知识库、消息数据、语法、用户偏好和/或本文描述的特征中使用的其它指令和数据。存储器704和任何其它类型的存储(磁盘、光盘、磁带或其它有形介质)可以被认为是“存储”或“存储设备”。
I/O接口706可以提供用于使得能够将服务器设备700与其它系统和设备对接的功能。对接设备可以被包括为设备700的一部分或者可以与设备700分开并且通信。例如,网络通信设备、存储设备(例如,存储器和/或数据库106),以及可以经由I/O接口706通信的输入/输出设备。在一些实现方式中,I/O接口可以连接到接口设备,诸如输入设备(键盘、定点设备、触摸屏、麦克风、相机、扫描仪、传感器等)和/或输出设备(显示设备、扬声器设备、打印机、电机等)。
可以连接到I/O接口706的对接设备的一些示例可以包括一个或多个显示设备720,所述显示设备720可以被用于显示内容,例如,图像、视频、和/或如本文所述的输出应用的用户界面。显示设备720可以经由本地连接(例如,显示总线)和/或经由联网连接来连接到设备700并且可以是任何适合的显示设备。显示设备720可以包括任何适合的显示设备,诸如LCD、LED或等离子体显示屏幕、CRT、电视、监视器、触摸屏、3-D显示屏幕、或其它视觉显示设备。例如,显示设备720可以是在移动设备上提供的平板显示屏、在护目镜或头戴式耳机设备中提供的多个显示屏,或用于计算机设备的监视器屏幕。
I/O接口706可以与其它输入和输出设备对接。一些示例包括可以捕获图像的一个或多个相机。一些实现方式可以提供用于捕获声音(例如,作为捕获的图像、话音命令等的一部分)的麦克风、用于输出声音的音频扬声器设备或其它输入和输出设备。
相机716可以是能够捕捉包括多个帧的运动图像的任何类型的相机。在一些实现方式中,相机716可以包括具有不同能力的多个镜头,例如,前置对后置、不同缩放级别、捕获图像的图像分辨率等。在一些实现方式中,设备700可以包括一个或多个传感器,诸如深度传感器、加速度计、位置传感器(例如,GPS)、陀螺仪等。在一些实现方式中,一个或多个传感器可以与相机一起操作以获得对应于使用相机捕获的运动图像的不同帧的传感器读数。
为了便于图示,图7示出了用于处理器702、存储器704、I/O接口706、相机716和软件框708、712和730中的每一个的一个框。这些框可以表示一个或多个处理器或处理电路、操作系统、存储器、I/O接口、应用和/或软件模块。在其它实现方式中,设备700可以不具有所示的所有组件和/或代替本文所示的那些组件或者除了本文所示的那些组件之外,还可以具有包括其它类型的元件的其它元件。虽然一些组件被描述为执行如本文的一些实现方式中所描述的框和操作,但是环境100、设备700、类似的系统的组件中的任何适合的组件或组合、或与这样的系统相关联的任何适合的一个或多个处理器都可以执行所述的框和操作。
本文描述的方法可以通过可在计算机上执行的计算机程序指令或代码来实现。例如,代码可以由一个或多个数字处理器(例如,微处理器或其它处理电路)实现并且可以被存储在包括非暂时性计算机可读介质(例如,存储介质)的计算机程序产品上,所述非暂时性计算机可读介质诸如磁、光、电磁、或半导体存储介质,包括半导体或固态存储器、磁带、可移动计算机磁盘、随机存取存储器(RAM)、只读存储器(ROM)、闪存、硬磁盘、光盘、固态存储器驱动器等。程序指令还可以被包含在电子信号中,并且例如以从服务器(例如,分布式系统和/或云计算系统)递送的软件即服务(SaaS)的形式提供为电子信号。可替代地,一种或多种方法可以用硬件(逻辑门等)或者用硬件和软件的组合加以实现。示例性硬件可以是可编程处理器(例如,现场可编程门阵列(FPGA)、复杂可编程逻辑器件)、通用处理器、图形处理器、专用集成电路(ASIC)等。可以将一种或多种方法执行为在系统上运行的应用的一部分或组件、或者执行为与其它应用和操作系统相结合地运行的应用或软件。
尽管已经参考其具体实现方式描述了说明书,但是这些具体实现方式仅仅是说明性的,而不是限制性的。示例中图示的概念可以被应用于其它示例和实现方式。
在本文讨论的某些实现方式可能收集或使用关于用户的个人信息(例如,用户数据、关于用户的社交网络的信息、用户的位置和在该位置的时间、用户的生物统计信息、用户的活动和人口统计信息)的情况下,为用户提供一个或多个机会来控制是否收集信息、是否存储个人信息、是否使用个人信息以及如何收集、存储和使用有关用户的信息。即,本文讨论的系统和方法是在接收到相关用户的明确授权后收集、存储和/或使用用户个人信息。
例如,向用户提供对程序或特征是否收集关于该特定用户或与该程序或特征有关的其他用户的用户信息的控制。向要收集其个人信息的每个用户呈现允许控制与该用户相关的信息收集的一个或多个选项,以提供关于是否收集信息以及关于收集信息的哪些部分的许可或授权。例如,可以通过通信网络向用户提供一个或多个这样的控制选项。此外,某些数据在被存储或使用之前,可能会以一种或多种方式对其进行处理,使得个人身份信息可以被删除。例如,可以处理用户的身份以便无法确定个人身份信息。作为另一个例子,可以将用户设备的地理位置概括到更大的区域,使得无法确定用户的具体位置。
注意,如本领域的技术人员所知,可以将本公开中描述的功能块、操作、特征、方法、设备和系统进行集成或者划分成系统、设备和功能块的不同组合。可以使用任何适合的编程语言和编程技术来实现特定实现方式的例程。可以采用不同的编程技术,例如过程的或面向对象的。例程可以在单个处理设备或多个处理器上执行。尽管可以以具体次序呈现步骤、操作或计算,但是在不同的特定实现方式中可以改变该次序。在一些实现方式中,可以同时执行在本说明书中示为有顺序的多个步骤或操作。

Claims (20)

1.一种显示包括多个帧的运动图像的计算机实现的方法,所述方法包括:
基于所述运动图像的所述多个帧来确定所述运动图像的运动得分;
确定所述运动得分是否满足显示阈值;
如果所述运动得分满足所述显示阈值,通过连续地显示所述运动图像的所述多个帧,使得具有主体运动的所述运动图像被显示;以及
如果所述运动得分不满足所述显示阈值,通过显示所述运动图像的所述多个帧中的特定帧,使得没有主体运动的所述运动图像被显示。
2.如权利要求1所述的计算机实现的方法,其中,在包括一个或多个其他图像的用户界面中显示所述运动图像,以及其中,如果所述运动得分满足所述显示阈值,则所述用户界面中的所述运动图像的大小大于所述一个或多个其他图像中的至少一个其他图像。
3.如权利要求1所述的计算机实现的方法,其中,所述运动图像被显示为包括一个或多个其他图像的用户界面的一部分,所述方法进一步包括:
确定所述一个或多个其他图像的各自的运动得分;以及
基于所述各自的运动得分选择所述显示阈值,其中,所述选择包括:
确定与比所述运动图像的所述运动得分高的各自的运动得分相关联的所述一个或多个其他图像的数量;
如果所述数量等于或大于阈值数量,则将所述显示阈值设置为高于所述运动图像的所述运动得分;以及
如果所述数量小于所述阈值数量,则将所述显示阈值设置为低于所述运动图像的所述运动得分。
4.如权利要求3所述的计算机实现的方法,进一步包括至少部分地基于显示所述运动图像的软件应用的执行线程的数量来确定所述阈值数量。
5.如权利要求1所述的计算机实现的方法,其中,确定所述运动得分包括:
基于所述多个帧的各自的像素值,确定所述运动图像的背景部分的稳定性水平、所述运动图像的主体的类型以及所述运动图像中的所述主体的移动水平;以及
基于所述稳定性水平、所述主体的类型和所述主体的所述移动水平来计算所述运动得分。
6.如权利要求5所述的计算机实现的方法,其中,所述主体的类型是风景或无生命对象,以及其中,计算所述运动得分包括将所述运动得分设置为小于所述显示阈值的值。
7.如权利要求5所述的计算机实现的方法,其中,计算所述运动得分包括:
确定所述主体的所述移动水平是否满足阈值移动水平;
如果确定所述主体的所述移动水平满足所述阈值移动水平,则将所述运动得分设置为满足所述显示阈值的值;以及
如果确定所述主体的所述移动水平不满足所述阈值移动水平,则将所述运动得分设置为不满足所述显示阈值的值。
8.如权利要求7所述的计算机实现的方法,其中,第一主体类型是面部并且第二主体类型是身体,以及其中,与所述面部相关联的第一阈值移动水平低于与所述身体相关联的第二阈值移动水平。
9.如权利要求1所述的计算机实现的方法,其中,确定所述运动图像的所述运动得分进一步包括:如果所述运动图像的观看次数满足观看率阈值或者如果基于所述运动图像创建了至少一个运动伪影,则将所述运动得分设置为满足所述显示阈值的值。
10.如权利要求1所述的计算机实现的方法,其中,确定所述运动图像的所述运动得分包括应用训练过的机器学习模型,所述训练过的机器学习模型包括神经网络,所述神经网络包括被组织在多个层中的多个节点,以及所述神经网络被配置为确定运动得分,其中,所述运动图像被作为输入提供给所述训练过的机器学习模型。
11.如权利要求1所述的计算机实现的方法,其中,所述运动图像由客户端设备捕获并且存储在所述客户端设备的易失性存储器中,所述方法进一步包括:
确定所述运动得分满足存储阈值;
如果所述运动得分满足所述存储阈值,则将所述运动图像存储在所述客户端设备的非易失性存储器中;以及
如果所述运动得分不满足所述存储阈值,
则自动地将所述运动图像改变为静态图像,其中,所述静态图像仅包括所述多个帧中的特定帧并且具有小于所述运动图像的文件大小,其中,所述改变包括去除所述多个帧中的其他帧;以及
将所述静态图像存储在所述客户端设备的所述非易失性存储器中。
12.一种显示包括多个帧的运动图像的设备,所述设备包括:
处理器;以及
其上存储有指令的非暂时性计算机可读介质,所述指令在被所述处理器执行时使所述处理器执行操作,所述操作包括:
基于所述多个帧来确定所述运动图像的运动得分;
确定所述运动得分是否满足显示阈值;
如果所述运动得分满足所述显示阈值,通过连续地显示所述运动图像的所述多个帧,使得具有主体运动的所述运动图像被显示;以及
如果所述运动得分不满足所述显示阈值,通过显示所述运动图像的所述多个帧中的特定帧,使得没有主体运动的所述运动图像被显示。
13.如权利要求12所述的设备,其中,确定所述运动图像的所述运动得分包括应用训练过的机器学习模型,所述训练过的机器学习模型包括神经网络,所述神经网络包括被组织在多个层中的多个节点,所述训练过的机器学习模型存储在所述设备上并且被配置为确定运动得分,其中,所述运动图像被作为输入提供给所述训练过的机器学习模型。
14.如权利要求13所述的设备,其中,所述操作进一步包括:
确定所述运动图像的观看次数满足观看率阈值或从所述运动图像创建了运动伪影;以及
响应于所述确定,更新所述训练过的机器学习模型,其中,更新所述训练过的机器学习模型包括以下操作中的至少一项:
调整所述多个节点中的至少一个节点的权重;以及
更新所述多个节点中的至少一对节点之间的连接。
15.如权利要求13所述的设备,其中,所述操作进一步包括:
确定所述运动图像的背景部分的稳定性水平;以及
确定所述运动图像的主体的类型以及所述运动图像中的所述主体的移动水平,
其中,将所述背景部分的所述稳定性水平、所述主体的所述类型以及所述主体的所述移动水平提供给所述训练过的机器学习模型作为进一步的输入。
16.如权利要求13所述的设备,其中,所述操作进一步包括:
接收用户输入以通过仅显示所述多个帧中的特定帧来将所述运动图像显示为静态图像;以及
响应于所述用户输入,
更新所述训练过的机器学习模型,其中,更新所述机器学习模型包括以下操作中的至少一项:
调整所述多个节点中的一个节点的权重;以及
更新所述多个节点中的一对节点之间的连接。
17.如权利要求12所述的设备,进一步包括相机,其中,利用所述相机捕获所述运动图像并且将所述运动图像存储在所述设备的易失性存储器中,以及其中,所述操作进一步包括:
确定所述运动得分是否满足存储阈值;
如果所述运动得分满足所述存储阈值,则将所述运动图像存储在所述设备的非易失性存储器中;以及
如果所述运动得分不满足所述存储阈值,则自动地将所述运动图像改变为静态图像,其中,所述静态图像仅包括所述多个帧中的特定帧并且具有小于所述运动图像的文件大小,其中,所述改变包括:
去除所述多个帧中的其他帧;以及
将所述静态图像存储在所述设备的所述非易失性存储器中。
18.一种其上存储有指令的非暂时性计算机可读介质,所述指令在由处理器执行时使所述处理器执行操作,所述操作包括:
基于运动图像的多个帧来确定所述运动图像的运动得分;
确定所述运动得分是否满足显示阈值;
如果所述运动得分满足所述显示阈值,通过连续地显示所述运动图像的所述多个帧,使得具有主体运动的所述运动图像被显示;以及
如果所述运动得分不满足所述显示阈值,通过显示所述运动图像的所述多个帧中的特定帧,使得没有主体运动的所述运动图像被显示。
19.如权利要求18所述的非暂时性计算机可读介质,其上存储有进一步的指令,所述进一步的指令在由所述处理器执行时使得所述处理器执行操作,所述操作包括:
确定所述运动图像的背景部分的稳定性水平;以及
确定所述运动图像的主体的类型和所述运动图像中的所述主体的移动水平,其中,所述运动得分基于所述稳定性水平、所述主体的所述类型和所述主体的所述移动水平。
20.如权利要求18所述的非暂时性计算机可读介质,其上存储有进一步的指令,所述进一步的指令在由所述处理器执行时使得所述处理器执行操作,所述操作包括:
确定一个或多个其他图像的各自的运动得分;以及
基于所述各自的运动得分选择所述显示阈值,其中,所述选择包括:
确定与比所述运动图像的所述运动得分高的各自的运动得分相关联的所述一个或多个其他图像的数量;
如果所述数量等于或大于阈值数量,则将所述显示阈值设置为高于所述运动图像的所述运动得分;以及
如果所述数量小于所述阈值数量,则将所述显示阈值设置为低于所述运动图像的所述运动得分。
CN201980090203.5A 2019-01-25 2019-09-27 具有选择性运动描述的图像显示 Pending CN113348486A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/258,406 2019-01-25
US16/258,406 US10775977B2 (en) 2019-01-25 2019-01-25 Image display with selective depiction of motion
PCT/US2019/053690 WO2020153999A1 (en) 2019-01-25 2019-09-27 Image display with selective depiction of motion

Publications (1)

Publication Number Publication Date
CN113348486A true CN113348486A (zh) 2021-09-03

Family

ID=68296684

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980090203.5A Pending CN113348486A (zh) 2019-01-25 2019-09-27 具有选择性运动描述的图像显示

Country Status (6)

Country Link
US (2) US10775977B2 (zh)
EP (1) EP3815042B1 (zh)
JP (1) JP2022525272A (zh)
KR (1) KR20210118437A (zh)
CN (1) CN113348486A (zh)
WO (1) WO2020153999A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114677391A (zh) * 2022-05-26 2022-06-28 青岛大学附属医院 一种脊椎图像分割方法

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9756249B1 (en) * 2016-04-27 2017-09-05 Gopro, Inc. Electronic image stabilization frequency estimator
EP3767543A1 (en) * 2019-07-17 2021-01-20 Robert Bosch GmbH Device and method for operating a neural network
KR102618732B1 (ko) * 2019-08-27 2023-12-27 엘지전자 주식회사 얼굴 인식 활용 단말기 및 얼굴 인식 활용 방법
US11645766B2 (en) * 2020-05-04 2023-05-09 International Business Machines Corporation Dynamic sampling for object recognition
KR102540756B1 (ko) * 2022-01-25 2023-06-08 주식회사 딥브레인에이아이 발화 합성 영상 생성 장치 및 방법
KR102540759B1 (ko) * 2022-02-09 2023-06-08 주식회사 딥브레인에이아이 발화 합성 영상 생성 장치 및 방법
KR102584485B1 (ko) * 2022-02-14 2023-10-04 주식회사 딥브레인에이아이 발화 합성 영상 생성 장치 및 방법
KR102584484B1 (ko) * 2022-02-14 2023-10-04 주식회사 딥브레인에이아이 발화 합성 영상 생성 장치 및 방법
WO2024005530A1 (ko) * 2022-06-28 2024-01-04 이상민 실물경제 기반의 메타버스 시스템 및 작동 방법
CN115187783B (zh) * 2022-09-09 2022-12-27 之江实验室 基于联邦学习的多任务混合监督医疗图像分割方法及系统

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08317378A (ja) * 1995-05-19 1996-11-29 Fujitsu General Ltd ビデオカメラ切換装置
JP2000115762A (ja) * 1998-10-06 2000-04-21 Hitachi Ltd 監視装置
US6834128B1 (en) 2000-06-16 2004-12-21 Hewlett-Packard Development Company, L.P. Image mosaicing system and method adapted to mass-market hand-held digital cameras
JP2004357054A (ja) * 2003-05-29 2004-12-16 Toshiba Corp 映像表示装置及び映像表示方法
JP2006222510A (ja) * 2005-02-08 2006-08-24 Seiko Epson Corp 画像再生装置および画像再生プログラム
JP4232113B2 (ja) * 2006-02-17 2009-03-04 ソニー株式会社 データ処理装置およびデータ処理方法、並びにプログラム
JP2009048347A (ja) * 2007-08-17 2009-03-05 Seiko Epson Corp 画像処理装置、画像処理方法、および、画像処理プログラム
US8195038B2 (en) * 2008-10-24 2012-06-05 At&T Intellectual Property I, L.P. Brief and high-interest video summary generation
US8494283B2 (en) 2010-12-21 2013-07-23 Microsoft Corporation Image quality assessment
JP2013015916A (ja) * 2011-06-30 2013-01-24 Dainippon Printing Co Ltd 画像管理装置、画像管理方法、画像管理プログラム及び記録媒体
JP2013046259A (ja) * 2011-08-24 2013-03-04 Olympus Imaging Corp 映像機器、制御方法およびプログラム
JP2015061236A (ja) * 2013-09-19 2015-03-30 カシオ計算機株式会社 画像処理装置、画像処理方法及びプログラム
US9571727B2 (en) * 2014-05-21 2017-02-14 Google Technology Holdings LLC Enhanced image capture
WO2015200350A1 (en) 2014-06-24 2015-12-30 Google Inc. Ranking and selecting images for display from a set of images
US9646227B2 (en) 2014-07-29 2017-05-09 Microsoft Technology Licensing, Llc Computerized machine learning of interesting video sections
WO2017066593A1 (en) * 2015-10-16 2017-04-20 Canary Connect, Inc. Sensitivity adjustment for computer-vision triggered notifications
US20170161651A1 (en) 2015-12-04 2017-06-08 Nextop Italia Srl Electronic System and Method for Travel Planning, Based On Object-Oriented Technology
JP6517681B2 (ja) * 2015-12-17 2019-05-22 日本電信電話株式会社 映像パターン学習装置、方法、及びプログラム
US10002435B2 (en) 2016-01-29 2018-06-19 Google Llc Detecting motion in images
US9532004B1 (en) 2016-05-12 2016-12-27 Google Inc. Animated user identifiers
WO2017208529A1 (ja) * 2016-06-02 2017-12-07 オムロン株式会社 運転者状態推定装置、運転者状態推定システム、運転者状態推定方法、運転者状態推定プログラム、対象者状態推定装置、対象者状態推定方法、対象者状態推定プログラム、および記録媒体
JP2018081404A (ja) * 2016-11-15 2018-05-24 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 識別方法、識別装置、識別器生成方法及び識別器生成装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114677391A (zh) * 2022-05-26 2022-06-28 青岛大学附属医院 一种脊椎图像分割方法
CN114677391B (zh) * 2022-05-26 2022-08-26 青岛大学附属医院 一种脊椎图像分割方法

Also Published As

Publication number Publication date
US20200241716A1 (en) 2020-07-30
EP3815042B1 (en) 2023-06-21
US10775977B2 (en) 2020-09-15
EP3815042A1 (en) 2021-05-05
JP2022525272A (ja) 2022-05-12
KR20210118437A (ko) 2021-09-30
WO2020153999A1 (en) 2020-07-30
US11231838B2 (en) 2022-01-25
US20200393943A1 (en) 2020-12-17

Similar Documents

Publication Publication Date Title
CN112740709B (zh) 一种执行用于视频分析的门控的计算机实现的方法、计算设备及计算机可读介质
EP3815042B1 (en) Image display with selective depiction of motion
US11949848B2 (en) Techniques to capture and edit dynamic depth images
US20220053195A1 (en) Learning-based image compression setting
JP7257591B2 (ja) パーソナライズされた自動ビデオクロッピング
JP2024073439A (ja) 選択的な動きの描画を伴う画像表示
JP2024514728A (ja) 機械学習を用いた選択的な画像ぼやけ

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