SDDF: Specificity-Driven Dynamic Focusing for Open-Vocabulary Camouflaged Object Detection (CVPR 2026)

Released SDDF Checkpoints

This repository hosts the SDDF checkpoints fine-tuned on OVCOD-D. The checkpoints are released under GPL-3.0-only; see LICENSE. They were fine-tuned from the official DOSOD pretrained checkpoints. Upstream attribution and applicable license notices are retained.

Model Checkpoint AP AP50 AP75
SDDF-S sddf-s.pth 48.7 71.2 51.8
SDDF-M sddf-m.pth 54.6 74.7 58.4
SDDF-L sddf-l.pth 57.3 77.4 61.0

Source code, configurations, and training/evaluation scripts: Zh1fen/SDDF. The installation and training instructions below apply to the source-code repository, not to this weights-only repository. Clone the source repository before running them.

License: GPLv3 Paper Venue: CVPR 2026 Dataset Dataset

🚧 Update:

  • [2026/04/13]: The OVCOD-D benchmark dataset is released on Hugging Face and ModelScope!
  • [2026/03/25]: Repository created. Our paper has been accepted by CVPR 2026! [ArXiv Paper]

πŸ“– Introduction

Open-vocabulary object detection (OVOD) aims to detect known and unknown objects in the open world. However, camouflaged objects pose significant challenges due to high visual similarity with the background. We propose SDDF, which leverages specificity-aware sub-descriptions and a dynamic focusing mechanism to enhance the detector's discrimination capability.

πŸ“Š OVCOD-D Benchmark

Hugging Face

Benchmark Pipeline Figure: Construction pipeline of OVCOD-D dataset. We extend COD10K-D, NC4K-D, and cleaned CAMO-D with YOLO-style detection labels and an additional red imported fire ant nest subset, then reorganize them into 40 base and 47 novel classes. Qwen3-VL-Plus generates fine-grained image descriptions from which we derive a semantic prompt library for open-vocabulary camouflaged object detection.

βš™οΈ Architecture

SDDF Framework Figure: Overall architecture of the proposed specificity-driven open-vocabulary camouflaged object detector.

πŸ† Main Results

1. Comparison with Open-Vocabulary Object Detectors

Evaluated on the union of base and novel classes on the OVCOD-D dataset.

Method Backbone Params Pre-train AP AP50 AP75 APm APl
GLIP-T Swin-T 232M O365, GoldG 22.6 31.9 28.2 - -
GLIPv2-T Swin-T 232M O365, GoldG 25.6 36.4 29.7 - -
Grounding DINO-T Swin-T 172M O365, GoldG 34.8 43.9 37.7 - -
YOLO-World-S YOLOv8-S 77M O365, GoldG 38.5 58.0 41.4 18.7 41.1
YOLO-World-M YOLOv8-M 92M O365, GoldG 43.3 62.3 46.5 24.9 46.1
YOLO-World-L YOLOv8-L 110M O365, GoldG 45.7 63.2 48.9 22.9 48.4
YOLOE-S YOLOv8-S 78M O365, GoldG 38.7 46.0 40.8 - -
YOLOE-M YOLOv8-M 94M O365, GoldG 39.9 47.7 42.7 - -
DOSOD-S YOLOv8-S 75M O365, GoldG 44.8 67.4 46.8 22.4 47.2
DOSOD-M YOLOv8-M 90M O365, GoldG 51.8 73.8 55.6 27.9 54.5
DOSOD-L YOLOv8-L 108M O365, GoldG 53.4 73.1 56.2 26.4 56.3
SDDF-S (Ours) YOLOv8-S 76M O365, GoldG 48.7 71.2 51.8 25.5 51.4
SDDF-M (Ours) YOLOv8-M 91M O365, GoldG 54.6 74.7 58.4 29.7 57.3
SDDF-L (Ours) YOLOv8-L 109M O365, GoldG 57.3 77.4 61.0 32.1 60.1

2. Comparison with SOTA COD Methods

Comparison with State-of-the-Art Camouflaged Object Detection methods.

Method Backbone AP AP50 AP75
SINet-V2 ResNet-50 40.2 69.3 39.4
FSPNet Swin-T 47.9 76.2 49.4
CamoFormer Swin-T 55.6 80.2 59.0
HDPNet ViT-B 56.3 81.5 59.6
SDDF-L (Ours) YOLOv8-L 57.3 77.4 61.0

πŸ–ΌοΈ Qualitative Results

Qualitative Results Figure: Visualization of detection bounding boxes and heatmap representations.

Installation

Verified environment: Python 3.8, PyTorch 2.1.2, CUDA 12.1, MMCV 2.1.0, MMDetection 3.3.0, MMEngine 0.10.3, and MMYOLO 0.6.0.

conda create -n sddf python=3.8 -y
conda activate sddf

# Example for CUDA 12.1. Select another command from pytorch.org if needed.
pip install torch==2.1.2 torchvision==0.16.2 --index-url https://download.pytorch.org/whl/cu121

pip install mmcv==2.1.0 \
    -f https://download.openmmlab.com/mmcv/dist/cu121/torch2.1/index.html
pip install -r requirements.txt

The configuration snapshot used by SDDF is bundled in third_party/mmyolo/configs/, together with its upstream license. No separate MMYOLO clone is needed. The MMYOLO Python package is still installed by requirements.txt (mmyolo==0.6.0); the bundled directory is not a complete MMYOLO source checkout and does not replace the pip package.

Dataset

Download OVCOD-D from Hugging Face or ModelScope, and extract it to data/OVCOD-D/.

If the dataset was downloaded before 2026-10-12, please download the latest versions of these three generated files and place them in the corresponding directories:

data/OVCOD-D/annotations/train.json
data/OVCOD-D/annotations/test.json
data/OVCOD-D/texts/generated_class_texts_id.json

Packages downloaded on or after 2026-10-08 already include these files. The conversion script is retained at tools/generate_ovcod_d_annotations.py for dataset maintenance.

DOSOD Initialization Checkpoints

Download the official DOSOD S/M/L checkpoints from the D-Robotics/DOSOD Hugging Face repository:

mkdir -p weights
wget -P weights https://huggingface.co/D-Robotics/DOSOD/resolve/main/dosod_mlp3x_s.pth
wget -P weights https://huggingface.co/D-Robotics/DOSOD/resolve/main/dosod_mlp3x_m.pth
wget -P weights https://huggingface.co/D-Robotics/DOSOD/resolve/main/dosod_mlp3x_l.pth

Use the checkpoint matching the selected model scale.

Security note: the verified PyTorch 2.1.2 environment is retained for reproducibility, not for safely loading untrusted files. Loading a malicious .pth/.pt file can execute code on your machine. Only load checkpoints and serialized text embeddings that you generated yourself or obtained from trusted, verified sources. This applies to initialization, training resume, evaluation, and checkpoint conversion. Do not load files of unknown origin or files that may have been tampered with. See the PyTorch security advisory.

Training and Evaluation

Run from the repository root; the last argument is the GPU count.

bash tools/dist_train.sh configs/sddf/sddf_yolov8_s_ovcod_d.py 8
bash tools/dist_train.sh configs/sddf/sddf_yolov8_m_ovcod_d.py 8
bash tools/dist_train.sh configs/sddf/sddf_yolov8_l_ovcod_d.py 8

Evaluate a checkpoint:

bash tools/dist_test.sh configs/sddf/sddf_yolov8_l_ovcod_d.py \
    /path/to/checkpoint.pth 8

Evaluation uses the released OVCOD-D annotations with mmdet.LVISMetric for both periodic validation and standalone testing. The annotations have empty neg_category_ids lists, so predictions for categories without ground-truth annotations in an image are ignored rather than counted as false positives. Reported AP values follow this evaluation protocol.

Testing uniformly samples 10 images and saves side-by-side ground-truth and prediction visualizations to work_dirs/<config>/<timestamp>/vis_data/detections/. The same directory contains summary.json with the classes, box counts, and top prediction score for each saved image. By default, each visualization draws only the highest-scoring prediction. Use --show-max-predictions 2 to draw the Top-2 boxes. Class-agnostic NMS with IoU 0.5 is applied only to keep saved images readable:

bash tools/dist_test.sh configs/sddf/sddf_yolov8_l_ovcod_d.py \
    /path/to/checkpoint.pth 8 --show-num 12 \
    --show-max-predictions 2 --show-nms-iou-thr 0.5

Pass --no-save-vis to run evaluation without saving detection images.

This release supports SDDF training and offline evaluation, including detection visualization. Reparameterized deployment and export are not provided.

The sub-description bank is a runtime cache, not part of the checkpoint state_dict. SubTextBankInjectHook rebuilds it for training, validation, and standalone testing from class_text_path. A model used outside these runners must explicitly call head_module.set_sub_text_bank(...) after loading weights. The hook records a SHA-256 of the ordered descriptions and rebuilds the cache when descriptions, text-encoder weights, model, device, or dtype change. Use the same description file for reproducing a result. Keep its category-key order unchanged while bank-order canonicalization is pending.

Run the smoke test:

pip install -r requirements-dev.txt
pytest -q

License and Third-Party Code

SDDF is distributed as a derivative work under the GNU General Public License version 3. SDDF-authored source contributions are licensed under GPL-3.0-only. See LICENSE for the full terms and third_party/THIRD_PARTY_NOTICES.md for code provenance, upstream copyrights, applicable third-party licenses, and modification notices.

This implementation builds on YOLO-World, DOSOD, and MMYOLO, whose repository licenses are GPLv3. OpenMMLab code with Apache-2.0 notices retains those terms; the corresponding license is included in LICENSES/Apache-2.0.txt. Upstream copyright and license notices must be retained when redistributing code.

The source-code license does not automatically license the OVCOD-D dataset, external pretrained checkpoints, downloaded model code, or the paper figures in assets/. The figures are included with the SDDF authors' permission for this repository's documentation; this does not grant a separate blanket license for reuse of the figures or their underlying images. Consult the respective rights holders and distribution terms for these non-code materials. External DOSOD checkpoints are linked to their official source, not redistributed in this repository.

When creating a source archive that includes third_party/, also include its original copyright, LICENSE, and applicable NOTICE files, together with the root LICENSE, LICENSES/, and third_party/THIRD_PARTY_NOTICES.md. The bundled MMYOLO configuration snapshot includes third_party/mmyolo/LICENSE; another copy is retained at LICENSES/MMYOLO-GPL-3.0.txt.

πŸ“§ Contact

If you have any questions, please feel free to contact us or open an issue.

πŸ“ Citation

If you find our work helpful for your research, please consider citing:

@InProceedings{Liang_2026_CVPR,
    author    = {Liang, Jiaming and Zhan, Yifeng and Liu, Chunlin and Zheng, Weihua and Peng, Bingye and Liang, Qiwei and Cai, Boyang and Mai, Xiaochun and Nie, Qiang},
    title     = {SDDF: Specificity-Driven Dynamic Focusing for Open-Vocabulary Camouflaged Object Detection},
    booktitle = {Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
    month     = {June},
    year      = {2026},
    pages     = {13049-13058}
}
Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support

Dataset used to train Zhan1fen/SDDF

Paper for Zhan1fen/SDDF