CN107430697A - 用于光学条形码的定制功能图案 - Google Patents

用于光学条形码的定制功能图案 Download PDF

Info

Publication number
CN107430697A
CN107430697A CN201680016324.1A CN201680016324A CN107430697A CN 107430697 A CN107430697 A CN 107430697A CN 201680016324 A CN201680016324 A CN 201680016324A CN 107430697 A CN107430697 A CN 107430697A
Authority
CN
China
Prior art keywords
image
data
described image
feature
customization
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.)
Granted
Application number
CN201680016324.1A
Other languages
English (en)
Other versions
CN107430697B (zh
Inventor
L·安德尔顿
G·吉
R·霍恩伯格
K·维梅特
K·谢菲尔德
B·特利
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Snapple Co
Original Assignee
Snapple Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Snapple Co filed Critical Snapple Co
Priority to CN202011215718.4A priority Critical patent/CN112183536B/zh
Publication of CN107430697A publication Critical patent/CN107430697A/zh
Application granted granted Critical
Publication of CN107430697B publication Critical patent/CN107430697B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
    • G06K7/1404Methods for optical code recognition
    • G06K7/1439Methods for optical code recognition including a method step for retrieval of the optical code
    • G06K7/1443Methods for optical code recognition including a method step for retrieval of the optical code locating of the code in an image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K19/00Record carriers for use with machines and with at least a part designed to carry digital markings
    • G06K19/06Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
    • G06K19/06009Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code with optically detectable marking
    • G06K19/06037Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code with optically detectable marking multi-dimensional coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K19/00Record carriers for use with machines and with at least a part designed to carry digital markings
    • G06K19/06Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
    • G06K19/06009Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code with optically detectable marking
    • G06K19/06046Constructional details
    • G06K19/06103Constructional details the marking being embedded in a human recognizable image, e.g. a company logo with an embedded two-dimensional code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K19/00Record carriers for use with machines and with at least a part designed to carry digital markings
    • G06K19/06Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
    • G06K19/06009Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code with optically detectable marking
    • G06K19/06046Constructional details
    • G06K19/06131Constructional details the marking comprising a target pattern, e.g. for indicating the center of the bar code or for helping a bar code reader to properly orient the scanner or to retrieve the bar code inside of an image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
    • G06K7/1404Methods for optical code recognition
    • G06K7/1408Methods for optical code recognition the method being specifically adapted for the type of code
    • G06K7/14131D bar codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
    • G06K7/1404Methods for optical code recognition
    • G06K7/1408Methods for optical code recognition the method being specifically adapted for the type of code
    • G06K7/14172D bar codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
    • G06K7/1404Methods for optical code recognition
    • G06K7/1439Methods for optical code recognition including a method step for retrieval of the optical code
    • G06K7/1456Methods for optical code recognition including a method step for retrieval of the optical code determining the orientation of the optical code with respect to the reader and correcting therefore
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/24Aligning, centring, orientation detection or correction of the image
    • G06V10/245Aligning, centring, orientation detection or correction of the image by locating a pattern; Special marks for positioning

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)
  • Electromagnetism (AREA)
  • General Health & Medical Sciences (AREA)
  • Toxicology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Multimedia (AREA)
  • User Interface Of Digital Computer (AREA)
  • Studio Devices (AREA)

Abstract

提供了用于光学条形码的定制功能图案的系统和方法。在示例实施例中,从用户设备接收图像的图像数据。从图像数据提取图像的候选形状特征。确定形状特征满足形状特征规则。响应于候选形状特征满足形状特征规则,通过将候选形状特征与定制图形的参考形状特征进行比较来识别图像中的定制图形。响应于识别定制图形,解码被编码在图像的一部分中的数据。

Description

