US Pat. No. 9,256,620

TECHNIQUES FOR GROUPING IMAGES

Amazon Technologies, Inc....

1. A computer-implemented method comprising:
grouping, by one or more computer systems configured with executable instructions, and from among a plurality of images, multiple
images of the plurality that are associated with a common event into an event-based image group;

receiving, by the one or more computer systems, a selection by a user of a visual representation of a person;
identifying, by the one or more computer systems, one or more images in the identified event-based image group that each includes
the person; and

automatically, based on the grouping, providing the identified images to the person by:
determining, by the one or more computer systems, contact information for the person for use in sending to the person an electronic
communication that provides access to the identified one or more images; and

using, by the one or more computer systems, the determined contact information to send the electronic communication to the
person.

US Pat. No. 9,552,674

ADVERTISEMENT RELEVANCE

A9.com, Inc., Palo Alto,...

1. A computing device comprising:
at least one processor;
a camera;
a display screen; and
memory including instructions that, when executed by the at least one processor, cause the computing device to perform a set
of operations comprising:

sample a frame of video, using the camera, of a real-world environment including a quick response (QR) code, wherein information
embedded in the QR code is associated with a first object;

identify the QR code in the frame;
determine a size and an amount of distortion associated with the QR code;
determine a plane of the QR code in the frame with respect to the computing device;
render a camera view of the real-world environment for display in the display screen, the camera view including a representation
of the first object in place of the QR code;

determine a second object;
remove the representation of the first object in the camera view; and
render the camera view to include a representation of the second object in the camera view, wherein the representation of
the second object is rendered with a relative size and amount of distortion such that the representation of the second object
appears to be positioned in place of the QR code.

US Pat. No. 9,336,225

ENCODING OF VARIABLE-LENGTH DATA WITH UNARY FORMATS

A9.com, Inc., Palo Alto,...

1. A computer-implemented method for encoding document identification numbers for a search engine posting list comprising:
determining a block size for data storage;
receiving a plurality of document identification numbers for the search engine posting list;
determining differences between adjacent document identification numbers of the plurality of document identification numbers;
determining a plurality of encoded representations for the differences between adjacent document identification numbers, wherein
each encoded representation of the plurality of encoded representations is a variable-length representation;

identifying a sequential subset of the plurality of encoded representations, wherein a sum of a respective size of each encoded
representation in the sequential subset is less than or equal to the block size for data storage;

generating one or more descriptors for the sequential subset, the one or more descriptors providing information regarding
the respective size of each encoded representation in the sequential subset in a packed unary representation, the packed unary
representation packing a unary descriptor comprising a plurality of continuation bits into least-significant bits of an encoded
representation; and

storing the one or more descriptors and the sequential subset of the plurality of encoded representations.

US Pat. No. 9,087,020

MANAGING AND RETRIEVING CONTENT FROM A SHARED STORAGE

A9.com, Inc., Palo Alto,...

21. A system for managing content, the system comprising:
a processor; and
a memory device including instructions that, when executed by the processor, cause the system to:
receive, from a client device, information associated with a client-side script of published content executing on the client
device;

determine whether a partition of a shared storage medium associated with the published content is associated with the information
received;

in response to determining that the partition of the shared storage medium is associated with the information received, transmit
data stored in the partition;

in response to determining that no partition of the shared storage medium is associated with the information received, create
the partition and associate the partition with the information received;

compute a partition name based on the information received,
wherein determining whether a partition of the shared storage medium is associated with the information received comprises
determining whether the partition of the shared storage medium corresponds to the partition name computed;

create a message queue associated with the client device and the partition associated with the computed partition name;
receive updates, from one or more second client devices, to the data stored in the partition;
place messages corresponding to the updates in the message queue;
assign a count value to each of the updates received, the count value corresponding to an order in which the updates are received;
and

transmit, to the client device, updates corresponding to the messages in the message queue in an order based on the count
value of the updates.

US Pat. No. 9,386,413

DISPLAYING LOCATION-SPECIFIC IMAGES ON A MOBILE DEVICE

A9.com, Inc., Palo Alto,...

8. A computing system, comprising:
at least one processor;
a memory including instructions stored thereon which, when executed by the at least one processor, cause the computing system
to:

receive information identifying a first location of a mobile device comprising a location interface unit;
receive user identification information, the user identification information including historical information associated with
a user of the mobile device, the historical information including at least previously purchased items;

identify points of interest based at least in part on the historical information of the user and the first location of the
mobile device, the points of interest being a determined distance from the first location;

monitor a change in a location of the mobile device based at least in part on information transmitted from the location interface
unit of the mobile device;

determine a second location based at least in part on the change in the location of the mobile device;
modify the points of interest based at least in part on the user identification information, the first location or the mobile
device, and the second location of the mobile device;

selecting a list of selected points of interest from the points of interest based at least in part on the historical information
associated with the user, the list of the selected points of interest being a determined distance from the second location;
and

generate an alert for transmission to the mobile device, the alert including the list of the selected points of interest.

US Pat. No. 9,195,675

DECODING OF VARIABLE-LENGTH DATA WITH GROUP FORMATS

A9.com, Inc., Palo Alto,...

1. A computer-implemented method for decoding encoded differences between document identification numbers in a search engine
posting list comprising:
under control of one or more computer systems configured with executable instructions,
reading one or more descriptors, each descriptor including information regarding a plurality of size information for a group
of encoded differences between document identification numbers for the search engine posting list and encoded in at least
one of a packed unary or a group unary format;

reading data representing the group of encoded differences between document identification numbers linked with the one or
more descriptors;

identifying one or more shuffle sequences linked with the one or more descriptors from a lookup table;
generating shuffled data by performing one or more shuffle operations in parallel on the data representing the group of encoded
differences between document identification numbers using the one or more shuffle sequences, wherein the one or more shuffle
operations include inserting one or more sequences of zeros into the data; and

determining a plurality of decoded differences between document identification numbers from the shuffled data.

US Pat. No. 9,055,216

USING SENSOR DATA TO ENHANCE IMAGE DATA

A9.com, Inc., Palo Alto,...

1. A computer-implemented method of updating an enhanced video via a computing device, comprising:
under control of one or more computer systems configured with executable instructions,
defining a mapping between first pixel addresses of an enhanced video and second pixel addresses of each of one or more front-facing
image capturing components of a computing device and one or more rear-facing image capturing components of the computing device;

receiving a plurality of video frames each captured respectively using the one or more front-facing image capturing components
and the one or more rear-facing image capturing components;

determining pose data of each of the one or more front-facing image capturing components and the one or more rear-facing video
capturing components with respect to each of the plurality of video frames using one or more motion determination components
of the computing device capable of determining motion along six axes;

registering each of the plurality of video frames with respect to a current video frame of the enhanced video based at least
in part upon the mapping and the pose data;

generating a new video frame of the enhanced video using at least some of the pixels of at least one registered video frame;
and

updating the enhanced video with the new video frame,
wherein the enhanced video comprises a first display resolution that is greater than a second display resolution that each
of the one or more front-facing image capturing components and the one or more rear-facing image capturing components is capable
of capturing in video.

US Pat. No. 9,424,598

VISUAL SEARCH IN A CONTROLLED SHOPPING ENVIRONMENT

A9.com, Inc., Palo Alto,...

1. A system for providing product information for a specified product to a customer in a store, comprising:
at least one processor; and
memory including instructions that, when executed by the at least one processor, cause the system to:
receive, from a computing device associated with the customer, an image of the specified product;
track a location of the customer in the store by comparing a background light pattern of the image to ambient light patterns
detected through sensors placed throughout the store, the ambient light patterns corresponding to a section of the store,
the section of the store including a type or brand of product;

locate, in the image, one or more features of the specified product;
match the one or more features of the specified product against one or more features of each of a plurality of products in
the store, wherein the plurality of products is selected based at least in part on proximity of the products to the location
of the customer; and

transmit the product information for at least one matched product to the computing device to be presented to the customer,
wherein the product information includes at least price, size and availability of the at least one matched product in the
store.

US Pat. No. 9,342,930

INFORMATION AGGREGATION FOR RECOGNIZED LOCATIONS

A9.com, Inc., Palo Alto,...

1. A computer-implemented method for aggregating information for recognized locations, comprising:
obtaining image data of at least a portion of at least one location using an image capturing component of a computing device;
obtaining at least one of location data or position data associated with the image data using one or more sensors of the computing
device;

analyzing the image data and the at least one of location data or position data to identify the at least one location;
obtaining information about the at least one location comprising at least one first component;
determining the at least one first component of the information based at least in part on historical behavior data of a user
of the computing device, the historical behavior data of the user including past location data and past position data of the
user;

providing for display the information about the at least one location on a display component of the computing device;
tracking user interaction with respect to at least one second component of the information, the user interaction including
communication with the computing device;

identifying at least one community of users associated with the user based on at least one demographic trait of the user;
obtaining community interaction data with respect to the at least one second component of the information, the community interaction
data including communication with the computing device by a plurality of users sharing the at least one demographic trait;
and

adjusting a likelihood that the at least one second component will be provided for future display for the at least one location
for the user based at least in part upon the community interaction data, the user interaction or the historical behavior data.

US Pat. No. 9,280,560

SCALABLE IMAGE MATCHING

A9.com, Inc., Palo Alto,...

1. A computer-implemented method, comprising:
under the control of one or more computer systems configured with executable instructions,
obtaining images of a plurality of inventory items, each of the inventory items including one or more features;
extracting, from each image, a plurality of feature descriptors of each respective inventory item represented in the images;
clustering the feature descriptors into clusters and assigning a cluster center to represent each cluster of feature descriptors,
each cluster center being of a first file size;

compressing each cluster center from the first file size to a second file size, the first file size being larger than the
second file size;

storing the compressed cluster centers in a database for retrieval and use in image matching;
assigning a visual word to each cluster center to generate a vocabulary of visual words describing the features of each respective
inventory item represented in the images;

indexing the visual words into an index storing information for each visual word and respective corresponding images;
receiving a query image from a client computing device;
extracting query feature descriptors from the query image;
assigning a query visual word to each of the extracted feature descriptors;
comparing one or more query visual words from the query image to at least a subset of the visual words in the index to identify
a set of closest matching inventory images that at least partially match the query image based at least in part on a respective
number of query visual words matching a respective number of visual words in the index, the set of closest matching inventory
images being ranked by a matching score;

retrieving a set of compressed cluster centers for each of the set of closest matching inventory images from the database;
performing geometric verification of the set of closest matching inventory images by comparing at least a subset of the query
feature descriptors to the set of cluster centers for each of the set of closest matching inventory images;

ranking the set of closest matching inventory images based on the matching score, the matching score determined using parameters
from a machine learned process, the parameters produced by the machine learning process using one or more training images
to at least partially compensate for inaccuracy caused by compressing the cluster centers; and

suggesting a highest ranking image as matching the query image.

US Pat. No. 9,081,857

FRESHNESS AND SEASONALITY-BASED CONTENT DETERMINATIONS

A9.com, Inc., Palo Alto,...

1. A computer-implemented method for ranking items to be presented in an electronic marketplace, comprising:
under control of one or more computer systems configured with executable instructions,
in response to receiving a request from a user to browse an electronic list of physical items available for purchase via the
electronic marketplace, determining a plurality of physical items satisfying the request;

calculating for each of the plurality of physical items, a relevance score based upon relevance information, the relevance
information comprising at least one of behavioral, historical, performance, or preference information of the user;

determining for each of the plurality of physical items, whether at least one freshness function is associated with each of
the plurality of physical items;

for each of the plurality of physical items associated with at least one freshness function, calculating a freshness factor
for a physical item, the freshness factor based at least in part upon a date associated with the request and a date of first
availability associated with the physical item, each freshness function of the at least one freshness function varying based
at least in part on a respective physical item category, wherein the freshness factor associated with each freshness function
incrementally increases more than one time over a first period of time, the first period of time starting from the date of
first availability, and wherein the freshness factor associated with each freshness function decreases for a second period
of time, the second period of time being subsequent to the first period of time;

determining whether at least one seasonality function is associated with each of the plurality of physical items;
for each of the plurality of physical items associated with at least one seasonality functions, calculating at least one seasonality
factor for the physical item, the seasonality factor based at least in part upon a date associated with the request;

calculating a ranking score for each of the plurality of physical items at least in part by applying any calculated freshness
factor and any calculated seasonality factor for the item; and

providing at least one of the physical items for display based upon the calculated ranking scores, wherein at least some of
the plurality of physical items has at least one attribute associating the physical item to at least one of a freshness function
and a seasonality function.

US Pat. No. 9,317,669

VERIFYING OWNERSHIP OF CONTENT

A9.com, Inc., Palo Alto,...

1. A computer-implemented method for granting
access to digital content, the method comprising:
receiving, from a first device, a first image of a first portion of an item;
determining a current location of the first device;
comparing the current location of the first device to a plurality of locations in at least one database, the plurality of
locations including a plurality of prohibited geographic locations and a plurality of non-prohibited geographic locations,
wherein the at least one database includes a location database including the plurality of prohibited geographic locations
and a customer database including the plurality of non-prohibited geographic locations;

determining that the current location corresponds to a non-prohibited geographic location from the customer database, from
which one or more physical copies of the item is accessible;

retrieving verification data associated with the item based at least in part on the received first image;
sending, to the first device, a request for a second image of a different portion of the item;
receiving, from the first device and in response to the request, the second image of the different portion of the item;
determining that at least a portion of the second image represents the verification data associated with the item;
determining that the second image was captured subsequent to, and contemporaneous with, the request; and
granting, to the first device, access to a digital version of the item.

US Pat. No. 9,304,646

MULTI-USER CONTENT INTERACTIONS

A9.com, Inc., Palo Alto,...

1. A computer-implemented method of rendering content, comprising:
initiating a session with an electronic marketplace, the electronic marketplace offering a plurality of items for consumption;
enabling a first user and a second user to join the session, the first user joining via a first computing device that includes
a first browser application and the second user joining via a second computing device that includes a second browser application;

receiving a first set of position data and a first set of image data from a first gesture system associated with the first
user of the first computing device, the first set of image data including a view of a current orientation of the first user
and the first set of position data corresponding to features of the first user at the current orientation;

receiving a second set of position data and a second set of image data from a second gesture system associated with the second
user of the second computing device, the second set of image data including a view of a current orientation of the second
user and the second set of position data corresponding to features of the second user at the current orientation;

displaying a first Web page for the session using the first browser application executing on the first computing device, the
first Web page including a first view of the first user using the first set of image data and a second view of the second
user using the second set of image data, the first view being contained in a first gesture module on the first Web page and
the second view being contained in a second gesture module on the first Web page, the first view including a representation
of the current orientation of the first user and the second view including a representation of the current orientation of
the second user, the first Web page including a first set of a plurality of user-selectable objects positioned outside of
the first gesture module and the second gesture module, one of the plurality of user-selectable objects of the first set corresponding
to a wearable item;

analyzing the first set of position data to determine a first user motion configured to cause the wearable item to be displayed
on a second Web page, the second Web page including the first view of the first user using the first set of image data and
the second view of the second user using the second set of image data, the first view being contained in a third gesture module
on the second Web page and the second view being contained in a fourth gesture module on the second Web page;

analyzing the second set image data to determine a three-dimensional model that approximates a shape of the second user; and
displaying, on the second gesture module and the fourth gesture module of the second Web page, the representation of the wearable
item to appear to be worn by the second user based at least in part on the current orientation of the second user, the second
Web page including a second set of a plurality of user-selectable objects, the second set of the plurality of user-selectable
objects being displayed outside the third gesture module and the fourth gesture module, at least one user-selectable object
of the second set of the plurality of user-selectable objects being different from each user-selectable object of the first
set of the user-selectable objects.

US Pat. No. 9,298,781

IDENTIFYING MISSING SEARCH PHRASES

A9.com, Inc., Palo Alto,...

14. A system, comprising:
a data store; and
at least one computing device in communication with the data store, the at least one computing device being configured to
at least:

determine that a search of an electronic repository for a search term surfaces an item at a position less relevant than a
predefined threshold;

in response to the determination that the item is surfaced at the position less relevant than the predefined threshold, determine
that a behavioral association exists between the item and the search term based in part upon behavior of at least one with
respect to interactions of the at least one user with the at least one computing device;

in response to the determination that the behavioral association exists, determine that the at least one search term is excluded
from product data associated with the item; and

in response to the determination that the at least one search term is excluded, takes at least one remedial measure comprising
adding the at least one search term to the product data.

US Pat. No. 9,286,363

ALTERNATIVE BROWSE GRAPHS FOR VIEWING DATA

A9.com, Inc., Palo Alto,...

1. A computer-implemented method for providing alternative browse graphs for viewing data, comprising:
under control of one or more computer systems configured with executable instructions,
reading a data set including a plurality of data items;
generating a first browse graph for the data items contained in the data set, the first browse graph providing a first plurality
of paths connecting the data items of the data set;

generating a second browse graph for the data items contained in the data set, the second browse graph providing a second
plurality of paths connecting the data items that are at least in part different from the paths of the first browse graph;

associating the first browse graph with a first set of one or more users having a first plurality of preferences, wherein
a user of the first set is able to navigate the data set using the first browse graph; and

associating the second browse graph with a second set of one or more users having a second plurality of preferences that are
at least in part different from the first plurality of preferences, wherein a user of the second set is able to navigate the
data set using the second browse graph.

US Pat. No. 9,275,398

OBTAINING METRICS FOR CLIENT-SIDE DISPLAY OF CONTENT

A9.com, Inc., Palo Alto,...

1. A computer-implemented method of monitoring visibility of advertising content on a computing device, comprising:
receiving, from the computing device, a request for content, the computing device having a processor and a memory;
providing, by a content provider server, a response to the computing device, the content provider server having a server processor
and a server memory, the server processor generating the response including the content corresponding to the request, advertising
to be displayed with the content, a script and code for displaying the content stored in the server memory, wherein the script
is executable by the processor of the computing device to analyze the code for displaying the content;

receiving, from the computing device, an indication that blocking software is executing on the computing device, the blocking
software enabled to block the advertising;

determining code from the blocking software based at least in part on the indication, the blocking software capable of implementing
a plurality of methods to block the advertising based at least in part on the code;

identifying a method from the plurality of methods implemented by the blocking software to block the advertising on the computing
device, the identifying based at least in part on the code from the blocking software;

receiving, from the computing device, a visibility of the advertising, the visibility indicating a viewable area of the advertising;
generating information associated with the visibility of the advertising, the information including the method implemented
by the blocking software and the code from the blocking software;

storing the information for subsequent analysis;
determining the advertising to be displayed with the content;
modifying the script, thereby generating a modified script to display the advertising with the content, the modified script
including the information associated with the visibility of the advertising, the method implemented by the blocking software,
and the code from the blocking software; and

transmitting the modified script to the computing device.

US Pat. No. 9,288,124

SYSTEMS AND METHODS OF CLASSIFYING SESSIONS

A9.com, Inc., Palo Alto,...

14. A system comprising:
at least one processor; and
a memory device including instructions that, when executed by the at least one processor, cause the system to:
detect an event associated with user activity in a communication session at a networked computing system;
obtain information about the event from an activity log having event entries, the information including at least one of a
client identifier associated with the event, an event identifier for the event, or information about an event type corresponding
to the event;

perform a comparison of the information about the event to data included in a sessions model, the data included in the sessions
model indicating event characteristics having a likelihood of being associated with human activity or automated activity;

perform an attempt to classify the event as being associated with human activity or automated activity based, at least in
part, on the comparison of the information about the event to the data included in the sessions model;

identify the event as being an unclassified event as a result of the attempt to classify the event being unsuccessful; and
classify the unclassified event based, at least in part, on information about the client identifier associated with the event
by causing the system to further:

determine a quantity of other unclassified events associated with the client identifier;
determine a quantity of total events associated with the client identifier; and
classify the unclassified event based, at least in part, on the quantity of other unclassified events and the quantity of
total events.

US Pat. No. 9,104,700

METHOD AND SYSTEM FOR SEARCHING FOR INFORMATION ON A NETWORK IN RESPONSE TO AN IMAGE QUERY SENT BY A USER FROM A MOBILE COMMUNICATIONS DEVICE

A9.com, Inc., Palo Alto,...

1. A computer-implemented method for searching for information, comprising:
under control of one or more computer systems configured with executable instructions,
receiving a request to perform a search based at least in part on an image captured by a digital camera of a mobile device,
the request including the image;

determining that at least one portion of the image includes text information;
analyzing the at least one portion of the image to recognize one or more words in the text information;
searching one or more databases to identify one or more products related to the one or more words, the one or more databases
selected based at least in part by:

performing an N-gram match between the text information and field entries in the one or more databases; and
providing pricing information relating to at least a selected portion of the one or more products to the user in response
to the request.

US Pat. No. 9,087,395

TECHNIQUES FOR PROVIDING CONTENT ANIMATION

A9.com, Inc., Palo Alto,...

1. A computer-implemented method for enabling animation of content, comprising:
under the control of one or more computer systems configured with executable instructions,
receiving user selection of an image included in content rendered to the user, the image including an object and a background;
determining a boundary of the object in the image;
separating the object in the image from the background based at least in part on the determined boundary;
designating a plurality of virtual geometric components within the boundary of the object;
moving at least one of the plurality of virtual geometric components within the boundary of the object, the moving causing
animated motion of the object;

the movement of the at least one of the plurality of virtual geometric components being constrained with respect to at least
one adjacent geometric component; and

in response to a user selection of at least a portion of the image corresponding to the object, enabling a movement of the
object within the image according to the animation structure,

wherein the portion of the image selected by the user includes at least one virtual geometric component.

US Pat. No. 9,432,421

SHARING LINKS IN AN AUGMENTED REALITY ENVIRONMENT

A9.com, Inc., Palo Alto,...

1. A system, comprising:
a camera;
a display;
at least one processor; and
memory including instructions that, when executed by the at least one processor, cause the system to:
acquire at least a partial image of a point of interest by the camera, the at least the partial image corresponding to a point
of view of a user, the at least the partial image including one or more visual features;

recognize the point of interest by matching the one or more visual features associated with the point of interest against
a plurality of candidate images, wherein the plurality of candidate images are selected from images relating to points of
interest that are in a proximity of a location of the system;

retrieve at least one of content or links relating to the point of interest from a plurality of sources;
cause the at least one of the content or the links to be presented on a user interface of the display based at least in part
upon a distance between the system and the point of interest, the point of view of the user, or a user's profile;

enable the user to associate one of one or more additional links or additional content to the point of interest on a user
interface layer of the display;

determine at least one additional point of interest based at least upon the user's profile or the point of view of the user;
determine whether a predetermined set of conditions satisfies a criterion; and
cause one of an icon or symbol corresponding to the at least one additional point of interest to be presented on the user
interface layer of the computing device, if the criterion is satisfied.

US Pat. No. 9,390,315

IMAGE MATCH FOR FEATURELESS OBJECTS

A9.com, Inc., Palo Alto,...

1. A system, comprising:
at least one processor; and
memory including instructions that, when executed by the at least one processor, cause the system to:
receive an image acquired using a camera of a portable computing device, the image including a representation of an object
of interest for a user of the portable computing device;

analyze at least a portion of the image using at least one feature detection process to identify a set of feature points corresponding
to the representation of the object of interest;

identify, based on a subset of the set of feature points, a scalar element represented in the image, the scalar element corresponding
to a visual element associated with one or more types of objects;

determine, based at least in part upon the scalar element, an object classification for the object of interest;
determine a set of ratios representative of objects in the object classification;
analyze distances between pairs of feature points of the set of feature points to determine values for ratios of the set of
ratios, at least a subset of the set of ratios including dimensions of the scalar element with respect to dimensions of the
object of interest;

compare the values for the ratios against ratio data stored for objects in the object classification;
determine a matching object where the values for the ratios correspond to the ratio data for the matching object with at least
a minimum confidence; and

provide information for the matching object to the portable computing device.

US Pat. No. 9,256,795

TEXT ENTITY RECOGNITION

A9.com, Inc., Palo Alto,...

1. A computer-implemented method, comprising:
displaying an image, captured by a camera of a computing device, on a display element of the computing device;
analyzing the image to locate a region of text in the image;
recognizing text within the region with an optical character recognition (OCR) engine, the OCR engine providing an output
of recognized text including characters grouped by one or more text lines;

