Giter VIP home page Giter VIP logo

prostate_segmentation's People

Contributors

imirzaevtest avatar mirzaevinom avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

prostate_segmentation's Issues

Faliure in Training

@PeterXiaoGuo @mirzaevinom
Sir, I am finding it difficult to initiate the code in the GitHub for the prostate segmentation for python-3.

Can you provide me the train.py which you have manipulated for your desktop for python-3?
Like I have made changes which u suggested as follows-
untitled1
untitled

Help would be appreciated.

Error for input data: index 22 is out of bounds for axis 0 with size 22

Hi Inom,

I read your this tutorial and it looks like more efficient.

I put data folders as you mentioned on homepage and it throws an error:
**

IndexError: index 22 is out of bounds for axis 0 with size 22

**

Dimension mismatch for ProstateDx-01-0055 in folder train
96 96

Traceback (most recent call last):
  File "train.py", line 190, in <module>
    n_imgs=15*10**4, batch_size=32)
  File "train.py", line 124, in keras_fit_generator
    dicom_to_array(img_rows, img_cols)
  File "train.py", line 66, in dicom_to_array
    imgs[int(filename[:-4])] = img
IndexError: index 22 is out of bounds for axis 0 with size 22

does it results from the data read?

I try int(filename[:-4] in both python 2 and python 3 and cannot figure out what does it mean here.

I guess this error results from here?

Another problem is that I put all .dcm files for every patient. I'm not sure whether just only 1 .dcm for patient is used in this tutorial.

I also tried put only 1 .dcm file with each patient, but it throws much more error:

Dimension mismatch for ProstateDx-01-0042 in folder train
Dimension mismatch for ProstateDx-01-0023 in folder train
Dimension mismatch for Prostate3T-01-0003 in folder train
Dimension mismatch for Prostate3T-01-0006 in folder train
Dimension mismatch for Prostate3T-01-0015 in folder train
Dimension mismatch for Prostate3T-01-0005 in folder train
Dimension mismatch for Prostate3T-01-0004 in folder train
Dimension mismatch for ProstateDx-01-0043 in folder train
Dimension mismatch for Prostate3T-01-0010 in folder train
Dimension mismatch for ProstateDx-01-0019 in folder train
Dimension mismatch for Prostate3T-01-0026 in folder train
Dimension mismatch for ProstateDx-01-0006 in folder train
Dimension mismatch for ProstateDx-01-0005 in folder train
Dimension mismatch for ProstateDx-01-0044 in folder train
Dimension mismatch for ProstateDx-01-0011 in folder train
Dimension mismatch for Prostate3T-01-0001 in folder train
Dimension mismatch for Prostate3T-01-0025 in folder train
Dimension mismatch for ProstateDx-01-0054 in folder train
Dimension mismatch for Prostate3T-01-0019 in folder train
Dimension mismatch for Prostate3T-01-0020 in folder train
Dimension mismatch for ProstateDx-01-0060 in folder train
Dimension mismatch for ProstateDx-01-0076 in folder train
Dimension mismatch for ProstateDx-01-0001 in folder train
Dimension mismatch for Prostate3T-01-0030 in folder train
Dimension mismatch for Prostate3T-01-0028 in folder train
Dimension mismatch for ProstateDx-01-0073 in folder train
Dimension mismatch for Prostate3T-01-0024 in folder train
Dimension mismatch for ProstateDx-01-0014 in folder train
Dimension mismatch for Prostate3T-01-0008 in folder train
Dimension mismatch for Prostate3T-01-0016 in folder train
Dimension mismatch for ProstateDx-01-0063 in folder train
Dimension mismatch for ProstateDx-01-0055 in folder train
Dimension mismatch for ProstateDx-01-0038 in folder train
Dimension mismatch for ProstateDx-01-0052 in folder train
Dimension mismatch for Prostate3T-01-0017 in folder train
Dimension mismatch for ProstateDx-01-0035 in folder train
Dimension mismatch for ProstateDx-01-0082 in folder train
Dimension mismatch for Prostate3T-01-0014 in folder train
Dimension mismatch for ProstateDx-01-0071 in folder train
Dimension mismatch for ProstateDx-01-0058 in folder train
Dimension mismatch for ProstateDx-01-0075 in folder train
Dimension mismatch for ProstateDx-01-0021 in folder train
Dimension mismatch for Prostate3T-01-0002 in folder train
Dimension mismatch for ProstateDx-01-0080 in folder train
Dimension mismatch for ProstateDx-01-0028 in folder train
Dimension mismatch for ProstateDx-01-0074 in folder train
Dimension mismatch for ProstateDx-01-0056 in folder train
Dimension mismatch for ProstateDx-01-0059 in folder train
Dimension mismatch for Prostate3T-01-0022 in folder train
Dimension mismatch for Prostate3T-01-0021 in folder train
Dimension mismatch for Prostate3T-01-0013 in folder train
Dimension mismatch for Prostate3T-01-0009 in folder train
Dimension mismatch for Prostate3T-01-0007 in folder train
Dimension mismatch for Prostate3T-01-0029 in folder train
Dimension mismatch for ProstateDx-01-0013 in folder train
Dimension mismatch for Prostate3T-01-0023 in folder train
Dimension mismatch for Prostate3T-01-0018 in folder train
Dimension mismatch for Prostate3T-01-0012 in folder train
Dimension mismatch for Prostate3T-01-0027 in folder train
Dimension mismatch for Prostate3T-01-0011 in folder train
Traceback (most recent call last):
  File "train.py", line 190, in <module>
    n_imgs=15*10**4, batch_size=32)
  File "train.py", line 124, in keras_fit_generator
    dicom_to_array(img_rows, img_cols)
  File "train.py", line 93, in dicom_to_array
    imgs = np.concatenate(imgs, axis=0).reshape(-1, img_rows, img_cols, 1)
