End-to-end training for long contextual video understanding

By integrating multi-scale temporal and backbone adapters into the backbone network, the memory and computational challenges of training DNNs for long video understanding are addressed, enabling efficient end-to-end training and accurate video analysis.

WO2026025257A1PCT designated stage Publication Date: 2026-02-05INTEL CORP +2
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2024/108343
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-07-30
Publication Date
2026-02-05

AI Technical Summary

Technical Problem

Deep neural networks (DNNs) face significant memory bottlenecks during end-to-end training for long contextual video understanding, limiting their ability to capture long-range temporal context in video analysis tasks due to high computational and memory demands, especially when processing large and untrimmed videos.

Method used

Implementing multi-scale temporal adapters and backbone adapters within the backbone network, such as ViT, to reduce memory and computational requirements by using lightweight adapters that capture long-range cross-frame interactions, allowing for end-to-end training of large models on extended videos.

Benefits of technology

Enables efficient end-to-end training of large models like ViT on long videos with reduced memory and computational costs, maintaining high accuracy and capturing intricate temporal dependencies.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2024108343_05022026_PF_FP_ABST
    Figure CN2024108343_05022026_PF_FP_ABST
Patent Text Reader

Abstract

To address the memory bottleneck in end-to-end training or learning for long contextual video understanding, one or more multi-scale long-range adapters can be added to a backbone network, such as a feature extraction network. A multi-scale long-range adapter may include a kernel having trainable parameters or weights that can be used to operate on a plurality of inputs having a particular temporal receptive field. The inputs enable the multi-scale long-range adapter to capture long-range cross-frame interaction during training and learning and apply the learned cross-frame interaction during inference. The multi-scale temporal adapters may implement a gradual and sparse strategy to vary the temporal receptive field at different machine learning blocks or layers of the backbone network. Backbone adapters having low-rank decomposition matrices may be added to the backbone network during training to facilitate end-to-end fine-tuning of the machine learning blocks or layers of the backbone network.
Need to check novelty before this filing date? Find Prior Art

Description

END-TO-END TRAINING FOR LONG CONTEXTUAL VIDEO UNDERSTANDINGBackground

[0001] Deep neural networks (DNNs) are a type of machine learning model used extensively for a variety of artificial intelligence applications ranging from computer vision to speech recognition and natural language processing due to their ability to achieve high accuracy. However, the high accuracy comes at the expense of significant computation cost, especially during training or learning. DNNs have extremely high computing demands as there can be a large number of operations as well as a large amount of data to read and write.Brief Description of the Drawings

[0002] Embodiments will 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.

[0003] FIG. 1 illustrates training processes for video understanding, according to some embodiments of the disclosure.

[0004] FIG. 2 illustrates an efficient end-to-end training process for long contextual video understanding, according to some embodiments of the disclosure.

[0005] FIG. 3 illustrates increasing contextual distance in the multi-scale temporal adapters, according to some embodiments of the disclosure.

[0006] FIG. 4 illustrates increasing contextual distance in the multi-scale temporal adapters, according to some embodiments of the disclosure.

[0007] FIG. 5 depicts a flowchart illustrating a method for end-to-end training for long contextual video understanding, according to some embodiments of the disclosure.

[0008] FIG. 6 depicts a flowchart illustrating a method for end-to-end training for long contextual video understanding, according to some embodiments of the disclosure.

[0009] FIG. 7 is a block diagram of an exemplary computing device, according to some embodiments of the disclosure.Detailed Description

[0010] Overview

[0011] Machine learning models, such as deep neural networks, can have millions to billions of learnable or trainable parameters or weights. For a model with a billion parameters, several gigabytes of memory can be used just to store the parameters or weights. When a machine learning model is used for processing video, the input video frames would also be stored in memory. Processing a number of input video frames for even a short video sample would demand a significant amount of memory. Batching multiple video samples further multiplies the memory demands. For long contextual video understanding or to capture long-range temporal context, longer videos with many more input video frames are processed, which means that memory requirements are increased even further. In some cases, backpropagation through time means that activations for all time steps are stored, which can be memory intensive for longer videos. Addressing these memory bottlenecks often lead to tradeoffs or compromises in training, such as reducing batch sizes (which can negatively impact training stability and convergence) , downsampling input videos (which can potentially lose fine-grained details) , using shorter temporal windows or processing shorter videos (which may miss long-range contextual dependencies) , and employing less powerful but more memory efficient architectures (which may have worse performance) .

[0012] While end-to-end training to capture long-range temporal context can improve the performance of visual action analysis tasks such as temporal action detection and segmentation, the memory bottlenecks discussed above imposes limitations on the scale of end-to-end training. Some models can only train small models on short video inputs. It can be a challenge to adapt pre-trained short-term visual foundational models trained on images, such as vision transformers (ViTs) , to long-term video understanding tasks such as action detection and segmentation in untrimmed videos or in real-time video analysis applications. Due the memory bottlenecks, ViTs are treated as a ready-made feature extractor and no end-to-end training is performed to fine-tune the parameters of the ViTs. Some systems aiming to perform end-to-end video learning have been limited to using smaller backbone networks such as ResNet50 (e.g., a deep convolutional neural network that is significantly smaller than a ViT) or are focused on short videos. Due to the large  number of parameters used in ViTs and long videos being used as input data, applying end-to-end training or learning for long-term video understanding tasks presents a significant technical challenge.

[0013] A ViT is an adaptation of the transformer-based neural network architecture, which is designed for sequential data processing. A ViT adapts the transformer-based neural network to perform computer vision tasks on sequential video frames. A ViT may include a patch embedding component, which can divide an input image into fixed-size patches (e.g., 16x16 pixels) . Each patch may be flattened and linearly projected to a lower-dimensional space referred to as a patch embedding. The ViT may include a position embedding component, which may add a learnable position embedding to each patch embedding to retain spatial information. A learnable embedding (e.g., class token) can be prepended to the sequence of patch embeddings. This token's final state can be used for classification tasks. The ViT may include a transformer-encoder, which includes multiple transformer-based encoder machine learning blocks or layers. The output of the encoder may be processed by one or more task-specific machine learning networks to perform one or more downstream tasks, which may use the state of the class token for classification.

[0014] To address the memory bottleneck in end-to-end training or learning for long contextual video understanding, one or more multi-scale long-range adapters can be added to a backbone network, which can include a ViT. Herein, a backbone network is also referred to as a feature extraction network, since the backbone network performs a feature extraction function to extract features from video frames. Suppose an input video, e.g., an untrimmed video, is where T, H and W represent the number, height and width of red-green-blue (RGB) frames respectively. A backbone network may include successive machine learning blocks or layers, such as machine learning blocks or layers of a ViT transformer-encoder. Herein, the backbone network may include a first machine learning block, followed by a second machine learning block, followed by a third machine learning block, …, and followed by a Kth machine learning block. A multi-scale temporal adapter may be introduced at the output of one or more ones of the K machine learning blocks or K machine learning layers.

[0015] A multi-scale long-range adapter may include a kernel having trainable parameters or weights that can be used to operate on a plurality of inputs having a  particular temporal receptive field. The inputs enable the multi-scale long-range adapter to capture long-range cross-frame interaction during training and learning and apply the learned cross-frame interaction during inference.

[0016] To reduce memory and computational requirements, the multi-scale temporal adapters may implement a gradual and sparse strategy to vary the temporal receptive field at different machine learning blocks or layers of the backbone network. The one or more multi-scale long-range adapters are lightweight compared to the heavyweight blocks or layers in the backbone network (e.g., the one or more multi-scale long-range adapters may have fewer than 1%of the parameters of the heavyweight blocks or layers) .

[0017] In some embodiments, the multi-scale temporal adapter may be causal or backwards looking. In some embodiments, the multi-scale temporal adapter may be acausal or forward-and-backwards looking. In some embodiments, if an input to a multi-scale temporal adapter is not available, zeros padding may be used to pad the input.

[0018] In some embodiments, to further reduce memory and computational requirements, one or more backbone adapters can be added to the backbone network, which can include a ViT, to enable end-to-end fine-tuning of the backbone network, such as the transformer-encoder blocks or layers of the ViT. The one or more backbone adapters are lightweight compared to the heavyweight blocks or layers in the backbone network (e.g., the one or more backbone adapters may have fewer than 1%of the parameters of the heavyweight blocks or layers) . The use of the backbone adapter means that the heavyweight machine learning blocks / layers may be fine-tuned as an end-to-end feature extractor in a parameter-efficient manner.

[0019] In some embodiments, one or more outputs of the backbone network are provided to a downstream task head machine learning network. During training or learning, one or more parameters of the downstream task head machine learning network are updated. In many scenarios, the task head machine learning network has far fewer parameters than a backbone network implementing a large model such as a ViT. Therefore, end-to-end training of the task head machine learning network would not have a significant memory bottleneck.

[0020] In some implementations, comparable accuracy and a significant increase in the length in input video (e.g., the number of input video frames) can be achieved while  significantly reducing the memory demands in end-to-end training for long-term video understanding tasks. The use of the one or more multi-scale long-range adapters and optionally the one or more backbone adapters means that end-to-end training for long-term video understanding tasks leveraging heavyweight, pre-trained ViT foundational models can be performed on more cost-effective graphics processing units (GPUs) .

[0021] Non-end-to-end training and end-to-end training for video understanding

