Patent Description:
Aspects of the present disclosure generally relate to actor and action localization and, more particularly, to systems and methods for localizing an actor and an action in a sequence of frames based on a natural language query.

An artificial neural network, which may comprise an interconnected group of artificial neurons (e.g., neuron models), is a computational device, or represents a method to be performed by a computational device. An artificial neural network (ANN) may track a target over a sequence of frames, such as a video. For example, a target tracker may predict the location of a target over a video sequence given an observation of the target at an initial frame of the sequence. Target tracking (e.g., object tracking) may be used for various applications in internet protocol (IP) cameras, Internet of Things (IoT), autonomous driving, and/or service robots. The object tracking applications may improve the understanding of object paths for planning. For example, during autonomous driving, action localization is used to avoid collisions with pedestrians and cyclists.

Conventional object localization systems localize an object in a single image (e.g., a frame). Based on the localization in a first frame of a video, the object may be tracked through multiple frames. In some cases, conventional object localization systems localize an object based on a natural language query. For example, a conventional object localization system may receive a query: "woman in a red shirt. " In this example, based on the query, one or more women in red shirts are identified within an image. Specifically, the conventional object localization system may localize (e.g., identify) and classify (e.g., label) the one or more women in red shirts. Based on the classification and localization, the one or more women may be tracked through subsequent frames. The identified actor (e.g., object), such as the one or more women in a red shirt, may be identified by a bounding box that annotates the location of the identified actor.

Conventional object localization systems are limited to localizing an object in a first frame (e.g., single image) and then localizing the object through subsequent frames based on the localization in the first frame. In some cases, the localization may fail when two or more objects with a similar appearance are present in a frame of the video. For example, two women in red shirts may be present in a frame. In this example, for a query, such as "woman in a red shirt that is running," conventional object localization systems cannot determine, from only a single frame, whether one woman is walking and whether the other woman is running. Thus, in this example, the localization may fail (e.g., identify the incorrect woman).

It is desirable to improve systems that rely on a single image (e.g., frame) to localize an actor and an action based on a query. Specifically, it is desirable to improve object localization systems to localize objects in a video based on a natural language query by discriminating actions performed by the objects.

<NPL>, suggest jointly considering various types of actors undergoing various actions. Two goals are posed: first, to formulate the general actor-action understanding problem and instantiate it at various granularities, and second, to assess whether or not it is beneficial to jointly consider actors and actions in this new problem-space. The new Actor-Action-Dataset (A2D dataset) and the actor-action problem formulation are described.

<NPL>, suggest tracking a target object in a video, wherein, rather than specifying the target in the first frame of a video by a bounding box, it is proposed to track the object based on a natural language specification of the target, which provides a natural human-machine interaction as well as a means to obtain tracking results. Three variants of tracking by language specification are defined: one relying on lingual target specification only, one relying on visual target specification based on language, and one leveraging their joint capacity. Two tracking datasets are extended with lingual descriptions and experiments are reported. Finally, a new tracking scenarios in surveillance and other live video streams is sketched.

<NPL>), disclose an end-to-end trainable recurrent and convolutional network model that jointly learns to process visual and linguistic information. In the model, a recurrent LSTM network is used to encode the referential expression into a vector representation, and a fully convolutional network is used to a extract a spatial feature map from the image and output a spatial response map for the target object. On a benchmark dataset it is demonstrated that the model can produce quality segmentation output from the natural language expression.

<NPL>, relates to the problem of image segmentation given natural language descriptions, i.e. referring expressions. Convolutional multimodal LSTM is proposed to encode sequential interactions between individual words, visual information, and spatial information. The intermediate output of the proposed multimodal LSTM approach is analyzed and empirically explained how this approach enforces an allegedly more effective word-to-image interaction.

In one aspect of the present disclosure, a method for pixel-wise localization of an actor and an action in a sequence of frames as recited in claim <NUM> is disclosed.

Another aspect of the present disclosure is directed to an apparatus for pixel-wise localization of an actor and an action in a sequence of frames as recited in claim <NUM>.

In another aspect of the present disclosure, a non-transitory computer-readable medium having instructions recorded thereon for pixel-wise localization of an actor and an action in a sequence of frames as recited in claim <NUM> is provided. The instructions, when executed by a processor, cause the processor to carry out the method of the aforementioned aspect.

Based on the teachings, one skilled in the art should appreciate that the scope of the disclosure is intended to cover any aspect of the disclosure, whether implemented independently of or combined with any other aspect of the disclosure. For example, an apparatus may be implemented or a method may be practiced using any number of the aspects set forth. In addition, the scope of the disclosure is intended to cover such an apparatus or method practiced using other structure, functionality, or structure and functionality in addition to or other than the various aspects of the disclosure set forth. It should be understood that any aspect of the disclosure disclosed may be embodied by one or more elements of a claim.

Although particular aspects are described herein, many variations and permutations of these aspects fall within the scope of the disclosure. Although some benefits and advantages of the preferred aspects are mentioned, the scope of the disclosure is not intended to be limited to particular benefits, uses or objectives. Rather, aspects of the disclosure are intended to be broadly applicable to different technologies, system configurations, networks and protocols, some of which are illustrated by way of example in the figures and in the following description of the preferred aspects. The detailed description and drawings are merely illustrative of the disclosure rather than limiting, the scope of the disclosure being defined by the appended claims.

Aspects of the present disclosure are directed to segmenting visual objects that are performing actions in a sequence of frames (e.g., video) in response to a natural language query, such as "the person in the white shirt running with a dog" (see <FIG>). In one configuration, actor and action localization combines both visual information and language information to perform pixel-wise segmentation. In this configuration, dynamic filters are generated based on the natural language query. The dynamic filters may be convolved with each frame of the sequence of frames to perform pixel-wise segmentation. The action and the actor may be localized based on the pixel-wise segmentation. An object that is performing an action, such as a jumping man, a flying bird, or a moving car, may be referred to as an actor.

Joint actor and action inference improves an object localization system in comparison to independent segmentation of an actor and an action, as performed in conventional object localization systems. That is, conventional object localization systems perform segmentation from a fixed set of predefined actor-action pairs. Conventional object localization systems are also limited to identifying actors with a bounding box. The pixel-level segmentation provides a finer granularity in comparison to annotating the actor with a bounding box.

That is, rather than annotating an area around an object with a bounding box, aspects of the present disclosure identify pixels associated with an object of interest (e.g., actor). The pixel-level segmentation of the actor and the actor's action improves an understanding of an actor's actions inside a localization tube (see <FIG>). The improved understanding improves the spatio-temporal localization of the actor within the sequence of frames. Localization refers to identifying an actor's location within each frame.

Conventional object localization systems (e.g., conventional vision and language systems) perform tasks such as object retrieval, person search, and object tracking. For object segmentation based on a sentence, conventional object localization systems use a long short-term memory (LSTM) network to encode an input sentence into a vector representation. Conventional object localization systems may also use a fully convolutional network to extract a spatial feature map from an image and to output an upsampled response map for the target object. A response map is generated by convolving a visual representation of an image with filters. The visual representation may be downsampled. Therefore, the response map may be upsampled to dimensions of the image.

For object tracking from a sentence, some conventional object localization systems identify a target from a sentence and track the identified target object throughout a video. The target may be identified without specifying a bounding box. In these conventional object localization systems, a convolutional layer dynamically adapts visual filters based on the input sentence. That is, the textual embedding convolution is generated before the matching.

For pixel-wise segmentation from a sentence, aspects of the present disclosure use an end-to-end trainable solution that embeds text and images into a joint model. In contrast to conventional object localization systems, aspects of the present disclosure use a fully convolutional pixel-level model (e.g., encoder-decoder neural architecture) instead of an LSTM network. The fully convolutional model may use dynamic filters. In one configuration, the model segments an actor and the actor's action in a video. That is, an actor and a corresponding action may be segmented in response to a natural language query (e.g., sentence). To improve training, known datasets may be extended to include textual sentences describing the actors and actions in a video.

To perform actor and action segmentation in a video, conventional object localization systems use the Actor-Action Dataset (A2D) that includes a fixed vocabulary, such as a fixed vocabulary with a number of actor-action pairs. The conventional object localization systems build a multi-layer conditional random field model and assign a label from an actor-action product space to each supervoxel from a video. A supervoxel refers to an area of an image that is larger than a conventional voxel. For example, a voxel may be one pixel while a supervoxel may be multiple pixels. Some conventional object localization systems use a grouping process to add long-ranging interactions to the conditional random field. For example, a multi-task ranking model may be used with supervoxel features to perform weakly supervised actor-action segmentation using only video-level tags as training samples. As another example, rather than relying on supervoxels, a multi-task network architecture jointly trains an actor and action detector for a video. In the aforementioned conventional object localization systems, bounding box detections may be extended to pixel-wise segmentations by using segmentation proposals.

Conventional object localization systems are limited to model interactions between actors and actions from a predefined set of fixed label pairs. In contrast, aspects of the present disclosure model a joint actor and action space using an open set of labels that are not limited by label pairs. The model of the present disclosure may distinguish between fine-grained actors in the same super-category. For example, a bird may be a super-category and a fine-grained actor may be a specific type of bird, such as a parrot or a duck. Pairs that are outside of the vocabulary may also be segmented. Additionally, rather than generating intermediate supervoxels or segmentation proposals for a video, a pixel-level model may use an encoder-decoder neural architecture that is end-to-end trainable.

Conventional object localization systems may localize a human actor from an image or video based on a sentence. In some conventional object localization systems, a person description dataset is used with sentence annotations and person samples from existing person re-identification datasets. A neural network of a conventional object localization system may capture word-image relations and estimate the affinity between a sentence and an image of a person. The neural network may also perform a spatio-temporal person search in a video. Finally, the neural network may supplement numerous video clips from a dataset, such as an ActivityNet dataset, with person descriptions.

In one configuration, existing datasets, such as A2D and joint-annotated human motion database (J-HMDB), are supplemented with sentence descriptions. Still, the sentence descriptions are supplemented for actor and action segmentation. Where conventional object localization systems use sentences describing human actors for action localization in a video, aspects of the present disclosure generalize to actions performed by any actor. Additionally, in contrast to conventional object localization systems that simplify the localization to a bounding box around the human actor of interest, aspects of the present disclosure output a pixel-wise segmentation of both the actor and the action in a video. Rather than placing a box around an area corresponding to the actor and the action, the pixel-wise segmentation identifies pixels that correspond to both the actor and the action.

Some conventional object localization systems generate a set of action tube proposals, encode each action tube proposal with object classifier responses, and compute a similarity between the high-scoring object categories inside an action proposal and the action query. Rather than relying on action proposals and object classifiers, some conventional object localization systems only use object detectors, enabling a query for spatio-temporal relations between human actors and objects. These conventional object localization systems generate bounding boxes around actions by human actors.

Conventional object localization systems retrieve a specific temporal interval containing actions via a sentence. Other conventional object localization systems use a language input by removing all the action classes associated to a particular actor and transfer the knowledge from the similar actions associated to other actors. For example, these conventional object localization systems train a model for particular actions by an actor, such as a walking cat and a walking adult, and evaluate the transferred knowledge to other actors, such as a walking dog. That is, conventional object localization systems transfer knowledge based on known actor and action classes.

In contrast to conventional object localization systems, aspects of the present disclosure are directed to pixel-wise segmentation for actions performed by an actor. The pixel-wise segmentation may be based on spatio-temporal segmentation from a sentence. Aspects of the present disclosure also transfer knowledge for unknown actor and action classes.

<FIG> illustrates an example implementation of a system-on-a-chip (SOC) <NUM>, which may include a central processing unit (CPU) <NUM> or a multi-core CPU configured to perform spatio-temporal action and actor localization in accordance with certain aspects of the present disclosure. Variables (e.g., neural signals and synaptic weights), system parameters associated with a computational device (e.g., neural network with weights), delays, frequency bin information, and task information may be stored in a memory block associated with a neural processing unit (NPU) <NUM>, in a memory block associated with a CPU <NUM>, in a memory block associated with a graphics processing unit (GPU) <NUM>, in a memory block associated with a digital signal processor (DSP) <NUM>, in a memory block <NUM>, or may be distributed across multiple blocks. Instructions executed at the CPU <NUM> may be loaded from a program memory associated with the CPU <NUM> or may be loaded from a memory block <NUM>.

The SOC <NUM> may also include additional processing blocks tailored to specific functions, such as a GPU <NUM>, a DSP <NUM>, a connectivity block <NUM>, which may include fifth generation (<NUM>) connectivity, fourth generation long term evolution (<NUM> LTE) connectivity, Wi-Fi connectivity, USB connectivity, Bluetooth connectivity, and the like, and a multimedia processor <NUM> that may, for example, detect and recognize gestures. In one implementation, the NPU is implemented in the CPU, DSP, and/or GPU. The SOC <NUM> may also include a sensor processor <NUM>, image signal processors (ISPs) <NUM>, and/or navigation module <NUM>, which may include a global positioning system.

The SOC <NUM> may be based on an ARM instruction set. In an aspect of the present disclosure, the instructions loaded into the general-purpose processor <NUM> may comprise code to receive a natural language query describing the action and the actor. The instructions loaded into the general-purpose processor <NUM> may also comprise code to receive the sequence of frames. The instructions loaded into the general-purpose processor <NUM> may further comprise code to localize the action and the actor in the sequence of frames based on the natural language query.

Deep learning architectures may perform an object recognition task by learning to represent inputs at successively higher levels of abstraction in each layer, thereby building up a useful feature representation of the input data. In this way, deep learning addresses a major bottleneck of traditional machine learning. Prior to the advent of deep learning, a machine learning approach to an object recognition problem may have relied heavily on human engineered features, perhaps in combination with a shallow classifier. A shallow classifier may be a two-class linear classifier, for example, in which a weighted sum of the feature vector components may be compared with a threshold to predict to which class the input belongs. Human engineered features may be templates or kernels tailored to a specific problem domain by engineers with domain expertise. Deep learning architectures, in contrast, may learn to represent features that are similar to what a human engineer might design, but through training. Furthermore, a deep network may learn to represent and recognize new types of features that a human might not have considered.

