Web Analytics

no-time-to-train

⭐ 292 stars Turkish by miquel-espinosa

🌐 Dil

🚀 Eğitime Zaman Yok!

Eğitimsiz Referans Tabanlı Nesne Segmentasyonu

GitHub Website arXiv

En Son Teknoloji (Papers with Code)

_SOTA 1-shot_ | PWC-21CBCE?style=flat&logo=paperswithcode)

_SOTA 10-shot_ | PWC-21CBCE?style=flat&logo=paperswithcode)

_SOTA 30-shot_ | PWC-21CBCE?style=flat&logo=paperswithcode)


🚨 Güncelleme (5 Şubat 2026): Makale el yazması kapsamlı ablation çalışmaları, görselleştirmeler ve ek deneylerle güncellendi.
🚨 Güncelleme (22 Temmuz 2025): Özel veri setleri için talimatlar eklendi!
🔔 Güncelleme (16 Temmuz 2025): Kod, talimatlarla birlikte güncellendi!


📋 İçindekiler

🎯 Öne Çıkanlar

Bağlantılar:

📜 Özet

The performance of image segmentation models has historically been constrained by the high cost of collecting large-scale annotated data. The Segment Anything Model (SAM) alleviates this original problem through a promptable, semantics-agnostic, segmentation paradigm and yet still requires manual visual-prompts or complex domain-dependent prompt-generation rules to process a new image. Towards reducing this new burden, our work investigates the task of object segmentation when provided with, alternatively, only a small set of reference images. Our key insight is to leverage strong semantic priors, as learned by foundation models, to identify corresponding regions between a reference and a target image. We find that correspondences enable automatic generation of instance-level segmentation masks for downstream tasks and instantiate our ideas via a multi-stage, training-free method incorporating (1) memory bank construction; (2) representation aggregation and (3) semantic-aware feature matching. Our experiments show significant improvements on segmentation metrics, leading to state-of-the-art performance on COCO FSOD (36.8% nAP), PASCAL VOC Few-Shot (71.2% nAP50) and outperforming existing training-free approaches on the Cross-Domain FSOD benchmark (22.4% nAP).

cdfsod-results-final-comic-sans-min

🧠 Architecture

training-free-architecture-comic-sans-min

🛠️ Installation instructions

1. Clone the repository

git clone https://github.com/miquel-espinosa/no-time-to-train.git
cd no-time-to-train

2. Conda ortamı oluşturun

Gerekli paketlerle bir conda ortamı oluşturacağız.

conda env create -f environment.yml
conda activate no-time-to-train

3. SAM2 ve DINOv2'yi Kurun

SAM2 ve DINOv2'yi kaynaktan kuracağız.

pip install -e .
cd dinov2
pip install -e .
cd ..

4. Veri setlerini indirin

Lütfen COCO veri setini indirin ve data/coco klasörüne yerleştirin

5. SAM2 ve DINOv2 kontrol noktalarını indirin

Makalede kullanılan tam SAM2 kontrol noktalarını indireceğiz. (Ancak, SAM2.1 kontrol noktalarının zaten mevcut olduğunu ve daha iyi performans gösterebileceğini unutmayın.)

mkdir -p checkpoints/dinov2
cd checkpoints
wget https://dl.fbaipublicfiles.com/segment_anything_2/072824/sam2_hiera_large.pt
cd dinov2
wget https://dl.fbaipublicfiles.com/dinov2/dinov2_vitl14/dinov2_vitl14_pretrain.pth
cd ../..

📊 Çıkarım kodu

⚠️ Uyarı: Bu bir araştırma kodudur — biraz karmaşa bekleyin!

Few-shot COCO'da 30-shot SOTA sonuçlarını çoğaltma

Kullanışlı değişkenleri tanımlayın ve sonuçlar için bir klasör oluşturun:

CONFIG=./no_time_to_train/new_exps/coco_fewshot_10shot_Sam2L.yaml
CLASS_SPLIT="few_shot_classes"
RESULTS_DIR=work_dirs/few_shot_results
SHOTS=30
SEED=33
GPUS=4

mkdir -p $RESULTS_DIR FILENAME=few_shot_${SHOTS}shot_seed${SEED}.pkl

#### 0. Referans seti oluşturun