[0022] FIG. 1 illustrates training processes for video understanding, according to some embodiments of the disclosure. A model for video understanding may include backbone network 150 and task head machine learning network 160. Backbone network 150 may include K machine learning blocks or layers, e.g., machine learning block 1 110, machine learning block 2 120, …, and machine learning block K 130. The K machine learning blocks may be provided as layers and in series. The block number k increases as backbone network 150 gets deeper. The output of a machine learning block k may be provided as input to a machine learning block k+1, and so forth.

[0023] Backbone network 150 may be a main network of the model that processes video frames at different frame indices (e.g., from 1 to N) . The video frames may include, e.g., video frame at frame index 1 102, video frame at frame index 2 104, …, and video frame at frame index N 106. In some cases, backbone network 150 may include a ViT, which means that the K machine learning blocks may include K transformer-encoder machine learning blocks or layers.

[0024] Backbone network 150 may act or operate as a feature extractor. Backbone network 150 may include a pre-trained neural network that has been pre-trained on large datasets. Backbone network 150 may be a general-purpose neural network that can be used for various tasks. The K transformer-encoder machine learning blocks or layers may progressively learn hierarchical representations of an input video frame.

[0025] A transformer-based encoder machine learning block or layer, e.g., machine learning block 1 110, machine learning block 2 120, …, or machine learning block K 130, in a ViT may include a multi-head self-attention (MSA) block and a feed-forward network (FFN) block. An MSA block allows each patch to attend to other patches and capture relationships between patches. The MSA block can include multiple attention heads operating in parallel, where each attention head can compute query, key and value projections. The FFN block  may follow the MSA block, which can include multi-layer perceptron having, e.g., two linear transformations and an activation in between. In some implementations, a machine learning block or layer may include layer normalization (LN) , MSA block, a residual connection that adds the input to the MSA output, further LN, FFN block, and a further residual connection that adds the input to the FFN output. A transformer-based encoder machine learning block or layer may include millions to billions of parameters and can be heavyweight. The transformer-based encoder machine learning block presents a challenge for end-to-end training for video understanding tasks.

[0026] The output of backbone network 150, e.g., features of an input video frame, may be provided to task head machine learning network 160, which is a part of the model that comes after or is downstream of backbone network 150. Task head machine learning network 160 may be responsible for performing a specific machine learning task. Task head machine learning network 160 may produce predictions corresponding to the input video frames, e.g., prediction at frame index 1 170, prediction at frame index 2 172, …, and prediction at frame index N 174. The predictions are associated with a specific machine learning task. Task head machine learning network 160 may include a neural network, such as a convolutional neural network, a plurality of linear layers, etc.

[0027] In a scenario where training or learning is not performed in an end-to-end manner, backbone network 150 (having a ViT) may be treated as a ready-made feature extractor for individual video frames, or short, trimmed video snippets. Task head machine learning network 160 may be applied to a sequence of features extracted by backbone network 150 based on video frames of extended videos. The parameters of backbone network 150 would be frozen and would not be updated during training. The parameters of task head machine learning network 160 may be updated during training. The features extracted by backbone network 150 can be pivotal to the final performance of the model. Phrased differently, a more robust feature extractor can significantly enhance the model’s performance. When updating the parameters of backbone network 150 is not practical, approaches have been focused on using a strong backbone network 150 for short, trimmed videos and / or developing a powerful task head machine learning network 160. These approaches fall short in capturing the intricate relationships among different video frames within an expansive temporal context.

[0028] In a scenario where training or learning is performed in an end-to-end manner, parameters of backbone network 150 and parameters task head machine learning network 160 are both updated. Video frames, e.g., video frame at frame index 1 102, video frame at frame index 2 104, …, and video frame at frame index N 106, are provided to backbone network 150 to produce a sequence of features. The sequence of features may be processed by task head machine learning network 160 to produce predictions, e.g., prediction at frame index 1 170, prediction at frame index 2 172, …, and prediction at frame index N 174. The predictions are used in updating the parameters of backbone network 150 and parameters task head machine learning network 160. In one approach, a relatively small neural network, e.g., ResNet50, is used in backbone network 150 to limit the number of parameters being updated in backbone network 150. In one approach, images or very short video snippets (e.g., 8-32 video frames) are used for end-to-end training to reduce memory requirements. Some end-to-end training and fine-tuning of the model have been demonstrated to significantly enhance the model’s performance for video understanding tasks. Unfortunately, the enhancement in the model’s performance may not be as high as it could be because using larger visual foundation models such as ViTs in backbone network 150 and end-to-end training with extended, untrimmed videos remains a challenge.

[0029] Model fine-tuning can adapt a pre-trained model, e.g., backbone network 150, to a new domain with a new downstream task. Fine-tuning all the parameters of backbone network 150 is possible, but memory and computational demands proportionally increase as models increase in size. Some parameter-efficient strategies can be used to make fine-tuning backbone network 150 more efficient. However, when it comes to end-to-end training for long contextual video understanding, memory demands of end-to-end training are proportional to video length. a challenge persists with memory bottlenecks associated with training with extended, untrimmed videos.

[0030] Memory efficient end-to-end training for long contextual video understanding

[0031] FIG. 2 illustrates an efficient end-to-end training process for long contextual video understanding, according to some embodiments of the disclosure. A model for video understanding may include backbone network 292 and task head machine learning network 160. Backbone network 292 may include K machine learning blocks or layers, e.g., machine learning block 1 202, machine learning block 2 220, …, and machine learning block K. The K  machine learning blocks may be provided as layers and in series. The block number k increases as backbone network 292 gets deeper. The output of a machine learning block k may be provided as input to a machine learning block k+1, and so forth. A machine learning block may include a transformer-based neural network, or a transformer-encoder block / layer.

[0032] Backbone network 292 may be a main network of the model that processes video frames at different frame indices (e.g., from 1 to N) . The video frames may include, e.g., video frame at frame index 1 102, video frame at frame index 2 104, …, and video frame at frame index N 106. In some cases, backbone network 150 may include a ViT, which means that the K machine learning blocks may include K transformer-encoder machine learning blocks or layers as described with FIG. 1. The outputs produced by backbone network 292, e.g., a sequence of features extracted from the input video frames, may be provided to task head machine learning network 160, which is a part of the model that comes after or is downstream of backbone network 150. Task head machine learning network 160 may produce predictions corresponding to the input video frames, e.g., prediction at frame index 1 270, prediction at frame index 2 272, …, and prediction at frame index N.

[0033] Backbone network 292 includes one or more multi-scale temporal adapters. As an illustration, multi-scale temporal adapter 280 is added to machine learning block 1 202, and multi-scale temporal adapter 282 is added to machine learning block 2 220. It is envisioned that a multi-scale temporal adapter can be added to one or more machine learning blocks of backbone network 292.

[0034] A multi-scale temporal adapter may include one or more kernels having trainable or learnable parameters or weights. A multi-scale temporal adapter may include a lightweight neural network having trainable or learnable parameters (e.g., two convolutional neural network layers) . For example, multi-scale temporal adapter 280 may include kernel 230, and multi-scale temporal adapter 282 may include kernel 240.

[0035] As used herein, a kernel may include one or more operations that can be applied to the kernel’s inputs to produce an output. The operations may be applied according to trainable or learnable parameters. An example of an operation is a filter with one or more filter parameters. Another example of an operation is a convolution operation with one or more convolution matrix parameters.

[0036] One or more parameters of the one or more multi-scale temporal adapters may be updated based on the predictions of the model, e.g., prediction at frame index 1 270, prediction at frame index 2 272, …, and prediction at frame index N, while the parameters of the K machine learning blocks, e.g., machine learning block 1 202, machine learning block 2 220, …, and machine learning block K, are frozen during training or learning.

[0037] The multi-scale temporal adapter of backbone network 292 may receive a plurality of inputs to capture long-range cross-frame interaction during training and learning. Specifically, the multi-scale temporal adapter of backbone network 292 may receive inputs associated with or corresponding to different frame indices. In some embodiments, the multi-scale temporal adapter of backbone network 292 may include an input associated with a current frame index and one or more further inputs associated with one or more further frame indices. Examples of inputs associated with different frame indices received by the multi-scale temporal adapters of backbone network 292 are illustrated in FIGS. 3-4. The frame indices of the inputs of the multi-scale temporal adapter, such as the difference between a smallest frame index and the largest frame index, may define the contextual distance or temporal contextual range of the multi-scale temporal adapter. The different frame indices may define a temporal receptive field of the multi-scale temporal adapter. The multi-scale temporal adapter may have a specific contextual distance or temporal contextual range, which may be defined by the difference in frame indices associated with the inputs. The contextual distance or temporal contextual range may be based on a dilation rate of the multi-scale temporal adapter. The dilation rate of the multi-scale temporal adapter may specify the distances or spacing of the frame indices. The spacing or distance between the inputs means that the multi-scale temporal adapter can perform temporally dilated operations on its inputs. In some embodiments, a multi-scale temporal adapter performs temporally dilated operations, or operations on temporally dilated inputs according to a specific dilation rate or contextual distance. The operations may be performed based on parameters that may capture cross-frame interactions learned during the end-to-end training process.

[0038] To minimize memory and computational requirements, the multi-scale temporal adapters in backbone network 292 may implement a gradual and sparse strategy to vary the temporal receptive field at different machine learning blocks or layers of  backbone network 292. As the block number increases (or the block or layer is deeper in backbone network 292) , the temporal receptive field of the multi-scale temporal adapter becomes larger. Phrased differently, the dilation rate may increase, or monotonically increase as the block number increases. For example, the temporal receptive field of multi-scale temporal adapter 282 may be greater than the temporal receptive field of multi-scale temporal adapter 280.

[0039] In some embodiments, a multi-scale temporal adapter of backbone network 292 may include a dilated convolution layer, or a kernel that can be applied to temporally dilated inputs. Multi-scale temporal adapter 280 may include kernel 230. Multi-scale temporal adapter 282 may include kernel 240. The dilation rates of the multi-scale temporal adapters may vary or incrementally increase as the block number increases. For example, the dilation rate of kernel 240 of multi-scale temporal adapter 282 may be greater than the dilation rate of kernel 240 of multi-scale temporal adapter 280. As the dilation rates increase, the contextual distance or temporal contextual range of the multi-scale temporal adapter in backbone network 292 also increases.

[0040] In some embodiments, the contextual distances or temporal contextual ranges of the multi-scale temporal adapters in backbone network 292 can vary from 2 frame indices to R frame indices. In some embodiments, the contextual distances or temporal contextual ranges of the multi-scale temporal adapters in backbone network 292 can vary from 3 frame indices to R frame indices. R may represent a maximum temporal contextual range. In one example, R is 512. The maximum temporal contextual range may correspond to a number of frames or a temporal receptive field where cross-frame interaction is expected to boost the performance of a task. R may be a hyperparameter, which may be set experimentally to optimize the performance of a task.

[0041] In one example, the contextual distances or temporal contextual range of a multi-scale temporal adapter in backbone network 292 may be provided by: min (2k+1, R) where k (e.g., k=1…K) is the block or layer number to which the multi-scale temporal adapter is added, and R is the maximum temporal contextual range. For example, the contextual distance for multi-scale temporal adapter 280 may be min (2k+1, R) =3 where k=1. For example, the contextual distance for multi-scale temporal adapter 282 may be min (2k+1, R) =5 where k=2.

[0042] In some embodiments, the contextual distances or temporal contextual ranges of multi-scale temporal adapters in backbone network 292 may increase linearly. In some embodiments, the contextual distances or temporal contextual ranges of multi-scale temporal adapters in backbone network 292 may increase exponentially.

[0043] The dilation rates (and thus the contextual distances or temporal contextual ranges) of the multi-scale temporal adapters in backbone network 292 may be hyperparameters of backbone network 292. In some cases, the dilation rates, and the rates at which the dilation rates increase may be set experimentally to optimize the performance of a task.

[0044] The kernel sizes (e.g., the number of inputs processed by the kernel) of the multi-scale temporal adapters of backbone network 292 may be hyperparameters of backbone network 292. A larger kernel size may enable a multi-scale temporal adapter to capture more cross-frame interaction, but at the cost of higher complexity (e.g., more parameters and operations) for the multi-scale temporal adapter. In some cases, the kernel sizes may be set experimentally to optimize the performance of a task. The kernel may have a size S, e.g., S = 2, 3, 4, 5, 6, 7 or 8. In some cases, kernel sizes are the same for each k, or the block or layer number to which the multi-scale temporal adapter is added. In some cases, kernel sizes may increase as block number increases (or as the temporal receptive field widens) .

[0045] In some embodiments, the multi-scale temporal adapters may be added to each machine learning block or layer of backbone network 292. In some embodiments, the multi-scale temporal adapters may be added to a subset of the machine learning blocks or layers of backbone network 292. In some embodiments, the multi-scale temporal adapters may be added to every other machine learning block or layer of backbone network 292.

[0046] Relative to a machine learning block, a multi-scale temporal adapter in backbone network 292 may have fewer than 1%of the parameters in a machine learning block (e.g., machine learning block 1 202, machine learning block 2 220, …, and machine learning block K) in backbone network 292. Therefore, the one or more multi-scale temporal adapters in backbone network 292 are relatively lightweight. The one or more multi-scale long-range adapters of backbone network 292 can, during training or learning, capture long-range dependencies in video understanding tasks. One benefit of the one or more multi- scale long-range adapters in backbone network 292 is their ability to capture the dependencies with low computational cost (e.g., especially memory demands) because they have far fewer number of parameters or weights to train.

[0047] In some embodiments, one or more backbone adapters can be added to backbone network 292 to enable end-to-end fine-tuning of the one or more machine learning layers or blocks of backbone network 292. As illustrated, backbone adapter 1 212 may be added to fine-tune machine learning block 1 202. Backbone adapter 2 222 may be added to fine-tune machine learning block 2 220. The one or more backbone adapters are lightweight compared to the heavyweight blocks or layers in the backbone network (e.g., the one or more backbone adapters may have fewer than 1%of the parameters of the heavyweight blocks or layers) . One benefit of the one or more backbone adapters is their ability to adapt backbone network 292 to suit one or more downstream tasks without having to update all the parameters or weights of the heavyweight machine learning blocks or layers (e.g., machine learning block 1 202, machine learning block 2 220, …, and machine learning block K) in the backbone network.

[0048] In some embodiments, a backbone adapter in backbone network 292 may include one or more low-rank decomposition matrices that correspond to the machine learning block or machine learning layer (e.g., machine learning block 1 202, machine learning block 2 220, …, and machine learning block K) . During training or learning, the parameters of the machine learning block or layer may be frozen, while one or more parameters of the one or more low-rank decomposition matrices are updated. The one or more low-rank decomposition matrices may represent the parameters of the machine learning block but using far fewer parameters. After the parameters of the one or more low-rank decomposition matrices have been updated, the trained / learned parameters of the one or more low-rank decomposition matrices are then combined with the (pre-trained) parameters of the machine learning block or layer to fine-tune the machine learning block. The use of the backbone adapter in backbone network 292 means that the heavyweight machine learning blocks / layers may be fine-tuned as an end-to-end feature extractor in a parameter-efficient manner. In some cases, the technique using the backbone adapters may be referred to as LoRA or low-rank adaptation or fine-tuning.

[0049] Note that the backbone adapter is removed after training / learning. However, the multi-scale temporal adapters are added to the model, e.g., added to the backbone network, and are not removed after training / learning.

[0050] A backbone adapter, e.g., backbone adapter 1 212 or backbone adapter 2 222, may be added to fine-tune a machine learning block, e.g., machine learning block 1 202, machine learning block 2 220, …, or machine learning block K. Suppose the machine learning block has an original weight matrix where: d is the input dimension, and m is the output dimension. Fine-tuning or updating the parameters of the original weight matrix Womay be defined as ΔW = BA, where:  and r is the rank. r << min (d, m) . During training or learning, one or more parameters in low-rank decomposition matrices B and A corresponding to the original weight matrix Wo are trained or updated while the parameters in the original weight matrix Wo are frozen. After the training or learning process is applied to the low-rank decomposition matrices B and A, the parameters of the original weight matrix Wo can be merged with the matrices B and A. Fine-tuned or updated parameters of the weight matrix may be defined as: W = Wo + ΔW = Wo + αBA, where α may be a scaling factor. The original weight matrix Wo would have d *m number of parameters. The low-rank decomposition matrices B and A may have r * (d + m) number of parameters. The reduction factor of parameters may be min (d, m)  / r. The backbone adapter allows for end-to-end adaptation of the machine learning block with significantly fewer trainable parameters.

[0051] In some embodiments, the backbone adapters may be added to each machine learning block or layer of backbone network 292. In some embodiments, the backbone adapters may be added to a subset of the machine learning blocks or layers of backbone network 292. In some embodiments, the backbone adapters may be added to every other machine learning block or layer of backbone network 292.

[0052] In some embodiments, one or more outputs of backbone network 292 are provided to a downstream task head machine learning network 160. During training or learning, one or more parameters of the downstream task head machine learning network 160 are updated. In many scenarios, the task head machine learning network has far fewer parameters than a backbone network implementing a large model such as a ViT. Therefore,  end-to-end training of the task head machine learning network would not have a significant memory bottleneck.

[0053] During training or learning, the parameters of the downstream task head machine learning network 160 and one or more multi-scale temporal adapters of backbone network 292 are updated while parameters of the one or more machine learning blocks (e.g., blocks or layers of a ViT) in the backbone network are frozen. In some implementations, parameters of one of more backbone adapters of backbone network 292 are updated while parameters of the one or more machine learning blocks (e.g., blocks or layers of a ViT) in the backbone network are frozen.

[0054] Video frames of an untrimmed video, e.g., video frame at frame index 1 102, video frame at frame index 2 104, …, and video frame at frame index N 106, are provided as input to the backbone network 292. Machine learning block 1 202 of backbone network 292 may generate first outputs based on respective video frames, e.g., video frame at frame index 1 102, video frame at frame index 2 104, …, and video frame at frame index N 106. The first outputs may correspond to different frame indices. Machine learning block 1 202 may be applied repeatedly across different video frames to produce the first outputs corresponding to different frame indices. For example, machine learning block 1 202 may generate an output based on video frame at frame index 1 102. Machine learning block 1 202 may generate a further output based on video frame at frame index 2 104. Machine learning block 1 202 may generate further outputs based on further video frames at other frame indices.

