Difference between revisions of "VICCE"

From IACL
Jump to navigation Jump to search
Line 51: Line 51:
 
{{h4|Training/Evaluation}}
 
{{h4|Training/Evaluation}}
 
If you have prepared registered pairs of Spectralis and Cirrus scans in "data/train/", you can use
 
If you have prepared registered pairs of Spectralis and Cirrus scans in "data/train/", you can use
<code>python train.py --output vicce</code> to train VICCE for your own data. It will load hyper parameters from "params.json" and store checkpoints into folder "checkpoints/vicce/".
 
  
To test images using existing models, run <code>python evaluate.py --output vicce</code>. This will load parameters from "checkpoints/vicce/". This step also assume both
+
<code>python train.py --output vicce</code>
 +
 
 +
to train VICCE for your own data. It will load hyper parameters from "params.json" and store checkpoints into folder "checkpoints/vicce/".
 +
 
 +
To test images using existing models, run
 +
 
 +
<code>python evaluate.py --output vicce</code>
 +
 
 +
This will load parameters from "checkpoints/vicce/". This step also assume both
 
"H.png" and "Z.png", as well as "M.png" exists in "data/val/*/", you might need to create dummy images for the data loader to work properly.
 
"H.png" and "Z.png", as well as "M.png" exists in "data/val/*/", you might need to create dummy images for the data loader to work properly.

Revision as of 16:01, 30 March 2021

<meta name="title" content="VICCE"/>

Variational Intensity Cross Channel Encoder for Unsupervised Vessel Segmentation on OCT Angiography (VICCE)

Variational intensity cross channel encoder is an vessel segmentation algorithm for 2D OCT angiography images. The associated publication is:

Software

Coming soon.


Instructions

If you have questions regarding the method or software, please contact Yihao Liu

Prepare data

The data loader requires pairs of Spectralis and Cirrus scans as input. Name the Spectralis scan as "H.png" stand for Heidelberg and the Cirrus scan as "Z.png" for Zeiss, also provide a mask image "M.png" to outline the common field of view of the Spectralis scan and Cirrus scan. Those three images are stored in subfolder inside "data/train/" and "data/val/". The directory structure of the whole preject is as follows:

   ├──datasets
   │     ├──__init__.py
   │     └── vicce_dataset.py
   ├──train.py
   ├──evaluate.py
   ├──params.json
   ├──pytorch_env.yml
   ├──model
   │    ├──__init__.py
   │    ├──sampling.py
   │    ├──unet.py
   │    └──vicce_model.py
   |
   ├──utils
   │    ├──__init__.py
   │    └──utils.py 
   |    
   └──data
        ├──train
        |   └──subject_*
        |         ├── H.png
        |         ├── Z.png
        |         └── M.png
        └──val
            └──subject_*
                  ├── H.png
                  ├── Z.png
                  └── M.png

Install packages

To install the required packages, run conda env create --name pytorch --file=pytorch_env.yml

Training/Evaluation

If you have prepared registered pairs of Spectralis and Cirrus scans in "data/train/", you can use

python train.py --output vicce

to train VICCE for your own data. It will load hyper parameters from "params.json" and store checkpoints into folder "checkpoints/vicce/".

To test images using existing models, run

python evaluate.py --output vicce

This will load parameters from "checkpoints/vicce/". This step also assume both "H.png" and "Z.png", as well as "M.png" exists in "data/val/*/", you might need to create dummy images for the data loader to work properly.