README: phan biet ban san xuat voi cac checkpoint khac
Browse files
README.md
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
license: apache-2.0
|
| 3 |
+
tags: [nom, han-nom, character-detection, centernet, ocr]
|
| 4 |
+
---
|
| 5 |
+
|
| 6 |
+
# nom-char-det — bộ dò ký tự chữ Nôm (CenterNet ResNet34 + FPN + seam)
|
| 7 |
+
|
| 8 |
+
⚠️ **Repo này chứa NHIỀU checkpoint KHÁC NHAU. Đọc kỹ trước khi dùng.**
|
| 9 |
+
|
| 10 |
+
| tệp | epoch | img | val F1 | dùng ở đâu |
|
| 11 |
+
|---|---|---|---|---|
|
| 12 |
+
| **`detector_r34.PROD_e38_img1024.best.pt`** | **38** | **1024** | **0,8436** | 🟢 **BẢN ĐANG CHẠY SẢN XUẤT** trong GanNhanOCR |
|
| 13 |
+
| `detector_r34.best.pt` | 41 | 1280 | 0,8298 | bản huấn luyện khác — **KHÔNG** phải bản sản xuất |
|
| 14 |
+
| `detector_r34.pt` | — | — | — | last checkpoint của lần huấn luyện đó |
|
| 15 |
+
| `detector.best.pt`, `detector.pt` | — | — | — | thế hệ cũ hơn (kiến trúc khác) |
|
| 16 |
+
|
| 17 |
+
## Vì sao phải phân biệt
|
| 18 |
+
|
| 19 |
+
`detector_r34.best.pt` ở đây và bản sản xuất **có cùng tên, cùng kích thước 86.496.787 byte,
|
| 20 |
+
nhưng là HAI MÔ HÌNH KHÁC NHAU** — đối chiếu 259/259 tensor đều khác.
|
| 21 |
+
|
| 22 |
+
Nguy hiểm hơn: `train_crop/infer_centernet.py` lấy độ phân giải suy luận **từ chính checkpoint**
|
| 23 |
+
(`self.img = d.get('img', img)`), nên thay nhầm sẽ letterbox ở 1280 thay vì 1024 và cho ra hộp
|
| 24 |
+
khác — **mà không báo lỗi gì**.
|
| 25 |
+
|
| 26 |
+
## Vai trò trong pipeline
|
| 27 |
+
|
| 28 |
+
Bộ dò này cấp **44,62% toàn bộ hộp ký tự** của bộ nhãn; 55,38% còn lại là hộp midpoint sinh từ
|
| 29 |
+
công thức bước lặp. Mất nó là **không dựng lại được** bộ nhãn.
|
| 30 |
+
|
| 31 |
+
## Xác minh trước khi dùng
|
| 32 |
+
|
| 33 |
+
```python
|
| 34 |
+
import torch
|
| 35 |
+
d = torch.load("detector_r34.PROD_e38_img1024.best.pt", map_location="cpu", weights_only=False)
|
| 36 |
+
assert d["epoch"] == 38 and d["img"] == 1024
|
| 37 |
+
print(d["val"]) # {'F1': 0.8436, 'P': 0.7679, 'R': 0.936, ...}
|
| 38 |
+
```
|
| 39 |
+
|
| 40 |
+
sha256: `2c119689debfff01a81fee6bf198181c47fe8ab3ccb1eeaa6b576539dd344694`
|