Social-Evolution-and-Behavior / anTraX

anTraX: high throughput tracking of color-tagged insects
https://antrax.readthedocs.io/
GNU General Public License v3.0
17 stars 3 forks source link

Two different errors when exploring `antrax configure` #10

Closed janamach closed 3 years ago

janamach commented 3 years ago

Hi again!

This time I was going through the user guide and while exploring different functions of antrax configure, I ran into different errors.

Error in images.roi.internal.ROI/parseInputs

Error in images.roi.Ellipse

Error in drawellipse (line 196)

Error in antrax/ScaleDrawButtonPushed (line 1309)

Error in appdesigner.internal.service.AppManagementService/tryCallback (line 333)

Error in matlab.apps.AppBase>@(source,event)tryCallback(appdesigner.internal.service.AppManagementService.instance(),app,callback,requiresEventData,event) Error using matlab.ui.control.internal.controller.ComponentController/executeUserCallback (line 335) Error while evaluating Button PrivateButtonPushedFcn.

15/02/21 17:06:24 -D- matlab app exited with code 0


* In `ROI`, adding a shape works, but clicking `Remove` does not do anything. As above, the error appears when I click `X` to close the GUI:

app closing.. Invalid or deleted object. Error in antrax/ROIAddRemoveButtonPushed (line 1485)

Error in appdesigner.internal.service.AppManagementService/tryCallback (line 333)

Error in matlab.apps.AppBase>@(source,event)tryCallback(appdesigner.internal.service.AppManagementService.instance(),app,callback,requiresEventData,event) Error using matlab.ui.control.internal.controller.ComponentController/executeUserCallback (line 335) Error while evaluating DestroyedObject PrivateButtonPushedFcn.

Invalid or deleted object. Error in antrax/ROIAddRemoveButtonPushed (line 1485)

Error in appdesigner.internal.service.AppManagementService/tryCallback (line 333)

Error in matlab.apps.AppBase>@(source,event)tryCallback(appdesigner.internal.service.AppManagementService.instance(),app,callback,requiresEventData,event) Error using matlab.ui.control.internal.controller.ComponentController/executeUserCallback (line 335) Error while evaluating DestroyedObject PrivateButtonPushedFcn.

15/02/21 17:17:31 -D- matlab app exited with code 0


Same thing happens when adding `Open Boundary` and then clicking `Remove` or `Reset`.

Running Debian 10 with MCR.
asafgal commented 3 years ago

Hey Jana, sorry it took me time to check this issue.

Its a weird one, I could reproduce it on MCR but not on matlab. I then recompiled and it disappeared... Can you please check if it works for you? Since I didn't change any code I committed directly to the master branch.

janamach commented 3 years ago

Hi Asaf, thank you for taking a look at it!

I updated the binaries from the master branch, but I did not notice a difference with MCR in terms of the errors from the first post. Then I decided to check how it works with the full MATLAB installation and you're right -- it behaves differently. However, I am not sure if it behaves the way it should. For example, if I add a rectangle, I cannot remove it using the 'Remove' button. Since I am not sure how it is normally supposed to behave, I recorded my screen where I just add ROI and then click 'Remove'. Can you take a look if it looks right?

https://user-images.githubusercontent.com/39128466/108834464-83360380-75ce-11eb-8a4f-c11b7983ba5c.mp4

janamach commented 3 years ago

For some reason I cannot play the video in the previous post, so I zipped it: video.zip

asafgal commented 3 years ago

The video played fine for me.

So by "add" and "remove" I mean adding and removing regions from the mask itself. When you choose any of the possible roi shapes, you can adjust its size and location as you did, but then you need to double click it to actually update the mask. You can then repeat this operation as many time as you want to have composite roi.

"Remove" works in the same way to cut out regions from the roi mask.

janamach commented 3 years ago

Ah, ok -- thank you for explaining! So it seems to work for me with matlab then, that's good to know.

asafgal commented 3 years ago

Well, I can't reproduce the issue anymore after I recompiled the binaries. Just to make sure - are you on the master branch with the latest code when you see the error?

janamach commented 3 years ago

Yes, I am on the master branch when, I just tried it again on my home laptop -- same error. Here is what I just did:

jana@corvus:~/src/anTraX$ git branch
* debug-jana
  master
jana@corvus:~/src/anTraX$ git checkout master
Checking out files: 100% (14/14), done.
Switched to branch 'master'
Your branch is behind 'origin/master' by 14 commits, and can be fast-forwarded.
  (use "git pull" to update your local branch)
jana@corvus:~/src/anTraX$ git pull
warning: redirecting to https://github.com/Social-Evolution-and-Behavior/anTraX.git/
Updating c0da32d..806299c
Fast-forward
 antrax/cli.py                                                                  |  53 ++++++++++++++++++++++++++++++++---------------------
 antrax/matlab.py                                                               |  33 +++++++++++++++++++++++++++------
 antrax/utils.py                                                                |  44 +++++++++++++++++++++++---------------------
 bin/antrax_glnxa64_mcr_interface                                               | Bin 53553876 -> 53618544 bytes
 bin/antrax_maci64_mcr_interface.app/Contents/MacOS/antrax_maci64_mcr_interface | Bin 45357703 -> 45356188 bytes
 matlab/@expreader/init.m                                                       |  11 +++++++++++
 matlab/@ffreader/ffreader.m                                                    |  41 +++++++++++++++++++++++++++++------------
 matlab/@tracklet/tracklet.m                                                    |   4 ++++
 matlab/@trhandles/trhandles.m                                                  |   6 ++++++
 matlab/apps/antrax.mlapp                                                       | Bin 186455 -> 186684 bytes
 matlab/apps/graph_explorer_app.mlapp                                           | Bin 100015 -> 100663 bytes
 matlab/misc/antrax_mcr_interface.m                                             |   4 ++++
 matlab/misc/ffinfo.m                                                           |  22 ++++++++++++++++++++++
 matlab/utils/report.m                                                          |  10 +++++++---
 14 files changed, 165 insertions(+), 63 deletions(-)
jana@corvus:~/src/anTraX$ git branch
  debug-jana
* master

And then called antrax in another tab where I had the python environment activated:

(antrax) jana@corvus:~/src/anTraX-data$ antrax configure JS16/

==================================================================================

Welcome to anTraX - a software for tracking color tagged ants (and other insects)

==================================================================================

23/02/21 18:25:31 -D- antrax cli entry point
23/02/21 18:25:31 -D- running matlab mcr 
23/02/21 18:25:31 -D- command is: /home/jana/src/anTraX/bin/antrax_glnxa64_mcr_interface antrax JS16/
18:25:46 -D- starting antrax configure app
18:25:48 -D- set_experiment function
18:25:48 -D- initializing expreader object
18:25:48 -I- Reading video information from file
18:26:01 -I- opening video file JS16/videos//1_6/JS16_1.mp4
18:26:02 -D- Running ffprobe #1 for file JS16/videos//1_6/JS16_1.mp4

mov,mp4,m4a,3gp,3g2,mj2
10402940

18:26:02 -D- Running ffprobe #2 for file JS16/videos//1_6/JS16_1.mp4

960
720
yuvj420p
10/1
0.000000
300.000000
3000

18:26:03 -D- antrax configure app ready!
app closing..
Invalid or deleted object.
Error in antrax/ROIAddRemoveButtonPushed (line 1485)

Error in appdesigner.internal.service.AppManagementService/tryCallback (line 333)

Error in matlab.apps.AppBase>@(source,event)tryCallback(appdesigner.internal.service.AppManagementService.instance(),app,callback,requiresEventData,event)
Error using matlab.ui.control.internal.controller.ComponentController/executeUserCallback (line 335)
Error while evaluating DestroyedObject PrivateButtonPushedFcn.

[...]

Invalid or deleted object.
Error in antrax/ROIAddRemoveButtonPushed (line 1485)

Error in appdesigner.internal.service.AppManagementService/tryCallback (line 333)