[0055] Kernel 230 of multi-scale temporal adapter 280 may be applied to the first outputs generated by machine learning block 1 202 of backbone network 292 to generate second outputs. The second outputs may correspond to different frame indices. Kernel 230 may include a first input and a second input. The first input and the second input may have a first contextual distance. The first contextual distance may measure a first difference between a first position of the first input within the first outputs and a second position of the second input with the first outputs. In some cases, kernel 230 may further include a fifth input. The fifth input and the second input of kernel 230 may be separated by the first contextual distance. Kernel 230 may be applied repeatedly across the first outputs to generate the second outputs corresponding to different frame indices. For example, kernel  230 may be applied to a subset of the first outputs to generate an output. Kernel 230 may slide across the first outputs to produce further outputs.

[0056] The second outputs generated by kernel 230 may be input into machine learning block 2 220 of backbone network 292. Machine learning block 2 220 of backbone network 292 may receive the second outputs to generate respective third outputs. The third outputs may correspond to different frame indices. Machine learning block 2 220 may be applied repeatedly across the second outputs to produce the third outputs corresponding to different frame indices. For example, machine learning block 2 220 may generate an output based on one of the third outputs. Machine learning block 1 202 may generate a further output based on a further one of the third outputs.

[0057] Kernel 240 of multi-scale temporal adapter 280 may be applied to the third outputs generated by machine learning block 2 220 of backbone network 292 to generate fourth outputs. The fourth outputs may correspond to different frame indices. Kernel 240 may include a third input and a fourth input. The third input and the fourth input may have a second contextual distance. The second contextual distance may be different from the first contextual distance of kernel 230. The second contextual distance may measure a second difference between a third position of the third input within the third outputs and a fourth position of the fourth input with the third outputs. In some cases, kernel 240 may further include a sixth input. The sixth input and the fourth input of kernel 230 may be separated by the second contextual distance. For example, the second contextual distance may be greater than the first contextual distance. Kernel 240 may be applied repeatedly across the third outputs to generate the fourth outputs corresponding to different frame indices. For example, kernel 240 may be applied to a subset of the third outputs to generate an output. Kernel 230 may slide across the third outputs to produce further outputs.

[0058] Backbone network 292 may further include additional machine learning blocks and kernels as described herein. The contextual distance associated with the kernels may widen or increase as the kernels are processing outputs that are deeper in backbone network 292.

[0059] One or more further outputs of backbone network 292 may be input into task head machine learning network 160. Task head machine learning network 160 may output  one or more predictions corresponding to the video frames, e.g., prediction at frame index 1 270, prediction at frame index 2 272, …, and prediction at frame index N.

[0060] Task head machine learning network 160 may produce predictions, e.g., prediction at frame index 1 270, prediction at frame index 2 272, …, and prediction at frame index N, corresponding to the video frames, e.g., video frame at frame index 1 102, video frame at frame index 2 104, …, and video frame at frame index N 106. Examples of predictions may include an action segmentation prediction or an action classification. The predictions and ground truth labels of the video frames may be used along with an optimization technique to update the parameters of the downstream task head machine learning network 160, the one or more multi-scale temporal adapters in backbone network 292, and optionally the one or more backbone adapters in backbone network 292. An example of an optimization technique is gradient descent, and a loss function of the optimization technique may be calculated based on the predictions and optionally the ground truth labels.

[0061] During end-to-end training or learning, first parameters of the kernel 230 and kernel 240 (and other kernels of multi-scale temporal adapters in backbone network 292) may be updated based on the one or more predictions corresponding to the video frames, e.g., prediction at frame index 1 270, prediction at frame index 2 272, …, and prediction at frame index N.

[0062] During end-to-end training or learning, second parameters of the task head machine learning network 160 may be updated based on the one or more predictions corresponding to the video frames, e.g., prediction at frame index 1 270, prediction at frame index 2 272, …, and prediction at frame index N.

[0063] During end-to-end training or learning, one or more matrices (e.g., low-rank decomposition matrices) corresponding to one or more of machine learning block 1 202 and machine learning block 2 220 may be updated based on the one or more predictions corresponding to the video frames, e.g., prediction at frame index 1 270, prediction at frame index 2 272, …, and prediction at frame index N. In some cases, one or more parameters in one or more of backbone adapter 1 212 and backbone adapter 2 222 may be updated based on the one or more predictions corresponding to the video frames, e.g., prediction at frame index 1 270, prediction at frame index 2 272, …, and prediction at frame index N.

[0064] Exemplary multi-scale temporal adapters

[0065] FIG. 3 illustrates increasing contextual distance in the multi-scale temporal adapters, according to some embodiments of the disclosure. The model may include backbone network 292 and task head machine learning network 160 as described herein. Backbone network 292 may include machine learning block 1 320, kernel 330 of a multi-scale temporal adapter, machine learning block 2 340, kernel 350 of a multi-scale temporal adapter, machine learning block 3 360, and kernel 370 of a multi-scale temporal adapter. Backbone network 292 may include further machine learning block (s) and further kernel (s) . The machine learning blocks and kernels can be implemented according to the description provided with FIG. 2. Video frames at various frame indices may be processed by machine learning block 1 320. The video frames may include video frame 380 at index 1, video frame 381 at index 2, video frame 382 at index 3, video frame 384 at index 4, video frame 385 at index 6, etc. Task head machine learning network 160 may produce one or more predictions corresponding to different frame indices. The one or more predictions may include prediction 390 at index 1, prediction 391 at index 2, prediction 392 at index 3, prediction 393 at index 4, prediction 394 at index 5, prediction 395 at index 6, etc.

[0066] In some embodiments, a multi-scale temporal adapter having a kernel in backbone network 292 may receive temporally dilated inputs that include an input corresponding to a current frame index and one or more inputs corresponding to past / previous frame indices. In other words, the multi-scale temporal adapter may be causal or backwards looking. Using a backwards looking multi-scale temporal adapter may be useful in performing tasks where video is processed in real-time or online, e.g., where few or no inputs associated with future / subsequent frame indices may be unavailable. An example of a task may include video analysis or action segmentation in live monitoring scenarios such as street or intersection monitoring, security monitoring, surveillance monitoring, etc.

[0067] Machine learning block 1 320 of backbone network 292 may generate a first output based on video frame 380 at index 1. Machine learning block 1 320 of backbone network 292 may generate a second output based on video frame 381 at index 2. Video frame 381 may be a video frame subsequent to video frame 380. Video frame 381 may have a frame index that is greater than the frame index of video frame 380.

[0068] Kernel 330 may be applied to at least the first output to generate a third output.

[0069] Kernel 330 may be applied to at least the first output and the second output to generate a fourth output.

[0070] As illustrated, kernel 330 may be applied repeatedly across the outputs produced by machine learning block 1 320. Kernel 330 may process an output produced by machine learning block 1 320 at index i and an output produced by machine learning block 1 320 at index i-1. Kernel 330 may have a dilation rate of 1, and a contextual distance of 2. Kernel 330 may process an output from machine learning block 1 320 at a current index i and one or more outputs an output from machine learning block 1 320 at one or more previous indices < i.

[0071] One or more further outputs of backbone network 292 may be input into task head machine learning network 160. Task head machine learning network 160 may output one or more predictions about at least video frame 380 at index 1, and video frame 381 at index 2.

[0072] During end-to-end training or learning, one or more first parameters of kernel 330 may be updated based on the one or more predictions. One or more second parameters of task head machine learning network 160 may be updated based on the one or more predictions.

[0073] Machine learning block 1 320 of backbone network 292 may generate a fifth output based on video frame 382 at index 3.

[0074] Kernel 330 may be applied to at least the second output and the fifth output to generate a sixth output.

[0075] The third output may be input into machine learning block 2 340 of backbone network 292. Machine learning block 2 340 of backbone network 292 may generate a seventh output based on the third output.

[0076] The sixth output may be input into machine learning block 2 340 of backbone network 292. Machine learning block 2 340 of backbone network 292 may generate an eighth output based on the sixth output.

[0077] Kernel 350 may be applied to at least the seventh output and the eighth output to generate a nineth output.

[0078] As illustrated, kernel 350 may be applied repeatedly across the outputs produced by machine learning block 2 340. Kernel 350 may process an output produced by machine learning block 2 340 at index i, and an output produced by machine learning block 2 340 at index i-2. Kernel 350 may have a dilation rate of 2, and a contextual distance of 3. Kernel 350 may process an output from machine learning block 2 340 at a current index i and one or more outputs an output from machine learning block 2 340 at one or more previous indices < i. The spacing or distance between indices for kernel 350 may be greater than the spacing or distance between indices for kernel 330 to widen the temporal receptive field.

[0079] During end-to-end training or learning, one or more parameters of kernel 350 may be updated based on the one or more predictions.

[0080] As illustrated, kernel 370 may be applied repeatedly across the outputs produced by machine learning block 3 360. Kernel 370 may process an output produced by machine learning block 3 360 at index i, and an output produced by machine learning block 2 340 at index i-3. Kernel 370 may have a dilation rate of 3, and a contextual distance of 4. Kernel 370 may process an output from machine learning block 3 360 at a current index i and one or more outputs an output from machine learning block 3 360 at one or more previous indices < i. The spacing or distance between indices for kernel 370 may be greater than the spacing or distance between indices for kernel 330 and the spacing or distance between indices for kernel 350 to widen the temporal receptive field further.

[0081] During end-to-end training or learning, one or more parameters of kernel 370 may be updated based on the one or more predictions.

[0082] Kernels depicted may have a kernel size of 2. It is envisioned by the disclosure that the kernels may have kernel sizes that is greater than 2. If an input to a kernel is unavailable, the input may be padded with one or more zeros, and a kernel may be applied further to an input padded with one or more zeros.