用于光学条形码的定制功能图案
相关申请
该国际申请要求于2015年8月14日提交的题为“CUSTOM FUNCTIONAL PATTERNSFOR OPTICAL BARCODES(用于光学条形码的定制功能图案)”的美国申请No.14/826,301以及于2015年2月3日提交的题为“CUSTOM FUNCTIONAL PATTERNS FOR OPTICAL BARCODES(用于光学条形码的定制功能图案)”的美国申请No.14/612,409以及于2015年1月19日提交的题为“CUSTOM FUNCTIONAL PATTERNS FOR OPTICAL BARCODES(用于光学条形码的定制功能图案)”的美国临时申请No.62/105,141的优先权权益,其申请中的每一个通过引用整体并入在此。
技术领域
本公开的实施例一般涉及移动计算技术,且更具体地但并非限制于用于光学条形码的定制功能图案。
背景技术
快速响应(QR)码和其它光学条形码是向移动设备、可穿戴设备和其它智能设备的用户共享小块信息的便利方式。通常,光学条形码使用用于光学条形码识别的取景器图案。传统的取景器图案通常使用明显放置在光学条形码内的多个通用标记(genericmarking)。这种明显和通用的标记可能是不好看的,并且通常不用作除了取景器图案之外的目的。
附图说明
附图中的各种附图仅仅示出了本公开的示例实施例,并且不应被认为是限制其范围。
图1是示出根据一些示例实施例的联网系统的框图。
图2是示出根据一些示例实施例的定制图案系统的示例实施例的框图。
图3A和图3B是示出根据一些示例实施例的利用定制功能图案的光学条形码的示例的图。
图4是示出根据一些示例实施例的利用定制功能图案来识别和解码光学条形码的示例的图。
图5是示出根据一些示例实施例的使用定制功能图案来识别和解码光学条形码的示例方法的流程图。
图6是示出根据一些示例实施例的使用定制功能图案识别光学条形码的另外示例操作的流程图。
图7是示出根据一些示例实施例的使用定制功能图案识别光学条形码的示例的图。
图8是示出根据一些示例实施例的用于使用定制功能图案识别光学条形码的另外示例操作的流程图。
图9是示出根据一些示例实施例的使用定制功能图案识别光学条形码的示例的图。
图10是示出根据一些示例实施例的用于使用定制功能图案来解码光学条形码的另外示例操作的流程图。
图11是示出根据一些示例实施例的使用定制功能图案来解码光学条形码的示例的图。
图12A、图12B和图12C是示出根据一些示例实施例的用于帮助使用定制功能图案来解码光学条形码的各种图像变换的图。
图13是示出根据一些示例实施例的用于使用定制功能图案来解码光学条形码的另外示例操作的流程图。
图14是示出根据一些示例实施例的使用定制功能图案来解码光学条形码的示例的图。
图15是描绘根据一些示例实施例的用于识别光学条形码的示例用户界面的用户界面图。
图16是描绘根据一些示例性实施例的用于执行与光学条形码相关联的动作的示例用户界面的用户界面图。
图17是示出根据一些示例实施例的用于使用定制功能图案来生成光学条形码的另外示例操作的流程图。
图18是描绘根据一些示例性实施例的用于使用定制功能图案来生成光学条形码的示例用户界面的用户界面图。
图19是描绘根据一些示例性实施例的示例移动设备和移动操作系统界面的用户界面图。
图20是示出根据一些示例实施例的可以安装在机器上的软件架构的示例的框图。
图21是根据示例实施例的呈现以计算机系统形式的机器的图示表示的框图,在该计算机系统内可以执行一组指令以使机器执行本文所讨论的任何方法论。
具体实施方式
下面的描述包括体现本公开的说明性实施例的系统、方法、技术、指令序列和计算机程序产品。在下面的描述中,为了解释的目的,阐述了许多具体细节以提供对本发明主题的各种实施例的理解。然而,对于本领域技术人员显而易见的是,可以在没有这些具体细节的情况下实践本发明主题的实施例。通常,不一定详细地示出众所周知的指令实例、协议、结构和技术。
QR码和其它光学条形码(例如,通用产品代码(UPC)条形码、阿兹特克(Aztec)代码、数据矩阵、数据图(Dataglyph)、MaxiCode、PDF417、超代码)是用于与移动设备、可穿戴设备和其它智能设备共享小块信息的一种便利方式。例如,QR码是对装备有相机传感器的设备(例如,智能电话)可读的信息进行编码的二维光学条形码。通常,QR码包括一个或多个功能图案,诸如用于QR码的识别和辨识(recognition)的取景器图案或用于帮助解码的对准图案。传统的取景器图案包括在设计中通用的多个标记,诸如放置在除了右下角以外的所有角落中的方形标记(如QR码的情况)。这些取景器图案不存在诸如曲线、非均匀性和其它风格元素的美学元素,并且通常符合特定标准以促进光学条形码的开放使用。
在各种示例实施例中,使用定制或非标准功能图案的光学条形码为用户提供了美学上令人愉快的品牌条形码,其允许与光学条形码相关联的独家体验。例如,实体徽标(例如,公司、组织或个人的徽标)可用作取景器图案,并且在一些情况下用作对准图案,以使用由实体提供的软件来创建机器可读的品牌和独特的光学条形码。在具体示例中,“快照码(snapcode)”是使用徽标作为功能图案的光学条形码。
在示例实施例中,定制图案系统从用户设备接收表示图像的图像数据。例如,定制图案系统从用户的智能电话的光学传感器(例如,相机传感器)接收图像数据。在各种实施例中,响应于用户启动的图像采集,由用户设备的光学传感器检测到图像数据的周期性监视,存储的图像数据的访问,或它们的组合,接收来自用户设备的图像数据。图像数据的一部分可以包括表示光学条形码的数据,该光学条形码利用用于特定功能图案(例如,取景器图案)的定制图形。在一些情况下,图像数据包括无关(extraneous)或不相关(irrelevant)数据(例如,光学条形码的图像包括与解码光学条形码无关的背景)以及与光学条形码有关的数据。在具体示例中,用户设备的光学传感器采集包括特定光学条形码的促销海报的图像。促销海报的图像可以包括特定的光学条形码以及围绕特定光学条形码的促销海报或背景的不相关部分。
在定制图案系统接收图像数据之后,定制图案系统在图像的图像数据中搜索定制图形,以确定图像是否包括光学条形码。也就是说,定制图形被用作用于图像内的光学条形码的辨识、识别或检测的取景器图案。在示例实施例中,定制图案系统通过从图像数据提取候选形状特征或多个候选形状特征来搜索定制图形。例如,定制图案系统执行边缘检测技术或另一图像处理技术以识别诸如图像的轮廓线的候选形状特征。然后,定制图案系统确定候选形状特征是否满足形状特征规则或标准。例如,如果特定候选形状特征是轮廓线,则定制图案系统可以确定轮廓线是否是包围图像的一部分的封闭线。与一些实施例一致,形状特征规则过滤出不相关或无关的候选形状特征或具有低概率成为定制图形的候选形状特征。
响应于候选形状特征满足形状特征规则,定制图案系统通过将候选形状特征与定制图形的参考形状特征进行比较来识别定制图形。例如,定制图案系统可以将候选形状特征的面积或尺寸与参考形状特征的参考面积或尺寸进行比较。在该示例中,定制图案系统基于候选形状特征和参考形状特征之间的匹配或近似匹配(例如,阈值之上的百分比匹配)来识别定制图形。以该方式,定制图案系统使用定制图形作为取景器图案来识别图像的一部分内的光学条形码的存在。
在另外的示例实施例中,定制图形用作对准图案,以便于定制图案系统解码被编码在光学条形码中的数据。在示例实施例中,定制图案系统从图像数据提取图像中的定制图形的空间属性(attribute)。例如,定制图案系统从图像数据提取定制图形的位置、缩放或取向。定制图案系统使用图像中的定制图形的空间属性从图像数据解码被编码在图像中的数据。例如,定制图案系统可以使用空间属性(例如,图像变换的去偏斜(de-skew)、旋转、缩放或另一类型)来执行图像变换,以提高被编码在图像的一部分中的数据的可检测性/可读性。以该方式,定制图案系统使用定制图形作为对准图案来帮助解码条形码。
因此,定制图案系统使用定制图形作为光学条形码的功能图案,而不使用传统的功能图案。使用定制图形作为功能图案允许美学上令人愉快的设计,并且可以为特定软件应用程序提供排他性,因为功能图案不一定符合开放标准,并且因此可以由特定软件应用程序专门读取。
图1是描绘根据一个实施例的具有被配置为通过网络交换数据的客户端-服务器架构的网络系统100的网络图。例如,网络系统100可以是消息系统,其中客户端在网络系统100内进行通信和交换数据。数据可以涉及与网络系统100及其用户相关联的各种功能(例如,发送和接收文本和媒体通信,确定地理位置等)和方面。尽管在此被示为客户端-服务器架构,但是其它实施例可以包括诸如点对点或分布式网络环境的其它网络架构。
如图1所示,网络系统100包括社交消息系统130。社交消息系统130通常基于由接口层124、应用程序逻辑层126和数据层128组成的三层架构。如相关计算机和因特网相关领域的技术人员所理解的,图1所示的每一个模块或引擎表示一组可执行软件指令和用于执行指令的对应硬件(例如,存储器和处理器)。为了避免用不必要的细节来模糊本发明的主题,图1中省略了与传达对本发明主题的理解无紧密关系的各种功能模块和引擎。当然,附加的功能模块和引擎可以与诸如图1所示的社交消息系统一起使用,以便于未在此具体描述的附加功能。此外,图1中描绘的各种功能模块和引擎可以驻留在单个服务器计算机上,或者可以横跨在各种布置中的若干服务器计算机来分布。此外,尽管在图1中将社交消息系统130描绘为三层架构,但是本发明的主题决不限于这种架构。
如图1所示,接口层124由接收来自各种客户端计算设备和服务器(诸如执行客户端应用程序112的客户端设备110以及执行第三方应用程序122的第三方服务器120)的请求的接口模块(例如,Web服务器)140组成。响应于接收的请求,接口模块140经由网络104向请求设备传送适当的响应。例如,接口模块140可以接收诸如超文本传输协议(HTTP)请求或其它基于Web的应用程序编程接口(API)请求的请求。
客户端设备110可以执行传统web浏览器应用程序或已经针对特定平台开发的应用程序(同样称为“应用程序软件(app)”),以包括各种各样的移动计算设备和移动专用操作系统中的任何一种(例如IOSTM、ANDROIDTMPHONE)。在示例中,客户端设备110正在执行客户端应用程序112。客户端应用程序112可以向用户106提供呈现信息的功能,并且经由网络104进行通信以与社交消息系统130交换信息。客户端设备110中的每一个可以包括计算设备,该计算设备至少包括显示器和与网络104通信以访问社交消息系统130的能力。客户端设备110包括但不限于远程设备、工作站、计算机、通用计算机、因特网电器(appliance)、手持设备、无线设备、便携式设备、可穿戴计算机、蜂窝或移动电话、个人数字助理(PDA)、智能电话、平板计算机、超小本、上网本、笔记本计算机、台式机、多处理器系统、基于微处理器或可编程的消费电子产品、游戏机、机顶盒、网络PC、小型计算机等。用户106可以包括人、机器或与客户端设备110交互的其它部件。在一些实施例中,用户106经由客户端设备110与社交消息系统130交互。
如图1所示,数据层128具有便于访问信息存储库或数据库134的一个或多个数据库服务器132。数据库134是存储诸如会员简档数据、社交图形数据(例如,社交消息系统130的会员之间的关系)和其它用户数据的数据的存储装置。
个人可以用社交消息系统130注册成为社交消息系统130的会员。一旦注册,会员可以在社交消息系统130上形成社交网络关系(例如,朋友、关注者或联系人)并且与由社交消息系统130提供的广泛的应用程序进行交互。
应用程序逻辑层126包括各种应用程序逻辑模块150,该应用程序逻辑模块150结合接口模块140生成具有从数据层128中的各种数据源或数据服务检索的数据的各种用户接口。各个应用程序逻辑模块150可以用于实现与社交消息系统130的各种应用程序、服务和特征相关联的功能。例如,社交消息应用程序可以采用一个或多个应用程序逻辑模块150中来实现。社交消息应用程序为客户端设备110的用户提供消息收发机制,以发送和接收包括文本和诸如图片和视频的媒体内容的消息。客户端设备110可以在(例如,有限的或无限的)指定的时间段内访问和查看来自社交消息应用程序的消息。在示例中,消息接收者可以在从首次访问特定消息时开始的(例如,由消息发送者指定的)预定持续时间内访问特定消息。在预定义的持续时间过去之后,消息被删除并且消息接收者不再可访问该消息。当然,其它应用程序和服务可以分别体现在它们自己的应用程序逻辑模块150中。
如图1所示,社交消息系统130或客户端应用程序112包括提供用于识别和解码利用定制功能图案的光学条形码的功能的定制图案系统160。在各种实施例中,定制图案系统160可以被实现为独立系统,并且不必须被包括在社交消息系统130中。在一些实施例中,客户端设备110包括定制图案系统160的一部分(例如,定制图案系统160的一部分可以被独立地包括或被包括在客户端应用程序112中)。在客户端设备110包括定制图案系统160的一部分的实施例中,客户端设备110可以单独或与定制图案系统160的一部分一起工作,定制图案系统160被包括在特定应用程序服务器中或在社交消息系统130中。
图2是定制图案系统160的框图200。定制图案系统160被示为包括通信模块210、呈现模块220、取景器模块230、对准模块240、解码器模块250、动作模块260和编码器模块270。模块210-270中的所有或一些模块例如经由网络耦接、共享存储器等彼此通信。模块210-270中的每一个模块可以被实现为单个模块,组合到其它模块中,或进一步细分成多个模块。同样可以包括与示例实施例不相关的其它模块,但是其未被示出。
通信模块210提供各种通信功能。例如,通信模块210从用户设备接收、访问或以其它方式获得图像的图像数据。在具体示例中,通信模块210从智能电话的相机传感器(例如,由智能电话的相机传感器采集的单帧图像数据或连续帧流)接收基本上实时的图像数据。通信模块210与数据库服务器132、客户端设备110和第三方服务器120交换网络通信。由通信模块210检索的信息包括与用户相关联的数据(例如,来自在线帐户的会员简档数据或社交网络服务数据)或有助于在此所述的功能的其它数据。
呈现模块220提供可操作以交互地向用户呈现和接收来自用户的信息的各种呈现和用户界面功能。例如,呈现模块220可用于呈现响应于解码光学条形码而生成的用户界面。在其它情况下,呈现模块220生成包括光学条形码的用户界面。在各种实施例中,呈现模块220呈现或引起信息的呈现(例如,在屏幕上可视地显示信息,声音输出,触觉(haptic)反馈)。交互呈现信息的过程旨在包括特定设备与用户之间的信息交换。用户可以以许多可能的方式提供与用户界面交互的输入,诸如字母数字的输入,基于点的输入(例如,光标),触知(tactile)的输入或其它的输入(例如,触摸屏、触知传感器、光传感器、红外传感器、生物特征(biometric)传感器、麦克风、陀螺仪、加速度计或其它传感器)。呈现模块220提供有助于在此所述的功能的许多其它用户界面。在此使用的术语“呈现”旨在包括将信息或指令传送到特定设备,该特定设备可被操作为基于所传送的信息或指令来执行呈现。
取景器模块230提供图像处理功能以识别、辨识或检测被用作光学条形码中的取景器图案的定制图形。例如,取景器模块230根据从用户设备(例如,客户端设备110)接收的图像的图像数据提取和分析候选形状特征或候选轮廓特质(characteristic)。取景器模块230确定与提取的候选形状特征相关联的各种规则或标准的满足。取景器模块230将提取的候选形状特征与定制图形或另一参考图像的参考形状特征进行比较,以识别图像中包括的定制图形。取景器模块230可以利用各种各样的方案和技术从图像的图像数据提取候选形状特征,并且随后基于候选形状特征的分析来识别定制图形。这些技术的示例稍后关于图5-14来说明。
对准模块240提供图像处理功能以使用定制图形来确定光学条形码的对准。定制图案系统160可以使用对准来帮助被编码在光学条形码中的数据的解码。以该方式,定制图形被用作光学条形码的对准图案。例如,对准模块240从图像数据提取图像中的定制图形的空间属性。在各种实施例中,空间属性包括光学条形码的位置、取向、缩放或另一空间方面中的至少一个。对准模块240基于空间属性(例如,光学条形码的特定取向)来确定光学条形码的对准。在示例中,对准模块240可以基于空间属性来确定包括位置和取向的对准,并根据对准生成变换图像。然后,定制图案系统160可以使用变换的图像来解码被编码在变换图像的一部分中的数据。
解码器模块250提供使用图像中定制图形的空间属性或确定的对准来解码被编码在图像中的数据的功能。例如,解码器模块250可以从根据提取自图像数据的定制图形的空间属性变换的图像来解码被编码在图像中的数据。在实施例中,解码器模块250从图像数据检测表示被编码在图像的一部分中的数据的标记(例如,图像中的高对比度点、正方形或其它标记)。在具体示例中,解码器模块250利用理德-所罗门(Reed-Solomon)纠错方案来解码被编码在图像中的数据。即使当某一百分比的数据不能从光学条形码解码(例如,损坏的比特或不正确解码的比特)时,Reed-Solomon纠错方案允许成功或有效的解码。在一些实施例中,定制图案系统160的用户或管理员在解码光学条形码时针对可接受的损坏或不正确解码的数据的量来配置容差值。在一些实施例中,解码器模块250同样提供图像处理功能以改善光学条形码的解码。例如,解码器模块250以及对准模块240可以执行图像的图像变换(例如,执行图像锐化、去噪处理、其它数字滤波或提高解码精度的其它图像处理技术)。
动作模块260提供基于解码被编码在图像中的数据来执行各种动作的功能。例如,被编码在图像的一部分中的数据可以指示特定动作或包括要与特定动作结合使用的信息。在特定示例中,被编码在图像的一部分中的数据可以包括社交网络服务的会员的用户名或其它用户标识(identification),并且基于对用户名的解码,动作模块260可以对对应于该用户名的社交网络服务执行动作(例如,向与该用户名相关联的会员发送消息)。在一些实施例中,动作模块260执行对于扫描图像的特别应用程序特定的动作(例如,对于该应用程序的用户可用但是以其它方式不可用的功能)。在一些情况下,动作模块260在不与外部服务器通信的情况下执行动作(例如,对扫描快照码的用户设备局部地执行的动作)。
编码器模块270提供了将数据生成和编码到利用定制图形作为一个或多个功能图案(例如,生成快照码)的光学条形码的功能。如上面结合解码器模块250所讨论的,在具体示例中,编码器模块270可以利用诸如Reed-Solomon纠错的技术来编码数据。在示例实施例中,编码器模块270呈现表示要被编码的数据的机器可读的标记布置。然后,编码器模块270可以使用所呈现的标记布置和要用作功能图案的定制图形来生成机器可读的光学条形码。
图3A和图3B是示出利用取景器图案或对准图案的定制图形的光学条形码的示例的图(例如,快照码)。图示(diagram)300示出了包括定制图形310(例如,公司徽标)的示例光学条形码以及表示被编码在光学条形码中的数据的标记320。在该示例中,定制图形310是诸如“幽灵”徽标的公司徽标。应当理解,“幽灵”徽标仅仅是示例定制图形,并且可以使用在此描述的技术将其它图形、图标或符号用作取景器图案或对准图案。用作功能图案的其它示例定制图形可以包括具有多个路径、多个多边形、多个美学元素或其它设计特征的设计。
如图示300所示,标记320是以具有机器可读的特定间隔或定位的图案布置的点。尽管图示300将标记320示出为点,但是可以利用其它形状和标记(例如,各种几何形状的正方形或不对称形状)。标记320可以以一致的图案或不一致的图案布置。在一些情况下,标记可以具有不同的尺寸或一致的尺寸。另外,标记320可以是预定布置或在从标记解码数据时可以动态确定的布置。在一些实施例中,定制图形310和标记320可以被诸如外框325的边界形状围绕。虽然图示300的外框325被示出为具有圆角的正方形,但是外框325可以是具有各种几何形状的各种其它形状的形式。图3B中的图示330示出了利用定制图形用于取景器图案或对准图案的另一示例光学条形码。图示330示出了在定制图形内不包括标记的光学条形码。在这些和其它实施例中,定制图形内部的空间可以被保留用于其它用途。例如,可以插入由用户选择的图片、图形、动画、注释或图像。
现在转到图4,示出了说明利用取景器图案或对准图案的定制图形来识别和解码光学条形码的示例的图示400。图4是使用定制图形识别和解码光学条形码的特定示例实施例的概述。结合以下附图讨论附加细节和替代实施方式。在图示400中,场景402示出了包括光学条形码406的海报404和用户410。应当理解,可以以各种方式将光学条形码406显示在诸如在用户设备显示器、计算机显示器上、编织或以其它方式固定到衣物或另一产品上,或被包括在各种打印物品中。标注412描绘了场景402的一部分的放大视图。标注(callout)412包括用户410的用户设备414,该用户设备414包括可操作以检测光学条形码406的光学信号408的光学传感器(例如,智能电话的相机传感器)。
在示例实施例中,用户设备414采集包括光学条形码406的海报404的图像。定制图案系统160从用户设备414接收表示图像的图像数据。在该示例实施例中,定制图案系统160被包括在用户设备414中(例如,在用户410的智能电话上执行的应用程序),但是在其它示例实施例中,定制图案系统160可以驻留在与用户设备414通信地耦接的服务器上(例如,社交消息系统130的服务器)。标注416描绘取景器模块230执行的示例图像处理以识别图像中的定制图形,并使用定制图形作为对准图案,用于解码被包括在光学条形码406中的数据。在标注416中,取景器模块230从图像的图像数据提取候选形状特征。随后,取景器模块230确定候选特征是否满足某些规则和标准以滤除不相关的形状特征或具有低概率成为定制图形的形状特征。取景器模块230然后可以将满足形状特征标准或规则的候选形状特征与定制图形的参考形状特征进行比较。在示例中,取景器模块230基于候选形状特征和参考形状特征之间的匹配(例如,超过阈值的匹配分数)来识别定制图形。
在取景器模块230识别定制图形之后,定制图案系统160可以使用定制图形作为对准图案进行解码。例如,对准模块240提取图像中的定制图形的空间属性,并将所提取的空间属性与参考空间属性进行比较,以确定定制图形的对准。对准模块240或解码器模块250然后可以根据对准(例如旋转或去偏斜)生成图像的变换图像,如标注418所示。在生成变换图像之后,解码器模块250解码被编码在变换图像的一部分中的数据,如标注420所示。在标注420中,光学条形码406的点被变换成数据,该数据被示为对于点为一而对于非点为零,尽管这仅仅是说明性示例并且可以利用其它方案。以该方式,定制图案系统160将包括在光学条形码406中的定制图形用作一个或多个功能图案,诸如取景器图案或对准图案。
图5是示出用于利用定制功能图案的光学条形码(例如,图4的光学条形码406)的示例方法500的流程图。方法500的操作可以由定制图案系统160的组件执行,并且为了说明的目的如下所述。
在操作510处,通信模块210从用户设备接收图像的图像数据。例如,通信模块210从用户的智能电话的光学传感器(例如,相机传感器)接收图像数据。在各种实施例中,响应于用户启动的图像采集,由用户设备的光学传感器检测到图像数据的周期性监视,或其组合,来接收来自用户设备的图像数据。在一些实施例中,图像数据表示基本上实时地由用户设备采集的图像或视频(例如,从智能电话的相机传感器馈送的实况图像)。在其它实施例中,图像数据表示从过去的时间由用户设备或另一设备采集并存储在用户设备上的图像(例如,存储在用户设备上或从社交网络服务下载的静态图像或视频)。在图像数据包括视频图像数据的实施例中,定制图案系统160可以分析视频的各个帧或视频的多个帧的组合以检测和解码光学条形码。图像数据的一部分可以包括表示利用定制图形、定制符号或针对特定功能图案(例如,取景器图案或对准图案)的特定图形的光学条形码的数据。
在一些情况下,图像数据包括无关或不相关的数据以及与光学条形码有关的数据(例如,光学条形码的图像包括与解码光学条形码无关的背景)。在具体示例中,用户设备的光学传感器采集包括特定光学条形码的电影海报的图像。电影海报的图像可以包括特定的光学条形码以及围绕特定光学条形码的电影海报的不相关部分或背景。
在操作520处,取景器模块230从图像数据提取图像的候选形状特征或候选特质。候选形状特征可以指示定制图形的标识(例如,包括指示定制图形的某些特点或特质)。例如,取景器模块230执行边缘检测技术或另一图像处理技术来识别形状特征,诸如图像的颜色或阴影的轮廓线或局部浓度。在一些实施例中,取景器模块230从图像数据提取多个候选形状特征。在一些实施例中,候选形状特征包括各种形状特征数据,诸如候选形状特征相对于图像的边界的位置,候选形状特征相对于图像的亮度,候选形状特征的平均颜色等。
在另外的示例实施例中,取景器模块230生成图像的低分辨率副本。取景器模块230可以对图像的低分辨率副本执行各种图像处理,诸如模糊(例如,高斯模糊功能或另一模糊功能)和阈值化(thresholding),以生成修改的低分辨率图像。阈值化图像处理可以包括将图像的低分辨率副本的较浅颜色(例如,由阈值或阈值范围确定)调节为白色并且将图像的低分辨率副本的较暗颜色(例如,由阈值或阈值范围确定)调节为黑色。取景器模块230然后可以从修改的低分辨率图像提取候选形状特征,以改进对图像中的定制图形的检测,并提高识别图像中的定制图形的计算效率。
在另外的示例实施例中,取景器模块230生成图像的一部分的高分辨率副本。例如,取景器模块230可以生成与所提取的候选形状特征对应的图像的特定部分的高分辨率副本。如下所述,取景器模块230、对准模块240或解码器模块250可以使用高分辨率副本进行后续分析,以改进检测、对准和解码结果。
在操作530处,取景器模块230确定候选形状特征满足一个或多个形状特征标准或规则。例如,如果特定形状特征是轮廓线,则取景器模块230可以确定轮廓线是否是包围图像的一部分的封闭线。与一些实施例一致,形状特征规则滤除不相关或无关的特征。特定形状特征规则可以针对或用于各种目的。例如,特定的形状特征规则可用于滤除具有定制图形的低概率的候选形状特征。在该示例中,特定形状特征规则可以特定于定制图形。在其它示例中,一些形状特征规则可用于过滤掉不可能与光学条形码相关联的候选形状特征。在这些示例中,形状特征规则不一定特定于定制图形。
在操作540处,响应于候选形状特征满足形状特征规则,取景器模块230通过将候选形状特征与定制图形或定制符号的参考形状特征进行比较来识别图像中的定制图形或定制符号。例如,取景器模块230可以将候选形状特征的面积或尺寸与参考形状特征的参考面积或尺寸进行比较。在该示例中,取景器模块230基于候选形状特征和参考形状特征之间的匹配或近似匹配(例如,阈值之上的百分比匹配)来识别定制图形。以该方式,取景器模块230使用定制图形或定制图形的至少一部分作为取景器图案来识别图像的一部分内的光学条形码的存在。
在一些实施例中,取景器模块230从图像数据提取多个候选形状特征。在这些实施例中,取景器模块230对每一个候选形状特征进行评分,并根据相应的分数将多个候选形状特征排名。例如,取景器模块230基于相应候选形状特征满足的形状特征规则的计数或加权计数来确定相应候选形状特征的形状特征分数。取景器模块230可以循环访问从最高分数的候选形状特征开始排名的候选形状特征,并执行进一步的分析(例如,将候选形状特征与参考形状特征进行比较),以确定候选形状特征是定制图形。
在一些实施例中,参考形状特征是预定的,并且在其它实施例中,参考形状特征是动态确定的。例如,取景器模块230可以通过分析定制图形的参考图像来动态地确定参考形状特征。例如,取景器模块230可以执行与用于分析参考图像上的图像数据的分析技术类似的分析技术,诸如为参考图像的特定特征或特质计算参考面积值。在这些实施例中,取景器模块230动态地确定参考形状特征允许动态使用特定定制图形作为光学条形码中的功能图案。例如,当执行方法500时,可以向定制图案系统160提供(例如,在通信模块210处接收)表示参考图像的数据或表示参考特征的数据。以该方式,在执行方法500之前,不一定必须固定定制功能图案。
在另外的示例实施例中,取景器模块230在图像的图像数据中搜索多个定制图形(例如,其中利用多个版本或不同的定制图形作为功能图案)。在具体示例中,定制图形可以包括第一公司徽标,并且公司可以将徽标改为第二公司徽标。定制图案系统160可以被操作为将第一公司徽标用作取景器图案,并且将第二公司徽标用作取景器图案,并且当执行方法500时,定制图案系统160可以搜索每一个徽标。
在另外的示例实施例中,取景器模块230结合从图像数据提取的其它候选形状特征来识别图像中的定制图形。例如,取景器模块230可以搜索定制图形(例如,徽标)和围绕定制图形的外框(例如,外框325)二者。在这些实施例中,取景器模块230识别定制图形和从图像数据提取的一个或多个附加候选形状特征的组合。
在操作550处,响应于识别定制图形,对准模块240从图像数据提取图像中的定制图形或定制符号的空间属性、几何属性或空间性质(property)。例如,对准模块240从图像数据提取定制图形的位置、缩放或取向。在各种示例实施例中,空间属性指示图像中定制图形的取向。对准模块240或解码器模块250可以使用空间属性来帮助解码光学条形码。
在另外的实施例中,对准模块240提取从图像的图像数据提取的另一候选形状特征的空间属性、几何属性或空间性质。例如,对准模块240提取围绕定制图形的外框(例如,图3A的外框325)和编码数据的标记的空间属性。将要注意的是,在以下的整个讨论中,对准模块240和解码器模块250可以以与定制图形的空间属性相同或相似的方式使用外框的空间属性来确定用于帮助解码的光学条形码的对准。例如,对准模块240或解码器模块250可以使用外框的空间属性来生成用于解码被编码在图像中的数据的图像的变换图像。
在操作560处,解码器模块250使用图像中的定制图形的空间属性从图像数据解码被编码在图像的一部分中的数据。例如,解码器模块250可以使用空间属性(例如,去偏斜、旋转、缩放或另一类型的图像变换)来执行图像变换,以改善被编码在图像的一部分中的数据的可检测性或可读性。在示例实施例中,解码器模块250通过检测指示被包括在图像中的数据的标记(例如,点、正方形或另一标记)来解码被编码在图像的一部分中的数据。以该方式,解码器模块250使用定制图形或定制图形的至少一部分作为对准图案,以帮助解码光学条形码。在各种实施例中,解码器模块250利用Reed-Solomon纠错方案来解码被编码在图像中的数据。Reed-Solomon纠错方案允许在被编码在图像中的一定百分比的数据被破坏、损坏或不正确解码的情况下,对被编码在图像中的数据的成功解码。在另外的实施例中,解码器模块250使用小的校验码来验证从图像数据解码的值是包括实际数据而不仅仅是随机数据(例如,随机比特)的值。
在另外的示例实施例中,解码器模块250拒绝解码数据的某些结果(例如,从已知由定制图案系统160的管理员指定为无效的图像数据解码的数据的结果)。例如,即使解码数据通过其它数据完整性测试(例如,纠错和校验),解码器模块250也可以拒绝包括全零、全一或另一指定结果的解码数据。例如,当定制图案系统160扫描没有指示数据的任何相关联的标记的定制图形时,这可发生(例如,在定制图形是徽标的情况下,简单地扫描徽标可能在解码的数据中产生全零并且可能被解码器模块250拒绝)。在具体示例中,如图19所示,扫描与社交消息应用程序1908相关联的图标可能产生全零的数据,并且解码器模块250将拒绝扫描。
图6是示出用于使用定制功能图案来识别光学条形码(例如,光学条形码406)的另外的示例操作的流程图。在操作530处,取景器模块230确定候选形状特征满足形状特征规则。在一些实施例中,操作530包括图6的操作。
在操作610处,取景器模块230确定候选形状特征包括来自图像数据的封闭线。也就是说,形状特征规则包括路径规则,并且取景器模块230确定候选形状特征满足路径规则。取景器模块230可以利用各种技术来确定候选形状特征满足路径规则。
在操作630处,取景器模块230通过确定候选形状特征通过具有从特定点开始并返回到相同特定点的路径来包围图像的一部分来确定候选形状特征是否是封闭线。在示例实施例中,如果候选形状特征不满足路径规则(在图6中由“否”指示),则不执行对候选形状特征的进一步分析,并且取景器模块230分析另一候选形状特征或不执行进一步操作。可替代地,在操作640处,如果取景器模块230确定候选形状特征满足路径规则(在图6中由“是”指示),则执行方法500的后续操作。
为了说明图6的构思,图7是示出使用定制功能图案来识别光学条形码的示例的图示700。在图示700中,图像710是从用户设备接收或访问的示例图像。图像720是描绘示例候选形状特征730的示例图像。例如,取景器模块230对图像710执行边缘检测图像处理以导出图像720。取景器模块230从图像720识别候选形状特征730。
标注740示出了候选形状特征730的特定候选形状特征。标注740示出了特定候选形状特征的轮廓线750(示为虚线),路径760,和特定候选形状特征的点770。在标注740中,如果从点770处开始的路径760可以跟随轮廓线750并返回到点770,则取景器模块230确定满足路径规则。在图示700中,在标注740中示出的特定候选形状特征确实满足路径规则,因为路径760可以跟随轮廓线750并返回到点770。
图8是示出用于使用定制功能图案来识别光学条形码的另外的示例操作的流程图。在操作530处,取景器模块230确定候选形状特征满足形状特征规则。在一些实施例中,操作530包括图8的操作。
在操作810处,取景器模块230计算候选形状特征的面积值或尺寸的近似值。例如,取景器模块230使用诸如多边形(例如,正方形、矩形或四边形)或非多边形形状(例如,椭圆形)的代理(proxy)形状来粗略估计候选形状特征的形状。取景器模块230将代理形状拟合或近似拟合于候选形状特征的外边缘或外周边(perimeter),使得代理形状代表候选形状特征的面积。随后,取景器模块230计算代理形状的面积值以确定候选形状特征的面积值或尺寸近似值。在一些实施例中,取景器模块230利用这种技术(例如,多边形面积近似)来避免在候选形状特征可能形状复杂的情况下候选形状特征的计算上昂贵的面积计算(例如,针对非均匀或不规则形状特征的面积计算通常在计算上更昂贵)。在一些实施例中,可以利用诸如基于像素的计数的其它技术来确定面积值。
在操作820处,取景器模块230确定候选形状特征的面积分数或尺寸分数。取景器模块230通过将候选形状特征的面积值与参考面积值进行比较来确定面积分数。在一些实施例中,参考面积值包括拟合于定制图形的参考图像的对应代理形状的面积值(例如,从前视图的角度来看,拟合于幽灵徽标的代理形状的面积值)。在其它实施例中,参考面积值包括定制图形的面积值(例如,幽灵徽标的面积值)。取景器模块230例如通过确定候选形状特征面积值和参考面积值之间的匹配百分比来计算面积分数。取景器模块230可以利用各种各样的其它方案和技术来计算面积分数。
在操作830处,取景器模块230确定面积分数是否超过阈值。阈值可以是预定义的或动态确定(例如,基于扫描的滚动历史平均值统计确定)。
在操作840处,基于面积分数超过阈值(由图8中的“是”指示),取景器模块230确定候选形状特征满足面积规则并且进行到后续操作。在另一示例实施例中,取景器模块230将面积分数与面积范围进行比较以满足面积规则(例如,大于特定值和小于特定值)。根据示例实施例,如果面积分数不超过阈值(在图8中由“否”指示),则取景器模块230分析另一候选形状特征或不执行进一步操作。在一些示例实施例中,取景器模块230使用候选形状特征是否满足形状特征规则的确定作为过滤器(例如,去除或跳过不太可能是定制图形的候选形状特征)来识别将要在识别图像中的定制图形的过程中被进一步分析的候选形状特征。
为了进一步说明图8的构思,图9是示出使用定制功能图案来识别光学条形码的示例的图示900。在图示900中,图像902是从用户设备接收的示例图像。标注904示出了图像902的空间取向。在该示例中,图像902被描绘并从前面右侧的角度观察。图像902包括光学条形码906。在该示例中,光学条形码906将定制图形用作功能图案。
标注908示出了图像902的放大部分,其包括由取景器模块230分析以识别定制图形的候选形状特征。在标注908中,多边形910(例如,四边形)被示为拟合于候选形状特征的周边。面积值912是多边形910的面积。
标注914示出定制图形的参考图像。标注916示出参考图像的空间取向。在该示例中,从前视图的角度示出参考图像。多边形918被示为拟合于参考图像的周边。参考面积值920是多边形918的面积。虽然图9将多边形910和918示出为四边形,但是取景器模块230可以利用其它形状,诸如正方形或跟随或追踪候选形状特征的轮廓的形状(例如,跟随候选形状特征的轮廓点的n边多边形或平滑拟合的形状)。
取景器模块230将面积值912与参考面积值920进行比较,以确定候选形状特征满足面积规则。诸如图像902的音符之一的图像902的另一候选形状特征将不具有与参考面积值相似的面积值,并且因此不能满足面积规则。以该方式,取景器模块230可以快速地去除或跳过不太可能被识别为定制图形的某些候选形状特征。
图10是示出用于使用定制功能图案来解码光学条形码的另外示例操作的流程图。在操作540处,取景器模块230通过将候选形状特征与定制图形的参考形状特征进行比较来识别图像中的定制图形。在操作540之后,在一些示例性实施例中执行图10的操作。
在操作1010处,在区别性特征指示定制图形的对准的情况下,对准模块240从图像数据提取用于定制图形的区别性特征(例如,可用于确定定制图形的取向的定制图形的特定不对称性)。例如,区别性特征可以包括定制图形的区别性点、区别性曲线、特定不对称性、特定不均匀性或定制图形的另一特质。
在操作1020处,对准模块240通过将区别性特征与定制图形的参考区别性特征进行比较来确定图像中的定制图形的取向。例如,对准模块240将定制图形的提取的区别性特征映射到参考区别性特征,以确定区别性特征之间的空间差异。以该方式,对准模块240可以基于确定的空间差异来确定与定制图形的参考图像相比的定制图形的对准。
在操作1030处,对准模块240通过根据定制图形的取向来变换图像而生成变换的图像。例如,对准模块240可旋转、去偏斜、缩放或以其它方式在空间上变换图像,以允许对图像中的数据进行更准确的解码。
在操作1040处,解码器模块250使用图像中的定制图形的取向和位置来解码被编码在图像中的数据。例如,解码器模块250从变换的图像解码被编码在图像中的日期。在特定情况下,将图像变换为前视图,以增加表示被编码在图像中的数据的图像中标记的可见性和均匀性。
为了帮助理解图10的公开内容,图11是示出使用定制功能图案来解码光学条形码的示例的图示1100。在图示1100中,类似于如上所述的图9,图像1102是从用户设备接收的示例图像。在该示例中,图像1102被描绘并从前面右侧观察。图像1102包括光学条形码1106。在该示例中,光学条形码1106利用定制图形作为功能图案。
标注1108示出了图像1102的放大部分,其包括由对准模块240分析的候选形状特征。标注1110示出了标注1108的放大部分,其示出候选形状特征的区别性特征。
标注1112示出了定制图形的参考图像。标注1114示出了参考图像的空间取向。在该示例中,从前视图的角度示出参考图像。标注1116示出了标注1112的放大部分,其示出了参考图像的参考区别性特征。
对准模块240比较区别性特征和参考区别性特征以确定包括取向、缩放或位置的对准。例如,如果包括定制图形的图像是从前透视图示出,则图像中定制图形的区别性特征应与参考区别性特征匹配。对准模块240可以基于区别性特征和参考区别性特征之间的不匹配来确定透视变化。对准模块240使用不匹配来推断或确定图像的透视图或可由解码器模块250利用的图像的其它空间属性,以更准确地解码来自图像的数据。
图12A、图12B和图12C是示出用于帮助使用定制功能图案来解码光学条形码的各种图像变换的图。在示例实施例中,对准模块240或解码器模块250执行图像变换,诸如由示例光学条形码1200和1202之间的转换所示的旋转。在其它实施例中,对准模块240或解码器模块250执行去偏斜、缩放变换或另一种类型的图像变换。在另外的示例实施例中,对准模块240或解码器模块250执行其它图像变换,诸如由示例光学条形码1204和1206之间的转换所示的颜色反转。对准模块240或解码器模块250可执行未示出的其它图像变换,诸如图像锐化、降噪或其它图像处理。
图12C示出了确定定制图形的对准的技术的示例。示例光学条形码1208从零度稍微旋转。椭圆1210可以拟合于定制图形以确定诸如光学条形码1208的旋转值的对准。椭圆的长轴(major axis)1212提供从零度起的旋转值1214的指示(当然,短轴或另一个轴可以类似地用于确定旋转值)。对准模块240或解码器模块250可以执行图像变换以对旋转值1214进行调节,如示例光学条形码1216从原始取向1218旋转所示。以该方式,对准模块240或解码器模块250可以使用定制图形来确定被包括在图像中的光学条形码的对准,以帮助解码被编码在图像中的数据。
图13是示出用于使用定制功能图案来解码光学条形码的另外的示例操作的流程图。在操作1040处,解码器模块250从图像数据解码被编码在图像的一部分中的数据。在操作1040之后,在一些示例实施例中执行图13的操作。
在操作1310处,解码器模块250确定使用变换的图像来解码被编码在图像的一部分中的数据的失败。例如,如果从图像解码的数据被破坏、不完整或混乱,则解码器模块250确定解码数据的失败。在另一个实例中,被编码在图像中的数据的一部分可以用于数据验证。也就是说,已知或可确定的值可以被编码到数据中,使得如果从图像中解码该值,则该数据是有效的。解码器模块250可以利用各种其它方案和技术来确定解码被编码在图像的一部分中的数据的失败。
在操作1320处,对准模块240通过根据定制图形的不同取向来变换图像而生成另一变换图像。例如,对准模块240生成旋转180度的变换图像,并且解码器模块250第二次尝试对数据进行解码。对准模块240可以执行可以解决解码诸如90度旋转的失败的公共变换,或经常解决过去扫描中解码失败的另一变换。在一些实施例中,对准模块240执行图像的图像数据的另一分析,以确定在生成另一变换图像时要使用的另一对准。对准模块240可以通过将不同类型的过滤器(例如,取向、减色、亮度操纵等)应用到定制图形来执行其它类型的变换图像。
在操作1330处,解码器模块250使用另一变换图像解码被编码在图像的一部分中的数据。对准模块240和解码器模块250可以尝试任何数量的对准的迭代(例如,设定次数的尝试或无限数量的尝试)直到数据从图像成功地解码时结束。以该方式,定制图案系统160可以使用标记进行自对准。
为了进一步结合图13来解释讨论,图14是示出使用定制功能图案来解码光学条形码的示例的图示1400。示例光学条形码1410示出了具有空心圆的标记的位置。光学条形码1410的每一个空心圆是标记的位置。示例光学条形码1420示出了标记位置和标记之间的未对准。示例光学条形码1430示出了标记和标记位置之间的匹配对准。
现在转到图15和图16,尽管在此描述的用户界面(例如,图15、16和18)描绘了具体的示例用户界面和用户界面元素,但这些仅仅是非限制性示例,并且许多其它替代用户界面和用户界面元素可由呈现模块220生成并呈现给用户。应当注意,在此描述的显示器的替代呈现包括附加信息、图形、选项等;其它呈现包括较少的信息,或提供省略的(abridged)信息供用户方便使用。
图15是描绘用于识别光学条形码的示例用户界面1510的用户界面图示1500。在用户界面图示1500中,用户界面1510示出了从用户设备(例如,客户端设备110、用户设备414)的相机传感器采集的基本上实时的图像。用户界面1510可以包括图形和叠加或覆盖在下方显示的基本上实时图像上的用户界面元素。例如,用户界面元素1520是指示光学条形码的识别的方括号。用户界面1510可以向用户指示特定光学条形码的成功或不成功的扫描。
图16是描绘用于执行与光学条形码相关联的动作的示例用户界面1610的用户界面图示1600。在示例实施例中,用户界面1610显示在图15的用户界面1510之后(例如,在成功扫描之后,显示与扫描相关联的各种动作选项)。用户界面1610可以包括与检测特定光学条形码(诸如用户界面元素1620)相关联的各种动作选项。在一些实施例中,响应于检测和解码特定光学条形码,定制图案系统160自动执行特定动作。
在另外的示例实施例中,该动作专用于为使用定制功能图案(例如,快照码)的光学条形码提供扫描功能的软件。在一些实施例中,扫描光学条形码的软件可以在不与服务器通信的情况下执行某些专用动作。这是由于定制功能图案的专有的品牌本性,其不一定由其它第三方软件应用程序公开解码。快照码可以指定这种动作,因为看起来扫描品牌光学条形码的软件(例如,诸如应用程序的移动计算软件)与品牌光学条形码相关联。
图17是示出用于使用定制功能图案生成光学条形码的示例操作的流程图。方法1700的操作可以由定制图案系统160的组件执行,并且为了说明的目的如下所述。
在操作1710处,通信模块210接收生成机器可读图像(诸如使用定制功能图案的光学条形码)的请求。在一些实施例中,请求包括被编码在图像中的用户指定的数据。
在操作1720处,编码器模块270呈现编码用户指定数据的标记的机器可读布置。例如,标记可以包括以预定图案布置的点、正方形或其它标记。在示例实施例中,在布置中的特定位置处的标记的存在指示数据。
在操作1730处,编码器模块270通过关于被包括在机器可读图像中的定制图形的位置将机器可读的标记的布置定位在机器可读图像中来生成机器可读图像。例如,定制图形可以在光学条形码中居中或位于其它位置(例如,图3A和图3B的示例光学条形码)。
在操作1740处,通信模块210存储或发送机器可读图像。例如,通信模块210可以将机器可读图像存储在用户设备、服务器或(本地或远程存储的)另一个存储库上。在其它情况下,通信模块210向用户设备、服务器或一个或多个其它设备发送机器可读图像。
图18是描绘用于使用定制图形生成光学条形码1820的示例用户界面1810的用户界面图示1800。用户界面元件1830向用户提供用于生成、共享或保存机器可读图像的选项。在一些实施例中,用户界面图示1800包括被配置为接收编码到机器可读图像中的用户指定的数据(例如,社交网络服务会员标识符、网站地址或另一条信息)的用户界面。
图19示出了与一些实施例一致的执行移动操作系统(例如,IOSTM、ANDROIDTMPHONE或其它移动操作系统)的示例移动设备1900。在一个实施例中,移动设备1900包括可被操作为从用户1902接收触知数据的触摸屏。例如,用户1902可物理地触摸1904移动设备1900,并且响应于触摸1904,移动设备1900可以确定诸如触摸位置、触摸力或手势运动的触知数据。在各种示例实施例中,移动设备1900显示可被操作为启动应用程序或以其它方式管理移动设备1900的各个方面的主屏幕1906(例如,在IOSTM上的桌面(Springboard))。在一些示例实施例中,主屏幕1906提供诸如电池寿命、连接或其它硬件状态的状态信息。用户1902可以通过触摸相应用户界面元素所占据的面积来激活用户界面元素。以该方式,用户1902与移动设备1900的应用程序交互。例如,触摸由被包括在主屏幕1906中的特定图标占据的面积导致与特定图标对应的应用程序的启动。
可以在移动设备1900上执行许多种类的应用程序(同样称为“应用软件”),诸如本机应用程序(例如,以Objective-C、Swift或在IOSTM上运行的另一种合适的语言编程的应用程序,或在ANDROIDTM上运行的以Java编程的应用程序)、移动Web应用程序(例如,以超文本标记语言-5(HTML5)编写的应用程序)或混合应用程序(例如,启动HTML5会话的本机shell应用程序)。例如,移动设备1900包括消息应用软件、音频记录应用软件、相机应用软件、书籍阅读器应用软件、媒体应用软件、健身应用软件、文件管理应用软件、位置应用软件、浏览器应用软件、设置应用软件、联系人应用软件、电话呼叫应用软件或其它应用软件(例如游戏应用软件、社交网络应用软件、生物特征监视应用软件)。在另一示例中,移动设备1900包括诸如的社交消息应用程序1908,与一些实施例一致,该允许用户交换包括媒体内容的短暂消息。在该示例中,社交消息应用程序1908可以并入在此描述的实施例的各方面。
某些实施例在此被描述为包括逻辑或多个组件、模块或机构。模块可以构成软件模块(例如,在机器可读介质上实现的代码)或硬件模块。“硬件模块”是能够执行某些操作并且可以以某种物理方式配置或布置的有形单元。在各种示例实施例中,一个或多个计算机系统(例如,独立计算机系统、客户端计算机系统或服务器计算机系统)或计算机系统的一个或多个硬件模块(例如,处理器或一组处理器)可以由软件(例如,应用程序或应用程序部分)配置为操作以执行如在此所述的某些操作的硬件模块。
在一些实施例中,硬件模块可以机械地、电子地或以其任何合适的组合来实现。例如,硬件模块可以包括被永久配置为执行某些操作的专用电路或逻辑。例如,硬件模块可以是专用处理器,诸如现场可编程门阵列(FPGA)或特定用途集成电路(ASIC)。硬件模块同样可以包括由软件临时配置以执行某些操作的可编程逻辑或电路。例如,硬件模块可以包括由通用处理器或其它可编程处理器执行的软件。一旦由这种软件配置,硬件模块就成为唯一定制为执行配置的功能的特定机器(或机器的特定组件),并且不再是通用处理器。应当理解,在专用和永久配置的电路中或在临时配置的电路(例如,由软件配置)中机械地实现硬件模块的决定可以由成本和时间考虑来驱动。
因此,短语“硬件模块”应被理解为包括有形实体,即物理构造、永久配置(例如,硬连线)或临时配置(例如,编程)为以某些方式操作或执行在此所述的某些操作的实体。如在此所使用的,“硬件实现的模块”是指硬件模块。考虑到其中硬件模块被临时配置(例如,编程)的实施例,硬件模块中的每一个硬件模块不需要在任何一个时刻被配置或实例化。例如,在硬件模块包括由软件配置成为专用处理器的通用处理器的情况下,通用处理器可以在不同时间被配置为分别不同的专用处理器(例如,包括不同的硬件模块)。因此,软件相应地配置特定的一个处理器或多个处理器,例如,在一个时刻构成特定的硬件模块,并且在不同的时刻构成不同的硬件模块。
硬件模块可以向其它硬件模块提供信息和从其它硬件模块接收信息。因此,所描述的硬件模块可以被认为是通信耦接的。在同时存在多个硬件模块的情况下,可以通过在两个或更多个硬件模块之间的信号传输(例如,通过适当的电路和总线)实现通信。在其中在不同时间配置或实例化多个硬件模块的实施例中,可以例如通过存储和检索多个硬件模块能够访问的存储器结构中的信息来实现这种硬件模块之间的通信。例如,一个硬件模块可以执行操作并将该操作的输出存储在与其通信耦接的存储器设备中。然后,另外的硬件模块可以在稍后的时间访问存储器设备以检索和处理存储的输出。硬件模块同样可以启动与输入或输出设备的通信,并且可以对资源(例如,信息的集合)进行操作。
由临时配置(例如通过软件)或永久地配置为执行相关操作的一个或多个处理器来至少部分地执行在此描述的示例方法的各种操作。无论是临时还是永久配置,这种处理器构成操作以执行在此所述的一个或多个操作或功能的处理器实现的模块。如在此所使用的,“处理器实现的模块”是指使用一个或多个处理器实现的硬件模块。
类似地,在此描述的方法可以是至少部分地处理器实现的,其中特定的一个处理器或多个处理器是硬件的示例。例如,方法的操作中的至少一些操作可以由一个或多个处理器或处理器实现的模块来执行。此外,一个或多个处理器同样可以操作以支持在“云计算”环境中或作为“软件即服务”(SaaS)的相关操作的性能。例如,可以由一组计算机(作为包括处理器的机器的示例)来执行操作中的至少一些操作,其中这些操作可经由网络(例如,因特网)以及经由一个或多个适当的接口(例如,应用程序接口(API))访问。
某些操作的性能可以被分布在处理器之间,不仅驻留在单个机器内,而且横跨多个机器部署。在一些示例实施例中,处理器或处理器实现的模块可以位于单个地理位置中(例如,在家庭环境、办公环境或服务器场内)。在其它示例实施例中,处理器或处理器实现的模块横跨多个地理位置分布。
结合上述附图描述的模块、方法、应用程序等在一些实施例中在机器和相关联的软件架构的上下文中实现。下面的部分描述了适用于所公开的实施例的代表性软件架构和机器(例如,硬件)架构。
软件架构与硬件架构一起使用以创建出于特定目的定制的设备和机器。例如,与特定软件架构相结合的特定硬件架构将创建移动设备,诸如移动电话、平板设备等。稍微不同的硬件和软件架构可能产生用于“物联网”的智能设备。而另一组合产生在云计算架构内使用的服务器计算机。并不是这种软件和硬件架构的所有组合都在这里呈现,因为本领域技术人员可以容易地理解如何在不同于在此所包含的公开的背景下实现本发明。
图20是示出代表性软件架构2002的框图2000,其可以结合在此所描述的各种硬件架构来使用。图20仅仅是软件架构的非限制性示例,并且应当理解,可以实现许多其它架构以帮助在此所描述的功能。软件架构2002可以在诸如图21的机器2100的硬件上执行,除了其它之外,该机器2100包括处理器2110、存储器/存储装置2130和I/O组件2150。代表性硬件层2004被示出并且可以表示例如图21的机器2100。代表性硬件层2004包括具有相关联的可执行指令2008的一个或多个处理单元2006。可执行指令2008表示软件架构2002的可执行指令,包括上述附图和描述中的方法、模块等的实施方式。硬件层2004同样包括同样具有可执行指令2008的存储器和存储模块2010。硬件层2004同样可以包括由2012所指示的其它硬件,该2012表示硬件层2004的任何其它硬件,诸如作为机器2100的一部分示出的其它硬件。
在图20的示例架构中,软件2002可以被概念化为每一层提供特定功能的一堆层。例如,软件2002可以包括诸如操作系统2014、库2016、框架/中间件2018、应用程序2020和表示层2022的层。可操作地,应用程序2020或层内的其它组件可以通过软件堆栈调用应用程序编程接口(API)调用2024,并且响应于API调用2024接收示出为消息2026的响应、返回值等。所示的层本质上是代表性的,并且并不是所有的软件架构都具有所有层。例如,一些移动或专用操作系统可能不提供框架/中间件层2018,而其它可以提供这种层。其它软件架构可以包括附加层或不同层。
操作系统2014可以管理硬件资源并提供公共服务。操作系统2014可以包括例如内核2028、服务2030和驱动器2032。内核2028可以充当硬件和其它软件层之间的抽象层。例如,内核2028可以负责存储器管理、处理器管理(例如,调度)、组件管理、联网、安全设置等。服务2030可以为其它软件层提供其它公共服务。驱动器2032可以负责控制底层硬件或与底层硬件进行接口连接。例如,驱动器2032可以包括显示驱动器、相机驱动器、驱动器、闪存驱动器、串行通信驱动器(例如,通用串行总线(USB)驱动器)、驱动器、音频驱动器、电源管理驱动器等,这取决于硬件配置。在示例实施例中,操作系统2014包括成像服务2033,其可以提供诸如硬件加速图像处理的图像处理服务或诸如对光学传感器或光学传感器数据的低级访问的图像采集服务。
库2016可以提供可由应用程序2020或其它组件或层使用的公共基础设施。库2016通常提供允许其它软件模块以比与底层操作系统2014功能(例如,内核2028、服务2030或驱动器2032)直接接口连接更简单的方式执行任务的功能。库2016可以包括系统2034库(例如,C标准库),其可以提供诸如存储器分配功能、字符串操作功能、数学功能等的功能。此外,库2016可以包括诸如媒体库(例如,支持诸如MPREG4、H.264、MP3、AAC、AMR、JPG或PNG的各种媒体格式的呈现和操纵(manipulation)的库)、图形库(例如,可用于在显示器上的图形内容中呈现2D和3D的OpenGL框架)、数据库库(例如,可提供各种关系数据库功能的SQLite)、Web库(例如,可提供Web浏览功能的WebKit)等的API库2036。库2016同样可以包括各种各样的其它库2038,以向应用程序2020和其它软件组件/模块提供许多其它API。在示例实施例中,库2016包括提供图像处理或图像采集功能的成像库2039,该图像处理或图像采集功能可由定制图案系统160使用。
框架2018(有时同样称为中间件)可以提供可由应用程序2020或其它软件组件/模块使用的更高级别的公共基础设施。例如,框架2018可以提供各种图形用户界面(GUI)功能、高级资源管理、高级位置服务等。框架2018可以提供可以由应用程序2020或其它软件组件/模块使用的广泛的其它API,其中的一些可能特定于特定操作系统或平台。在示例实施例中,框架2018包括图像处理框架2022和图像采集框架2023。图像处理框架2022可以为可以在定制图案系统160的各个方面使用的图像处理功能提供高级支持。类似地,图像采集框架2023可以为采集图像以及与光学传感器进行接口连接提供高级支持。
应用程序2020包括内置应用程序2040或第三方应用程序2042。代表性的内置应用程序2040的示例可以包括但不限于联系人应用程序、浏览器应用程序、书籍阅读器应用程序、位置应用程序、媒体应用程序、消息收发应用程序或游戏应用程序。第三方应用程序2042可以包括任何内置应用程序以及各种各样的其它应用程序。在具体示例中,第三方应用程序2042(例如,由除了特定平台的供应商之外的实体使用ANDROIDTM或IOSTM软件开发工具包(SDK)开发的应用程序)可以是在诸如IOSTM、ANDROIDTMPhone或其它移动操作系统的移动操作系统上运行的移动软件。在该示例中,第三方应用程序2042可以调用由诸如操作系统2014的移动操作系统提供的API调用2024以帮助在此所描述的功能。在示例实施例中,应用程序220包括消息收发应用程序2043,该消息收发应用程序2043包括作为应用程序的一部分的定制图案系统160。在另一个实施例中,应用程序220包括独立应用程序2045,该独立应用程序2045包括定制图案系统160。
应用程序2020可以利用内置的操作系统功能(例如,内核2028、服务2030或驱动器2032)、库(例如,系统2034、API 2036和其它库2038)、框架/中间件2018来创建与系统的用户交互的用户接口。可替代地或另外,在一些系统中,与用户的交互可以通过诸如表示层2044的表示层发生。在这些系统中,应用程序/模块“逻辑”可以与和用户交互的应用程序/模块的各方面分离。
一些软件架构利用虚拟机。在图20的示例中,这由虚拟机2048示出。虚拟机创建软件环境,其中应用程序/模块可以像在硬件机器(例如,诸如图21的机器)上执行一样执行。虚拟机由主机操作系统(图21中的操作系统2014)托管,并且通常(虽然并不总是)具有虚拟机监视器2046,该虚拟机监视器2046管理虚拟机的操作以及与主机操作系统(即操作系统2014)进行接口连接。软件架构在诸如操作系统2050、库2052、框架/中间件2054、应用程序2056或表示层2058的虚拟机内执行。在虚拟机2048内执行的这些软件架构的层可以与先前描述的对应的层相同或者可以是不同的。
图21是示出根据一些示例实施例的机器2100的组件的框图,其能够从机器可读介质(例如,机器可读存储介质)读取指令并且执行在此所讨论的任何一种或多种方法论。具体地,图21示出了以计算机系统的示例形式的机器2100的图示表示,在该计算机系统内用于使机器2100执行在此讨论的任何一种或多种方法论的指令2116(例如,软件、程序、应用程序、小应用程序(applet)、应用软件或其它可执行代码)可以被执行。例如,该指令可使机器执行图5、6、8、10、13和17的流程图。另外或可替代地,指令可以实现图2的通信模块210、呈现模块220、取景器模块230、对准模块240、解码器模块250、动作模块260,或编码器模块270等。该指令将通用的非编程机器变换成被编程为以所描述的方式执行所描述和示出的功能的特定机器。在替代实施例中,机器2100作为独立设备操作,或者可以耦接(例如,联网)到其它机器。在联网部署中,机器2100可以在服务器-客户端网络环境中以服务器机器或客户端机器的能力进行操作,或者作为点对点(或分布式)网络环境中的对等机器操作。机器2100可以包括但不限于服务器计算机、客户端计算机、个人计算机(PC)、平板计算机、膝上型计算机、上网本、机顶盒(STB)、个人数字助理(PDA)、娱乐媒体系统、蜂窝电话、智能电话、移动设备、可穿戴设备(例如,智能手表)、智能家居设备(例如,智能家电),其它智能设备、网络设备、网络路由器、网络交换机、网络桥接器或能够执行指令2116的任何机器,该指令2116顺序地或以其它方式指定机器2100要采取的动作。此外,虽然仅示出了单个机器2100,但是术语“机器”同样应被视为包括单独或共同执行指令2116以执行在此所讨论的任何一种或多种方法论的机器2100的集合。
机器2100可以包括可被配置为诸如经由总线2102彼此通信的处理器2110、存储器/存储装置2130和I/O组件2150。在示例实施例中,处理器2110(例如,中央处理单元(CPU)、精简指令集计算(RISC)处理器、复杂指令集计算(CISC)处理器、图形处理单元(GPU)、数字信号处理器(DSP)、特定用途集成电路(ASIC)、射频集成电路(RFIC)、另一处理器或其任何合适的组合)可以包括例如可执行指令2116的处理器2112和处理器2114。术语“处理器”旨在包括多核处理器,该多核处理器可以包括可同时执行指令的两个或更多个独立处理器(有时称为“核”)。尽管图21示出了多个处理器,但是机器2100可以包括具有单核的单处理器,具有多核的单处理器(例如,多核处理器),具有单核的多处理器,具有多核的多处理器或其任何组合。
存储器/存储装置2130可以包括存储器2132(诸如主存储器或其它存储器存储装置)和存储单元2136,二者可以经由总线2102访问处理器2110。存储单元2136和存储器2132存储体现在此所述的任何一种或多种方法论或功能的指令2116。指令2116同样可以在机器2100对其执行的期间完全或部分地驻留在存储器2132内、存储单元2136内、处理器2110的至少一个处理器2110内(例如,高速缓冲存储器的处理器内)或其任何适当的组合中。因此,存储器2132、存储单元2136和处理器2110的存储器是机器可读介质的示例。
如在此所使用的,术语“机器可读介质”是指能够临时或永久地存储指令和数据的设备,并且可以包括但不限于随机存取存储器(RAM)、只读存储器(ROM)、缓冲存储器、闪速存储器、光学介质、磁性介质、高速缓冲存储器、其它类型的存储装置(例如,可擦除可编程只读存储器(EEPROM))或其任何合适的组合。术语“机器可读介质”应该被视为包括能够存储指令2116的单个介质或多个介质(例如,集中式或分布式数据库,或相关联的高速缓存和服务器)。术语“机器可读介质”同样应当被视为包括能够存储由机器(例如机器2100)执行的指令(例如,指令2116)的任何介质或多个介质的组合,使得当由机器2100的一个或多个处理器(例如,处理器2110)执行指令时使机器2100执行在此所描述的任何一种或多种方法论。因此,“机器可读介质”是指单个存储装置或设备,以及包括多个存储装置或设备的“基于云”的存储系统或存储网络。
I/O组件2150可以包括用于接收输入、提供输出、产生输出、发送信息、交换信息、采集测量等的各种各样的组件。在特定机器中包括的特定I/O组件2150将取决于机器的类型。例如,诸如移动电话的便携式机器将可能包括触摸输入设备或其它这种输入机构,而无头服务器机器将可能不包括这种触摸输入设备。应当理解,I/O组件2150可以包括图21中未示出的许多其它组件。根据功能仅将I/O组件2150分组用于简化以下讨论,并且分组决不是限制性的。在各种示例实施例中,I/O组件2150可以包括输出组件2152和输入组件2154。输出组件2152可以包括视觉组件(例如,诸如等离子体显示面板(PDP)、发光二极管(LED)显示器、液晶显示器(LCD)、投影仪或阴极射线管(CRT)的显示器)、声学组件(例如扬声器)、触觉组件(例如振动电动机、电阻机构)、其它信号发生器等。输入组件2154可以包括字母数字输入组件(例如,键盘、被配置为接收字母数字输入的触摸屏、光电(photo-optical)键盘或其它字母数字输入组件)、基于点的输入组件(例如,鼠标、触摸板、轨迹球、操纵杆、运动传感器或其它指向仪器)、触知输入组件(例如,物理按钮、提供触摸或触摸手势的位置和力的触摸屏或其它触知输入组件)、音频输入组件(例如,例如麦克风)等。
在另外的示例实施例中,I/O组件2150可以包括在多个其它组件中的生物特征组件2156、运动组件2158、环境组件2160或位置组件2162。例如,生物特征组件2156可以包括检测表达(例如手的表达、面部表情、声音表达、身体姿态或眼睛跟踪)、测量生物信号(例如,血压、心率、体温、出汗或脑波)、识别人(例如,语音识别、视网膜识别、面部识别、指纹识别或基于脑电图的识别)等的组件。运动组件2158可以包括加速度传感器组件(例如,加速度计)、重力传感器组件、旋转传感器组件(例如陀螺仪)等。环境组件2160可以包括例如照明传感器组件(例如,光度计)、温度传感器组件(例如,检测环境温度的一个或多个温度计)、湿度传感器组件、压力传感器组件(例如气压计)、声学传感器组件(例如,检测背景噪声的一个或多个麦克风)、接近传感器组件(例如,检测附近物体的红外传感器)、气体传感器组件(例如,机器嗅觉检测传感器、为了安全用于检测有害气体浓度或测量大气中的污染物的气体检测传感器)或可能提供与周围物理环境对应的指示、测量或信号的其它组件。位置组件2162可以包括位置传感器组件(例如,全球定位系统(GPS)接收器组件)、高度传感器组件(例如,检测空气压力的高度计或气压计,高度可以从该空气压力得到)、取向传感器组件(例如,磁力计)等。
可以使用各种各样的技术来实现通信。I/O组件2150可以包括通信组件2164,该通信组件2164可被操作为分别经由耦接(coupling)2182和耦接2172将机器2100耦接到网络2180或设备2170。例如,通信组件2164包括网络接口组件或与网络2180接口的其它合适的设备。在另外的示例中,通信组件2164包括有线通信组件、无线通信组件、蜂窝通信组件、近场通信(NFC)组件、组件(例如,低能耗)、组件,和经由其它形态提供通信的其它通信组件。设备2170可以是另一种机器或各种各样的外围设备(例如,经由通用串行总线(USB)耦接的外围设备)中的任何一种。
此外,通信组件2164可以检测标识符(identifier)或包括可被操作为检测标识符的组件。例如,通信组件2164可以包括射频识别(RFID)标签读取器组件、NFC智能标签检测组件、光学读取器组件(例如,光学传感器,其检测诸如通用产品代码(UPC)条形码的一维条形码;诸如快速响应(QR)码、阿兹特克代码、数据矩阵、数据图、MaxiCode、PDF417、超代码、统一商业代码缩减空间符号(UCC RSS)-2D条形码的多维条形码,和其它光学代码)、声学检测组件(例如,用于识别标记的音频信号的麦克风)或其任何合适的组合。此外,可以经由通信组件2164得到各种信息,诸如经由因特网协议(IP)地理定位的定位、经由信号三角测量的定位、经由检测可以指示特定位置的或NFC信标信号的定位等。
在各种示例实施例中,网络2180的一个或多个部分可以是自组织网络、内联网、外部网、虚拟专用网络(VPN)、局域网(LAN)、无线LAN(WLAN)、广域网(WAN)、无线WAN(WWAN)、城域网(MAN)、因特网、因特网的一部分、公共交换电话网(PSTN)的一部分、普通老式电话服务(POTS)网络、蜂窝电话网络、无线网络、网络、另一类型的网络,或两个或更多个这种网络的组合。例如,网络2180或网络2180的一部分可以包括无线或蜂窝网络,并且耦接2182可以是码分多址(CDMA)连接、全球移动通信系统(GSM)连接,或其它类型的蜂窝或无线耦接。在该示例中,耦接2182可以实现任何各种类型的数据传输技术,诸如单载波无线电传输技术(1xRTT)、演进数据优化(EVDO)技术、通用分组无线业务(GPRS)技术、增强型数据速率GSM演进(EDGE)技术、包括3G的第三代合作伙伴计划(3GPP)、第四代无线(4G)网络、通用移动通信系统(UMTS)、高速分组接入(HSPA)、全球微波接入互操作性(WiMAX)、长期演进(LTE)标准,由各种标准设定组织定义的其它标准,其它远程协议或其它数据传输技术。
可以经由网络接口设备(例如,被包括在通信组件2164中的网络接口组件)使用传输介质通过网络2180发送或接收指令2116,并且利用多个公知传输协议中的任何一个协议(例如,超文本传输协议(HTTP))。类似地,可以经由耦接2172使用传输介质(例如,点对点耦接)向设备2170发送或接收指令2116。术语“传输介质”应被视为包括能够存储、编码或携带用于由机器2100执行的指令2116的任何无形介质,并且包括数字或模拟通信信号或其它无形介质以帮助这种软件的通信。传输介质是机器可读介质的实施例。
以下编号的示例是实施例。
1.一种系统,包括:
通信模块,用于接收用于定制图形的参考图像的参考图像数据;
取景器模块,用于从参考图像数据确定定制图形的参考形状特征,参考形状特征指示定制图形的特性(identity);
存储器,其被配置为存储形状特征规则和定制图形的参考形状特征;以及
耦接到存储器的硬件处理器,硬件处理器包括通信模块,
通信模块进一步被配置为从客户端设备接收图像的图像数据;
取景器模块进一步被配置为:
从图像数据提取图像的候选形状特征;
确定候选形状特征满足形状特征规则;
响应于候选形状特征满足形状特征规则,基于候选形状特征和定制图形的参考形状特征的比较来识别图像中的定制图形;以及
响应于取景器模块识别定制图形,解码器模块被配置为通过检测指示被包括在图像中的数据的标记来从图像数据解码被编码在图像的一部分中的数据。
2.根据示例1所述的系统,其中取景器模块进一步被配置为:
从图像数据计算候选形状特征的面积值,结合另一候选形状特征计算面积值以缩放面积值;
通过将面积值与定制图形的参考面积值进行比较来确定候选形状特征的面积分数;以及
基于面积分数超过阈值确定候选形状特征满足面积规则,其中形状特征规则包括面积规则。
3.一种计算机实现的方法,包括:
接收用于定制符号的参考图像的参考图像数据;
从参考图像数据确定参考图像的参考形状特征,参考形状特征指示定制符号的特性;
从用户设备接收图像的图像数据;
从图像数据提取图像的候选形状特征;
确定候选形状特征满足形状特征标准;
响应于候选形状特征满足形状特征标准,通过将候选形状特征与定制符号的参考形状特征进行比较来识别图像中的定制符号;
响应于识别定制符号,从图像数据提取图像中的定制符号的几何属性;以及
使用图像中的定制符号的几何属性从图像数据解码被编码在图像的一部分中的数据。
4.根据示例3所述的方法,进一步包括:
从图像数据计算候选形状特征的尺寸近似值,结合另一候选形状特征来计算该尺寸近似值以缩放尺寸近似值;
通过将尺寸近似值与定制符号的参考尺寸进行比较来确定候选形状特征的尺寸分数;以及
基于尺寸分数超过阈值确定候选形状特征满足尺寸标准,其中形状特征标准包括尺寸标准。
5.根据示例3或示例4所述的方法,进一步包括:
从图像数据确定候选形状特征包括封闭线,其中封闭线通过具有从特定点开始并返回到特定点的路径来包围图像的一部分;以及
基于候选形状特征包括封闭线确定候选形状特征满足路径标准,其中形状特征标准包括路径标准。
6.根据示例3至5中任一项所述的方法,其中几何属性包括图像中的定制符号的位置、缩放或取向中的至少一个。
7.根据示例3至6中任一项所述的方法,进一步包括:
从图像数据提取定制符号的区别性特征,区别性特征指示定制符号的标识;
通过将区别性特征与定制符号的参考区别性特征进行比较来确定图像中的定制符号的取向;以及
使用图像中的定制符号的取向和位置来解码被编码在图像中的数据。
8.根据示例7所述的方法,进一步包括:
识别图像中的定制符号的区别性点,其中区别性特征包括区别性点;以及
通过将区别性点相对于图像中的定制符号的位置与定制符号的参考点的位置进行比较来确定图像中的定制符号的取向。
9.根据示例7或示例8所述的方法,进一步包括:通过根据定制符号的取向变换图像来生成变换图像;以及
使用变换图像解码被编码在图像的一部分中的数据。
10.根据权利要求9所述的方法,进一步包括:
确定使用变换图像解码被编码在图像的一部分中的数据的失败;
通过根据定制符号的不同取向变换图像来生成另一变换图像;以及
使用另一变换图像解码被编码在图像的一部分中的数据。
11.根据示例3至10中任一项所述的方法,其中使用相对于图像中的定制符号定位的多个标记对被编码在图像的一部分中的数据进行编码,其中多个标记的相应标记表示一段数据。
12.根据示例3至11中任一项所述的方法,其中定制符号包括徽标、图标或商标中的至少一个。
13.根据示例3至12中任一项所述的方法,进一步包括:
从用户设备的图像传感器实时地接收图像数据。
14.根据示例3至13中任一项所述的方法,其中定制符号的形状包括至少一个不对称性。
15.根据示例3至14中任一项所述的方法,进一步包括:
响应于解码被编码在图像中的数据,使用从图像解码的数据对用户设备执行动作。
16.根据示例15所述的方法,其中动作包括由从图像解码的数据指定的动作。
17.根据示例15或16所述的方法,其中执行动作而不与服务器通信。
18.根据示例15至17中任一项所述的方法,其中动作专用于解码被编码在图像的一部分中的数据的移动计算应用程序。
19.一种携带指令的机器可读介质,该指令在由机器的至少一个处理器执行时使得机器执行操作,该操作包括:
接收用于特定设计的参考图像的参考图像数据;
从参考图像数据确定参考图像的参考形状特征,参考形状特征指示特定设计的特性;
从客户端系统接收图像的图像数据;
从图像数据提取图像的候选形状特征;
确定候选形状特征满足形状特征规则;
响应于候选形状特征满足形状特征规则,通过将候选形状特征与特定设计的参考形状特征进行比较来识别图像中的特定设计;
响应于识别特定设计,从图像数据提取图像中的特定设计的空间性质;以及
使用图像中的特定设计的空间性质从图像数据解码被编码在图像的一部分中的数据。
20.根据示例19所述的机器可读介质,其中操作进一步包括:
从图像数据计算候选形状特征的尺寸近似值,结合另一候选形状特征来计算尺寸近似值以缩放尺寸近似值;
通过将尺寸近似值与特定设计的参考尺寸进行比较来确定用于候选形状特征的尺寸分数;以及
基于尺寸分数超过阈值确定候选形状特征满足尺寸规则,其中形状特征规则包括尺寸规则。
21.一种携带指令的机器可读介质,该指令在由计算机的至少一个处理器执行时使得计算机执行示例3至18中任一个的方法。
在本说明书中,多个实体(instance)可以实现被描述为单个实体的组件、操作或结构。虽然一个或多个方法的单独操作被示出和描述为单独的操作,但可以并行地执行单独操作中的一个或多个,并且不需要以所示的顺序执行操作。作为示例配置中的分离的组件存在的结构和功能可以被实现为组合的结构或组件。类似地,作为单个组件存在的结构和功能可以被实现为分离的组件。这些和其它变化、修改、添加和改进落入本文主题的范围内。
虽然已经参考具体示例实施例描述了本发明主题的概述,但是在不脱离本公开的实施例的更广泛范围的情况下,可以对这些实施例进行各种修改和改变。仅出于方便,本发明主题的这些实施例在此可以单独地或共同地通过术语“发明”来被提及,而不旨在将本申请的范围限于任何单个公开或发明构思,如果事实上公开了一个以上的公开或发明构思。
在此描述的实施例被足够详细地描述,以使本领域技术人员能够实践所公开的教导。可以从其中使用和导出其它实施例,使得可以在不脱离本公开的范围的情况下进行结构和逻辑替换和改变。因此,具体实施方式不应被认为是限制性的,并且各种实施例的范围仅由所附权利要求以及这些权利要求所赋予的等同物的全部范围来限定。
如在此所使用的,术语“或”可以以包含或排除的方式来解释。此外,可以为在此被描述为单个实体的资源、操作或结构提供多个实体。此外,各种资源、操作、模块、引擎和数据存储之间的边界是有些任意的,并且在特定说明性配置的上下文中示出了特定的操作。功能的其它分配可被设想,并且可以落入本公开的各种实施例的范围内。通常,作为示例配置中的分离的资源存在的结构和功能可以被实现为组合的结构或资源。类似地,作为单个资源存在的结构和功能可以被实现为分离的资源。这些和其它变化、修改、添加和改进落入由所附权利要求所表示的本公开的实施例的范围内。因此,说明书和附图被认为是说明性的而不是限制性的。

