## 3 Methodology
### Three-Dimensional Voxel Generation  
Depth video has the advantage of resisting external interference, such as background and light, compared with RGB modal because it contains the depth information of the action subject. Essentially, depth video is a kind of time series data composed of depth maps arranged in chronological order. Mathematically, a depth video with \(t\) frames can be defined as \(D=\{d_{1},d_{2},\ldots,d_{t}\}\), where \(d_{i}\) is a depth map of \(t\) frame in which each pixel represents a 3D coordinate \((x,y,z)\) and \(z\) is the distance from the depth camera. Since it is impossible to classify the importance of action in the time dimension by a single criterion, uniform sampling can help us better grasp the overall motion process compared with random sampling [10]. Therefore, we first sample the depth video uniformly to ease the computational burden while maintaining the integrity of the action. The depth sequence after sampling is denoted as \(\hat{D}=\{d_{1},d_{2},\ldots,d_{T}\}\), where \(T\) is the number of frames and the default is 64. Some current action recognition methods [35; 36] choose to map depth frames to 2D spaces for direct processing. Although these approaches can sometimes achieve good performance, it cannot overcome the problem of inadequate representation of 3D information. Therefore, to better depict human motion in 3D space, we transform each frame \(d_{i}\) into a point cloud \(P=\{p_{1},p_{2},\ldots,p_{n}\}\), where \(n\) is the number of points, thus generating a point cloud sequence \(S=\{P_{1},P_{2},\ldots,P_{T}\}\). When generating point clouds, intrinsic parameters of the camera are required because they define the imaging model of the camera, includingfocal length and principal point coordinates \((c_{x},c_{y})\). For each pixel \((x,y,z)\) in the depth image, its corresponding point cloud \(p(x^{\prime},y^{\prime},z^{\prime})\) can be obtained by the following formula:  
\[p(x^{\prime},y^{\prime},z^{\prime})=(\frac{(x-c_{x})\times z}{f_{x}},\frac{(y- c_{y})\times z}{f_{y}},\frac{z}{f_{z}}) \tag{1}\]  
where \(f_{x}\) and \(f_{y}\) represent the focal length of the depth camera in the horizontal direction and the vertical direction, which can be obtained from the device parameters. \(f_{z}\) is set to 1 by default. Unlike traditional images (regular structured data), the points in the point cloud are unordered, so it is challenging to process. Many existing algorithms are designed for regular grid data. However, the unordered point cloud is a group of randomly distributed points in 3D space, so their structure is complex to process and analyze directly. To solve this problem, we transform the point cloud into a regular 3D grid (voxel space) by voxelization to regularize the point cloud representation. First, we define the size of voxel grid \(V_{grid}=(V_{x},V_{y},V_{z})\) in three dimensional coordinates, which determines the resolution of the voxelization process. Each cell in this grid is a potential voxel and the size of each cell is denoted as \(V_{voxel}(d_{x},d_{y},d_{z})\). Given a point \(p(x,y,z)\) in the point cloud, it is mapped to the grid by finding the corresponding voxel index \(V_{index}(x,y,z)\) according to the following equation:  
\[V_{index}(x,y,z)=(\lfloor\frac{x-x_{min}}{d_{x}}\rfloor,\lfloor\frac{y-y_{min }}{d_{y}}\rfloor,\lfloor\frac{z-z_{min}}{d_{z}}\rfloor) \tag{2}\]  
where \(x_{min}\), \(y_{min}\), and \(z_{min}\) are the minimum coordinates of all the point clouds. \(d_{x}\), \(d_{y}\), and \(d_{z}\) are calculated as the total size divided by the number of cells in each dimension \((V_{x},V_{y},V_{z})\). The floor function \(\lfloor.\rfloor\) rounds down to the nearest point. We define that a voxel is occupied if it contains a point cloud. Then, the 3D appearance information can be described by observing whether the voxels have been occupied or not, disregarding the excluded point, as depicted in Equation (3):  
\[V_{voxel}^{t}(x,y,z)=\left\{