Two-Stream Region Convolutional 3D Network for Temporal Activity Detection

06/05/2019 ∙ by Huijuan Xu, et al. ∙ IIT Kharagpur berkeley college 2

We address the problem of temporal activity detection in continuous, untrimmed video streams. This is a difficult task that requires extracting meaningful spatio-temporal features to capture activities, accurately localizing the start and end times of each activity. We introduce a new model, Region Convolutional 3D Network (R-C3D), which encodes the video streams using a three-dimensional fully convolutional network, then generates candidate temporal regions containing activities and finally classifies selected regions into specific activities. Computation is saved due to the sharing of convolutional features between the proposal and the classification pipelines. We further improve the detection performance by efficiently integrating an optical flow based motion stream with the original RGB stream. The two-stream network is jointly optimized by fusing the flow and RGB feature maps at different levels. Additionally, the training stage incorporates an online hard example mining strategy to address the extreme foreground-background imbalance typically observed in any detection pipeline. Instead of heuristically sampling the candidate segments for the final activity classification stage, we rank them according to their performance and only select the worst performers to update the model. This improves the model without heavy hyper-parameter tuning. Extensive experiments on three benchmark datasets are carried out to show superior performance over existing temporal activity detection methods. Our model achieves state-of-the-art results on the THUMOS'14 and Charades datasets. We further demonstrate that our model is a general temporal activity detection framework that does not rely on assumptions about particular dataset properties by evaluating our approach on the ActivityNet dataset.



There are no comments yet.


page 1

page 5

page 7

page 10

page 14

This week in AI

Get the week's most popular data science and artificial intelligence research sent straight to your inbox every Saturday.

I Introduction

Video scene understanding is an important computer vision problem with many practical applications, including smart surveillance, monitoring of patients or elderly, online video retrieval

etc. Over the past few years, it has quickly evolved from classifying a short, trimmed video to detecting multiple activities in long, untrimmed videos. This is a more challenging problem compared to trimmed video classification as it requires not only recognizing, but also precisely localizing activities in time. Most of the existing works rely on a large set of features and separate classifiers exhaustively applied to a set of video segments extracted from the input video using sliding windows [1, 2, 3, 4]. These approaches suffer from one or more of the following major drawbacks: they do not learn deep representations in a jointly optimized fashion, but rather use hand-crafted features [5, 6]

, or employ deep features like VGG 

[7], ResNet [8], C3D [9] etc., learned separately on image/video classification tasks. Such off-the-shelf representations may not be optimal for localizing activities in diverse video domains, resulting in inferior performance. Furthermore, current methods’ dependence on external proposal generation or exhaustive sliding windows leads to poor computational efficiency. Finally, the sliding-window models cannot easily predict flexible activity boundaries due to the fixed temporal granularity of the sliding windows.

Fig. 1: We propose a fast two-stream Region Convolutional 3D Network (R-C3D) for temporal activity detection in continuous videos. It encodes both the RGB frames and the optical flow maps in two separate streams with fully-convolutional 3D filters, proposes activity segments, then classifies and refines them based on pooled features within the segment boundaries. Our model improves both speed and accuracy compared to existing methods.

In this paper, we propose an activity detection model that addresses the above issues. Our Region Convolutional 3D Network (R-C3D) is jointly trainable and learns task-dependent convolutional features by jointly optimizing proposal generation and activity classification. Inspired by the Faster R-CNN [10] object detection approach, we compute fully-convolutional 3D ConvNet features and propose temporal regions likely to contain activities, then pool features within the proposals to predict activity classes (Figure 1). The proposal generation stage filters out many background segments with superior computational efficiency compared to sliding window models. Furthermore, proposals are predicted with respect to predefined anchor segments and can be of variable length, allowing detection of activities with flexible boundaries.

Convolutional Neural Network (CNN) features learned end-to-end have been successfully used for activity recognition [11, 12], particularly in 3D ConvNets (C3D [9]), which learns to capture spatio-temporal features. However, unlike the traditional usage of 3D ConvNets [9] where the input is short 16-frame video chunks, our method applies full convolution along the temporal dimension to encode as many frames as the GPU memory allows. Thus, rich spatio-temporal features are automatically learned from longer videos. These feature maps are shared between the activity proposal and classification subnets to save computation time and jointly optimize features for both tasks.

Alternative activity detection approaches [13, 14, 15, 16]

use a recurrent neural network (RNN) to encode sequence of frames or video chunk features (VGG 

[7], C3D [9]) and predict the activity label at each time step. However, these RNN based methods can only model temporal features at a fixed granularity (e.g. per-frame CNN features or 16-frame C3D features). In order to use the same classification network to classify variable length proposals into specific activities, we extend 2D region of interest (RoI) pooling to 3D which extracts a fixed-length feature representation for these proposals. Thus, our model can utilize video features at any temporal granularity. Furthermore, some RNN-based detectors rely on direct regression to predict the temporal boundaries. As shown in object detection [17, 18] and semantic segmentation [19], object boundaries obtained using a regression-only framework are inferior compared to ‘proposal based detection’.

Motion information plays a pivotal role in video scene understanding. While deep CNN features have worked remarkably well in combating a multitude of spatial variations due to changes in lighting, pose, scale etc., the performance of 3-D CNNs alone for large-scale video understanding is, still, limited [20, 21, 12, 22]. Optical flow encodes the motion field in a scene and represents the pattern of apparent object motion. It is a useful motion representation and often acts in a complementary way to spatial features [23, 12, 24].

In this paper, we explore the use of optical flow along with spatio-temporal features in a two stream 3-D convolutional architecture to better capture long-range temporal structure in videos. This framework takes in stacked video frames as well as dense optical flow fields as inputs in two separate streams, and a subsequent convolution operation learns a hierarchical representation of the features. The two streams are fused at different levels in both proposal generation and activity classification stages with a view to efficiently reuse the computed features for multiple tasks in the detection pipeline.

One of the major problems of ‘proposal based detection’ is that it can suffer from an extreme foreground-background (positive-negative) class imbalance during training. The foreground action proposals (positives) typically account for only a tiny fraction of all possible segments which includes a large number of background segments (negatives). blackThough using a separate proposal stage reduces the number of candidate segments by filtering out most background samples, still the classification stage typically has to evaluate hundreds of such segments where only a few are actual foreground activities [25]. blackSuch an imbalance causes two types of problems for a detection architecture. First, training is inefficient as loss is computed and back-propagated for a large number of relatively unimportant candidate proposals. Second, a large portion of negative examples is easy and can adversely affect the training as these examples contribute no useful learning. The problem is mainly addressed by maintaining a manageable balance between positive and negative training examples via sampling heuristics (fixed positive-negative ratio of 1:2) [10], hard negative mining [26], bootstrapping [27] etc. A recent work [25] uses dynamically scaled focal loss where the scaling factor down-weighs the contribution of the easy examples during training and rapidly focuses on hard examples.

Inspired by the success of the Online Hard Example Mining (OHEM) [26] for fast R-CNN [28] object detection, we employ a similar strategy where training proposals are subsampled according to their chances of being misclassified. OHEM not only boosts the detection performance significantly but also is computationally efficient as the hard examples are mined online. OHEM involves only forward pass operation through the R-C3D network for all the generated candidate proposals. Then, instead of heuristically sampling the proposals, they are ranked according to the classification and localization loss values and only the top few (i.e., the worst performers) are selected. Training is performed by back-propagating errors only for these chosen few hard examples. This improves the performance of the model since good proposals (hard examples) are selected for updating the model instead of randomly sampled ones.

We perform extensive comparisons of R-C3D to state-of-the-art activity detection methods using three publicly available benchmark datasets - THUMOS’14 [29], ActivityNet [30] and Charades [31]. New state-of-the-art results are achieved on THUMOS’14 and Charades, while the detection performance on ActivityNet is competitive. A preliminary version of this work was published in [32]. This paper additionally explores an optical flow based two-stream architecture, which better captures the motion of objects present in the scene, resulting in better detection of the activities. We also make training more robust by addressing the class imbalance problem with an online hard mining strategy. We perform a detailed ablation analysis of the optical flow and OHEM with the basic R-C3D architecture [32] and show their effectiveness for efficient temporal activity detection in untrimmed videos.

