Upload README.md with huggingface_hub
Browse files
README.md
ADDED
|
@@ -0,0 +1,93 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
license: mit
|
| 3 |
+
---
|
| 4 |
+
|
| 5 |
+
# avito-floorplan-checkpoints
|
| 6 |
+
|
| 7 |
+
Чекпоинты instance-segmentation моделей из сравнительного исследования
|
| 8 |
+
сегментации комнат на поэтажных планах (ResPlan_v2 + CubiCasa5K для
|
| 9 |
+
обучения, реальные UGC-фото с Avito для теста). Код: см. основной проект.
|
| 10 |
+
|
| 11 |
+
Классы (везде одинаковые, id 1-7): `living, bedroom, bathroom, kitchen,
|
| 12 |
+
balcony, wall, opening`.
|
| 13 |
+
|
| 14 |
+
Train/valid split: 80/20, seed=42, одинаковый для всех моделей.
|
| 15 |
+
|
| 16 |
+
## RF-DETR-Seg (Medium)
|
| 17 |
+
|
| 18 |
+
`rfdetr_seg/checkpoint_best_ema.pth`
|
| 19 |
+
|
| 20 |
+
- Модель: `RFDETRSegMedium` (библиотека `rfdetr`)
|
| 21 |
+
- batch_size=2, grad_accum_steps=2 (эффективный batch 4), lr=1e-4
|
| 22 |
+
- Обучение остановлено по плану на эпохе 5 (компромисс время/бюджет на
|
| 23 |
+
общем сервере) — веса из эпохи 4 (последняя посчитанная валидация)
|
| 24 |
+
- Валидация (эпоха 4): box mAP@50=0.900, mAP@50:95=0.826, segm mAP@50=0.834,
|
| 25 |
+
segm mAP@50:95=0.560
|
| 26 |
+
- **UGC test**: segm AP@50=0.277, AP@50:95=0.175
|
| 27 |
+
|
| 28 |
+
## YOLO11m-seg
|
| 29 |
+
|
| 30 |
+
Пока не залит — текущий прогон (100 эпох, batch=8, imgsz=640,
|
| 31 |
+
early-stopping patience=30) ещё идёт на сервере, зальём по завершении.
|
| 32 |
+
Старый чекпоинт (всего 2 эпохи) сознательно не грузили — устарел.
|
| 33 |
+
|
| 34 |
+
## Mask R-CNN (ResNet-50 FPN, MMDetection)
|
| 35 |
+
|
| 36 |
+
`maskrcnn/best_coco_segm_mAP_epoch_1.pth`
|
| 37 |
+
|
| 38 |
+
- Конфиг: `mask-rcnn_r50_fpn_1x_coco.py`, дообучение с COCO-претрейна
|
| 39 |
+
- batch_size=2 (train), lr=0.0025 (в 8 раз меньше стандартного — под
|
| 40 |
+
маленький batch/transfer learning)
|
| 41 |
+
- Обучение шло через несколько запусков по 2 часа (общий сервер, разделяемые
|
| 42 |
+
GPU) с `--load-from` от предыдущего чекпоинта — эпохи считаются заново
|
| 43 |
+
на каждом запуске, это НЕ единый непрерывный прогон на 24 эпохи из конфига
|
| 44 |
+
- Текущий чекпоинт — лучший по `coco/segm_mAP` на момент заливки:
|
| 45 |
+
bbox mAP@50:95=0.683, bbox mAP@50=0.863, segm mAP@50:95=0.675,
|
| 46 |
+
segm mAP@50=0.858 (значения на валидации на обучающих данных, НЕ на UGC)
|
| 47 |
+
- UGC test ещё не прогонялся на этой версии (есть более ранний результат на
|
| 48 |
+
чекпоинте после 2 эпох: segm AP@50=0.181, AP@50:95=0.096 — с тех пор модель
|
| 49 |
+
дообучилась ощутимо дальше, ожидаем лучше)
|
| 50 |
+
|
| 51 |
+
## SegFormer (b2)
|
| 52 |
+
|
| 53 |
+
`segformer/best.pt`
|
| 54 |
+
|
| 55 |
+
- Backbone: `nvidia/segformer-b2-finetuned-ade-512-512` (HuggingFace, дообучен
|
| 56 |
+
под наши 8 классов, включая background)
|
| 57 |
+
- batch_size=8, lr=6e-5, target epochs=60, early-stopping patience=10
|
| 58 |
+
- Разметка семантическая (не instance) — на UGC test оценивается через
|
| 59 |
+
connected-components (маска -> инстансы), что методологически невыгодно
|
| 60 |
+
для этой модели по сравнению с "родными" instance-детекторами
|
| 61 |
+
- val_mIoU ~0.86 на момент заливки (обучение продолжалось дальше сервере)
|
| 62 |
+
- UGC test ещё не прогонялся
|
| 63 |
+
|
| 64 |
+
## UNet-simple (внешняя модель, не часть основного сравнения)
|
| 65 |
+
|
| 66 |
+
`unet_baseline/best_model.pt`
|
| 67 |
+
|
| 68 |
+
- Обучена ВНЕ этого исследования (см. `ResPlan-main/train_resplan_v2.py`
|
| 69 |
+
в отдельном репозитории) — используется здесь только как референсный
|
| 70 |
+
бейзлайн "простая семантическая сегментация без всего остального"
|
| 71 |
+
- Архитектура: ванильный UNet (encoder-decoder, DoubleConv-блоки), base
|
| 72 |
+
filters=64, 8 выходных классов
|
| 73 |
+
- 24 эпохи, val_iou=0.805 (на своих синтетических данных)
|
| 74 |
+
- batch size/lr — не отслеживались нами, обучение внешнее
|
| 75 |
+
- **UGC test**: segm AP@50=0.050, AP@50:95=0.022 — заметно хуже
|
| 76 |
+
instance-детекторов (2346 сильно фрагментированных предсказаний из-за
|
| 77 |
+
connected-components на зашумлённой семантической карте, без
|
| 78 |
+
instance-aware head'а)
|
| 79 |
+
|
| 80 |
+
## Сводная таблица (UGC test, реальные фото)
|
| 81 |
+
|
| 82 |
+
| Модель | segm AP@50 | segm AP@50:95 |
|
| 83 |
+
|---|---|---|
|
| 84 |
+
| RF-DETR-Seg (Medium) | 0.277 | 0.175 |
|
| 85 |
+
| YOLO-seg (2 эпохи, устарело) | 0.249 | 0.163 |
|
| 86 |
+
| Mask R-CNN (2 эпохи, устарело) | 0.181 | 0.096 |
|
| 87 |
+
| UNet-simple (24 эпохи, внешняя) | 0.050 | 0.022 |
|
| 88 |
+
| SAM zero-shot (Grounded-SAM) | 0.0002 | 0.0002 |
|
| 89 |
+
|
| 90 |
+
Провал между валидацией на синтетике (~0.6-0.9 mAP) и UGC test (~0.1-0.3 AP)
|
| 91 |
+
у всех моделей — ожидаемый domain gap между чистыми планами и реальными
|
| 92 |
+
фото объявлений. Таблица будет обновлена по мере дообучения YOLO/Mask R-CNN
|
| 93 |
+
и первого прогона SegFormer на UGC.
|