[0083] FIG. 4 illustrates increasing contextual distance in the multi-scale temporal adapters, according to some embodiments of the disclosure. Backbone network 292 may include machine learning block 1 320, kernel 430 of a multi-scale temporal adapter, machine learning block 2 340, kernel 430 of a multi-scale temporal adapter, machine learning block 3 360, and kernel 470 of a multi-scale temporal adapter. Backbone network 292 may include  further machine learning block (s) and further kernel (s) . The machine learning blocks and kernels can be implemented according to the description provided with FIG. 2. Video frames at various frame indices may be processed by machine learning block 1 320. The video frames may include video frame 380 at index 1, video frame 381 at index 2, video frame 382 at index 3, video frame 384 at index 4, video frame 385 at index 6, etc. Task head machine learning network 160 may produce one or more predictions corresponding to different frame indices. The one or more predictions may include prediction 390 at index 1, prediction 391 at index 2, prediction 392 at index 3, prediction 393 at index 4, prediction 394 at index 5, prediction 395 at index 6, etc.

[0084] In some embodiments, the multi-scale temporal adapter of backbone network 292 having a kernel may receive temporally dilated inputs that include an input corresponding to a current frame index, one or more inputs corresponding to past / previous frame indices, and one or more inputs corresponding to future / subsequent frame indices. In other words, the multi-scale temporal adapter may be acausal or forward-and-backwards looking. Using forward-and-backwards looking multi-scale temporal adapter may be useful in performing tasks where video is processed offline, e.g., where inputs associated with future / subsequent frame indices may be available.

[0085] Machine learning block 1 320 of backbone network 292 may generate a first output based on video frame 380 at index 1. Machine learning block 1 320 of backbone network 292 may generate a second output based on video frame 381 at index 2. Video frame 381 may be a video frame subsequent to video frame 380. Video frame 381 may have a frame index that is greater than the frame index of video frame 380. Machine learning block 1 320 of backbone network 292 may generate a fifth output based on video frame 382 at index 3. Video frame 382 may be a video frame subsequent to video frame 380 and video frame 381. Video frame 382 may have a frame index that is greater than the frame index of video frame 380 and the frame index of video frame 381. Machine learning block 1 320 of backbone network 292 may generate a tenth output based on video frame 383 at index 4. Video frame 383 may be a video frame subsequent to video frame 380, video frame 381, and video frame 382. Video frame 383 may have a frame index that is greater than the frame index of video frame 380, the frame index of video frame 381, and the frame index of video frame 382. Machine learning block 1 320 of backbone network 292 may generate an  eleventh output based on video frame 384 at index 5. Video frame 384 may be a video frame subsequent to video frame 380, video frame 381, video frame 382, and video frame 383. Video frame 384 may have a frame index that is greater than the frame index of video frame 380, the frame index of video frame 381, the frame index of video frame 382, and the frame index of video frame 383.

[0086] Kernel 430 may be applied to at least the first output and the second output to generate a third output. Kernel 430 may be applied to the first output, the second output, and the fifth output to generate a fourth output. Kernel 430 may be applied to the second output, the fifth output, and the tenth output to produce a sixth output. Kernel 430 may be applied to at least the tenth output and the eleventh output to generate a twelfth output.

[0087] One or more further outputs of backbone network 292 may be input into task head machine learning network 160. Task head machine learning network 160 may output one or more predictions about at least video frame 380 at index 1, and video frame 381 at index 2.

[0088] During end-to-end training or learning, one or more first parameters of kernel 430 may be updated based on the one or more predictions. One or more second parameters of task head machine learning network 160 may be updated based on the one or more predictions.

[0089] As illustrated, kernel 430 may be applied repeatedly across the outputs produced by machine learning block 1 320. Kernel 430 may process an output produced by machine learning block 1 320 at index i, an output produced by machine learning block 1 320 at index i-1, and an output produced by machine learning block 1 320 at index i+1. Kernel 430 may have a dilation rate of 1, and a contextual distance of 3. Kernel 430 may process an output from machine learning block 1 320 at a current index i, one or more outputs an output from machine learning block 1 320 at one or more previous indices < I, and one or more outputs an output from machine learning block 1 320 at one or more subsequent indices > i.

[0090] The third output may be input into machine learning block 2 340 of backbone network 292. Machine learning block 2 340 of backbone network 292 may generate a seventh output based on the third output. The sixth output may be input into machine learning block 2 340 of backbone network 292. Machine learning block 2 340 of backbone  network 292 may generate an eighth output based on the sixth output. The twelfth output may be input into machine learning block 2 340 of backbone network 292. Machine learning block 2 340 of backbone network 292 may generate a thirteenth output based on the twelfth output.

[0091] Kernel 450 may be applied to at least the seventh output, the eighth output, and the twelfth output to generate a nineth output.

[0092] As illustrated, kernel 450 may be applied repeatedly across the outputs produced by machine learning block 2 340. Kernel 450 may process an output produced by machine learning block 2 340 at index i, an output produced by machine learning block 2 340 at index i-2, and an output produced by machine learning block 2 340 at index i+2. Kernel 350 may have a dilation rate of 2, and a contextual distance of 5. Kernel 450 may process an output from machine learning block 2 340 at a current index i, one or more outputs an output from machine learning block 2 340 at one or more previous indices < i, and one or more outputs an output from machine learning block 2 340 at one or more subsequent indices > i. The spacing or distance between indices for kernel 450 may be greater than the spacing or distance between indices for kernel 430 to widen the temporal receptive field.

[0093] During end-to-end training or learning, one or more parameters of kernel 450 may be updated based on the one or more predictions.

[0094] As illustrated, kernel 470 may be applied repeatedly across the outputs produced by machine learning block 3 360. Kernel 450 may process an output produced by machine learning block 3 360 at index i, an output produced by machine learning block 3 360 at index i-3, and an output produced by machine learning block 3 360 at index i+3. Kernel 450 may have a dilation rate of 3, and a contextual distance of 7. Kernel 470 may process an output from machine learning block 3 360 at a current index i, one or more outputs an output from machine learning block 3 360 at one or more previous indices < i, and one or more outputs an output from machine learning block 3 360 at one or more subsequent indices > i. The spacing or distance between indices for kernel 470 may be greater than the spacing or distance between indices for kernel 450 and the spacing or distance between indices for kernel 430 to further widen the temporal receptive field.

[0095] During end-to-end training or learning, one or more parameters of kernel 470 may be updated based on the one or more predictions.

[0096] Kernels depicted may have a kernel size of 3. It is envisioned by the disclosure that the kernels may have kernel sizes that is greater than 3. If an input to a kernel is unavailable, the input may be padded with one or more zeros, and a kernel may be applied further to an input padded with one or more zeros.

[0097] Methods for end-to-end training for long contextual video understanding

[0098] FIG. 5 depicts a flowchart illustrating a method for end-to-end training for long contextual video understanding, according to some embodiments of the disclosure. Method 500 can be performed using a computing device, such as computing device 700 in FIG. 7. Method 500 may be performed using or by one or more parts illustrated in FIGS. 2-4.

[0099] In 502, a first machine learning block of a feature extraction network may generate a first output based on a first video frame. The first video frame may have a first frame index.

[0100] In 504, the first machine learning block may generate a second output based on a second video frame. The second video frame may have a second frame index that is greater than the first frame index.

[0101] In 506, a first kernel may be applied to at least the first output to generate a third output.

[0102] In 508, the first kernel may be applied to at least the first output and the second output to generate a fourth output.

[0103] In 510, one or more further outputs of the feature extraction network may be input into a task head machine learning network. The task head machine learning network can output one or more predictions about the first video frame and the second video frame.

[0104] In 512, one or more first parameters of the first kernel may be updated based on the one or more predictions. One or more parameters of the first machine learning block may be frozen during the training process.

[0105] FIG. 6 depicts a flowchart illustrating a method for end-to-end training for long contextual video understanding, according to some embodiments of the disclosure. Method 600 can be performed using a computing device, such as computing device 700 in FIG. 7. Method 600 may be performed using or by one or more parts illustrated in FIGS. 2-4.

[0106] In 602, a first machine learning block of a feature extraction network may generate first outputs based on respective video frames.

[0107] In 604, a first kernel of the feature extraction network may be applied to the first outputs to generate second outputs. The first kernel has a first input and a second input. The first input and the second input has a first contextual distance.

[0108] In 606, the second outputs may be input into a second machine learning block of the feature extraction network to generate respective third outputs.

[0109] In 608, a second kernel of the feature extraction network may be applied to the third outputs to generate respective fourth outputs. The second kernel has a third input and a fourth input. The third input and the fourth input have a second contextual distance. the second contextual distance is different from the first contextual distance.

[0110] In 610, further outputs of the feature extraction network may be input into a task head machine learning network. The task head machine learning network can output one or more predictions corresponding to the video frames.

[0111] Exemplary computing device

[0112] FIG. 7 is a block diagram of an apparatus or a system, e.g., an exemplary computing device 700, according to some embodiments of the disclosure. One or more computing devices 700 may be used to implement the functionalities described with the FIGS. and herein. A number of components illustrated in FIG. 7 can be included in computing device 700, 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 computing device 700 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, computing device 700 may not include one or more of the components illustrated in FIG. 7, and computing device 700 may include interface circuitry for coupling to the one or more components. For example, the computing device 700 may not include display device 706, and may include display device interface circuitry (e.g., a connector and driver circuitry) to which a display device 706 may be coupled. In another set of examples, computing device 700 may not include audio input device 718 or an audio output device 708 and may include audio input or output device interface circuitry (e.g., connectors and supporting circuitry) to which an audio input device 718 or audio output device 708 may be coupled.