analyzing the one or more text lines to isolate a character string indicative of at least one of a phone number, an email
address, or a uniform resource locator (URL), each character of the isolated character string being assigned to a character
class to produce a character class string;

based at least in part on a pattern of the character class string, determining a matching score for the isolated character
string with respect to at least one of a phone number, an email address, or a URL, the isolated character string being identified
as the at least one of a phone number, an email address, or a URL if the matching score is greater than a threshold score,
wherein determining the matching store comprises assigning costs to edits made to the character class string, wherein a cost
associated with mistaking characters that are similar in appearance is small and the cost associated with mistaking characters
that are relatively different in appearance is greater than a threshold value;

determining an overlay template and respective functionality for the at least one of a phone number, an email address, or
a URL; and

displaying the isolated character string on the display element using the overlay template as an overlay element in a live
field of view being captured by the camera, the overlay element including at least one user-selectable element enabling the
respective functionality associated with the at least one of a phone number, an email address, or a URL to be performed.

US Pat. No. 9,152,667

CLOUD SEARCH ANALYTICS

A9.com, Inc., Palo Alto,...

1. A computer-implemented method for analyzing keyword searches, comprising:
receiving information relating to a search submitted by a user;
determining whether each of one or more keywords in the search corresponds to one of a plurality of accessed keyword-counters,
each accessed keyword-counter indicating a number of times the corresponding keyword was received in a search;

for each detected keyword corresponding to one of the accessed keyword-counters, incrementing the corresponding keyword-counter;
for each detected keyword which does not correspond to a keyword-counter, establishing a keyword-counter and setting the value
of the established keyword-counter to an initial value;

storing the values of all keyword-counters in a first file in a fleet resource;
sending a copy of the first file to a reporting layer resource, the reporting layer resource receiving files with keyword-counter
values from a plurality of network resources, wherein the reporting layer resource is capable of cumulating the values of
the keyword-counters from the plurality of network resources to determine the N most commonly occurring cumulated values over
a time T, the time T determined using at least one timer;

detecting a presence of one or more keywords in the search for which a search result was not returned;
determining whether each of one or more keywords in the search corresponds to one of a plurality of accessed keyword-counter,
each accessed keyword-counter indicating a number of times the corresponding keyword was used in a search for which a search
result was not returned;

for each detected keyword corresponding to an accessed keyword-counter, incrementing the corresponding keyword-counter;
for each such detected keyword not corresponding to a keyword-counter, establishing a keyword-counter and setting the value
of the established keyword-counter to an initial value;

storing the values of all keyword-counters in a second file in the fleet resource;
sending a copy of the second file to a storage resource;
saving all sent copy files in the storage resource; and
setting the values of all keyword-counters in the second file in the fleet resource to zero (0).

US Pat. No. 9,240,058

DYNAMIC BARCODE GENERATION FOR CONTENT LOCATION

A9.com, Inc., Palo Alto,...

1. A computer-implemented method for sharing content in an electronic environment, comprising:
receiving input corresponding to an object of digital content stored on a first computing device;
determining an object identifier for the object of digital content;
determining identifying information associated with at least one of the first computing device and a user of the first computing
device, the identifying information indicating a type of access authorized for the first computing device;

selecting a type of barcode based at least in part upon an amount of information and the type of access included in the identifying
information;

determining information corresponding to a current state of the object of digital content and a type of the object, the current
state indicating a current display location of the object of digital content on the first computing device;

generating a barcode corresponding to the selected type of barcode, the barcode including at least the object identifier,
the information corresponding to the current state of the object of digital content, the type of access, the type of the object,
and the identifying information;

displaying the barcode on a display element of the first computing device;
determining a copy of the object of digital content has been accessed from at least one provider; and
deleting the object of digital content stored on the first computing device,
wherein a second computing device is operable to capture an image of the barcode and decode the object identifier and identifying
information in order to attempt to obtain a copy of the object of digital content from the at least one provider and to display
the object of digital content starting from the current display location.

US Pat. No. 9,195,723

EVOLUTIONARY CONTENT DETERMINATION AND MANAGEMENT

A9.com, Inc., Palo Alto,...

1. A computer-implemented method comprising:
receiving a search query from a user device;
causing a first set of search result images to be displayed on the user device, the first set of search result images matching
at least a portion of the search query;

receiving information indicative of a selection of at least one search result image of the first set of search result images
to yield a selected search result image;

identifying a second set of search result images relating to the selected search result image; and
causing the second set of search result images to be displayed more prominently than, and concurrently with, the first set
of search result images on the user device, the first set of search result images being displayed on the user device more
prominently than, and concurrently with, a previously-generated third set of search result images generated prior to the first
set of search result images.

US Pat. No. 9,189,854

CONTOUR DETECTION AND IMAGE CLASSIFICATION

A9.com, Inc., Palo Alto,...

1. A computer-implemented method comprising:
receiving, from a computing device, a query image;
defining a contour corresponding to an item represented in the query image;
generating a query contour histogram of the contour;
comparing the query contour histogram for the query image to a plurality of database contour histograms of a search index;
selecting one or more database contour histograms of the plurality of database contour histograms nearest the query contour
histogram;

classifying the query image as containing one of a right-facing object or a left-facing object based at least in part on the
one or more selected database contour histograms;

generating a set of query descriptors for the query image;
if the query image is classified as containing the right-facing object, comparing the set of query descriptors to a plurality
of database descriptors corresponding to right-facing objects; and

if the query image is classified as containing the left-facing object, comparing the set of query descriptors to a plurality
of database descriptors corresponding to left-facing objects.

US Pat. No. 9,183,583

AUGMENTED REALITY RECOMMENDATIONS

A9.com, Inc., Palo Alto,...

1. A non-transitory computer-readable storage medium storing instructions that, when executed by at least one processor, cause
a computing device to:
capture image information corresponding to a field of view of a camera of a computing device, at least a portion of the image
information being displayed on a display element of the computing device;

analyze the image information to recognize at least one of text or an object represented in the image information and in the
field of view of the camera;

determine at least one of the text or the object as being associated with a product listing;
display, in a graphical overlay over a portion of the image information corresponding to the field of view of the camera and
concurrently being displayed on the display element, the product listing identifying an item available for purchase from an
electronic marketplace;

receive a selection of the item;
display additional information for the item; and
enable purchasing of the item listed in the product listing from the electronic marketplace.

US Pat. No. 9,172,770

WEB-BASED DISTRIBUTED COMPUTING WITH BROWSER-EXECUTED CODE

A9.com, Inc., Palo Alto,...

1. A computing system, comprising:
a processor;
memory including instructions that, when executed by the processor, cause the computing system to:
receive a request for a distributed computing job, the request including data and browser-executable code, the browser-executable
code configured to process the data;

identify a first browser tab and a second browser tab of a browser, the first browser tab and the second browser tab being
configured to execute the browser-executable code;

assign a first portion of the data to the first browser tab and a second portion of the data to the second browser tab of
the browser, the first portion of the data and the second portion of the data configured to be processed using the browser-executable
code; and

receive results corresponding to the first portion of the data and the second portion of the data, the results in accordance
with execution of the browser-executable code in the first browser tab and the second browser tab.

US Pat. No. 9,104,701

DETERMINING SIMILARITY USING HUMAN GENERATED DATA

A9.com, Inc., Palo Alto,...

1. A computer-implemented method of determining visual similarity, comprising:
receiving an image including an item of interest to a user;
identifying the item of interest contained in the image;
determining a plurality of similar items based at least in part upon a type of the item of interest;
determining a set of item descriptors for at least a portion of the plurality of similar items, each item descriptor providing
a score indicating a relatedness of a visual aspect between the item of interest and a respective one of the similar items;

determining a user type, corresponding to the user, at least in part by monitoring an online search history of the user and
comparing the online search history of the user with online search histories from a plurality of customers;

obtaining user-generated visual similarity data for the type of the item of interest, the user-generated visual similarity
data indicating a subjective weighting to be applied to each of the item descriptors based at least in part upon data obtained
from a plurality of customers of the type of item and based at least in part upon weighting preferences of the type of the
user;

determining, using at least one device processor, a visual similarity score for each of the portion of similar items by applying
the subjective weightings to values of the items descriptor values for the similar items; and

selecting, using the at least one device processor, a determined number of the similar items to be provided to the user as
visually similar items based at least in part upon the visual similarity scores for the similar items,

wherein the user-generated visual similarity data is obtained by monitoring customer interactions with the item of interest
and the similar items, and by monitoring the browsing behavior of the user.

US Pat. No. 9,098,888

COLLABORATIVE TEXT DETECTION AND RECOGNITION

A9.com, Inc., Palo Alto,...

1. A system for identifying text in an image, comprising:
at least one processor; and
memory including instructions that, when executed by the at least one processor, cause the system to:
receive the image captured by a computing device;
detect text in the image using a predetermined set of text detection parameters;
identify one or more regions in the image, each of the one or more image regions covered by at least a portion of the detected
text;

determine that the detected text is recognized;
measure one or more parameter metrics of each of the one or more image regions;
determine that one or more predetermined conditions are met;
adjust the text detection parameters or at least one text detection method applying to the image based on the measured one
or more parameter metrics;

apply the adjusted text detection parameters or the adjusted at least one text detection method to the respective image region
of the image; and

provide, in response to the quantity of recognized text being less than a threshold lower limit within a predetermined time,
a notification to disable a text identification function on the computing device or automatically disabling the text identification
function on the computing device.

US Pat. No. 9,047,326

INDEX CONFIGURATION FOR SEARCHABLE DATA IN NETWORK

A9.com, Inc., Palo Alto,...

1. A computer-implemented method for index configuration for searchable data in a networked environment, comprising:
receiving data, the data including a plurality of data fields;
determining a name associated with each data field in the plurality of data fields;
determining a field type, of a plurality of field types, associated with each data field in the plurality of data fields,
the plurality of field types including at least one of an integer type, a literal type, or a text type;

determining whether to enable one or more search options for each of the data fields based at least in part upon the respective
field type associated with each of the data fields, the one or more search options including at least one of an option to
include a respective data field in a search index to be generated, an option to calculate a facet count for the respective
data field, or an option to provide one or more values associated with the respective data field;

automatically generating an index configuration for the data based at least in part on the respective field type of each data
field; and

generating a search index for the data using the index configuration, the search index including a portion of the data for
each data field for which the option to include the respective data field in the search index is enabled.

US Pat. No. 9,449,025

DETERMINING SIMILARITY USING HUMAN GENERATED DATA

A9.com, Inc., Palo Alto,...

1. A computer-implemented method, comprising:
receiving an image, the image including a representation of an item, the item being associated with a type of item;
determining a plurality of similar items based at least in part upon the type of item represented in the image;
determining a set of descriptors for at least one similar item of the plurality of similar items, each descriptor providing
a score that indicates a relatedness of a visual aspect between the item and the at least one similar item of the plurality
of similar items;

obtaining subjective user-generated visual similarity data for the type of the item from at least one data store;
determining, based on the subjective user-generated visual similarity data, a set of weighting to be applied to the set of
descriptors;

determining a subjective visual similarity score for each similar item of the plurality of similar items by applying each
respective weighting to a respective value of a respective descriptor for each similar item of the plurality of similar items;

monitoring user activity associated with the plurality of similar items; and
updating the subjective user-generated visual similarity data and the corresponding set of weightings to be applied to each
respective set of descriptors based on the user activity, wherein the updated subjective user-generated visual similarity
data is stored in the at least one data store and the updated corresponding set of weightings are used in subsequent determinations
of subjective visual similarity scores for the type of item.

US Pat. No. 9,268,966

QUICK USAGE CONTROL

A9.com, Inc., Palo Alto,...

1. A computer-implemented method for managing access to at least one element associated with an application on a computing
device, comprising:
receiving a selection, by a first user of the computing device, of at least one element from a plurality of elements on a
graphic user interface displayed on a display screen of the computing device, wherein each element of the plurality of elements
is associated with an application on the computing device;

providing for display a plurality of locking options relating to the received selection to allow the first user to select
at least one of the plurality of locking options, each of the plurality of locking options corresponding to a type of usage
permission for the application associated with the at least one selected element, the plurality of locking options including
at least one option that assigns a usage permission to the at least one selected element and to at least one other application
associated with one or more other elements of the plurality of elements;

receiving a selection, by the first user of the computing device, of at least one of the plurality of locking options;
placing the application associated with the at least one selected element in a locked state based at least in part on the
selected at least one of the plurality of locking options to prevent at least a second user of the computing device from using
the application associated with the at least one selected element;

enabling the second user to use one or more other applications associated with one or more other elements from the plurality
of elements, the one or more other elements being different from the at least one selected element; and

removing the application associated with the at least one selected element from the locked state for a first time period in
response to an unlock event, wherein the unlock event includes an unlock earned by the second user by performing for a second
time period one or more specified tasks using the one or more other applications associated with the one or more other elements
on the computing device.

US Pat. No. 9,141,665

OPTIMIZING SEARCH SYSTEM RESOURCE USAGE AND PERFORMANCE USING MULTIPLE QUERY PROCESSING SYSTEMS

A9.com, Inc., Palo Alto,...

1. A computer-implemented method, comprising:
receiving a search query from a user computing device;
analyzing, by execution of code by a query optimization system comprising one or more computing devices, the search query
to determine a class of the search query;

identifying, by the query optimization system, one or more specialized data stores available to answer the search query, based
at least in part on the class of the search query and whether the one or more specialized data stores are able to accurately
answer queries of the class;

determining, by the query optimization system, whether to use one of the identified specialized data stores to answer the
search query, wherein the determining is based at least in part on performance data associated with respective specialized
data stores, wherein the performance data indicates at least (1) an average response time associated with respective specialized
data stores in answering search queries and (2) recency of data stored by respective specialized data stores

when a determination is made to not use one of the specialized data stores, retrieving search results for the search query
using a general search engine; or

when a determination is made to use one of the specialized data stores:
selecting for use to answer the search query a specialized data store from the one or more identified specialized data stores,
wherein the selected specialized data store has a lowest average response time and/or more recently stored data;

attempting to retrieve the search results for the search query using the selected specialized data store;
determining whether the search results were retrieved from the selected specialized data store; and
when a determination is made that the search results were not retrieved from the selected specialized data store, retrieving
the search results for the search query using a general search engine; and

returning the retrieved search results to the user computing device.

US Pat. No. 9,390,340

IMAGE-BASED CHARACTER RECOGNITION

A9.com, Palo Alto, CA (U...

1. A computer-implemented method, comprising:
obtaining an image captured by a camera of a computing device;
analyzing the image to locate a region of text represented in the image;
binarizing the region of text to generate a binarized region;
recognizing text of the binarized region with a first optical character recognition (OCR) engine and a second (OCR) engine
to identify first recognized text and second recognized text;

tuning a first processing speed associated with the first (OCR) engine and a second processing speed associated with the second
OCR engine such that the first processing speed and the second processing speed are equal to within a predefined deviation;

determining a first confidence score for the first recognized text and a second confidence score for the second recognized
text by:

searching a database for matching words within the first recognized text and the second recognized text;
increasing the first confidence score for the first recognized text based on matching a string of characters in the first
recognized text or the second recognized text to at least one first word in the database; and

increasing the second confidence for the second recognized text based on matching a second string of characters in the second
recognized text to at least one of the first word or a second word in the database; and

applying a combination function of the first confidence score and the second confidence score to generate a consensus string
of text, the consensus string of text comprising at least a portion of at least one of the first recognized text or the second
recognized text.

US Pat. No. 9,292,739

AUTOMATED RECOGNITION OF TEXT UTILIZING MULTIPLE IMAGES

A9.com, Inc., Palo Alto,...

1. A computing device, comprising:
a processor;
a camera;
a display screen; and
memory including instructions that, when executed by the processor, cause the computing device to performing a set of operations
comprising:

capture, using the camera, a first image of a first portion of a body of text, at least a portion of the body of text is outside
a field of view of the camera;

recognize, using an optical character recognition (OCR) engine with the first image, text of the first portion of the body
of text;

generate a text canvas using the recognized text of the first portion, the text canvas comprising a plurality of text strings;
capture, using the camera, a second image of a second portion of the body of text, the second portion partially overlapping
the first portion;

recognize, using the OCR engine with the second image, text of the second portion of the body of text;
identify pairs of corresponding words in the recognized text of the first portion and the recognized text of the second portion;
determine a mapping between the recognized text of the first portion and the recognized text of the second portion based at
least in part on a geometric correspondence between respective identified pairs of corresponding words;

merge, based at least in part on the determined mapping, at least a subset of the second portion of the body of text with
the text canvas by merging one or more words of the recognized text of the second portion to the text canvas and, as subsequent
images are obtained, the text canvas is iteratively updated as new images of the body of text are captured based at least
in part on confidence scores; and

display, on the display screen, the text canvas.

US Pat. No. 9,247,129

SELF-PORTRAIT ENHANCEMENT TECHNIQUES

A9.com, Inc., Palo Alto,...

1. A computing device, comprising:
one or more processors;
one or more cameras;
memory including instructions that, when executed by the one or more processors, cause the computing device to:
capture a plurality of images using the one or more cameras, each image of the plurality of images including one or more background
elements and one or more foreground elements, and each image of at least a first subset of the plurality of images including
at least a portion of respective representations of one or more users, each image of the plurality of images being captured
by at least one of the one or more users;

segment the one or more foreground elements from the one or more background elements of each image of the first subset of
the plurality of images, each instance of the one or more foreground elements including at least a portion of the respective
representations of the one or more users;

generate a preliminary background image by stitching together at least a portion of the one or more background elements of
each image of at least a second subset of the plurality of images;

generate a background image by filling in at least a portion of the preliminary background image using an inpainting process;
determine a score for the one or more foreground elements of each image of the plurality of images according to one or more
visual characteristics:

obtain one or more selections of at least one instance of the one or more foreground elements from the first subset of the
plurality of image based on the score associated with the at least one instance of the one or more foreground elements; and

generate a self-portrait image by compositing the selected at least one instance of the one or more of foreground elements
corresponding to at least one instance of the representations of the one or more users from the first subset of the plurality
of images and the background image, the at least one instance of the one or more foreground elements being rendered according
to the one or more selections.

US Pat. No. 9,483,531

COMBINED ONLINE AND OFFLINE RANKING

A9.com, Inc., Palo Alto,...

1. A computer implemented method, comprising:
training an online ranking function using a boosting algorithm, the online ranking function selected to dynamically generate
a respective first ranking score for each of a set of items using a set of online data;

training an offline ranking function using the boosting algorithm and the respective first ranking score for each of the set
of items, the offline ranking function selected to periodically generate a respective second ranking score for each of the
set of items using the set of online data and a set of offline data;

receiving a search query;
determining, from the set of items, a set of search results corresponding to the search query;
ranking the search results based upon a respective ranking score for each of the search results, the respective ranking score
for one of the search results calculated using the first ranking score and the second ranking score for a corresponding item
of the set of items; and

providing information for at least a subset of the search results ordered by the respective ranking score for each of the
subset of the search results.

US Pat. No. 9,454,607

IMAGE AS DATABASE

A9.com, Inc., Palo Alto,...

1. A computer-implemented method for delivering information, comprising:
encoding a plurality of webpages from a web server remote to a client device into a first image, the plurality of webpages
being associated with a plurality of different types of content categories, the first image comprising a plurality of pixels,
the plurality of pixels including binary data that corresponds to a markup language;

parsing the first image into a plurality of secondary images, each of the secondary images of the plurality of secondary images
comprising encoded binary data used to generate a set of webpages of the plurality of webpages, wherein the set of webpages
is associated with one type of content category of the plurality of different types of content categories;

generating an index relating each of the plurality of webpages to a respective encoding within the plurality of secondary
images;

obtaining a first request from a browser of the client device for a first webpage of the plurality of webpages;
retrieving the first webpage from the web server and providing the first webpage to the browser;
transmitting, to the browser, the plurality of secondary images and causing the plurality of secondary images to be lazy-loaded
in an image cache of the browser as part of a background process;

obtaining a second request from the client device for a second webpage of the plurality of webpages;
causing the browser to process the index to determine a portion of the plurality of secondary images corresponding to the
second webpage;

causing the browser to retrieve the portion of the plurality of secondary images from the cache; and
causing the browser to decode binary data associated with the portion of the plurality of secondary images into the markup
language to obtain the second webpage.

US Pat. No. 9,373,188

TECHNIQUES FOR PROVIDING CONTENT ANIMATION

A9.com, Inc., Palo Alto,...

1. A computer system for generating an animation structure for an object including a plurality of segments, the system comprising:
a processor; and
a memory having computer-executable instructions that, when executed on the processor, cause the processor to:
obtain an image of an object, the image including a representation of the object;
segment the representation of the object into a plurality of segments;
scan two rows of pixels that include at least a portion of the representation of the object;
generate two virtual geometric components for each row;
define each segment of the plurality of segments with at least four virtual geometric components, wherein two of the at least
four virtual geometric components are located in a same row;

associate at least one of the at least four virtual geometric components with each segment; and
generate an animation structure based at least in part on the plurality of segments.

US Pat. No. 9,350,913

ASSISTED TEXT INPUT FOR COMPUTING DEVICES

A9.com, Inc., Palo Alto,...

1. A computing device, comprising:
a first camera;
a second camera separated a distance from the first camera;
a display element;
at least one processor; and
a memory device including instructions that, when executed by the at least one processor, cause the computing device to:
capture first image data of an object by the first camera, the object including text displayed on a surface of the object;
capture second image data of the object by the second camera;
process the first image data to recognize the text displayed on the surface of the object;
determine a set of words from the recognized text;
generate using the first image data and the second image data a three-dimensional representation of the object;
display an interface that includes a selectable list of a subset of the set of words; and
enable selection of a word from the selectable list to be displayed with the three-dimensional representation of the object.

US Pat. No. 9,471,681

TECHNIQUES FOR SEARCH OPTIMIZATION

A9.Com, Inc., Palo Alto,...

1. A computer-implemented method for optimizing search on a Web site, comprising:
obtaining a search request including at least one search query on the Web site;
providing a first set of items on a first page of the Web site, the first set of items associated with the at least one search
query in the search request;

identifying a set of search queries previously entered by a plurality of users to locate at least one item in the first set
of items on the Web site, the set of search queries correlated with previous user behavior data associated with the at least
one item in the first set of items;

obtaining a selection requesting a second set of items associated with the at least one item;
determining a level of behavioral association between the at least one item and individual search queries in the set of search
queries, the level of behavioral association represented as a weighted value based at least in part on the previous user behavior
data;

determining at least one updated search query from the set of search queries, the at least one updated search query having
the level of behavioral association with the at least one item at least meeting a behavioral association threshold value associated
with the individual search queries in the set of search queries; and

providing the second set of items corresponding to the at least one updated search query on one of the first page or a second
page, the second set of items being provided without a reload of the one of the first page or the second page, the second
set of items having at least one item unique from the first set of items.

US Pat. No. 9,405,841

DYNAMIC SEARCH SUGGESTION AND CATEGORY SPECIFIC COMPLETION

A9.com, Inc., Palo Alto,...

1. A computer-implemented method for providing category-specific search suggestions to a user, the method comprising:
receiving from a user one or more characters associated with a partial search query to be executed against a set of data;
determining a plurality of relevant search query suggestions relevant to the one or more characters associated with at least
the partial search query received from the user;

associating each of the plurality of relevant search query suggestions with at least one of a plurality of search categories
determined to be relevant to a respective search query suggestion;

selecting a subset of the plurality of associated search categories based at least in part a relevance value for each category
meeting a threshold relevance value, the relevance value indicating a strength of an association of each category in the subset
of the plurality of associated search categories with the plurality of relevant search query suggestions;

providing for display the subset of the plurality of associated search categories and the plurality of relevant search query
suggestions, the plurality of relevant search query suggestions including the one or more characters of the partial search
query;

determining an ordered set of some of the plurality of relevant search query suggestions and some of the plurality of associated
search categories based at least in part on the relevance value of each category;

providing for display, within an allowable deviation from being simultaneous to receiving the one or more characters, a search
suggestion window including the ordered set, wherein the some of the plurality of relevant search query suggestions and the
some of the plurality of associated search categories in the ordered set are displayed concurrently in the search suggestion
window, the some of the relevant search query suggestions and the some of the associated search categories selectable to be
executed against the set of data in the associated search category;

dynamically updating the ordered set as characters are entered or deleted; and
providing for display a category view upon selection of at least one associated search category, the category view providing
an ordered set of available items for purchase by the user.

US Pat. No. 9,373,025

STRUCTURED LIGHTING-BASED CONTENT INTERACTIONS IN MULTIPLE ENVIRONMENTS

A9.com, Inc., Palo Alto,...

1. A computer-implemented method of rendering content, comprising:
initiating a session with an electronic marketplace, the electronic marketplace offering a plurality of items for consumption;
enabling a first user and a second user to join the session, the first user joining via a first computing device that includes
a first browser application and the second user joining via a second computing device that includes a second browser application;

receiving position data and image data from a gesture system, the image data including a first view of a current orientation
of the first user and the position data corresponding to features of the first user at the current orientation;

rendering a first Web page for the session on the first computing device using the first browser application and a second
Web page for the session on the second computing device using the second browser application, the first Web page and the second
Web page including first content and the first view of the current orientation of the first user, the first content including
a first set of a plurality of user-selectable objects corresponding to a first portion of the plurality of items for consumption;

analyzing the position data to determine at least one of a motion or gesture by the first user being represented in the image
data, the motion or gesture of the first user causing to be indicated one of the plurality user-selectable objects of the
first set of the plurality of user-selectable objects, the one of the plurality user-selectable objects corresponding to a
wearable item;

manipulating a representation of the wearable item to correspond to the shape of the first user;
rendering a second view that includes the representation of the wearable item to appear to be worn by the first user on the
first Web page based at least in part on the current orientation of the first user and the first content; and

rendering a third view that includes the representation of the wearable item to appear to be worn by the first user on the
second Web page and second content, the second content including a second set of a plurality of user-selectable objects, a
portion of the second set of the plurality of user-selectable objects corresponding a second portion of the plurality of items
for consumption.

US Pat. No. 9,299,009

UTILIZING COLOR DESCRIPTORS TO DETERMINE COLOR CONTENT OF IMAGES

A9.com, Inc., Palo Alto,...

1. A computer-implemented method, comprising:
defining a color space comprising a plurality of color classes;
selecting a plurality of sample images for each color class of the color space;
associating each one of the sample images with a color descriptor of a plurality of color descriptors;
obtaining an image;
determining a closest fine color for each of at least a portion of pixels of the image, each fine color being associated with
a color family;

computing a fine color histogram and a family color histogram for the image;
determining a color descriptor of the plurality of color descriptors based at least in part on a combination of the fine color
histogram and the family color histogram for the image;

comparing the color descriptor to each color descriptor associated with each one of the plurality of sample images for each
color class to generate a plurality of color matching scores;

identifying a determined number of highest scoring sample images having a color matching score above a threshold matching
score;

grouping each of the sample images of the determined number of highest scoring sample images into a class color cluster;
summing the color matching scores for each of the sample images in each class color cluster; and
assigning the image to at least one color class for at least one class color cluster having a color matching score sum above
a threshold value.

US Pat. No. 9,299,039

MANAGING TASK LISTS UTILIZING INTEGRATED INFORMATION REQUESTS

A9.com, Inc., Palo Alto,...

1. A system including a processor for managing tasks, the system comprising:
at least one database for storing information relating to user profile information and information relating to one or more
predefined words, wherein the one or more predefined words correspond to a natural language; and

at least one task management service in communication with the at least one database, the at least one task management service
operative to:

receive user input that specifies a task description for a task, the task description including at least a string of characters;
parse the string of characters of the task description to identify an action word in the at least one database, the action
word corresponding to at least one of the one or more predefined words stored in the at least one database;

identify, based in part on the identified action word, a plurality of templates, associated with the identified action word,
stored in the at least one database, each template of the plurality of templates including a different plurality of actions;

receive, from the user, a selection of a first template from the plurality of templates;
generate a task list including the plurality of actions of the first template, two or more of the plurality of actions each
including at least one sub-action that requires additional information from the user before the at least one sub-action is
able to be executed;

obtain, from the user for each of the two or more actions, the additional information for the at least one sub-action;
execute the at least one sub-action for each of the two or more actions, wherein the at least one sub-action has been updated
using the additional information obtained from the user; and

determine that each action of the task list has been completed based at least in part on execution of the at least one sub-action
for each of the two or more actions.

US Pat. No. 9,367,124

MULTI-APPLICATION CONTENT INTERACTIONS

A9.com, Inc., Palo Alto,...

1. A computer-implemented method of rendering content, comprising:
receiving a request for a first Web page from a first user of a first computing device, the first Web page being viewable
by the first user on the first computing device and a second user on a second computing device;

receiving position data and image data associated with the first user from a gesture system the image data including a view
of a current orientation of the first user and the position data corresponding to features of the first user at the current
orientation;

rendering the first Web page including a first area of display, a second area of display, and a third area of display, the
first area of display including at least a plurality of user-selectable objects, each one of the plurality of user-selectable
objects corresponding to a purchasable item, the second area of display including a representation of the current orientation
of the first user, and the third area of display being viewable to the first user and the second user;

analyzing the position data of the first user to determine at least one of a motion or gesture of the first user, the motion
or gesture of the first user causing at least one of the user-selectable objects to be indicated; and

causing the indicated user-selectable object to be placed in the third area of display on the first Web page, wherein both
the first user and the second user are capable of selecting the at least one of indicated user-selectable objects from the
third area of display, wherein any change made to the third area of display on one of the first computing device and the second
computing device, including the selecting of the at least one of indicated user-selectable objects, is replicated on the other
one of the first computing device and the second computing device.

US Pat. No. 9,147,275

APPROACHES TO TEXT EDITING

A9.com, Inc., Palo Alto,...

1. A computer-implemented method for text editing on a computing device, comprising:
under control of one or more computer systems configured with executable instructions,
capturing, using a camera of a computing device, a live view of an object including text;
determining a set of characters corresponding to the text using an optical character recognition (OCR) process performed on
image data corresponding to the live view of the object;

displaying on a display component of the computing device, over the live view of the object, the set of characters as one
or more first user-selectable elements;

receiving a first request to replace at least one character of the set of characters according to a first selection of the
one or more first user-selectable elements;

determining a plurality of sets of one or more alternative characters with which to replace the at least one character;
displaying on the display component one or more second user-selectable elements each corresponding respectively to one of
at least a subset of the plurality of sets of one or more alternative characters;

receiving a second request to replace the at least one character according to a second selection of one of the one or more
second user-selectable elements; and

replacing the at least one character in the set of characters with the one of at least a subset of the plurality of sets of
one or more alternative characters corresponding to the second request.

US Pat. No. 9,406,043

TECHNIQUES FOR PEER-TO-PEER COMMUNICATION

A9.com, Inc., Palo Alto,...

1. A computer-implemented method for peer-binding on a Web site rendered on a client computing device, comprising:
under the control of one or more computer systems configured with executable instructions,
embedding, in a page of a Web site, a trusted script that is configured to execute on at least one client computing device
in response to the client computing device accessing the page;

receiving, from the trusted script and by a browser associated with a first client computing device executing the trusted
script, identification information that identifies a second client computing device in response to the trusted script executing
on the second client computing device;

creating, by the browser, a first queue associated with the identification information of the second client computing device
in response to receiving the identification information that identifies the second client computing device, wherein the first
queue is created in response to executing the trusted script embedded in the page;

in response to receiving a first event from a third client computing device on which the trusted script is also executing,
by the browser, placing event information associated with the first event in the first queue, wherein the trusted script is
executed on the third client computing device in response to the third client computing device accessing the page of the Web
site, wherein the first event describes an action performed by a user operating the third client computing device on an object
presented in the page of the Web site; and

in response to a polling request received from the second client computing device, sending, by the browser and to the second
client computing device, the event information associated with the first event, wherein an event occurring on the third computing
device is able to cause an updating of a page of the Web site on the second computing device.

US Pat. No. 9,411,839

INDEX CONFIGURATION FOR SEARCHABLE DATA IN NETWORK

A9.com, Inc., Palo Alto,...

1. A system comprising:
at least one communications transceiver;
one or more storage allocations;
at least one processor; and
a memory device including instructions that, when executed by the at least one processor, cause the system to:
receive, via the at least one communications transceiver, data of a first format to be indexed, the data including a plurality
of data fields;

analyze data in each of the plurality of data fields to determine a value associated with each data field, each respective
value corresponding to one of an amount of integer characters reaching an integer threshold, an amount of alphabetic characters
being within a specified literal amount range, or an amount of integer and alphabetic characters above a text amount threshold;

determine from a plurality of types of data fields, a type of a data field for each of the plurality of data fields; determine
one or more search options to be enabled for each data field of the plurality of data fields based at least in part on the
type of the data field for each of the plurality of data fields, the one or more search options including an option to include
a respective data field in a search index;

generate an index configuration for the data based at least in part on the one or more search options;
generate a search index for the data based at least in part on the index configuration for the data; and
convert the data from the first format to a second format to generate converted data, the second format being compatible with
the search index, wherein the converted data is stored in at least one storage location.

US Pat. No. 9,240,077

REAL-TIME VISUAL EFFECTS FOR A LIVE CAMERA VIEW

A9.com, Inc., Palo Alto,...

1. A computing device, comprising:
a processor;
a camera;
a display screen; and
memory including instructions that, when executed by the processor, cause the computing device to:
acquire an image using the camera, the image including text;
acquire a binary mask for the image;
select a plurality of pixels of the image for at least one visual effect corresponding to at least one portion of the text,
the plurality of pixels being selected based at least in part upon the binary mask;

calculate respective values for each of the plurality of pixels of the image for the at least one visual effect corresponding
to the at least one portion of the text;

modify the image based at least in part upon the respective values for each of the plurality of pixels for the at least one
visual effect; and

display the modified image on the display screen,
wherein the modified image is displayed at least in substantially real time.

US Pat. No. 9,064,149

VISUAL SEARCH UTILIZING COLOR DESCRIPTORS

A9.com, Inc., Palo Alto,...

1. A computer-implemented method, comprising:
under the control of one or more computer systems configured with executable instructions,
assigning a saturation value and a brightness value to a plurality of color hues for each of a plurality of colors;
determining a number of fine color representatives from the plurality of colors to describe color variation in an image as
a histogram;

assigning each of the number of fine color representatives to at least one pure color family of a plurality of pure color
families;

obtaining a first image including a plurality of pixels;
determining a closest matching fine color representative from the number of fine color representatives for each pixel from
at least a portion of the plurality of pixels of the first image, the closest matching fine color representative of the each
pixel comprising a respective color included in a color space that is within a distance threshold of a second color in the
color space corresponding to the each pixel;

computing a global histogram based at least in part on each of the closest matching fine color representatives of each pixel
from at least the portion of the plurality of pixels and a family histogram of at least the one pure color family for each
pixel of at least the portion of the plurality of pixels; and

computing a color vector descriptor from a combination of the global histogram and the family histogram, the color vector
descriptor used to determine color similarity between the image and a second image.

US Pat. No. 9,251,244

METHOD AND SYSTEM FOR GENERATION OF HIERARCHICAL SEARCH RESULTS

A9.com, Inc., Palo Alto,...

1. A computing system for providing general purpose searching, the system comprising:
at least one processor; and
memory including instructions that, when executed by the processor, cause the computing system to provide:
a product database that contains entries for a plurality of items, the plurality of items being hierarchically classified;
a descriptor that contains a definition of hierarchical organization of the items in the product database, the definition
including a hierarchy of classifications;

an index builder configured to:
read the descriptor and construct an index for the product database based at least in part on the definition in the descriptor,
the constructed index containing at least one entry for each classification in the definition, the entry containing one or
more words that appear in at least one of: (a) the entries of the product database for the items within the classification
or (b) the words in a name of the classification, and

read a special terms file to construct the index, the special terms file containing one or more words that are synonymous
with the name of the classifications in the constructed index, wherein the index builder assigns a high priority to the one
or more words that are synonymous with the name of the classification; and

a search engine configured to receive search criteria and return a set of results for the search criteria based at least in
part on the constructed index, the set of results adjusted for the hierarchy of classifications.

US Pat. No. 9,179,061

ASSISTED TEXT INPUT FOR COMPUTING DEVICES

A9.com, Inc., Palo Alto,...

1. A computing device, comprising:
a camera;
a display element;
at least one processor; and
a memory device including instructions that, when executed by the at least one processor, cause the computing device to:
acquire an image of an object using the camera of the computing device, at least a portion of the image being displayed on
the display element of the computing device;

process the image to determine a first region and a second region, the first region including a representation of the object,
the first region corresponding to a foreground area of the image and the second region corresponding to a background area
of the image;

apply a color to the second region;
crop the image to remove the second region from the image;
enhance a contrast of the image;
analyze the first region to recognize one or more words associated with the object;
receive, from a user of the computing device, a selection of a text field;
display an interface that includes a selectable list of at least a subset of the one or more words, the subset of the one
or more words being determined based at least in part on a relevance score associated with each of the one or more words with
respect to the text field; and

enable the user to select at least one of the one or more words of the selectable list for use in completing the text field.

US Pat. No. 9,165,406

PROVIDING OVERLAYS BASED ON TEXT IN A LIVE CAMERA VIEW

A9.com, Inc., Palo Alto,...

1. A computer implemented method for providing an overlay in a live camera view, the method comprising:
under control of one or more computer systems configured with executable instructions,
displaying an image on a display element of a computing device, the image being captured by a camera of the computing device;
analyzing the image to locate a region of text in the image;
analyzing the region of text using a character recognition process to determine textual content for the region of text and
a text entity type for the region of text;

determining an overlay template associated with the text entity type;
determining functionality associated with the text entity type; and
displaying on the display element, over a current view being captured by the camera, at least a portion of the textual content
using the overlay template as an overlay element, the overlay element being rendered with respect to a location of the text
recognized, the overlay element including at least one user-selectable element enabling the functionality associated with
the text entity type to be performed with respect to the textual content.

US Pat. No. 9,148,753

DISPLAYING LOCATION-SPECIFIC IMAGES ON A MOBILE DEVICE

A9.com, Inc., Palo Alto,...

5. A computing system, comprising:
one or more processors;
a memory device including instructions that, upon being executed by the one or more processors, cause the computing system
to:

receive, from a mobile device via a communication network, a shopping list that includes at least one item and a location
of the mobile device;

identify at least one store based at least in part upon (a) the at least one store being a determined distance from the location
of the mobile device and (b) availability of the at least one item at the at least one store;

select a location-specific image for the at least one store from a plurality of location-specific images; and
send, via the communication network, the location-specific image to the mobile device.

US Pat. No. 9,412,120

AUDIO-TRIGGERED NOTIFICATIONS FOR MOBILE DEVICES

A9.Com, Inc., Palo Alto,...

12. A computer-implemented method, comprising:
receiving, by at least one computing device comprising memory and at least one hardware processor, a request for an advertisement
from a client device, the request comprising an advertisement identifier decoded by the client device from an audio signal
emitted from a transmitting device and a device identification number associated with the transmitting device, the audio signal
comprising a human-perceptible portion and a human-imperceptible portion, the advertisement identifier being decoded by the
client device from the human-imperceptible portion of the audio signal;

identifying, by the at least one computing device, the advertisement corresponding to the advertisement identifier from a
data store;

identifying, by the at least one computing device, a location of the client device using the device identification number
associated with the transmitting device;

determining, by the at least one computing device, that the client device has not been presented with the advertisement within
a predefined time range while the client device resides within a predefined distance of the location; and

transmitting, by the at least one computing device, a communication comprising the advertisement to the client device in response
to the client device not having been presented with the advertisement within the predefined time range while the client device
resides within the predefined distance of the location.

US Pat. No. 9,263,084

SELECTIVE SHARING OF BODY DATA

A9.com, Inc., Palo Alto,...

1. A computer-implemented method of managing a transmission of body data, comprising:
obtaining, by a device processor, position data and image data from a gesture system, the gesture system operable to receive
body data of one or more users, the body data including the position data and image data of the one or more users, the image
data including a view of a body of a user and the position data corresponding to motions of the body of the user;

receiving a request to transmit the body data to a recipient, the request including at least a portion of at least one of
the position data or the image data of the user;

identifying a type of recipient, the type of the recipient being associated with at least one of an age, a gender, a location,
a preference, or an identity of the recipient;

determining that permission data exists, for the user, and applies to the request, the permission data indicating at least
one of the image data and the position data as at least a portion of the body data allowed to be transmitted based at least
in part on a transmission policy and the type of the recipient associated with the request;

prompting the user for permission data when permission data that applies to the request does not exist for the user;
filtering, by the gesture system, the body data to the at least the portion of body data allowed to be transmitted based at
least in part upon the permission data; and

sending at least the portion of the body data allowed to be transmitted based at least in part on the filtering.

US Pat. No. 9,275,682

VIDEO CONTENT ALIGNMENT

A9.com, Inc., Palo Alto,...

1. A non-transitory computer-readable storage medium storing instructions that, when executed by a processor, cause a computing
device to: generate, for a first version of a video file, a first version fingerprint for each frame of the first version;
generate, for a second version of the video file, a second version fingerprint for each frame of the second version of the
video file, wherein generating a fingerprint from a frame of the first version and the second version of the video file includes:
segmenting the frame into a plurality of cells; computing an average intensity value for each cell; and comparing, for at
least a subset of the plurality of cells, the average intensity value for a first cell against each other cell of the subset
to compute the fingerprint; generate a first run-length encoded representation of first version fingerprints for the first
version of the video file; generate a second run-length encoded representation of second version fingerprints for the second
version of the video file; identify a first set of unique fingerprints of the first version from the first run-length encoded
representation; identify a second set of unique fingerprints of the second version from the second run-length encoded representation;
determine a set of split points for the first version and the second version of the video file, wherein determining the split
points includes: comparing the first set of unique fingerprints to the second set of unique fingerprints to identify a plurality
of matching unique fingerprints; sorting the matching unique fingerprints by time; and filtering the matching unique fingerprints
using a Longest Common Subsequences (LCS) algorithm to determine the set of split points; segment the first version of the
video file into a plurality of first version segments using the set of split points; segment the second version of the video
file into a plurality of second version using the set of split points; determine, using Gotoh's sequence alignment algorithm,
individual frame correspondences between each first version segment of the plurality of first version segments and a corresponding
second version segment of the plurality of second version segments; and concatenate the plurality of first version segments
and the plurality of second version segments based at least in part on the individual frame correspondences to generate a
global alignment comparison output.

US Pat. No. 9,182,895

DISPLAYING REPRESENTATIVE IMAGES IN A VISUAL MAPPING SYSTEM

A9.com, Inc., Palo Alto,...

1. A computing system, comprising:
a processor;
a memory device including instructions that, when executed by the processor, cause the computing system to:
receive a search request relating to a display of a geographic location;
determine, in response to the search request, a plurality of geographically adjacent images corresponding to the geographic
location;

stitch together at least a portion of the plurality of geographically adjacent images to provide a three-hundred and sixty
degree view of a region surrounding the geographic location, the region being centered proximate the geographic location;

receive a selection of at least one interactive element; and
cause a change in display of the three-hundred and sixty degree view of the region surrounding the geographic location.

US Pat. No. 10,117,315

NETWORK OF MOTION SENSOR LIGHTS WITH SYNCHRONIZED OPERATION

A9.com, Inc., Palo Alto,...

1. A wireless lighting module comprising:at least one light emitting diode (LED) configured to output light in a first illumination state and a second illumination state different from the first illumination state;
a wireless transceiver;
a timing component;
an interface component configured to receive a lighting coordination input signal from a first disparate wireless lighting module and an environmental signal from an environmental sensor while the at least one LED is in the first illumination state, wherein the lighting coordination input signal received from the first disparate wireless lighting module is configured for use in controlling illumination of the wireless lighting module, and the environmental signal is indicative of a detected proximity of an object or a detected motion;
a battery configured to supply power to the at least one LED; and
a controller configured to:
change an illumination state of the at least one LED of the wireless lighting module from the first illumination state to the second illumination state and initiate timing by the timing component in response to a received environmental signal indicating a detected proximity of an object or a detected motion;
cause generation of a first illumination state control signal in response to the received environmental signal indicating a detected proximity of an object or a detected motion and cause transmission of the first illumination state control signal, via the wireless transceiver, to one or more disparate wireless lighting modules to change an illumination state of an LED of the one or more disparate wireless lighting modules from their first illumination state to their second illumination state;
change the illumination state of the at least one LED of the wireless lighting module from the second illumination state to the first illumination state after the timing component indicates that a predetermined time period has elapsed and during which no additional environmental signal is received indicating a detected proximity of an object or a detected motion;
wherein the first illumination state of the at least one LED is determined based on a combination of the second illumination state, the lighting coordination input signal, the environmental signal from the environmental sensor, and a setting for the timing component;
wherein the change of the illumination state of the at least one LED of the wireless lighting module from the second illumination state to the first illumination state is in accordance to a timing protocol corresponding to the setting for the timing component; and
wherein the timing protocol delays the change of the illumination state;
change the illumination state of the at least one LED of the wireless lighting module from the first illumination state to the second illumination state and initiate timing by the timing component in response to a received first lighting coordination input signal from the first disparate wireless lighting module;
change the illumination state of the at least one LED of the wireless lighting module from the second illumination state to the first illumination state after the timing component indicates that an elapsed amount of time has passed subsequent to the received first lighting coordination input signal from the first disparate wireless lighting module and during which no additional lighting coordination input signals are received;
wherein the first disparate wireless lighting module is included within the one or more disparate wireless lighting modules; and
wherein in the first illumination state, the at least one LED is powered off, and in the second illumination state, the at least one LED is powered on.

US Pat. No. 10,085,332

MOTION SENSITIVE COMMUNICATION DEVICE FOR CONTROLLING LIGHTING

A9.Com, Inc., Palo Alto,...

1. A communication device comprising:a wireless communication interface configured to communicate with a local network;
a camera configured to capture one or more images;
a microphone configured to capture at least one sound;
a motion sensor configured to generate an output indicative of detected motion within an area about the communication device; and
a processor configured to:
activate the camera to capture the one or more images in response to the output from the motion sensor indicative of the detected motion;
activate the microphone to capture the at least one sound in response to the output from the motion sensor indicative of the detected motion;
cause the wireless communication interface to transmit a motion alert signal, the captured one or more images, and the captured at least one sound to a client device through the local network; and
cause the wireless communication interface to transmit an activation signal to at least one lighting device coupled to the local network to turn on a light source of the at least one lighting device in response to the output from the motion sensor indicative of the detected motion.

US Pat. No. 10,098,211

WIRELESSLY CONTROLLABLE LIGHTING MODULE

A9.Com, Inc., Palo Alto,...

1. A lighting device comprising:a housing;
a light source mechanically coupled with the housing and configured to provide, during activation, illumination for an area corresponding to the lighting device;
a camera device mechanically coupled with the housing and configured to capture camera data, the camera data representing one or more images;
a speaker mechanically coupled with the housing and configured to output sound to an environment of the lighting device;
a communication interface disposed within the housing and configured to enable a wireless communication path between the lighting device and a remote intelligent computing device; and
at least one processor disposed within the housing and configured to:
cause transmission of the camera data to the remote intelligent computing device via the wireless communication path; and
cause the speaker to output the sound represented by an audio signal received via the wireless communication path.

US Pat. No. 9,076,143

SYSTEM AND METHOD FOR MULTIPLE USER ADVERTISEMENT ACCOUNTS

A9.com, Inc., Palo Alto,...

1. A computer-implemented advertisement system for network-based advertising, comprising:
a processing unit;
a system memory coupled to the processing unit;
an advertisement account database stored within the system memory and configured to direct the processing unit to store information
related to a network-based advertisement account; and

account management logic stored within the system memory in communication with the advertisement account database and configured
to direct the processing unit to:

grant a plurality of users access to the advertisement account;
receive an input from one of the plurality of users of the account, wherein the input includes a request to transfer billing
responsibility for the advertisement account;

update the advertisement account database in response to the input;
populate an activity log with information related to the input; and
provide a display of the activity log that is accessible to the plurality of users.

US Pat. No. 9,507,750

DYNAMIC SEARCH PARTITIONING

A9.com, Inc., Palo Alto ...

1. A computer-implemented method for dynamic search partitioning, comprising:
monitoring at least one of an amount of data being stored or a rate at which data is being manipulated on a first partition
of each of two or more sets of partitions provided by a network service, each set of partitions including a plurality of partitions,
the plurality of partitions being included in a storage allocation provided by the network service, each set of partitions
associated with a different account;

determining that the at least one of the amount or the rate exceeds a specified amount threshold or a specified rate threshold,
respectively;

determining that network traffic associated with the storage allocation corresponds to a first type;
performing an increase to a size of the first partition, the increase being based on the network traffic corresponding to
the first type and at least in part on the amount of data being stored or the rate at which data is being manipulated;

directing the network traffic to a cache provided by the network service during the increase; and
directing the network traffic to the storage allocation when the performing the increase is complete.

US Pat. No. 10,085,327

MODULAR COORDINATED LIGHTING SYSTEM

A9.com, Inc., Palo Alto,...

1. A modular coordinated lighting system, comprising:at least one wireless lighting device comprising a battery, a light source, a wireless transceiver, an environmental sensor, a processor, a camera, a memory card and a housing, wherein the processor of the at least one wireless lighting device is configured to:
receive a remote control signal transmitted from a remote control device located separately from the at least one wireless lighting device; and
in response to the received remote control signal, set at least one parameter associated with the camera of the at least one wireless lighting device;
wherein the modular coordinated lighting system further includes at least one disparate wireless lighting device separate from the at least one wireless lighting device, the disparate wireless lighting device being configured to control an illumination of the at least one wireless lighting device, the at least one disparate wireless lighting device comprising:
a sensor configured to detect a predefined condition; and
a transmitter configured to transmit a control signal over a wireless data link from the at least one disparate wireless lighting device to the at least one wireless lighting device responsive to detecting the predefined condition, wherein the control signal includes a group identifier identifying a group including the at least one wireless lighting device and the at least one disparate wireless lighting device, and
wherein the transmitted control signal from the disparate wireless lighting device triggers the camera of the at least one wireless lighting device to capture at least one of a photo or a video.

US Pat. No. 9,542,765

METHOD AND SYSTEM FOR PLACING AN OBJECT ON A USER

A9.com, Inc., Palo Alto,...

1. A non-transitory computer readable storage medium including instructions stored thereon which, when executed by a processor,
cause the processor to perform the steps of:
obtaining a first image of a user from a mobile computing device;
obtaining a second image of at least one portion of an object;
identifying a dimension of at least one portion of the user in the first image;
generating a transformation based on at least one of a rotation, a scaling, or a translation to be applied to the second image
based at least in part upon the dimension of the at least one portion of the user, the at least one of the rotation, the scaling,
or the translation calculated at least in part by:

determining an intersection point of diagonals of a shape formed by the one or more dimensions;
determining an axis of the at least one portion of the user through the intersection point of the diagonals with an orientation
perpendicular to an average orientation of the one or more dimensions; and

determining a segment of the axis located between the one or more dimensions as the rotation, the scaling, or the translation;
generating a third image based on the first image and the transformation of the second image, the third image including the
at least one portion of the object applied to the at least one portion of the user; and

providing the third image for display on the mobile computing device.

US Pat. No. 9,535,587

SYSTEM AND METHOD FOR DISPLAYING INFORMATION IN RESPONSE TO A REQUEST

A9.com, Inc, Palo Alto, ...

1. A computer-implemented method, comprising:
acquiring a first image and a second image;
associating the first image with first GPS coordinates and the second image with second GPS coordinates, a first location
corresponding to the first GPS coordinates, the first location being adjacent to a second location corresponding to the second
GPS coordinates;

retrieving a first boundary information associated with the first GPS coordinates and a second boundary information associated
with the second GPS coordinates, the first boundary information corresponding to a first boundary that includes at least the
first location, the second boundary information corresponding to a second boundary that includes at least the second location,
each of the first boundary and the second boundary encompassing a representation of a different street-level structure;

matching the first GPS coordinates to physical coordinates of the first image, the physical coordinates of the first image
corresponding to a physical location represented in the first image;

detecting a mismatch between the first GPS coordinates and the physical coordinates of the first image;
detecting a match between the physical coordinates of the first image and the second GPS coordinates;
associating the first image with the second GPS coordinates and second boundary information; updating a list for display in
an online directory, the list including the first image associated with the second GPS coordinates and the second boundary,
the list including a region surrounding the first boundary and the second boundary;

stitching together at least the first image and the second images to generate a three-hundred and sixty degree view of the
region associated with the first boundary and the second boundary;

associating the three-hundred and sixty degree view of the region with the online directory;
in response to a search query at the online directory, identifying an object within the region for which information is to
be provided, the identified object being associated with a location within at least the portion of the region, wherein the
location for the object is determined based at least in part on a lookup table that stores an altered visual emphasis address
and corresponding longitude and latitude coordinates for the address;

and generating information associated with the identified object, wherein the information includes image information providing
the three-hundred sixty degree view of the region and at least one interactive element for changing a direction of a display
of the three-hundred sixty degree view of the region.

US Pat. No. 9,213,420

STRUCTURED LIGHTING BASED CONTENT INTERACTIONS

A9.com, Inc., Palo Alto,...

1. A computer-implemented method of rendering content on a computing device, comprising:
initiating a session with an electronic marketplace, the electronic marketplace offering a plurality of items for consumption;
enabling a first user and a second user to join the session, the first user joining via a first computing device that includes
a first browser application and the second user joining via a second computing device that includes a second browser application;

receiving position data and image data from a gesture system, the image data including a view of a current orientation of
the first user and the position data corresponding to features of the first user at the current orientation;

displaying, using the first browser application, in a first gesture module of a first Web page, a mirror image of the current
orientation of the first user, the first Web page including a representation of a first set of one or more clothing items,
the first set of the one or more clothing items being displayed outside the first gesture module;

analyzing the position data to determine at least one of a motion or gesture by the first user, the motion or gesture of the
user indicating at least one clothing item from the first set of one or more clothing items;

analyzing the image data to determine a three-dimensional graphical model that approximates a shape of the first user; and
displaying, using the second browser application, in a second gesture module of a second Web page, the representation of the
at least one clothing item to appear to be worn by the first user based at least in part on the current orientation of the
first user, the second Web page including a second set of one or more clothing items, the second set of one or more clothing
items being displayed outside the second gesture module, at least one clothing item of the second set of one or more clothing
items being different from each clothing item of the first set of one or more clothing items.

US Pat. No. 9,530,076

METHOD AND SYSTEM FOR MATCHING AN IMAGE USING NORMALIZED FEATURE VECTORS

A9.com, Inc., Palo Alto,...

1. A computer-implemented method for matching a query image, comprising:
obtaining a request to match at least one portion of the query image to at least one respective portion of one or more of
a plurality of database images;

identifying a plurality of features for at least one Gaussian pyramid image generated for the query image;
for each feature,
determining a patch encompassing the feature based at least in part upon one or more orientations for the feature and a sampling
factor of the at least one Gaussian pyramid image;

determining components of a feature vector corresponding to a mini-patch obtained from dividing the patch, wherein the components
comprise one or more of:

a sum of all positive x-derivatives of the at least one Gaussian pyramid image present in the mini-patch;
a negative of a sum of all negative x-derivatives of the at least one Gaussian pyramid image present in the mini-patch;
a sum of all positive y-derivatives of the at least one Gaussian pyramid image present in the mini-patch; and
a negative of a sum of all negative y-derivatives of the at least one Gaussian pyramid image present in the mini-patch;
normalizing the feature vector for the patch;
determining at least one matching image from among the plurality of database images based at least in part upon comparing
feature vectors of each database image to one or more normalized feature vectors of the query image, each of the plurality
of features corresponding to one of the normalized feature vectors; and

providing information relating to the at least one matching image in response to the request.

US Pat. No. 9,524,432

FAST INTEREST POINT EXTRACTION FOR AUGMENTED REALITY

A9.com, Inc., Palo Alto,...

1. A computer-implemented method, the method comprising:
identifying a candidate corner feature in a first image, the candidate corner feature including a set of pixels from the first
image;

determining a center pixel from the set of pixels;
selecting, from the set of pixels, a subset of pixels, each pixel from the subset of pixels being at a respective distance
from the center pixel, wherein the subset of pixels comprises a ring shape that surrounds the center pixel;

downscaling the set of pixels from the first image, the downscaled set of pixels representing a second layer of a pyramid
and the set of pixels representing a bottom layer of the pyramid;

determining a first derivative value based at least in part on of a weighted sum of intensities of respective pixels from
a right side of the downscaled set of pixels and intensities of respective pixels from the left side of the downscaled set
of pixels;

determining a second derivative value based at least in part on of a second weighted sum of intensities of respective pixels
from an upper side of the downscaled set of pixels and intensities of respective pixels from a bottom side of the downscaled
set of pixels;

determining an orientation angle using at least an arctangent function on the first and second derivative values;
shifting values of a subset of pixels from the downscaled set of pixels based at least in part on the orientation angle, the
subset of pixels comprising a ring that surrounds a respective center pixel of the downscaled set of pixels; and

confirming a corner feature of the first image based at least in part on:
determining that intensities of at least a pair of pixels are not within a threshold value of the intensity of the center
pixel; and

determining that an intensity of a first pixel from the at least the pair of pixels is unequal to an intensity of a second
pixel from the at least the pair of pixels; and

providing the confirmed corner feature to at least one object recognition process.

US Pat. No. 9,813,784

EXPANDED PREVIOUSLY ON SEGMENTS

A9.com, Palo Alto, CA (U...

1. A computer implemented method, comprising:
receiving, by a media server, a request from a client device for an episode of a show;
streaming, by the media server, the episode to the client device, the episode having a portion providing a series of clips
of scenes of prior episodes;

receiving, by the media server, a request from the client device to provide a scene of one of the prior episodes corresponding
to a clip in the series of clips;

determining, by the media server, a fingerprint representative of one or more frames of the clip in the series of clips;
searching, by the media server, a database of fingerprints representative of one or more frames of scenes of episodes of the
show for a scene having one or more frames associated with a fingerprint matching the fingerprint representative of the one
or more frames of the clip;

determining, by the media server, a start time of playback of the scene in relation to playback of the episode of the show,
the start time of the playback of the scene occurring before a playback time corresponding to the one or more frames of the
scene that are associated with the fingerprint matching the fingerprint representative of the one or more frames of the clip;

streaming, by the media server, the scene of the prior episode to the client device for playback, the streaming beginning
from the start time of the scene, wherein a time duration of the playback of the scene of the prior episode is based on a
time duration of the clip in the series of clips referencing the scene.

US Pat. No. 9,651,396

LOGISTIC DISCOUNTING OF POINT OF INTEREST RELEVANCE BASED ON MAP VIEWPORT

A9.com, Inc., Palo Alto,...

1. A system comprising:
at least one processor; and
a memory device including instructions that, when executed by the at least one processor, cause the at least one processor
to:

receive a request from a user of a mapping application executing on a client device;
determine mapping data corresponding to at least one geographic region derived at least in part from information in the request,
the mapping data including at least graphical information for rendering a map display for the at least one geographic region;

based at least in part upon the at least one geographic region, determine point of interest (POI) data associated with the
mapping data, the POI data including one or more POIs;

analyze the request to identify a specified area of interest;
determine a value of a distance function based at least in part of the specified area of interest;
determine a ranking score of each POI in the POI data based at least in part on the distance function applied as a multiplier
to a baseline score of the each POI within the specified area of interest;

select a portion of the POI data corresponding to a current view in the mapping application based at least in part upon the
ranking score of the each POI of the POI data corresponding to the current view; and

provide the portion of the POI data for display.

US Pat. No. 9,607,010

TECHNIQUES FOR SHAPE-BASED SEARCH OF CONTENT

A9.com, Inc., Palo Alto,...

1. A computer-implemented method for facilitating a shape-based search, comprising:
under control of one or more computer systems configured with executable instructions, providing an image of a first item
for display to a user on a touch-sensitive screen;

receiving, for use in a search request, input from a user on the displayed image including a glyph that indicates a shape
of the first item without tracing an outline of the first item in the image and that identifies a portion of the displayed
image having one or more features associated with the first item to use in the search request;

extracting the one or more features from the portion of the image identified by the glyph;
identifying, based at least in part on the shape indicated by the glyph, a shape category of the first item from a plurality
of predefined item shapes;

conducting a search for additional items having features that match the extracted features of the first item, the search being
conducted among a plurality of items associated with the identified shape category; and

providing search results including one or more of the additional items from the search.

US Pat. No. 9,582,913

AUTOMATED HIGHLIGHTING OF IDENTIFIED TEXT

A9.com, Inc., Palo Alto,...

1. A non-transitory computer-readable storage medium storing instructions that, when executed by at least one processor, cause
a computing device to:
access one or more user identified words and three or more single-character symbols each specifying an individual preference
with respect to the one or more user identified words;

capture, using a camera of a computing device, image information for a volume of text;
display, on a display element of the computing device, at least a portion of the image information as corresponding to a live
field of view of the camera;

recognize, using an optical character recognition (OCR) engine, text of the volume of text in the captured image information;
compare words, from the one or more user identified words, to the recognized text;
identify, from the one or more user identified words, at least one word from the one or more user identified words in the
recognized text;

display, in the live field of view of the camera, an overlay proximate each occurrence of the at least one word from the one
or more user identified words, each overlay including a visual attribute causing the at least one word to be identified as
a user identified word and at least one of the single-character symbols; and

arranging the three or more single-character symbols so that a group preference with respect to the one or more user identified
words can be ascertained.

US Pat. No. 9,558,213

REFINEMENT SHAPE CONTENT SEARCH

A9.com, Inc., Palo Alto,...

1. A computer-implemented method, comprising:
receiving information defining a plurality of refinement shapes, the plurality of refinement shapes configured to reduce a
search result set;

receiving a search request;
organizing the plurality of refinement shapes into a refinement-shape hierarchy based at least in part on the search request;
determining a similarity score between an image of an inventory item and at least one of the refinement shapes in the refinement-shape
hierarchy, the similarity score based at least in part on a local texture score, a global shape score, and a local shape score;

associating the inventory item to a refinement shape of the refinement-shape hierarchy based at least in part on the similarity
score;

displaying a set of parent refinement shapes relevant to the search request;
receiving a selection of a parent refinement shape of the set of parent refinement shapes; and
displaying a set of child refinement shapes based at least in part on the selection of the parent refinement shape,
wherein a selection of one of the parent refinement shape or a child refinement shape of the set of child refinement shapes
causes to be displayed a reduced set of search results.

US Pat. No. 9,501,681

DECODING VISUAL CODES

A9.com, Inc., Palo Alto,...

1. A computing device, comprising:
a display element;
a computing device processor;
a camera; and
a memory device including instructions that, when executed by the computing device processor, cause the computing device to:
capture, by the camera, an image that includes a representation of a data matrix;
convert the image to a binarized image, the binarized image including a plurality of pixels, each pixel of the plurality of
pixels being associated with one of a first pixel value or a second pixel value;

determine, using a connected-component algorithm, a path of adjacent pixels from the plurality of pixels, each pixel in the
path of adjacent pixels having a value corresponding to the first pixel value and being associated with a location on the
binarized image;

determine a plurality of distance measurements for each pixel in the path of adjacent pixels, each distance measurement of
the plurality of distance measurements corresponding to a distance between a pair of pixels in the path of adjacent pixels;

select a greatest distance measurement from the plurality of distance measurements, the greatest distance measure being associated
with a first pixel and a second pixel in the path of adjacent pixels, the first pixel having a first location on the binarized
image and the second pixel having a second location on the binarized image;

identify a third pixel in the path of adjacent pixels, the third pixel being associated with a third location that is a furthest
location from both of the first location and the second location than any pixel in the path of adjacent pixels;

estimate a fourth location of a fourth pixel using a geometric relationship between the first location, the second location,
and the third location;

determine a region of interest based at least in part on the first location, second location, third location, and fourth location,
the region of interest including the representation of the data matrix; and

verify the region of interest by analyzing a plurality of borders of the region of interest using a timing pattern.

US Pat. No. 10,032,072

TEXT RECOGNITION AND LOCALIZATION WITH DEEP LEARNING

A9.com, Inc., Palo Alto,...

17. A non-transitory computer-readable storage medium including instructions that, when executed by at least one processor of a computer system, cause the computer system to:obtain image data that includes representations of text;
determine a plurality of regions of interest, a first set of the plurality of regions of interest including the representations of text and a second set of the plurality of regions of interest including potential representations of text;
use a first trained neural network to identify the first set of the plurality of regions of interest;
use a second trained neural network to update a position of each region of the first set of the plurality of regions of interest to include respective text representations within a predetermined deviation;
use a third trained neural network on the first set of the plurality of regions of interest to recognize words associated with respective regions based at least in part on the respective text representations; and
generate a list of recognized words;
display a graphical outline for each recognized word, on a display screen overlaying an image generated using the image data; and
display, for a subset of graphical outlines, a label that indicates a word included in an associated graphical outline.

US Pat. No. 9,858,967

SECTION IDENTIFICATION IN VIDEO CONTENT

A9.com, Inc., Palo Alto,...

1. A computer-implemented method, comprising:
obtaining a first video content from at least one content source, the first video content including audio data;
identifying a text representation corresponding to the audio data, the text representation including a plurality of timestamps;
obtaining content interaction information associated with the first video content, the content interaction information aggregating
historical activity of a plurality of users, the historical activity comprising actions of the plurality of users, the actions
associated with one or more portions of the first video content;

identifying, by comparing the text representation to the content interaction information, one or more timestamps in the first
video content corresponding to the one or more portions of the first video content, the one or more timestamps in the first
video content corresponding to the actions of the plurality of users;

analyzing the first video content at the one or more timestamps to identify one or more scenes of the first video content,
each scene of the one or more scenes including the one or more portions of the first video content; and

generating a second video content by extracting and combining the one or more scenes.

US Pat. No. 9,589,032

UPDATING CONTENT PAGES WITH SUGGESTED SEARCH TERMS AND SEARCH RESULTS

A9.com, Inc., Palo Alto,...

1. A method, comprising:
generating, in at least one computing device, a content page having a search term user interface element;
generating, in the at least one computing device, a plurality of suggested search terms based at least upon at least one character
entered in the search term user interface element, the at least one character corresponding to a portion of a search term;

asynchronously updating, in the at least one computing device, the content page with the plurality of suggested search terms
based at least upon the at least one character entered in the search term user interface element;

retrieving, in the at least one computing device, from an electronic repository, a plurality of search results associated
with each of the plurality of suggested search terms;

retrieving, in the at least one computing device, from an electronic repository, representative image associated with each
of the plurality of search results; and

asynchronously updating, in the at least one computing device, the search term user interface element with a dropdown box
displayed proximate to the search result user interface element with a list of the suggested search terms, wherein each of
the suggested search terms is associated with at least two of the plurality of search results and the at least two of the
plurality of search results are displayed horizontally offset from a respective one of the suggested search term, and wherein
each of the plurality of search results is displayed using the representative image associated with the search result.

US Pat. No. 9,530,069

METHOD AND SYSTEM FOR DETECTING AND RECOGNIZING TEXT IN IMAGES

A9.com, Inc., Palo Alto,...

1. A computer-implemented method, comprising:
under the control of one or more computer systems configured with executable instructions,
receiving an input image that includes at least one image variation;
filtering and segmenting the input image;
selecting regions within the filtered and segmented input image having connected components;
creating a mask corresponding to the regions of connected components, the mask including bounding boxes that at least partially
enclose corresponding regions of the connected components;

intersecting the filtered and segmented input image with the mask to produce a first output image;
separately processing the filtered and segmented input image corresponding to the mask to create a binary output image;
separately recognizing text in the first output image and in the binaryoutput image using an optical character recognizer;
and

combining the separately recognized text from the first output image and from the binary output image to produce a single
output.

US Pat. No. 9,529,936

SEARCH RESULTS USING QUERY HINTS

A9.com, Inc., Palo Alto,...

1. A computing device comprising:
at least one processor;
a display screen; and
memory including instructions that, when executed by the at least one processor, cause the computing device to perform a set
of operations comprising:

sending a search query to a search system;
receiving, from the search system, a plurality of suggested queries for the search query, wherein a first suggested query
is associated with a first category and a second suggested query is associated with a second category;

receiving, from the search system, a first icon associated with the first category for the first suggested query and a second
icon associated with the second category for the second suggested query;

presenting, on a display screen of the computing device, the plurality of suggested queries, including the first suggested
query and the first icon and the second suggested query and the second icon;

receiving a user selection of the first suggested query;
sending, to the search system, the first suggested query and the first category, wherein the search system is configured to
generate a listing of search results that reference respective resources that are associated with the first suggested query
and the first category;

receiving, from the search system, the listing of search results that is responsive to the first suggested query and the first
category; and

presenting the listing of search results on the display screen of the computing device.

US Pat. No. 9,734,634

AUGMENTED REALITY PRODUCT PREVIEW

A9.COM, INC., Palo Alto,...

1. A computing device comprising:
at least one processor;
at least one camera;
a display screen; and
memory including instructions that, when executed by the at least one processor, cause the computing device to perform a set
of operations comprising:

capture, using the at least one camera, at least one frame of a video including a representation of a real-world environment,
the at least one frame including a representation of a two-dimensional physical marker located in the real-world environment;

determine one or more dimensions of the two-dimensional physical marker in the at least one frame;
determine an orientation of the computing device with respect to the real-world environment;
determine a plane of the two-dimensional physical marker in the frame with respect to the computing device;
receive a selection of a product from an electronic catalog of products being presented on the display screen to identify
a selected product;

determine one or more dimensions of the selected product with respect to a camera environment of the real-world environment
based at least in part on metadata associated with the product, the metadata describing at least one or more real-world dimensions
corresponding to the selected product;

render the camera environment of the real-world environment for display on the display screen based at least in part on the
plane of the two-dimensional physical marker and the orientation of the computing device, the camera environment including
a representation of a semi-transparent container within which a graphical representation of the selected product is presented,
wherein the semi-transparent container is rendered in the camera environment based at least in part on the one or more dimensions
of the two-dimensional physical marker and the one or more dimensions of the selected product;

determine whether the semi-transparent container overlaps an object located in the real-world environment that is represented
in the camera environment; and

generate an alert in response to determining an overlap with the object, the alert indicating whether the selected product
would physically contact the object in the real-world environment when positioned as represented in the camera environment.

US Pat. No. 9,691,158

TRACKING OBJECTS BETWEEN IMAGES

A9.COM, INC., Palo Alto,...

1. A computing device comprising:
a camera;
one or more processors;
a memory device including instructions that, when executed by the one or more processors, cause the computing device to:
acquire a first image and a second image by the camera;
identify a first point in the first image;
determine a first patch in the first image using a feature detector, the first patch including the first point and being associated
with a first feature descriptor;

identify a set of candidate points in the second image;
determine a set of patches in the second image using the feature detector, each patch of the set of patches including a respective
candidate point from the set of candidate points, each patch of the set of patches being associated with a respective feature
descriptor;

determine a candidate point from the set of candidate points that corresponds to the first point in the first image, the determined
candidate point being determined based at least in part on a second feature descriptor associated with a second patch of the
candidate point matching the first feature descriptor associated with the first point above a predetermined matching threshold;

determine that the candidate point and the first point satisfy at least one geometric constraint; and
generate a confirmation indicating at least that the candidate point and the first point satisfy at least one geometric constraint.

US Pat. No. 9,594,540

TECHNIQUES FOR PROVIDING ITEM INFORMATION BY EXPANDING ITEM FACETS

A9.com, Inc., Palo Alto,...

1. A computer-implemented method for displaying item attributes in a network page, comprising:
under control of one or more hardware computer systems configured with executable instructions,
receiving a search request, wherein the search request includes at least one search term, and performing a search based on
the search request;

displaying search results from the search including a plurality of items retrieved in response to the search request, each
item having associated item information displayed proximate to the item, the search results further including a plurality
of facets associated with the retrieved items and displayed in a grouping in association with the items, each facet being
associated with one or more item attributes that are not displayed with the search results; and

in response to a selection of a facet of the plurality of displayed facets, and without performing an additional search:
determining that a first subset of the plurality of displayed items each has at least one of the one or more item attributes
that are associated with the selected facet and that are not displayed with the search results, and that a second subset of
the plurality of displayed items each does not have any of the one or more item attributes that are associated with the selected
facet; and

updating the displayed search results to cause, for each of the displayed items of the first subset, the at least one item
attribute of the displayed item to be displayed with the updated displayed search results, and wherein the updated displayed
search results further include the displayed items of the second subset that do not have any of the one or more item attributes
that are associated with the selected facet.

US Pat. No. 9,588,632

TECHNIQUES FOR PROVIDING PERSONALIZED BEHAVIOR-BASED CONTENT

A9.com, Inc., Palo Alto ...

1. A computer-implemented method for providing personalized content in substantially real time, comprising:
under the control of one or more computer systems configured with executable instructions,
providing first content to a first user in response to a first request by the first user, the first content comprising at
least one of product, video, audio, or image content, and including a plurality of user-selectable content elements displayed
with the first content;

assigning a weight value to each selected content element, the weight value reflecting an amount of user activity by the first
user with a corresponding content element;

determining an interaction of the first user with respect to a displayed page of at least a portion of the first content,
the interaction including a selection by the first user of at least one of the plurality of the user-selectable content elements
displayed on the page;

determining a new weight value to each selected content element based at least upon the interaction of the first user, the
new weight value of each selected content element modified from the weight value assigned to a corresponding selected content
element;

receiving a plurality of content ratings for each selected content element from a plurality of additional users;
determining a popularity score for each selected content element based on the plurality of content ratings for each selected
content element;

increasing the new weight value based on the popularity score;
determining a subset of the plurality of user-selectable content elements corresponding to the at least one selected content
element based on the updated information; and

providing second content to the first user in response to a second request by the first user, the second content comprising
at least one of product, video, audio, or image content, and including at least a portion of the first content modified by
adjusting display properties of each user-selectable content element of at least a portion of the determined subset of the
user-selectable content elements relative to one or more user-selectable content elements displayed on the page of the first
content that were not selected by the first user, the second content further including additional content generated based
on the interaction with the first content and not included in the first content, wherein the display properties of a specific
user-selectable content element of the at least a portion of the determined subset of the user-selectable content elements
are modified based at least partially upon a new weight value of the specific user-selectable content element.

US Pat. No. 9,652,541

IN-LINE EDITING OF SEARCH REFINEMENTS

A9.com, Inc., Palo Alto,...

1. A computer-implemented method of refining a search query, comprising:
receiving a search request from a client device, the search request including a query term and a selected search category
from a hierarchical search categorization;

providing a first set of search results corresponding to the query term and the selected search category to be displayed on
the client device;

providing an editable search refinement specification including a plurality of editable elements to be displayed along with
the first set of search results, the plurality of editable elements including a first editable element, a second editable
element, and a third editable element corresponding to each parent category of the selected search category in the hierarchical
search categorization, each of the first editable element, the second editable element, and the third editable element being
associated with text and a respective text input box element;

providing a displayable option element utilized to modify a currently selected editable element of the plurality of editable
elements and to be displayed along with the plurality of editable elements, the displayable option element including two or
more of a set of selectable operation icons including an edit operation icon, a remove operation icon, an undo operation icon,
a save operation icon, a share operation icon, an auto-complete operation icon, a help operation icon, and a suggestion operation
icon;

receiving an input to independently modify the text of the first editable element of the editable search refinement specification
via the respective text input box element without modifying the second editable element and the third element of the editable
search refinement specification; and

in response to receiving the input to modify the text of the first editable element of the editable search refinement specification
via the respective text input box element, providing a second set of search results corresponding to the modified first editable
element, the second editable element, and the third editable element of the editable search refinement specification to be
displayed on the client device.

US Pat. No. 9,686,341

REVIEW TRENDS

A9.com, Inc., Palo Alto,...

1. A method, comprising:
receiving, by at least one server computing device, a request for a review trend corresponding to at least one item;
generating, by the at least one server computing device, the review trend corresponding to the at least one item, wherein
the review trend graphically illustrates a plurality of reviews of the at least one item versus a plurality of temporal values,
individual ones of the reviews comprising a rating provided in association with a purchase of the at least one item, individual
ones of the temporal values being associated with a respective one of the reviews, wherein the review trend is generated for
a range of the temporal values using a weighted average function that deemphasizes a first subset of the reviews in the review
trend received during a first period when a large number of reviews are received relative to a second period, the weighted
average function emphasizing a second subset of the reviews received during the second period in the review trend;

generating, by the at least one server computing device, a plurality of flags for display in association with respective portions
of the review trend, individual ones of the flags corresponding to at least one annotation that describes an information update
associated with the at least one item, wherein a selection of a respective one of the flags is configured to cause a rendering
of the at least one annotation in association with the review trend; and

encoding, by the at least one server computing device, user interface data comprising the review trend and the plurality of
flags for rendering on a client device.

US Pat. No. 10,032,286

TRACKING OBJECTS BETWEEN IMAGES

A9.com, Inc., Palo Alto,...

1. A computing device comprising:a camera;
one or more processors;
a memory device including instructions that, when executed by the one or more processors, cause the computing device to:
receive first image data captured using the camera;
select a first tracking point within an area of the first image data;
compare a first patch of pixels surrounding the first tracking point within the area with a second patch of pixels within the area to determine a similarity score;
determine a distinctiveness of the first tracking point based at least in part the similarity score;
receive second image data captured using the camera; and
determine a second tracking point in the second image data corresponding to the first tracking point.

US Pat. No. 9,984,728

VIDEO CONTENT ALIGNMENT

A9.COM, INC., Palo Alto,...

1. A computer-implemented method, comprising: receiving a first video file and a second video file, the first video file including a first plurality of frames and the second video file including a second plurality of frames, each frame of the first plurality of frames segmented into one or more cells, each frame of the second plurality of frames segmented into one or more cells; generating a first fingerprint for each frame of a first subset of frames of the first plurality of frames based at least in part on an intensity value associated with the one or more cells of each frame of the first subset of frames; generating a second fingerprint for each frame of a second subset of frames of the second plurality of frames based at least in part on an intensity value associated with the one or more cells of each frame of the second subset of frames; generating a first encoded representation of the first fingerprints for the first subset of frames and a second encoded representation of the second fingerprints for the second subset of frames; identifying a first set of unique fingerprints from the first encoded representation and a second set of unique fingerprints from the second encoded representation; comparing the first set of unique fingerprints to the second set of unique fingerprints; segmenting the first video file into a plurality of first segments and the second video file into a plurality of second segments based at least in part on comparing the first set of unique fingerprints to the second set of unique fingerprints; and aligning each first segment of the plurality of first segments with a corresponding second segment of the plurality of second segments; determining a set of split points, the split points being used to match unique fingerprints between the first video file and the second video file based at least in part on comparing the first set of unique fingerprints to the second set of unique fingerprints; sorting, by video file, the set of split points; aligning, using a dynamic programming algorithm, first split points of the set of split points from the first video file with second split points of the set of split points from the second video file; and removing split points of the set of split points that do not appear in an output generated by the dynamic programming algorithm.

US Pat. No. 9,652,536

DATA UPLOAD VIA ELECTRONIC COMMUNICATIONS

A9.COM, Inc., Palo Alto,...

1. A computer-implemented method comprising:
providing, by one or more configured computing systems, a search service that uses electronic communications to supply data
to the search service, the search service having a programmatically accessible search interface for use by users of the search
service;

providing, by the one or more configured computing systems, a first user of the search service with one or more electronic
communication addresses for use in supplying data associated with the first user to the search service, the one or more electronic
communication addresses including a first electronic communication address that has a first associated type of data manipulation
operation to be applied to data contents of electronic communications sent to the first electronic communication address,
the one or more electronic communication addresses being distinct from the programmatically accessible search interface;

receiving, by the one or more configured computing systems, one or more electronic communications sent to the first electronic
communication address;

performing, by the one or more configured computing systems, the first associated type of data manipulation operation on data
contents of the received one or more electronic communications, and storing results of the performed first associated type
of data manipulation operation in a manner associated with the first user; and

after receiving a search request that is programmatically supplied to the programmatically accessible search interface by
an executing program on behalf of the first user, providing search results that are based on the stored results.

US Pat. No. 9,639,957

RECOMMENDATIONS UTILIZING VISUAL IMAGE ANALYSIS

A9.Com, Inc., Palo Alto,...

1. A non-transitory computer-readable medium embodying program code executable in at least one computing device that, when
executed, causes the at least one computing device to:
associate a client device with a user account of an electronic commerce system;
analyze a digital image captured by a digital camera of the client device to:
identify a plurality of objects in a setting embodied in the digital image;
identify a plurality of colors associated with the plurality of objects identified in the setting; and
identify a plurality of empty regions in the setting embodied in the digital image, the plurality of empty regions being identified
as a region in the setting in which no object is programmatically recognized;

identify a recommended item from a plurality of items available via the electronic commerce system, the recommended item identified
utilizing at least historical data associated with the user account, the plurality of colors, the plurality of objects, and
the plurality of empty regions identified in the digital image;

preprocess a representative image of the recommended item for insertion into at least one of the plurality of empty regions
in the digital image by removing at least one portion of the representative image such that at least one of the plurality
of objects appears in front of the representative image;

modify the digital image to include at least the representative image of the recommended item in the at least one of the plurality
of empty regions; and

send the modified digital image to the client device for rendering in a display.

US Pat. No. 9,582,735

SCALABLE IMAGE MATCHING

A9.com, Inc., Palo Alto,...

1. A computer-implemented method, comprising:
matching a plurality of training images against a database of images using one or more training features associated with the
plurality of training images;

receiving one or more matching images from the database of images, wherein each matching image includes a plurality of correspondences
with the one or more training features from the plurality of training images;

labeling a first subset of the plurality of correspondences as inlier correspondences and a second subset of the plurality
of correspondences as outlier correspondences;

determining a first set of characteristics of the first subset of the plurality of correspondences;
determining a second set of characteristics of the second subset of the plurality of correspondences;
training one or more classifiers using the first set of characteristics and the second set of characteristics to generate
a prediction model, wherein the prediction model is used at runtime to determine matching scores for the database of images
in response to a query image;

ranking the database of images by comparing features from the query image to a set of compressed cluster centers corresponding
to a set of closest matching database images; and

adjusting the ranking of the set of closest matching database images using the prediction model, wherein adjusting the ranking
of the set of closest matching database images includes determining whether a respective compressed cluster center is an inlier
or an outlier using the one or more classifiers.

US Pat. No. 10,049,308

SYNTHESIZING TRAINING DATA

A9.com, Inc., Palo Alto,...

6. A computer-implemented method, comprising:obtaining a first image including a representation of an item surrounded by a solid background color;
identifying one or more background regions including background pixels having color values corresponding to the solid background color;
generating an item mask including a background region corresponding to locations of the background pixels and a foreground region corresponding to other pixel locations;
performing at least one morphological operation on the item mask to reduce a number of pixels of the foreground region corresponding to edge artifacts;
blending an item portion of the first image, corresponding to the foreground region of the item mask, into a background image to generate a synthesized image including the representation of the item against selected background content of the background image; and
providing the synthesized image for use in training a neural network.

US Pat. No. 9,858,500

FAST INTEREST POINT EXTRACTION FOR AUGMENTED REALITY

A9.com Inc., Palo Alto, ...

1. A computer-implemented method, comprising:
identifying a candidate corner feature in a first image, the candidate corner feature including a set of pixels from the first
image;

determining a center pixel from the set of pixels;
selecting, from the set of pixels, a subset of pixels, individual pixels from the subset of pixels being at a respective distance
from the center pixel;

generating a downscaled set of pixels from the set of pixels, the downscaled set of pixels representing an outer layer of
pixels and the subset of pixels representing an inner layer of pixels, the outer layer of pixels having a greater radius than
the inner layer of pixels;

determining a first derivative value and a second derivative value based at least in part on intensities values of pixels
of the outer layer of pixels;

shifting values of the subset of pixels based at least in part on an orientation angle determined using the first derivative
value and the second derivative value;

comparing a characteristic of the center pixel to corresponding characteristics of at least a pair of pixels from the inner
layer of pixels; and

determining whether the candidate corner feature includes a corner feature of the first image based at least in part on the
characteristics of the pair of pixels being within a threshold value of the characteristic of the center pixel.

US Pat. No. 9,736,361

ASSISTED TEXT INPUT FOR COMPUTING DEVICES

A9.com, Inc., Palo Alto,...

1. A computer-implemented method, comprising:
obtaining first image data of a first portion of an object using a camera of a computing device;
obtaining second image data of a second portion of the object using the camera, the first portion being different from the
second portion;

processing the first portion to isolate a first area including a first representation of the object;
analyzing the first area to recognize first text associated with the first portion of the object;
processing the second portion to isolate a second area including a second representation of the object;
analyzing the second area to recognize second text associated with the second portion of the object;
receiving a first selection of a first text input field;
determining a first set of words corresponding to the first area from first recognized text that are associated with the first
text input field;

receiving a second selection of a second text input field;
determining a second set of words corresponding to the second area from second recognized text that are associated with the
second text input field;

displaying on an interface a selectable list of words that includes a first subset of the first set of words and a second
subset of the second set of words; and

enabling a user of the computing device to select at least one word from one of the first set of words or second set of words
to fill in the first text input field and the second text input field.

US Pat. No. 9,619,713

TECHNIQUES FOR GROUPING IMAGES

A9.com, Inc, Palo Alto, ...

1. A computer-implemented method comprising:
grouping, by one or more computer systems configured with executable instructions, and from among a plurality of images, multiple
images of the plurality that are associated with a common event into an event-based image group;

receiving, by the one or more computer systems, a selection by a user of a visual representation of a person;
identifying, by the one or more computer systems, one or more images in the event-based image group that each includes the
person; and

providing the identified one or more images to the person by sending an electronic communication to the person with information
that initiates access to the identified one or more images.

US Pat. No. 9,984,472

IMAGE PROCESSING AND MOTION COMPENSATION

A9.COM, INC., Seattle, W...

1. An image processing method to denoise image frames, the method comprising:receiving a sequence of image frames including a current input image frame and a next input image frame, the next input image frame received in the sequence after the current input image frame;
to denoise and convert the current input image frame into a modified current input image frame: i) implementing a first multi-window motion analyzer resource to detect first motion based on a first analysis in which the first multi-window motion analyzer resource analyzes the current input image frame with respect to the next input image frame, the first multi-window motion analyzer resource applying multiple different sized analyzer windows to detect the first motion, and ii) implementing a second multi-window motion analyzer resource to detect second motion based on a second analysis in which the second multi-window motion analyzer resource analyzes the current input image frame and a previously outputted image frame, the second multi-window motion analyzer resource applying multiple different sized analyzer windows to detect the second motion;
outputting the modified current input image frame; and
storing the modified current input image frame in a frame buffer.

