Ilastik Errors: Non Actionable

Hi,
I have frequently encountered non actionable errors in various Ilastik workflows, the error thrown are obscure like “too many indices for array” and I do-not know what to do about it than just make a new project again. As an example in using the object classification workflow using probability maps I got this error (attached image) and then it did not let me export the probabilities!

Also this is why I think that creating labels outside of Ilastik is safe coz once the Roi sets are created you can just import them in else if drawing took a long time and then it threw an error and did not let you export data, that would be too annoying.31

The issue is that these errors are not actionable:
39

Hi @kapoorlab! It looks like the two errors are related and could be caused by single-dimensional axes. We have done some changes to the axes interpretation recently which should have made it better, but perhaps this is a side effect.

Could you give some more details to what you’ve been doing? Is it like this?

  1. exported a prob map from ilastik pixel classification workflow
  2. started an object classification workflow with the same raw data and prob map from step 1)
  3. threshold, select features, label objects, predict, everything works as usual
  4. try to export the image of object probabilities from the Export applet
  5. get the error you posted, after that nothing works

Which version of ilastik are you using? You are an experienced user, is it a recent degradation or has it always been like this?

Thanks for the report!

1 Like

HI, Thanks for your reply, I did a bit of digging in. Here is when these errors show up and also when they don’t

  1. I create sparse labels outside of Ilastik and then import them in. When I do that the Qaxis Validator error pops up either later or sooner (in Pixel classification workflow) but is harmless as it does not interfere with the training or the saving operation and I have always ignored it.

  2. I used the joint pixel and object classification workflow for the next error.

2A) In this If I select all features in the first go and then in subset of features pick only some and keep computing, the export works fine.

2B) But If I am not happy with the feature selection and go back in the menu to select more subset of features It starts popping up errors like “index 4 is out of bounds for axis 1 with size 3” and then when I try to export the results, the error as I posted above prevents me from saving the results. and I have no idea what I did wrong,

2C) If I use pixel classification first and then object classification second (Now I do the steps in your reply till 4 and all is ok) than using the combined one, all the above operations yield no errors.

I am using Ilastik 1.3.0 and the QAxis error was always there with the import Labels operation but the second error in the joint workflow is something I am seeing for the first time, coz of going back and forth in selecting the features. If somebody else can reproduce this in the pixel + object classification workflow by repeating these steps it would help in getting to know why these operations cause this to happen.

Thanks,
Varun

1 Like

I can’t reproduce it when labels are created inside ilastik. I found another error with the import when I tried it now, I’ll let you know when we fix that, hopefully yours will go away too.

In general, we don’t recommend using pixel+object classification workflow for anything beyond toy data. The best way is to run pixel classification first and then run object classification on top of pixel classification results. I hope this approach works for you and we’ll get on to fix the label import problems.

Hi, Yes this is what I have also seen, if the labels are created inside Ilastik then no Axis error pops up only with the import.

For the object classification the problem is only in the combined workflow and I use the way you described to do object classification.

On a related topic, after doing the object classification the output are the class labels, but often it is needed that you get instance segmentation of the class you want. I do not know if Ilastik has this feature but I wrote a short script that can do this for all 3D images in a directory, you have to specify which is a good label for the object that should be instance segmented and saved in a target dir : https://github.com/kapoorlab/PyImage/blob/master/ObjectClassInstance/ConnectedComponentLabelling.ipynb

Hi,

While working on object classification with raw image and probability map import I got the index out of range error again and then it did not let me export the results. So i had to make a new project again for object classification.

Also I made a tool for creating sparse labelled images outside of Ilastik (using Fiji Roi manager) so that if someone has to change the input image (2D, 3D, 4D) (because they want to see how it works with pre-processed / Normalized image etc) they put in for training in pixel classification workflow, they do not have to draw on the image again, instead they import the Labelled image (one image of same dimension as the input for each class). The good thing is Ilastik allows assingment of the pixels found during the import so a binary labelled image can be converted to an integer image there.

It is over here: https://github.com/kapoorlab/ImportIlastik