To summarize, the main contributions of our paper are:

  • [noitemsep,nolistsep]

  • a jointly optimized activity detection model with combined activity proposal and classification stages that can detect variable length activities;

  • efficient integration of flow based motion stream and online hard example mining to spatio-temporal features from stacked video frames to boost activity detection performance in untrimmed videos;

  • fast detection speeds achieved by sharing fully-convolutional C3D features between the proposal generation and classification parts of the network.

The rest of the paper is organized as follows. Section II

gives a description of the state-of-the-art approaches in activity detection, optical flow computation and hard example mining for robust training. The activity detection approach, including the convolutional feature extraction, proposal generation and classification, optical flow as a second stream and OHEM are described in Section

III. Experimental results and comparisons with state-of-the-art methods are presented in Section IV. Finally, conclusions are drawn in Section V.

Ii Related Work

Ii-a Activity Detection

There is a long history of activity recognition, or classifying trimmed video clips into fixed set of categories [33, 34, 24, 12, 5, 35]. Activity detection in untrimmed videos, on the other hand, has emerged as a new challenging problem over the past few years and is more practical as most real-life videos are unsegmented and contain multiple activities.

Activity detection can be broadly categorized into two types: spatio-temporal activity detection and temporal activity detection. Spatio-temporal activity detection [36, 37] aims to localize spatiotemporal action tubes over consecutive video frames while temporal activity detection [38] predicts the start and end times of the activities within untrimmed long videos. Spatio-temporal activity detection tasks tend to be computationally heavy and require more effort in annotating the training data than temporal detection. In this work, we only focus on supervised temporal activity detection.

Sliding-window methods. Prior to this work, existing temporal activity detection approaches were dominated by models that use sliding temporal windows to generate segments and subsequently classify them with activity classifiers trained on multiple features [1, 2, 3, 4]

. Sliding windows can be thought of as a primitive method to generate temporal proposals for actions. Most of these methods have stage-wise pipelines which are not trained jointly, and therefore have limited ability to recover from errors accumulated in each stage. Moreover, the use of exhaustive sliding windows is computationally inefficient and constrains the boundary of the detected activities by the sliding windows’ duration and strides.

Frame/Snippet-level methods. Recently, several approaches have leveraged recurrent networks to avoid exhaustive sliding window search in detecting activities with variable lengths. [13, 39, 14, 15, 16]

model the temporal evolution of activities using recurrent neural nets (RNNs) or long-short term memory (LSTM) based networks and predict an activity (or background) label for each frame. These frame-level labels are then merged into variable-length segments. The deep action proposal model 

[13] uses LSTM to encode C3D features of every 16-frame video chunk, and directly regresses and classifies activity segments without an extra proposal generation stage. [40] extends the action proposal model in [13] to design a single-pass network for end-to-end temporal action detection that directly outputs the temporal bounds and corresponding action classes for the detections. More recently, CDC [41] and SSN [42] propose bottom-up activity detection by first predicting at the frame-level/snippet-level and then fusing these predictions.

Proposal-classifier methods. In this work, we introduce a two stage approach to activity detection: the first, “proposal” stage generates temporal proposals containing non-background activity, and the subsequent “classifier” stage applies a classifier to each proposal to obtain the detected activity. We avoid recurrent layers, instead encode a large video buffer with a fully-convolutional 3D ConvNet. We use 3D RoI pooling, inspired by RoI pooling in Faster R-CNN [10] to allow feature extraction from variable length proposals. 3D RoI pooling divides the 3D video encoding into 3D bins and samples values from there. A contemporaneous method for spatio-temporal activity detection, Tube-CNN [43], also employs a proposal classification appraoch. They first divide the video into equal-length clips and and generate a set of tube proposals for each clip. Then, the tube proposals are linked together to perform spatio-temporal action detection. Tube-CNN [43] proposes tube of interest (ToI) pooling to extract features from tube proposals, which consist of a fixed number of bounding boxes of variable sizes. The ToI pooling performs RoI pooling in each of the bounding boxes, followed by a temporal pooling over the feature encoding of all the bounding boxes. blackContrary to the 3D RoI pooling proposed in this paper, which extracts features of the temporal proposals from the whole video feature encoding, the tube of interest pooling divides the 3-D pooling into a sequence of 2-D spatial pooling and then 1-D temporal pooling.

Weakly-supervised methods. Aside from supervised activity detection, a recent work [44] has addressed weakly supervised activity localization from data labeled only with video level class labels by learning attention weights on shot based or uniformly sampled proposals. Another type of weakly supervised temporal activity localization is provided with an action sequence and paired video without temporal annotation that requires to localize each action to the input video under the action sequential constraint. The model in [45] addresses this problem by a dynamic programming based strategy. We only focus on supervised temporal activity localization in this paper where the ground truth temporal annotation for each activity is provided.

Ii-B Object Detection

Activity detection in untrimmed videos is closely related to object detection in images. The inspiration for our work, Faster R-CNN [10], extends R-CNN [17] and Fast R-CNN [28] object detection approaches, incorporating RoI pooling and a region proposal network. Compared to recent object detection models e.g., SSD [46] and R-FCN [47], Faster R-CNN is a general and robust object detection framework that has been deployed on different datasets with little data augmentation effort. Like Faster R-CNN, our R-C3D model is also designed with the goal of easy deployment on varied activity detection datasets. It avoids making certain assumptions based on unique characteristics of a dataset, such as the UPC model for ActivityNet [14] which assumes that each video contains a single activity class.

Ii-C Optical Flow

Over the last few years, use of optical flow to represent motion has improved many video related tasks such as activity classification [12, 23], video description [48], visual odometry [49]

and pose estimation in videos 

[50] among others. Flow has been used as additional input in detecting activities too. Histogram of Optical Flow was used in [51] to characterize the temporal signature of the actions and to generate activity proposals by learning a sparse dictionary of the features. We, on the other hand, use optical flow as an additional input in a ‘classification by proposal’ framework for temporal activity detection. Concurrent to our work, Structured Segment Network [42] models each activity instance as a composition of three major stages namely ‘starting’, ‘course’ and ‘ending’, and uses both RGB values and optical flow field features for each stage to detect activities. In a similar framework as above, Dai et. al. [52], also uses optical flow and RGB features from the candidate proposals as well as the surrounding contexts and has shown good activity detection performance in benchmark datasets. In the temporal activity detection models [42, 52], the two-stream action recognition model [12] with optical flow branch is used as feature extractor where 2D convolutional operations are applied on the optical flow input stream. However, 3D convolutional operations are applied on the optical flow input stream in our case. We also employ online hard mining of training examples to further boost the activity detection performance. Next, we will discuss, in brief, about some of the relevant works in hard mining of training examples.

Fig. 2: Single stream R-C3D model architecture with only RGB frames as input. The 3D ConvNet takes raw video frames as input and computes convolutional features. These are input to the Proposal Subnet that proposes candidate activities of variable length along with confidence scores. The Classification Subnet filters the proposals, pools fixed size features and then predicts activity labels along with refined segment boundaries.

Ii-D Hard Mining

Class imbalance between positive and negative proposals is one of the main obstacles for training a jointly optimized object or activity detection system. One of the earliest attempts [27] tried to address this problem by freezing the model during training and letting it choose the examples which are hard depending on the misclassification errors. At the next iteration the model was trained with these hard examples and it became more and more robust until convergence. The deformable part based object detection model [53] uses a slight variation of the above, where easily classified examples are removed along with the addition of hard examples. Some of the recent works [54, 55] select hard examples while training deep networks based on the current loss for each example. Lin et. al. [25]

proposes a new loss function for dealing with class imbalance where the loss for hard examples is dynamically set to high values until confidence in the correct class increases. Region-Based Object Detectors with OHEM 

[26], on the other hand, proposes an online hard example mining strategy where the detection network is used in the inference mode to get a list of proposals ranked in descending order of their loss values. The training set is formed of the top few hard examples from this list and these are used for back-propagating the loss through the network. The boost in performance for object detection and the online nature of the algorithm inspire us to adopt OHEM for the R-C3D network.

Iii Approach

In this section, first, the single stream Region Convolutional 3D Network (R-C3D), a convolutional neural network for activity detection in continuous video streams will be described. Next, the two stream architecture with OHEM will be discussed. The single stream network, illustrated in Figure 2, consists of three components: a shared 3D ConvNet feature extractor [9], a temporal proposal stage, and an activity classification and refinement stage. To enable efficient computation and joint training, the proposal and classification sub-networks share the same C3D feature maps. The proposal subnet predicts variable length temporal segments that potentially contain activities, while the classification subnet classifies these proposals into specific activity categories or background, and further refines the proposal segment boundaries. A key innovation is to extend the 2D RoI pooling in Faster R-CNN to 3D RoI pooling which allows our model to extract features at various resolutions for variable length proposals. Next, we describe different parts of the architecture starting with the shared video feature hierarchies in Sec. III-A.

Iii-a 3D Convolutional Feature Hierarchies

We use a 3D ConvNet to extract rich spatio-temporal feature hierarchies from a given input video buffer. It has been shown that both spatial and temporal features are important for representing videos, and a 3D ConvNet encodes rich spatial and temporal features in a hierarchical manner. The input video frames have dimension , where 3 is the number of color channels, is the number of frames, is the height and is the width. The architecture of the 3D ConvNet is taken from the C3D architecture proposed in [9]. However, unlike [9], the input to our model is of variable length. We adopt the convolutional layers (conv1a to conv5b) of C3D, so that a feature map ( is the channel dimension of the layer conv5b) is produced as the output of this subnetwork. We use activations as the shared input to the proposal and classification subnets. The height () and width () of the frames are taken as 112 each following [9]. The number of frames can be variable and is only limited by memory. Note that the same frames are used for computing optical flow fields in the second stream.

Iii-B Temporal Proposal Subnet

To allow the model to predict variable length proposals, we incorporate anchor segments into the temporal proposal sub-network. The subnet predicts potential proposal segments with respect to anchor segments and a binary label indicating whether the predicted proposal contains an activity or not. The anchor segments are pre-defined multiscale windows centered at uniformly distributed temporal locations. blackEach temporal location specifies anchor segments, each at different scales. Thus, the total number of anchor segments is . The same set of anchor segments exists in different temporal locations, which ensures that the proposal prediction is temporally invariant. The anchors serve as reference activity segments for proposals at each temporal location, where the maximum number of scales is dataset dependent.

To obtain features at each temporal location for predicting proposals, we first add a 3D convolutional filter with kernel size on top of to extend the temporal receptive field for the temporal proposal subnet. Then, we downsample the spatial dimensions (from to ) to produce a temporal only feature map

by applying a 3D max-pooling filter with kernel size

. The 512-dimensional feature vector at each temporal location in

is used to predict a relative offset to the center location and the length of each anchor segment . It also predicts the binary scores for each proposal being an activity or background. The proposal offsets and scores are predicted by adding two convolutional layers on top of .

Training: For training, we need to assign positive/negative labels to the anchor segments. Following the standard practice in object detection [10], we choose a positive label if the anchor segment 1) overlaps with some ground-truth activity with temporal Intersection-over-Union (tIoU) higher than 0.7, or 2) has the highest tIoU overlap with some ground-truth activity. If the anchor segment has tIoU overlap lower than 0.3 with all ground-truth activities, then it is given a negative label. All others are held out from training. For proposal regression, ground truth activity segments are transformed with respect to nearby positive anchor segments using the coordinate transformations described in Sec. III-D. Generally, the number of negative proposals is much more than the positive proposals due to smaller number of ground truth activity segments. To avoid producing a degenerate proposal generation module by the presence of overwhelming number of negative candidates, we fixed the foreground-to-background ratio to per training batch, and the batch size in the proposal subnet is set to be 64.

Iii-C Activity Classification Subnet

The activity classification stage has three main functions: 1) selecting proposal segments from the previous stage, 2) three-dimensional region of interest (3D RoI) pooling to extract fixed-size features for selected proposals, and 3) activity classification and boundary regression for the selected proposals based on the pooled features.

Some activity proposals generated by the proposal subnet highly overlap with each other and some have low proposal scores indicating low confidence. Following the standard practice in object detection [53, 10] and activity detection [3, 16], we employ a greedy Non-Maximum Suppression (NMS) strategy to eliminate highly overlapping and low confidence proposals. The NMS threshold is set to 0.7.

The selected proposals can be of variable length. However we need to extract fixed-size features for each of them in order to use fully connected layers for further activity classification and regression. We design a 3D RoI pooling layer to extract the fixed-size volume features for each variable-length proposal from the shared convolutional features (shared with the temporal proposal subnet). Specifically, in 3D RoI pooling, an input feature volume of size, say, is divided into sub-volumes each with approximate size , and then max pooling is performed inside each sub-volume. In our case, suppose a proposal has the feature volume of size in , then this feature volume will be divided into grids and max pooled inside each grid. Thus, proposals of variable lengths give rise to output volume features of the same size .

The output of the 3D RoI pooling is fed to a series of two fully connected layers. Here, the proposals are classified to activity categories by a classification layer and the refined start-end times for these proposals are given by a regression layer. The classification and regression layers are also two separate fully connected layers and for both of them the input comes from the aforementioned fully connected layers (after the 3D RoI pooling layer).

Training: We need to assign activity label to each proposal for training. An activity label is assigned if the proposal has the highest tIoU overlap with a ground-truth activity, and at the same time, the tIoU overlap is greater than 0.5. A background label is assigned to proposals with tIoU overlap lower than 0.5 with all ground-truth activities. The batch size in the classification subnet is set as 128, and training batches are chosen with positive/negative ratio of . Later we will show that substituting this heuristic with OHEM increases the efficiency of the detection further in Sec. III-F.

Iii-D Optimization

We train the network by optimizing both the classification and regression tasks jointly for the two subnets. The softmax loss function is used for classification, and smooth L1 loss function [28] is used for regression. Specifically, the objective function is given by:


where and stand for batch size and the number of positive anchor/proposal segments, is the loss trade-off parameter and is set to a value . is the anchor/proposal segments index in a batch,

is the predicted probability of the proposal or activities,

is the ground truth, represents predicted relative offset to transformed ground truth segments. represents the coordinate transformation of ground truth segments to anchor segments or proposals. The coordinate transformations are computed as follows:


where and are the center location and the length of anchor segments or proposals while and denote the same for the ground truth activity segments.

In our R-C3D model, the above loss function is applied for both the temporal proposal subnet and the activity classification subnet. In the proposal subnet, the binary classification loss predicts whether the proposal contains an activity or not, and the regression loss optimizes the relative offset between proposals and ground truths. Here the losses are activity class agnostic. For the activity classification subnet, the multiclass classification loss predicts the specific activity class for the proposal, and the number of classes are the number of activities plus one for the background. The regression loss optimizes the relative displacement between activities and ground truths. All four losses for the two subnets are optimized jointly. The network is optimized using SGD solver with momentum 0.9 and weight decay 0.0005.

Iii-E Two Stream Model

Fig. 3: Two stream R-C3D architecture. The top stream receives the stacked optical flow fields as input while the bottom stream receives the RGB frames as input. Two separate 3D convnets operate on the two inputs to produce the respective feature maps. These two feature maps are fused and fed to the proposal subnet which proposes candidate activity proposals along with their confidence scores. The classification subnet works on features from two separate streams but on the same set of proposals. The outputs of the two classification subnets are fused for the final activity classification and start-end time regression.

Action representation is crucial for good performance. Inspired by the recent success of two-stream CNNs for action classification [12], we posit that a natural approach for better action representation is to use optical flow features in a second stream. The input is a stack of optical flow fields computed for each frame of the first stream (denoted as the RGB stream). The two-stream R-C3D architecture is shown in Fig. 3.

A dense optical flow field for two consecutive frames of a video gives a two-dimensional vector at each pixel. The horizontal and vertical components of the flow are taken as two separate channels. TVL1 optical flow algorithm [56] is used to compute the optical flow fields. The optical flow input has dimension . A 3-D convolutional operation is performed separately on this stream. The output conv feature maps from both the streams are fused before the proposal generation stage. The fusion of the two features allows us to use the same proposal subnet (Sec. III-B) without having to learn too many extra parameters. We tried two different fusion strategies. In the first one, the output of the two streams after the 3D convolution stage is element-wise summed, while in the second, the feature maps from the optical flow stream are added as additional channels to the RGB stream feature maps. The fused features from the two streams are used to generate the proposals using the Proposal Subnet (Sec. III-B).

