一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

反映用户偏好的基于机器学习的图像压缩设置的制作方法

2022-02-24 18:33:16 来源:中国专利 TAG:

反映用户偏好的基于机器学习的图像压缩设置


背景技术:

1.随着智能电话和其他便携式相机越来越受欢迎,用户捕捉到越来越多的图像。然而,设备上存储以及云存储或服务器存储是有限的资源。图像压缩是减少存储图像所需的存储空间量的有效方式。然而,有损压缩可能导致压缩后的图像质量明显降低,从而导致用户体验不佳。
2.本文中所提供的背景描述的目的通常是呈现本公开的上下文。在此背景技术部分中描述的程度上目前被称为发明人的工作,以及在提交时可能没有以其他方式符合现有技术的描述的方面没有被明确地或不隐含地承认为针对本公开的先前技术。


技术实现要素:

3.本文中所描述的实施例涉及用于生成压缩设置的方法、设备和计算机可读介质。方法可以包括:获得输入图像,该输入图像与用户账户相关联;使用特征检测机器学习模型来确定输入图像的一个或多个特征;使用针对用户账户个性化的用户特定的机器学习模型,基于输入图像中的一个或多个特征确定输入图像的压缩设置;以及基于压缩设置压缩输入图像。
4.在一些实施例中,特征检测机器学习模型是通过以下生成的:获得数字图像的训练集和对应的特征并且基于训练集和对应的特征训练特征检测机器学习模型,其中,在训练后,特征检测机器学习模型能够标识提供给特征检测机器学习模型的输入图像中的图像特征。在一些实施例中,特征检测机器学习模型包括具有多个网络层的卷积神经网络(cnn),其中,每个网络层都在不同的抽象级别上提取一个或多个图像特征。在一些实施例中,用户特定的机器学习模型是通过以下生成的:获得与用户相关联的用户特定的特征的训练集,该用户特定的特征指示关于一个或多个先验图像的用户动作,并且基于用户特定的特征和一个或多个先验图像训练用户特定的机器学习模型,其中,在训练后,用户特定的机器学习模型确定提供给用户特定的机器学习模型的输入图像的等级。在一些实施例中,其中,一个或多个先验图像的相应图像特征是通过将特征检测机器学习模型应用于一个或多个先验图像来获得的。
5.在一些实施例中,方法可以进一步包括:将具有样本图像的两个或更多个版本的第一用户界面提供给与用户账户相关联的用户,每个版本都用不同的压缩设置来压缩;从用户获得标识样本图像的特定版本的用户输入;以及选择与样本图像的特定版本相关联的压缩设置作为用户账户的基线压缩设置。在一些实施例中,确定压缩设置包括:通过用户特定的机器学习模型确定输入图像的等级以及将等级映射到压缩设置,其中,映射是基于基线压缩设置。
6.在一些实施例中,方法可以进一步包括:确定输入图像的等级满足重要性阈值并且响应于等级满足重要性阈值的确定,执行以下中的一项或多项:提供用户共享输入图像的建议,将输入图像的备份优先于与用户账户相关联的不满足重要性阈值的其他图像的备份,或如果后续图像中所描绘的场景具有输入图像的一个或多个特征中的至少一个特征,
则提供第二用户界面,该第二用户界面包括用于捕捉后续图像的指令。
7.一些实施例可以包括计算设备,该计算设备包括处理器和其上存储有指令的存储器,该指令在由处理器执行时使处理器执行操作,该操作包括:获得输入图像,该输入图像与用户账户相关联;使用特征检测机器学习模型来确定输入图像的一个或多个特征;使用针对用户账户个性化的用户特定的机器学习模型,基于输入图像中的一个或多个特征确定输入图像的压缩设置;以及基于压缩设置压缩输入图像。
8.在一些实施例中,特征检测机器学习模型是通过以下项生成的:获得数字图像的训练集和对应的特征并且基于训练集和对应的特征训练特征检测机器学习模型,其中,在训练后,特征检测机器学习模型能够标识提供给特征检测机器学习模型的输入图像中的图像特征。在一些实施例中,用户特定的机器学习模型是通过以下生成的:获得与用户相关联的用户特定的特征的训练集,该用户特定的特征指示关于一个或多个先验图像的用户动作,并且基于用户特定的特征和一个或多个先验图像训练用户特定的机器学习模型,其中,在训练后,用户特定的机器学习模型确定提供给用户特定的机器学习模型的输入图像的等级。
9.在一些实施例中,其中,存储器具有存储在其上的进一步的指令,该指令在由处理器执行时使处理器执行进一步的操作,该操作包括:使用样本图像的两个或两个以上的版本将第一用户界面提供给与用户账户相关联的用户,每个版本都用不同的压缩设置来压缩;从标识样本图像的特定版本的用户获得用户输入;以及选择与样本图像的特定版本相关联的压缩设置作为用户账户的基线压缩设置。在一些实施例中,确定压缩设置包括:通过用户特定的机器学习模型确定输入图像的等级以及将等级映射到压缩设置,其中,映射是基于基线压缩设置。
10.一些实施例可以包括其上存储有指令的非暂时性计算机可读介质,该指令在由一个或多个计算机执行时使一个或多个计算机执行操作,该操作包括:获得输入图像,该输入图像与用户账户相关联;使用特征检测机器学习模型来确定输入图像的一个或多个特征;使用针对用户账户个性化的用户特定的机器学习模型,基于输入图像中的一个或多个特征确定输入图像的压缩设置;以及基于压缩设置压缩输入图像。
11.在一些实施例中,特征检测机器学习模型是通过以下生成的:获得数字图像的训练集和对应的特征并且基于训练集和对应的特征训练特征检测机器学习模型,其中,在训练后,特征检测机器学习模型能够标识提供给特征检测机器学习模型的输入图像中的图像特征。在一些实施例中,用户特定的机器学习模型是通过以下生成的:获得与用户相关联的用户特定的特征的训练集,该用户特定的特征指示关于一个或多个先验图像的用户动作,并且基于用户特定的特征和一个或多个先验图像训练用户特定的机器学习模型,其中,在训练后,用户特定的机器学习模型确定提供给用户特定的机器学习模型的输入图像的等级。在一些实施例中,训练集进一步包括一个或多个先验图像的相应图像特征。
12.在一些实施例中,操作进一步包括:将具有样本图像的两个或更多个版本的第一用户界面提供给与用户账户相关联的用户,每个版本都用不同的压缩设置来压缩;从用户获得标识样本图像的特定版本的用户输入;以及选择与样本图像的特定版本相关联的压缩设置作为用户账户的基线压缩设置。在一些实施例中,确定压缩设置包括:通过用户特定的机器学习模型确定输入图像的等级以及将等级映射到压缩设置,其中,映射是基于基线压
缩设置。
附图说明
13.图1是可以用于本文中所描述的一个或多个实施例的示例网络环境的框图。
14.图2是可以用于本文中所描述的一个或多个实施例的示例设备的框图。
15.图3是流程图,图示了根据一些实施例的使用特征检测机器学习模型来标识输入图像中的一个或多个特征和使用用户特定的机器学习模型从图像的一个或多个特征确定压缩设置的示例方法。
16.图4是图示了根据一些实施例的创建训练模型的示例方法的流程图。
17.图5是图示了根据一些实施例的将模型应用于输入图像的示例方法的流程图。
具体实施方式
18.用户使用相机(诸如,通过智能电话或其他设备)来捕捉图像。例如,图像可以包括静态图像、动态图片/运动图像或来自视频的图像帧。用户可以将图像存储在客户端设备或服务器(例如,提供图像托管服务的服务器)上。应用可以经由用户的客户端设备和/或使用户能够通过诸如以下方式来管理图像的服务器提供:查看和/或编辑图像;生成基于图像的创作,诸如,幻灯片、拼贴画等;共享图像;将图像发布到社交网络或聊天应用,其中,其他用户提供针对图像的赞许指示,诸如,通过喜欢图像或扩散(come on)图像;等等。
19.客户端设备或服务器上的存储空间是有限的。在不必删除图像的情况下获得附加存储空间的一种方式是使用图像压缩来减少图像的文件大小。然而,有损压缩可能导致图像质量下降,从而在与用户相关联的所有图像都经历图像压缩时,导致用户体验不佳。
20.当用户账户具有大量图像时,这些图像的子集很可能是用户特别喜欢的图像。例如,某些用户可能只对他们的风景照片的质量有强烈的感觉,因为他们喜欢把风景照片打印出来。其他人可能对高分辨率人物肖像有强烈的感觉,因为他们喜欢与家人分享这些肖像或可能经营摄影业务。收据、截图或其他功能图像(例如模因图像、名片的照片、报纸文章等)的图像质量可能并没有那么重要。因此,对来自图像压缩的损失的用户感知可以取决于图像的类型和与图像相关联的用户账户。因此,标识哪些图像可能对用户很重要是有益的。在一些实施例中,图像管理应用生成并利用特征检测机器学习模型,该模型标识第一图像中的特征。图像管理应用还可以生成用户特定的机器学习模型,该模型是针对用户账户个性化的。图像管理应用可以使用用户特定的机器学习模型来确定第一图像的压缩设置。图像管理应用可以基于压缩设置来压缩第一图像,从而释放存储空间,因为最终压缩图像具有比原始图像更小的文件大小。
21.图使用相同的附图标记来标识相同的元件。附图标记后面的字母(诸如“103a”)表示文本专门指具有该特定附图标记的元件。文本中没有接着的字母的附图标记(诸如“103”)指承载该附图标记的图中的任何或全部元件(例如,文本中的“103”指图中的附图标记“103a”和/或“103b”)。
22.示例网络环境100
23.图1图示了可以在本文中所描述的一些实施例中使用的示例网络环境100的框图。在一些实施例中,网络环境100包括一个或多个服务器系统,例如,图1的示例中的服务器系
统101。例如,服务器系统101可以与网络105通信。服务器系统101可以包括服务器设备104和数据库199或其他存储设备。数据库199可以存储一个或多个图像和/或视频以及与一个或多个图像和/或视频相关联的元数据。在一些实施例中,服务器设备104可以提供图像管理应用103a。图像管理应用103a可以访问存储在数据库199中的图像。
24.网络环境100还可以包括一个或多个客户端设备,例如,客户端设备115a、115n,所述客户端设备可以通过网络105互相通信和/或与服务器系统101通信。网络105可以是任何类型的通信网络,包括因特网、局域网(lan)、无线网络、交换机或集线器连接等中的一个或多个。在一些实施例中,网络105可以包括设备之间的点对点通信,例如,使用点对点无线协议(例如,wi-fi direct、ultrawideband等)等。两个客户端设备115a和115b之间的点对点通信的一个示例用箭头132示出。
25.为了便于说明,图1示出了针对服务器系统101、服务器设备104和数据库199的一个块,并且示出了针对客户端设备115a和115n的两个块。服务器块101、104和199可以表示多个系统、服务器设备和网络数据库,并且块可以以与所示的配置不同的配置提供。例如,服务器系统101可以表示多个服务器系统,该服务器系统可以通过网络105与其他服务器系统通信。在一些实施例中,例如,服务器系统101可以包括云托管服务器。在一些示例中,数据库199和/或其他存储设备可以设置在服务器系统块中,该服务器系统块与服务器设备104分离并且通过网络105与服务器设备104和其他服务器系统通信。
26.可能有任何数量的客户端设备115。每个客户端设备都可以是任何类型的电子设备,例如,台式计算机、膝上型计算机、便携式或移动设备、蜂窝电话、智能电话、平板计算机、相机、智能显示器、电视机、电视机顶盒或娱乐设备、可穿戴设备(例如,显示眼镜或护目镜、手表、耳机、臂带、珠宝等)、个人数字助理(pda)、媒体播放器、游戏设备等。一些客户端设备还可以包括与数据库199类似的本地数据库或其他存储装置。在一些实施例中,网络环境100可能没有所示的全部组件和/或可能有其他元件,包括其他类型的元件,而不是或除了本文中所描述的元件。
27.在各个实施例中,用户125可以使用相应的客户端设备115a、115n与服务器系统101通信和/或互相通信。在一些示例中,用户125可以经由在相应的客户端设备上运行的应用与彼此和/或经由在服务器系统101上实施的网络服务与服务器系统101交互,所述网络服务例如,社交网络服务、图像托管服务或其他类型的网络服务。例如,相应的客户端设备115a、115n可以将数据传递给一个或多个服务器系统(例如,服务器系统101)并且从该服务器系统传递数据。
28.在一些实施例中,服务器系统101可以将适当的数据提供给客户端设备115a、115n,使得每个客户端设备115都可以接收上传到服务器系统101和/或网络服务的传递内容或共享内容。在一些示例中,用户125可以通过音频或视频会议、音频、视频或文本聊天或其他通信模式或应用进行交互。由服务器系统101实施的网络服务可以包括系统允许用户125执行各种通信、形成链接和关联,上传并发布共享内容(诸如,图像、文本、视频、音频和其他类型的内容)和/或执行其他功能。例如,客户端设备115可以显示接收到的数据,诸如,发送或流传送到客户端设备115并且通过服务器和/或网络服务来源于不同的客户端设备115(或直接来源于不同的客户端设备115)或来源于服务器系统101和/或网络服务的内容发布。在一些实施例中,客户端设备115a、115n可以直接互相通信,例如,使用上面描述的客
户端设备115、115n之间的点对点通信。在一些实施例中,“用户”可以包括一个或多个程序或虚拟实体以及与系统或网络105接口接涉的人。
29.在一些实施例中,任何客户端设备115a、115n都可以提供一个或多个应用。例如,如图1所示,客户端设备115a可以提供相机应用152和图像管理应用103b。客户端设备115n还可以提供相似的应用。相机应用152可以向相应的客户端设备115a的用户125a提供使用其相应的客户端设备115a的相机捕捉图像的能力。例如,相机应用152可以是在客户端设备115a上执行的软件应用。
30.在一些实施例中,相机应用152可以提供用户界面。例如,用户界面可以使客户端设备115a的用户能够选择图像捕捉模式,例如,静态图像(或照片)模式、突发模式(例如,在短时间段内捕捉连续数量的图像)、运动图像模式、视频模式、高动态范围(hdr)模式、分辨率设置等。例如,视频模式可以对应于包括多个帧的视频的捕捉,并且可以具有任何长度。进一步地,视频模式可以支持不同的帧率,例如,25帧/秒(fps)、30fps、50fps、60fps等。在图像或视频的捕捉期间,图像捕捉的一个或多个参数可能会发生变化。例如,当捕捉视频时,用户可以使用客户端设备115a来放大或缩小场景。
31.在一些实施例中,相机应用152可以实施(例如,部分或全部)本文中参照图3和图4a至图4b所描述的方法。在一些实施例中,图像管理应用103a和/或图像管理应用103b可以实施(例如,部分或全部)本文中参照图3和图4a至图4b所描述的方法。
32.相机应用152和图像管理应用103b可以使用客户端设备115a的硬件和/或软件来实施。在不同的实施例中,图像管理应用103b可以是独立的应用,例如,在任何客户端设备115a、115n上执行,或可以与在服务器系统101上提供的图像管理应用103a结合工作。
33.在用户允许的情况下,图像管理应用103可以执行一个或多个自动功能,诸如,存储(例如,备份)图像或视频(例如,到服务器系统101的数据库199),增强图像或视频,稳定图像或视频,识别图像中的一个或多个特征(例如,人脸、身体、对象类型、移动类型),压缩图像等。在一些示例中,图像或视频稳定可以基于来自加速度计、陀螺仪或客户端设备115a的其他传感器的输入和/或基于运动图像或视频的多个帧的比较来执行。
34.图像管理应用103还可以提供图像管理功能,诸如,在用户界面中(例如,在包括单个图像的独占视图中、在包括多个图像的网格视图中等)显示图像和/或视频,编辑图像或视频(例如,调整图像设置,应用过滤器、改变图像焦点、去除运动图像或视频的一个或多个帧),与(例如,客户端设备115a、115n的)其他用户共享图像,将图像存档(例如,存储图像,使得其不出现在主用户界面中),生成基于图像的创作(例如,拼贴画、相册、基于运动制品,诸如,动画、故事、视频循环等)等。在一些实施例中,为了生成基于图像的创作,图像管理应用103可以利用与图像或视频相关联的一个或多个标签。
35.在一些实施例中,图像管理应用103可以确定图像的一个或多个特征并且基于图像中的一个或多个特征确定图像的压缩设置。在一些实施例中,图像管理应用103可以将与图像或视频相关联的压缩设置以及压缩图像或视频存储在数据库199和/或在客户端设备115上的本地数据库(未示出)中。在一些实施例中,图像管理应用103立即删除原始图像,保存原始图像并让用户确认删除,或者将原始图像保存一定天数,然后删除原始图像。
36.客户端设备115上的用户界面可以使用户内容和其他内容能够显示,包括图像、视频、数据和其他内容以及通信、隐私设置、通知和其他数据。这种用户界面可以使用客户端
设备115上的软件、服务器设备104上的软件和/或在服务器设备104上执行的客户端软件和服务器软件(例如,与服务器系统101通信的应用软件或客户端软件)的组合来显示。用户界面可以由客户端设备115或服务器设备104的显示设备(例如,触摸屏或其他显示屏、投影仪等)显示。在一些实施例中,在服务器系统101上运行的应用程序可以与客户端设备115通信,以在客户端设备115接收用户输入并且在客户端设备115输出数据,诸如,视觉数据、音频数据等。
37.在一些实施例中,服务器系统101和/或一个或多个客户端设备115a、115n中的任一个可以提供通信应用程序。通信程序可以允许系统(例如,客户端设备115或服务器系统101)提供与其他设备通信的选项。通信程序可以提供一个或多个相关联的用户界面,该用户界面显示在与服务器系统101或客户端设备115相关联的显示设备上。用户界面可以为用户提供各种选项,以选择通信模式、与其通信的用户或设备等。在一些示例中,通信程序可以提供用于发送或广播内容发布(例如,到广播区域)的选项,和/或可以输出通知,该通知指示内容发布已经由设备接收到,以及例如,设备在针对发布的定义广播区域中。通信程序可以显示或以其他方式输出传输的内容发布和接收到的内容发布,例如,以各种格式中的任何一种格式。例如,内容发布可以包括与其他用户共享的图像。
38.本文中所描述的特征的其他实施例可以使用任何类型的系统和/或服务。例如,可以使用其他网络化服务(例如,连接到因特网),而不是或除了社交网络服务。任何类型的电子设备都可以利用本文中所描述的特征。一些实施例可以在与计算机网络断开连接或间歇性连接的一个或多个客户端或服务器设备上提供本文中所描述的一个或多个特征。在一些示例中,包括或连接到显示设备的客户端设备115可以将存储在存储设备上的数据(例如,内容)显示给客户端设备115,例如,先前通过通信网络接收到的。
39.示例设备200
40.图2是可以用于实施本文中所描述的一个或多个特征的示例设备200的框图。在一个示例中,设备200可以用于实施客户端设备115,例如,图1所示的任何客户端设备115a、115n。可替代地,设备200可以实施服务器设备,例如,图1所示的服务器设备104。在一些实施例中,设备200可以用于实施客户端设备、服务器设备或客户端设备和服务器设备两者。设备200可以是上述任何合适的计算机系统、服务器或其他电子或硬件设备。
41.本文中所描述的一种或多种方法可以在任何类型的计算设备上执行的独立的程序、在web浏览器上运行的程序、在移动计算设备(例如,蜂窝电话、智能电话、智能显示器、平板计算机、可穿戴设备(手表、臂带、珠宝、头饰、虚拟现实护目镜或眼镜、增强现实护目镜或眼镜、头戴式显示器等)、膝上型计算机等)上运行的移动应用(“app”)上运行。在一个示例中,可以使用客户端/服务器架构,例如,移动计算设备(作为客户端设备)将用户输入数据发送给服务器设备并且从服务器接收最终的输出数据用于输出(例如,用于显示)。在另一个示例中,所有计算都可以在移动计算设备上的移动应用(和/或其他应用)内执行。在另一个示例中,计算可以在移动计算设备和一个或多个服务器设备之间进行拆分。
42.在一些实施例中,设备200包括处理器202、存储器204、输入/输出(i/o)接口206、相机208和显示设备210。处理器202可以是用于执行程序代码并且控制设备200的基本操作的一个或多个处理器和/或处理电路。“处理器”包括处理数据、信号或其他信息的任何合适的硬件系统、机构或组件。处理器可以包括具有通用中央处理单元(cpu)的系统,该cpu具有
一个或多个内核(例如,在单核、双核或多核配置中)、多个处理单元(例如,在多处理器配置中)、图形处理单元(gpu)、现场可编程门阵列(fpga)、专用集成电路(asic)、复杂可编程逻辑器件(cpld)、用于实现功能性的专用电路系统、用于实施基于神经网络模型的处理的专用处理器、神经网络、为矩阵计算(例如,矩阵相乘)优化的处理器或其他系统。在一些实施例中,处理器202可以包括实施神经网络处理的一个或多个协处理器。在一些实施例中,处理器202可以是处理数据以产生概率输出的处理器,例如,由处理器202产生的输出可能是不精确的,或可能是在距预期输出一定范围内准确的。处理不需要限于特定地理位置或具有时间限制。例如,处理器可以实时、离线、以批处理模式等执行其功能。通过不同的(或相同的)处理系统,可以在不同的时间和不同的位置执行处理的部分。计算机可以是与存储器通信的任何处理器。
43.存储器204通常设置在设备200中,以供处理器202访问,并且可以是任何合适的处理器可读存储介质,诸如,随机存取存储器(ram)、只读存储器(rom)、电可擦只读存储器(eeprom)、闪速存储器等,适合于存储供处理器或处理器组执行的指令,并且被定位为与处理器202分离和/或与其集成。存储器204可以存储由处理器202在服务器设备200上操作的软件,包括操作系统212、其他应用214、应用数据216和图像管理应用103。
44.其他应用214可以包括应用,诸如相机应用、图像廊或图像库应用、图像管理应用、数据显示引擎、web托管引擎或应用、图像显示引擎或应用、媒体显示应用、通信引擎、通知引擎、社交网络引擎、媒体共享应用、映射应用等。本文中所公开的一种或多种方法可以在几个环境和平台中操作,例如,作为可以在任何类型的计算设备上运行的独立的计算机程序、作为具有网页的web应用、作为在移动计算设备上运行的移动应用(“app”)等。在一些实施例中,其他应用214可以各自都包括指令,该指令使处理器202能够执行本文中所描述的功能,例如,图3和图4a至图4b的方法中的一些或全部。
45.应用数据216可以是由其他应用214或设备200的硬件生成的数据。例如,应用数据216可以包括由相机208捕捉的图像、由其他应用214(例如,社交联网应用)标识的用户动作等。
46.i/o接口206可以提供功能,使得设备200能够与其他系统和设备接口连接。接口连接的设备可以作为设备200的部分被包括或可以与设备200分离并且与其通信。例如,网络通信设备、存储设备(例如,存储器和/或数据库199)和输入/输出设备可以通过i/o接口206进行通信。在一些实施例中,i/o接口可以连接到接口设备,诸如,输入设备(键盘、指向设备、触摸屏、麦克风、相机、扫描仪、传感器等)和/或输出设备(显示设备、扬声器设备、打印机、电机等)。
47.可以连接到i/o接口206的接口连接的设备的一些示例可以包括一个或多个显示设备210,该显示设备210可以用于显示内容,例如,本文中所描述的图像、视频、和/或输出应用的用户界面。显示设备210可以通过本地连接(例如,显示总线)和/或通过联网连接来连接到设备200并且可以是任何合适的显示设备。显示设备210可以包括任何合适的显示设备,诸如,液晶显示器(lcd)、发光二极管(led)或等离子体显示屏、阴极射线管(crt)、电视机、监视器、触摸屏、三维显示屏或其他视觉显示设备。例如,显示设备210可以是设置在移动设备上的平面显示屏、嵌入眼镜形状因子或耳机设备中的多个显示屏或计算机设备的监视屏。
48.i/o接口206可以接口连接到其他输入和输出设备。一些示例包括一个或多个相机,诸如相机208,该相机可以捕捉图像。一些实施例可以提供用于捕捉声音的麦克风(例如,作为捕捉到的图像、语音命令等的部分)、用于输出声音的音频扬声器设备或其他输入和输出设备。
49.相机208可以是任何类型的相机,该相机可以捕捉包括多个帧的视频。本文中所使用的相机可以包括任何图像捕捉设备。在一些实施例中,相机208可以包括多个具有不同的能力的镜头,例如,前置对比后置、不同的缩放级别、捕捉到的图像的图像分辨率等。在一些实施例中,设备200可以包括一个或多个传感器,诸如,深度传感器、加速度计、位置传感器(例如,全球定位系统(gps))、陀螺仪等。在一些实施例中,一个或多个传感器可以与相机208一起操作,以获得与使用相机208捕捉到的视频的不同帧对应的传感器读数。
50.示例图像管理应用103
51.图像管理应用103可以包括特征检测机器学习模块218、用户特定的机器学习模块220、压缩模块222和用户界面模块224。
52.在一些实施例中,特征检测机器学习模块218生成特征检测机器学习模型,以从图像标识特征。例如,特征可以是多维特征空间中的向量(嵌入)。具有相似特征的图像可能具有相似的特征向量,例如,这样的图像的特征向量之间的向量距离可能小于不同图像之间的向量距离。特征空间可以是图像的各个因子的函数,例如,所描绘的主题(图像中检测到的对象)、图像的组成、颜色信息、图像定向、图像元数据、图像中识别到的特定对象(例如,在用户允许的情况下、已知的人脸)等。
53.用户特定的机器学习模块220可以生成用户特定的机器学习模型,该用户特定的机器学习模型是针对与用户相关联的用户账户个性化的。用户特定的机器学习模块220可以使用用户特定的机器学习模型基于图像中的特征来确定图像的压缩设置。这有利于保留存储空间,同时基于用户感兴趣的内容尽可能保持图像的高质量。例如,用户特定的机器学习模型可以输出指示,即,日落的图像将以高压缩比进行压缩。例如,这种指示可以基于用户特定的机器学习模型分析包括由特征检测机器学习模块218检测到的特征的图像的来确定。如果图像不与确定该图像对用户不重要的特征相关联,因为图像包括日落,则压缩设置应是该图像的最高压缩级别。
54.示例特征检测机器学习模块218
55.特征检测机器学习模块218生成特征检测机器学习模型,该特征检测机器学习模型确定输入图像的一个或多个特征。在一些实施例中,特征检测机器学习模块218包括指令集,该指令集可由处理器202执行以生成特征检测机器学习模型。在一些实施例中,特征检测机器学习模块218存储在设备200的存储器204中并且可以由处理器202访问和执行。
56.在一些实施例中,特征检测机器学习模块218可以使用训练数据来生成训练模型,具体地是特征检测机器学习模型。例如,训练数据可以包括任何类型的数据,诸如,图像(例如,静态图像、动态照片/运动图像、来自视频的图像帧等)和可选地,对应特征(例如,与标识图像中的对象的每个图像相关联的标签或标记)。
57.例如,训练数据可以包括训练集,该训练集包括多个数字图像和对应的特征。在一些实施例中,训练数据可以包括具有增强(诸如,旋转、光偏移和色偏移)的图像,以在它被提供可以旋转或有不寻常的特性(例如,用于捕捉图像的相机的伪影)的用户照片时,在模
型中提供不变性。训练数据可以从任何来源获得,例如,专门标记用于训练的数据储存库、被提供用作机器学习的训练数据的准许的数据等。在一个或多个用户准许使用其相应的用户数据来训练机器学习模型的实施例中,训练数据可以包括这种用户数据。在用户准许使用其相应的用户数据的实施例中,数据可以包括允许的数据,诸如,图像/视频或图像/视频元数据(例如,图像、可以来源于提供手动标记或标签的用户的对应特征)、通信(例如,社交网络上的消息;电子邮件;聊天数据,诸如文本消息、语音、视频等)、文档(例如,电子表格、文本文档、演示文稿等),等等。
58.在一些实施例中,训练数据可以包括为了训练的目的而生成的合成数据,诸如,不是基于正在被训练的场境中的用户输入或活动的数据,例如,由模拟或计算机生成的图像/视频生成的数据,等等。在一些实施例中,特征检测机器学习模块218使用取自另一个应用并且未经编辑/迁移的权重。例如,在这些实施例中,训练模型可以被生成,例如,在不同的设备上,并且作为图像管理应用103的部分被提供。在各个实施例中,训练模型可以作为数据文件被提供,该数据文件包括模型结构或形式(例如,其定义了神经网络节点的数量和类型、节点之间的连接性以及将节点组织成多个层)以及相关联的权重。特征检测机器学习模块218可以读取针对训练模型的数据文件,并且基于训练模型中所指定的模型结构或形式来实施具有节点连接性、层和权重的神经网络。
59.特征检测机器学习模块218生成训练模型,在这里称为特征检测机器学习模型。在一些实施例中,特征检测机器学习模块218配置为将特征检测机器学习模型应用于数据,诸如,应用数据216(例如,输入图像),以标识输入图像中的一个或多个特征并且生成表示图像的特征向量(嵌入)。在一些实施例中,特征检测机器学习模块218可以包括将由处理器202执行的软件代码。在一些实施例中,特征检测机器学习模块218可以指定电路配置(例如,针对可编程处理器、针对现场可编程门阵列(fpga)等),使得处理器202能够应用特征检测机器学习模型。在一些实施例中,特征检测机器学习模块218可以包括软件指令、硬件指令或组合。在一些实施例中,特征检测机器学习模块218可以提供应用编程接口(api),该api可以被操作系统212和/或其他应用214用来调用特征检测机器学习模块218,例如,将特征检测机器学习模型应用于应用数据216,以确定输入图像的一个或多个特征。
60.在一些实施例中,特征检测机器学习模型可以包括一个或多个模型形式或结构。在一些实施例中,特征检测机器学习模型可以使用支持向量机,然而,在一些实施例中,卷积神经网络(cnn)更可取。例如,模型形式或结构可以包括任何类型的神经网络,诸如,线性网络、实施多个层(例如,输入层和输出层之间的“隐藏层”,其中,每个层都是线性网络)的深度神经网络、卷积神经网络(cnn)(例如,将输入数据分割或划分成多个部分或瓦片,使用一个或多个神经网络层来分开处理每个瓦片并且聚合对每个块的处理结果的网络)、序列到序列神经网络(例如,接收序列数据(诸如,句子中的词语、视频中的帧等)作为输入并且产生结果序列作为输出的网络)等。
61.模型形式或结构可以指定各个节点之间的连接性和将节点组织成层。例如,第一层(例如,输入层)的节点可以接收数据或应用数据216作为输入数据。例如,这种数据可以包括每个节点一个或多个像素,例如当特征检测机器学习模型用于分析例如诸如与用户账户相关联的第一图像的输入图像时。随后的中间层可以按照在模型形式或结构中指定的连接性接收前一层的节点的输出作为输入。这些层也可以被称为隐藏层。最后一层(例如,输
出层)产生机器学习应用的输出。例如,输出可以是与输入图像相关联的图像特征。在一些实施例中,模型形式或结构也指定每层中节点的数量和/或类型。
62.由特征检测机器学习模块218输出的特征可以包括主题(例如,日落对比特定的人);图像中呈现的颜色(例如,绿色的山对比蓝色的湖);颜色平衡;光源;角度和强度;图像中对象的位置(例如,遵循三分法则);对象相对于彼此、镜头位置的位置(例如,景深);焦点(前景对比背景);或阴影。虽然前面的特征是为人所理解的,但是将理解,特征输出可以是表示图像而且不是人类可解析的嵌入或其他数学值(例如,没有单独的特征值可以对应于特定特征,诸如,呈现的颜色、对象位置等);然而,训练模型对于图像是稳健的,使得相似的特征是针对相似的图像输出的,并且具有显著差异的图像具有相应不同的特征。
63.在一些实施例中,模型形式是具有网络层的cnn,其中,每个网络层在不同的抽象级别上提取图像特征。用于标识图像中的特征的cnn可以用于图像分类。在一些实施例中,cnn可以用于标识图像的特征,然后通过用下述用户特定的机器学习模型替代分类层,或更具体地是全连接的前馈神经网络输出层,来应用迁移学习。在一些实施例中,cnn是vggnet、resnet、alexnet、inception网络或被视为图像处理应用的任何其他先进的神经网络,并且使用数字图像的训练集进行训练,诸如,imagenet。模型架构可以包括由多维卷积、平均池化、最大池化、激活函数、归一化、正则化组成的层以及实际用于应用深度神经网络的其他层和模块的组合和排序。
64.在不同的实施例中,特征检测机器学习模型可以包括一个或多个模型。一个或多个模型可以包括多个节点,或在cnn——过滤器组的情况下,按照模型结构或形式设置成层。在一些实施例中,节点可以是没有存储器的计算节点,例如,配置为处理一个单位的输入,以产生一个单位的输出。例如,由节点执行的计算可以包括将多个节点输入中的每个节点输入乘以权重,获得加权总和,并且用偏差或截距值调整加权总和以产生节点输出。
65.在一些实施例中,由节点执行的计算还可以包括将阶跃/激活函数应用于经过调整的加权总和。在一些实施例中,阶跃/激活函数可以是非线性函数。在各个实施例中,这种计算可以包括运算,诸如,矩阵乘法。在一些实施例中,由多个节点进行的计算可以并行执行,例如,使用多核处理器的多个处理器内核、使用gpu的单独的处理单元或专用神经电路系统。在一些实施例中,节点可以包括存储器,例如,可以在处理后续输入时能够存储和使用一个或多个早期输入。例如,具有存储器的节点可以包括长短期记忆(lstm)节点。lstm节点可以使用存储器来维护允许节点像有限状态机(fsm)那样工作的状态。具有这种节点的模型在处理序列数据时可能很有用,例如,句子或段落中的词语、一系列图像、视频中的帧、语音或其他音频等。例如,在门控模型中使用的基于启发法的模型可以存储与以前的图像对应的一个或多个以前生成的特征。
66.在一些实施例中,特征检测机器学习模型可以包括针对单独的节点的嵌入或权重。例如,特征检测机器学习模型可以被初始化为多个节点,该节点被组织成由模型形式或结构指定的层。在初始化时,相应的权重可以应用于按照模型形式连接的每对节点(例如,神经网络的连续层中的节点)之间的连接。例如,相应的权重可以被随机分配或被初始化为默认值。特征检测机器学习模型然后可以被训练,例如,使用数字图像的训练集,以产生结果。在一些实施例中,整个架构的子集都可以从其他机器学习应用再次用作迁移学习方法,以利用预先训练的权重。
67.例如,训练可以包括应用监督学习技术。在监督学习中,训练数据可以包括多个输入(例如,数字图像集)和每个输入的对应预期输出(例如,每个图像的一个或多个特征)。基于特征检测机器学习模型的输出与预期输出的比较,自动调整权重的值,例如,以增加特征检测机器学习模型在被提供相似的输入时产生预期输出的概率的方式。
68.在一些实施例中,训练可以包括应用非监督学习技术。在非监督学习中,只有输入数据(例如,具有标记特征的图像)可以被提供,并且特征检测机器学习模型可以被训练以区分数据,例如,将图像的特征聚集为多个组,其中,每个组都包括具有以某一方式相似的特征的图像。
69.在各个实施例中,训练模型包括与模型结构相对应的权重集。在数字图像的训练集被省略的实施例中,特征检测机器学习模块218可以生成基于之前的训练的特征检测机器学习模型,例如,通过特征检测机器学习模块218的开发者、通过第三方等。在一些实施例中,特征检测机器学习模型可以包括固定(例如,从提供权重的服务器下载)的权重集。
70.在一些实施例中,特征检测机器学习模块218可以以离线方式实施。在这些实施例中,特征检测机器学习模块可以在第一阶段生成,并且作为特征检测机器学习模块218的部分被提供。在一些实施例中,特征检测机器学习模型的小更新可以以在线方式实施。在这样的实施例中,调用特征检测机器学习模块218的应用(例如,操作系统212、其他应用214中的一个或多个等)可以利用由特征检测机器学习模块218产生的特征检测,例如,向用户特定的机器学习模块220提供特征检测,并且可以生成系统日志(例如,如果用户准许,则用户基于特征检测所采取的动作;或如果用作用于进一步处理的输入,则进一步的处理的结果)。系统日志可以定期生成,例如,每小时、每月、每季度等,并且可以在用户准许的情况下用于更新特征检测机器学习模型,例如,更新特征检测机器学习模型的嵌入。
71.在一些实施例中,特征检测机器学习模块218可以以一种方式实施,该方式可以适应设备200的特定配置,特征检测机器学习模块218在该设备200上执行。例如,特征检测机器学习模块218可以确定利用可用计算资源——例如,处理器202——的计算图。例如,如果特征检测机器学习模块218在多个设备上实施为分布式应用,则特征检测机器学习模块218可以以优化计算的方式确定要在单独的设备上执行的计算。在另一个示例中,特征检测机器学习模块218可以确定处理器202包括具有特定数量的gpu内核(例如,1000)的gpu,并且相应地实施特征检测机器学习模块218(例如,作为1000个单独的进程或线程)。
72.在一些实施例中,特征检测机器学习模块218可以实施训练模型的全体。例如,特征检测机器学习模型可以包括多个训练模型,每个模型都适用于相同的输入数据。在这些实施例中,特征检测机器学习模块218可以选择特定的训练模型,例如,基于可用计算资源、之前推论的成功率等。
73.在一些实施例中,特征检测机器学习模块218可以执行多个训练模型。在这些实施例中,特征检测机器学习模块218可以将来自应用单独的模型的输出结合,例如,使用对来自应用每个训练模型的单独的输出进行评分的投票技术或通过选择一个或多个特定输出。在一些实施例中,这种选择器是模型本身的部分,并且充当训练模型之间的连接层。进一步地,在这些实施例中,特征检测机器学习模块218可以应用时间阈值来应用单独的训练模型(例如,0.5ms),并且只利用在时间阈值内可用的那些单独的输出。在时间阈值内未接收到的输出可能不会被利用,例如,被丢弃。例如,在存在当例如通过操作系统212或一个或多个
应用612调用特征检测机器学习模块218时指定的时间限制时,这些方法可能是合适的。
74.示例用户特定的机器学习模块200
75.用户特定的机器学习模块220生成用户特定的机器学习模型,该用户特定的机器学习模型确定由特征检测机器学习模块218分析的相同的输入图像的压缩设置。在一些实施例中,用户特定的机器学习模块220包括指令集,该指令集可由处理器202执行以生成用户特定的机器学习模型。在一些实施例中,用户特定的机器学习模块220存储在设备200的存储器204中并且可以由处理器202访问和执行。
76.在一些实施例中,用户特定的机器学习模块220可以使用训练数据来生成训练模型,具体地是用户特定的机器学习模型。训练数据可以包括任何类型的数据,诸如,用户特定的特征,该用户特定的特征指示关于特征检测机器学习模型的一个或多个先验图像的用户动作。例如,用户特定的特征可以指示用户对图像感兴趣的程度。指示图像是最喜欢的(例如,通过明确的用户输入被标记为最喜欢的)可以被视为不应被压缩的重要图像。用户特定的特征的其他示例可以包括用户动作,诸如,以下任一项:在图像中标记其他用户;共享图像;创建相册或其他基于图像的创作;对图像进行评论;对用户重要的元数据(诸如,指示图像是在重要位置捕捉到的定位数据);下载图像、编辑图像、命令图像的打印;编辑图像;来自明确询问用户是否喜欢图像的数据等。在一些实施例中,用户动作可以包括针对另一用户的图像的动作,诸如,使用自然语言处理确定对另一个用户的图像的评论的情感作为对图像感兴趣的信号、指示对另一个用户的图像的赞许(例如,喜欢)、保存另一个用户的图像、下载另一个用户的图像等。这些用户动作是图像的值的信号并且可以用作模型的输入。
77.训练数据可以从任何来源获得,例如,专门标记用于训练的数据储存库、被提供用作机器学习的训练数据的准许的数据等。在一个或多个用户准许使用其相应的用户数据来训练机器学习模型的实施例中,训练数据可以包括这种用户数据。在用户准许使用其相应的用户数据的实施例中,数据可以包括准许的数据,诸如,图像/视频或图像/视频元数据(例如,图像、图像的对应特征、与用户相关联的用户特定的特征、用户特定的特征如何指示关于一个或多个先验图像的描述等)、通信(例如,社交网络上的消息;电子邮件;聊天数据,诸如文本消息、语音、视频等)、文档(例如,电子表格、文本文档、演示文稿等),等等。在一些实施例中,曾被特征检测机器学习模块218用来生成关于如何标识一个或多个特征的特征检测机器学习模型的先验图像被用户特定的机器学习模块220用来生成用户特定的机器学习模型,以基于指示用户动作的用户特定的特征和先验图像的相应图像特征确定压缩设置。
78.例如,训练模型可以被生成,例如,在不同的设备上,并且作为图像管理应用103的部分被提供。在各个实施例中,训练模型可以作为数据文件被提供,该数据文件包括模型结构或形式(例如,其定义了神经网络节点的数量和类型、节点之间的连接性以及将节点组织成多个层)以及相关联的权重。用户特定的机器学习模块220可以读取针对训练模型的数据文件,并且基于训练模型中所指定的模型结构或形式实施具有节点连接性、层和权重的神经网络。
79.用户特定的机器学习模块220生成训练模型,在这里称为用户特定的机器学习模型。在一些实施例中,用户特定的机器学习模块220配置为将用户特定的机器学习模型应用
于数据,诸如,压缩模块222的数据,以标识输入图像的压缩设置。在一些实施例中,用户特定的机器学习模块220可以包括将由处理器202执行的软件代码。在一些实施例中,用户特定的机器学习模块220可以指定电路配置(例如,针对可编程处理器、针对现场可编程门阵列(fpga)等),使得处理器202能够应用用户特定的机器学习模型。在一些实施例中,用户特定的机器学习模块220可以包括软件指令、硬件指令或组合。
80.在一些实施例中,用户特定的机器学习模型可以包括一个或多个模型形式或结构。例如,模型形式或结构可以包括任何类型的神经网络,诸如,线性网络、深度神经网络,诸如,多层前馈全连接神经网络、cnn或序列到序列神经网络,如上面更详细地讨论的。
81.模型形式或结构可以指定各个节点之间的连接性和将节点组织成层。例如,第一层(例如,输入层)的节点可以接收数据或应用数据216作为输入数据。例如,这种数据可以包括每个节点一个或多个用户特定的特征,例如当特征检测机器学习模型用于例如指示与图像相关联的用户动作的用户特定的特征的分析时。后续中间层可以按照在模型形式或结构中指定的连接性接收前一层的节点的输出作为输入。这些层也可以被称为隐藏层。最后一层(例如,输出层)产生机器学习应用的输出。例如,基于用户特定的特征,输出可以是图像的压缩设置。更具体地,输出可以是对用户对图像感兴趣的程度的确定,该确定与图像的等级对应,用户特定的机器学习模块220将该等级映射到压缩设置。在一些实施例中,模型形式或结构也指定每层中节点的数量和/或类型。
82.用户特定的机器学习模型接收来自特征检测机器学习模块218的输入,以从馈送入用户特定的机器学习模型的输入图像中标识特征。输入允许特征检测机器学习模型从输入图像标识特征并且确定用户是否对输入图像感兴趣。用户特定的机器学习模型是在指示用户动作的用户特定的特征上进行训练的,以基于诸如共享照片、观看照片等的信号标识用户对图像中的哪些特征感兴趣。在一些实施例中,信号是用于明确地估计对于用户的相对重要性的标签(例如,用户评级、照片上的星、至少一次分享、x观看量等)。在一些实施例中,这些可以放置在堆栈评级中以创建集群。在集群中,用户特定的机器学习模型使用特征检测算法来生成相似性度量,然后使用相似性度量来估计对用户的相对重要性。
83.在没有用户特定的特征可用的一些实施例中,用户特定的机器学习模型可以生成基线压缩设置。例如,基线压缩设置可以由来自其他用户的用户输入生成,其中,输入是基于模糊度或其他类型的不太感兴趣的图像的指示物的图像评级。在该示例中,用户特定的机器学习模型可以将较高的压缩比应用于图像的这些类型和特定类型的图像(例如,收据)。
84.用户特定的机器学习模型的输出可以是标识用户的兴趣程度的等级,诸如,使用1-5、1-10等的标度或回归输出(模拟值),例如7.83790。用户特定的机器学习模型可以将等级映射到压缩设置,诸如压缩比。下面是如何将等级映射到压缩比的示例。在该示例中,对于1的等级,压缩图像将占原始图像的原始分辨率的0.2。
85.等级压缩(原始大小:新大小)11:0.221:0.331:0.541:0.8
51:1
86.虽然上面的示例描述了包括映射到压缩比的等级的压缩设置,但是压缩设置的其他示例是可能的。例如,用户特定的机器学习模型可以确定压缩技术、图像格式(例如,使用jpeg、webp、heif等)、为优化而选择的参数(例如,动态范围、图像分辨率、颜色、压缩是否渐进)等。在另一个示例中,压缩设置可以是保持高分辨率图像中的一个或多个特征并且压缩图像的其余部分的确定,诸如,通过确定图像中的一个或多个感兴趣的区域。在另一个示例中,除了用户特定的机器学习模型确定图像中的不同特征的等级外,用户特定的机器学习模型还可以确定对某些类型的图像考虑质量权衡。例如,动态范围可能对日落图像至关重要,分辨率可能对特写镜头等更重要。
87.在又一个示例中,用户特定的机器学习模型还可以指示,当不同的特征被包括在相同的图像中时,如何应用等级。例如,如果在图像包括日落的情况下图像通常有5等级,但是在图像包括食物的情况下图像通常有2等级,则用户特定的机器学习模型可以应用指示最有兴趣的等级,即,5等级。在另一个实施例中,用户特定的机器学习模型可以确定特定用户对图像的反应建议多个特征的等级应被平均,某些特征应与较高的权重相关联,等等。
88.在一些实施例中,用户特定的机器学习模型可以确定输入图像的等级满足重要性阈值,并且响应于等级满足重要性阈值,用户特定的机器学习模型提供用户共享输入图像的建议。在另一个实施例中,响应于等级满足重要性阈值,用户特定的机器学习模型将输入图像的备份优先于与用户账户相关联的不满足重要性阈值的其他图像。例如,在客户端设备115位于具有有限的因特网接入的区域中,用户特定的机器学习模型可以指令客户端设备115传输具有最高等级(或以基于等级的降序分类)的图像以被传送到服务器系统101用于存储的。在另一个实施例中,响应于等级满足重要性阈值,如果后续图像中所描绘的场景具有输入图像的一个或多个特征中的至少一个特征,则用户特定的机器学习模型指令用户界面模块220提供包括用于捕捉后续图像的指令的用户界面。例如,在用户对拍摄植物的照片有兴趣的情况下,用户界面可以通知用户照片上的水滴可能会模糊花瓣。在另一个示例中,如果在图像中观察到感兴趣的特征,则相机可以将焦点自动锁定到感兴趣的特征上(并且允许用户通过点击改变焦点)。
89.在不同的实施例中,用户特定的机器学习模型可以包括一个或多个模型。一个或多个模型可以包括多个节点,按照模型结构或形式设置成层。在一些实施例中,节点可以是没有存储器的计算节点,例如,配置为处理一个单位的输入以产生一个单位的输出。例如,由节点执行的计算可以包括将多个节点输入中的每个节点输入乘以权重,获得加权总和,并且用偏差或截距值调整加权总和以产生节点输出。在一些实施例中,由节点执行的计算还可以包括将阶跃/激活函数应用于经过调整的加权总和。在一些实施例中,阶跃/激活函数可以是非线性函数。
90.在各个实施例中,这种计算可以包括运算,诸如,矩阵乘法。在一些实施例中,由多个节点进行的计算可以并行执行,例如,使用多核处理器的多个处理器内核、使用gpu的单独的处理单元或专用神经电路系统。在一些实施例中,节点可以包括存储器,例如,可以在处理后续输入时能够存储和使用一个或多个早期输入。例如,具有存储器的节点可以包括lstm节点。lstm节点可以使用存储器来维护准许节点像fsm那样工作的状态。
91.在一些实施例中,用户特定的机器学习模型可以包括针对单独的节点的嵌入或权
重。例如,用户特定的机器学习模型可以被初始化为多个节点,该节点被组织成由模型形式或结构指定的层。在初始化时,相应的权重可以应用于按照模型形式连接的每对节点(例如,神经网络的连续层中的节点)之间的连接。例如,相应的权重可以被随机分配或被初始化为默认值。用户特定的机器学习模型然后可以被训练,例如,使用用户特定的训练集,以产生结果。
92.训练可以包括应用有监督学习技术。在有监督学习中,训练数据可以包括多个输入(例如,针对不同类型的图像给出的等级)和每个输入的对应预期输出(例如,压缩设置)。基于特征检测机器学习模型的输出(例如,预测等级)与预期输出(例如,由用户提供的等级)的比较,自动调整权重的值,例如,以增加用户特定的机器学习模型在被提供相似的输入时产生预期输出的概率的方式。下面包括用户为与该用户相关联的不同类型的分类的图像提供的等级的一个示例。在该示例中,最低等级与最不重要相关联,并且最高等级与最重要相关联。
93.类别给定的等级收据1截图1食物2汽车3猫4日落5风景5
94.在各个实施例中,训练模型包括与模型结构对应的权重集或嵌入。在数字图像的训练集被省略的实施例中,用户特定的机器学习模块220可以生成基于之前的训练的用户特定的机器学习模型,例如,通过用户特定的机器学习模块220的开发者、通过第三方等。在一些实施例中,用户特定的机器学习模型可以包括固定(例如,从提供权重的服务器下载)的权重集。
95.用户特定的机器学习模块220可以以离线方式和/或作为训练模型的全体并且利用不同的格式实施。因为这是上面关于特征检测机器学习模块218描述的,所以理解相同的描述也可以应用于用户特定的机器学习模块220。因此,该描述将不再重复。
96.示例压缩模块222
97.压缩模块222基于由用户特定的机器学习模块220确定的压缩设置压缩输入图像。在一些实施例中,压缩模块222可以包括指令集,该指令集可由处理器202执行以压缩输入图像。在一些实施例中,压缩模块222存储在设备200的存储器204中并且可以由处理器202访问和执行。
98.压缩模块222可以接收来自特征检测机器学习模块218的输入图像和来自用户特定的机器学习模块220的压缩设置。压缩模块222将压缩设置应用于输入图像。压缩模块222可以用压缩输入图像替代原始输入图像,以减少文件大小,从而更有效地利用其上将存储图像的存储器204和/或存储设备。在一些实施例中,压缩模块222可以将压缩输入图像传输到另一位置用于存储。例如,在图像管理应用103b是客户端设备115a的部分的情况下,压缩模块222可以将压缩输入图像传输到服务器系统101用于存储。
99.示例用户界面模块224
100.用户界面模块224生成用户界面,该用户界面接收来自用户的输入。在一些实施例中,用户界面模块224包括指令集,该指令集可由处理器202执行以压缩输入图像。在一些实施例中,用户界面模块224存储在设备200的存储器204中并且可以由处理器202访问和执行。
101.在一些实施例中,用户界面模块224生成用户界面,用于改变与图像管理应用103相关联的不同设置。在一些实施例中,用户界面模块224生成用户界面并且接收用户输入,以确定基线压缩设置。例如,用户界面模块224可以生成用户界面,该用户界面是与用户账户相关联的用户可看见的。
102.用户界面可以包括样本图像的两个或两个以上的版本,其中,每个图像都是用不同的压缩设置进行压缩的。用户界面可以包括要求用户标识样本图像的特定版本作为用户账户的基线压缩设置的提示。例如,基线压缩设置可以表示用户接受的针对与用户账户相关联的图像的最低压缩设置。用户界面模块224可以多次请求关于基线压缩设置的用户输入,以确认基线压缩设置的准确性。例如,用户界面模块224可以向图像提供不同的特征,定期显示用户界面(每周一次、每月一次、每当有图像管理应用103的软件更新时)等。
103.在一些实施例中,用户界面模块224可以响应于用户的选择生成警告。例如,如果用户选择了高分辨率压缩设置或根本没有压缩设置,则用户界面模块224可以警告用户存储空间将在一定天数内或在一定数量的附加图像被捕捉到后耗尽。这种估计可以基于用户在过去x天内上传的照片大小的平均值来完成。
104.用户界面模块224可以将用户的选择的结果传输到用户特定的机器学习模块220以用于确定输入图像的压缩设置。机器学习模块220然后可以基于基线压缩设置将等级映射到压缩设置。
105.存储器204中的任何软件都可以可替代地存储在任何其他合适的存储位置或计算机可读介质上。另外,存储器204(和/或其他连接的存储设备)可以存储一个或多个消息、一个或多个分类法、电子百科全书、词典、辞典、知识库、消息数据、语法和/或在本文中所描述的特征中使用的其他指令和数据。存储器204和任何其他类型的存储(磁盘、光盘、磁带或其他有形介质)可以被视为“存储”或“存储设备”。
106.为了便于说明,图2示出了处理器202、存储器204、i/o接口206、相机208、显示设备210和软件块103、218、220、220、222和224中的每一个的一个块。这些块可以表示一个或多个处理器或处理电路系统、操作系统、存储器、i/o接口、应用和/或软件模块。在其他实施例中,设备200可能没有所示的全部组件和/或可能有其他元件,包括其他类型的元件,而不是或除了本文中所描述的元件。虽然一些组件被描述为执行在本文中的一些实施例中描述的块和操作,但是环境100、设备200、相似的系统或与这种系统相关联的任何合适的处理器的任何合适的组件或组件的组合都可以执行所描述的块和操作。
107.本文中所描述的方法可以由计算机程序指令或代码实施,该计算机程序指令或代码可以在计算机上执行。例如,代码可以由一个或多个数字处理器(例如,微处理器或其他处理电路系统)实施,并且可以存储在计算机程序产品上,包括非暂时性计算机可读介质(例如,存储介质),诸如,磁性、光学、电磁或半导体存储介质,包括半导体或固态存储器、磁带、可移除的计算机软盘、随机存取存储器(ram)、只读存储器(rom)、闪速存储器、刚性磁
盘、光盘、固态存储器驱动器等。程序指令也可以包含在电子信号中并且作为电子信号提供,例如,以从服务器(例如,分布式系统和/或云计算系统)交付的软件即服务(saas)的形式。可替代地,一种或多种方法可以在硬件(逻辑门等)中或在硬件和软件的组合中实施。示例硬件可以是可编程处理器(例如,现场可编程门阵列(fpga)、复杂可编程逻辑器件)、通用处理器、图形处理器、专用集成电路(asic)等。一种或多种方法可以作为在系统上运行的应用的部分或组件或作为与其他应用和操作系统结合运行的应用或软件执行。
108.示例方法
109.图3是流程图,图示了根据一些实施例的使用特征检测机器学习模型304来标识输入图像302中的一个或多个特征306和使用用户特定的机器学习模型308从图像的一个或多个特征确定压缩设置310的示例方法300。
110.特征检测机器学习模型304可以包括深度神经网络,诸如,具有从像素构成更抽象的对象的层集的卷积神经网络(cnn)。在一些实施方式中,cnn的较早层检测边缘,并且随着层的深度的增加,特征的人类定义的意义增加。例如,中间阶段层可以检测对象的组成部分,并且较后阶段层可以检测对象(或人脸)本身。
111.输入图像302作为特征检测机器学习模型304的输入提供。输入图像302来自与用户账户相关联的用户。输入图像302可以由层集中的输入层接收。输入层可以连接到层集中的第二层。在一些实施例中,一个或多个附加层中的每一个接收前一层的输出作为输入并且向下一层提供输入。特征检测机器学习模型304基于输入图像302生成一个或多个特征306。层集的最后一层可以是输出层。继续该示例,输出层可以输出一个或多个特征306。
112.在一些实施例中,输出可以包括每个特征已在图像中被准确地标识的对应概率。特征检测机器学习模型304的输出可以是数字向量、概率值或概率值集(例如,每个都与视频帧的特定堆栈对应)。特征检测机器学习模型304的输出作为用户特定的机器学习模型308的输入提供。
113.用户特定的机器学习模型308还可以包括深度神经网络,诸如,cnn。在一些实施例中,用户特定的机器学习模型308可以是通过将特征检测机器学习模型304的分类层替代为用关联于用户的用户特定的特征训练的组件来使用迁移学习来生成的,其中,用户特定的特征指示关于先验图像的用户动作。在一些实施例中,先验图像也用于训练特征检测机器学习模型304。
114.用户特定的机器学习模型308可以通过输入层接收一个或多个特征306。输入层可以连接到多个层的第二层。在一些实施例中,每一个接收前一层的输出作为输入并向下一层提供输入的一个或多个附加层可以被包括在用户特定的机器学习模型308中。用户特定的机器学习模型308的最后一层可以是输出层。在一些实施方式中,模型308可以具有单个输入层,该输入层直接输出压缩设置310。
115.用户特定的机器学习模型308可以生成压缩设置310(预测310)和可选地与压缩设置310相关联的概率作为输出。在一些实施例中,压缩设置310可以包括输入图像302中的一个或多个特征的一个或多个等级。概率可以包括概率值、概率值集(例如,每个都与输入图像302中的特定特征的等级对应)或由用户特定的机器学习模型308的输出层生成的向量表示。
116.在一些实施例中,方法300可以在客户端设备115a、115n中的一个或多个上实施,
例如,作为图像管理应用103b的部分。在一些实施例中,方法300可以在服务器设备104上实施,例如,作为图像管理应用103a的部分。在一些实施例中,方法300可以在服务器设备104上和在客户端设备115a、115n中的一个或多个上实施。
117.在一些实施例中,方法300可以实施为在通用处理器(例如,设备的中央处理单元(cpu))上可执行的软件。在一些实施例中,方法300可以实施为在专用处理器(例如,图形处理单元(gpu)、现场可编程门阵列(fpga)、机器学习处理器等)上可执行的软件。在一些实施例中,方法300可以实施为专用硬件,例如,作为专用集成电路(asic)。
118.图4是图示了根据一些实施例的创建训练模型的示例方法400的流程图。
119.方法400可以从框402开始。在框402中,确定是否获得了使用用户数据的用户同意。例如,用户界面模块224可以生成用户界面,该用户界面请求来自用户的准许以在生成特征检测机器学习模型和/或用户特定的机器学习模型时使用用户数据。如果未获得用户同意,则在框404中,使用基线模型,而不是特征检测机器学习模型和/或用户特定的机器学习模型。
120.如果获得用户同意,则方法400可以继续进行框406,其中,获得数字图像的训练集以及对应的特征。框406之后可以是框408。在框408中,基于训练集和对应的特征训练特征检测机器学习模型,其中,在训练后,特征检测机器学习模型能够在提供给特征检测机器学习模型的输入图像中标识图像特征。框408之后可以是框410。
121.在框410中,获得与用户相关联的用户特定的特征的训练集,其中,用户特定的特征指示关于一个或多个先验图像的用户动作。在一些实施例中,先验图像与数字图像集相同。框410之后可以是框412。在框412中,基于用户特定的特征和一个或多个先验图像训练用户特定的机器学习模型,其中,在训练后,用户特定的机器学习模型确定提供给用户特定的机器学习模型的输入图像的等级。
122.图5是图示了根据一些实施例的将模型应用于输入图像的示例方法500的流程图。
123.在框502中,获得输入图像,该输入图像与用户账户相关联。框502之后可以是框504。在框504中,使用特征检测机器学习模型来确定输入图像的一个或多个特征。框504之后可以是框506。在框506中,基于输入图像中的一个或多个特征,使用针对用户账户进行个性化的用户特定的机器学习模型来确定输入图像的压缩设置。框506之后可以是框508。在框508中,基于压缩设置来压缩输入图像。
124.在训练之前,每个节点都可以被分配初始权重,并且神经网络的不同层的节点之间的连接可以被初始化。训练可以包括调整一个或多个节点的权重和/或一对或多对节点之间的连接。
125.在一些实施例中,在初始训练阶段,可以排除训练集的子集。这个子集可以在初始训练阶段之后提供,并且可以确定预测(是否分析视频的指示)的准确性。如果准确性低于阈值,则可以分别使用来自训练集的附加数字图像或用户特定的特征执行进一步的训练,以调整模型参数,直到模型正确地预测其输出。
126.进一步的训练(第二阶段)可以重复任何次数,例如,直到模型达到令人满意的准确性水平。在一些实施例中,训练模型可以被进一步修改,例如,压缩(使用更少的节点或层)、转换(例如,为在不同类型的硬件上可用)等。在一些实施例中,可以提供模型的不同版本,例如,模型的客户端版本可以针对大小进行优化并且具有降低的计算复杂度,而模型的
服务器版本可以针对准确性进行优化。
127.虽然方法400、450已经参照图4a和图4b中的各个框进行了说明,但是可以理解,本公开中所描述的技术可以在不执行图4a和图4b的一些框的情况下执行。在一些实施例中,图4a和图4b中所示的一个或多个框可以组合。
128.进一步地,虽然训练已经参照训练集进行了描述,但是特征检测机器学习模型和用户特定的机器学习模型可以在操作期间进行训练。例如,如果用户请求使用特定压缩设置来压缩图像,则可以更新特征检测机器学习模型和用户特定的机器学习模型以包括用户信息。在一些实施例中,用户可以手动提供注释,例如,提供特征列表和针对特征的相应等级。在用户允许的情况下,一些实施例可以利用这种注释来训练特征检测机器学习模型和用户特定的机器学习模型。
129.虽然描述已经关于其特定实施例进行了描述,但是这些特定实施例仅仅是说明性的,而不是限制的。示例中所示的概念可以应用于其他示例和实施例。
130.在本文中所讨论的某些实施例可以收集或使用关于用户的个人信息(例如,用户数据、关于用户的社交网络的信息、用户的位置和位于该位置的时间、用户的生物特征信息、用户的活动以及人口统计信息)的情况下,会向用户提供控制是否收集信息、是否存储个人信息、是否使用个人信息以及如何收集、存储和使用关于用户的信息的一个或多个机会。即,本文中所讨论的系统和方法收集、存储和/或使用用户个人信息,特别是在接收到来自这样做的相关用户的显式授权时。用户有永久删除这些模型的能力。
131.例如,向用户提供对程序或特征是否收集关于该特定用户或与程序或特征相关的其他用户的用户信息的控制。向个人信息将要被收集的每个用户都呈现一个或多个选项,即,允许控制与该用户相关的信息收集,以提供关于是否收集信息和关于信息的哪些部分要被收集的许可或授权。例如,可以通过通信网络向用户提供一个或多个这样的控制选项。另外,在存储或使用某些数据之前,可以按照一种或多种方式处理这些数据,从而移除个人可识别信息。作为一个示例,可以对用户的身份进行处理,从而无法确定个人可识别信息。作为另一个示例,可以将客户端设备的地理位置泛化到更大的区域,从而无法确定用户的特定位置。
132.要注意,本公开中所描述的功能框、操作、特征、方法、设备和系统可以集成到或划分为本领域技术人员所知的系统、设备和功能框的不同组合。任何合适的编程语言和编程技术都可以用于实施特定实施例的例程。不同的编程技术可以被采用,例如,过程式的或面向对象的。例程可以在单个处理设备或多个处理器上执行。虽然步骤、操作或计算可以按照特定顺序呈现,但是在不同的特定实施例中,顺序可以发生改变。在一些实施例中,在此规范中按顺序所示的多个步骤或操作可以同时执行。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献