# I3D-Shufflenet Based Human Action Recognition
## 2 3D Convolutional Network  
3D Convolutional Neural Network is a popular convolutional neural network applied in the field of human action recognition. 3D neural network can not only convolve two-dimensional images, but also the time sequence. The 3D convolutional neural network has one more dimension than the 2D neural network which can better extract the visual human action characteristics by the three-dimensional convolution kernels. The convolution process of 2D convolutional neural network can be expressed as:  
\[v_{ij}^{xy}=ReLU(b_{ij}+\sum_{m}\sum_{p=0}^{P_{i}-1}\sum_{q=0}^{Q_{i}-1}W_{ijm }^{pq}v_{(i-1)m}^{(x+p)(y+q)}) \tag{1}\]  
where \(v_{ij}^{xy}\) is the \(i\) convolution result at the \(j\) position in the feature map (\(x\),\(y\)) of the layer; _ReLU()_ is the activation function; \(b_{ij}\) is the deviation of the feature map; \(m\) is the index of the feature map in the layer \(i\)-1; \(W_{ijm}^{pq}\) is the value at the position of the feature map; \(P_{i}\),\(Q_{i}\) is the width and height of the convolution kernel. Traditional 2D convolution is suitable for spatial feature extraction, and has difficulty with continuous frame processing of video data. Compared with 2D convolution, 3D convolution adds convolution operation for adjacent time dimension information, which can deal with the action information of continuous video frame, the 3D convolution formula is expressed as follows:  
\[v_{ij}^{xyz}=ReLU(b_{ij}+\sum_{m}\sum_{p=0}^{P_{i}-1}\sum_{q=0}^{Q_{i}-1}\sum_{ t=0}^{T_{i}-1}W_{ijm}^{pqt}v_{(i-1)m}^{(x+p)(y+q)(z+t)}) \tag{2}\]  
where \(v_{ij}^{xyz}\) represents the convolution result at the position \(i\) of the \(j\) feature map of the (\(x\),\(y\),\(z\)) layer; _ReLU()_ is the activation function; \(b_{ij}\) is the deviation of the \(W_{ijm}^{pqt}\) feature map; \(m\) is the index of the feature map in the (\(i\)-1) layer; is the value at the position (\(p\),\(q\),\(l\)) of the feature map, \(t\) is the time dimension that is unique to 3D convolution; \(P_{i}\), \(Q_{i}\), \(T_{i}\) are the width, height and depth of the convolution kernel. Traditional deep learning network generally uses a single-size convolution kernel, the input data are processed by the convolution kernel and then a feature set is generated. In the Inception module, convolution kernels with different sizes are adopted to calculate and splice separately. The final feature set no longer has the same uniform distribution, but some correlative features are gathered together and generate multiple densely distributed feature subset. Therefore, for the input data, the corresponding features of the distinguishing region are clustered together after different convolution processing, while the irrelevant information is weakened, resulting in better feature set. The inception structure of I3D in this article is shown in Figure 1 which contains two conv-pool layers and three inception layers. The I3D network inherits the Inception module of Googlenet, and with different size convolution kernels for feature extraction. According to the idea of Googlenet, one convolution is performed on the previous convolution layer output, and an activation function is added after each convolution layer. By concatenating the two three-dimensional convolutions, more nonlinear features are combined. A branch consists of one or more convolution and pooling. In each Inception module, there are four different branches for the input data. The convolution kernels with different sizes are adopted respectively, and are spliced together finally. The I3D neural network adds a convolution operation for adjacent temporal information, which can complete the action recognition of continuous frame. In order to expedite the deep network training speed, a batch regularization module is added to the network. The network is not sensitive to the initialization, so a larger learning rate can be employed. I3D increases the depth of the network, eight convolutional layers and four pooling layers are used.