US Pat. No. 9,805,219

QUICK USAGE CONTROL

A9.COM, INC., Palo Alto,...

1. A computer implemented method, comprising:
receiving a selection of at least one element to be locked on a computing device, wherein the at least one element includes
at least one of a portion of an interface of an application on the computing device or an operation performable by the application,
wherein the selection of the at least one element is associated with a user of a plurality of users, the user authorized to
access the at least one element;

receiving a selection of a locking option indicating a type of usage permission for the at least one element and to one or
more other elements associated with at least one other application;

causing a lock to be applied to the at least one element, the lock corresponding to the locking option and disabling use of
the at least one element by at least one other user of the plurality of users;

enabling use of the one or more other elements by the at least one other user on the computing device, wherein the one or
more other elements is associated with the at least one other application;

determining that a usage value of the one or more other elements over a particular time period exceeds a threshold amount;
and

unlocking the at least one element, in response to the usage value exceeding the threshold amount, based at least in part
on identifying the user authorized to access the at least one element.

US Pat. No. 9,798,949

REGION SELECTION FOR IMAGE MATCH

A9.COM, INC., Palo Alto,...

1. A system, comprising:
at least one processor; and
memory storing instructions that, when executed by the at least one processor, cause the system to:
obtain an image including a representation of an object, the object including an apparel item worn by a person, the image
further including a region of a background color;

determine a foreground region by locating a boundary around the representation of the object in the image, a portion of the
image outside the bounding region having the background color;

select a foreground swatch region from within the foreground region;
locate, using a first object detection algorithm, a representation of a face in the image;
determine a torso swatch region of the image based at least in part upon a location of the representation of the face in the
image;

determine, using a second object detection algorithm, an upper body region of the image;
determine one or more skin regions in the image including pixels with color values corresponding to skin tones;
determine an apparel swatch region by locating a subset of the pixels positioned with respect to the one or more skin regions;
select at least one of the foreground swatch region, the torso swatch region, the upper body region, and the apparel swatch
region;

collate data for the selection of the at least one of the foreground swatch region, the torso swatch region, the upper body
region, and the apparel swatch region to generate a distribution of probabilities corresponding to pixel locations in the
image;

determine, based at least in part upon the distribution of probabilities and the selection, a final swatch region corresponding
to a subset of contiguous pixels in the image having at least a minimum probability level; and

provide a swatch image, corresponding to the final swatch region, to a matching component capable of using the swatch image
to perform a matching process against a set of candidate images.

US Pat. No. 9,721,182

METHOD AND SYSTEM FOR MATCHING AN IMAGE USING NORMALIZED FEATURE VECTORS

A9.com, Inc., Palo Alto,...

1. A computer-implemented method, comprising:
obtaining a request to match a query image to at least one of a plurality of database images;
generating a Gaussian pyramid image for the query image;
analyzing the Gaussian pyramid image to identity a feature represented in the Gaussian pyramid image;
determining an orientation of the feature;
determining a patch encompassing the feature based at least in part upon the orientation and a sampling factor associated
with the Gaussian pyramid image;

determining a feature vector for the patch;
dividing the patch into a plurality of sub patches;
determining components of the feature vector corresponding to a sub patch of the plurality of sub patches;
reducing the components associated with a value greater than a threshold to determine a reduced set of components;
normalizing components of the reduced set of components associated with respective values less than the threshold to a calculated
length to generate a normalized feature vector, the calculated length being based at least in part upon the threshold and
a number of components having values exceeding the threshold; and

determining at least one matching image from among the plurality of database images based at least in part upon comparing
feature vectors of each database image to the normalized feature vector.

US Pat. No. 9,691,161

MATERIAL RECOGNITION FOR OBJECT IDENTIFICATION

A9.com, Inc., Palo Alto,...

1. A computer-implemented method, comprising:
capturing first image data including a first representation of an object, the object corresponding to an apparel item, the
first representation providing a full view of the object from a first point of view;

receiving an instruction to capture second image data, the second image data including a second representation of a portion
of the object enabling individual threads of the apparel item to be identified;

causing at least one instance of the second image data to be captured while light is emitted from at least one determined
light source, each instance of the second image data captured with a respective set of illumination properties;

determining, from the second image data, weave pattern data for a material region of the apparel item;
determining, using the second image data, true color data, thread texture data, and dimension data for the threads of the
material; and

providing the first image data, the weave pattern data, the true color data, the thread texture data, and the dimension data
to an object recognition process, wherein the first image data is capable of being used to determine a type of the apparel
item and the weave pattern data, true color data, and dimension data are capable of being used to discern between apparel
items of the determined type.

US Pat. No. 9,684,987

IMAGE MANIPULATION FOR ELECTRONIC DISPLAY

A9.COM, INC., Palo Alto,...

1. A system, comprising:
at least one processor; and
memory storing instructions that, when executed by the at least one processor, cause the system to:
obtain an image including a representation of an object, the object including an apparel item worn by a person, the image
further including at least one region associated with a background color;

determine a boundary around the representation of the object in the image, a portion of the image outside the boundary and
associated with the background color;

crop the image to generate a first cropped image to include only a portion of the image contained within the boundary;
locate a representation of a face in the first cropped image;
crop the first cropped image to generate a second cropped image, from an upper edge of the first cropped image, to remove
a specified portion of the representation of the face from the image;

determine one or more regions in a lower half of the second cropped image including pixels with values corresponding to skin
tones;

analyze rows of the pixels to locate features indicative of skin locations, and locate skin regions from the one or more regions
of sufficient width associated with background color pixels outside the skin regions in a corresponding row of pixels;

determine a subset of the pixels in the skin regions, with values corresponding to skin tones, that correspond to a representation
of one or more legs in the image;

crop the second cropped image to generate a third cropped image, from a lower edge of the second cropped image, to include
only a specified portion of the representation of one or more legs in the third cropped image; and

provide the third cropped image for display.

US Pat. No. 9,686,350

WEB-BASED DISTRIBUTED COMPUTING WITH BROWSER-EXECUTED CODE

A9.COM, INC., Palo Alto,...

1. A computing system, comprising:
a processor;
memory including instructions that, when executed by the processor, cause the computing system to:
receive a request for a distributed computing job, the request including data and browser-executable code that conforms to
a distributed computing interface;

assign each of different portions of the data to a browser of a plurality of browser to be processed with the browser-executable
code;

receive data processing results corresponding to each of the different portions of the data, the data processing results generated
at least in part by execution of the browser-executable code at the plurality of browsers in accordance with the distributed
computing interface;

determine a status of the distributed computing job based at least in part on the received data processing results; and
reconfigure, based at least in part on the status, at least a portion of the distributed computing job.

US Pat. No. 9,672,436

INTERFACES FOR ITEM SEARCH

A9.com, Inc., Palo Alto,...

1. A computing device, comprising:
at least one processor;
a camera configured to capture image data over a field of view;
a display screen; and
memory including instructions that, when executed by the at least one processor, cause the computing device to:
capture the image data using the camera, the image data including a representation of an object of interest;
receive, from a user of the computing device, a selection of a category in which to search for items related to the object
of interest;

display a graphical outline in response to the selection of the category, corresponding to a type of item in the category,
on the display screen overlying an image generated using the image data, the graphical outline indicating a target relative
orientation of the object of interest to the computing device;

display a swatch guide on the display screen, the swatch guide positioned within an interior of the graphical outline and
indicating a region of the field of view of the camera in which to position a portion of the object of interest, the portion
including swatch data representing at least one of a texture, color, or pattern for which the user wants to search;

cause a query to be executed against a data source, the query including information for the category and the swatch data;
receive, in response to the query, result information for a set of items, the set of items determined by comparing the swatch
data to stored swatch data for a plurality of items related to the category; and

display, on the display screen, information for at least a subset of the set of items.

US Pat. No. 9,569,679

ADAPTIVE IMAGE SAMPLING FOR TEXT DETECTION

A9.com, Inc., Palo Alto,...

1. A computer-implemented method, comprising:
generating a first text mask of an image captured with a camera of a computing device containing text including:
identifying, using a first process, at least one region of the image containing the text and bypassing the first process for
regions determined to be unlikely to contain text, such that the image includes at least one region not identified using the
first process;

iterating over each of a plurality of rows of the at least one region of the image containing the text to identify at least
one maximally stable extremal region (MSER);

upon identifying the at least one MSER, defining at least one horizontal text region including the at least one MSER by including
a predetermined number of additional rows of pixels at least one of above or below rows of the plurality of rows containing
the at least one MSER; and

binarizing the at least one horizontal text region of the image to generate the first text mask of the image, wherein generating
the first text mask of the image comprises identifying regions that are determined not to contain text, and printing the at
least one region of the image containing text while omitting the regions that are determined not to contain text;

generating a second text mask of the image including:
identifying, using a second process, the at least one region of the image containing the text;
iterating over each of a plurality of columns of the at least one region containing the text to identify the at least one
MSER;

eliminating false positive text indications in the plurality of columns by evaluating a stable pixel-to-length ratio associated
with the plurality of columns;

upon identifying the at least one MSER, defining at least one vertical text region adjacent the at least one MSER by including
a predetermined number of additional columns of pixels including the plurality of columns containing the at least one MSER;
and

binarizing the at least one vertical text region of the image to generate the second text mask of the image;
generating a final text mask of the image by combining the first text mask and the second text mask; and
recognizing text according to the final text mask with a character recognition engine.

US Pat. No. 9,544,719

PROVIDING LOCATION-BASED SEARCH INFORMATION

A9.com, Inc., Palo Alto,...

1. A computer-implemented method, comprising:
under control of one or more computer systems configured with executable instructions:
obtaining a current location for a mobile device of a first user and a set of search engine queries relating to the current
location, each of the set of search engine queries being submitted by one or more second users different from the first user,
each of the one or more second users having in common with the first user at least one past instance of a type of user activity
at an electronic marketplace, wherein the type of user activity includes at least one of items selected, advertisements selected,
items purchased, purchase frequency, or cost of items purchased, and wherein the one or more second users are associated with
at least one defined user group, each of the one or more second users having been selected for the at least one defined user
group by the first user;

in response to at least one of: (a) a determination that the current location is a new location, (b) an elapsed time, or (c)
a change to the set of search engine queries relating to the current location, obtaining an advertisement associated with
at least one of the set of search engine queries relating to the current location; and

providing the advertisement for display on the mobile device.

US Pat. No. 9,875,740

USING VOICE INFORMATION TO INFLUENCE IMPORTANCE OF SEARCH RESULT CATEGORIES

A9.com, Inc., Palo Alto,...

1. A computing system, comprising:
a device processor;
a memory device including instructions that, when executed by the device processor, cause the computing system to:
receive first audio input data from a voice-enabled communications device, the first audio input data corresponding to a first
utterance of a user received by a microphone of the voice-enabled communications device;

identify a first volume level of the first audio input data;
identify a first search query from the first audio input data by performing automated speech recognition on the first audio
input data;

identify a set of categories associated with the first search query, the set of categories including two or more categories,
each of the two or more categories being ranked according to respective relevance scores to the first search query;

identify a first set of results associated with a first category of the set of categories, the first category having a largest
relevance score to the first search query;

cause the first set of results to be transmitted to the voice-enabled communications device, the first set of results being
presented to the user of the voice-enabled communications device;

receive second audio input data from the voice-enabled communications device, the second audio input data corresponding to
a second utterance of the user received by the microphone of the voice-enabled communications device;

identify a second volume level of the second audio input data;
identify a second search query from the second audio input data by performing automated speech recognition on the second audio
input data;

determine that the first category is incorrect by:
calculating a voice volume difference by comparing the first volume level and the second volume level; and
determining whether the voice volume difference is above a volume difference threshold, the volume difference threshold indicating
whether the volume level of the second utterance is at least a predetermined amount louder than the volume level of the first
utterance;

decrease the relevance score of the first category for the first search query when the voice volume difference is determined
to be above the volume difference threshold;

identify a second category of the set of categories associated with the first search query; and
increase the relevance score of the second category for the first search query when the voice volume difference is determined
to be below the volume difference threshold.

US Pat. No. 9,830,534

OBJECT RECOGNITION

A9.com, Inc., Palo Alto,...

1. A computer-implemented method, comprising:
cause a query to be executed against a data source, the query including image data that includes a representation of an object
of interest orientated in a reference position;

generate a first rotated version of the image data, the representation of the object of interest being orientated in a first
position that is rotated an amount from the reference position;

generate a second rotated version of the image data, the representation of the object of interest being orientated in a second
position that is rotated the amount from the first position;

analyze the first rotated version to determine first categorization values and analyze the second rotated version to determine
second categorization values, the first categorization values and the second categorization values indicating probabilities
that the object of interest is associated with an instance of a particular category of a categorization tree;

generate a distribution of probability that includes the first categorization values and the second categorization values;
analyze the distribution of probability to select the first rotated version;
determine, using the categorization tree that includes a plurality of categories and links between those categories, classification
information for the object of interest based at least in part on the first categorization values;

receive, in response to the query, result information for a set of items, the set of items determined by comparing the classification
information to stored classification information for a plurality of items related to a category of the categorization tree;
and

display, on a display screen, information for at least a subset of the set of items.

US Pat. No. 9,721,156

GIFT CARD RECOGNITION USING A CAMERA

A9.COM, INC., Palo Alto,...

1. A computer-implemented method, comprising:
receiving an image of a gift card, the gift card containing a plurality of claim code characters;
generating a binarized image of the gift card;
determining a plurality of character patches of the binarized image;
grouping the plurality of character patches into one or more grouped character patches;
performing a first close cut of the one or more grouped character patches based at least upon top and bottom positions of
the one or more grouped character patches;

determining one or more clean-cut regions of the binarized image, wherein the one or more clean-cut regions have a subset
of the grouped character patches satisfying a predetermined condition;

determining a first range of width for grouped character patches in the first subset;
classifying the one or more grouped character patches into a first set of candidate claim code characters according to the
one or more machine learning algorithms based at least in part on the one or more clean-cut regions; and

identifying the plurality of claim code characters from the first set of candidate claim code characters.

US Pat. No. 9,710,824

METHOD TO INTRODUCE PURCHASE OPPORTUNITIES INTO DIGITAL MEDIA AND/OR STREAMS

A9.Com, Inc., Seattle, W...

1. A method for providing purchasing opportunities to a consumer, the method comprising:
under control of one or more processors of a server:
receiving consumer activity comprising a viewing history of the consumer and a purchase history of the consumer, the consumer
activity being monitored at a client device coupled to a display;

accessing video data that includes at least one representation of a plurality of products in the video data;
transmitting, to the client device associated with the consumer, a poll that queries whether, for a duration of the video
data, the consumer is interested in viewing purchase opportunities associated with individual products of the plurality of
products in the video data;

determining, based at least partly on a response to the poll and the consumer activity, one or more products of the plurality
of products to present to the client device as purchase opportunities during presentation of the video data;

generating metadata corresponding to the one or more products represented within the video data;
generating a digital stream that includes the metadata such that synchronous play of the digital stream and the video data
synchronizes representations of the one or more products within the video data with corresponding portions of the metadata
within the digital stream; and

transmitting, to the client device or to a content provider, the digital stream and the video data, the video stream being
separate from the video data.

US Pat. No. 9,704,033

VISUAL SEARCH UTILIZING COLOR DESCRIPTORS

A9.COM, INC., Palo Alto,...

1. A computer-implemented method, comprising:
under the control of one or more computer systems configured with executable instructions,
defining a number of color families, each color family including a plurality of color values;
determining a color value of the plurality of color values for representative colors associated with pixels of an image, the
color value comprising a first color within a threshold distance of a second color that corresponds to the representative
colors;

assigning the representative colors to one or more color families of the number of color families, wherein the assigning is
based at least in part on the threshold distance; and

combining histograms of the representative colors and the one or more color families to provide a descriptor of color variation
for the image, wherein the descriptor is at least a basis for digital searching of the image.

US Pat. No. 9,691,152

MINIMIZING VARIATIONS IN CAMERA HEIGHT TO ESTIMATE DISTANCE TO OBJECTS

A9.COM, INC., Palo Alto,...

17. A method, comprising:
capturing first image data by a first camera of a computing device, the first image data including a representation of a user
of the computing device;

analyzing the first image data to determine a position of the user with respect to the computing device;
determining, based at least in part on the position of the user, that a representation of a bodily feature of the user in
the first image data aligns with an alignment element within a threshold amount of deviation;

capturing second image data by a second camera of the computing device, the second image data including a representation of
an object; and

determining a distance to the object based at least in part on the second image data.

US Pat. No. 9,864,671

SYSTEMS AND METHODS OF LIVE EXPERIMENTATION ON CONTENT PROVIDED BY A WEB SITE

A9.COM, INC., Palo Alto,...

1. A computer-implemented method, comprising:
receiving at a proxy server, from a computing device, a first request for first content located at a content provider, the
first request including a test identifier;

accessing a testing library for a test script associated with the test identifier;
transmitting the first request from the proxy server to the content provider, the first request excluding the test identifier;
receiving, from the content provider in response to the first request, the first content including a reference to the content
provider;

modifying, at the proxy server, the first content to generate second content, wherein the modifying comprises an insertion
of the test script and a replacement of the reference to the content provider in the first content with a reference to the
proxy server; and

transmitting the second content from the proxy server to the computing device.

US Pat. No. 9,792,368

DYNAMIC MAP SYNCHRONIZATION

A9.COM, INC., Palo Alto,...

1. A computer-implemented method of providing navigation directions, comprising:
receiving a query image that includes a representation of a physical map captured by a camera of a computing device;
determining, using a feature extraction algorithm, at least one first feature vector for the physical map represented in the
query image;

determining, using the feature extraction algorithm, at least one annotation that is marked on the physical map represented
in the query image;

comparing the at least one first feature vector from the physical map to a set of second feature vectors for map information
of a map application;

determining matching map information based at least in part upon the at least one first feature vector matching at least one
second feature vector of the set of second feature vectors, the matching map information including geographic location information;

determining a set of feature points corresponding to the at least one annotation;
determining a geographic relationship between the set of feature points and the geographic location information;
determining a set of navigation instructions based at least in part on the geographic relationship; and
based at least in part upon a current location of the computing device and the set of navigation instructions, displaying
on the computing device a determined route from the current location to an identified location in the query image.

US Pat. No. 9,747,486

DECODING VISUAL CODES

A9.COM, INC., Palo Alto,...

1. A computing device, comprising:
a computing device processor;
a memory device including instructions that, when executed by the computing device processor, cause the computing device to:
obtain an image of a visual code;
analyze the image to determine a connected region of pixels of a plurality of pixels;
determine a first pixel of the connected region of pixels associated with first pixel coordinates and a second pixel associated
with second pixels coordinates;

determine an area of the image that includes the visual code based at least in part on the first pixel coordinates and the
second pixel coordinates;

determine a plurality of borders associated with the area;
analyze the plurality of borders using a first verification test and a second verification test; and
verify the area includes the visual code based at least in part on the first verification test and the second verification
test.

US Pat. No. 9,720,934

OBJECT RECOGNITION OF FEATURE-SPARSE OR TEXTURE-LIMITED SUBJECT MATTER

A9.COM, INC., Palo Alto,...

1. A non-transitory computer-readable storage medium storing instructions, the instructions, which when executed by one or
more processors of one or more computing systems, cause the one or more computing systems to:
receive a request from a user to identify at least one query object represented in at least one query image;
determine a set of local features associated with the at least one query object, the set of local features comprising one
or more image attributes, individual image attributes associated with a pixel region of the at least one query object, wherein
the individual image attributes associated with the pixel region differ from the image attributes associated with a region
immediately outside the pixel region;

determine whether the at least one query object is identifiable based on the set of local features;
in response to failing to identify the at least one query object based on the set of local features, determine a set of non-local
features, individual non-local features comprising one of the one or more image attributes associated with a region that is
larger than the pixel region associated with the individual image attributes for the set of local features for the at least
one query object, each non-local feature being of a different type and including at least one of a color feature type, a region-based
feature type, a shape-based feature type, a global feature type, a three-dimensional (3D) feature type, or a composite feature;

determine a classification of the at least one query object using a machine learning algorithm and the set of non-local features;
for each type of the set of non-local features, determine one or more database objects putatively matching the at least one
query object using a respective similarity measure corresponding to the type, the one or more database objects corresponding
to the classification;

determine, from among the one or more database objects putatively matching the at least one query object, at least one database
object matching the at least query object using a respective geometric verification algorithm for each type of the set of
non-local features;

retrieve information corresponding to the at least one database object; and
transmit the information corresponding to the at least one database object to the user.

US Pat. No. 9,699,042

SYSTEMS AND METHODS OF CLASSIFYING SESSIONS

A9.com, Inc., Palo Alto,...

1. A computer-implemented method, comprising:
monitoring, by a network monitor on a computer, a network of devices to identify a plurality of communication sessions associated
with a client identifier, each of the plurality of communication sessions being associated with sessions data;

analyzing the identified plurality of communication sessions using an unclassified sessions model to determine unclassified
sessions, wherein the unclassified sessions model indicates session characteristics for the unclassified sessions, and wherein
the unclassified sessions are sessions that are not classified as corresponding to either human activity or automated activity;

determining a quantity of other unclassified sessions associated with the client identifier and a quantity of total sessions
associated with the client identifier;

determining a ratio of the quantity of other unclassified sessions to the quantity of total sessions; and
classifying the unclassified sessions based at least in part on a comparison of the ratio to a threshold, wherein the classifying
for the unclassified sessions causes the network monitor to (a) identify illegitimate users or illegitimate sessions in accordance
with the client identifier of the unclassified sessions and (b) perform an action on sessions data or resources of the unclassified
sessions pertaining to the identified illegitimate users.

US Pat. No. 9,646,335

AUGMENTED REALITY RECOMMENDATIONS

A9.com, Inc., Palo Alto,...

1. A computing device, comprising:
a processor;
a camera, the camera having a field of view;
a display element; and
memory including instructions that, when executed by the processor, enable the computing device to:
capture image information by the camera, the image information including a representation of text within a field of view of
the camera, the image information being displayed on a display element of the computing device;

determine a confidence score indicating a level of confidence that the text is associated with one of a plurality of items
available for purchase from an electronic marketplace;

determine that the confidence score is below a threshold;
analyze the representation of the text to identify a first portion of the representation of the text and a second portion
of the representation of the text;

determine that the first portion of the representation of the text is associated with a item listing; and
display, in a graphical overlay over a portion of the image information corresponding to the field of view of the camera and
concurrently being displayed on the display element, the item listing identifying an item available for purchase from the
electronic marketplace.

US Pat. No. 9,965,895

AUGMENTED REALITY CAMERA LUCIDA

A9.com, Inc., Palo Alto,...

1. A computer implemented method, comprising:obtaining first image data using a camera of a computing device, the first image data including a representation of a point of interest;
obtaining second image data of a live camera view that includes a representation of a physical surface;
analyzing the second image data to determine a boundary that includes the representation of the physical surface;
presenting a view of the point of interest overlaid on the representation of the physical surface and confined within the boundary;
using an image processing algorithm to generate an outline of the point of interest;
detecting, concurrently with obtaining the second image data, hand-written markings on the physical surface representing a drawing of the point of interest;
generating a model representing a relationship between the physical surface and the second image data based at least in part on the hand-written markings, the model including a first rendering of the drawing from hand-written markings;
detecting, concurrently with obtaining the second image data, additional hand-written markings;
updating the model to generate an updated model that represents a second rendering of the drawing, the second rendering of the drawing corresponding to a current rendering of the drawing;
comparing the updated model to the outline of the point of interest to determine an amount of unfinished drawing of the point of interest, the amount of unfinished drawing corresponding to a progress in creating the drawing of the point of interest; and
generating a prompt to indicate the amount of unfinished drawing of the point of interest in drawing of the point of interest.

US Pat. No. 9,911,239

AUGMENTING A LIVE VIEW

A9.COM, INC., Palo Alto,...

1. A computer-implemented method, comprising:
capturing an image of an item using an image capturing element;
matching a feature represented in the image to stored features associated with items in an item repository to identify a matched
item;

retrieving selectable content associated with the matched item;
determining a plurality of corners of the item using feature extraction to extract interest points from the image that correspond
to the plurality of corners;

determining a bounding box based at least in part on the plurality of corners;
determining, for the bounding box, a perspective distortion that satisfies a predetermined distortion threshold; and
displaying, on a display element, the selectable content as an overlay over the bounding box, wherein the matched item is
presented for purchase in response to a selection of the selectable content.

US Pat. No. 9,830,631

IMAGE RECOGNITION RESULT CULLING

A9.com, Inc., Palo Alto ...

1. A non-transitory computer-readable storage medium storing instructions that, when executed by at least one processor, cause
a computing device to:
acquire inventory images of a plurality of products available for purchase from an electronic marketplace, wherein inventory
features are extracted from each inventory image and an inventory visual word is assigned to each inventory feature to generate
a vocabulary of visual words that describe the inventory features of the products represented in the inventory images;

receive a query image from a computing device, wherein query features are extracted from the query image and a query visual
word is assigned to extracted features;

compare query visual words to at least a subset of the inventory visual words to identify a set of closest matching inventory
images based at least in part on a respective number of query visual words matching a respective number of inventory visual
words;

classify the set of closest matching inventory images into a plurality of product groups based at least in part on overlapping
visual words, each product group of the plurality of product groups including one or more versions of a respective product
of the plurality of products available for purchase from the electronic marketplace;

determine, using a geometric verification algorithm, one or more matching groups for the query image, wherein the geometric
verification algorithm compares at least a subset of the query features to features of a representative image from each product
group represented among the set of closest matching inventory images, each representative image representing global features
common to each inventory image of a respective product group;

rank different versions of the product assigned to the one or more matching groups based at least in part on at least one
of a number of sales, freshness, seasonality, review count, projected shipping time, or user preferences; and

send information for a highest ranking version of the product from the one or more matching groups for display on the computing
device.

US Pat. No. 9,824,459

TRACKING OBJECTS BETWEEN IMAGES

A9.COM, INC., Palo Alto,...

1. A computing device comprising:
a camera;
one or more processors;
a memory device including instructions that, when executed by the one or more processors, cause the computing device to:
acquire an image by the camera;
identify a plurality of image points of the image;
determine a feature score for individual image points of the plurality of image points using a feature detector, the feature
score representing a degree of distinctiveness of an image point;

select a plurality of candidate points from the plurality of image points based at least in part on the feature score for
the individual image points;

determine a patch score for individual candidate points of the plurality of candidate points, the patch score representing
a degree of similarity between a first patch of the image and a second patch of the image, the first patch surrounding a candidate
point of the plurality of candidate points;

determine a spatial distribution of the plurality of candidate points; and
select a tracking point from the plurality of candidate points based at least in part on the patch scores of the individual
candidate points and the spatial distribution.

US Pat. No. 9,818,173

DISPLAYING REPRESENTATIVE IMAGES IN A VISUAL MAPPING SYSTEM

A9.com, Inc., Palo Alto,...

1. A computing system, comprising:
a processor; and
a memory device including instructions that, when executed by the processor, cause the computing system to:
receive a search request from a computing device to display a location of a point of interest, the point of interest associated
with a geographic location;

receive location coordinates associated with a current geographic location of the computing device;
provide for display a map, the map including a viewable area that includes an icon displayed at the current geographic location
of the computing device and a graphical representation of the point of interest, the map orientated with respect to a reference
axis;

receive a selection of an orientation element to cause the icon to include a visual representation of a direction of orientation
of the computing device with respect to the reference axis; and

orient the viewable area of the map to substantially match the direction of orientation of the computing device.

US Pat. No. 9,785,998

TECHNIQUES FOR PROVIDING EVENT REMINDERS

A9.COM, INC., Palo Alto,...

1. A computer-implemented method for updating a wishlist created for a third party user, comprising:
receiving, by at least one web server, a request to access a wishlist for a third party user, the wishlist including a wishlist
service of an electronic marketplace being operated by the at least one web server, and the wishlist including one or more
items;

determining, by the at least one web server, that a requestor submitting the request is a member of a user group that is allowed
to access the wishlist, the determining being based on information associated with the requestor and retrieved from content
submitted by the requestor to a web-based networking resource, the determining including establishing that a relationship
of the requestor to the third party user satisfies predetermined relationship criteria;

updating, by the at least one web server, the wishlist to include an item included in the request based on the determination
that requestor is a member of the user group; and

providing, by the at least one web server, the updated wishlist to be viewable to other members of the user group, wherein
an identity of the requestor submitting the request is not available to the other members of the user group.

US Pat. No. 9,710,886

DISPLAYING REPRESENTATIVE IMAGES IN A VISUAL MAPPING SYSTEM

A9.COM, INC., Palo Alto,...

1. A computing system, comprising:
a processor; and
a memory device including instructions that, when executed by the processor, cause the computing system to:
receive a search request relating to a display of a geographic location;
determine a plurality of geographically adjacent images corresponding to the geographic location;
generate a three-hundred and sixty degree view of a region surrounding the geographic location using at least a portion of
the plurality of geographically adjacent images

receive a selection of at least one interactive element; and
provide a map including a translatable icon representative of a current geographic location being viewed, the translatable
icon being configured to move on the map to correspond to a location of the plurality of geographically adjacent images.

US Pat. No. 9,697,234

APPROACHES FOR ASSOCIATING TERMS WITH IMAGE REGIONS

A9.COM, INC., Palo Alto,...

5. A computer-implemented method, the method comprising:
determining a plurality of respective visual words for each image in a first set of images, each visual word describing a
set of pixels in the image, wherein each image in the first set of images is associated with a description that includes a
term;

determining a plurality of respective visual words for each image in a second set of images, each visual word describing a
set of pixels in the image, wherein each image in the second set of images is associated with a description that does not
include the term;

determining a set of visual words from the visual words determined for images in the first set of images and from visual words
determined for images in the second set of images, wherein each visual word in the set of visual words satisfies a threshold
likelihood that the term is associated with the visual word;

determining a plurality of regions in a first image that is associated with a description that includes the term, wherein
each region in the plurality of regions corresponds to at least one visual word in the set of visual words; and

associating a portion of the first image with the term, wherein the portion of the first image includes at least some of the
plurality of regions that each correspond to at least one visual word in the set of visual words, wherein associating further
includes

generating a heatmap of the first image;
identifying a first region in the first image that includes a pixel having a highest pixel value from among other pixels in
the first image;

determining at least one other region in the first image that is connected to the first region; and
determining a bounding box that includes the first region and the at least one other region.

US Pat. No. 9,619,829

EVOLUTIONARY CONTENT DETERMINATION AND MANAGEMENT

A9.com, Inc., Palo Alto,...

1. A computing system, comprising:
at least one processor; and
a memory device including instructions that, when executed by the at least one processor, cause the computing system to:
receive a search query from a user device;
cause a first set of search result images to be displayed on the user device, the first set of search result images matching
the search query;

receive a first selection of a first search result image of the first set of search result images;
determine, based at least in part on the first selection, a second set of search result images, the second set of search result
images being displayed more prominently than, and concurrently with, the first set of search result images;

receive a second selection of a second search result image of the first set of search result images; and
display, using an animated motion, the first set of search result images more prominently than the second set of search result
images.

US Pat. No. 10,055,476

FIXED PHRASE DETECTION FOR SEARCH

A9.COM, INC., Palo Alto,...

1. A computer-implemented method for searching a collection of content, comprising:detecting at least one interaction with search result content, the search result content part of a collection of content provided through an electronic marketplace;
detecting at least one fixed phrase based at least in part on the detected at least one interaction with the search result content, the search result content associated with a column in a relevance matrix, the relevance matrix maintained in a data store in a distributed environment that utilizes a plurality of network resources available over a network, the at least one fixed phrase associated with a row in the relevance matrix, the relevance matrix corresponding to a data structure of a content index that indexes the collection of content;
determining a position in the relevance matrix corresponding to an intersection of the column and the row;
retrieving at least one relevance score at the position to identify at least one determined relevance score for facilitating a search; and
updating the content index based at least in part on the at least one interaction and the at least one determined relevance score, the at least one determined relevance score being included in another search of the content index upon updating the relevance matrix.

US Pat. No. 9,940,745

IMAGE MANIPULATION FOR ELECTRONIC DISPLAY

A9.COM, INC., Palo Alto,...

1. A system, comprising:at least one processor; and
memory storing instructions that, when executed by the at least one processor, cause the system to:
receive a first image that includes a representation of an object;
generate a second image having a lower color depth with respect to the first image;
analyze the second image to locate regions of pixels within a boundary associated with skin tone color values;
generate a binary skin mask indicating the regions of pixels;
scan, from at least a middle row of the binary skin mask, rows of pixels to locate features corresponding to skin feature locations;
compare the features to corresponding positions in a grayscale version of the first image to determine whether pixels of non-background color are located in corresponding rows of the second image; and
determine a location of a representation of a bodily feature based at least in part by locating rows having skin feature regions of sufficient width, with background color pixels outside the skin feature regions in respective rows of pixels.

US Pat. No. 9,922,052

CUSTOM IMAGE DATA STORE

A9.com, Inc., Palo Alto,...

8. A computer system comprising:
a processor;
a memory for storing instructions executable by the processor;
a data store interface operable to, at least:
receive, from a first user operating a mobile electronic device, a request to create a first data store of an electronic marketplace,
the first data store associated with a first subject, wherein the request to create the first data store is granted based
at least in part on whether an access code or a security key is provided by the first user, and wherein the first data store
is customizable with respect to the first user;

grant the request to create the first data store based at least in part on whether an access code or a security key is provided
by the first user;

receive, from the first user operating the mobile electronic device, a request to create a second data store of the electronic
marketplace, the second data store associated with a second subject, and wherein the second data store is customizable with
respect to the first user;

receive, from the first user, a first image representing the first subject, the first image captured by a camera of the mobile
electronic device;

receive, from the first user, a second image representing the second subject, the second image captured by the camera of the
mobile electronic device;

store the first image in a first data stores, associated with the first subject, and a second data store associated with the
second subject, wherein the first data store and the second data store are separate data stores;

store a first matching parameter for the first data store and a second matching parameter for the second data store, the first
matching parameter and the second matching parameter each associated with at least one alert, wherein at least one of the
first matching parameter and the second matching parameter includes a color similarity parameter and a shape similarity parameter;

receive image query information, the image query information including one or more features, wherein the image query information
is provided by an application executing on a computing device associated with a third-party user;

compare the one or more features of the image query information to images in at least one of the first data store or the second
data store using the first matching parameter and the second matching parameter; and

provide at least one image associated with the first subject retrieved from the first data store or at least one image associated
with the second subject retrieved from the second data store to the third-party user, based on results of the comparison and
based on the at least one alert.

US Pat. No. 9,912,874

REAL-TIME VISUAL EFFECTS FOR A LIVE CAMERA VIEW

A9.com, Inc., Palo Alto,...

1. A computing device, comprising:
a processor;
a camera;
a display screen; and
memory including instructions that, when executed by the processor, cause the computing device to:
capture image data of a live camera view by the camera, the image data including a representation of an object;
obtain an image processing mask used to process previously captured image data that includes a portion of the representation
of the object;

analyze the image data using the image processing mask to determine an area of the image data that includes the representation
of the object and information identifying the object;

determine a visual effect based at least in part on the information;
apply a plurality of linear convolution filters to blend pixels in the area with pixels outside the area to generate an erased
portion of the image data;

substitute the erased portion of the image data with a representation of a different object; and
display the representation of the different object on a display screen of the computing device.

US Pat. No. 9,911,237

IMAGE PROCESSING TECHNIQUES FOR SELF-CAPTURED IMAGES

A9.com, Inc., Palo Alto,...

1. A computer-implemented method for processing images, comprising:
under the control of one or more computer systems configured with executable instructions,
activating a flash element of a mobile device;
capturing, during activation of the flash element, an image with the mobile device, the image including a representation of
the mobile device reflected in a mirror;

locating, in the image, a reflection in the mirror of a flash produced by the activation of the flash element;
identifying, using an edge detection algorithm, candidate edges of one or more objects captured in the image;
identifying, among the candidate edges, mobile device edges corresponding to edges of the representation of the mobile device
captured in the image, based at least in part upon a proximity of one or more candidate edges to a location of the reflection
of the flash in the image;

determining one or more representation dimensions of the mobile device based at least in part upon a measurement in pixels
of the mobile device edges in the representation of the mobile device in the image, the representation dimensions of the mobile
device including at least a mobile device representation length and a mobile device representation width;

retrieving, from a database including mobile device specification information, one or more actual dimensions of the mobile
device, the actual dimensions of the mobile device including a mobile device actual length and a mobile device actual width;

determining a scaling factor for the image, the scaling factor corresponding to a proportionality between one or more representation
dimensions of the mobile device and one or more actual dimensions of the mobile device;

determining that a first article of clothing is present in the image; and
determining a size of the first article of clothing based at least in part upon the scaling factor determined for the image.

US Pat. No. 9,875,284

DISPLAYING SEARCH COMPLETION RESULTS

A9.com, Inc., Palo Alto,...

1. A computer-implemented method of completing a search query, comprising:
under control of one or more computer systems confirmed with executable instructions,
receiving a text input, associated with a product available for purchase, to a search interface element displayed on an electronic
device, the search interface element associated with a page of content of an electronic marketplace, the page of content having
a graphical appearance;

transmitting the text input to a search completion service;
receiving, from the search completion service, a set of search completion options corresponding to the text input, each search
completion option corresponding to a search query capable of being entered into the search interface element starting with
the text input;

obtaining a set of product search results for each search completion option of the set of search completion options;
displaying, as a first overlay above the page of content, a product image for each of at least a subset of the set of product
search results corresponding to a respective search completion option, each product image including product purchasing information
and an indication of a search completion option to which a respective product image is associated, wherein at least one of
the set of product search results or the search completion options is a selectable option;

displaying the product purchasing information as part of the first overlay, the product purchasing information including a
price of the respective search completion option;

displaying, with the displayed product images of the first overlay, the set of search completion options as a second overlay
above the page of content with the search interface element, the search interface element enabling at least one of a selection
of one of the search completion options as a search query, a selection of one of the displayed product images, or removal
of the displayed product images and the displayed set of search completion options from the search interface element to engage
the page of content of the electronic marketplace;

displaying a history section as a third overlay above the page of content, wherein the first overlay, the second overlay,
and the third overlay are displayed concurrently on a partially transparent chalkboard interface superimposed over the page
of content, the history section including at least one selectable visual identifier representing a previous state of the chalkboard
interface or a previous chalkboard interface, the selectable visual identifier including a map that maps the text input to
the corresponding search completion option and the product search result, the map further including a timeline mapping at
least one previous text input to a corresponding previous search completion option and previous product search result, such
that a selection of the at least one previous text input returns the chalkboard interface to the previous search completion
option and the previous product search result, and wherein the at least one previous text input includes at least one previous
search refinement;

modifying the graphical appearance of the page of content such that the page of content is visually distinguished from the
chalkboard interface; and enabling selection of one or more view options for the chalkboard interface, the view options including
a selectable size of the chalkboard interface and a toggle switch to toggle between display of the chalkboard interface and
display of the page of content.

US Pat. No. 9,875,546

COMPUTER VISION TECHNIQUES FOR GENERATING AND COMPARING THREE-DIMENSIONAL POINT CLOUDS

A9.COM, INC., Palo Alto,...

1. A system comprising:
a scanning device, the scanning device comprising:
a rotating light radar (LIDAR) transmitter, the rotating LIDAR transmitter rotating about an axis of the scanning device,
a rotating LIDAR receiver, the rotating LIDAR receiver rotating about the axis of the scanning device in synchronization with
the rotating LIDAR transmitter;

a mobile device, the mobile device including an image capture element;
at least one processor; and
memory including instructions that, when executed by the at least one processor, cause the system to:
capture, with the image capture element of the mobile device, an image of a first wearable item;
project a plurality of light pulses from the rotating LIDAR transmitter at the first wearable item;
detect a plurality of reflections of light pulses from the first wearable item at the rotating LIDAR receiver;
determine phase differences between one or more projected light pulses of the plurality of light pulses and one or more detected
reflections of the plurality of reflections;

determine a plurality of depth measurements between the scanning device and a respective plurality of locations on the first
wearable item based at least in part upon the phase differences, a depth measurement indicating a distance between the scanning
device and a location on the first wearable item, the plurality of depth measurements indicating a plurality of locations
on the first wearable item;

generate a first point cloud of the first wearable item, the first point cloud including a plurality of points corresponding
to the plurality of locations on the first wearable item;

retrieve a second point cloud of a second wearable item from a database of an electronic marketplace, the second point cloud
including a plurality of points corresponding to locations on the second wearable item;

compare the first point cloud to the second point cloud using a random sample consensus, the random sample consensus demonstrating
an overall proximity of the plurality of points corresponding to locations on the first wearable item to the plurality of
points corresponding to locations on the second wearable item; and

determine that the second wearable item corresponds in size to the first wearable item.

US Pat. No. 9,875,342

DYNAMIC BARCODE GENERATION FOR CONTENT LOCATION

A9.com, Inc., Palo Alto,...

1. A computer-implemented method, comprising:
determining an object identifier for an object of digital content, the object of digital content being associated with a customer
account of a content provider;

determining a type of access authorized for the customer account for the object of digital content;
generating a barcode that includes identifying information corresponding to the object identifier, the type of access authorized,
and the customer account;

causing the barcode to be sent to a recipient customer account associated with an intended recipient; and
revoking, in response to sending the barcode to the recipient customer account, access to the object of digital content by
the customer account and modifying the type of access authorized for the customer account,

wherein a recipient computing device of the intended recipient analyzes the barcode to obtain a copy of the object of digital
content from the content provider, and wherein, in response to analyzing the barcode by the recipient computing device, the
type of access authorized for the customer account is transferred to an account of the intended recipient.

US Pat. No. 9,870,549

VIRTUAL POSTAGE BASED ON IMAGE RECOGNITION

A9.com, Inc., Palo Alto,...

1. A computer implemented method for providing delivery information, the method comprising:
receiving, via a computing device, a first image of a signature located on a package, the first image captured using a portable
computing device of a user;

performing, via the computing device, image recognition to determine that the first image of the signature is distinct with
respect to a plurality of images stored in a database, wherein performing image recognition comprises extracting one or more
interest points from the first image of the signature to determine a feature description of the signature for comparison with
the plurality of images stored in the database;

associating, via the computing device, the first image of the signature with the delivery information of the package, the
delivery information including at least shipping information and payment information;

accepting, via the computing device, the first image of the signature as an electronic postage for the package, the first
image of the signature and the delivery information stored in the database;

receiving, via the computing device, a second image of the signature located on the package, the second image captured using
a delivery carrier device;

determining, by an image recognition engine of the computing device, that the second image of the signature matches the first
image of the signature based at least in part on the feature description of the signature;

retrieving, via the computing device, the delivery information associated with the first image of the signature; and
providing, via the computing device, the delivery information to the delivery carrier.

US Pat. No. 9,870,633

AUTOMATED HIGHLIGHTING OF IDENTIFIED TEXT

A9.COM, INC., Palo Alto,...

1. A non-transitory computer-readable storage medium storing instructions that, when executed by at least one processor, cause
a computing device to:
receive a user preference, the user preference selected for an individual user;
access a user identified word of a plurality of user identified words, the user identified word associated with the user preference
and a color selected for the individual user;

obtain image data that includes a representation of text;
use an object recognition algorithm to determine a recognized word represented in the image data;
associate the user identified word with the recognized word;
display the recognized word emphasized by a visual color attribute, the visual color attribute matching the color associated
with the user identified word; and

arrange the recognized word with respect to a plurality of recognized words, individual recognized words of the plurality
of recognized words associated with individual user preferences and individual colors selected for individual users, the plurality
of recognized words arranged based on the color, thereby ascertaining a group preference associated with group behavior based
on the individual recognized words with respect to the plurality of recognized words.

US Pat. No. 9,852,462

DISPLAYING LOCATION-SPECIFIC IMAGES ON A MOBILE DEVICE

A9.com, Inc., Palo Alto,...

11. A computing system, comprising:
at least one processor;
a memory including instructions stored thereon which, when executed by the at least one processor, cause the computing system
to:

determine a location of a mobile device comprising a global positioning system (GPS) interface unit, the GPS interface unit
configured to calculate the location of the mobile device;

send, by the GPS interface unit of the mobile device, information identifying the location of the mobile device to a mobile
image system via a wireless communications network, wherein the mobile image system receives monitoring information that specifies
the location of the mobile device;

send, by the mobile device, user identification information to the mobile image system via the wireless communications network,
wherein the mobile image system accesses a user profiles database to identify a user profile associated with the user identification
information; and

receive an alert on the mobile device from the mobile image system, the alert including points of interest associated with
the user profile associated with the user identification information.

US Pat. No. 9,841,877

UTILIZING COLOR DESCRIPTORS TO DETERMINE COLOR CONTENT OF IMAGES

A9.com, Inc., Palo Alto,...

1. A computer-implemented method, comprising:
receiving a query for an item offered through an electronic marketplace, the query including an image that includes a representation
of the item and an indication of a product type associated with the item;

analyzing the image to identify an area of the image that includes the representation of the item, the area of the image including
a plurality of pixels;

determining a closest fine color for individual pixels of the plurality of pixels, individual fine colors being associated
with a color family;

computing a fine color histogram and a family color histogram for the area based at least in part on the closest fine color
for individual pixels and associated color family;

computing a color descriptor for the representation of the item based at least in part on a combination of the fine color
histogram and the family color histogram;

comparing the color descriptor to an electronic catalog of color descriptors to determine a color class of the representation
of the item;

providing the color class and product type to an identification service, the identification service used to generate a ranking
score based and least in part on a matching of the color class to a respective color class associated with a respective item
of a subset of the items offered by the electronic marketplace; and

retrieving the subset of the items for display, each item of the subset of the items being arranged based at least in part
on a respective color class.

US Pat. No. 9,645,722

PREVIEW SEARCH RESULTS

A9.com, Inc., Palo Alto,...

1. A computer-implemented method, comprising:
responsive to a first search query, providing for display, in a graphical user interface window, a first set of search results
and search refinement links, each search refinement link corresponding to a different refinement query term;

pre-fetching a second set of search results for a subset of the search refinement links based on an ordering of the search
refinement links in the graphical user interface window;

determining that a mouse pointer is positioned within a threshold number of pixels of a first search refinement link of the
subset of the search refinement links;

providing for display the second set of search results associated with the first search refinement link, the second set of
search results determined using a second search query associated with the first search refinement link;

determining that the mouse pointer is positioned within the threshold number of pixels of a second search refinement link
of the search refinement links, the second search refinement link distinct from and adjacent to the first search refinement
link;

calling a search service to pre-fetch a third set of search results upon determining that the mouse pointer is positioned
within the threshold number of pixels of the second search refinement link of the search refinement links, the search service
being requested to execute a third search query associated with the second search refinement link;

obtaining, from the search service, the third set of search results having one or more images of one or more items related
to the third search query; and

providing for display, in a preview window positioned over a portion of the first set of search results, the one or more images
of the one or more items of the third set of search results, the one or more images of the one or more items corresponding
to the second search refinement link provided for display without receiving an indication of a selection of the second search
refinement link.

US Pat. No. 10,083,521

CONTENT RECOMMENDATION BASED ON COLOR MATCH

A9.COM, INC., Palo Alto,...

1. A computing device, comprising:a computing device processor;
a memory device including instructions that, when executed by the computing device processor, cause the computing device to:
obtain an image including a representation of an object, the object including an apparel item worn by a person;
locate a representation of a face and a representation of one or more legs in the image;
crop the image, from an upper edge of the image, to remove a specified portion of the representation of the face from the image to generate a first cropped image;
crop the image, from a lower edge of the image, to include only a specified portion of the representation of one or more legs in the image to generate a second cropped image;
quantize the second cropped image into a set of pixels each including pixel metadata, the pixel metadata including at least a respective color value representing a color feature of the representation of the apparel item;
generate and store a color list including the respective color value associated with the pixel metadata of each pixel in the set of pixels;
receive a request for content relating to an apparel item of interest, the apparel item of interest associated with an apparel category type;
determine one or more color features of the apparel item of interest based at least in part on the respective color value in the color list;
compare, based at least in part on the respective color value in the color list, the one or more color features against an electronic catalog of color feature representations to identify visually similar items;
determine, from the visually similar items and based at least in part on the apparel category type, a set of accessory items to the apparel item of interest; and
provide, with primary content for the apparel item of interest including at least a subset of the visually similar items, supplemental content for at least a subset of the set of accessory items to the apparel item of interest.

US Pat. No. 10,008,039

AUGMENTED REALITY FITTING APPROACH

A9.COM, INC., Palo Alto,...

1. A computer-implemented method, comprising:receiving, from a computing device, an image of a person wearing an article of clothing, the article of clothing being in a worn state and having a contour marking representing an outline of the article of clothing, the article of clothing further having a fitting grid comprising a substantially symmetrical grid of a plurality of horizontal gridlines and vertical gridlines;
determining a first relative position of at least one of the plurality of horizontal gridlines and at least one of the plurality of vertical gridlines of the article of clothing in an unworn state;
determining a second relative position of at least one of the plurality of horizontal gridlines and at least one of the plurality of vertical gridlines of the article of clothing in the worn state, the first relative position and the second relative position corresponding to approximately the same location of the article of clothing;
analyzing the image to determine a difference in the first relative position and the second relative position;
receiving an indication of a selection of a prospective article of clothing;
retrieving an image of the prospective article of clothing, the image indicated as capable of modification;
determining a location in the image of the prospective article of clothing corresponding to the first relative position and the second relative position of the article of clothing;
causing, at the location, a modification of the image of the prospective article of clothing, the modification of the image representing the difference in the first relative position and the second relative position and resulting in a modified image of the prospective article of clothing;
causing the modified image of the prospective article of clothing to be displayed along with the image of the person, the modified image of the prospective article of clothing being positioned for display according to the contour marking to appear worn by the person;
storing data representing the difference in the first relative position and the second relative position; and
associating the data with a unique identifier.

US Pat. No. 9,990,665

INTERFACES FOR ITEM SEARCH

A9.com, Inc., Palo Alto,...

1. A computer-implemented method, comprising:capturing, by a camera of a computing device, image data including a representation of an object of interest;
receiving an input on the computing device, the input including a selection of a category in which to search for items related to the object of interest;
displaying, by the computing device, a graphical outline in response to the selection of the category, the graphical outline corresponding to a type of item in the category, the graphical outline overlaying an image presented on a display based at least in part on the image data, and the graphical outline indicating a target relative orientation of the object of interest to the computing device;
executing a query of a data source, the query including information for the category and being based at least in part on the graphical outline;
receiving, in response to the query, result information for a set of items; and
displaying, by the computing device, display information for at least a subset of the set of items.

US Pat. No. 9,965,641

POLICY-BASED DATA-CENTRIC ACCESS CONTROL IN A SORTED, DISTRIBUTED KEY-VALUE DATA STORE

A9.com, Seattle, WA (US)...

1. A method executable on one or more computing machines and operative in association with a sorted, distributed key-value data store, comprising:processing an enterprise information security policy to generate an ingest-time policy, and a query-time policy, at least one of the ingest-time policy and the query-time policy being pluggable, wherein according to the query-time policy at least one policy rule is applied to one or more user-centric attributes associated with a user-centric realm to generate at least one data-centric attribute associated with a data-centric realm;
as data is ingested into the data store at an ingest time, tagging one or more key-value pairs in the data with a data-centric label as determined by the ingest-time policy to generate tagged data, the data-centric label representing a function evaluated over a set of variables;
storing the tagged data in the data store;
at query time, the query time being distinct from and occurring after the ingest time, and in response to receipt of a query from a querier, modifying the query according to at least the query-time policy to include the at least one data-centric attribute, the data-centric attribute being distinct from the data-centric label; andprocessing the query that has been modified to include the at least one data-centric attribute by forwarding to the data store the query that has been modified, receiving a response, and returning a response to the querier;wherein the processing is executable by a hardware processor.

US Pat. No. 9,922,431

PROVIDING OVERLAYS BASED ON TEXT IN A LIVE CAMERA VIEW

A9.com, Inc., Palo Alto,...

1. A computing system, comprising:
a display element;
a camera;
at least one processor; and
memory including instructions that, when executed by the processor, cause the computing system to:
capture image data by the camera, the image data including a representation of text;
analyze the image data to locate the representation of the text;
analyze the representation of the text to determine an action associated with the text;
display, on the display element, over a view being captured by the camera, a graphical representation of the text, the graphical
representation of the text being rendered with respect to a location of the representation of the text and appearing overlaid
over the representation of the text; and

perform, in response to a selection of the graphical representation of the text, the action associated with the text.

US Pat. No. 9,910,582

TECHNIQUES FOR NAVIGATING INFORMATION

A9.com, Inc., Palo Alto,...

1. A computer-implemented method of providing information to a user, comprising:
under the control of one or more computer systems configured with executable instructions,
identifying a size of a scrollable information set;
determining, based at least in part on the size, a graphical map that facilitates user input for navigating from a currently
displayed subset of the scrollable information set to one or more undisplayed subsets of the scrollable information set;

providing for display of a first subset of the scrollable information set in connection with a user interface that includes
a scrolling control and the graphical map;

receiving user input in connection with the user interface; and
responsive to the user input:
determining one or more subsets of the scrollable information set that have been accessed by the user, the one or more subsets
of the scrollable information including one or more web-based search results that have been accessed by the user; and

modifying the graphical map to indicate the determined one or more subsets of the scrollable information set that have been
accessed by the user.

US Pat. No. 9,888,356

LOGISTIC DISCOUNTING OF POINT OF INTEREST RELEVANCE BASED ON MAP VIEWPORT

A9.COM, INC., Palo Alto,...

1. A system comprising:
at least one processor; and
a memory device including instructions that, when executed by the at least one processor, cause the at least one processor
to:

receive a request from a mapping application executing on a client device;
determine mapping data corresponding to a geographic region derived at least in part from information in the request, the
mapping data including graphical information for rendering a map display for the geographic region;

obtain point of interest (POI) data associated with the geographic region, the POI data including one or more POIs;
determine a score of the one or more POIs based at least in part on a distance function applied to the one or more POIs and
a baseline score of individual POIs;

select a portion of the POI data based at least in part upon respective scores for the one or more POIs; and
provide the portion of the POI data for rendering in the map display.

US Pat. No. 9,875,258

GENERATING SEARCH STRINGS AND REFINEMENTS FROM AN IMAGE

A9.com, Inc., Palo Alto,...

1. A computer-implemented method, comprising:
obtaining an image by a camera of a computing device, the image including a representation of an object;
analyzing the image to determine a product category associated with the object;
analyzing the image using a classifier algorithm to determine a first term representing a first visual characteristic of the
image;

analyzing the image using the classifier algorithm with the first term to determine a second term representing a second visual
characteristic of the image, the second term including one or more words;

determining that the one or more words of the second term is a sequence of words describing visual characteristics associated
with the object, the sequence of words satisfying a search condition;

generating, in response to the sequence of words satisfying the search condition, a search string query, one or more refinements,
and one or more key words based at least in part on the product category and the sequence of words;

determining a set of search results corresponding to the search string query; and
displaying the set of search results with the one or more refinements and the one or more key words for the product category
on the computing device, the one or more refinements and the one or more key words configured to be selectable by a user of
the computing device, the search string query being configured to be editable by the user in response to a selection of one
of the one or more refinements and the one or more key words.

US Pat. No. 9,824,376

MAP BASED PAYMENT AUTHORIZATION

A9.com, Inc., Palo Alto,...

1. A method of enabling payment from a source of funds to be authorized for a transaction at a specified location, comprising:
receiving location data at a first computing device;
generating a map on a display of the first computing device based at least in part on the received location data, the map
including a plurality of selectable locations each corresponding to a physical location at which an amount of funds may be
designated for use;

receiving a first selection of a first selectable location of the plurality of selectable locations;
presenting map information on the map to be displayed to a first user of the first computing device, the map information being
presented in response to the first selection of the first selectable location of the plurality of selectable locations, and
the map information being associated with the first selectable location;

displaying map information about one or more entities located within a first determined physical distance from the first selectable
location based at least in part on the first selection of the first selectable location;

receiving from the first user a second selection of at least one of the one or more entities within the first determined physical
distance, an identity of a second user, and an amount of funds to be available to the second user to execute transactions
with respect to the at least one of the one or more entities;

storing the identity of the second user, the amount of funds to be available to the second user, and the selected at least
one of the one or more entities collectively as payment authorization data, the identity of the second user, the amount of
funds to be available to the second user, and the selected at least one of the one or more entities each being displayed on
the map in response to the second selection;

automatically designating the amount of funds as available to the second user to execute transactions with respect to the
selected at least one of the one or more entities, wherein the amount of funds is displayed on a second computing device of
the second user once designated as available to the second user;

receiving a request from a payment system of the at least one of the one or more entities to authorize use of the available
amount of funds as payment for a particular transaction being executed by the second user, the request including the identity
of the second user and geographic information of the at least one of the one or more entities;

determining that the identity of the second user in the request matches the identity of the second user in the stored payment
authorization data and that the geographic information in the request corresponds to a location within the first determined
distance from the first selectable location corresponding to the map information displayed to the first user of the first
computing device; and

causing the amount of funds to be transmitted to the payment system of the selected at least one of the one or more entities
to complete the particular transaction based at least in part on the determination that the identity in the request matches
the identity of the second user in the stored payment authorization data and that the geographic information in the request
corresponds to a location within the first determined distance from the first selectable location.

US Pat. No. 9,792,708

APPROACHES TO TEXT EDITING

A9.com, Inc., Palo Alto,...

1. A computer-implemented method, comprising:
receiving a selection of characters from a set of characters, the set of characters corresponding to text from image data
captured using a camera of a computing device;

sending a request for at least one alternative character corresponding to the selection of characters;
receiving the at least one alternative character corresponding to the selection of characters, the at least one alternative
character determined using a user specific confusion matrix;

displaying the at least one alternative character;
receiving a selection related to the at least one alternative character; and
updating the set of characters based on the selection.

