Improved Dense Trajectory with Cross Streams

Improved Dense Trajectory with Cross Streams

Katsunori Ohnishi
Graduate School of Information
Science and Technology
University of Tokyo
Masatoshi Hidaka
Graduate School of Information
Science and Technology
University of Tokyo
Tatsuya Harada
Graduate School of Information
Science and Technology
University of Tokyo

Improved dense trajectories (iDT) have shown great performance in action recognition, and their combination with the two-stream approach has achieved state-of-the-art performance. It is, however, difficult for iDT to completely remove background trajectories from video with camera shaking. Trajectories in less discriminative regions should be given modest weights in order to create more discriminative local descriptors for action recognition. In addition, the two-stream approach, which learns appearance and motion information separately, cannot focus on motion in important regions when extracting features from spatial convolutional layers of the appearance network, and vice versa. In order to address the above mentioned problems, we propose a new local descriptor that pools a new convolutional layer obtained from crossing two networks along iDT. This new descriptor is calculated by applying discriminative weights learned from one network to a convolutional layer of the other network. Our method has achieved state-of-the-art performance on ordinal action recognition datasets, 92.3% on UCF101, and 66.2% on HMDB51.

Action Recognition, Egocentric Vision, Video representation, Local descriptors, Video classification

acmcopyright \doi10.475/123_4 \isbn123-4567-24-567/08/06 \conferenceinfoPLDI ’13June 16–19, 2013, Seattle, WA, USA \acmPrice$15.00 \conferenceinfoWOODSTOCK’97 El Paso, Texas USA \numberofauthors3


<ccs2012> <concept> <concept_id>10010147.10010178.10010224.10010225.10010228</concept_id> <concept_desc>Computing methodologies Activity recognition and understanding</concept_desc> <concept_significance>300</concept_significance> </concept> </ccs2012> \ccsdesc[300]Computing methodologies Activity recognition and understanding \printccsdesc

1 Introduction and Related Work

Figure 1: Illustration of visualized iDT and feature map from convolutional layer in temporal net. We can see that there are some noisy trajectories in background due to camera shaking.

Video representation is becoming increasingly important in today’s online environment in which a massive amount of videos are uploaded on a daily basis. Various approaches have been proposed to efficiently and accurately represent the videos.

Dense trajectories [17] and improved dense trajectories (iDT) [18] have dominated action recognition. Extracting hand-crafted features [1, 9, 2] along these trajectories can provide effective local descriptors, and encoding these local descriptors with a Fisher vector (FV) [11] or a vector of locally aggregated descriptors (VLAD) [5] can provide an effective video representation [6].

Fueled by the recent success of convolutional neural networks (CNN) in image classification, video representations based on CNN have also been developed in action classification. The two-stream approach [12] is one of the most successful methods that learns appearance information and motion information separately using one network whose input is RGB and the other network whose input is optical flow. The idea of this separate learning has been widely used in later works [19, 21, 23].

Aiming at fully end-to-end learning, three-dimensional CNN learning methods that can capture spatial and temporal information simultaneously and automatically [15, 16] have been developed recently. However, three-dimensional CNN learning is still a very difficult task, and these methods have not yet achieved comparable performance to the state-of-the-art approach.

Trajectory-pooled deep-convolutional descriptors (TDD) [19] have shown state-of-the-art performance in action recognition by pooling convolutional two-stream layers along iDT. Because the convolutional layer retains position information, it is possible to combine it with iDT. However, TDD, which is based on iDT and the two-stream approach, has two main shortcomings: (1) as shown in Figure 1, iDT cannot completely remove the background image for videos captured by a shaking camera. This can be solved by giving modest weights to background trajectories. (2) Although each network in the two-stream approach captures important information for action recognition, separate CNN learning sometimes lacks other important information that can be obtained only when spatial and temporal information are combined together.

