{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/learning-a-neural-solver-for-multiple-object","title":"Learning a Neural Solver for Multiple Object Tracking","arxiv_id":"1912.07515","date":"2019-12-16","proceeding":null,"authors":["Guillem Brasó","Laura Leal-Taixé"],"abstract":"Graphs offer a natural way to formulate Multiple Object Tracking (MOT) within the tracking-by-detection paradigm. However, they also introduce a major challenge for learning methods, as defining a model that can operate on such \\textit{structured domain} is not trivial. As a consequence, most learning-based work has been devoted to learning better features for MOT, and then using these with well-established optimization frameworks. In this work, we exploit the classical network flow formulation of MOT to define a fully differentiable framework based on Message Passing Networks (MPNs). By operating directly on the graph domain, our method can reason globally over an entire set of detections and predict final solutions. Hence, we show that learning in MOT does not need to be restricted to feature extraction, but it can also be applied to the data association step. We show a significant improvement in both MOTA and IDF1 on three publicly available benchmarks. Our code is available at https://bit.ly/motsolv .","url_abs":"https://arxiv.org/abs/1912.07515v2","url_pdf":"https://arxiv.org/pdf/1912.07515v2.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"learning-a-neural-solver-for-multiple-object","repo_url":"https://github.com/dvl-tum/mot_neural_solver","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}},{"paper_slug":"learning-a-neural-solver-for-multiple-object","repo_url":"https://github.com/ocetintas/mpntrackseg","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":1,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"multi-object-tracking","task_name":"Multi-Object Tracking"},{"task_slug":"multiple-object-tracking","task_name":"Multiple Object Tracking"},{"task_slug":"object","task_name":"Object"},{"task_slug":"object-tracking","task_name":"Object Tracking"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"syntology_url":"https://syntology.ai/paper/1912.07515","atlas_url":"https://app.syntology.ai/?focus=1912.07515","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"1912.07515"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-25T09:33:49+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/dvl-tum/mot_neural_solver","reach":{"status":"ok","spdx":"MIT"}},{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/ocetintas/mpntrackseg","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran_draft_wrong":2,"ran":10,"unverified":8},"by_repo_kind":{"listed":{"samples":20,"ran":12,"repositories":2}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":0,"samples":[{"code_sha256_prefix":"158bf4c3a5f11f04","entry":"conv1x1","repo":"dvl-tum/mot_neural_solver","repo_kind":"listed","path":"src/mot_neural_solver/models/resnet.py","file_url":"https://github.com/dvl-tum/mot_neural_solver/blob/HEAD/src/mot_neural_solver/models/resnet.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"158bf4c3a5f11f04"}},{"code_sha256_prefix":"29df79c9fdb0cee8","entry":"conv3x3","repo":"dvl-tum/mot_neural_solver","repo_kind":"listed","path":"src/mot_neural_solver/models/resnet.py","file_url":"https://github.com/dvl-tum/mot_neural_solver/blob/HEAD/src/mot_neural_solver/models/resnet.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"OUTPUT_MISDECLARED","metamorphic_tier":"deterministic","behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"29df79c9fdb0cee8"}},{"code_sha256_prefix":"cc0fc0becaa56966","entry":"fast_compute_class_metric","repo":"dvl-tum/mot_neural_solver","repo_kind":"listed","path":"src/mot_neural_solver/utils/evaluation.py","file_url":"https://github.com/dvl-tum/mot_neural_solver/blob/HEAD/src/mot_neural_solver/utils/evaluation.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"cc0fc0becaa56966"}},{"code_sha256_prefix":"a94a431843c7a13d","entry":"get_knn_mask","repo":"dvl-tum/mot_neural_solver","repo_kind":"listed","path":"src/mot_neural_solver/utils/graph.py","file_url":"https://github.com/dvl-tum/mot_neural_solver/blob/HEAD/src/mot_neural_solver/utils/graph.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"a94a431843c7a13d"}},{"code_sha256_prefix":"c49058482b5bb7d3","entry":"get_run_str","repo":"dvl-tum/mot_neural_solver","repo_kind":"listed","path":"src/mot_neural_solver/utils/misc.py","file_url":"https://github.com/dvl-tum/mot_neural_solver/blob/HEAD/src/mot_neural_solver/utils/misc.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"c49058482b5bb7d3"}},{"code_sha256_prefix":"ae5092810a565f70","entry":"get_time_valid_conn_ixs","repo":"dvl-tum/mot_neural_solver","repo_kind":"listed","path":"src/mot_neural_solver/utils/graph.py","file_url":"https://github.com/dvl-tum/mot_neural_solver/blob/HEAD/src/mot_neural_solver/utils/graph.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"ae5092810a565f70"}},{"code_sha256_prefix":"30814309bf2c67a4","entry":"get_time_valid_conn_ixs_old","repo":"dvl-tum/mot_neural_solver","repo_kind":"listed","path":"src/mot_neural_solver/utils/graph.py","file_url":"https://github.com/dvl-tum/mot_neural_solver/blob/HEAD/src/mot_neural_solver/utils/graph.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"30814309bf2c67a4"}},{"code_sha256_prefix":"0ce058e665602da2","entry":"init_config","repo":"ocetintas/mpntrackseg","repo_kind":"listed","path":"TrackEval/trackeval/utils.py","file_url":"https://github.com/ocetintas/mpntrackseg/blob/HEAD/TrackEval/trackeval/utils.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"0ce058e665602da2"}},{"code_sha256_prefix":"6d5874069afb5da1","entry":"iou","repo":"dvl-tum/mot_neural_solver","repo_kind":"listed","path":"src/mot_neural_solver/utils/iou.py","file_url":"https://github.com/dvl-tum/mot_neural_solver/blob/HEAD/src/mot_neural_solver/utils/iou.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"6d5874069afb5da1"}},{"code_sha256_prefix":"077d777092baa347","entry":"load_pickle","repo":"dvl-tum/mot_neural_solver","repo_kind":"listed","path":"src/mot_neural_solver/utils/misc.py","file_url":"https://github.com/dvl-tum/mot_neural_solver/blob/HEAD/src/mot_neural_solver/utils/misc.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"077d777092baa347"}},{"code_sha256_prefix":"3cf91b63ac86aee7","entry":"run_metrics","repo":"ocetintas/mpntrackseg","repo_kind":"listed","path":"MOTChallengeEvalKit/src/MOTChallengeEvalKit/Evaluator.py","file_url":"https://github.com/ocetintas/mpntrackseg/blob/HEAD/MOTChallengeEvalKit/src/MOTChallengeEvalKit/Evaluator.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"3cf91b63ac86aee7"}},{"code_sha256_prefix":"5ef3f617efb9ddc4","entry":"update_config","repo":"ocetintas/mpntrackseg","repo_kind":"listed","path":"TrackEval/trackeval/utils.py","file_url":"https://github.com/ocetintas/mpntrackseg/blob/HEAD/TrackEval/trackeval/utils.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"5ef3f617efb9ddc4"}},{"code_sha256_prefix":"06d2be4ac9d0e95b","entry":"geometric_mean","repo":"ocetintas/mpntrackseg","repo_kind":"listed","path":"TrackEval/trackeval/plotting.py","file_url":"https://github.com/ocetintas/mpntrackseg/blob/HEAD/TrackEval/trackeval/plotting.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"06d2be4ac9d0e95b"}},{"code_sha256_prefix":"0816e9deea80e29e","entry":"iou_pairs","repo":"dvl-tum/mot_neural_solver","repo_kind":"listed","path":"src/mot_neural_solver/utils/iou.py","file_url":"https://github.com/dvl-tum/mot_neural_solver/blob/HEAD/src/mot_neural_solver/utils/iou.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"0816e9deea80e29e"}},{"code_sha256_prefix":"00c662d6d9709fe4","entry":"jaccard","repo":"ocetintas/mpntrackseg","repo_kind":"listed","path":"TrackEval/trackeval/plotting.py","file_url":"https://github.com/ocetintas/mpntrackseg/blob/HEAD/TrackEval/trackeval/plotting.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"00c662d6d9709fe4"}},{"code_sha256_prefix":"e9f7b2829ca9731b","entry":"load_multiple_tracker_summaries","repo":"ocetintas/mpntrackseg","repo_kind":"listed","path":"TrackEval/trackeval/plotting.py","file_url":"https://github.com/ocetintas/mpntrackseg/blob/HEAD/TrackEval/trackeval/plotting.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"e9f7b2829ca9731b"}},{"code_sha256_prefix":"132de39f1f8d09d3","entry":"resnet18","repo":"dvl-tum/mot_neural_solver","repo_kind":"listed","path":"src/mot_neural_solver/models/resnet.py","file_url":"https://github.com/dvl-tum/mot_neural_solver/blob/HEAD/src/mot_neural_solver/models/resnet.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"132de39f1f8d09d3"}},{"code_sha256_prefix":"568db0eea3d5a93a","entry":"resnet18","repo":"ocetintas/mpntrackseg","repo_kind":"listed","path":"src/mot_neural_solver/models/resnet.py","file_url":"https://github.com/ocetintas/mpntrackseg/blob/HEAD/src/mot_neural_solver/models/resnet.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"568db0eea3d5a93a"}},{"code_sha256_prefix":"df1bd31f4da1bed6","entry":"time","repo":"ocetintas/mpntrackseg","repo_kind":"listed","path":"TrackEval/trackeval/_timing.py","file_url":"https://github.com/ocetintas/mpntrackseg/blob/HEAD/TrackEval/trackeval/_timing.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"df1bd31f4da1bed6"}},{"code_sha256_prefix":"9792bf1150d36891","entry":"validate_metrics_list","repo":"ocetintas/mpntrackseg","repo_kind":"listed","path":"TrackEval/trackeval/utils.py","file_url":"https://github.com/ocetintas/mpntrackseg/blob/HEAD/TrackEval/trackeval/utils.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"9792bf1150d36891"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}