Training¶
To replicate our results use bob binseg train
followed by the model config
and the dataset config. Use bob binseg train --help
for more information.
Note
We strongly advice training with a GPU (using -d cuda
). Depending on the available GPU
memory you might have to adjust your batch size (-b
).
Default Dataset configs¶
Vessel:
CHASEDB1
CHASEDB1TEST
COVD-DRIVE
COVD-DRIVE_SSL
COVD-STARE
COVD-STARE_SSL
COVD-IOSTARVESSEL
COVD-IOSTARVESSEL_SSL
COVD-HRF
COVD-HRF_SSL
COVD-CHASEDB1
COVD-CHASEDB1_SSL
DRIVE
DRIVETEST
HRF
HRFTEST
IOSTARVESSEL
IOSTARVESSELTEST
STARE
STARETEST
Optic Disc and Cup
DRIONSDB
DRIONSDBTEST
DRISHTIGS1OD
DRISHTIGS1ODTEST
DRISHTIGS1CUP
DRISHTIGS1CUPTEST
IOSTAROD
IOSTARODTEST
REFUGECUP
REFUGECUPTEST
REFUGEOD
REFUGEODTEST
RIMONER3CUP
RIMONER3CUPTEST
RIMONER3OD
RIMONER3ODTEST
Default Model configs¶
DRIU
DRIUBN
DRIUSSL
DRIUBNSSL
DRIUOD
HED
M2UNet
M2UNetSSL
UNet
Baseline Benchmarks¶
#!/bin/bash
# set output directory
outputroot=`pwd`"/output"
mkdir -p $outputroot
#### Global config ####
m2u=M2UNet
hed=HED
driu=DRIU
unet=UNet
m2ussl=M2UNetSSL
driussl=DRIUSSL
#### CHASE_DB 1 ####
dataset=CHASEDB1
output=$outputroot"/"$dataset
mkdir -p $output
# batch sizes
b_m2u=6
b_hed=4
b_driu=4
b_unet=2
# Train
bob binseg train $m2u $dataset -b $b_m2u -d cuda -o $output"/"$m2u -vv
bob binseg train $hed $dataset -b $b_hed -d cuda -o $output"/"$hed -vv
bob binseg train $driu $dataset -b $b_driu -d cuda -o $output"/"$driu -vv
bob binseg train $unet $dataset -b $b_unet -d cuda -o $output"/"$unet -vv
#### DRIVE ####
dataset=DRIVE
output=$outputroot"/"$dataset
mkdir -p $output
# model configs
b_m2u=16
b_hed=8
b_driu=8
b_unet=4
# Train
bob binseg train $m2u $dataset -b $b_m2u -d cuda -o $output"/"$m2u -vv
bob binseg train $hed $dataset -b $b_hed -d cuda -o $output"/"$hed -vv
bob binseg train $driu $dataset -b $b_driu -d cuda -o $output"/"$driu -vv
bob binseg train $unet $dataset -b $b_unet -d cuda -o $output"/"$unet -vv
#### HRF ####
dataset=HRF
output=$outputroot"/"$dataset
mkdir -p $output
# model configs
b_m2u=1
b_hed=1
b_driu=1
b_unet=1
# Train
bob binseg train $m2u $dataset -b $b_m2u -d cuda -o $output"/"$m2u -vv
bob binseg train $hed $dataset -b $b_hed -d cuda -o $output"/"$hed -vv
bob binseg train $driu $dataset -b $b_driu -d cuda -o $output"/"$driu -vv
bob binseg train $unet $dataset -b $b_unet -d cuda -o $output"/"$unet -vv
#### IOSTAR VESSEL ####
dataset=IOSTARVESSEL
output=$outputroot"/"$dataset
mkdir -p $output
# model configs
b_m2u=6
b_hed=4
b_driu=4
b_unet=2
# Train
bob binseg train $m2u $dataset -b $b_m2u -d cuda -o $output"/"$m2u -vv
bob binseg train $hed $dataset -b $b_hed -d cuda -o $output"/"$hed -vv
bob binseg train $driu $dataset -b $b_driu -d cuda -o $output"/"$driu -vv
bob binseg train $unet $dataset -b $b_unet -d cuda -o $output"/"$unet -vv
#### STARE ####
dataset=STARE
output=$outputroot"/"$dataset
mkdir -p $output
# model configs
b_m2u=6
b_hed=4
b_driu=5
b_unet=2
# Train
bob binseg train $m2u $dataset -b $b_m2u -d cuda -o $output"/"$m2u -vv
bob binseg train $hed $dataset -b $b_hed -d cuda -o $output"/"$hed -vv
bob binseg train $driu $dataset -b $b_driu -d cuda -o $output"/"$driu -vv
bob binseg train $unet $dataset -b $b_unet -d cuda -o $output"/"$unet -vv
Combined Vessel Dataset (COVD) and Semi-Supervised Learning (SSL)¶
COVD-:
### COVD-DRIVE ####
dataset=COVD-DRIVE
output=$outputroot"/"$dataset
mkdir -p $output
# model configs
driu=DRIU
m2u=M2UNet
b_driu=4
b_m2u=8
# Train
bob binseg train $driu $dataset -b $b_driu -d cuda -o $output"/"$driu -vv
bob binseg train $m2u $dataset -b $b_m2u -d cuda -o $output"/"$m2u -vv
### COVD-STARE ####
dataset=COVD-STARE
output=$outputroot"/"$dataset
mkdir -p $output
# model configs
driu=DRIU
m2u=M2UNet
b_driu=4
b_m2u=4
# Train
bob binseg train $driu $dataset -b $b_driu -d cuda -o $output"/"$driu -vv
bob binseg train $m2u $dataset -b $b_m2u -d cuda -o $output"/"$m2u -vv
### COVD-IOSTAR ####
dataset=COVD-IOSTARVESSEL
output=$outputroot"/"$dataset
mkdir -p $output
# model configs
driu=DRIU
m2u=M2UNet
b_driu=2
b_m2u=4
# Train
bob binseg train $driu $dataset -b $b_driu -d cuda -o $output"/"$driu -vv
bob binseg train $m2u $dataset -b $b_m2u -d cuda -o $output"/"$m2u -vv
### COVD-CHASEDB1 ####
dataset=COVD-CHASEDB1
output=$outputroot"/"$dataset
mkdir -p $output
# model configs
driu=DRIU
m2u=M2UNet
b_driu=2
b_m2u=4
# Train
bob binseg train $driu $dataset -b $b_driu -d cuda -o $output"/"$driu -vv
bob binseg train $m2u $dataset -b $b_m2u -d cuda -o $output"/"$m2u -vv
### COVD-HRF ####
dataset=COVD-HRF
output=$outputroot"/"$dataset
mkdir -p $output
# model configs
driu=DRIU
m2u=M2UNet
b_driu=2
b_m2u=4
# Train
bob binseg train $driu $dataset -b $b_driu -d cuda -o $output"/"$driu -vv
bob binseg train $m2u $dataset -b $b_m2u -d cuda -o $output"/"$m2u -vv
COVD-SSL:
### COVD-DRIVE_SSL ####
dataset=COVD-DRIVE_SSL
output=$outputroot"/"$dataset
mkdir -p $output
# model configs
driu=DRIUSSL
m2u=M2UNetSSL
b_driu=4
b_m2u=4
# Train
bob binseg ssltrain $driu $dataset -b $b_driu -d cuda -o $output"/"$driu -vv
bob binseg ssltrain $m2u $dataset -b $b_m2u -d cuda -o $output"/"$m2u -vv
### COVD-STARE_SSL ####
dataset=COVD-STARE_SSL
output=$outputroot"/"$dataset
mkdir -p $output
# model configs
driu=DRIUSSL
m2u=M2UNetSSL
b_driu=4
b_m2u=4
# Train
bob binseg ssltrain $driu $dataset -b $b_driu -d cuda -o $output"/"$driu -vv
bob binseg ssltrain $m2u $dataset -b $b_m2u -d cuda -o $output"/"$m2u -vv
### COVD-IOSTAR_SSL ####
dataset=COVD-IOSTARVESSEL_SSL
output=$outputroot"/"$dataset
mkdir -p $output
# model configs
driu=DRIUSSL
m2u=M2UNetSSL
b_driu=1
b_m2u=2
# Train
bob binseg ssltrain $driu $dataset -b $b_driu -d cuda -o $output"/"$driu -vv
bob binseg ssltrain $m2u $dataset -b $b_m2u -d cuda -o $output"/"$m2u -vv
### COVD-CHASEDB1_SSL ####
dataset=COVD-CHASEDB1_SSL
output=$outputroot"/"$dataset
mkdir -p $output
# model configs
driu=DRIUSSL
m2u=M2UNetSSL
b_driu=2
b_m2u=2
# Train
bob binseg ssltrain $driu $dataset -b $b_driu -d cuda -o $output"/"$driu -vv
bob binseg ssltrain $m2u $dataset -b $b_m2u -d cuda -o $output"/"$m2u -vv
### COVD-HRF_SSL ####
dataset=COVD-HRF_SSL
output=$outputroot"/"$dataset
mkdir -p $output
# model configs
driu=DRIUSSL
m2u=M2UNetSSL
b_driu=1
b_m2u=2
# Train
bob binseg ssltrain $driu $dataset -b $b_driu -d cuda -o $output"/"$driu -vv
bob binseg ssltrain $m2u $dataset -b $b_m2u -d cuda -o $output"/"$m2u -vv
Using your own configs¶
Instead of the default configs you can pass the full path of your
customized dataset and model config (both in PyTorch format).
The default configs are stored under bob.ip.binseg/bob/ip/binseg/configs/
.
bob binseg train /path/to/model/config.py /path/to/dataset/config.py