A deep learning architecture may learn a hierarchy of features. If presented with visual data, for example, the first layer may learn to recognize relatively simple features, such as edges, in the input stream. In another example, if presented with auditory data, the first layer may learn to recognize spectral power in specific frequencies. The second layer, taking the output of the first layer as input, may learn to recognize combinations of features, such as simple shapes for visual data or combinations of sounds for auditory data. For instance, higher layers may learn to represent complex shapes in visual data or words in auditory data. Still higher layers may learn to recognize common visual objects or spoken phrases.

Deep learning architectures may perform especially well when applied to problems that have a natural hierarchical structure. For example, the classification of motorized vehicles may benefit from first learning to recognize wheels, windshields, and other features. These features may be combined at higher layers in different ways to recognize cars, trucks, and airplanes.

Neural networks may be designed with a variety of connectivity patterns. In feed-forward networks, information is passed from lower to higher layers, with each neuron in a given layer communicating to neurons in higher layers. A hierarchical representation may be built up in successive layers of a feed-forward network, as described above. Neural networks may also have recurrent or feedback (also called top-down) connections. In a recurrent connection, the output from a neuron in a given layer may be communicated to another neuron in the same layer. A recurrent architecture may be helpful in recognizing patterns that span more than one of the input data chunks that are delivered to the neural network in a sequence. A connection from a neuron in a given layer to a neuron in a lower layer is called a feedback (or top-down) connection. A network with many feedback connections may be helpful when the recognition of a high-level concept may aid in discriminating the particular low-level features of an input.

The connections between layers of a neural network may be fully connected or locally connected. <FIG> illustrates an example of a fully connected neural network <NUM>. In a fully connected neural network <NUM>, a neuron in a first layer may communicate its output to every neuron in a second layer, so that each neuron in the second layer will receive input from every neuron in the first layer. <FIG> illustrates an example of a locally connected neural network <NUM>. In a locally connected neural network <NUM>, a neuron in a first layer may be connected to a limited number of neurons in the second layer. More generally, a locally connected layer of the locally connected neural network <NUM> may be configured so that each neuron in a layer will have the same or a similar connectivity pattern, but with connections strengths that may have different values (e.g., <NUM>, <NUM>, <NUM>, and <NUM>). The locally connected connectivity pattern may give rise to spatially distinct receptive fields in a higher layer, because the higher layer neurons in a given region may receive inputs that are tuned through training to the properties of a restricted portion of the total input to the network.

One example of a locally connected neural network is a convolutional neural network. <FIG> illustrates an example of a convolutional neural network <NUM>. The convolutional neural network <NUM> may be configured such that the connection strengths associated with the inputs for each neuron in the second layer are shared (e.g., <NUM>). Convolutional neural networks may be well suited to problems in which the spatial location of inputs is meaningful.

One type of convolutional neural network is a deep convolutional network (DCN). <FIG> illustrates a detailed example of a DCN <NUM> designed to recognize visual features from an image <NUM> input from an image capturing device <NUM>, such as a car-mounted camera. The DCN <NUM> of the current example may be trained to identify traffic signs and a number provided on the traffic sign. Of course, the DCN <NUM> may be trained for other tasks, such as identifying lane markings or identifying traffic lights.

The DCN <NUM> may be trained with supervised learning. During training, the DCN <NUM> may be presented with an image, such as the image <NUM> of a speed limit sign, and a forward pass may then be computed to produce an output <NUM>. The DCN <NUM> may include a feature extraction section and a classification section. Upon receiving the image <NUM>, a convolutional layer <NUM> applies convolutional kernels (not shown) to the image <NUM> to generate a first set of feature maps <NUM>. As an example, the convolutional kernel for the convolutional layer <NUM> may be a 5x5 kernel that generates 28x28 feature maps. In the present example, because four different feature maps are generated in the first set of feature maps <NUM>, four different convolutional kernels were applied to the image <NUM> at the convolutional layer <NUM>. The convolutional kernels may also be referred to as filters or convolutional filters.

The first set of feature maps <NUM> may be subsampled by a max pooling layer (not shown) to generate a second set of feature maps <NUM>. The max pooling layer reduces the size of the first set of feature maps <NUM>. That is, a size of the second set of feature maps <NUM>, such as 14x14, is less than the size of the first set of feature maps <NUM>, such as 28x28. The reduced size provides similar information to a subsequent layer while reducing memory consumption. The second set of feature maps <NUM> may be further convolved via one or more subsequent convolutional layers (not shown) to generate one or more subsequent sets of feature maps (not shown).

In the example of <FIG>, the second set of feature maps <NUM> is convolved to generate a first feature vector <NUM>. Furthermore, the first feature vector <NUM> is further convolved to generate a second feature vector <NUM>. Each feature of the second feature vector <NUM> may include a number that corresponds to a possible feature of the image <NUM>, such as "sign," "<NUM>," and "<NUM>. " A softmax function (not shown) may convert the numbers in the second feature vector <NUM> to a probability. As such, an output <NUM> of the DCN <NUM> is a probability of the image <NUM> including one or more features.

In the present example, the probabilities in the output <NUM> for "sign" and "<NUM>" are higher than the probabilities of the others of the output <NUM>, such as "<NUM>," "<NUM>," "<NUM>," "<NUM>," "<NUM>," "<NUM>," and "<NUM>". Before training, the output <NUM> produced by the DCN <NUM> is likely to be incorrect. Thus, an error may be calculated between the output <NUM> and a target output. The target output is the ground truth of the image <NUM> (e.g., "sign" and "<NUM>"). The weights of the DCN <NUM> may then be adjusted so the output <NUM> of the DCN <NUM> is more closely aligned with the target output.

To adjust the weights, a learning algorithm may compute a gradient vector for the weights. The gradient may indicate an amount that an error would increase or decrease if the weight were adjusted. At the top layer, the gradient may correspond directly to the value of a weight connecting an activated neuron in the penultimate layer and a neuron in the output layer. In lower layers, the gradient may depend on the value of the weights and on the computed error gradients of the higher layers. The weights may then be adjusted to reduce the error. This manner of adjusting the weights may be referred to as "back propagation" as it involves a "backward pass" through the neural network.

In practice, the error gradient of weights may be calculated over a small number of examples, so that the calculated gradient approximates the true error gradient. This approximation method may be referred to as stochastic gradient descent. Stochastic gradient descent may be repeated until the achievable error rate of the entire system has stopped decreasing or until the error rate has reached a target level. After learning, the DCN may be presented with new images (e.g., the speed limit sign of the image <NUM>) and a forward pass through the network may yield an output <NUM> that may be considered an inference or a prediction of the DCN.

Deep belief networks (DBNs) are probabilistic models comprising multiple layers of hidden nodes. DBNs may be used to extract a hierarchical representation of training data sets. A DBN may be obtained by stacking up layers of Restricted Boltzmann Machines (RBMs). An RBM is a type of artificial neural network that can learn a probability distribution over a set of inputs. Because RBMs can learn a probability distribution in the absence of information about the class to which each input should be categorized, RBMs are often used in unsupervised learning. Using a hybrid unsupervised and supervised paradigm, the bottom RBMs of a DBN may be trained in an unsupervised manner and may serve as feature extractors, and the top RBM may be trained in a supervised manner (on a joint distribution of inputs from the previous layer and target classes) and may serve as a classifier.

Deep convolutional networks (DCNs) are networks of convolutional networks, configured with additional pooling and normalization layers. DCNs have achieved state-of-the-art performance on many tasks. DCNs can be trained using supervised learning in which both the input and output targets are known for many exemplars and are used to modify the weights of the network by use of gradient descent methods.

DCNs may be feed-forward networks. In addition, as described above, the connections from a neuron in a first layer of a DCN to a group of neurons in the next higher layer are shared across the neurons in the first layer. The feed-forward and shared connections of DCNs may be exploited for fast processing. The computational burden of a DCN may be much less, for example, than that of a similarly sized neural network that comprises recurrent or feedback connections.

The processing of each layer of a convolutional network may be considered a spatially invariant template or basis projection. If the input is first decomposed into multiple channels, such as the red, green, and blue channels of a color image, then the convolutional network trained on that input may be considered three-dimensional, with two spatial dimensions along the axes of the image and a third dimension capturing color information. The outputs of the convolutional connections may be considered to form a feature map in the subsequent layer, with each element of the feature map (e.g., <NUM>) receiving input from a range of neurons in the previous layer (e.g., feature maps <NUM>) and from each of the multiple channels. The values in the feature map may be further processed with a non-linearity, such as a rectification, max(<NUM>,x). Values from adjacent neurons may be further pooled, which corresponds to down sampling, and may provide additional local invariance and dimensionality reduction. Normalization, which corresponds to whitening, may also be applied through lateral inhibition between neurons in the feature map.

The performance of deep learning architectures may increase as more labeled data points become available or as computational power increases. Modern deep neural networks are routinely trained with computing resources that are thousands of times greater than what was available to a typical researcher just fifteen years ago. New architectures and training paradigms may further boost the performance of deep learning. Rectified linear units may reduce a training issue known as vanishing gradients. New training techniques may reduce over-fitting and thus enable larger models to achieve better generalization. Encapsulation techniques may abstract data in a given receptive field and further boost overall performance.

<FIG> is a block diagram illustrating a deep convolutional network <NUM>. The deep convolutional network <NUM> may include multiple different types of layers based on connectivity and weight sharing. As shown in <FIG>, the deep convolutional network <NUM> includes the convolution blocks 354A, 354B. Each of the convolution blocks 354A, 354B may be configured with a convolution layer (CONV) <NUM>, a normalization layer (LNorm) <NUM>, and a max pooling layer (MAX POOL) <NUM>.

The convolution layers <NUM> may include one or more convolutional filters, which may be applied to the input data to generate a feature map. Although only two of the convolution blocks 354A, 354B are shown, the present disclosure is not so limiting, and instead, any number of the convolution blocks 354A, 354B may be included in the deep convolutional network <NUM> according to design preference. The normalization layer <NUM> may normalize the output of the convolution filters. For example, the normalization layer <NUM> may provide whitening or lateral inhibition. The max pooling layer <NUM> may provide down sampling aggregation over space for local invariance and dimensionality reduction.

The parallel filter banks, for example, of a deep convolutional network may be loaded on a CPU <NUM> or GPU <NUM> of an SOC <NUM> to achieve high performance and low power consumption. In alternative embodiments, the parallel filter banks may be loaded on the DSP <NUM> or an ISP <NUM> of an SOC <NUM>. In addition, the deep convolutional network <NUM> may access other processing blocks that may be present on the SOC <NUM>, such as sensor processor <NUM> and navigation module <NUM>, dedicated, respectively, to sensors and navigation.

The deep convolutional network <NUM> may also include one or more fully connected layers <NUM> (FC1 and FC2). The deep convolutional network <NUM> may further include a logistic regression (LR) layer <NUM>. Between each layer <NUM>, <NUM>, <NUM>, <NUM>, <NUM> of the deep convolutional network <NUM> are weights (not shown) that are to be updated. The output of each of the layers (e.g., <NUM>, <NUM>, <NUM>, <NUM>, <NUM>) may serve as an input of a succeeding one of the layers (e.g., <NUM>, <NUM>, <NUM>, <NUM>, <NUM>) in the deep convolutional network <NUM> to learn hierarchical feature representations from input data <NUM> (e.g., images, audio, video, sensor data and/or other input data) supplied at the first of the convolution blocks 354A. The output of the deep convolutional network <NUM> is a classification score <NUM> for the input data <NUM>. The classification score <NUM> may be a set of probabilities, where each probability is the probability of the input data including a feature from a set of features.

In one configuration, an actor and action localization model is configured for receiving a natural language query describing an action and an actor. The object tracking model is also configured for receiving a sequence of frames. The object tracking model is further configured for localizing the action and the actor in the sequence of frames based on the natural language query. The model includes a receiving means and/or a localizing means. In one aspect, the receiving means and/or the localizing means may be the general-purpose processor <NUM>, program memory associated with the general-purpose processor <NUM>, memory block <NUM>, local processing units <NUM>, the action and actor localization module <NUM>, processor <NUM>, and or the routing connection processing units <NUM> configured to perform the functions recited. In another configuration, the aforementioned means may be any module or any apparatus configured to perform the functions recited by the aforementioned means.

According to aspects of the present disclosure, a visual representation is generated from a sequence of frames (e.g., a video). The visual representation encodes information corresponding to both an actor and an action, while preserving spatial information that is used for pixel-wise segmentation. In one configuration, a two stream model is used to generate the visual representation (See <FIG>, first stream <NUM> and second stream <NUM>). The model may use two-dimensional (2D) or three-dimensional (3D) filters. In one configuration, the convolutional network considers the spatio-temporal data of the video by using spatio-temporal filters (e.g., 3D filters). The convolutional network may be an inflated 3D (I3D) network. The model may be trained on images from a dataset, such as ImageNet, and videos from a dataset, such as Kinetic.

The I3D network refers to a network with two different 3D networks, each 3D network corresponding to a stream of a two stream architecture. The I3D network repeats the 2D pre-trained weights in the third dimension. In contrast to the single frames of conventional two stream architectures, the spatial stream input of the I3D network includes frames stacked in a time dimension.