For example, thinking about the action of pitching a ball, it is difficult for spatial CNN to focus on the region around the pitcher’s hand from only a single RGB image. This shortcoming makes it difficult to discriminate between similar actions such as the difference between a soccer penalty kick and a field-hockey penalty shot, or between pitching a ball, a cricket shoot, a tennis serve, and a volleyball spike, especially when no background or context information is in the movie. Although iDT helps to solve this problem when recognizing action, iDT trajectories are hand-crafted so that they still contain both discriminative and non-discriminative trajectories. However, focusing on motion-important regions helps to extract more discriminative appearance features. When seeing a field hockey penalty, for example, the motion-important region is around the shooter’s stick and the kipper. Extracting appearance features around these regions enables us to better recognize whether the player uses their own leg or the hockey stick or whether the kipper wears a protector or not. This can be also said in the case where spatial CNN and temporal CNN are reversed.

In order to address the above-mentioned problems, we utilize both networks in a two-stream approach by crossing two networks. Convolutional layers in spatial CNNs provide discriminative appearance features with position information while those in temporal CNNs provide discriminative motion features with position information. Thus, we propose a new descriptor that uses one network for the weights and gives these to the other network and pools along iDT, named cross-stream pooled descriptors (CPD). This is equivalent to pooling a convolutional layer of one network along iDT weighted by the convolutional layer of the other network, which leads to giving modest weights to iDTs in less discriminative regions. Our method has improved the performance of TDD on the ordinal action recognition datasets, UCF101[14] and HMDB51[7].

2 Action Recognition Revisited

In this section, we describe previous works on which our method is based.

2.1 Improved Dense Trajectories

Improved dense trajectories (iDT) [18] are the improved version of dense trajectories [17], which can remove dense trajectories in background images considering camera motion. A video whose size is contains trajectories ():


where K is the number of trajectories in a video, is the position of the th point in trajectory , and is the length of trajectory. Following other works [3, 8, 18, 19], we set in this paper.

Figure 2: Illustration of the proposed local descriptors, named cross-stream pooled descriptors (CPD). After extraction, we encode these descriptors layer by layer and classify each of them. We then obtain final scores by simply summing all of their scores.

2.2 Two-Stream Approach

The two-stream approach [12] is a method that learns spatial information from RGB images and temporal information from optical flow images with each CNN separately. Since it is extremely difficult for a temporal net to learn motion using only single flow images, a sequence of ten frames are used as input. In this paper, we call the network learned from RGB images a ‘spatial network’ and a network learned from optical flow images a ‘temporal network.’

2.3 Trajectory-Pooled Deep-Convolutional Descriptors

Trajectory-pooled deep-convolutional descriptors (TDD) [19] combine iDT and the two-stream approach and achieves state-of-the-art performance on the UCF101 dataset. Given a ReLU applied convolutional layer from the two-stream approach, two normalization methods are applied to , where and are the width and height of the convolutional layer, is the number of channels, is the length of the video, and . Spatial normalization provides that and channel normalization provides that :


where is the position of the convolutional layer, n is the channel number of the convolutional layer, and t is the time in the video.

These and are pooled along iDT instead of the originally pooled features (HOG [1], HOF [9], and MBH [2]). Given a normalized convolutional layer , which is the convolutional layer after applying spatiotemporal normalization or channel normalization () from spatial or temporal nets (), proposed descriptors are obtained as follows:


where is the rounding operation and . These descriptors are encoded by FV. The final video representation is obtained by concatenating encoded vectors from both normalization methods.

3 iDT with the Cross Streams

As described to this point, separate CNN learning cannot
always focus on truly important regions to capture an action’s characteristics. Additionally, improved dense trajectories (iDT) cannot completely eliminate background trajectories from videos whose capturing camera experiences large motions. We address these problems to improve recognition performance using two equivalent methods. In this section, we describe both approaches in order to evaluate whether each problem can be improved by each calculation.

3.1 Cross-Stream Pooling Along iDT