[0113] Computing device 700 may include processing device 702 (e.g., one or more processing devices, one or more of the same types of processing device, one or more of different types of processing device) . Processing device 702 may include electronic circuitry that process electronic data from data storage elements (e.g., registers, memory, resistors, capacitors, quantum bit cells) to transform that electronic data into other electronic data that may be stored in registers and / or memory. Examples of processing device 702 may include a central processing unit (CPU) , a GPU, a quantum processor, a machine learning processor, an artificial intelligence processor, a neural network processor, an artificial intelligence accelerator, an application specific integrated circuit (ASIC) , an analog signal processor, an analog computer, a microprocessor, a digital signal processor, a field-programmable gate array (FPGA) , a tensor processing unit (TPU) , a data processing unit (DPU) , etc.

[0114] The computing device 700 may include a memory 704, 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. Memory 704 includes one or more non-transitory computer-readable storage media. In some embodiments, memory 704 may include memory that shares a die with the processing device 702.

[0115] In some embodiments, memory 704 includes one or more non-transitory computer-readable media storing instructions executable to perform operations described with the FIGS. and herein, such as the methods and operations illustrated in the FIGS. In some embodiments, memory 704 includes one or more non-transitory computer-readable media storing instructions executable to perform operations of method 500 of FIG. 5. In some embodiments, memory 704 includes one or more non-transitory computer-readable media storing instructions executable to perform operations of method 600 of FIG. 6. Exemplary parts that may be encoded as instructions and stored in memory 704 are depicted. Memory 704 may store instructions that encode one or more exemplary parts, such as task head machine learning network 160 and backbone network 292. The instructions stored in the one or more non-transitory computer-readable media may be executed by processing device 702.

[0116] In some embodiments, memory 704 may store data, e.g., data structures, binary data, bits, metadata, files, blobs, etc., as described with the FIGS. and herein. For example, memory 704 may store input video frames and output predictions.

[0117] In some embodiments, memory 704 may store one or more DNNs (or parts thereof) of backbone network 292 and task head machine learning network 160. Memory 704 may store training data 780 for training (trained) the DNN. Training data 780 may include a training data set having video frames and corresponding ground truth labels / classifications. Training data 780 may be used for end-to-end training for video understanding, as illustrated by FIGS. 2-4. Memory 704 may store instructions that perform operations associated with training the DNN. Memory 704 may store input data, output data, intermediate outputs, intermediate inputs of the one or more DNNs. Memory 704 may store one or more parameters used by the one or more DNNs. Memory 704 may store information that encodes how nodes of the one or more DNNs are connected with each other. Memory 704 may store instructions (e.g., low-level machine code) to perform one or more operations of the one or more DNNs. Memory 704 may store a model definition that specifies one or more operations of a DNN. Memory 704 may store instructions, such as configuration files, that are generated by a compiler based on the model definition.

[0118] In some embodiments, the computing device 700 may include a communication device 712 (e.g., one or more communication devices) . For example, the communication device 712 may be configured for managing wired and / or wireless communications for the transfer of data to and from the computing device 700. 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. The communication device 712 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 device 712 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 device 712 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 device 712 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 device 712 may operate in accordance with other wireless protocols in other embodiments. The computing device 700 may include an antenna 722 to facilitate wireless communications and / or to receive other wireless communications (such as radio frequency transmissions) . The computing device 700 may include receiver circuits and / or transmitter circuits. In some embodiments, the communication device 712 may manage wired communications, such as electrical, optical, or any other suitable communication protocols (e.g., the Ethernet) . As noted above, the communication device 712 may include multiple communication chips. For instance, a first communication device 712 may be dedicated to shorter-range wireless communications such as Wi-Fi or Bluetooth, and a second communication device 712 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 device 712 may be dedicated to wireless communications, and a second communication device 712 may be dedicated to wired communications.

[0119] The computing device 700 may include power source  / power circuitry 714. The power source  / power circuitry 714 may include one or more energy storage devices (e.g., batteries or capacitors) and / or circuitry for coupling components of the computing  device 700 to an energy source separate from the computing device 700 (e.g., DC power, AC power, etc. ) .

[0120] The computing device 700 may include a display device 706 (or corresponding interface circuitry, as discussed above) . The display device 706 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.

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

[0122] The computing device 700 may include an audio input device 718 (or corresponding interface circuitry, as discussed above) . The audio input device 718 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) .

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

[0124] The computing device 700 may include a sensor 730 (or one or more sensors) . The computing device 700 may include corresponding interface circuitry, as discussed above) . Sensor 730 may sense physical phenomenon and translate the physical phenomenon into electrical signals that can be processed by, e.g., processing device 702. Examples of sensor 730 may include: capacitive sensor, inductive sensor, resistive sensor, electromagnetic field sensor, light sensor, camera, imager, microphone, pressure sensor, temperature sensor, vibrational sensor, accelerometer, gyroscope, strain sensor, moisture sensor, humidity sensor, distance sensor, range sensor, time-of-flight sensor, pH sensor, particle sensor, air quality sensor, chemical sensor, gas sensor, biosensor, ultrasound sensor, a scanner, etc.

[0125] The computing device 700 may include another output device 710 (or corresponding interface circuitry, as discussed above) . Examples of the other output device 710 may include an audio codec, a video codec, a printer, a wired or wireless transmitter for providing information to other devices, haptic output device, gas output device, vibrational output device, lighting output device, home automation controller, or an additional storage device.

[0126] The computing device 700 may include another input device 720 (or corresponding interface circuitry, as discussed above) . Examples of the other input device 720 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.

[0127] The computing device 700 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, a personal digital assistant (PDA) , a personal computer, a remote control, wearable device, headgear, eyewear, footwear, electronic clothing, 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, an Internet-of-Things device, or a wearable computer system. In some embodiments, the computing device 700 may be any other electronic device that processes data.

[0128] Select examples

[0129] Example 1 provides a method, including generating, by a first machine learning block of a feature extraction network, a first output based on a first video frame; generating, by the first machine learning block, a second output based on a second video frame; applying a first kernel to at least the first output to generate a third output; applying the first kernel to at least the first output and the second output to generate a fourth output; inputting one or more further outputs of the feature extraction network into a task head machine learning network, the task head machine learning network to output one or more predictions about the first video frame and the second video frame; and updating one or more first parameters of the first kernel based on the one or more predictions.

[0130] Example 2 provides the method of example 1, further including updating one or more second parameters of the task head machine learning network based on the one or more predictions.

[0131] Example 3 provides the method of example 1 or 2, further including generating, by the first machine learning block, a fifth output based on a third video frame.

[0132] Example 4 provides the method of example 3, where applying the first kernel to at least the first output and the second output to generate the fourth output includes applying the first kernel further to the fifth output to generate the fourth output.

[0133] Example 5 provides the method of example 3 or 4, further including applying the first kernel to at least the second output and the fifth output to generate a sixth output.

[0134] Example 6 provides the method of example 5, further including inputting the third output to a second machine learning block of the feature extraction network to generate a seventh output; and inputting the sixth output to the second machine learning block of the feature extraction network to generate an eighth output.

[0135] Example 7 provides the method of example 6, further including applying a second kernel to at least the seventh output and the eighth output to generate a nineth output.

[0136] Example 8 provides the method of example 7, further including generating, by the first machine learning block, a tenth output based on a fourth video frame; generating, by the first machine learning block, an eleventh output based on a fifth video frame; applying the second kernel to at least the tenth output, and the eleventh output to generate a twelfth output; and inputting the twelfth output into the second machine learning block of the feature extraction network to generate a thirteenth output; where applying the second kernel to at least the seventh output and the eighth output to generate the nineth output includes applying the second kernel further to the thirteenth output to generate the nineth output.

[0137] Example 9 provides the method of any one of examples 1-8, where applying the first kernel to at least the first output to generate the third output includes applying the first kernel further to the second output to generate the third output.

[0138] Example 10 provides the method of any one of examples 1-9, where applying the first kernel to at least the first output to generate the third output includes applying the first kernel further to an input padded with one or more zeros.

[0139] Example 11 provides the method of any one of examples 1-10, further including updating one or more matrices corresponding to the first machine learning block based on the one or more predictions.

[0140] Example 12 provides a method, including generating, by a first machine learning block of a feature extraction network, first outputs based on respective video frames; applying a first kernel of the feature extraction network to the first outputs to generate second outputs, where the first kernel has a first input and a second input, and the first input and the second input has a first contextual distance; inputting the second outputs into a second machine learning block of the feature extraction network to generate respective third outputs; applying a second kernel of the feature extraction network to the third outputs to generate respective fourth outputs, where the second kernel has a third input and a fourth input, the third input and the fourth input have a second contextual distance, and the second contextual distance is different from the first contextual distance; and inputting further outputs of the feature extraction network into a task head machine learning network, the task head machine learning network to output one or more predictions corresponding to the video frames.

[0141] Example 13 provides the method of example 12, further including updating one or more first parameters of the first kernel and the second kernel based on the one or more predictions corresponding to the video frames.

[0142] Example 14 provides the method of example 12 or 13, where the second contextual distance is greater than the first contextual distance.

[0143] Example 15 provides the method of any one of examples 12-14, further including updating one or more second parameters of the task head machine learning network based on the one or more predictions corresponding to the video frames.