Error in matlab.apps.AppBase>@(source,event)tryCallback(appdesigner.internal.service.AppManagementService.instance(),app,callback,requiresEventData,event)
Error using matlab.ui.control.internal.controller.ComponentController/executeUserCallback (line 335)
Error while evaluating DestroyedObject PrivateButtonPushedFcn.

23/02/21 18:28:26 -D- matlab app exited with code 0

In the line above 23/02/21 18:25:31 -D- command is: /home/jana/src/anTraX/bin/antrax_glnxa64_mcr_interface antrax JS16/, the binary that is being executed should be the newly compiled one since I am on the master branch, right?

asafgal commented 3 years ago

yes, you did right.

The "invalid or deleted object" usually happens when the shape was somehow improperly destroyed. I added an exception handler to try and go around this. See if it works. This time it is in the debug-jana branch.

janamach commented 3 years ago

I still see the error, but what you said got me thinking. Can the error be caused by / be a consequence of a lag?

I made another video: here I try to draw a polygon and the GUI is lagging quite a bit. The windows on the left show that the computer is not overwhelmed with processes.

https://user-images.githubusercontent.com/39128466/108897450-67eee680-7616-11eb-8244-a3e6adaee39a.mp4

The error output from this 'experiment':

(antrax) jana@corvus:~/src/anTraX-data$ antrax configure JS16/

==================================================================================

Welcome to anTraX - a software for tracking color tagged ants (and other insects)

==================================================================================

23/02/21 20:16:41 -D- antrax cli entry point
23/02/21 20:16:41 -D- running matlab mcr 
23/02/21 20:16:41 -D- command is: /home/jana/src/anTraX/bin/antrax_glnxa64_mcr_interface antrax JS16/
20:16:52 -D- starting antrax configure app
20:16:54 -D- set_experiment function
20:16:54 -D- initializing expreader object
20:16:54 -I- Reading video information from file
20:17:06 -I- opening video file JS16/videos//1_6/JS16_1.mp4
20:17:06 -D- Running ffprobe #1 for file JS16/videos//1_6/JS16_1.mp4

mov,mp4,m4a,3gp,3g2,mj2
10402940

20:17:07 -D- Running ffprobe #2 for file JS16/videos//1_6/JS16_1.mp4

960
720
yuvj420p
10/1
0.000000
300.000000
3000

20:17:07 -D- antrax configure app ready!
app closing..
Invalid or deleted object.
Error in antrax/ROIAddRemoveButtonPushed (line 1470)

Error in appdesigner.internal.service.AppManagementService/tryCallback (line 333)

Error in matlab.apps.AppBase>@(source,event)tryCallback(appdesigner.internal.service.AppManagementService.instance(),app,callback,requiresEventData,event)
Error using matlab.ui.control.internal.controller.ComponentController/executeUserCallback (line 335)
Error while evaluating DestroyedObject PrivateButtonPushedFcn.

Invalid or deleted object.
Error in antrax/ROIAddRemoveButtonPushed (line 1484)

Error in appdesigner.internal.service.AppManagementService/tryCallback (line 333)

Error in matlab.apps.AppBase>@(source,event)tryCallback(appdesigner.internal.service.AppManagementService.instance(),app,callback,requiresEventData,event)
Error using matlab.ui.control.internal.controller.ComponentController/executeUserCallback (line 335)
Error while evaluating DestroyedObject PrivateButtonPushedFcn.

23/02/21 20:29:48 -D- matlab app exited with code 0
asafgal commented 3 years ago

Oh, wow. I never had such a lag. I guess it might be the issue, but I have no clue what can be the cause. Is it a problem you have only on MCR?

janamach commented 3 years ago

Yes, it does seem to be the problem with MCR and regardless of which computer (different hardware) and Linux distro (Ubuntu 16.04, 20.04, Debian 10) I use. I ran a comparison between MCR and Matlab on the computer that had both, here is what I've got:

MCR (lag + error)

https://user-images.githubusercontent.com/39128466/108978090-880bbd80-7689-11eb-968b-7fc56bcc02f6.mp4

(antrax) jana@fishtrax3:~/src/anTraX-data$ source ~/mcr.sh 
(antrax) jana@fishtrax3:~/src/anTraX-data$ antrax configure JS16/

