1 Introduction
The success of convolutional neural networks (CNNs) on imagebased tasks, from object recognition to semantic segmentation or geometry prediction, has inspired similar developments with videos. Example applications include activity recognition [30, 40, 41]
[37], or semantic segmentation of scenes with dynamic textures [35]. The appeal of CNNs is to be trainable endtoend, i.e. taking raw pixel values as input, and learning their mapping to the output of choice, identifying appropriate intermediate representations in the layers of the network. The natural application of this paradigm to videos involves a 3D volume of pixels as input, made of stacked consecutive frames. The direct application of existing architectures on such inputs has shown mixed results. An alternative is to first extract optical flow or dense trajectories with an external algorithm [30, 41, 40] and feed the CNN with this information in addition to the pixel values. The success of this approach can be explained by the intrinsically different nature of spatial and temporal components, now separated during a preprocessing. The extraction of motion regardless of image contents is not trivial, and has been addressed by the longstanding line of successful optical flow algorithms. Conversely, the endtoend training of CNNs on videos for highlevel tasks has shown limited capability for identifying intermediate representations of motion. In this paper, we show that specifically training a CNN to extract optical flow can be achieved once some key principles are taken into account.We leverage signal processing principles and how motion manifests itself in the frequency domain of a spatiotemporal signal (Section 3) to derive convolutions, pooling and nonlinear operations able to map input pixels to a representation of motion (Section 4
). The resulting network is designed as a building block for deeper architectures addressing higherlevel tasks. The current practice of extracting optical flow as an independent preprocessing might be suboptimal, as the assumptions of an optical flow algorithm may not hold for a particular end application. The proposed approach would potentially allow to finetune the motion representation with the whole model in a deep learning setting.
The proposed network outputs a distributed representation of motion. The penultimate layer comprises, for each pixel, a population of neurons selective to various orientations and speeds. These can represent a multimodal distribution of activity at a single spatial location, and represent nonrigid, overlapping, and transparent motions that traditional optical flow usually cannot. The distributed representation can be used as a highdimensional feature by subsequent applications, or decoded into a traditional map of the dominant flow. The latter allows training and evaluation with existing optical flow datasets.
The motivation for the proposed approach is not direct competition with existing optical flow algorithms. The aim is to enable using CNNs with videos in a more principled way, using pixel input for both spatial and temporal components. Instead of considering the flow of a complete scene as the endgoal, we rather wish to identify local motion cues without committing to an early scene interpretation. This contrasts with modern optical flow approaches, which often perform implicit or explicit tracking and/or segmentation. In particular, we avoid motion smoothness and rigidness priors, and spatial scenelevel reasoning. This makes the features produced by the network suitable to characterize situations that break such assumptions, e.g. with transparent phenomena and dynamic textures [8, 35]. As a downside, our evaluation on the Sintel benchmark shows inferior performance to stateoftheart techniques. This confirms that a scenelevel interpretation of motion requires such priors and higherlevel reasoning. In particular, we do not perform explicit feature tracking and longrange matching, which are the highlights of the bestperforming methods on this dataset (e.g. [39, 4]).
The contributions of this paper are fourfold. (1) We derive, from signal processing principles, a CNN able to learn mapping pixels to optical flow. (2) We train this CNN endtoend on videos with ground truth flow, then demonstrate performance on the Middlebury benchmarks comparable to classical methods. (3) We show how to enforce strict rotation invariance within a CNN through weightsharing, and demonstrate significant benefit for training on a small dataset with no need for data augmentation. (4) We show that the distributed representation of motion produced within our network is more versatile than traditional flow maps, able to represent phenomena such as dynamic textures and multiple, overlapping motions. Our pretrained network is available as a building block for deeper architectures addressing higherlevel tasks. Its training is significantly less complex than competing methods [12] while providing similar or superior accuracy on the Middlebury benchmark.
2 Related work
Learning spatiotemporal features Several recent works have used CNNs for classification and recognition in videos. Karpathy et al. [19] consider the largescale classification of videos, but obtain only a modest improvement over singleframe input. Simonyan and Zisserman [30] propose a CNN for activity recognition in which appearance and motion are processed in two separate streams. The temporal stream is fed with optical flow computed by a separate algorithm. The advantage of using separate processing of spatial and temporal information was further examined in [40, 41]. We propose to integrate the identification of motion into such networks, eliminating the need for a separate algorithm, and potentially allowing to finetune the representation of motion. Tran et al. [37] proposed an architecture to extract generalpurpose features from videos, which can be used for classification and recognition. Their deep network captures highlevel concepts that integrate both motion and appearance. In comparison, our work focuses on the extraction of motion alone, i.e. independently of appearance, as motivated by the twostream approach [30]. Learning spatiotemporal features outside of CNN architectures was considered earlier. Le et al.[24] used independent subspace analysis to identify filterbased features. Konda et al. [20] learned motion filters together with depth from videos. Their model is based on the classical energybased motion model, similarly to ours. Taylor et al. [33]
used restricted Boltzmann machines to learn unsupervised motion features. Their representation can be used to derive the latent optical flow, but was shown to capture richer information, useful
e.g. for activity recognition. The highdimensional features produced by our network bear similar benefits. Earlier work by Olshausen et al. [27] learned sparse decompositions of video signals, identifying features resembling the filters learned in our approach. In comparison to all works mentioned above, we focus on the extraction of motion independently of spatial appearance, whereas decompositions such as in [27] result in representations that confound appearance and temporal information.Extraction of optical flow The estimation of optical flow has been studied for several decades. The basis for many of today’s methods dates back to the seminal work of Horn and Schunk [16]. The flow is computed as the minimizer of data and smoothness terms. The former relies on the conservation of a measureable image feature (typically corresponding to the assumption of brightness constancy) and the latter models priors such as motion smoothness. Many works proposed improvements to these two terms (see [14] for a recent survey). Heeger et al. [15] proposed a completely different approach, applying spatiotemporal filters to the input frames to sample their frequency contents. This method naturally applies to sequences of more than two frames, and relies on a bank of handdesigned filters (typically, Gaussian derivatives or spatiotemporal Gabor filters [1]). Subsequent improvements [29, 31, 38] focused on the design of those filters. They must balance the sampling of narrow regions of the frequency spectrum, i.e.
, to accurately estimate motion speed and orientation, while retaining the ability to precisely locate the stimuli in image. A practical consequence of this tradeoff is the typically blurry flow maps produced the method. This historically played in favor of the more popular approach of Horn and Schunk. Another downside of the filterbased approach was the computational expense of convolutions. Our work revisits Heeger’s approach, motivated by two key points. On the one hand, applying spatiotemporal filters naturally falls in the paradigm of convolutional neural networks, which are currently of particular for analyzing videos. On the other hand, modern advances can overcome the two initial burdens of the filterbased approach by (1) learning the filters using backpropagation, and (2) leveraging GPU implementations of convolutions.
Concurrently with our own developments, Fisher et al. proposed another CNNbased method (Flownet [12]). They obtain very good results on optical flow benchmarks. In comparison to our work, they train a much deeper network that requires tens of thousands of training images. Our architecture is derived from signal processing principles, which contains fewer weights by several orders of magnitude. This allows training on much smaller datasets. The final results in [12] also include a variational refinement, essentially using the CNN to initialize a traditional flow estimation. Our procedure is entirely formulated as a CNN. This potentially allows finetuning when integrated into a deeper architecture.
A number of recent works [8, 7, 35, 36] studied the use of spatiotemporal filters to characterize motion in e.g. transparent and semitransparent phenomena, and dynamic textures such as a swirling cloud of smoke, reflections on water, or swaying vegetation. These works highlighted the potential of filterbased features, and the need for motion representations – such as those produced by our approach – that go beyond displacement (flow) maps
Invariances in CNNs One of our technical contributions is to enforce rotation invariance by tiying groups of weights together. In contrast to weight sharing which involves weights at different layers, this applies to weights of a same layer. Encouraging or enforcing invariances in neural networks has been approached in several ways. The convolutional paradigm ensure translation invariance by reusing weights between spatial locations. Other schemes of weight sharing were proposed in a simple model in [11], and later in [23] with a method to learn which weights to share. No published work discussed the implementation of strict rotation invariance in CNN to our knowledge. In [9, 22], schemes akin to ensemble methods were proposed for invariance to geometric transformations. In [28] and more recently in [17], a network first predicts a parametric transformation, used to rotate or warp the image to a canonical state before further processing. Our approach, in addition to the actual invariance, has the benefit of reducing the number of weights to learn and facilitates the training. Soft invariances, e.g. to contrast can be encouraged by specific operations, such as local response normalization (LRN, e.g. in [21]). We also use a number of such operations. Note that this paper abuses of the term “invariance” for cases more accurately involving equivariance or covariance [18].
3 Filterbased motion estimation
Our rationale for estimating motion with a convolutional architecture is based on the motion energy model [1]. Classical implementations [15, 26, 38] are based on convolutions with hardcoded spatiotemporal filters (e.g. 3D Gabors or Gaussian derivatives). The convolution of a signal with a kernel in the spatiotemporal domain corresponds to a multiplication of their spectra in the frequency domain. Convolutions with a bank of bandpass filters produce measurements of energy in these bands, which are then suitable for frequency analysis of the signal. A pattern moving in a video with a constant speed and orientation manifests itself as a plane in the frequency domain [1, 13], and the signal energy entirely lies within this plane. It passes through the origin, and its tilt corresponds to the motion orientation and speed in the image domain. Classical implementations have used various schemes to identify the bestfitting plane to the energy measurements. In our model, we learn the spatiotemporal filters together with additional layers to decode their responses into the optical flow. Importantly, transparent patterns in an image moving with different directions or speeds correspond to distinct planes in the frequency domain. The same principle can thus identify multiple, overlapping motions.
4 Proposed network architecture
Our network is fully convolutional, i.e. , it does not contain any fully connected layers. Each location in the output flow map is linked to a spatiallylimited receptive field in the input, and each pixel of a training sequence can thus be seen as a unique training point. We describe below each layers of our network in their feedforward order. We use to refer to the scalar value at coordinates
in the 3D tensor obtained by evaluating the
th layer. Indices and refer to spatial dimensions, to feature channels. We use a colon () to refer to all elements along a dimension. We denote with and convolutions in two and three dimensions, respectively. In contrast to CNNs used for image recognition, the desired output here is dense, i.e.a 2D flow vector for every pixel. To achieve this, all convolutions use a 1
pxstride and the pooling (Eq.
5) a 2 pxstride, all with appropriate padding. The output is thus at half the resolution of the input. Our experiments use bilinear upsampling (except otherwise noted) to obtain flow fields at the original resolution.
4.1 Network input
The input to the network is the volume of pixels made by stacking successive grayscale frames of a video (typically, ). The desired network output is the flow between frames and .
(1) 
4.2 Invariance to brightness and contrast
The estimated motion should be insensitive to additive changes of brightness of the input. Since the subsequent processing will be local, instead of subtracting the average brightness over the whole image, we subtract the local lowfrequency component:
(2) 
where
denotes a fixed, 2D Gaussian kernel of standard deviation
. Note that this operation could also be written as a convolution with a centersurround filter. We then ensure invariance to local constrast changes with a normalization using the standard deviation in local neighbourhoods:(3) 
where refers to the square region of length centered on .
The two above operations proved essential to learn subsequent filters with little training data. They can be seen as a local equivalent to a typical imagewide whitening [25]. This formulation is better suited to the subsequent local processing of a fully convolutional network.
4.3 Motion detection
This key operation convolves the volume of pixels with learned 3D kernels. They can be interpreted as spatiotemporal filters that respond to various patterns moving at different speeds.
(4) 
where are learned convolution kernels of size , and the associated biases. The constants and respecitvely fix the number of independent kernels and the number of orientations explicitly represented within the network (Section 4.7).
4.4 Invariance to local image phase
The learned kernels used as motion detectors above typically respond to lines and edges in the image. The estimated motion should however be independent of such image structure. Classical models [15, 31] account for this using pairs of quadrature filters, though this is not trivial to enforce with our learned filters. Instead, we approximate a phaseinvariant reponse as follows. (1) The response of the convolution is rectified by pointwise squaring. Responses out of phase by 180°(e.g.
darkbright and brightdark transitions) then give a same response. (2) We apply a spatial maxpooling. The wavenumber of the pattern captured by our kernels of size
is at least cycles/px. The worstcase phase shift of 90°then corresponds to a spatial shift of px. We maxpool responses over windows of size with a fixed stride of , and thus approximate a phaseinvariant response at the price of a lowered resolution.(5) 
where refers to the square region of length centered on .
4.5 Invariance to local image structure
The estimated motion should be independent from the amount and type of texture in the image. To account for intensity differences of patterns at different orientations at any particular location (e.g. a grid pattern of horizontal lines crossing fainter vertical ones), we normalize the responses by their sum over all orientations [15]:
(6) 
where is a small constant to avoid divisions by a small value in lowtexture areas of the image. The sum is performed over feature channels that correspond to the variants of at all orientations (see Section 4.7)
To account for the aperture problem, we allow local interacton by introducing an additional convolutional layer with learned kernels of size .
(7)  
(8) 
The classical hardcoded models typically use here 2D convolutions with Gaussian kernels. Our experiments showed that supervised training lead to similar kernels, although slightly nonisotropic, and modeling some crosschannel and centersurround interactions.
4.6 Decoding into flow vectors
The features maps at this point represent evidence for different types of motion at every pixel. This evidence is now decoded with a hidden layer, a softmax nonlinearity and a linear output layer:
(9)  
(10)  
(11) 
where is a constant that fixes the number of hidden units. The decoding is performed pixelwise, i.e. and are . Intuitively, the activations of the hidden layer (Eq. 9) represent scores for motions at and discrete speeds and orientations, of which the softmax picks out the highest. Assuming a unimodal distribution of scores (i.e.
a single motion at any pixel), the output layer interpolates these scores and maps them to a 2D flow vector for every pixel (see Section
6).4.7 Invariance to inplane rotations
In our context, rotation invariance implies that a rotated input must produce a correspondingly rotated output. Note the contrast with image recognition where rotated inputs should give a same output. All of our learned weights (Eq. 4–9) are split into groups corresponding to discrete orientations. The key is to enforce these groups of weights to be equivalent, i.e. so that they make the same use of features from the preceding layer at the same relative orientations. In addition, convolutional kernels need to be 2D rotations of each other. These strict requirements allow us to maintain only a single version of the weights at a canonical orientation, and generate the others when evaluating the network (see Fig. 4). During training with backpropagation, the gradients are aligned with this canonical orientation and averaged to update the single version of the weights.
Formally, let us consider a convolutional layer^{1}^{1}1The general formulation applies to convolutional layers as well as to our pixelwise weights (Eq. 9, 11), in which case the 2D rotation of the kernel has no effect. . The feature maps (respectively ) are split into () groups of () channels. For example, in Eq. 7, and . The groups of channels correspond to regular orientations () in . Considering the convolution weights and their slice the 2D kernel acting on the input (respectively output) channel of orientation (), we constrain the weights as follows:
(12)  
(13) 
Eq. 12 ensures that convolution kernels are rotated versions of each other (implemented with bilinear interpolation) and Eq. 13 ensures that the same weights are applied to input channels representing a same relative orientation with respect to a given output channel of the layer. In other words, the weights are shifted between each group so as to act similarly on channels representing the same relative orientations (see Fig. 4). In Eq. 7 and 9, . In Eq. 4, . In Eq. 11, with .
It follows that the number of convolution kernels to explicitly maintain is reduced from to . In Eq. 7 for example, in our implementation with orientations, this amounts to a decrease by a factor 24. It allows training on small amounts of data with lower risk of overfitting. This also negates the need to artificially augment the dataset with rotations and flips.
5 Multiscale processing
Equations 1–11 form a complete network that maps pixels to a dense flow field. However, the detection of large motion speeds is limited by the small effective receptive field of the output units, due to the limited number of convolutional layers. We remedy this in two ways (Fig. 3) without increasing the number of weights to train. First, we apply the network (Eq. 1–7) on multiple downsized versions of the input frames. The feature maps are brought back to a common resolution by bilinear upsampling and concatenated before the decoding stage (Eq. 9–11).
Second, we add a recurrent connection to the network that warps the input frames according to the current estimate of the flow. The evaluation runs through the recurrent connection for a fixed number of steps. This is inspired by the classical coarsetofine warping strategy [10]
. It allows the model to approximate the flow iteratively. Note that the recurrent connection to the warping layer is not a strictly linear operation contrary to typical recurrent neural networks. Training is performed by backpropagation through the unfolded recurrent iterations, but not through the recurrent connection itself. Since the result of each iteration is summed to give the final output, we can append and sum the same loss (Section
6) at the end of each unfolded iteration.6 Implementation and training
We train the weights () and biases () endtoend with backpropagation. Even though the network ultimately performs a regression to flow vectors, we found more effective to train it first for classification. First, we pick a number of flow vectors uniformly in the distribution of training flows. We train the network for nearestneighbour classification over these possible outputs, with a logarithmic loss over Eq. 10. Second, we add the linear output layer (Eq. 11) and initialize the rows of with the vectors used for classification. Second, the network is finetuned with a Euclidean (“endpoint error”) loss over the decoded vectors. That finetuning has a marginal effect in practice. The softmax values are practically unimodal and sum to one by construction, hence they can directly interpolate the vectors used for classification with a linear operation. We believe the 2step training is helpful because the Euclidean loss alone does not reflect well the quality (e.g. smoothness) of the flow. The classification loss guides the optimization towards a better optimum.
Considering the above, the softmax values (Eq. 10) constitute a distributed representation of motion, where each dimension corresponds to a different orientation and speed. Feature maps at this layer can encode multimodal distributions over this representation and represent patterns that optical flow cannot.
7 Experimental evaluation
We present three sets of experiments. (1) We evaluate the nonstandard design choices of the proposed architecture through ablative analysis. (2) We compare our performance versus existing methods on the Middlebury and Sintel benchmarks. (3) We demonstrate applicability to dynamic textures and multiple transparent motions that goes beyond traditional optical flow. Code and trained models are available on the author’s website [34].
7.1 Ablative analysis
Our ablative analysis uses the public Middlebury dataset, with the sequences split into halves for training (Grove2, RubberWhale, Urban3) and testing (Grove3, Dimetrodon, Hydrangea). For each run, we modify the network in one particular way, retrain it from scratch, and report its performance on the test set (Table 1). We observe that all preprocessing and normalization steps (2–3) have a positive impact, and some are even necessary for the training to converge at all (at least with the small dataset used in these experiments). Operations inspired by the classical implementations of the motion energy model, i.e. , (8) rectification by squaring of filter responses and (6) normalization across orientations, proved beneficial as well. This shows the benefit for our principled approach to network design. We perform a comparison to the classical, hardcoded filterapproach approach [15] by setting the first filters to Gaussian derivatives (4). Although learned filters are visually somewhat similar (Fig. 4), learned kernels clearly perform better. This confirms the general benefit of a datadriven approach to motion estimation.
EPE ( px )  AAE ()  

Full model, , , 10 scales, 1 rec.iter.  0.66  6.9 
(1) Number of input frames  0.67 0.90  6.8 8.7 
(2) No centersurround filter  N.C.  N.C. 
(3) No local normalization  0.67  6.9 
(4) Hardcoded : Gauss. deriv.  0.78  8.4 
(5) No L1normalization over orientations  N.C.  N.C. 
(6) No pooling for phase invariance  0.93  11.2 
(7) ReLU after conv1 (default: squaring) 
N.C.  N.C. 
(8) No constraints for rotation invariance  N.C.  N.C. 
(9) Number of orientations  1.65 0.72 0.65  26.6 8.1 6.6 
(10) Loss: classification/regression  0.66/0.83  7.0 8.7 
(default: 2step, classification (logarithmic) then regression (Euclidean))  
(11) Number of scales: 4/8/16  0.69 0.66 0.67  6.9 6.8 6.9 
(12) Recurrent iterations: 2/3/4/5  0.57 0.55 0.56 0.57  6.5 6.4 6.7 6.8 
Middlebury  Sintel private  Time  

Method  public  private  clean  final  (sec) 
FlowNetS [12]  1.09 13.28  –  4.44  7.76  0.08 
FlowNetS + refinement [12]  0.33 3.87  0.47 4.58  4.07  7.22  1.05 
DeepFlow [39]  0.21 3.24  0.42 4.22  4.56  7.21  17 
LDOF [5]  0.45 4.97  0.56 4.55  6.42  9.12  2.5 
Classic++ [32]  0.28 –  0.41 3.92  8.72  9.96  – 
FFV1MT [31]  0.95 9.96  1.24 11.66  –  –  – 
Proposed  (0.45) (5.47)  0.70 6.41  9.36  10.04  6 
Proposed + refinement as [12]  (0.35) (4.10)  0.58 5.22  9.47  10.14  7 
7.2 Performance on optical flow benchmarks
We use the Middlebury and Sintel benchmarks for evaluation of networks trained from scratch on their respective training sets. A network trained on the smaller Middlebury dataset performs decently on Sintel sequences with small motions. However, most include much faster motions that had to be retrained for.
Middlebury Flow maps estimated by our method on the Middlebury dataset [2] are generally smooth and accurate (see Fig. 5). Most errors occur near boundaries of objects that become, or cause occlusions. Altough our flow maps remain generally more blurry than those of stateoftheart methods, some fine details are remarquably well preserved (e.g. Fig. 5, second row). This blurriness, or imprecision in the spatial localization of motions, is a wellknown drawback of filterbased motion estimation. Convolutional kernels of smaller extent would be desirable to provide better localization, but the extent of its response in the frequency domain (Section 3) would correspondingly increase, which would imply a coarser sampling of the signal spectrum and lesser accuracy in motion direction and speed. Comparisons with existing methods show performance on the level of classical methods. We obtain much better performance than the recent implementation of Solari et al. [31] of a filterbased method with no learning.
Sintel The MPI Sintel dataset [6] contains computergenerated scenes of a movie provided in “clean” and “final” versions, the latter including atmospheric effects, reflections, and defocus/motion blur. Flow maps estimated by our method (Fig. 5) are often smooth. Flows in scenes with small motions are usually accurate, but they lack details at the objects’ borders and near small image details. Although this is partly alleviated by our recurrent iterative processing within the network, large errors remain in scenes with fast motions. This is reflected by a poor quantitative performance (Table 2). Additional insights can be gained by examining the flow maps (Fig. 5). Errors arise not on the estimates of large motions, but on their localization, in particular near zones of (dis)occlusions. This is obvious e.g. in Fig. 5, last row, with a thin wing flapping over a blank sky. Although the actual motion (in yellow) is detected, it spills on both sides of the thin wing structure. Since such occlusons are caused by large motions, they result in a large penalty in EPE. As argued before [6], good overall performance in such situations clearly require reasoning over larger spatial and/or temporal extent than the local motions cues that our method was designed around.
Interesting comparisons can be made with the competing approach Flownet [12]. It uses a more standard deep architecture with numerous convolutional and pooling layers. It also includes a variational refinement to improve the precision of motion estimates from the CNN. As discussed in [12], this refinement cannot correct large errors of correspondingly large motions. For comparison, we applied this same postprocessing to our own results. Our results right off the CNN on Middlebury are already accurate, and the postprocessing brings only marginal improvement (Table 2). The refinement on Flownet has a stronger effect: the output of their CNN is less precise, and it benefits more from this refinement. Looking at the Sintel dataset, the situation is very different. The main metric (the average EPE) is dominated by large motions, which are the weak point of the filterbased principles (Section 3) that we rely on. Flownet is particularly good at longrange matching thanks to its deep architecture, and this results in vastly superior performance. As stated above, the refinement is of little use with large motions, and brings minimal improvement to either method on Sintel. In conclusion, the different design choices in Flownet and our approach seem complimentary in different regimes. It would be interesting to investigate how to combine their strengths.
Input  Ground truth  As proposed  Flownet [12] 

Input  Ground truth  As proposed  Occlusions 
7.3 Applicability to transparent motions and dynamic textures
We tested the applicability of our method on scenes that are challenging (dynamic textures) or impossible (transparencies) to handle with traditional optical flow methods. There are no established benchmarks related to motion estimation and dynamic textures. Recent works [8, 7, 35, 36] that highlighted the potential of filterbased motion features in such situation focused on applications such as segmentation [35, 36] or scene recognition [8, 7]. In Fig. 7, we show scenes containing dynamic textures (water, steam) from which we identified the dominant motion. The flow estimated by a typical method [3] is typically noisy and/or inaccurate, as the usual assumption of brightness constancy does not hold (e.g. flickering effect on the water surface, changes of brightness/transparency of the steam, etc.). Although no ground truth is available for these scenes, the flow estimated by our methods is more reliable in comparison. We then demonstrate the ability of our distributed representation to capture multiple motions at a single location (transparencies and semitransparencies), thus going beyond the optical flow representation of pixelwise displacements. We show features in Fig. 7) from three sequences. The first depicts two alphablended (in equal proportions) textures moving in opposite directions, thus simulating transparency. The other two depict persons moving behind a fence in directions different than the fence itself [7]. Feature vectors from different locations in the image are visualized as radial bins (orientations) of concentric rings (speeds). Larger values (brighter bins) indicate motion evidence. As expected, areas with simple translations produce one major peak, whereas areas with transparencies produce correspondingly more complex, multimodal distributions^{2}^{2}2These experiments used a model trained on the Middlebury dataset..
Input frame  
Flow as proposed  
Flow using [3] 
Input  Traditionnal  As proposed  
frame  optical flow [3]  Dominant flow / Motion features  