ValueError: need at least one array to concatenate

I guess all .dcm files are needed and the error results from numpy array shape when reading images, but feel puzzled on it.

Could you please give some advice?

Thank you very much!

Best,
Peter

Question regarding the model input

Hello there,

first time commenting on a repo here, so if this is not the right place to do so please let me know.

Okay, so what I was aiming to do is to score a picture of my own database with your model and see how it performs:
my_input

I got my image from one of the patients in the ProstateX challenge. (link http://www.spie.org/PROSTATEx/)
Here I selected an image in the transversal plane of the prostate of a patient, by inspection you could see that it was similar to the test cases your showed in the README.md.

After loading your model and the associated weights I started to prep my own input image.
First load it, then rescale it to (1, 96, 96, 1) and use the model.predict() function to generate an output.
However, was a matrix consisting of mainly zeroes, no segmentation to be found!
my_output

So to be sure that the model worked, I copied, cut and pasted your example images, loaded them in Python, scaled it to (1, 96, 96, 1) and gave it to the model:
mirzaevinom_input

Et Voila, a well formed output just as given in your README file.
mirzaevinom_output

Conclusion... the model that I loaded with the weights works. But somehow my image is not working properly.

Thinking about my image format, I tried the following techniques

  • scale it to 0...255
  • scale it to 0...1
  • equalize it using cv2.equalizeHist
  • equalize it using cv2.createCLAHE(clipLimit=2.0, tileGridSize=(8,8))

all with no satisfactory result...
Is this a sign that the model has overfit? Am I doing something wrong? Any other cause?? Am I using the right input? (I am just starting with all this medical data, so I cant 'read' those MRI images properly..)

PS, this is the code that I used...
model = simple_unet(96, 96)
model.load_weights(r'..\simple_unet_weights.h5')
a1 = Image.open(r'..\my_example.jpg').convert('LA')
a1 = np.array(a1)[:,:,0]
plt.imshow(a1, cmap=plt.cm.gray)
plt.show()
b1 = skimage.transform.resize(a1, (96, 96))
b1 = b1/np.max(b1)
plt.imshow(b1, cmap=plt.cm.gray)
plt.show()
plt.hist(b1.ravel())
plt.show()
c1 = np.reshape(b1, (1,96,96,1))

Predict with the image..

res_c1 = model.predict(c1)
res_d1 = np.reshape(res_c1, (96,96))

plt.imshow(res_d1, cmap=plt.cm.gray)
plt.show()

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.