In order to enhance motion-important regions in a spatial convolutional layer and appearance-important regions in a temporal convolutional layer, we propose a new convolutional layer for iDT pooling: the cross-stream layer. As shown in Figure 2, we produce spatial and temporal convolutional layers element-wise and pool the resulting four-dimensional matrix along iDT. We call this method cross-stream pooled descriptors (CPD). However, since each of the nth filters in and do not have the same meaning, the simple element-wise product might not work well. A convolutional layer shows large activation for discriminative regions. Thus, we can obtain a discriminative weight map by simply taking the sum in the n-direction:


where is a normalized layer calculated from as in equations (2) and (3). With this motion-based weight map, we can enhance the normalized spatial convolutional layer , which contains appearance information:


represents new appearance features enhanced by motion-important regions.

Similarly to motion-based weights, we can obtain appearance-based weights from , and is calculated in the same way. The term ‘cross stream’ originated from this cross utilization of two networks.

We then pool this along iDT as in equation (4) to obtain as follows:


3.2 Two-Stream Pooling Along Weighted iDT

We next consider our method from a different point of view. Cross-stream pooled descriptors (CPD) can also be calculated as follows. In order to give modest weights to trajectories in the background region, we take advantage of the rest of the network. A convolutional layer obtained from a temporal CNN in the two-stream approach, for example, has discriminative motion features without losing position information. Using this as the weight and giving this weight to iDT, we can obtain new trajectories that are emphasized if they are in the region that contains motion-discriminative trajectories and are less emphasized if they are in regions that contain less motion-discriminative trajectories. As in equation (5), we obtain a discriminative weight map by taking the sum in the -direction. Each trajectory is weighted by this map ; then, we can obtain the weighted iDT. As for motion-based weights, an iDT weighted by an appearance-based map is calculated in the same way. We then pool the normalized convolutional layer along the emphasized iDT whose weights are calculated from and obtain the CPD as follows:


This is equivalent to .

4 Experiments

Convolutional layer type FV VLAD
(a) Spatial 81.2% 81.8%
(b) Temporal 84.7% 85.5%
TDD: (a) + (b) 90.7% 91.5%
(c) Spatial weighted by temporal 81.3% 82.9%
(d) Temporal weighted by spatial 85.3% 85.9%
CPD (ours): (c) + (d) 90.4% 91.6%
TDD + CPD (ours) 90.8% 92.0%
Table 1: Performance of each layer type on the UCF101 split1 dataset using parameters for FV and for VLAD.
(a) (b) (c) (d)
Conv3 71.9% 77.6% 74.1% 77.7%
Conv4 78.2% 82.2% 78.5% 82.0%
Conv5 76.3% 82.8% 75.7% 81.2%
Conv3 + Conv4 79.0% 82.5% 80.3% 83.2%
Conv4 + Conv5 81.3% 85.5% 81.5% 85.8%
Conv3 + Conv4 + Conv5 82.2% 85.8% 83.3% 86.5%
Table 2: The combination of convolutional layers resulting in each network on the UCF101 split1 dataset when VLAD is applied using parameters . (a), (b), (c), and (d) represent spatial, temporal, spatial weighted by temporal, and temporal weighted by spatial cases.

4.1 Datasets and Settings

We conducted experiments on widely used action recognition datasets, UCF101 [14] and HMDB51 [7]. We chose VGG16 [13] as our CNN and utilized publicly available models [20] that had been already trained on UCF101. Because UCF101 has more variety of actions and videos, we used a model learned on UCF101 split 1 as the initial model for HMDB51 training. The learning rate and other training settings were the same as the training settings for UCF101[20]. We chose the models that showed the best validation scores during training.

As the convolutional layer for pooling, we chose conv3_3, conv4_3, and conv5_3 from VGG16. We call these conv3, conv4, and conv5 in this paper, respectively. A final video representation of each layer was obtained by concatenating st-normed and ch-normed Fisher vectors following TDD[19]. We fused SVM scores from each layer by taking the sum. Note that, in consideration of the calculation cost, we did not use multi-scale CNN, unlike TDD, and did not apply flipping or cropping to input images, unlike the original two-stream approach.