8 Conclusions and future work
We showed how to identify optical flow entirely within a convolutional neural network. By reasoning about required invariances and by using signal processing principles, we designed a simple architecture that can be trained endtoend, from pixels to dense flow fields. We also showed how to enforce strict rotation invariance by constraining the weights, thus reducing the number of parameters and enabling training on small datasets. The resulting network performs on the Middlebury benchmark with performance comparable to classical methods, but inferior to the best engineered methods.
We believe the approach presented here bears two major advantages over existing optical flow algorithms. First, building upon the classical motion energy model, our approach is able to produce highdimensional features that can capture nonrigid, transparent, or superimposed motions, which traditional optical flow cannot represent. Second, it constitutes a method for motion estimation formulated entirely as a shallow, easilytrainable CNN, without requiring any postprocessing. Its potential is to be used as a building block in deeper architectures (e.g. for activity or object recognition in videos) offering the possibility for finetuning the representation of motion. The potential of these two aspects will deserve further exploration and should be addressed in future work.
References
 [1] E. H. Adelson and J. Bergen. Spatiotemporal energy models for the perception of motion. J. Opt. Soc. Am. A., 2, 284299, 1985.

[2]
S. Baker, D. Scharstein, J. Lewis, S. Roth, M. J. Black, and S. R.
A database and evaluation methodology for optical flow.
In
International Conference on Computer Vision (ICCV)
, 2007.  [3] T. Brox, A. Bruhn, N. Papenberg, and W. J. High accuracy optical flow estimation based on a theory for warping. In European Conference on Computer Vision (ECCV), 2004.
 [4] T. Brox and J. Malik. Large displacement optical flow: Descriptor matching in variational motion estimation. IEEE Transactions on Pattern Analysis and Machine Intelligence (PAMI), 33(3):500–513, 2011.
 [5] T. Brox and J. Malik. Large displacement optical flow: Descriptor matching in variational motion estimation. IEEE Transactions on Pattern Analysis and Machine Intelligence (PAMI), 2011.
 [6] D. J. Butler, J. Wulff, G. B. Stanley, and M. J. Black. A naturalistic open source movie for optical flow evaluation. In European Conference on Computer Vision (ECCV), 2012.
 [7] K. G. Derpanis and R. P. Wildes. The structure of multiplicative motions in natural imagery. IEEE Transactions on Pattern Analysis and Machine Intelligence (PAMI), 32(7):1310–1316, 2010.
 [8] K. G. Derpanis and R. P. Wildes. Spacetime texture representation and recognition based on a spatiotemporal orientation analysis. IEEE Transactions on Pattern Analysis and Machine Intelligence (PAMI), 34(6):1193–1205, 2012.
 [9] S. Dieleman, K. W. Willett, and J. Dambre. Rotationinvariant convolutional neural networks for galaxy morphology prediction. CoRR, abs/1503.07077, 2015.
 [10] M. E. and P. P. A multigrid approach for hierarchical motion estimation. In IEEE Intenational Conference on Computer Vision (ICCV), 1998.

