Spatial-temporal graph-to-grid learner

The spatial-temporal graph-to-grid learner enhances skeleton-based action recognition by encoding graph-structured data into a grid representation, improving accuracy through spatial-temporal modeling and maintaining compact semantics, addressing the limitations of existing grid-structured solutions.

WO2026152712A1PCT designated stage Publication Date: 2026-07-23INTEL CORP +4
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
INTEL CORP
Filing Date
2025-08-29
Publication Date
2026-07-23

AI Technical Summary

Technical Problem

Current solutions for skeleton-based action recognition in computer vision primarily rely on grid-structured representations within single frames, lacking effective spatial-temporal modeling capabilities, which limits their ability to capture cross-spacetime correlations and results in suboptimal accuracy.

Method used

A spatial-temporal graph-to-grid learner that encodes graph-structured data across multiple frames into a grid representation, enabling joint spatial-temporal modeling by interpolating nodes in space and time, and using convolutional operations to model correlations among skeletal nodes distributed across spatial dimensions and timestamps.

Benefits of technology

This approach significantly improves action recognition accuracy with efficient design, maintaining compact skeleton semantics and requiring negligible additional parameters, applicable to various visual understanding tasks such as skeleton-based gesture recognition and 2D to 3D pose estimation.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2025117754_23072026_PF_FP_ABST
    Figure CN2025117754_23072026_PF_FP_ABST
Patent Text Reader

Abstract

A computer vision system may receive or generate a graph sequence of an object. The graph sequence includes graphs corresponding to different times stamps. A graph includes nodes and edges connecting the nodes. The system may interpolate extra nodes among adjacent nodes in space and time at multiple orders to enrich the expressiveness of the graph sequence and encode the interpolated graph-structured sequence into a grid-patch representation of the object. For instance, the system may perform spatial interpolation and temporal interpolation on the graph sequence through linear transformations to generate an interpolated graph sequence. The system may assign nodes of the interpolated graph sequence to cells of a grid patch to generate a grid representation of the object. A convolution may be operated upon the grid to predict an action of the object.
Need to check novelty before this filing date? Find Prior Art

Description

SPATIAL-TEMPORAL GRAPH-TO-GRID LEARNERCross-Reference to Related Application

[0001] This application claims the benefit of International Application No. PCT / CN2025 / 073229, filed January 20, 2025, and titled “SPATIAL-TEMPORAL GRAPH-TO-GRID LEARNER, ” which is incorporated by reference in its entirety.Technical Field

[0002] This disclosure relates generally to computer vision, and more specifically, graph-based computer vision using a spatial-temporal graph-to-grid learner.Background

[0003] Computer vision tasks include methods for acquiring, processing, analyzing, or understanding visual images to produce information, such as descriptions of objects in the images, decisions, and so on. Many computer vision tasks are performed using graph-structured data. A graph is a data structure comprising a collection of nodes (or vertices) and one or more edges. An edge is a connection of two nodes.Brief Description of the Drawings

[0004] Embodiments can be readily understood by the following detailed description in conjunction with the accompanying drawings. To facilitate this description, like reference numerals designate like structural elements. Embodiments are illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings.

[0005] Figure (FIG. ) 1 is a block diagram of a computer vision system, in accordance with various embodiments.

[0006] FIG. 2 is a block diagram of a spatial-temporal grid generator, in accordance with various embodiments.

[0007] FIG. 3 illustrates a graph representing an object, in accordance with various embodiments.

[0008] FIG. 4 illustrates spatial interpolation of the graph in FIG. 3, in accordance with various embodiments.

[0009] FIG. 5 illustrates a graph sequence, in accordance with various embodiments.

[0010] FIG. 6 illustrates a spatially-temporally interpolated graph sequence, in accordance with various embodiments.

[0011] FIG. 7 illustrates a spatial-temporal grid, in accordance with various embodiments.

[0012] FIG. 8 illustrates a convolution executed on the spatial-temporal grid in FIG. 7, in accordance with various embodiments.

[0013] FIG. 9 illustrates an exemplary process of predicting action, in accordance with various embodiments.

[0014] FIG. 10 illustrates an exemplary CNN, in accordance with various embodiments.

[0015] FIG. 11 is a flowchart showing a method of graph-based computer vision, in accordance with various embodiments.

[0016] FIG. 12 is a block diagram of a computing device, in accordance with various embodiments.Detailed Description

[0017] The last decade has witnessed a rapid rise in AI based data processing, particularly based on DNNs. DNNs are widely used in the domains of computer vision, speech recognition, image, and video processing mainly due to their ability to achieve beyond human-level accuracy. A DNN typically includes a sequence of layers. A DNN layer may include one or more operations, such as convolution, interpolation, layer normalization, batch normalization, SoftMax operation, pooling, elementwise operation, linear operation, nonlinear operation, and so on. These operations are referred to as deep learning operations or neural network operations.

[0018] Neural network operations may be tensor operations. Input or output data of neural network operations may be arranged in data structures called tensors. Taking a convolutional layer for example, the input tensors include an activation tensor (also referred to as “input feature map (IFM) ” or “input activation tensor” ) including one or more activations (also referred to as “input elements” ) and a weight tensor. The weight tensor may be a kernel (a 2D weight tensor) , a filter (a 3D weight tensor) , or a group of filters (a 4D weight tensor) . A convolution may be performed on the input activation tensor and weight tensor to compute an output activation tensor in the convolutional layer.

[0019] A tensor is a data structure having multiple elements across one or more dimensions. Examples of tensors include vector (which is one-dimensional (1D) tensor) , matrix (which is two-dimensional (2D) tensor) , three-dimensional (3D) tensors, four-dimensional (4D) tensors, and even higher dimensional tensors. A dimension of a tensor may correspond to an axis, e.g., an axis in a coordinate system. A dimension may be measured by the number of data points along the axis. The dimensions of a tensor may define the shape of the tensor. A DNN layer may receive one or more input tensors and compute an output tensor from the one or more input tensors. In some embodiments, a 3D tensor may have an X-dimension, a Y-dimension, and Z-dimension. The X-dimension of a tensor may be the horizontal dimension, the length of which may be the width of the tensor; the Y-dimension may be the vertical dimension, the length of which may be the height of the tensor; and the Z-dimension may be the channel dimension, the length of which may be the number of channels. The coordinates of the elements along a dimension may be integers in an inclusive range from 0 to (L-1) , where L is the length of the tensor in the dimension. For instance, the x coordinate of the first element in a row may be 0, the x coordinate of the second element in a row may be 1, and so on. Similarly, the y coordinate of the first element in a column may be 0, the y coordinate of the second element in a column may be 1, and so on. A 4D tensor may have a fourth dimension, which may indicate the number of batches in the operation.

[0020] Skeleton-based action recognition has gained significant attention in various AI applications with great potential in real scenarios, including augmented reality, human-computer interaction, and online education, and so on. The dominant solutions for skeleton-based action recognition usually rely on the non-rigid graph representation of human joints and graph convolution networks (GCNs) . To handle the spatial-temporal modeling in skeleton-based action recognition, currently available solutions mainly focus on introducing temporal modeling capabilities from the perspective of model design. Specifically, GCN-based solutions extend the graph convolutions to 3D graph convolution or spatial-temporal graph convolutions to capture cross-spacetime correlations for action recognition. CNN-based solutions adopt the 3D convolution or its variants such as 2D plus 1D convolutions as in image domain to model the skeleton dynamics across frames or introduced extra temporal models like Long Short-Term Memory (LSTM) model to facilitate the sequence modeling. These solutions typically reply on grid-structured representation which is learnt upon graph-structured data within one single frame.

[0021] Embodiments of this disclosure may improve on at least some of the challenges and issues described above by providing a spatial-temporal graph-to-grid learner that can encode graph-structured data across multiple frames into one grid representation. The spatial-temporal graph-to-grid learner can provide a learnable spatial-temporal grid-structured representation based upon skeletons across multiple frames for improved skeleton-based action recognition. Skeleton-based action recognition may be action recognition conditioned on at least part of human body skeleton. A computer vision system with the spatial-temporal graph-to-grid learner can have joint spatial-temporal modeling capabilities and enable efficient modeling of spatial-temporal correlations in graph-structured data sequence with convolutional operation.

[0022] In various embodiments of this disclosure, a computer vision system may receive or generate a graph sequence of an object. The graph sequence has a temporal sequence and includes graphs corresponding to different times stamps of the temporal sequence. A graph includes nodes and edges connecting the nodes. The nodes and edges of the graph are at the time stamp of the graph. A spatial-temporal graph-to-grid learner may interpolate extra nodes among adjacent nodes in space and time at multiple orders to enrich the expressiveness of the graph sequence and encode the interpolated graph-structured sequence into a grid-patch representation of the object. For instance, the spatial-temporal graph-to-grid learner may perform spatial interpolation and temporal interpolation on the graph sequence through linear transformations. The spatial-temporal graph-to-grid learner can fill a grid patch with nodes of the interpolated graph sequence, which includes spatially and temporally interpolated graph nodes. For instance, the spatial-temporal graph-to-grid learner may assign nodes of the interpolated graph sequence one by one to cells of the grid patch and generate a grid. The grid may be a spatial-temporal grid-patch representation of the object. A convolution is operated upon the spatial-temporal grid-patch representation and can model the correlations among several adjacent skeletal nodes on the grid-patch which may be distributed remotely in spatial dimensions and in different time stamps, improving the spatial-temporal modeling for skeleton-based action recognition. The grid patch representation may be very compact in size compared with images (e.g. 32×32×3) . Instead of being down-sampled as in CNNs, the spatial size of the grid may be fixed during representation learning to maintain the compact skeleton semantics. An action of the object may be predicted based on the output of the convolution operation. The linear transformations for spatial-temporal interpolation and the convolution operation may have learnable weights. The layout of the grid patch may also be learnable for improved action recognition. The learnable weights of the linear transformations and the convolution operation as well as the layout of the grid patch may be determined jointly in an end-to-end manner, enabling the learning of a spatial-temporal grid patch representation with decent layout for action recognition.