4.2 Analysis

Parameters and Coding Methods: We found the best coding method and parameters for TDD and CPD with UCF101 split1. Some previous works [6, 22] showed that VLAD encoding is also effective for action recognition. Thus, we tried both FV and VLAD for encoding. Through numerous experiments, we found that the best parameters for FV coding were , and those for VLAD coding were , where is the dimension after compression by PCA and is the number of clusters. Details are given in the supplemental material owing to limited space here.

Convolutional Type Combination: Table 1 shows that weighting the convolutional layer heightens accuracy for every layer and method, and combining our method with TDD improves the recognition accuracy of TDD. It is also shown that VLAD is more effective for all convolutional layer types than FV.

Layer Combination on Each Network: Table 2 presents the combination patterns of convolutional layers in each network. In all network types, we can see that using all layers showed the best performance. Thus, we simply employed all of them.

4.3 Evaluation of CPD

Algorithm HMDB51 UCF101
iDT & FV [18] 57.2% 85.9%
Two stream [12] 59.4% 88.0%
TDD & FV [19] 63.2% 90.3%
Two stream (VGG16) 91.4% [20]
Spatial net (VGG16 w/o flip&crop) 39.7% 75.5%
Temporal net (VGG16 w/o flip&crop) 53.6% 81.0%
Two stream (VGG16 w/o flip&crop) 59.3% 87.6%
TDD (VGG16) & FV 63.2% 91.3%
TDD (VGG16) & VLAD 65.0% 92.0%
CPD & VLAD (ours) 65.2% 91.8%
TDD (VGG16) + CPD (ours) 66.2% 92.3%
Table 3: Mean accuracy of CPD and other baseline methods on HMDB51 and UCF101. The score of two-stream (VGG16) on HMDB51 in our calculation.
Figure 3: Sum of filter activations. We only show spatial layer weighted by temporal, because it will appear as the same image as temporal layer weighted by spatial with this visualization method.

Table 3 represents the action accuracy of CPD and related methods on UCF101 [14] and HMDB51 [7], which are widely used action recognition datasets. Note that we did not flip and crop input images when predicting, unlike the original TDD. Although the two-stream approach of VGG16 without flipping and cropping shows worse performance than that of the original two-stream approach, as denoted in Table 3, the performance of TDD with FV is improved by replacing the CNN with VGG16. Encoding VLAD instead of FV also improves recognition accuracy. We then combine the scores of this TDD using VLAD with those of CPD, which increases the performance of TDD both on UCF101 and HMDB51.

Fig. 3 shows an example of the visualized iDTs and convolutional layer activation. We can see that the spatial convolutional layer shows activation on many other objects whilst the convolutional layer weighted by the temporal convolutional layer shows activation mainly of the players. It can also be seen that some background iDTs still remain in the image due to camera shaking. However, the spatial layer weighted by the temporal layer activates mainly over the shooter and the kipper, ignoring their backgrounds. Thus, we can confirm that our method extracts appearance information mainly from motion-important regions and that these features capture different characteristics from those of TDD, which augments recognition performance.

4.4 Comparison with state-of-the-art

iDT & FV [18] 57.2% iDT & FV [18] 85.9%
iDT & Stacked FV [10] 56.2% C3D [16] 85.2%
  + iDT & FV (66.8%)   + iDT & FV (90.4%)
[15] 59.1% [15] 88.1%
LATE [3] 62.2% MIFS [8] 89.1%
TDD & FV [19] 63.2% TDD & FV [19] 90.3%
  + iDT & FV (65.9%)   + iDT & FV (91.5%)