[11]
B. Fasel and D. GaticaPerez.
Rotationinvariant neoperceptron.
In
International Conference on Pattern Recognition (ICPR)
, 2006.  [12] P. Fischer, A. Dosovitskiy, E. Ilg, P. Häusser, C. Hazirbas, V. Golkov, P. van der Smagt, D. Cremers, and T. Brox. Flownet: Learning optical flow with convolutional networks. CoRR, abs/1504.06852, 2015.
 [13] D. Fleet and A. Jepson. Computation of component image velocity from local phase information. International Journal of Computer Vision (IJCV), 5(1):77–104, 1990.
 [14] D. Fortun, P. Bouthemy, and C. Kervrann. Optical flow modeling and com putation: a survey. Computer Vision and Image Understanding (CVIU), 393, 2015.
 [15] D. J. Heeger. Model for the extraction of image flow. J. Opt. Soc. Am. A, 1987.
 [16] B. Horn and S. B. Determining optical flow. Artificial Intelligence, 11, 185203, 1981.
 [17] M. Jaderberg, K. Simonyan, A. Zisserman, and K. Kavukcuoglu. Spatial transformer networks. In Advances in Neural Information Processing Systems (NIPS), 2015.
 [18] D. Jayaraman and K. Grauman. Learning image representations equivariant to egomotion. CoRR, abs/1505.02206, 2015.
 [19] A. Karpathy, G. Toderici, S. Shetty, T. Leung, R. Sukthankar, and L. FeiFei. Largescale video classification with convolutional neural networks. In IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2014.
 [20] K. R. Konda and R. Memisevic. Unsupervised learning of depth and motion. CoRR, abs/1312.3429, 2013.
 [21] A. Krizhevsky, I. Sutskever, and G. E. Hinton. Imagenet classification with deep convolutional neural networks. In Advances in Neural Information Processing Systems (NIPS), 2012.
 [22] D. Laptev and J. M. Buhmann. Transformationinvariant convolutional jungles. In IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2015.
 [23] Q. V. Le, J. Ngiam, Z. Chen, D. Chia, P. W. Koh, and A. Y. Ng. Tiled convolutional neural networks. In Advances in Neural Information Processing Systems (NIPS), 2010.
 [24] Q. V. Le, W. Y. Zou, S. Y. Yeung, and A. Y. Ng. Learning hierarchical invariant spatiotemporal features for action recognition with independent subspace analysis. In IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2011.
 [25] Y. LeCun, L. Bottou, G. Orr, and K. Muller. Efficient backprop. In G. Orr and M. K., editors, Neural Networks: Tricks of the trade. Springer, 1998.
 [26] S. A. Niyogi. Fitting models to distributed representations of vision. In International Joint Conference on Artificial Intelligence, pages 3–9, San Francisco, CA, USA, 1995. Morgan Kaufmann Publishers Inc.
 [27] B. Olshausen. Learning sparse, overcomplete representations of timevarying natural images. In ICIP, volume 1, pages I–41–4 vol.1, 2003.

