You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Comparative Analysis of YOLOv8s and YOLOv8m with Oversampling Strategy for Hand Bone Fracture Detection on X-Ray Images Using the FracAtlas Dataset
This project is developed for a Sinta 3 journal submission. The goal is to systematically compare YOLOv8s (Small) and YOLOv8m (Medium) for detecting hand bone fractures on X-ray images from the FracAtlas dataset, using a medically-optimized preprocessing pipeline with oversampling to handle class imbalance.
Original FracAtlas contains 4,083 X-rays across multiple body parts (Hand, Leg, Hip, Shoulder, Mixed). This project uses hand images only to eliminate confounding features from other anatomical regions.
After Oversampling (Training Set Only)
Category
Count
Percentage
Fractured (train)
920
54.4%
Non-fractured (train)
770
45.6%
Total training images
1,690
—
Val images
362
—
Test images
362
—
Total dataset
2,414
—
Validation and Test sets use the original unmodified distribution to ensure unbiased evaluation.
Models
Property
YOLOv8s (Small)
YOLOv8m (Medium)
Parameters
~11.2M
~25.9M
GFLOPs (640px)
28.6
79.1
Pretrained on
COCO (80 classes)
COCO (80 classes)
Fine-tuned for
1 class (fracture)
1 class (fracture)
Results
Accuracy Metrics (Val Set — Best Epoch)
Metric
YOLOv8s
YOLOv8m
mAP@50
0.847
0.838
mAP@50-95
0.444
0.429
Recall
0.780
0.726
Precision
0.891
0.912
Best Epoch
100
98
Inference Speed (GPU: RTX 3050 4GB)
Model
FPS
Latency (ms)
YOLOv8s
TBD
TBD
YOLOv8m
TBD
TBD
Results to be filled after running Cell 8 in the training notebooks.
Implementation Pipeline
Notebook Sequence
01b_hand_dataset.ipynb
→ Filter hand-only images from FracAtlas
→ Apply stratified split (70/15/15)
→ Apply oversampling on training set
→ Output: yolo_dataset_hand_oversampled/
02a_training_yolov8s_oversampled.ipynb
→ Train YOLOv8s on oversampled dataset
→ Benchmark FPS (Cell 8)
→ Evaluate on test set + confusion matrix (Cell 9)
→ Qualitative visualization (Cell 10)
→ Output: runs-old-v8s-oversampled/
02a_training_yolov8m_oversampled.ipynb
→ Train YOLOv8m on oversampled dataset
→ Benchmark FPS (Cell 8)
→ Evaluate on test set + confusion matrix (Cell 9)
→ Qualitative visualization (Cell 10)
→ Output: runs-old-v8m-oversampled/
Running Order
Run 01b_hand_dataset.ipynb to prepare dataset (if not done yet)
Run 02a_training_yolov8s_oversampled.ipynb — training already complete, run Cells 8–10 for journal outputs
Run 02a_training_yolov8m_oversampled.ipynb — training already complete, run Cells 8–10 for journal outputs
In fracture detection, a False Negative (missed fracture) is far more dangerous than a False Positive (unnecessary follow-up). A model with high Precision but low Recall is clinically unacceptable. This is why:
Oversampling is applied to prevent the model from biasing toward "non-fracture"
Recall is the primary clinical metric in Results and Discussion
Confidence Threshold Guidelines
Scenario
Threshold
Goal
Screening (IGD)
0.10 – 0.20
Maximize recall, minimize missed fractures
Diagnostic support
0.25 – 0.40
Balanced precision and recall
Clinical decision
≥ 0.50
High precision for direct clinical use
References
FracAtlas dataset: Shadmand et al. (2023). FracAtlas: A Dataset for Fracture Classification, Localization and Segmentation. Scientific Data.
Ultralytics YOLOv8: Jocher, G. et al. (2023). Ultralytics YOLOv8. GitHub.
Class imbalance: Buda, M., Maki, A., & Mazurowski, M.A. (2018). A systematic study of the class imbalance problem in convolutional neural networks. Neural Networks, 106, 249–259.
License
For research and educational purposes only. Ensure compliance with institutional data regulations when using patient imaging data.
About
Computer Vision untuk medis: Sistem deteksi objek patah tulang tangan menggunakan arsitektur YOLOv8s dan dataset FracAtlas.