Video darwin [4] 63.7% Hybrid LSTM [21] 91.3%
MIFS [8] 65.1% Two stream (VGG16) [20] 91.4%
CPD (ours) 65.2% CPD (ours) 91.8%
TDD + CPD (ours) 66.2% TDD + CPD (ours) 92.3%
Table 4: Comparison with the state-of-the-art methods. The scores written inside of () is the accuracy when combined with iDT & FV [18].

Table 4 shows the comparison of our method with other methods of action recognition on the UCF101 and HMDB51 datasets. On UCF101, the proposed method achieved state-of-the-art performance: 0.8% improvement over the combination of TDD [19] and iDT [18]. On HDMB51, our method achieved comparable performance to state-of-the-art methods. Considering the scores without adding iDT & FV [18], our method shows the best performance.

5 Conclusion

This study proposed a new type of local descriptors for action recognition, termed cross-stream pooled descriptors (CPD), that pools crossed convolutional layers along iDT. Our method achieved state-of-the-art performance on the widely used action recognition datasets UCF101 and HMDB51.


  • [1] N. Dalal and B. Triggs. Histograms of oriented gradients for human detection. In CVPR, 2005.
  • [2] N. Dalal, B. Triggs, and C. Schmid. Human detection using oriented histograms of flow and appearance. In ECCV, 2006.
  • [3] C. Feichtenhofer, A. Pinz, and R. P. Wildes. Dynamically encoded actions based on spacetime saliency. In CVPR, 2015.
  • [4] B. Fernando, E. Gavves, J. M. Oramas, A. Ghodrati, and T. Tuytelaars. Modeling video evolution for action recognition. In CVPR, 2015.
  • [5] H. Jégou, M. Douze, C. Schmid, and P. Pérez. Aggregating local descriptors into a compact image representation. In CVPR, 2010.
  • [6] V. Kantorov and I. Laptev. Efficient feature extraction, encoding and classification for action recognition. In CVPR, 2014.
  • [7] H. Kuehne, H. Jhuang, E. Garrote, T. Poggio, and T. Serre. Hmdb: a large video database for human motion recognition. In ICCV, 2011.
  • [8] Z. Lan, M. Lin, X. Li, A. G. Hauptmann, and B. Raj. Beyond gaussian pyramid: Multi-skip feature stacking for action recognition. In CVPR, 2015.
  • [9] B. D. Lucas and T. Kanade. An iterative image registration technique with an application to stereo vision. IJCAI, 81:674–679, 1981.
  • [10] X. Peng, C. Zou, Y. Qiao, and Q. Peng. Action recognition with stacked fisher vectors. In ECCV. 2014.
  • [11] F. Perronnin and C. Dance. Fisher kernels on visual vocabularies for image categorization. In CVPR, 2007.
  • [12] K. Simonyan and A. Zisserman. Two-stream convolutional networks for action recognition in videos. In NIPS, 2014.
  • [13] K. Simonyan and A. Zisserman. Very deep convolutional networks for large-scale image recognition. In ICLR, 2015.
  • [14] K. Soomro, A. R. Zamir, and M. Shah. Ucf101: A dataset of 101 human actions classes from videos in the wild. arXiv:1212.0402, 2012.
  • [15] L. Sun, K. Jia, D.-Y. Yeung, and B. E. Shi. Human action recognition using factorized spatio-temporal convolutional networks. In ICCV, 2015.
  • [16] D. Tran, L. Bourdev, R. Fergus, L. Torresani, and M. Paluri. Learning spatiotemporal features with 3d convolutional networks. In ICCV, 2015.
  • [17] H. Wang, A. Kläser, C. Schmid, and C.-L. Liu. Action recognition by dense trajectories. In CVPR, 2011.
  • [18] H. Wang and C. Schmid. Action recognition with improved trajectories. In ICCV, 2013.
  • [19] L. Wang, Y. Qiao, and X. Tang. Action recognition with trajectory-pooled deep-convolutional descriptors. In CVPR, 2015.
  • [20] L. Wang, Y. Xiong, Z. Wang, and Y. Qiao. Towards good practices for very deep two-stream convnets. arXiv:1507.02159, 2015.
  • [21] Z. Wu, X. Wang, Y.-G. Jiang, H. Ye, and X. Xue. Modeling spatial-temporal clues in a hybrid deep learning framework for video classification. In ACMMM, 2015.
  • [22] Z. Xu, Y. Yang, and A. G. Hauptmann. A discriminative CNN video representation for event detection. In CVPR, 2015.
  • [23] J. Yue-Hei Ng, M. Hausknecht, S. Vijayanarasimhan, O. Vinyals, R. Monga, and G. Toderici. Beyond short snippets: Deep networks for video classification. In CVPR, 2015.