After the proposals are obtained, NMS is performed to suppress the highly overlapping and low confidence proposals as described in Sec. III-C. The proposals that remain after the NMS step are projected separately on two conv5b feature maps obtained in two different streams. 3-D RoI pooling is performed on the projected features in both streams separately. The RoI pooled proposal features are then passed through a series of two fully-connected layers. Before performing the final classification and boundary regression of the candidate proposals, the outputs from the two separate streams are fused. Similar to the Proposal Subnet, here also we explore two different fusion strategies. Firstly, we sum the response of the two streams element-wise and secondly the two responses are concatenated to be fed to the final activity classification and boundary regression layers. We show results for both fusion strategies unless otherwise mentioned.

Since the final classification or regression are performed on the fused feature vector, the loss formulation for the joint training remains the same as the single stream architecture (Sec. III-D). This is also true for the proposal classification and time regression losses in the Proposal Subnet.

Iii-F Online Hard Example Mining

Mining hard examples is aimed at choosing better, more informative examples for training the model. Inspired by the effectiveness as well as easy integration of the online hard example mining strategy in Fast R-CNN image detection pipeline [26], we experiment with a similar strategy in our R-C3D network. While R-C3D with OHEM has a different strategy for choosing training examples than the original R-C3D, they follow the same prediction procedure. The original R-C3D chooses training examples using a fixed positive-to-negative example ratio in fixed sized batches. R-C3D with OHEM precomputes the loss for all of the candidate proposals and then chooses only the hard examples, i.e. the ones with high loss. Hard training examples could have been mined for both the proposal and the classification subnets. However, the proposal subnet involves binary classification and thus the training examples are more evenly balanced between positive and negative classes. In this paper, we apply OHEM only in the classification subnet as it involves multi-class classification and thus suffers more from training data imbalance when the number of categories is large.

In the classification subnet, we add an extra read-only classification branch which shares the weights with the original classification subnet. The “read-only” classification branch is only used to compute loss for all the proposals generated by the proposal subnet and does not update its weights during the backpropagation stage. Specifically, the sum of the classification loss and regression loss for each proposal is computed in this read-only clone. The loss values represent how well the current network performs on each proposal. Proposals are sorted according to the sum of the losses in descending order and only top 128 are taken to form the training mini-batch. blackAfter the hard examples are chosen, the backward pass is performed only with these hard examples in the original classification subnet. Since the read-only classification subnet shares weights with the original classification subnet, it also gets updated with the same weights in the next iteration and the losses are computed using the new weights.

Iii-G Prediction

Activity prediction in R-C3D consists of two steps. First, the proposal subnet generates candidate proposals and predicts the start-end time offsets as well as proposal score for each. Then the proposals are refined via NMS with threshold value 0.7. After NMS, the selected proposals are fed to the classification network to be classified into specific activity classes, and the activity boundaries of the predicted proposals are further refined by the regression layer. The boundary prediction in both proposal subnet and classification subnet is in the form of relative displacement of center point and length of segments. In order to get the start time and end time of the predicted proposals or activities, inverse coordinate transformation to Equation 2 is performed.

R-C3D accepts variable length input videos. However, to take advantage of the vectorized implementation in fast deep learning libraries, we pad the last few frames of short videos with last frame, and break long videos into buffers (limited by memory only). NMS at a lower threshold (0.1 less than the mAP evaluation threshold) is applied to the predicted activities to get the final activity predictions.

Iv Experiments

We evaluate R-C3D on three large-scale activity detection datasets - THUMOS’14 [29], Charades [31] and ActivityNet [30]. In evaluating the proposals, we follow the evaluation paradigm for the temporal localization task in ActivityNet dataset (ref.  IV-B) and use the Area Under the AR vs AN curve (AUC) at 100 proposals per video which is averaged across ten different tIoU thresholds uniformly distributed between 0.5 and 0.95. Activity detection results are shown in terms of mean Average Precision - mAP@ where denotes different tIoU thresholds, as is the common practice in the literature. Section IV-D provides the detection speed in comparison to state-of-the-art activity detection approaches.

Iv-a Experiments on THUMOS’14

THUMOS’14 activity detection dataset contains over 24 hours of video from 20 different sport activities. The training set contains 2765 trimmed videos while the validation and the test sets contain 200 and 213 untrimmed videos respectively. This dataset is particularly challenging as it consists of very long videos (up to a few hundreds of seconds) with multiple activity instances of very small duration (up to few tens of seconds). Most videos contain multiple activity instances of the same activity class. In addition, some videos contain activity segments from different classes.

Experimental Setup

: We divide 200 untrimmed videos from the validation set into 180 training and 20 held out videos to get the best hyperparameter setting. All 200 videos are used as the training set and the final results are reported on 213 test videos. Since the GPU memory is limited, we first create a buffer of 768 frames at 25 frames per second (fps) which means approximately 30 seconds of video. Our choice is motivated by the fact that 99.5% of all activity segments in the validation set (used here as the training set) are less than 30 seconds long. These buffers act as inputs to both streams of R-C3D. We can create the buffer by sliding from the beginning of the video to the end, denoted as the ‘one-way buffer’. An additional pass from the end of the video to the beginning is used to increase the amount of training data, denoted as the ‘two-way buffer’.

We initialize the 3D ConvNet part of our model with C3D weights trained on Sports-1M and finetuned on UCF101 released by the authors in [9]. We allow all the layers of R-C3D to be trained on THUMOS’14 with a fixed learning rate of 0.0001. The number of anchor segments chosen for this dataset is 10 with specific scale values [2, 4, 5, 6, 8, 9, 10, 12, 14, 16]. The values are chosen according to the distribution of the activity durations in the training set. At 25 fps and temporal pooling factor of 8 ( downsamples the input by 8 temporally), the anchor segments correspond to segments of duration between 0.64 and 5.12 seconds111 and . Note that, the predicted proposals or activities are relative to the anchor segments but not limited to the anchor boundaries, enabling our model to detect flexible-length activities.

For the two-stream R-C3D, we explored two ways of fusing the RGB and flow streams. The first strategy is denoted as ‘concat’ and it concatenates both streams before the proposal subnet and before the final classification stage. The second strategy sums the two streams element-wise and is denoted as ‘sum’. We still use the RGB C3D weights released in [9] to initialize the RGB stream. In order to initialize the flow stream, we follow the pipeline proposed in [23] to get a set of pretrained flow C3D weights on UCF101 flow images. Before finetuning flow C3D weights on UCF101 flow images, the flow C3D model is initialized with RGB C3D weights. The flow C3D have the same architecture as that of the RGB C3D network in all the layers except the first layer due to different channel dimensions for the flow and RGB inputs (2 vs 3). To make use of the weights in the first layer of RGB C3D model, we average the weights across channels in first convolution layer of RGB C3D model, and replicate this average weights in the two channels of the optical flow input. We test the efficiency of the C3D architecture for both the RGB as well as the flow streams. The RGB C3D shows around 80% activity recognition accuracy on UCF101 split-1 while the same for the flow C3D is around 70%. The learning strategy in flow stream is kept same as the RGB stream.

We apply OHEM on both the RGB single-stream R-C3D and two-stream R-C3D. These two experimental settings are denoted as ‘Single-stream R-C3D + OHEM’ and ‘Two-stream R-C3D (Sum) + OHEM’ respectively. Note that in the later setting we opt for the element-wise sum strategy of fusion as the performance corresponding to this strategy is better than the concatenation strategy for the Two-stream R-C3D without hard mining. The NMS threshold used for the OHEM setting is , and the batch size in the activity classification stage is set as 128 which is the same for the other datasets too.

Single-stream R-C3D
Two-stream R-C3D (Concat)
Two-stream R-C3D (Sum)
TABLE I: Proposal evaluation on THUMOS’14 dataset (in percentage). Average AUC of 100 proposals per video at tIoU thresholds with step 0.05 are reported.
0.1 0.2 0.3 0.4 0.5
Karaman et. al[1] 4.6 3.4 2.1 1.4 0.9
Wang et. al[4] 18.2 17.0 14.0 11.7 8.3
Oneata et. al[2] 36.6 33.6 27.0 20.8 14.4
Heilbron et. al[51] - - - - 13.5
Escorcia et. al[13] - - - - 13.9
Richard et. al[45] 39.7 35.7 30.0 23.2 15.2
Yeung et. al[16] 48.9 44.0 36.0 26.4 17.1
Yuan et. al[57] 51.4 42.6 33.6 26.1 18.8
Shou et. al[3] 47.7 43.5 36.3 28.7 19.0
Shou et. al[41] - - 40.1 29.4 23.3
Dai et. al[52] - - - 33.3 25.6
Zhao et. al[42] 66.0 59.4 51.9 41.0 29.8
Single-stream R-C3D [32]
(one-way buffer)
51.6 49.2 42.8 33.4 27.0
Single-stream R-C3D [32]
(two-way buffer)
54.5 51.5 44.8 35.6 28.9
Two-stream R-C3D
54.5 52.2 46.9 40.0 33.1
Two-stream R-C3D
56.6 54.2 48.9 40.6 33.4
Single-stream R-C3D
57.4 54.9 51.1 43.1 35.8
Two-stream R-C3D (Sum)
56.9 54.7 51.2 43.0 36.1
TABLE II: Activity detection results on THUMOS’14 (in percentage). mAP at different tIoU thresholds are reported. Top three performers on THUMOS’14 challenge leaderboard and other results reported in existing papers are shown.
[2] [16] [3]
Single-stream R-C3D
(two-way buffer) [32]
Two-stream R-C3D
Single-stream R-C3D
Baseball Pitch 8.6 14.6 14.9 26.1 19.9 29.9
Basketball Dunk 1.0 6.3 20.1 54.0 55.3 48.6
Billiards 2.6 9.4 7.6 8.3 11.2 19.8
Clean and Jerk 13.3 42.8 24.8 27.9 33.2 37.7
Cliff Diving 17.7 15.6 27.5 49.2 54.0 59.4
Cricket Bowling 9.5 10.8 15.7 30.6 31.1 32.4
Cricket Shot 2.6 3.5 13.8 10.9 11.6 18.4
Diving 4.6 10.8 17.6 26.2 31.1 36.4
Frisbee Catch 1.2 10.4 15.3 20.1 21.5 16.9
Golf Swing 22.6 13.8 18.2 16.1 32.8 42.3
Hammer Throw 34.7 28.9 19.1 43.2 58.3 57.3
High Jump 17.6 33.3 20.0 30.9 37.9 37.8
Javelin Throw 22.0 20.4 18.2 47.0 47.2 59.2
Long Jump 47.6 39.0 34.8 57.4 62.1 63.9
Pole Vault 19.6 16.3 32.1 42.7 57.7 57.0
Shotput 11.9 16.6 12.1 19.4 20.0 31.0
Soccer Penalty 8.7 8.3 19.2 15.8 19.2 22.9
Tennis Swing 3.0 5.6 19.3 16.6 11.6 12.5
Throw Discus 36.2 29.5 24.4 29.2 41.0 22.1
Volleyball Spiking 1.4 5.2 4.6 5.6 11.3 11.2
mAP@0.5 14.4 17.1 19.0 28.9 33.4 35.8
TABLE III: Per-class AP at tIoU threshold on THUMOS’14 (in percentage).

Results: We first evaluate the performance of the temporal proposal subnet. The proposals are first processed with NMS threshold . The proposal evaluation results in terms of average AUC with 100 proposals per video for single-stream R-C3D and two-stream R-C3D models are shown in Table I. The average AUC for single-stream R-C3D is 26.36%. Both the two-stream extensions improve the proposal evaluation results, with two-stream R-C3D (Concat) having the average AUC 28.75% and two-stream R-C3D (Sum) 29.71%.

In Table II, we present a comparative evaluation of the activity detection performance of our model with existing state-of-the-art approaches in terms of mAP at tIoU thresholds 0.1-0.5 (denoted as ). From the results corresponding to the single-stream R-C3D, we can see that the mAP@0.5 with the two-way buffer setting is better than the mAP@0.5 with the one-way buffer by 1.9%. So we take the two-way buffer setting as the data augmentation strategy for all the two-stream experiments unless otherwise mentioned.

Both the two-stream R-C3D achieve better activity detection performance than the single-stream R-C3D. However the differences in performances between two-stream (sum) and two-stream (concat) are very minor in terms of mAP@ metric, with two-stream (sum) achieving slightly better results. When OHEM is applied to single-stream R-C3D and two-stream R-C3D (sum), the performance improves significantly for both the scenarios. However, the relative improvement of OHEM from two-stream R-C3D (sum) is less than the single-stream R-C3D. With OHEM, single-stream R-C3D and two-stream R-C3D (sum) have almost the same results. The two-stream R-C3D (sum) architecture with OHEM achieves a new state-of-the-art in the mAP@0.5 metric, which requires a stringent overlap with the ground truth segment. The absolute improvement is over the current state-of-the-art  [42].

The Average Precision (AP) for each class on THUMOS’14 at tIoU threshold 0.5 is shown in Table III. Compared to other published models, single-stream R-C3D outperforms previous methods in most classes and shows significant improvement (by more than 20% absolute AP over the next best) for activities e.g., Basketball Dunk, Cliff Diving, and Javelin Throw. With the addition of the optical flow stream, we can see two-stream R-C3D (sum) improves the detection performance significantly for activities with obvious motion patterns e.g., Hammer Throw, Golf Swing, Pole Vault and Throw Discus etc. In single-stream R-C3D with OHEM, some hard activities with low class precision get further improvement e.g., Billiards, Cricket Shot and Shotput. Figure 4(a) shows some representative qualitative results from two videos on this dataset.

(a) THUMOS’14
(b) ActivityNet
(c) Charades
Fig. 4: Qualitative visualization of the predicted activities by single-stream R-C3D (best viewed in color). Figure LABEL: and LABEL: show results for two videos each on THUMOS’14 and ActivityNet. LABEL: shows the result for one video from Charades. Ground truth activity segments are marked in black. Predicted activity segments are marked in green for correct predictions and in red for wrong ones. Predicted activities with tIoU more than 0.5 are considered as correct. Corresponding start-end times and confidence score are shown inside brackets.

Iv-B Experiments on ActivityNet

The ActivityNet [30] dataset consists of untrimmed videos and is released in three versions. We use the latest release (1.3) which has 10024, 4926 and 5044 videos containing 200 different types of activities in the train, validation and test sets respectively. Most videos contain activity instances of a single class covering a great deal of the video. Compared to THUMOS’14, this is a large-scale dataset both in terms of the number of activities involved and the amount of videos. Researchers have taken part in the ActivityNet challenge [58] held on this dataset. The performances of the participating teams are evaluated on test videos for which the ground truth annotations are not public. In addition to evaluating on the validation set, we show our performance on the test set after evaluating it on the challenge server.

Experimental Setup: Similar to THUMOS’14, the length of the input buffer is set to 768 but, as the videos are long, we sample frames at 3 fps to fit it into the GPU. This makes the duration of the buffer approximately 256 seconds covering over 99.99% training activities. The considerably long activity durations prompt us to set the number of anchor segments to be as high as 20. Specifically, we chose the following scales - [1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 14, 16, 20, 24, 28, 32, 40, 48, 56, 64]. Thus the shortest and the longest anchor segments are of durations 2.7 and 170 seconds respectively covering 95.6% of the training activities.

Considering the vast domain difference of the activities between Sports-1M and ActivityNet, we finetune the Sports-1M pretrained RGB 3D ConvNet model [9] with the training videos of ActivityNet at 3 fps on the activity classification task. We initialize the RGB 3D ConvNet part of our model with these finetuned weights. We also use the Sports-1M pretrained RGB 3D ConvNet model to initialize the flow 3D ConvNet model and finetune it on the flow images of the ActivityNet training videos as is done for the THUMOS’14 dataset (ref. Sec. IV-A

). We test the efficiency of the C3D architecture for both the RGB and flow streams on ActivityNet. The RGB C3D shows around 60% activity recognition accuracy while the same for the flow C3D is around 32%. AcitivityNet being a large scale dataset, the training takes more epochs. As a speed-efficiency trade-off, we freeze the first two convolutional layers in our model during training. The learning rate is kept fixed at

for first 10 epochs and is decreased to for the last 5 epochs. Based on the improved results on the THUMOS’14, we choose the two-way buffer setting with horizontal flipping of frames for data augmentation.