[0023] This disclosure provides an efficient and effective encoding technique for graph-structured data sequence. Compared with currently available solutions, the approach in this disclosure can provide significantly better accuracy for action recognition (such as skeleton-based action recognition) with efficient design. This approach can provide promising performance improvement with negligible extra parameters. This approach can be well applied to different visual understanding tasks such as skeleton-based gesture, gait recognition and 2D to 3D pose estimation, and so on. It can also help with providing software stack for deployment of graph-structured data sequence-based application on edge / cloud devices.

[0024] For purposes of explanation, specific numbers, materials and configurations are set forth in order to provide a thorough understanding of the illustrative implementations. However, it can be apparent to one skilled in the art that the present disclosure may be practiced without the specific details or / and that the present disclosure may be practiced with only some of the described aspects. In other instances, well known features are omitted or simplified in order not to obscure the illustrative implementations.

[0025] Further, references are made to the accompanying drawings that form a part hereof, and in which is shown, by way of illustration, embodiments that may be practiced. It is to be understood that other embodiments may be utilized, and structural or logical changes may be made without departing from the scope of the present disclosure. Therefore, the following detailed description is not to be taken in a limiting sense.

[0026] Various operations may be described as multiple discrete actions or operations in turn, in a manner that is most helpful in understanding the claimed subject matter. However, the order of description should not be construed as to imply that these operations are necessarily order dependent. In particular, these operations may not be performed in the order of presentation. Operations described may be performed in a different order from the described embodiment. Various additional operations may be performed or described operations may be omitted in additional embodiments.

[0027] For the purposes of the present disclosure, the phrase “A or B” or the phrase "A and / or B" means (A) , (B) , or (A and B) . For the purposes of the present disclosure, the phrase “A, B, or C” or the phrase "A, B, and / or C" means (A) , (B) , (C) , (A and B) , (A and C) , (B and C) , or (A, B, and C) . The term "between, " when used with reference to measurement ranges, is inclusive of the ends of the measurement ranges.

[0028] The description uses the phrases "in an embodiment" or "in embodiments, " which may each refer to one or more of the same or different embodiments. The terms "comprising, " "including, " "having, " and the like, as used with respect to embodiments of the present disclosure, are synonymous. The disclosure may use perspective-based descriptions such as "above, " "below, " "top, " "bottom, " and "side" to explain various features of the drawings, but these terms are simply for ease of discussion, and do not imply a desired or required orientation. The accompanying drawings are not necessarily drawn to scale. Unless otherwise specified, the use of the ordinal adjectives “first, ” “second, ” and “third, ” etc., to describe a common object, merely indicates that different instances of like objects are being referred to and are not intended to imply that the objects so described must be in a given sequence, either temporally, spatially, in ranking or in any other manner.

[0029] In the following detailed description, various aspects of the illustrative implementations are described using terms commonly employed by those skilled in the art to convey the substance of their work to others skilled in the art.

[0030] The terms “substantially, ” “close, ” “approximately, ” “near, ” and “about, ” generally refer to being within+ / -20%of a target value as described herein or as known in the art. Similarly, terms indicating orientation of various elements, e.g., “coplanar, ” “perpendicular, ” “orthogonal, ” “parallel, ” or any other angle between the elements, generally refer to being within + / -5-20%of a target value as described herein or as known in the art.

[0031] In addition, the terms “comprise, ” “comprising, ” “include, ” “including, ” “have, ” “having” or any other variation thereof, are intended to cover a non-exclusive inclusion. For example, a method, process, device, or DNN accelerator that comprises a list of elements is not necessarily limited to only those elements but may include other elements not expressly listed or inherent to such method, process, device, or DNN accelerators. Also, the term “or” refers to an inclusive “or” and not to an exclusive “or. ”

[0032] The systems, methods and devices of this disclosure each have several innovative aspects, no single one of which is solely responsible for all desirable attributes disclosed herein. Details of one or more implementations of the subject matter described in this specification are set forth in the description below and the accompanying drawings.

[0033] FIG. 1 is a block diagram of a computer vision system 100, in accordance with various embodiments. The computer vision system 100 may use machine learning models to perform computer vision tasks, such as action recognition tasks. The computer vision system 100 includes a graph generator 105, an action predicter 110, a training module 120, validating module 125, and a datastore 130. In other embodiments, alternative configurations, different or additional components may be included in the computer vision system 100. Further, functionality attributed to a component of the computer vision system 100 may be accomplished by a different component included in the computer vision system 100 or by a different system.

[0034] The graph generator 105 generates graphs from inputs to the computer vision system 100. In some embodiments, the computer vision system 100 may receive one or more images of an object as an input. For instance, the computer vision system 100 may receive images that capture one or more actions of the object. The images may be in a temporal sequence. The images may constitute a video. The graph generator 105 may convert each image into a graph. In other embodiments, the computer vision system 100 may receive graphs directly and graph generation by the graph generator 105 may be bypassed.

[0035] To generate a graph, the graph generator 105 may identify key points of the object and connections between the key points. A key point may be a joint of the object. In an example where the object is a person (or part of a person) , the key points may include bonejoints of the person (or part of the person) . In an example, key points may be human bodyjoints, hand joints, and so on. The graph generator 105 may identify the connections between the key points based on the connections of the corresponding bonejoints. The graph generator 105 may convert each identified joint to a node of the graph and convert each identified connection to an edge of the graph. The graph may represent a pose of the object. In an example, a graph may have N joints as G= {V, E, A}, where V is the set of nodes and |V| =N, E is the set of edges and A∈ {0, 1} N×N is the adjacency matrix. When there is an edge between nodes vi and vj, the entry A (i, j) =1; otherwise, A (i, j) =0. The corresponding feature of the graph may be denoted as X∈RN×C and the feature of node vi may be denoted as xi∈RC, where C denotes the feature dimension. In embodiments where there are images of a temporal sequence, the graph generator 105 may convert the images to an input graph sequence that includes graphs of the temporal sequence. The input graph sequence may be a graph representation of an action of an object. Different graphs in the sequence may represent different poses of the object. In an example, the input graph sequence is an input skeleton sequence that represents an action of a person or robot.

[0036] The action predicter 110 predicts actions based on graphs generated by the graph generator 105 or graphs received by the computer vision system 100. The action predicter 110 can perform graph-based computer vision tasks based on progressive learning and deep learning techniques. As shown in FIG. 1, the action predicter 110 includes a spatial-temporal grid generator 140 and a CNN 150. In other embodiments, the action predicter 110 may include fewer, more, or different components.

[0037] The spatial-temporal grid generator 140 may receive an input graph sequence, which includes graphs having a temporal sequence. The spatial-temporal grid generator 140 can learn to generate extra nodes using adjacent nodes in an input graph sequence both in space and time and to assign the resulting skeletal nodes one by one to a grid. The spatial-temporal grid generator 140 may upsample the input graph sequence by interpolating extra nodes in both space and time at multiple orders and encode the interpolated graph sequence into a grid-patch representation. The spatial-temporal grid generator 140 may generate one or more extra nodes based on one or more spatial features of a graph in the input graph sequence. Such extra nodes may be referred to as spatially interpolated nodes. The spatial feature (s) may relate to spatial arrangement of nodes or edges in the graph. The spatial-temporal grid generator 140 may also consider skeleton inputs across multiple timestamps. For instance, the spatial-temporal grid generator 140 may generate one or more extra nodes based on one or more temporal features of the input graph sequence. Such extra nodes may be referred to as temporally interpolated nodes. The temporal feature (s) may relate to time stamps of the graphs or nodes. The timestamp of the nodes and edges of a graph may have the same time stamp as the graph itself. The spatial-temporal interpolation of extra nodes among adjacent nodes at multiple orders can enrich the expressiveness of the skeleton sequence.

[0038] The spatial-temporal grid generator 140 may further encode the spatial-temporal skeleton dynamics into one grid-patch representation. Encoding the interpolated graph-structured sequence into a grid-patch representation can innovatively compress spatiotemporal information onto a plane representation that can be further processed by the CNN 150. In some embodiments, the spatial-temporal grid generator 140 and the CNN 150 may be trained together through an end-to-end training process. Certain aspects of the spatial-temporal grid generator 140 are described below in conjunction with FIG. 2.

[0039] The CNN 150 may receive and process grids generated by the spatial-temporal grid generator 140 to predict actions. The CNN 150 may include one or more convolutional layers. Aconvolution may be performed on a grid generated by the spatial-temporal grid generator 140. In some embodiments, the grid may be used as an input tensor (e.g., an input feature map (IFM) ) of the convolution, and each grid element may be used as an activation of the convolution. The convolution may have a kernel including a plurality of weights. The kernel may have a smaller size than the grid. For instance, the height or width of the kernel may be smaller than the height or width of the grid. The CNN 150 may also include other types of layers, such as linear layers, pooling layers, and so on.

[0040] The CNN 150 may output information indicating conditions of objects. Example conditions may include classification, gesture, pose, movement, action, mood, orientation, interest, traffic-related condition, other types of conditions, or some combination thereof. Conditions of objects may be used in various applications, such as human pose lifting, skeleton-based human action recognition, 3D mesh reconstruction, traffic navigation, social network analysis, recommend system, scientific computing, and so on. Certain aspects of the CNN 150 are described below in conjunction with FIG. 9.

[0041] The training module 120 trains the action predicter 110. In the process of training the action predicter 110, the training module 120 may form a training dataset. The training dataset includes training samples and ground-truth labels. The training samples may be graph-structured data samples, such as graph sequences. Each training sample may be associated with one or more ground-truth labels. A ground-truth label of a training sample may be a known or verified label that answers the problem or question that the action predicter 110 is to be used to answer. For instance, a ground-truth label may indicate a known or verified action.

[0042] In some embodiments, the training module 120 may jointly train the spatial-temporal grid generator 140 and the CNN 150. For instance, the training module 120 may input one or more training samples into the action predicter 110, e.g., directly input into the spatial-temporal grid generator 140. The training module 120 may cause executions of the spatial-temporal grid generator 140 on the one or more training samples and execution of the CNN 150 on the outputs of the spatial-temporal grid generator 140. The training module 120 may update internal parameters of the spatial-temporal grid generator 140 and the CNN 150 based on the outputs of the action predicter 110 and one or more ground-truth labels associated with the one or more training samples. The outputs of the action predicter 110 may be outputs of the CNN 150. By jointly training the spatial-temporal grid generator 140 and the CNN 150 in an end-to-end manner, relationships between features of objects may be automatically learnt.

[0043] In some embodiments, the training module 120 may also form validation datasets for validating performance of the action predicter 110 after training by the validating module 125. A validation dataset may include validation samples and ground-truth labels of the validation samples. The validation dataset may include different samples from the training dataset used for training the action predicter 110. In an embodiment, a part of a training dataset may be used to initially train the action predicter 110, and the rest of the training dataset may be held back as a validation subset used by the validating module 125 to validate performance of the action predicter 110. The portion of the training dataset not including the validation subset may be used to train the action predicter 110.

[0044] The training module 120 also determines hyperparameters for training the action predicter 110. Hyperparameters are variables specifying the training process. Hyperparameters are different from parameters inside the action predicter 110 ( “internal parameters, ” e.g., internal parameters of the spatial-temporal grid generator 140, weights for convolution operations in the CNN 150, etc. ) . In some embodiments, hyperparameters include variables determining the architecture of at least part of the action predicter 110, such as number of hidden layers in the CNN 150, and so on. Hyperparameters also include variables which determine how the action predicter 110 is trained, such as batch size, number of epochs, etc. Abatch size defines the number of training samples to work through before updating the parameters of the action predicter 110. The batch size is the same as or smaller than the number of samples in the training dataset. The training dataset can be divided into one or more batches. The number of epochs defines how many times the entire training dataset is passed forward and backwards through the entire network. The number of epochs defines the number of times that the DL algorithm works through the entire training dataset. One epoch means that each training sample in the training dataset has had an opportunity to update the internal parameters of the action predicter 110. An epoch may include one or more batches. The number of epochs may be 15, 150, 500, 1500, or even larger.

[0045] The training module 120 may train the action predicter 110 for a predetermined number of epochs. The number of epochs is a hyperparameter that defines the number of times that the DL algorithm would work through the entire training dataset. One epoch means that each sample in the training dataset has had an opportunity to update the internal parameters of the action predicter 110. After the training module 120 finishes the predetermined number of epochs, the training module 120 may stop updating the internal parameters of the action predicter 110, and the action predicter 110 is considered trained.

[0046] The validating module 125 verifies accuracy of the action predicter 110 after the action predicter 110 is trained. In some embodiments, the validating module 125 inputs samples in a validation dataset into the action predicter 110 and uses the outputs of the action predicter 110 to determine the prediction accuracy of the action predicter 110. In some embodiments, avalidation dataset may be formed of some or all the samples in the training dataset. Additionally or alternatively, the validation dataset includes additional samples, other than those in the training sets. In some embodiments, the validating module 125 determines may determine an accuracy score measuring the precision, recall, or a combination of precision and recall of the action predicter 110. The validating module 125 may use the following metrics to determine the accuracy score: Precision=TP /  (TP+FP) and Recall=TP /  (TP+FN) , where precision may be how many the action predicter 110 correctly predicted (TP or true positives) out of the total it predicted (TP+FP or false positives) , and recall may be how many the action predicter 110 correctly predicted (TP) out of the total number of objects that did have the property in question (TP+FN or false negatives) . The F-score (F-score=2*PR /  (P+R) ) unifies precision and recall into a single measure.

[0047] The validating module 125 may compare the accuracy score with a threshold score. In an example where the validating module 125 determines that the accuracy score is lower than the threshold score, the validating module 125 instructs the training module 120 to further train the action predicter 110. In one embodiment, the training module 120 may iteratively re-train the action predicter 110 until the occurrence of a stopping condition, such as the accuracy measurement indication that the action predicter 110 may be sufficiently accurate, or a number of training rounds having taken place.

[0048] The datastore 130 stores data received, generated, used, or otherwise associated with the computer vision system 100. For example, the datastore 130 stores the datasets used by the training module 120 and validating module 125. The datastore 130 may also store data generated by the training module 120 and validating module 125, such as the hyperparameters for training the action predicter 110, internal parameters of the action predicter 110, and so on. As another example, the datastore 130 may store graph-structured data to be processed by the action predicter 110 for performing computer vision tasks as well as grid-structured data, feature maps, and labels generated by the action predicter 110. The datastore 130 may also store outputs of the action predicter 110. In the embodiment of FIG. 2, the datastore 130 is a component of the computer vision system 100. In other embodiments, the datastore 130 may be external to the computer vision system 100and communicate with the computer vision system 100 through a network.

[0049] FIG. 2 is a block diagram of a spatial-temporal grid generator 200, in accordance with various embodiments. The spatial-temporal grid generator 200 may receive an input graph sequence, which includes graphs having a temporal sequence. The input graph sequence may be a graph representation of an action of an object. The input graph sequence may be an input skeleton sequence. The spatial-temporal grid generator 200 can upsampled the input graph sequence by interpolating extra nodes in both space and time at multiple orders and encode the interpolated graph sequence into a grid representation. The spatial-temporal grid generator 200 is an example of the spatial-temporal grid generator 140 in FIG. 1.

[0050] As shown in FIG. 2, the spatial-temporal grid generator 200 includes a spatial interpolation module 210, a temporal interpolation module 220, an assignment module 230, atemporal assignment module 240, and a graph-to-grid converter 250. In other embodiments, alternative configurations, different or additional components may be included in the spatial-temporal grid generator 200. Further, functionality attributed to a component of the spatial-temporal grid generator 200 may be accomplished by a different component included in the spatial-temporal grid generator 200 or by a different system.

[0051] The spatial interpolation module 210 performs spatial information interpolation. The spatial interpolation module 210 may be a learnable module that can be trained to generate extra nodes using adjacent joints both in space. In some embodiments, the spatial interpolation module 210 learns to interpolate new graph nodes using spatially adjacent skeletal joints to enrich the graph sequence representation capability.

[0052] In some embodiments, the spatial interpolation module 210 identifies first-order adjacent skeletal joints in a graph. The first-order adjacent skeletal joints are the joint pairs with direct connections, which may be denoted as where k=1, …, n1 and n1 is the number of first-order adjacent joint pairs. The spatial interpolation module 210 may enrich the action representation capabilities of spatial-correlated skeleton joints by interpolating the already-connected joint pairs. In some embodiments, the spatial interpolation module 210 interpolates the connected joint pairs through a linear transformation. The linear transformation may be denoted as: where and are learnable weights for adaptively interpolating the  joint pair The resultingfirst-order interpolated node set is denoted by V (1) .

[0053] The spatial interpolation module 210 may also identify second-order adjacent skeletal joints in the graph. The second-order adjacent skeletal joints are the joint triples with a sequential connection path, which can be denoted as where k=1, …, n2 and n2 is the number of second-order adjacent joint tuples. In some embodiments, the spatial interpolation module 210 linearly interpolates the sequentially connected joint triples through a transformation. The transformation may be denoted as: where and are learnable weights for adaptively  interpolating the joint triple The resulting second-order interpolated node set is denoted by V (2) .

[0054] In some embodiments, the spatial interpolation module 210 mayfurther perform higher-orderspatial interpolation, which may be carried out in the same orsimilar manner as the second-order interpolation. The resulting nth-order spatial interpolated node set is denoted by V (n) with nn elements. In some embodiments, the weights of the spatial interpolation module 210 (such as weights forthe first-order interpolation, second-order interpolation, etc. ) can be learnt in an end-to-end manner with the CNN paired with the spatial-temporal grid generator 200.

[0055] The temporal interpolation module 220 performs temporal information interpolation. The temporal interpolation module 220 may be a learnable module that can be trained to generate extra nodes using adjacent joints in time. In some embodiments, the temporal interpolation module 220 learns to interpolate new graph nodes using temporally adjacent skeletal joints to enrich the graph sequence representation capability.

[0056] The temporal interpolation module 220 may identify temporally first-order adjacent skeletal joints in the input graph sequence. The skeleton graph nodes at current timestamp t may be denoted as The temporally first-order adjacent skeletal joints may be the skeleton graph nodes at the adjacent timestamp (t+1) , which can be denoted by  The temporal interpolation module 220 may enrich the action representation capabilities of temporal-correlated skeleton joints by interpolating the corresponding joint pairs in time sequence through a linear transformation. The linear transformation may be denoted as: where and are learnable weights for adaptively interpolating the  temporally adjacent joint pair The resulting first-order temporally interpolated node set is denoted by

[0057] The temporal interpolation module 220 may also identify the temporally second-order adjacent skeletal joints, which are the correspondingjoint pairs with a time interval of 2, that is (Vt, V (t+2) ) . The temporal interpolation module 220 may use another linear transformation to interpolate the correspondingjoint pairs. The linear transformation may be denoted as: where and are learnable weights for adaptively interpolating the  temporally corresponding joint pair The resulting second-order temporally interpolated node set is denoted by

[0058] In some embodiments, the temporal interpolation module 220 may further perform higher-order spatial interpolation, which may be carried out in the same or similar manner as the second-order interpolation. The resulting nth-order temporal interpolated node set is denoted by In some embodiments, the weights of the temporal interpolation module 220 (such as weights for the first-order interpolation, second-order interpolation, etc. ) can be learnt in an end-to-end manner with the CNN paired with the spatial-temporal grid generator 200.

[0059] In some embodiments, the spatial interpolation module 210 may further enrich the action representation capabilities of spatial-temporal correlated skeleton joints by spatially interpolating the multi-order temporal interpolated node set generated by the temporal interpolation module 220. The spatial interpolation module 210 may perform the interpolation using the spatial interpolation transformation described above. In some embodiments, the spatial interpolation parameters are shared among the temporal dimension for efficiency. The resulting temporal plus spatial interpolated node sets are denoted by with n and m being the orders of temporal and spatial adjacency respectively. “0” spatial or temporal order represents the original skeleton joints. In some embodiments, given an input graph sequence as  through spatial-temporal interpolation with n and m being the orders of temporal and spatial adjacencies respectively, the interpolated graph sequence may be denoted as: The number of nodes in VIT can be calculated by |VIT| = (N+ |V (1) | +…+ |V (m) | ) ×n.