US Pat. No. 10,140,549

SCALABLE IMAGE MATCHING

A9.COM, INC., Palo Alto,...

1. A computing system, comprising:a processor; and
memory including instructions that, when executed by the processor, cause the computing system to:
receive a query image from a client computing device;
extract feature descriptors from the query image;
compare at least a portion of the extracted feature descriptors to a set of compressed cluster centers corresponding to a set of database images to determine a matching score, the compressed cluster centers at least partially formed by a set of compressed descriptors storing identifying information for at least one associated feature, the identifying information corresponding to identifying information including at least one of a position, a scale, or an orientation, and the identifying information occupying a majority of a file size of the compressed descriptor, wherein each of the compressed cluster centers is assigned at least one visual word corresponding to at least one feature descriptor;
rank the set of database images based on the matching score; and
select a highest ranking database image of the set of closest matching database images as a match for the query image.

US Pat. No. 10,140,515

IMAGE RECOGNITION AND CLASSIFICATION TECHNIQUES FOR SELECTING IMAGE AND AUDIO DATA

A9.com, Inc., Palo Alto,...

1. A computer-implemented method, comprising:receiving, from a computing device, an image and image capture data associated with the image;
using a trained neural network to identify a plurality of image descriptors corresponding to one or more determined characteristics of the image, based at least on a comparison of the image to a set of stored image descriptors;
causing a first query including a first set of image descriptors of the plurality of image descriptors to be executed against a set of music descriptors, wherein each of the set of music descriptors is associated with one or more songs available to the computing device;
determining a song mapping between the first set of image descriptors and the set of music descriptors;
generating a playlist of songs based on the song mapping, wherein the songs in the playlist of songs are associated with a music descriptor corresponding to the first set of image descriptors;
causing the playlist of songs to be transmitted to the computing device;
causing a second query including a second set of image descriptors of the plurality of image descriptors to be executed against a set of stored images associated with a user of the computing device;
determining an image mapping between the second set of image descriptors and a third set of image descriptors, each of the third set of image descriptors being associated with one or more images of the set of stored images;
causing an identification of the one or more images of the set of stored images based on the second query and the image mapping;
causing the identification to be transmitted to the computing device; and
causing the one or more images of the set of stored images to be displayed while the playlist of songs is being played.

US Pat. No. 10,133,951

FUSION OF BOUNDING REGIONS

A9.com, Inc., Palo Alto,...

1. A computing device, comprising:at least one processor; and
memory including instructions that, when executed by the at least one processor, cause the computing device to:
obtain image data that includes a representation of an object;
use a region proposal technique on the image data to determine a plurality of candidate bounding boxes by performing steps including:
processing the image data using a first object detection algorithm, resulting in a first candidate bounding box; and
processing the image data using a second object detection algorithm, resulting in a second candidate bounding box;
instantiate an initial bounding box from one of the plurality of candidate bounding boxes;
determine a distance between each of the plurality of bounding boxes and the initial bounding box to generate a plurality of distances;
determine a sum of a square of the plurality of distances;
refine the initial bounding box based at least in part on the sum to determine an estimated bounding box having a minimal average square distance to the plurality of bounding boxes.

US Pat. No. 10,007,680

CONTENT COLLECTION SEARCH WITH ROBUST CONTENT MATCHING

A9.COM, INC., Palo Alto,...

1. A computer-implemented method, comprising:under control of one or more computer systems configured with executable instructions,
receiving a search request specifying query content, the query content characterized by query descriptors at each of a plurality of scales;
for each content piece of at least one portion of a content collection:
identifying a subset of content descriptors of the content piece at each of the plurality of scales, the content descriptors characterizing and describing one or more regions of the content piece, each of the subset of the content descriptors at a respective scale of the plurality of scales corresponding to at least one portion of the query descriptors at the respective scale;
determining a size of the query content to generate respective first proportion thresholds with respect to the size of the query content;
determining whether a respective first proportion of the subset of the content descriptors at each respective scale is greater than the generated respective first proportion threshold corresponding to the respective scale, the respective first proportion threshold comprising a region size threshold corresponding to the respective scale; and
selecting the content piece for inclusion in a matching content subset of the content collection when at least one of the one or more regions of the subset of content descriptors includes a proportionate size greater than the respective first proportion threshold; and
providing the matching content subset in response to the search request.

US Pat. No. 9,928,466

APPROACHES FOR ANNOTATING PHRASES IN SEARCH QUERIES

A9.COM, INC., Palo Alto,...

1. A computer-implemented method, the method comprising:obtaining a collection of phrases from at least one electronic resource;
generating, from a collection of search queries, respective counts of each n-gram of terms that appears in search queries in the collection of search queries;
determining, based at least in part on the collection of phrases and the respective counts of the n-grams, a respective segmentation for each search query in the collection of search queries, wherein the search query comprises a plurality of terms, and wherein the segmentation identifies at least one phrase using at least one term of the search query;
storing, in a database of a service provider environment, the service provider environment including a plurality electronic resources available over a network, the respective segmentation for each search query in the collection of search queries to be used as training data for training a predictive model, wherein the training data includes a plurality of search queries in the collection of search queries as an input and the corresponding segmentation for the search queries as an output; and
generating the predictive model using at least the training data, wherein the trained predictive model is configured to predict respective segmentations for new search queries.

US Pat. No. 9,892,344

ACTIVATION LAYERS FOR DEEP LEARNING NETWORKS

A9.COM, INC., Palo Alto,...

5. A computer-implemented method, comprising:
training a convolutional neural network using a set of a training data, the training data including instances of image data
with determined classifications;

receiving query image data;
processing the query image data using the convolutional neural network to determine a classification of an object represented
in the query image data, the convolutional neural network containing at least one convolutional layer and at least one activation
layer, the at least one activation layer including a generalized linear unit (GLU), the GLU having three parameters including
a first slope in a positive region, a second slope in a negative region, and an offset applied to the first slope and the
second slope, the three parameters learnable over at least one input channel;

determining a set of items corresponding to the classification; and
providing, to a client device, information for at least a subset of the set of items.

US Pat. No. 9,881,084

IMAGE MATCH BASED VIDEO SEARCH

a9.com, Inc., Palo Alto,...

1. A computing device comprising:
at least one processor; and
memory storing instructions that, when executed by the at least one processor, cause a computing device to perform operations,
comprising:

obtaining a video content item;
determining a plurality of scenes for the video content item, the plurality of scenes including a respective set of video
frames;

determining that at least one video frame of the respective set of video frames for a scene includes a number of features
for extraction that is greater than a specified threshold;

extracting, from the at least one video frame, a plurality of feature descriptors relating to an object represented in the
at least one video frame, the object including one or more features;

assigning a visual word to each of the plurality of feature descriptors to generate a vocabulary of visual words describing
the one or more features;

indexing the visual words into a feature index storing information for the visual words;
correlating the visual words of the feature index to determine one or more groups of visual words having similar feature descriptors;
indexing the one or more groups into a correlation index storing information for the one or more groups and respective corresponding
visual words;

receiving a query image from a client computing device;
extracting query feature descriptors from the query image to determine extracted query feature descriptors;
assigning a query visual word to each of the extracted query feature descriptors;
comparing one or more of the query visual words from the query image to at least a subset of the visual words in the correlation
index to identify a set of closest matching video frames that at least partially match the query image based at least in part
on a respective number of query visual words matching a respective number of visual words in the correlation index; and

generating a recommendation for one or more video content items corresponding to the set of closest matching video frames
as matching the query image.

US Pat. No. 10,109,051

ITEM RECOMMENDATION BASED ON FEATURE MATCH

A9.com, Inc., Palo Alto,...

1. A computing device, comprising:a computing device processor;
a memory device including instructions that, when executed by the computing device processor, cause the computing device to:
obtain an image;
analyze the image to determine color values for a plurality of pixels comprising the image, wherein the color values correspond to a particular color space;
generate a histogram of the color values that identifies a frequency of each color value represented in the image;
determine a subset of the color values, each color value of the subset appearing in the image greater than a threshold amount;
identify a plurality of regions of the image, each of the plurality of regions of the image including pixels having a color value of the subset of color values;
generate a query feature vector for each of the plurality of regions of the image;
compare the query feature vectors against an electronic catalog of stored feature vectors, the stored feature vectors corresponding to apparel items; and
determine a set of apparel items that are visually similar to the image, each of the set of apparel items having a corresponding stored feature vector being within a threshold distance of one of the query feature vectors.

US Pat. No. 10,037,614

MINIMIZING VARIATIONS IN CAMERA HEIGHT TO ESTIMATE DISTANCE TO OBJECTS

A9.COM, INC., Palo Alto,...

8. A method, comprising:capturing first image data by a first camera of a computing device, the first image data including a representation of an object, the object associated with physical dimensions;
displaying an interface for determining a position of the computing device with respect to a reference point, the interface including the representation of the object, the representation of the object associated with displayed dimensions;
determining the position based at least in part on the physical dimensions of the object and the displayed dimensions of the representation of the object; and
using the position to determine whether a bodily feature of a user represented in second image data captured by a second camera of the computing device aligns with an alignment element within a threshold amount of deviation.

US Pat. No. 10,013,624

TEXT ENTITY RECOGNITION

A9.com, Inc., Palo Alto,...

1. A computer-implemented method, comprising:receiving an output from an optical character recognition (OCR) performed on an image;
determining, from the output, first values associated with a first pixel region of the image and second values associated with a second pixel region of the image;
determining a character string indicative of a text entity from the output when one or more differences between the first values and the second values exceeds a threshold;
assigning each character of the character string to a character class to produce a character class string;
identifying the character string as being the text entity;
identifying a text entity type associated with the text entity; and
autocorrecting at least one character in the character string to provide a corrected character, the at least one character belonging to a character class not associated with the text entity type.

US Pat. No. 10,013,630

DETECTION AND RECOGNITION OF OBJECTS LACKING TEXTURES

A9.com, Inc., Palo Alto,...

1. A system, comprising:at least one processor; and
memory including instructions that, when executed by the at least one processor, cause the system to:
detect a plurality of segments of an image, each of the plurality of segments corresponding to a specific object represented in the image, the specific object including a plurality of disconnected components, wherein the specific object is a proprietary symbol, and wherein each of the plurality of disconnected components of the proprietary symbol corresponds to a different subset of segments from the plurality of segments;
combine two or more segments of the plurality of segments into a cluster region, the two or more segments corresponding to at least a portion of the proprietary symbol represented in the image;
extract at least one feature point based upon a contour curvature of the cluster region, each of the at least one feature point represented by one feature point descriptor;
convert at least one feature point descriptor into one or more codewords, the at least one feature point descriptor representing the at least one feature point, the one or more codewords representing a particular appearance of the proprietary symbol; and
generate a discriminative codebook based at least upon the one or more codewords, the discriminative codebook including the one or more codewords and at least one additional codeword representing another appearance of the proprietary symbol, the another appearance being different from the particular appearance.

US Pat. No. 10,013,633

OBJECT RETRIEVAL

A9.COM, INC., Palo Alto,...

1. A computing device, comprising:a camera configured to capture an image;
at least one processor; and
memory including instructions that, when executed by the at least one processor, cause the computing device to:
receive the image acquired by the camera, the image including a representation of a footwear sole;
analyze the image to determine at least one portion of that image that includes a view of at least a portion of a surface pattern of the footwear sole, the portion of the surface pattern of the footwear sole including repeated surface pattern markings separated by spacing, at least a first portion of the repeated surface pattern markings being located in a toe portion of the footwear sole, a second portion of the repeated surface pattern markings being located in a heel portion of the footwear sole, and a distinguishing feature separate from the surface pattern markings on the footwear sole including at least one of a logo or text;
determine feature information representative of at least a portion of the surface pattern or markings; and
return matching footwear information based at least in part on the feature information.

US Pat. No. 10,013,398

WEB-BASED DISTRIBUTED COMPUTING WITH BROWSER-EXECUTED CODE

A9.COM, INC., Palo Alto,...

1. A computing system, comprising:a computing device processor;
a memory device including instructions that, when executed by the computing device processor, enable the computing system to:
receive a request for a distributed computing job, the request including data and browser-executable code, the browser-executable code configured to process the data;
identify a first browser tab and a second browser tab of a browser, the first browser tab and the second browser tab being configured to execute the browser-executable code;
assign a first portion of the data to the first browser tab and a second portion of the data to the second browser tab of the browser, the first portion of the data and the second portion of the data configured to be processed using the browser-executable code;
receive results corresponding to the first portion of the data and the second portion of the data, the results in accordance with execution of the browser-executable code in the first browser tab and the second browser tab;
determine a condition associated with one of the first browser tab or the second browser tab; and
update the distributed computing job based at least in part on the results and the condition.

US Pat. No. 9,996,901

DISPLAYING REPRESENTATIVE IMAGES IN A VISUAL MAPPING SYSTEM

A9.com, Inc., Palo Alto,...

1. A computing system, comprising:a processor; and
a memory device including instructions that, when executed by the processor, cause the computing system to:
receive a request to display a location of a computing device, the location associated with a geographic location, the computing device including an orientation component configured to determine an orientation of the computing device with respect to a reference coordinate system;
display a portion of a map, the portion of the map including a viewable area that includes an icon displayed at the location, the map oriented with respect to the reference coordinate system, the icon including a visual representation of a detected direction of orientation of the computing device with respect to the reference coordinate system;
receive a selection of an orientation element; and
update an orientation of the viewable area of the map to match the detected direction of orientation of the computing device with respect to the reference coordinate system.

US Pat. No. 9,990,557

REGION SELECTION FOR IMAGE MATCH

A9.com, Inc., Palo Alto,...

1. A system, comprising:at least one processor; and
memory storing instructions that, when executed by the at least one processor, cause the system to:
receive an image containing a representation of an object;
determine a set of candidate swatch regions based at least in part on a selection of an area of the image;
for each swatch region in the set of candidate swatch regions, identify a subset of pixels of the image based at least in part on the subset of pixels having at least a minimum probability of similarity to the representation of the object in the image;
selecting at least one swatch region from the set of candidate swatch regions based at least in part on the minimum probability of similarity to the representation of the object;
determine at least two or more sub-regions within the at least one swatch region;
collating data for the at least one swatch region to determine a sub-region representative of at least one visual aspect of the object; and
generating a swatch image using pixel values from within the sub-region, the swatch image used to perform a similarity matching process against a set of candidate images.

US Pat. No. 9,934,526

TEXT RECOGNITION FOR SEARCH RESULTS

A9.com, INC., Palo Alto,...

1. A non-transitory computer-readable storage medium storing instructions that, when executed by at least one processor, cause a computing device to:obtain at least one image frame containing text captured using a camera of the computing device;
cause the text within the at least one image frame to be recognized with an optical character recognition (OCR) engine, an output of the OCR engine including recognized text strings and a score for each text string associated with a respective recognition confidence;
filter the recognized text strings from the output of the OCR engine that are at least one of a determined distance from an edge of the at least one image frame or are associated with at least two lines of the text to generate a set of text strings to generate a set of filtered text strings;
adjust the score of each text string as a function of distance from a center of the at least one image frame, the score associated with a text string near the center being adjusted upward relative to a text string closer to an edge of the at least one image frame;
rank the set of filtered text strings according to the score for each text string;
compare each text string of the set of filtered text strings to content references associated with content items;
identify a combined threshold indicating a number of matches or approximate matches to within an allowable deviation between the ranked set of filtered text strings and the content references, the content references including text strings corresponding to identifying features of the content;
submit the ranked set of filtered text strings associated with the identified number of matches or the approximate matches within the allowable deviation to a search engine to return content search results for the ranked set of filtered text strings;
compare the ranked set of filtered text strings to title text strings of the content search results; and
provide a respective content search result for display on the computing device when a number of text strings from the ranked set of filtered text strings appearing in a title text string of the respective content is at least equal to or exceeds the combined threshold.

US Pat. No. 9,779,444

RECOMMENDATIONS UTILIZING VISUAL IMAGE ANALYSIS

A9.com, Inc., Palo Alto,...

1. A system, comprising:
at least one computing device;
program instructions executable in the at least one computing device that, when executed by the at least one computing device,
cause the at least one computing device to:

analyze a digital image captured by a digital camera of a client device to:
identify a plurality of objects in a setting embodied in the digital image;
identify a plurality of colors associated with the plurality of objects identified in the setting; and
identify a plurality of empty regions in the setting, the plurality of empty regions being identified as a region in the setting
in which no object is recognized;

identify a recommended item for insertion into one of the plurality of empty regions, the recommended item identified from
a plurality of items available offered through an electronic commerce system using at least one of: historical data associated
with a user account associated with the client device, one of the plurality of colors identified, one of the plurality of
objects identified, and one of the plurality of empty regions identified;

identify one of a plurality of representative images of the recommended item for insertion into at least one of the plurality
of empty regions based at least in part on a ranking of the plurality of representative images, the ranking generated using
a score determined for individual ones of the plurality of representative images;

insert the one of the plurality of representative images of the recommended item having a highest ranking in the at least
one of the plurality of empty regions of the digital image such that the recommended item appears naturally in the setting;
and

send the digital image to the client device for display.

US Pat. No. 10,147,399

ADAPTIVE FIDUCIALS FOR IMAGE MATCH RECOGNITION AND TRACKING

A9.COM, INC., Palo Alto,...

1. A computing system, comprising:a processor;
memory including instructions that, when executed by the processor, cause the computing system to:
receive image data of a point of interest captured by a camera of a computing device, the point of interest associated with an external content provider storing and maintaining information associated with the image data;
receive device data associated with at least one of a current location identifier representing position coordinates of where the image data was captured, a timestamp representing a time of capturing the image data, or orientation information representing an orientation of the computing device at the time of capturing the image data;
analyze the image data using at least one image processing technique to determine a visual feature that represents a visual aspect of the point of interest;
receive tracking information corresponding to a position of a representation of the visual feature with respect to the computing device;
determine whether the position of the visual feature is within a position threshold;
match, in response to the visual feature being within the position threshold, the image data to stored information maintained by an application provider, the image data based on the visual feature and at least one of the current location identifier, the timestamp, or the orientation information, the stored information being associated with at least one candidate image associated with the external content provider, the application provider and the external content provider being separate entities;
determine an additional set of candidate images based at least in part on one of an updated location identifier, updated orientation of the computing device, or timestamp associated with the additional set of candidate images;
compare the image data with at least a subset of the additional set of candidate images;
determine a confidence score for each of the subset of the additional set of candidate images;
select an image from the subset of the additional set of candidate images that has the highest confidence score;
retrieve content associated with the stored information of the image selected from the subset of the additional set of candidate images that has the highest confidence score, the content including content elements selectable by a user of the computing device, the content provided by the external content provider;
provide the content for display with the image data on the computing device;
cause the content to be rendered in an overlay element that overlays the image data displayed on the computing device; and
in response to determining that the position of the representation of the visual feature is outside the position threshold, receive updated image data to determine updated content associated with the visual feature, wherein the updated content includes a new type of content, wherein the user is able to interact with the updated content displayed in the overlay element by accessing the content elements selectable by the user.

US Pat. No. 10,043,109

ATTRIBUTE SIMILARITY-BASED SEARCH

A9.COM, INC., Palo Alto,...

1. A computer-implemented method, comprising:obtaining a set of images each including a representation of a respective item;
analyzing text associated with the images to identify a subset of the images associated with a determined visual attribute;
performing localization on a selected image, of the subset of images, to determine a region of image data for the selected image associated with the visual attribute;
analyzing the region of image data associated with the visual attribute to extract a set of image features;
training a convolutional neural network using the set of image features from the selected image, the convolutional neural network being further trained using additional image features extracted from other images of the subset of images;
receiving a query image including a representation of a query item;
processing the query image using the convolutional neural network, trained for the visual attribute, to determine similarity scores between the query image and a set of result images; and
providing content for at least a determined number of the result images having highest similarity scores based on the visual attribute.

US Pat. No. 10,026,229

AUXILIARY DEVICE AS AUGMENTED REALITY PLATFORM

A9.com, Inc., Palo Alto,...

1. A method, comprising:determining that an auxiliary computing device, executing a specified application, is stationary against a flat surface for at least a minimum period of time based on a first image data captured by the auxiliary computing device, the auxiliary computing device determined stationary when the first image data include dark frames for at least the minimum period of time;
causing the auxiliary computing device to display a fiducial on a display screen, the fiducial including fiducial data relating to the auxiliary computing device;
capturing a second image data using a camera of a primary computing device, the second image data including a representation of a fiducial;
analyzing the second image data to locate the fiducial and extract the fiducial data;
determining, based at least in part upon the second image data, a relative orientation of the fiducial with respect to the primary computing device;
determining, based at least in part upon the fiducial data and a size of the representation in the second image data, a scale of the representation of the fiducial as displayed;
determining an item to be displayed with the second image data;
obtaining an overlay element for the item, the overlay element matching the relative orientation and the scale of the representation of the fiducial; and
displaying the overlay element with the second image data on the primary computing device.

US Pat. No. 10,127,633

DISPLAYING REPRESENTATIVE IMAGES IN A VISUAL MAPPING SYSTEM

A9.com, Inc., Palo Alto,...

1. A system comprising:at least one processor; and
memory including instructions that when executed by the at least one processor cause the system to:
determine geographical coordinates of a physical location of a computing device;
determine a business located at the geographical coordinates based in part on a correlation of a business database and associated location information;
provide the computing device with an input option to provide an image of the physical location;
receive the image of the physical location;
relate the image to one or more of the geographical coordinates and the physical location; and
index the image for display when a search associated with the physical location is performed.

US Pat. No. 10,121,229

SELF-PORTRAIT ENHANCEMENT TECHNIQUES

A9.com, Inc., Palo Alto,...

1. A computer-implemented method, comprising:obtaining a plurality of images;
determining one or more background elements from each of the plurality of images;
determining a plurality of foreground elements from each of the plurality of images;
generating a background image comprising a first composite of at least a portion of the one or more background elements;
determining a score of each of the plurality of foreground elements according to one or more visual characteristics;
obtaining a selection of at least one instance of the plurality of foreground elements from at least a subset of the plurality of images based at least in part on the determined score associated with the at least one instance of the plurality of foreground elements; and
generating a composite self-portrait image by compositing the selected at least one of the plurality of foreground elements and the background image, the composite self-portrait image comprising the selected at least one of the plurality of foreground elements having the highest determined score with respect to each other foreground element of the plurality of foreground elements.

US Pat. No. 10,082,237

IMAGING SYSTEM FOR IMAGING REPLACEMENT PARTS

A9.com, Inc., Palo Alto,...

18. An imaging system, comprising:a base;
an imaging assembly, comprising:
a first arm including a first arm first portion and a first arm second portion distal from the first arm first portion, the first arm pivotally mounted on the base at the first arm first portion on a first pivot mount,
a second arm including a second arm first portion and a second arm second portion distal from the second arm first portion, the second arm pivotally mounted on the first arm second portion at the second arm first portion on a second pivot mount,
an imaging device mounted on the second arm second portion; and
a holder assembly, comprising:
a base mount pivotally mounted on a platform coupled to the base,
a first strut coupled to a first end of the base mount,
a second strut coupled to a second end of the base mount opposite the first end of the base mount, the first strut and the second strut extending parallel to a vertical axis of the system,
a first gripper coupled to the first strut, and
a second gripper coupled to the second strut,
the base mount rotatable about its pivot mount on the platform about the vertical axis of the system, rotation of the base mount configured to move at least one of the first gripper and the second gripper over the base and in line of sight of the imaging device,
wherein the first arm is rotatable at least partially around a part gripped by at least one of the first gripper and the second gripper about a first rotational axis and the second arm is rotatable about a second rotational axis orthogonal to the first rotational axis to rotate the imaging device around the part such that the part is imaged from a plurality of angles.

US Pat. No. 10,342,104

VIDEO ON DEMAND FOR COMMUNICATION DEVICES

A9.Com, Inc., Palo Alto,...

1. A non-transitory computer-readable medium (CRM) of a computing device storing instructions that, when executed by one or more processors, cause the computing device to perform operations comprising:receiving an input;
after receiving the input, sending a signal to a communication device, the signal representing a command to activate a camera of the communication device;
receiving, from the communication device, image data representing one or more images captured within a field of view of the camera;
displaying, on a display, the one or more images;
receiving, from the communication device, audio data representing sound; and
outputting the sound using a speaker.