## 4 Experimental Implementation and Results
### Classification Model Training and Testing Process  
The multi-stream input data are trained and tested using the algorithm on a 64-bit Windows 10 operating system running on an HP Z8 G4 Workstation (Hewlett-Packard Development Company, L.P., Palo Alto, CA, USA) with an Intel(R) Xeon(R) Gold 6242R CPU @ 3.10 GHz (Intel Corporation, Santa Clara, CA, USA). The input image dataset is processed using a CNN network after resizing the input image to 256 \(\times\) 256. The two-stream CNN-LSTM network consisted of 14 layers, with the first convolutional layers in both streams having 32 filters with a 3 \(\times\) 3 kernel size and the second convolutional layer having 64 filters with a 5 \(\times\) 5 kernel size. The first stream had a padding of 1 pixel in the convolutional layers, while the second stream had 2 pixels. Max-pooling in both streams used a 2 \(\times\) 2 kernel size with a stride of 2 pixels. The ReLU activation function was utilized in the study. The sequence length can vary depending on the duration of activities; however, this study considers a 15-frame sequence for each activity. To ensure transparency and reproducibility, all reported performance metrics using the dataset were split into 70% for training and 30% for testing. Each video clip consisted of 15 consecutive frames, and activity labels were synchronized across both RGB and point cloud streams. The final metrics, including accuracy, precision, recall, F1-score, and loss, were derived by evaluating the trained model on the test dataset. Accuracy was calculated as the ratio of correctly predicted instances to the total number of predictions. Loss values were directly obtained from the model's softmax output during evaluation. Together, they provide a comprehensive evaluation of the model's ability to generalize across various activity classes in unseen data. The model training involved optimizing different hyperparameters, and the chosen training hyperparameters were a learning rate of 0.0001, a minimum batch size of 8, 25 epochs for training, and 64 hidden units for the LSTM layer. The process of hyperparameter optimization, crucial for achieving robust model performance, involved evaluating various combinations of learning rates and training epochs. As detailed in Table 4, which illustrates the testing accuracies across different hyperparameter settings, a significant variation in model performance was observed. The learning rate of 0.0001 consistently outperformed other settings, achieving the highest accuracy of 94.67% at 30 epochs. Lower learning rates (e.g., 0.00001) led to underfitting, while higher learning rates (e.g., 0.01) exhibited unstable performance. This emphasizes the importance of fine-tuning hyperparameters to maximize model effectiveness. Figure 6 illustrates the learning curves for training and testing datasets across 30 epochs. The training loss consistently decreased while the accuracy rapidly approached saturation, reaching a final training accuracy of 99.71%. The most effective learning rate identified was 0.0001, which consistently produced the highest testing accuracies, steadily improving from 90.43% at 20 epochs to a peak of 94.67% at 30 epochs. This empirically validates that a learning rate of 0.0001 combined with 30 epochs, along with a batch size of 8 and 64 hidden units, constitutes the optimal set of hyperparameters for this model, leading to the highest reported training accuracy of