[0060] The assignment module 230 converts the interpolated graph sequence to a grid. The grid may be a grid-patch representation of the action of the object. In some embodiments, the assignment module 230 assigns the spatial-temporal interpolated nodes to a target grid patch. The target grid patch may include cells (also referred to as “elements” ) arranged in a 2D structure. The assignment module 230 may assign the spatial-temporal interpolated nodesto the cells one by one. In some embodiments, the total number of the spatial-temporal interpolated nodes in the interpolated graph sequence may equal the total number ofcells of the target grid path.

[0061] In an example, the target grid patch may have a size of H×Wwith H and W being the height and width of the grid patch respectively. The assignment module 230 may take the features X' corresponding to the first H×W nodes in VIT, where X'∈RHW×C. The assignment module 230 may assign these H×Wspatial-temporal interpolated nodes one by one to the target grid patch, with the optimization goal of improving the accuracy of action recognition. The resulting grid may be denoted as D∈RH×W×C. In some embodiments, C=1 and the resulting grid is a 2D tensor.

[0062] In some embodiments, the assignment module 230 may assign the spatial-temporal interpolated nodes through a reshaping operation, which may be denoted as: D=reshape (Φ·X′) where Φ∈ {0, 1} HW×HW denotesthe binary assignment matrix with φi, j=1 meaning assigning  the jth nodes to the ith grid cell in the target grid patch, reshape (·) operation rearranges the output of (Φ·X′) into an H×W grid patch. In some embodiments, the layout of the spatial-temporal grid patch is learnable through learning the assignment transform Φ.

[0063] Directly learning a satisfactory binary assignment matrix Φ in an end-to-end manner with the convolutional network can be challenging. In some embodiments, the assignment module 230 may adopt a Straight-Through (ST) technique (e.g., the ReinMAX) for approximating the gradient of parameters involved in discrete variables. The assignment module 230 may use a continuous matrix Ψ∈RHW×HW to approximate the binary matrix Φ. In the forward path of learning process, the assignment matrix Φ may be defined as the highest probability response per row on the continuous matrix Ψ. The assignment matrix Φ may be denoted as: For each row in Φ, the column with maximum value in the corresponding row of Ψ is set to one.  In the backward path of learning process, the continuous gradient may be used to update the real matrix Ψ instead of binary Φ.

[0064] FIG. 3 illustrates a graph 320 representing an object 310, in accordance with various embodiments. For the purpose of illustration, the object 310 in FIG. 3 is a human hand. The graph 320 is a graph representation of the object 310 and includes information encoding features of the object 310. In some embodiments, the object may be captured by an image, based on which the graph 320 is generated. The graph 320 may be generated by the graph generator 105 in FIG. 1.

[0065] In the embodiments of FIG. 3, the graph 320 includes 22 nodes 330 (individually referred to as “node 330” ) and various edges 340 (individually referred to as “edge 340” ) connecting the nodes 330. The nodes 330 are shown as circles in FIG. 3, and the edges 340 are shown as short lines in FIG. 3. Each node 330 represents a skeleton joint in the hand. As shown in FIG. 3, 22 skeleton joints are identified in the object 310. In other embodiments, a different number of skeleton joints may be identified, and the graph 320 may include a different number of nodes 330. The locations of the nodes 330 in the graph 320 may match the locations of the skeleton joints in the hand. The edges 340 may represent topological relationships between the skeleton joints. For instance, an edge 340 connects two nodes 330 representing two adjoining skeleton joints.

[0066] FIG. 4 illustrates spatial interpolation of the graph 320 in FIG. 3, in accordance with various embodiments. An extra node 410 is interpolated into the graph 320, resulting in an interpolated graph 400. For the purpose of illustration, FIG. 4 shows a single extra node 410, which is shown as a dashed circle in FIG. 4. The extra node 410 is added on top of the 22 nodes 330 in the graph 320 to generate the interpolated graph 400. The interpolated graph 400 includes 23 nodes in total. In other embodiments, multiple extra nodes may be interpolated, and the interpolated graph 400 may include more nodes. In the example of FIG. 4, the interpolated graph 400 has the same edges 340 as the graph 320. In other embodiments, the interpolated graph 400 may have fewer, more, or different edges from the graph 320. For instance, the extra node 410 may be connected to another extra node or one of the 22 nodes. In some embodiments, the interpolated graph 400 is generated through spatial interpolation by the spatial interpolation module 210 in FIG. 2. For instance, the spatial interpolation module 210 may generate the extra node 410 using a linear transformation, such as the linear transformations described above.

[0067] FIG. 5 illustrates a graph sequence 500, in accordance with various embodiments. The graph sequence 500 includes a graph 510, graph 520, and graph 530. In other embodiments, the graph sequence 500 may include fewer, more, or different graphs. The graph 510, graph 520, and graph 530 may represent a hand at three different times, respectively. The hand has different poses at these times. For the purpose of illustration, the graph 510, graph 520, and graph 530 are arranged along a temporal axis 505. The graph 510, graph 520, and graph 530 may be generated by the graph generator 105 in FIG. 1, e.g., from images capturing the hand at the three different times. In the embodiments of FIG. 5, the graph 510, graph 520, and graph 530 have the same number of nodes and the same number of edges. The positions of some nodes are different in different graphs, which may be caused by the change of the pose of the hand. In other embodiments, the graph 510, graph 520, and graph 530 may have different numbers of nodes or edges. The graph sequence 500 is an example of an input graph sequence that may be processed by the action predicter 110 in FIG. 1 to predict an action of the hand.

[0068] FIG. 6 illustrates a spatially-temporally interpolated graph sequence 600, in accordance with various embodiments. The spatially-temporally interpolated graph sequence 600 may be generated from the graph sequence 500. Extra nodes are added to the graph sequence 500 through spatial interpolation (e.g., spatial interpolation by the spatial interpolation module 210) and temporal interpolation (e.g., temporal interpolation by the temporal interpolation module 220) . The extra nodes are represented by circles with dotted lines in FIG. 6, while the original nodes in the graph sequence 500 are represented by circles with solid lines in FIG. 6. For the purpose of illustration, 15 extra nodes are added to the graph sequence 500 to generate the spatially-temporally interpolated graph sequence 600. In other embodiments, fewer or more extra nodes may be interpolated. In some embodiments, the total number of extra nodes may be determined based on the total number of nodes in the graph sequence 500 and the total number of elements in a template grid patch into which the nodes of the spatially-temporally interpolated graph sequence 600 are assigned to. For instance, the total number of extra nodes may equal the total number of elements in the template grid patch minus the total number of nodes in the graph sequence 500.

[0069] The 15 extra nodes may include both spatially interpolated node (s) and temporally interpolated node (s) . In an example implementation, the 15 extra nodes include three nodes 601-603 that are added based on spatial interpolation. The other 12 extra nodes are added based on temporal interpolation. For instance, the spatial interpolation module 210 may generate and add each of the three nodes 601-603 by performing spatial linear transformation. The temporal interpolation module 220 may generate and add the 12 temporally interpolated nodes by performing temporal linear transformation. In some embodiments, the 12 temporally interpolated nodes may be generated after the node 601 is generated but before the node 602 or 602 is generated. The spatially-temporally interpolated graph sequence 600 may be converted to a grid representation of the hand, e.g., by the assignment module 230 in FIG. 2.

[0070] Even though FIGS. 3-6 shows graphs of a hand, the approach in this disclosure can apply to other types of objects. In an example, the approach can apply to a human body. The graph 320 may be generated based on an image of a human body and may be a body skeleton graph, which may further be used to generate a spatial-temporal interpolated graph. The spatial-temporal interpolated graph may then be used to predict an action of the human body.

[0071] FIG. 7 illustrates a spatial-temporal grid 700, in accordance with various embodiments. The spatial-temporal grid 700 is an exemplary grid-patch representation of the object 310 in FIG. 3. The spatial-temporal grid 700 may be generated from the spatially-temporally interpolated graph sequence 600 in FIG. 6. The spatial-temporal grid 700 may be a spatial-temporal grid representation of the object 310 in FIG. 3. The spatial-temporal grid 700 includes 81 elements, which correspond to the 81 nodes in the spatially-temporally interpolated graph sequence 600. For the purpose of illustration, the original nodes in the spatially-temporally interpolated graph sequence 600 (i.e., nodes from the graph sequence 500) are represented by circles with solid lines. The nodes from the graph 510 are represented by unfilled circles, the nodes from the graph 520 are represented by circles filled with a dot pattern, and the nodes from the graph 530 are represented by circles filled with black. The spatially-temporally interpolated nodes in the spatially-temporally interpolated graph sequence 600 are represented by circles with dotted lines.

[0072] In some embodiments, the spatial-temporal grid 700 may be generated by the assignment module 230 in FIG. 2. The assignment module 230 may use a grid patch template to generate the spatial-temporal grid 700. The grid patch template has 81 spots to fill. The assignment module 230 assigns the 81 nodes in the spatially-temporally interpolated graph sequence 600 to the 81 spots in the grid path template, respectively. The spatial-temporal grid 700 may be used as a 2D tensor, which may be denoted as DH×W. The spatial-temporal grid 700 may have a width W along the X axis and a height H along the Y axis. The spatial size of the spatial-temporal grid 700 may be the width W, the height H, or the area H×W. In some embodiments, the width W may be the total number of elements in a row of the spatial-temporal grid 700. The height H may be the total number of elements in a column of the spatial-temporal grid 700. In the embodiments of FIG. 7, the spatial-temporal grid 700 may have a spatial size of 9×9. In other embodiments, the spatial-temporal grid 700 may have a different spatial size.

[0073] FIG. 8 illustrates a convolution 800 executed on the spatial-temporal grid 700 in FIG. 7, in accordance with various embodiments. The convolution 800 may be a deep learning operation in a CNN, e.g., the CNN 150. In the embodiments of FIG. 8, the convolution 800 has a kernel 810 with a spatial size of 3×3, i.e., the kernel 810 has nine weights arranged in three rows and three columns. The spatial-temporal grid 700 is used as an input tensor of the convolution 800. During the convolution 800, multiply-accumulate operations are performed as the kernel 810 slides through the spatial-temporal grid 700, as indicated by the arrows in FIG. 8. As the spatial-temporal grid 700 includes spatial-temporal nodes, the convolution 800 upon the spatial-temporal grid 700 can model the correlations among a learnable set of skeletal nodes which may be distributed remotely in spatial dimensions and spanned in multiple timestamps, improving the spatial-temporal modeling for skeleton-based action recognition.

[0074] The convolution 800 has a stride that indicates the number of rows and columns traversed per slide of the OFM 820. For the purpose of illustration, the stride of the convolution 800 in FIG. 8 is 1, meaning the kernel 810 slides one data element at a time. The padding parameter of the convolution 800 is (0, 0) , meaning no extra elements are added to the spatial-temporal grid 700. In other embodiments, the convolution 800 may have a different stride. For example, the convolution 800 has a stride factor of 2, and the OFM 820 slides over two data elements at a time. Additionally or alternatively, the convolution 800 may include padding, through which additional data elements are added to the spatial-temporal grid 700 before the kernel is applied on the spatial-temporal grid 700. In an example where the padding parameter is (1, 1) , one additional row is added to the top of the spatial-temporal grid 700, one additional row is added to the bottom of the spatial-temporal grid 700, one additional row is added to the right of the spatial-temporal grid 700, and one additional row is added to the left of the spatial-temporal grid 700. The size of the spatial-temporal grid 700 after the padding would become 11×11.

[0075] In the embodiments of FIG. 8, the convolution 800 generates an output feature map (OFM) 820, which is a 7×7 tensor. In other embodiments (e.g., embodiments where the OFM 820 has a different size, the convolution 800 has a different stride, or the convolution 800 includes padding) , the OFM 820 may have a different spatial size. The OFM 820 may be used in additional deep learning operations in the CNN, e.g., activation function, pooling operation, linear transformation, and so on. The CNN may output information indicating a condition of the object 310, such as a label indicating the action predicted by the DNN.

[0076] FIG. 9 illustrates an exemplary process 900 of predicting action, in accordance with various embodiments. The process 900 may be at least part of a process of performing a graph-based computer vision task. The process 900 starts with receipt of a skeleton sequence 901. The skeleton sequence 901 may be a graph sequence. An example of the skeleton sequence 901 is the graph sequence 500 in FIG. 5. The skeleton sequence 901 includes nodes that encode features of an object. The skeleton sequence 901 may be a graph representation of an action of the object. The process 900 may be performed to recognize the action. A size of the skeleton sequence 901 may be denoted as [N×T×C] .

[0077] The skeleton sequence 901 is provided to an interpolation module 910, which generates and adds extra nodes into the skeleton sequence 901 through spatial-temporal interpolation. The interpolation module 910 is a spatial-temporal graph-to-grid learner, such as the spatial-temporal grid generator 140 in FIG. 1. An example of the interpolation module 910 is a combination of the spatial interpolation module 210 and temporal interpolation module 220 in FIG. 2. The output of the interpolation module 910 is an interpolated graph sequence. A size of the interpolated graph sequence may be denoted as [ |VIT| ×T×C] . An example of the interpolated graph sequence is the spatially-temporally interpolated graph sequence 600 in FIG. 6.

[0078] The interpolated graph sequence is provided to an assignment module 920. An example of the assignment module 920 is the assignment module 230 in FIG. 2. The assignment module 920 assigns nodes in the interpolated graph sequence to elements of a grid-patch template and generates a grid. A size of the grid may be denoted as [H×W×T×C] . An example of the grid is the spatial-temporal grid 700 in FIG. 7.

[0079] The grid is then input into a CNN 930 as an input feature map. The grid may be processed by the CNN 930 as a 2D tensor. The CNN 930 generates an output representing a predicted action 902. In some embodiments, the process 900 may be a process for training the interpolation module 910, assignment module 920 and CNN 930. The interpolation module 910, assignment module 920 and CNN 930 may be trained jointly in an end-to-end manner targeted on the action recognition task. For instance, the internal parameters of the interpolation module 910, assignment module 920 and CNN 930 may be updated in the same backward propagation process. In an example, the skeleton sequence 901 may be a training sample. Aloss may be computed based on the predicted action 902 and a ground-truth label of the skeleton sequence 901. The ground-truth label may be the known or verified action of the object. During the backward propagation process, internal parameters of the interpolation module 910, assignment module 920 and CNN 930 may be updated based on the loss.

[0080] The number of parameters introduced by the interpolation module 910 and assignment module 920 can be negligible. In an example implementation that sets the spatial and temporal interpolation adjacency orders m and n to be 4 and 8 respectively as, the number of parameters introduced by the interpolation module 910 may be 2×8+16×2+28×3+45×4=312, in which 16, 28 and 45 may be the number of spatially adjacent node pairs, triples and quadruples respectively in standard human skeleton layout. The number of parameters introduced by the assignment module 920 may be HW*HW, which is also negligible compared to the backbone network (usually million-level parameters) . And the number of multiply-accumulate (MAC) operations may be NC× (16×2+28×3+45×4) ×n and HWC (e.g., N=17 and C=3 in a skeleton-based action recognition task) for the interpolation module 910 and assignment module 920, respectively. Compared with currently available action recognition processes, the process 900 can achieve significant performance improvement with these negligible extra parameters and compute.

[0081] FIG. 10 illustrates an exemplary CNN 1000, in accordance with various embodiments. The CNN 1000 may be an example of the CNN 150 in FIG. 1. For the purpose of illustration, the CNN 1000 includes a sequence of layers comprising a plurality of convolutional layers 1010 (individually referred to as “convolutional layer 1010” ) , a plurality of pooling layers 1020 (individually referred to as “pooling layer 1020” ) , and a plurality of fully-connected layers 1030 (individually referred to as “fully-connected layer 1030” ) . In other embodiments, the CNN 1000 may include fewer, more, or different layers. In an execution of the CNN 1000, the layers of the CNN 1000 execute tensor computation that includes many tensor operations, such as convolutions, interpolations, pooling operations, elementwise operations (e.g., elementwise addition, elementwise multiplication, etc. ) , other types of tensor operations, or some combination thereof.

[0082] The convolutional layers 1010 summarize the presence of features in inputs to the CNN 1000. The convolutional layers 1010 function as feature extractors. The first layer of the CNN 1000 is a convolutional layer 1010. In an example, a convolutional layer 1010 performs a convolution on an input tensor 1040 (also referred to as IFM 1040) and a filter 1050. As shown in FIG. 10, the IFM 1040 is represented by a 7×7×3 three-dimensional (3D) matrix. The IFM 1040 includes 3 input channels, each of which is represented by a 7×7 two-dimensional (2D) matrix. The 7×7 2D matrix includes 7 input elements (also referred to as input points) in each row and 7 input elements in each column. The filter 1050 is represented by a 3×3×3 3D matrix. The filter 1050 includes 3 kernels, each of which may correspond to a different input channel of the IFM 1040. A kernel is a 2D matrix of weights, where the weights are arranged in columns and rows. A kernel can be smaller than the IFM. In the embodiments of FIG. 10, each kernel is represented by a 3×3 2D matrix. The 3×3 kernel includes 3 weights in each row and 3 weights in each column. Weights can be initialized and updated by backpropagation using gradient descent. The magnitudes of the weights can indicate importance of the filter 1050 in extracting features from the IFM 1040.

[0083] The convolution includes multiply-accumulate (MAC) operations with the input elements in the IFM 1040 and the weights in the filter 1050. The convolution may be a standard convolution 1063 or a depthwise convolution 1083. In the standard convolution 1063, the whole filter 1050 slides across the IFM 1040. All the input channels are combined to produce an output tensor 1060 (also referred to as output feature map (OFM) 1060) . The OFM 1060 is represented by a 5×5 2D matrix. The 5×5 2D matrix includes 5 output elements (also referred to as output points) in each row and 5 output elements in each column. For the purpose of illustration, the standard convolution includes one filter in the embodiments of FIG. 10. In embodiments where there are multiple filters, the standard convolution may produce multiple OCs in the OFM 1060.

[0084] The multiplication applied between a kernel-sized patch of the IFM 1040 and a kernel may be a dot product. A dot product is the elementwise multiplication between the kernel-sized patch of the IFM 1040 and the corresponding kernel, which is then summed, always resulting in a single value. Because it results in a single value, the operation is often referred to as the “scalar product. ” Using a kernel smaller than the IFM 1040 is intentional as it allows the same kernel (set of weights) to be multiplied by the IFM 1040 multiple times at different points on the IFM 1040. Specifically, the kernel is applied systematically to each overlapping part or kernel-sized patch of the IFM 1040, left to right, top to bottom. The result from multiplying the kernel with the IFM 1040 one time is a single value. As the kernel is applied multiple times to the IFM 1040, the multiplication result is a 2D matrix of output elements. As such, the 2D output matrix (i.e., the OFM 1060) from the standard convolution 1063 is referred to as an OFM.

[0085] In the depthwise convolution 1083, the input channels are not combined. Rather, MAC operations are performed on an individual input channel and an individual kernel and produce an OC. As shown in FIG. 10, the depthwise convolution 1083 produces a depthwise output tensor 1080. The depthwise output tensor 1080 is represented by a 5×5×3 3D matrix. The depthwise output tensor 1080 includes 3 OCs, each of which is represented by a 5×5 2D matrix. The 5×5 2D matrix includes 5 output elements in each row and 5 output elements in each column. Each OC is a result of MAC operations of an input channel of the IFM 1040 and a kernel of the filter 1050. For instance, the first OC (patterned with dots) is a result of MAC operations of the first input channel (patterned with dots) and the first kernel (patterned with dots) , the second OC (patterned with horizontal strips) is a result of MAC operations of the second input channel (patterned with horizontal strips) and the second kernel (patterned with horizontal strips) , and the third OC (patterned with diagonal stripes) is a result of MAC operations of the third input channel (patterned with diagonal stripes) and the third kernel (patterned with diagonal stripes) . In such a depthwise convolution, the number of input channels equals the number of OCs, and each OC corresponds to a different input channel. The input channels and output channels are referred to collectively as depthwise channels. After the depthwise convolution, a pointwise convolution 1093 is then performed on the depthwise output tensor 1080 and a 10×1×3 tensor 1090 to produce the OFM 1060.

[0086] The OFM 1060 is then passed to the next layer in the sequence. In some embodiments, the OFM 1060 is passed through an activation function. An example activation function is rectified linear unit (ReLU) . ReLU is a calculation that returns the value provided as input directly, or the value zero if the input is zero or less. The convolutional layer 1010 may receive several images as input and calculate the convolution of each of them with each of the kernels. This process can be repeated several times. For instance, the OFM 1060 is passed to the subsequent convolutional layer 1010 (i.e., the convolutional layer 1010 following the convolutional layer 1010 generating the OFM 1060 in the sequence) . The subsequent convolutional layers 1010 perform a convolution on the OFM 1060 with new kernels and generate a new feature map. The new feature map may also be normalized and resized. The new feature map can be kernelled again by a further subsequent convolutional layer 1010, and so on.

[0087] In some embodiments, a convolutional layer 1010 has four hyperparameters: the number of kernels, the size F kernels (e.g., a kernel is of dimensions F×F×D pixels) , the S step with which the window corresponding to the kernel is dragged on the image (e.g., a step of one means moving the window one pixel at a time) , and the zero-padding P (e.g., adding a black contour of P pixels thickness to the input image of the convolutional layer 1010) . The convolutional layers 1010 may perform various types of convolutions, such as 2-dimensional convolution, dilated or atrous convolution, spatial separable convolution, depthwise separable convolution, transposed convolution, and so on. The CNN 1000 includes 106 convolutional layers 1010. In other embodiments, the CNN 1000 may include a different number of convolutional layers.

[0088] The pooling layers 1020 down-sample feature maps generated by the convolutional layers, e.g., by summarizing the presence of features in the patches of the feature maps. A pooling layer 1020 is placed between two convolution layers 1010: a preceding convolutional layer 1010 (the convolution layer 1010 preceding the pooling layer 1020 in the sequence of layers) and a subsequent convolutional layer 1010 (the convolution layer 1010 subsequent to the pooling layer 1020 in the sequence of layers) . In some embodiments, a pooling layer 1020 is added after a convolutional layer 1010, e.g., after an activation function (e.g., ReLU, etc. ) has been applied to the OFM 1060.

[0089] A pooling layer 1020 receives feature maps generated by the preceding convolution layer 1010 and applies a pooling operation to the feature maps. The pooling operation reduces the size of the feature maps while preserving their important characteristics. Accordingly, the pooling operation improves the efficiency of the DNN and avoids over-learning. The pooling layers 1020 may perform the pooling operation through average pooling (calculating the average value for each patch on the feature map) , max pooling (calculating the maximum value for each patch of the feature map) , or a combination of both. The size of the pooling operation is smaller than the size of the feature maps. In various embodiments, the pooling operation is 2×2 pixels applied with a stride of two pixels, so that the pooling operation reduces the size of a feature map by a factor of 2, e.g., the number of pixels or values in the feature map is reduced to one quarter the size. In an example, a pooling layer 1020 applied to a feature map of 6×6 results in an output pooled feature map of 3×3. The output of the pooling layer 1020 is inputted into the subsequent convolution layer 1010 for further feature extraction. In some embodiments, the pooling layer 1020 operates upon each feature map separately to create a new set of the same number of pooled feature maps.

[0090] The fully-connected layers 1030 are the last layers of the DNN. The fully-connected layers 1030 may be convolutional or not. The fully-connected layers 1030 receive an input operand. The input operand defines the output of the convolutional layers 1010 and pooling layers 1020 and includes the values of the last feature map generated by the last pooling layer 1020 in the sequence. The fully-connected layers 1030 apply a linear combination and an activation function to the input operand and generate a vector. The vector may contain as many elements as there are classes: element i represents the probability that the image belongs to class i. Each element is therefore between 0 and 10, and the sum of all is worth one. These probabilities are calculated by the last fully-connected layer 1030 by using a logistic function (binary classification) or a SoftMax function (multi-class classification) as an activation function. In some embodiments, the fully-connected layers 1030 multiply each input element by weight, make the sum, and then apply an activation function (e.g., logistic if N=2, SoftMax if N>2) . This is equivalent to multiplying the input operand by the matrix containing the weights.

[0091] FIG. 11 is a flowchart showing a method 1100 of graph-based computer vision, in accordance with various embodiments. The method 1100 may be performed by the action predicter 110 in FIG. 1. Although the method 1100 is described with reference to the flowchart illustrated in FIG. 11, many other methods for graph-based computer vision may alternatively be used. For example, the order of execution of the steps in FIG. 11 may be changed. As another example, some of the steps may be changed, eliminated, or combined.

[0092] The action predicter 110 receives 1110 a graph sequence of an object. The graph sequence has graphs representing the object at different times stamps. A graph includes nodes and edges connecting the nodes. In some embodiments, the different times stamps are in a temporal sequence

[0093] The action predicter 110 generates 1120 a plurality of interpolated nodes based on nodes in the graph sequence. In some embodiments, the action predicter 110 generates one or more interpolated nodes based on one or more spatial features of the graph sequence. The action predicter 110 generates one or more other interpolated nodes based on one or more temporal features of the graph sequence. In some embodiments, the action predicter 110 generates the one or more interpolated nodes by identifying one or more node pairs in the graph and generating at least one of the one or more interpolated nodes by interpolating the one or more node pairs through a linear transformation. A node pair includes two nodes connected with a single edge. In some embodiments, the action predicter 110 generates the one or more interpolated nodes further by identifying a set of three or more nodes in the graph and generating at least one of the one or more interpolated nodes by interpolating the three or more nodes through a linear transformation. The three or more nodes have sequential edges.

[0094] In some embodiments, the action predicter 110 generates the one or more other interpolated nodes by identifying one or more node pairs in the graph sequence and generating at least one of the one or more other interpolated nodes by interpolating the one or more node pairs through a linear transformation. A node pair includes two nodes at two adjacent time stamps of the temporal sequence. In some embodiments, the action predicter 110 generates the one or more other interpolated nodes further by identifying one or more additional node pairs in the graph sequence and generating at least one of the one or more interpolated nodes by interpolating the one or more additional node pairs. An additional node pair includes a node at a first time stamp in the temporal sequence and a node at a second time stamp in the temporal sequence. The first time stamp and the second time stamp are separated by one or more other time stamps in the temporal sequence.

[0095] The action predicter 110 generates 1130 an interpolated graph sequence by adding the plurality of interpolated nodes into the graph sequence. In some embodiments, the interpolated graph sequence is a spatial-temporal graph representation of the object. In some embodiments, the interpolated graph sequence has the same temporal sequence as the graph sequence.

[0096] The action predicter 110 converts 1140 the interpolated graph sequence into a grid representing the object. In some embodiments, the action predicter 110 converts the interpolated graph sequence into the grid by assigning nodes of the interpolated graph sequence to cells of a target grid patch. Each node is assigned to a different cell.

[0097] The action predicter 110 performs 1150 a convolution operation on the grid. In some embodiments, the action predicter 110 generates the one or more interpolated nodes and the one or more other interpolated nodes through linear transformations. The linear transformations have learnable weights. In some embodiments, values of the learnable weights for the linear transformations and values of weights of the convolution operation are determined by performing a training process.

[0098] The action predicter 110 predicts 1160 an action of the object based on an output of the convolution operation. In some embodiments, the convolution operation is in a CNN. The action is predicted by the CNN based on the grid.

[0099] FIG. 12 is a block diagram of a computing device 1200, in accordance with various embodiments. In some embodiments, the computing device 1200 can be used as at least part of the computer vision system 100 in FIG. 1. A number of components are illustrated in FIG. 12 as included in the computing device 1200, but any one or more of these components may be omitted or duplicated, as suitable for the application. In some embodiments, some or all of the components included in the computing device 1200 may be attached to one or more motherboards. In some embodiments, some or all of these components are fabricated onto a single system on a chip (SoC) die. Additionally, in various embodiments, the computing device 1200 may not include one or more of the components illustrated in FIG. 12, but the computing device 1200 may include interface circuitry for coupling to the one or more components. For example, the computing device 1200 may not include a display device 1206, but may include display device interface circuitry (e.g., a connector and driver circuitry) to which a display device 1206 may be coupled. In another set of examples, the computing device 1200 may not include an audio input device 1218 or an audio output device 1208, but may include audio input or output device interface circuitry (e.g., connectors and supporting circuitry) to which an audio input device 1218 or audio output device 1208 may be coupled.

[0100] The computing device 1200 may include a processing device 1202 (e.g., one or more processing devices) . The processing device 1202 processes electronic data from registers and / or memory to transform that electronic data into other electronic data that may be stored in registers and / or memory. The computing device 1200 may include a memory 1204, which may itself include one or more memory devices such as volatile memory (e.g., DRAM) , nonvolatile memory (e.g., read-only memory (ROM) ) , high bandwidth memory (HBM) , flash memory, solid state memory, and / or a hard drive. In some embodiments, the memory 1204 may include memory that shares a die with the processing device 1202. In some embodiments, the memory 1204 includes one or more non-transitory computer-readable media storing instructions executable to perform operations for performing graph-based computer vision tasks, e.g., the method 1100 described above in conjunction with FIG. 11 or some operations performed by the computer vision system 100 described above in conjunction with FIG. 1. The instructions stored in the one or more non-transitory computer-readable media may be executed by the processing device 1202.

[0101] In some embodiments, the computing device 1200 may include a communication chip 1212 (e.g., one or more communication chips) . For example, the communication chip 1212 may be configured for managing wireless communications for the transfer of data to and from the computing device 1200. The term "wireless" and its derivatives may be used to describe circuits, devices, systems, methods, techniques, communications channels, etc., that may communicate data through the use of modulated electromagnetic radiation through a nonsolid medium. The term does not imply that the associated devices do not contain any wires, although in some embodiments they might not.

