Skip to content

linum-uqam/sbh-mouse-rag

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SBH-MOUSE-RAG

Setup environnement

python3.11 -m venv .venv; source .venv/bin/activate;
pip install uv
uv sync 

Volume

python -m scripts.volume_usage

Dataset

python -m scripts.create_dataset

Index

# Build index (without saving images)
python -m scripts.create_index # --k-normals 16 --slice-size 512 --patch-scales 1 2 4 --patch-overlap 0.25

# Build index with the images (usefull for precompute the slices)
python -m scripts.create_index --save-patch-images --patch-image-dirname patch_png

Search

With a whole slice

# Base search (only faiss cosine similarity)
python -m scripts.search_index \
  out/dataset/data/00005_a_crop1.png \
  --k 20 \
  --k-per-angle 64 \
  --save-dir out/search/baseline

Eval

Run eval

# Baseline
python -m scripts.run_eval \
  --csv out/dataset/dataset.csv \
  --source both \
  --final-k 100 \
  --k-per-angle 64 \
  --save-dir out/eval/base \
  --save-k 3 \
  --distance-grid 32 \
  --distance-trim 0.05

Run the report script

python -m scripts.run_report --csv out/eval/base/eval_hits.csv

Re-ranker

Build a training dataset

python -m scripts.create_reranker_dataset \
  --num-slices 1000 \
  --out-dir out/reranker_dataset/data \
  --csv-path out/reranker_dataset/dataset.csv \
  --seed 123

Run the eval to get the hits

# Run the eval to create the base hits that will be use to train the reranker.
python -m scripts.run_eval \
  --csv out/reranker_dataset/dataset.csv \
  --source both \
  --final-k 100 \
  --k-per-angle 64 \
  --save-dir out/reranker_dataset \
  --distance-grid 32 \
  --distance-trim 0.05

Train the re-ranker

python -m scripts.train_reranker \
  --hits-csv out/reranker_dataset/eval_hits.csv \
  --dataset-csv out/reranker_dataset/dataset.csv \
  --out out/reranker/reranker_listwise.pt \
  --train-topk 100 \
  --list-k 100 \
  --epochs 100 \
  --batch-size 64

Search with the reranker

# With re-ranker (using MLP on embeddings as reranker)
python -m scripts.search_index \
  out/dataset/data/00005_a_crop1.png \
  --k 10 \
  --k-per-angle 64 \
  --save-dir out/search/reranked \
  --use-reranker \
  --reranker-model out/reranker/reranker_listwise.pt \
  --rerank-topk 100

Eval the reranker

# With reranker
python -m scripts.run_eval \
  --csv out/dataset/dataset.csv \
  --source both \
  --final-k 100 \
  --k-per-angle 64 \
  --save-dir out/eval/rerank \
  --save-k 3 \
  --distance-grid 32 \
  --distance-trim 0.05 \
  --use-reranker \
  --rerank-topk 100 \
  --reranker-model-path out/reranker/reranker_listwise.pt \
  --reranker-device cuda \
  --reranker-batch-size 256

Run the report for the reranker results

python -m scripts.run_report \
  --baseline out/eval/base/eval_hits.csv \
  --rerank out/eval/rerank/eval_hits.csv

Paper

Install Latex locally (1.1Go)

sudo apt update;
sudo apt install \
  texlive-publishers \
  texlive-science \
  texlive-latex-recommended \
  texlive-latex-extra \
  texlive-fonts-recommended \
  texlive-lang-french \
  texlive-lang-english \
  latexmk;

Then, on vscode, go to extensions and install LaTeX Workshop.

Use LaTex extension

Build the pdf with Ctrl+Shift+P, or click on the Tex logo (left side bar) and then View LaTex PDF > View in VSCode tab.

Registering (optionnal)

python scripts/register/resample_real_to_25um.py;
python scripts/register/find_best_orientation.py \
  --allen volume/data/allen/average_template_25.nrrd \
  --real  volume/data/real/registered_brain_25um.nii.gz \
  --out-real volume/data/real/registered_brain_25um_preoriented.nii.gz \
  --subsample 4
python scripts/register/view_registration_napari.py

Other scripts

figs

python -m scripts.tests.rotation_problem out/dataset/data/00009_a_crop0.png --out out/top1_vs_rot180.png
python scripts/paper/make_pipeline_figure.py 

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages