IP Library Granted Patent US 10,489,238
Granted Patent B2
US 10,489,238 · App. 15/796,796 · Granted Nov 26, 2019

Analyzing screenshots to detect application issues

Inventors: Oliver Pell (London, GB); Davide Guerri (London, GB)
Assignee: Facebook, Inc.
G06F11/0793G06F11/079
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,489,238
App. No.
15/796,796
Granted
Nov 26, 2019
Kind
B2
Abstract

A client management server manages client devices deployed throughout an enterprise facility that may be used for various applications such as wayfinders and internal and external meeting room computers. The client management receives screenshots from the client devices and applies a classifier to classify an operating state of each device as corresponding to a normal operating state or an error state. If the operating state is classified as corresponding to the error state, a remedial action is triggered. The classifier may be a machine trained model that is trained using supervised or unsupervised learning, including by simulating errors on the clients.

Claims (82)

1. A method comprising:

receiving, from a client device, a first screenshot representing first content displayed on the client device;

applying a classifier based on a classification model to classify an operating state of the client device based on the first screenshot as corresponding to a normal operating state or an error state;

responsive to the classifier classifying the operating state as corresponding to the error state, causing the client device to perform a remedial action;

following the client device performing the remedial action, receiving a second screenshot representing second content displayed on the client device;

applying the classifier to classify the operating state of the client based on the second screenshot; and

responsive to the classifier classifying the second screenshot as corresponding to the error state, setting an escalation flag associated with the client device.

2. The method of claim 1 , further comprising:

receiving an indication that the client device is working properly;

resetting the escalation flag;

adding the second screenshot to a training set of screenshots indicative of the normal operating state; and

re-training the classification model based on the training set.

3. The method of claim 1 , wherein causing the client device to perform the remedial action comprises:

causing the client device to perform a restart.

4. The method of claim 1 , wherein applying the classifier based on the classification model comprises:

identifying a configuration of the client device at a time corresponding to capturing the first screenshot; and

selecting the classification model from a predefined set of classification models each corresponding to a different possible configuration.

5. A method comprising:

receiving, from a client device, a first screenshot representing first content displayed on the client device;

deriving a set of visual features from the first screenshot to generate a client feature vector;

performing a first feature vector comparison of the client feature vector with a first plurality of reference feature vectors, the first plurality of reference feature vectors derived from a plurality of reference screenshots captured during a normal operating state;

generating a first classification score based on a similarity between the client feature vector and the first plurality of reference feature vectors;

applying a classifier based on a classification model to classify the operating state based on the first classification score as corresponding to the normal operating state or an error state; and

responsive to the classifier classifying the operating state as corresponding to the error, state, causing the client device to perform a remedial action.

6. The method of claim 5 , further comprising:

performing a second feature vector comparison of the client feature vector with a second plurality of reference feature vectors, the second plurality of reference feature vectors derived from a second plurality of reference screenshots captured during the error state;

generating a second classification score based on a similarity between the client feature vector and the second plurality of reference feature vectors; and

wherein applying the classifier based on the classification model to classify the operating state is further based on the second classification score.

7. The method of claim 6 , further comprising:

prior to performing the second feature vector comparison, simulating errors on a plurality of training client devices by causing the plurality of training devices to operate in the error state;

receiving the second plurality of reference screenshots from the training client devices; and

deriving the second plurality of reference feature vectors from the second plurality of reference screenshots.

8. The method of claim 5 , further comprising:

following the client device performing the remedial action, receiving a second screenshot representing second content displayed on the client device;

applying the classifier to classify the operating state of the client based on the second screenshot; and

responsive to the classifier classifying the second screenshot as corresponding to the error state, setting an escalation flag associated with the client device.

9. The method of claim 5 , wherein causing the client device to perform the remedial action comprises:

causing the client device to perform a restart.

10. The method of claim 5 , wherein applying the classifier based on the classification model comprises:

identifying a configuration of the client device at a time corresponding to capturing the first screenshot; and

selecting the classification model from a predefined set of classification models each corresponding to a different possible configuration.

11. A non-transitory computer-readable storage medium storing instructions executable by a processor, the instructions when executed by the processor causing the processor to perform steps including:

receiving, from a client device, a first screenshot representing first content displayed on the client device;

applying a classifier based on a classification model to classify an operating state of the client device based on the first screenshot as corresponding to a normal operating state or an error state;

responsive to the classifier classifying the operating state as corresponding to the error state, causing the client device to perform a remedial action;

following the client device performing the remedial action, receiving a second screenshot representing second content displayed on the client device;

applying the classifier to classify the operating state of the client based on the second screenshot; and

responsive to the classifier classifying the second screenshot as corresponding to the error state, setting an escalation flag associated with the client device.

12. The non-transitory computer-readable storage medium of claim 11 , the instructions further causing the processor to perform steps including:

receiving an indication that the client device is working properly;

resetting the escalation flag;

adding the second screenshot to a training set of screenshots indicative of the normal operating state; and

re-training the classification model based on the training set.

13. The non-transitory computer-readable storage medium of claim 11 , wherein causing the client device to perform the remedial action comprises:

causing the client device to perform a restart.

14. The non-transitory computer-readable storage medium of claim 11 , wherein applying the classifier based on the classification model comprises:

identifying a configuration of the client device at a time corresponding to capturing the first screenshot; and

selecting the classification model from a predefined set of classification models each corresponding to a different possible configuration.

15. A non-transitory computer-readable storage medium storing instructions executable by a processor, the instructions when executed by the processor causing the processor to perform steps including:

receiving, from a client device, a first screenshot representing first content displayed on the client device;

deriving a set of visual features from the first screenshot to generate a client feature vector;

performing a first feature vector comparison of the client feature vector with a first plurality of reference feature vectors, the first plurality of reference feature vectors derived from a plurality of reference screenshots captured during a normal operating state;

generating a first classification score based on a similarity between the client feature vector and the first plurality of reference feature vectors;

applying a classifier based on a classification model to classify the operating state based on the first classification score as corresponding to the normal operating state or an error state; and

responsive to the classifier classifying the operating state as corresponding to the error state, causing the client device to perform a remedial action.

16. The non-transitory computer-readable storage medium of claim 15 , further comprising:

performing a second feature vector comparison of the client feature vector with a second plurality of reference feature vectors, the second plurality of reference feature vectors derived from a second plurality of reference screenshots captured during the error state;

generating a second classification score based on a similarity between the client feature vector and the second plurality of reference feature vectors; and

wherein applying the classifier based on the classification model to classify the operating state is further based on the second classification score.

17. The non-transitory computer-readable storage medium of claim 16 , the instructions further causing the processor to perform steps including:

prior to performing the second feature vector comparison, simulating errors on a plurality of training client devices by causing the plurality of training devices to operate in the error state;

receiving the second plurality of reference screenshots from the training client devices; and

deriving the second plurality of reference feature vectors from the second plurality of reference screenshots.

18. The non-transitory computer-readable storage medium of claim 15 , further comprising:

following the client device performing the remedial action, receiving a second screenshot representing second content displayed on the client device;

applying the classifier to classify the operating state of the client based on the second screenshot; and

responsive to the classifier classifying the second screenshot as corresponding to the error state, setting an escalation flag associated with the client device.

19. The non-transitory computer-readable storage medium of claim 15 , wherein causing the client device to perform the remedial action comprises:

causing the client device to perform a restart.

20. The non-transitory computer-readable storage medium of claim 15 , wherein applying the classifier based on the classification model comprises:

identifying a configuration of the client device at a time corresponding to capturing the first screenshot; and

selecting the classification model from a predefined set of classification models each corresponding to a different possible configuration.

Assignments (2)
CHANGE OF NAME Recorded Nov 18, 2021
From: FACEBOOK, INC.
To: META PLATFORMS, INC.
Reel/Frame 058897/0824 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 15, 2017
From: PELL, OLIVER; GUERRI, DAVIDE
To: FACEBOOK, INC.
Reel/Frame 044134/0232 →
Continuity (1)
Related Publication 20190129823A1 · May 2, 2019