GithubHelp home page GithubHelp logo

c2fnet's Introduction

C2FNet

This repository is code for papaer "Weakly-Supervised Nucleus Segmentation Based on Point Annotations: A Coarse-to-Fine Self-Stimulated Learning Strategy", which has been accepted by MICCAI 2020.

Dependencies

Tensorflow 1.15.0

Keras 2.3.0

Usage

Train

  1. split data to train and val set, each set has img and mask folders.

    example: 
    ./data/monuseg/train_val/
    |-- train
    |   |-- img
    |   |-- mask
    |-- val
    |   |-- img
    |   |-- mask
    
  2. run train_one_fold.py to train segmentation model.

    • set in_dataset_fold=train_val, in_dataset_name=monuseg, save_checkpoint_path=./checkpoints/monuseg_ln
    • set train_full_mask_flag=True to train fully supervised model
    • set itr_sum=4, which indicate that the model will train in 4 iteration, 0,1,2 are in first stage, 3 is in the second stage

Test

  1. run test_edge_point.py to predict result with trained model.
    • set fold=train_val,
    • set model_name=LinkNet.nuclei.train_val.512_loss_0.01_0.01_0.01_0.01_1.0_train_val_r3_resume_point_edge_fake_sobel.last.h5
    • set val_dir=data/monuseg/train_val/val/img/
    • set save_dir=data/monuseg/train_val/val/result_r3/
    • model_name and save_dir are corresponding, including r0, r1, r2, r3

Evaluation Metrics

  1. cd experiments, and run compute_metrics.py to compute evaluation metrics.
    • set base_dir=../data/monuseg/train_val/val/
    • set pred_sub_dirs=['result_r0', 'result_r1', 'result_r2', 'result_r3']

Citation

If you find this code helpful, please cite our work:

Tian K, Zhang J, Shen H, et al. Weakly-Supervised Nucleus Segmentation Based on Point Annotations: A Coarse-to-Fine Self-Stimulated Learning Strategy[C] //International Conference on Medical Image Computing and Computer-Assisted Intervention. Springer, Cham, 2020: 299-308.

c2fnet's People

Contributors

tiankuan93 avatar

Stargazers

Wangjie Zhou avatar Serdar Yıldız avatar Huaxhen Chen avatar  avatar rqs avatar zsxm1998 avatar  avatar  avatar Jun Zhang avatar  avatar  avatar  avatar Cloudflying avatar  avatar  avatar

Watchers

James Cloos avatar  avatar

Forkers

yimingzhu2015

c2fnet's Issues

OSError: Unable to open file (file signature not found)

