IP Library › Granted Patent US 12,749,313
Granted Patent B1
US 12,749,313 · App. 18/614,385 · Granted Sep 29, 2026

Sparse agent re-identification

Inventors: Chris Broaddus (Sammamish, WA); Nikhil Chacko (Bothell, WA); Leonid Pishchulin (Seattle, WA); Robert Crandall (Lake Forest Park, WA); Xiaoqing Ge (Mercer Island, WA)
Assignee: Amazon Technologies, Inc.
G06V20/52G06Q30/04G06V40/10G06V40/20
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,749,313
App. No.
18/614,385
Granted
Sep 29, 2026
Kind
B1
Abstract

Disclosed are systems and methods for tracking and re-identification of agents through sparce and disparate event areas (entry, exit, inventory locations, etc.) within a materials handling facility that includes untracked areas. With the disclosed implementations, only certain areas of a materials handling facility need cameras while other areas may be devoid of cameras. With the disclosed implementations, re-identification of an agent may only occur when the agent enters an authentication event area, such as an exit event area and/or performs a defined action, such as an item pick from an inventory location or an item place to an inventory location. In other instances, while an agent may be tracked while the agent is located within an event area, the tracklet generated for that agent while in that event area may remain unlinked or otherwise disconnected from any other tracklet until re-identification of the agent is performed (e.g., when the agent exits the materials handling facility).

Claims (97)

1 . A computer-implemented method, comprising:

detecting a first agent in a first event area of a plurality of event areas within a materials handling facility, wherein:

the materials handling facility includes the plurality of event areas and at least one untracked area that separates each of the plurality of event areas; and

each event area of the plurality of event areas includes one or more cameras;

generating, based at least in part on first image data from at least a first camera of the first event area, a first sub-session tracklet indicative of the first agent while the first agent is in the first event area;

including the first sub-session tracklet in an unlinked sub-session tracklet list that indicates a plurality of tracklets indicative of agents detected within the materials handling facility;

detecting a second agent in a second event area of the plurality of event areas within the materials handling facility;

generating, based at least in part on second image data from at least a second camera of the second event area, a second sub-session tracklet indicative of the second agent while the second agent is in the second event area;

including the second sub-session tracklet in the unlinked sub-session tracklet list;

detecting a third agent in a third event area of the materials handling facility that corresponds to an exit of the materials handling facility;

generating, based at least in part on third image data from at least a third camera of the third event area, an exit tracklet indicative of the third agent while the third agent is in the third event area;

defining a plurality of nodes of a node graph based at least in part on the first sub-session tracklet, the second sub-session tracklet, and the exit tracklet;

determining, based at least in part on the nodes of the node graph, an edge of the node graph linking a first node representative of the first sub-session tracklet and a second node representative of the exit tracklet; and

associating the first sub-session tracklet and the exit tracklet with a first agent session of the first agent.

2 . The computer-implemented method of claim 1 , further comprising:

determining, based at least in part on the nodes of the node graph, that a second edge does not exist between a third node representative of the second sub-session tracklet and the second node and that the second sub-session tracklet does not correspond to the first agent.

3 . The computer-implemented method of claim 1 , further comprising:

determining that an action of an item pick of an item is associated with the first sub-session tracklet;

updating an agent account of the first agent to include an item identifier of the item; and

charging the first agent a fee for the item.

4 . The computer-implemented method of claim 1 , further comprising:

comparing the exit tracklet with each of a plurality of entry tracklets to determine an entry tracklet of the plurality of entry tracklets that corresponds to the first agent, each of the plurality of entry tracklets indicative of an agent while the agent is within an entry event area of the materials handling facility;

determining, based at least in part on the entry tracklet, an entry time during which the first agent was in the entry event area of the materials handling facility;

determining, based at least in part on the exit tracklet, an exit time at which the first agent was within the third event area of the materials handling facility; and

defining the plurality of nodes of the node graph as nodes of unlinked sub-session tracklets corresponding to a period of time between the entry time and the exit time.

5 . A system, comprising:

one or more processors; and

a memory storing program instructions that, when executed by the one or more processors, cause the one or more processors to at least:

determine that an agent at a first event area of a plurality of event areas within a materials handling facility is to be identified, wherein:

the materials handling facility includes the plurality of event areas and at least one untracked area that separates each of the plurality of event areas; and

each event area of the plurality of event areas includes one or more cameras;

define a node graph that includes a plurality of nodes, each node of the plurality of nodes representative of a plurality of unlinked sub-session tracklets, wherein each sub-session tracklet includes at least a feature embedding representative of the agent and generated based on one or more images of the agent generated while the agent is in an event area of the plurality of event areas;

define an edge between a first node of the node graph corresponding to a first sub-session tracklet of the first event area and a second node of the node graph corresponding to a second sub-session tracklet of a second event area; and

associate the first sub-session tracklet with the second sub-session tracklet as corresponding to the agent.

6 . The system of claim 5 , wherein:

the first event area is an exit event area; and

the program instructions that, when executed by the one or more processors, further cause the one or more processors to at least:

determine an entry time corresponding to the first sub-session tracklet;

determine an exit time corresponding to the second sub-session tracklet;

determine a plurality of candidate sub-session tracklets that were each generated between the entry time and the exit time, each candidate sub-session tracklet of the plurality of candidate sub-session tracklets indicative of an agent positioned within one of the plurality of event areas; and

define nodes of the node graph for each of the plurality of candidate sub-session tracklets.

7 . The system of claim 5 , wherein the program instructions that, when executed by the one or more processors, further cause the one or more processors to at least:

determine that an action of an item pick of an item from an inventory location is associated with the second sub-session tracklet; and

associate an item identifier of the item with the agent.

8 . The system of claim 5 , wherein the program instructions that define the edge, further include program instructions that, when executed by the one or more processors, further cause the one or more processors to at least:

define the edge based on one or more of:

a duration of time between a first time corresponding to the first node and a second time corresponding to the second node;

a spatial distance between a first position corresponding to the first node and a second position corresponding to the second node; or

a feature distance between a first feature embedding corresponding to the first node and a second feature embedding corresponding to the second node.

9 . The system of claim 5 , wherein:

the second event area is an inventory area; and

wherein the program instructions that, when executed by the one or more processors, further cause the one or more processors to at least:

determine that an item pick of an item from an inventory location within the second event area has been performed by the agent;

associate an item identifier of the item with the second sub-session tracklet; and

in response to defining the edge between the first node and the second node:

generate an agent session for the agent; and

associate at least one of the item identifier, the first sub-session tracklet, or the second sub-session tracklet with the agent session.

10 . The system of claim 5 , wherein the program instructions that, when executed by the one or more processors, further cause the one or more processors to at least:

detect the agent at the first event area;

obtain one or more images of the agent while the agent is at the first event area;

generate, based at least in part on the one or more images, a first feature representative of one or more embedding vectors indicative of the agent; and

generate the first sub-session tracklet, wherein the first sub-session tracklet includes at least the first feature embedding and an indication of the first event area.

11 . The system of claim 5 , wherein the program instructions that, when executed by the one or more processors, further cause the one or more processors to at least:

determine an agent account corresponding to at least one of the first sub-session tracklet or the second sub-session tracklet; and

associate at least one of the first sub-session tracklet, the second sub-session tracklet, or the agent with the agent account.

12 . The system of claim 5 , wherein the program instructions that, when executed by the one or more processors, further cause the one or more processors to at least:

remove the first sub-session tracklet and the second sub-session tracklet from the plurality of unlinked sub-session tracklets.

13 . The system of claim 5 , wherein the program instructions that, when executed by the one or more processors, further cause the one or more processors to at least:

determine a plurality of candidate sub-session tracklets;

define a second edge between the second node corresponding to the sub-session tracklet and a third node corresponding to a third sub-session tracklet of the plurality of candidate sub-session tracklets; and

associate the third sub-session tracklet with the agent.

14 . The system of claim 5 , wherein the program instructions that, when executed by the one or more processors, further cause the one or more processors to at least:

reduce, based at least in part on at least one of the first sub-session tracklet or the second sub-session tracklet, a plurality of candidate sub-session tracklets to generate a reduced plurality of candidate sub-session tracklets that include less than all of the candidate sub-session tracklets; and

define the plurality of nodes as corresponding to the reduced plurality of candidate sub-session tracklets.

15 . The system of claim 14 , wherein the program instructions that cause the one or more processors to reduce the plurality of candidate sub-session tracklets further include instructions that, when executed by the one or more processors, further cause the one or more processors to at least:

determine, based at least in part on the first sub-session tracklet, at least a third candidate sub-session tracklet of the plurality of candidate sub-session tracklets that could not correspond to the agent; and

exclude the third candidate sub-session tracklet from the reduced plurality of candidate sub-session tracklets.

16 . A computer-implemented method, comprising:

generating, for each of a plurality of agents located within a materials handling facility, one or more sub-session tracklets indicative of the agent while the agent is at an event area within the materials handling facility, wherein:

the materials handling facility includes a plurality of event areas and at least one untracked area that separates each of the plurality of event areas; and

each event area of the plurality of event areas includes one or more cameras;

including each of the sub-session tracklets in an unlinked sub-session tracklet list;

determining an agent at an exit event area of the materials handling facility;

generating, for the agent, an exit tracklet indicative of the agent at the exit event area;

defining, based at least in part on the unlinked sub-session tracklet list, a plurality of nodes of a node graph, each node of the plurality of nodes corresponding to a sub-session tracklet indicated on the unlinked sub-session tracklet list;

defining an edge between a first node of the node graph corresponding to a first sub-session tracklet and a second node of the node graph corresponding to the exit tracklet; and

associating the first sub-session tracklet with an agent session generated for the agent.

17 . The computer-implemented method of claim 16 , wherein defining the edge further includes:

determining the edge based at least in part on one or more of a time and spatial similarity between the exit tracklet and the first sub-session tracklet or a feature embedding similarity between a first feature embedding of the first sub-session tracklet and a second feature embedding of the exit tracklet.

18 . The computer-implemented method of claim 16 , wherein generating further includes:

determining at least one candidate sub-session tracklet to exclude from the plurality of sub-session tracklets based at least in part on a time associated with the first sub-session tracklet or an event area of the first sub-session tracklet.

19 . The computer-implemented method of claim 16 , wherein each sub-session tracklet includes, at least:

an event area indication corresponding to an event area at which the sub-session tracklet was generated;

a feature embedding indicative of the agent and generated based at least in part on a plurality of embedding vectors generated for the agent; and

a time corresponding to the sub-session tracklet.

20 . The computer-implemented method of claim 16 , further comprising:

determining, for each node of the plurality of nodes of the node graph, one entry edge connecting the node to another node of the node graph and one exit edge connecting the node to another node of the node graph.

