A non-transitory computer readable storage medium coupled to a processor, the non-transitory computer readable storage medium including instructions that, when executed by the processor, cause the processor to:
- provide a user interface for display via an application of a client device;
- generate a library of training drawings;
- map a concept of each training drawing to a training vector;
- associate a concept of a plurality of predetermined concepts to each training vector;
- detect a first input query in an input section of the user interface, the first input query identifying a representation of a first user drawing, the first user drawing representing at least a portion of a target input drawing;
- determine, in response to detecting the first input query, whether the target input drawing represents a first concept using a probability distribution of concepts;
- initiate a first search for images relevant to the first concept if the target input drawing is determined to represent the first concept;
- determine a collection of images is relevant to the first concept;
- determine a subset of the collection of images is associated with the first concept;
- map the first concept to a cluster of training drawings having a cluster identifier that matches the first concept,
- wherein the cluster identifier is a semantic concept corresponding to the cluster of training drawings,
- wherein the subset of the collection of images includes an image data from the cluster of training drawings, and
- wherein the image data is indicative of how users draw semantic concepts;
- compare, in response to a determination that the subset is associated with the first concept, a feature vector of multiple images in the subset of the collection of images to a feature vector of the target input drawing;
- store, in a memory associated with the library of training drawings and prior to receiving a second input query of the first user drawing, a concept of the target input drawing for offline training in determining a second concept of the first user drawing that combines the first input query and the second input query,
- wherein the offline training is performed prior to receiving the second input query, and
- wherein the second input query is received subsequently to the first input query;
- generate first search results associated with the first search using the first user drawing as the target input drawing,
- wherein the first search results are generated based on comparison results of the comparison between the feature vector of the target input drawing and a feature vector of an image in the subset of the collection of images;
- provide, for display, the first search results in an output section of the user interface;
- detect the second input query in the input section, the second input query identifying a representation of the first user drawing as a combination of the first input query and the second input query, the second input query being detected subsequent to the first input query;
- determine, in response to detecting the second input query, whether a second user drawing as a combination of the first input query and the second input query modifies the target input drawing from the first concept to the second concept using the probability distribution of concepts;
- initiate a second search for images relevant to the second concept if the second user drawing is determined to modify the target input drawing to the second concept, otherwise the second search is initiated to search for images relevant to the first concept;
- generate second search results associated with the second search using the second user drawing as the target input drawing;
- and
- provide, for display, the second search results in the output section.