Single-stream R-C3D
Two-stream R-C3D (Concat)
Two-stream R-C3D (Sum)
TABLE IV: Proposal evaluation on ActivityNet validation set (in percentage). Average AUC of 100 proposals per video at tIoU thresholds with step 0.05 are reported.
train data validation test
B. Singh et. al. [15] train+val - 28.8
G. Singh et. al[59] train 34.5 36.4
Dai et. al[52] train 36.2 37.5
UPC  [14] train 22.5 22.3
Zhao et. al[42] train - 43.3
Single-stream R-C3D  [32] train 26.8 26.8
Single-stream R-C3D  [32] train+val - 28.4
Two-stream R-C3D (Concat) train 25.8 -
Two-stream R-C3D (Sum) train 26.5 -
Single-stream R-C3D + OHEM train 27.7 -
TABLE V: Detection results on ActivityNet in terms of mAP@0.5 (in %). The top half of the table shows performance from methods using additional handcrafted features while the bottom half shows approaches using deep features only (including ours). Results for [15] are taken from [58].
train data validation test
Single-stream R-C3D  [32] train 12.7 13.1
Single-stream R-C3D  [32] train+val - 16.7
Single-stream R-C3D + OHEM train 15.4 15.6
TABLE VI: Results on ActivityNet in terms of average mAP at tIoU thresholds with step 0.05 (in %).

Results: We first evaluate the proposal performance from the proposal subnet after the NMS step with threshold . The proposal evaluation results in terms of average AUC with 100 proposals per video for single-stream R-C3D and two-stream R-C3D models are shown in Table IV. Both the two-stream extensions do not improve the proposal results and maintain almost the same performance as the single-stream R-C3D.

Table V shows mAP@0.5 performance of our models and compares them with the published results from existing activity detection approaches. In most experiments, the training set is used for training and the performance is shown for either the validation or test data or both. Some models in Table V make use of sophisticated handcrafted features. The approach in [59] also uses handcrafted motion features like MBH on top of inception and C3D features in addition to dynamic programming based post processing. Our method is also capable of using other hand engineered features with a possible boost to performance and we keep this as a future task. UPC is a fair comparison to single stream R-C3D as it also uses only C3D features. However, it relies on a strong assumption that each video on ActivityNet just contains one activity class. Our approach obtains 4.3% improvement on the validation set and 4.5% improvement on the test set over UPC [14] in terms of mAP@0.5 without such strong assumptions. When both training and validation sets are used for training, the performance improves further by 1.6%.

As is the scenario in proposal evaluation, both the two-stream extensions of R-C3D provide roughly the same detection performance as the single-stream R-C3D. One reason can be that the initial flow C3D branch of two-stream R-C3D has only around 32% classification accuracy on the ActivityNet validation set which is significantly lower than the classification performance (60%) by the initial RGB branch on the same dataset. As a result of the poor initialization of the flow C3D model, the two-stream extensions do not improve the results much. Since our proposed R-C3D activity detection model is based on low level 3D conv features learned by the C3D models, a better classification model with better initialization can give rise to better activity detection performance. We expect better performance by initializing with stronger classification architecture like I3D [21] and pre-training with larger and more diverse video dataset like kinetics [21] or Youtube-8M [60].

We only experiment with OHEM on single-stream R-C3D, since without OHEM, single-stream R-C3D performs almost the same as the two-stream R-C3D and a single-stream R-C3D with OHEM is relatively less expensive in terms of computation. Single-stream R-C3D with OHEM provides better performance with mAP@0.5 reaching compared to single-stream R-C3D without OHEM. As further analysis, we divide the videos in the validation set of ActivityNet into three sets (Short/Medium/Long) in equal numbers according to the ground truth activity durations. Single-stream R-C3D with OHEM gets 39.2% mAP@0.5 on Long set (greater than 53 seconds), 23.2% mAP@0.5 on Medium set (13 seconds - 53 seconds), and 8.3% mAP@0.5 on Short set (less than 13 seconds). This shows that our model is poor on the relatively short activities on this dataset. The reason might be that for ActivityNet, we sample frames at 3 fps to fit the long videos into the GPU memory. blackFor short videos, this implies that only a few frames are sampled for proposal feature encoding. The poor feature encoding from limited frames might be the reason for the poor performance of these short activities on this dataset.

Our highest mAP@0.5 result is still lower than Zhao et. al[42] which uses an additional set of 200 separately trained binary classifiers to classify whether the predicted activity segments are complete or not. These completeness classifiers pay special attention to improve the tIoU of the predicted activity segments which is one of the main reasons to boost their detection results. Our model can also benefit from using such completeness classifiers at the cost of more computation.

The ActivityNet Challenge in 2017 introduced a new evaluation metric where mAP at 10 evenly distributed thresholds between [0.5, 0.95] are averaged to get the

average mAP. We show the performance of single-stream R-C3D with and without OHEM in Table VI. Training with videos from the training partition only, the average mAP for the validation and test set come to be 12.7% and 13.1% respectively. If both training and validation data are used during training, the average mAP for the test set increases to 16.7% showing the benefit of our jointly optimized single-stream model when more data is available for training. The OHEM extension also improves the single-stream results in terms of average mAP. Figure 4(b) shows some representative qualitative results of R-C3D from this dataset.

Iv-C Experiments on Charades

Charades [31] is a recently introduced dataset for activity classification and detection. The dataset consists of 7985 train and 1863 test videos from 157 classes. The videos are recorded by Amazon Mechanical Turk users based on provided scripts. Apart from low illumination, diversity and casual nature of the videos containing day-to-day activities, an additional challenge of this dataset is the abundance of overlapping activities, sometimes multiple activities having exactly the same start and end times (typical examples include pairs of activities like ‘holding a phone’ and ‘playing with a phone’ or ‘holding a towel’ and ‘tidying up a towel’).

Experimental Setup: For this dataset we sample frames at 5 fps, and the input buffer is set to contain 768 frames. This makes the duration of the buffer approximately 154 seconds covering all the ground truth activity segments in the train set. As the activity segments are longer, we choose the number of anchor segments to be 18 with specific scale values [1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 14, 16, 20, 24, 28, 32, 40, 48]. So the shortest anchor segment has a duration of 1.6 seconds and the longest anchor segment has a duration of 76.8 seconds. Over 99.96% of the activities in the training set is under 76.8 seconds. For this dataset we, additionally, explore slightly different settings of the anchor segment scales, but find that our model is not very sensitive to this hyper-parameter.

We first finetune the Sports-1M pretrained RGB C3D model [9] on the Charades training set at 5 fps and initialize the 3D ConvNet for the RGB stream with these finetuned weights. The flow stream initialization follows the same pipeline mentioned in Sec. IV-A and Sec. IV-B. Both the RGB C3D model and flow C3D model have very low activity classification accuracy (9.6% and 8.8% respectively), due to the multi-label nature of the activity segments on this dataset. While training the full model, we freeze the first two convolutional layers in order to accelerate training. The learning rate is kept fixed at 0.0001 for the first 10 epochs and then decreased to 0.00001 for 5 further epochs. We augment the data by following the two-way buffer setting and horizontal flipping of frames.

Single-stream R-C3D
Two-stream R-C3D (Concat)
Two-stream R-C3D (Sum)
TABLE VII: Proposal evaluation results on Charades (in percentage). Average AUC of 100 proposals per video at tIoU thresholds with step 0.05 are reported.
standard post-process
Random  [61] 4.2 4.2
RGB  [61] 7.7 8.8
Two-Stream  [61] 7.7 10.0
Two-Stream+LSTM  [61] 8.3 8.8
Sigurdsson et al. [61] 9.6 12.1
Single-stream R-C3D  [32] 12.4 12.7
Two-stream R-C3D (Concat) 12.4 12.6
Two-stream R-C3D (Sum) 12.5 12.9
Single-stream R-C3D + OHEM 13.0 13.3
TABLE VIII: Activity detection results on Charades (in %). We report results using the same evaluation metric as in [61].

Results: The proposal evaluation results in terms of average AUC with 100 proposals per video for single-stream R-C3D and two-stream R-C3D models are shown in Table VII. For this dataset also, both the two-stream extensions have almost the same performance as the single-stream R-C3D.

Table VIII provides a comparative evaluation with various baseline models reported in [61]. This approach [61] trains a CRF based video classification model (asynchronous temporal fields) and evaluates the prediction performance on 25 equidistant frames by making a multi-label prediction for each frame. The activity localization result is reported in terms of mAP metric on these frames. For a fair comparison, we map our activity segment prediction to 25 equidistant frames and evaluate using the same mAP evaluation metric. A second evaluation strategy proposed in this work relies on a post-processing stage where the frame level predictions are averaged across 20 frames leading to more spatial consistency. As shown in Table VIII, our jointly optimized single stream model outperforms the asynchronous temporal fields model [61] as well as several baselines reported in the same paper [61]. While the improvement over the standard method is as high as 2.8%, the improvement after the post-processing is not as high. One possible reason could be that our jointly optimized fully convolutional model captures the spatial consistency implicitly without requiring any manually-designed post-processing.

Similar to the proposal evaluation performance, the addition of the flow stream in the two-stream extensions does not affect the activity detection performance much on this dataset. The relatively weak underlying RGB and flow C3D architectures and the poor illumination conditions on the dataset may be the reasons behind the stalled performances of the two-stream extensions. Initialization with a better C3D classification model trained on indoor videos with these challenging conditions (e.g., the low illumination indoor scenes or the multi-label nature of the data) could possibly boost the performance. Employing hard mining improves the activity detection result of single-stream R-C3D by around 0.6% in both standard and post-processing settings. Figure 4(c) shows some representative qualitative results of R-C3D from one video in this dataset. One of the major challenges of this dataset is the presence of a large number of temporally overlapping activities. The results show that our model is capable of handling such scenarios to some extent. This is achieved by the ability of the proposal subnet to produce possibly overlapping activity proposals and is further facilitated by the segment offset regression per activity class.

Iv-D Activity Detection Speed

S-CNN [3]
DAP [13]
Single-stream R-C3D (Titan X Maxwell) [32]
Single-stream R-C3D (Titan X Pascal) [32]
Two-stream R-C3D (Concat) (Titan X Pascal)
Two-stream R-C3D (Sum) (Titan X Pascal)
Single-stream R-C3D (OHEM) (Titan X Pascal)
TABLE IX: Activity detection speed during inference. Note that, the two-stream models marked with asterisks * don’t include the optical flow extraction time.

In this section, we compare detection speed of our model with two other state-of-the-art methods. The comparison results are shown in Table IX. S-CNN [3] uses a time-consuming sliding window strategy and predicts at 60 fps. DAP [13] incorporates a proposal prediction step on top of LSTM and predicts at 134.1 fps. R-C3D constructs the proposal and classification pipeline jointly and these two stages share the features making it significantly faster. The speed of execution is 569 fps on a single Titan-X (Maxwell) GPU for the proposal and classification stages together. On the upgraded Titan-X (Pascal) GPU, our inference speed reaches even higher (1030 fps). One of the reasons of the speedup of R-C3D over DAP may come from the fact that the LSTM recurrent architecture in DAP takes time to unroll, while R-C3D directly accepts a wide range of frames as input and the convolutional features are shared by the proposal and classification subnets. The activity detection speed drops to 656 fps for two-stream concat extension and 642 fps for two-stream sum extension on pre-computed optical flow images, because of the additional computation for the flow stream222Pre-computing the optical flow images takes extra time and runs at 32.4 fps on a single GPU using the code in [57]. The total activity detection speed for the two-stream models could be limited by the bottleneck of flow extraction. . OHEM extension of single-stream R-C3D maintains almost the same activity detection speed as single-stream R-C3D, since inference in both the models are essentially the same.

V Conclusion

In this paper, we explore a multi-stream network that augments RGB image features in R-C3D with motion features for temporal action detection in untrimmed videos. An online hard mining strategy improves the performance by intelligently training on hard examples. Our proposed method not only detects activities more accurately, but also detects them fast. Analysis of the experimental results and ablation studies indicates robustness of the method as well as significant result improvements over state-of-the-arts on three large-scale data sets with diverse characteristics. The future directions include investigating the related applications of our R-C3D framework in other computer vision tasks, e.g.dense video captioning and localizing moments in videos.

Acknowledgement: This work is supported in part by the NSF and DARPA. We would thank Lu He for the meaningful discussions.


  • [1] S. Karaman, L. Seidenari, and A. D. Bimbo, “Fast Saliency Based Pooling of Fisher Encoded Dense Trajectories,” in ECCV THUMOS Workshop, 2014.
  • [2] D. Oneata, J. Verbeek, and C. Schmid, “The LEAR submission at Thumos 2014,” ECCV THUMOS Workshop, 2014.
  • [3] Z. Shou, D. Wang, and S.-F. Chang, “Temporal Action Localization in Untrimmed Videos via Multi-stage CNNs,” in IEEE CVPR, 2016.
  • [4] L. Wang, Y. Yu Qiao, and X. Tang, “Action Recognition and Detection by Combining Motion and Appearance Features,” ECCV THUMOS Workshop, vol. 1, 2014.
  • [5] H. Wang and C. Schmid, “Action Recognition with Improved Trajectories,” in IEEE CVPR, 2013, pp. 3551–3558.
  • [6] L. Wang, Y. Qiao, and X. Tang, “Video Action Detection with Relational Dynamic-Poselets,” in ECCV, 2014, pp. 565–580.
  • [7] K. Simonyan and A. Zisserman, “Very Deep Convolutional Networks for Large-scale Image Recognition,” in ICLR, 2015.
  • [8] K. He, X. Zhang, S. Ren, and J. Sun, “Deep Residual Learning for Image Recognition,” in IEEE CVPR, 2016, pp. 770–778.
  • [9] D. Tran, L. Bourdev, R. Fergus, L. Torresani, and M. Paluri, “Learning Spatiotemporal Features with 3D Convolutional Networks,” in IEEE ICCV, 2015, pp. 4489–4497.
  • [10] S. Ren, K. He, R. Girshick, and J. Sun, “Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks,” in Neural Information Processing Systems, 2015, pp. 91–99.
  • [11] A. Karpathy, G. Toderici, S. Shetty, T. Leung, R. Sukthankar, and L. Fei-Fei, “Large-scale Video Classification with Convolutional Neural Networks,” in IEEE CVPR, 2014, pp. 1725–1732.
  • [12] K. Simonyan and A. Zisserman, “Two-stream Convolutional Networks for Action Recognition in Videos,” in Neural Information Processing Systems, 2014, pp. 568–576.
  • [13] V. Escorcia, F. C. Heilbron, J. C. Niebles, and B. Ghanem, “DAPs: Deep Action Proposals for Action Understanding,” in ECCV, 2016, pp. 768–784.
  • [14] A. Montes, A. Salvador, and X. G. i Nieto, “Temporal Activity Detection in Untrimmed Videos with Recurrent Neural Networks,” arXiv preprint arXiv:1608.08128, 2016.
  • [15] B. Singh, T. K. Marks, M. Jones, O. Tuzel, and M. Shao, “A Multi-Stream Bi-Directional Recurrent Neural Network for Fine-Grained Action Detection,” in IEEE CVPR, 2016.
  • [16] S. Yeung, O. Russakovsky, G. Mori, and L. Fei-Fei, “End-to-end Learning of Action Detection from Frame Glimpses in Videos,” in IEEE CVPR, 2016, pp. 2678–2687.
  • [17] R. Girshick, J. Donahue, T. Darrell, and J. Malik, “Rich Feature Hierarchies for Accurate Object Detection and Semantic Segmentation,” in IEEE CVPR, 2014, pp. 580–587.
  • [18] C. Szegedy, A. Toshev, and D. Erhan, “Deep Neural Networks for Object Detection,” in Neural Information Processing Systems, 2013, pp. 2553–2561.
  • [19] J. Carreira and C. Sminchisescu, “CPMC: Automatic Object Segmentation using Constrained Parametric Min-cuts,” IEEE TPAMI, vol. 34, no. 7, pp. 1312–1328, 2012.
  • [20] A. Diba, A. M. Pazandeh, and L. V. Gool, “Efficient Two-Stream Motion and Appearance 3d CNNs for Video Classification,” arXiv preprint arXiv:1608.08851, 2016.
  • [21] J. Carreira and A. Zisserman, “Quo Vadis, Action Recognition? A New Model and the Kinetics Dataset,” in IEEE CVPR, July 2017.
  • [22] B. Zhang, L. Wang, Z. Wang, Y. Qiao, and H. Wang, “Real-Time Action Recognition With Enhanced Motion Vector CNNs,” in IEEE CVPR, June 2016.
  • [23] L. Wang, Y. Xiong, Z. Wang, Y. Qiao, D. Lin, X. Tang, and L. V. Gool, “Temporal Segment Networks: Towards Good Practices for Deep Action Recognition,” in ECCV.   Springer, 2016, pp. 20–36.
  • [24] J. Y.-H. Ng, M. Hausknecht, S. Vijayanarasimhan, O. Vinyals, R. Monga, and G. Toderici, “Beyond Short Snippets: Deep Networks for Video Classification,” in IEEE CVPR, 2015, pp. 4694–4702.
  • [25] T.-Y. Lin, P. Goyal, R. Girshick, K. He, and P. Dollar, “Focal Loss for Dense Object Detection,” in IEEE ICCV, Oct 2017.
  • [26] A. Shrivastava, A. Gupta, and R. Girshick, “Training Region-Based Object Detectors With Online Hard Example Mining,” in IEEE CVPR, June 2016.
  • [27] K. K. Sung, “Learning and Example Selection for Object and Pattern Detection,” Ph.D. dissertation, Cambridge, MA, USA, 1996, aAI0800657.
  • [28] R. Girshick, “Fast R-CNN,” in IEEE ICCV, 2015, pp. 1440–1448.
  • [29] Y.-G. Jiang, J. Liu, A. R. Zamir, G. Toderici, I. Laptev, M. Shah, and R. Sukthankar, “THUMOS Challenge: Action Recognition with a Large Number of Classes,”, 2014.
  • [30] F. C. Heilbron, V. Escorcia, B. Ghanem, and J. C. Niebles, “ActivityNet: A Large-Scale Video Benchmark for Human Activity Understanding,” in IEEE CVPR, 2015, pp. 961–970.
  • [31] G. A. Sigurdsson, G. Varol, X. Wang, A. Farhadi, I. Laptev, and A. Gupta, “Hollywood in Homes: Crowdsourcing Data Collection for Activity Understanding,” in ECCV, 2016.
  • [32] H. Xu, A. Das, and K. Saenko, “R-C3D: Region Convolutional 3D Network for Temporal Activity Detection,” in IEEE ICCV, Oct 2017.
  • [33] S. Ji, W. Xu, M. Yang, and K. Yu, “3D Convolutional Neural Networks for Human Action Recognition,” IEEE TPAMI, vol. 35, pp. 221–231, 2013.
  • [34] I. Laptev, M. Marszalek, C. Schmid, and B. Rozenfeld, “Learning Realistic Human Actions from Movies,” in IEEE CVPR, 2008, pp. 1–8.
  • [35] J. Zheng, Z. Jiang, and R. Chellappa, “Cross-view Action Recognition via Transferable Dictionary Learning,” IEEE TIP, vol. 25, no. 6, pp. 2542–2556, 2016.
  • [36] P. Weinzaepfel, Z. Harchaoui, and C. Schmid, “Learning to Track for Spatio-Temporal Action Localization,” in IEEE ICCV, 2015.
  • [37] G. Yu and J. Yuan, “Fast Action Proposals for Human Action Detection and Search,” in IEEE CVPR, 2015.
  • [38] A. Gaidon, Z. Harchaoui, and C. Schmid, “Temporal Localization of Actions with Actoms,” IEEE TPAMI, vol. 35, no. 11, pp. 2782–2795, 2013.
  • [39] S. Ma, L. Sigal, and S. Sclaroff, “Learning Activity Progression in LSTMs for Activity Detection and Early Detection,” in IEEE CVPR, 2016, pp. 1942–1950.
  • [40] S. Buch, V. Escorcia, B. Ghanem, L. Fei-Fei, and J. C. Niebles, “End-to-End, Single-Stream Temporal Action Detection in Untrimmed Videos,” in BMVC, 2017.
  • [41] Z. Shou, J. Chan, A. Zareian, K. Miyazaway, and S.-F. Chang, “CDC: Convolutional-De-Convolutional Networks for Precise Temporal Action Localization in Untrimmed Videos,” in IEEE CVPR, 2017.
  • [42] Y. Zhao, Y. Xiong, L. Wang, Z. Wu, X. Tang, and D. Lin, “Temporal Action Detection With Structured Segment Networks,” in IEEE ICCV, Oct 2017.
  • [43] R. Hou, C. Chen, and M. Shah, “Tube convolutional neural network (T-CNN) for action detection in videos,” in IEEE ICCV, 2017.
  • [44] L. Wang, Y. Xiong, D. Lin, and L. V. Gool, “UntrimmedNets for Weakly Supervised Action Recognition and Detection,” in IEEE CVPR, 2017.
  • [45] A. Richard and J. Gall, “Temporal Action Detection Using a Statistical Language Model,” in IEEE CVPR, 2016.
  • [46] W. Liu, D. Anguelov, D. Erhan, C. Szegedy, S. Reed, C.-Y. Fu, and A. C. Berg, “SSD: Single Shot MultiBox Detector,” in ECCV, 2016, pp. 21–37.
  • [47] J. Dai, Y. Li, K. He, and J. Sun, “R-FCN: Object Detection via Region-based Fully Convolutional Networks,” in Neural Information Processing Systems, 2016, pp. 379–387.
  • [48] S. Venugopalan, M. Rohrbach, J. Donahue, R. Mooney, T. Darrell, and K. Saenko, “Sequence to Sequence - Video to Text,” in IEEE ICCV, December 2015.
  • [49] P. Agrawal, J. Carreira, and J. Malik, “Learning to See by Moving,” in IEEE ICCV, December 2015.
  • [50] T. Pfister, J. Charles, and A. Zisserman, “Flowing ConvNets for Human Pose Estimation in Videos,” in IEEE ICCV, December 2015.
  • [51] F. C. Heilbron, J. C. Niebles, and B. Ghanem, “Fast Temporal Activity Proposals for Efficient Detection of Human Actions in Untrimmed Videos,” in IEEE CVPR, 2016, pp. 1914–1923.
  • [52] X. Dai, B. Singh, G. Zhang, L. S. Davis, and Y. Q. Chen, “Temporal Context Network for Activity Localization in Videos,” in IEEE ICCV, Oct 2017.
  • [53] P. F. Felzenszwalb, R. B. Girshick, D. McAllester, and D. Ramanan, “Object Detection with Discriminatively Trained Part Based Models,” IEEE TPAMI, vol. 32, pp. 1627–1645, 2010.
  • [54] E. Simo-Serra, E. Trulls, L. Ferraz, I. Kokkinos, and F. Moreno-Noguer, “Fracking Deep Convolutional Image Descriptors,” arXiv preprint arXiv:1412.6537, 2014.
  • [55] I. Loshchilov and F. Hutter, “Online Batch Selection for Faster Training of Neural Networks,” arXiv preprint arXiv:1511.06343, 2015.
  • [56] C. Zach, T. Pock, and H. Bischof, “A duality based approach for realtime tv-l 1 optical flow,” Pattern Recognition, pp. 214–223, 2007.
  • [57] J. Yuan, B. Ni, X. Yang, and A. A. Kassim, “Temporal Action Localization with Pyramid of Score Distribution Features,” in IEEE CVPR, 2016, pp. 3093–3102.
  • [58] “ActivitNet Large Scale Activity Recognition Challenge,”, 2016.
  • [59] G. Singh and F. Cuzzolin, “Untrimmed Video Classification for Activity Detection: submission to ActivityNet Challenge,” arXiv preprint arXiv:1607.01979, 2016.
  • [60] S. Abu-El-Haija, N. Kothari, J. Lee, P. Natsev, G. Toderici, B. Varadarajan, and S. Vijayanarasimhan, “YouTube-8M: A Large-Scale Video Classification Benchmark,” arXiv preprint arXiv:1609.08675, 2016.
  • [61] G. A. Sigurdsson, S. Divvala, A. Farhadi, and A. Gupta, “Asynchronous Temporal Fields for Action Recognition,” arXiv preprint arXiv:1612.06371, 2017.