Skip to content

Clarifying the MOTchallenge groundtruth and test .txt format #121

Closed
@pvti

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.

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions