[{"data":1,"prerenderedAt":2221},["ShallowReactive",2],{"navigation":3,"api-navigation":126,"\u002Frecipes\u002Flearned_motr_tracker":328,"docyard:crossref-index":2220},[4,8,38,44,48,122],{"title":5,"path":6,"stem":7},"Getting Started","\u002Fgetting-started","1.getting-started",{"title":9,"path":10,"stem":11,"children":12,"page":37},"Recipes","\u002Frecipes","2.recipes",[13,17,21,25,29,33],{"title":14,"path":15,"stem":16},"Recipe: two-stage cascade tracker","\u002Frecipes\u002Fcascade_tracker","2.recipes\u002Fcascade_tracker",{"title":18,"path":19,"stem":20},"Recipe: cosine appearance tracker","\u002Frecipes\u002Fcosine_tracker","2.recipes\u002Fcosine_tracker",{"title":22,"path":23,"stem":24},"Recipe: Kalman motion tracker","\u002Frecipes\u002Fkalman_motion_tracker","2.recipes\u002Fkalman_motion_tracker",{"title":26,"path":27,"stem":28},"Recipe: learned MOTR-style appearance tracker","\u002Frecipes\u002Flearned_motr_tracker","2.recipes\u002Flearned_motr_tracker",{"title":30,"path":31,"stem":32},"Recipe: overlap-IoU tracker (port of 1.x models.overlap)","\u002Frecipes\u002Foverlap_tracker","2.recipes\u002Foverlap_tracker",{"title":34,"path":35,"stem":36},"Recipe: SORT-style tracker on unitrack 2.0","\u002Frecipes\u002Fsort","2.recipes\u002Fsort",false,{"title":39,"path":40,"stem":41,"children":42},"API reference","\u002Fapi","3.api\u002Findex",[43],{"title":39,"path":40,"stem":41},{"title":45,"path":46,"stem":47},"Migrating from 1.x to 2.0","\u002Fmigration","4.migration",{"title":49,"path":50,"stem":51,"children":52,"page":37},"Notebooks","\u002Fnotebooks","5.notebooks",[53,84,88],{"title":54,"path":55,"stem":56,"children":57},"Embedding \u002F appearance filters","\u002Fnotebooks\u002Fembedding_filters","5.notebooks\u002Fembedding_filters\u002Findex",[58,59,64,68,72,76,80],{"title":54,"path":55,"stem":56},{"title":60,"path":61,"stem":62,"icon":63},"Embedding filters 1 — Exponential moving average (EMA)","\u002Fnotebooks\u002Fembedding_filters\u002Fema","5.notebooks\u002Fembedding_filters\u002F1.ema","i-lucide-notebook",{"title":65,"path":66,"stem":67,"icon":63},"Embedding filters 2 — Diagonal Kalman","\u002Fnotebooks\u002Fembedding_filters\u002Fkalman_diagonal","5.notebooks\u002Fembedding_filters\u002F2.kalman_diagonal",{"title":69,"path":70,"stem":71,"icon":63},"Embedding filters 3 — von Mises-Fisher (directional)","\u002Fnotebooks\u002Fembedding_filters\u002Fvmf_directional","5.notebooks\u002Fembedding_filters\u002F3.vmf_directional",{"title":73,"path":74,"stem":75,"icon":63},"Embedding filters 4 — Ensemble Kalman & information filters","\u002Fnotebooks\u002Fembedding_filters\u002Fenkf_information","5.notebooks\u002Fembedding_filters\u002F4.enkf_information",{"title":77,"path":78,"stem":79,"icon":63},"Embedding filters 5 — Memory bank & learned propagation","\u002Fnotebooks\u002Fembedding_filters\u002Fgallery_and_learned","5.notebooks\u002Fembedding_filters\u002F5.gallery_and_learned",{"title":81,"path":82,"stem":83,"icon":63},"Embedding filters 6 — summary & benchmark","\u002Fnotebooks\u002Fembedding_filters\u002Fsummary_benchmark","5.notebooks\u002Fembedding_filters\u002F6.summary_benchmark",{"title":85,"path":86,"stem":87,"icon":63},"Kalman filters for motion prediction in tracking","\u002Fnotebooks\u002Fkalman","5.notebooks\u002Fkalman",{"title":89,"path":90,"stem":91,"children":92},"Tutorial notebooks","\u002Fnotebooks\u002Ftutorials","5.notebooks\u002Ftutorials\u002Findex",[93,94,98,102,106,110,114,118],{"title":89,"path":90,"stem":91},{"title":95,"path":96,"stem":97,"icon":63},"1. Quickstart — your first tracker","\u002Fnotebooks\u002Ftutorials\u002Fquickstart","5.notebooks\u002Ftutorials\u002F1.quickstart",{"title":99,"path":100,"stem":101,"icon":63},"2. The data model — typed records that flow through a tracker","\u002Fnotebooks\u002Ftutorials\u002Fdata_model","5.notebooks\u002Ftutorials\u002F2.data_model",{"title":103,"path":104,"stem":105,"icon":63},"3. The cost & gate zoos","\u002Fnotebooks\u002Ftutorials\u002Fcosts_and_gates","5.notebooks\u002Ftutorials\u002F3.costs_and_gates",{"title":107,"path":108,"stem":109,"icon":63},"4. The composable pipeline tree","\u002Fnotebooks\u002Ftutorials\u002Fpipeline_tree","5.notebooks\u002Ftutorials\u002F4.pipeline_tree",{"title":111,"path":112,"stem":113,"icon":63},"5. State evolution and lifecycle","\u002Fnotebooks\u002Ftutorials\u002Fstates_and_lifecycle","5.notebooks\u002Ftutorials\u002F5.states_and_lifecycle",{"title":115,"path":116,"stem":117,"icon":63},"6. End-to-end: K=2 cascaded and parallel fusion","\u002Fnotebooks\u002Ftutorials\u002Fcascaded_and_parallel","5.notebooks\u002Ftutorials\u002F6.cascaded_and_parallel",{"title":119,"path":120,"stem":121,"icon":63},"7. Migration & new possibilities — driven by a real detector","\u002Fnotebooks\u002Ftutorials\u002Fmigration","5.notebooks\u002Ftutorials\u002F7.migration",{"title":123,"path":124,"stem":125},"Unitrack","\u002F","index",[127,130,133,136,139,142,145,148,151,154,157,160,163,166,169,172,175,178,181,184,187,190,193,196,199,202,205,208,211,214,217,220,223,226,229,232,235,238,241,244,247,249,252,255,258,261,263,266,269,272,274,277,280,282,285,288,290,293,296,299,302,305,308,311,313,315,318,320,323,326],{"title":128,"path":129},"assignment","\u002Fapi\u002Fassignment",{"title":131,"path":132},"associate","\u002Fapi\u002Fassignment\u002Fassociate",{"title":134,"path":135},"clip_associate","\u002Fapi\u002Fassignment\u002Fclip_associate",{"title":137,"path":138},"lap","\u002Fapi\u002Fassignment\u002Flap",{"title":140,"path":141},"lapjv","\u002Fapi\u002Fassignment\u002Flapjv",{"title":143,"path":144},"benchmarks","\u002Fapi\u002Fbenchmarks",{"title":146,"path":147},"hota","\u002Fapi\u002Fbenchmarks\u002Fhota",{"title":149,"path":150},"datasets","\u002Fapi\u002Fbenchmarks\u002Fhota\u002Fdatasets",{"title":152,"path":153},"learned_modules","\u002Fapi\u002Fbenchmarks\u002Fhota\u002Flearned_modules",{"title":155,"path":156},"metric","\u002Fapi\u002Fbenchmarks\u002Fhota\u002Fmetric",{"title":158,"path":159},"models","\u002Fapi\u002Fbenchmarks\u002Fhota\u002Fmodels",{"title":161,"path":162},"protocols","\u002Fapi\u002Fbenchmarks\u002Fhota\u002Fprotocols",{"title":164,"path":165},"render","\u002Fapi\u002Fbenchmarks\u002Fhota\u002Frender",{"title":167,"path":168},"report","\u002Fapi\u002Fbenchmarks\u002Fhota\u002Freport",{"title":170,"path":171},"runner","\u002Fapi\u002Fbenchmarks\u002Fhota\u002Frunner",{"title":173,"path":174},"tracker","\u002Fapi\u002Fbenchmarks\u002Fhota\u002Ftracker",{"title":176,"path":177},"train_learned","\u002Fapi\u002Fbenchmarks\u002Fhota\u002Ftrain_learned",{"title":179,"path":180},"types","\u002Fapi\u002Fbenchmarks\u002Fhota\u002Ftypes",{"title":182,"path":183},"costs","\u002Fapi\u002Fcosts",{"title":185,"path":186},"combinators","\u002Fapi\u002Fcosts\u002Fcombinators",{"title":188,"path":189},"distance","\u002Fapi\u002Fcosts\u002Fdistance",{"title":191,"path":192},"gallery","\u002Fapi\u002Fcosts\u002Fgallery",{"title":194,"path":195},"overlap","\u002Fapi\u002Fcosts\u002Foverlap",{"title":197,"path":198},"data","\u002Fapi\u002Fdata",{"title":200,"path":201},"clip","\u002Fapi\u002Fdata\u002Fclip",{"title":203,"path":204},"cost","\u002Fapi\u002Fdata\u002Fcost",{"title":206,"path":207},"detections","\u002Fapi\u002Fdata\u002Fdetections",{"title":209,"path":210},"frame","\u002Fapi\u002Fdata\u002Fframe",{"title":212,"path":213},"gate","\u002Fapi\u002Fdata\u002Fgate",{"title":215,"path":216},"match","\u002Fapi\u002Fdata\u002Fmatch",{"title":218,"path":219},"tensor_spec","\u002Fapi\u002Fdata\u002Ftensor_spec",{"title":221,"path":222},"tracklets","\u002Fapi\u002Fdata\u002Ftracklets",{"title":224,"path":225},"gates","\u002Fapi\u002Fgates",{"title":227,"path":228},"motion","\u002Fapi\u002Fgates\u002Fmotion",{"title":230,"path":231},"simple","\u002Fapi\u002Fgates\u002Fsimple",{"title":233,"path":234},"soft","\u002Fapi\u002Fgates\u002Fsoft",{"title":236,"path":237},"spatial","\u002Fapi\u002Fgates\u002Fspatial",{"title":239,"path":240},"lifecycle","\u002Fapi\u002Flifecycle",{"title":242,"path":243},"filters","\u002Fapi\u002Flifecycle\u002Ffilters",{"title":245,"path":246},"policies","\u002Fapi\u002Flifecycle\u002Fpolicies",{"title":233,"path":248},"\u002Fapi\u002Flifecycle\u002Fsoft",{"title":250,"path":251},"status","\u002Fapi\u002Flifecycle\u002Fstatus",{"title":253,"path":254},"visibility","\u002Fapi\u002Flifecycle\u002Fvisibility",{"title":256,"path":257},"pipeline","\u002Fapi\u002Fpipeline",{"title":259,"path":260},"base","\u002Fapi\u002Fpipeline\u002Fbase",{"title":185,"path":262},"\u002Fapi\u002Fpipeline\u002Fcombinators",{"title":264,"path":265},"diff","\u002Fapi\u002Fpipeline\u002Fdiff",{"title":267,"path":268},"merge","\u002Fapi\u002Fpipeline\u002Fmerge",{"title":270,"path":271},"states","\u002Fapi\u002Fstates",{"title":259,"path":273},"\u002Fapi\u002Fstates\u002Fbase",{"title":275,"path":276},"directional","\u002Fapi\u002Fstates\u002Fdirectional",{"title":278,"path":279},"ema","\u002Fapi\u002Fstates\u002Fema",{"title":191,"path":281},"\u002Fapi\u002Fstates\u002Fgallery",{"title":283,"path":284},"identity","\u002Fapi\u002Fstates\u002Fidentity",{"title":286,"path":287},"kalman","\u002Fapi\u002Fstates\u002Fkalman",{"title":259,"path":289},"\u002Fapi\u002Fstates\u002Fkalman\u002Fbase",{"title":291,"path":292},"bbox","\u002Fapi\u002Fstates\u002Fkalman\u002Fbbox",{"title":294,"path":295},"centroid","\u002Fapi\u002Fstates\u002Fkalman\u002Fcentroid",{"title":297,"path":298},"ensemble","\u002Fapi\u002Fstates\u002Fkalman\u002Fensemble",{"title":300,"path":301},"information","\u002Fapi\u002Fstates\u002Fkalman\u002Finformation",{"title":303,"path":304},"project","\u002Fapi\u002Fstates\u002Fkalman\u002Fproject",{"title":306,"path":307},"update","\u002Fapi\u002Fstates\u002Fkalman\u002Fupdate",{"title":309,"path":310},"learned","\u002Fapi\u002Fstates\u002Flearned",{"title":233,"path":312},"\u002Fapi\u002Fstates\u002Fsoft",{"title":173,"path":314},"\u002Fapi\u002Ftracker",{"title":316,"path":317},"batch","\u002Fapi\u002Ftracker\u002Fbatch",{"title":200,"path":319},"\u002Fapi\u002Ftracker\u002Fclip",{"title":321,"path":322},"memory","\u002Fapi\u002Ftracker\u002Fmemory",{"title":324,"path":325},"multistream","\u002Fapi\u002Ftracker\u002Fmultistream",{"title":173,"path":327},"\u002Fapi\u002Ftracker\u002Ftracker",{"id":329,"title":26,"body":330,"description":2215,"extension":2216,"meta":2217,"navigation":469,"path":27,"seo":2218,"stem":28,"__hash__":2219},"content\u002F2.recipes\u002Flearned_motr_tracker.md",{"type":331,"value":332,"toc":2213},"minimark",[333,337,345,363,382,401,2178,2191,2209],[334,335,26],"h1",{"id":336},"recipe-learned-motr-style-appearance-tracker",[338,339,340,341,344],"p",{},"The learned tracker is the cosine appearance tracker with its closed-form\nembedding filter replaced by two small ",[342,343,309],"em",{}," modules, in the spirit of\nMOTR's query-propagation filter:",[346,347,348,357],"ul",{},[349,350,351,352,356],"li",{},"a ",[353,354,355],"strong",{},"Propagator"," — the predict step: a residual MLP that nudges a track\nembedding forward in time and renormalizes it onto the unit sphere.",[349,358,351,359,362],{},[353,360,361],{},"Fuser"," — the update step: a gated residual fuse of a track embedding\nwith its matched detection's embedding.",[338,364,365,369,370,373,374,377,378,381],{},[366,367,368],"code",{},"LearnedProcess"," wraps the Propagator into the state's predict, and\n",[366,371,372],{},"LearnedObservation"," wraps the Fuser into the state's update on match. The\nassociation is unchanged from ",[366,375,376],{},"cosine_tracker.md",": ",[366,379,380],{},"Cosine(\"embedding\")","\ngated by class. Because both modules are autograd-native, the same\ncosine\u002FSinkhorn association objective used at inference trains them.",[338,383,384,385,388,389,392,393,396,397,400],{},"The two modules are trained once by\n",[366,386,387],{},"sources\u002Funitrack\u002Fbenchmarks\u002Fhota\u002Ftrain_learned.py","\n(",[366,390,391],{},"python -m unitrack.benchmarks.hota.train_learned","), which extracts detection\nembeddings over a few train clips, assigns each a GT track id by mask-IoU, and\noptimizes the propagated-then-matched embeddings to recover the GT\ncorrespondences via a Sinkhorn soft-assignment loss. It writes a small\n",[366,394,395],{},"safetensors"," checkpoint that this factory loads; the factory raises a clear\n",[366,398,399],{},"FileNotFoundError"," pointing at the training script if the checkpoint is\nabsent, so the filter is never silently untrained.",[402,403,408],"pre",{"className":404,"code":405,"language":406,"meta":407,"style":407},"language-python shiki shiki-themes material-theme-lighter github-light github-dark","import torch\nimport torch.nn.functional as F\nfrom torch import nn\n\nimport unitrack\nfrom unitrack.assignment import Associate, Jonker\nfrom unitrack.costs import Cosine\nfrom unitrack.data import TensorSpec\nfrom unitrack.gates import ClassGate\nfrom unitrack.lifecycle import IncludeAll, NoLifecycle\nfrom unitrack.pipeline import Gated, Pipe\nfrom unitrack.states import (\n    FromDetectionField,\n    Identity,\n    LearnedObservation,\n    LearnedProcess,\n    Replace,\n    State,\n)\n\nEMBED_DIM = 256\n\n\nclass Propagator(nn.Module):\n    \"\"\"Predict step: residual MLP over a track embedding, renormalized.\"\"\"\n\n    def __init__(self, dim: int, hidden: int = 64) -> None:\n        super().__init__()\n        self.net = nn.Sequential(\n            nn.Linear(dim, hidden), nn.Tanh(), nn.Linear(hidden, dim)\n        )\n\n    def forward(self, x: torch.Tensor, dt: float = 1.0) -> torch.Tensor:\n        del dt  # constant-rate propagation\n        return F.normalize(x + self.net(x), dim=-1)\n\n\nclass Fuser(nn.Module):\n    \"\"\"Update step: gated residual fuse of track + matched measurement.\"\"\"\n\n    def __init__(self, dim: int, hidden: int = 64) -> None:\n        super().__init__()\n        self.gate = nn.Sequential(\n            nn.Linear(2 * dim, hidden),\n            nn.Tanh(),\n            nn.Linear(hidden, dim),\n            nn.Sigmoid(),\n        )\n\n    def forward(self, track: torch.Tensor, meas: torch.Tensor) -> torch.Tensor:\n        g = self.gate(torch.cat([track, meas], dim=-1))\n        return F.normalize(g * meas + (1 - g) * track, dim=-1)\n\n\ndef build_learned_tracker(\n    *,\n    checkpoint: str,\n    cost_threshold: float = 0.5,\n    embed_dim: int = EMBED_DIM,\n) -> unitrack.Tracker:\n    from safetensors.torch import load_file\n\n    flat = load_file(checkpoint)  # raises if the checkpoint is missing\n    prop, fuse = Propagator(embed_dim), Fuser(embed_dim)\n    prop.load_state_dict(\n        {\n            k[len(\"propagator.\") :]: v\n            for k, v in flat.items()\n            if k.startswith(\"propagator.\")\n        }\n    )\n    fuse.load_state_dict(\n        {k[len(\"fuser.\") :]: v for k, v in flat.items() if k.startswith(\"fuser.\")}\n    )\n    prop.eval()\n    fuse.eval()\n\n    inner = Pipe(\n        cost=Cosine(\"embedding\"),\n        assoc=Associate(Jonker(threshold=cost_threshold)),\n    )\n    pipeline = Gated(gate=ClassGate(\"category\"), then=inner)\n    return unitrack.Tracker(\n        root=pipeline,\n        states={\n            \"embedding\": State(\n                schema=TensorSpec(shape=(embed_dim,), dtype=torch.float32),\n                process=LearnedProcess(\"embedding\", prop),\n                observation=LearnedObservation(\"embedding\", \"embedding\", fuse),\n                init=FromDetectionField(\"embedding\"),\n            ),\n            \"category\": State(\n                schema=TensorSpec(shape=(), dtype=torch.int64),\n                process=Identity(\"category\"),\n                observation=Replace(\"category\"),\n                init=FromDetectionField(\"category\"),\n            ),\n        },\n        lifecycle=NoLifecycle(),\n        visibility=IncludeAll(),\n    )\n","python","",[366,409,410,423,450,464,471,479,503,520,537,554,576,598,615,624,632,640,648,656,664,670,675,690,695,700,724,738,743,799,814,839,889,895,900,954,967,1014,1019,1024,1042,1052,1057,1096,1107,1126,1152,1164,1183,1195,1200,1205,1254,1301,1352,1357,1362,1373,1381,1394,1411,1428,1444,1463,1468,1489,1519,1531,1537,1569,1596,1619,1625,1631,1643,1711,1716,1728,1739,1744,1757,1779,1808,1813,1853,1867,1879,1890,1907,1946,1971,2005,2026,2032,2047,2077,2097,2117,2136,2141,2147,2160,2173],{"__ignoreMap":407},[411,412,415,419],"span",{"class":413,"line":414},"line",1,[411,416,418],{"class":417},"sVHd0","import",[411,420,422],{"class":421},"su5hD"," torch\n",[411,424,426,428,431,435,439,441,444,447],{"class":413,"line":425},2,[411,427,418],{"class":417},[411,429,430],{"class":421}," torch",[411,432,434],{"class":433},"sP7_E",".",[411,436,438],{"class":437},"skxfh","nn",[411,440,434],{"class":433},[411,442,443],{"class":437},"functional",[411,445,446],{"class":417}," as",[411,448,449],{"class":421}," F\n",[411,451,453,456,459,461],{"class":413,"line":452},3,[411,454,455],{"class":417},"from",[411,457,458],{"class":421}," torch ",[411,460,418],{"class":417},[411,462,463],{"class":421}," nn\n",[411,465,467],{"class":413,"line":466},4,[411,468,470],{"emptyLinePlaceholder":469},true,"\n",[411,472,474,476],{"class":413,"line":473},5,[411,475,418],{"class":417},[411,477,478],{"class":421}," unitrack\n",[411,480,482,484,487,489,492,494,497,500],{"class":413,"line":481},6,[411,483,455],{"class":417},[411,485,486],{"class":421}," unitrack",[411,488,434],{"class":433},[411,490,491],{"class":421},"assignment ",[411,493,418],{"class":417},[411,495,496],{"class":421}," Associate",[411,498,499],{"class":433},",",[411,501,502],{"class":421}," Jonker\n",[411,504,506,508,510,512,515,517],{"class":413,"line":505},7,[411,507,455],{"class":417},[411,509,486],{"class":421},[411,511,434],{"class":433},[411,513,514],{"class":421},"costs ",[411,516,418],{"class":417},[411,518,519],{"class":421}," Cosine\n",[411,521,523,525,527,529,532,534],{"class":413,"line":522},8,[411,524,455],{"class":417},[411,526,486],{"class":421},[411,528,434],{"class":433},[411,530,531],{"class":421},"data ",[411,533,418],{"class":417},[411,535,536],{"class":421}," TensorSpec\n",[411,538,540,542,544,546,549,551],{"class":413,"line":539},9,[411,541,455],{"class":417},[411,543,486],{"class":421},[411,545,434],{"class":433},[411,547,548],{"class":421},"gates ",[411,550,418],{"class":417},[411,552,553],{"class":421}," ClassGate\n",[411,555,557,559,561,563,566,568,571,573],{"class":413,"line":556},10,[411,558,455],{"class":417},[411,560,486],{"class":421},[411,562,434],{"class":433},[411,564,565],{"class":421},"lifecycle ",[411,567,418],{"class":417},[411,569,570],{"class":421}," IncludeAll",[411,572,499],{"class":433},[411,574,575],{"class":421}," NoLifecycle\n",[411,577,579,581,583,585,588,590,593,595],{"class":413,"line":578},11,[411,580,455],{"class":417},[411,582,486],{"class":421},[411,584,434],{"class":433},[411,586,587],{"class":421},"pipeline ",[411,589,418],{"class":417},[411,591,592],{"class":421}," Gated",[411,594,499],{"class":433},[411,596,597],{"class":421}," Pipe\n",[411,599,601,603,605,607,610,612],{"class":413,"line":600},12,[411,602,455],{"class":417},[411,604,486],{"class":421},[411,606,434],{"class":433},[411,608,609],{"class":421},"states ",[411,611,418],{"class":417},[411,613,614],{"class":433}," (\n",[411,616,618,621],{"class":413,"line":617},13,[411,619,620],{"class":421},"    FromDetectionField",[411,622,623],{"class":433},",\n",[411,625,627,630],{"class":413,"line":626},14,[411,628,629],{"class":421},"    Identity",[411,631,623],{"class":433},[411,633,635,638],{"class":413,"line":634},15,[411,636,637],{"class":421},"    LearnedObservation",[411,639,623],{"class":433},[411,641,643,646],{"class":413,"line":642},16,[411,644,645],{"class":421},"    LearnedProcess",[411,647,623],{"class":433},[411,649,651,654],{"class":413,"line":650},17,[411,652,653],{"class":421},"    Replace",[411,655,623],{"class":433},[411,657,659,662],{"class":413,"line":658},18,[411,660,661],{"class":421},"    State",[411,663,623],{"class":433},[411,665,667],{"class":413,"line":666},19,[411,668,669],{"class":433},")\n",[411,671,673],{"class":413,"line":672},20,[411,674,470],{"emptyLinePlaceholder":469},[411,676,678,682,686],{"class":413,"line":677},21,[411,679,681],{"class":680},"s_hVV","EMBED_DIM",[411,683,685],{"class":684},"smGrS"," =",[411,687,689],{"class":688},"srdBf"," 256\n",[411,691,693],{"class":413,"line":692},22,[411,694,470],{"emptyLinePlaceholder":469},[411,696,698],{"class":413,"line":697},23,[411,699,470],{"emptyLinePlaceholder":469},[411,701,703,707,711,714,716,718,721],{"class":413,"line":702},24,[411,704,706],{"class":705},"sbsja","class",[411,708,710],{"class":709},"sbgvK"," Propagator",[411,712,713],{"class":433},"(",[411,715,438],{"class":709},[411,717,434],{"class":433},[411,719,720],{"class":709},"Module",[411,722,723],{"class":433},"):\n",[411,725,727,731,735],{"class":413,"line":726},25,[411,728,730],{"class":729},"s2W-s","    \"\"\"",[411,732,734],{"class":733},"sithA","Predict step: residual MLP over a track embedding, renormalized.",[411,736,737],{"class":729},"\"\"\"\n",[411,739,741],{"class":413,"line":740},26,[411,742,470],{"emptyLinePlaceholder":469},[411,744,746,749,753,755,759,761,765,768,772,774,777,779,781,783,786,789,792,796],{"class":413,"line":745},27,[411,747,748],{"class":705},"    def",[411,750,752],{"class":751},"sptTA"," __init__",[411,754,713],{"class":433},[411,756,758],{"class":757},"smCYv","self",[411,760,499],{"class":433},[411,762,764],{"class":763},"sFwrP"," dim",[411,766,767],{"class":433},":",[411,769,771],{"class":770},"sZMiF"," int",[411,773,499],{"class":433},[411,775,776],{"class":763}," hidden",[411,778,767],{"class":433},[411,780,771],{"class":770},[411,782,685],{"class":684},[411,784,785],{"class":688}," 64",[411,787,788],{"class":433},")",[411,790,791],{"class":433}," ->",[411,793,795],{"class":794},"s39Yj"," None",[411,797,798],{"class":433},":\n",[411,800,802,805,808,811],{"class":413,"line":801},28,[411,803,804],{"class":770},"        super",[411,806,807],{"class":433},"().",[411,809,810],{"class":751},"__init__",[411,812,813],{"class":433},"()\n",[411,815,817,820,822,825,827,830,832,836],{"class":413,"line":816},29,[411,818,819],{"class":680},"        self",[411,821,434],{"class":433},[411,823,824],{"class":437},"net",[411,826,685],{"class":684},[411,828,829],{"class":421}," nn",[411,831,434],{"class":433},[411,833,835],{"class":834},"slqww","Sequential",[411,837,838],{"class":433},"(\n",[411,840,842,845,847,850,852,855,857,859,862,864,866,869,872,874,876,878,880,883,885,887],{"class":413,"line":841},30,[411,843,844],{"class":834},"            nn",[411,846,434],{"class":433},[411,848,849],{"class":834},"Linear",[411,851,713],{"class":433},[411,853,854],{"class":834},"dim",[411,856,499],{"class":433},[411,858,776],{"class":834},[411,860,861],{"class":433},"),",[411,863,829],{"class":834},[411,865,434],{"class":433},[411,867,868],{"class":834},"Tanh",[411,870,871],{"class":433},"(),",[411,873,829],{"class":834},[411,875,434],{"class":433},[411,877,849],{"class":834},[411,879,713],{"class":433},[411,881,882],{"class":834},"hidden",[411,884,499],{"class":433},[411,886,764],{"class":834},[411,888,669],{"class":433},[411,890,892],{"class":413,"line":891},31,[411,893,894],{"class":433},"        )\n",[411,896,898],{"class":413,"line":897},32,[411,899,470],{"emptyLinePlaceholder":469},[411,901,903,905,909,911,913,915,918,920,922,924,927,929,932,934,937,939,942,944,946,948,950,952],{"class":413,"line":902},33,[411,904,748],{"class":705},[411,906,908],{"class":907},"sGLFI"," forward",[411,910,713],{"class":433},[411,912,758],{"class":757},[411,914,499],{"class":433},[411,916,917],{"class":763}," x",[411,919,767],{"class":433},[411,921,430],{"class":421},[411,923,434],{"class":433},[411,925,926],{"class":437},"Tensor",[411,928,499],{"class":433},[411,930,931],{"class":763}," dt",[411,933,767],{"class":433},[411,935,936],{"class":770}," float",[411,938,685],{"class":684},[411,940,941],{"class":688}," 1.0",[411,943,788],{"class":433},[411,945,791],{"class":433},[411,947,430],{"class":421},[411,949,434],{"class":433},[411,951,926],{"class":437},[411,953,798],{"class":433},[411,955,957,960,963],{"class":413,"line":956},34,[411,958,959],{"class":417},"        del",[411,961,962],{"class":421}," dt  ",[411,964,966],{"class":965},"sutJx","# constant-rate propagation\n",[411,968,970,973,976,978,981,983,986,989,992,994,996,998,1001,1003,1006,1009,1012],{"class":413,"line":969},35,[411,971,972],{"class":417},"        return",[411,974,975],{"class":421}," F",[411,977,434],{"class":433},[411,979,980],{"class":834},"normalize",[411,982,713],{"class":433},[411,984,985],{"class":834},"x ",[411,987,988],{"class":684},"+",[411,990,991],{"class":680}," self",[411,993,434],{"class":433},[411,995,824],{"class":834},[411,997,713],{"class":433},[411,999,1000],{"class":834},"x",[411,1002,861],{"class":433},[411,1004,764],{"class":1005},"s99_P",[411,1007,1008],{"class":684},"=-",[411,1010,1011],{"class":688},"1",[411,1013,669],{"class":433},[411,1015,1017],{"class":413,"line":1016},36,[411,1018,470],{"emptyLinePlaceholder":469},[411,1020,1022],{"class":413,"line":1021},37,[411,1023,470],{"emptyLinePlaceholder":469},[411,1025,1027,1029,1032,1034,1036,1038,1040],{"class":413,"line":1026},38,[411,1028,706],{"class":705},[411,1030,1031],{"class":709}," Fuser",[411,1033,713],{"class":433},[411,1035,438],{"class":709},[411,1037,434],{"class":433},[411,1039,720],{"class":709},[411,1041,723],{"class":433},[411,1043,1045,1047,1050],{"class":413,"line":1044},39,[411,1046,730],{"class":729},[411,1048,1049],{"class":733},"Update step: gated residual fuse of track + matched measurement.",[411,1051,737],{"class":729},[411,1053,1055],{"class":413,"line":1054},40,[411,1056,470],{"emptyLinePlaceholder":469},[411,1058,1060,1062,1064,1066,1068,1070,1072,1074,1076,1078,1080,1082,1084,1086,1088,1090,1092,1094],{"class":413,"line":1059},41,[411,1061,748],{"class":705},[411,1063,752],{"class":751},[411,1065,713],{"class":433},[411,1067,758],{"class":757},[411,1069,499],{"class":433},[411,1071,764],{"class":763},[411,1073,767],{"class":433},[411,1075,771],{"class":770},[411,1077,499],{"class":433},[411,1079,776],{"class":763},[411,1081,767],{"class":433},[411,1083,771],{"class":770},[411,1085,685],{"class":684},[411,1087,785],{"class":688},[411,1089,788],{"class":433},[411,1091,791],{"class":433},[411,1093,795],{"class":794},[411,1095,798],{"class":433},[411,1097,1099,1101,1103,1105],{"class":413,"line":1098},42,[411,1100,804],{"class":770},[411,1102,807],{"class":433},[411,1104,810],{"class":751},[411,1106,813],{"class":433},[411,1108,1110,1112,1114,1116,1118,1120,1122,1124],{"class":413,"line":1109},43,[411,1111,819],{"class":680},[411,1113,434],{"class":433},[411,1115,212],{"class":437},[411,1117,685],{"class":684},[411,1119,829],{"class":421},[411,1121,434],{"class":433},[411,1123,835],{"class":834},[411,1125,838],{"class":433},[411,1127,1129,1131,1133,1135,1137,1140,1143,1145,1147,1149],{"class":413,"line":1128},44,[411,1130,844],{"class":834},[411,1132,434],{"class":433},[411,1134,849],{"class":834},[411,1136,713],{"class":433},[411,1138,1139],{"class":688},"2",[411,1141,1142],{"class":684}," *",[411,1144,764],{"class":834},[411,1146,499],{"class":433},[411,1148,776],{"class":834},[411,1150,1151],{"class":433},"),\n",[411,1153,1155,1157,1159,1161],{"class":413,"line":1154},45,[411,1156,844],{"class":834},[411,1158,434],{"class":433},[411,1160,868],{"class":834},[411,1162,1163],{"class":433},"(),\n",[411,1165,1167,1169,1171,1173,1175,1177,1179,1181],{"class":413,"line":1166},46,[411,1168,844],{"class":834},[411,1170,434],{"class":433},[411,1172,849],{"class":834},[411,1174,713],{"class":433},[411,1176,882],{"class":834},[411,1178,499],{"class":433},[411,1180,764],{"class":834},[411,1182,1151],{"class":433},[411,1184,1186,1188,1190,1193],{"class":413,"line":1185},47,[411,1187,844],{"class":834},[411,1189,434],{"class":433},[411,1191,1192],{"class":834},"Sigmoid",[411,1194,1163],{"class":433},[411,1196,1198],{"class":413,"line":1197},48,[411,1199,894],{"class":433},[411,1201,1203],{"class":413,"line":1202},49,[411,1204,470],{"emptyLinePlaceholder":469},[411,1206,1208,1210,1212,1214,1216,1218,1221,1223,1225,1227,1229,1231,1234,1236,1238,1240,1242,1244,1246,1248,1250,1252],{"class":413,"line":1207},50,[411,1209,748],{"class":705},[411,1211,908],{"class":907},[411,1213,713],{"class":433},[411,1215,758],{"class":757},[411,1217,499],{"class":433},[411,1219,1220],{"class":763}," track",[411,1222,767],{"class":433},[411,1224,430],{"class":421},[411,1226,434],{"class":433},[411,1228,926],{"class":437},[411,1230,499],{"class":433},[411,1232,1233],{"class":763}," meas",[411,1235,767],{"class":433},[411,1237,430],{"class":421},[411,1239,434],{"class":433},[411,1241,926],{"class":437},[411,1243,788],{"class":433},[411,1245,791],{"class":433},[411,1247,430],{"class":421},[411,1249,434],{"class":433},[411,1251,926],{"class":437},[411,1253,798],{"class":433},[411,1255,1257,1260,1263,1265,1267,1269,1271,1274,1276,1279,1282,1285,1287,1289,1292,1294,1296,1298],{"class":413,"line":1256},51,[411,1258,1259],{"class":421},"        g ",[411,1261,1262],{"class":684},"=",[411,1264,991],{"class":680},[411,1266,434],{"class":433},[411,1268,212],{"class":834},[411,1270,713],{"class":433},[411,1272,1273],{"class":834},"torch",[411,1275,434],{"class":433},[411,1277,1278],{"class":834},"cat",[411,1280,1281],{"class":433},"([",[411,1283,1284],{"class":834},"track",[411,1286,499],{"class":433},[411,1288,1233],{"class":834},[411,1290,1291],{"class":433},"],",[411,1293,764],{"class":1005},[411,1295,1008],{"class":684},[411,1297,1011],{"class":688},[411,1299,1300],{"class":433},"))\n",[411,1302,1304,1306,1308,1310,1312,1314,1317,1320,1323,1325,1328,1330,1333,1336,1338,1340,1342,1344,1346,1348,1350],{"class":413,"line":1303},52,[411,1305,972],{"class":417},[411,1307,975],{"class":421},[411,1309,434],{"class":433},[411,1311,980],{"class":834},[411,1313,713],{"class":433},[411,1315,1316],{"class":834},"g ",[411,1318,1319],{"class":684},"*",[411,1321,1322],{"class":834}," meas ",[411,1324,988],{"class":684},[411,1326,1327],{"class":433}," (",[411,1329,1011],{"class":688},[411,1331,1332],{"class":684}," -",[411,1334,1335],{"class":834}," g",[411,1337,788],{"class":433},[411,1339,1142],{"class":684},[411,1341,1220],{"class":834},[411,1343,499],{"class":433},[411,1345,764],{"class":1005},[411,1347,1008],{"class":684},[411,1349,1011],{"class":688},[411,1351,669],{"class":433},[411,1353,1355],{"class":413,"line":1354},53,[411,1356,470],{"emptyLinePlaceholder":469},[411,1358,1360],{"class":413,"line":1359},54,[411,1361,470],{"emptyLinePlaceholder":469},[411,1363,1365,1368,1371],{"class":413,"line":1364},55,[411,1366,1367],{"class":705},"def",[411,1369,1370],{"class":907}," build_learned_tracker",[411,1372,838],{"class":433},[411,1374,1376,1379],{"class":413,"line":1375},56,[411,1377,1378],{"class":684},"    *",[411,1380,623],{"class":421},[411,1382,1384,1387,1389,1392],{"class":413,"line":1383},57,[411,1385,1386],{"class":763},"    checkpoint",[411,1388,767],{"class":433},[411,1390,1391],{"class":770}," str",[411,1393,623],{"class":433},[411,1395,1397,1400,1402,1404,1406,1409],{"class":413,"line":1396},58,[411,1398,1399],{"class":763},"    cost_threshold",[411,1401,767],{"class":433},[411,1403,936],{"class":770},[411,1405,685],{"class":684},[411,1407,1408],{"class":688}," 0.5",[411,1410,623],{"class":433},[411,1412,1414,1417,1419,1421,1423,1426],{"class":413,"line":1413},59,[411,1415,1416],{"class":763},"    embed_dim",[411,1418,767],{"class":433},[411,1420,771],{"class":770},[411,1422,685],{"class":684},[411,1424,1425],{"class":680}," EMBED_DIM",[411,1427,623],{"class":433},[411,1429,1431,1433,1435,1437,1439,1442],{"class":413,"line":1430},60,[411,1432,788],{"class":433},[411,1434,791],{"class":433},[411,1436,486],{"class":421},[411,1438,434],{"class":433},[411,1440,1441],{"class":437},"Tracker",[411,1443,798],{"class":433},[411,1445,1447,1450,1453,1455,1458,1460],{"class":413,"line":1446},61,[411,1448,1449],{"class":417},"    from",[411,1451,1452],{"class":421}," safetensors",[411,1454,434],{"class":433},[411,1456,1457],{"class":421},"torch ",[411,1459,418],{"class":417},[411,1461,1462],{"class":421}," load_file\n",[411,1464,1466],{"class":413,"line":1465},62,[411,1467,470],{"emptyLinePlaceholder":469},[411,1469,1471,1474,1476,1479,1481,1484,1486],{"class":413,"line":1470},63,[411,1472,1473],{"class":421},"    flat ",[411,1475,1262],{"class":684},[411,1477,1478],{"class":834}," load_file",[411,1480,713],{"class":433},[411,1482,1483],{"class":834},"checkpoint",[411,1485,788],{"class":433},[411,1487,1488],{"class":965},"  # raises if the checkpoint is missing\n",[411,1490,1492,1495,1497,1500,1502,1504,1506,1509,1511,1513,1515,1517],{"class":413,"line":1491},64,[411,1493,1494],{"class":421},"    prop",[411,1496,499],{"class":433},[411,1498,1499],{"class":421}," fuse ",[411,1501,1262],{"class":684},[411,1503,710],{"class":834},[411,1505,713],{"class":433},[411,1507,1508],{"class":834},"embed_dim",[411,1510,861],{"class":433},[411,1512,1031],{"class":834},[411,1514,713],{"class":433},[411,1516,1508],{"class":834},[411,1518,669],{"class":433},[411,1520,1522,1524,1526,1529],{"class":413,"line":1521},65,[411,1523,1494],{"class":421},[411,1525,434],{"class":433},[411,1527,1528],{"class":834},"load_state_dict",[411,1530,838],{"class":433},[411,1532,1534],{"class":413,"line":1533},66,[411,1535,1536],{"class":433},"        {\n",[411,1538,1540,1543,1546,1549,1551,1555,1559,1561,1563,1566],{"class":413,"line":1539},67,[411,1541,1542],{"class":834},"            k",[411,1544,1545],{"class":433},"[",[411,1547,1548],{"class":751},"len",[411,1550,713],{"class":433},[411,1552,1554],{"class":1553},"sjJ54","\"",[411,1556,1558],{"class":1557},"s_sjI","propagator.",[411,1560,1554],{"class":1553},[411,1562,788],{"class":433},[411,1564,1565],{"class":433}," :]:",[411,1567,1568],{"class":834}," v\n",[411,1570,1572,1575,1578,1580,1583,1586,1589,1591,1594],{"class":413,"line":1571},68,[411,1573,1574],{"class":417},"            for",[411,1576,1577],{"class":834}," k",[411,1579,499],{"class":433},[411,1581,1582],{"class":834}," v ",[411,1584,1585],{"class":417},"in",[411,1587,1588],{"class":834}," flat",[411,1590,434],{"class":433},[411,1592,1593],{"class":834},"items",[411,1595,813],{"class":433},[411,1597,1599,1602,1604,1606,1609,1611,1613,1615,1617],{"class":413,"line":1598},69,[411,1600,1601],{"class":417},"            if",[411,1603,1577],{"class":834},[411,1605,434],{"class":433},[411,1607,1608],{"class":834},"startswith",[411,1610,713],{"class":433},[411,1612,1554],{"class":1553},[411,1614,1558],{"class":1557},[411,1616,1554],{"class":1553},[411,1618,669],{"class":433},[411,1620,1622],{"class":413,"line":1621},70,[411,1623,1624],{"class":433},"        }\n",[411,1626,1628],{"class":413,"line":1627},71,[411,1629,1630],{"class":433},"    )\n",[411,1632,1634,1637,1639,1641],{"class":413,"line":1633},72,[411,1635,1636],{"class":421},"    fuse",[411,1638,434],{"class":433},[411,1640,1528],{"class":834},[411,1642,838],{"class":433},[411,1644,1646,1649,1652,1654,1656,1658,1660,1663,1665,1667,1669,1671,1674,1676,1678,1680,1682,1684,1686,1688,1691,1694,1696,1698,1700,1702,1704,1706,1708],{"class":413,"line":1645},73,[411,1647,1648],{"class":433},"        {",[411,1650,1651],{"class":834},"k",[411,1653,1545],{"class":433},[411,1655,1548],{"class":751},[411,1657,713],{"class":433},[411,1659,1554],{"class":1553},[411,1661,1662],{"class":1557},"fuser.",[411,1664,1554],{"class":1553},[411,1666,788],{"class":433},[411,1668,1565],{"class":433},[411,1670,1582],{"class":834},[411,1672,1673],{"class":417},"for",[411,1675,1577],{"class":834},[411,1677,499],{"class":433},[411,1679,1582],{"class":834},[411,1681,1585],{"class":417},[411,1683,1588],{"class":834},[411,1685,434],{"class":433},[411,1687,1593],{"class":834},[411,1689,1690],{"class":433},"()",[411,1692,1693],{"class":417}," if",[411,1695,1577],{"class":834},[411,1697,434],{"class":433},[411,1699,1608],{"class":834},[411,1701,713],{"class":433},[411,1703,1554],{"class":1553},[411,1705,1662],{"class":1557},[411,1707,1554],{"class":1553},[411,1709,1710],{"class":433},")}\n",[411,1712,1714],{"class":413,"line":1713},74,[411,1715,1630],{"class":433},[411,1717,1719,1721,1723,1726],{"class":413,"line":1718},75,[411,1720,1494],{"class":421},[411,1722,434],{"class":433},[411,1724,1725],{"class":834},"eval",[411,1727,813],{"class":433},[411,1729,1731,1733,1735,1737],{"class":413,"line":1730},76,[411,1732,1636],{"class":421},[411,1734,434],{"class":433},[411,1736,1725],{"class":834},[411,1738,813],{"class":433},[411,1740,1742],{"class":413,"line":1741},77,[411,1743,470],{"emptyLinePlaceholder":469},[411,1745,1747,1750,1752,1755],{"class":413,"line":1746},78,[411,1748,1749],{"class":421},"    inner ",[411,1751,1262],{"class":684},[411,1753,1754],{"class":834}," Pipe",[411,1756,838],{"class":433},[411,1758,1760,1763,1765,1768,1770,1772,1775,1777],{"class":413,"line":1759},79,[411,1761,1762],{"class":1005},"        cost",[411,1764,1262],{"class":684},[411,1766,1767],{"class":834},"Cosine",[411,1769,713],{"class":433},[411,1771,1554],{"class":1553},[411,1773,1774],{"class":1557},"embedding",[411,1776,1554],{"class":1553},[411,1778,1151],{"class":433},[411,1780,1782,1785,1787,1790,1792,1795,1797,1800,1802,1805],{"class":413,"line":1781},80,[411,1783,1784],{"class":1005},"        assoc",[411,1786,1262],{"class":684},[411,1788,1789],{"class":834},"Associate",[411,1791,713],{"class":433},[411,1793,1794],{"class":834},"Jonker",[411,1796,713],{"class":433},[411,1798,1799],{"class":1005},"threshold",[411,1801,1262],{"class":684},[411,1803,1804],{"class":834},"cost_threshold",[411,1806,1807],{"class":433},")),\n",[411,1809,1811],{"class":413,"line":1810},81,[411,1812,1630],{"class":433},[411,1814,1816,1819,1821,1823,1825,1827,1829,1832,1834,1836,1839,1841,1843,1846,1848,1851],{"class":413,"line":1815},82,[411,1817,1818],{"class":421},"    pipeline ",[411,1820,1262],{"class":684},[411,1822,592],{"class":834},[411,1824,713],{"class":433},[411,1826,212],{"class":1005},[411,1828,1262],{"class":684},[411,1830,1831],{"class":834},"ClassGate",[411,1833,713],{"class":433},[411,1835,1554],{"class":1553},[411,1837,1838],{"class":1557},"category",[411,1840,1554],{"class":1553},[411,1842,861],{"class":433},[411,1844,1845],{"class":1005}," then",[411,1847,1262],{"class":684},[411,1849,1850],{"class":834},"inner",[411,1852,669],{"class":433},[411,1854,1856,1859,1861,1863,1865],{"class":413,"line":1855},83,[411,1857,1858],{"class":417},"    return",[411,1860,486],{"class":421},[411,1862,434],{"class":433},[411,1864,1441],{"class":834},[411,1866,838],{"class":433},[411,1868,1870,1873,1875,1877],{"class":413,"line":1869},84,[411,1871,1872],{"class":1005},"        root",[411,1874,1262],{"class":684},[411,1876,256],{"class":834},[411,1878,623],{"class":433},[411,1880,1882,1885,1887],{"class":413,"line":1881},85,[411,1883,1884],{"class":1005},"        states",[411,1886,1262],{"class":684},[411,1888,1889],{"class":433},"{\n",[411,1891,1893,1896,1898,1900,1902,1905],{"class":413,"line":1892},86,[411,1894,1895],{"class":1553},"            \"",[411,1897,1774],{"class":1557},[411,1899,1554],{"class":1553},[411,1901,767],{"class":433},[411,1903,1904],{"class":834}," State",[411,1906,838],{"class":433},[411,1908,1910,1913,1915,1918,1920,1923,1925,1927,1929,1932,1935,1937,1939,1941,1944],{"class":413,"line":1909},87,[411,1911,1912],{"class":1005},"                schema",[411,1914,1262],{"class":684},[411,1916,1917],{"class":834},"TensorSpec",[411,1919,713],{"class":433},[411,1921,1922],{"class":1005},"shape",[411,1924,1262],{"class":684},[411,1926,713],{"class":433},[411,1928,1508],{"class":834},[411,1930,1931],{"class":433},",),",[411,1933,1934],{"class":1005}," dtype",[411,1936,1262],{"class":684},[411,1938,1273],{"class":834},[411,1940,434],{"class":433},[411,1942,1943],{"class":437},"float32",[411,1945,1151],{"class":433},[411,1947,1949,1952,1954,1956,1958,1960,1962,1964,1966,1969],{"class":413,"line":1948},88,[411,1950,1951],{"class":1005},"                process",[411,1953,1262],{"class":684},[411,1955,368],{"class":834},[411,1957,713],{"class":433},[411,1959,1554],{"class":1553},[411,1961,1774],{"class":1557},[411,1963,1554],{"class":1553},[411,1965,499],{"class":433},[411,1967,1968],{"class":834}," prop",[411,1970,1151],{"class":433},[411,1972,1974,1977,1979,1981,1983,1985,1987,1989,1991,1994,1996,1998,2000,2003],{"class":413,"line":1973},89,[411,1975,1976],{"class":1005},"                observation",[411,1978,1262],{"class":684},[411,1980,372],{"class":834},[411,1982,713],{"class":433},[411,1984,1554],{"class":1553},[411,1986,1774],{"class":1557},[411,1988,1554],{"class":1553},[411,1990,499],{"class":433},[411,1992,1993],{"class":1553}," \"",[411,1995,1774],{"class":1557},[411,1997,1554],{"class":1553},[411,1999,499],{"class":433},[411,2001,2002],{"class":834}," fuse",[411,2004,1151],{"class":433},[411,2006,2008,2011,2013,2016,2018,2020,2022,2024],{"class":413,"line":2007},90,[411,2009,2010],{"class":1005},"                init",[411,2012,1262],{"class":684},[411,2014,2015],{"class":834},"FromDetectionField",[411,2017,713],{"class":433},[411,2019,1554],{"class":1553},[411,2021,1774],{"class":1557},[411,2023,1554],{"class":1553},[411,2025,1151],{"class":433},[411,2027,2029],{"class":413,"line":2028},91,[411,2030,2031],{"class":433},"            ),\n",[411,2033,2035,2037,2039,2041,2043,2045],{"class":413,"line":2034},92,[411,2036,1895],{"class":1553},[411,2038,1838],{"class":1557},[411,2040,1554],{"class":1553},[411,2042,767],{"class":433},[411,2044,1904],{"class":834},[411,2046,838],{"class":433},[411,2048,2050,2052,2054,2056,2058,2060,2062,2064,2066,2068,2070,2072,2075],{"class":413,"line":2049},93,[411,2051,1912],{"class":1005},[411,2053,1262],{"class":684},[411,2055,1917],{"class":834},[411,2057,713],{"class":433},[411,2059,1922],{"class":1005},[411,2061,1262],{"class":684},[411,2063,871],{"class":433},[411,2065,1934],{"class":1005},[411,2067,1262],{"class":684},[411,2069,1273],{"class":834},[411,2071,434],{"class":433},[411,2073,2074],{"class":437},"int64",[411,2076,1151],{"class":433},[411,2078,2080,2082,2084,2087,2089,2091,2093,2095],{"class":413,"line":2079},94,[411,2081,1951],{"class":1005},[411,2083,1262],{"class":684},[411,2085,2086],{"class":834},"Identity",[411,2088,713],{"class":433},[411,2090,1554],{"class":1553},[411,2092,1838],{"class":1557},[411,2094,1554],{"class":1553},[411,2096,1151],{"class":433},[411,2098,2100,2102,2104,2107,2109,2111,2113,2115],{"class":413,"line":2099},95,[411,2101,1976],{"class":1005},[411,2103,1262],{"class":684},[411,2105,2106],{"class":834},"Replace",[411,2108,713],{"class":433},[411,2110,1554],{"class":1553},[411,2112,1838],{"class":1557},[411,2114,1554],{"class":1553},[411,2116,1151],{"class":433},[411,2118,2120,2122,2124,2126,2128,2130,2132,2134],{"class":413,"line":2119},96,[411,2121,2010],{"class":1005},[411,2123,1262],{"class":684},[411,2125,2015],{"class":834},[411,2127,713],{"class":433},[411,2129,1554],{"class":1553},[411,2131,1838],{"class":1557},[411,2133,1554],{"class":1553},[411,2135,1151],{"class":433},[411,2137,2139],{"class":413,"line":2138},97,[411,2140,2031],{"class":433},[411,2142,2144],{"class":413,"line":2143},98,[411,2145,2146],{"class":433},"        },\n",[411,2148,2150,2153,2155,2158],{"class":413,"line":2149},99,[411,2151,2152],{"class":1005},"        lifecycle",[411,2154,1262],{"class":684},[411,2156,2157],{"class":834},"NoLifecycle",[411,2159,1163],{"class":433},[411,2161,2163,2166,2168,2171],{"class":413,"line":2162},100,[411,2164,2165],{"class":1005},"        visibility",[411,2167,1262],{"class":684},[411,2169,2170],{"class":834},"IncludeAll",[411,2172,1163],{"class":433},[411,2174,2176],{"class":413,"line":2175},101,[411,2177,1630],{"class":433},[338,2179,2180,2181,2184,2185,2187,2188,434],{},"The packaged factory (",[366,2182,2183],{},"unitrack.benchmarks.hota.tracker.build_learned_tracker",")\ndefaults ",[366,2186,1483],{}," to the committed\n",[366,2189,2190],{},"benchmarks\u002Fhota\u002Fweights\u002Flearned_filter.safetensors",[338,2192,2193,2194,2196,2197,2199,2202,2203,2205,2206,434],{},"Detection requirements: identical to ",[366,2195,376],{}," — an ",[366,2198,1774],{},[366,2200,2201],{},"(M, embed_dim)"," per instance and an int64 ",[366,2204,1838],{}," ",[366,2207,2208],{},"(M,)",[2210,2211,2212],"style",{},"html pre.shiki code .sVHd0, html code.shiki .sVHd0{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#D73A49;--shiki-default-font-style:inherit;--shiki-dark:#F97583;--shiki-dark-font-style:inherit}html pre.shiki code .su5hD, html code.shiki .su5hD{--shiki-light:#90A4AE;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sP7_E, html code.shiki .sP7_E{--shiki-light:#39ADB5;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .skxfh, html code.shiki .skxfh{--shiki-light:#E53935;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .s_hVV, html code.shiki .s_hVV{--shiki-light:#90A4AE;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .smGrS, html code.shiki .smGrS{--shiki-light:#39ADB5;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .srdBf, html code.shiki .srdBf{--shiki-light:#F76D47;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sbsja, html code.shiki .sbsja{--shiki-light:#9C3EDA;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sbgvK, html code.shiki .sbgvK{--shiki-light:#E2931D;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .s2W-s, html code.shiki .s2W-s{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#032F62;--shiki-default-font-style:inherit;--shiki-dark:#9ECBFF;--shiki-dark-font-style:inherit}html pre.shiki code .sithA, html code.shiki .sithA{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#032F62;--shiki-default-font-style:inherit;--shiki-dark:#9ECBFF;--shiki-dark-font-style:inherit}html pre.shiki code .sptTA, html code.shiki .sptTA{--shiki-light:#6182B8;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .smCYv, html code.shiki .smCYv{--shiki-light:#E53935;--shiki-light-font-style:italic;--shiki-default:#24292E;--shiki-default-font-style:inherit;--shiki-dark:#E1E4E8;--shiki-dark-font-style:inherit}html pre.shiki code .sFwrP, html code.shiki .sFwrP{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#24292E;--shiki-default-font-style:inherit;--shiki-dark:#E1E4E8;--shiki-dark-font-style:inherit}html pre.shiki code .sZMiF, html code.shiki .sZMiF{--shiki-light:#E2931D;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .s39Yj, html code.shiki .s39Yj{--shiki-light:#39ADB5;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .slqww, html code.shiki .slqww{--shiki-light:#6182B8;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sGLFI, html code.shiki .sGLFI{--shiki-light:#6182B8;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sutJx, html code.shiki .sutJx{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#6A737D;--shiki-default-font-style:inherit;--shiki-dark:#6A737D;--shiki-dark-font-style:inherit}html pre.shiki code .s99_P, html code.shiki .s99_P{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#E36209;--shiki-default-font-style:inherit;--shiki-dark:#FFAB70;--shiki-dark-font-style:inherit}html pre.shiki code .sjJ54, html code.shiki .sjJ54{--shiki-light:#39ADB5;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .s_sjI, html code.shiki .s_sjI{--shiki-light:#91B859;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":407,"searchDepth":452,"depth":452,"links":2214},[],"The learned tracker is the cosine appearance tracker with its closed-form\nembedding filter replaced by two small learned modules, in the spirit of\nMOTR's query-propagation filter:","md",{},{"title":26,"description":2215},"CmZGxyZArY0hDPbDn24UbKUiBef6H5u2uh1i1YsbkmY",{},1785139889167]