Sledování a detekce objektů pro robotiku V robotice je detekce objektů momentka: "v tomto rámci je lahev v (x, y)." Sledování objektů je těžší, více operační věc: "tohle je stejná láhev jako předtím, pohybovala se takhle a pořád tam je, i když ji nevidím 200 ms." Představte si mobilní manipulátor u kuchyňské linky. Na papíře je úkol jednoduchý: vezměte modrou láhev z přeplněného stolu, zatímco se někdo pohybuje poblíž. Robot má kameru (možná i hloubku). Spustí detektor objektů a získá ohraničující box označený "lahev" s hodnotou jistoty. To zní jako vnímání. Ještě není. Na snímku 1 detektor láhev vidí. Na snímku 2 ruka osoby částečně zakryje záběr, sebevědomí klesne a rámeček zmizí. Na snímku 3 se láhev znovu objeví, ale detektor mírně posune krabici. Z pohledu plánovače láhev zmizela a teleportovala se. V clutteru také vznikají duplikáty: detektor může vytvořit dvě věrohodné "lahve" krabice pro stejný objekt. Pokud robot reaguje přímo na detekci jednotlivých snímků, vidíme klasické chování selhání: ➤ váhá, protože cíl "chybí" každých pár snímků, ➤ neustále přeplánovává, protože pozice cíle se třese, ➤ když se objeví dva podobné předměty, natahuje se k nesprávnému objektu, ➤ Nemůže spolehlivě vynutit pravidlo "nesrážet se s osobou", protože i její krabice bliká. Proto vnímání robotiky málokdy končí u detekce. Potřebuje trvalost objektu: schopnost říct "tohle je pořád stejná láhev, i když ji na chvíli ztratím z dohledu." Sledování je to, co proměňuje odhady snímek po snímku ve stabilní model světa. Typickým přístupem je "tracking-by-detection": detektor stále spouštěte každý snímek, ale detekci připojujete k trvalým stopám (ID) v průběhu času pomocí predikce + asociace. Konkrétně tracker dělá tři věci: ➤ Předpovídat "kde by teď měla být láhev?" ➤ Asociovat "která detekce patří ke které stopě?" ➤ Udržovat identitu při změnách ...