--- license: other license_name: countgdplusplus-research license_link: https://github.com/niki-amini-naieni/CountGDPlusPlus tags: - object-counting - litter - open-vocabulary - sam3 base_model: niki-amini-naieni/CountGDPlusPlus --- # CountGD++ Litter — dense fine-tune (`countgd_litter_dense.pth`) CountGD++ fine-tuned to count litter in photos, including extremely dense illegal-dumping piles. - **Prompt:** `litter` · recommended confidence 0.23 - **Backbone/BERT frozen;** detection head fine-tuned with token focal loss + L1/GIoU on SAM 3 pseudo-labels - **Teacher:** Meta SAM 3 (`facebook/sam3`), four-prompt union (`litter, trash, garbage, discarded packaging`), with **4×4 tiled inference** on human-flagged extreme-density images (tiled teacher mean 84 items vs 25 untiled on those scenes) - **Training set:** 954 human-triaged images (194 extreme-density, 246 invalid images removed by review) - **Holdout (200, stratified):** overall count MAE 10.9; dense MAE 51 → 17; normal MAE 9.5 - **48-image comparison:** mean count 65.8 (previous dense-blind fine-tune: 33.6; untuned CountGD++: 1.9) ## Checkpoint format `torch.load(path, map_location="cpu", weights_only=False)` → `{"model": state_dict, "epoch": 2, "prompt": "litter", "holdout": [...]}`. Load `ckpt["model"]` into CountGD++ (`countgd_infer.py` in https://github.com/HugoMarchant/llitter-index). ## Limits Counts are pseudo-label quality: SAM 3 still undercounts the very densest piles, and near-dense images see a small accuracy regression. Counts are capped by CountGD++'s query budget (~900). Trained on litter scenes; not a general object counter. See RESULTS.md in the code repository for the full report.