In one configuration, prior to inputting frames to the convolutional network, the frames are padded (e.g., zero-padded) to a same size, such as <NUM> × <NUM>. Pixel values of an input (e.g., red, green, blue (RGB) input) may be rescaled. For example, the pixel values may be rescaled between -<NUM> and <NUM>. The optical flow may be determined from an optical flow function. For example, the optical flow function may use a total variation (TV-L1) function that is a minimization of a function including a data term using an L1 norm and a regularization term using the total variation of the flow.

Additionally, the pixel values of a flow input may be truncated and rescaled. For example, the pixel values may be truncated to the range [-<NUM>, <NUM>] and rescaled between -<NUM> and <NUM>. An initial visual feature representation may have a <NUM> × <NUM> spatial size. In one configuration, the output of the inception block of the convolutional network (e.g., I3D network) may be used as a visual feature representation for both the RGB input and the flow input. The inception block may be defined before the last max-pooling layer. The spatial coordinates of each position may be added as extra channels to the visual representation to allow learning spatial qualifiers like "left of" or "above. " L2 normalization may be applied to positions in a spatial feature map to obtain a robust descriptor for each location. For the positions in the spatial feature map, visual features may be concatenated with spatial relative coordinates.

As previously discussed, a natural language expression that describes an actor and an action is received as a query. In one configuration, the query is encoded to take advantage of similarities between different objects and actions from a natural language perspective. That is, the query may be encoded using pre-trained word embedding to improve the understanding of correlations between actors and actions. The model may use pre-trained word embedding to represent each word in the expression. By encoding the query using pre-trained word embedding, the model may be improved because the model may use words that are different from the vocabulary of sentences in the training set. In one configuration, rather than using a long short-term memory (LSTM) network, the natural language expression input is processed with a convolutional neural network, such as a one-dimensional convolutional neural network.

In one configuration, each word of an input sentence is represented as a multi-dimensional vector, such as a <NUM>-dimensional vector, after encoding the query. The embedding may be fixed for all words and may not change during training. Each input sentence may be represented as a concatenation of its individual word representations (e.g., a <NUM>-word sentence is represented by a <NUM> × <NUM> matrix). Each sentence may be padded to have a same size. The size may be a maximum sentence length. The network may include a convolutional layer with a temporal filter size equal to two and with a number of output feature maps as dimensions of the pre-trained word embedding. The convolutional neural network includes a convolutional layer followed by a rectified linear unit (ReLU) activation function and a max-pooling layer to obtain a representation of the convolutional neural network (e.g., text sequence).

Dynamic convolutional filters may be used to perform pixel-wise segmentation from a natural language sentence (e.g., query). In contrast to static convolutional filters that are used in conventional convolutional neural networks, dynamic filters are generated based on the input, such as the encoded sentence representation. The dynamic filters improve the model by transferring textual information to the visual domain. The dynamic filters may be generated for several resolutions to be used with different networks. For example, given a text representation T, dynamic filters f are generated by a single layer perceptron: <MAT> where tanh is hyperbolic tangent function, Wf is a weight, and bf is a bias of the single layer perceptron. The variable f has the same number of channels as a visual representation Vt for the frame at timestamp t. The dynamic filters are convolved with the visual representation Vt to obtain a pixel-wise segmentation response map (St): <MAT>.

A deconvolutional neural network may also be used to up-sample feature maps of the frame after the initial convolution. That is, the deconvolutional neural network transforms the feature maps generated by the initial convolutional neural network. For example, the convolutional neural network may downsample an image to generate feature maps and the deconvolutional neural network may up-sample the feature maps to generate the image. In addition, the deconvolutional neural network may train the model using segmentation masks with a same size as the input videos. In one configuration, the visual representation Vt is upsampled to improve a detection of small objects. The up-sampling may also improve the segmentation predictions, such that the segmentation predictions are smoother (e.g., the edges of the prediction are smoother).

The deconvolutional network may include two blocks. A first block may include a deconvolutional layer and the second block may include a convolutional layer. Dynamic filters of the deconvolutional network may be generated from the natural language query and a visual representation from a previous block. The deconvolutional layer may have a kernel size of eight and a stride size of four. The convolutional layer may have a kernel size of three and a stride of one.

During training, for each training sample, a loss <IMG> is computed for multiple resolutions: <MAT> <MAT> where R is a set of resolutions, and αr is a weight for a specific resolution r. In one configuration, R = {<NUM>, <NUM>, <NUM>} (e.g., <NUM> x <NUM> pixels, <NUM> x <NUM> pixels, and <NUM> x <NUM> pixels).

Pixel-wise loss <MAT> is a logistic loss defined as follows: <MAT> where <MAT> is a response value of the model at pixel (i, j) for a resolution r, <MAT> is a binary label at pixel (i, j) for the resolution r, and Yr is downsampled to a size r x r of a ground truth binary mask. That is, <MAT> is the prediction and <MAT> is the ground truth. The variables i and j are spatial coordinates (e.g., (x, y) coordinates).

As previously discussed, actor and action localization may be used in various applications. <FIG> is a diagram illustrating an example of a hardware implementation for an apparatus <NUM> employing a processing system <NUM> and an action and actor localization module <NUM>. The apparatus <NUM> may be a component of various types of devices or vehicles, such as a car <NUM>, a drone (not shown), or a robotic device (not shown). The devices and vehicles may be autonomous or semi-autonomous.

The action and actor localization module <NUM> may be configured to localize an actor and an action from a video input based on a natural language query. In one configuration, the action and actor localization module <NUM> is configured for receiving a natural language query describing an action and an actor. The action and actor localization module <NUM> may be further configured for receiving a sequence of frames. The action and actor localization module <NUM> may be also configured for localizing the action and the actor in the sequence of frames based on the natural language query. The action and actor localization module <NUM> may include an artificial neural network, such as an I3D convolutional network and a one-dimensional convolutional network.

The processing system <NUM> may be implemented with a bus architecture, represented generally by the bus <NUM>. The bus <NUM> may include any number of interconnecting buses and bridges depending on the specific application of the processing system <NUM> and the overall design constraints. The bus <NUM> links together various circuits including one or more processors and/or hardware modules, represented by the processor <NUM>, the communication module <NUM>, location module <NUM>, sensor module <NUM>, locomotion module <NUM>, and the computer-readable medium <NUM>. The bus <NUM> may also link various other circuits such as timing sources, peripherals, voltage regulators, and power management circuits, which are well known in the art, and therefore, will not be described any further.

The apparatus <NUM> includes the processing system <NUM> coupled to a transceiver <NUM>. The transceiver <NUM> is coupled to one or more antennas <NUM>. The transceiver <NUM> enables communicating with other devices over a transmission medium. For example, the transceiver <NUM> may receive user input via transmissions from a remote device. The processing system <NUM> includes the processor <NUM> coupled to the computer-readable medium <NUM>. The processor <NUM> is responsible for general processing, including the execution of software stored on the computer-readable medium <NUM>. The software, when executed by the processor <NUM>, causes the processing system <NUM> to perform the various functions described for any particular apparatus. The computer-readable medium <NUM> may also be used for storing data manipulated by the processor <NUM> when executing software.

The sensor module <NUM> may obtain measurements via a first sensor <NUM> and/or a second sensor <NUM>. The first sensor <NUM> may be a stereovision sensor. The second sensor <NUM> may be a camera. The first sensor <NUM> and the second sensor <NUM> perform measurements and/or capture images. Of course, the first sensor <NUM> and the second sensor <NUM> are not limited to a stereo-vision sensor and a camera, as other types of sensors, such as, for example, vision, radar, thermal, sonar, and/or lasers are also contemplated for performing measurements.

The output of the first sensor <NUM> and the second sensor <NUM> may be processed by one or more of the processor <NUM>, the communication module <NUM>, location module <NUM>, locomotion module <NUM>, and/or the computer-readable medium <NUM>. As previously discussed, the output from the first sensor <NUM> may obtain depth measurements. Furthermore, the output from the second sensor <NUM> may be processed by the action and actor localization module <NUM>. In one configuration, the output of the first sensor <NUM> and the second sensor <NUM> are transmitted to an external device by the transceiver <NUM>. The first sensor <NUM> and the second sensor <NUM> are not limited to being defined external to the apparatus <NUM>. As shown in <FIG>, the first sensor <NUM> and the second sensor <NUM> may be defined within the apparatus <NUM>.

The location module <NUM> may determine a location of the apparatus <NUM>. The communication module <NUM> may use the transceiver <NUM> to send and receive information, such as the location of the apparatus <NUM>, to an external device. The locomotion module <NUM> may provide locomotion to the apparatus <NUM>. As an example, locomotion may be provided via rotary blades <NUM>. Of course, aspects of the present disclosure are not limited to providing locomotion via rotary blades <NUM> and are contemplated for any other type of component for providing locomotion, such as propellers, wheels, treads, fins, and/or jet engines.

The processing system <NUM> includes an integrating module <NUM> for integrating a depth map with localization information to generate a three-dimensional (3D) map. The processing system <NUM> also includes a planning module <NUM> for planning a motion based on the 3D map, the localization information, and/or a user input. The modules may be software modules running in the processor <NUM>, resident/stored in the computer-readable medium <NUM>, one or more hardware modules coupled to the processor <NUM>, or some combination thereof.

The action and actor localization module <NUM> may control the locomotion module <NUM>. That is, based on a localized action and actor, the apparatus <NUM> may avoid a collision with an object, track an object, or perform other functionality. The action and actor localization module <NUM> may receive a natural language query from the transceiver <NUM>, a first sensor <NUM>, and/or a second sensor <NUM>. In one configuration, the action and actor localization module <NUM> are integrated with the processor <NUM>. The action and actor localization module <NUM> may include an artificial neural network. Furthermore, the action and actor localization information may be transmitted from the action and actor localization module <NUM> to the integrating module <NUM> and/or the planning module <NUM>.

As discussed, the pixel-level segmentation of the actor and the actor's action improves an understanding of an actor's actions inside a localization tube. <FIG> illustrates an example of a localization tube <NUM>. As shown in <FIG>, the tube <NUM> is generated based on the sequence of bounding boxes between an initial frame <NUM> of a sequence of frames and a final frame <NUM> of the sequence of frames. As a location of an action changes between frames, the location of the bounding box corresponding to the action also changes between frames. For example, the location of the action changes from the first frame <NUM> to a second frame <NUM>. Likewise, the location of the action changes from the second frame <NUM> to a third frame <NUM>. The movement of the bounding boxes over the sequence of frames is tracked by the tube <NUM>. A level of uncertainty may alter the tube <NUM>. For example, as shown in <FIG>, the tube <NUM> is smooth when there is low uncertainty in the bounding boxes (e.g., proposed actor locations). As another example, which is not shown in <FIG>, a tube may be sporadic when there is high uncertainty in the bounding boxes.

As discussed above, the tube <NUM> is generated based on the sequence of bounding boxes between an initial frame <NUM> of a sequence of frames and a final frame <NUM> of the sequence of frames. Aspects of the present disclosure provide a finer granularity for the actor's actions inside a localization tube by performing a pixel-wise segmentation.

The segmentation performed by some object localization systems is limited to actor segmentation and is not directed to action and actor segmentation. <FIG> illustrate examples of still image (e.g., frame <NUM>) segmentation performed by vision and language systems. In <FIG>, the object localization system performs image segmentation on the frame <NUM> based on a class of an actor (e.g., horse <NUM>). In this example, both horses <NUM> in the frame <NUM> are segmented.

In <FIG>, the object localization system performs image segmentation on the frame <NUM> based on a query, such as "a horse with a woman in a striped shirt. " In this example, only a horse <NUM> carrying a woman in a striped shirt in the frame <NUM> is segmented. The segmentation identifies the actor corresponding to the class or query. Based on the segmentation at the frame <NUM>, the identified actor may be segmented in subsequent frames. Some object localization systems do not segment both an action and an actor. For example, the segmentation in <FIG> is limited to actor segmentation. Furthermore, the segmentation performed by the object localization systems, such as the segmentation in <FIG>, is not performed for a sequence of frames (e.g., video).

Other object localization systems may perform image localization based on a query. <FIG> illustrates an example of image localization based on a query: "track the woman with the ponytail running. " The localization is performed for a frame (e.g., frame <NUM>). The frame may be referred to a still image obtained from a video. Based on the localization at a first frame <NUM>, the actor <NUM> (e.g., running woman) may be localized in the subsequent frames <NUM>. The localized actor <NUM> is identified by a bounding box <NUM>. The object localization system of <FIG> does not localize an action and an actor <NUM>. In this example, the systems cannot determine whether the woman <NUM> is walking or running as the frame does not convey spatio-temporal information. Rather, based on the appearance of running, the woman <NUM> is localized in response to the query.

<FIG> illustrates an example of segmenting actors and actions according to aspects of the present disclosure. As shown in <FIG>, an actor and a corresponding action are segmented based on a natural language query <NUM>. In a first example 702A, for a sequence of three exemplary frames <NUM>, the natural language query <NUM> is "segment the man in the dark suit standing in the back. " In response to the query, the actor and action localization model localizes (e.g., identifies) a man in a dark suit <NUM> standing in the back.

The man in the dark suit <NUM> is distinguished from the other actors, such as a running man <NUM>, and a dog <NUM>. Specifically, the man in the dark suit <NUM> is distinguished based on the corresponding description (e.g., "dark suit") and the corresponding action (e.g., "standing"). As shown in <FIG>, the pixels corresponding to the localized man in a dark suit <NUM> standing in the back (e.g., the localized action and actor) are distinguished from other pixels in the sequence of three exemplary frames <NUM> of the first example 702A.

In a second example 702B, for the sequence of three exemplary frames <NUM>, the natural language query <NUM> is "segment the dog participating in an agility event. " In response to the query, the actor and action localization model localizes the dog <NUM> participating in an agility event. In this example, the dog <NUM> is distinguished from the other actors <NUM>, <NUM>. Specifically, the dog <NUM> is distinguished based on the corresponding description (e.g., "dog") and the corresponding action (e.g., "participating in an agility event"). As shown in <FIG>, the pixels corresponding to the localized dog <NUM> (e.g., the localized action and actor) are distinguished from other pixels in the sequence of three exemplary frames <NUM>. The pixel distinction shown in <FIG> is for illustrative purposes, the pixel distinction of the present disclosure is not limited to the type of pixel distinction shown in <FIG>.

In a third example 702C, for the sequence of three exemplary frames <NUM>, the natural language query <NUM> is "segment the person with the white shirt running with a dog. " In response to the query, the actor and action localization model localizes the running man <NUM> in the white shirt. In this example, the running man <NUM> is distinguished from the other actors <NUM>, <NUM>. Specifically, the running man <NUM> is distinguished based on the corresponding description (e.g., "person with the white shirt") and the corresponding action (e.g., "running with a dog"). As shown in <FIG>, the pixels corresponding to the running man <NUM> (e.g., the localized action and actor) are distinguished from other pixels in the sequence of three exemplary frames <NUM>.

<FIG> illustrates an example of an actor and action localization model <NUM> according to aspects of the present disclosure. As shown in <FIG>, the actor and action localization model <NUM> is a two stream system. A first stream <NUM> receives a natural language query <NUM> as an input. A second stream <NUM> receives N frames of a video <NUM> as an input. The actor and action localization model <NUM> is configured for localizing an actor and an action in the video <NUM> based on the natural language query <NUM>. The action and actor localization module <NUM> of <FIG> may incorporate the actor and action localization model <NUM>.

As shown in <FIG>, the action and actor localization model <NUM> includes various components. These components may include a convolutional neural network <NUM> to represent expressions, a deep convolutional neural network <NUM> to generate spatial visual representation, dynamic filters <NUM>, <NUM> to perform fully convolutional segmentation, and deconvolutional neural networks 810a, 810b to output pixel-wise segmentation predictions. The convolutional neural network <NUM> may be a component of the first stream <NUM>. Furthermore, the deep convolutional neural network <NUM> may be a component of the second stream <NUM>.

In one configuration, the convolutional neural network <NUM> processes the natural language query <NUM>. The convolutional neural network <NUM> may be a one-dimensional (1D) convolutional neural network including one convolutional layer followed by a rectified linear unit (ReLU) activation function and a max-pooling layer. The convolutional neural network <NUM> obtains a representation for the text sequence of the natural language query <NUM>. That is, the convolutional neural network <NUM> may encode each word of the natural language query <NUM>, such that each word is represented as a multi-dimensional vector.

As discussed, the first set of dynamic filters <NUM> is generated based on the representation of the text sequence. The second set of dynamic filters <NUM> is generated based on the representation of the text sequence query and a visual representation obtained from a pixel-wise segmentation response map 818a, 818b, 818c. The dynamic filters <NUM>, <NUM> may be used for fully convolutional segmentation. Each pixel-wise segmentation response map 818a, 818b, 818c may have a different resolution. For example, the pixel-wise segmentation response maps 818a, 818b, 818c may have a resolution of <NUM> x <NUM>, <NUM> x <NUM>, and <NUM> x <NUM>, respectively.

Furthermore, as shown in <FIG>, N frames of the input video <NUM> may be input to a convolutional neural network <NUM>, such as an inflated 3D (I3D) network. The input video <NUM> may have a <NUM> x <NUM> resolution with three channels (e.g., RGB channels). In one configuration, each frame of the input video <NUM> may be zero-padded to a size of <NUM> x <NUM>. The output of the convolutional neural network <NUM> may be a visual representation <NUM> of each frame of the input video <NUM>. The visual representation <NUM> encodes information corresponding to both an actor and an action, while preserving spatial information. The visual representation <NUM> may also be referred to as a feature map.

Each visual representation <NUM> generated by the convolutional neural network <NUM> is convolved with the first set of dynamic filters <NUM> to obtain the first pixel-wise segmentation response map 818a for each frame. Specifically, the model <NUM> convolves the visual representation <NUM> of each frame with the first set of dynamic filters <NUM> to obtain a first response map 818a. The first response map 818a may be a pixel-wise segmentation response map.

Based on the values for each pixel in the first response map 818a, a label is determined for each pixel. The labels may be determined based on thresholding. For example, if a pixel has a value equal to or greater than zero, the pixel is labeled "<NUM>. " Alternatively, if the pixel has a value that is less than zero, the pixel is labeled "<NUM>. " The model may localize the action and the actor in each frame based on the labels.

After the first stage, one or more first deconvolutional neural networks 810a up-sample the visual representation <NUM> from a previous convolution to generate a first upsampled visual representation 822a. Each set of the second set of filters <NUM> may be generated based on the representation of the text sequence query. The second set of filters <NUM> is generated based on the representation of the text sequence query and a visual representation <NUM>. The first deconvolutional neural network(s) 810a convolves the first upsampled visual representation 822a with the corresponding second set of filters <NUM> to output a second pixel-wise segmentation response map 818b.

Additionally, one or more second deconvolutional neural networks 810b may up-sample the first upsampled visual representation 822a from a previous convolution to generate a second upsampled visual representation 822b. The second deconvolutional neural network(s) 810b convolves the second upsampled visual representation 822b with the corresponding second set of filters <NUM> to output a third pixel-wise segmentation response map 818c. The number of deconvolutional neural networks 810a, 810b of <FIG> are for illustrative purposes. More or fewer deconvolutional neural networks 810a, 810b may be used.

The first deconvolutional neural network(s) 810a and the second deconvolutional neural network(s) 810b may be the same network or different networks. Labels may be applied to the pixels based on each response map 818a, 818b, 818c. The up-sampling improves actor and action detection (e.g., localization). The dynamic filters <NUM>, <NUM> and deconvolutional neural networks 810a, 810b are learnable parts of the action and actor localization model <NUM>, such that they are trained simultaneously. In this case, the dynamic filters <NUM>, <NUM> and deconvolutional neural networks 810a, 810b implicitly depend on each other.

<FIG> illustrates a method <NUM> for pixel-wise action and actor localization according to aspects of the present disclosure. As shown in <FIG>, at block <NUM> an actor and action localization model (e.g., a model) receives a natural language query describing the action and the actor. For example, the query may be in a form of a sentence and may be received via a first user interface. At block <NUM>, the model receives a sequence of frames, for example, a video. The sequence of frames may be received via a second user interface. The first and second user interface may be the same or different.

At block <NUM> the model generates a first set of dynamic filters based on the natural language query. Furthermore, at block <NUM>, the model applies a label to each pixel in each frame based on the first set of dynamic filters. That is, the model convolves a visual representation (e.g., feature map) of each frame with the first set of dynamic filters to generate a response map. The response map applies the label to each pixel. In an optional configuration, at block <NUM>, the model localizes the action and the actor in each frame based on the label.