Claims (21)

1.一种系统,包括:
通信模块,用于接收用于定制图形的参考图像的参考图像数据;
取景器模块,用于从所述参考图像数据确定所述定制图形的参考形状特征,所述参考形状特征指示所述定制图形的特性;
存储器,其被配置为存储形状特征规则和所述定制图形的所述参考形状特征;以及
耦接到所述存储器的硬件处理器,所述硬件处理器包括所述通信模块,
所述通信模块进一步被配置为从客户端设备接收图像的图像数据;
所述取景器模块进一步被配置为:
从所述图像数据提取所述图像的候选形状特征;
确定所述候选形状特征满足所述形状特征规则;
响应于所述候选形状特征满足所述形状特征规则,基于所述候选形状特征和所述定制图形的所述参考形状特征的比较来识别所述图像中的定制图形;以及
响应于所述取景器模块识别所述定制图形,解码器模块被配置为通过检测指示被包括在所述图像中的数据的标记来从所述图像数据解码被编码在所述图像的一部分中的数据。
2.根据权利要求1所述的系统,其中所述取景器模块进一步被配置为:
从所述图像数据计算所述候选形状特征的面积值,结合另一候选形状特征计算所述面积值以缩放所述面积值;
通过将所述面积值与所述定制图形的参考面积值进行比较来确定所述候选形状特征的面积分数;以及
基于所述面积分数超过阈值确定所述候选形状特征满足面积规则,其中所述形状特征规则包括所述面积规则。
3.一种计算机实现方法,包括:
接收用于定制符号的参考图像的参考图像数据;
从所述参考图像数据确定所述参考图像的参考形状特征,所述参考形状特征指示所述定制符号的特性;
从用户设备接收图像的图像数据;
从所述图像数据提取所述图像的候选形状特征;
确定所述候选形状特征满足形状特征标准;
响应于所述候选形状特征满足所述形状特征标准,通过将所述候选形状特征与所述定制符号的所述参考形状特征进行比较来识别所述图像中的所述定制符号;
响应于识别所述定制符号,从所述图像数据提取所述图像中的所述定制符号的几何属性;以及
使用所述图像中的所述定制符号的所述几何属性从所述图像数据解码被编码在所述图像的一部分中的数据。
4.根据权利要求3所述的方法,进一步包括:
从所述图像数据计算所述候选形状特征的尺寸近似值,结合另一候选形状特征来计算所述尺寸近似值以缩放所述尺寸近似值;
通过将所述尺寸近似值与所述定制符号的参考尺寸进行比较来确定所述候选形状特征的尺寸分数;以及
基于所述尺寸分数超过阈值确定所述候选形状特征满足尺寸标准,其中所述形状特征标准包括所述尺寸标准。
5.根据权利要求3所述的方法,进一步包括:
从所述图像数据确定所述候选形状特征包括封闭线,其中所述封闭线通过具有从特定点开始并返回到所述特定点的路径来包围所述图像的一部分;以及
基于所述候选形状特征包括所述封闭线确定所述候选形状特征满足路径标准,其中所述形状特征标准包括所述路径标准。
6.根据权利要求3所述的方法,其中所述几何属性包括所述图像中的所述定制符号的位置、缩放或取向中的至少一个。
7.根据权利要求3所述的方法,进一步包括:
从所述图像数据提取所述定制符号的区别性特征,所述区别性特征指示所述定制符号的标识;
通过将所述区别性特征与所述定制符号的参考区别性特征进行比较来确定所述图像中的所述定制符号的取向;以及
使用所述图像中的所述定制符号的取向和位置来解码被编码在所述图像中的数据。
8.根据权利要求7所述的方法,进一步包括:
识别所述图像中的所述定制符号的区别性点,其中所述区别性特征包括所述区别性点;以及
通过将所述区别性点相对于所述图像中的所述定制符号的位置与所述定制符号的参考点的位置进行比较来确定所述图像中的所述定制符号的所述取向。
9.根据权利要求7所述的方法,进一步包括:
通过根据所述定制符号的所述取向变换所述图像来生成变换图像;以及
使用所述变换图像来解码被编码在所述图像的一部分中的所述数据。
10.根据权利要求9所述的方法,进一步包括:
确定使用所述变换图像解码被编码在所述图像的所述一部分中的所述数据的失败;
通过根据所述定制符号的不同取向变换所述图像来生成另一变换图像;以及
使用另一变换图像解码被编码在所述图像的一部分中的所述数据。
11.根据权利要求3所述的方法,其中使用相对于所述图像中的所述定制符号定位的多个标记对被编码在所述图像的所述一部分中的所述数据进行编码,其中所述多个标记的相应标记表示一段数据。
12.根据权利要求3所述的方法,其中所述定制符号包括徽标、图标或商标中的至少一个。
13.根据权利要求3所述的方法,进一步包括:
从所述用户设备的图像传感器实时地接收所述图像数据。
14.根据权利要求3所述的方法,其中所述定制符号的形状包括至少一个不对称性。
15.根据权利要求3所述的方法,进一步包括:
响应于解码被编码在所述图像中的所述数据,使用从所述图像解码的所述数据对所述用户设备执行动作。
16.根据权利要求15所述的方法,其中所述动作包括由从所述图像解码的所述数据指定的动作。
17.根据权利要求15所述的方法,其中执行所述动作而不与服务器通信。
18.根据权利要求15所述的方法,其中所述动作专用于解码被编码在所述图像的所述一部分中的所述数据的移动计算应用程序。
19.一种携带指令的机器可读介质,所述指令在由机器的至少一个处理器执行时使得所述机器执行操作,所述操作包括:
接收用于特定设计的参考图像的参考图像数据;
从所述参考图像数据确定所述参考图像的参考形状特征,所述参考形状特征指示所述特定设计的特性;
从客户端系统接收图像的图像数据;
从所述图像数据提取所述图像的候选形状特征;
确定所述候选形状特征满足形状特征规则;
响应于所述候选形状特征满足所述形状特征规则,通过将所述候选形状特征与所述特定设计的所述参考形状特征进行比较来识别所述图像中的所述特定设计;
响应于识别所述特定设计,从所述图像数据提取所述图像中的所述特定设计的空间性质;以及
使用所述图像中的所述特定设计的所述空间性质从所述图像数据解码被编码在所述图像的一部分中的数据。
20.根据权利要求19所述的机器可读介质,其中所述操作进一步包括:
从所述图像数据计算所述候选形状特征的尺寸近似值,结合另一候选形状特征计算所述尺寸近似值以缩放所述尺寸近似值;
通过将所述尺寸近似值与所述特定设计的参考尺寸进行比较来确定用于所述候选形状特征的尺寸分数;以及
基于所述尺寸分数超过阈值确定所述候选形状特征满足尺寸规则,其中所述形状特征规则包括所述尺寸规则。
21.一种携带指令的机器可读介质,所述指令在由计算机的至少一个处理器执行时使得所述计算机执行根据权利要求3至18中任一项所述的方法。
CN201680016324.1A 2015-01-19 2016-01-08 用于光学条形码的定制功能图案 Active CN107430697B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011215718.4A CN112183536B (zh) 2015-01-19 2016-01-08 用于光学条形码的定制功能图案

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201562105141P 2015-01-19 2015-01-19
US62/105,141 2015-01-19
US14/612,409 US9111164B1 (en) 2015-01-19 2015-02-03 Custom functional patterns for optical barcodes
US14/612,409 2015-02-03
US14/826,301 2015-08-14
US14/826,301 US9659244B2 (en) 2015-01-19 2015-08-14 Custom functional patterns for optical barcodes
PCT/US2016/012669 WO2016118338A1 (en) 2015-01-19 2016-01-08 Custom functional patterns for optical barcodes

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202011215718.4A Division CN112183536B (zh) 2015-01-19 2016-01-08 用于光学条形码的定制功能图案

Publications (2)

Publication Number Publication Date
CN107430697A true CN107430697A (zh) 2017-12-01
CN107430697B CN107430697B (zh) 2020-11-24

Family

ID=53786051

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202011215718.4A Active CN112183536B (zh) 2015-01-19 2016-01-08 用于光学条形码的定制功能图案
CN201680016324.1A Active CN107430697B (zh) 2015-01-19 2016-01-08 用于光学条形码的定制功能图案

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202011215718.4A Active CN112183536B (zh) 2015-01-19 2016-01-08 用于光学条形码的定制功能图案

Country Status (5)

Country Link
US (6) US9111164B1 (zh)
EP (2) EP3248145A4 (zh)
KR (5) KR102416030B1 (zh)
CN (2) CN112183536B (zh)
WO (1) WO2016118338A1 (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10068117B1 (en) 2015-01-19 2018-09-04 Snap Inc. Custom functional patterns for optical barcodes
US10262250B1 (en) 2016-03-18 2019-04-16 Snap Inc. Facial patterns for optical barcodes
US10410028B1 (en) 2017-03-14 2019-09-10 Snap Inc. Optical barcodes without orientation
CN110414646A (zh) * 2018-04-28 2019-11-05 深圳果力智能科技有限公司 一种机器人控制图案的生成方法
US10467998B2 (en) 2015-09-29 2019-11-05 Amper Music, Inc. Automated music composition and generation system for spotting digital media objects and event markers using emotion-type, style-type, timing-type and accent-type musical experience descriptors that characterize the digital music to be automatically composed and generated by the system
US10854180B2 (en) 2015-09-29 2020-12-01 Amper Music, Inc. Method of and system for controlling the qualities of musical energy embodied in and expressed by digital music to be automatically composed and generated by an automated music composition and generation engine
US10964299B1 (en) 2019-10-15 2021-03-30 Shutterstock, Inc. Method of and system for automatically generating digital performances of music compositions using notes selected from virtual musical instruments based on the music-theoretic states of the music compositions
US11024275B2 (en) 2019-10-15 2021-06-01 Shutterstock, Inc. Method of digitally performing a music composition using virtual musical instruments having performance logic executing within a virtual musical instrument (VMI) library management system
US11037538B2 (en) 2019-10-15 2021-06-15 Shutterstock, Inc. Method of and system for automated musical arrangement and musical instrument performance style transformation supported within an automated music performance system

Families Citing this family (125)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10155168B2 (en) 2012-05-08 2018-12-18 Snap Inc. System and method for adaptable avatars
US9705831B2 (en) 2013-05-30 2017-07-11 Snap Inc. Apparatus and method for maintaining a message thread with opt-in permanence for entries
US10439972B1 (en) 2013-05-30 2019-10-08 Snap Inc. Apparatus and method for maintaining a message thread with opt-in permanence for entries
US9594555B2 (en) 2014-04-07 2017-03-14 Quikkly Ltd. Computer readable storage media for invoking direct actions and processes and systems utilizing same
US9276886B1 (en) 2014-05-09 2016-03-01 Snapchat, Inc. Apparatus and method for dynamically configuring application component tiles
US9537811B2 (en) 2014-10-02 2017-01-03 Snap Inc. Ephemeral gallery of ephemeral messages
US9396354B1 (en) 2014-05-28 2016-07-19 Snapchat, Inc. Apparatus and method for automated privacy protection in distributed images
US9113301B1 (en) 2014-06-13 2015-08-18 Snapchat, Inc. Geo-location based event gallery
US10824654B2 (en) 2014-09-18 2020-11-03 Snap Inc. Geolocation-based pictographs
US10284508B1 (en) 2014-10-02 2019-05-07 Snap Inc. Ephemeral gallery of ephemeral messages with opt-in permanence
JP6520616B2 (ja) * 2014-10-07 2019-05-29 株式会社デンソーウェーブ 情報コードの生成方法、情報コードを生成するプログラム、及び情報コード生成装置
US9385983B1 (en) 2014-12-19 2016-07-05 Snapchat, Inc. Gallery of messages from individuals with a shared interest
US10311916B2 (en) 2014-12-19 2019-06-04 Snap Inc. Gallery of videos set to an audio time line
US9754355B2 (en) 2015-01-09 2017-09-05 Snap Inc. Object recognition based photo filters
US10133705B1 (en) 2015-01-19 2018-11-20 Snap Inc. Multichannel system
US9294425B1 (en) 2015-02-06 2016-03-22 Snapchat, Inc. Storage and processing of ephemeral messages
US11582202B2 (en) 2015-02-16 2023-02-14 Arebus, LLC System, method and application for transcoding data into media files
KR102035405B1 (ko) 2015-03-18 2019-10-22 스냅 인코포레이티드 지오-펜스 인가 프로비저닝
US10135949B1 (en) 2015-05-05 2018-11-20 Snap Inc. Systems and methods for story and sub-story navigation
US10691314B1 (en) 2015-05-05 2020-06-23 State Farm Mutual Automobile Insurance Company Connecting users to entities based on recognized objects
EP3292523A4 (en) 2015-05-06 2018-03-14 Snap Inc. Systems and methods for ephemeral group chat
US9906479B1 (en) 2015-06-16 2018-02-27 Snap Inc. Storage management for ephemeral messages
US10503264B1 (en) 2015-06-16 2019-12-10 Snap Inc. Radial gesture navigation
US10616162B1 (en) 2015-08-24 2020-04-07 Snap Inc. Systems devices and methods for automatically selecting an ephemeral message availability
US11121997B1 (en) 2015-08-24 2021-09-14 Snap Inc. Systems, devices, and methods for determining a non-ephemeral message status in a communication system
US10157333B1 (en) 2015-09-15 2018-12-18 Snap Inc. Systems and methods for content tagging
US9652896B1 (en) 2015-10-30 2017-05-16 Snap Inc. Image based tracking in augmented reality systems
US10338753B2 (en) 2015-11-03 2019-07-02 Microsoft Technology Licensing, Llc Flexible multi-layer sensing surface
US10649572B2 (en) 2015-11-03 2020-05-12 Microsoft Technology Licensing, Llc Multi-modal sensing surface
US10955977B2 (en) 2015-11-03 2021-03-23 Microsoft Technology Licensing, Llc Extender object for multi-modal sensing
US11119628B1 (en) 2015-11-25 2021-09-14 Snap Inc. Dynamic graphical user interface modification and monitoring
US9984499B1 (en) 2015-11-30 2018-05-29 Snap Inc. Image and point cloud based tracking and in augmented reality systems
US10354425B2 (en) 2015-12-18 2019-07-16 Snap Inc. Method and system for providing context relevant media augmentation
WO2017132634A1 (en) * 2016-01-28 2017-08-03 Ptc Inc. User-designed machine-readable target codes
CA3052241A1 (en) 2016-02-05 2017-08-10 Fredrick T. Howard Time limited image sharing
US10530731B1 (en) 2016-03-28 2020-01-07 Snap Inc. Systems and methods for chat with audio and video elements
US10270839B2 (en) 2016-03-29 2019-04-23 Snap Inc. Content collection navigation and autoforwarding
US10339365B2 (en) 2016-03-31 2019-07-02 Snap Inc. Automated avatar generation
US10686899B2 (en) 2016-04-06 2020-06-16 Snap Inc. Messaging achievement pictograph display system
US9813642B1 (en) 2016-05-06 2017-11-07 Snap Inc. Dynamic activity-based image generation
US10474353B2 (en) 2016-05-31 2019-11-12 Snap Inc. Application control using a gesture based trigger
US11507977B2 (en) 2016-06-28 2022-11-22 Snap Inc. Methods and systems for presentation of media collections with automated advertising
US9681265B1 (en) 2016-06-28 2017-06-13 Snap Inc. System to track engagement of media items
US10182047B1 (en) 2016-06-30 2019-01-15 Snap Inc. Pictograph password security system
US11334768B1 (en) 2016-07-05 2022-05-17 Snap Inc. Ephemeral content management
US10552968B1 (en) 2016-09-23 2020-02-04 Snap Inc. Dense feature scale detection for image matching
KR102334821B1 (ko) * 2016-09-26 2021-12-07 스냅 인코포레이티드 광학 코드들에 의한 디바이스 페어링
US10609036B1 (en) 2016-10-10 2020-03-31 Snap Inc. Social media post subscribe requests for buffer user accounts
US10198626B2 (en) * 2016-10-19 2019-02-05 Snap Inc. Neural networks for facial modeling
US10432559B2 (en) 2016-10-24 2019-10-01 Snap Inc. Generating and displaying customized avatars in electronic messages
US10432874B2 (en) 2016-11-01 2019-10-01 Snap Inc. Systems and methods for fast video capture and sensor adjustment
CN110050275B (zh) * 2016-11-17 2022-09-13 南洋理工大学 光学可读标签以及用于解码光学可读标签的方法和系统
US10740939B1 (en) 2016-12-09 2020-08-11 Snap Inc. Fast image style transfers
US10242477B1 (en) 2017-01-16 2019-03-26 Snap Inc. Coded vision system
US11630877B1 (en) * 2017-01-24 2023-04-18 Snap Inc. Custom visual codes for network links
US10319149B1 (en) 2017-02-17 2019-06-11 Snap Inc. Augmented reality anamorphosis system
US11019001B1 (en) 2017-02-20 2021-05-25 Snap Inc. Selective presentation of group messages
US10374993B2 (en) 2017-02-20 2019-08-06 Snap Inc. Media item attachment system
US10074381B1 (en) 2017-02-20 2018-09-11 Snap Inc. Augmented reality speech balloon system
US10878837B1 (en) 2017-03-01 2020-12-29 Snap Inc. Acoustic neural network scene detection
US10582277B2 (en) 2017-03-27 2020-03-03 Snap Inc. Generating a stitched data stream
US10581782B2 (en) 2017-03-27 2020-03-03 Snap Inc. Generating a stitched data stream
US11170393B1 (en) 2017-04-11 2021-11-09 Snap Inc. System to calculate an engagement score of location based media content
US10387730B1 (en) 2017-04-20 2019-08-20 Snap Inc. Augmented reality typography personalization system
US10382372B1 (en) 2017-04-27 2019-08-13 Snap Inc. Processing media content based on original context
EP4040368A1 (en) 2017-04-27 2022-08-10 Snap Inc. Low-latency delivery mechanism for map-based gui
US10212541B1 (en) 2017-04-27 2019-02-19 Snap Inc. Selective location-based identity communication
US11893647B2 (en) 2017-04-27 2024-02-06 Snap Inc. Location-based virtual avatars
US10943255B1 (en) 2017-04-28 2021-03-09 Snap Inc. Methods and systems for interactive advertising with media collections
CA3062892A1 (en) * 2017-05-09 2018-11-15 Visa International Service Association Video matrix barcode system
US10679428B1 (en) 2017-05-26 2020-06-09 Snap Inc. Neural network-based image stream modification
US10788900B1 (en) 2017-06-29 2020-09-29 Snap Inc. Pictorial symbol prediction
WO2019022807A1 (en) 2017-07-28 2019-01-31 The Coca-Cola Company METHOD AND APPARATUS FOR ENCODING AND DECODING CIRCULAR SYMBOLIC CODES
US11216517B1 (en) 2017-07-31 2022-01-04 Snap Inc. Methods and systems for selecting user generated content
US11323398B1 (en) 2017-07-31 2022-05-03 Snap Inc. Systems, devices, and methods for progressive attachments
US10791077B2 (en) 2017-08-08 2020-09-29 Snap Inc. Application-independent messaging system
US11164376B1 (en) 2017-08-30 2021-11-02 Snap Inc. Object modeling using light projection
US9980100B1 (en) 2017-08-31 2018-05-22 Snap Inc. Device location based on machine learning classifications
US10474900B2 (en) 2017-09-15 2019-11-12 Snap Inc. Real-time tracking-compensated image effects
US10740974B1 (en) 2017-09-15 2020-08-11 Snap Inc. Augmented reality system
US10891723B1 (en) 2017-09-29 2021-01-12 Snap Inc. Realistic neural network based image style transfer
US10872292B1 (en) 2017-10-09 2020-12-22 Snap Inc. Compact neural networks using condensed filters
US10650072B2 (en) 2017-10-30 2020-05-12 Facebook, Inc. System and method for determination of a digital destination based on a multi-part identifier
US10810277B1 (en) 2017-10-30 2020-10-20 Facebook, Inc. System and method for determination of a digital destination based on a multi-part identifier
US10599289B1 (en) 2017-11-13 2020-03-24 Snap Inc. Interface to display animated icon
US11551059B1 (en) 2017-11-15 2023-01-10 Snap Inc. Modulated image segmentation
US10885564B1 (en) * 2017-11-28 2021-01-05 Snap Inc. Methods, system, and non-transitory computer readable storage medium for dynamically configurable social media platform
US10217488B1 (en) 2017-12-15 2019-02-26 Snap Inc. Spherical video editing
US11017173B1 (en) 2017-12-22 2021-05-25 Snap Inc. Named entity recognition visual context and caption data
CN109960957B (zh) 2017-12-26 2022-12-16 阿里巴巴集团控股有限公司 残缺二维码及其生成、修复和识别方法、装置及系统
US10523606B2 (en) 2018-01-02 2019-12-31 Snap Inc. Generating interactive messages with asynchronous media content
US10482565B1 (en) 2018-02-12 2019-11-19 Snap Inc. Multistage neural network processing using a graphics processor
US10726603B1 (en) 2018-02-28 2020-07-28 Snap Inc. Animated expressive icon
US10885136B1 (en) 2018-02-28 2021-01-05 Snap Inc. Audience filtering system
US10327096B1 (en) 2018-03-06 2019-06-18 Snap Inc. Geo-fence selection system
CN108573184B (zh) * 2018-03-12 2021-04-27 青岛乾程科技股份有限公司 一种二维码定位方法、模块及计算机可读存储介质
US11310176B2 (en) 2018-04-13 2022-04-19 Snap Inc. Content suggestion system
US10719968B2 (en) 2018-04-18 2020-07-21 Snap Inc. Augmented expression system
US11487501B2 (en) 2018-05-16 2022-11-01 Snap Inc. Device control using audio data
US10984399B2 (en) * 2018-07-31 2021-04-20 Snap Inc. Dynamically configurable social media platform
US10997760B2 (en) 2018-08-31 2021-05-04 Snap Inc. Augmented reality anthropomorphization system
US11297027B1 (en) 2019-01-31 2022-04-05 Snap Inc. Automated image processing and insight presentation
US11972529B2 (en) 2019-02-01 2024-04-30 Snap Inc. Augmented reality system
US10650210B1 (en) * 2019-03-18 2020-05-12 Haier Us Appliance Solutions, Inc. Method for authenticating a filter cartridge for a refrigerator appliance
US11134036B2 (en) 2019-07-05 2021-09-28 Snap Inc. Event planning in a content sharing platform
US11812347B2 (en) 2019-09-06 2023-11-07 Snap Inc. Non-textual communication and user states management
US11316806B1 (en) 2020-01-28 2022-04-26 Snap Inc. Bulk message deletion
US11265281B1 (en) 2020-01-28 2022-03-01 Snap Inc. Message deletion policy selection
US11625873B2 (en) 2020-03-30 2023-04-11 Snap Inc. Personalized media overlay recommendation
US11676354B2 (en) 2020-03-31 2023-06-13 Snap Inc. Augmented reality beauty product tutorials
EP4128194A1 (en) * 2020-03-31 2023-02-08 Snap Inc. Augmented reality beauty product tutorials
US11700225B2 (en) 2020-04-23 2023-07-11 Snap Inc. Event overlay invite messaging system
US11194981B2 (en) * 2020-05-11 2021-12-07 Flexa Network Inc. Multi-part code system
US11843574B2 (en) 2020-05-21 2023-12-12 Snap Inc. Featured content collection interface
US11543939B2 (en) * 2020-06-08 2023-01-03 Snap Inc. Encoded image based messaging system
WO2021252662A1 (en) 2020-06-10 2021-12-16 Snap Inc. Visual search to launch application
US11423652B2 (en) 2020-06-10 2022-08-23 Snap Inc. Adding beauty products to augmented reality tutorials
US11899905B2 (en) 2020-06-30 2024-02-13 Snap Inc. Selectable items providing post-viewing context actions
WO2022010455A1 (en) * 2020-07-06 2022-01-13 Hewlett-Packard Development Company, L.P. Data decode
US11625916B2 (en) * 2020-07-31 2023-04-11 Zebra Technologies Corporation Automatic identification and presentation of edges, shapes and unique objects in an image used for a machine vision job setup
EP4197180A1 (en) 2020-08-13 2023-06-21 Snap Inc. User interface for pose driven virtual effects
US12034680B2 (en) 2021-03-31 2024-07-09 Snap Inc. User presence indication data management
US11973730B2 (en) 2022-06-02 2024-04-30 Snap Inc. External messaging function for an interaction system
US11983390B2 (en) * 2022-08-18 2024-05-14 Snap Inc. Interacting with visual codes within messaging system
US12088544B2 (en) 2022-11-21 2024-09-10 Snap Inc. Saving ephemeral media to a conversation thread

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060269136A1 (en) * 2005-05-23 2006-11-30 Nextcode Corporation Efficient finder patterns and methods for application to 2D machine vision problems
CN102046391A (zh) * 2008-04-02 2011-05-04 锡克拜控股有限公司 利用液晶材料标记的识别和鉴定
CN103914851A (zh) * 2013-01-08 2014-07-09 彩滋公司 使用红外成像产生数字图像以用于产品定制
US8868902B1 (en) * 2013-07-01 2014-10-21 Cryptite LLC Characteristically shaped colorgram tokens in mobile transactions

Family Cites Families (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5591956A (en) * 1995-05-15 1997-01-07 Welch Allyn, Inc. Two dimensional data encoding structure and symbology for use with optical readers
US5978773A (en) 1995-06-20 1999-11-02 Neomedia Technologies, Inc. System and method for using an ordinary article of commerce to access a remote computer
DE59708043D1 (de) 1996-06-17 2002-10-02 Siemens Ag Kommunikationssystem und Verfahren zur Aufnahme und Verwaltung digitaler Bilder
US7173651B1 (en) 1998-06-02 2007-02-06 Knowles Andrew T Apparatus and system for prompt digital photo delivery and archival
US6327388B1 (en) 1998-08-14 2001-12-04 Matsushita Electric Industrial Co., Ltd. Identification of logos from document images
US6204854B1 (en) 1998-12-04 2001-03-20 France Telecom Method and system for encoding rotations and normals in 3D generated scenes
US6565003B1 (en) * 1998-12-16 2003-05-20 Matsushita Electric Industrial Co., Ltd. Method for locating and reading a two-dimensional barcode
US6523826B1 (en) 1999-07-12 2003-02-25 Jose R. Matos Folding picture puzzle with decoding lenses and encoded images
US6505123B1 (en) 2000-07-24 2003-01-07 Weatherbank, Inc. Interactive weather advisory system
US20100098702A1 (en) 2008-09-16 2010-04-22 Longgui Wang Method of treating androgen independent prostate cancer
JP2004209726A (ja) * 2002-12-27 2004-07-29 Brother Ind Ltd イメージデータ生成装置及びプログラム
US7411493B2 (en) 2003-03-01 2008-08-12 User-Centric Ip, L.P. User-centric event reporting
US7410099B2 (en) 2003-06-05 2008-08-12 Ntt Docomo, Inc. Apparatus and method for reading and decoding information contained in a barcode
US7535890B2 (en) 2003-12-18 2009-05-19 Ayalogic, Inc. System and method for instant VoIP messaging
KR100560330B1 (ko) * 2004-04-21 2006-03-30 에이디정보통신 주식회사 색상 보정이 가능한 대용량 2차원 칼라 바코드인코딩/디코딩 시스템 및 그 방법
KR100701292B1 (ko) * 2004-08-17 2007-03-29 (주)아이미디어아이앤씨 이미지 코드 및 그 인식방법과 장치
KR100653886B1 (ko) * 2004-11-05 2006-12-05 주식회사 칼라짚미디어 혼합코드 및 혼합코드 인코딩 방법과 장치
US8332475B2 (en) 2005-08-22 2012-12-11 Triplay Communications Ltd. Messaging system and method
US7571864B2 (en) 2005-12-16 2009-08-11 Pisafe, Inc. Method and system for creating and using barcodes
EP1982290B1 (en) 2006-01-27 2013-10-23 Spyder Lynk, LLC Encoding and decoding data in an image
US20080048044A1 (en) 2006-08-25 2008-02-28 Microsoft Corporation Barcode Encoding and Decoding
US8194914B1 (en) 2006-10-19 2012-06-05 Spyder Lynk, Llc Encoding and decoding data into an image using identifiable marks and encoded elements
WO2008129542A2 (en) 2007-04-23 2008-10-30 Ramot At Tel-Aviv University Ltd System, method and a computer readible medium for providing an output image
US7886978B2 (en) * 2007-09-20 2011-02-15 Microsoft Corporation Techniques for decoding images of barcodes
US9491184B2 (en) 2008-04-04 2016-11-08 Samsung Electronics Co., Ltd. Method and apparatus for managing tokens for digital rights management
US8830374B2 (en) 2008-12-26 2014-09-09 Panasonic Intellectual Property Corporation Of America Image capture device with first and second detecting sections for detecting features
WO2011101784A1 (en) 2010-02-16 2011-08-25 Tigertext Inc. A messaging system apparatuses circuits and methods of operation thereof
US9208421B2 (en) 2010-03-26 2015-12-08 A.T Communications Co., Ltd. Apparatuses and methods generating a two-dimensional code with a logo
US8272562B2 (en) * 2010-10-11 2012-09-25 Andrew Ziegler Promotional hang tag, tag, or label combined with promotional product sample, with interactive quick response (QR code, MS tag) or other scan-able interactive code linked to one or more internet uniform resource locators (URLs) for instantly delivering wide band digital content, promotions and infotainment brand engagement features between consumers and marketers
US20130201187A1 (en) 2011-08-09 2013-08-08 Xiaofeng Tong Image-based multi-view 3d face generation
KR101860569B1 (ko) * 2011-09-08 2018-07-03 삼성전자주식회사 문자 및 바코드를 동시에 인식하는 문자 및 바코드 인식 장치 및 그 제어 방법
US8931700B2 (en) * 2011-12-23 2015-01-13 Konica Minolta Laboratory U.S.A., Inc. Four dimensional (4D) color barcode for high capacity data encoding and decoding
GB201122284D0 (en) 2011-12-23 2012-02-01 Zappar Ltd Content identification and distribution
JP2015507307A (ja) * 2012-02-21 2015-03-05 アイコニット リミテッド 読み取り可能マトリックスコード
CN102622628B (zh) * 2012-02-24 2014-09-03 南京大学 一种通过渲染方式生成qr码的方法
US9177130B2 (en) 2012-03-15 2015-11-03 Google Inc. Facial feature detection
US8515139B1 (en) 2012-03-15 2013-08-20 Google Inc. Facial feature detection
US9317113B1 (en) 2012-05-31 2016-04-19 Amazon Technologies, Inc. Gaze assisted object recognition
US8441548B1 (en) 2012-06-15 2013-05-14 Google Inc. Facial image quality assessment
KR101442229B1 (ko) * 2012-06-15 2014-09-25 주식회사 나인플라바 Sns기반의 정보 공유 마케팅 시스템
US8457367B1 (en) 2012-06-26 2013-06-04 Google Inc. Facial recognition
US8396265B1 (en) 2012-06-26 2013-03-12 Google Inc. Facial recognition
US8411909B1 (en) 2012-06-26 2013-04-02 Google Inc. Facial recognition
US8886953B1 (en) 2012-09-14 2014-11-11 Google Inc. Image processing
JP6136808B2 (ja) * 2012-12-19 2017-05-31 株式会社デンソーウェーブ 情報コードの生成方法、情報コード、情報コード読取装置、及び情報コード利用システム
KR20140103021A (ko) * 2013-02-15 2014-08-25 삼성전자주식회사 객체 인식이 가능한 전자 장치
US20140263674A1 (en) * 2013-03-15 2014-09-18 Conformis, Inc. Systems, Methods, and Apparatus for Integrating Scannable Codes in Medical Devices
WO2014156982A1 (ja) * 2013-03-27 2014-10-02 株式会社デンソーウェーブ 画像付の二次元コードを生成する装置及びその方法
US9147095B2 (en) 2013-11-22 2015-09-29 Ncr Corporation Optical code scanner optimized for reading 2D optical codes
WO2015077455A1 (en) 2013-11-25 2015-05-28 Digimarc Corporation Methods and systems for contextually processing imagery
CA2863124A1 (en) 2014-01-03 2015-07-03 Investel Capital Corporation User content sharing system and method with automated external content integration
US9594555B2 (en) 2014-04-07 2017-03-14 Quikkly Ltd. Computer readable storage media for invoking direct actions and processes and systems utilizing same
US9740841B2 (en) 2014-09-08 2017-08-22 Tessera Advanced Technologies, Inc. Using biometric user-specific attributes
JP6520616B2 (ja) * 2014-10-07 2019-05-29 株式会社デンソーウェーブ 情報コードの生成方法、情報コードを生成するプログラム、及び情報コード生成装置
US9111164B1 (en) 2015-01-19 2015-08-18 Snapchat, Inc. Custom functional patterns for optical barcodes
JP6754619B2 (ja) 2015-06-24 2020-09-16 三星電子株式会社Samsung Electronics Co.,Ltd. 顔認識方法及び装置
US9911073B1 (en) 2016-03-18 2018-03-06 Snap Inc. Facial patterns for optical barcodes
US10146971B1 (en) 2017-03-14 2018-12-04 Snap Inc. Optical barcodes without orientation
US10579785B2 (en) 2017-09-29 2020-03-03 General Electric Company Automatic authentification for MES system using facial recognition
US10552667B1 (en) 2019-08-19 2020-02-04 Neon Evolution Inc. Methods and systems for image processing

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060269136A1 (en) * 2005-05-23 2006-11-30 Nextcode Corporation Efficient finder patterns and methods for application to 2D machine vision problems
CN102046391A (zh) * 2008-04-02 2011-05-04 锡克拜控股有限公司 利用液晶材料标记的识别和鉴定
CN103914851A (zh) * 2013-01-08 2014-07-09 彩滋公司 使用红外成像产生数字图像以用于产品定制
US8868902B1 (en) * 2013-07-01 2014-10-21 Cryptite LLC Characteristically shaped colorgram tokens in mobile transactions

Cited By (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10534949B1 (en) 2015-01-19 2020-01-14 Snap Inc. Custom functional patterns for optical barcodes
US11675989B2 (en) 2015-01-19 2023-06-13 Snap Inc. Custom functional patterns for optical barcodes
US10068117B1 (en) 2015-01-19 2018-09-04 Snap Inc. Custom functional patterns for optical barcodes
US11308302B2 (en) 2015-01-19 2022-04-19 Snap Inc. Custom functional patterns for optical barcodes
CN112183536A (zh) * 2015-01-19 2021-01-05 斯纳普公司 用于光学条形码的定制功能图案
US11430419B2 (en) 2015-09-29 2022-08-30 Shutterstock, Inc. Automatically managing the musical tastes and preferences of a population of users requesting digital pieces of music automatically composed and generated by an automated music composition and generation system
US11037539B2 (en) 2015-09-29 2021-06-15 Shutterstock, Inc. Autonomous music composition and performance system employing real-time analysis of a musical performance to automatically compose and perform music to accompany the musical performance
US12039959B2 (en) 2015-09-29 2024-07-16 Shutterstock, Inc. Automated music composition and generation system employing virtual musical instrument libraries for producing notes contained in the digital pieces of automatically composed music
US10854180B2 (en) 2015-09-29 2020-12-01 Amper Music, Inc. Method of and system for controlling the qualities of musical energy embodied in and expressed by digital music to be automatically composed and generated by an automated music composition and generation engine
US10467998B2 (en) 2015-09-29 2019-11-05 Amper Music, Inc. Automated music composition and generation system for spotting digital media objects and event markers using emotion-type, style-type, timing-type and accent-type musical experience descriptors that characterize the digital music to be automatically composed and generated by the system
US11776518B2 (en) 2015-09-29 2023-10-03 Shutterstock, Inc. Automated music composition and generation system employing virtual musical instrument libraries for producing notes contained in the digital pieces of automatically composed music
US11011144B2 (en) 2015-09-29 2021-05-18 Shutterstock, Inc. Automated music composition and generation system supporting automated generation of musical kernels for use in replicating future music compositions and production environments
US11017750B2 (en) 2015-09-29 2021-05-25 Shutterstock, Inc. Method of automatically confirming the uniqueness of digital pieces of music produced by an automated music composition and generation system while satisfying the creative intentions of system users
US11657787B2 (en) 2015-09-29 2023-05-23 Shutterstock, Inc. Method of and system for automatically generating music compositions and productions using lyrical input and music experience descriptors
US11030984B2 (en) 2015-09-29 2021-06-08 Shutterstock, Inc. Method of scoring digital media objects using musical experience descriptors to indicate what, where and when musical events should appear in pieces of digital music automatically composed and generated by an automated music composition and generation system
US11037540B2 (en) 2015-09-29 2021-06-15 Shutterstock, Inc. Automated music composition and generation systems, engines and methods employing parameter mapping configurations to enable automated music composition and generation
US11037541B2 (en) 2015-09-29 2021-06-15 Shutterstock, Inc. Method of composing a piece of digital music using musical experience descriptors to indicate what, when and how musical events should appear in the piece of digital music automatically composed and generated by an automated music composition and generation system
US11651757B2 (en) 2015-09-29 2023-05-16 Shutterstock, Inc. Automated music composition and generation system driven by lyrical input
US10672371B2 (en) 2015-09-29 2020-06-02 Amper Music, Inc. Method of and system for spotting digital media objects and event markers using musical experience descriptors to characterize digital music to be automatically composed and generated by an automated music composition and generation engine
US11468871B2 (en) 2015-09-29 2022-10-11 Shutterstock, Inc. Automated music composition and generation system employing an instrument selector for automatically selecting virtual instruments from a library of virtual instruments to perform the notes of the composed piece of digital music
US11430418B2 (en) 2015-09-29 2022-08-30 Shutterstock, Inc. Automatically managing the musical tastes and preferences of system users based on user feedback and autonomous analysis of music automatically composed and generated by an automated music composition and generation system
US11321597B2 (en) 2016-03-18 2022-05-03 Snap Inc. Facial patterns for optical barcodes
US10262250B1 (en) 2016-03-18 2019-04-16 Snap Inc. Facial patterns for optical barcodes
US10699174B1 (en) 2016-03-18 2020-06-30 Snap Inc. Facial patterns for optical barcodes
US10410028B1 (en) 2017-03-14 2019-09-10 Snap Inc. Optical barcodes without orientation
CN110414646A (zh) * 2018-04-28 2019-11-05 深圳果力智能科技有限公司 一种机器人控制图案的生成方法
CN110414646B (zh) * 2018-04-28 2023-05-30 深圳果力智能科技有限公司 一种机器人控制图案的生成方法
US11037538B2 (en) 2019-10-15 2021-06-15 Shutterstock, Inc. Method of and system for automated musical arrangement and musical instrument performance style transformation supported within an automated music performance system
US11024275B2 (en) 2019-10-15 2021-06-01 Shutterstock, Inc. Method of digitally performing a music composition using virtual musical instruments having performance logic executing within a virtual musical instrument (VMI) library management system
US10964299B1 (en) 2019-10-15 2021-03-30 Shutterstock, Inc. Method of and system for automatically generating digital performances of music compositions using notes selected from virtual musical instruments based on the music-theoretic states of the music compositions

Also Published As

Publication number Publication date
WO2016118338A1 (en) 2016-07-28
EP3248145A4 (en) 2017-12-13
US11675989B2 (en) 2023-06-13
KR102144391B1 (ko) 2020-08-13
CN112183536B (zh) 2024-10-18
KR20200097002A (ko) 2020-08-14
KR102018143B1 (ko) 2019-11-04
US20160210545A1 (en) 2016-07-21
KR102514483B1 (ko) 2023-03-27
US11308302B2 (en) 2022-04-19
US9659244B2 (en) 2017-05-23
US20200117872A1 (en) 2020-04-16
KR20170128239A (ko) 2017-11-22
CN112183536A (zh) 2021-01-05
KR102257908B1 (ko) 2021-05-28
KR102416030B1 (ko) 2022-07-05
US10534949B1 (en) 2020-01-14
US20220215193A1 (en) 2022-07-07
CN107430697B (zh) 2020-11-24
KR20210063468A (ko) 2021-06-01
EP4184384A1 (en) 2023-05-24
KR20220098275A (ko) 2022-07-11
KR20190104247A (ko) 2019-09-06
US10068117B1 (en) 2018-09-04
US9111164B1 (en) 2015-08-18
EP3248145A1 (en) 2017-11-29

Similar Documents

Publication Publication Date Title
CN107430697A (zh) 用于光学条形码的定制功能图案
US11321597B2 (en) Facial patterns for optical barcodes
US11893611B2 (en) Document optical character recognition
US10282642B2 (en) Fine-grained categorization
CN109791621A (zh) 用于采用光学代码进行装置配对的系统和方法
CN107851319A (zh) 区域增强现实持久性标签对象
CN107430691A (zh) 识别图像中描绘的物品
CN109844761A (zh) 面部的神经网络建模
CN109964236A (zh) 用于检测图像中的对象的神经网络
CN107924590A (zh) 增强现实系统中的基于图像的跟踪
US10146971B1 (en) Optical barcodes without orientation
KR102668172B1 (ko) 메시징 시스템에서의 증강 현실 경험을 위한 물리적 제품들의 식별

Legal Events

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