[{"data":1,"prerenderedAt":1278},["ShallowReactive",2],{"navigation":3,"api-navigation":126,"\u002Frecipes\u002Foverlap_tracker":328,"docyard:crossref-index":1277},[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":30,"body":330,"description":1272,"extension":1273,"meta":1274,"navigation":550,"path":31,"seo":1275,"stem":32,"__hash__":1276},"content\u002F2.recipes\u002Foverlap_tracker.md",{"type":331,"value":332,"toc":1270},"minimark",[333,343,351,1266],[334,335,337,338,342],"h1",{"id":336},"recipe-overlap-iou-tracker-port-of-1x-modelsoverlap","Recipe: overlap-IoU tracker (port of 1.x ",[339,340,341],"code",{},"models.overlap",")",[344,345,346,347,350],"p",{},"The 1.x ",[339,348,349],{},"unitrack.models.build_overlap_tracker"," is a single-stage class +\nscore-gated IoU matcher. The 2.0 port is a short recipe:",[352,353,358],"pre",{"className":354,"code":355,"language":356,"meta":357,"style":357},"language-python shiki shiki-themes material-theme-lighter github-light github-dark","import torch\nimport unitrack\nfrom unitrack.assignment import Associate, Jonker\nfrom unitrack.costs import BoxCIoU\nfrom unitrack.data import TensorSpec\nfrom unitrack.gates import ClassGate, ScoreGate\nfrom unitrack.lifecycle import IncludeAll, NoLifecycle\nfrom unitrack.pipeline import Gated, Pipe, Sequential\nfrom unitrack.states import FromDetectionField, Identity, Replace, State\n\n\ndef build_overlap_tracker(\n    *,\n    threshold: float = 0.5,\n    min_score: float = 0.1,\n    class_gate: bool = True,\n) -> unitrack.Tracker:\n    cost = BoxCIoU(\"bbox\")\n    inner = Pipe(cost=cost, assoc=Associate(Jonker(threshold=threshold)))\n    gates = [ScoreGate(\"score\", threshold=min_score)]\n    if class_gate:\n        gates.insert(0, ClassGate(\"klass\"))\n    pipeline = Gated(gate=Sequential(gates), then=inner)\n    return unitrack.Tracker(\n        root=pipeline,\n        states={\n            \"bbox\": State(\n                schema=TensorSpec(shape=(4,), dtype=torch.float32),\n                process=Identity(\"bbox\"),\n                observation=Replace(\"bbox\"),\n                init=FromDetectionField(\"bbox\"),\n            ),\n            \"score\": State(\n                schema=TensorSpec(shape=(), dtype=torch.float32),\n                process=Identity(\"score\"),\n                observation=Replace(\"score\"),\n                init=FromDetectionField(\"score\"),\n            ),\n            \"klass\": State(\n                schema=TensorSpec(shape=(), dtype=torch.int64),\n                process=Identity(\"klass\"),\n                observation=Replace(\"klass\"),\n                init=FromDetectionField(\"klass\"),\n            ),\n        },\n        lifecycle=NoLifecycle(),\n        visibility=IncludeAll(),\n    )\n","python","",[339,359,360,373,381,408,425,442,464,486,513,545,552,557,571,581,604,621,640,659,687,733,769,780,812,848,862,874,885,902,944,965,986,1007,1013,1028,1058,1077,1096,1115,1120,1135,1165,1184,1203,1222,1227,1233,1247,1260],{"__ignoreMap":357},[361,362,365,369],"span",{"class":363,"line":364},"line",1,[361,366,368],{"class":367},"sVHd0","import",[361,370,372],{"class":371},"su5hD"," torch\n",[361,374,376,378],{"class":363,"line":375},2,[361,377,368],{"class":367},[361,379,380],{"class":371}," unitrack\n",[361,382,384,387,390,394,397,399,402,405],{"class":363,"line":383},3,[361,385,386],{"class":367},"from",[361,388,389],{"class":371}," unitrack",[361,391,393],{"class":392},"sP7_E",".",[361,395,396],{"class":371},"assignment ",[361,398,368],{"class":367},[361,400,401],{"class":371}," Associate",[361,403,404],{"class":392},",",[361,406,407],{"class":371}," Jonker\n",[361,409,411,413,415,417,420,422],{"class":363,"line":410},4,[361,412,386],{"class":367},[361,414,389],{"class":371},[361,416,393],{"class":392},[361,418,419],{"class":371},"costs ",[361,421,368],{"class":367},[361,423,424],{"class":371}," BoxCIoU\n",[361,426,428,430,432,434,437,439],{"class":363,"line":427},5,[361,429,386],{"class":367},[361,431,389],{"class":371},[361,433,393],{"class":392},[361,435,436],{"class":371},"data ",[361,438,368],{"class":367},[361,440,441],{"class":371}," TensorSpec\n",[361,443,445,447,449,451,454,456,459,461],{"class":363,"line":444},6,[361,446,386],{"class":367},[361,448,389],{"class":371},[361,450,393],{"class":392},[361,452,453],{"class":371},"gates ",[361,455,368],{"class":367},[361,457,458],{"class":371}," ClassGate",[361,460,404],{"class":392},[361,462,463],{"class":371}," ScoreGate\n",[361,465,467,469,471,473,476,478,481,483],{"class":363,"line":466},7,[361,468,386],{"class":367},[361,470,389],{"class":371},[361,472,393],{"class":392},[361,474,475],{"class":371},"lifecycle ",[361,477,368],{"class":367},[361,479,480],{"class":371}," IncludeAll",[361,482,404],{"class":392},[361,484,485],{"class":371}," NoLifecycle\n",[361,487,489,491,493,495,498,500,503,505,508,510],{"class":363,"line":488},8,[361,490,386],{"class":367},[361,492,389],{"class":371},[361,494,393],{"class":392},[361,496,497],{"class":371},"pipeline ",[361,499,368],{"class":367},[361,501,502],{"class":371}," Gated",[361,504,404],{"class":392},[361,506,507],{"class":371}," Pipe",[361,509,404],{"class":392},[361,511,512],{"class":371}," Sequential\n",[361,514,516,518,520,522,525,527,530,532,535,537,540,542],{"class":363,"line":515},9,[361,517,386],{"class":367},[361,519,389],{"class":371},[361,521,393],{"class":392},[361,523,524],{"class":371},"states ",[361,526,368],{"class":367},[361,528,529],{"class":371}," FromDetectionField",[361,531,404],{"class":392},[361,533,534],{"class":371}," Identity",[361,536,404],{"class":392},[361,538,539],{"class":371}," Replace",[361,541,404],{"class":392},[361,543,544],{"class":371}," State\n",[361,546,548],{"class":363,"line":547},10,[361,549,551],{"emptyLinePlaceholder":550},true,"\n",[361,553,555],{"class":363,"line":554},11,[361,556,551],{"emptyLinePlaceholder":550},[361,558,560,564,568],{"class":363,"line":559},12,[361,561,563],{"class":562},"sbsja","def",[361,565,567],{"class":566},"sGLFI"," build_overlap_tracker",[361,569,570],{"class":392},"(\n",[361,572,574,578],{"class":363,"line":573},13,[361,575,577],{"class":576},"smGrS","    *",[361,579,580],{"class":371},",\n",[361,582,584,588,591,595,598,602],{"class":363,"line":583},14,[361,585,587],{"class":586},"sFwrP","    threshold",[361,589,590],{"class":392},":",[361,592,594],{"class":593},"sZMiF"," float",[361,596,597],{"class":576}," =",[361,599,601],{"class":600},"srdBf"," 0.5",[361,603,580],{"class":392},[361,605,607,610,612,614,616,619],{"class":363,"line":606},15,[361,608,609],{"class":586},"    min_score",[361,611,590],{"class":392},[361,613,594],{"class":593},[361,615,597],{"class":576},[361,617,618],{"class":600}," 0.1",[361,620,580],{"class":392},[361,622,624,627,629,632,634,638],{"class":363,"line":623},16,[361,625,626],{"class":586},"    class_gate",[361,628,590],{"class":392},[361,630,631],{"class":593}," bool",[361,633,597],{"class":576},[361,635,637],{"class":636},"s39Yj"," True",[361,639,580],{"class":392},[361,641,643,645,648,650,652,656],{"class":363,"line":642},17,[361,644,342],{"class":392},[361,646,647],{"class":392}," ->",[361,649,389],{"class":371},[361,651,393],{"class":392},[361,653,655],{"class":654},"skxfh","Tracker",[361,657,658],{"class":392},":\n",[361,660,662,665,668,672,675,679,682,684],{"class":363,"line":661},18,[361,663,664],{"class":371},"    cost ",[361,666,667],{"class":576},"=",[361,669,671],{"class":670},"slqww"," BoxCIoU",[361,673,674],{"class":392},"(",[361,676,678],{"class":677},"sjJ54","\"",[361,680,291],{"class":681},"s_sjI",[361,683,678],{"class":677},[361,685,686],{"class":392},")\n",[361,688,690,693,695,697,699,702,704,706,708,711,713,716,718,721,723,726,728,730],{"class":363,"line":689},19,[361,691,692],{"class":371},"    inner ",[361,694,667],{"class":576},[361,696,507],{"class":670},[361,698,674],{"class":392},[361,700,203],{"class":701},"s99_P",[361,703,667],{"class":576},[361,705,203],{"class":670},[361,707,404],{"class":392},[361,709,710],{"class":701}," assoc",[361,712,667],{"class":576},[361,714,715],{"class":670},"Associate",[361,717,674],{"class":392},[361,719,720],{"class":670},"Jonker",[361,722,674],{"class":392},[361,724,725],{"class":701},"threshold",[361,727,667],{"class":576},[361,729,725],{"class":670},[361,731,732],{"class":392},")))\n",[361,734,736,739,741,744,747,749,751,754,756,758,761,763,766],{"class":363,"line":735},20,[361,737,738],{"class":371},"    gates ",[361,740,667],{"class":576},[361,742,743],{"class":392}," [",[361,745,746],{"class":670},"ScoreGate",[361,748,674],{"class":392},[361,750,678],{"class":677},[361,752,753],{"class":681},"score",[361,755,678],{"class":677},[361,757,404],{"class":392},[361,759,760],{"class":701}," threshold",[361,762,667],{"class":576},[361,764,765],{"class":670},"min_score",[361,767,768],{"class":392},")]\n",[361,770,772,775,778],{"class":363,"line":771},21,[361,773,774],{"class":367},"    if",[361,776,777],{"class":371}," class_gate",[361,779,658],{"class":392},[361,781,783,786,788,791,793,796,798,800,802,804,807,809],{"class":363,"line":782},22,[361,784,785],{"class":371},"        gates",[361,787,393],{"class":392},[361,789,790],{"class":670},"insert",[361,792,674],{"class":392},[361,794,795],{"class":600},"0",[361,797,404],{"class":392},[361,799,458],{"class":670},[361,801,674],{"class":392},[361,803,678],{"class":677},[361,805,806],{"class":681},"klass",[361,808,678],{"class":677},[361,810,811],{"class":392},"))\n",[361,813,815,818,820,822,824,826,828,831,833,835,838,841,843,846],{"class":363,"line":814},23,[361,816,817],{"class":371},"    pipeline ",[361,819,667],{"class":576},[361,821,502],{"class":670},[361,823,674],{"class":392},[361,825,212],{"class":701},[361,827,667],{"class":576},[361,829,830],{"class":670},"Sequential",[361,832,674],{"class":392},[361,834,224],{"class":670},[361,836,837],{"class":392},"),",[361,839,840],{"class":701}," then",[361,842,667],{"class":576},[361,844,845],{"class":670},"inner",[361,847,686],{"class":392},[361,849,851,854,856,858,860],{"class":363,"line":850},24,[361,852,853],{"class":367},"    return",[361,855,389],{"class":371},[361,857,393],{"class":392},[361,859,655],{"class":670},[361,861,570],{"class":392},[361,863,865,868,870,872],{"class":363,"line":864},25,[361,866,867],{"class":701},"        root",[361,869,667],{"class":576},[361,871,256],{"class":670},[361,873,580],{"class":392},[361,875,877,880,882],{"class":363,"line":876},26,[361,878,879],{"class":701},"        states",[361,881,667],{"class":576},[361,883,884],{"class":392},"{\n",[361,886,888,891,893,895,897,900],{"class":363,"line":887},27,[361,889,890],{"class":677},"            \"",[361,892,291],{"class":681},[361,894,678],{"class":677},[361,896,590],{"class":392},[361,898,899],{"class":670}," State",[361,901,570],{"class":392},[361,903,905,908,910,913,915,918,920,922,925,928,931,933,936,938,941],{"class":363,"line":904},28,[361,906,907],{"class":701},"                schema",[361,909,667],{"class":576},[361,911,912],{"class":670},"TensorSpec",[361,914,674],{"class":392},[361,916,917],{"class":701},"shape",[361,919,667],{"class":576},[361,921,674],{"class":392},[361,923,924],{"class":600},"4",[361,926,927],{"class":392},",),",[361,929,930],{"class":701}," dtype",[361,932,667],{"class":576},[361,934,935],{"class":670},"torch",[361,937,393],{"class":392},[361,939,940],{"class":654},"float32",[361,942,943],{"class":392},"),\n",[361,945,947,950,952,955,957,959,961,963],{"class":363,"line":946},29,[361,948,949],{"class":701},"                process",[361,951,667],{"class":576},[361,953,954],{"class":670},"Identity",[361,956,674],{"class":392},[361,958,678],{"class":677},[361,960,291],{"class":681},[361,962,678],{"class":677},[361,964,943],{"class":392},[361,966,968,971,973,976,978,980,982,984],{"class":363,"line":967},30,[361,969,970],{"class":701},"                observation",[361,972,667],{"class":576},[361,974,975],{"class":670},"Replace",[361,977,674],{"class":392},[361,979,678],{"class":677},[361,981,291],{"class":681},[361,983,678],{"class":677},[361,985,943],{"class":392},[361,987,989,992,994,997,999,1001,1003,1005],{"class":363,"line":988},31,[361,990,991],{"class":701},"                init",[361,993,667],{"class":576},[361,995,996],{"class":670},"FromDetectionField",[361,998,674],{"class":392},[361,1000,678],{"class":677},[361,1002,291],{"class":681},[361,1004,678],{"class":677},[361,1006,943],{"class":392},[361,1008,1010],{"class":363,"line":1009},32,[361,1011,1012],{"class":392},"            ),\n",[361,1014,1016,1018,1020,1022,1024,1026],{"class":363,"line":1015},33,[361,1017,890],{"class":677},[361,1019,753],{"class":681},[361,1021,678],{"class":677},[361,1023,590],{"class":392},[361,1025,899],{"class":670},[361,1027,570],{"class":392},[361,1029,1031,1033,1035,1037,1039,1041,1043,1046,1048,1050,1052,1054,1056],{"class":363,"line":1030},34,[361,1032,907],{"class":701},[361,1034,667],{"class":576},[361,1036,912],{"class":670},[361,1038,674],{"class":392},[361,1040,917],{"class":701},[361,1042,667],{"class":576},[361,1044,1045],{"class":392},"(),",[361,1047,930],{"class":701},[361,1049,667],{"class":576},[361,1051,935],{"class":670},[361,1053,393],{"class":392},[361,1055,940],{"class":654},[361,1057,943],{"class":392},[361,1059,1061,1063,1065,1067,1069,1071,1073,1075],{"class":363,"line":1060},35,[361,1062,949],{"class":701},[361,1064,667],{"class":576},[361,1066,954],{"class":670},[361,1068,674],{"class":392},[361,1070,678],{"class":677},[361,1072,753],{"class":681},[361,1074,678],{"class":677},[361,1076,943],{"class":392},[361,1078,1080,1082,1084,1086,1088,1090,1092,1094],{"class":363,"line":1079},36,[361,1081,970],{"class":701},[361,1083,667],{"class":576},[361,1085,975],{"class":670},[361,1087,674],{"class":392},[361,1089,678],{"class":677},[361,1091,753],{"class":681},[361,1093,678],{"class":677},[361,1095,943],{"class":392},[361,1097,1099,1101,1103,1105,1107,1109,1111,1113],{"class":363,"line":1098},37,[361,1100,991],{"class":701},[361,1102,667],{"class":576},[361,1104,996],{"class":670},[361,1106,674],{"class":392},[361,1108,678],{"class":677},[361,1110,753],{"class":681},[361,1112,678],{"class":677},[361,1114,943],{"class":392},[361,1116,1118],{"class":363,"line":1117},38,[361,1119,1012],{"class":392},[361,1121,1123,1125,1127,1129,1131,1133],{"class":363,"line":1122},39,[361,1124,890],{"class":677},[361,1126,806],{"class":681},[361,1128,678],{"class":677},[361,1130,590],{"class":392},[361,1132,899],{"class":670},[361,1134,570],{"class":392},[361,1136,1138,1140,1142,1144,1146,1148,1150,1152,1154,1156,1158,1160,1163],{"class":363,"line":1137},40,[361,1139,907],{"class":701},[361,1141,667],{"class":576},[361,1143,912],{"class":670},[361,1145,674],{"class":392},[361,1147,917],{"class":701},[361,1149,667],{"class":576},[361,1151,1045],{"class":392},[361,1153,930],{"class":701},[361,1155,667],{"class":576},[361,1157,935],{"class":670},[361,1159,393],{"class":392},[361,1161,1162],{"class":654},"int64",[361,1164,943],{"class":392},[361,1166,1168,1170,1172,1174,1176,1178,1180,1182],{"class":363,"line":1167},41,[361,1169,949],{"class":701},[361,1171,667],{"class":576},[361,1173,954],{"class":670},[361,1175,674],{"class":392},[361,1177,678],{"class":677},[361,1179,806],{"class":681},[361,1181,678],{"class":677},[361,1183,943],{"class":392},[361,1185,1187,1189,1191,1193,1195,1197,1199,1201],{"class":363,"line":1186},42,[361,1188,970],{"class":701},[361,1190,667],{"class":576},[361,1192,975],{"class":670},[361,1194,674],{"class":392},[361,1196,678],{"class":677},[361,1198,806],{"class":681},[361,1200,678],{"class":677},[361,1202,943],{"class":392},[361,1204,1206,1208,1210,1212,1214,1216,1218,1220],{"class":363,"line":1205},43,[361,1207,991],{"class":701},[361,1209,667],{"class":576},[361,1211,996],{"class":670},[361,1213,674],{"class":392},[361,1215,678],{"class":677},[361,1217,806],{"class":681},[361,1219,678],{"class":677},[361,1221,943],{"class":392},[361,1223,1225],{"class":363,"line":1224},44,[361,1226,1012],{"class":392},[361,1228,1230],{"class":363,"line":1229},45,[361,1231,1232],{"class":392},"        },\n",[361,1234,1236,1239,1241,1244],{"class":363,"line":1235},46,[361,1237,1238],{"class":701},"        lifecycle",[361,1240,667],{"class":576},[361,1242,1243],{"class":670},"NoLifecycle",[361,1245,1246],{"class":392},"(),\n",[361,1248,1250,1253,1255,1258],{"class":363,"line":1249},47,[361,1251,1252],{"class":701},"        visibility",[361,1254,667],{"class":576},[361,1256,1257],{"class":670},"IncludeAll",[361,1259,1246],{"class":392},[361,1261,1263],{"class":363,"line":1262},48,[361,1264,1265],{"class":392},"    )\n",[1267,1268,1269],"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 .sbsja, html code.shiki .sbsja{--shiki-light:#9C3EDA;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sGLFI, html code.shiki .sGLFI{--shiki-light:#6182B8;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .smGrS, html code.shiki .smGrS{--shiki-light:#39ADB5;--shiki-default:#D73A49;--shiki-dark:#F97583}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 .srdBf, html code.shiki .srdBf{--shiki-light:#F76D47;--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 .skxfh, html code.shiki .skxfh{--shiki-light:#E53935;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .slqww, html code.shiki .slqww{--shiki-light:#6182B8;--shiki-default:#24292E;--shiki-dark:#E1E4E8}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 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 .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":357,"searchDepth":383,"depth":383,"links":1271},[],"The 1.x unitrack.models.build_overlap_tracker is a single-stage class +\nscore-gated IoU matcher. The 2.0 port is a short recipe:","md",{},{"title":30,"description":1272},"Am7ISf6l_8xk_PxCE5IljU1ujsBAlG-RqTcpRPsLcAo",{},1785139889299]