## 3 Methods
### Model Development  
We employed a deep learning model with the YOLOv8 architecture [14]. The YOLO (You Only Look Once) architecture was selected due to its typically superior performance in \begin{table}
\begin{tabular}{l r r} \hline \hline \multicolumn{1}{c}{**Source**} & \multicolumn{1}{c}{**Amount**} & \multicolumn{1}{c}{**Percentage (\%)**} \\ \hline Data Scraping & 441 & 20.50 \\ Public Dataset 1: AH (2024) [12] & 225 & 10.50 \\ Public Dataset 2: Ega (2022) [13] & 187 & 8.70 \\ Public Dataset 2: [PERSON] et al. (2018) [8] & 1294 & 60.30 \\ \hline Total & 2147 & 100.00 \\ \hline \hline \end{tabular}
\end{table} 
Table 1: Distribution of dataset sources. \begin{table}
\begin{tabular}{l r r r r} \hline \hline \multirow{2}{*}{**Split**} & \multicolumn{2}{c}{**Before Augmentation**} & \multicolumn{2}{c}{**After Augmentation**} \\ \cline{2-5}  & **Amount** & **Percentage (\%)** & **Amount** & **Percentage (\%)** \\ \hline Training & 1502 & 70 & 3004 & 82 \\ Validation & 430 & 20 & 430 & 12 \\ Test & 215 & 10 & 215 & 6 \\ \hline Total & 2147 & 100 & 3649 & 100 \\ \hline \hline \end{tabular}
\end{table} 
Table 2: Dataset splitting before and after augmentation. Figure 1: Class distribution across training (purple), validation (blue), and test (yellow) sets in the dataset. AP (average precision) and inference time compared to other object detection models [15]. YOLO has been in development since 2015 as an open-source algorithm, thereby providing accessibility to researchers and developers globally. Its popularity has led to a large community, resulting in thorough documentation, easier troubleshooting, and knowledge sharing among users [16]. YOLOv8, the eighth version of the YOLO architecture, exhibits enhancements in mAP over its predecessor [17]. YOLOv8 has five variants: nano, small, medium, large, and extra-large. A comparison of these five variants can be found in Table 3. As the model size increases, its network complexity and accuracy also improve, but its inference time is longer. In this study, the training process was conducted only for the small, medium, and large variants. The nano variant was not selected due to its relatively lower accuracy than the other variants. Meanwhile, the extra-large variant was not chosen because of its complexity and large size, making it unsuitable for use on smartphones with limited computational capabilities. The three variants were trained using the following parameters: epochs = 500, patience = 50, batch size = {8, 16, 32}, image size = 640, IoU = 0.5, optimizer = auto. The automatic option for optimizer parameters resulted in the use of the best optimizer, SGD, with a learning rate of 0.01 and a momentum of 0.9. Meanwhile, other parameters that are not mentioned used the default configuration. The model was developed using several Python (v3.10.12) libraries, such as OpenCV (v4.8.0.76), PyTorch (v2.3.0) [19], TensorFlow (v2.13.0) [20], TensorFlow Lite (v2.13.0) [21], etc. The Google Colab [22] environment was used to develop the model, while a laptop was used to develop the mHealth application. Smartphones, on the other hand, were used as the platform to deploy and run the mHealth application. In this study, 2 smartphones were utilized to evaluate performance across different hardware capabilities: a Xiaomi Redmi 9A, representing a low-end device, and a Samsung Galaxy A30S, representing a mid-range device. For clarity in the subsequent sections, these are referred to as Smartphone 1 (Xiaomi Redmi 9A) and Smartphone 2 (Samsung Galaxy A30S). The specifications of the working environments used in this work are shown in Table 4.  
In addition to the YOLOv8 model, which serves as our focus in this study, two other object detection models were selected for comparative analysis: YOLOv11 and RT-DETR. YOLOv11 represents the latest advancement in the YOLO (You Only Look Once) family, introducing architectural improvements that focus on enhancing both accuracy and inference speed through adaptive re-parameterization and improved feature aggregation [23].