Using TensorFlow backend.
#############
./data/monuseg/train_val
./data/monuseg/train_val/train ./data/monuseg/train_val/train_r0
cp -r ./data/monuseg/train_val/train ./data/monuseg/train_val/train_r0
cp -r ./data/monuseg/train_val/val/mask ./data/monuseg/train_val/val/edge_dis
cp -r ./data/monuseg/train_val/val/mask ./data/monuseg/train_val/val/point_dis
cp -r ./data/monuseg/train_val/val/mask ./data/monuseg/train_val/val/point
cp -r ./data/monuseg/train_val/val/mask ./data/monuseg/train_val/val/edge_supplement
1.generate_train_pred
1.generate_train_pred end
2.generate_train_label
./data/monuseg/train_val/train_r0/img ./data/monuseg/train_val/train_r0/mask ./data/monuseg/train_val/train_r0/edge_dis ./data/monuseg/tra
in_val/train_r0/point_dis ./data/monuseg/train_val/train_r0/point ./data/monuseg/train_val/train_r0/edge_supplement ./data/monuseg/train_val/train_r0/edge_sobel generate_iteration_label_itr_0
./data/monuseg/train_val/train_r0/img/Slide_06.png
[ 0 255]
./data/monuseg/train_val/train_r0/img/Slide_23.png
[ 0 255]
./data/monuseg/train_val/train_r0/img/colorectal_04.png
[ 0 255]
./data/monuseg/train_val/train_r0/img/bladder_02.png
[ 0 255]
./data/monuseg/train_val/train_r0/img/testliver_11.png
[ 0 255]
./data/monuseg/train_val/train_r0/img/testbreast_07.png
[ 0 255]
./data/monuseg/train_val/train_r0/img/Slide_26.png
[ 0 255]
./data/monuseg/train_val/train_r0/img/Slide_19.png
[ 0 255]
./data/monuseg/train_val/train_r0/img/Slide_05.png
[ 0 255]
./data/monuseg/train_val/train_r0/img/testprostate_13.png
[ 0 255]
./data/monuseg/train_val/train_r0/img/testkidney_09.png
[ 0 255]
./data/monuseg/train_val/train_r0/img/testliver_12.png
[ 0 255]
./data/monuseg/train_val/train_r0/img/colorectal_03.png
[ 0 255]
./data/monuseg/train_val/train_r0/img/testkidney_10.png
[ 0 255]
./data/monuseg/train_val/train_r0/img/Slide_25.png
[ 0 255]
./data/monuseg/train_val/train_r0/img/Slide_00.png
[ 0 255]
./data/monuseg/train_val/train_r0/img/Slide_04.png
[ 0 255]
./data/monuseg/train_val/train_r0/img/testprostate_14.png
[ 0 255]
./data/monuseg/train_val/train_r0/img/Slide_20.png
[ 0 255]
./data/monuseg/train_val/train_r0/img/Slide_21.png
[ 0 255]
./data/monuseg/train_val/train_r0/img/testbreast_08.png
[ 0 255]
./data/monuseg/train_val/train_r0/img/bladder_01.png
[ 0 255]
./data/monuseg/train_val/train_r0/img/Slide_24.png
[ 0 255]
./data/monuseg/train_val/train_r0/img/Slide_07.png
[ 0 255]
./data/monuseg/train_val/train_r0/img/Slide_03.png
[ 0 255]
./data/monuseg/train_val/train_r0/img/stomach_05.png
[ 0 255]
./data/monuseg/train_val/train_r0/img/stomach_06.png
[ 0 255]
2.generate_train_label end
3.train_edge_point
--> Checkpoint path: ./checkpoints/monuseg_ln/train_val_model/LinkNet.nuclei.train_val.512_loss_1.0_0.01_0.1_0.1_0.0_train_val_r0_point_ed
ge_fake.h5WARNING:tensorflow:From /root/miniconda3/envs/trt/lib/python3.7/site-packages/tensorflow_core/python/ops/resource_variable_ops.py:1630: ca
lling BaseResourceVariable.init (from tensorflow.python.ops.resource_variable_ops) with constraint is deprecated and will be removed in a future version.Instructions for updating:
If using Keras pass *_constraint arguments to layers.
WARNING:tensorflow:From /root/miniconda3/envs/trt/lib/python3.7/site-packages/keras/backend/tensorflow_backend.py:4070: The name tf.nn.max
_pool is deprecated. Please use tf.nn.max_pool2d instead.
Traceback (most recent call last):
File "train_one_fold.py", line 163, in
save_checkpoint_path=save_checkpoint_path)
File "/root/weak_supervised_seg/C2FNet/train_edge_point.py", line 214, in main
weights_path=args.weights_path
File "/root/weak_supervised_seg/C2FNet/models/linknet.py", line 71, in get_model
encoder_model.load_weights(weights_path)
File "/root/miniconda3/envs/trt/lib/python3.7/site-packages/keras/engine/saving.py", line 492, in load_wrapper
return load_function(*args, **kwargs)
File "/root/miniconda3/envs/trt/lib/python3.7/site-packages/keras/engine/network.py", line 1221, in load_weights
with h5py.File(filepath, mode='r') as f:
File "/root/miniconda3/envs/trt/lib/python3.7/site-packages/h5py/_hl/files.py", line 507, in init
fid = make_fid(name, mode, userblock_size, fapl, fcpl, swmr=swmr)
File "/root/miniconda3/envs/trt/lib/python3.7/site-packages/h5py/_hl/files.py", line 220, in make_fid
fid = h5f.open(name, flags, fapl=fapl)
File "h5py/_objects.pyx", line 54, in h5py._objects.with_phil.wrapper
File "h5py/_objects.pyx", line 55, in h5py._objects.with_phil.wrapper
File "h5py/h5f.pyx", line 106, in h5py.h5f.open
OSError: Unable to open file (file signature not found)

I run the "python train_one_fold.py" ,and got a OSError, I do not konw why the code can't the "linknet_encoder_weights.h5". Thank you for your any suggestions.

AttributeError:'ProgbarLogger' object has no attribute 'log_values' when run train_one_fold.py

Epoch 1/200
Traceback (most recent call last):
File "E:/Hom_workspace/sell_seg/C2FNet-master/train_one_fold.py", line 168, in
save_checkpoint_path=save_checkpoint_path)
File "E:\Hom_workspace\sell_seg\C2FNet-master\train_edge_point.py", line 281, in main
validation_data=val_generator
File "C:\Anaconda3.5.2\envs\tf_mai\lib\site-packages\keras\legacy\interfaces.py", line 91, in wrapper
return func(*args, **kwargs)
File "C:\Anaconda3.5.2\envs\tf_mai\lib\site-packages\keras\engine\training.py", line 1732, in fit_generator
initial_epoch=initial_epoch)
File "C:\Anaconda3.5.2\envs\tf_mai\lib\site-packages\keras\engine\training_generator.py", line 260, in fit_generator
callbacks.on_epoch_end(epoch, epoch_logs)
File "C:\Anaconda3.5.2\envs\tf_mai\lib\site-packages\keras\callbacks\callbacks.py", line 152, in on_epoch_end
callback.on_epoch_end(epoch, logs)
File "C:\Anaconda3.5.2\envs\tf_mai\lib\site-packages\keras\callbacks\callbacks.py", line 611, in on_epoch_end
self.progbar.update(self.seen, self.log_values)
AttributeError: 'ProgbarLogger' object has no attribute 'log_values'

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.