CN106796731A - 优化所显示的文本的易读性 - Google Patents
优化所显示的文本的易读性 Download PDFInfo
- Publication number
- CN106796731A CN106796731A CN201580053338.6A CN201580053338A CN106796731A CN 106796731 A CN106796731 A CN 106796731A CN 201580053338 A CN201580053338 A CN 201580053338A CN 106796731 A CN106796731 A CN 106796731A
- Authority
- CN
- China
- Prior art keywords
- text
- legibility
- input data
- pixel
- polymerization
- 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.)
- Withdrawn
Links
- 238000005457 optimization Methods 0.000 title description 5
- 238000006116 polymerization reaction Methods 0.000 claims abstract description 96
- 238000000034 method Methods 0.000 claims abstract description 75
- 238000012986 modification Methods 0.000 claims abstract description 51
- 230000004048 modification Effects 0.000 claims abstract description 51
- 238000006243 chemical reaction Methods 0.000 claims description 66
- 230000008859 change Effects 0.000 claims description 25
- 230000008569 process Effects 0.000 claims description 23
- 238000004891 communication Methods 0.000 claims description 19
- 238000005728 strengthening Methods 0.000 claims 1
- 238000005516 engineering process Methods 0.000 description 58
- 238000003860 storage Methods 0.000 description 56
- 230000006870 function Effects 0.000 description 29
- 230000015654 memory Effects 0.000 description 22
- 238000013500 data storage Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 13
- 230000006855 networking Effects 0.000 description 12
- 238000005259 measurement Methods 0.000 description 11
- 238000011282 treatment Methods 0.000 description 11
- 238000010606 normalization Methods 0.000 description 10
- 230000000670 limiting effect Effects 0.000 description 9
- 238000001514 detection method Methods 0.000 description 7
- 210000003811 finger Anatomy 0.000 description 7
- 238000012545 processing Methods 0.000 description 7
- 238000010079 rubber tapping Methods 0.000 description 7
- 230000009471 action Effects 0.000 description 6
- 230000009286 beneficial effect Effects 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 6
- 239000000047 product Substances 0.000 description 6
- 238000009877 rendering Methods 0.000 description 6
- 230000006399 behavior Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 5
- 238000013519 translation Methods 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 4
- 239000003086 colorant Substances 0.000 description 4
- 230000033001 locomotion Effects 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000004224 protection Effects 0.000 description 4
- 230000002829 reductive effect Effects 0.000 description 4
- 238000012935 Averaging Methods 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 230000000712 assembly Effects 0.000 description 2
- 238000000429 assembly Methods 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000001815 facial effect Effects 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 230000001737 promoting effect Effects 0.000 description 2
- 230000005236 sound signal Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 240000001436 Antirrhinum majus Species 0.000 description 1
- 241000272878 Apodiformes Species 0.000 description 1
- 241001269238 Data Species 0.000 description 1
- 241000196324 Embryophyta Species 0.000 description 1
- HBBGRARXTFLTSG-UHFFFAOYSA-N Lithium ion Chemical compound [Li+] HBBGRARXTFLTSG-UHFFFAOYSA-N 0.000 description 1
- 239000004165 Methyl ester of fatty acids Substances 0.000 description 1
- 235000010575 Pueraria lobata Nutrition 0.000 description 1
- 241000219781 Pueraria montana var. lobata Species 0.000 description 1
- 241000414697 Tegra Species 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 238000004040 coloring Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 238000005520 cutting process Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000004387 environmental modeling Methods 0.000 description 1
- VJYFKVYYMZPMAB-UHFFFAOYSA-N ethoprophos Chemical compound CCCSP(=O)(OCC)SCCC VJYFKVYYMZPMAB-UHFFFAOYSA-N 0.000 description 1
- 210000005224 forefinger Anatomy 0.000 description 1
- 238000009432 framing Methods 0.000 description 1
- 210000004276 hyalin Anatomy 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000004898 kneading Methods 0.000 description 1
- 210000003127 knee Anatomy 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 229910001416 lithium ion Inorganic materials 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 229910052987 metal hydride Inorganic materials 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000003032 molecular docking Methods 0.000 description 1
- 229910052759 nickel Inorganic materials 0.000 description 1
- PXHVJJICTQNCMI-UHFFFAOYSA-N nickel Substances [Ni] PXHVJJICTQNCMI-UHFFFAOYSA-N 0.000 description 1
- -1 nickel metal hydride Chemical class 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 230000035699 permeability Effects 0.000 description 1
- 229920000642 polymer Polymers 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 238000010897 surface acoustic wave method Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 210000003813 thumb Anatomy 0.000 description 1
- 210000003371 toe Anatomy 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/60—Editing figures and text; Combining figures or text
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/001—Texturing; Colouring; Generation of texture or colour
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/40—Scaling of whole images or parts thereof, e.g. expanding or contracting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10024—Color image
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2215/00—Indexing scheme for image rendering
- G06T2215/12—Shadow map, environment map
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Processing Or Creating Images (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
输入数据可以定义用于在二维或三维显示环境中呈现文本的方法、模型或主题。该输入数据可以经分析以确定文本的易读性得分。易读性得分可以基于多种因素,包括文本的特征、环境的特征、从聚合亮度值得到的聚合对比度、易读性的相对重要性、其它上下文信息和/或其组合。如果易读性得分不满足至少一个阈值,则可对输入数据应用一个或多个处置。例如,处置可以涉及对文本大小、字体、文本位置、文本颜色的修改和/或对显示环境的修改,以改善文本的易读性和/或显示环境和文本的整体美观性。
Description
背景技术
可用于创建内容的软件的可用性和多样性得到了增加。类似地,用于编辑图像文件和视频文件的软件应用通过允许用户用文本和其他设计添加来对图像进行补充,从而促进媒体共享的进步。例如,一些软件应用允许用户将文本叠加在图像之上。当使用这样的应用时,用户可能面临创建使得文本的美观性和易读性最优化的排列的挑战。这样的任务通常需要手动的编辑过程,这可能是低效和麻烦的。
由于如今用户创建、生成、共享和/或发布内容的几乎任何技术,创建、生成、共享或发布内容的一些用户或其他实体可能在设计原理方面未经训练。因此,某些用户或实体可能无法生成旨在实现最佳易读性的视觉内容。无论培训的程度如何,制作易读且从审美上看令人愉悦的视觉内容可能会更加难。
在此所做的公开正是针对这些和其它考虑而呈现的。
发明内容
这里描述了用于优化所显示的文本的美观性和易读性的技术。输入数据可以定义用于在二维(“2D”)或三维(“3D”)显示环境中呈现文本的方法、模型或主题。可以分析输入数据以确定文本的易读性得分。易读性得分可以基于许多因素,包括但不限于文本的特征、显示环境的特征、处置偏好(treatment preference)、从聚合亮度值导出的聚合对比度(aggregate contrast ratio)、其他上下文信息和/或其组合。
如果文本的易读性得分不满足至少一个阈值,则可以对输入数据应用一个或多个处置(treatment)。处置可以包括,例如但不限于:文本大小、字体、文本位置、文本颜色的修改和/或对显示环境(例如,图像)的其他修改,以提高文本的易读性和/或文本和显示环境的整体美观性。通过对输入数据应用处置产生的最终输出可以是对修改参数进行定义的模型的形式。
本文描述的技术还可以确定生成的模型的易读性得分。可以根据模型的易读性得分对一个或多个模型进行过滤、排序和呈现给接口。
应当理解,上述主题可以实现为计算机控制的装置、计算机过程、计算系统或实现为例如计算机可读存储介质的制品。这些特征和其它各个特征将从以下的具体实施方式的理解和相关联的附图的阅览中变得显而易见。
提供该发明内容以便以简化的形式来引入下面的具体实施方式中进一步描述的概念的选择。该发明内容不旨在确定所要求保护的主题的关键特征或主要特征,也不旨在该发明内容用于限定所要求保护的主题的范围。此外,所要求保护的主题不限于解决在本公开的任意部分所提到的任意或全部缺点的实现方式。
附图说明
图1是示出用于优化显示的文本的美观性和/或易读性的系统的几个示例组件的框图。
图2A是示出用于优化显示的文本的美观性和/或易读性的方法的各方面的流程图。
图2B是示出用于确定聚合对比度的方法的各方面的流程图。
图3示出了示出如何组合输入数据的文本和图像以形成输入数据的变换的示例。
图4A示出与输入数据的变换的代表性部分对齐的示例的超像素阵列。
图4B示出了图4A所示的超像素阵列的个体超像素。
图4C示出了图4A所示的超像素阵列的另一个体超像素。
图4D示出了与输入数据的变换的代表性部分对齐的超像素的另一示例。
图4E示出了图4D所示的超像素的个体超像素。
图4F示出了图4D所示的超像素的另一个体超像素。
图5A示出了从由全局处置产生的模型所生成的样本变换。
图5B示出了从涉及背景的处置产生的模型所生成的样本变换。
图5C示出了从涉及对文本的修改的处置产生的模型所生成的样本变换。
图5D示出了从涉及对文本的多于一个修改的处置产生的模型所生成的样本变换。
图5E示出了从涉及对文本的修改的处置产生的模型所生成的样本变换。
图6A-6D示出了具有高亮显示显著区域和不变区域的示例变换。
图7示出了可以与产生多于一个聚合对比度的过程一起使用的样本变换。
图8是示出用于能够实现本文呈现的方法和技术的各方面的计算系统的说明性计算机硬件和软件体系结构的计算机体系结构图。
图9是示出能够实现本文呈现的方法和技术的各方面的分布式计算环境的图。
图10是示出用于能够实现本文呈现的方法和技术的各方面的计算设备的计算设备体系结构的计算机体系结构图。
具体实施方式
以下具体实施方式所显示的文本的美观性和/或易读性的概念和技术。一般说来,本文公开的技术可以获得包括图像和定义被配置为叠加在图像上的文本的数据的输入数据。可以分析输入数据以计算与文本相关联的易读性得分。如将在下面更详细描述的,易读性得分可以基于许多因素,包括但不限于,文本的特征、图像的特征、处置偏好、从聚合亮度导出的聚合对比度值、易读性的相对重要性,其他上下文信息和/或其组合。如果易读性得分不满足至少一个阈值,则可以对输入数据应用一个或多个处置。
一般来说,处置可以是用于修改文本、图像或数据的过程、技术或任何数据,其修改输入数据的文本和图像之间的关系。例如,处置可以包括文本大小、字体、文本位置、文本颜色和/或定义文本如何与图像相关出现的任何数据的修改。处置还可以包括对图像的修改以改善文本的易读性和/或对文本和图像进行显示的变换或渲染的整体美观性。通过对输入数据应用处置而产生的结果输出可以是模型的形式。本文描述的技术还可以确定生成的模型的易读性得分。可以基于一个或多个模型的易读性得分对一个或多个模型进行过滤、排序和呈现给用户。
在一些配置中,聚合对比度可以基于与文本相关联的聚合亮度值和与图像相关联的聚合亮度值。聚合亮度值可以从文本和图像中的一个或多个限定的样本区域测量。为了说明的目的,在此将定义的区域称为“超像素”。通常,超像素的大小可以基于一个或多个因素,包括一个或多个字符的粗度,例如字符的笔画或线的粗度,一个或多个字符的高度,点大小和/或输入数据的其他方面。如下面将更详细地描述的那样,通过为超像素选择合适的大小,可以在减少对苛刻的计算资源的需求的同时实现准确的易读性得分。
简要描述,应用于输入数据的一个或多个处置可以包括包括修改文本和/或图像的明度、大小、颜色和/或其他方面的一个或多个操作。在几个非限制性示例中,处置还可以包括产生位于文本背后并且在图像之前的背景(backdrop),以增加文本和图像之间的对比度。可以理解,部分透明度可以应用于背景。处置还可以包括图像中显著区域(salientregion)和不变区域(invariant regions)的识别。在这种处置中,可以基于显著区域和/或不变区域的位置重新定位文本。处置还可以包括对图像的修改,其例如可以包括增加或减少图像的明度和/或修改图像的颜色。如将在下面更详细描述的,处置可以包括对文本和/或显示环境的任何类型的修改。
通过对输入数据应用处置产生的结果输出可以是模型的形式,这里也称为“模型数据”。在一个示例中,当将处置应用于输入数据时,所得到的模型可以包括定义文本的数据,诸如字符的ASCII值、字体、字体大小和/或描述文本如何布置的其他数据,如文字位置。模型数据还可以包括图像数据和/或指示对图像的修改(诸如明度调整)的数据。即使不对输入数据应用处置,也可以生成模型数据。在这样的示例中,当处置添加文本以补充输入数据时,可以生成模型数据。
如将在下面更详细地描述的,模型数据被配置为提供一种形式的输出,而不需要渲染经处置的输入数据。在一些实现方式中,可以将模型传送到消费输入数据的一个或多个计算设备,并且消费计算设备可以基于该模型渲染输入数据的输出。在其他实现方式中,本文所描述的技术也可以处理模型数据以渲染一个或多个输出文件。在任何配置中,模型数据可用于提高在图像、视频或任何其他显示环境(包括2D或3D环境)中显示的文本的易读性。
在一些配置中,可以为模型数据确定易读性得分。模型数据的易读性得分可以基于许多因素,包括但不限于文本的特征、图像的特征、文本的意图用途、从聚合亮度值导出的聚合对比度、易读性的相对重要性、其他上下文信息和/或其组合。
可以将模型数据的易读性得分与一个或多个阈值进行比较。可以用作阈值的数据的一些示例可以包括:与输入数据相关联的易读性得分;其他模型的易读性得分;和/或预定阈值。如果特定模型的易读性得分满足至少一个阈值或阈值的聚合,则该模型可以被存储并用作输出。在一些配置中,基于易读性得分来生成预定数量的模型并进行排序。如将在下面更详细地描述的,阈值可以根据情况和期望的易读性而不同。例如,从图像和文本生成的缩略图可能仅旨在提供关于图像包含文本的“提示”,或者可以旨在是完全可读的。在每种情况下,如下面的示例所示,易读性的阈值可以变化。
在一些配置中,本文描述的技术获得并处理关于生成的模型的反馈。例如,接口可以被配置为从用户或计算机获得反馈。反馈可以指示对处置或模型的选择,或者反馈可以传送指示对处置或模型的评估的数据。反馈还可用于机器学习目的。例如,本文描述的技术可以存储和处理反馈以允许本文公开的过程从历史使用数据中受益。
此外,可以理解,示例性处置是为了说明的目的而提供的,并且不应被解释为限制性的。可以理解,来自任何资源的任何信息、范例、过程或数据结构可以与本文所述的技术一起使用以处理输入数据。此外,虽然本文所述的技术是指对“图像”或“图像数据”的处理,但是应当理解,“图像”可以是任何形式的媒体的一部分,诸如视频、静像、或定义2D或3D显示环境的任何其他形式的数据。例如,图像可以是静像、视频帧,或2D或3D显示环境的透视图。
虽然本文所描述的主题是在与计算机系统上的操作系统和应用程序的执行相结合而执行的程序模块的一般上下文中呈现的,本领域技术人员将认识到,可以与其它类型的程序模块相结合来执行其它实现方式。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、组件、数据结构和其它类型的结构。而且,本领域技术人员将意识到,本文所描述的主题可以利用其它计算机系统配置来实现,包括手持式设备、多处理器系统、基于微处理器的或可编程的消费电子设备、微型计算机、大型计算机等等。
在下面的具体实施方式中参考了附图,附图构成具体实施方式的一部分并且其中通过示例显示出具体的配置或示例。现在参考附图,示出了用于优化所显示的文本的美观性和/或易读性的计算系统、计算机可读存储介质和计算机实现的方法的各方面,其中相似的标记在多幅图中表示相似的元件。如参考图8-10在下面进一步详述的,存在能够实施本文所描述的功能和技术的多个应用和服务。
现在参考图1,将描述本文呈现的各种配置的一个操作环境100的各个方面。图1所示的操作环境100可以包括计算设备102。根据各种配置,计算设备102的功能可以由诸如台式、平板式、工作站或膝上型计算机系统的个人计算机(“PC”)提供。计算设备102的功能还可以由其他类型的计算系统提供,包括但不限于服务器计算机、手持式计算机、上网本计算机、笔记本计算机、嵌入式计算机系统、个人数字助理、移动电话、平板式或片式计算机,智能手机或能够执行本文描述的各种软件元素的其他设备或系统。由于其他计算系统可用于提供本文描述的功能,计算设备102的上述示例应理解为是说明性的,并且不应被解释为以任何方式限制。
根据一些配置,计算设备102被配置为与通信网络(“网络”)104通信或作为通信网络的一部分进行操作。在一些其他配置中,计算设备102不与网络104通信地操作,和/或可以在不访问网络104的情况下提供本文所述的计算设备102的功能。计算设备102可以被配置为执行操作系统106和一个或多个应用程序、模块、软件元件、或其他计算机可执行程序或计算机可执行指令,例如程序模块108和/或其他计算机可执行指令。
操作系统106是用于控制计算设备102的操作的计算机程序。程序模块108可以包括可执行程序,其被配置为在操作系统106之上执行以提供本文所描述的用于优化图像中文本的美观性和/或易读性的功能。虽然程序模块108被示为计算设备102的组件,但是应当理解,程序模块108可以体现为作为网络104和/或计算设备102的一部分或与网络104和/或计算设备102通信而操作的独立设备或其组件。程序模块108还可以是在计算设备102上和/或与计算设备102通信的其他真实或虚拟设备上执行的虚拟化服务或技术层。因此,图1中所示的配置是说明性的,不应被解释为以任何方式限制。
如将在下面更详细地解释的,程序模块108可以被配置为获得并且处理输入数据110。由程序模块108获得的输入数据110可以包括例如一个或多个图像、视频或诸如此类的视觉内容,以及诸如要与视觉内容一起呈现的文本的其他内容。可以理解,输入数据110还可以包括定义3D模型的数据,其可以包括地图、虚拟环境、增强现实环境和/或多维对象。为了说明和描述本文公开的概念和技术的目的,视觉内容在本文中被称为“图像”。
另外,可以由输入数据110以任何合适的格式来定义位于图像或其他形式的媒体上的、叠加和/或重叠于图像或其他形式的媒体上的文本和/或其他图形对象。例如,文本和其他图形对象可以通过描述诸如字体、点大小、文本位置、笔画或线粗度、布局或用于描述位于一个或多个图像上的文本、符号和/或标记的其他信息的信息的数据来定义。由于视觉内容的多种类型是可想到且是可能的,应该理解,所描述的实现方式是说明性的,而不应被解释为以任何方式限制。
如将在下面更详细地描述的,程序模块108可以被配置为执行可以获得、分析、修改和存储诸如图像、视频和/或可以呈现文本和其他符号的任何其他数据格式的定义显示环境的数据的多个操作。应当理解,本文描述的技术可以应用于定义任何可以布置和/或显示文本的图像、视频或3D环境的任何数据。
根据各种配置,计算设备102可以被配置为获得、创建、生成、接收和/或存储输入数据110。例如,输入数据110可以被存储在计算设备102中的存储器设备、磁盘驱动器或其他数据存储元件中。在诸如图1所示的配置的一些其他配置中,输入数据110可以从数据源116获得,数据源116可被配置为作为网络104的一部分或与网络104通信地操作。数据源116的功能可以由网络驱动器、在网络104上操作或与之通信的服务器计算机、数据库或其他真实或虚拟数据存储元件和/或其他数据存储设备来提供。
如下面详细描述的,可以处理由计算设备102获得的输入数据110或其他数据,以产生与输入数据110中表示的文本相关联的易读性得分。易读性得分可用于确定是否应当对输入数据110应用一个或多个处置。如下面将更详细描述的,一个或多个程序模块(诸如程序模块108)可以对输入数据110应用一个或多个处置以创建模型114,其表示可以提高在输入数据110中表示的文本的易读性的一个或多个修改。在一个示例中,当将处置应用于输入数据110时,所得到的模型114可以包括定义文本的数据,诸如字符的ASCII值、字体、字体大小和/或描述如何排列文本的其他数据,如文本位置。所得到的模型114还可以定义对图像和/或图像数据的一个或多个修改。有关此过程的其他细节将在下面提供。
现在转到图2A,下面显示和描述了用于优化所显示的文本的美观性和/或易读性的例程200的各个方面。应当理解,本文公开的方法的操作不一定以任何特定的顺序呈现,并且以替代顺序执行某些或全部操作是可以预期且可能的。为了便于描述和说明,操作已经以演示的顺序呈现。在不脱离所附权利要求的范围的情况下,操作可以被添加、省略和/或同时执行。
还应当理解的是,所图示的方法可以在任何时候结束,而无需完整地执行。方法的一些或全部的操作和/或基本上等同的操作,可以通过包含在计算机存储介质上的如下文所定义的计算机可读指令的执行来执行。如在说明书和权利要求书中所使用的术语“计算机可读指令”及其变体在此被广泛地用来包含例程、应用、应用模块、程序模块、程序、组件、数据结构、算法等。计算机可读指令可以实现在各种系统配置中,包括单处理器或多处理器系统、微型计算机、大型计算机、个人计算机、手持式计算设备、基于微处理器的、可编程的消费电子设备、其组合以及类似物。
因此,应当理解,本文所描述的逻辑操作可以实现为(1)运行于计算系统上的计算机实现的动作或程序模块的序列,和/或(2)计算系统内的互连的机器逻辑电路或电路模块。实现方式是取决于计算系统的性能和其它要求的选择问题。因此,本文所描述的逻辑操作可以多样地称为状态、操作、结构设备、动作或模块。这些操作、结构设备、动作和模块可以利用软件、固件、专用数字逻辑及其任意组合来实现。
如下面将更详细地描述的,结合图8-10,例程200的操作在本文中被描述为至少部分地由诸如程序模块108的应用来实现。虽然下面的图示涉及程序模块108,可以理解,例程200的操作也可以以许多其他方式来实现。例如,例程200可以至少部分地由图8的内容创建应用813或任何其他应用(诸如图8的web浏览器应用810)来实现。此外,例程200的一个或多个操作可以至少部分地由图8的web浏览器应用810或与一个或多个服务器(例如图9的一个或多个应用程序服务器908)一起工作的另一应用可替换地或另外地实现。
参考图2A,例程200在操作202处开始,其中程序模块108获得输入数据110。如上所述,输入数据110可以定义用于在2D或3D显示环境中呈现文本的方法、模型或主题。例如,输入数据110可以包括图像,用于说明性目的的图像在本文中也称为“显示环境”,以及定义可以与图像一起显示或叠加在图像上的文本或对象的数据。输入数据110可以包括任何类型的数据,诸如视频数据、静像数据、3D模型、对增强现实环境建模的数据和/或其组合。如上所概述,这里描述的一些示例涉及图像数据的处理或“图像”的处理。可以理解,提供这样的示例用于说明性目的,并且本文公开的技术可以应用于涉及以任何形式的媒体或显示环境来显示文本的任何其他形式的数据。
在一些配置中,定义文本的输入数据110可以包括字体、点大小、文本位置、布局或用于描述在显示环境上显示或显示在显示环境中的文本、符号和/或标记的其它信息。虽然这里描述的一些示例是指在图像上显示的文本,但是本文所描述的技术也可以应用于与显示环境的表面或其他对象一起显示、位于显示环境的表面或其他对象之上或叠加在显示环境的表面或其他对象之上的任何对象、文本符号或其他图形对象的显示。例如,叠加在图片或视频上的标题、或出现在3D虚拟环境中的文本。此外,本文所描述的技术也可以应用于在半透明图像后部分可见的文本的显示。可以理解,用于应用一个或多个处置的技术可以应用于文本或图像,而不管分层的顺序如何。
因为本文公开的技术涉及在许多类型的显示环境中呈现的许多类型的图形对象,应当理解,所描述的实现方式是示例性的,并且不应被解释为以任何方式进行限制。此外,如可以理解的,输入数据110可以由计算设备102生成,或者可以从另一个模块或计算机接收输入数据110。例如,输入数据110可以由用于裁剪图像和排列布局的一个或多个模块产生。
接下来,在操作204,程序模块108确定与输入数据110相关联的易读性得分。一般说来,与输入数据110相关联的易读性得分指示文本的易读性,因为文本相对于图像被布置和定位。可以理解,由于输入数据可以单独地提供图像数据和定义文本的数据,所以用于确定输入数据110的易读性得分的技术可以基于生成的“输出”(也称为“变换”)其是通过图像数据以及定义文本的数据的转换或渲染而生成的。在操作204中确定的易读性得分在本文中也可以被称为“输入易读性得分”或“输入数据的易读性得分”。
如上所概述,易读性得分可以基于与输入数据110和其他上下文数据相关的任何数量的因素。在一些非限制性示例中,易读性得分可以基于文本的特征、图像的特征、处置偏好、从聚合亮度值得到的聚合对比度、来自一个或多个资源的其他上下文信息和/或其组合。如将在下面更详细描述的,可以使用各个因素或不同的因素组合来确定易读性得分。
在操作204的一个示例中,易读性得分可以至少部分地基于聚合对比度。如上所概述,聚合对比度可以基于与文本相关联的聚合亮度值和与图像相关联的聚合亮度值。聚合亮度值可以从文本和图像的一个或多个限定的样本区域测量。如将在下面更详细地描述的,可以以多种不同的方式处理聚合亮度值以确定聚合对比度。下面提供且在图4A-4F中示出关于聚合对比度和聚合亮度值的确定的附加细节和示例。
在操作204的其他示例中,易读性得分可以至少部分地基于文本的特征。例如,易读性得分可以基于文本的字体、颜色、笔画或线粗度、大小和其他显示特征。可以结合聚合对比度和/或其他因素来处理描述文本的这些特征的数据。关于易读性得分和文本特征的附加细节和示例提供如下。
在操作204的其他示例中,易读性得分可以至少部分地基于文本相对于图像内的显著区域和不变区域的位置。例如,如果文本位于显著区域(其可以包括面部(face))之上,则易读性得分可以根据期望的结果进行调整。类似地,如果文本位于图像内的不变区域(例如空格)之上,则可以根据期望的结果来调整易读性得分。如将在下面更详细描述的,文本相对于图像中的显著区域和不变区域的位置也可以影响由本文公开的技术利用的一个或多个阈值。下面提供关于显著区域和不变区域的附加细节和示例,并且在图6A-6D中示出。
可以理解,这些示例的因素是为了说明的目的提供的。可以进一步意识到,许多其他因素可能影响易读性得分。例如,可以使用定义意图用途的数据、定义设备能力的数据、可访问性要求、地理位置信息、版权信息和/或上下文信息来影响易读性得分。此外,取决于期望的结果,可以将任何因素的组合应用于操作204。此外,在确定易读性得分的过程中,每个因素的各个分数可以被归一化和加权。以下提供涉及操作204的说明性的示例。
一旦程序模块108确定与输入数据相关联的易读性得分,则例程200进行到操作206,其中程序模块108确定与输入数据110相关联的易读性得分是否满足一个或多个阈值。在一些配置中,程序模块108可以访问定义一个或多个预定阈值的数据。阈值还可以包括生成的数据,如先前生成的易读性得分。
如将理解的,阈值和/或易读性得分可能受多个因素的影响。例如,阈值或易读性得分可以至少部分地基于定义意图用途的数据、定义设备能力的数据、可访问性要求和/或描述源、资源、作者、消费者或与输入数据相关的其他数据的上下文信息。例如,可访问性要求可能会将阈值影响到更高水平,以使得文本的易读性符合一个或多个可访问性标准。在另一示例中,指示小显示屏幕的设备能力可能会将阈值影响到更高的水平。在其他示例中,存储在用户简档中或存储在另一资源中的数据可以指示内容的作者或消费者需要更高或更低的阈值。在一个说明性示例中,如果内容的消费者与定义可访问性要求的简档相关联,则该用户可以与升高的阈值相关联。在另一示例性的示例中,如果内容的作者是以图像质量为重点的营销内容,例如摄影者,则该用户可能与降低的阈值相关联。
在操作206中,将输入数据的易读性得分与一个或多个阈值进行比较。如果确定输入数据的易读性得分满足一个或多个阈值,则例程200可以进行到操作218,在该操作中例程200终止。这样的结果可以指示在输入数据110中定义的文本的易读性可能是合适的。
在操作206中,如果确定易读性得分不满足至少一个阈值,则例程200进行到操作208,其中程序模块108对输入数据110应用一个或多个处置以生成模型数据。如上所概述,处置可能涉及输入数据的修改以提高文本的易读性。例如,应用于输入数据的一个或多个处置可以包括对文本和/或图像的明度、大小、颜色或其他方面的修改。在另一示例中,处置还可以包括产生位于文本后面的不透明或半透明背景以增加文本和图像之间的对比度。在另一个示例中,处置还可以包括文本周围的阴影(drop shadow)以使焦点集中于文本和/或增加文本和图像之间的对比度。在其他示例中,处置可能涉及在文本或文本的部分周围产生框架或边框。
在操作206的一些实现方式中,处置还可以包括对显示环境内的显著区域和不变区域的识别。如本文所使用的,术语“显著区域(salient region)”可以用于指包括可以被认为是图像的“重要”部分的图像的一部分。例如,如果图像包括人,则可以确定显著区域以包括图像中的人的一个或多个面部。类似地,显著区域可以被识别为建筑照片中的建筑物、花卉或树木、草地或其他相对单调色的背景中的其他生动着色的物品等。在一些配置中,显著区域可以由计算设备基于图案、颜色差异、锐度或模糊、面部识别或其他过程来识别。在一些配置中,显著区域可以由用户定义。
如本文所使用的术语“不变区域(invariant region)”可用于指具有相对一致的颜色、配色方案、颜色差异、亮度、锐度、模糊、图案等图像的区、区域或部分,其可以被确定为包括在数据中的文本可以相对于不变区域上的图像定位的位置,实现前景文本和背景图像之间的合理且一致的对比度。在一些示例中,不变区域可以对应于图像的相对均匀的部分,例如风景照片中的蓝天、墙壁或人类对象背后的其他背景等。显著区域和不变区域可能相互排斥或不相互排斥。例如,在一些情况下,不变区域可以包含在显著区域内或者可以与显著区域重叠。
可以基于显著区域和不变区域的位置来重新定位文本。在一个说明性的示例中,如果图像包括面部,则面部周围的区域可以被识别为显著区域。如果输入数据110包括位于显著区域中的文本,则操作208可以应用将文本从显著区域移动到不变区域的处置。
在另一示例中,处置还可以包括图像的修改,其例如可以包括图像或视频的缩放或平移。如将在下面更详细描述的,处置可以包括对文本和/或显示环境的任何类型的修改。个体的处置和处置的组合的另外的示例在下面描述并示于图5A-5E中。
在操作208中,当将一个或多个处置应用于输入数据110时,程序模块108可以生成模型114。模型114可以是被配置为存储表示对输入数据110的一个或多个修改的数据的任何数据结构。操作208的输出在这里也可以称为“模型数据”或“中间模型”。在一个示例中,模型114可以包括定义文本的数据,例如字符的ASCII值、字体、字体大小以及描述如何布置文本的其他数据,例如文本位置。模型114还可以包括表示对图像的修改的数据。例如,模型114可以包括用于增亮图像或修改一种或多种颜色的参数。
在一些配置中,模型114可以不包括文本或图像的渲染。为了减少计算资源的使用,例如,模型114可以被配置为存储表示文本特征和/或对图像的一个或多个修改的特征的数据。在一些实现方式中,本文描述的技术还可以利用模型数据,以生成渲染文件或模型的变换。可以存储在任何类型的数据结构或文件中的一个或多个渲染可用于显示文本和显示环境,例如叠加在图像、视频或涉及3D模型的显示环境上的渲染文本。
接下来,程序200进行到操作210,其中程序模块108确定模型114的易读性得分。一般说来,模型114的易读性得分的确定可以涉及任何数量的因素,诸如上述关于操作204的因素。例如,如果模型114定义要叠加在图像或视频上的文本,则易读性得分可以基于定义文本的数据、图像的特征、解释的上下文信息和/或其他信息例如聚合对比度。下面提供了用于确定模型114的易读性得分的其他示例和因素。这些技术不限于本公开,因为分析文本和图像数据的任何技术可以用于确定模型114或其他数据的模型的易读性得分。
一旦程序模块108确定与模型114相关联的易读性得分,则例程200进行到操作212,程序模块108基于模型的易读性得分和一个或多个阈值对模型进行过滤。一般说来,操作212处理模型114的易读性得分,并将其与一个或多个阈值进行比较。如果模型114的易读性得分满足一个或多个阈值,则选择模型114用于附加处理。如果模型114的易读性得分不满足一个或多个阈值,则将模型114被丢弃或标记为删除。
可以理解,在操作212中使用的阈值可以类似于操作206的阈值,其中阈值可以是预定值,在本文中也称为“预定阈值”。预定阈值可以基于一个或多个配置设置。这种类型的配置提供了可以手动或编程地调整成所需易读性标准的过滤器。在一些配置中,阈值可以至少部分地基于与输入数据110相关联的易读性得分。这种类型的配置允许操作212处理具有比输入数据的易读性得分更高的易读性得分的模型。
在另一个配置中,操作212可以使用聚合阈值,其基于多个阈值(例如预定阈值)、其他模型的易读性得分和输入数据的易读性得分。在这种配置中,可以使用较低阈值或较高阈值作为聚合阈值。在其他示例中,可以以其他方式聚合预定阈值、其他模型的易读性得分和输入数据的易读性得分,例如,可以对两个或更多个值求平均值以确定聚合阈值。在其他示例中,可以以其他方式聚合两个或更多个值,其中一些技术可以包括加权平均、统计方差或用于聚合两个或更多个值的任何其它计算。
一旦程序模块108执行操作212的过滤过程,例程200进行到操作214,程序模块108确定是否需要附加模型。在一些配置中,程序模块108可以被配置为在满足一个或多个条件时循环通过操作208-214并退出到操作216。例如,例程200可以迭代操作208-214,直到例程200已经产生具有高于一个或多个阈值的易读性得分的预定数量的模型114。
在一些配置中,随着例程200迭代操作208-214,可以应用多种不同的处置或处置组合。在每次迭代中应用的处置类型可以基于固定的处置列表。例如,在第一次迭代中,程序模块108可以首先对输入数据110的图像应用全局修改。在这种处置中,可以调整图像的明度。在第二次迭代中,例如,可以重新定位输入数据的文本。在第三次迭代中,可以修改文本的字体大小和颜色。可以理解,为了说明的目的,提供了这些实施例,因为任何设定的处置列表可以与本文公开的技术一起使用。
返回到操作214,如果程序模块108确定不需要附加模型,则例程200进行到操作216,其中提供一个或多个模型作为输出。在一些配置中,操作216可以基于易读性得分对模型进行排序,并且基于排序呈现一个或多个模型。操作216可以包括一个或多个模型的通信和/或显示。例如,程序模块108可以在显示设备上渲染和显示一个或多个模型114。可以理解,在操作216中产生的输出可以涉及模型114与一个或多个软件模块(例如创作工具)或不同的计算设备的通信。还可以理解,操作214可以将模型数据保存到存储设备。一旦通过操作216处理了一个或多个模型,则例程200在操作218终止。
现在参考图2B,示出并描述了用于确定聚合对比度的例程250的一个说明性的示例。如上所述,聚合对比度可以是用于确定与输入数据或生成的模型相关联的易读性得分的因素之一。以下描述提供了用于确定聚合对比度的一个说明性例程的高级概述。该描述补充了附图3和图4A-4F所示的附加细节和其他示例。
一般说来,聚合对比度可以基于与文本相关联的聚合亮度值和与图像相关联的聚合亮度值。可以从输入数据或模型数据的渲染或变换的一个或多个定义的样本区域来测量和聚合总亮度值。由于在本文中也被称为“超像素”的定义的样本区域是渲染或变换中的定义区域,所以每个超像素可以包括多个图形像素。为了说明的目的,术语“图形像素”可以指例如光栅图像的最小可寻址元素。
例程250在操作252开始,其中程序模块108确定超像素的大小或至少一个尺寸(dimension)。一般说来,超像素的大小可以基于一个或多个因素,包括文本的一个或多个字符的笔画或线粗度、点大小和/或定义文本和/或图像的特征的数据的其他方面。通过为用于计算聚合亮度值的超像素选择合适的大小,可以在减轻对苛刻的计算资源的需求的同时实现准确的易读性得分。
在操作252的一些配置中,超像素的大小可以基于文本的特征。在一个说明性的示例中,超像素可以是正方形的形式。正方形的大小,例如正方形的一个尺寸,可以小于文本的一个或多个字符的笔画粗度的一半。在另一示例中,正方形的一个尺寸可以小于文本的一个或多个字符的高度的一半。可以理解,这样的尺寸可以以多种方式来确定。例如,输入数据或生成的模型可以包括描述字体和字体大小的数据。该信息可用于确定一个或多个字符的线粗度或字符高度,而不需要在图像中实际渲染文本。在操作252中可以使用用于确定线粗度或字符高度的一种或多种已知方法。
超像素的大小和形状可以根据期望的结果而变化。例如,超像素可以是任何形状,例如圆形、椭圆形或矩形,并且超像素的尺寸可以根据期望的输出而具有宽的范围。超像素的大小和形状可以基于输入数据110,根据输入数据110解释的其他数据或上下文信息或其他数据。可以理解,本文提供的示例是为了说明的目的而提供的,而不应被解释为限制性的。参考图3和图4A,示出并描述了超像素的图示。
简要地转到图3,示出和描述了示例的变换300。该图示示出了来自输入数据110或模型数据的文本301和图像302如何被变换或渲染到变换300中。变换300包括叠加在图像302上的文本301。在该示例中,图像302还包含对象310,其也在变换300中示出。在该示例中,假定文本301可以是第一颜色,为了说明的目的,其以黑色显示,并且图像302可以包括一系列颜色(a range of colors),其用于说明性目的由对角线图案表示。
图4A示出了变换300的代表性部分400。变换300的代表性部分400包括第一字符402,其是图3所示的文本301的字母“T”的第一次出现。图4A还描绘了第一超像素401A和第二超像素40IB。为了说明的目的,下文将图4A中描绘的第一超像素401A、第二超像素401B和其他个体正方形统称为和/或泛称为“超像素401”。
如图4A所示,在该示例中,超像素401的大小被配置为使超像素的一侧例如一个尺寸具有小于字符粗度的一半的长度。再者,如上所述,为了说明的目的,提供了用于确定超像素的大小的这种技术,并且这样的示例不应被解释为限制,因为其它尺寸和形状可以与本文公开的技术一起使用。例如,在图4D-4F所示的另一示例中,超像素可以基于一个或多个字符的高度。
返回到图2B,一旦确定了超像素的大小,则例程250进行到操作254,其中程序模块108可以分析个体超像素以确定文本301的聚合亮度值以及图像302的聚合亮度值。一般说来,针对超像素内的每个图形像素测量亮度值。从与文本301相关联的每个图形像素测量的亮度值被聚合以确定文本301的聚合亮度值。在文本颜色为实心的情况下,可以确定单个发光值(基于文本颜色),但是在文本本身被多于一种的颜色填充的情况下,亮度应该仅通过聚合构成文本的笔画的像素来计算,而不考虑背景像素。此外,不考虑文本将覆盖哪个像素,从与图像302相关联的每个图形像素测量的亮度值被聚合,以确定图像302的聚合亮度值。下面提供与操作254相关的附加细节和示例并且如图4A-4F所示。
接下来,在操作256中,程序模块108基于聚合亮度值来确定聚合对比度。操作256可以包括用于基于至少两个亮度值和/或任何其他数据(诸如RGB颜色或任何其他相关数据)来确定对比度的任何已知技术。在将上述示例应用于操作256时,用于文本的聚合亮度值和用于图像的聚合亮度值都可以应用于用于确定对比度以确定聚合对比度的已知技术。可以使用用于基于至少两个亮度值或两个明度值来确定对比度的任何技术。这样的技术是本领域已知的,因此这里没有示出具体的示例方程式。在完成操作256时,例程250进行到操作260,其中例程250返回到图2A的操作204或操作210,其中聚合对比度可用于确定一个或多个易读性得分。
如上面简要描述的,图4A-4C提供了如何使用超像素来确定聚合亮度值的说明性的示例。如上所述,图4A示出了变换300的代表性部分400。变换300的代表性部分400包括第一字符402,其是图3所示的文本301的字母“T”的第一次出现。图4A还示出了第一超像素401A和第二超像素401B。
图4B示出了第一超像素401A,图4C示出了第二超像素401B。如图所示,每个超像素包括多个图形像素,其各自由超像素401内的正方形表示。还可以理解,超像素401可以包括比这里示出的更多或更少的图形像素。该表示仅用于说明的目的,不应被解释为限制。
在将例程250应用于第一超像素401A时,针对超像素内的每个图形像素测量亮度值。具体地,从与文本301相关联的每个图形像素测量的亮度值被聚合以确定文本301的聚合亮度值。在该说明性的示例中,与文本301相关联的图形像素由具有虚线(dotted)图案的正方形来表示。在一些配置中,可以对这些图形像素的亮度值求平均,以确定文本301的聚合亮度值。在其中文本颜色整体是静态的其他配置中,不需要计算。
此外,从与图像302相关联的每个图形像素测量的亮度值被聚合以确定图像302的聚合亮度值。在该说明性的示例中,与图像302相关联的图形像素由具有对角线图案的正方形来表示。在一些配置中,可以对与图像302相关联的图形像素的亮度值求平均,以确定图像302的聚合亮度值。虽然该说明性的示例平均了各个亮度值以确定聚光亮度值,但是其他方程和技术可用于聚合亮度值。
通过使用单个超像素,可以使用图像302的聚合亮度值和文本301的聚合亮度值来确定聚合对比度。虽然可以仅使用一个超像素,但是可以理解,其他配置可以使用其他数量的超像素来确定第二聚合对比度。可以进一步意识到,可以以多种不同的方式处理第一聚合对比度和第二聚合对比度。例如,两个值中的较低者可以与阈值进行比较。在其他示例中,可以通过一个或多个计算来聚合第一聚合对比度和第二聚合对比度。
上述技术可以应用于其他超像素,例如图4C所示的第二超像素401B。类似于上述示例,可以聚合与文本301相关联的图形像素(其是由具有虚线图案的正方形表示的图形像素)的亮度值。此外,可以聚合与图像302相关联的图形像素(其是由具有对角线图案的正方形表示的图形像素)的亮度值。可以处理为第二超像素401B确定的聚合亮度值,以确定图像302的第二聚合对比度。
在一些配置中,第一超像素401A的聚合对比度可以用第二超像素401B的聚合对比度进行处理。可以使用许多技术来处理来自不同超像素的聚合对比度。在一个说明性的示例中,如上所述,可以比较不同的聚合对比度,并且可以选择一个聚合对比度用于确定易读性得分。在其他示例中,可以以其他方式组合、平均或处理多个聚合对比度。
还可以理解,一些超像素可以仅包含与图像302相关联的图形像素,并且一些超像素可以仅包含与文本301相关联的图形像素。在超像素仅包含与文本301相关联的图形像素的场景中,处理超像素的每个图形像素的亮度值以确定文本301的聚合亮度值。可以理解,该值可以例如与来自其它超像素的其它聚合亮度值一起求平均来处理。仅包含与图像302相关联的图形像素的超像素可以类似的方式来处理。
提供上述实施例是为了说明的目的,而不应被解释为限制性的。可以理解,可以忽略不重叠的超像素。可以进一步意识到,可以使用与上述重叠技术不同的启发式方法来处理和考虑超像素。
图4D-4F示出了基于文本301的字符的高度的超像素的另一示例。具体地,图4D示出了变换300的代表性部分450。变换300的代表性部分450包括第一字符402,它是图3所示的文本301的字母“T”的第一次出现。图4D还描绘了第一超像素451A、第二超像素451B、第三超像素451C和第四超像素451D(这里统称为“超像素451”)。如图所示,图4D的超像素451的大小被设定为略小于文本301的字符高度的一半。
图4E示出了第一超像素451A,图4F示出了第二超像素451B。如图所示,每个超像素包括多个图形像素,其各自由超像素451内的正方形表示。可以理解,通过使用本文所述的技术,文本301的聚合亮度值和图像302的聚合亮度值可以通过使用这些超像素451来确定。
如上所述,可以对输入数据110或其他数据应用许多处置以优化所显示的文本的易读性。如上所述,可以应用于输入数据110的处置可以包括包含修改文本和/或显示环境的明度、大小、颜色或其他方面的一个或多个操作。处置还可以包括产生位于文本后面的背景以增加文本和显示环境(即图像302)之间的对比度。处置还可以包括识别显示环境内的显著区域和不变区域,例如图像内的显著区域和不变区域。可以基于显著区域和不变区域的位置重新定位文本。处置还可以包括对例如可以包括图像或视频的缩放或平移的显示环境的修改。如将在下面更详细描述的,处置可以包括对文本和/或显示环境的任何类型的修改。为了说明一些示例,图5A-5F示出了如何利用一个或多个处置来修改图3所示的输入数据的示例渲染。
图5A示出了从由应用于输入数据110的全局处置产生的模型所生成的样本变换501。为了说明的目的,全局处置涉及应用于整个图像302的修改。在该说明性的示例中,如图5A所示的修改的暗影(shade)所示,调整整个图像的明度以增加图像302中的文本301之间的对比度。在这样的示例中,如果文本以浅色渲染,则可以降低明度。可替代地,如果文本以深色渲染,则可以增加明度。尽管该示例示出了可以修改图像302的明度的处置,但是全局处置可以包括对图像302的颜色的修改或者可以增加图像302和文本301之间的对比度的任何其它参数的修改。
图5B示出了从由在文本301后面引入背景520的处置产生的模型所生成的另一个样本变换502。在这种类型的处置中,背景可以是不透明的,或者背景可以至少部分地是半透明的。可以理解,通过在文本301和背景520之间引入固定的对比度,引入背景可以提高文本的易读性。
图5C-5F分别示出了其中一个或多个处置对输入数据110进行修改的模型所生成的其他样本变换503-506。具体地,在图5C的示例中,如变换503所示,文本301位于图像302的左上角,与输入数据110的变换300所示的左下角相对。另外,如图5C所示,在该示例中所应用的处置涉及修改字体大小。在这样的示例中,文本301的字体大小增加,例如,字体大小可以从10加倍到20。图5D的示例涉及处置的组合。具体地说,在本例中,如变换504所示,文本301的位置现在被放置在左上角,字体大小相对于在输入数据110中定义的字体大小而增加,字体已经被改变了,例如,从Arial变成Aharoni。
图5E的示例还涉及处置的组合。具体地说,在本例中,如变换505所示,文本301的位置被修改,文本301的字体大小减小,文本301的排列被修改。在该说明性的示例中,引入换行符以改变文本301的布局。可以理解,为了说明的目的,提供了这些示例。可以进一步意识到,可以利用对文本和/或图像(例如图像)的许多其它类型的处置或者处置的组合。
如上所概括的,处置可以涉及识别图像的显著区域和不变区域。在一些配置中,处置可以基于显著区域和不变区域的位置来修改文本301和/或修改图像302。参考图6A-6D,下面示出并描述涉及显著区域和不变区域的处置的说明性的例子。
图6A的图示示出输入数据110的变换300。通过使用已知技术,可以确定显著区域601和多于一个的不变区域602。如上所述,可以通过使用已知技术来检测显著区域和不变区域。例如,这样的技术可以涉及用于检测颜色变化或任何其它参数或形状的变化的已知对象识别算法和/或其他算法。在又一示例中,可以使用颜色、明度和/或其他方面的变化来检测显著区域或不变区域。可以使用任何其他识别算法来检测面部、文本或任何其它感兴趣对象。可以理解,确定显著区域601和不变区域602的处理可以涉及对图像302的分析,而不包括在输入数据110中定义的文本301的分析。因此,图3中描绘的文本301在这个分析中可能不会被考虑。然而,如果图像302包括图像数据中的文本,则可以将文本周围的区域识别为显著区域。
如图6A所示,显著区域601被识别为在对象310周围。此外,不变区域602与具有一致纹理和/或颜色的图像302的区域相关联。可以理解,不变区域602也可以被识别为在显著区域601内。例如,对象310中的一个可以具有其中颜色或明度可以变化不超过预定阈值的区域。因此,如该示例所示,可以在对象310之一的正文(body)内识别不变区域602。
显著区域601和不变区域602可以在应用一个或多个处置之前确定。可以根据所识别的区域来修改文本301和/或图像302。例如,图6B示出了从由对输入数据110的文本301引入修改的处置产生的模型所生成的变换650。在该示例中,可以修改文本301并且文本301可以被定位在不变区域602内。如下面将更详细地描述的那样,当确定这种模型的易读性得分时,文本301的增加的大小可以增加易读性得分。此外,鉴于文本301位于不变区域602中,易读性得分可能增加。
图6C示出了从由对输入数据110的文本301引入修改的处置产生的模型所生成的变换651。如图所示,该示例示出文本301位于显著区域601内。还示出了文本301也位于对象310上。提供该示例是为了说明,尽管可以通过某些因素(诸如增加的字体大小或增加的对比度)来改善文本310的易读性,但是与对象310相干扰的处置可能不是期望的。如将在下面更详细地描述的,当这种模型的易读性得分被确定时,即使聚合对比度和其它因素有所改善,可能干扰一个或多个对象的文本或位于显著区域601中的文本也可能降低相关的易读性得分。
图6D示出了从由对文本301和图像302引入修改的处置产生的模型所生成的另一变换652。如图所示,该示例示出了文本301位于显著区域601中,靠近变换652的顶部。此外,另一处置应用于原始图像302。在该说明性的示例中,平移和缩放操作被应用于图像302以创建图像302的修改的透视图。如将在以下更详细地说明,当这种模型的易读性得分被确定时,文本301相对于显著区域601和/或对象310的位置可以增加易读性得分。
本文描述的技术还可以处理可以从单个数据源(例如输入数据110或模型114)产生的多个易读性得分。例如,如果在图像上叠加多行文本,则可以对于文本的不同部分确定易读性得分。在一个具体示例中,可以对于每行文本确定易读性得分。
当产生多个易读性得分时,易读性得分可以以多种不同的方式使用。例如,在一些配置中,当产生一组易读性得分时,可以在例程200的操作206或操作212中使用该组中的最低易读性得分,其中可将最低易读性得分与阈值进行比较。在其他配置中,该组易读性得分可以被聚合成聚合易读性得分,并且聚合易读性得分可以用于与一个或多个阈值进行比较。可以理解,可以使用用于聚合多个易读性得分的任何技术,例如用于确定平均值的算法。
图7的示例示出了具有两个不同的文本行、标题701和副标题702的变换700。如图所示,变换700还包含两种颜色,布置在标题701后面的第一颜色和布置在副标题702后面的第二颜色。可以理解,如果每行分别被分析,则本文描述的技术可以产生两个不同的易读性得分。在这样的示例中,两个分数中的较低者可以用于例程200的处理,其可以将两个分数中的较低者与阈值进行比较。然后可以通过一个或多个处置来处理定义图像700以及文本701和702的输入数据或模型数据。例如,如上所述,一些处置可以修改文本701和702,修改图像700,或修改文本701和702以及图像700。当应用每个处置时,可以单独分析文本的每一行以确定易读性得分。
现在返回到图3和图5A-6D,提供了用于确定易读性得分的几个示例性技术。如上所述,可以为生成的每个模型114的输入数据110确定易读性得分。易读性得分可以基于单个因素或因素的任何组合,取决于期望结果。例如,易读性得分可以基于聚合对比度。在一些配置中,易读性得分可以基于文本的特征,例如字体、字体大小和/或其他因素。在其他配置中,易读性得分可以基于显示环境的特征,例如与文本一起显示的图像或视频。例如,如下面更详细地描述的,易读性得分可以至少部分地基于文本相对于显著区域或不变区域的位置。
为了说明的目的,下面提供几个示例来显示如何可以使用某些因素来确定易读性得分。可以理解,易读性得分可以基于单因素或因素的组合。因此,应当理解,这些示例不应被解释为限制性的。
参考图3的示例,以下描述提供了如何针对输入数据110的变换300确定易读性得分的示例。在第一示例中,假定易读性得分基于聚合对比度、字体和字体大小。用于该第一示例的输入数据110可以包括将文本301定义为字体大小为10并具有黄色的“Arial”字体的参数。用于该第一示例的输入数据110还可以包括将图像302定义为具有白色背景和多个对象310的图像数据。在该示例中,关于给定的颜色,为了说明的目的,也可以假定文本301与图像302之间的聚合对比度是二。可以理解,在其他的场景中,该值可以由上文所述且在图2B中示出的技术来确定。
给定参数和确定的聚合对比度可以以多种方式聚合以确定易读性得分。参数和聚合对比度也可以归一化和加权。例如,该样本可以产生通过以下方程式计算的易读性得分:易读性得分=聚合对比度×第一归一化因子+字体得分×第二归一化因子+字体大小×是第三归一化因子。
可以根据字体的特征给予每个字体特定的分数。例如,Arial可以与字体得分10相关联,并且Aharoni可以与字体得分15相关联。在该示例中,可以理解的是,Aharoni可以与更高的字体分数相关联,因为它的特征在于具有较粗的线。同样,为了说明的目的,提供了该示例,并且不被解释为限制,因为任何分数范围可以与特定字体或多个字体相关联。此外,归一化因子可以是取决于期望结果的任何期望值。
可以理解,如果期望在对比度上相对于字体类型放置较高的优先级,则对比度的归一化因子可以是比字体的归一化因子更高的值。在这个例子中,为了说明的目的,聚合对比度的第一归一化因子、字体的第二归一化因子和字体大小的第三归一化因子分别为:1、0.2和0.2。因此,在应用给定参数时,图像302的样本易读性得分可以是2×1+10×0.2×10×0.2=6。可以理解,本文提供的示例不应被解释为限制,因为归一化因子和参数可以是取决于期望结果的任何值。
再次简要地参考图5A的示例,提供样本易读性得分的附加细节用于样本变换501。如上所述,样本变换501是应用于输入数据的全局处置的产物。为了进一步说明这个示例,假设全局处置将原始图像302的白色背景修改为灰色。可以理解,假设文本颜色为黄色,文本和图像之间的聚合对比度可以由于该修改而增加。在应用上述方程式时,聚合对比度的增加也增加了易读性得分。可以理解,在图5B的示例中应用的处置也会产生易读性得分的增加。假设位于文本301后面的阴影或背景可以设计成增加聚合对比度,这样的处置将相应地增加易读性得分。
再次简要地参考图5C的示例,为样本变换503提供了样本易读性得分的附加细节。如上所述,样本变换503是修改输入的文本301的处置的产物。在该示例中,在该示例中应用的处置涉及字体大小的修改。具体地说,在本例的处置中,文本301的字体大小从10增加到20。在应用上述方程式时,字体大小的增加也提高了易读性得分。给定该示例计算的方程式,易读性得分不受文本的新位置的影响。
再次简要地参考图5D的示例,为样本变换504提供了样本易读性得分的附加细节。如上所述,样本变换504是修改输入数据110的文本301的处置组合的产物。如上所述,在该示例中应用的处置涉及字体大小和字体的修改。具体来说,在本示例的处置中,文字301的字体大小从10增加到20,字体从Arial变为Aharoni。假定Aharoni的字体得分为15,Arial具有字体分数10,并且在字体大小的增加的情况下,在应用上述方程式时,字体大小和字体的增大提高了易读性得分。此外,给定对字体的额外处置,可以理解,样本变换504的易读性得分大于图5C的样本变换503。
再次简要地参考图5E的示例,为样本变换505提供了样本易读性得分的附加细节。如上所述,样本变换505是修改输入数据110的文本301的处置组合的产物。如上所述,在该示例中应用的处置涉及字体大小的修改。具体地说,在本示例的处置中,文字301的字体大小从10减小到2。此外,文本301位于对象310之一上。假设字体大小减小,在应用上述方程式时,字体大小的减小也降低了易读性得分。此外,在该示例中,假设文本301的新位置改变聚合对比度,因为文本位于图像的新部分之上。可以理解,给定样本方程式,聚合对比度的任何调整都可能影响易读性得分。
在一些配置中,程序模块108可以被配置为允许其他因素使用不同的技术影响易读性得分。在一个示例中,处置偏好可以影响与生成的模型相关联的易读性得分。处置偏好(其可以是用户输入或预定配置设置)可以被配置为根据一个或多个条件的检测来提高或降低易读性得分。在一些配置中,当应用某些类型的处置时,处置偏好可能影响易读性得分。例如,处置偏好可以被配置为如果处置在生成模型时使用阴影则降低易读性得分。这使得用户能够在例如用户不希望使用阴影的情况下传送偏好。在另一示例中,如果应用涉及明度或颜色调整的全局处置,则处置偏好可以被配置为降低易读性得分。这种配置可能是期望的,例如,当模型的意图用途对图像优先考虑时。
在另一个示例中,处置偏好可以被配置为如果处置涉及在特定区域(例如显著区域)上重新定位文本,则降低易读性得分。该示例的图示在图6C中。如图所示,处置将文本301定位在显著区域601中。同样如图所示,文本301位于对象310之上。提供该示例以说明,尽管可以改进文本310的易读性的方面,例如增加的聚合对比度,可能不期望干扰某些方面例如对象310的处置。可以引入处置偏好的使用,因此易读性得分将反映该不期望的结果。
在另一示例中,易读性的相对重要性可能影响易读性得分或阈值。如果希望对文本的易读性寄予优先级,则可以引入这种类型的数据。例如,如果文本可以用于紧密字幕(close captioning),则阈值可能会增加。相反,如果文本可能由于美观原因而被使用,阈值可能会降低。可以理解,这个因素可能会影响易读性得分,取决于文本的优先级。
如图6B所示的示例所示,处置偏好可以被配置为如果处置涉及将文本重新定位在在特定区域(例如不变区域)上,则增加易读性得分。该示例的图示在图6C中。如图所示,应用于输入数据的处置将文本301定位在不变区域602中。该示例被提供以说明可以使用这种处置偏好的使用,因此易读性得分将反映期望的结果,并且反映那些期望的结果的模型将排名较高。
说明处置偏好的方面的示例是为说明的目的而提供的,而不应被解释为限制性的。由于处置偏好可用于根据任何场景来调整易读性得分。例如,如图6C所示,如果图像已被裁剪则可以使用处置偏好来影响易读性得分。在又一示例中,处置偏好可以被配置为如果使用背景则调整易读性得分。处置偏好可以被配置为基于任何场景或条件来调整易读性得分。
如上所述,模型的易读性得分,即示例的变换501-505和变换650-652可以与一个或多个阈值进行比较。在一些配置中,将生成的模型的易读性得分与输入数据110的易读性得分进行比较。可以理解,与生成的模型相关联的易读性得分可以与与其他模型相关联的易读性得分进行比较。可以使用这种比较来确定特定模型是否可以用作输出。
如上所述,本文描述的技术获得并处理关于生成的模型的反馈。例如,接口可以被配置为从用户或计算机获得反馈。这里的技术可以使用反馈来选择应用于输入数据或模型数据的处置。例如,当向用户呈现一个或多个模型时,用户可以提供各种类型的反馈。在一种反馈形式中,用户可以指示特定处置是期望的还是不期望的。在另一形式的反馈中,用户可以指示是否可能需要对特定模型进行调整。例如,如果模型涉及对诸如引入新字体的文本的修改,则程序模块108可以被配置为解释反馈,其可以指示用户想要看到涉及对其他处置的相同处置的更多处置。
反馈也可以用于机器学习目的。例如,本文描述的技术可以存储和处理反馈以允许本文公开的过程从历史反馈数据中受益。在一些配置中,存储的反馈信息可以用于影响本文所描述的技术来选择某些类型的处置或特定的处置组合。例如,如果数据存储(datastore)包含许多拒绝涉及从Courier到Arial的字体转换的处置的反馈条目,则本文公开的技术可以利用这样的数据来最小化或消除这种处置的使用。相反,如果历史反馈数据表明某些处置接收到积极反馈,则可能影响本文公开的技术以更多地使用这些处置。尽管为了说明的目的提供了这些示例,但是这些示例不应被解释为限制性的。
图8示出了用于诸如图1所示的计算设备102的计算机的示例性计算机体系结构800的附加细节,该计算机能够执行上述用于优化所显示的文本的美观性和/或可读性的程序组件。因此,图8所示的计算机体系结构800示出了用于服务器计算机、移动电话、PDA、智能手机、台式计算机、上网本计算机、平板电脑和/或膝上型计算机的体系结构。计算机体系结构800可以用于执行本文呈现的软件组件的任何方面。
图8所示的计算机体系结构800包括中央处理器802(“CPU”)、包括随机存取存储器806(“RAM”)和只读存储器(“ROM”)808的系统存储器804,以及将存储器804与CPU 802耦合的系统总线810。包含了例如在启动期间帮助在计算机体系结构800内的元件之间传输信息的基本例程的基本输入/输出系统存储在ROM 808中。计算机体系结构800还包括大容量存储设备812,其用于存储操作系统807以及包括但不限于内容创建应用813、程序模块108和web浏览器应用810的一个或多个应用程序。图示的大容量存储设备812还可以存储模型114,模型114可以包括利于本文公开的技术的任何数据结构。
大容量存储设备812通过与总线810连接的大容量存储控制器(未示出)来与CPU802连接。大容量存储设备812及其相关联的计算机可读介质提供了用于计算机体系结构800的非易失性存储。虽然在本文所包含的计算机可读介质的描述是指大容量存储设备,如固态驱动器、硬盘或CD-ROM驱动器,本领域技术人员应当理解计算机可读介质可以是能够由计算机体系结构800访问的任何可用的计算机存储介质或通信介质。
通信介质可包括计算机可读指令、数据结构、程序模块、或调制数据信号中的其它数据如载波或其他传输机制来具体实施,并且包括任何输送介质。术语“调制数据信号”是指其一个或多个特性以将信息编码到信号中的方式进行设定或改变的信号。通过示例而不是限制的方式,通信介质可以包括诸如有线网或直接连线连接的有线介质以及诸如声波、RF、红外和其他无线介质的无线介质。上述任意的组合也应当包含在计算机可读介质的范围内。
通过举例而不是限制的方式,计算机存储介质可以包括以用于诸如计算机可读指令、数据结构、程序模块或其它数据的信息的存储的任何方法或技术实现的易失性和非易失性的、可移除和非可移除的介质。例如,计算机介质包括但不限于RAM、ROM、EPROM、EEPROM、闪速存储器或其它固态存储器技术、CD-ROM、数字多功能盘(“DVD”)、HD-DVD、BLU-RAY或其它光学存储、磁盒、磁带、磁盘存储或其它磁存储设备、或者能够用于存储所需的信息且能够由计算机体系结构800访问的任何其它介质。为了权利要求的目的,“计算机存储介质”或“计算机可读存储介质”及其变化形式本身不包含波、信号和/或其它暂态的和/或无形的通信介质。
根据各个配置,计算机体系结构800可以通过网络1056和/或另一网络(未示出)到远程计算机的逻辑连接而操作于网络环境中。计算机体系结构800可以通过与总线810连接的网络接口单元814而连接到网络1056。应当理解,网络接口单元814可以用来连接到其它类型的网络以及远程计算机系统。计算机体系结构800还可以包括用于接收和处理来自包括键盘、鼠标或电子指示笔(图8中未示出)的多个其它设备的输入的输入/输出控制器816。类似地,输入/输出控制器816可以提供输出给显示屏、打印机或其它类型的输出设备(图8中也未示出)。
应当理解,本文所描述的软件组件在加载到CPU 802中且执行时可以将CPU 802和整个计算机体系结构800从通用计算系统变换成经定制而促进本文呈现的功能的专用计算系统。CPU 802可以由任意数量的晶体管或其它离散电路元件构成,这些晶体管和离散电路元件可以单独地或者统一地呈现任意数量的状态。更具体地,CPU 802可以响应于包含在本文公开的软件模块内的可执行指令而作为有限状态机来操作。这些计算机可执行指令可以通过规定CPU 802如何在状态之间转变而变换CPU 802,从而变换构成CPU 802的晶体管或其它分立硬件元件。
对本文呈现的软件模块编码可以变换本文呈现的计算机可读介质的物理结构。在本说明书的不同的实现方式中,物理结构的具体的变换可以取决于各种因素。这些因素的示例可以包括但不限于用来实现计算机可读介质的技术,计算机可读介质是表征为主存储还是辅存储,等等。例如,如果计算机可读介质实现为基于半导体的存储器,则本文公开的软件可以通过变换半导体存储器的物理状态而编码到计算机可读介质上。例如,软件可以变换构成半导体存储器的晶体管、电容器、或其它离散电路元件的状态。软件还可以变换这些组件的物理状态从而在其中存储数据。
作为另一示例,本文所公开的计算机可读介质可以利用磁或光技术来实现。在这些实现方式中,当软件编码到其中时,本文所呈现的软件可以变换磁或光介质的物理状态。这些变换可以包括改变在既定磁介质内的特定位置的磁特性。这些变换还可以包括改变在给定的光介质内的特定位置的物理特征或特性,以改变那些位置的光学特性。物理介质的其它变换是可能的,不偏离本说明书的范围和主旨,提供了上述示例仅为了利于该论述。
根据上述,应当理解,许多类型的物理变换可以发生在计算机体系结构800内从而存储和执行本文呈现的软件组件。还应当理解,计算机体系结构800可以包括其它类型的计算设备,包括手持式计算机、嵌入式计算机系统、个人数字助理以及本领域技术人员所知的其它类型的计算设备。还可想到,计算机体系结构800可以不包括图8所示的全部组件,可以包括图8中未明确示出的其它组件,或者可以使用完全不同于图8所示的体系结构。
图9描绘了能够执行本文所述的用于优化所显示的文本的美观性和/或易读性以及其它方面的软件组件的示例性的分布式计算环境900。因此,图9所示的分布式计算环境900能够用于执行本文呈现的软件组件的任意方面。因此,分布式计算环境900可用于执行内容创建应用813、程序模块108和/或本文所述的其它软件组件的方面。
根据各个实现方式,分布式计算环境900包括操作于网络904上、与网络904通信或者作为网络904的部分而操作的计算环境902。网络904可以是或者可以包括网络1056,如上文参考图8所说明的。网络904还可以包括各种接入网络。一个或多个客户端设备906A-906N(下文统一地和/或一般地称为“客户端906”)能够经由网络904和/或其它连接(图9中未示出)与计算环境902通信。在一个图示的配置中,客户端906包括计算设备906A,诸如膝上型计算机、台式计算机或其它计算设备;片式或平板式计算设备(“平板计算设备”)906B;移动计算设备906C,如移动电话、智能手机或其它移动计算设备;服务器计算机906D;和/或其它设备906N。应当理解的是,任意数量的客户端906能够与计算环境902通信。本文参考图8和图10描述了和图示出客户端906的两个示例的计算体系结构。应当理解的是,图示的客户端906和本文所图示和描述的计算体系结构是示例性的,而不应解释为以任何方式限制。
在图示的配置中,计算环境902包括应用服务器908、数据存储装置910以及一个或多个网络接口912。根据各个实现方式,应用服务器908的功能可以由作为网络904的部分执行或者与网络904通信的一个或多个服务器计算机来提供。应用服务器908能够托管各种服务、虚拟机、入口和/或其它资源。在图示的配置中,应用服务器908托管了用于托管应用或其它功能的一个或多个虚拟机914。根据各个实现方式,虚拟机914托管了用于优化所显示的文本的美观性和/或易读性的一个或多个应用和/或软件模块。应当理解的是,该配置是示例性的,而不应解释为以任何方式限制。应用服务器908还托管或提供对一个或多个入口、链接页面、Web站点和/或其它信息(“门户网站”)916的接入。
根据各个实现方式,应用服务器908还包括一个或多个邮箱服务918和一个或多个消息传递服务920。邮箱服务918可以包括电子邮件(“email”)服务。邮箱服务918还可以包括各种个人信息管理(“PIM”)服务,包括但不限于日历服务、通讯录管理服务、协作服务和/或其它服务。消息传递服务920可以包括但不限于即时消息传递服务、聊天服务、论坛服务和/或其它通信服务。
应用服务器908还可以包括一个或多个社交联网服务922。社交联网服务922可以包括各种社交联网服务,包含但不限于用于共享或张贴状态更新、即时消息、链接、照片、视频和/或其它信息的服务;用于评论或显示对文章、产品、博客或其它资源的兴趣的服务;和/或其它服务。在一些配置中,社交联网服务922由如下提供或包含如下:FACEBOOK社交联网服务,LINKEDIN职场联网服务,MYSPACE社交联网服务,FOURSQUARE地理联网服务,YAMMER办公同事联网服务,等等。在其它配置中,社交联网服务922由其它可能或可能没有明确地表明为社交联网提供商的服务、站点和/或提供商来提供。例如,一些网站允许用户在各种活动和/或背景下经由电子邮件、聊天服务和/或其它手段彼此交互,例如,阅读出版物,评论商品或服务,发布,协作,游戏等。这些服务的示例包括但不限于来自华盛顿埃德蒙顿的微软公司的WINDOWS LIVE服务和XBOX LIVE服务。其它服务是可能的且可想到。
社交联网服务922还可以包括评论、发博客和/或微博服务。这些服务的示例包括但不限于,YELP评论服务、KUDZU审阅服务、YAMMER企业微博服务、TWITTER消息传递服务、GOOGLE BUZZ服务和/或其它服务。应当理解,上述服务列表不是穷尽的,而且为了简要起见在此没有提到过多的附加的和/或可替代的社交联网服务922。因此,上述配置是示例性的,而不应解释为以任何方式进行限制。根据各个实现方式,社交联网服务922可以托管用于提供本文所述的用于优化所显示的文本的美观性和/或易读性的功能的一个或多个应用和/或软件模块。例如,任意一个应用服务器908可以传送或利于本文所述的功能和特征。例如,运行于电话或任何其它客户端906上的社交联网应用、邮箱客户端、消息传递客户端或浏览器可以与联网服务922通信且促进上文结合图3所描述的功能(即使是部分地)。
如图9所示,应用服务器908还能够托管其它服务、应用、入口和/或其它资源(“其它资源”)924。其它资源924可以包括但不限于图像和文本处理功能。因此,应当理解计算环境902能够提供本文所提供的公开的概念和技术与各种邮箱、消息传递、社交联网和/或其它服务或资源的整合。
如上所述,计算环境902可以包括数据存储装置910。根据各个实现方式,数据存储装置910的功能由操作于网络904上或者与网络904通信的一个或多个数据库来提供。数据存储装置910的功能还能够由被配置成托管用于计算环境902的数据的一个或多个服务器计算机来提供。数据存储装置910可以包括、托管或提供一个或多个真实的或虚拟的数据存储926A-926N(下文统一地和/或一般地称为“数据存储926”)。数据存储926被配置成托管由应用服务器908所使用或创建的数据和/或其它数据。虽然图9中未示出,数据存储926还能够托管或存储2D和3D环境、数据结构、推荐引擎执行的算法、和/或内容创建程序或另一模块(例如,程序模块108)所使用的其它数据。数据存储926的方面可以与例如ONEDRIVE、DROPBOX或GOOGLEDRIVE的服务相关联。
计算环境902能够与网络接口912通信或者由网络接口912访问。网络接口912可以包括用于支持包括但不限于客户端906和应用服务器908在内的两个或更多个计算设备之间的通信的各种类型的网络硬件和软件。应当理解,网络接口912还可以用来连接到其它类型的网络和/或计算机系统。
应当理解的是,本文所描述的分布式计算环境900能够为本文所描述的软件元件的任意方面提供能够被配置成执行本文公开的软件组件的任意方面的任意数量的虚拟计算资源和/或其它分布式计算功能。根据本文公开的技术的各个实现方式,分布式计算环境900提供了在本文描述为服务的软件功能给客户端906。应当理解的是,客户端906可以包括真实的或虚拟的机器,包括但不限于服务器计算机、web服务器、个人计算机、移动计算设备、智能手机和/或其它设备。因此,本文所公开的概念和技术的各种配置使得被配置成访问分布式计算环境900的任何设备能够使用本文所描述的用于优化所显示的文本的美观性和/或易读性以及其它方面的功能。在一个具体的示例中,如上文所概述的,本文所述的技术可以至少部分地通过与图9的应用服务器908协作的图8的web浏览器应用810来实现。
现在转到图10,能够执行本文所描述的用于优化所显示的文本的美观性和/或易读性的各种软件组件的计算设备的示例性的计算设备体系结构1000。计算设备体系结构1000能应用于部分地由于形状因数、无线连接能力和/或电池供电操作而促进移动计算的计算设备。在一些配置中,计算设备包括但不限于移动电话、平板式设备、片式设备、便携式视频游戏设备等。而且,计算设备体系结构1000能应用于图9所示的任意客户端906。此外,计算设备体系结构1000的方面可以能应用于传统的台式计算机、便携式计算机(例如,膝上型设备、笔记本设备、超级便携式设备和上网本)、服务器计算机和其它计算机系统,如本文参考图8所描述的。例如,下文所公开的单触摸和多触摸方面可应用使用触摸屏的台式计算机或某种其它触摸使能设备,诸如触摸使能跟踪垫或触摸使能鼠标。
图10所示的计算设备体系结构1000包括处理器1002、存储器组件1004、网络连接组件1006、传感器组件1008、输入/输出组件1010和电力组件1012。在图示的配置中,处理器1002与存储器组件1004、网络连接组件1006、传感器组件1008、输入/输出(“I/O”)组件1010和电力组件1012通信。虽然没有示出图10所示的各个组件之间的连接,该组件能够交互而实施设备功能。在一些配置中,组件被配置成经由一个或多个总线(未示出)通信。
处理器1002包括中央处理器(“CPU”),其被配置成处理数据,执行一个或多个应用程序的计算机可执行指令,并且与计算设备体系结构1000的其它组件通信从而实施本文所描述的各种功能。处理器1002可以用来执行本文所呈现的软件组件的方面,尤其是那些至少部分地使用触摸使能输入的方面。
在一些配置中,处理器1002包括图形处理单元(“GPU”),其被配置成加速CPU所执行的操作,包括但不限于,通过执行通用科学和/或工程计算应用所实施的操作,以及诸如高分辨率视频(例如,720P,1080P和更大分辨率)、视频游戏、三维(“3D”)建模应用等图形密集计算应用。在一些配置中,处理器1002被配置成与分立的GPU(未示出)通信。在任何情况下,CPU和GPU可以依照协同处理的CPU/GPU计算模型来配置,其中应用的顺序的部分在CPU上执行,计算密集部分由GPU来加速。
在一些配置中,连同下文所描述的其它一个或多个组件一起,处理器1002是片上系统(“SoC”)或者包含在SoC中。例如,SoC可以包括处理器1002、GPU、一个或多个网络连接组件1006以及一个或多个传感器组件1008。在一些配置中,处理器1002部分地利用封装上封装“PoP”集成电路封装技术来制作。而且,处理器1002可以是单核或多核处理器。
处理器1002可以依照自英国剑桥的ARM HOLDINGS许可使用的ARM体系结构来产生。可替代地,处理器1002可依照x86体系结构来产生,例如可从加利福尼亚山景城以及其它的因特尔公司获得。在一些配置中,处理器1002是可从加利福尼亚的圣地牙哥的QUALCOMM得到的SNAPDRAGON SoC、可从加利福尼亚的圣塔克拉拉的NVIDIA得到的TEGRASoC、可从韩国首尔的三星公司得到的HUMMINGBIRD SoC、可从德克萨斯州的达拉斯的德州仪器得到的Open Multimedia Application Platform("OMAP")SoC、上述SoC中的任一个的定制版本或专有SoC。
存储器组件1004包括随机存取存储器(“RAM”)1014、只读存储器(“ROM”)1016、集成存储存储器(“集成存储”)1018和可移除存储存储器(“可移除存储”)1020。在一些配置中,RAM 1014或其部分、ROM 1018或其部分和/或RAM 1014和ROM 1018的某种组合集成到处理器1002中。在一些配置中,ROM 1018被配置成存储固件、操作系统或其部分(例如,操作系统核)和/或从集成存储1018或可移除存储1020装载操作系统核的引导加载程序。
集成存储1018可以包括固态存储器、硬盘或固态存储器和硬盘的组合。集成存储1018可以钎焊到或以其它方式连接到逻辑板上,处理器1002以及本文所描述的其它组件也可以连接到该逻辑板上。因此,集成存储1018集成到计算设备中。集成存储1018被配置成存储本文所描述的操作系统或其部分、应用程序、数据和其它软件组件。
可移除存储1020可以包括固态存储器、硬盘或固态存储器和硬盘的组合。在一些配置中,可移除存储1020被提供以取代集成存储1018。在其它配置中,可移除存储1020被提供作为附加的可选存储。在一些配置中,可移除存储1020与集成存储1018逻辑地组合而使得总可用存储可用作为总组合存储容量。在一些配置中,向用户显示集成存储1018和可移除存储1020的总组合容量,而不是集成存储1018和可移除存储1020的单独的存储容量。
可移除存储1020被配置成插入可移除存储存储器槽(未示出)或其它机构,可移除存储1020插入可移除存储存储器槽或其它机构且紧固到其上以利于可移除存储1020能够借以与诸如处理器1020的计算设备的其它组件通信的连接。可移除存储1020可以嵌入各种存储器卡形式中,包括但不限于,PC卡、CompactFlash卡、记忆棒、安全数字(“SD”)、迷你SD(miniSD)、微型SD(microSD)、通用集成电路板(“UICC”)(例如,订户身份模块(“SIM”)或通用SIM(“USIM”))、专有形式,等等。
可以理解的是,一个或多个存储器组件1004能够存储操作系统。根据各个配置,操作系统包括但不限于来自塞班公司的SYMBIAN OS、来自华盛顿雷德蒙顿的微软公司的WINDOWS MOBILE OS、来自微软公司的WINDOWS PHONE OS、来自微软公司的WINDOWS、来自加利福尼亚的帕罗奥图的惠普公司的PALM WEBOS、来自加拿大多伦多的Research in MotionLimited of Waterloo的BLACKBERRY OS、来自加利福尼亚的库比蒂诺的苹果公司的IOS以及来自加利福尼亚的山景城的谷歌公司的ANDROID OS。可想到其它操作系统。
网络连接组件1006包括无线广域网组件(“WWAN组件”)1022、无线局域网组件(“WLAN组件”)1024以及无线个域网组件(“WPAN组件”)1026。网络连接组件1006利于与网络1056或另一网络之间的通信,网络可以是WWAN、WLAN或WPAN。虽然仅示出了网络1056,但是网络连接组件1006可促进与多个网络的同时通信,包括图9的网络904。例如,网络连接组件1006可以促进经由WWAN、WLAN或WPAN中的一个或多个与多个网络同时通信。
网络1056可以是WWAN,诸如使用一个或多个移动远程通信技术来经由WWAN组件1022提供语音和/或数据服务给使用计算设备体系结构1000的计算设备的移动远程通信网络。移动远程通信技术可以包括但不限于全球移动通信系统(“GSM”)、码分多址(“CDMA”)ONE、CDMA2000、通用移动远程通信系统(“UMTS”)、长期演进(“LTE”)和世界微波接入互操作(“WiMAX”)。而且,网络1056可以使用各种信道接入方法(其可以或者可以不由上述标准来使用),包括但不限于,时分多址(“TDMA”)、频分多址(“FDMA”)、CDMA、宽带CDMA(“W-CDMA”)、正交频分多路复用(“OFDM”)、空间分多址(“SDMA”)和类似方法。数据通信可以利用如下来提供:通用分组无线电服务(“GPRS”)、全局演进增强数据率(“EDGE”)、高速分组接入(“HSPA”)协议系列(包括高速下行链路分组接入(“HSDPA”)、增强上行链路(“EUL”)或另外称为高速上行链路分组接入(“HSUPA”)、演进的HSPA(“HSPA+”))、LTE、以及其它各种当前和未来的无线数据访问标准。网络104可被配置成利用上述技术的任意组合来提供语音和/或数据通信。网络1056可被配置成或适于依照未来代的技术来提供语音和/或数据通信。
在一些配置中,WWAN组件1022被配置成提供到网络1056的双重多模式连接。例如,WWAN组件1022可以被配置成提供到网络1056的连接,其中网络1056经由GSM和UMTS技术来提供服务,或者经由技术的某种其它组合来提供服务。可替代地,多个WWAN组件1022可用来实施该功能,和/或提供附加功能来支持其它非兼容技术(即,不能得到单个WWAN组件支持)。WWAN组件1022可促进到多个网络(例如,UMTS网络和LTE网络)的类似的连接。
网络1056可以是依照一个或多个电气与电子工程师协会(“IEEE”)802.11标准而操作的WLAN,诸如IEEE 802.11a、802.11b、802.11g、802.11n和/或未来的802.11标准(在本文统称为WI-FI)。还可以想到草稿802.11标准。在一些配置中,WLAN利用一个或多个无线WI-FI接入点来实现。在一些配置中,一个或多个无线WI-FI接入点是能够与WWAN连接的、充当WI-FI热点的另一计算设备。WLAN组件1024被配置成经由WI-FI接入点与网络1056连接。这些连接可经由各种加密技术来确保,加密技术包括但不限于WI-FI保护接入(“WPA”)、WPA2、有线等价隐私(“WEP”)和类似技术。
网络1056可以是依照红外数据联盟(“IrDA”)、BLUETOOTH、无线通用串行总线(“USB”)、Z-Wave、ZIGBEE或某其它短程无线技术来操作的WPAN。在一些配置中,WPAN组件1026被配置成促进与诸如外围设备、计算机或其它计算设备的其它设备经由WPAN的通信。
传感器组件1008包括磁力计1028、环境光传感器1030、接近度传感器1032、加速度计1034、陀螺仪1036和全球定位系统传感器(“GPS传感器”)1038。可想到,诸如但不限于温度传感器或震动检测传感器的其它传感器也可以包含在计算设备体系结构1000中。
磁力计1028可以被配置成测量磁场的强度和方向。在一些配置中,磁力计1028提供测量给存储在一个存储器组件1004内的罗盘应用程序从而为用户提供参考系内的精确的方向,包括主要方向,北、南、东和西。可以对包括罗盘组件的导航应用程序提供类似的测量。可想到通过磁力计1028所获得的测量的其它用途。
环境光传感器1030被配置成测量环境光。在一些配置中,环境光传感器1030提供测量给存储在一个存储器组件1004内的应用程序从而自动地调节显示器(下面所述)的亮度从而补偿低光照环境和高光照环境。可想到通过环境光传感器1030所获得的测量的其它用途。
接近度传感器1032被配置成在不直接接触的情况下检测靠近计算设备的物体或事物的存在。在一些配置中,接近度传感器1032检测用户的身体(例如,用户的面部)的存在且提供该信息给存储在存储器组件1004中之一内的、使用接近度信息来使能或禁用计算设备的某功能的应用程序。例如,电话应用程序可以响应于接收到接近信息而自动禁用触摸屏(下面说明),使得用户的面部不会在通话期间不利地结束通话或使能/禁用电话应用程序内的其它功能。接近度传感器1032所检测到的接近度的其它用途可被想到。
加速度计1034被配置成测量正确的加速度。在一些配置中,来自加速度计1034的输出由应用程序用作控制应用程序的某功能的输入机制。例如,应用程序可以是视频游戏,其中人物、其部分或对象响应于经由加速度计1034接收到的输入而移动或以其它方式被操纵。在一些配置中,来自加速度计1034的输出提供给应用程序以便用于在横向模式与纵向模式之间切换,计算坐标加速度,或者检测落差。可以想到加速度计636的其它用途。
陀螺仪1036被配置成测量和维持方位。在一些配置中,来自陀螺仪1036的输出由应用程序用作控制应用程序的某功能的输入机制。例如,陀螺仪1036能够用于视频游戏应用或某其它应用的3D环境内的移动的精确识别。在一些配置中,应用程序使用来自陀螺仪1036和加速度计1034的输出来增强应用程序的某种功能的控制。可想到陀螺仪1036的其它用途。
GPS传感器1038被配置成接收来自GPS卫星的信号以用于计算位置。通过GPS传感器1038计算的位置可由需要或受益于位置信息的任何应用程序使用。例如,通过GPS传感器1038计算的位置可用于导航应用程序以提供从该位置到目的地的方向或者从目的地到该位置的方向。而且,GPS传感器1038可以用于将位置信息提供给的基于外部位置的服务,诸如E911服务。GPS传感器1038可以使用一个或多个网络连接组件1006获得经由WI-FI、WIMAX和/或蜂窝三角测量技术所生成的位置信息以辅助GPS传感器640获得位置锁定。GPS传感器1038还可用于辅助GPS(“A-GPS”)系统。
I/O组件1010包括显示器1040、触摸屏1042、数据I/O接口组件(“数据I/O”)1044、音频I/O接口组件(“音频I/O”)1046、视频I/O接口组件(“视频I/O”)1048和照相机1050。在一些配置中,显示器1040和触摸屏1042组合。在一些配置中,数据I/O组件1044、音频I/O组件1046和视频I/O组件1048中的两个或更多个被组合。I/O组件1010可以包括被配置为支持下面所描述的各种接口的分立的处理器,或者可以包括内置于处理器1002中的处理功能。
显示器1040是被配置成以视觉形式呈现信息的输出设备。特别地,显示器1040可以呈现图形用户接口(“GUI”)元件、文本、图像、视频、通知、虚拟按钮、虚拟键盘、消息传递数据、因特网内容、设备状况、时间、日期、日历数据、偏好、地图信息、位置信息以及任何其它能够以视觉形式呈现的信息。在一些配置中,显示器1040是使用了任何有源或无源矩阵技术以及任何背光技术(如果使用)的液晶显示器(“LCD”)。在一些配置中,显示器1040是有机发光二极管(“OLED”)显示器。可想到其它显示器类型。
触摸屏1042,在本文中称为“触摸使能屏幕”,是被配置成检测触摸的存在和位置的输入设备。触摸屏1042可以是电阻触摸屏、电容触摸屏、表面声波触摸屏、红外触摸屏、光学成像触摸屏、分散信号触摸屏、声脉冲识别触摸屏,或者可以使用任何其它触摸屏技术。在一些配置中,触摸屏1042作为透明层包含到显示器1040之上以使用户能够使用一个或多个触摸来与呈现在显示器1040上的对象或其它信息交互。在其它配置中,触摸屏1042是并入未包含显示器1040的计算设备的表面上的触摸板。例如,计算设备可以具有并入显示器1040上的触摸屏和与显示器1040相对的表面上的触摸板。
在一些配置中,触摸屏1042是单触摸式触摸屏。在其它配置中,触摸屏1042是多触摸式触摸屏。在一些配置中,触摸屏1042被配置成检测离散的触摸、单触摸手势和/或多触摸手势。为方便,这些在本文统称为手势。现在将描述多个手势。应当理解的是,这些手势是示例性的,而不旨在限制随附权利要求的范围。而且,所描述的手势、附加手势和/或可替代手势以软件来实现而与触摸屏1042一起使用。因此,开发者可以创建特定于特定的应用程序的手势。
在一些配置中,触摸屏1042支持轻敲手势,其中用户对呈现在显示器1040上的项轻敲触摸屏1042一次。轻敲手势可由于各种原因而使用,包括但不限于,打开或发动用户所轻敲的无论什么。在一些配置中,触摸屏1042支持双轻敲手势,其中用户对呈现在显示器1040上的项轻敲触摸屏1042两次。双轻敲手势可由于各种原因而使用,包括但不限于在阶段中缩小或放大。在一些配置中,触摸屏1042支持轻敲且保持手势,其中用户轻敲触摸屏1042且保持接触至少预定义时间。轻敲且保持手势可由于各种原因而使用,包括但不限于,打开上下文特定菜单。
在一些配置中,触摸屏1042支持平移手势,其中用户将手指放在触摸屏1042上且在触摸屏1042上移动手指的同时保持与触摸屏1042接触。平移手势可由于各种原因而使用,包括但不限于,在受控速率下移过屏幕、图像或菜单。还可以设想多手指平移手势。在一些配置中,触摸屏1042支持轻弹手势,其中用户沿用户想要屏幕移动的方向划动手指。轻弹手势可由于各种原因而使用,包括但不限于,水平地或者垂直地滚动通过菜单或页。在一些配置中,触摸屏1042支持捏合与展开手势,其中用户在触摸屏1042上用两个手指(例如,拇指和食指)做出捏合运动或者移动使两个手指分开。捏合与展开手势可由于各种原因而使用,包括但不限于,逐渐地缩小或放大网站、地图或图片。
虽然已经参考用于执行手势的一个或多个手指的使用描述了上述手势,诸如足趾或诸如指示笔的对象的其它附件也可用于与触摸屏1042交互。因此,上述手势应当理解为示例性的,而不应解释为以任何方式限制。
数据I/O接口组件1044被配置成利于向计算设备输入数据以及从计算设备输出数据。在一些配置中,数据I/O接口组件1044包括连接器,该连接器被配置成提供计算设备与计算机系统之间的有线连接,例如用于同步操作的目的。连接器可以是专用连接器或标准化的连接器,如USB、微型USB、迷你型USB或类似物。在一些配置中,连接器是用于将计算设备与诸如对接站的另一设备、音频设备(例如,数字音乐播放器)或视频设备对接的对接连接器。
音频I/O接口组件1046被配置成提供音频输入和/或输出能力给计算设备。在一些配置中,音频I/O接口组件1044包括被配置成采集音频信号的麦克风。在一些配置中,音频I/O接口组件1044包括被配置成提供用于耳机或其它外部扬声器的连接的耳机插口。在一些配置中,音频接口组件1046包括用于音频信号的输出的扬声器。在一些配置中,音频I/O接口组件1044包括光缆音频出口。
视频I/O接口组件1048被配置成提供视频输入和/或输出能力给计算设备。在一些配置中,视频I/O接口组件1048包括视频连接器,该视频连接器被配置成接收来自另一设备(例如,诸如DVD或BLURAY播放器的视频媒体播放器)的视频作为输入)或者将视频作为输出发送到另一设备(例如,监控器、电视机或某其它外部显示器)。在一些配置中,视频I/O接口组件1048包括高清多媒体接口(“HDMI”)、迷你型HDMI、微型HDMI、DisplayPort或到输入/输出视频内容的专用连接器。在一些配置中,视频I/O接口组件1048或其部分与音频I/O接口组件1046或其部分组合。
照相机1050可以被配置成捕获静像和/或视频。照相机1050可以使用电荷耦合器件(“CCD”)或互补金属氧化物半导体(“CMOS”)图像传感器来捕获图像。在一些配置中,照相机1050包括辅助在低光照环境下拍摄图片的闪光灯。用于照相机1050的设置可实现为硬件或软件按钮。
虽然没有示出,一个或多个硬件按钮也可以包含在计算设备体系结构1000中。硬件按钮可用于控制计算设备的某操作方面。硬件按钮可以是专用按钮或多用途按钮。硬件按钮可以是机械或基于传感器的。
图示的电力组件1012包括一个或多个电池1052,电池能够连接到电池计量仪1054。电池1052可以是可再充电的或一次性的。可再充电电池类型包括但不限于锂聚合物、锂离子、镍镉和镍金属氢化物。各个电池1052可以由一个或多个单元制成。
电池计量仪1054可以被配置成测量诸如电流、电压和温度的电池参数。在一些配置中,电池计量仪1054被配置成测量电池的放电速率、温度、寿命和其它因素的效应以在一定误差百分比内预测剩余寿命。在一些配置中,电池计量仪1054提供测量给应用程序,应用程序被配置成使用测量来向用户呈现有用的电力管理数据。电力管理数据可以包括所使用的电池百分比、电池剩余百分比、电池状态、剩余时间、剩余容量(例如,以瓦特小时数计)、消耗的电流和电压的中的一项或多项。
电力组件1012还可以包括电力连接器,电力连接器可以与上述I/O组件1010中的一个或多个组合。电力组件1012可以经由电力I/O组件与外部电力系统或充电装备相接。
本文呈现的公开可以从以下条款来考虑:
条款1:一种计算机实现的方法,包括用于以下的计算机实现的操作:获得输入数据(110),该输入数据包括图像(302)、文本(301)以及定义文本(301)与图像(302)之间的关系的数据;确定与该输入数据的变换(300)相关联的易读性得分;确定所述变换(300)的易读性得分是否满足阈值;以及如果确定所述变换(300)的易读性得分不满足阈值,则对输入数据应用一个或多个处置以处理对文本(301)与图像(302)之间的关系的至少一个修改,生成多个模型(114),其中多个模型(114)中的个体模型(114)定义对文本(301)与图像(302)之间的关系的至少一个修改,确定多个模型(114)的至少一个个体模型(114)的易读性得分,确定多个模型(114)中的至少一个个体模型(114)的易读性得分是否满足至少一个阈值,并且如果确定多个模型(114)中的至少一个个体模型(114)的易读性得分满足至少一个阈值,则呈现多个模型(114)中的至少一个个体模型(114)。
条款2:如条款1的示例,其中确定与输入数据的变换相关联的易读性得分包括:确定至少一个超像素的尺寸;基于所述至少一个超像素来确定所述文本的聚合亮度水平;基于所述至少一个超像素来确定所述图像的聚合亮度水平;以及基于所述文本的聚合亮度水平和所述图像的聚合亮度水平来确定所述文本与所述图像之间的聚合对比度,其中所述变换的易读性得分基于所述聚合对比度。
条款3:如条款1和2的示例,其中超像素的大小基于文本中的至少一个字符的高度。
条款4:如条款1-3的示例,其中超像素的大小基于与文本相关联的笔画宽度。
条款5:如条款1-4的示例,其中与输入数据的变换相关联的易读性得分至少部分地基于与文本相关联的字体大小。
条款6:如条款1-5的示例,其中对输入数据应用一个或多个处置包括对图像应用全局明度或全局颜色修改。
条款7:如条款1-6的示例,其中对输入数据应用一个或多个处置包括提供定位在文本周围的阴影。
条款8:一种计算机(800,1000),包括:处理器(802,1002);和与处理器(802,1002)通信的计算机可读存储介质(804,1004),所述计算机可读存储介质(804,1004)具有存储在其上的计算机可执行指令,所述计算机可执行指令在由所述处理器(802,1002)执行时使所述计算机(800,1000):获得输入数据(110),该输入数据包括图像(302)、文本(301)和定义所述文本(301)与所述图像(302)之间的关系的数据,对所述输入数据(110)应用一个或多个处置以修改所述文本(301)与所述图像(302)之间的至少一个关系,生成多个模型(114),其中所述多个模型(114)中的个体模型(114)定义对所述文本(301)与所述图像(302)之间的关系的至少一个修改,确定所述多个模型(114)中的至少一个个体模型(114)的易读性得分,确定所述多个模型(114)中的所述至少一个个体模型(114)的易读性得分是否满足阈值,以及如果确定多个模型(114)中的所述至少一个个体模型(114)的易读性得分满足至少一个阈值,则呈现所述多个模型(114)中的所述至少一个个体模型(114)。
条款9:如条款8的计算机,其中确定与所述输入数据的变换相关联的易读性得分包括:确定至少一个超像素的尺寸;基于所述至少一个超像素来确定所述文本的聚合亮度水平;基于所述至少一个超像素来确定所述图像的聚合亮度水平;以及基于所述文本的聚合亮度水平和所述图像的聚合亮度水平来确定所述文本与所述图像之间的聚合对比度,其中所述变换的易读性得分基于所述聚合对比度。
条款10:如条款8和9的计算机,其中所述超像素的大小基于文本中的至少一个字符的高度。
条款11:如条款8-10的计算机,其中所述超像素的大小基于与所述文本相关联的笔画宽度。
条款12:如条款8-11的计算机,其中与输入数据的变换相关联的易读性得分至少部分地基于与文本相关联的字体大小。
条款13:如条款8-12的计算机,其中对输入数据应用一个或多个处置包括对图像应用全局明度或全局颜色修改。
条款14:一种计算机可读存储介质(804,1004),其中存储有计算机可执行指令,所述计算机可执行指令在由计算机(800,1000)执行时使所述计算机(800,1000):获得输入数据(110),该输入数据包括图像(302)、文本(301)和定义所述文本(301)与所述图像(302)之间的关系的数据;对所述输入数据(110)应用一个或多个处置以修改所述文本(301)与所述图像(302)之间的至少一个关系;生成多个模型(114),其中所述多个模型(114)中的个体模型(114)定义对所述文本(301)与所述图像(302)之间的关系的至少一个修改;确定所述多个模型(114)中的至少一个个体模型(114)的易读性得分;确定所述多个模型(114)中的所述至少一个个体模型(114)的易读性得分是否满足阈值;以及如果确定多个模型(114)中的所述至少一个个体模型(114)的易读性得分满足至少一个阈值,则呈现所述多个模型(114)中的所述至少一个个体模型(114)。
条款15:如条款14的计算机可读存储介质,其中所述超像素的大小基于文本中的至少一个字符的高度。
条款16:如条款14-15的计算机可读存储介质,其中所述超像素的大小基于与所述文本相关联的笔画宽度。
条款17:如条款14-16的计算机可读存储介质,其中与输入数据的变换相关联的易读性得分至少部分地基于与文本相关联的字体大小。
条款18:如条款14-17的计算机可读存储介质,其中对输入数据应用一个或多个处置包括对图像应用全局明度或全局颜色修改。
条款19:如条款14-18的计算机可读存储介质,其中对所述输入数据应用一个或多个处置包括提供定位在文本周围的阴影。
条款20:如条款14-19的计算机可读存储介质,其中对所述输入数据应用一个或多个处置包括提供定位在所述文本周围的背景。
基于上述,应当理解在本文已经公开了用于优化所显示的文本的易读性的概念和技术。虽然本文所呈现的主题是以特定于计算机结构特征的语言、方法和变换动作、具体的计算机器和计算机可读介质来描述,但是应当理解,在随附的权利要求中限定的本发明不必局限于本文所描述的具体的特征、动作或媒介。相反,具体的特征、动作和媒介被公开作为实现权利要求的示例形式。
上述的主题仅以示例说明的方式来提供,而不应当解释为限制。可以在不遵照所图示和描述的示例的配置和应用且不背离本发明的真正的主旨和范围的情况下对本文所描述的主题做出各种修改和改动,本发明的真正的主旨和范围在下面的权利要求中进行了阐述。
Claims (13)
1.一种用于增强与计算设备的用户交互的计算机实现的方法,所述计算机实现的方法包括:
在所述计算设备处获得输入数据,所述输入数据包括图像、文本以及定义所述文本与所述图像之间的关系的数据;
在所述计算设备处确定与所述输入数据的变换相关联的易读性得分;
在所述计算设备处确定所述变换的易读性得分是否满足阈值;以及
如果确定所述变换的易读性得分不满足所述阈值,
对所述输入数据应用一个或多个处置以处理对所述文本与所述图像之间的关系的至少一个修改,
生成多个模型,其中,所述多个模型中的个体模型定义对所述文本与所述图像之间的关系的所述至少一个修改,
确定所述多个模型中的至少一个个体模型的易读性得分,
确定所述多个模型中的所述至少一个个体模型的易读性得分是否满足至少一个阈值,以及
如果确定所述多个模型中的所述至少一个个体模型的易读性得分满足至少一个阈值,则呈现所述多个模型中的所述至少一个个体模型。
2.根据权利要求1所述的计算机实现的方法,其中,确定与所述输入数据的变换相关联的易读性得分包括:
确定至少一个超像素的尺寸;
基于所述至少一个超像素来确定所述文本的聚合亮度水平;
基于所述至少一个超像素来确定所述图像的聚合亮度水平;以及
基于所述文本的聚合亮度水平和所述图像的聚合亮度水平来确定所述文本与所述图像之间的聚合对比度,其中,所述变换的易读性得分基于所述聚合对比度。
3.根据权利要求1所述的计算机实现的方法,其中,所述超像素的大小基于所述文本中的至少一个字符的高度。
4.根据权利要求3所述的计算机实现的方法,其中,所述超像素的大小基于与所述文本相关联的笔画宽度。
5.根据权利要求1所述的计算机实现的方法,其中,与所述输入数据的变换相关联的易读性得分至少部分地基于与所述文本相关联的字体大小。
6.根据权利要求1所述的计算机实现的方法,其中,对所述输入数据应用一个或多个处置包括对所述图像应用全局明度或全局颜色修改。
7.根据权利要求1所述的计算机实现的方法,其中,对所述输入数据应用一个或多个处置包括提供定位在所述文本周围的阴影。
8.一种计算机,包括:
处理器;和
与所述处理器通信的计算机可读存储介质,所述计算机可读存储介质具有存储在其上的计算机可执行指令,所述计算机可执行指令在由所述处理器执行时使所述计算机
获得输入数据,所述输入数据包括图像、文本以及定义所述文本与所述图像之间的关系的数据,
对所述输入数据应用一个或多个处置以修改所述文本与所述图像之间的至少一个关系,
生成多个模型,其中,所述多个模型中的个体模型定义对所述文本与所述图像之间的关系的至少一个修改,
确定所述多个模型中的至少一个个体模型的易读性得分,
确定所述多个模型中的所述至少一个个体模型的易读性得分是否满足阈值,以及
如果确定所述多个模型中的所述至少一个个体模型的易读性得分满足至少一个阈值,则呈现所述多个模型中的所述至少一个个体模型。
9.根据权利要求8所述的计算机,其中,确定与所述输入数据的变换相关联的易读性得分包括:
确定至少一个超像素的尺寸;
基于所述至少一个超像素来确定所述文本的聚合亮度水平;
基于所述至少一个超像素来确定所述图像的聚合亮度水平;以及
基于所述文本的聚合亮度水平和所述图像的聚合亮度水平来确定所述文本与所述图像之间的聚合对比度,其中,所述变换的易读性得分基于所述聚合对比度。
10.根据权利要求8所述的计算机,其中,所述超像素的大小基于所述文本中的至少一个字符的高度。
11.根据权利要求10所述的计算机,其中,所述超像素的大小基于与所述文本相关联的笔画宽度。
12.根据权利要求8所述的计算机,其中,与所述输入数据的变换相关联的易读性得分基于与所述文本相关联的字体大小。
13.根据权利要求8所述的计算机,其中,对所述输入数据应用一个或多个处置包括对所述图像应用全局明度或全局颜色修改。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/503,207 | 2014-09-30 | ||
US14/503,207 US20160093080A1 (en) | 2014-09-30 | 2014-09-30 | Optimizing the Legibility of Displayed Text |
PCT/US2015/052540 WO2016053820A1 (en) | 2014-09-30 | 2015-09-28 | Optimizing the legibility of displayed text |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106796731A true CN106796731A (zh) | 2017-05-31 |
Family
ID=54325695
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580053338.6A Withdrawn CN106796731A (zh) | 2014-09-30 | 2015-09-28 | 优化所显示的文本的易读性 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20160093080A1 (zh) |
EP (1) | EP3201879B1 (zh) |
CN (1) | CN106796731A (zh) |
WO (1) | WO2016053820A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112562042A (zh) * | 2020-12-24 | 2021-03-26 | 凌云光技术股份有限公司 | 一种实时编辑与解析图像检测文本的显示方法及装置 |
CN113763256A (zh) * | 2020-07-06 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 一种图片适配方法和装置 |
CN113874868A (zh) * | 2019-05-15 | 2021-12-31 | 微软技术许可有限责任公司 | 用于3d环境的文本编辑系统 |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9595298B2 (en) | 2012-07-18 | 2017-03-14 | Microsoft Technology Licensing, Llc | Transforming data to create layouts |
US10282069B2 (en) | 2014-09-30 | 2019-05-07 | Microsoft Technology Licensing, Llc | Dynamic presentation of suggested content |
US9626768B2 (en) | 2014-09-30 | 2017-04-18 | Microsoft Technology Licensing, Llc | Optimizing a visual perspective of media |
US10109092B1 (en) * | 2015-03-24 | 2018-10-23 | Imagical LLC | Automated text layout, color and other stylization on an image or video, and the tracking and application of user color preferences |
US10311366B2 (en) | 2015-07-29 | 2019-06-04 | Adobe Inc. | Procedurally generating sets of probabilistically distributed styling attributes for a digital design |
CN105892962A (zh) * | 2015-11-20 | 2016-08-24 | 乐视移动智能信息技术(北京)有限公司 | 一种显示方法以及显示设备 |
US10380228B2 (en) | 2017-02-10 | 2019-08-13 | Microsoft Technology Licensing, Llc | Output generation based on semantic expressions |
FR3076640B1 (fr) * | 2018-01-08 | 2021-04-30 | Psa Automobiles Sa | Dispositif d’affichage a generation dynamique de fond d’ecran en fonction des contenus a afficher |
US10769827B1 (en) * | 2018-04-25 | 2020-09-08 | Facebook, Inc. | Determining whether to overlay text included in a content item on an image included in the content item for presentation to a user of an online system |
US10937127B2 (en) * | 2018-08-13 | 2021-03-02 | International Business Machines Corporation | Methods and systems for managing text in rendered images |
US11392762B2 (en) * | 2018-10-26 | 2022-07-19 | Cimpress Schweiz Gmbh | Technologies for managing dynamic design templates |
PL428097A1 (pl) * | 2018-12-10 | 2020-06-15 | General Electric Company | Systemy i sposoby zwiększenia czytelności informacji dotyczących produktu i wytwarzania (PMI) |
US11200366B2 (en) | 2019-12-16 | 2021-12-14 | International Business Machines Corporation | Using classifications from text to determine instances of graphical element types to include in a template layout for digital media output |
US11474793B2 (en) | 2020-05-22 | 2022-10-18 | Salesforce.Com, Inc. | Polymorphic application architecture |
WO2022201237A1 (ja) * | 2021-03-22 | 2022-09-29 | 株式会社オープンエイト | サーバおよびテキストフィールド配置位置方法、プログラム |
CN113989404B (zh) * | 2021-11-05 | 2024-06-25 | 北京字节跳动网络技术有限公司 | 图片处理方法、装置、设备、存储介质和程序产品 |
US11842429B2 (en) | 2021-11-12 | 2023-12-12 | Rockwell Collins, Inc. | System and method for machine code subroutine creation and execution with indeterminate addresses |
US12002369B2 (en) | 2021-11-12 | 2024-06-04 | Rockwell Collins, Inc. | Graphical user interface (GUI) for selection and display of enroute charts in an avionics chart display system |
US11748923B2 (en) | 2021-11-12 | 2023-09-05 | Rockwell Collins, Inc. | System and method for providing more readable font characters in size adjusting avionics charts |
US11954770B2 (en) | 2021-11-12 | 2024-04-09 | Rockwell Collins, Inc. | System and method for recreating graphical image using character recognition to reduce storage space |
US11915389B2 (en) | 2021-11-12 | 2024-02-27 | Rockwell Collins, Inc. | System and method for recreating image with repeating patterns of graphical image file to reduce storage space |
US11887222B2 (en) | 2021-11-12 | 2024-01-30 | Rockwell Collins, Inc. | Conversion of filled areas to run length encoded vectors |
AU2021273639A1 (en) * | 2021-11-26 | 2023-06-15 | Canva Pty Ltd | Systems and methods for automatically scoring a group of design elements |
US20240087247A1 (en) * | 2022-09-12 | 2024-03-14 | Rovi Guides, Inc. | Systems and method for rendering of virtual objects |
US20240144443A1 (en) * | 2022-10-27 | 2024-05-02 | Microsoft Technology Licensing, Llc | Automatic Text Legibility Improvement within Graphic Designs |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050157926A1 (en) * | 2004-01-15 | 2005-07-21 | Xerox Corporation | Method and apparatus for automatically determining image foreground color |
CN102265304A (zh) * | 2008-11-03 | 2011-11-30 | 索尼爱立信移动通讯有限公司 | 优化在显示屏上所显示的图像的方法和设备 |
US20130094034A1 (en) * | 2011-10-13 | 2013-04-18 | Hewlett-Packard Development Company Lp | Digital Image Text Addition |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6788308B2 (en) * | 2000-11-29 | 2004-09-07 | Tvgateway,Llc | System and method for improving the readability of text |
US7064759B1 (en) * | 2003-05-29 | 2006-06-20 | Apple Computer, Inc. | Methods and apparatus for displaying a frame with contrasting text |
US7184063B2 (en) * | 2004-09-01 | 2007-02-27 | Microsoft Corporation | Adaptive color schemes |
US8339411B2 (en) * | 2006-05-04 | 2012-12-25 | Microsoft Corporation | Assigning color values to pixels based on object structure |
US9361278B2 (en) * | 2013-03-15 | 2016-06-07 | Facebook, Inc. | Overlaying photographs with text on a social networking system |
US20150082159A1 (en) * | 2013-09-17 | 2015-03-19 | International Business Machines Corporation | Text resizing within an embedded image |
-
2014
- 2014-09-30 US US14/503,207 patent/US20160093080A1/en not_active Abandoned
-
2015
- 2015-09-28 WO PCT/US2015/052540 patent/WO2016053820A1/en active Application Filing
- 2015-09-28 EP EP15781218.1A patent/EP3201879B1/en not_active Not-in-force
- 2015-09-28 CN CN201580053338.6A patent/CN106796731A/zh not_active Withdrawn
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050157926A1 (en) * | 2004-01-15 | 2005-07-21 | Xerox Corporation | Method and apparatus for automatically determining image foreground color |
CN102265304A (zh) * | 2008-11-03 | 2011-11-30 | 索尼爱立信移动通讯有限公司 | 优化在显示屏上所显示的图像的方法和设备 |
US20130094034A1 (en) * | 2011-10-13 | 2013-04-18 | Hewlett-Packard Development Company Lp | Digital Image Text Addition |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113874868A (zh) * | 2019-05-15 | 2021-12-31 | 微软技术许可有限责任公司 | 用于3d环境的文本编辑系统 |
CN113763256A (zh) * | 2020-07-06 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 一种图片适配方法和装置 |
CN112562042A (zh) * | 2020-12-24 | 2021-03-26 | 凌云光技术股份有限公司 | 一种实时编辑与解析图像检测文本的显示方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2016053820A1 (en) | 2016-04-07 |
EP3201879B1 (en) | 2018-07-11 |
EP3201879A1 (en) | 2017-08-09 |
US20160093080A1 (en) | 2016-03-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106796731A (zh) | 优化所显示的文本的易读性 | |
US10896284B2 (en) | Transforming data to create layouts | |
US9881222B2 (en) | Optimizing a visual perspective of media | |
CN104471564B (zh) | 在将数据变换成可消费内容时创建变型 | |
CN106575360B (zh) | 图表数据的增强识别 | |
CN104350493B (zh) | 将数据变换成可消费的内容 | |
CN105593803B (zh) | 自动滚动区域 | |
CN105934756B (zh) | 索引电子表格结构属性以供搜索 | |
CN107567610A (zh) | 附连控制元素的混合环境显示 | |
CN106796582A (zh) | 建议内容的动态呈现 | |
CN106796581A (zh) | 用于内容数据的布局的基于用户意图的生成 | |
CN104471565A (zh) | 用于将数据变换成可消费内容的抽象关系模型 | |
US11314408B2 (en) | Computationally efficient human-computer interface for collaborative modification of content | |
CN106796518A (zh) | 基于意图的反馈 | |
TW201610815A (zh) | 字元安排的強化解讀 | |
CN107077458A (zh) | 推断布局意图 | |
WO2015148733A2 (en) | Systems and methods for the real-time modification of videos and images within a social network format | |
US11526322B2 (en) | Enhanced techniques for merging content from separate computing devices | |
CN106537371A (zh) | 可视化建议 | |
CN106663091A (zh) | 摘要数据自动填充 | |
CN106537382A (zh) | 查询建议 | |
CN103257997A (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 | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20170531 |
|
WW01 | Invention patent application withdrawn after publication |