[28]
H. Rowley, S. Baluja, and T. Kanade.
Rotation invariant neural networkbased face detection.
In IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 1998.  [29] N. C. Rust, V. Mante, E. P. Simoncelli, and J. A. Movshon. How mt cells analyze the motion of visual patterns. Nature Neuroscience, 9, 2006.
 [30] K. Simonyan and A. Zisserman. Twostream convolutional networks for action recognition in videos. CoRR (NIPS Spotlight Session, abs/1406.2199, 2014.
 [31] F. Solari, M. Chessa, N. Medathati, and P. Kornprobst. What can we expect from a V1MT feedforward architecture for optical flow estimation ? Signal Processing: Image Communication, 2015.
 [32] D. Sun, S. Roth, and M. J. Black. Secrets of optical flow estimation and their principles. In IEEE Conference on Computer Vision and Pattern Recognition (CVPR), pages 2432–2439. IEEE, June 2010.
 [33] G. W. Taylor, R. Fergus, Y. LeCun, and C. Bregler. Convolutional learning of spatiotemporal features. In European Conference on Computer Vision (ECCV), 2010.
 [34] D. Teney. Personal website. http://damienteney.info/cnnFlow.htm.
 [35] D. Teney and M. Brown. Segmentation of dynamic scenes with distributions of spatiotemporally oriented energies. In British Machine Vision Conference (BMVC), 9 2014.
 [36] D. Teney, M. Brown, D. Kit, and P. Hall. Learning similarity metrics for dynamic scene segmentation. In IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2015.
 [37] D. Tran, L. D. Bourdev, R. Fergus, L. Torresani, and M. Paluri. C3D: generic features for video analysis. CoRR, abs/1412.0767, 2014.
 [38] V. Ulman. Improving accuracy of optical flow of heeger s original method on biomedical images. In Image Analysis and Recognition, volume 6111 of Lecture Notes in Computer Science, pages 263–273. Springer Berlin Heidelberg, 2010.
 [39] P. Weinzaepfel, J. Revaud, Z. Harchaoui, and C. Schmid. DeepFlow: Large displacement optical flow with deep matching. In International Conference on Computer Vision (ICCV), 2013.
 [40] Z. Wu, X. Wang, Y.G. Jiang, H. Ye, and X. Xue. Modeling spatialtemporal clues in a hybrid deep learning framework for video classification. In ACM Multimedia Conference, 2015.
 [41] H. Ye, Z. Wu, R.W. Zhao, X. Wang, Y.G. Jiang, and X. Xue. Evaluating twostream CNN for video classification. In ACM on International Conference on Multimedia Retrieval (ICMR), 2015.
Comments
There are no comments yet.