References Cited (122)
US 6185314B1 · Crabtree et al. · 2001 [cited by applicant]
US 6263088B1 · Crabtree et al. · 2001 [cited by applicant]
US 6654047B2 · Iizaka · 2003 [cited by applicant]
US 7225980B2 · Ku et al. · 2007 [cited by applicant]
US 7949568B2 · Fano et al. · 2011 [cited by applicant]
US 8009864B2 · Linaker et al. · 2011 [cited by applicant]
US 8175925B1 · Rouaix · 2012 [cited by applicant]
US 8189855B2 · Opalach et al. · 2012 [cited by applicant]
US 8423431B1 · Rouaix et al. · 2013 [cited by applicant]
US 8630924B2 · Groenevelt et al. · 2014 [cited by applicant]
US 8688598B1 · Shakes et al. · 2014 [cited by applicant]
US 9473747B2 · Kobres et al. · 2016 [cited by applicant]
US 9805264B2 · Kuznetsova et al. · 2017 [cited by applicant]
US 10055853B1 · Fisher et al. · 2018 [cited by applicant]
US 10134004B1 · Liberato, Jr. et al. · 2018 [cited by applicant]
US 10388019B1 · Hua et al. · 2019 [cited by applicant]
US 10438277B1 · Jiang et al. · 2019 [cited by applicant]
US 10467461B2 · Ikeda et al. · 2019 [cited by applicant]
US 10552750B1 · Raghavan et al. · 2020 [cited by applicant]
US 10586203B1 · Maldonado et al. · 2020 [cited by applicant]
US 10592742B1 · Hua et al. · 2020 [cited by applicant]
US 10789720B1 · Mirza et al. · 2020 [cited by applicant]
US 10891736B1 · Hua · 2021 [cited by applicant]
US 11328513B1 · Osherovich et al. · 2022 [cited by applicant]
US 11386306B1 · Siddiquie et al. · 2022 [cited by applicant]
US 12275431B1 · Kobilarov · 2025 [cited by examiner]
US 20030002712A1 · Steenburgh et al. · 2003 [cited by applicant]
US 20040153671A1 · Schuyler et al. · 2004 [cited by applicant]
US 20040181467A1 · Raiyani et al. · 2004 [cited by applicant]
US 20040228503A1 · Cutler · 2004 [cited by applicant]
US 20050237196A1 · Matsukawa et al. · 2005 [cited by applicant]
US 20060083423A1 · Brown et al. · 2006 [cited by applicant]
US 20070188324A1 · Ballin et al. · 2007 [cited by applicant]
US 20070211938A1 · Tu et al. · 2007 [cited by applicant]
US 20070217676A1 · Grauman et al. · 2007 [cited by applicant]
US 20080055087A1 · Horii et al. · 2008 [cited by applicant]
US 20080077511A1 · Zimmerman · 2008 [cited by applicant]
US 20080109114A1 · Orita et al. · 2008 [cited by applicant]
US 20090010490A1 · Wang et al. · 2009 [cited by applicant]
US 20090052739A1 · Takahashi et al. · 2009 [cited by applicant]
US 20090121017A1 · Cato et al. · 2009 [cited by applicant]
US 20090129631A1 · Faure et al. · 2009 [cited by applicant]
US 20090245573A1 · Saptharishi et al. · 2009 [cited by applicant]
US 20090304229A1 · Hampapur et al. · 2009 [cited by applicant]
US 20090324020A1 · Hasebe et al. · 2009 [cited by applicant]
US 20100266159A1 · Ueki et al. · 2010 [cited by applicant]
US 20110011936A1 · Morandi et al. · 2011 [cited by applicant]
US 20110080336A1 · Leyvand et al. · 2011 [cited by applicant]
US 20110085705A1 · Izadi et al. · 2011 [cited by applicant]
US 20110085739A1 · Zhang et al. · 2011 [cited by applicant]
US 20120020518A1 · Taguchi · 2012 [cited by applicant]
US 20120026335A1 · Brown et al. · 2012 [cited by applicant]
US 20120093364A1 · Sato · 2012 [cited by applicant]
US 20120170804A1 · Lin et al. · 2012 [cited by applicant]
US 20120281878A1 · Matsuda et al. · 2012 [cited by applicant]
US 20120284132A1 · Kim et al. · 2012 [cited by applicant]
US 20120307051A1 · Welter · 2012 [cited by applicant]
US 20130076898A1 · Philippe et al. · 2013 [cited by applicant]
US 20130182114A1 · Zhang et al. · 2013 [cited by applicant]
US 20130182905A1 · Myers et al. · 2013 [cited by applicant]
US 20130184887A1 · Ainsley et al. · 2013 [cited by applicant]
US 20130253700A1 · Carson et al. · 2013 [cited by applicant]
US 20140050352A1 · Buehler et al. · 2014 [cited by applicant]
US 20140072170A1 · Zhang et al. · 2014 [cited by applicant]
US 20140072174A1 · Wedge · 2014 [cited by applicant]
US 20140107842A1 · Yoon et al. · 2014 [cited by applicant]
US 20140253706A1 · Noone et al. · 2014 [cited by applicant]
US 20140279294A1 · Field-Darragh et al. · 2014 [cited by applicant]
US 20140328512A1 · Gurwicz et al. · 2014 [cited by applicant]
US 20140355825A1 · Kim et al. · 2014 [cited by applicant]
US 20140362223A1 · LaCroix et al. · 2014 [cited by applicant]
US 20150012396A1 · Puerini et al. · 2015 [cited by applicant]
US 20150019391A1 · Kumar et al. · 2015 [cited by applicant]
US 20150073907A1 · Purves et al. · 2015 [cited by applicant]
US 20150127485A1 · Kakizawa et al. · 2015 [cited by applicant]
US 20150146921A1 · Ono et al. · 2015 [cited by applicant]
US 20150213328A1 · Mase · 2015 [cited by applicant]
US 20150262365A1 · Shimizu · 2015 [cited by applicant]
US 20150294183A1 · Watanabe et al. · 2015 [cited by applicant]
US 20150345942A1 · Allocco et al. · 2015 [cited by applicant]
US 20160110613A1 · Ghanem et al. · 2016 [cited by applicant]
US 20160217326A1 · Hosoi · 2016 [cited by applicant]
US 20170193772A1 · Kusens et al. · 2017 [cited by applicant]
US 20170278254A1 · Ikeda et al. · 2017 [cited by applicant]
US 20170308919A1 · Karuvath et al. · 2017 [cited by applicant]
US 20170372487A1 · Lagun et al. · 2017 [cited by applicant]
US 20180068172A1 · Despiegel et al. · 2018 [cited by applicant]
US 20180096209A1 · Matsuda et al. · 2018 [cited by applicant]
US 20180107880A1 · Danielsson et al. · 2018 [cited by applicant]
US 20180189271A1 · Noh et al. · 2018 [cited by applicant]
US 20180247112A1 · Norimatsu · 2018 [cited by applicant]
US 20180267996A1 · Lin et al. · 2018 [cited by applicant]
US 20180373928A1 · Glaser et al. · 2018 [cited by applicant]
US 20190019016A1 · Ikeda et al. · 2019 [cited by applicant]
US 20190033447A1 · Chan et al. · 2019 [cited by applicant]
US 20190050629A1 · Olgiati · 2019 [cited by applicant]
US 20190065895A1 · Wang et al. · 2019 [cited by applicant]
US 20190104283A1 · Wakeyama et al. · 2019 [cited by applicant]
US 20190130718A1 · Alpert · 2019 [cited by applicant]
US 20190139229A1 · Ohira et al. · 2019 [cited by applicant]
US 20190147251A1 · Numata · 2019 [cited by applicant]
US 20190156106A1 · Schroff et al. · 2019 [cited by applicant]
US 20190205965A1 · Li et al. · 2019 [cited by applicant]
US 20190325342A1 · Sikka et al. · 2019 [cited by applicant]
US 20190347523A1 · Rothberg et al. · 2019 [cited by applicant]
US 20200005615A1 · Madden et al. · 2020 [cited by applicant]
US 20200184515A1 · deWet et al. · 2020 [cited by applicant]
US 20200193166A1 · Russo et al. · 2020 [cited by applicant]
US 20200302186A1 · Yang · 2020 [cited by examiner]
US 20200410572A1 · Higa et al. · 2020 [cited by applicant]
US 20210019528A1 · Ghadyali · 2021 [cited by examiner]
US 20210027608A1 · Shakedd et al. · 2021 [cited by applicant]
US 20210125344A1 · Zhang · 2021 [cited by examiner]
US 20240329210A1 · Joseph · 2024 [cited by examiner]
CN 102057371A · 2011 [cited by applicant]
CN 112712101A · 2021 [cited by applicant]
CN 116049454A · 2023 [cited by applicant]
EP 3333771A1 · 2018 [cited by applicant]
WO 2019079907A1 · 2019 [cited by applicant]
Abhaya Asthana et al., “An Indoor Wireless System for Personalized Shopping Assistance”, Proceedings of IEEE Workshop on Mobile Computing Systems and Applications, 1994, pp. 69-74, Publisher: IEEE Computer Society Press. [cited by applicant]
Cristian Pop, “Introduction to the BodyCom Technology”, Microchip AN1391, May 2, 2011, pp. 1-24, vol. AN1391, No. DS01391A, Publisher: 2011 Microchip Technology Inc. [cited by applicant]
Schroff, F., et al., “FaceNet: A Unified Embedding for Face Recognition and Clustering”; Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2015, pp. 815-823. [cited by applicant]