python no_time_to_train/dataset/few_shot_sampling.py \
        --n-shot $SHOTS \
        --out-path ${RESULTS_DIR}/${FILENAME} \
        --seed $SEED \
        --dataset $CLASS_SPLIT
#### 1. Belleği referanslarla doldurun

python run_lightening.py test --config $CONFIG \
                              --model.test_mode fill_memory \
                              --out_path ${RESULTS_DIR}/memory.ckpt \
                              --model.init_args.model_cfg.memory_bank_cfg.length $SHOTS \
                              --model.init_args.dataset_cfgs.fill_memory.memory_pkl ${RESULTS_DIR}/${FILENAME} \
                              --model.init_args.dataset_cfgs.fill_memory.memory_length $SHOTS \
                              --model.init_args.dataset_cfgs.fill_memory.class_split $CLASS_SPLIT \
                              --trainer.logger.save_dir ${RESULTS_DIR}/ \
                              --trainer.devices $GPUS
#### 2. Bellek bankasını sonradan işleme

python run_lightening.py test --config $CONFIG \
                              --model.test_mode postprocess_memory \
                              --model.init_args.model_cfg.memory_bank_cfg.length $SHOTS \
                              --ckpt_path ${RESULTS_DIR}/memory.ckpt \
                              --out_path ${RESULTS_DIR}/memory_postprocessed.ckpt \
                              --trainer.devices 1
#### 3. Hedef görüntülerde çıkarım yapma

python run_lightening.py test --config $CONFIG  \
                              --ckpt_path ${RESULTS_DIR}/memory_postprocessed.ckpt \
                              --model.init_args.test_mode test \
                              --model.init_args.model_cfg.memory_bank_cfg.length $SHOTS \
                              --model.init_args.model_cfg.dataset_name $CLASS_SPLIT \
                              --model.init_args.dataset_cfgs.test.class_split $CLASS_SPLIT \
                              --trainer.logger.save_dir ${RESULTS_DIR}/ \
                              --trainer.devices $GPUS
Eğer çıkarım sonuçlarını çevrimiçi olarak (hesaplandıkça) görmek isterseniz, şu argümanı ekleyin:

    --model.init_args.model_cfg.test.online_vis True
Puan eşiği score_thr parametresini ayarlamak için, argümanı ekleyin (örneğin, skoru 0.4'ten yüksek olan tüm örnekleri görselleştirmek için):
    --model.init_args.model_cfg.test.vis_thr 0.4
Görseller artık results_analysis/few_shot_classes/ klasörüne kaydedilecektir. Soldaki görsel gerçek durumu, sağdaki görsel ise eğitim gerektirmeyen yöntemimizle bulunan bölünmüş örnekleri göstermektedir.

Bu örnekte few_shot_classes bölümünü kullandığımızı unutmayın, bu nedenle yalnızca bu bölümdeki sınıfların bölünmüş örneklerini görmeyi beklemeliyiz (COCO’daki tüm sınıfları değil).

#### Sonuçlar

Doğrulama setindeki tüm görselleri çalıştırdıktan sonra şunları elde etmelisiniz:

BBOX RESULTS:
  Average Precision  (AP) @[ IoU=0.50:0.95 | area=   all | maxDets=100 ] = 0.368

SEGM RESULTS: Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.342


🔍 Özel veri seti

Kendi veri setinizde boru hattımızı çalıştırmak için talimatları sağlıyoruz. Açıklama formatı her zaman COCO formatındadır.

Özetle; Özel veri setlerinde tam boru hattının nasıl çalıştırılacağını doğrudan görmek için scripts/matching_cdfsod_pipeline.sh dosyasına ve CD-FSOD veri setlerinin örnek betiklerine (örn. scripts/dior_fish.sh) bakabilirsiniz.

0. Özel bir veri seti hazırlama ⛵🐦

Diyelim ki özel bir veri setinde tekne⛵ ve kuş🐦 tespiti yapmak istiyoruz. Yöntemimizi kullanmak için şunlara ihtiyacımız olacak:

COCO görselleriyle 1-shot ayarında özel bir veri seti oluşturmak için basit bir betik hazırladık.
mkdir -p data/my_custom_dataset
python scripts/make_custom_dataset.py
Bu, aşağıdaki klasör yapısına sahip özel bir veri kümesi oluşturacaktır:
data/my_custom_dataset/
    ├── annotations/
    │   ├── custom_references.json
    │   ├── custom_targets.json
    │   └── references_visualisations/
    │       ├── bird_1.jpg
    │       └── boat_1.jpg
    └── images/
        ├── 429819.jpg
        ├── 101435.jpg
        └── (all target and reference images)
Referans görsellerin görselleştirilmesi (1-atış):

| KUŞ 🐦 için 1-atış Referans Görseli | TEKNE ⛵ için 1-atış Referans Görseli | |:----------------------------------:|:------------------------------------:| | bird_1 | boat_1 |

0.1 Sadece bbox anotasyonları mevcutsa

Yalnızca referans görseller için sınırlayıcı kutu (bbox) anotasyonlarınız varsa, SAM2 kullanarak örnek düzeyinde segmentasyon maskeleri oluşturmak için de bir betik sağlıyoruz. Bu, yalnızca sınırlayıcı kutu anotasyonları mevcutsa faydalıdır.

# Download sam_h checkpoint. Feel free to use more recent checkpoints (note: code might need to be adapted)
wget https://dl.fbaipublicfiles.com/segment_anything/sam_vit_h_4b8939.pth -O checkpoints/sam_vit_h_4b8939.pth

Run automatic instance segmentation from ground truth bounding boxes.

python no_time_to_train/dataset/sam_bbox_to_segm_batch.py \ --input_json data/my_custom_dataset/annotations/custom_references.json \ --image_dir data/my_custom_dataset/images \ --sam_checkpoint checkpoints/sam_vit_h_4b8939.pth \ --model_type vit_h \ --device cuda \ --batch_size 8 \ --visualize
Örnek düzeyinde segmentasyon maskeleriyle referans görüntüler (gt bounding box'lardan SAM2 ile oluşturuldu, 1-shot):

Oluşturulan segmentasyon maskelerinin görselleştirmeleri data/my_custom_dataset/annotations/custom_references_with_SAM_segm/references_visualisations/ dizininde kaydedilmiştir.

| KUŞ 🐦 için 1-shot Referans Görüntüsü (SAM ile otomatik segmentasyonlu) | TEKNE ⛵ için 1-shot Referans Görüntüsü (SAM ile otomatik segmentasyonlu) | |:---------------------------------:|:----------------------------------:| | bird_1_with_SAM_segm | boat_1_with_SAM_segm |

0.2 Coco açıklamalarını pickle dosyasına dönüştür

python no_time_to_train/dataset/coco_to_pkl.py \
    data/my_custom_dataset/annotations/custom_references_with_segm.json \
    data/my_custom_dataset/annotations/custom_references_with_segm.pkl \
    1

1. Belleği referanslarla doldurun

Öncelikle, kullanışlı değişkenler tanımlayın ve sonuçlar için bir klasör oluşturun. Etiketlerin doğru görselleştirilmesi için, sınıf isimleri json dosyasında göründüğü gibi kategori kimliğine göre sıralanmalıdır. Örneğin, bird kategori kimliği 16, boat ise kategori kimliği 9'dur. Bu nedenle, CAT_NAMES=boat,bird.

DATASET_NAME=my_custom_dataset
DATASET_PATH=data/my_custom_dataset
CAT_NAMES=boat,bird
CATEGORY_NUM=2
SHOT=1
YAML_PATH=no_time_to_train/pl_configs/matching_cdfsod_template.yaml
PATH_TO_SAVE_CKPTS=./tmp_ckpts/my_custom_dataset
mkdir -p $PATH_TO_SAVE_CKPTS
Adım 1'i çalıştırın:

python run_lightening.py test --config $YAML_PATH \
    --model.test_mode fill_memory \
    --out_path $PATH_TO_SAVE_CKPTS/$DATASET_NAME\_$SHOT\_refs_memory.pth \
    --model.init_args.dataset_cfgs.fill_memory.root $DATASET_PATH/images \
    --model.init_args.dataset_cfgs.fill_memory.json_file $DATASET_PATH/annotations/custom_references_with_segm.json \
    --model.init_args.dataset_cfgs.fill_memory.memory_pkl $DATASET_PATH/annotations/custom_references_with_segm.pkl \
    --model.init_args.dataset_cfgs.fill_memory.memory_length $SHOT \
    --model.init_args.dataset_cfgs.fill_memory.cat_names $CAT_NAMES \
    --model.init_args.model_cfg.dataset_name $DATASET_NAME \
    --model.init_args.model_cfg.memory_bank_cfg.length $SHOT \
    --model.init_args.model_cfg.memory_bank_cfg.category_num $CATEGORY_NUM \
    --trainer.devices 1

2. Bellek bankasını sonradan işleme

python run_lightening.py test --config $YAML_PATH \
    --model.test_mode postprocess_memory \
    --ckpt_path $PATH_TO_SAVE_CKPTS/$DATASET_NAME\_$SHOT\_refs_memory.pth \
    --out_path $PATH_TO_SAVE_CKPTS/$DATASET_NAME\_$SHOT\_refs_memory_postprocessed.pth \
    --model.init_args.model_cfg.dataset_name $DATASET_NAME \
    --model.init_args.model_cfg.memory_bank_cfg.length $SHOT \
    --model.init_args.model_cfg.memory_bank_cfg.category_num $CATEGORY_NUM \
    --trainer.devices 1

#### 2.1 İşlenmiş bellek bankasını görselleştir

python run_lightening.py test --config $YAML_PATH \
    --model.test_mode vis_memory \
    --ckpt_path $PATH_TO_SAVE_CKPTS/$DATASET_NAME\_$SHOT\_refs_memory_postprocessed.pth \
    --model.init_args.dataset_cfgs.fill_memory.root $DATASET_PATH/images \
    --model.init_args.dataset_cfgs.fill_memory.json_file $DATASET_PATH/annotations/custom_references_with_segm.json \
    --model.init_args.dataset_cfgs.fill_memory.memory_pkl $DATASET_PATH/annotations/custom_references_with_segm.pkl \
    --model.init_args.dataset_cfgs.fill_memory.memory_length $SHOT \
    --model.init_args.dataset_cfgs.fill_memory.cat_names $CAT_NAMES \
    --model.init_args.model_cfg.dataset_name $DATASET_NAME \
    --model.init_args.model_cfg.memory_bank_cfg.length $SHOT \
    --model.init_args.model_cfg.memory_bank_cfg.category_num $CATEGORY_NUM \
    --trainer.devices 1
Bellek bankası görüntüleri için PCA ve K-means görselleştirmeleri results_analysis/memory_vis/my_custom_dataset klasöründe saklanır.

3. Hedef görüntülerde çıkarım

Eğer ONLINE_VIS True olarak ayarlanırsa, tahmin sonuçları results_analysis/my_custom_dataset/ klasörüne kaydedilir ve hesaplandıkça görüntülenir. ONLINE görselleştirme ile çalışmanın çok daha yavaş olduğunu UNUTMAYIN.

Daha fazla veya daha az segmentlenmiş örnek görmek için skor eşiği olan VIS_THR değerini istediğiniz gibi değiştirebilirsiniz.

ONLINE_VIS=True
VIS_THR=0.4
python run_lightening.py test --config $YAML_PATH \
    --model.test_mode test \
    --ckpt_path $PATH_TO_SAVE_CKPTS/$DATASET_NAME\_$SHOT\_refs_memory_postprocessed.pth \
    --model.init_args.model_cfg.dataset_name $DATASET_NAME \
    --model.init_args.model_cfg.memory_bank_cfg.length $SHOT \
    --model.init_args.model_cfg.memory_bank_cfg.category_num $CATEGORY_NUM \
    --model.init_args.model_cfg.test.imgs_path $DATASET_PATH/images \
    --model.init_args.model_cfg.test.online_vis $ONLINE_VIS \
    --model.init_args.model_cfg.test.vis_thr $VIS_THR \
    --model.init_args.dataset_cfgs.test.root $DATASET_PATH/images \
    --model.init_args.dataset_cfgs.test.json_file $DATASET_PATH/annotations/custom_targets.json \
    --model.init_args.dataset_cfgs.test.cat_names $CAT_NAMES \
    --trainer.devices 1

Sonuçlar

Performans metrikleri (yukarıdaki komutlarla tamamen aynı parametrelerle) şu şekilde olmalıdır:

BBOX RESULTS:
  Average Precision  (AP) @[ IoU=0.50:0.95 | area=   all | maxDets=100 ] = 0.478

SEGM RESULTS: Average Precision (AP) @[ IoU=0.50:0.95 | area= all | maxDets=100 ] = 0.458

Görsel sonuçlar results_analysis/my_custom_dataset/ klasörüne kaydedilir. Yöntemimizin yanlış negatifler üzerinde çalıştığını unutmayın; yani, istenen sınıflardan hiçbir örnek içermeyen görüntülerde de çalışır.

Görüntüleri büyütmek için tıklayın ⬇️

| Botlu hedef görüntü ⛵ (sol GT, sağ tahminler) | Kuşlu hedef görüntü 🐦 (sol GT, sağ tahminler) | |:----------------------:|:----------------------:| | 000000459673 | 000000407180 |

| Botlu ve kuşlu hedef görüntü ⛵🐦 (sol GT, sağ tahminler) | Botsuz ve kuşsuz hedef görüntü 🚫 (sol GT, sağ tahminler) | |:---------------------------------:|:----------------------------------:| | 000000517410 | 000000460598 |

🔬 Ablasyonlar

Omurga (Backbone) ablasyonu

Yöntemimizin temel modeller arasında aktarılabilirliğini değerlendirmek için hem anlamsal kodlayıcıyı (DINOv2) hem de SAM tabanlı segmentleyiciyi çeşitli alternatiflerle değiştirdik.

Anlamsal kodlayıcı ablasyonu:

# CLIP (Sizes: b16, b32, l14, l14@336px)
bash scripts/clip/clipl14@336px.sh
bash scripts/clip/clipl14.sh
bash scripts/clip/clipb16.sh
bash scripts/clip/clipb32.sh

DINOV3 (Sizes: b, l, h)

bash scripts/dinov3/dinov3b.sh bash scripts/dinov3/dinov3l.sh bash scripts/dinov3/dinov3h.sh

PE (Sizes: g14, l14)

bash scripts/pe/PEg14.sh bash scripts/pe/PEl14.sh

Segmentleyici ablation:

# SAM2 (Sizes: tiny, small, base+, large)
bash scripts/sam2/sam2_tiny.sh
bash scripts/sam2/sam2_small.sh
bash scripts/sam2/sam2_base_plus.sh
bash scripts/baseline/dinov2_sam_baseline.sh # SAM2 Large

COCO birkaç örnekli veri setinde VLM değerlendirmesi

QWEN VLM'yi COCO birkaç örnekli veri setinde değerlendiriyoruz.

bash scripts/vl-qwen/ablation-vl-qwen.sh

Referans görüntü sezgisel yöntemleri

Farklı referans görüntülerinin neden performans değişikliğine yol açtığını anlamak için, COCO yeni sınıf ek açıklamalarının istatistiksel özelliklerini analiz ediyoruz.

#### ANALİZ

Üç ek açıklama özelliğini inceliyoruz: (1) maske alanı (nesne boyutu), (2) maske merkez konumu ve (3) görüntü kenarlarına olan mesafe.

Talimatlar:

# Mask area distribution
python no_time_to_train/make_plots/mask_area_distribution.py \
  --input data/coco/annotations/instances_val2017.json \
  --output no_time_to_train/make_plots/mask_area_distribution/mask_area_distribution.png \
  --edges-output no_time_to_train/make_plots/mask_area_distribution/bbox_edge_distance_histograms.png \
  --center-output no_time_to_train/make_plots/mask_area_distribution/bbox_center_density.png \
  --bins 80 \
  --distance-bins 80 \
  --disable-center-density

Bbox center positions

python no_time_to_train/make_plots/bbox_positions.py \ --per-class-root data/coco/annotations/per_class_instances \ --filename centeredness_2d_hist_plain.png \ --max-cols 6 \ --output-dir ./no_time_to_train/make_plots/bbox_positions \ --outfile grid_bbox_positions.png

[ÇIKTI] Maske alanı dağılımı mask_area_distribution

[ÇIKTI] Bbox merkez yoğunluğu grid_bbox_positions

[ÇIKTI] Bbox kenar mesafe histogramları bbox_edge_distance_histograms

#### SEÇİM

Her sınıf için 100 çeşitli referans görüntüsü örnekliyoruz, özellikle maske boyutları, merkezleri ve kenar mesafeleri aralığını kapsıyoruz. Her referans sabit bir azaltılmış doğrulama alt kümesi üzerinde değerlendiriliyor.

Talimatlar:

Kurulum betiği: scripts/1shot_ref_ablation/setup.sh:

  • Sınıf başına json dosyası oluştur
  • Belirli sınıfı analiz et
  • Farklı sezgilerle referans seti oluştur
bash scripts/1shot_ref_ablation/setup.sh

Betikleri çalıştırın: scripts/1shot_ref_ablation/gpu*.sh:

  • Her referans seti için boru hattını çalıştırın
# Example launch script that calls template script for each reference set
bash scripts/1shot_ref_ablation/gpu0.sh

#### SONUÇLAR

Tespit skorlarının referans görüntü özellikleriyle (maske boyutu, merkez pozisyonu, kenar mesafesi) nasıl ilişkili olduğunu analiz ediyoruz.

Talimatlar:

python no_time_to_train/make_plots/heuristics_analysis.py

Outputs:

- no_time_to_train/make_plots/heuristics_analysis/heatmap_bbox_norm_scores.png

- no_time_to_train/make_plots/heuristics_analysis/heatmap_segm_norm_scores.png

- no_time_to_train/make_plots/heuristics_analysis/heatmap_center_bbox_norm_scores_kde_smooth.png

- no_time_to_train/make_plots/heuristics_analysis/heatmap_center_bbox_norm_scores.png

- no_time_to_train/make_plots/heuristics_analysis/heatmap_center_segm_norm_scores_kde_smooth.png

- no_time_to_train/make_plots/heuristics_analysis/heatmap_center_segm_norm_scores.png

- no_time_to_train/make_plots/heuristics_analysis/per_class_area_vs_raw_scores.png

- no_time_to_train/make_plots/heuristics_analysis/all_classes_area_vs_norm_scores.png

- no_time_to_train/make_plots/heuristics_analysis/edge_distance_vs_norm_scores.png

- no_time_to_train/make_plots/heuristics_analysis/bars_area_category_norm_scores.png

- no_time_to_train/make_plots/heuristics_analysis/bars_centered_norm_scores.png

- no_time_to_train/make_plots/heuristics_analysis/bars_avoid_sides_norm_scores.png

[ÇIKTI] Çubuk Grafikler. Maske alanının (sol) ve ortalanmışlığın (sağ) performans üzerindeki etkisi barplot

[ÇIKTI] Isı Haritaları. Performansın maske-merkez konumuna bağlı olarak 2B skor haritaları heatmap

[ÇIKTI] Tüm COCO yeni sınıfları için referans-görüntü performansı vs. maske alanı class_performance

Referans-görüntü bozulması

Yöntemimizi giderek daha fazla bozulmuş referans görüntüleriyle, artan seviyelerde Gauss bulanıklığı uygulayarak değerlendiriyoruz. ablation-blur

Talimatlar:

# Run different blur levels
bash scripts/blur_ablation/blur_ablation.sh

Plot grid of blur ablation results

python no_time_to_train/make_plots/plot_blur_results.py \ --results-root ./work_dirs/blur_ablation \ --class-id 0 \ --max-cols 4 \ --output-dir ./no_time_to_train/make_plots/blur_ablation \ --outfile grid_blur_ablation_class_0.png

Özellik benzerliği

Referans görüntüler ile hedef görüntüler arasındaki özellik benzerliğini görselleştirmek için bir betik.

Tekli özellik benzerliği (yol özellikleri) ve prototip tabanlı benzerlik (toplu özellikler) üretir. feature_similarity_small

Talimatlar:

python no_time_to_train/make_plots/feature_similarity.py \
  --classes orange \  
  --num-images 20 \
  --min-area 12 \
  --max-area 25000 \
  --min-instances 2 \
  --seed 123 \
  --max-per-class 12

T-SNE grafikleri (DINOv2 özellik ayrıştırılması)

DINOv2 özelliklerinin t-SNE'si, farklı sınıflar için belirgin bir ayrım gösterirken, benzer olanlar için yoğun bir örtüşme gösteriyor; bu da karışıklığın, omurga özellik geometrisinden kaynaklandığını, prototip seçiminin ise daha az etkili olduğunu gösteriyor. tsne

Talimatlar:

Özellikleri çıkar

python no_time_to_train/make_plots/tsne-coco.py --extract

T-SNE grafiklerini çiz

# Example spoon vs fork
python no_time_to_train/make_plots/tsne-coco.py --classes cat dog

🛠️ Yardımcılar

Belleği Görselleştir

feature_comparison_small.png adlı resmi buraya ekleyin

Talimatlar

Belirli bir deney için bellek bankasını (PCA ve K-means görselleştirmeleri) görselleştirmek üzere aşağıdaki komutu ayarlayın.

Referans görüntüsünü kırpılmış maske ile/maske olmadan görselleştirmek için DO_NOT_CROP'u True/False olarak ayarlayın (no_time_to_train/models/Sam2MatchingBaseline_noAMG.py dosyasında).

python run_lightening.py test --config $CONFIG \
    --model.test_mode vis_memory \
    --ckpt_path $RESULTS_DIR/memory_postprocessed.ckpt \
    --model.init_args.dataset_cfgs.fill_memory.memory_pkl $RESULTS_DIR/$FILENAME \
    --model.init_args.dataset_cfgs.fill_memory.memory_length $SHOT \
    --model.init_args.dataset_cfgs.fill_memory.class_split $CLASS_SPLIT \
    --model.init_args.model_cfg.dataset_name $CLASS_SPLIT \
    --model.init_args.model_cfg.memory_bank_cfg.length $SHOT \
    --model.init_args.model_cfg.memory_bank_cfg.category_num $CATEGORY_NUM \
    --trainer.devices 1

Görselleri 512x512 boyutuna yeniden boyutlandırın (görüntüleri kare yapın)

Görselleri 512x512 boyutuna yeniden boyutlandırmak ve yeni bir dizine kaydetmek için aşağıdaki komutu çalıştırın. Bu, makale figürleri içindir.

Talimatlar:

python no_time_to_train/make_plots/paper_fig_square_imgs.py

Model boyutu ve bellek

Model boyutunu ve belleği hesaplamak için aşağıdaki komutu çalıştırın.

Talimatlar:

  • Model boyutu ve bellek hesaplaması için no_time_to_train/models/Sam2MatchingBaseline_noAMG_model_and_memory.py dosyasına bakın.
(En kolay: Geçici olarak Sam2MatchingBaseline_noAMG.py ile değiştirin, sonra tekrar eski adını verin.)

🌍 EO veri setleri

Değerlendirme scriptleri (EO veri setleri)

Değerlendirme scriptleri scripts/EO dizininde bulunabilir. EO veri setleri, değerlendirmeyi çalıştırmak için ./scripts/EO/EO_template.sh scriptini kullanır.

Her EO deney çalışması ./EO_results dizini altında kaydedilir. Deney klasöründe şunları saklarız:

Şekil ve tablolar

Şekil ve tablo üretmek için ek scriptler.

EO veri setlerinin özet latex tablosu:

python scripts/convert_datasets/summary_table_datasets.py

EO veri kümelerinin LaTeX tablosunu oluştur:

python scripts/paper_figures/table_EO_results.py ./EO_results_no_heuristics

EO veri kümelerinin doğruluk grafiği:

python scripts/paper_figures/plot_EO_accuracy.py \
  --input-root ./EO_results \
  --output-root ./EO_results

EO veri setleri üzerindeki sezgisel yöntemlerin etkisinin özeti:

python scripts/paper_figures/plot_EO_heuristic.py \
  --no-heuristics ./EO_results_no_heuristics \
  --heuristics ./EO_results

EO veri setlerinin çalışma zamanı grafiği:

python scripts/paper_figures/plot_EO_runtime.py \
  --input-root ./EO_results \
  --output-root ./EO_results

Makale şekli için EO grid görselleştirmeleri oluşturun:

python scripts/paper_figures/plot_EO_grid.py \
  --root ./EO_results_no_heuristics \
  --dataset ISAID \
  --shots 1

📚 Citation

If you use this work, please cite us:

@article{espinosa2025notimetotrain,
  title={No time to train! Training-Free Reference-Based Instance Segmentation},
  author={Miguel Espinosa and Chenhongyi Yang and Linus Ericsson and Steven McDonagh and Elliot J. Crowley},
  journal={arXiv preprint arXiv:2507.02798},
  year={2025},
  primaryclass={cs.CV}
}

--- Tranlated By Open Ai Tx | Last indexed: 2026-03-13 ---