kirtov / lung_diagnostics

Keras implementation of Noise Masking RNN for respiratory sound classification
23 stars 11 forks source link

Regarding the NMRNN codes #1

Open BNAadministrator3 opened 6 years ago

BNAadministrator3 commented 6 years ago

Hi Mr. Kirtov, good job for lung sound classification ! I am also using the ICBHI breathing sound dataset to do some research on lung sound distinction and I noticed your this latest work when I searched the GITHUB. About your NMRNN codes, I wonder how do you collect the labels of the noise frame? I mean, in src->train.py, what is the y_train_noise about?

BNAadministrator3 commented 6 years ago

Moreover, I still has two questions,

  1. In your NMRNN paper, about the experiment 2. You conduct the experiment 2 using 'RNN(ours)', see Table 2. Does this mean in experiment 2 your model is not inclusive of the noise masking layers?
  2. In your NMRNN paper, about the experiment 3. I can't figure out the output of the NMRNN in experiment 3. Is NMRNN that take the whole recording as input export a single label for the recording? or export multiple labels that respond to each respiratory cycle? If the former, how can you define the 4-class classification results of a sound sample? Since many sound samples contains several cycles that belong to distinct kinds of classes, normal, wheeze, crackle or both.
BNAadministrator3 commented 6 years ago

If the latter, do you mean your model has the mapping style shown in the image below? image

BNAadministrator3 commented 6 years ago

My supplementation to question 2: I noticed in your paper that Table 1 shows the Recordings->All equipment, giving the recording-level labels for the every single recording. How did make it? Since many recordings are composed of cycles that belong to distinct kinds of classes, normal, wheeze, crackle or both.

kirtov commented 6 years ago

@BNAadministrator3 Hello, thx for your questions!

  1. Yes. RNN (ours) doesnt include noise masking
  2. One label per one sound record. I use logical 'and' for labels. If sound contain wheeze and crackle (no matter jointly or separately) it means, that final label will be 'both, wheezes + crackles'.
BNAadministrator3 commented 6 years ago

Thank you! By the way, I still have a question about your code. In your noise mask rnn network, do you need the ground-truth label about whether a frame is noise or not ? I mean, about your train.py->yn, how it come?

kirtov commented 6 years ago

@BNAadministrator3 During training we need noise labels. You can craft it from data description. Also, you can augment your data and insert some noise in the middle (not neccesary)

BNAadministrator3 commented 6 years ago

Got it. Thank you very much for your time sir. When I tried to run your program, I got some confusions. For train.py, there are three parameters: data_path, cv_path and exp_path:

  1. For data_path, how do I form the ICBHI dataset to meet the requirement of your codes?
  2. For cv_path, which should I feed in? cv_anom_AKGC417L.pkl or lung_split_final_AKGC417L_mms.pkl that you provided in the google cloud?
  3. For exp_path, what should I feed in ?
  4. Then, according to your paper, you adopt 5-fold cross validation to train and test the proposed model. How did you compartmentalize the dataset into five subset? In my case I got a dilemma, If the dataset is divide equally into five groups in the recording level. then among five groups are not mutually even in the cycle level, vice versa.