CLIJ Weka object classification Java: column not found error

@haesleinhuepf

I am watching " 08b Machine Learning for Pixel Classification in Fiji" on youtube and playing along using the CLIJ Weka object classifier - thanks for putting all the material online. The test image is blobs, segmentation done via Gaussian filter and Default threshold. I am applying three labels during object classification (small, large, oblong).

Macro recorder entry for Clij Weka object classification:
run("CLIJx Weka Object Classification (CLIJx, experimental)", "opencl=[Intel(R) UHD Graphics 620] input=blobs-1.gif binary=blobs.gif number=3");

I can label and set measurements fine.

However, when I click “Train”, I get a Java error:

"[INFO] Reading available sites from https://imagej.net/
setup mouse
mouse up
Name 1
mouse up
Name 1
mouse up
Name 1
mouse up
Name 1
mouse up
Name 2
mouse up
Name 2
mouse up
Name 2
mouse up
Name 2
mouse up
Name 2
mouse up
Name 3
mouse up
Name 3
mouse up
Name 3
mouse up
Name 3
mouse up
Name 3
Exception in thread "Run$_AWT-EventQueue-0" java.lang.IllegalArgumentException: "Label" column not found
	at ij.measure.ResultsTable.getValue(ResultsTable.java:403)
	at net.haesleinhuepf.clijx.weka.TrainWekaFromTable.reformatTable(TrainWekaFromTable.java:109)
	at net.haesleinhuepf.clijx.weka.TrainWekaFromTable.trainWekaFromTable(TrainWekaFromTable.java:46)
	at net.haesleinhuepf.clijx.weka.TrainWekaFromTable.trainWekaFromTable(TrainWekaFromTable.java:41)
	at net.haesleinhuepf.clijx.weka.gui.CLIJxWekaObjectClassification.trainClicked(CLIJxWekaObjectClassification.java:280)
	at net.haesleinhuepf.clijx.weka.gui.CLIJxWekaObjectClassification.access$100(CLIJxWekaObjectClassification.java:38)
	at net.haesleinhuepf.clijx.weka.gui.CLIJxWekaObjectClassification$4.actionPerformed(CLIJxWekaObjectClassification.java:153)
	at java.awt.Button.processActionEvent(Button.java:409)
	at java.awt.Button.processEvent(Button.java:377)
	at java.awt.Component.dispatchEventImpl(Component.java:4889)
	at java.awt.Component.dispatchEvent(Component.java:4711)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:760)
	at java.awt.EventQueue.access$500(EventQueue.java:97)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.awt.EventQueue$3.run(EventQueue.java:703)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:84)
	at java.awt.EventQueue$4.run(EventQueue.java:733)
	at java.awt.EventQueue$4.run(EventQueue.java:731)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:730)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
"

I get a table training table window which has a first column which has no header and the labels in the body. The second column has the header “Label” but no values. From the third column onward there are a header and values for each column.

I updated Fiji applying the CLIJ updates that were found but the error popped up before and after.

Screenshot with console and table windows:

1 Like

Hey @Marie-nkaefer,

thanks for reporting this bug. I’ll take a look into this.

In the meantime, try out the more recent label classifier which also supports 3D and is part of the assistant project:

And please let me know if it works for your use case!

Best,
Robert