The present disclosure a dynamical system and method for identifying visual metadata from screenshots of a software application, analyzing the identified visual metadata, and categorizing the software application based on the analysis. The software application is then presented to a user on a display in a cluster of other similar software applications.
With recent developments in mobile technology, numerous software developers are concentrating on producing software applications (typically “apps”) that perform various functions. Because of the increase in the number and variety of such software applications, finding a desired application can be challenging, especially where the categorization of a software application is inaccurate or imprecise. Thus, there is a need for an improved system and method for recognition of applications and for presenting them to a user in a coherent fashion, for example by clustering them.
The present disclosure provides a system and method for recognition of applications visual metadata and a clustering of the applications based on the recognized visual metadata.
It is a feature of the disclosed subject matter to recognize visual metadata by inputting screenshot images of an application to a machine learning system to extract visual features from those images to build clusters.
It is further a feature of the disclosed subject matter to perform both feature extraction and clustering, wherein clustering includes grouping software applications based on a commonly identified visual metadata. Accordingly, software applications are classified in a more desirable fashion.
It is a still further feature of the disclosed subject matter to provide a method for clustering applications based on visual metadata by identifying metadata as at least one visual feature of an application; assigning a classification to each application based on the at least one identified visual feature; performing a cluster analysis based on the assigned classification; and selecting a cluster assignment to the application based on the cluster analysis.
The above-described and other advantages and features of the present disclosure will be appreciated and understood by those skilled in the art from the following detailed description and drawings.
A user 508 may access the UI 506 using a variety of devices, including but not limited to a mobile phone, a tablet, a personal computer (PC), or other computing device. By connecting to the Internet Y, a user 508 is able to interact with the computer 500.
The feature selection and extraction module 502 performs several functions, illustrated in
As illustrated in
In feature selection and extraction step 100 a variety of methods and techniques to select and extract features may be used using specific modules, such as image segmentation analysis 102, interest point-based analysis 104, object recognition 106, histogram-based analysis 108, application information analysis 110, and maturity level analysis 112.
In image segmentation analysis 102, images (screen shots) are segmented so that each segment may be parsed and examined for pixel color, pattern recognition, and other elements. Segmentation analysis 102 may be used to locate objects and boundaries in the screen shots.
In interest point-based analysis 104, the feature selection and extraction step 100 determines points in an image that are rich in information content. These points may be determined using techniques such as blob detection, edge detection, corner detection, and ridge detection. Interest point-based analysis 104 may be used to determine the presence of certain objects within the image. Furthermore, an interest point-based analysis may be utilized to understand the texture of the image.
Object recognition 106 may be used in conjunction with data from a database 510 which contains information on objects that may repeat in screen shots of similar applications. For example, video player software applications tend to have a control panel with a play button and a status bar. This information may be stored as image object data in a database 510 and during object recognition 106, the video player object information may be compared to screen shots of software applications in order to detect specific software applications. The object recognition module 106 may be designed to recognize software applications that contain a play button and a status bar. These applications may then be assigned a category reference indicating that they contain media player objects. In another example, object recognition 106 may recognize gaming applications with similar character graphics or scenery graphics. Thus, object recognition 106 may recognize gaming applications all having images of farms, animals, etc. that may be categorized as certain type roll playing games.
Thus, key features are extracted from software application screen shots. These key features are then compared with entries in a database 501 and information about what objects may have created these features are retrieved. Position, orientation, and scale may also be accounted for in object recognition by using a variety of features stored in the database 501.
Histogram-based analysis 108 includes the analysis of pixels of digital images. Preferably, an image is partitioned and each partition is analyzed with respect to pixel color information. A color histogram is then produced to represent the distribution of colors within the image or partition by providing the number of pixels that have colors in each of a fixed color range. The set of fixed color ranges span the image's color space. This analysis may provide object information, such as scenery information and the like, so that software applications with similar color histograms and patterns may be grouped together.
Application information analysis 110 receives all developer-produced data including, but not limited to, software application title and description, developer-created metadata associated with the software application, a maturity rating pre-associated with the software application, developer data, and all text-based data associated with the application provided by the developer or from other sources.
In an alternative embodiment, where a software application does not contain maturity level information, the feature selection and extraction step 100 may utilize any of the tools to detect and tag mature content to assign a maturity rating to the software application. For example, where applications contain violent content, such as weapons and the like, image segmentation analysis 102, interest point-based analysis, object recognition 106, or histogram-based analysis 108 may pick up those graphics and mark the software application as containing mature content.
As previously mentioned, once the software application features are selected and extracted in step 100, the selected and extracted features are assigned a classification in step 200. This classification may be a numerical classification, or text-based classification, or some combination of the two. A cluster analysis step 300 is then performed on the classified features to determine patterns in the features and group the features by resemblance and the software applications are then arranged into different cluster, each cluster having some predetermined feature that is common to all the software applications within the cluster.
By way of example,
Various types of clustering criteria are shown in
In general, these cluster analyses seek either to minimize a cost function (or optimize a certain measurement which associates a cost to each data item and cluster assignment) or to perform a number of iterations, analyzing the data items and/or clusters in each iteration to differentiate data items based on dissimilarities between the data items and/or clusters.
In a simple implementation, a common visual feature will be selected and extracted, such as video playback controls. A machine learning system may be used to extract and correlate the presence of these shapes as features which represent a cluster. The system can then look for other metadata, such as listing details or feedback, and find that video is a strongly correlated with these visual features.
Thereafter these clusters can be used as new navigational categories, or as a source of related software applications when viewing one software application within a cluster. Alternatively, these clusters can be used as seeds to populate metadata when a publisher is listing a software application in a digital multimedia content service.
In an alternative embodiment, visual features that are extracted may be used to distinguish quality of the software application which can be correlated with ratings of the software application (user ratings, digital multimedia content service ratings, maturity level ratings, etc.) in order to predict likely quality of the software application or influence a ranking for new software applications which have not received any user or digital multimedia content service feedback.
Once a cluster assignment is generated, the assignment may be automatically linked to the software application. Alternatively, the cluster assignment may be sent to the software developer for verification that the software application is properly classified. The software developer may then affirm classification or may request that another assignment be generated.
The accompanying drawings illustrate a system and method for recognition of applications visual metadata and a clustering of the applications based on the recognized visual metadata, its constituent parts, and method of use. However, other types and styles are possible, and the drawings are not intended to be limiting in that regard. For example logos, images or videos may be included along with metadata. Thus, although the description above and accompanying drawings contains much specificity, the details provided should not be construed as limiting the scope of the embodiment(s) but merely as providing illustrations of some of the presently preferred embodiment(s). The drawings and the description are not to be taken as restrictive on the scope of the embodiment(s) and are understood as broad and general teachings in accordance with the present invention. While the present embodiment(s) of the invention have been described using specific terms, such description is for present illustrative purposes only, and it is to be understood that modifications and variations to such embodiments, including but not limited to the substitutions of equivalent features, materials, or parts, and the reversal of various features thereof, may be practiced by those of ordinary skill in the art without departing from the spirit and scope of the invention.
Number | Name | Date | Kind |
---|---|---|---|
7185001 | Burdick et al. | Feb 2007 | B1 |
8200025 | Woodbeck | Jun 2012 | B2 |
8521679 | Churchill et al. | Aug 2013 | B2 |
8682819 | Consul et al. | Mar 2014 | B2 |
8787683 | Yee et al. | Jul 2014 | B1 |
9639694 | Padidar | May 2017 | B2 |
20020042793 | Choi | Apr 2002 | A1 |
20030217052 | Rubenczyk et al. | Nov 2003 | A1 |
20050268338 | Made | Dec 2005 | A1 |
20060056707 | Suomela | Mar 2006 | A1 |
20070112754 | Haigh et al. | May 2007 | A1 |
20070226324 | Branda et al. | Sep 2007 | A1 |
20070297641 | Criddle | Dec 2007 | A1 |
20080033922 | Cisler et al. | Feb 2008 | A1 |
20080086775 | Repasi et al. | Apr 2008 | A1 |
20080201466 | Adelman et al. | Aug 2008 | A1 |
20090279794 | Brucher | Nov 2009 | A1 |
20100138775 | Kohen et al. | Jun 2010 | A1 |
20100205274 | Gharabally et al. | Aug 2010 | A1 |
20100218091 | Lee | Aug 2010 | A1 |
20110041078 | Park et al. | Feb 2011 | A1 |
20110082868 | Musuluri | Apr 2011 | A1 |
20110123120 | Quack | May 2011 | A1 |
20110208801 | Thorkelsson et al. | Aug 2011 | A1 |
20110313843 | Rounthwaite et al. | Dec 2011 | A1 |
20120095979 | Aftab et al. | Apr 2012 | A1 |
20120233163 | Kirkpatrick | Sep 2012 | A1 |
20120233165 | Kirkpatrick | Sep 2012 | A1 |
20120260232 | Hirsch et al. | Oct 2012 | A1 |
20120290583 | Mahaniok | Nov 2012 | A1 |
20130014040 | Jagannathan et al. | Jan 2013 | A1 |
20130014146 | Bhatia et al. | Jan 2013 | A1 |
20130055211 | Fosback | Feb 2013 | A1 |
20130124449 | Pinckney et al. | May 2013 | A1 |
20130275431 | Rathod | Oct 2013 | A1 |
20140280131 | Martens et al. | Sep 2014 | A1 |
20150055854 | Marchesotti | Feb 2015 | A1 |
20150200815 | Verkasalo | Jul 2015 | A1 |
Number | Date | Country |
---|---|---|
2224336 | Sep 2010 | EP |
10-2010-0095777 | Sep 2010 | KR |
10-2013-0082848 | Jul 2013 | KR |
10-2014-0018329 | Feb 2014 | KR |
10-2014-0045549 | Apr 2014 | KR |
Entry |
---|
Collin McMillan et al.; “Categorizing Software Applications for Maintenance”, in Proc. of 27th IEEE International Conference on Software Maintenance (ICSM '11), Williamsburg, VA, Sep. 25-30, 2011. |
“Amazon.com: What are Statistically Improbable Phrases?” Accessed from http://www.amazon.com/gp/search-inside/sipshelp.html on Mar. 8. 2011, 1 pp. |
Almohammad et al.: Face and Gait Fusion Methods: A Survey, International Journal of Computer Science and Telecommunications, vol. 4, Issue 4, Apr. 2013, pp. 19-28. |
Wikipedia, the free encyclopedia, “Statistically Improbable Phrases, from Wikipedia, the free encyclopedia,” Last modified on Jan. 26, 2011 Retrieved from http://en.wikipedia.org/wiki/Statistically_Improbable_Phrases 2 pp. |
Prosecution History from U.S. Appl. No. 13/043,214, dated Jan. 19, 2012 through Apr. 7, 2017, 184 pp. |
Prosecution History from U.S. Appl. No. 13/250,592, dated Dec. 2, 2011 through Feb. 22, 2017 206 pp. |
Gallestey, “Cluster Analysis,” Encyclopaedia Britannica, last modified Nov. 23, 2017, accessed from https://www.britannica.com/topic/cluster-analysis on Mar. 15, 2017, 3 pp. |