==================================================================================

Welcome to anTraX - a software for tracking color tagged ants (and other insects)

==================================================================================

24/02/21 10:04:55 -D- antrax cli entry point
24/02/21 10:04:55 -D- running matlab mcr 
24/02/21 10:04:55 -D- command is: /home/jana/src/anTraX/bin/antrax_glnxa64_mcr_interface antrax JS16/
10:05:03 -D- starting antrax configure app
10:05:04 -D- set_experiment function
10:05:04 -D- initializing expreader object
10:05:04 -I- Reading video information from file
10:05:11 -I- opening video file JS16/videos//1_6/JS16_1.mp4
10:05:11 -D- Running ffprobe #1 for file JS16/videos//1_6/JS16_1.mp4

mov,mp4,m4a,3gp,3g2,mj2
10402940

10:05:11 -D- Running ffprobe #2 for file JS16/videos//1_6/JS16_1.mp4

960
720
yuvj420p
10/1
0.000000
300.000000
3000

10:05:11 -D- antrax configure app ready!
app closing..
Invalid or deleted object.
Error in antrax/ROIAddRemoveButtonPushed (line 1470)

Error in appdesigner.internal.service.AppManagementService/tryCallback (line 333)

Error in matlab.apps.AppBase>@(source,event)tryCallback(appdesigner.internal.service.AppManagementService.instance(),app,callback,requiresEventData,event)
Error using matlab.ui.control.internal.controller.ComponentController/executeUserCallback (line 335)
Error while evaluating DestroyedObject PrivateButtonPushedFcn.

Invalid or deleted object.
Error in antrax/ROIAddRemoveButtonPushed (line 1484)

Error in appdesigner.internal.service.AppManagementService/tryCallback (line 333)

Error in matlab.apps.AppBase>@(source,event)tryCallback(appdesigner.internal.service.AppManagementService.instance(),app,callback,requiresEventData,event)
Error using matlab.ui.control.internal.controller.ComponentController/executeUserCallback (line 335)
Error while evaluating DestroyedObject PrivateButtonPushedFcn.

24/02/21 10:09:04 -D- matlab app exited with code 0

Matlab (no lag, no error):

https://user-images.githubusercontent.com/39128466/108978286-bd181000-7689-11eb-9f06-c02d12a470b8.mp4

(antrax) jana@fishtrax3:~/src/anTraX-data$ source ~/matlab.sh 
(antrax) jana@fishtrax3:~/src/anTraX-data$ antrax configure JS16/

==================================================================================

Welcome to anTraX - a software for tracking color tagged ants (and other insects)

==================================================================================

24/02/21 10:10:10 -D- antrax cli entry point
10:10:17 -D- starting antrax configure app
10:10:18 -D- set_experiment function
10:10:19 -D- initializing expreader object
10:10:19 -I- Reading video information from file
10:10:25 -I- opening video file JS16/videos//1_6/JS16_1.mp4
10:10:25 -D- Running ffprobe #1 for file JS16/videos//1_6/JS16_1.mp4

mov,mp4,m4a,3gp,3g2,mj2
10402940

10:10:25 -D- Running ffprobe #2 for file JS16/videos//1_6/JS16_1.mp4

960
720
yuvj420p
10/1
0.000000
300.000000
3000

10:10:26 -D- antrax configure app ready!
(antrax) jana@fishtrax3:~/src/anTraX-data$ 

You mentioned that you could reproduce the error, but it did go away after you recompiled antrax_glnxa64_mcr_interface. Were those both versions compiled and executed on the same machine? I am wondering if the hardware differences between computers could be the problem?

asafgal commented 3 years ago

I reproduced the first error, with the ellipse center. This is also the one I patched.

Yes, I compile all my linux binaries on my Ubuntu 18 machine. I don't think it is the source of the problem. MCR perform very badly on some interactive operations (e.g., closing a gui), and there is not much I can do about it.

I hope it is not too painful, and that you can progress without it, or use the matlab license version...

janamach commented 3 years ago

Thank you for explaining! It's good to have an idea about what to expect with MCR.