CN116964590A - 用平均平滑使图像到图像模型压缩 - Google Patents
用平均平滑使图像到图像模型压缩 Download PDFInfo
- Publication number
- CN116964590A CN116964590A CN202280018987.2A CN202280018987A CN116964590A CN 116964590 A CN116964590 A CN 116964590A CN 202280018987 A CN202280018987 A CN 202280018987A CN 116964590 A CN116964590 A CN 116964590A
- Authority
- CN
- China
- Prior art keywords
- image
- message
- data
- user
- network
- 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
Links
- 238000009499 grossing Methods 0.000 title claims abstract description 18
- 230000006835 compression Effects 0.000 title abstract description 46
- 238000007906 compression Methods 0.000 title abstract description 46
- 238000000034 method Methods 0.000 claims abstract description 89
- 238000010606 normalization Methods 0.000 claims abstract description 23
- 238000012549 training Methods 0.000 claims abstract description 11
- 230000015654 memory Effects 0.000 claims description 36
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 claims description 27
- 230000008485 antagonism Effects 0.000 claims description 5
- 238000013459 approach Methods 0.000 abstract description 6
- 230000001419 dependent effect Effects 0.000 abstract description 3
- 230000006870 function Effects 0.000 description 34
- 230000004048 modification Effects 0.000 description 33
- 238000012986 modification Methods 0.000 description 33
- 238000004891 communication Methods 0.000 description 31
- 230000009466 transformation Effects 0.000 description 19
- 238000012545 processing Methods 0.000 description 17
- 230000003190 augmentative effect Effects 0.000 description 16
- 230000008569 process Effects 0.000 description 15
- 238000013528 artificial neural network Methods 0.000 description 12
- 238000007726 management method Methods 0.000 description 11
- 230000004044 response Effects 0.000 description 11
- 230000005540 biological transmission Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 10
- 238000001514 detection method Methods 0.000 description 9
- 230000000007 visual effect Effects 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 8
- 238000004422 calculation algorithm Methods 0.000 description 7
- 210000000887 face Anatomy 0.000 description 7
- 230000008878 coupling Effects 0.000 description 6
- 238000010168 coupling process Methods 0.000 description 6
- 238000005859 coupling reaction Methods 0.000 description 6
- 238000012546 transfer Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 5
- 230000006855 networking Effects 0.000 description 5
- 238000000844 transformation Methods 0.000 description 5
- 239000008186 active pharmaceutical agent Substances 0.000 description 4
- 230000001413 cellular effect Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 230000001815 facial effect Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 230000001131 transforming effect Effects 0.000 description 4
- 241001465754 Metazoa Species 0.000 description 3
- 244000141353 Prunus domestica Species 0.000 description 3
- 238000013527 convolutional neural network Methods 0.000 description 3
- 230000018109 developmental process Effects 0.000 description 3
- 239000003550 marker Substances 0.000 description 3
- 238000013138 pruning Methods 0.000 description 3
- 230000001052 transient effect Effects 0.000 description 3
- 230000003044 adaptive effect Effects 0.000 description 2
- 238000007792 addition Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000007613 environmental effect Effects 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 238000013140 knowledge distillation Methods 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 230000005291 magnetic effect Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000035772 mutation Effects 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 241000282472 Canis lupus familiaris Species 0.000 description 1
- 241000282326 Felis catus Species 0.000 description 1
- 241000282320 Panthera leo Species 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000032683 aging Effects 0.000 description 1
- 230000003416 augmentation Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000036772 blood pressure Effects 0.000 description 1
- 230000036760 body temperature Effects 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 230000010267 cellular communication Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 239000003344 environmental pollutant Substances 0.000 description 1
- 230000008921 facial expression Effects 0.000 description 1
- GVVPGTZRZFNKDS-JXMROGBWSA-N geranyl diphosphate Chemical compound CC(C)=CCC\C(C)=C\CO[P@](O)(=O)OP(O)(O)=O GVVPGTZRZFNKDS-JXMROGBWSA-N 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 231100001261 hazardous Toxicity 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000007620 mathematical function Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000036651 mood Effects 0.000 description 1
- 230000005693 optoelectronics Effects 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 231100000719 pollutant Toxicity 0.000 description 1
- 210000001747 pupil Anatomy 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 230000004266 retinal recognition Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 238000011524 similarity measure Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 210000004243 sweat Anatomy 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0495—Quantised networks; Sparse networks; Compressed networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/002—Image coding using neural networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0464—Convolutional networks [CNN, ConvNet]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/047—Probabilistic or stochastic networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0475—Generative networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/088—Non-supervised learning, e.g. competitive learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/094—Adversarial learning
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Biomedical Technology (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Software Systems (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Probability & Statistics with Applications (AREA)
- Information Transfer Between Computers (AREA)
Abstract
用于使图像到图像模型压缩的系统和方法。生成式对抗网络(Generative Adversarial Network,GAN)在生成高保真图像方面取得了成功。一种图像压缩系统和方法向类依赖参数(CLADE)添加一种新的变体,称为CLADE‑Avg,其在不引入额外计算成本的情况下恢复图像质量。在参数层和归一化层之间执行额外的平均平滑层。与CLADE相比,该图像压缩系统和方法使突变边界平滑,并引入更多可能的缩放和移位值。此外,用于平均平滑的内核尺寸可以被选择为超参数,例如3×3的内核尺寸。该方法不引入额外的乘法,而只引入加法,因此不会引入较多计算开销,因为除法可以在训练后被吸收到参数中。
Description
相关申请的交叉引用
本申请要求于2021年3月4日提交的美国申请序列号17/191,970的优先权,该申请的内容通过引用完全并入本文。
技术领域
本文阐述的示例通常涉及生成式对抗网络(generative adversarial network,GAN)。该示例包括但不限于用于使图像到图像模型压缩的方法和系统。
背景技术
GAN是一种机器学习框架,其中两个神经网络(鉴别器网络和生成器网络)在零和游戏(zero-sum game)中相互竞争。给定训练数据集,GAN训练的模型学习生成具有与训练集相同统计数据的新数据。
附图说明
在不一定按比例绘制的图纸中,相似的数字可以在不同的视图中描述相似的部件。为了便于识别对任何特定元素或行为的讨论,附图标记中的最高有效数字指的是该元素首次引入的图号。一些非限制性示例在附图的图中示出,其中:
图1是根据一些示例的其中可以部署本公开的联网环境的图解表征;
图2是根据一些示例的具有客户端和服务器端功能两者的消息系统的图解表征;
图3是根据一些示例的在数据库中维护的数据结构的图解表征;
图4是根据一些示例的消息的图解表征;
图5是根据一些示例的访问限制过程的流程图;
图6是根据一些示例的生成式对抗网络体系结构的图示;
图7是根据一些示例的残差块的图示;
图8A示出根据一个示例的方法;
图8B示出在学习的归一化层的缩放和移位参数的输入上引入空间依赖性(spatial-dependency,SPADE)方法;
图8C示出使用输入类而不是输入像素信息来确定下一个归一化层中的缩放和移位参数的类自适应(class adaptive,CLADE)方法;
图8D示出CLADE-Avg方法,其中,在参数和归一化层之间提供额外的平均平滑层,该额外的平均平滑层使突变边界平滑,并且引入用于缩放和移位的更多可能值;
图8E示出用于使用Clade-Avg方法生成压缩的图像到图像模型的示例方法;
图9是根据一些示例的计算机系统形式的机器的图解表征,在该计算机系统内可以执行指令集合以使机器执行本文所讨论的方法中的任何一个或更多个;以及
图10是示出其中可以实现示例的软件体系结构的框图。
具体实施方式
本公开包括用于使图像到图像模型压缩的方法和系统。生成式对抗网络(GAN)在生成高保真图像方面取得了成功。本公开中所阐述的示例描述了一种图像压缩系统和方法,其向CLADE参数添加新的变体,在本公开中称为CLADE-Avg,其在不引入额外计算成本的情况下恢复图像质量。本公开在参数层和归一化层之间引入了额外的平均平滑层。与CLADE相比,该图像压缩系统和方法使突变边界平滑,并引入更多可能的缩放和移位值。此外,用于平均平滑的内核尺寸可以被选择为超参数,例如3×3的内核尺寸。这种方法不引入额外的乘法,而只引入加法,因此不会引入较多计算开销,因为除法可以在训练后被吸收到参数中。
图像压缩系统将基于初始的残差块(inception-based residual block)包括到教师网络(teacher network)的生成器网络(例如,第一GAN)中。图像压缩系统使用一步修剪法从教师网络中搜索学生网络(例如,第二GAN)。图像压缩系统通过使用相似性度量最大化教师网络和学生网络之间的特征相似性来使用知识蒸馏(distillation)训练学生网络。由此产生的训练后学生网络比教师网络包含更少的参数,并且在计算上比其教师网络对应物更高效。训练后学生网络可以以比教师网络更低的计算成本在移动计算设备上运行。
网络计算环境
图1是示出用于在网络上交换数据(例如,消息和相关联的内容)的示例消息系统100的框图。消息系统100包括客户端设备102的多个实例,每个客户端设备托管多个应用,包括消息客户端104和其他应用106。每个消息客户端104经由网络112(例如,互联网)通信地耦接至(例如,托管在相应的其他客户端设备102上的)消息客户端104的其他实例、消息服务器系统108和第三方服务器110。消息客户端104还可以使用应用程序接口(Applications Program Interface,API)与本地托管的应用106通信。
消息客户端104能够经由网络112与其他消息客户端104以及消息服务器系统108通信和交换数据。在消息客户端104之间以及在消息客户端104和消息服务器系统108之间交换的数据包括功能(例如,调用功能的命令)以及有效载荷数据(例如,文本、音频、视频或其他多媒体数据)。
消息服务器系统108经由网络112向特定消息客户端104提供服务器端功能。尽管消息系统100的某些功能在本文中被描述为由消息客户端104或由消息服务器系统108执行,但某些功能在消息客户端104或消息服务器系统108内的位置可以是设计选择。例如,在技术上优选的是,最初在消息服务器系统108内部署某些技术和功能,但随后将该技术和功能迁移到消息客户端104,其中客户端设备102具有足够的处理能力。
消息服务器系统108支持提供给消息客户端104的各种服务和操作。这样的操作包括向消息客户端104发送数据、从消息客户端104接收数据以及处理由消息客户端104生成的数据。作为示例,该数据可以包括消息内容、客户端设备信息、地理位置信息、媒体增强和覆盖、消息内容持久性条件、社交网络信息和实况事件信息。通过经由消息客户端104的用户界面(user interface,UI)可用的功能来调用和控制消息系统100内的数据交换。
现在具体转向消息服务器系统108,应用程序接口(API)服务器116耦接至应用服务器114,并向应用服务器114提供编程接口。应用服务器114通信地耦接至数据库服务器120,数据库服务器120便于访问存储与由应用服务器114处理的消息相关联的数据的数据库126。类似地,网络服务器128耦接至应用服务器114,并向应用服务器114提供基于网络的接口。为此,网络服务器128通过超文本传输协议(Hypertext Transfer Protocol,HTTP)和若干其他相关协议来处理传入的网络请求。
应用程序接口(API)服务器116在客户端设备102和应用服务器114之间接收并发送消息数据(例如,命令和消息有效载荷)。具体地,应用程序接口(API)服务器116提供接口集合(例如,例程和协议),这些接口可以由消息客户端104调用或查询,以便调用应用服务器114的功能。应用程序接口(API)服务器116公开由应用服务器114支持的各种功能,包括账户注册、登录功能、经由应用服务器114从特定消息客户端104向另一消息客户端104发送消息,为了另一消息客户端104的可能访问从消息客户端104向消息服务器118发送媒体文件(例如,图像或视频)、媒体数据集合(例如,故事)的设置、客户端设备102的用户的朋友列表的检索、这样的集合的检索、消息和内容的检索、对实体图(例如,社交图)的实体(例如,朋友)的添加和删除、朋友在社交图内的位置、以及打开(例如,与消息客户端104有关的)应用事件。
应用服务器114托管许多服务器应用和子系统,包括例如消息服务器118、图像处理服务器122、社交网络服务器124和图像压缩系统130。消息服务器118实现许多消息处理技术和功能,特别是与包括在从消息客户端104的多个实例接收的消息中的内容(例如,文本和多媒体内容)的聚合和其他处理有关。如将进一步详细描述的,来自多个资源的文本和媒体内容可以被聚合成内容集合(例如,称为故事或图表种类)。然后使这些集合可用于消息客户端104。考虑到这样的处理的硬件要求,消息服务器118也可以在服务器端执行对数据的其他处理器和存储器密集型处理。
应用服务器114还包括图像处理服务器122,该图像处理服务器122致力于执行各种图像处理操作,通常针对从消息服务器118发送或在消息服务器118处接收的消息的有效载荷内的图像或视频。
社交网络服务器124支持各种社交网络功能和服务,并使这些功能和服务可用于消息服务器118。为此,社交网络服务器124维护并访问数据库126内的实体图308(如图3所示)。由社交网络服务器124支持的功能和服务的示例包括与特定用户有关系或“关注”的消息系统100的其他用户的标识以及特定用户的其他实体和感兴趣的标识。
图像压缩系统130搜索教师网络以生成计算高效的学生网络。图像压缩系统130利用残差块,该残差块被专门配置为生成搜索空间,从该搜索空间可以找到高效的学生网络。
回到消息客户端104,外部资源(例如,应用106或小程序)的特征和功能可经由消息客户端104的接口提供给用户。在此背景中,“外部”指的是应用106或小程序在消息客户端104外部的事实。外部资源通常由第三方提供,但也可以由消息客户端104的提供商提供。消息客户端104接收对启动或访问这样的外部资源的特征的选项的用户选择。外部资源可以是安装在客户端设备102上的应用106(例如,“本地应用”),或者是托管在客户端设备102上或远程客户端设备102(例如,在第三方服务器110上)的应用的小规模版本(例如,小程序)。应用的小规模版本包括应用的特征和功能的子集(例如,应用的全规模本地版本),并使用标记语言文档来实现。在一个示例中,应用的小规模版本(例如,“小程序”)是应用的基于网络的标记语言版本,嵌入在消息客户端104中。除了使用标记语言文档(例如,.*ml文件)之外,小程序还可以包含脚本语言(例如,.*js文件或.json文件)和样式表(例如,.*ss文件)。
响应于接收到对启动或访问外部资源的特征的选项的用户选择,消息客户端104确定所选择的外部资源是基于网络的外部资源还是本地安装的应用106。在一些情况下,本地安装在客户端设备102上的应用106可以例如通过选择客户端设备102的主屏幕上对应于应用106的图标,来独立于消息客户端104并且与消息客户端104分开地启动。这样的应用的小规模版本可以经由消息客户端104来启动或访问,在一些示例中,在消息客户端104之外不能访问小规模应用的任何部分或访问小规模应用的有限部分。可以通过消息客户端104从例如第三方服务器110接收与小规模应用相关联的标记语言文档并处理这样的文档来启动小规模应用。
响应于确定外部资源是本地安装的应用106,消息客户端104通过执行与外部资源相对应的本地存储的代码来指示客户端设备102启动外部资源。响应于确定外部资源是基于网络的资源,消息客户端104与第三方服务器110通信(例如)以获得与所选择的外部资源相对应的标记语言文档。消息客户端104然后处理所获得的标记语言文档,以在消息客户端104的用户界面内呈现基于网络的外部资源。
消息客户端104可以将在一个或更多个外部资源中发生的活动通知客户端设备102的用户或与这样的用户相关的其他用户(例如,“朋友”)。例如,消息客户端104可以向消息客户端104中的会话(例如,聊天会话)的参与者提供与用户组中的一个或更多个成员的外部资源的当前或最近使用有关的通知。可以邀请一个或更多个用户加入激活的外部资源,或启动最近使用但当前未激活的(朋友组中的)外部资源。外部资源可以向会话中的参与者提供在聊天会话中与用户组中的一个或更多个成员共享外部资源中的项目、状况、状态或位置的能力,每个参与者使用各自的消息客户端104。共享项目可以是交互式聊天卡,聊天成员可以与该交互式聊天卡进行交互,例如,启动相应的外部资源,查看外部资源内的特定信息,或者将聊天成员带到外部资源内特定的位置或状态。在给定的外部资源内,可以向消息客户端104上的用户发送响应消息。外部资源可以基于外部资源的当前背景在响应中选择性地包括不同的媒体项。
消息客户端104可以向用户呈现可用外部资源(例如,应用106或小程序)的列表,以启动或访问给定的外部资源。此列表可以在上下文相关菜单中显示。例如,代表应用106(或小程序)的不同图标可以基于用户如何(例如,从会话界面或从非会话界面)启动菜单而变化。
系统体系结构
图2是示出根据一些示例的关于消息系统100的进一步细节的框图。具体地,消息系统100被示出为包括消息客户端104和应用服务器114。消息系统100包含多个子系统,它们在客户端由消息客户端104支持,在服务器端由应用服务器114支持。这些子系统包括,例如,短暂定时器系统202、集合管理系统204、增强系统208、地图系统210、游戏系统212、外部资源系统214和图像压缩系统130。
短暂定时器系统202负责强制执行由消息客户端104和消息服务器118对内容的暂时性或有时间限制的访问。短暂定时器系统202包含多个定时器,这些定时器基于与消息或消息集合(例如,故事)相关联的持续时间和显示参数,选择性地使得能够经由消息客户端104访问(例如,用于呈现和显示)消息和相关内容。下面提供关于短暂定时器系统202的操作的进一步细节。
集合管理系统204负责管理媒体的集或集合(例如,文本、图像视频和音频数据的集合)。内容集合(例如,消息,包括图像、视频、文本和音频)可以组织成“事件库”或“事件故事”。这样的集合可以在指定的时间段(例如与内容相关的事件的持续时间)可用。例如,与音乐会有关的内容可以在音乐会期间作为“故事”提供。集合管理系统204还可以负责发布图标,该图标向消息客户端104的用户界面提供特定集合存在的通知。
集合管理系统204还包括策划接口206,该策划接口206允许集合管理器管理和策划特定的内容集合。例如,策划接口206使得事件组织者能够策划与特定事件有关的内容的集合(例如,删除不适当的内容或冗余消息)。此外,集合管理系统204采用机器视觉(或图像识别技术)和内容规则来自动地策划内容集合。在某些示例中,可以向用户支付将用户生成的内容包括在集合中的补偿。在这样的情况下,集合管理系统204操作以自动地向这样的用户支付使用他们的内容的费用。
增强系统208提供各种功能,使用户能够增强(例如,注释或以其他方式修改或编辑)与消息相关联的媒体内容。例如,增强系统208提供与由消息系统100处理的消息的媒体覆盖的生成和发布有关的功能。增强系统208基于客户端设备102的地理位置可操作地向消息客户端104提供媒体覆盖或增强(例如,图像过滤器)。在另一示例中,增强系统208基于其他信息(例如客户端设备102的用户的社交网络信息)可操作地向消息客户端104提供媒体覆盖。媒体覆盖可以包括音频和视觉内容以及视觉效果。音频和视觉内容的示例包括图片、文本、徽标、动画和声音效果。视觉效果的示例包括颜色叠加。音频和视觉内容或视觉效果可以应用于客户端设备102处的媒体内容项(例如,照片)。例如,媒体覆盖可以包括可以覆盖在由客户端设备102拍摄的照片的顶部的文本或图像。在另一示例中,媒体覆盖包括位置覆盖的标识(例如,威尼斯海滩)、实况事件的名称或商家覆盖的名称(例如,海滩咖啡馆)。在另一示例中,增强系统208使用客户端设备102的地理位置来识别媒体覆盖,该媒体覆盖包括在客户端设备102的地理位置处的商家的名称。媒体覆盖可以包括与商家相关联的其他标记。媒体覆盖可以存储在数据库126中并且通过数据库服务器120访问。
在一些示例中,增强系统208提供基于用户的发布平台,该平台使用户能够在地图上选择地理位置并上传与所选择的地理位置相关联的内容。用户还可以指定应当向其他用户提供特定媒体覆盖的情况。增强系统208生成包括上传的内容的媒体覆盖,并将上传的内容与所选择的地理位置相关联。
在其他示例中,增强系统208提供基于商家的发布平台,该平台使商家能够经由出价过程选择与地理位置相关联的特定媒体覆盖。例如,增强系统208将出价最高的商家的媒体覆盖与对应的地理位置关联预定义时间量。
地图系统210提供各种地理位置功能,并支持消息客户端104对基于地图的媒体内容和消息的呈现。例如,地图系统210使得能够在地图上显示(例如,存储在简档数据316中的)用户图标或化身(avatar),以指示用户的“朋友”的当前或过去位置以及由这样的朋友在地图的背景中生成的媒体内容(例如,包括照片和视频的消息集合)。例如,由用户从特定地理位置发布到消息系统100的消息可以在该特定位置处的地图的背景内显示给消息客户端104的地图界面上的特定用户的“朋友”。用户还可以经由消息客户端104与消息系统100的其他用户共享他或她的位置和状态信息(例如,使用适当的状态化身),其中该位置和状态信息类似地在消息客户端104的地图界面的背景内显示给所选择的用户。
游戏系统212在消息客户端104的背景内提供各种游戏功能。消息客户端104提供游戏界面,该游戏界面提供可用游戏的列表,该可用游戏可以由用户在消息客户端104的背景内启动并且与消息系统100的其他用户一起玩。消息系统100还使特定用户能够通过从消息客户端104向这样的其他用户发出邀请来邀请其他用户参与玩特定游戏。消息客户端104还支持游戏背景内的语音和文本消息(例如,聊天),为游戏提供排行榜,并且还支持提供游戏内奖励(例如,硬币和物品)。
外部资源系统214为消息客户端104提供接口,以与远程服务器(例如,第三方服务器110)通信,以启动或访问外部资源(即,应用或小程序)。例如,每个第三方服务器110托管基于标记语言(例如,HTML5(Hypertext Markup Language 5))的应用或应用的小规模版本(例如,游戏、实用程序、支付或拼车应用)。消息客户端104可以通过从与基于网络的资源相关联的第三方服务器110访问HTML5文件来启动基于网络的资源(例如,应用)。在某些示例中,利用由消息服务器118提供的软件开发工具包(Software Development Kit,SDK),以JavaScript对由第三方服务器110托管的应用进行编程。SDK包括应用程序接口(API),其功能可由基于网络的应用调用。在某些示例中,消息服务器118包括JavaScript库,该JavaScript库提供对消息客户端104的某些用户数据的给定外部资源访问。HTML5被用作用于对游戏编程的示例技术,但也可以使用基于其他技术编程的应用和资源。
为了将SDK的功能集成到基于网络的资源中,SDK由第三方服务器110从消息服务器118下载,或者由第三方服务器110以其他方式接收。一旦下载或接收到SDK,就会将其作为基于网络的外部资源的应用代码的部分。基于网络的资源的代码然后可以调用SDK的某些功能,以将消息客户端104的特征集成到基于网络的资源中。
存储在消息服务器118上的SDK有效地提供外部资源(例如,应用106或小程序)与消息客户端104之间的桥梁。这为用户提供了在消息客户端104上与其他用户通信的无缝体验,同时还保留消息客户端104的外观和感觉。为了桥接外部资源和消息客户端104之间的通信,在某些示例中,SDK便于第三方服务器110和消息客户端104之间的通信。在某些示例中,在客户端设备102上运行的WebViewJavaScriptBridge在外部资源和消息客户端104之间建立两个单向通信通道。经由这些通信通道在外部资源和消息客户端104之间异步地发送消息。每个SDK函数调用都作为消息和回调发送。每个SDK函数通过构造唯一的回调标识符并发送带有该回调标识符的消息来实现。
通过使用SDK,并非来自消息客户端104的所有信息都与第三方服务器110共享。SDK基于外部资源的需要来限制共享哪些信息。在某些示例中,每个第三方服务器110向消息服务器118提供与基于网络的外部资源相对应的HTML5文件。消息服务器118可以在消息客户端104中添加基于网络的外部资源的视觉表征(例如美术盒或其他图形)。一旦用户选择视觉表征或通过消息客户端104的GUI指示消息客户端104访问基于网络的外部资源的特征,消息客户端104就获得了HTML5文件并实例化访问基于网络的外部资源的特征所需的资源。
消息客户端104呈现用于外部资源的图形用户界面(例如,登录页或标题屏幕)。在呈现登录页或标题屏幕期间、之前或之后,消息客户端104确定所启动的外部资源先前是否已被授权访问消息客户端104的用户数据。响应于确定所启动的外部资源先前已被授权访问消息客户端104的用户数据,消息客户端104呈现外部资源的另一图形用户界面,该图形用户界面包括外部资源的功能和特征。响应于确定所启动的外部资源先前未被授权访问消息客户端104的用户数据,在显示外部资源的登录页或标题屏幕的阈值时间段(例如,3秒)之后,消息客户端104向上滑动菜单(例如,将菜单动画化为从屏幕的底部呈现到屏幕的中间或其他部分),用于授权外部资源访问用户数据。菜单标识外部资源将被授权使用的用户数据类型。响应于接收到对接受选项的用户选择,消息客户端104将外部资源添加到授权的外部资源的列表中,并允许外部资源访问来自消息客户端104的用户数据。在一些示例中,由消息客户端104授权外部资源以根据OAuth 2框架访问用户数据。
消息客户端104基于授权的外部资源的类型来控制与外部资源共享的用户数据的类型。例如,向包括全规模应用(例如,应用106)的外部资源提供对第一类型的用户数据(例如,仅具有或不具有不同化身特性的用户的二维化身)的访问。作为另一示例,向包括应用的小规模版本(例如,应用的基于网络的版本)的外部资源提供对第二类型的用户数据(例如,支付信息、用户的二维化身、用户的三维化身以及具有各种化身特性的化身)的访问。化身特性包括定制化身的外观和感觉(例如不同的姿势、面部特征、服装等)的不同方式。
图像压缩系统130搜索教师网络以生成计算高效的学生网络。图像压缩系统130利用残差块,该残差块被专门配置为生成搜索空间,从该搜索空间可以找到高效的学生网络。图像压缩系统130的各方面可以存在于消息客户端104上,其他方面可以存在于应用服务器114上。在一些示例中,图像压缩系统130仅在消息客户端104上运行。
数据体系结构
图3是示出根据某些示例的数据结构300的示意图,数据结构300可以存储在消息服务器系统108的数据库126中。虽然数据库126的内容被示出为包括多个表,但是应当理解,数据可以被存储在其他类型的数据结构(例如,作为面向对象的数据库)中。
数据库126包括存储在消息表302内的消息数据。对于任何特定的一个消息,该消息数据包括至少消息发送者数据、消息接收者(或接收器)数据和有效载荷。下面参考图4描述关于可以包括在消息中并且包括在存储在消息表302中的消息数据内的信息的进一步细节。
实体表306存储实体数据,并(例如,参考地)链接到实体图308和简档数据316。在实体表306内为其维护记录的实体可以包括个人、公司实体、组织、对象、地点、事件等等。不管实体类型如何,关于消息服务器系统108存储数据的任何实体都可以是被识别的实体。每个实体提供有唯一的标识符以及实体类型标识符(未示出)。
实体图308存储关于实体之间的关系和关联的信息。仅作为示例,这样的关系可以是基于社交的、职业(例如,在共同的公司或组织工作)兴趣的或基于活动的。
简档数据316存储关于特定实体的多种类型的简档数据。简档数据316可以基于由特定实体指定的隐私设置来选择性地使用并呈现给消息系统100的其他用户。在实体是个人的情况下,简档数据316包括例如用户名、电话号码、地址、设置(例如,通知和隐私设置)以及用户选择的化身表征(或这样的化身表征的集合)。然后,特定用户可以选择性地将这些化身表征中的一个或更多个包括在经由消息系统100传送的消息的内容内以及在由消息客户端104向其他用户显示的地图界面上。化身表征的集合可以包括“状态化身”,其呈现用户可以选择在特定时间通信的状态或活动的图形表征。
在实体是群组的情况下,除了群组名称、成员和相关群组的各种设置(例如,通知)之外,群组的简档数据316可以类似地包括与群组相关联的一个或更多个化身表征。
数据库126还在增强表310中存储增强数据,例如覆盖或过滤器。增强数据与视频(其数据被存储在视频表304中)和图像(其数据存储在图像表312中)相关联并应用于视频和图像。
在一个示例中,过滤器是在向接收者用户演示期间显示为覆盖在图像或视频上的覆盖。过滤器可以是各种类型的,包括当发送用户正在撰写消息时由消息客户端104呈现给发送用户的过滤器集合中的用户选择的过滤器。其他类型的过滤器包括地理位置过滤器(也称为地理过滤器),其可以基于地理位置呈现给发送用户。例如,基于由客户端设备102的全球定位系统(Global Positioning System,GPS)单元确定的地理位置信息,特定于邻居或特殊位置的地理位置过滤器可以由消息客户端104呈现在用户界面内。
另一种类型的过滤器是数据过滤器,其可以由消息客户端104基于由客户端设备102在消息生成过程期间收集的其他输入或信息选择性地呈现给发送用户。数据过滤器的示例包括特定位置处的当前温度、发送用户正在行进的当前速度、客户端设备102的电池寿命或当前时间。
可以存储在图像表312内的其他增强数据包括增强现实内容项(例如,对应于应用镜头或增强现实体验)。增强现实内容项可以是可以添加到图像或视频的实时特效和声音。
如上所述,增强数据包括增强现实内容项、覆盖、图像转换、增强现实(AugmentedReality,AR)图像、以及指代可以应用于图像数据(例如,视频或图像)的修改的类似术语。这包括实时修改,其在使用客户端设备102的设备传感器(例如,一个或多个相机)捕获图像并且随后在具有修改的情况下显示在客户端设备102的屏幕上时显示修改图像。这还包括对存储内容(例如可以修改的库中的视频剪辑)的修改。例如,在可以访问多个增强现实内容项的客户端设备102中,用户可以使用具有多个增强现实内容项的单个视频剪辑来查看不同的增强现实内容项将如何修改所存储的剪辑。例如,应用不同伪随机运动模型的多个增强现实内容项可以通过为内容选择不同的增强现实内容项来应用于同一内容。类似地,实时视频捕获可以与所示的修改一起使用,以示出当前由客户端设备102的传感器捕获的视频图像将如何修改所捕获的数据。这样的数据可以简单地显示在屏幕上而不存储在存储器中,或者由设备传感器捕获的内容在修改或不修改(或两者)的情况下可以被记录并存储在存储器中。在一些系统中,预览特征可以示出不同的增强现实内容项在显示器的不同窗口内同时看起来如何。例如,这可以使具有不同伪随机动画的多个窗口能够在显示器上同时查看。
因此,数据和使用增强现实内容项或其他这样的变换系统来使用该数据修改内容的各种系统可能涉及对对象(例如,面部、手部、身体、猫、狗、表面、对象等)的检测、在这些对象离开视频帧中的视场、进入视频帧中的视场和在视频帧中的视场周围移动时对这样的对象的跟踪、以及当这些对象被跟踪时对它们的修改或变换。在各种示例中,可以使用用于实现这样的变换的不同方法。一些示例可能涉及生成一个或更多个对象的三维网格模型,以及使用视频内模型的变换和动画纹理来实现变换。在其他示例中,对对象上的点的跟踪可以用于将(可以是二维或三维的)图像或纹理放置在被跟踪的位置处。在又一示例中,视频帧的神经网络分析可以用于在内容(例如,视频的图像或帧)中放置图像、模型或纹理。因此,增强现实内容项既指用于在内容中产生变换的图像、模型和纹理,也指利用对象检测、跟踪和放置实现这样的变换所需的额外建模和分析信息。
可以使用保存在任何类型的计算机化系统的存储器中的任何类型的视频数据(例如,视频流、视频文件等)执行实时视频处理。例如,用户可以加载视频文件并将其保存在设备的存储器中,或者可以使用设备的传感器生成视频流。此外,任何对象可以使用计算机动画模型进行处理,例如人脸和人体部位、动物或非生物(例如椅子、汽车)或其他对象。
在一些示例中,当选择特定修改以及要变换的内容时,由计算设备识别要变换的元素,然后检测和跟踪它们是否存在于视频帧中。根据修改请求来修改对象的元素,从而变换视频流的帧。对于不同种类的变换,可以通过不同的方法来执行视频流的帧的变换。例如,对于主要涉及对象元素的变化形式的帧的变换,(例如,使用主动形状模型(ActiveShape Model,ASM)或其他已知方法)计算对象的每个元素的特征点。然后,为对象的至少一个元素中的每一个生成基于特征点的网格。该网格用于跟踪视频流中对象元素的下一阶段。在跟踪过程中,每个元素的上述网格与每个元素的位置对齐。然后,在网格上生成附加点。基于修改请求为每个元素生成第一点的第一集合,基于第一点的集合和修改请求为每个元素生成第二点的集合。然后,可以通过基于第一点和第二点的集合以及网格来修改对象的元素以变换视频流的帧。在这样的方法中,通过跟踪和修改背景,也可以改变或扭曲修改对象的背景。
在一些示例中,可以通过计算对象的每个元素的特征点并基于计算的特征点生成网格来执行使用其元素改变对象的某些区域的变换。在网格上生成点,然后生成基于这些点的各种区域。然后,通过将每个元素的区域与至少一个元素中的每一个的位置对齐来跟踪对象的元素,并且可以基于修改请求来修改区域的属性,从而变换视频流的帧。根据对修改的具体请求,可以以不同的方式变换上述区域的属性。这样的修改可能涉及:改变区域的颜色;从视频流的帧中移除区域的至少一些部分;将一个或更多个新对象包括在基于修改请求的区域中;以及修改或扭曲区域或对象的元素。在各种示例中,可以使用这样的修改或其他类似修改的任何组合。对于要动画化的某些模型,可以选择一些特征点作为控制点,用于确定模型动画的选项的整个状态空间。
在使用脸部检测来变换图像数据的计算机动画模型的一些示例中,使用特定的脸部检测算法(例如,Viola-Jones)在图像上检测脸部。然后,将主动形状模型(ASM)算法应用于图像的脸部区域,以检测面部特征参考点。
可以使用适用于脸部检测的其他方法和算法。例如,在一些示例中,使用标志来定位特征,该标志表示存在于所考虑的大多数图像中的可区分点。例如,对于面部标志,可以使用左眼瞳孔的位置。如果初始标志无法识别(例如,如果一个人有眼罩),可以使用次要标志。这样的标志识别程序可以用于任何这样的对象。在某些示例中,标志集合形成一个形状。可以使用形状中的点的坐标将形状表示为向量。利用相似性变换(允许平移、缩放和旋转)将一个形状与另一个形状对齐,以最小化形状点之间的平均欧几里得距离。平均形状是对齐的训练形状的平均值。
在一些示例中,从与由全局脸部探测器确定的脸部位置和大小对齐的平均形状搜索标志。然后,这样的搜索重复以下步骤:通过对每个点周围的图像纹理进行模板匹配来调整形状点的位置,从而建议暂定形状,然后使暂定形状符合全局形状模型,直到出现收敛为止。在一些系统中,单个模板匹配是不可靠的,形状模型将弱模板匹配的结果汇集在一起,以形成更强的整体分类器。整个搜索从粗略分辨率到精细分辨率在图像金字塔的每个水平上重复。
变换系统可以在客户端设备(例如,客户端设备102)上捕获图像或视频流,并在客户端设备102上本地执行复杂的图像操作,同时保持适当的用户体验、计算时间和功耗。复杂的图像操作可以包括大小和形状变化、情绪转移(例如,将脸部从皱眉变为微笑)、状态转移(例如,使受试者衰老、减少表观年龄、改变性别)、风格转移、图形元素应用、以及由已被配置为在客户端设备102上高效执行的卷积神经网络实现的任何其他合适的图像或视频操作。
在一些示例中,用于变换图像数据的计算机动画模型可以由系统使用,其中,用户可以使用具有神经网络的客户端设备102来捕获用户的图像或视频流(例如,自拍),该神经网络作为在客户端设备102上操作的消息客户端104的部分来操作。在消息客户端104内操作的变换系统确定存在于图像或视频流内的脸部,并提供与计算机动画模型相关联的修改图标以变换图像数据,或者计算机动画模型可以与本文所述的接口相关联地存在。修改图标包括可以是作为修改操作的部分在图像或视频流内修改用户脸部的基础的变化。一旦选择了修改图标,变换系统就启动变换用户的图像以反映所选择的修改图标的过程(例如,在用户上生成笑脸)。一旦图像或视频流被捕获并且指定的修改被选择,修改后的图像或视频流就可以被呈现在显示在客户端设备102上的图形用户界面中。变换系统可以在图像或视频流的一部分上实现复杂的卷积神经网络,以生成并应用所选择的修改。也就是说,用户可以捕获图像或视频流,并且一旦选择了修改图标,就可以实时或接近实时地向用户呈现修改结果。此外,在捕获视频流的同时,修改可以是持久的,并且所选择的修改图标保持切换。机器教导的神经网络可以用于实现这样的修改。
呈现由变换系统执行的修改的图形用户界面可以为用户提供额外的交互选项。这样的选项可以基于用于启动内容捕获和对特定计算机动画模型的选择的界面(例如,根据内容生成用户界面的启动)。在各种示例中,在修改图标的初始选择之后,修改可以是持久的。用户可以通过点击或以其他方式选择由变换系统修改的脸部来切换修改的开启或关闭,并将其存储以供对图像应用的其他区域的稍后查看或浏览。在由变换系统修改多个脸部的情况下,用户可以通过点击或选择在图形用户界面内修改和显示的单个脸部来全局地切换修改开启或关闭。在一些示例中,可以单独地修改多个脸部的集群中的各个脸部,或者可以通过点击或选择显示在图形用户界面内的各单个脸部或一系列脸部来单独地切换这样的修改。
故事表314存储关于消息和相关图像、视频或音频数据的集合的数据,这些数据被编译成集合(例如,故事或库)。特定集合的生成可以由特定用户(例如,在实体表306中为其维护记录的每个用户)启动。用户可以以该用户生成并发送/广播的内容集合的形式生成“个人故事”。为此,消息客户端104的用户界面可以包括用户可选择的图标,以使发送用户能够将特定内容添加到他或她的个人故事中。
集合也可能构成“实况故事”,该集合是由手动、自动或使用手动和自动技术的组合生成的来自多个用户的内容集合。例如,“实况故事”可能构成来自不同位置和事件的用户提交的内容的策划流。例如,其客户端设备启用了定位服务并且在特定时间处于共同位置事件处的用户可以经由消息客户端104的用户界面被呈现有向特定实况故事贡献内容的选项。消息客户端104可以基于他或她的位置来向用户识别实况故事。最终的结果是从社区的角度讲述“实况故事”。
另一种类型的内容集合被称为“位置故事”,其使得客户端设备102位于特定地理位置(例如,学院或大学校园)内的用户能够对特定集合做出贡献。在一些示例中,对位置故事的贡献可能需要第二级认证,以验证终端用户是否属于特定组织或其他实体(例如,是大学校园的学生)。
如上所述,视频表304存储视频数据,在一个示例中,该视频数据与在消息表302内维护记录的消息相关联。类似地,图像表312存储与消息相关联的图像数据,其中消息数据存储在实体表306中。实体表306可以将来自增强表310的各种增强与存储在图像表312和视频表304中的各种图像和视频相关联。
数据通信体系结构
图4是示出根据一些示例的消息400的结构的示意图,消息400由消息客户端104生成,消息客户端104与另一消息客户端104或消息服务器118通信。特定消息400的内容用于填充存储在数据库126内的消息表302,消息服务器118可访问该消息表302。类似地,消息400的内容被存储在存储器中作为客户端设备102或应用服务器114中的“在途(in-transit)”或“飞行中”数据。消息400被示出为包括以下示例部件:
·消息标识符402:标识消息400的唯一标识符。
·消息文本有效载荷404:由用户经由客户端设备102的用户界面生成的文本,该文本包括在消息400中。
·消息图像有效载荷406:由客户端设备102的相机部件捕获或从客户端设备102的存储器部件检索的图像数据,该图像数据包括在消息400中。发送或接收的消息400的图像数据可以存储在图像表312中。
·消息视频有效载荷408:由相机部件捕获或从客户端设备102的存储器部件检索的视频数据,该视频数据包括在消息400中。发送或接收的消息400的视频数据可以存储在视频表304中。
·消息音频有效载荷410:由麦克风捕获或从客户端设备102的存储器部件检索的音频数据,该音频数据包括在消息400中。
·消息增强数据412:表示要应用于消息400的消息图像有效载荷406、消息视频有效载荷408或消息音频有效载荷410的增强的增强数据(例如,过滤器、贴纸或其他注释或增强)。发送或接收的消息400的增强数据可以存储在增强表310中。
·消息持续时间参数414:以秒为单位指示消息内容(例如,消息图像有效载荷406、消息视频有效载荷408、消息音频有效载荷410)将被呈现或使用户可经由消息客户端104访问的时间量的参数值。
·消息地理位置参数416:与消息的内容有效载荷相关联的地理位置数据(例如,纬度和经度坐标)。多个消息地理位置参数416值可以包括在有效载荷中,这些参数值中的每一个与包括在内容中的内容项(例如,消息图像有效载荷406内的特定图像或消息视频有效载荷408中的特定视频)相关联。
·消息故事标识符418:标识与消息400的消息图像有效载荷406中的特定内容项相关联的一个或更多个内容集合(例如,在故事表314中标识的“故事”)的标识符值。例如,消息图像有效载荷406内的多个图像可以各自使用标识符值与多个内容集合相关联。
·消息标签420:每个消息400可以用多个标签进行标记,每个标签指示消息有效载荷中包括的内容的主题。例如,在消息图像有效载荷406中包括的特定图像描绘动物(例如,狮子)的情况下,可以在消息标签420内包括指示相关动物的标签值。标签值可以基于用户输入手动生成,或者可以使用例如图像识别自动生成。
·消息发送者标识符422:指示客户端设备102的用户的标识符(例如,消息系统标识符、电子邮件地址或设备标识符),消息400在客户端设备102上生成并且从客户端设备102发送。
·消息接收器标识符424:指示消息400所寻址的客户端设备102的用户的标识符(例如,消息系统标识符、电子邮件地址或设备标识符)。
消息400的各个部件的内容(例如,值)可以是指向表中存储内容数据值的位置的指针。例如,消息图像有效载荷406中的图像值可以是指向图像表312内的位置的指针(或地址)。类似地,消息视频有效载荷408内的值可以指向存储在视频表304内的数据,存储在消息增强412内的值可以指向存储在增强表310中的数据,存储在消息故事标识符418内的值可以指向存储在故事表314中的数据,存储在消息发送者标识符422和消息接收器标识符424内的值可以指向存储在实体表306内的用户记录。
基于时间的访问限制体系结构
图5是示出访问限制过程500的示意图,根据该访问限制过程500,对内容(例如,短暂消息502和相关联的多媒体数据有效载荷)或内容集合(例如,短暂消息群组504)的访问可以是有时间限制的(例如,变得短暂的)。
短暂消息502示出为与消息持续时间参数506相关联,消息持续时间参数506的值确定消息客户端104将向短暂消息502的接收用户显示短暂消息502所需的时间量。在一个示例中,根据发送用户使用消息持续时间参数506指定的时间量,接收用户最多可查看10秒的短暂消息502。
消息持续时间参数506和消息接收器标识符424示出为消息定时器510的输入,消息定时器510负责确定向由消息接收器标识符424标识的特定接收用户示出短暂消息502的时间量。特别地,短暂消息502将仅在由消息持续时间参数506的值确定的时间段示出给相关接收用户。消息定时器510示出为向更通用的短暂定时器系统202提供输出,短暂定时器系统202负责向接收用户显示内容(例如,短暂消息502)的总体定时。
图5中所示的短暂消息502被包括在短暂消息群组504(例如,个人故事或事件故事中的消息集合)内。短暂消息群组504具有相关联的群组持续时间参数508,群组持续时间参数508的值确定向消息系统100的用户呈现并可访问短暂消息群组504的持续时间。例如,群组持续时间参数508可以是音乐会的持续时间,其中,短暂消息群组504是与该音乐会有关的内容的集合。替代地,用户(拥有者用户或管理者用户)可以在执行短暂消息群组504的设置和生成时指定群组持续时间参数508的值。
此外,短暂消息群组504内的每个短暂消息502具有相关联的群组参与参数512,群组参与参数512的值确定在短暂消息群组502的背景内可访问短暂消息502的持续时间。因此,在短暂消息群组504自身根据群组持续时间参数508而到期之前,特定的短暂消息群组506可能在短暂消息群组504的背景中“到期”并且变得不可访问。群组持续时间参数508、群组参与参数512和消息接收器标识符424各自向群组定时器514提供输入,首先可操作地确定短暂消息群组504的特定短暂消息502是否将被显示给特定接收用户,如果是,则显示多长时间。注意,作为消息接收器标识符424的结果,短暂消息群组504还知道特定接收用户的身份。
因此,群组定时器514可操作地控制相关联的短暂消息群组504以及包括在短暂消息群组502中的单个短暂消息502的总体寿命。在一个示例中,在由群组持续时间参数508指定的时间段内,短暂消息群组504内的每个短暂消息502保持可查看和可访问。在另一示例中,基于群组参与参数512,某个短暂消息502可以在短暂消息群组504的背景内过期。注意,消息持续时间参数506仍然可以确定向接收用户显示特定短暂消息502的持续时间,即使在短暂消息群组504的背景内也是如此。因此,消息持续时间参数506确定向接收用户显示特定短暂消息502的持续时间,而不管接收用户是在短暂消息群组504的背景内部还是外部查看该短暂消息502。
短暂定时器系统202还可以基于确定某个特定短暂消息502已经超过相关联的群组参与参数512,从短暂消息群组504中可操作地移除该特定短暂消息502。例如,当发送用户已经建立了自发布起24小时的群组参与参数512时,短暂定时器系统202将在指定的24小时之后从短暂消息群组504中移除相关的短暂消息502。当用于短暂消息群组504内的每个短暂消息502的群组参与参数512已经过期时,或者当短暂消息群组504本身已经根据群组持续时间参数508过期时,短暂定时器系统202还操作以移除短暂消息群组504。
在某些使用情况下,特定短暂消息群组504的生成器可以指定不确定的群组持续时间参数508。在这种情况下,用于短暂消息群组504内的最后剩余短暂消息502的群组参与参数512的到期将确定短暂消息群组502自身何时到期。在这种情况下,添加到具有新的群组参与参数512的短暂消息群组504的新的短暂消息502有效地将短暂消息群组504的寿命延长至等于群组参与参数512的值。
响应于短暂定时器系统202确定短暂消息群组504已经过期(例如,不再可访问),短暂定时器系统202与消息系统100(并且,例如,具体为与消息客户端104)通信,以使得与相关的短暂消息群组504相关联的标记(例如,图标)不再显示在消息客户端104的用户界面内。类似地,当短暂定时器系统202确定特定短暂消息502的消息持续时间参数506已经过期时,短暂定时器系统202使消息客户端104不再显示与短暂消息502相关联的标记(例如,图标或文本标识)。
生成式对抗网络
图6是根据一些示例的GAN体系结构的图示。在一些示例中,图像压缩系统130包括GAN。生成器604和鉴别器(discriminator)610是神经网络。每个网络可以是任何神经网络,例如人工神经网络、卷积神经网络、递归神经网络等。生成器604的输出直接连接到鉴别器610的输入。使用反向传播,鉴别器的分类提供生成器用来更新其权重的信号。
鉴别器610是试图将真实数据与人工数据(例如,由生成器生成的数据)区分开来的分类器。鉴别器610使用两个数据源(真实数据606和伪数据608)来训练。真实数据606可以包括真实人脸,而伪数据608可以包括人造人脸。伪数据608是由生成器604生成的数据。在鉴别器610的训练期间,鉴别器610对真实数据606和伪数据608进行分类。鉴别器损失612适应鉴别器610将真实数据606错误地分类为伪数据以及将伪数据608错误地分类为真实数据。鉴别器610通过使用鉴别器损失612的反向传播来更新其权重(例如,神经网络层的权重)。
生成器604是基于来自鉴别器的反馈生成伪数据608的神经网络。它学习使鉴别器610将伪数据608分类为真实数据。生成器604将随机噪声616作为输入,并将随机噪声616变换为有意义的输出数据。生成器损失适应于生成器604产生被鉴别器610分类为伪的伪数据608。生成器604通过鉴别器610和使用生成器损失614的生成器604通过反向传播来更新其权重。
在一些示例中,图像压缩系统130使用预训练GAN(例如,Pix2Pix、CYCLEGAN、GauGAN)。
图7是根据一些示例的由图像压缩系统130使用的残差块702的图示。残差块702是基于初始的残差块。图像生成器网络(例如,生成器604)中的传统残差块仅包含具有一个内核尺寸的卷积层。然而,基于初始的残差块702包含具有不同内核尺寸(例如,1×1、3×3和5×5)的卷积层。基于初始的残差块702合并深度块(块704、706、708)(例如,深度卷积层)。深度卷积层在不牺牲性能的情况下需要较少的计算成本,并且适用于部署在移动计算设备上的神经网络。基于初始的残差块702包括六种类型的操作(例如,具有两种类型的卷积层和三种不同的内核尺寸)。在每两个连续的卷积层之间应用归一化层(例如,BN)和ReLU(Rectified Linear Unit)。在一些示例中,在对来自六个块和残差连接的特征求和之后插入归一化层。
每个操作的第一卷积层的输出通道的数量被设置为原始残差块的输出通道的数量除以六(例如,残差块702中不同操作的数量)。在一些示例中,GAN中的所有残差块被残差块702替代。
图8A是根据示例的用于生成压缩的图像到图像模型的示例方法。方法800可以由图1中的图像压缩系统130执行。在一个示例中,包括在图像压缩系统130中的处理器(或专用于执行指令任务的电路)执行方法800或使图像部件执行方法800。
尽管所描述的流程图可以将操作示出为顺序过程,但许多操作可以并行或并发执行。此外,可以重新排列操作的顺序。过程在其操作完成时终止。过程可以对应于方法、程序、算法等。方法的操作可以全部或部分地执行,可以结合其他方法中的一些或全部操作来执行,以及可以由任何数量的不同系统(例如本文所描述的系统)或该系统的任何部分(例如包括在任何系统中的处理器)执行。
在操作802中,图像压缩系统130生成第一生成式对抗网络(GAN),该第一生成式对抗网络包括第一类型的卷积层、第二类型的卷积层和多个内核尺寸。例如,第一类型的卷积层可以是传统的卷积层,第二类型的卷积层可以是深度卷积层。多个内核尺寸可以是例如1×1、3×3和5×5。在操作804中,图像压缩系统130识别阈值。图像压缩系统130通过对来自预训练教师网络的归一化层的缩放因子进行二进制搜索来确定缩放阈值。例如,图像压缩系统130可以以小于阈值的缩放因子幅度暂时修剪所有通道,并测量修剪后模型的计算成本。
如果成本小于计算预算,则模型被修剪得太多,图像压缩系统130在较低的间隔中搜索以获得较小的阈值。否则,图像压缩系统130在较高的间隔中搜索以获得较大的值。在该过程期间,图像压缩系统130将残差块702之外的卷积层的输出通道的数量保持为大于预定义值,以避免无效模型。阈值表示GAN的计算成本的测量。在一些示例中,阈值是乘法累加运算(multiply-accumulate operation,MAC)的数量。在一些示例中,阈值是计算延迟的测量。应当理解,计算成本的任何测量都可以用作阈值。
在操作806中,基于阈值,图像压缩系统130通过修剪第一GAN的通道来生成第二GAN。在一些示例中,图像压缩系统130通过归一化层(例如批归一化(BatchNormalization,BN)和实例归一化(Instance Normalization,IN))中的缩放因子的幅度来修剪通道。规模小于阈值的所有通道都被修剪,直到最终模型达到目标计算预算为止。给定残差块702,图像压缩系统130可以改变每一层中的通道数量并修改操作,使得例如一个残差块702可以包括内核尺寸为1×1和3×3的层。图像压缩系统130将归一化层的通道与对应的卷积层一起修剪。具体地,图像压缩系统130针对残差块702中的每个操作修剪第一归一化层,即用于传统操作的第一k×k卷积层之后的层和用于深度操作的第一1×1卷积层之后的层。
经由上述一步修剪进行搜索的示例算法如下,
在操作808中,图像压缩系统130使用来自第一GAN的基于相似性的知识蒸馏来训练第二GAN。图像压缩系统130在两个网络的特征空间之间传递知识。具体地,为了避免信息丢失(由于第一GAN和第二GAN之间的通道数量不均匀),图像压缩系统130直接鼓励两个特征空间之间的相似性。为了比较第一GAN和第二GAN之间的相似性,图像压缩系统130计算相似性度量。本文讨论的相似性度量将被称为询问全局CKA(Global-CKA,GCKA)。GCKA定义如下:
GCKA(X,Y)=CKA(p(X),p(Y)),
ρ:/>
其中,引入减号以最大化第一GAN和第二GAN之间的特征相似性。第一GAN使用原始损失函数进行训练,其包括如下的对抗损失Ladv:
其中,x和y分别指示输入图像和真实图像,D和G分别指示鉴别器和生成器。为了训练第二GAN,图像压缩系统130可以使用从第一GAN生成的数据来执行配对数据,并且以重建损失Lrecon训练与第一GAN相同的第二GAN。因此,第二GAN可以是对第一GAN的压缩。在一些示例中,第二GAN的总损失可以描述如下:
在一些示例中,第二GAN的总损失可以描述如下:
λadv,λrecon,λdist和λfm
在操作810中,方法800存储训练后第二GAN。在一些示例中,训练后第二GAN可以部署在移动客户端设备上。
具有平均平滑的类自适应归一化(GLADE-Avg)
经由将空间依赖性引入归一化层(命名为SPADE,又名GauGAN)的学习后缩放和移位参数的输入,可以显著提高利用语义信息合成的压缩图像的图像质量。该方法可以由图1中的图像压缩系统130来执行。
如图8B所示,输入用于确定批归一化的可学习缩放和移位参数。根据本公开,与使用可学习参数而不利用输入图像信息的本地方法相比,可以显著提高图像压缩期间生成的图像质量。
例如,对于包括城市景观的样本数据集,基于SPADE模块(GauGAN)的生成模型可以实现62.3的平均交并比(mean Intersection-over-Union,mIoU)(越大越好),而Pix2Pix模型的原始工作仅实现42.06的mIoU。即使是像Pix2PixHD这样更先进的技术,SPADE模块也能提高性能。例如,在样本城市景观数据集上,PixPixHD的mIoU仅为14.6,Fréchet初始距离(Fréchet inception distance,FID)高达111.5(越小越好),而GauGAN的mIoU可以是37.4(比PixPixHD的mIoU大两倍多),而GauGAN的FID仅为22.6(比PixPixHD的FID小五倍左右)。FID是用于评估由GAN的生成器604生成的图像的质量的量。
尽管SPADE取得了成功并广受欢迎,但它引入了巨大的计算成本。GauGAN在样本城市景观数据集上的计算成本约为281B MAC,而原始Pix2Pix模型仅需要56.8B MAC,这导致了约四倍的差异,可能会禁止GauGAN在实践中的广泛应用。在每个均匀区域中,学习后参数沿着空间维度变化不大,但学习后参数仅对输入像素的类别敏感。基于此,空间依赖性可以用类依赖参数(CLADE)代替,在很大程度上降低了计算成本。然而,与原始SPADE方法相比,CLADE以较差的图像保真为代价节省了计算工作量。
根据本公开,在CLADE中引入了一种新的变体,称为CLADE-Avg,它在不引入额外计算成本的情况下恢复图像质量。该方法实现了与SPADE相当甚至更好的性能,因此该方法集成了两种现有方法的优点。
如图8C所示,CLADE方法使用输入类而不是输入像素信息来确定下一个归一化层中的缩放和移位参数。基本推理是,对于每个输入,学习后参数在均匀区域上变化不大,而只在输入语义信息变化的边界上变化。基于此,将输入替换为类信息,从而降低了计算成本。然而,这将在学习后参数中引入突变,这与SPADE方法不同,其中,这些参数在边界上逐渐变化。
如图8D所示,为了克服这个问题,本公开在参数层822和归一化层824之间引入了额外的平均平滑层820。与CLADE相比,该方法平滑了突变边界,并引入了更多可能的缩放和移位值。此外,用于平均平滑820的内核尺寸可以被选择为超参数。这里,使用了3×3内核进行演示。该方法不引入额外的乘法,而仅引入加法,因此该方法不会引入较多计算开销,因为除法可以在训练后被吸收到参数中,该方法被称为CLADE-Avg。
为了将这种CLADE-Avg方法与以前的方法进行比较,使用SPADE、CLADE和CLADE-Avg处理样本城市景观数据集,并报告FID和计算成本(FLOP)。结果汇总在表1中。可以看出,这种CLADE-Avg方法在三种方法中实现了最佳的性能-效率权衡。
模型 MAC FID
GauGAN 281B 55.15
Clade 75.2B 55.82
Clade-Avg 75.2B 54.52
表1
参考图8E,示出了用于使用在图8D中的Clade-Avg方法在图像602上生成压缩的图像到图像模型的示例方法830。
方法830由图1中的图像压缩系统130执行。在一个示例中,包括在图像压缩系统130中的处理器(或专用于执行指令任务的电路)执行方法830或使图像部件执行方法830。
在块832处,GAN的图像压缩系统130接收用于生成压缩的图像到图像模型的图像输入,其中,图像输入具有由GAN学习的参数。学习后参数可以包括空间依赖性。
在块834处,GAN使用图像输入的输入类而不是像素数据来确定归一化层824中的缩放和移位参数。对于每个输入,学习后参数在均匀区域上变化不大,而仅在输入语义信息变化的边界上变化。基于此,将输入替换为类信息,从而降低了计算成本。然而,这将在学习后参数中引入突变,这与先前的方法不同,即这些参数在边界上逐渐变化。
在块836处,选择基于初始的残差块702的内核尺寸。如前所述,基于初始的残差块702包括深度块(块704、706、708)(例如,深度卷积层)。深度卷积层在不牺牲性能的情况下需要较少的计算成本,并且适用于部署在移动计算设备上的神经网络。
在块838处,GAN在参数层822和归一化层824之间执行平均平滑820,如图8D所示。与CLADE相比,该方法平滑了突变边界,并引入了更多可能的缩放和移位值。此外,可以选择用于平均平滑的内核尺寸作为超参数。在一个示例中,可以使用3×3的内核。
机器体系结构
图9是机器900的图解表征,在该机器900内可以执行用于使机器900执行本文所讨论的方法中的任何一个或更多个的指令910(例如,软件、程序、应用、小程序、app或其他可执行代码)。例如,指令910可以使机器900执行本文所描述的方法中的任何一个或更多个。指令910将一般的、未编程的机器900变换为被编程为以所描述的方式执行所描述和所示的功能的特定机器900。机器900可以作为独立设备操作或者可以耦接(例如,联网)至其他机器。在联网部署中,机器900可以在服务器-客户端网络环境中以服务器机器或客户端机器的能力操作,或者作为对等(或分布式)网络环境中的对等机器操作。机器900可以包括但不限于服务器计算机、客户端计算机、个人计算机(personal computer,PC)、平板计算机、膝上型计算机、上网本、机顶盒(set-top box,STB)、个人数字助理(personal digitalassistant,PDA)、娱乐媒体系统、蜂窝电话、智能手机、移动设备、可穿戴设备(例如,智能手表)、智能家用设备(例如,智能应用)、其他智能设备、网络电器、网络路由器、网络交换机、网络桥接器、或者能够顺序地或以其他方式执行指令910的任何机器,指令910指定机器900要采取的动作。虽然仅示出了单个机器900,但术语“机器”还应被视为包括单独或联合执行指令910以执行本文所讨论的方法中的任何一个或更多个的机器的集合。例如,机器900可以包括客户端设备102或形成消息服务器系统108的部分的多个服务器设备中的任一个。在一些示例中,机器900还可以包括客户端和服务器系统两者,其中在服务器端执行特定方法或算法的某些操作,在客户端执行该特定方法或算法的某些操作。
机器900可以包括处理器904、存储器906和输入/输出I/O部件902,它们可以被配置为经由总线940彼此通信。在示例中,处理器904(例如,中央处理单元(CentralProcessing Unit,CPU)、精简指令集计算(Reduced Instruction Set Computing,RISC)处理器、复杂指令集计算(Complex Instruction Set Computing,CISC)处理器、图形处理单元(Graphics Processing Unit,GPU)、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、射频集成电路(Radio-Frequency Integrated Circuit,RFIC)、另一处理器、或其任何合适的组合)可以包括例如执行指令910的处理器908和处理器912。术语“处理器”旨在包括多核处理器,该多核处理器可以包括可以同时执行指令的两个或更多个独立处理器(有时称为“核”)。尽管图9示出了多个处理器904,但机器900可以包括具有单个核的单个处理器、具有多个核的单个处理器(例如,多核处理器)、具有单个核的多个处理器、具有多个核的多个处理器、或者它们的任意组合。
存储器906包括主存储器914、静态存储器916和存储单元918,都可由处理器904经由总线940访问。主存储器906、静态存储器916和存储单元918存储用于本文所描述的方法或功能中的任何一个或更多个的指令910。在机器900执行指令910期间,指令910还可以完全地或部分地驻留在主存储器914内、静态存储器916内、存储单元918内的机器可读介质920内、处理器904中的至少一个内(例如,处理器的高速缓存存储器内)或其任何合适的组合内。
I/O部件902可以包括各种各样的部件,用于接收输入、提供输出、产生输出、传输信息、交换信息、捕获测量值等。特定机器中包括的特定I/O部件902将取决于机器的类型。例如,移动电话等便携式机器可以包括触摸输入设备或其他这样的输入机构,而无头服务器机器可能不包括这样的触摸输入设备。应当理解,I/O部件902可以包括图9中未示出的许多其他部件。在各种示例中,I/O部件902可以包括用户输出部件926和用户输入部件928。用户输出部件926可以包括视觉部件(例如,等离子体显示面板(plasma display panel,PDP)、发光二极管(light-emitting diode,LED)显示器、液晶显示器(liquid crystaldisplay,LCD)、投影仪或阴极射线管(cathode ray tube,CRT)等显示器)、声学部件(例如,扬声器)、触觉部件(例如,振动马达、电阻机构)、其他信号发生器等等。用户输入部件928可以包括字母数字输入部件(例如,键盘、被配置为接收字母数字输入的触摸屏、光电键盘或其他字母数字输入部件)、基于点的输入部件(例如,鼠标、触摸板、轨迹球、操纵杆、运动传感器或另一定点仪器)、触觉输入部件(例如,物理按钮、提供触摸或触摸手势的位置和力的触摸屏、或其他触觉输入部件)、音频输入部件(例如,麦克风)等。
在进一步的示例中,I/O部件902可以包括生物测量部件930、运动部件932、环境部件934或位置部件936、以及广泛的其他部件阵列。例如,生物测量部件930包括用于检测表情(例如,手部表情、面部表情、声音表情、身体姿势或眼睛跟踪)、测量生物信号(例如,血压、心率、体温、汗液或脑电波)、识别人(例如,语音识别、视网膜识别、面部识别、指纹识别或基于脑电图的识别)等的部件。运动部件932包括加速度传感器部件(例如,加速度计)、重力传感器部件、旋转传感器部件(例如,陀螺仪)。
例如,环境部件934包括一个或多个相机(具有静态图像/照片和视频功能)、照明传感器部件(例如,光度计)、温度传感器部件(例如,检测环境温度的一个或更多个温度计)、湿度传感器部件、压力传感器部件(例如,气压计)、声学传感器部件(例如,检测背景噪声的一个或更多个麦克风)、接近传感器部件(例如,检测附近对象的红外传感器)、气体传感器(例如,为安全起见检测危险气体浓度或测量大气中污染物的气体检测传感器)或可以提供指示、测量或与周围物理环境相对应的信号的其他部件。
关于相机,客户端设备102可以具有相机系统,该相机系统包括例如客户端设备102的前表面上的前置相机和客户端设备102后表面上的后置相机。例如,前置相机可以用于捕获客户端设备102的用户的静态图像和视频(例如,“自拍”),然后可以利用上述增强数据(例如,过滤器)来增强静态图像和视频。例如,后置相机可以用于在更传统的相机模式中捕获静态图像和视频,其中利用增强数据类似地对这些图像进行增强。除了前置相机和后置相机之外,客户端设备102还可以包括用于捕获360°照片和视频的360°相机。
此外,客户端设备102的相机系统可以包括位于客户端设备102前侧和后侧的双后置相机(例如,主相机以及深度感测相机)、或者甚至三后置、四后置或五后置相机配置。例如,这些多相机系统可以包括宽相机、超宽相机、远摄相机、微距相机和深度传感器。
位置部件936包括位置传感器部件(例如,GPS接收器部件)、高度传感器部件(例如,检测可得出高度的气压的高度计或气压计)、方位传感器部件(例如,磁力计)等。
通信可以使用多种技术来实现。I/O部件902还包括通信部件938,其可操作以经由相应的耦接或连接来将机器900耦接至网络922或设备924。例如,通信部件938可以包括网络接口部件或与网络922接合的另一合适设备。在进一步的示例中,通信部件938可以包括有线通信部件、无线通信部件、蜂窝通信部件、近场通信(Near Field Communication,NFC)部件、部件(例如,/>低功耗)、/>部件和以经由其他模态提供通信的其他通信部件。设备924可以是另一机器或各种外围设备中的任何一个(例如,经由USB耦接的外围设备)。
此外,通信部件938可以检测标识符或包括可操作用于检测标识符的部件。例如,通信部件938可以包括射频识别(Radio Frequency Identification,RFID)标签读取器部件、NFC智能标签检测部件、光学读取器部件(例如,用于检测诸如通用产品码(UniversalProduct Code,UPC)条形码的一维条形码、诸如快速响应(Quick Response,QR)码的多维条形码、阿兹特克码、数据矩阵、数据字形、牛眼码(MaxiCode)、PDF417、Ultra Code、UCC RSS-2D条形码和其他光学代码的光学传感器)、或声学检测部件(例如,用于识别标记音频信号的麦克风)。此外,可以经由通信部件938导出各种信息,诸如经由互联网协议(InternetProtocol,IP)地理位置的位置、经由信号三角测量的位置、经由检测可以指示特定位置的NFC信标信号的位置等等。
各种存储器(例如,主存储器914、静态存储器916和处理器904的存储器)和存储单元918可以存储指令和数据结构(例如,软件)的一个或更多个集合,指令和数据结构体现本文所述的方法或功能中的任何一个或更多个或由本文所述的方法或功能中的任何一个或更多个使用。这些指令(例如,指令910)在由处理器904执行时,使各种操作来实现所公开的示例。
可以通过网络922,经由网络接口设备(例如,包括在通信部件938中的网络接口部件),使用传输介质并使用几种众所周知的传输协议(例如,超文本传输协议(HTTP))中的任一种,来发送或接收指令910。类似地,可以使用传输介质经由到设备924的耦接(例如,对等耦接)来发送或接收指令910。
软件体系结构
图10是示出软件体系结构1004的框图1000,该软件体系结构1004可以安装在本文描述的设备中的任一个或更多个上。软件体系结构1004由机器1002等硬件支持,机器1002包括处理器1020、存储器1026和I/O部件1038。在该示例中,软件体系结构1004可以被概念化为层的堆栈,其中,每个层提供特定的功能。软件体系结构1004包括操作系统1012、库1010、框架1008和应用1006等层。在操作上,应用1006通过软件堆栈调用API调用1050,并接收响应于API调用1050的消息1052。
操作系统1012管理硬件资源并提供公共服务。操作系统1012包括例如内核1014、服务1016和驱动器1022。内核1014充当硬件层和其他软件层之间的抽象层。例如,内核1014提供存储器管理、处理器管理(例如,调度)、部件管理、联网和安全设置等功能。服务1016可以为其他软件层提供其他公共服务。驱动器1022负责控制下层硬件或与下层硬件接合。作为实例,驱动器1022可以包括显示器驱动器、相机驱动器、或/>低功耗驱动器、闪存驱动器、串行通信驱动器(例如,USB驱动器)、/>驱动器、音频驱动器、电源管理驱动器等。
库1010提供由应用1006使用的公共底层基础设施。库1010可以包括系统库1018(例如,C标准库),其提供诸如存储器分配函数、字符串操作函数、数学函数等的函数。此外,库1010可以包括API库1024,诸如媒体库(例如,支持各种媒体格式(例如运动图片专家群组-4(Moving Picture Experts Group-4,MPEG4)、高级视频编码(H.264或AVC)、运动图片专家群组层-3(Moving Picture Experts Group Layer-3,MP3)、高级音频编码(AdvancedVideo Coding,AAC)、自适应多速率(Adaptive Multi-Rate,AMR)音频编解码器、联合图形专家群组(JPEG(Joint Photographic Experts Group)或JPG)或可移植网络图形(Portable Network Graphics,PNG)的呈现和操作的库)、图形库(例如,用于在显示器上的图形内容中以二维(two dimensions,2D)和三维(three dimensions,3D)呈现的OpenGL框架)、数据库库(例如,用于提供各种关系数据库功能的SQLite)、网络库(例如,用于提供网络浏览功能的WebKit)等。库1010还可以包括各种各样的其他库1028,以向应用1006提供许多其他API。
框架1008提供由应用1006使用的公共高级基础设施。例如,框架1008提供各种图形用户界面(graphical user interface,GUI)功能、高级资源管理和高级位置服务。框架1008可以提供可以由应用1006使用的其他API的广泛频谱,其中一些可以是特定操作系统或平台所特有的。
在示例中,应用1006可以包括家用应用1036、联系人应用1030、浏览器应用1032、图书读取器应用1034、位置应用1042、媒体应用1044、消息应用1046、游戏应用1048以及诸如第三方应用1040之类的各种各样的其他应用。应用1006是执行在程序中定义的功能的程序。可以采用各种编程语言来生成应用1006中的一个或更多个,应用1006以各种方式(例如面向对象的编程语言(例如,Objective-C、Java或C++)或过程编程语言(例如,C或汇编语言)被结构化。在特定示例中,第三方应用1040(例如,由特定平台的供应商以外的实体使用ANDROIDTM或IOSTM软件开发工具包(SDK)开发的应用)可以是在诸如IOSTM、ANDROIDTM、Phone或其他移动操作系统之类的移动操作系统上运行的移动软件。在该示例中,第三方应用1040可以调用由操作系统1012提供的API调用1050,以促进本文描述的功能。
词汇表
“载波信号”是指能够存储、编码或携带指令供机器执行的任何无形介质,包括数字或模拟通信信号或其他无形介质,以便于这样的指令的通信。可以经由网络接口设备使用传输介质在网络上发送或接收指令。
“客户端设备”是指与通信网络接合以从一个或更多个服务器系统或其他客户端设备获取资源的任何机器。客户端设备可以是但不限于移动电话、台式计算机、膝上型计算机、便携式数字助理(PDA)、智能手机、平板电脑、超级本、上网本、笔记本电脑、多处理器系统、基于微处理器的或可编程的消费电子产品、游戏控制台、机顶盒或用户可以用来访问网络的任何其他通信设备。
“通信网络”是指网络的一个或更多个部分,网络可以是自组织网络、内联网、外联网、虚拟专用网络(virtual private network,VPN)、局域网(local area network,LAN)、无线局域网(wireless LAN,WLAN)、广域网(wide area network,WAN)、无线广域网(wireless WAN,WWAN)、城域网(metropolitan area network,MAN)、互联网、互联网的一部分、公共交换电话网(Public Switched Telephone Network,PSTN)的一部分、普通老式电话服务(plain old telephone service,POTS)网络、蜂窝电话网络、无线网络、网络、另一种类型的网络或两个或更多个这样的网络的组合。例如,网络或网络的一部分可以包括无线或蜂窝网络,耦接可以是码分多址(Code Division Multiple Access,CDMA)连接、全球移动通信系统(Global System for Mobile,GSM)连接或其他类型的蜂窝或无线耦接。在该示例中,耦接可以实现多种类型的数据传输技术(例如单载波无线电传输技术(Single Carrier Radio Transmission Technology,1xRTT)、演进数据优化(Evolution-Data Optimized,EVDO)技术、通用分组无线电服务(General Packet Radio Service,GPRS)技术、GSM演进增强型数据率(Enhanced Data rates for GSM Evolution,EDGE)技术、包括3G的第三代合作伙伴计划(third Generation Partnership Project,3GPP),第四代无线(four generation,4G)网络、通用移动电信系统(Universal MobileTelecommunications System,UMTS)、高速分组接入(High Speed Packet Access,HSPA)、全球微波互联接入(Worldwide Interoperability for Microwave Access,WiMAX)、长期演进(Long Term Evolution,LTE)标准、由各种标准设置组织定义的其他标准、其他远程协议或其他数据传输技术)中的任何一种。
“部件”是指具有由函数或子例程调用、分支点、API或其他技术定义的边界的设备、物理实体或逻辑,这些技术提供特定处理或控制功能的划分或模块化。部件可以经由其接口与其他部件组合,以执行机器过程。部件可以是被设计用于与其他部件一起使用的封装功能硬件单元,以及通常执行相关功能的特定功能的程序的一部分。部件可以构成软件部件(例如,包含在机器可读介质上的代码)或硬件部件。“硬件部件”是能够执行某些操作的有形单元,可以以某种物理方式配置或布置。在各种示例中,一个或更多个计算机系统(例如,独立计算机系统、客户端计算机系统或服务器计算机系统)或计算机系统中的一个或更多个硬件部件(例如,处理器或处理器群组)可以由软件(例如,应用或应用部分)配置为操作以执行本文所述的某些操作的硬件部件。硬件部件也可以机械地、电子地或其任何合适的组合来实现。例如,硬件部件可以包括被永久配置为执行某些操作的专用电路或逻辑。硬件部件可以是专用处理器,例如现场可编程门阵列(field-programmable gatearray,FPGA)或专用集成电路(ASIC)。硬件部件还可以包括可编程逻辑或电路,可编程逻辑或电路由软件临时配置以执行某些操作。例如,硬件部件可以包括由通用处理器或其他可编程处理器执行的软件。一旦由这样的软件配置,硬件部件就变成专门为执行所配置的功能而定制的特定机器(或机器的特定部件)而不再是通用处理器。应当理解,在专用和永久配置的电路中或在(例如,由软件配置的)临时配置的电路中机械地实现硬件部件的决定可以由成本和时间考虑来驱动。因此,短语“硬件部件”(或“硬件实现的部件”)应理解为包含有形实体,是指物理构造、永久配置(例如,硬接线)或临时配置(例如,编程)来以某种方式操作或执行本文所述的某些操作的实体。考虑到硬件部件被临时配置(例如,编程)的示例,硬件部件中的每一个不需要在时间上在任何一个实例处被配置或被实例化。例如,在硬件部件包括由软件配置为成为专用处理器的通用处理器的情况下,通用处理器可以在不同时间被配置为分别不同的专用处理器(例如,包括不同的硬件部件)。软件相应地配置特定的一个或更多个处理器,例如,在一个时刻构成特定硬件部件,在不同时刻构成不同的硬件部件。硬件部件可以向其他硬件部件提供信息,也可以从其他硬件部件接收信息。因此,所描述的硬件部件可以被认为是通信耦接的。在同时存在多个硬件部件的情况下,可以通过两个或更多个硬件部件之间的(例如,通过适当的电路和总线的)信号传输来实现通信。在多个硬件部件在不同时间被配置或被实例化的示例中,这样的硬件部件之间的通信可以例如通过存储和检索多个硬件部件可以访问的存储器结构中的信息来实现。例如,一个硬件部件可以执行操作并将该操作的输出存储在与其通信耦接的存储器设备中。随后,另一硬件部件可以在稍后访问存储器设备以检索和处理存储的输出。硬件部件还可以启动与输入或输出设备的通信,并且可以对资源(例如,信息集合)进行操作。本文描述的示例方法的各种操作可以至少部分地由(例如,由软件)临时配置或永久配置为执行相关操作的一个或更多个处理器来执行。无论是临时配置的还是永久配置的,这样的处理器都可以构成处理器实现的部件,该处理器实现的部件操作以执行本文所述的一个或更多个操作或功能。如本文所用,“处理器实现的部件”是指使用一个或更多个处理器实现的硬件部件。类似地,本文描述的方法可以至少部分地是处理器实现的,其中特定的一个或更多个处理器是硬件的示例。例如,方法的至少一些操作可以由一个或更多个处理器1004或处理器实现的部件来执行。此外,一个或更多个处理器还可以在“云计算”环境中操作以支持相关操作的性能或作为“软件即服务”(Software as a service,SaaS)。例如,至少一些操作可以由计算机群组(作为包括处理器的机器的示例)执行,其中这些操作可以经由网络(例如,互联网)以及经由一个或更多个适当的接口(例如,API)来访问。某些操作的性能可以分布在处理器之间,不仅驻留在单个机器内,而且部署在多个机器上。在一些示例中,处理器或处理器实现的部件可以位于单个地理位置处(例如,家庭环境、办公环境或服务器场内)。在其他示例中,处理器或处理器实现的部件可以分布在多个地理位置上。
“计算机可读存储介质”是指机器存储介质和传输介质两者。因此,术语包括存储设备/介质和载波/调制数据信号两者。术语“机器可读介质”、“计算机可读介质”和“设备可读介质”是指相同的东西,可以在本公开中互换使用。
“短暂消息”是指在时间有限的持续时间内可访问的消息。短暂消息可以是文本、图像、视频等等。短暂消息的访问时间可以由消息发送者设置。替代地,访问时间可以是默认设置或由接收者指定的设置。无论设置技术如何,消息都是短暂的。
“机器存储介质”是指存储可执行指令、例程和数据的单个或多个存储设备和介质(例如,集中式或分布式数据库以及相关的高速缓存和服务器)。相应地,该术语应包括但不限于固态存储器、光学和磁性介质,包括处理器内部或外部的存储器。机器存储介质、计算机存储介质和设备存储介质的具体示例包括非易失性存储器(例如包括半导体存储器设备,例如,可擦除可编程只读存储器(erasable programmable read-only memory,EPROM)、电可擦除可编程只读存储器(electrically erasable programmable read-only memory,EEPROM)、FPGA和闪存设备);诸如内部硬盘和可移动磁盘的磁盘;磁光盘;以及只读光盘存储器(compact disc read-only memory,CD-ROM)和数字通用光盘只读存储器(digitalvideo disk read-only memory,DVD-ROM)磁盘。术语“机器存储介质”、“设备存储介质”和“计算机存储介质”是指相同的东西,在本公开中可以互换使用。术语“机器存储介质”、“计算机存储介质”和“设备存储介质”专门排除载波、调制数据信号和其他这样的介质,至少其中的一些包含在术语“信号介质”中
“非暂时性计算机可读存储介质”是指能够存储、编码或携带指令以供机器执行的有形介质。
“信号介质”是指能够存储、编码或携带指令以供机器执行的任何无形介质,包括数字或模拟通信信号或其他无形介质,以便于软件或数据的通信。术语“信号介质”应被认为包括任何形式的调制数据信号、载波等。术语“调制数据信号”是指其特性中的一个或更多个被设置或被改变以在信号中对信息进行编码的信号。术语“传输介质”和“信号介质”是指相同的东西,可以在本公开中互换使用。
Claims (20)
1.一种对生成式对抗网络GAN进行操作的方法,所述方法包括:
接收具有学习后参数的图像;
使用所述图像的输入类来确定归一化层中的缩放和移位参数;以及
通过在参数层和归一化层之间执行平均平滑来压缩所述图像,以平滑语义信息改变的突变边界。
2.根据权利要求1所述的方法,其中,所述学习后参数包括空间依赖性。
3.根据权利要求1所述的方法,其中,所述平均平滑生成用于所述缩放和移位参数的多个值。
4.根据权利要求1所述的方法,还包括使用包含内核的基于初始的残差块。
5.根据权利要求4所述的方法,其中,所述内核具有从不同内核尺寸中选择的内核尺寸。
6.根据权利要求4所述的方法,其中,所述基于初始的残差块包含深度卷积层。
7.根据权利要求1所述的方法,其中,所述GAN存储在移动计算设备上。
8.根据权利要求1所述的方法,其中,所述GAN是预训练GAN。
9.一种系统,包括:
处理器;以及
存储器,存储计算机可读指令,所述计算机可读指令在由所述处理器执行时配置所述系统以执行操作,所述操作包括:
接收具有学习后参数的图像;
使用所述图像的输入类来确定归一化层中的缩放和移位参数;以及
通过在参数层和归一化层之间执行平均平滑来压缩所述图像,以平滑语义信息改变的突变边界。
10.根据权利要求9所述的系统,其中,所述学习后参数包括空间依赖性。
11.根据权利要求9所述的系统,其中,所述平均平滑生成用于所述缩放和移位参数的多个值。
12.根据权利要求9所述的系统,还包括使用包含内核的基于初始的残差块。
13.根据权利要求12所述的系统,其中,所述内核具有从不同内核尺寸中选择的内核尺寸。
14.根据权利要求12所述的系统,其中,所述基于初始的残差块包含深度卷积层。
15.根据权利要求9所述的系统,其中,所述系统存储在移动计算设备上。
16.根据权利要求9所述的系统,其中,所述系统是预训练生成式对抗网络GAN。
17.一种非暂时性计算机可读存储介质,所述计算机可读存储介质包括指令,所述指令在由计算机执行时使所述计算机执行操作,所述操作包括:
接收具有学习后参数的图像;
使用所述图像的输入类来确定归一化层中的缩放和移位参数;以及
通过在参数层和归一化层之间执行平均平滑来压缩所述图像,以平滑语义信息改变的突变边界。
18.根据权利要求17所述的计算机可读存储介质,其中,所述学习后参数包括空间依赖性。
19.根据权利要求17所述的计算机可读存储介质,其中,所述平均平滑生成所述缩放和移位参数的多个值。
20.根据权利要求17所述的计算机可读存储介质,还包括使用包含内核的基于初始的残差块的指令。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/191,970 US11790565B2 (en) | 2021-03-04 | 2021-03-04 | Compressing image-to-image models with average smoothing |
US17/191,970 | 2021-03-04 | ||
PCT/US2022/017865 WO2022187086A1 (en) | 2021-03-04 | 2022-02-25 | Compressing image-to-image models with average smoothing |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116964590A true CN116964590A (zh) | 2023-10-27 |
Family
ID=80787423
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280018987.2A Pending CN116964590A (zh) | 2021-03-04 | 2022-02-25 | 用平均平滑使图像到图像模型压缩 |
Country Status (5)
Country | Link |
---|---|
US (2) | US11790565B2 (zh) |
EP (1) | EP4302243A1 (zh) |
KR (1) | KR20230152723A (zh) |
CN (1) | CN116964590A (zh) |
WO (1) | WO2022187086A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10963748B1 (en) * | 2018-08-31 | 2021-03-30 | Snap Inc. | Generative neural network distillation |
CN112966954B (zh) * | 2021-03-15 | 2022-10-18 | 河海大学 | 一种基于时间卷积网络的防洪调度方案优选方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11809998B2 (en) * | 2020-05-20 | 2023-11-07 | Qualcomm Incorporated | Maintaining fixed sizes for target objects in frames |
US20220019810A1 (en) * | 2020-07-14 | 2022-01-20 | The Chamberlain Group, Inc. | Object Monitoring System and Methods |
-
2021
- 2021-03-04 US US17/191,970 patent/US11790565B2/en active Active
-
2022
- 2022-02-25 KR KR1020237033235A patent/KR20230152723A/ko unknown
- 2022-02-25 CN CN202280018987.2A patent/CN116964590A/zh active Pending
- 2022-02-25 EP EP22711371.9A patent/EP4302243A1/en active Pending
- 2022-02-25 WO PCT/US2022/017865 patent/WO2022187086A1/en active Application Filing
-
2023
- 2023-08-28 US US18/238,979 patent/US20230410376A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US11790565B2 (en) | 2023-10-17 |
KR20230152723A (ko) | 2023-11-03 |
US20230410376A1 (en) | 2023-12-21 |
WO2022187086A1 (en) | 2022-09-09 |
US20220292724A1 (en) | 2022-09-15 |
EP4302243A1 (en) | 2024-01-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102542427B1 (ko) | 미디어 콘텐츠 아이템들의 개인 컬렉션들에 대한 초대 미디어 오버레이들 | |
CN116057533A (zh) | 自动网站数据迁移 | |
CN116830158A (zh) | 人类角色的音乐反应动画 | |
KR20230013097A (ko) | 특징있는 콘텐츠 컬렉션 인터페이스 | |
US20220207355A1 (en) | Generative adversarial network manipulated image effects | |
US20230410376A1 (en) | Compressing image-to-image models with average smoothing | |
CN116250012A (zh) | 用于图像动画的方法、系统和计算机可读存储介质 | |
KR20230022241A (ko) | 애플리케이션을 론칭하기 위한 시각적 검색 | |
CN116113991A (zh) | 用于关节动画的运动表示 | |
CN116349215A (zh) | 利用微声音剪辑来聊天 | |
CN116529748A (zh) | 消息系统中基于ar的化妆产品集 | |
CN117501675A (zh) | 呈现由消息应用从第三方资源接收的内容 | |
US20220207329A1 (en) | Compressing image-to-image models | |
CN117136404A (zh) | 从歌曲中提取伴奏的神经网络 | |
CN116670685A (zh) | 流导式运动重定向 | |
CN116235500A (zh) | 生成用于分享到外部应用的媒体内容项 | |
CN116210226A (zh) | 基于轮次的协作播放列表 | |
CN116322914A (zh) | 用于增强现实连续性的qr生成系统 | |
CN117795931A (zh) | 组合的读取和反应消息 | |
CN118160021A (zh) | 识别先前在位置处由阈值数目的客户端设备访问的内容项 | |
KR20230112723A (ko) | 전자 거래 활성화된 증강 현실 경험 | |
CN116601625A (zh) | 电子交易激活的增强现实体验 | |
CN117597940A (zh) | 用于呈现适用于摄像装置的功能的用户界面 | |
WO2022146727A1 (en) | Generative adversarial network manipulated image effects | |
CN116438561A (zh) | 消息收发应用中的代币 |
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 |