[0144] Example 16 provides the method of any one of examples 12-15, further including updating one or more matrices corresponding to one or more of the first machine learning block and the second machine learning block based on the one or more predictions corresponding to the video frames.

[0145] Example 17 provides the method of any one of examples 12-16, where: one or more of the first machine learning block and the second machine learning block includes a transformer-based neural network.

[0146] Example 18 provides the method of any one of examples 12-17, where the first kernel further includes a fifth input, and the fifth input and the second input are separated by the first contextual distance.

[0147] Example 19 provides the method of any one of examples 12-18, where the second kernel further includes a sixth input, and the sixth input and the fourth input are separated by the second contextual distance.

[0148] Example 20 provides the method of any one of examples 12-19, where the first contextual distance measures a first difference between a first position of the first input within the first outputs and a second position of the second input within the first outputs.

[0149] Example 21 provides the method of any one of examples 12-20, where the second contextual distance measures a second difference between a third position of the third input within the third outputs and a fourth position of the fourth input within the third outputs.

[0150] Example 22 provides one or more non-transitory computer-readable media storing instructions that, when executed by one or more processors, cause the one or more processors to: generate, by a first machine learning block of a feature extraction network, a first output based on a first video frame; generate, by the first machine learning block, a second output based on a second video frame; apply a first kernel to at least the first output to generate a third output; apply the first kernel to at least the first output and the second output to generate a fourth output; input one or more further outputs of the feature extraction network into a task head machine learning network, the task head machine learning network to output one or more predictions about the first video frame and the second video frame; and update one or more first parameters of the first kernel based on the one or more predictions.

[0151] Example 23 provides the one or more non-transitory computer-readable media of example 22, where the instructions further cause the one or more processors to: update one or more second parameters of the task head machine learning network based on the one or more predictions.

[0152] Example 24 provides the one or more non-transitory computer-readable media of example 22 or 23, where the instructions further cause the one or more processors to:generate, by the first machine learning block, a fifth output based on a third video frame.

[0153] Example 25 provides the one or more non-transitory computer-readable media of example 24, where applying the first kernel to at least the first output and the second output to generate the fourth output includes applying the first kernel further to the fifth output to generate the fourth output.

[0154] Example 26 provides the one or more non-transitory computer-readable media of example 24 or 25, where the instructions further cause the one or more processors to:apply the first kernel to at least the second output and the fifth output to generate a sixth output.

[0155] Example 27 provides the one or more non-transitory computer-readable media of example 26, where the instructions further cause the one or more processors to: input the third output to a second machine learning block of the feature extraction network to generate a seventh output; and input the sixth output to the second machine learning block of the feature extraction network to generate an eighth output.

[0156] Example 28 provides the one or more non-transitory computer-readable media of example 27, where the instructions further cause the one or more processors to: apply a second kernel to at least the seventh output and the eighth output to generate a nineth output.

[0157] Example 29 provides the one or more non-transitory computer-readable media of example 28, where the instructions further cause the one or more processors to: generate, by the first machine learning block, a tenth output based on a fourth video frame; generate, by the first machine learning block, an eleventh output based on a fifth video frame; apply the second kernel to at least the tenth output, and the eleventh output to generate a twelfth output; and input the twelfth output into the second machine learning block of the feature extraction network to generate a thirteenth output; where applying the second kernel to at least the seventh output and the eighth output to generate the nineth output includes applying the second kernel further to the thirteenth output to generate the nineth output.

[0158] Example 30 provides the one or more non-transitory computer-readable media of any one of examples 22-29, where applying the first kernel to at least the first output to generate the third output includes applying the first kernel further to the second output to generate the third output.

[0159] Example 31 provides the one or more non-transitory computer-readable media of any one of examples 22-30, where applying the first kernel to at least the first output to generate the third output includes applying the first kernel further to an input padded with one or more zeros.

[0160] Example 32 provides the one or more non-transitory computer-readable media of any one of examples 22-31, where the instructions further cause the one or more processors to: update one or more matrices corresponding to the first machine learning block based on the one or more predictions.

[0161] Example 33 provides one or more non-transitory computer-readable media storing instructions that, when executed by one or more processors, cause the one or more processors to: generate, by a first machine learning block of a feature extraction network, first outputs based on respective video frames; apply a first kernel of the feature extraction network to the first outputs to generate second outputs, where the first kernel has a first input and a second input, and the first input and the second input has a first contextual distance; input the second outputs into a second machine learning block of the feature extraction network to generate respective third outputs; apply a second kernel of the feature extraction network to the third outputs to generate respective fourth outputs, where the second kernel has a third input and a fourth input, the third input and the fourth input have a second contextual distance, and the second contextual distance is different from the first contextual distance; and input further outputs of the feature extraction network into a task head machine learning network, the task head machine learning network to output one or more predictions corresponding to the video frames.

[0162] Example 34 provides the one or more non-transitory computer-readable media of example 33, where the instructions further cause the one or more processors to: update one or more first parameters of the first kernel and the second kernel based on the one or more predictions corresponding to the video frames.

[0163] Example 35 provides the one or more non-transitory computer-readable media of example 33 or 34, where the second contextual distance is greater than the first contextual distance.

[0164] Example 36 provides the one or more non-transitory computer-readable media of any one of examples 33-35, where the instructions further cause the one or more processors to: update one or more second parameters of the task head machine learning network based on the one or more predictions corresponding to the video frames.

[0165] Example 37 provides the one or more non-transitory computer-readable media of any one of examples 33-36, where the instructions further cause the one or more processors to: update one or more matrices corresponding to one or more of the first machine learning block and the second machine learning block based on the one or more predictions corresponding to the video frames.

[0166] Example 38 provides the one or more non-transitory computer-readable media of any one of examples 33-37, where: one or more of the first machine learning block and the second machine learning block includes a transformer-based neural network.

[0167] Example 39 provides the one or more non-transitory computer-readable media of any one of examples 33-38, where the first kernel further includes a fifth input, and the fifth input and the second input are separated by the first contextual distance.

[0168] Example 40 provides the one or more non-transitory computer-readable media of any one of examples 33-39, where the second kernel further includes a sixth input, and the sixth input and the fourth input are separated by the second contextual distance.

[0169] Example 41 provides the one or more non-transitory computer-readable media of any one of examples 33-40, where the first contextual distance measures a first difference between a first position of the first input within the first outputs and a second position of the second input within the first outputs.

[0170] Example 42 provides the one or more non-transitory computer-readable media of any one of examples 33-41, where the second contextual distance measures a second difference between a third position of the third input within the third outputs and a fourth position of the fourth input within the third outputs.

[0171] Example 43 provides an apparatus, including one or more processors; and one or more non-transitory computer-readable memories to store instructions, where the  instructions, when executed by the one or more processors, cause the one or more processors to: generate, by a first machine learning block of a feature extraction network, a first output based on a first video frame; generate, by the first machine learning block, a second output based on a second video frame; apply a first kernel to at least the first output to generate a third output; apply the first kernel to at least the first output and the second output to generate a fourth output; input one or more further outputs of the feature extraction network into a task head machine learning network, the task head machine learning network to output one or more predictions about the first video frame and the second video frame; and update one or more first parameters of the first kernel based on the one or more predictions.

[0172] Example 44 provides the apparatus of example 43, where the instructions further cause the one or more processors to: update one or more second parameters of the task head machine learning network based on the one or more predictions.

[0173] Example 45 provides the apparatus of example 43 or 44, where the instructions further cause the one or more processors to: generate, by the first machine learning block, a fifth output based on a third video frame.

[0174] Example 46 provides the apparatus of example 45, where applying the first kernel to at least the first output and the second output to generate the fourth output includes applying the first kernel further to the fifth output to generate the fourth output.

[0175] Example 47 provides the apparatus of example 45 or 46, where the instructions further cause the one or more processors to: apply the first kernel to at least the second output and the fifth output to generate a sixth output.

[0176] Example 48 provides the apparatus of example 47, where the instructions further cause the one or more processors to: input the third output to a second machine learning block of the feature extraction network to generate a seventh output; and input the sixth output to the second machine learning block of the feature extraction network to generate an eighth output.

[0177] Example 49 provides the apparatus of example 48, where the instructions further cause the one or more processors to: apply a second kernel to at least the seventh output and the eighth output to generate a nineth output.

[0178] Example 50 provides the apparatus of example 49, where the instructions further cause the one or more processors to: generate, by the first machine learning block, a tenth output based on a fourth video frame; generate, by the first machine learning block, an eleventh output based on a fifth video frame; apply the second kernel to at least the tenth output, and the eleventh output to generate a twelfth output; and input the twelfth output into the second machine learning block of the feature extraction network to generate a thirteenth output; where applying the second kernel to at least the seventh output and the eighth output to generate the nineth output includes applying the second kernel further to the thirteenth output to generate the nineth output.

[0179] Example 51 provides the apparatus of any one of examples 43-50, where applying the first kernel to at least the first output to generate the third output includes applying the first kernel further to the second output to generate the third output.

[0180] Example 52 provides the apparatus of any one of examples 43-51, where applying the first kernel to at least the first output to generate the third output includes applying the first kernel further to an input padded with one or more zeros.

[0181] Example 53 provides the apparatus of any one of examples 43-52, where the instructions further cause the one or more processors to: update one or more matrices corresponding to the first machine learning block based on the one or more predictions.

[0182] Example 54 provides an apparatus, including one or more processors; and one or more non-transitory computer-readable memories to store instructions, where the instructions, when executed by the one or more processors, cause the one or more processors to: generate, by a first machine learning block of a feature extraction network, first outputs based on respective video frames; apply a first kernel of the feature extraction network to the first outputs to generate second outputs, where the first kernel has a first input and a second input, and the first input and the second input has a first contextual distance; input the second outputs into a second machine learning block of the feature extraction network to generate respective third outputs; apply a second kernel of the feature extraction network to the third outputs to generate respective fourth outputs, where the second kernel has a third input and a fourth input, the third input and the fourth input have a second contextual distance, and the second contextual distance is different from the first contextual distance; and input further outputs of the feature extraction  network into a task head machine learning network, the task head machine learning network to output one or more predictions corresponding to the video frames.

[0183] Example 55 provides the apparatus of example 54, where the instructions further cause the one or more processors to: update one or more first parameters of the first kernel and the second kernel based on the one or more predictions corresponding to the video frames.

[0184] Example 56 provides the apparatus of example 54 or 55, where the second contextual distance is greater than the first contextual distance.

[0185] Example 57 provides the apparatus of any one of examples 54-56, where the instructions further cause the one or more processors to: update one or more second parameters of the task head machine learning network based on the one or more predictions corresponding to the video frames.

[0186] Example 58 provides the apparatus of any one of examples 54-57, where the instructions further cause the one or more processors to: update one or more matrices corresponding to one or more of the first machine learning block and the second machine learning block based on the one or more predictions corresponding to the video frames.

[0187] Example 59 provides the apparatus of any one of examples 54-58, where: one or more of the first machine learning block and the second machine learning block includes a transformer-based neural network.

[0188] Example 60 provides the apparatus of any one of examples 54-59, where the first kernel further includes a fifth input, and the fifth input and the second input are separated by the first contextual distance.

[0189] Example 61 provides the apparatus of any one of examples 54-60, where the second kernel further includes a sixth input, and the sixth input and the fourth input are separated by the second contextual distance.

[0190] Example 62 provides the apparatus of any one of examples 54-61, where the first contextual distance measures a first difference between a first position of the first input within the first outputs and a second position of the second input within the first outputs.

[0191] Example 63 provides the apparatus of any one of examples 54-62, where the second contextual distance measures a second difference between a third position of the  third input within the third outputs and a fourth position of the fourth input within the third outputs.

[0192] Example A is an apparatus comprising means for carrying out any one of the methods according to examples 1-21.

[0193] Example B includes a feature extraction network as described and illustrated herein.

[0194] Example C includes one or more multi-scale temporal adapters as described and illustrated herein.

[0195] Example D provides the one or more multi-scale temporal adapters of example C, further including one or more backbone adapters as described and illustrated herein.

[0196] Variations and other notes

[0197] Although the operations of the example method shown in and described with reference to FIGS. 2-6 are illustrated as occurring once each and in a particular order, it will be recognized that the operations may be performed in any suitable order and repeated as desired. Additionally, one or more operations may be performed in parallel. Furthermore, the operations illustrated in FIGS. 2-6 may be combined or may include more or fewer details than described.

[0198] The various implementations described herein may refer to artificial intelligence, machine learning, and deep learning. Deep learning may be a subset of machine learning. Machine learning may be a subset of artificial intelligence. In cases where a deep learning model is mentioned, if suitable for a particular application, a machine learning model may be used instead. In cases where a deep learning model is mentioned, if suitable for a particular application, a digital signal processing system may be used instead.

[0199] 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 will recognize. These modifications may be made to the disclosure in light of the above detailed description.

[0200] 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 will be apparent to one skilled in the art that the present disclosure may be practiced without the specific details and / or 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.

[0201] Further, references are made to the accompanying drawings that form a part hereof, and in which are 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.

[0202] Various operations may be described as multiple discrete actions or operations in turn, in a manner that is most helpful in understanding the disclosed 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.

[0203] 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.

[0204] 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.

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

[0206] 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.

[0207] 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, or device, 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, or device. Also, the term “or” refers to an inclusive “or” and not to an exclusive “or. ”

[0208] 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 and the accompanying drawings.

Claims

1.A method, comprising:generating, by a first machine learning block of a feature extraction network, first outputs based on respective video frames;applying a first kernel of the feature extraction network to the first outputs to generate second outputs, wherein the first kernel has a first input and a second input, and the first input and the second input has a first contextual distance;inputting the second outputs into a second machine learning block of the feature extraction network to generate respective third outputs;applying a second kernel of the feature extraction network to the third outputs to generate respective fourth outputs, wherein the second kernel has a third input and a fourth input, the third input and the fourth input have a second contextual distance, and the second contextual distance is different from the first contextual distance; andinputting further outputs of the feature extraction network into a task head machine learning network, the task head machine learning network to output one or more predictions corresponding to the video frames.2.The method of claim 1, further comprising:updating one or more first parameters of the first kernel and the second kernel based on the one or more predictions corresponding to the video frames.3.The method of claim 1, wherein the second contextual distance is greater than the first contextual distance.4.The method of claim 1, further comprising:updating one or more second parameters of the task head machine learning network based on the one or more predictions corresponding to the video frames.5.The method of claim 1, further comprising:updating one or more matrices corresponding to one or more of the first machine learning block and the second machine learning block based on the one or more predictions corresponding to the video frames.6.The method of claim 1, wherein:one or more of the first machine learning block and the second machine learning block comprises a transformer-based neural network.7.The method of claim 1, wherein the first contextual distance measures a first difference between a first position of the first input within the first outputs and a second position of the second input within the first outputs.8.The method of claim 1, wherein the second contextual distance measures a second difference between a third position of the third input within the third outputs and a fourth position of the fourth input within the third outputs.9.One or more non-transitory computer-readable media storing instructions that, when executed by one or more processors, cause the one or more processors to:generate, by a first machine learning block of a feature extraction network, first outputs based on respective video frames;apply a first kernel of the feature extraction network to the first outputs to generate second outputs, wherein the first kernel has a first input and a second input, and the first input and the second input has a first contextual distance;input the second outputs into a second machine learning block of the feature extraction network to generate respective third outputs;apply a second kernel of the feature extraction network to the third outputs to generate respective fourth outputs, wherein the second kernel has a third input and a fourth input, the third input and the fourth input have a second contextual distance, and the second contextual distance is different from the first contextual distance; andinput further outputs of the feature extraction network into a task head machine learning network, the task head machine learning network to output one or more predictions corresponding to the video frames.10.The one or more non-transitory computer-readable media of claim 9, wherein the instructions further cause the one or more processors to:update one or more first parameters of the first kernel and the second kernel based on the one or more predictions corresponding to the video frames.11.The one or more non-transitory computer-readable media of claim 9, wherein the second contextual distance is greater than the first contextual distance.12.The one or more non-transitory computer-readable media of claim 9, wherein the instructions further cause the one or more processors to:update one or more second parameters of the task head machine learning network based on the one or more predictions corresponding to the video frames.13.The one or more non-transitory computer-readable media of claim 9, wherein the 5instructions further cause the one or more processors to:update one or more matrices corresponding to one or more of the first machine learning block and the second machine learning block based on the one or more predictions corresponding to the video frames.14.The one or more non-transitory computer-readable media of claim 9, wherein:one or more of the first machine learning block and the second machine learning block comprises a transformer-based neural network.15.An apparatus, comprising:one or more processors; andone or more non-transitory computer-readable memories to store instructions, wherein the instructions, when executed by the one or more processors, cause the one or more processors to:generate, by a first transformer-based machine learning block of a feature extraction network, first outputs based on respective video frames;apply a first kernel of the feature extraction network to the first outputs to generate second outputs, wherein the first kernel has a first input and a second input, and the first input and the second input has a first contextual distance;input the second outputs into a second transformer-based machine learning block of the feature extraction network to generate respective third outputs;apply a second kernel of the feature extraction network to the third outputs to generate respective fourth outputs, wherein the second kernel has a third input and a fourth input, the third input and the fourth input have a second contextual distance, and the second contextual distance is greater than the first contextual distance; andinput further outputs of the feature extraction network into a task head machine learning network, the task head machine learning network to output one or more predictions corresponding to the video frames.16.The apparatus of claim 15, wherein the first contextual distance measures a first difference between a first position of the first input within the first outputs and a second position of the second input within the first outputs.17.The apparatus of claim 15, wherein the second contextual distance measures a second difference between a third position of the third input within the third outputs and a fourth position of the fourth input within the third outputs.18.The apparatus of claim 15, wherein the instructions further cause the one or more processors to:update one or more first parameters of the first kernel and the second kernel based on the one or more predictions corresponding to the video frames.19.The apparatus of claim 15, wherein the instructions further cause the one or more processors to:update one or more second parameters of the task head machine learning network based on the one or more predictions corresponding to the video frames.20.The apparatus of claim 15, wherein the instructions further cause the one or more processors to:update one or more matrices corresponding to one or more of the first transformer-based machine learning block and the second transformer-based machine learning block based on the one or more predictions corresponding to the video frames.

Citation Information

Patent Citations

  • Deep learning system

    CN112334918A

  • Image super-resolution reconstruction method and device, model distillation method and device and storage medium

    CN112767247A

  • Feature extraction method based on automatic parking model and convolutional neural network

    CN114913335A

  • Hyperspectral image classification method and device, computer equipment and storage medium

    CN117456274A

  • Method and device for generating speech image

    US20220343651A1