Proyek riset pribadi · open source · 2026
PlanSpot: Symbol Spotting One-Shot pada Gambar CAD
Penulis tunggal: metode, benchmark, demo

Masalah
Estimator konstruksi menghitung simbol dan mengukur jalur pada set gambar berisi 300+ lembar. Setiap legenda proyek mendefinisikan simbolnya sendiri, sehingga detektor yang dilatih pada kelas tetap melewatkan simbol yang jarang. Gambar teknik juga berbeda dari foto: satu lembar penuh sekitar 10.800 × 7.200 px, simbol berukuran 20–60 px, dan garis selebar 1–3 px.
Pendekatan
DINOv2-S (frozen) dijalankan pada gambar yang diperbesar 2× dalam tile yang saling tumpang tindih, sehingga simbol kecil mencakup beberapa patch. Template contoh diambil langsung dari peta fitur gambar itu sendiri, dan gambar di-embed dalam 8 rotasi dan cerminan sehingga simbol cocok dalam orientasi apa pun. Pencocokan piksel NCC dengan pose yang sama menjadi baseline. Keduanya dinilai pada tile FloorPlanCAD yang sama, dengan ambang yang disetel pada gambar validasi terpisah.
Cara Kerja
- ContohPengguna menandai satu simbol pada gambar.
- Fitur padatFitur patch DINOv2-S pada skala 2× dalam tile 518 px yang tumpang tindih, untuk masing-masing dari 8 pose.
- CocokkanRata-rata cosine similarity antara template patch contoh dan setiap jendela, lalu puncak dan NMS.
- AmbangAmbang global yang disetel pada gambar validasi, atau potongan adaptif pada celah skor terbesar di setiap kueri.
- EvaluasiPresisi, recall, dan F1 pada IoU ≥ 0,5 per ukuran dan kelas simbol, dengan pembagian per gambar sumber.
Yang Saya Bangun
- Spotter one-shot berbasis DINOv2 (frozen) dengan upsampling bertile, template dalam konteks, dan pencocokan 8 pose, serta baseline NCC piksel.
- Benchmark pada FloorPlanCAD dengan pembagian per gambar, kelompok ukuran, dan galat hitungan, serta studi offline ambang per kueri.
- Segmenter fusi DINOv2 + LoRA untuk dinding tipis, dengan ablasi terhadap U-Net piksel, fitur frozen, dan loss topologi clDice.
- Penampil hasil statis di Hugging Face Spaces dan demo Gradio lokal.
Dampak
Pada tile uji yang sama, DINOv2 mencapai F1 0,489 dibanding 0,466 untuk pencocokan piksel, dengan presisi jauh lebih tinggi (0,78 vs 0,50) dan galat hitungan kurang dari setengahnya. Baseline klasik tetap unggul pada simbol kecil, karena simbol CAD adalah salinan persis. Ambang per kueri menaikkan pencocokan piksel ke F1 0,555, yang menunjukkan bahwa ambang sama pentingnya dengan backbone, dan bahwa recall (~0,4) adalah hambatan berikutnya. Untuk segmentasi dinding, LoRA pada DINOv2 mencapai F1 0,761 dibanding 0,704 untuk U-Net piksel dan 0,731 untuk fitur frozen, dan loss clDice mengurangi galat jumlah potongan dinding 23% lagi dengan biaya 1,3 poin F1.
