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

MATLAB:badsubscript occasionally shows up in track logs #17

Closed janamach closed 3 years ago

janamach commented 3 years ago

Hi,

I was wondering if this is something to be concerned about: for some of the videos I track I get a MATLAB:badsubscript error in logs at the point where the word Done! is usually printed out. The files in tracklets/ and images/ seem to be properly generated. Re-tracking the same video seems to result in the same error, while other videos from the same experiment do not seem to have this problem. There is also an error in matlab_link_across_movies.log.

How bad is this?

$ cat CN0307/antrax/logs/matlab_track_m_110.log 
10:15:07 -I- Reading video information from file
10:15:09 -I- Linking method is link_blobs
10:15:10 -I- Starting the frame loop
10:15:10 -I- opening video file CN0307/videos//1_144/CN0307_110.mp4
10:20:58 -I- Finished tracking frame #818500 (1000/7500)
10:26:34 -I- Finished tracking frame #819500 (2000/7500)
10:31:51 -I- Finished tracking frame #820500 (3000/7500)
10:36:52 -I- Finished tracking frame #821500 (4000/7500)
10:40:44 -I- Finished tracking frame #822500 (5000/7500)
10:45:44 -I- Finished tracking frame #823500 (6000/7500)
10:51:06 -I- Finished tracking frame #824500 (7000/7500)
10:53:53 -I- Finished frame loop, cleaning up
10:53:56 -I- Closed tracklet graph object
10:53:56 -I- ... movies 110
10:53:56 -I- ... 339 tracklets
10:53:58 -I- Looking for bottleneck pairs
10:53:58 -I- done distance mat
Index in position 2 exceeds array bounds.
Error in trgraph/get_bottleneck_pairs (line 523)

Error in track_single_movie (line 169)

Error in antrax_mcr_interface (line 36)
MATLAB:badsubscript
$ cat CN0307/antrax/logs/matlab_link_across_movies.log 
Undefined function or variable 'link_across_moives'.
Error in antrax_mcr_interface (line 47)
MATLAB:UndefinedFunction
asafgal commented 3 years ago

Hey Jana,

The first issue happens in a post processing step done on the tracklet graph to look for topologically-equivalent nodes. The code crash when none are found (i.e. the graph is very simple). I guess I never encountered cases like this… I’ll fix it of course, but as this happens after the data is saved, you can safely ignore it for now.

The second issue is a typo in the name of a function. Its actually quite embarrassing, and I’m not sure when it was introduced. Like the first bug, this one is also in a post processing, which step that connects tracklet graphs across videos. It might have a small effect on the tracking accuracy, but most likely you won’t feel the difference. Anyhow, it only affects the final “solve” step, so for now you can ignore it as well and I’ll let you know once I have a fix committed. You will be able to run only the post processing, without re-tracking the entire experiment from scratch.

On 23 Mar 2021, at 13:31, Jana Mach @.***> wrote:

Hi,

I was wondering if this is something to be concerned about: for some of the videos I track I get a MATLAB:badsubscript error in logs at the point where the word Done! is usually printed out. The files in tracklets/ and images/ seem to be properly generated. Re-tracking the same video seems to result in the same error, while other videos from the same experiment do not seem to have this problem. There is also an error in matlab_link_across_movies.log.

How bad is this?

$ cat CN0307/antrax/logs/matlab_track_m_110.log 10:15:07 -I- Reading video information from file 10:15:09 -I- Linking method is link_blobs 10:15:10 -I- Starting the frame loop 10:15:10 -I- opening video file CN0307/videos//1_144/CN0307_110.mp4 10:20:58 -I- Finished tracking frame #818500 (1000/7500) 10:26:34 -I- Finished tracking frame #819500 (2000/7500) 10:31:51 -I- Finished tracking frame #820500 (3000/7500) 10:36:52 -I- Finished tracking frame #821500 (4000/7500) 10:40:44 -I- Finished tracking frame #822500 (5000/7500) 10:45:44 -I- Finished tracking frame #823500 (6000/7500) 10:51:06 -I- Finished tracking frame #824500 (7000/7500) 10:53:53 -I- Finished frame loop, cleaning up 10:53:56 -I- Closed tracklet graph object 10:53:56 -I- ... movies 110 10:53:56 -I- ... 339 tracklets 10:53:58 -I- Looking for bottleneck pairs 10:53:58 -I- done distance mat Index in position 2 exceeds array bounds. Error in trgraph/get_bottleneck_pairs (line 523)

Error in track_single_movie (line 169)

Error in antrax_mcr_interface (line 36) MATLAB:badsubscript $ cat CN0307/antrax/logs/matlab_link_across_movies.log Undefined function or variable 'link_across_moives'. Error in antrax_mcr_interface (line 47) MATLAB:UndefinedFunction — You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/Social-Evolution-and-Behavior/anTraX/issues/17, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACERP5THCP33PFPFYAKAUWDTFB3YBANCNFSM4ZU7T73Q.

janamach commented 3 years ago

Ah, I see the typo! Happens :)

I am glad you mention the solve step. I was playing around with one of such videos (in that particular case it was a video of two flies walking around), the solve step finished with no problem, but all the logs (including for solve) were complaining about MATLAB:UndefinedFunction and the csv file was not generated at the end.

I will continue with tracking then, thanks :-)

janamach commented 3 years ago

The fix in https://github.com/Social-Evolution-and-Behavior/anTraX/commit/4b90feb76a18adf364eefaed1ffe4510685aa86d helped, matlab_link_across_movies.log is not complaining anymore.

Not sure if https://github.com/Social-Evolution-and-Behavior/anTraX/commit/8e44f7a532bca14eb8834f430d7e44c2081fc389 completely solved the MATLAB:UndefinedFunction problem though, I got a few files that showed the error, e.g.:

$ tail -n 20 matlab_track_m_16.log 
14:32:55 -I- Finished tracking frame #954000 (54000/60000)
14:39:20 -I- Finished tracking frame #955000 (55000/60000)
14:45:51 -I- Finished tracking frame #956000 (56000/60000)
14:52:21 -I- Finished tracking frame #957000 (57000/60000)
14:58:40 -I- Finished tracking frame #958000 (58000/60000)
15:05:02 -I- Finished tracking frame #959000 (59000/60000)
15:11:18 -I- Finished tracking frame #960000 (60000/60000)
15:11:18 -I- Finished frame loop, cleaning up
15:11:23 -I- Closed tracklet graph object
15:11:23 -I- ... movies 16
15:11:23 -I- ... 166 tracklets
15:11:25 -I- Looking for bottleneck pairs
15:11:25 -I- done distance mat
Undefined function or variable 'pairs'.
Error in trgraph/get_bottleneck_pairs (line 523)

Error in track_single_movie (line 169)

Error in antrax_mcr_interface (line 36)
MATLAB:UndefinedFunction
asafgal commented 3 years ago

Try again when you have a chance

janamach commented 3 years ago

Testing it right now on the problematic dataset from #20

janamach commented 3 years ago

The MATLAB:badsubscript doesn't occur with MCR during the track step. Thank you for fixing this :-)