Supplemental Material

Appendix A Parameter on UCF101 split1

Following previous work that encodes CNN-based local descriptors [22], we first evaluate dimension reduction. Then, we explore the number of clusters for encoding.

a.1 Fv

We first evaluate descriptor dimensions after compression by PCA with a fixed number of gaussian mixtures . Table 5 shows that 64-D achieves the best performance on all methods. Thus, we employ 64-D for FV.

Next we evaluate number of gaussian mixtures . Table 6 shows that achieves the best result on TDD and TDD + CPD, while performs the best on CPD. However, on CPD shows comparable performance to . Thus, we fixed both on TDD and CPD in this paper.

Dimensions 32-D 64-D 128-D 256-D
TDD 90.3% 90.4% 90.4% 90.2%
CPD 90.0% 90.6% 90.4% 90.2%
TDD+CPD 90.2% 90.8% 90.5% 90.5%
Table 5: Impact of TDD and CPD dimensions after compression with fixed in FV.
TDD 89.5% 90.4% 90.7% 90.4%
CPD 89.9% 90.2% 90.4% 90.6%
TDD+CPD 90.2% 90.6% 90.8% 90.8%
Table 6: Impact of the number of gaussian mixture with fixed PCA dimensions of 64-D in FV.

a.2 Vlad

We also evaluate dimensions and number of clusters in VLAD. Table 7 shows that 128-D achieves the best performance on CPD and TDD + CPD. Although 128-D is not the best on TDD, it achieves comparable performance. Thus, we employ 128-D for VLAD. Next we evaluate number of k-means clusters . Table 8 shows its result. We can see the best is 64 on CPD and TDD + CPD. also achieves almost the same result as the best one, on TDD. Thus, we fixed both on TDD and CPD in this paper.

Dimensions 32-D 64-D 128-D 256-D
TDD 91.2% 91.1% 90.9% 91.1%
CPD 90.7% 91.2% 91.5% 91.5%
TDD+CPD 91.5% 91.2% 91.5% 91.4%
Table 7: Impact of the TDD and CPD dimensions after compression with fixed in VLAD.
TDD 91.6% 91.5% 91.3% 90.9%
CPD 90.3% 91.6% 91.3% 91.5%
TDD+CPD 91.6% 92.0% 91.5% 91.5%
Table 8: Impact of the number of k-means clusters with fixed PCA dimensions of 128-D in VLAD.
Comments 0
Request Comment
You are adding the first comment!
How to quickly get a good reply:
  • Give credit where it’s due by listing out the positive aspects of a paper before getting into which changes should be made.
  • Be specific in your critique, and provide supporting evidence with appropriate references to substantiate general statements.
  • Your comment should inspire ideas to flow and help the author improves the paper.

The better we are at sharing our knowledge with each other, the faster we move forward.
The feedback must be of minimum 40 characters and the title a minimum of 5 characters
Add comment
Loading ...
This is a comment super asjknd jkasnjk adsnkj
The feedback must be of minumum 40 characters
The feedback must be of minumum 40 characters

You are asking your first question!
How to quickly get a good answer:
  • Keep your question short and to the point
  • Check for grammar or spelling errors.
  • Phrase it like a question
Test description