At block <NUM>, the model up-samples a resolution of a visual representation of the sequence of frames. The up-sampling improves actor and action detection. At block <NUM>, the model generates a second set of dynamic filters based on the natural language query and the upsampled visual representation. Finally, at block <NUM>, the model convolves the upsampled visual representation with the second set of dynamic filters to generate a response map. The response map applies the label to each pixel. The first set of dynamic filters and the second set of dynamic filters may be 2D or 3D filters.

Various resolutions may be used for the visual representations. For example, as shown in <FIG>, the visual representations may have a resolution of <NUM> x <NUM>, <NUM> x <NUM>, and <NUM> x <NUM>. The resolutions are non-limiting and are used as an example. Other resolutions are also contemplated. In an optional configuration, at block <NUM>, the model repeats the up-sampling, the generating, and the convolving for each resolution of the visual representation. That is, blocks <NUM>, <NUM>, and <NUM> are repeated for each resolution of the visual representation.

At block <NUM>, the model localizes the action and the actor in the sequence of frames based on the natural language query. That is, the action and actor may be segmented in the sequence of frames. Finally, in an optional configuration, at block <NUM>, the model controls an apparatus based on the localized action and actor. For example, an apparatus, such as an autonomous vehicle, may be controlled to avoid a collision or navigate to a destination. For example, the model may be defined in an autonomous vehicle, a semi-autonomous vehicle, a robotic device, a mobile device, and/or a stationary computing device. One or more devices may be controlled based on the localized action and actor. For example, the model may be defined in an aerial drone. In this example, the aerial drone may use the model to follow a target, such as a moving tank. In another example, the model may be defined in a security system for an arena. In this example, the model may track a suspect running throughout the arena and control one or more robotic devices to follow the suspect.

In some aspects, the method <NUM> may be performed by the SOC <NUM> (<FIG>). That is, each of the elements of the method <NUM> may, for example, but without limitation, be performed by the SOC <NUM> or one or more processors (e.g., CPU <NUM>) and/or other components included therein.

The means may include various hardware and/or software component(s) and/or module(s), including, but not limited to, a circuit, an application specific integrated circuit (ASIC), or processor. Generally, where there are operations illustrated in the figures, those operations may have corresponding counterpart means-plus-function components with similar numbering.

Additionally, "determining" may include receiving (e.g., receiving information), accessing (e.g., accessing data in a memory) and the like. Furthermore, "determining" may include resolving, selecting, choosing, establishing, and the like.

The various illustrative logical blocks, modules and circuits described in connection with the present disclosure may be implemented or performed with a general-purpose processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array signal (FPGA) or other programmable logic device (PLD), discrete gate or transistor logic, discrete hardware components or any combination thereof designed to perform the functions described herein.

The steps of a method or algorithm described in connection with the present disclosure may be embodied directly in hardware, in a software module executed by a processor, or in a combination of the two. A software module may reside in any form of storage medium that is known in the art. Some examples of storage media that may be used include random access memory (RAM), read only memory (ROM), flash memory, erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), registers, a hard disk, a removable disk, a CD-ROM and so forth. A storage medium may be coupled to a processor such that the processor can read information from, and write information to, the storage medium.

The functions described may be implemented in hardware, software, firmware, or any combination thereof. If implemented in hardware, an example hardware configuration may comprise a processing system in a device. The network adapter may be used to implement signal processing functions. For certain aspects, a user interface (e.g., keypad, display, mouse, joystick, etc.) may also be connected to the bus.

The processor may be responsible for managing the bus and general processing, including the execution of software stored on the machine-readable media. Machine-readable media may include, by way of example, random access memory (RAM), flash memory, read only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable Read-only memory (EEPROM), registers, magnetic disks, optical disks, hard drives, or any other suitable storage medium, or any combination thereof. The computer-program product may comprise packaging materials.

In a hardware implementation, the machine-readable media may be part of the processing system separate from the processor. However, as those skilled in the art will readily appreciate, the machine-readable media, or any portion thereof, may be external to the processing system. By way of example, the machine-readable media may include a transmission line, a carrier wave modulated by data, and/or a computer product separate from the device, all which may be accessed by the processor through the bus interface. Although the various components discussed may be described as having a specific location, such as a local component, they may also be configured in various ways, such as certain components being configured as part of a distributed computing system.

The processing system may be configured as a general-purpose processing system with one or more microprocessors providing the processor functionality and external memory providing at least a portion of the machine-readable media, all linked together with other supporting circuitry through an external bus architecture. Alternatively, the processing system may comprise one or more neuromorphic processors for implementing the neuron models and models of neural systems described herein. As another alternative, the processing system may be implemented with an application specific integrated circuit (ASIC) with the processor, the bus interface, the user interface, supporting circuitry, and at least a portion of the machine-readable media integrated into a single chip, or with one or more field programmable gate arrays (FPGAs), programmable logic devices (PLDs), controllers, state machines, gated logic, discrete hardware components, or any other suitable circuitry, or any combination of circuits that can perform the various functionality described throughout this disclosure.

The machine-readable media may comprise a number of software modules. The software modules include instructions that, when executed by the processor, cause the processing system to perform various functions. Furthermore, it should be appreciated that aspects of the present disclosure result in improvements to the functioning of the processor, computer, machine, or other system implementing such aspects.

A storage medium may be any available medium that can be accessed by a computer. By way of example, and not limitation, such computer-readable media can comprise RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to carry or store desired program code in the form of instructions or data structures and that can be accessed by a computer. Additionally, any connection is properly termed a computer-readable medium.

Claim 1:
A method (<NUM>) of pixel-wise localization of an actor (<NUM>) and an action in a sequence of frames (<NUM>, <NUM>), comprising:
receiving (<NUM>) a natural language query (<NUM>) describing the action and the actor (<NUM>);
receiving (<NUM>) the sequence of frames (<NUM>, <NUM>); and
localizing (<NUM>) the action and the actor (<NUM>) in the sequence of frames (<NUM>, <NUM>) based on the natural language query (<NUM>), in which localizing (<NUM>) the action and the actor (<NUM>) comprises:
generating (<NUM>) a first set of dynamic convolutional filters based on the natural language query (<NUM>);
convolving a visual representation (<NUM>) of each frame of the sequence of frames (<NUM>, <NUM>) with the first set of dynamic convolutional filters to generate a first response map (818a);
applying (<NUM>) a label to each pixel in each frame of the sequence of frames (<NUM>, <NUM>) based on the first response map (818a);
up-sampling (<NUM>) the resolution of the visual representation (<NUM>) of the sequence of frames (<NUM>, <NUM>);
generating (<NUM>) a second set of dynamic convolutional filters based on the natural language query (<NUM>) and the up-sampled resolution;
convolving (<NUM>) the up-sampled visual representation with the second set of dynamic convolutional filters to generate a second response map (818b);
applying a label to each pixel in each frame of the sequence of frames (<NUM>, <NUM>) based on each of the response maps (818a, 818b); and
localizing (<NUM>) the action and the actor (<NUM>) in each frame based on the labels.