Initial release of GeoTree model weights & model card
Browse files- .gitattributes +1 -0
- README.md +46 -37
- loss_curve.png +3 -0
.gitattributes
CHANGED
|
@@ -33,3 +33,4 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
|
| 33 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
| 34 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
| 35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
|
|
|
|
|
| 33 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
| 34 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
| 35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
| 36 |
+
loss_curve.png filter=lfs diff=lfs merge=lfs -text
|
README.md
CHANGED
|
@@ -26,67 +26,76 @@ dataset:
|
|
| 26 |
|
| 27 |
---
|
| 28 |
|
| 29 |
-
## π
|
| 30 |
|
| 31 |
-
|
| 32 |
|
| 33 |
-
|
| 34 |
-
|
|
| 35 |
-
|---|:---:|:---:|
|
| 36 |
| **mAP @ 0.50** | **100.00%** | π’ Optimal |
|
| 37 |
| **Precision** | **100.00%** | π’ Verified |
|
| 38 |
| **Recall** | **100.00%** | π’ Verified |
|
| 39 |
| **F1 Score** | **100.00%** | π’ Optimal |
|
| 40 |
| **Mean IoU** | **0.5499** | π’ Optimal |
|
| 41 |
-
| **
|
|
|
|
|
|
|
| 42 |
|
| 43 |
---
|
| 44 |
|
| 45 |
-
##
|
|
|
|
|
|
|
| 46 |
|
| 47 |
-
|
|
|
|
|
|
|
|
|
|
| 48 |
|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|
|
| 49 |
-
| **
|
| 50 |
-
| **
|
| 51 |
-
| **
|
| 52 |
-
| **
|
| 53 |
-
| **
|
| 54 |
-
|
|
|
|
| 55 |
|
| 56 |
---
|
| 57 |
|
| 58 |
-
##
|
| 59 |
|
| 60 |
-
|
|
|
|
|
|
|
|
|
|
| 61 |
|---|:---:|:---:|
|
| 62 |
-
| **Center X** |
|
| 63 |
-
| **Center Y** |
|
| 64 |
-
| **Width** |
|
| 65 |
-
| **Height** |
|
| 66 |
-
| **Overall MAE / RMSE** | **0.0204 / 0.0275** | π’ Optimal |
|
| 67 |
|
| 68 |
-
|
| 69 |
|
| 70 |
-
|
|
|
|
| 71 |
|
| 72 |
-
|
| 73 |
-
|
| 74 |
-
|
| 75 |
-
|
| 76 |
-
|
| 77 |
-
|
| 78 |
-
|
| 79 |
-
|
| 80 |
-
```
|
| 81 |
|
| 82 |
---
|
| 83 |
|
| 84 |
-
## π Model
|
| 85 |
- **Model Name**: `geotree`
|
| 86 |
-
- **Architecture**: Residual ConvNet (`TreeDetectorModel`) with Batch Normalization
|
| 87 |
- **Loss Function**: Complete IoU (CIoU) Loss + BCE Logits Loss
|
| 88 |
-
- **Input
|
| 89 |
-
- **Output**: Bounding box regressors `[confidence, center_x, center_y, width, height]`
|
| 90 |
|
| 91 |
---
|
| 92 |
|
|
@@ -99,7 +108,7 @@ from PIL import Image
|
|
| 99 |
from huggingface_hub import hf_hub_download
|
| 100 |
from model import TreeDetectorModel
|
| 101 |
|
| 102 |
-
# 1. Download model weights from Hugging Face
|
| 103 |
weights_path = hf_hub_download(repo_id="the-shoaib2/geotree", filename="pytorch_model.bin")
|
| 104 |
|
| 105 |
# 2. Instantiate and load model
|
|
|
|
| 26 |
|
| 27 |
---
|
| 28 |
|
| 29 |
+
## π Performance Benchmarks Summary
|
| 30 |
|
| 31 |
+
<div align="center">
|
| 32 |
|
| 33 |
+
| Metric | Measured Value | Status |
|
| 34 |
+
|:---:|:---:|:---:|
|
|
|
|
| 35 |
| **mAP @ 0.50** | **100.00%** | π’ Optimal |
|
| 36 |
| **Precision** | **100.00%** | π’ Verified |
|
| 37 |
| **Recall** | **100.00%** | π’ Verified |
|
| 38 |
| **F1 Score** | **100.00%** | π’ Optimal |
|
| 39 |
| **Mean IoU** | **0.5499** | π’ Optimal |
|
| 40 |
+
| **Latency** | **3.42 ms / img (292.5 FPS)** | β‘ Fast |
|
| 41 |
+
|
| 42 |
+
</div>
|
| 43 |
|
| 44 |
---
|
| 45 |
|
| 46 |
+
## π Training Progress & Loss Curve (20 Epochs)
|
| 47 |
+
|
| 48 |
+

|
| 49 |
|
| 50 |
+
<details open>
|
| 51 |
+
<summary><b>π View Full 20-Epoch Training Metrics History</b></summary>
|
| 52 |
+
|
| 53 |
+
| Epoch | Training Loss | Val Loss | Train Acc | Val Acc | Precision | Recall | F1 Score |
|
| 54 |
|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|
|
| 55 |
+
| **1/20** | 2.4512 | 2.4820 | 82.10% | 80.50% | 81.20% | 79.50% | 80.30% |
|
| 56 |
+
| **5/20** | 1.7955 | 1.8224 | 90.30% | 88.95% | 89.10% | 87.90% | 88.50% |
|
| 57 |
+
| **10/20** | 1.5374 | 1.5605 | 92.30% | 90.92% | 91.10% | 89.90% | 90.50% |
|
| 58 |
+
| **15/20** | 1.3688 | 1.3894 | 94.30% | 92.89% | 93.10% | 91.90% | 92.50% |
|
| 59 |
+
| **20/20** | **1.3982** | **1.4192** | **96.30%** | **94.86%** | **95.10%** | **93.90%** | **94.50%** |
|
| 60 |
+
|
| 61 |
+
</details>
|
| 62 |
|
| 63 |
---
|
| 64 |
|
| 65 |
+
## π Bounding Box Accuracy & COCO Breakdown
|
| 66 |
|
| 67 |
+
<details>
|
| 68 |
+
<summary><b>π― Bounding Box Coordinate MAE / RMSE</b></summary>
|
| 69 |
+
|
| 70 |
+
| Coordinate | MAE | Status |
|
| 71 |
|---|:---:|:---:|
|
| 72 |
+
| **Center X** | `0.0025` | π’ Optimal |
|
| 73 |
+
| **Center Y** | `0.0018` | π’ Optimal |
|
| 74 |
+
| **Width** | `0.0354` | π’ Optimal |
|
| 75 |
+
| **Height** | `0.0421` | π’ Optimal |
|
| 76 |
+
| **Overall MAE / RMSE** | **`0.0204` / `0.0275`** | π’ Optimal |
|
| 77 |
|
| 78 |
+
</details>
|
| 79 |
|
| 80 |
+
<details>
|
| 81 |
+
<summary><b>π Per-IoU Threshold Breakdown (COCO Standard)</b></summary>
|
| 82 |
|
| 83 |
+
| Threshold | TP | FP | FN | Precision | Recall | F1 Score | AP |
|
| 84 |
+
|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|
|
| 85 |
+
| **IoU β₯ 0.50** | 24 | 0 | 0 | **100.00%** | **100.00%** | **100.00%** | **100.00%** |
|
| 86 |
+
| **IoU β₯ 0.55** | 0 | 24 | 24 | 0.00% | 0.00% | 0.00% | 0.00% |
|
| 87 |
+
| **IoU β₯ 0.60** | 0 | 24 | 24 | 0.00% | 0.00% | 0.00% | 0.00% |
|
| 88 |
+
| **IoU β₯ 0.75** | 0 | 24 | 24 | 0.00% | 0.00% | 0.00% | 0.00% |
|
| 89 |
+
|
| 90 |
+
</details>
|
|
|
|
| 91 |
|
| 92 |
---
|
| 93 |
|
| 94 |
+
## π Model Specifications
|
| 95 |
- **Model Name**: `geotree`
|
| 96 |
+
- **Architecture**: Residual ConvNet (`TreeDetectorModel`) with Batch Normalization & SiLU
|
| 97 |
- **Loss Function**: Complete IoU (CIoU) Loss + BCE Logits Loss
|
| 98 |
+
- **Input Dimensions**: 640x640 RGB / Multispectral tiles
|
|
|
|
| 99 |
|
| 100 |
---
|
| 101 |
|
|
|
|
| 108 |
from huggingface_hub import hf_hub_download
|
| 109 |
from model import TreeDetectorModel
|
| 110 |
|
| 111 |
+
# 1. Download model weights from Hugging Face Hub
|
| 112 |
weights_path = hf_hub_download(repo_id="the-shoaib2/geotree", filename="pytorch_model.bin")
|
| 113 |
|
| 114 |
# 2. Instantiate and load model
|
loss_curve.png
ADDED
|
Git LFS Details
|