The present disclosure is related to artificial intelligence (AI) systems and, in particular, to knowledge-based tools for organizing and using recognition models to respond to queries involving objects in a data set.
Entity recognition of objects in a data set, for example items in an image or video file or words in an audio file, is a widely used AI application.
The data sets may include numerous entities each of which may have multiple granularities. Each type of entity is typically recognized by one or more dedicated models. As an increasing number of models appear on AI platforms, however, it becomes difficult for users to determine which model(s) are available and which models should be used to recognize a particular object.
According to an aspect, a device for identifying at least one object in a data set includes a memory storing instructions and one or more processors in communication with the memory, wherein the one or more processors execute the instructions to: receive a data set and a query including the at least one object in the data set; select at least one recognition model using an entity knowledge database including a plurality of entities corresponding to objects to be identified, wherein each recognition model of a plurality of recognition models is linked to multiple entities of the entity knowledge database; and process the data set using the at least one selected recognition model to provide an indication of whether the data set includes the at least one object.
Optionally, in the preceding aspect, the one or more processors execute further instructions to: receive the plurality of recognition models, each recognition model including at least one annotation; and for each recognition model: identify at least one entity of the entity knowledge database that corresponds to the recognition model, based on the at least one annotation of the recognition model, and link the recognition model to the at least one entity in the entity knowledge database.
Optionally, in any preceding aspect, the at least one recognition model includes multiple recognition models and each recognition model of the multiple recognition models includes at least one parameter indicating computing resources to be used to process the data set using the recognition model; and the one or more processors execute the instructions to process the data set by processing the data set using at least one recognition model from the multiple recognition models, the at least one recognition model having indicated computing resources that are compatible with resources available to the one or more processors.
Optionally, in any preceding aspect, the one or more processors execute the instructions to obtain additional resources from a network-connected service before selecting the recognition model.
Optionally, in any preceding aspect, the entity knowledge database is a graph database; the entities of the entity knowledge graph database are ontologically coupled nodes of the entity knowledge graph database such that a recognition model which is directly linked to one node in the entity knowledge database is linked to all nodes in the entity knowledge database that are ontologically coupled to the one node; the entity knowledge graph database includes a node corresponding to the at least one object and the node corresponding to the at least one object is not directly linked to a recognition model; and the one or more processors execute the instructions to select, as the at least one recognition model, one or more recognition models directly linked to at least one node in the entity knowledge database that is ontologically coupled to the node corresponding to the at least one object.
Optionally, in any preceding aspect, the one or more processors execute the instructions to: select, as the one or more recognition models associated with the ontologically coupled nodes, a plurality of recognition models linked to a respective plurality of nodes ontologically coupled to the node corresponding to the at least one object; process the data set using the selected plurality of recognition models; and combine results of processing the selected plurality of recognition models to provide the indication of whether the data set includes the at least one object.
Optionally, in any preceding aspect, the entity knowledge database is a graph database; the entity-knowledge graph database includes a plurality of ontologically organized nodes corresponding to the at least one object at different levels of generality and the one or more processors execute the instructions to: select, as the at least one recognition model, a plurality of recognition models associated with the plurality of nodes corresponding to the different levels of generality of the at least one object; process the data set using the selected plurality of recognition models; and combine results of the processing of the selected plurality of recognition models to provide the indication of whether the data set includes the at least one object.
According to an aspect, a device for identifying at least one object in a data set includes a memory storing instructions and one or more processors in communication with the memory, wherein the one or more processors execute the instructions to: receive a plurality of recognition models, each recognition model including a plurality of annotations; establish links among each received recognition model of the plurality of recognition models and multiple respective entities of an entity knowledge database according to the annotations of the recognition model; receive a data set and a query to identify at least one object in the data set; select at least one recognition model from the entity knowledge database to identify the at least one object, the at least one recognition model being linked to at least one entity in the entity knowledge database corresponding to the at least one object; and process the data set using the at least one selected recognition model to provide an indication of whether the data set includes the at least one object.
Optionally, in the preceding aspect, the entity knowledge database is a graph database; the entities of the entity knowledge graph database are ontologically coupled such that directly linking a recognition model to one node in the entity knowledge graph database links the recognition model to all nodes in the entity knowledge graph database that are ontologically coupled to the one node; the entity knowledge database includes a node corresponding to the at least one object and the node corresponding to the at least one object is not directly linked to any of the plurality of recognition models; and the one or more processors execute the instructions to select, as the at least one recognition model, at least one recognition model that is ontologically coupled to the node corresponding to the at least one object and that is linked to at least one respective recognition model of the plurality of recognition models.
Optionally, in any preceding aspect, the one or more processors execute the instructions to: identify, as the at least one identified recognition model, a plurality of identified recognition models linked to a plurality of nodes that are ontologically coupled to the node corresponding to the at least one object; process the data set using the selected plurality of identified recognition models; and combine results of processing the selected plurality of identified recognition models to provide the indication of whether the data set includes the at least one object.
Optionally, in any preceding aspect, the entity knowledge database includes a plurality of ontologically organized nodes corresponding to the at least one object at different levels of generality and the one or more processors execute the instructions to: select, as the identified plurality of recognition models, respective models associated with the plurality of nodes corresponding to the different levels of generality of the at least one object; process the data set using the selected plurality of recognition models; and combine results of the processing of the selected plurality of identified recognition models to provide the indication of whether the data set includes the at least one object.
Optionally, in any preceding aspect, the data set includes an image frame and the at least one object includes an entity of the entity knowledge database.
searching an entity knowledge database including a plurality of nodes corresponding to objects to be identified, wherein each recognition model of a plurality of recognition models is linked to multiple nodes of the entity knowledge database; selecting at least one recognition model of the plurality of recognition models to be used to identify the at least one object in response to the search of the entity knowledge database; and processing the data set using the at least one selected recognition model to provide an indication of whether the data set includes the at least one object.
Optionally, in any preceding aspect, the method further includes receiving the plurality of recognition models, each recognition model including at least one annotation; and for each recognition model: identifying at least one entity of the entity knowledge database that corresponds to the recognition model, based on the at least one annotation of the recognition model; and linking the recognition model to the at least one entity in the entity knowledge database.
Optionally, in any preceding aspect, the at least one recognition model includes multiple recognition models and each recognition model of the multiple recognition models includes at least one parameter indicating computing resources to be used to process the data set using the recognition model; and the method further comprises processing the data set using at least one recognition model from the multiple recognition models, the at least one recognition model having indicated computing resources that are compatible with resources available to the one or more processors.
Optionally, in any preceding aspect, the method includes, obtaining additional resources from a network-connected service before selecting the recognition model.
Optionally, in any preceding aspect, the entity knowledge database is a graph database having entities that are ontologically coupled to nodes of the entity knowledge graph database such that a recognition model which is directly linked to one node in the entity knowledge database is linked to all nodes in the entity knowledge database that are ontologically coupled to the one node and the entity knowledge graph database includes a node corresponding to the at least one object and the node corresponding to the at least one object is not directly linked to a recognition model; and the method further comprises selecting, as the at least one recognition model, one or more recognition models directly linked to at least one node in the entity knowledge database that is ontologically coupled to the node corresponding to the at least one object.
Optionally, in any preceding aspect, the method includes selecting, as the one or more recognition models associated with the ontologically coupled nodes, a plurality of recognition models linked to a respective plurality of nodes ontologically coupled to the node corresponding to the at least one object; processing the data set using the selected plurality of recognition models; and combining results of processing the selected plurality of recognition models to provide the indication of whether the data set includes the at least one object.
Optionally, in any preceding aspect, the entity knowledge database is a graph database that includes a plurality of ontologically organized nodes corresponding to the at least one object at different levels of generality; and the method further comprises: selecting, as the at least one recognition model, a plurality of recognition models associated with the plurality of nodes corresponding to the different levels of generality of the at least one object; processing the data set using the selected plurality of recognition models; and combining results of the processing of the selected plurality of recognition models to provide the indication of whether the data set includes the at least one object.
According to an aspect, a method for identifying at least one object in a data set includes: receiving a plurality of recognition models, each recognition model including a plurality of annotations; establishing links among each received recognition model of the plurality of recognition models and multiple respective entities of an entity knowledge database according to the annotations of the recognition model; receiving a data set and a query to identify at least one object in the data set; selecting at least one recognition model from the entity knowledge database to identify the at least one object, the at least one recognition model being linked to at least one entity in the entity knowledge database corresponding to the at least one object; and processing the data set using the at least one selected recognition model to provide an indication of whether the data set includes the at least one object.
Optionally, in the preceding aspect, the entity knowledge database is a graph database having entities that are ontologically coupled to nodes of the entity knowledge graph database such that directly linking a recognition model to one node in the entity knowledge graph database links the recognition model to all nodes in the entity knowledge graph database that are ontologically coupled to the one node and the entity knowledge database includes a node corresponding to the at least one object and the node corresponding to the at least one object is not directly linked to any of the plurality of recognition models; and the method further comprises selecting, as the at least one recognition model, at least one recognition model that is ontologically coupled to the node corresponding to the at least one object and that is linked to at least one respective recognition model of the plurality of recognition models.
Optionally, in any preceding aspect, the method further includes identifying, as the at least one identified recognition model, a plurality of identified recognition models linked to a plurality of nodes that are ontologically coupled to the node corresponding to the at least one object; processing the data set using the selected plurality of identified recognition models; and combining results of processing the selected plurality of identified recognition models to provide the indication of whether the data set includes the at least one object.
Optionally, in any preceding aspect, the entity knowledge database includes a plurality of ontologically organized nodes corresponding to the at least one object at different levels of generality; and the method further comprises: selecting, as the identified plurality of recognition models, respective models associated with the plurality of nodes corresponding to the different levels of generality of the at least one object; processing the data set using the selected plurality of recognition models; and combining results of the processing of the selected plurality of identified recognition models to provide the indication of whether the data set includes the at least one object.
Optionally, in any preceding aspect, the data set includes an image frame and the at least one object includes an entity of the entity knowledge database.
According to an aspect, a computer-readable medium storing computer instructions for identifying an object in a data set that, when executed by one or more processors, cause the one or more processors to: search an entity knowledge database including a plurality of nodes corresponding to objects to be identified, wherein each recognition model of a plurality of recognition models is linked to multiple nodes of the entity knowledge database; select at least one recognition model of the plurality of recognition models to be used to identify the at least one object in response to the search of the entity knowledge database; and process the data set using the at least one selected recognition model to provide an indication of whether the data set includes the at least one object.
Optionally, in the preceding aspect, the computer instructions, when executed by the one or more processors, cause the one or more processors to: receive the plurality of recognition models, each recognition model including at least one annotation; and for each recognition model: identify at least one entity of the entity knowledge database that corresponds to the recognition model, based on the at least one annotation of the recognition model; and link the recognition model to the at least one entity in the entity knowledge database.
Optionally, in any preceding aspect, the at least one recognition model includes multiple recognition models and each recognition model of the multiple recognition models includes at least one parameter indicating computing resources to be used to process the data set using the recognition model; and the computer instructions, when executed by the one or more processors, cause the one or more processors to process the data set using at least one recognition model from the multiple recognition models, the at least one recognition model having indicated computing resources that are compatible with resources available to the one or more processors.
Optionally, in any preceding aspect, the computer instructions, when executed by the one or more processors, cause the one or more processors to obtain additional resources from a network-connected service before selecting the recognition model.
Optionally, in any preceding aspect, the entity knowledge database is a graph database having entities that are ontologically coupled to nodes of the entity knowledge graph database such that a recognition model which is directly linked to one node in the entity knowledge database is linked to all nodes in the entity knowledge database that are ontologically coupled to the one node and the entity knowledge graph database includes a node corresponding to the at least one object and the node corresponding to the at least one object is not directly linked to a recognition model; and the computer instructions, when executed by the one or more processors, cause the one or more processors to select, as the at least one recognition model, one or more recognition models directly linked to at least one node in the entity knowledge database that is ontologically coupled to the node corresponding to the at least one object.
Optionally, in any preceding aspect, the computer instructions, when executed by the one or more processors, cause the one or more processors to: select, as the one or more recognition models associated with the ontologically coupled nodes, a plurality of recognition models linked to a respective plurality of nodes ontologically coupled to the node corresponding to the at least one object; process the data set using the selected plurality of recognition models; and combine results of processing the selected plurality of recognition models to provide an indication of whether the data set includes the at least one object.
Optionally, in any preceding aspect, the entity knowledge database is a graph database that includes a plurality of ontologically organized nodes corresponding to the at least one object at different levels of generality; and the computer instructions, when executed by the one or more processors, cause the one or more processors to: select, as the at least one recognition model, a plurality of recognition models associated with the plurality of nodes corresponding to the different levels of generality of the at least one object;
process the data set using the selected plurality of recognition models; and combine results of the processing of the selected plurality of recognition models to provide the indication of whether the data set includes the at least one object.
According to an aspect, a computer-readable medium storing computer instructions for identifying an object in a data set that, when executed by one or more processors, cause the one or more processors to: receive a plurality of recognition models, each recognition model including a plurality of annotations; establish links among each received recognition model of the plurality of recognition models and multiple respective entities of an entity knowledge database according to the annotations of the recognition model;
receive a data set and a query to identify at least one object in the data set; selecting at least one recognition model from the entity knowledge database to identify the at least one object, the at least one recognition model being linked to at least one entity in the entity knowledge database corresponding to the at least one object; and process the data set using the at least one selected recognition model to provide an indication of whether the data set includes the at least one object.
Optionally, in the preceding aspect, the entity knowledge database is a graph database having entities that are ontologically coupled to nodes of the entity knowledge graph database such that directly linking a recognition model to one node in the entity knowledge graph database links the recognition model to all nodes in the entity knowledge graph database that are ontologically coupled to the one node and the entity knowledge database includes a node corresponding to the at least one object and the node corresponding to the at least one object is not directly linked to any of the plurality of recognition models; and the computer instructions, when executed by the one or more processors, cause the one or more processors to select, as the at least one recognition model, at least one recognition model that is ontologically coupled to the node corresponding to the at least one object and that is linked to at least one respective recognition model of the plurality of recognition models.
Optionally, in any preceding aspect, the computer instructions, when executed by the one or more processors, further cause the one or more processors to: identify, as the at least one identified recognition model, a plurality of identified recognition models linked to a plurality of nodes that are ontologically coupled to the node corresponding to the at least one object;
process the data set using the selected plurality of identified recognition models; and combine results of processing the selected plurality of identified recognition models to provide the indication of whether the data set includes the at least one object.
Optionally, in any preceding aspect, the entity knowledge database includes a plurality of ontologically organized nodes corresponding to the at least one object at different levels of generality; and the computer instructions, when executed by the one or more processors, further cause the one or more processors to: select as the identified plurality of recognition models, respective models associated with the plurality of nodes corresponding to the different levels of generality of the at least one object; process the data set using the selected plurality of recognition models; and combine results of the processing of the selected plurality of identified recognition models to provide the indication of whether the data set includes the at least one object.
Optionally, in any preceding aspect, the data set includes an image frame and the at least one object includes an entity of the entity knowledge database.
According to an aspect, an apparatus for identifying an object in a data set includes: means for searching an entity knowledge database including a plurality of nodes corresponding to objects to be identified, wherein each recognition model of a plurality of recognition models is linked to multiple nodes of the entity knowledge database; means for selecting at least one recognition model of the plurality of recognition models to be used to identify the at least one object in response to the search of the entity knowledge database; and means for processing the data set using the at least one selected recognition model to provide an indication of whether the data set includes the at least one object.
Optionally, in any preceding aspect, the apparatus includes means for receiving the plurality of recognition models, each recognition model including at least one annotation; and for each recognition model: means for identifying at least one entity of the entity knowledge database that corresponds to the recognition model, based on the at least one annotation of the recognition model; and means for linking the recognition model to the at least one entity in the entity knowledge database.
Optionally, in any preceding aspect, the at least one recognition model includes multiple recognition models and each recognition model of the multiple recognition models includes at least one parameter indicating computing resources to be used to process the data set using the recognition model; and the apparatus further comprises means for processing the data set using at least one recognition model from the multiple recognition models, the at least one recognition model having indicated computing resources that are compatible with resources available to the one or more processors.
Optionally, in any preceding aspect, the apparatus includes a means for obtaining additional resources from a network-connected service before selecting the recognition model.
Optionally, in any preceding aspect, the entity knowledge database is a graph database having entities that are ontologically coupled to nodes of the entity knowledge graph database such that a recognition model which is directly linked to one node in the entity knowledge database is linked to all nodes in the entity knowledge database that are ontologically coupled to the one node and the entity knowledge graph database includes a node corresponding to the at least one object and the node corresponding to the at least one object is not directly linked to a recognition model; and the apparatus further comprises means for selecting, as the at least one recognition model, one or more recognition models directly linked to at least one node in the entity knowledge database that is ontologically coupled to the node corresponding to the at least one object.
Optionally, in any preceding aspect, the apparatus includes a means for selecting, as the one or more recognition models associated with the ontologically coupled nodes, a plurality of recognition models linked to a respective plurality of nodes ontologically coupled to the node corresponding to the at least one object; means for processing the data set using the selected plurality of recognition models; and means for combining results of processing the selected plurality of recognition models to provide the indication of whether the data set includes the at least one object.
Optionally, in any preceding aspect, the entity knowledge database is a graph database that includes a plurality of ontologically organized nodes corresponding to the at least one object at different levels of generality; and the apparatus further comprises: means for selecting, as the at least one recognition model, a plurality of recognition models associated with the plurality of nodes corresponding to the different levels of generality of the at least one object; means for processing the data set using the selected plurality of recognition models; and means for combining results of the processing of the selected plurality of recognition models to provide the indication of whether the data set includes the at least one object.
Optionally, in any preceding aspect, the apparatus includes means for receiving a plurality of recognition models, each recognition model including a plurality of annotations; means for establishing links among each received recognition model of the plurality of recognition models and multiple respective entities of an entity knowledge database according to the annotations of the recognition model; means for receiving a data set and a query to identify at least one object in the data set; means for selecting at least one recognition model from the entity knowledge database to identify the at least one object, the at least one recognition model being linked to at least one entity in the entity knowledge database corresponding to the at least one object; and means for processing the data set using the at least one selected recognition model to provide an indication of whether the data set includes the at least one object.
Optionally, in any preceding aspect, the entity knowledge database is a graph database having entities that are ontologically coupled to nodes of the entity knowledge graph database such that directly linking a recognition model to one node in the entity knowledge graph database links the recognition model to all nodes in the entity knowledge graph database that are ontologically coupled to the one node and the entity knowledge database includes a node corresponding to the at least one object and the node corresponding to the at least one object is not directly linked to any of the plurality of recognition models; and the apparatus further comprises means for selecting, as the at least one recognition model, at least one recognition model that is ontologically coupled to the node corresponding to the at least one object and that is linked to at least one respective recognition model of the plurality of recognition models.
Optionally, in any preceding aspect, the apparatus includes means for identifying, as the at least one identified recognition model, a plurality of identified recognition models linked to a plurality of nodes that are ontologically coupled to the node corresponding to the at least one object; means for processing the data set using the selected plurality of identified recognition models; and means for combining results of processing the selected plurality of identified recognition models to provide the indication of whether the data set includes the at least one object.
Optionally, in any preceding aspect, the entity knowledge database includes a plurality of ontologically organized nodes corresponding to the at least one object at different levels of generality; and the apparatus further comprises: means for selecting as the identified plurality of recognition models, respective models associated with the plurality of nodes corresponding to the different levels of generality of the at least one object; means for processing the data set using the selected plurality of recognition models; and means for combining results of the processing of the selected plurality of identified recognition models to provide the indication of whether the data set includes the at least one object.
In the following description, reference is made to the accompanying drawings that form a part hereof, and in which are shown, by way of illustration, specific embodiments which may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice the disclosed subject matter. It is to be understood that other embodiments may be utilized, and that structural, logical and electrical changes may be made without departing from the scope of the appended claims. The following description of example embodiments is, therefore, not to be taken to limit the appended claims.
The functions or algorithms described herein may be implemented using software, in some embodiments. The software may consist of computer executable instructions stored on computer readable media or computer readable storage devices such as one or more non-transitory memories or other type of hardware-based storage devices, either local or networked. Further, such functions correspond to modules, which may be software, hardware, firmware or any combination thereof. Multiple functions may be performed in one or more modules as desired, and the embodiments described are merely examples. The software may be executed on a processing circuitry that may include one or more of a digital signal processor, application specific integrated circuit (ASIC), field programmable gate array (FPGA), single core or multi-core microprocessor, or other type of processor operating on a computer system, such as a personal computer, server or other computer system, turning such computer system into a specifically programmed machine.
The embodiments described below address the increasing number of recognition models that are available to AI platforms. These embodiments employ an entity-knowledge database, such as an entity-knowledge graph database, to organize the models so that users may arbitrarily describe the objects to be recognized in a data set and the system may automatically select one model or a set of models to perform entity recognition on the data set based on that description. Example entity-knowledge databases may include or be generated from commercially available knowledge databases such as DBPEDIA, Microsoft® Satori®, and/or Google® Graph®. For example, a commercial AI system may employ its own dedicated knowledge database similar to one of the commercial databases described above. In this instance, the entity-knowledge graph database may be the dedicated knowledge database. In another example, the entity-knowledge database may be generated from one or more of the commercial databases to provide a database focused on a particular recognition task or set of recognition tasks.
Some embodiments described below organize models for recognition of objects in a data set using an AI platform in such a way that all recognition models are stored in a model plane of a data store. The models in the model plane are linked to an entity-knowledge database such that an ontology inherent in the knowledge database may be used to identify appropriate recognition models to be used for a received query from a flexible and/or approximate description of the object to be recognized in the query.
Some embodiments described below automatically select a single recognition model or orchestrate use of a set of recognition models to improve the recognition of objects in an arbitrary data set. These embodiments may use a knowledge database and/or automatically determined conceptual relationships among objects to select the model or models to be used in the recognition process.
The embodiments below are described in the context of an AI image recognition system in which a user provides or indicates a data set including an image, set of images or video to be searched and also provides a query asking if a particular object or class of objects is represented in the data set. The query may be a specific query, such as, “does the data set include a German Shepard” or it may be a more general query, such as, “identify all of the animals in the data set.”
The system 100 also includes a recognition model ingestion process 108 and a data store 110, including a model repository 112 and an entity-knowledge graph database 114. The example model repository 112 includes five recognition models, labeled 1-5. The example entity knowledge graph database 114 includes one first level entity, labeled A, two second level entities, labeled B and C and four third-level entities labeled D, E, F, and G. The nodes of the database are arranged ontologically such that the granularity of the entities represented by the nodes A-G increases from top to bottom. Thus, nodes B and
C represent respectively different subsets of node A, nodes D and E represent respective subsets of node B and nodes F and G represent respective subsets of node C.
As described below with reference to
As shown in
The system 100 includes a block 118 that receives queries. The data sets associated with the queries may be provided to the model selection and serving process 126. As described above, in the illustrated examples, a data set may be an image file or video file and an example query may be to determine whether an object or class of objects is represented in the data set. A block 120 of the system 100 determines whether the queried object(s) exist in the entity-knowledge graph 114. If the object(s) do not exist in the knowledge graph 114, the example system 100 includes a process 122 that accesses a graph embedding process 124, as described below with reference to
In the second environment shown in
In the example shown in
In operation, each of the nodes shown in the entity-knowledge graph database 340 may be linked to one or more recognition models (not shown in
Using the database 340, a query to find a dog in the image 302 may employ ontological knowledge to determine that a dog is an animal and an animal is an entity. A search of the database 344 a model corresponding to “dog” may follow the path from node 350 to node 354 to node 364. The system would then determine whether node 364 is coupled to a recognition model and, if it is, return the recognition model code 104 to the model selection and serving block 126, to be applied to determine whether the image 302 includes a dog. In this instance, processing the image 302 with the dog model 364 identifies the dog 306 with a confidence value of 0.997.
The system 100 may recognize more than one object in a data set. For example, the image 302, shown in
Once the entities in the image 302 have been isolated and classified, the system 100 may use the broad classifications returned by the model/service to search the knowledge graph database 340 for nodes connected to the broad entity node to determine whether more specific entities may be identified. For example, if the recognition model/service associated with the node 350 only isolates the entities and generates the bounding boxes 304, 306, 308, 310, and 312, the system 100 may process each of the bounded images indicated by the bounding boxes 304, 306, 308, 310, and 312 using each of the second level recognition models associated with the nodes 352, 354, and 356. For example, each of the bounded images may be processed by the model associated with vehicle node 356 to identify the pick-up truck 304 in the image 302 with a confidence value of 1.000, as indicated by the dashed line 320. Similarly, the system 100 may process each the bounded images using the recognition model 102 associated with animal node 354 and identify the dog 306, horse 308, person 310, and person 312 as animals Tracing farther down the entity-knowledge database 340, the system 100 may process the bounded images identified as animals using the recognition models 102 associated with the person node 352, horse node 362, and dog node 364, to identify the person 310, as indicated by the dashed line 328, with a confidence value of 0.992, the person 312, as indicated by the dashed line 330, with a confidence value of 0.979, the horse 308, as indicated by the dashed line 326, with a confidence value of 0.993, and the dog 306, as indicated by the dashed line 324, with a confidence value of 0.997.
The ontological structure of the knowledge graph database 340 may increase the accuracy of the system 100. For example, applying only the bounded images 304, 306, 308, 310, and 312 to the second level recognition models corresponding to nodes 352, 354 and 356 removes extraneous elements of the image 302 from the recognition process. Similarly, the second level recognition models further filter the bounded images so that the bounded image 304 for the pick-up truck 304 is not applied to the models 364, 362 and 352 used to recognize the dog 306, horse 308, person 310, and/or person 312.
The recognition models 102 may be generated in many different ways. In one method, an expert defines the attributes of the model 102, for example, the features of a feature vector used to recognize the target objects, and then trains the model 102 using labeled training data to recognize the target objects. In another method, the model 102 may be generated by applying the labeled training data to a neural network which adjusts its coefficients of the neural network nodes using back propagation to improve its ability to recognize the target objects. However the recognition models 102 are generated, the system 100 shown in
At block 402, the system 100 obtains the available recognition models 102 and, at block 404 stores the recognition models 102 in the model repository 112 using the model ingestion process 108. The process 108 stores the models 102, including the model code 104 and/or the annotations 105 and parameters 106 into the model repository 112 of the data store 110. In some embodiments, the model repository 112 may include an indexed or unindexed database configured to store multiple recognition models 102. As shown in
At block 406, the example process 400 links the models 1-5 stored in the model repository 112 to nodes in the entity knowledge graph database 114. For example, as the model ingestion process 108 is storing the models 102 into the model repository 112, the knowledge graph update process 116 may search the entity-knowledge graph database 114, using the model annotations 105 for the models 102, to identify nodes that correspond to the model annotations 105. The corresponding nodes correspond to types of entities recognized by the models 102 or that have auxiliary data (e.g., feature data) that matches the model annotations 105 of the respective models 102. When the knowledge graph update process 116 identifies one or more nodes in the entity knowledge graph based on the model annotations 105 of a particular recognition model 102, it may store a link to the model 102 in the identified node(s) of the entity-knowledge graph database 114. When the annotation data is matched to the auxiliary data of the models 102, the knowledge graph update process 116 may link the recognition model 102 in the model repository 112 to a node of the entity-knowledge graph database 114 only when there are multiple matches between the model annotations 105 and the auxiliary data associated with the node of the entity-knowledge graph database 114.
Blocks 402, 404, and 406 are executed until all of the recognition models 102 available to the system 100 have been stored into the model repository 112 and linked to nodes of the entity-knowledge graph database 114. At block 408, the process 400 receives a query for a current data set or receives a new data set and a query for the new data set. Block 408 also extracts query objects using the query entities process 118 of
For example, the database 500 includes a first level node 502 that may be linked to a recognition model for all animals. Second level nodes include a node for pet, 504; carnivore, 506; and bird, 508 that are ontological descendants of the animal node 502. Third level nodes ontologically coupled to the pet node 504 include dog, 520; cat, 526; and Canary, 512. Similarly, third level nodes ontologically coupled to the carnivore node 506 include canid, 510; felid, 514; and raptor 516.
The third level nodes ontologically coupled to the bird node 508 include the Canary node 512; a raptor node 516; and an ostrich node 518. The example entity-knowledge database 500 also includes fourth level nodes ontologically coupled to the third level nodes. These include a poodle node 536, and a Labrador node, 538, linked to the dog node, 520; the dog node 520, a wolf node 522, and a jackal node 524, linked to the canid node 510; a tabby node 540 and Siamese node 542, linked to the cat node 526; the cat node 526, a lion node 528, and a tiger node 530, linked to the felid node 514; and a falcon node 532 and eagle node 534 linked to the raptor node 516.
The ontology may be used to identify objects that are similar to an object that is found in the entity-knowledge graph database 114 but is not directly linked to a recognition model 102. Graph embedding may be used to identify objects that are conceptually similar to an object that is not found in the entity-knowledge graph database 114. For example, when the object extracted from the query is “Doberman Pinscher,” block 454 does not find the object in the entity-knowledge graph database 500, shown in
For example, entity h may correspond to the Doberman Pinscher which is in the cluster 552 with other domesticated dogs. The entity t may be a wolf in the cluster 554 with other wild canids. The clusters 552 and 554 share features and also have features that separate them. The shared features may define the relationship r. Examples of such features may be “quadruped,” “carnivore,” and “social.” Using these features to relate the two clusters may allow the process 400 to identify several models 102 in the entity-knowledge database 500 that relate to the Doberman Pinscher object. These include the dog node 520 and the nodes pet 504, poodle 536, and Labrador 538 that are ontologically coupled to the dog node 520. Due to the relationship defined by the graph embedding process 124, the identified nodes may also include the canid node 510, wolf node 522, and jackal node 524. Thus, although the entity-knowledge graph database 500 does not include Doberman Pinscher as a node, the process 400 may identify six other nodes having recognition models 102 that may be used to provide an indication of whether the image data set includes an image of a Doberman Pinscher.
Returning to
If, at block 602, the process 600 determined that the retrieved recognition models are not directly linked to the target object(s) extracted from the query, the process 600 has received multiple related recognition models indirectly linked to the target object(s). In this instance, block 606 runs the multiple models 102 on the relevant entities in the data set and combines the results. Results may be combined, for example, by averaging the results or by selecting a result indicating a highest probability of detection.
The results determined by block 604 or block 606 are processed by block 608 to determine if the results indicate presence of the target object(s) in the data set. This test, for example, may compare the confidence value returned by the recognition model 102 to a threshold and indicate presence of the target object(s) when the confidence value exceeds the threshold. If the confidence value exceeds a threshold, the process 600, at step 610, returns an indication that the target object(s) has been recognized. This result may be returned with data identifying the target object(s) and the corresponding confidence values. If the confidence value is less than the threshold, block 612 returns an indication that the target object(s) has not been recognized.
One example computing device in the form of a computer 700 may include a processing unit 702, memory 703, removable storage 710, and non-removable storage 712. Although the example computing device is illustrated and described as computer 700, the computing device may be in different forms in different embodiments. For example, the computing device may instead be a smartphone, a tablet, smartwatch, or other computing device including the same or similar elements as illustrated and described with regard to
Memory 703 may include volatile memory 714 and non-volatile memory 708. Computer 700 may include—or have access to a computing environment that includes—a variety of computer-readable media, such as volatile memory 714 and non-volatile memory 708, removable storage 710 and non-removable storage 712. Computer storage includes random access memory (RAM), read only memory (ROM), erasable programmable read-only memory (EPROM) and electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technologies, compact disc read-only memory (CD ROM), digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium capable of storing computer-readable instructions.
Computer 700 may include or have access to a computing environment that includes input interface 706, output interface 704, and a communication interface 716. Output interface 704 may provide an interface to a display device, such as a touchscreen, that also may serve as an input device. The input interface 706 may provide an interface to one or more of a touchscreen, touchpad, mouse, keyboard, camera, one or more device-specific buttons, one or more sensors integrated within or coupled via wired or wireless data connections to the computer 700, and other input devices. The computer 700 may operate in a networked environment using a communication connection to connect to one or more remote computers, such as database servers. The remote computer may include a personal computer (PC), server, router, network PC, a peer device or other common network node, or the like. The communication connection may include a local area network (LAN), a wide area network (WAN), cellular, Wi-Fi, Bluetooth, or other networks 208.
Computer-readable instructions stored on a computer-readable medium are executable by the processing unit 702 of the computer 700. A hard drive, CD-ROM, RAM, and flash memory are some examples of articles including a non-transitory computer-readable medium such as a storage device. The terms computer-readable medium and storage device do not include carrier waves to the extent carrier waves are deemed too transitory. Storage can also include networked storage such as a storage area network (SAN) indicated at 720.
Although a few embodiments have been described in detail above, other modifications are possible. For example, the logic flows depicted in the figures do not require the particular order shown, or sequential order, to achieve desirable results. Other steps may be provided, or steps may be eliminated, from the described flows, and other components may be added to, or removed from, the described systems. Other embodiments may be within the scope of the following claims.
This application is a continuation application of International Application No. PCT/CN2019/090111, filed Jun. 5, 2019, which claims the benefit of priority to U.S. Provisional Application No. 62/734,016, filed Sep. 20, 2018, and titled “Knowledge-Based Management of Recognition Models in Artificial Intelligence Systems”, the benefit of priority of each of which is claimed herein, and which applications and publication are hereby incorporated herein by reference in their entirety.
Number | Date | Country | |
---|---|---|---|
62734016 | Sep 2018 | US |
Number | Date | Country | |
---|---|---|---|
Parent | PCT/CN2019/090111 | Jun 2019 | US |
Child | 17249584 | US |