[0102] The communication chip 1212 may implement any of a number of wireless standards or protocols, including but not limited to Institute for Electrical and Electronic Engineers (IEEE) standards including Wi-Fi (IEEE 802.10 family) , IEEE 802.16 standards (e.g., IEEE 802.16-2005 Amendment) , Long-Term Evolution (LTE) project along with any amendments, updates, and / or revisions (e.g., advanced LTE project, ultramobile broadband (UMB) project (also referred to as "3GPP2" ) , etc. ) . IEEE 802.16 compatible Broadband Wireless Access (BWA) networks are generally referred to as WiMAX networks, an acronym that stands for worldwide interoperability for microwave access, which is a certification mark for products that pass conformity and interoperability tests for the IEEE 802.16 standards. The communication chip 1212 may operate in accordance with a Global System for Mobile Communication (GSM) , General Packet Radio Service (GPRS) , Universal Mobile Telecommunications System (UMTS) , High Speed Packet Access (HSPA) , Evolved HSPA (E-HSPA) , or LTE network. The communication chip 1212 may operate in accordance with Enhanced Data for GSM Evolution (EDGE) , GSM EDGE Radio Access Network (GERAN) , Universal Terrestrial Radio Access Network (UTRAN) , or Evolved UTRAN (E-UTRAN) . The communication chip 1212 may operate in accordance with Code-division Multiple Access (CDMA) , Time Division Multiple Access (TDMA) , Digital Enhanced Cordless Telecommunications (DECT) , Evolution-Data Optimized (EV-DO) , and derivatives thereof, as well as any other wireless protocols that are designated as 3G, 4G, 5G, and beyond. The communication chip 1212 may operate in accordance with other wireless protocols in other embodiments. The computing device 1200 may include an antenna 1222 to facilitate wireless communications and / or to receive other wireless communications (such as AM or FM radio transmissions) .

[0103] In some embodiments, the communication chip 1212 may manage wired communications, such as electrical, optical, or any other suitable communication protocols (e.g., the Ethernet) . As noted above, the communication chip 1212 may include multiple communication chips. For instance, a first communication chip 1212 may be dedicated to shorter-range wireless communications such as Wi-Fi or Bluetooth, and a second communication chip 1212 may be dedicated to longer-range wireless communications such as global positioning system (GPS) , EDGE, GPRS, CDMA, WiMAX, LTE, EV-DO, or others. In some embodiments, a first communication chip 1212 may be dedicated to wireless communications, and a second communication chip 1212 may be dedicated to wired communications.

[0104] The computing device 1200 may include battery / power circuitry 1214. The battery / power circuitry 1214 may include one or more energy storage devices (e.g., batteries or capacitors) and / or circuitry for coupling components of the computing device 1200 to an energy source separate from the computing device 1200 (e.g., AC line power) .

[0105] The computing device 1200 may include a display device 1206 (or corresponding interface circuitry, as discussed above) . The display device 1206 may include any visual indicators, such as a heads-up display, a computer monitor, a projector, a touchscreen display, a liquid crystal display (LCD) , a light-emitting diode display, or a flat panel display, for example.

[0106] The computing device 1200 may include an audio output device 1208 (or corresponding interface circuitry, as discussed above) . The audio output device 1208 may include any device that generates an audible indicator, such as speakers, headsets, or earbuds, for example.

[0107] The computing device 1200 may include an audio input device 1218 (or corresponding interface circuitry, as discussed above) . The audio input device 1218 may include any device that generates a signal representative of a sound, such as microphones, microphone arrays, or digital instruments (e.g., instruments having a musical instrument digital interface (MIDI) output) .

[0108] The computing device 1200 may include a GPS device 1216 (or corresponding interface circuitry, as discussed above) . The GPS device 1216 may be in communication with a satellite-based system and may receive a location of the computing device 1200, as known in the art.

[0109] The computing device 1200 may include another output device 1210 (or corresponding interface circuitry, as discussed above) . Examples of the other output device 1210 may include an audio codec, a video codec, a printer, a wired or wireless transmitter for providing information to other devices, or an additional storage device.

[0110] The computing device 1200 may include another input device 1220 (or corresponding interface circuitry, as discussed above) . Examples of the other input device 1220 may include an accelerometer, a gyroscope, a compass, an image capture device, a keyboard, a cursor control device such as a mouse, a stylus, a touchpad, a bar code reader, a Quick Response (QR) code reader, any sensor, or a radio frequency identification (RFID) reader.

[0111] The computing device 1200 may have any desired form factor, such as a handheld or mobile computer system (e.g., a cell phone, a smart phone, a mobile internet device, a music player, a tablet computer, a laptop computer, a netbook computer, an ultrabook computer, a personal digital assistant (PDA) , an ultramobile personal computer, etc. ) , a desktop computer system, a server or other networked computing component, a printer, a scanner, a monitor, a set-top box, an entertainment control unit, a vehicle control unit, a digital camera, a digital video recorder, or a wearable computer system. In some embodiments, the computing device 1200 may be any other electronic device that processes data.

[0112] The following paragraphs provide various examples of the embodiments disclosed herein.

[0113] Example 1 provides a method, including receiving a graph sequence of an object, the graph sequence having graphs representing the object at different times stamps, a graph including nodes and edges connecting the nodes; generating a plurality of interpolated nodes based on nodes in the graph sequence; generating an interpolated graph sequence by adding the plurality of interpolated nodes into the graph sequence; converting the interpolated graph sequence into a grid representing the object; performing a convolution operation on the grid; and predicting an action of the object based on an output of the convolution operation.

[0114] Example 2 provides the method of example 1, in which generating the plurality of interpolated nodes includes generating one or more interpolated nodes based on one or more spatial features of the graph sequence; and generating one or more other interpolated nodes based on one or more temporal features of the graph sequence.

[0115] Example 3 provides the method of example 2, in which generating the one or more interpolated nodes includes identifying one or more node pairs in the graph, a node pair including two nodes connected with a single edge; and generating at least one of the one or more interpolated nodes by interpolating the one or more node pairs through a linear transformation.

[0116] Example 4 provides the method of example 3, in which generating the one or more interpolated nodes further includes identifying a set of three or more nodes in the graph, the three or more nodes connected through edges as a sequence in the graph; and generating at least one of the one or more interpolated nodes by interpolating the three or more nodes through a linear transformation.

[0117] Example 5 provides the method of any one of examples 2-4, in which generating the one or more other interpolated nodes includes identifying one or more node pairs in the graph sequence, a node pair including two nodes at two adjacent time stamps; and generating at least one of the one or more other interpolated nodes by interpolating the one or more node pairs through a linear transformation.

[0118] Example 6 provides the method of example 5, in which generating the one or more other interpolated nodes further includes identifying one or more additional node pairs in the graph sequence, an additional node pair including a node at a first time stamp and a node at a second time stamp, in which the first time stamp and the second time stamp are separated by one or more other time stamps; and generating at least one of the one or more interpolated nodes by interpolating the one or more additional node pairs.

[0119] Example 7 provides the method of any one of examples 1-6, in which converting the interpolated graph sequence into the grid includes assigning nodes of the interpolated graph sequence to cells of a target grid patch, in which each node is assigned to a different cell.

[0120] Example 8 provides one or more non-transitory computer-readable media storing instructions executable to perform operations, the operations including receiving a graph sequence of an object, the graph sequence having graphs representing the object at different times stamps, a graph including nodes and edges connecting the nodes; generating a plurality of interpolated nodes based on nodes in the graph sequence; generating an interpolated graph sequence by adding the plurality of interpolated nodes into the graph sequence; converting the interpolated graph sequence into a grid representing the object; performing a convolution operation on the grid; and predicting an action of the object based on an output of the convolution operation.

[0121] Example 9 provides the one or more non-transitory computer-readable media of example 8, in which generating the plurality of interpolated nodes includes generating one or more interpolated nodes based on one or more spatial features of the graph sequence; and generating one or more other interpolated nodes based on one or more temporal features of the graph sequence.

[0122] Example 10 provides the one or more non-transitory computer-readable media of example 9, in which generating the one or more interpolated nodes includes identifying one or more node pairs in the graph, a node pair including two nodes connected with a single edge; and generating at least one of the one or more interpolated nodes by interpolating the one or more node pairs through a linear transformation.

[0123] Example 11 provides the one or more non-transitory computer-readable media of example 10, in which generating the one or more interpolated nodes further includes identifying a set of three or more nodes in the graph, the three or more nodes connected through edges as a sequence in the graph; and generating at least one of the one or more interpolated nodes by interpolating the three or more nodes through a linear transformation.

[0124] Example 12 provides the one or more non-transitory computer-readable media of any one of examples 9-11, in which generating the one or more other interpolated nodes includes identifying one or more node pairs in the graph sequence, a node pair including two nodes at two adjacent time stamps; and generating at least one of the one or more other interpolated nodes by interpolating the one or more node pairs through a linear transformation.

[0125] Example 13 provides the one or more non-transitory computer-readable media of example 12, in which generating the one or more other interpolated nodes further includes identifying one or more additional node pairs in the graph sequence, an additional node pair including a node at a first time stamp and a node at a second time stamp, in which the first time stamp and the second time stamp are separated by one or more other time stamps; and generating at least one of the one or more interpolated nodes by interpolating the one or more additional node pairs.

[0126] Example 14 provides the one or more non-transitory computer-readable media of any one of examples 9-13, in which generating the plurality of interpolated nodes further includes generating the one or more interpolated nodes and the one or more other interpolated nodes through linear transformations, the linear transformations having learnable weights.

[0127] Example 15 provides the one or more non-transitory computer-readable media of example 14, in which the operations further include performing a training process to determine values weights of the linear transformations and values of weights of the convolution operation.

[0128] Example 16 provides the one or more non-transitory computer-readable media of any one of examples 8-15, in which converting the interpolated graph sequence into the grid includes assigning nodes of the interpolated graph sequence to cells of a target grid patch, in which each node is assigned to a different cell.

[0129] Example 17 provides an apparatus, including a computer processor for executing computer program instructions; and a non-transitory computer-readable memory storing computer program instructions executable by the computer processor to perform operations including receiving a graph sequence of an object, the graph sequence having graphs representing the object at different times stamps, a graph including nodes and edges connecting the nodes, generating a plurality of interpolated nodes based on nodes in the graph sequence, generating an interpolated graph sequence by adding the plurality of interpolated nodes into the graph sequence, converting the interpolated graph sequence into a grid representing the object, performing a convolution operation on the grid, and predicting an action of the object based on an output of the convolution operation.

[0130] Example 18 provides the apparatus of example 17, in which generating the plurality of interpolated nodes includes generating one or more interpolated nodes based on one or more spatial features of the graph sequence; and generating one or more other interpolated nodes based on one or more temporal features of the graph sequence.

[0131] Example 19 provides the apparatus of example 18, in which generating the one or more interpolated nodes includes identifying one or more node pairs in the graph, a node pair including two nodes connected with a single edge; and generating at least one of the one or more interpolated nodes by interpolating the one or more node pairs through a linear transformation.

[0132] Example 20 provides the apparatus of example 19, in which generating the one or more interpolated nodes further includes identifying a set of three or more nodes in the graph, the three or more nodes connected through edges as a sequence in the graph; and generating at least one of the one or more interpolated nodes by interpolating the three or more nodes through a linear transformation.

[0133] Example 21 provides the apparatus of any one of examples 18-20, in which generating the one or more other interpolated nodes includes identifying one or more node pairs in the graph sequence, a node pair including two nodes at two adjacent time stamps; and generating at least one of the one or more other interpolated nodes by interpolating the one or more node pairs through a linear transformation.

[0134] Example 22 provides the apparatus of example 21, in which generating the one or more other interpolated nodes further includes identifying one or more additional node pairs in the graph sequence, an additional node pair including a node at a first time stamp and a node at a second time stamp, in which the first time stamp and the second time stamp are separated by one or more other time stamps; and generating at least one of the one or more interpolated nodes by interpolating the one or more additional node pairs.

[0135] Example 23 provides the apparatus of any one of examples 18-22, in which generating the plurality of interpolated nodes further includes generating the one or more interpolated nodes and the one or more other interpolated nodes through linear transformations, the linear transformations having learnable weights.

[0136] Example 24 provides the apparatus of example 23, in which the operations further include performing a training process to determine values weights of the linear transformations and values of weights of the convolution operation.

[0137] Example 25 provides the apparatus of any one of examples 17-24, in which converting the interpolated graph sequence into the grid includes assigning nodes of the interpolated graph sequence to cells of a target grid patch, in which each node is assigned to a different cell.

[0138] The above description of illustrated implementations of the disclosure, including what is described in the Abstract, is not intended to be exhaustive or to limit the disclosure to the precise forms disclosed. While specific implementations of, and examples for, the disclosure are described herein for illustrative purposes, various equivalent modifications are possible within the scope of the disclosure, as those skilled in the relevant art can recognize. These modifications may be made to the disclosure in light of the above detailed description.

Claims

1.A method, comprising:receiving a graph sequence of an object, the graph sequence having graphs representing the object at different times stamps, agraph comprising nodes and edges connecting the nodes;generating a plurality of interpolated nodes based on nodes in the graph sequence;generating an interpolated graph sequence by adding the plurality of interpolated nodes into the graph sequence;converting the interpolated graph sequence into a grid representing the object;performing a convolution operation on the grid; andpredicting an action of the object based on an output of the convolution operation.2.The method of claim 1, wherein generating the plurality of interpolated nodes comprises:generating one or more interpolated nodes based on one or more spatial features of the graph sequence; andgenerating one or more other interpolated nodes based on one or more temporal features of the graph sequence.3.The method of claim 2, wherein generating the one or more interpolated nodes comprises:identifying one or more node pairs in the graph, anode pair comprising two nodes connected with a single edge; andgenerating at least one of the one or more interpolated nodes by interpolating the one or more node pairs through a linear transformation.4.The method of claim 3, wherein generating the one or more interpolated nodes further comprises:identifying a set of three or more nodes in the graph, the three or more nodes connected through edges as a sequence in the graph; andgenerating at least one of the one or more interpolated nodes by interpolating the three or more nodes through a linear transformation.5.The method of any one of claims 2-4, wherein generating the one or more other interpolated nodes comprises:identifying one or more node pairs in the graph sequence, anode pair comprising two nodes at two adjacent time stamps; andgenerating at least one of the one or more other interpolated nodes by interpolating the one or more node pairs through a linear transformation.6.The method of claim 5, wherein generating the one or more other interpolated nodes further comprises:identifying one or more additional node pairs in the graph sequence, an additional node pair comprising a node at a first time stamp and a node at a second time stamp, wherein the first time stamp and the second time stamp are separated by one or more other time stamps; andgenerating at least one of the one or more interpolated nodes by interpolating the one or more additional node pairs.7.The method of any one of claims 1-6, wherein converting the interpolated graph sequence into the grid comprises:assigning nodes of the interpolated graph sequence to cells of a target grid patch, wherein each node is assigned to a different cell.8.One or more non-transitory computer-readable media storing instructions executable to perform operations, the operations comprising:receiving a graph sequence of an object, the graph sequence having graphs representing the object at different times stamps, agraph comprising nodes and edges connecting the nodes;generating a plurality of interpolated nodes based on nodes in the graph sequence;generating an interpolated graph sequence by adding the plurality of interpolated nodes into the graph sequence;converting the interpolated graph sequence into a grid representing the object;performing a convolution operation on the grid; andpredicting an action of the object based on an output of the convolution operation.9.The one or more non-transitory computer-readable media of claim 8, wherein generating the plurality of interpolated nodes comprises:generating one or more interpolated nodes based on one or more spatial features of the graph sequence; andgenerating one or more other interpolated nodes based on one or more temporal features of the graph sequence.10.The one or more non-transitory computer-readable media of claim 9, wherein generating the one or more interpolated nodes comprises:identifying one or more node pairs in the graph, anode pair comprising two nodes connected with a single edge; andgenerating at least one of the one or more interpolated nodes by interpolating the one or more node pairs through a linear transformation.11.The one or more non-transitory computer-readable media of claim 10, wherein generating the one or more interpolated nodes further comprises:identifying a set of three or more nodes in the graph, the three or more nodes connected through edges as a sequence in the graph; andgenerating at least one of the one or more interpolated nodes by interpolating the three or more nodes through a linear transformation.12.The one or more non-transitory computer-readable media of any one of claims 9-11, wherein generating the one or more other interpolated nodes comprises:identifying one or more node pairs in the graph sequence, anode pair comprising two nodes at two adjacent time stamps; andgenerating at least one of the one or more other interpolated nodes by interpolating the one or more node pairs through a linear transformation.13.The one or more non-transitory computer-readable media of claim 12, wherein generating the one or more other interpolated nodes further comprises:identifying one or more additional node pairs in the graph sequence, an additional node pair comprising a node at a first time stamp and a node at a second time stamp, wherein the first time stamp and the second time stamp are separated by one or more other time stamps; andgenerating at least one of the one or more interpolated nodes by interpolating the one or more additional node pairs.14.The one or more non-transitory computer-readable media of any one of claims 9-13, wherein generating the plurality of interpolated nodes further comprises:generating the one or more interpolated nodes and the one or more other interpolated nodes through linear transformations, the linear transformations having learnable weights.15.The one or more non-transitory computer-readable media of claim 14, wherein the operations further comprise:performing a training process to determine values weights of the linear transformations and values of weights of the convolution operation.16.The one or more non-transitory computer-readable media of any one of claims 8-15, wherein converting the interpolated graph sequence into the grid comprises:assigning nodes of the interpolated graph sequence to cells of a target grid patch, wherein each node is assigned to a different cell.17.An apparatus, comprising:a computer processor for executing computer program instructions; anda non-transitory computer-readable memory storing computer program instructions executable by the computer processor to perform operations comprising:receiving a graph sequence of an object, the graph sequence having graphs representing the object at different times stamps, agraph comprising nodes and edges connecting the nodes,generating a plurality of interpolated nodes based on nodes in the graph sequence,generating an interpolated graph sequence by adding the plurality of interpolated nodes into the graph sequence,converting the interpolated graph sequence into a grid representing the object, performing a convolution operation on the grid, andpredicting an action of the object based on an output of the convolution operation.18.The apparatus of claim 17, wherein generating the plurality of interpolated nodes comprises:generating one or more interpolated nodes based on one or more spatial features of the graph sequence; andgenerating one or more other interpolated nodes based on one or more temporal features of the graph sequence.19.The apparatus of claim 18, wherein generating the one or more interpolated nodes comprises:identifying one or more node pairs in the graph, anode pair comprising two nodes connected with a single edge; andgenerating at least one of the one or more interpolated nodes by interpolating the one or more node pairs through a linear transformation.20.The apparatus of claim 19, wherein generating the one or more interpolated nodes further comprises:identifying a set of three or more nodes in the graph, the three or more nodes connected through edges as a sequence in the graph; andgenerating at least one of the one or more interpolated nodes by interpolating the three or more nodes through a linear transformation.21.The apparatus of any one of claims 18-20, wherein generating the one or more other interpolated nodes comprises:identifying one or more node pairs in the graph sequence, anode pair comprising two nodes at two adjacent time stamps; andgenerating at least one of the one or more other interpolated nodes by interpolating the one or more node pairs through a linear transformation.22.The apparatus of claim 21, wherein generating the one or more other interpolated nodes further comprises:identifying one or more additional node pairs in the graph sequence, an additional node pair comprising a node at a first time stamp and a node at a second time stamp, wherein the first time stamp and the second time stamp are separated by one or more other time stamps; andgenerating at least one of the one or more interpolated nodes by interpolating the one or more additional node pairs.23.The apparatus of any one of claims 18-22, wherein generating the plurality of interpolated nodes further comprises:generating the one or more interpolated nodes and the one or more other interpolated nodes through linear transformations, the linear transformations having learnable weights.24.The apparatus of claim 23, wherein the operations further comprise:performing a training process to determine values weights of the linear transformations and values of weights of the convolution operation.25.The apparatus of any one of claims 17-24, wherein converting the interpolated graph sequence into the grid comprises:assigning nodes of the interpolated graph sequence to cells of a target grid patch, wherein each node is assigned to a different cell.