Use 3D convolutional network to predict the speed of a car via dashcam stream. The final mean squared error on validation set is 3.1 (mile/hour)^2.
We propose a simple, yet effective approach for spatiotemporal feature learning using deep 3-dimensional convolutional networks (3D ConvNets) trained on a large scale supervised video dataset. Our findings are three-fold: 1) 3D ConvNets are more suitable for spatiotemporal feature learning compared to 2D ConvNets; 2) A homogeneous architecture with small 3x3x3 convolution kernels in all layers is among the best performing architectures for 3D ConvNets; and 3) Our learned features, namely C3D (Convolutional 3D), with a simple linear classifier outperform state-of-the-art methods on 4 different benchmarks and are comparable with current best methods on the other 2 benchmarks. In addition, the features are compact: achieving 52.8 with only 10 dimensions and also very efficient to compute due to the fast inference of ConvNets. Finally, they are conceptually very simple and easy to train and use.READ FULL TEXT VIEW PDF
In this paper we study 3D convolutional networks for video understanding...
We present an efficient method for detecting anomalies in videos. Recent...
A number of techniques for interpretability have been presented for deep...
Group convolution has been shown to offer great computational savings in...
Traditional video quality assessment (VQA) methods evaluate localized pi...
3D CNN shows its strong ability in learning spatiotemporal representatio...
This paper aims to improve the feature learning in Convolutional Network...
Use 3D convolutional network to predict the speed of a car via dashcam stream. The final mean squared error on validation set is 3.1 (mile/hour)^2.
Multimedia on the Internet is growing rapidly resulting in an increasing number of videos being shared every minute. To combat the information explosion it is essential to understand and analyze these videos for various purposes like search, recommendation, ranking etc. The computer vision community has been working on video analysis for decades and tackled different problems such as action recognition, abnormal event detection , and activity understanding . Considerable progress has been made in these individual problems by employing different specific solutions. However, there is still a growing need for a generic video descriptor that helps in solving large-scale video tasks in a homogeneous way.
|Task||action recognition||action recognition||action similarity labeling||scene classification||scene classification||object recognition|
There are four properties for an effective video descriptor: (i) it needs to be generic, so that it can represent different types of videos well while being discriminative. For example, Internet videos can be of landscapes, natural scenes, sports, TV shows, movies, pets, food and so on; (ii) the descriptor needs to be compact: as we are working with millions of videos, a compact descriptor helps processing, storing, and retrieving tasks much more scalable; (iii) it needs to be efficient to compute, as thousands of videos are expected to be processed every minute in real world systems; and (iv) it must be simple to implement. Instead of using complicated feature encoding methods and classifiers, a good descriptor should work well even with a simple model (e.g. linear classifier).
Inspired by the deep learning breakthroughs in the image domain where rapid progress has been made in the past few years in feature learning, various pre-trained convolutional network (ConvNet) models 
are made available for extracting image features. These features are the activations of the network’s last few fully-connected layers which perform well on transfer learning tasks[47, 48]
. However, such image based deep features are not directly suitable for videos due to lack of motion modeling (as shown in our experiments in sections4,5,6). In this paper we propose to learn spatio-temporal features using deep D ConvNet. We empirically show that these learned features with a simple linear classifier can yield good performance on various video analysis tasks. Although D ConvNets were proposed before [15, 18], to our knowledge this work exploits 3D ConvNets in the context of large-scale supervised training datasets and modern deep architectures to achieve the best performance on different types of video analysis tasks. The features from these 3D ConvNets encapsulate information related to objects, scenes and actions in a video, making them useful for various tasks without requiring to finetune the model for each task. C3D has the properties that a good descriptor should have: it is generic, compact, simple and efficient. To summarize, our contributions in this paper are:
We experimentally show 3D convolutional deep networks are good feature learning machines that model appearance and motion simultaneously.
We empirically find that convolution kernel for all layers to work best among the limited set of explored architectures.
The proposed features with a simple linear model outperform or approach the current best methods on 4 different tasks and 6 different benchmarks (see Table 1). They are also compact and efficient to compute.
Videos have been studied by the computer vision community for decades. Over the years various problems like action recognition 2], video retrieval , event and action detection [30, 17], and many more have been proposed. Considerable portion of these works are about video representations. Laptev and Lindeberg  proposed spatio-temporal interest points (STIPs) by extending Harris corner detectors to D. SIFT and HOG are also extended into SIFT-D  and HOG3D  for action recognition. Dollar et al. proposed Cuboids features for behavior recognition . Sadanand and Corso built ActionBank for action recognition . Recently, Wang et al. proposed improved Dense Trajectories (iDT)  which is currently the state-of-the-art hand-crafted feature. The iDT descriptor is an interesting example showing that temporal signals could be handled differently from that of spatial signal. Instead of extending Harris corner detector into 3D, it starts with densely-sampled feature points in video frames and uses optical flows to track them. For each tracker corner different hand-crafted features are extracted along the trajectory. Despite its good performance, this method is computationally intensive and becomes intractable on large-scale datasets.
With recent availability of powerful parallel machines (GPUs, CPU clusters), together with large amounts of training data, convolutional neural networks (ConvNets) have made a come back providing breakthroughs on visual recognition [10, 24]
. ConvNets have also been applied to the problem of human pose estimation in both images and videos . More interestingly these deep networks are used for image feature learning . Similarly, Zhou et al. and perform well on transferred learning tasks. Deep learning has also been applied to video feature learning in an unsupervised setting . In Le et al. , the authors use stacked ISA to learn spatio-temporal features for videos. Although this method showed good results on action recognition, it is still computationally intensive at training and hard to scale up for testing on large datasets. D ConvNets were proposed for human action recognition  and for medical image segmentation [14, 42]
. 3D convolution was also used with Restricted Boltzmann Machines to learn spatiotemporal features. Recently, Karpathy et al.  trained deep networks on a large video dataset for video classification. Simonyan and Zisserman  used two stream networks to achieve best results on action recognition.
Among these approaches, the D ConvNets approach in  is most closely related to us. This method used a human detector and head tracking to segment human subjects in videos. The segmented video volumes are used as inputs for a 3-convolution-layer 3D ConvNet to classify actions. In contrast, our method takes full video frames as inputs and does not rely on any preprocessing, thus easily scaling to large datasets. We also share some similarities with Karpathy et al.  and Simonyan and Zisserman  in terms of using full frames for training the ConvNet. However, these methods are built on using only 2D convolution and 2D pooling operations (except for the Slow Fusion model in ) whereas our model performs 3D convolutions and 3D pooling propagating temporal information across all the layers in the network (further detailed in section 3). We also show that gradually pooling space and time information and building deeper networks achieves best results and we discuss more about the architecture search in section 3.2.
In this section we explain in detail the basic operations of 3D ConvNets, analyze different architectures for 3D ConvNets empirically, and elaborate how to train them on large-scale datasets for feature learning.
We believe that D ConvNet is well-suited for spatiotemporal feature learning. Compared to D ConvNet, D ConvNet has the ability to model temporal information better owing to D convolution and D pooling operations. In D ConvNets, convolution and pooling operations are performed spatio-temporally while in 2D ConvNets they are done only spatially. Figure 1 illustrates the difference, D convolution applied on an image will output an image, D convolution applied on multiple images (treating them as different channels ) also results in an image. Hence, D ConvNets lose temporal information of the input signal right after every convolution operation. Only D convolution preserves the temporal information of the input signals resulting in an output volume. The same phenomena is applicable for D and D polling. In , although the temporal stream network takes multiple frames as input, because of the D convolutions, after the first convolution layer, temporal information is collapsed completely. Similarly, fusion models in  used D convolutions, most of the networks lose their input’s temporal signal after the first convolution layer. Only the Slow Fusion model in  uses D convolutions and averaging pooling in its first convolution layers. We believe this is the key reason why it performs best among all networks studied in . However, it still loses all temporal information after the third convolution layer.
In this section, we empirically try to identify a good architecture for 3D ConvNets. Because training deep networks on large-scale video datasets is very time-consuming, we first experiment with UCF101, a medium-scale dataset, to search for the best architecture. We verify the findings on a large scale dataset with a smaller number of network experiments. According to the findings in 2D ConvNet , small receptive fields of convolution kernels with deeper architectures yield best results. Hence, for our architecture search study we fix the spatial receptive field to and vary only the temporal depth of the 3D convolution kernels.
Notations: For simplicity, from now on we refer video clips with a size of where is the number of channels, is length in number of frames, and are the height and width of the frame, respectively. We also refer 3D convolution and pooling kernel size by , where is kernel temporal depth and is kernel spatial size.
Common network settings: In this section we describe the network settings that are common to all the networks we trained. The networks are set up to take video clips as inputs and predict the class labels which belong to different actions. All video frames are resized into . This is roughly half resolution of the UCF101 frames. Videos are split into non-overlapped 16-frame clips which are then used as input to the networks. The input dimensions are . We also use jittering by using random crops with a size of of the input clips during training. The networks have convolution layers and pooling layers (each convolution layer is immediately followed by a pooling layer), fully-connected layers and a softmax loss layer to predict action labels. The number of filters for convolution layers from to are , , , , , respectively. All convolution kernels have a size of where is the kernel temporal depth (we will later vary the value of these layers to search for a good
, thus there is no change in term of size from the input to the output of these convolution layers. All pooling layers are max pooling with kernel size(except for the first layer) with stride which means the size of output signal is reduced by a factor of compared with the input signal. The first pooling layer has kernel size with the intention of not to merge the temporal signal too early and also to satisfy the clip length of frames (e.g. we can temporally pool with factor at most times before completely collapsing the temporal signal). The two fully connected layers have outputs. We train the networks from scratch using mini-batches of clips, with initial learning rate of . The learning rate is divided by after every epochs. The training is stopped after epochs.
Varying network architectures: For the purposes of this study we are mainly interested in how to aggregate temporal information through the deep networks. To search for a good 3D ConvNet architecture, we only vary kernel temporal depth of the convolution layers while keeping all other common settings fixed as stated above. We experiment with two types of architectures: 1) homogeneous temporal depth: all convolution layers have the same kernel temporal depth; and 2) varying temporal depth: kernel temporal depth is changing across the layers. For homogeneous setting, we experiment with networks having kernel temporal depth of equal to , , , and . We name these networks as depth-d, where is their homogeneous temporal depth. Note that depth- net is equivalent to applying D convolutions on separate frames. For the varying temporal depth setting, we experiment two networks with temporal depth increasing: 3-3-5-5-7 and decreasing: 7-5-5-3-3 from the first to the fifth convolution layer respectively. We note that all of these networks have the same size of the output signal at the last pooling layer, thus they have the same number of parameters for fully connected layers. Their number of parameters is only different at convolution layers due to different kernel temporal depth. These differences are quite minute compared to millions of parameters in the fully connected layers. For example, any two of the above nets with temporal depth difference of , only has 17K parameters fewer or more from each other. The biggest difference in number of parameters is between depth- net and depth- net where depth- net has 51K more parameters which is less than of the total of millions parameters of each network. This indicates that the learning capacity of the networks are comparable and the differences in number of parameters should not affect the results of our architecture search.
We train these networks on the train split 1 of UCF101. Figure 2 presents clip accuracy of different architectures on UCF101 test split 1. The left plot shows results of nets with homogeneous temporal depth and the right plot presents results of nets that changing kernel temporal depth. Depth- performs best among the homogeneous nets. Note that depth- is significantly worse than the other nets which we believe is due to lack of motion modeling. Compared to the varying temporal depth nets, depth- is the best performer, but the gap is smaller. We also experiment with bigger spatial receptive field (e.g. ) and/or full input resolution ( frame inputs) and still observe similar behavior. This suggests is the best kernel choice for 3D ConvNets (according to our subset of experiments) and 3D ConvNets are consistently better than 2D ConvNets for video classification. We also verify that 3D ConvNet consistently performs better than 2D ConvNet on a large-scale internal dataset, namely I380K.
|Method||Number of Nets||Clip hit@1||Video hit@1||Video hit@5|
|DeepVideo’s Single-Frame + Multires ||3 nets||42.4||60.0||78.5|
|DeepVideo’s Slow Fusion ||1 net||41.9||60.9||80.2|
|Convolution pooling on 120-frame clips ||3 net||70.8*||72.4||90.8|
|C3D (trained from scratch)||1 net||44.9||60.0||84.4|
|C3D (fine-tuned from I380K pre-trained model)||1 net||46.1||61.1||85.2|
Network architecture: Our findings in the previous section indicate that homogeneous setting with convolution kernels of is the best option for 3D ConvNets. This finding is also consistent with a similar finding in 2D ConvNets . With a large-scale dataset, one can train a 3D ConvNet with kernel as deep as possible subject to the machine memory limit and computation affordability. With current GPU memory, we design our 3D ConvNet to have 8 convolution layers, 5 pooling layers, followed by two fully connected layers, and a softmax output layer. The network architecture is presented in figure 3. For simplicity, we call this net C3D from now on. All of D convolution filters are with stride . All D pooling layers are with stride except for pool1 which has kernel size of and stride with the intention of preserving the temporal information in the early phase. Each fully connected layer has output units.
Dataset. To learn spatiotemproal features, we train our C3D on Sports-1M dataset  which is currently the largest video classification benchmark. The dataset consists of million sports videos. Each video belongs to one of sports categories. Compared with UCF101, Sports-1M has times the number of categories and times the number of videos.
Training: Training is done on the Sports-1M train split. As Sports-1M has many long videos, we randomly extract five 2-second long clips from every training video. Clips are resized to have a frame size of . On training, we randomly crop input clips into crops for spatial and temporal jittering. We also horizontally flip them with probability. Training is done by SGD with mini-batch size of examples. Initial learning rate is , and is divided by every 150K iterations. The optimization is stopped at 1.9M iterations (about epochs). Beside the C3D net trained from scratch, we also experiment with C3D net fine-tuned from the model pre-trained on I380K.
Sports-1M classification results: Table 2 presents the results of our C3D networks compared with DeepVideo  and Convolution pooling . We use only a single center crop per clip, and pass it through the network to make the clip prediction. For video predictions, we average clip predictions of clips which are randomly extracted from the video. It is worth noting some setting differences between the comparing methods. DeepVideo and C3D use short clips while Convolution pooling  uses much longer clips. DeepVideo uses more crops: crops per clip and crops per video compared with and used by C3D, respectively. The C3D network trained from scratch yields an accuracy of and the one fine-tuned from the I380K pre-trained model yields at video top- accuracy. Both C3D networks outperform DeepVideo’s networks. C3D is still below the method of . However, this method uses convolution pooling of deep image features on long clips of frames, thus it is not directly comparable to C3D and DeepVideo which operate on much shorter clips. We note that the difference in top-1 accuracy for clips and videos of this method is small () as it already uses 120-frame clips as inputs. In practice, convolution pooling or more sophisticated aggregation schemes  can be applied on top of C3D features to improve video hit performance.
C3D video descriptor: After training, C3D can be used as a feature extractor for other video analysis tasks. To extract C3D feature, a video is split into frame long clips with a 8-frame overlap between two consecutive clips. These clips are passed to the C3D network to extract fc6 activations. These clip fc6 activations are averaged to form a -dim video descriptor which is then followed by an L2-normalization. We refer to this representation as C3D video descriptor/feature in all experiments, unless we clearly specify the difference.
What does C3D learn? We use the deconvolution method explained in  to understand what C3D is learning internally. We observe that C3D starts by focusing on appearance in the first few frames and tracks the salient motion in the subsequent frames. Figure 4 visualizes deconvolution of two C3D conv5b feature maps with highest activations projected back to the image space. In the first example, the feature focuses on the whole person and then tracks the motion of the pole vault performance over the rest of the frames. Similarly in the second example it first focuses on the eyes and then tracks the motion happening around the eyes while applying the makeup. Thus C3D differs from standard 2D ConvNets in that it selectively attends to both motion and appearance. We provide more visualizations in the supplementary material to give a better insight about the learned feature.
Dataset: We evaluate C3D features on UCF101 dataset . The dataset consists of videos of human action categories. We use the three split setting provided with this dataset.
Classification model: We extract C3D features and input them to a multi-class linear SVM for training models. We experiment with C3D descriptor using 3 different nets: C3D trained on I380K, C3D trained on Sports-1M, and C3D trained on I380K and fine-tuned on Sports-1M. In the multiple nets setting, we concatenate the L2-normalized C3D descriptors of these nets.
Baselines: We compare C3D feature with a few baselines: the current best hand-crafted features, namely improved dense trajectories (iDT) 
and the popular-used deep image features, namely Imagenet
, using Caffe’s Imagenet pre-train model. For iDT, we use the bag-of-word representation with a codebook size of
for each feature channel of iDT which are trajectories, HOG, HOF, MBHx, and MBHy. We normalize histogram of each channel separately using L1-norm and concatenate these normalized histograms to form a 25K feature vector for a video. For Imagenet baseline, similar to C3D, we extract Imagenetfc6 feature for each frame, average these frame features to make video descriptor. A multi-class linear SVM is also used for these two baselines for a fair comparison.
|Imagenet + linear SVM||68.8|
|iDT w/ BoW + linear SVM||76.2|
|Deep networks ||65.4|
|Spatial stream network ||72.6|
|LSTM composite model ||75.8|
|C3D (1 net) + linear SVM||82.3|
|C3D (3 nets) + linear SVM||85.2|
|iDT w/ Fisher vector ||87.9|
|Temporal stream network ||83.7|
|Two-stream networks ||88.0|
|LSTM composite model ||84.3|
|Conv. pooling on long clips ||88.2|
|LSTM on long clips ||88.6|
|Multi-skip feature stacking ||89.1|
|C3D (3 nets) + iDT + linear SVM||90.4|
Results: Table 3 presents action recognition accuracy of C3D compared with the two baselines and current best methods. The upper part shows results of the two baselines. The middle part presents methods that use only RGB frames as inputs. And the lower part reports all current best methods using all possible feature combinations (e.g. optical flows, iDT).
C3D fine-tuned net performs best among three C3D nets described previously. The performance gap between these three nets, however, is small (). From now on, we refer to the fine-tuned net as C3D, unless otherwise stated. C3D using one net which has only dimensions obtains an accuracy of . C3D with nets boosts the accuracy to with the dimension is increased to . C3D when combined with iDT further improves the accuracy to , while when it is combined with Imagenet, we observe only improvement. This indicates C3D can well capture both appearance and motion information, thus there is no benefit to combining with Imagenet which is an appearance based deep feature. On the other hand, it is beneficial to combine C3D with iDT as they are highly complementary to each other. In fact, iDT are hand-crafted features based on optical flow tracking and histograms of low-level gradients while C3D captures high level abstract/semantic information.
C3D with nets achieves which is and better than the iDT and Imagenet baselines, respectively. On the only RGB input setting, compared with CNN-based approaches, Our C3D outperforms deep networks  and spatial stream network in  by and , respectively. Both deep networks  and spatial stream network in  use AlexNet architecture. While in , the net is fine-tuned from their model pre-trained on Sports-1M, spatial stream network in 
is fine-tuned from Imagenet pre-trained model. Our C3D is different from these CNN-base methods in term of network architecture and basic operations. In addition, C3D is trained on Sports-1M and used as is without any finetuning. Compared with Recurrent Neural Networks (RNN) based methods, C3D outperforms Long-term Recurrent Convolutional Networks (LRCN) and LSTM composite model  by and , respectively. C3D with only RGB input still outperforms these two RNN-based methods when they used both optical flows and RGB as well as the temporal stream network in . However, C3D needs to be combined with iDT to outperform two-stream networks , the other iDT-based methods [31, 25], and the method that focuses on long-term modeling . Apart from the promising numbers, C3D also has the advantage of simplicity compared to the other methods.
C3D is compact: In order to evaluate the compactness of C3D features we use PCA to project the features into lower dimensions and report the classification accuracy of the projected features on UCF101  using a linear SVM. We apply the same process with iDT  as well as Imagenet features  and compare the results in Figure 5. At the extreme setting with only dimensions, C3D accuracy is which is more than better than the accuracy of Imagenet and iDT which are about . At and dim, C3D obtains an accuracy of and which are about - better than Imagenet and iDT. Finally, with dimensions, C3D is able to achieve accuracy which is better than iDT and better than Imagenet. This indicates that our features are both compact and discriminative. This is very helpful for large-scale retrieval applications where low storage cost and fast retrieval are crucial.
We qualitatively evaluate our learned C3D features to verify if it is a good generic feature for video by visualizing the learned feature embedding on another dataset. We randomly select K clips from UCF101, then extract fc6 features for those clips using for features from Imagenet and C3D. These features are then projected to -dimensional space using t-SNE . Figure 6 visualizes the feature embedding of the features from Imagenet and our C3D on UCF101. It is worth noting that we did not do any fine-tuning as we wanted to verify if the features show good generalization capability across datasets. We quantitatively observe that C3D is better than Imagenet.
Dataset: The ASLAN dataset consists of videos from action classes. The task is to predict if a given pair of videos belong to the same or different action. We use the prescribed -fold cross validation with the splits provided with the dataset. This problem is different from action recognition, as the task focuses on predicting action similarity not the actual action label. The task is quite challenging because the test set contains videos of “never-seen-before” actions.
Features: We split videos into -frame clips with an overlap of frames. We extract C3D features: prob, fc7, fc6, pool5 for each clip. The features for videos are computed by averaging the clip features separately for each type of feature, followed by an L normalization.
Classification model: We follow the same setup used in . Given a pair of videos, we compute the different distances provided in . With types of features, we obtain -dimensional () feature vector for each video pair. As these
distances are not comparable to each other, we normalize them independently such that each dimension has zero mean and unit variance. Finally, a linear SVM is trained to classify video pairs into same or different on these-dim feature vectors. Beside comparing with current methods, we also compare C3D with a strong baseline using deep image-based features. The baseline has the same setting as our C3D and we replace C3D features with Imagenet features.
Results: We report the result of C3D and compare with state-of-the-art methods in table 4. While most current methods use multiple hand-crafted features, strong encoding methods (VLAD, Fisher Vector), and complex learning models, our method uses a simple averaging of C3D features over the video and a linear SVM. C3D significantly outperforms state-of-the-art method  by on accuracy and on area under ROC curve (AUC). Imagenet baseline performs reasonably well which is just below state-of-the-art method , but worse than C3D due to lack of motion modeling. Figure 7 plots the ROC curves of C3D compared with current methods and human performance. C3D has clearly made a significant improvement which is a halfway from current state-of-the-art method to human performance ().
Datasets: For dynamic scene recognition, we evaluate C3D on two benchmarks: YUPENN  and Maryland . YUPENN consists of videos of scene categories and Maryland has videos of scene categories. For object recognition, we test C3D on egocentric dataset  which consists types of everyday objects. A point to note, this dataset is egocentric and all videos are recorded in a first person view which have quite different appearance and motion characteristics than any of the videos we have in the training dataset.
: For both datasets, we use the same setup of feature extraction and linear SVM for classification and follow the same leave-one-out evaluation protocol as described by the authors of these datasets. For object dataset, the standard evaluation is based on frames. However, C3D takes a video clip of lengthframes to extract the feature. We slide a window of frames over all videos to extract C3D features. We choose the ground truth label for each clip to be the most frequently occurring label of the clip. If the most frequent label in a clip occurs fewer than frames, we consider it as negative clip with no object and discard it in both training and testing. We train and test C3D features using linear SVM and report the object recognition accuracy. We follow the same split provided in . We also compare C3D with a baseline using Imagenet feature on these 3 benchmarks.
Results: Table 5 reports our C3D results and compares it with the current best methods. On scene classification, C3D outperforms state-of-the-art method  by and on Maryland and YUPENN respectively. It is worth nothing that C3D uses only a linear SVM with simple averaging of clip features while the second best method  uses different complex feature encodings (FV, LLC, and dynamic pooling). The Imagenet baseline achieves similar performance with C3D on Maryland and lower than C3D on YUPENN. On object recognition, C3D obtains accuracy and outperforms  by with only linear SVM where the comparing method used RBF-kernel on strong SIFT-RANSAC feature matching. Compared with Imagenet baseline, C3D is still worse. This can be explained by the fact that C3D uses smaller input resolution () compared to full-size resolution () using by Imagenet. Since C3D is trained only on Sports-1M videos without any fine-tuning while Imagenet is fully trained on object categories, we did not expect C3D to work that well on this task. The result is very surprising and shows how generic C3D is on capturing appearance and motion information in videos.
We compare the runtime of C3D and with iDT  and the Temporal stream network . For iDT, we use the code kindly provided by the authors . For , there is no public model available to evaluate. However, this method uses Brox’s optical flows  as inputs. We manage to evaluate runtime of Brox’s method using two different versions: CPU implementation provided by the authors  and the GPU implementation provided in OpenCV.
We report runtime of the three above-mentioned methods to extract features (including I/O) for the whole UCF101 dataset in table 6 using using a single CPU or a single K40 Tesla GPU.  reported a computation time (without I/O) of s for a pair of images. In our experiment, Brox’s GPU implementation takes -s per image pair including I/O. Note that this is not a fair comparison for iDT as it uses only CPU. We cannot find any GPU implementation of this method and it is not trivial to implement a parallel version of this algorithm on GPU. Note that C3D is much faster than real-time, processing at 313 fps while the other two methods have a processing speed of less than fps.
In this work we try to address the problem of learning spatiotemporal features for videos using 3D ConvNets trained on large-scale video datasets. We conducted a systematic study to find the best temporal kernel length for 3D ConvNets. We showed that C3D can model appearance and motion information simultaneously and outperforms the 2D ConvNet features on various video analysis tasks. We demonstrated that C3D features with a linear classifier can outperform or approach current best methods on different video analysis benchmarks. Last but not least, the proposed C3D features are efficient, compact, and extremely simple to use.
C3D source code and pre-trained model are available at http://vlg.cs.dartmouth.edu/c3d.
Acknowledgment: we would like to thank Yann Lecun for his valuable feedback, Nikhil Johri and Engineering at Facebook AI Research for data and infrastructure support.
As part of the architecture study, we examine the effects of input resolution on 3D ConvNets. We use the same common network setting described in section 3. We fix all convolution kernels to and vary the input resolutions to study the effects. We experiment with different nets with input resolutions of , , and , namely net-64, net-128, and net-256, respectively. Note that net-128 is equivalent to the depth-3 net in section 3.2. Because of the difference in input resolutions, these nets have different output size at the last pooling layer, thus leading to a significant difference in terms of number of parameters. Table 7 reports the numbers of parameters and the training time of these nets. Figure 8 presents the clip accuracy of these nets on UCF101 test split-1. Net-128 outperforms net-64 by and attains a comparable accuracy with net-256. This indicates that net-128 provides a good trade-off between training time, accuracy, and memory consumption. We note that with the current GPU memory limit, one has to use model parallelism to train C3D with input resolution.
|of params (M)||11.1||17.5||34.8|
|Train time (mins/epoch)||92||270||1186|
For a better understanding of what C3D learned internally, we provide additional visualizations using deconvolution.
Decovolutions of C3D: We randomly select 20K clips from UCF101. We group clips that fire strongly for the same feature map at a pre-selected convolution layer. We use deconvolution  to project the top activations of these clips back into image space. We visualize the gradients causing the activiation together with the corresponding cropped image sequences. Note that we did not do any fine-tuning of C3D model on UCF101.
Figure 9 and 10 visualize deconvolutions of C3D learned feature maps at the layers conv2a and conv3b. Visualizations of the same feature map are grouped together. For figures 11, 12, 13, and 14, each figure presents the deconvolutions of one learned feature map of the conv5b layer. Finally, figure 15 compares the deconvolutions of several C3D conv5b feature maps with optical flows. As showed in the visualizations, at early convolution layer conv2a, C3D learns low-level motion patterns such as moving edges, blobs, short changes, edge orientation changes, or color changes. At a higher layer of conv3b, C3D learns bigger moving patterns of corners, textures, body parts, and trajectories. Finally, at the deepest convolution layer, conv5b, C3D learns more complicated motion patterns such as moving circular objects, biking-like motions.