Clarifying the MOTchallenge groundtruth and test .txt format #121
Description
Dear all,
I'm trying to evaluate my tracking algorithm based on py-motmetric version 1.2 installed via pip with python3.6.
I've read all the issues in this repos, also do some experiments with matlab-devkit.
As #113 says,
---------
Layout for ground truth data
<GT_ROOT>/<SEQUENCE_1>/gt/gt.txt
<GT_ROOT>/<SEQUENCE_2>/gt/gt.txt
...
Layout for test data
<TEST_ROOT>/<SEQUENCE_1>.txt
<TEST_ROOT>/<SEQUENCE_2>.txt
...
Sequences of ground truth and test will be matched according to the `<SEQUENCE_X>`
string
Then run
python -m motmetrics.apps.eval_motchallenge <GT_ROOT> <TEST_ROOT>
where you replace <...>
with actual paths.
Originally posted by @cheind in #113 (comment)
And the python -m motmetrics.apps.eval_motchallenge --help
yeilds:
All file content, ground truth and test files, have to comply with the format described in Milan, Anton, et al. Mot16: A benchmark for multi-object tracking. arXiv preprint arXiv:1603.00831 (2016). https://motchallenge.net/
Yes, I read that paper.
And as far as I got from the paper, both gt.txt and <SEQ_x>.txt must be written in the following format:
frameID, trackID, bbox_top, bbox_left, bbox_width, bbox_height, confident score, class, unknown
Where:
confident score = 0 means inactive, =1 means active
class = 1 means pedestrian
WHAT IS THE 9-TH number means? I got nothing from the paper, also I ask on motchallenge forum but got no answer.
In my case I prepare 2 files:
/media/data3/EgoCentric_Nafosted/mot/gt/GH010383_5_462_968_1/gt/gt.txt contains:
1, 3, 794.27, 247.59, 71.245, 174.88, 1, 1, 1.
1, 6, 1648.1, 119.61, 66.504, 163.24, 1, 1, 1.
1, 8, 875.49, 399.98, 95.303, 233.93, 1, 1, 1.
and /media/data3/EgoCentric_Nafosted/mot/test/GH010383_5_462_968_1.txt contains:
1, 3, 794.27, 247.59, 71.245, 174.88, 1, 1, 1.
1, 6, 1648.1, 119.61, 66.504, 163.24, 1, 1, 1.
1, 8, 875.49, 399.98, 95.303, 233.93, 1, 1, 1.
Finally I run:
python3 -m motmetrics.apps.eval_motchallenge /media/data3/EgoCentric_Nafosted/mot/gt/ /media/data3/EgoCentric_Nafosted/mot/test/
But got errors:
03:55:47 INFO - Found 1 groundtruths and 1 test files. 03:55:47 INFO - Available LAP solvers ['lap', 'scipy'] 03:55:47 INFO - Default LAP solver 'lap' 03:55:47 INFO - Loading files. Traceback (most recent call last): File "/usr/lib/python3.6/runpy.py", line 193, in _run_module_as_main "__main__", mod_spec) File "/usr/lib/python3.6/runpy.py", line 85, in _run_code exec(code, run_globals) File "/home/minhkv/.local/lib/python3.6/site-packages/motmetrics/apps/eval_motchallenge.py", line 121, in <module> main() File "/home/minhkv/.local/lib/python3.6/site-packages/motmetrics/apps/eval_motchallenge.py", line 101, in main gt = OrderedDict([(Path(f).parts[-3], mm.io.loadtxt(f, fmt=args.fmt, min_confidence=1)) for f in gtfiles]) File "/home/minhkv/.local/lib/python3.6/site-packages/motmetrics/apps/eval_motchallenge.py", line 101, in <listcomp> gt = OrderedDict([(Path(f).parts[-3], mm.io.loadtxt(f, fmt=args.fmt, min_confidence=1)) for f in gtfiles]) File "/home/minhkv/.local/lib/python3.6/site-packages/motmetrics/io.py", line 321, in loadtxt return func(fname, **kwargs) File "/home/minhkv/.local/lib/python3.6/site-packages/motmetrics/io.py", line 83, in load_motchallenge engine='python' File "/home/minhkv/.local/lib/python3.6/site-packages/pandas/io/parsers.py", line 676, in parser_f return _read(filepath_or_buffer, kwds) File "/home/minhkv/.local/lib/python3.6/site-packages/pandas/io/parsers.py", line 454, in _read data = parser.read(nrows) File "/home/minhkv/.local/lib/python3.6/site-packages/pandas/io/parsers.py", line 1133, in read ret = self._engine.read(nrows) File "/home/minhkv/.local/lib/python3.6/site-packages/pandas/io/parsers.py", line 2458, in read alldata = self._rows_to_cols(content) File "/home/minhkv/.local/lib/python3.6/site-packages/pandas/io/parsers.py", line 3113, in _rows_to_cols self._alert_malformed(msg, row_num + 1) File "/home/minhkv/.local/lib/python3.6/site-packages/pandas/io/parsers.py", line 2872, in _alert_malformed raise ParserError(msg) pandas.errors.ParserError: Expected 12 fields in line 1, saw 17. Error could possibly be due to quotes being ignored when a multi-char delimiter is used.
Please help! @cheind @jvlmdr @smidm @hakanardo @Borda @
Any recommendation is appreciated!
Thanks.