Patent Publication Number: US-11386647-B2

Title: System and method for processing a refund request arising from a shopping session in a cashierless store

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
     This application is a continuation-in-part of: 
     U.S. patent application Ser. No. 16/664,470 filed Oct. 25, 2019, by Matthew Raymond Magee et al., and entitled “CUSTOMER-BASED VIDEO FEED”; 
     U.S. patent application Ser. No. 16/664,490 filed Oct. 25, 2019, by Shahmeer Ali Mirza et al., and entitled “SYSTEM AND METHOD FOR PRESENTING A VIRTUAL STORE SHELF THAT EMULATES A PHYSICAL STORE SHELF”; 
     U.S. patent application Ser. No. 16/938,676 filed Jul. 24, 2020, by Shahmeer Ali Mirza et al., and entitled “FEEDBACK AND TRAINING FOR A MACHINE LEARNING ALGORITHM CONFIGURED TO DETERMINE CUSTOMER PURCHASES DURING A SHOPPING SESSION AT A PHYSICAL STORE”, which is a continuation of U.S. patent application Ser. No. 16/794,083 filed Feb. 18, 2020, by Shahmeer Ali Mirza et al., and entitled “FEEDBACK AND TRAINING FOR A MACHINE LEARNING ALGORITHM CONFIGURED TO DETERMINE CUSTOMER PURCHASES DURING A SHOPPING SESSION AT A PHYSICAL STORE”, now U.S. Pat. No. 10,810,428 issued Oct. 20, 2020, which is a continuation of U.S. patent application Ser. No. 16/663,564 filed Oct. 25, 2019, by Shahmeer Ali Mirza et al., and entitled “FEEDBACK AND TRAINING FOR A MACHINE LEARNING ALGORITHM CONFIGURED TO DETERMINE CUSTOMER PURCHASES DURING A SHOPPING SESSION AT A PHYSICAL STORE”, now U.S. Pat. No. 10,607,080 issued Mar. 31, 2020; 
     U.S. patent application Ser. No. 17/021,011 filed Sep. 15, 2020, by Matthew Raymond Magee et al., entitled “SYSTEM AND METHOD FOR POPULATING A VIRTUAL SHOPPING CART BASED ON VIDEO OF A CUSTOMERS SHOPPING SESSION AT A PHYSICAL STORE”, which is a continuation of U.S. patent application Ser. No. 16/663,589 filed Oct. 25, 2019, by Matthew Raymond Magee et al., entitled “SYSTEM AND METHOD FOR POPULATING A VIRTUAL SHOPPING CART BASED ON VIDEO OF A CUSTOMER&#39;S SHOPPING SESSION AT A PHYSICAL STORE”; and 
     U.S. patent application Ser. No. 16/664,529 filed Oct. 25, 2019, by Matthew Raymond Magee et al., entitled “TOOL FOR GENERATING A VIRTUAL STORE THAT EMULATES A PHYSICAL STORE”, which are all incorporated herein by reference. 
    
    
     TECHNICAL FIELD 
     This disclosure relates generally to remote monitoring techniques, and more particularly, to a system and method for processing a refund request arising from a shopping session in a cashierless store. 
     BACKGROUND 
     During a traditional shopping session in a physical store, a customer selects items from shelves located within the store and then presents those items to a cashier. The cashier generates a bill for the items and receives payment from the customer. Any cameras located within the store are typically present for security purposes. 
     SUMMARY 
     Shopping sessions in traditional stores may be associated with several inefficiencies for both the customers and the store owners. For example, during busy periods within a store, a customer may spend a considerable amount of time waiting in line to pay the cashier for the items he/she selected. The time spent waiting may even exceed the total amount of time that the customer spent selecting the items. This may lead to customer frustration and potentially to a loss of repeat customer business. As another example, traditional stores typically rely on the presence of one or more employees to act as cashiers within the stores. Even when the store is otherwise empty, such employees are nevertheless present, in case a customer happens to enter the store to make a purchase. As a result, outside of peak business hours, much of a cashier&#39;s time within a store may be spent idle. 
     This disclosure contemplates a virtual store tool that addresses one or more of the above technical problems. The tool generates a virtual store configured to emulate a physical store. The tool also generates a set of videos from camera feeds received from cameras located in the physical store, to track a customer during a shopping session in the physical store. In certain embodiments, the tool then uses the virtual store and the videos of the shopping session in the physical store to generate a virtual shopping cart, storing a set of items configured to emulate the items selected by the customer in the physical store. Accordingly, the tool may use the virtual shopping cart to charge the customer for his/her purchases. In some embodiments, the tool may also be used in conjunction with an algorithm trained to determine the items selected by a customer during a shopping session in a physical store, based on inputs received from sensors located in the physical store. In such embodiments, the tool uses the virtual store and the videos of the shopping session in the physical store to verify the determination made by the algorithm. Certain embodiments of the tool are described below. 
     According to one embodiment, an apparatus includes an interface, a display, a memory, and a hardware processor communicatively coupled to the memory and the display. The interface receives a first video feed. The first video feed includes a first camera feed corresponding to a first camera located in a physical store and a second camera feed corresponding to a second camera located in the physical store. The first camera is directed at a first location in the physical store. The second camera is directed at a second location in the physical store. The hardware processor stores a first video segment in the memory. The first video segment is assigned to a first person and captures a portion of a shopping session of the first person in the physical store occurring during a time interval between a starting timestamp and an ending timestamp. The first video segment includes a first camera feed segment corresponding to a recording of the first camera feed from the starting timestamp to the ending timestamp, and a second camera feed segment corresponding to a recording of the second camera feed from the starting timestamp to the ending timestamp. The processor also assigns a first slider bar to the first video segment. 
     Playback of the first camera feed segment and the second camera feed segment is synchronized and the first slider bar controls a playback progress of the first camera feed segment and the second camera feed segment. The processor additionally displays the first camera feed segment and a first copy of the first slider bar in a first region of the display. The processor further displays the second camera feed segment and a second copy of the first slider bar in a second region of the display. The processor also receives an instruction from at least one of the first copy of the first slider bar and the second copy of the first slider bar to adjust the playback progress of the first camera feed segment and the second camera feed segment. In response to receiving the instruction, the processor adjusts the playback progress of the first camera feed segment and the second camera feed segment. 
     According to another embodiment, an apparatus includes a display, an interface, and a hardware processor communicatively coupled to the display. The interface receives a rack camera feed from a rack camera located in a physical store. The rack camera is directed at a first physical rack of a set of physical racks located in the physical store. The hardware processor displays, in a first region of the display, a virtual layout of a virtual store. The virtual layout is configured to emulate a physical layout of the physical store. The virtual layout includes a first virtual rack assigned to a first physical rack and a second virtual rack assigned to a second physical rack. Here, an arrangement of the first virtual rack and the second virtual rack in the virtual layout is configured to emulate an arrangement of the first physical rack and the second physical rack in the physical layout. 
     The processor also receives an indication of an event associated with the first physical rack. The event includes a person located in the physical store interacting with the first physical rack. In response to receiving the indication of the event associated with the first physical rack, the processor displays, in a second region of the display, the first virtual rack. The first virtual rack includes a first virtual shelf and a second virtual shelf. The first virtual shelf includes a first virtual item and the second virtual shelf includes a second virtual item. The first virtual item includes a graphical representation of a first physical item located on a first physical shelf of the first physical rack and the second virtual item includes a graphical representation of a second physical item located on a second physical shelf of the first physical rack. The processor additionally displays, in a third region of the display, a rack video segment corresponding to a recording of the rack camera feed from a starting timestamp to an ending timestamp. The rack video segment depicts the event associated with the first physical rack. 
     According to another embodiment, an apparatus includes a display, an interface, and a hardware processor communicatively coupled to the display. The interface receives a rack video from a rack camera located in a physical store. The rack camera is directed at a first physical rack of a set of physical racks located in the physical store. The rack camera captures video of the first physical rack during a shopping session of a person in the physical store. The processor displays, in a first region of the display, a first virtual rack that emulates the first physical rack. The first virtual rack includes a first virtual shelf and a second virtual shelf. The first virtual shelf includes a first virtual item and the second virtual shelf includes a second virtual item. The first virtual item includes a graphical representation of a first physical item located on a first physical shelf of the first physical rack and the second virtual item includes a graphical representation of a second physical item located on a second physical shelf of the first physical rack. 
     The processor also displays, in a second region of the display, the rack video. The rack video depicts an event including the person interacting with the first physical rack. The processor additionally displays, in a third region of the display, a virtual shopping cart. The processor further receives information associated with the event. The information identifies the first virtual item, and the rack video depicts that the person selected the first physical item while interacting with the first physical rack. In response to receiving the information associated with the event, the processor stores the first virtual item in the virtual shopping cart. 
     According to another embodiment, an apparatus configured to create a virtual layout of a virtual store to emulate a physical layout of a physical store includes a memory and a hardware processor communicatively coupled to the memory. The hardware processor receives a first physical position and a first physical orientation associated with a first physical rack located in the physical store. In response to receiving the first physical position and the first physical orientation, the processor places a first virtual rack at a first virtual position and with a first virtual orientation on the virtual layout. The first virtual position of the first virtual rack on the virtual layout represents the first physical position of the first physical rack on the physical layout and the first virtual orientation of the first virtual rack on the virtual layout represents the first physical orientation of the first physical rack on the physical layout. The processor also receives a first virtual item associated with a first physical item located on a first physical shelf of the first physical rack. In response to receiving the first virtual item, the processor places the first virtual item on a first virtual shelf of the first virtual rack. The first virtual shelf of the first virtual rack represents the first physical shelf of the first physical rack. 
     The processor additionally receives a second virtual item associated with a second physical item located on a second physical shelf of the first physical rack. In response to receiving the second virtual item, the processor places the second virtual item on a second virtual shelf of the first virtual rack. The second virtual shelf of the first virtual rack represents the second physical shelf of the first physical rack. The processor further assigns a first rack camera located in the physical store to the first virtual rack. The first rack camera captures video that includes the first physical rack. The processor also stores the virtual layout in the memory. 
     According to another embodiment, an apparatus includes a hardware processor. The processor receives an algorithmic shopping cart that includes a first set of items. The first set of items is determined by an algorithm to have been selected by a first person during a shopping session in a physical store, based on a set of inputs received from sensors located within the physical store. The processor also receives a virtual shopping cart that includes a second set of items associated with the shopping session. Video of the shopping session was captured by a set of cameras located in the physical store. The video depicts the person selecting the second set of items. The processor additionally compares the algorithmic shopping cart to the virtual shopping cart. In response to comparing the algorithmic shopping cart to the virtual shopping cart, the processor determines that a discrepancy exists between the algorithmic shopping cart and the virtual shopping cart. The processor further determines a subset of the set of inputs associated with the discrepancy. The processor also attaches metadata to the subset. The metadata explains the discrepancy. The processor additionally uses the subset to train the algorithm. 
     According to another embodiment, an apparatus includes a memory and a hardware processor communicatively coupled to the memory. The memory stores a first set of inputs, a first algorithmic shopping cart, and instructions corresponding to a machine learning algorithm. The first set of inputs includes information collected from sensors located in a physical store during a shopping session of a first person in the physical store. The first algorithmic shopping cart includes a first set of items. The first set of items was determined by an algorithm, based on the first set of inputs, to have been selected by the first person during the shopping session of the first person. The instructions corresponding to the machine learning algorithm are configured, when implemented by the hardware processor, to use the first set of inputs to select between using the first algorithmic shopping cart to process a first transaction and using a first virtual shopping cart to process the first transaction. Here, the first transaction is associated with the shopping session of the first person and the first virtual shopping cart includes items associated with the shopping session of the first person. 
     The processor uses the machine learning algorithm to determine, based on the first set of inputs, to use the first algorithmic shopping cart to process the first transaction. Here, the first set of inputs are associated with a first probability that the first algorithmic shopping cart is accurate, and the first probability is greater than a threshold. In response to determining to use the first algorithmic shopping cart to process the first transaction, the processor also generates a first receipt based on the first algorithmic shopping cart. The first receipt includes a first set of prices. Each price of the first set of prices corresponds to an item of the first set of items. The processor additionally sends the first receipt to the first person. 
     According to another embodiment, an apparatus includes a display and a hardware processor. The processor receives a refund request. The refund request includes a request for a refund of a price of an item charged to an account belonging to a person, and information identifying a shopping session of the person in a physical store. In response to receiving the refund request, the processor locates, using the information identifying the shopping session, a video segment of the physical store captured during the shopping session and stored in a database. The processor additionally displays, in a first region of the display, the video segment. The video segment depicts a scenario indicating that the person did not select the item for purchase during the shopping session. The processor further receives information indicating that the person did not select the item for purchase during the shopping session. The information is based at least in part on the video segment. In response to receiving the information indicating that the person did not select the item for purchase during the shopping session, the processor processes the refund request, where processing the refund request includes crediting the account belonging to the person with the price of the item. 
     According to another embodiment, an apparatus includes a memory and a second hardware processor communicatively coupled to the memory. The memory stores instructions corresponding to a machine learning algorithm. The machine learning algorithm is configured, when implemented by a first hardware processor, to use a set of inputs to select between using an algorithmic shopping cart to process a transaction and using a virtual shopping cart to process the transaction. The set of inputs includes information collected from sensors located in a physical store during a shopping session of a person in the physical store. The transaction is associated with the shopping session of the person. The algorithmic shopping cart includes a first set of items determined by an algorithm, based on the set of inputs, to have been selected by the person during the shopping session. The virtual shopping cart includes a second set of items associated with the shopping session. 
     The second hardware processor receives feedback for a decision made by the machine learning algorithm. The decision made by the machine learning algorithm is at least one of a decision to use the algorithmic shopping cart to process the transaction, or a decision to use the virtual shopping cart to process the transaction. The feedback indicates either that the algorithmic shopping cart matches the virtual shopping cart, or that the algorithmic shopping cart does not match the virtual shopping cart. The second processor also assigns a reward value to the feedback. The reward value includes at least one of a first positive reward value, a second positive reward value, a first negative reward value, or a second negative reward value. The reward value includes the first positive reward value, when the decision made by the machine learning algorithm includes the decision to use the algorithmic shopping cart to process the transaction and the feedback indicates that the algorithmic shopping cart matches the virtual shopping cart. The reward value includes the second positive reward value, when the decision made by the machine learning algorithm includes the decision to use the virtual shopping cart to process the transaction and the feedback indicates that the algorithmic shopping cart does not match the virtual shopping cart. The reward value includes the first negative reward value, when the decision made by the machine learning algorithm includes the decision to use the algorithmic shopping cart to process the transaction and the feedback indicates that the algorithmic shopping cart does not match the virtual shopping cart. The reward value includes the second negative reward value, when the decision made by the machine learning algorithm comprises the decision to use the virtual shopping cart to process the transaction and the feedback indicates that the algorithmic shopping cart matches the virtual shopping cart. The second processor additionally uses the reward value to update the machine learning algorithm. 
     According to a further embodiment, an apparatus includes a display and a hardware processor communicatively coupled to the display. The processor displays, in a first region of the display, a virtual shopping cart. The processor also receives information indicating that an algorithm determined that a first physical item was selected by a person during a shopping session in a physical store. The algorithm determined that the first physical item was selected by the person based on a set of inputs received from sensors located within the physical store. In response to receiving the information indicating that the algorithm determined that the first item was selected, the processor displays, in a second region of the display, a first virtual item. The first virtual item includes a graphical representation of the first physical item. The processor additionally displays, in a third region of the display, a first rack video captured during the shopping session of the person in the physical store. The first rack video was captured by a first rack camera of a set of rack cameras located in the physical store. The first rack camera is directed at a first physical rack of a set of physical racks located in the physical store. The first physical rack includes the first physical item. In response to displaying the first rack video, the processor receives information identifying the first virtual item, where the first rack video depicts that the person selected the first physical item while interacting with the first physical rack. In response to receiving the information identifying the first virtual item, the processor stores the first virtual item in the virtual shopping cart. 
     Certain embodiments provide one or more technical advantages. For example, an embodiment reduces the processing resources spent when reviewing surveillance video of a customer in a store, by presenting multiple camera views of the store at once, synchronized with one another, and configured to capture the shopping session of the customer. As another example, an embodiment provides feedback for a machine learning tracking algorithm, configured to track a customer in a physical store, which may be used to improve the accuracy of the machine learning algorithm. As another example, an embodiment provides an improved graphical user interface that enables a user to view multiple surveillance videos on a single screen and to easily navigate amongst different camera views. As a further example, an embodiment conserves processing resources by using a reinforcement learning algorithm to determine that there is a high probability that certain determinations, made by a machine learning tracking algorithm that is configured to assign items to a customer by tracking the customer in a physical store and identifying those items within the store with which the customer interacts, are correct, such that no additional verification is needed. The system described in the present disclosure may particularly be integrated into a practical application of a remote monitoring system for a physical location, such as a store, where inputs from sensors located in the store may be used to monitor and track events occurring within the store. In particular, the remote monitoring system is capable of automatically analyzing events occurring within the store and identifying those events for which review by an external agent is desirable (because, for example, the events are similar to previous ones in which review was deemed proper). In order to aid the external agent in reviewing an event, the system presents the agent with an improved graphical interface that is designed to display multiple video feeds captured from inside the store during the event on a single screen, and which includes multiple controls to enable the agent to easily navigate the different videos. 
     Certain embodiments may include none, some, or all of the above technical advantages. One or more other technical advantages may be readily apparent to one skilled in the art form the figures, descriptions, and claims included herein. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       For a more complete understanding of the present disclosure, reference is now made to the following description, taken in conjunction with the accompanying drawings, in which: 
         FIGS. 1A and 1B  present a comparison between a physical store and a virtual store; 
         FIGS. 2A and 2B  present a comparison between a physical layout of a physical store and a virtual layout of a virtual store; 
         FIGS. 3A and 3B  present a comparison between a physical rack in a physical store and a virtual rack in a virtual store; 
         FIG. 4  illustrates an example system according to the present disclosure; 
         FIG. 5A  illustrates example locations in a physical store of cameras configured to capture regions of the store for use in the system illustrated in  FIG. 4 ; 
         FIG. 5B  illustrates an example of the regions of a physical store captured by the layout cameras of the system illustrated in  FIG. 4 ; 
         FIG. 6  illustrates the video processor component of the virtual store tool of the system illustrated in  FIG. 4 ; 
         FIGS. 7A through 7C  present an example illustrating the manner in which the virtual store tool of the system illustrated in  FIG. 4  displays camera feed segments associated with the layout cameras and the rack cameras of the system illustrated in  FIG. 4 ; 
         FIG. 8  presents a flowchart illustrating the process by which the virtual store tool of the system illustrated in  FIG. 4  generates and displays camera feed segments associated with the layout cameras and the rack cameras of the system illustrated in  FIG. 4 ; 
         FIGS. 9A through 9D  present examples illustrating the manner in which the virtual store tool of the system illustrated in  FIG. 4  may virtually emulate a shopping session occurring in a physical store; 
         FIG. 10  presents a flowchart illustrating the manner in which the virtual store tool of the system illustrated in  FIG. 4  may virtually emulate a shopping session occurring in a physical store; 
         FIGS. 11A and 11B  illustrate an example embodiment of a graphical user interface generated by the virtual store tool of the system illustrated in  FIG. 4 , which may be used to generate a virtual layout configured to emulate a physical layout of a physical store; 
         FIG. 12  presents a flowchart illustrating the manner in which the virtual store tool of the system illustrated in  FIG. 4  may generate a virtual layout configured to emulate a physical layout of a physical store; 
         FIGS. 13A and 13B  present examples of sensors that may be used to provide input to an algorithm configured to determine items selected by a customer during a shopping session in a physical store; 
         FIGS. 13C and 13D  illustrate an example of the use of sensors coupled to a physical shelf in a physical store to define zones of the physical shelf and its corresponding virtual shelf; 
         FIG. 14  illustrates a resolution component of the virtual store tool of the system illustrated in  FIG. 4 ; 
         FIG. 15  illustrates a machine learning component of the virtual store tool of the system illustrated in  FIG. 4 ; 
         FIG. 16  presents a flowchart illustrating the manner by which the virtual store tool of the system illustrated in  FIG. 4  may provide feedback to an algorithm configured to determine the items selected by a customer during a shopping session in a physical store; 
         FIGS. 17A and 17B  present an example illustrating the use of the virtual store tool of the system illustrated in  FIG. 4  to virtually emulate a shopping session occurring in a physical store by using suggestions, provided by an algorithm, of products selected during the shopping session; 
         FIG. 18  presents a flowchart illustrating the use of the virtual store tool of the system illustrated in  FIG. 4  to virtually emulate a shopping session occurring in a physical store by using suggestions, provided by an algorithm, of products selected during the shopping session; 
         FIGS. 19A through 19C  present an example illustrating the use of the virtual store tool of the system illustrated in  FIG. 4  to process a refund request submitted in response to a prior virtual emulation by the virtual store tool of a shopping session occurring in a physical store; 
         FIG. 20  presents a flowchart illustrating the use of the virtual store tool of the system illustrated in  FIG. 4  to process a refund request submitted in response to a prior virtual emulation by the virtual store tool of a shopping session occurring in a physical store; 
         FIG. 21  illustrates an example system according to the present disclosure, which includes a virtual store assistant which may be used to identify shopping sessions as candidates for virtual emulation by the virtual store tool; 
         FIG. 22  illustrates an example process by which a machine learning algorithm, used by the virtual store assistant illustrated in  FIG. 21 , may decide whether or not a shopping session is a candidate for virtual emulation by the virtual store tool and subsequently receive feedback regarding such decision; and 
         FIG. 23  presents a flowchart illustrating the use of the virtual store assistant illustrated in  FIG. 21  to decide whether or not a shopping session is a candidate for virtual emulation by the virtual store tool and subsequently receive feedback regarding such decision. 
     
    
    
     DETAILED DESCRIPTION 
     Embodiments of the present disclosure and its advantages may be understood by referring to  FIGS. 1 through 16  of the drawings, like numerals being used for like and corresponding parts of the various drawings. Additional information is disclosed in U.S. patent application Ser. No. 16/663,663 entitled, “Scalable Position Tracking System For Tracking Position In Large Spaces”; U.S. patent application Ser. No. 16/663,710 entitled, “Topview Object Tracking Using a Sensor Array”; U.S. patent application Ser. No. 16/664,470 entitled, “Customer-Based Video Feed”; U.S. patent application Ser. No. 16/664,490 entitled “System and Method for Presenting a Virtual Store Shelf that Emulates a Physical Store Shelf”; U.S. patent application Ser. No. 16/938,676 entitled “Feedback and Training for a Machine Learning Algorithm Configured to Determine Customer Purchases During a Shopping Session at a Physical Store”, which is a continuation of U.S. patent application Ser. No. 16/794,083 entitled, “Feedback and Training for a Machine Learning Algorithm Configured to Determine Customer Purchases During a Shopping Session at a Physical Store”, now U.S. Pat. No. 10,810,428, which is a continuation of U.S. patent application Ser. No. 16/663,564 entitled, “Feedback and Training for a Machine Learning Algorithm Configured to Determine Customer Purchases During a Shopping Session at a Physical Store”, now U.S. Pat. No. 10,607,080; U.S. patent application Ser. No. 17/021,011 entitled, “System and Method for Populating a Virtual Shopping Cart Based on Video of a Customer&#39;s Shopping Session at a Physical Store”, which is a continuation of U.S. patent application Ser. No. 16/663,589 entitled, “System and Method for Populating a Virtual Shopping Cart Based on Video of a Customer&#39;s Shopping Session at a Physical Store”; and U.S. patent application Ser. No. 16/664,529 entitled, “Tool for Generating a Virtual Store that Emulates a Physical Store”, which are all hereby incorporated by reference herein as if reproduced in their entirety. 
     I. Introduction to Virtual Emulation 
     This disclosure is generally directed to generating a virtual store that is configured to emulate a physical store, and using the virtual store, along with videos of a shopping session occurring within the physical store, to virtually emulate the physical shopping session. Although this disclosure describes virtual emulation of a physical store, this disclosure contemplates that any type of physical space (e.g., a warehouse, a storage center, an amusement park, an airport, an office building, etc.) may be virtually emulated using the tool described in the present disclosure. For example, the physical store may be a convenience store or a grocery store. This disclosure also contemplates that the physical store may not be a physical building, but a physical space or environment in which shoppers may shop. For example, the physical store may be a grab and go pantry at an airport, a kiosk in an office building, or an outdoor market at a park, etc. 
     As illustrated in  FIG. 1A , a physical store  100  is a brick and mortar store—i.e., a store that is located in a physical building. Customers  105  (who may carry mobile devices  125 ) enter physical store  100  to purchase items. On the other hand, a virtual store  110  is a computerized representation of a physical store, displayed on a computer or other device  115  belonging to a user  120 , as illustrated in  FIG. 1B . This disclosure contemplates that user  120  may use virtual store  110  to emulate a shopping session of customer  105  in physical store  100 . Virtual store  110  may be generated locally on device  115  or generated remotely and transmitted over a network to device  115 . 
     Virtual store  110  may be configured to emulate physical store  100  in several different ways. For example, in certain embodiments, and as illustrated in  FIGS. 2A and 2B , the virtual layout  205  of virtual store  110  is configured to emulate the physical layout  200  of physical store  100 . In particular, the shape, location, and orientation of virtual display racks  230   a ,  230   b ,  230   c , and  230   d  are configured to emulate the shape, location, and orientation of physical display racks  210   a ,  210   b ,  210   c , and  210   d . For example, in the example illustrated in  FIG. 2A , physical display racks  210   a  and  210   b  are located along back wall  235   a  of physical layout  200  of physical store  100 . Accordingly, virtual display racks  230   a  and  230   b  are placed along back wall  240   a  of virtual layout  205  of virtual store  110 , to emulate the location and orientation of physical display racks  210   a  and  210   b . Similarly, virtual display rack  230   d  is placed along side wall  240   b  of virtual layout  205 , to emulate the position and orientation of physical display rack  210   d  along side wall  235   b , and virtual display rack  230   c  is placed in the center of virtual layout  205 , to emulate the position and orientation of physical display rack  210   c.    
     As another example, in some embodiments, the contents of virtual display racks  230   a ,  230   b ,  230   c , and  230   d  are configured to emulate the contents of physical display racks  210   a ,  210   b ,  210   c , and  210   d . For example, in certain embodiments, virtual display racks  230   a ,  230   b ,  230   c , and  230   d  are each assigned a list of items, wherein the list of items includes those items stored on physical rack  210   a ,  210   b ,  210   c , and  210   d , respectively. In other embodiments, each virtual display rack is assigned a set of virtual shelves, where the number and placement of the virtual shelves on the virtual display rack are configured to emulate the number and placement of the physical shelves on the corresponding physical display rack. Each virtual shelf of the set of virtual shelves then holds a set of virtual items that is configured to emulate the set of physical items stored on a corresponding physical shelf. Here the virtual items may be configured to emulate the physical items in terms of appearance and/or positioning on the virtual shelf. 
     As a specific example,  FIGS. 3A and 3B  present a comparison between physical display rack  210   a  and virtual display rack  230   a  in one embodiment. As seen in  FIG. 3A , physical display rack  210   a  includes two physical shelves—first physical shelf  305   a  and second physical shelf  305   b . Accordingly, to emulate physical display rack  210   a , virtual display rack  230   a  also includes two shelves—first virtual shelf  310   a  and second virtual shelf  310   b . Additionally, each of virtual shelves  310   a  and  310   b  includes a set of virtual items configured to emulate the physical items stored on the corresponding physical shelf of physical shelves  305   a  and  305   b . For example, virtual shelf  310   a  includes first virtual item  320   a , located in first virtual zone  330   a  of virtual shelf  310   a , second virtual item  320   b , located in second virtual zone  330   b  of virtual shelf  310   a , and third virtual item  320   c , located in third virtual zone  330   c  of virtual shelf  310   a , positioned to emulate the positioning of first physical item  315   a  in first physical zone  325   a  of physical shelf  305   a , second physical item  315   b  in second physical zone  325   b  of physical shelf  305   a , and third physical item  315   c  in third physical zone  325   c  of physical shelf  305   a . Similarly, virtual shelf  310   b  includes fourth virtual item  320   d , fifth virtual item  320   e , and sixth virtual item  320   f , positioned, respectively, in fourth virtual zone  330   d , fifth virtual zone  330   e , and sixth virtual zone  330   f  of virtual shelf  310   b , to emulate the positioning of fourth physical item  315   d , fifth physical item  315   e , and sixth physical item  315   f  in fourth physical zone  325   d , fifth physical zone  325   e , and sixth physical zone  325   f  of physical shelf  305   b . Additionally, each of virtual items  320   a  through  320   f  is configured to emulate the appearance of the corresponding physical item  315   a ,  315   b ,  315   c ,  315   d ,  315   e , or  315   f . For example, each virtual item may correspond to a two-dimensional, graphical representation of the corresponding physical item. In this manner, a virtual item may easily be identified based on the appearance of its real world, physical counterpart. 
     II. System Overview 
       FIG. 4  illustrates an example system  400  that includes virtual store tool  405 , device  115 , display  410 , network  430   a , network  430   b , layout cameras  490 , and rack cameras  495 . In certain embodiments, system  400  additionally includes external system  485  and sensors  498 . Generally, virtual store tool  405  is configured to generate a virtual store  110  that emulates a physical store  100 . In certain embodiments, virtual store tool  405  uses virtual store  110  to generate a receipt for a shopping session conducted by a person  105  in physical store  100 , based in part on videos tracking the shopping session, received from layout cameras  490  and/or rack cameras  495  located in the physical store  100 . In some embodiments, virtual store tool  405  uses virtual store  110  and videos received from layout cameras  490  and/or rack cameras  495  to process a refund request submitted by a person  105  in response to receiving a receipt from virtual store tool  405  for a shopping session conducted by person  105  in physical store  100 . In some embodiments, virtual store tool  405  uses virtual store  110  and videos received from layout cameras  490  and rack cameras  495  to validate a determination made by an algorithm  488  of the items selected by person  105  during the shopping session in physical store  100 . 
     Device  115  includes any appropriate device for communicating with components of system  400  over network  430   a . For example, device  115  may be a telephone, a mobile phone, a computer, a laptop, a wireless or cellular telephone, a tablet, a server, an IoT device, and/or an automated assistant, among others. This disclosure contemplates device  115  being any appropriate device for sending and receiving communications over network  430   a . Device  115  may also include a user interface, such as a microphone, keypad, or other appropriate terminal equipment usable by user  120 . In some embodiments, an application executed by a processor of device  115  may perform the functions described herein. 
     Device  115  may include or be coupled to display  410 . Display  410  is a screen used by device  115  to display information received from virtual store tool  405 . In certain embodiments, display  410  is a standard display used in a laptop computer. In certain other embodiments, display  410  is an external display device connected to a laptop or desktop computer. In further embodiments, display  410  is a standard touch-screen liquid crystal display found in a typical smartphone or tablet. 
     As illustrated in  FIG. 4 , in certain embodiments, display  410  may present camera feed segments  415   a  through  415   f , virtual layout  205 , virtual rack  230 , virtual shopping cart  420 , and/or rack camera feed segment  425 . Camera feed segments  415   a  through  415   f  are video recordings of camera feeds received by virtual store tool  405  from layout cameras  490  located in physical store  100 , and are assigned to a person  105  conducting a shopping session in physical store  100 . The method by which virtual store tool  405  generates camera feed segments  415   a  through  415   f  and displays camera feed segments  415   a  through  415   f  on display  410  is described in further detail below, in the discussion of  FIGS. 5 through 8 . 
     Virtual layout  205  is assigned to the particular physical store  100  from which virtual store tool  405  received the camera feeds associated with camera feed segments  415   a  through  415   f , and is configured to emulate the physical layout  200  of that physical store. The method by which virtual store tool  405  generates virtual layout  205  is described in further detail below, in the discussion of  FIGS. 11 and 12 . 
     Virtual rack  230  corresponds to one of the virtual racks included in virtual layout  205  and is configured to emulate a physical rack  210  of physical store  100 . Accordingly, virtual rack  230  displays a set of virtual items  320 , with each virtual item  320  representing a physical item  315  stored on the corresponding physical rack  210 . Virtual shopping cart  420  is used to hold virtual items  320 , each of which represents a physical item  315  selected by person  105  during the shopping session in physical store  100 . Rack camera feed segment  425  is a recording of a camera feed received by virtual store tool  405  from a rack camera  495 . Rack camera  495  is directed at the physical rack  210  of physical store  100  to which virtual rack  230  is assigned. For example, rack camera  495  may be directed at the center of physical rack  210 . Virtual shopping cart  420  may be populated by virtual items  320  stored on virtual rack  230 , based in part on rack camera feed segment  425 . The method by which virtual store tool  405  determines a virtual rack  230  to display on display  410  and then uses virtual rack  230  to populate virtual shopping cart  420  is described in further detail below, in the discussion of  FIGS. 9 and 10 . 
     In some embodiments, and as described in further detail below, with respect to  FIGS. 11A and 11B , display  410  displays a graphical user interface through which a user  120  may generate a virtual layout  205  configured to emulate a physical layout  200  of a physical store  100 . In certain embodiments, and as described in further detail below, with respect to  FIGS. 17 and 18 , display  410  displays a product list that includes items determined by algorithm  488  to have been selected by person  105  during the shopping session in physical store  100 . In some embodiments, and as described in further detail below, with respect to  FIGS. 19 and 20 , display  410  may display information associated with a request for a refund of the price of one or more products charged to an account of person  105  during a prior shopping session in physical store  100 . For example, display  410  may display one or more virtual items  320  which are the subjects of the refund request and/or a textual description of the reason person  105  has submitted the refund request. 
     Network  430   a  facilitates communication between and amongst the various components of system  400  located outside of network  430   b , connecting layout cameras  490 , rack cameras  495 , and external system  485  to virtual store tool  405 . This disclosure contemplates network  430   a  being any suitable network that facilitates communication between such components of system  400 . Network  430   a  may include any interconnecting system capable of transmitting audio, video, signals, data, messages, or any combination of the preceding. Network  430   a  may include all or a portion of a public switched telephone network (PSTN), a public or private data network, a local area network (LAN), a metropolitan area network (MAN), a wide area network (WAN), a local, regional, or global communication or computer network, such as the Internet, a wireline or wireless network, an enterprise intranet, or any other suitable communication link, including combinations thereof, operable to facilitate communication between the components. 
     Network  430   b  facilitates communication between and amongst the various components of virtual store tool  405  and layout cameras  490 , rack cameras  495 , and external system  485 . This disclosure contemplates network  430   b  being any suitable network that facilitates communication between the components of virtual store tool  405  and layout cameras  490 , rack cameras  495 , and external system  485 . Network  430   b  may include any interconnecting system capable of transmitting audio, video, signals, data, messages, or any combination of the preceding. Network  430   b  may include all or a portion of a public switched telephone network (PSTN), a public or private data network, a local area network (LAN), a metropolitan area network (MAN), a wide area network (WAN), a local, regional, or global communication or computer network, such as the Internet, a wireline or wireless network, an enterprise intranet, or any other suitable communication link, including combinations thereof, operable to facilitate communication between the components. This disclosure contemplates that network  430   b  may be the same network as network  430   a  or a separate network from network  430   a.    
     As seen in  FIG. 4 , virtual store tool  405  includes a processor  435 , a memory  440 , and an interface  445 . This disclosure contemplates processor  435 , memory  440 , and interface  445  being configured to perform any of the functions of virtual store tool  405  described herein. Generally, virtual store tool  405  implements layout creator  460 , video processor  465 , display controller  470 , resolution component  475 , and machine learning module  480 . Virtual store tool  405  may use layout creator  460  to generate a virtual layout  205  configured to emulate a physical layout  200  of a physical store  100 . This function of virtual store tool  405  is described in further detail below, in the discussion of  FIGS. 11 and 12 . Virtual store tool  405  may use video processor  465  to generate camera feed segments  415  and rack camera feed segments  425 , assigned to a person  105  conducting a shopping session in physical store  100 , based on camera feeds received from layout cameras  490  and rack cameras  495 , respectively. This function of virtual store tool  405  is described in further detail below, in the discussion of  FIGS. 5 through 8 . Virtual store tool  405  may use display controller  470  to adjust the information displayed on display  410 , based on input received from device  115 . This function of virtual store tool  405  is described in further detail below, in the discussion of  FIGS. 7 through 12, and 17 through 21 . Virtual store tool  405  may use resolution component  475  to compare the contents of virtual cart  420  to an algorithmic shopping cart, determined by an algorithm  488  to contain items selected by customer  105  during a shopping session in physical store  100 . Resolution component  475  may identify any discrepancies between virtual cart  420  and the algorithmic cart, resolve such discrepancies, and generate a receipt to send to customer  105 . Resolution component  475  will be described in further detail below, in the discussion of  FIG. 14 . Finally, virtual store tool  405  may use machine learning module  480  to identify discrepancies between virtual shopping cart  420  and the algorithmic cart and assign metadata to the algorithmic inputs associated with the discrepancies. This metadata may then be used to retrain the algorithm. Machine learning module  480  will be described in further detail below, in the discussion of  FIGS. 15 and 16 . 
     Processor  435  is any electronic circuitry, including, but not limited to central processing units (CPUs), graphics processing units (GPUs), microprocessors, application specific integrated circuits (ASIC), application specific instruction set processor (ASIP), and/or state machines, that communicatively couples to memory  440  and controls the operation of virtual store tool  405 . Processor  435  may be 8-bit, 16-bit, 32-bit, 64-bit or of any other suitable architecture. Processor  435  may include an arithmetic logic unit (ALU) for performing arithmetic and logic operations, processor registers that supply operands to the ALU and store the results of ALU operations, and a control unit that fetches instructions from memory and executes them by directing the coordinated operations of the ALU, registers and other components. Processor  435  may include other hardware and software that operates to control and process information. Processor  435  executes software stored on memory to perform any of the functions described herein. Processor  435  controls the operation and administration of virtual store tool  405  by processing information received from network  430   a , network  430   b , memory  440 , device(s)  115 , layout cameras  490 , rack cameras  495 , and external system  485 . Processor  435  may be a programmable logic device, a microcontroller, a microprocessor, any suitable processing device, or any suitable combination of the preceding. Processor  435  is not limited to a single processing device and may encompass multiple processing devices. 
     Memory  440  may store, either permanently or temporarily, data, operational software, or other information for processor  435 . Memory  440  may include any one or a combination of volatile or non-volatile local or remote devices suitable for storing information. For example, memory  440  may include random access memory (RAM), read only memory (ROM), magnetic storage devices, optical storage devices, or any other suitable information storage device or a combination of these devices. The software represents any suitable set of instructions, logic, or code embodied in a computer-readable storage medium. For example, the software may be embodied in memory  440 , a disk, a CD, or a flash drive. In particular embodiments, the software may include an application executable by processor  435  to perform one or more of the functions described herein. 
     Additionally, in certain embodiments, memory  440  may store virtual layouts  205  and sets of videos  450 . Each of virtual layouts  205   a  through  205   n  corresponds to a different physical store  100  and is configured to emulate the physical layout  200  of physical store  100 . Virtual layouts  205  may be stored in memory  440  according to a store identification number. In this manner, a given virtual layout  205   a  may be retrieved from memory  440  using the store identification number. This disclosure contemplates that set of videos  450  includes the camera feed segments  415  and rack camera feed segments  425  assigned to a given person  105 , for example, through identification number  455 . Such segments are video recordings of camera feeds received by virtual store tool  405  from layout cameras  490  and rack cameras  495 , respectively. For example, set of videos  450  may include camera feed segments  415   a  through  415   f  and rack camera feed segments  425 , assigned to a person  105 . The manner in which virtual store tool  405  generates sets of videos  450  is described in further detail below, in the discussion of  FIG. 6 . 
     Interface  445  represents any suitable device operable to receive information from networks  430   a  and  430   b , transmit information through networks  430   a  and  430   b , perform suitable processing of the information, communicate to other devices, or any combination of the preceding. For example, interface  445  receives camera feeds from layout cameras  490  and rack cameras  495 . As another example, interface  445  receives input from device  115 . Interface  445  represents any port or connection, real or virtual, including any suitable hardware and/or software, including protocol conversion and data processing capabilities, to communicate through a LAN, WAN, or other communication systems that allows virtual store tool  405  to exchange information with device  115 , layout cameras  490 , rack cameras  495 , and/or other components of system  400  via networks  430   a  and  430   b.    
     Database  482  stores videos  484  and shopping session identification information  486 . Each video of videos  484   a  through  484   h  is associated with a layout camera  490  or a rack camera  495  and corresponds to video captured by the associated camera  490 / 495  extending into the past over a period of time. This period of time may be the entire time cameras  490 / 495  have been in operation, the past year, the past month, the past week, or any other suitable time period. For example, each of videos  484   a  through  484   f  may correspond to all of the video captured over the past year by layout cameras  490   a  through  490   f , respectively, and each of videos  484   g  and  484   h  may correspond to all of the video captured over the past year by rack cameras  495   a  and  495   b , respectively. Shopping session identification information  486  includes any information that may be used to identify those portions of videos  484  that correspond to a specific shopping session of a specific customer  105  and/or portions of a specific shopping session of a specific customer  105 . As an example, for each shopping session conducted in physical store  100 , shopping session identification information  486  may include an identification number assigned to the shopping session and a starting and/or ending timestamp, where the starting and/or ending timestamp identifies the location of the shopping session within videos  484 . As another example, for each shopping session conducted in physical store  100 , shopping session identification information  486  may include an identification number assigned to the shopping session and a set of timestamps and/or time intervals, each of which is associated with an item. Each timestamp/time interval may indicate the approximate time within videos  484  at which it was determined (either by virtual store tool  405  or by algorithm  488 ) that the item associated with the timestamp/time interval was selected for purchase during the shopping session. In certain embodiments, virtual store tool may use videos  484  and/or shopping session identification information  486  to process requests for refunds associated with previous shopping sessions in physical store  100 , as described in further detail below, in the discussion of  FIGS. 19 and 20 . 
     External system  485  represents any system operable to receive input from sensors  498  located in physical store  100  and to apply an algorithm  488  to this input to track customers  105  in physical store  100  and/or to determine physical items  315  selected by such customers during shopping sessions in physical store  100 . Embodiments of external system  485  are described in U.S. patent application Ser. No. 16/663,710 entitled, “Topview Object Tracking Using a Sensor Array”, U.S. patent application Ser. No. 17/104,889 entitled, “Food Detection Using a Sensor Array”, and U.S. patent application Ser. No. 17/104,925 entitled, “Self-Serve Beverage Detection and Assignment”, the contents of all of which are incorporated by reference herein. This disclosure contemplates that sensors  498  may include any type of suitable sensors, located in physical store  100 , and operable to detect customers  105  in physical store  100 . For example, physical store  100  may include cameras, light detection and range sensors, millimeter wave sensors, weight sensors, and/or any other appropriate sensors, operable to track a customer  105  in physical store  100  and detect information associated with customer  105  selecting one or more items  315  from physical store  100 . This disclosure also contemplates that algorithm(s)  488  may be any suitable algorithm(s) for tracking customers  105  in physical store  100  and determining items  315  selected by customers  105 . For example, in certain embodiments, algorithm(s)  488  may be a machine learning algorithm(s). 
     Layout cameras  490  and rack cameras  495  are located in physical store  100 . Each of layout cameras  490   a  through  490   f  is directed at a location in physical store  100  and captures video and/or images of a region in space around the location. Each of rack cameras  495  is directed at a physical display rack  210  located in physical store  100  and captures video and/or images of the physical display rack  210  and the region in space around the physical display rack  210 . This disclosure contemplates that any number of layout cameras  490  may be installed in physical store  100  and connected to virtual store tool  405  through network  430   b . Similarly, any number of rack cameras  495  may be installed in physical store  100  and connected to virtual store tool  405  through network  430   b . For example, in some embodiments, physical store  100  contains the same number of rack cameras  495  as physical shelves  210 . In other embodiments, physical store  100  contains more rack cameras  495  than physical shelves  210 . In certain embodiments, rack cameras  495  are the same as layout cameras  490 . In other embodiments, rack cameras  495  are distinct from layout cameras  490 . The operation of layout cameras  490  and rack cameras  495  is described in further detail below, in the discussion of  FIGS. 5 and 6 . 
     Modifications, additions, or omissions may be made to the systems described herein without departing from the scope of the invention. For example, system  400  may include any number of users  120 , devices  115 , displays  410 , networks  430   a  and  430   b , layout cameras  490 , rack cameras  495 , and external systems  485 . The components may be integrated or separated. Moreover, the operations may be performed by more, fewer, or other components. Additionally, the operations may be performed using any suitable logic comprising software, hardware, and/or other logic. 
     III. Customer-Based Video Tracking 
     As described above, virtual store tool  405  may use virtual layout  205  to emulate a shopping session of a customer  105  in a physical store  100  captured by cameras feed segments  415  and/or  425 .  FIGS. 5 through 8  are used to describe the method by which virtual store tool  405  generates and displays camera feed segments  415  and/or  425 . 
     a. Cameras Used for Customer-Based Video Tracking 
       FIG. 5A  illustrates example locations of layout cameras  490  and rack cameras  495  in a physical store  100 . The numbers of layout cameras  490  and rack cameras  495  chosen for a physical store  100  may depend on the size and/or layout of physical store  100 . As seen in the example of  FIG. 5A , physical store  100  may include five layout cameras  490   a  through  490   e . While illustrated as located on the ceiling of physical store  100 , this disclosure contemplates that layout cameras  490  may be mounted anywhere in physical store  100 . Additionally, in the example of  FIG. 5A , physical store  100  may include four rack cameras  495   a  through  495   d . While illustrated as located both on the ceiling and sidewalls of physical store  100 , this disclosure contemplates that rack cameras  495  may be mounted anywhere in physical store  100 . Rack cameras  495  may be separate from layout cameras  490  or the same as layout cameras  490 . 
     Each of rack cameras  495  is directed at a rack  210  located in physical store  100 . For example, as illustrated in  FIG. 5A , rack camera  495   a  is directed at physical display rack  210   a , rack camera  495   b  is directed at physical display rack  210   b , rack camera  495   c  is directed at physical display rack  210   c , and rack camera  495   d  is directed at physical display rack  210   d . While  FIG. 5A  illustrates a set of five layout cameras  490  and a set of four rack cameras  495  in physical store  100 , this disclosure contemplates that any suitable number of layout cameras  490  and rack cameras  495  may be used in physical store  100 , depending on the size and/or layout of physical store  100 .  FIG. 5A  additionally illustrates a set of turnstiles  510  located in physical store  100 . Turnstiles  510  may be used to control the entry and exit of customers  105  into or out of physical store  100 , as described in further detail below, in the discussion of  FIG. 6 . 
     As illustrated in  FIG. 5B , each of layout cameras  490  is directed at a particular location in physical store  100  and captures a region  505  of the layout  200  of physical store  100 , surrounding the location. For example, first layout camera  490   a  is directed at a first location and captures video and/or images of a first region  505   a  of physical store  100 ; second layout camera  490   b  is directed at a second location and captures video and/or images of a second region  505   b  of physical store  100 ; third layout camera  490   c  is directed at a third location and captures video and/or images of a third region  505   c  of physical store  100 ; fourth layout camera  490   d  is directed at a fourth location and captures video and/or images of a fourth region  505   d  of physical store  100 ; and fifth layout camera  490   e  is directed at a fifth location and captures video and/or images of a fifth region  505   e  of physical store  100 . In certain embodiments, layout cameras  490  may capture overlapping regions of physical store  100 . For example, as illustrated in  FIG. 5B , all of third region  505   c  is overlapped by portions of first region  505   a , second region  505   b , fourth region  505   d , and fifth region  505   e . The overlapping regions of physical store  100  may be a result of the proximity of layout cameras  490  to one another. Generally, by capturing overlapping regions of physical store  100 , certain portions of physical layout  200  can be captured by multiple layout cameras  490 . This may be desirable, to provide sufficient camera coverage of physical layout  200  in the event that certain of layout cameras  490  malfunction or go offline. 
     While illustrated in  FIG. 5B  as rectangular in shape, this disclosure contemplates that regions  505  may be of any shape or size. For example, in certain embodiments, regions  505  are elliptical in shape. In some embodiments, regions  505  are of uniform size and shape. For example, as illustrated in  FIG. 5B , regions  505   a  through  505   e  are all the same shape and size. In other embodiments, regions  505  may include regions  505  of different sizes and shapes. 
     b. Camera Feed Processing 
     The videos and/or images of physical store  100  captured by layout cameras  490  and/or rack cameras  495  are transmitted to virtual store tool  405  in the form of camera feeds. Virtual store tool  405  then uses video processor  465  to generate camera feed segments  415  and rack camera feed segments  425 , assigned to a person  105  conducting a shopping session in physical store  100 , based on these camera feeds.  FIG. 6  illustrates the operation of video processor  465  of virtual store tool  405 . 
       FIG. 6  presents an example of the operation of video processor  465  of virtual store tool  405 , in an embodiment that includes a first layout camera  490   a , a second layout camera  490   b , and a rack camera  495   a . As illustrated in  FIG. 6 , video processor  465  receives first camera feed  605   a  from first layout camera  490   a , second camera feed  605   b  from second layout camera  490   b , and rack camera feed  620   a  from rack camera  495   a . In certain embodiments, video processor  465  receives first camera feed  605   a , second camera feed  605   b , and rack camera feed  620   a  directly from layout cameras  490   a ,  490   b , and rack camera  495   a . In some embodiments, video processor  465  receives first camera feed  605   a , second camera feed  605   b , and rack camera feed  620   a  from interface  445 . 
     Prior to processing camera feeds  605   a ,  605   b , and  620   a , video processor  465  first determines that a person  105 , associated with an identification number  455 , entered physical store  100 . This disclosure contemplates that video processor  465  may determine that person  105  entered physical store  100  in any suitable manner. For example, in certain embodiments, physical store  100  includes turnstiles  510 , which control the entry of persons  105  into the store. A turnstile  510  may open upon person  105  scanning a QR code, located on a physical card or a mobile device  125  belonging to person  105 , using a scanner  515  attached to the turnstile  510 . Accordingly, the scanning of the QR code may generate a notification, sent to virtual store tool  405 , indicating that person  105  entered physical store  100 . As another example, in some embodiments, an algorithm  488  may be used to determine that person  105  entered physical store  100 , based on information received from sensors  498  located in physical store  100 . An example of such an algorithm  488  will be described in further detail below, in the discussion of  FIGS. 13 through 16 . 
     This disclosure contemplates that camera feeds  605  and  620  are synchronized in terms of timestamps, such that video associated with a given timestamp from each of camera feeds  605   a ,  605   b , and  620   a  corresponds to the same real time within physical store  100 . Such synchronization may be achieved in any suitable manner. For example, in certain embodiments, layout cameras  490  and rack cameras  495  are plugged into the same ethernet switch. Determining that person  105  entered physical store  100  may then include receiving a starting timestamp  610  corresponding to the timestamp at which person  105  entered physical store  100 . 
     Given that data packets associated with first camera feed  605   a , second camera feed  605   b , and rack camera feed  620   a  may arrive at virtual store tool  405  over network  430   b  at different times, this disclosure contemplates that rather than virtual store tool  405  streaming first camera feed  605   a , second camera feed  605   b , and rack camera feed  620   a  from starting timestamp  610  onwards, video processor  465  of virtual layout tool  405  stores recordings of first camera feed  605   a , second camera feed  605   b , and rack camera feed  620   a , lasting a predefined amount of time, in memory  440 . Such recordings may then be replayed, each synchronized with the others according to timestamps. Accordingly, once video processor  465  determines starting timestamp  610 , corresponding to the timestamp at which person  105  entered physical store  100 , video processor  465  next prepares segments of each camera feed, starting at starting timestamp  610  and ending at ending timestamp  615 . Video processor  465  then stores these segments in memory  440 . For example, video processor  465  prepares first camera feed segment  415   a , corresponding to a recording of first camera feed  605   a  from starting timestamp  610  to ending timestamp  615 , second camera feed segment  415   b , corresponding to a recording of second camera feed  605   b  from starting timestamp  610  to ending timestamp  615 , and rack camera feed segment  425   a , corresponding to a recording of rack camera feed  620   a  from starting timestamp  610  to ending timestamp  615 . Video processor  465  then stores each of segments  415   a ,  415   b , and  425   a  in memory  450 . 
     This disclosure contemplates that the time interval between starting timestamp  610  and ending timestamp  615  may be any predetermined amount of time. For example, in certain embodiments, the time interval is five minutes. In order to capture video of a shopping session lasting more than this predetermined amount of time, once camera feeds  605   a ,  605   b , and  620   a  reach ending timestamp  615 , video processor  465  may store additional recordings of camera feeds  605   a ,  605   b , and  620   a , starting at ending timestamp  615  and ending at a new ending timestamp, the new ending timestamp occurring at the predetermined amount of time after ending timestamp  615 . Video processor  465  may store any number of additional camera feed segments in memory  440 , each corresponding to an additional predetermined interval of time. In certain embodiments, video processor  465  continues to record such additional camera feed segments until it receives an indication that person  105  has left physical store  100 . 
     Video processor  465  may store camera feed segments  415  and  425  for any number of persons  105 . Accordingly, video processor  465  may store a collection of camera feed segments  415  and  425  assigned to a person  105  as set of videos  450 , where set of videos  450  is assigned identification number  455  associated with person  105 . As an example, a first person  105   a  may enter physical store  100  at a first starting timestamp  610   a  and a second person  105   b  may enter physical store  100  at a second starting timestamp  610   b  after the first starting timestamp  610   a , wherein the second starting timestamp  610   b  is within the predefined time interval after first starting timestamp  610   a , such that the camera feed segments recorded for first person  105   a  will contain video that overlaps with the camera feed segments recorded for second person  105   b . Accordingly, video processor  465  may store the camera feed segments recorded for first person  105   a , along with an identification number  455   a , assigned to first person  105   a , in memory  440 , as set of videos  450   a . Similarly, video processor  465  may store the camera feed segments recorded for second person  105   b , along with an identification number  455   b , assigned to second person  105   b , in memory  440 , as set of videos  450   b . Virtual store tool  405  may then retrieve from memory  440  the camera feed segments associated with a given person  105 , using the identification number  455  assigned to that person. 
     Video processor  465  may be a software module stored in memory  440  and executed by processor  435 . An example of the operation of video processor  465  is as follows: (1) receive camera feeds  605  and  620  from cameras  490  and  495 , respectively; (2) determine that a person  105  entered physical store  100 ; (3) determine the timestamp  610  corresponding to the time at which person  105  entered physical store  100 ; (4) record camera feed segments  415  and  425  from camera feeds  605  and  620 , respectively, where the camera feed segments correspond to recordings of camera feeds  605  and  620  from timestamp  610 , corresponding to the time at which person  105  entered physical store  100 , and lasting a predetermined amount of time to ending timestamp  615 ; and (5) store camera feed segments  415  and  425  in memory  440  according to an identification number  455  of person  105 , as set of videos  450 . 
     c. Displaying Camera Feed Segments 
     Once video processor  465  has recorded set of videos  450  from camera feeds  605  and  620 , virtual store tool  405  may then use display controller  470  to display set of videos  450  on display  410  of device  115 . In certain embodiments, virtual store tool  405  may display set of videos  450  on display  410  of device  115  in the form of a graphical user interface  700 .  FIGS. 7A through 7C  present an example illustrating the manner in which virtual store tool  405  displays set of videos  450  on display  410 . 
       FIG. 7A  illustrates an embodiment in which virtual store tool  405  instructs display  410  to display four camera feed segments  415   a  through  415   d . Virtual store tool  405  displays first camera feed segment  415   a  in a first region  702   a  of display  410 , second camera feed segment  415   b  in a second region  702   b  of display  410 , third camera feed segment  415   c  in a third region  702   c  of display  410 , and fourth camera feed segment  415   d  in a fourth region  702   d  of display  410 . Virtual store tool  405  may instruct display  410  to display any number of camera feed segments  415 . For example, in certain embodiments, virtual display tool  405  may instruct display  410  to display the same number of camera feed segments  415  as stored in set of videos  450 . In some embodiments, virtual display tool  405  may instruct display  410  to display fewer camera feed segments  415  than stored in set of videos  450 . This may be desirable in embodiments in which physical store  100  is a large store that includes a large number of layout cameras  490 . In such embodiments, displaying all of camera feed segments  415  on display  410  may make it difficult for a user  120  to view specific features of physical store  100  in any one of the displayed camera feed segments  415 . Accordingly, virtual store tool  405  may display a subset of camera feed segments  415  on display  410 . Virtual store tool  405  may select a subset of camera feed segments  415  to display on display  410  in any suitable manner. As an example, in certain embodiments, virtual store tool  405  may display a subset of camera feed segments  415  that includes, at any given time, those camera feed segments  415  capturing regions of physical store  100  closest to the location of person  105 , to whom set of videos  450  is assigned. In such embodiments, when set of videos  450  depicts person  105  moving to a new location in physical store  100 , virtual store tool  405  may replace the subset of camera feed segments  415  currently displayed on display  410  with a new subset of camera feed segments  415 , which includes those camera feed segments  415  that capture regions of physical store  100  closest to the new location of person  105 . Virtual store tool  405  may determine the subset of camera feed segments  415  that capture regions of physical store  100  closest to the location or person  105  in any suitable manner. For example, in certain embodiments, virtual store tool  405  may receive an indication of the location of person  105  from a machine-learning algorithm  488  configured to track the locations of a person  105  in physical store  100 , based on inputs received from a set of sensors  498  located in physical store  100 . 
     As illustrated in  FIG. 7A , in addition to displaying camera feed segments  415 , virtual store tool  405  also assigns a slider bar  705  to set of videos  450  and displays copies of slider bar  705  along with each camera feed segment  415 . For example, virtual store tool  405  displays a first copy  705   a  of slider bar  705  along with first camera feed segment  415   a , a second copy  705   b  of slider bar  705  along with second camera feed segment  415   b , a third copy  705   c  of slider bar  705  along with third camera feed segment  415   c , and a fourth copy  705   d  of slider bar  705  along with fourth camera feed segment  415   d . Each copy of slider bar  705  may contain a slider  710  configured to control the playback progress of the associated camera feed segment  415 . For example, the position of slider  710  on slider bar  705  indicates the current playback progress of the associated camera feed segment  415 . The position of slider  710  may be manually adjusted (e.g., by a user  120 ) to a new position corresponding to a new playback time. Such adjustment may result in the playback of the associated camera feed segment adjusting to the new playback time. 
     In certain embodiments, the playback of each camera feed segment  415  is synchronized with that of the other camera feed segments  415 , such that an adjustment of the slider  710  on any of the copies of slider bar  705  leads to a corresponding adjustment of the playback progress of all of the displayed camera feed segments  415 . For example, if slider  710  is adjusted on first copy  705   a  of slider bar  705  from a first playback time to a second playback time, slider  710  on second copy  705   b  of slider bar  705 , slider  710  on third copy  705   c  of slider bar  705 , and slider  710  on fourth copy  705   d  of slider bar  705  will all similarly adjust from the first playback time to the second playback time. This may be desirable for a user  120  using camera feed segments  415  to observe a shopping session of a customer  105  in physical store  100 . User  120  may adjust the playback progress of camera feed segments  415  until user  120  determines that camera feed segments  415  have reached a point of interest to user  120 , rather than viewing the entire, uninterrupted playback of camera feed segments  415 . 
     In certain embodiments, slider bar  705  may include one or more markers  715 . For example, as illustrated in  FIG. 7A , slider bar  705  may include a first marker  715   a , located at a first marker position on slider bar  705  and corresponding to a first marker playback time, as well as a second marker  715   b , located at a second marker position on slider bar  705  and corresponding to a second marker playback time. First marker  715   a  is associated with a first event occurring at the first marker playback time and second marker  715   b  is associated with a second event occurring at the second marker playback time. The first event and the second event may include any type of events occurring within physical store  100 . For example, the first event may be associated with a person  105   a  selecting a physical item  315   a  from a physical shelf  305   a  located in a physical rack  210   a  in physical store  100 . Similarly, the second event may be associated with person  105   a  selecting a second physical item  315   b  from a second physical shelf  305   b  located in a second physical rack  210   b  in physical store  100 . 
     The locations for first marker  715   a  and second marker  715   b  on slider bar  705  may be determined in any suitable manner. As an example, in certain embodiments, the first event, associated with first marker  715   a , and the second event, associated with second marker  715   b , may be determined by an algorithm  488 , based on a set of inputs received from sensors  498  located within physical store  100 . For example, algorithm  488  may determine that the first event takes place at a first time, corresponding to a first timestamp, and that the second event takes place at a second time, corresponding to a second timestamp. Virtual store tool  405  may then use the first and second timestamps to place first marker  715   a  and second marker  715   b  on slider bar  705 , at positions corresponding to the timestamps. An example algorithm  488 , used to determine the timing of the first and second events, is described in further detail below, in the discussion of  FIGS. 13 through 16 . The use of markers  715  may be desirable for a user  120  using camera feed segments  415  to observe a shopping session of customer  105  in physical store  100 . Rather than viewing the entire, uninterrupted playback of camera feed segments  415 , user  120  may adjust the playback progress of camera feed segments  415  until slider  710  reaches one of the events associated with first marker  715   a  or second marker  715   b , to, for example, observe customer  105  selecting a physical item  315  from a physical rack  210  in physical store  100 . 
     As described above, in the discussion of  FIG. 6 , each of camera feed segments  415  is of a predetermined time interval, lasting from a starting timestamp  610  to an ending timestamp  615 . Accordingly, in certain embodiments in which customer  105  remains within physical store  100  for longer than the predetermined time interval, multiple camera feed segments may exist, from each of layout cameras  490 . For example, virtual store tool  405  may store in memory  440  camera feed segments  415  for a first time interval, a second time interval, a third time interval, and a fourth time interval. Memory  440  stores any number of camera feed segments  415  for any number of time intervals. In such embodiments, when slider  710  reaches the end of slider bar  705 , virtual store tool  405  may replace those camera feed segments  415  currently displayed on display  410 , with the next set of camera feed segments  415 , corresponding to the time interval immediately following the time interval captured by the currently displayed set of camera feed segments  415 . This process of replacing the currently displayed camera feed segments  415  with a new set of camera feed segments  415 , corresponding to the time interval immediately following the time interval captured by the currently displayed set of camera feed segments  415  may continue until virtual store tool  405  determines that customer  105  has left physical store  100 . 
     Virtual store tool  405  may determine that customer  105  has left physical store  100  in any suitable manner. As an example, in certain embodiments, virtual store tool  405  may determine that customer  105  has left physical store  100  based on input received from user  120 . For example, in embodiments in which set of videos  450  are displayed on display  410  in the form of a graphical user interface  700 , the graphical user interface  700  may include an interactive button  730  (e.g., an exit customer button) through which user  120  may indicate that he/she observed customer  105  exiting physical store  100 , on camera feed segments  415 , as illustrated in  FIG. 7B . As another example, virtual store tool  405  may determine that customer  105  has left physical store  100  based on information received from an algorithm  488  configured to track customers  105  within physical store  100 . Such as algorithm  488  is described in further detail below, in the discussion of  FIGS. 13 through 16 . As a further example, virtual store tool  405  may determine that customer  105  has left physical store  100  based on information received from physical store  100 . For example, physical store  100  may include a set of turnstiles  510  near the exit of physical store  100 . In order to open a turnstile  510  and leave physical store  100 , a customer  105  may be asked to scan the same QR code that he/she used to enter physical store  100 . Scanning the QR code may then send a signal to virtual store tool  405 , indicating that customer  105  has exited physical store  100 . 
     In certain embodiments, a user  120  may request that virtual store tool  405  display video segments  415 / 425  that include video of physical store  100  from (1) before customer  105  entered physical store  100  and/or (2) after virtual store tool  405  determined that customer  105  exited physical store  100 . As a specific example of a situation in which this may arise, user  120  may view a second customer  105   b  handing an item to a first customer  105   a , while viewing camera segments  415   a  through  415   f  associated with the first customer  105   a . User  120  may not, however, have a clear view of which physical item  315  second customer  105   a  handed to first customer  105   b . Accordingly, user  120  may request that virtual store tool  405  display video of physical store  100  leading up to the time interval captured by camera segments  415   a  through  415   f , in order to determine which physical item  315  that second customer  105   b  may have selected from physical store  100  to hand to first customer  105   a . In certain embodiments, in response to receiving a request from user  120  to display video segments  415 / 425  that include video of physical store  100  from before customer  105  entered physical store  100  and/or after customer  105  exited physical store  100 , virtual store tool  405  may access videos  484  stored in database  482 . As an example, in response to receiving a request to generate video segments  415 / 425  that capture video of physical store  100  before customer  105  entered the store, video processor  465  may identify the starting timestamp  610  associated with customer  105 &#39;s shopping session, and locate this starting timestamp  610  within videos  484   a  through  484   h . Video processor  465  may then store segments of each of videos  484   a  through  484   h , beginning at a timestamp corresponding to a set time interval before starting timestamp  610  and lasting until starting timestamp  610 , as video segments  415 / 425 . Video processor  465  may then display such segments  415 / 425  on graphical user interface  700 . As another example, in response to receiving a request to generate video segments  415 / 425  that capture video of physical store  100  after customer  105  exited the store, video processor  465  may identify the ending timestamp  615  identified by virtual store tool  405  as corresponding to when customer  105  exited physical store  100 , and locate this ending timestamp  615  within videos  484   a  through  484   h . Video processor  465  may then store segments of each of videos  484   a  through  484   h , beginning at ending timestamp  615  and lasting until a timestamp corresponding to a set time interval after ending timestamp  615 , as video segments  415 / 425 . Video processor  465  may then display such segments  415 / 425  on graphical user interface  700 . 
     In certain embodiments, in order to assist a user  120  in determining which of camera feed segments  415  may include information of interest to the user, virtual store tool  405  is configured to highlight certain camera feed segments  415 , at certain times, based on events depicted in those camera feed segments  415 , at those certain times. For example, as illustrated in  FIG. 7B , virtual store tool  405  may be configured to determine that a given camera feed segment  415   a  depicts customer  105  at a first time. Accordingly, virtual store tool  405  may highlight camera feed segment  415   a  in response to determining that slider  710  on slider bar  705  reached that first time. Here, highlighting camera feed segment  415   a  may include any manner by which virtual store tool  405  may draw attention toward camera feed segment  415   a . For example, as illustrated in  FIG. 7B , highlighting camera feed segment  415   a  may include placing a frame  720  around camera feed segment  415   a . As another example, highlighting camera feed segment  415   a  may include increasing the size of camera feed segment  415   a , depicted on display  410 , relative to the other camera feed segments  415 . 
     In certain embodiments, the graphical user interface  700  displayed on display  410  may be used by a user  120  to monitor a shopping session of a customer  105   a  in physical store  100 . To aid such a user  120  in monitoring a particular customer  105   a  in a physical store that includes several other customers  105 , virtual store tool  405  may additionally display an image  725  of customer  105   a , captured when customer  105   a  entered physical store  100 . For example, in certain embodiments in which physical store  100  includes turnstiles  510  to control the entry of persons  105  into the store, physical store  100  may include a camera configured to take an image  725  of customer  105   a  as customer  105   a  passes through a turnstile  510 . 
     In certain embodiments in which slider bar  705  includes one or more markers  715 , each marker  715  may include metadata  740  describing the event associated with the marker  715 . An example of one such embodiment is illustrated in  FIG. 7C . As described above, in the discussion of  FIG. 7A , each marker  715   a  and  715   b  may be associated with an event consisting of customer  105   a  selecting a physical item  315  from a physical shelf  305  of a physical rack  210  located in physical store  100 . Accordingly, each marker may include metadata  740  indicating an identification number  745  assigned to the physical item  315  selected by customer  105   a , an identification number  750  assigned to the physical shelf  305  from which customer  105   a  selected the physical item  315 , and/or an identification number  755  assigned to the physical rack  210  that includes the physical shelf  305  from which customer  105   a  selected the physical item  315 . In certain embodiments, item identification number  745  may correspond to a zone identification number  745 , identifying a zone of physical shelf  305  from which customer  105   a  selected the physical item  315 . The use of shelf zones will be described in further detail below, in the discussion of  FIGS. 13C and 13D . 
     Virtual store tool  405  may use metadata  740  in any suitable manner. For example, in certain embodiments, when slider  710  on slider bar  705  reaches first marker  715   a , virtual store tool  405  may use metadata  740  to determine that customer  105  selected a physical item  315  from physical rack  210 . Accordingly, virtual store tool  405  may display rack camera segment  425   a  on display  410 , where rack camera segment  425   a  depicts video of physical rack  210 . Rack camera segment  425   a  may be synchronized with camera feed segments  415   a  through  415   d , such that an adjustment of the slider  710  on any of the copies of slider bar  705  leads to a corresponding adjustment of the playback progress of rack camera segment  425   a . Automatically displaying rack camera segment  425   a , in response to slider  710  reaching marker  715  on slider bar  705  may be desirable, to provide a user  120  with a view of physical rack  210  through which user  120  is able to observe customer  105  selecting a physical item  315  from physical rack  210 . In certain embodiments, user  120  may be able to use a second graphical user interface to choose a rack camera  495  from among several potential rack cameras  495  to assign to physical rack  210 , to provide user  120  with a rack camera segment  425   a  that displays the best view of physical rack  210 , as determined by user  120 . This aspect of virtual store tool  405  will be described in further detail below, in the discussion of  FIGS. 11 and 12 . 
       FIG. 8  presents a flowchart illustrating the process by which virtual store tool  405  generates camera feed segments  415  and  425  and displays such segments on display  410 . In step  805 , virtual store tool  405  receives a set of layout camera feeds  605  from a set of layout cameras  490  and a set of and rack camera feeds  620  from a set of rack cameras  495  located in physical store  100 . In step  810 , virtual store tool  405  determines whether a person  105  entered physical store  100 . This disclosure contemplates that virtual store tool  405  may determine that person  105  entered physical store  100  in any suitable manner. For example, in certain embodiments, physical store  100  includes turnstiles  510 , which control the entry of persons  105  into the store. A turnstile  510  may be opened upon person  105  scanning a QR code, located on a physical card or a mobile device  125  belonging to person  105 . Accordingly, the scanning of the QR code may generate a notification, sent to virtual store tool  405 , to indicate that person  105  entered physical store  100 . As another example, in some embodiments, an algorithm  488  may be used to determine that person  105  entered physical store  100 , based on information received from sensors  498  located in physical store  100 . 
     If, in step  810 , virtual store tool  405  determines that person  105  entered physical store  100 , in step  815 , virtual store tool  405  stores a set of camera feed segments  415  and  425  in memory  440 . Each camera feed segment of camera feed segments  415  corresponds to a recording of one of the camera feeds  605  from a starting timestamp  610  to an ending timestamp  615 . Similarly, each rack camera feed segment of rack camera feed segments  425  corresponds to a recording of one of the rack camera feeds  620  from starting timestamp  610  to ending timestamp  615 . Starting timestamp  610  corresponds to the time at which person  105  entered physical store  100 . Ending timestamp  615  corresponds to a predetermined time interval after starting timestamp  610 . 
     In step  820 , virtual store tool  405  assigns copies of a slider bar  705  to each camera feed segment  415  and  425 . Slider  710  on each copy of slider bar  705  moves forward as the corresponding camera feed segment  415  and/or  425  progresses. In certain embodiments, the copies of slider bar  705  are synchronized with one another such that all of camera feed segments  415  and  425  progress together, at the same pace. Additionally, in such embodiments, an adjustment of the slider  710  on any of the copies of slider bar  705  leads to a corresponding adjustment of the playback progress of all of camera feed segments  415  and  425 . This may be desirable for a user  120  using camera feed segments  415  to observe a shopping session of a customer  105  in physical store  100 . User  120  may adjust the playback progress of camera feed segments  415  until user  120  determines that camera feed segments  415  have reached a point of interest to user  120 , rather than viewing the entire, uninterrupted playback of camera feed segments  415 . 
     In step  825 , virtual store tool  405  presents one or more camera feed segments  415  and/or  425  on display  410 , along with corresponding copies of slider bar  705 . For example, virtual store tool  405  may display first camera feed segment  415   a , along with first copy  705   a  of slider bar  705  in a first region of display  410 , second camera feed segment  415   b , along with second copy  705   b  of slider bar  705  in a second region of display  410 , third camera feed segment  415   c , along with third copy  705   c  of slider bar  705  in a third region of display  410 , and fourth camera feed segment  415   d , along with fourth copy  705   d  of slider bar  705  in a fourth region of display  410 . Virtual store tool  405  additionally plays camera feed segments  415  and/or  425 , such that slider  710  on each copy of slider bar  705  progresses. 
     In step  830 , virtual store tool  405  next determines whether an adjustment occurred for any slider  710  in a copy of slider bar  705 , from a first position on slider bar  705  to a second position on slider bar  705 , where the first position corresponds to a first playback time and the second position corresponds to a second playback time. If, in step  830 , virtual store tool  405  determines that an adjustment occurred, virtual store tool  405  next adjusts the playback progress of each of camera feed segments  415  and  425  from the first playback time to the second playback time. 
     In step  840 , virtual store tool  405  determines whether person  105  has left physical store  100 . Virtual store tool  405  may determine that customer  105  has left physical store  100  in any suitable manner. As an example, in certain embodiments, virtual store tool  405  may determine that customer  105  has left physical store  100  based on input received from user  120 . For example, in embodiments in which camera feed segments  415  and/or  425  are displayed on display  410  in the form of a graphical user interface  700 , the graphical user interface  700  may include an interactive button  730  (e.g., an exit customer button) through which user  120  may indicate that he/she observed customer  105  exiting physical store  100  on one or more camera feed segments  415 . As another example, virtual store tool  405  may determine that customer  105  has left physical store  100  based on information received from an algorithm  488  configured to track customers  105  within physical store  100 . Such as algorithm  488  is described in further detail below, in the discussion of  FIGS. 13 through 16 . As a further example, virtual store tool  405  may determine that customer  105  has left physical store  100  based on information received from physical store  100 . For example, physical store  100  may include a set of turnstiles  510  near the exit of physical store  100 . In order to open a turnstile  510  and leave physical store  100 , a customer  105  may be asked to scan the same QR code that he/she used to enter physical store  100 . Scanning the QR code may then send a signal to virtual store tool  405 , indicating that customer  105  has exited physical store  100 . 
     If, in step  840 , virtual store tool  405  determines that person  105  has not left physical store  100 , in step  845 , virtual store tool  405  determines whether camera feed segments  415  and  425  have reached ending timestamp  615 . If, in step  845 , virtual store tool  405  determines that camera feed segments  415  and  425  have not reached ending timestamp  615 , virtual store tool returns to step  830 , to determine whether an adjustment occurred for any slider  710  in a copy of slider bar  705 , from a first position on slider bar  705  to a second position on slider bar  705 . On the other hand, if, in step  845 , virtual store tool  405  determines that camera feed segments  415  and  425  have reached ending timestamp  615 , virtual store tool  405  returns to step  825  and displays a new set of camera feed segments  415  and/or  425  on display  410 , where the new set of camera feed segments corresponds to recordings of camera feeds  605  and/or  620  over a time interval immediately following the previous time interval associated with the previous set of camera feed segments  415  and/or  425 . 
     Modifications, additions, or omissions may be made to method  800  depicted in  FIG. 8 . Method  800  may include more, fewer, or other steps. For example, steps may be performed in parallel or in any suitable order. While discussed as virtual store tool  405  (or components thereof) performing the steps, any suitable component of system  400 , such as device(s)  115  for example, may perform one or more steps of the method. 
     IV. Virtual Emulation of a Shopping Session 
     As described above, camera feed segments  415  and  425  may be used in conjunction with virtual layout  205  in order to virtually emulate a shopping session occurring in physical store  100  and captured by camera feed segments  415  and/or  425 . For example, in certain embodiments, camera feed segments  415  and  425 , along with virtual layout  205 , may be presented to a user  120 , in the form of a graphical user interface  700 . Here, camera feed segments  415  and  425  may be assigned to a customer  105  and capture a shopping session of customer  105  in physical store  100 . User  120  may monitor camera feed segments  415  and  425  to view customer  120  selecting physical items  315  from physical racks  210 . Accordingly, user  120  may populate a virtual shopping cart  420  with virtual items  320  that represent the physical items  315  selected by customer  105 , such that at the end of customer  105 &#39;s shopping session, virtual shopping cart  420  may include a virtual item  320  for each physical item  315  selected by customer  105 . 
       FIGS. 9A through 9D  present further examples of a graphical user interface  700 , displayed on display  410 , that may be used to virtually emulate a shopping session occurring in physical store  100  and captured by camera feed segments  415  and  425 . As illustrated in  FIG. 9A , virtual store tool  405  may display camera feed segments  415  in a first region  955  of display  410 , as described above in the discussion of  FIGS. 7A through 7C . Virtual store tool  405  may additionally display virtual layout  205  in a second region  960  of display  410 . Virtual layout  205  is configured to emulate the physical layout  200  of physical store  100 . As illustrated in  FIG. 9A , virtual layout  205  includes a set of virtual racks  230 . This disclosure contemplates that virtual layout  205  may include any number of virtual racks  230 , where the number of virtual racks  230  displayed on virtual layout  205  corresponds to the number of physical racks  210  in physical store  100 . The layout of virtual racks  230  in virtual layout  205  is configured to emulate the arrangement of the corresponding physical racks  210  in physical store  100 . 
     a. Receiving an Indication of an Event 
     As illustrated in  FIG. 9B , virtual store tool  405  may receive an indication of an event associated with a physical rack  210   a  located in physical store  100 . In certain embodiments, the event associated with physical rack  210   a  may include customer  105  interacting with physical rack  210   a . For example, the event associated with physical rack  210   a  may include customer  105   a  approaching physical rack  210   a , and/or selecting a physical item  315   f  from physical rack  210   a . The indication of the event may include any suitable indication received by virtual store tool  405 . For example, in certain embodiments, the indication of the event may include user  120  selecting virtual shelf  230   a  in virtual layout  205 , in response to viewing customer  105  approaching and/or interacting with physical rack  210   a . As another example, the indication of the event may include slider  710  on slider bar  705  reaching a marker  715 , where the marker  715  indicates the physical rack  210  associated with the event, through metadata  740 . As a further example, in certain embodiments, the indication of the event may include receiving information from an algorithm  488  configured to determine that customer  105  approached and/or selected an item  315  from physical rack  210   a , based on inputs received from sensors  498  located in physical store  100 . 
     In certain embodiments, in which the graphical user interface  700  displayed on display  410  may be used by a user  120  to monitor a shopping session of a customer  105  in physical store  100 , virtual store tool  405  may display a predicted location  950  of customer  105  on virtual layout  205 , based on the current playback progress of camera feed segments  415  and/or  425 . Predicted location  950  may correspond to the probable location of customer  105  in physical layout  200 , as determined by an algorithm  488  configured to track customers  105  in physical store  100 , based on inputs received from sensors  498  located in physical store  100 , at a physical time corresponding to the current playback progress of camera feed segments  415  and/or  425 . This may aid a user  120  in monitoring a particular customer  105   a  in a physical store that includes several other customers  105 . While illustrated in  FIG. 9B  as dot  950  on virtual layout  205 , the predicted location of customer  105  may be presented on virtual layout  205  in any suitable manner. For example, the predicted location may be a line, including the predicted path of customer  105 . In such embodiments, the indication of the event may include user  120  selecting virtual shelf  230   a  in virtual layout  205 , in response to viewing customer  105  approaching and/or interacting with physical rack  210   a  and/or viewing predicted location  950  of customer  105  on virtual layout  205  indicating customer  105 &#39;s proximity to physical rack  210   a.    
     In response to receiving the indication of the event, virtual store tool  405  may display the virtual rack  230   a  corresponding to the physical rack  210   a  associated with the event, in a third region  905  of display  410 , where virtual rack  230   a  is configured to emulate physical rack  210   a . In certain embodiments, third region  905  of display  410  may be located to the right of virtual layout  205 . In certain embodiments, virtual store tool  405  may additionally highlight virtual rack  230   a , in virtual layout  205 , in response to receiving the indication of the event associated with physical rack  210   a . Highlighting virtual rack  230   a  may include any method of distinguishing virtual rack  230   a  from the other virtual racks  230   b  through  230   k . For example, as illustrated in  FIG. 9B , highlighting virtual rack  230   a  may include placing a frame around virtual rack  230   a . Highlighting virtual rack  230   a  may additionally include applying a color to virtual rack  230   a , and/or any other suitable method of distinguishing virtual rack  230   a  from the remaining virtual racks  230   b  through  230   k.    
     As illustrated in  FIG. 9B , virtual rack  230   a , displayed in third region  905  of display  410  includes a set of virtual items  320   a  through  320   h . Virtual items  320   a  through  320   h  are configured to emulate the physical items stored on physical rack  210   a . In certain embodiments, virtual items  320   a  through  320   h  are displayed in third region  905  as a list of items, where the names of the items in the list correspond to the names of the physical items  315   a  through  315   h  stored on physical rack  210   a . In other embodiments, the appearance of virtual rack  230   a , displayed in third region  905 , is configured to emulate the appearance of physical rack  210   a . For example, first virtual shelf  310   a  is configured to emulate first physical shelf  305   a , second virtual shelf  310   b  is configured to emulate second physical shelf  305   b , and third virtual shelf  310   c  is configured to emulate third physical shelf  305   c . In particular, first virtual item  320   a  is located in a first zone  330   a  of first virtual shelf  310   a  to emulate the location of first physical item  315   a  in a first zone  325   a  of first physical shelf  305   a . Similarly, second virtual item  320   b  is located in a second zone  330   b  of first virtual shelf  310   a , to the right of first virtual item  320   a , to emulate the location of second physical item  315   b  in a second zone  325   b  of first physical shelf  305   a , and third virtual item  320   c  is located in a third zone  330   c  of first virtual shelf  310   a , to the right of second virtual item  320   b , to emulate the location of third physical item  315   c  in a third zone  325   c  of first physical shelf  305   a . Virtual items  320   d  through  320   f  are similarly located on second virtual shelf  310   b  to emulate the locations of the physical items  315   d  through  315   f , located on second physical shelf  305   b , and virtual items  320   g  and  320   h  are located on third virtual shelf  310   c  to emulate the locations of physical items  315   g  and  315   h  located on third physical shelf  305   c . To further emulate physical items  315 , each of virtual items  320  may include a graphical representation of the corresponding physical item  315 . 
     In addition to displaying virtual rack  230   a  in region  905  of display  410 , in response to receiving the indication of the event associated with physical rack  210   a , virtual store tool  405  may also display rack camera segment  425   a  in a fourth region  970  of display  410 , as illustrated in  FIG. 9C . In certain embodiments, the fourth region  970  of display  410  is to the right of third region  905 . Rack camera segment  425   a  depicts physical rack  210   a , during the time interval in which the event occurs. For example, in embodiments in which the event includes customer  105  approaching physical rack  210   a , rack camera segment  425   a  depicts customer  105  approaching physical rack  210   a . As another example, in embodiments in which the event includes customer  105  selecting an item  315   f  from physical rack  210   a , rack camera segment  425   a  depicts customer  105  selecting item  315   f  from physical rack  210   a.    
     Rack camera segment  425   a  may be synchronized with camera feed segments  415   a  through  415   f , such that an adjustment of the slider  710  on any of the copies of slider bar  705  leads to a corresponding adjustment of the playback progress of rack camera segment  425   a . Displaying rack camera segment  425   a , in response to receiving the indication of the event may be desirable, to provide a user  120  with a view of physical rack  210   a  through which user  120  is able to observer customer  105  approaching and/or interacting with physical rack  210   a . For example, rack camera segment  425   a  may help user  120  to see if customer  105  selected an item  315  from physical rack  210   a . User  120  may then use this information to populate virtual cart  420 , as described in further detail below, in the discussion of  FIG. 9D . In certain embodiments, user  120  may be able to select a rack camera  495  to assign to physical rack  210  to provide user  120  with a rack camera segment  425   a  that displays the best view of physical rack  210   a , as determined by user  120 . This aspect of virtual store tool  405  will be described in further detail below, in the discussion of  FIGS. 11 and 12 . 
     b. Receiving Information Identifying a Selected Item 
     In certain embodiments in which the event includes person  105  selecting an item from physical shelf  210   a , the indication of the event may include information identifying the item selected by person  105 . For example, if the event includes person  105  selecting physical item  315   f  from physical rack  210   a , the indication of the event received by virtual store tool  405  may include information identifying physical item  315   f  and/or virtual item  320   f . As an example, in certain embodiments, each physical shelf  305  of physical rack  210   a  includes a set of weight sensors  1300 , coupled to zones  325  of the physical shelf  305 , as described below, in the discussion of  FIGS. 13B through 13D . When person  105  removes an item  315  from physical shelf  305 , the weight sensor  1300  coupled to the zone  325  of physical shelf  305  on which the item  315  is located may send information to virtual store tool  405  (either directly, or through other components of system  400 , such as external system  485 ), indicating that the item  315  has been selected from physical shelf  305  of physical rack  210   a . Virtual store tool  405  may use this information to highlight the corresponding virtual item  320  on virtual rack  230   a , displayed in third region  905  of display  410 . For example, a weight sensor coupled to a third zone of second physical shelf  305   b  of physical rack  210   a  may send information to virtual store tool  405  indicating that item  315   f  has been removed from the third zone of second physical shelf  305   b  of physical rack  210   a.    
     As another example, in certain embodiments, the indication of the event may include slider  710  on slider bar  705  reaching a marker  715 . Markers  715  may include metadata  740 , as described above, in the discussion of  FIG. 7C . Metadata  740  may include information indicating an identification number  745  assigned to the physical item  315  selected by customer  105 , an identification number  750  assigned to the physical shelf  305  from which customer  105  selected the physical item  315 , and/or an identification number  755  assigned to the physical rack  210  that includes the physical shelf  305  from which customer  105  selected the physical item  315 . When, for example, slider  710  on slider bar  705  reaches marker  715   a , virtual store tool  405  may read metadata  740  assigned to marker  715   a , to identify that person  105  selected physical item  315   f  from second physical shelf  305   b  of physical rack  210   a . Markers  715  may be added to slider bar  705  in any suitable manner. For example, in certain embodiments, virtual display tool  405  adds markers  715  to slider bar  705  based on information received from an algorithm  488  configured to track customers  105  in physical store  100  and to determine the physical items  315  selected by each customer  105 , based on inputs received from sensors  498  located in physical store  100 . 
     In response to receiving information identifying physical item  315   f  as being the physical item selected by person  105  from physical rack  210   a , virtual store tool  405  may highlight sixth virtual item  320   f , located on second virtual shelf  310   b  of virtual rack  230   a . Highlighting sixth virtual item  320   f  may include any method of distinguishing sixth virtual item  320   f  from the remaining virtual items  320 . For example, highlighting sixth virtual item  320   f  may include placing a frame around sixth virtual item  320   f , as illustrated in  FIG. 9C , enlarging sixth virtual item  320   f  compared to the other virtual items  320 , and/or any other suitable method of distinguishing sixth virtual item  320   f  from the remaining virtual items  320 . 
     c. Populating a Virtual Cart 
     In certain embodiments, the graphical user interface  700  displayed by virtual store tool  405  on display  410  may additionally include a virtual shopping cart  420 , as illustrated in  FIG. 9D . Virtual shopping cart  420  may be used to further emulate a shopping session of a customer  105  in physical store  100 , by storing virtual items  320  corresponding to the physical items  315  selected by person  105  during his/her shopping session. Virtual store tool  405  may display virtual shopping cart  420  in a fifth region  965  of display  410 . In certain embodiments, the fifth region  965  of display  410  is located between virtual rack  230   b , displayed in third region  905  of display  410 , and rack camera segment  425   a.    
     In certain such embodiments, receiving information identifying physical item  315   f  as being the physical item selected by person  105  from physical rack  210   a , may include receiving information associated with dragging and dropping virtual item  320   f , corresponding to physical item  315   f , from virtual rack  230   a , displayed in region  905 , to virtual shopping cart  420 . For example, a user  120  may observe customer  105  selecting physical item  315   f  on camera feeds segments  415   a  through  415   f  and/or rack camera feed segment  425   a . Accordingly, user  120  may select virtual item  320   f  from virtual rack  230   a , where virtual item  320   f  corresponds to physical item  315   f  and is configured to emulate physical item  315   f . User  120  may then drag virtual item  320   f  to virtual shopping cart  420  and drop virtual item  320   f  in virtual shopping cart  420 . In order to help aid user  120  in observing customer  105  selecting a physical item  315  on camera feed segments  415   a  through  415   f  and/or rack camera feed segment  425   a , in certain embodiments, user  120  can make any of the displayed camera feed segments  415   a  through  415   f  and/or rack camera feed segment  425   a  larger than the others, by selecting the camera feed segments  415   a  through  415   f  and/or rack camera feed segment  425   a . For example, user  120  can click on a given camera feed segment  415  or  425 , to instruct virtual store tool  405  to increase the size of the segment presented on display  410 . 
     In response to receiving information identifying physical item  315   f  as the physical item selected by person  105  from physical rack  210   a —either from metadata  740 , weight sensors  1300  coupled to physical shelf  305   b , a dragging and dropping of virtual item  320   f  into virtual shopping cart  420 , and/or any other suitable method of receiving information identifying physical item  315   f —virtual store tool  405  may store virtual item  320   f , corresponding to physical item  315   f , in virtual shopping cart  420 . Virtual shopping cart  420  may store any number of virtual items  320 . For example, as the playback of camera feed segments  415  and  425  progresses, virtual store tool  405  may receive further information identifying an additional, different physical item  315  as having been selected by person  105  from a physical rack  210 . Physical rack  210  may be the same as physical rack  210   a  or different from physical rack  210   a . In response to receiving the information identifying the additional physical item  315 , virtual store tool  405  may store an additional virtual item  320 , corresponding to the additional physical item  315 , in virtual shopping cart  420 . This process may repeat any number of times, such as a number of times corresponding to the number of times the camera feed segments  415  and  425  indicate that a person  105  selected a physical item  315  from a physical rack  210 . 
     As illustrated in  FIG. 9D , in certain embodiments, virtual shopping cart  420  may display each virtual item  320  as a graphical representation of the corresponding physical item  315  and/or a textual description  910  of the corresponding physical item  315 . Virtual shopping cart  420  may also indicate a quantity  915  of each virtual item  320   f  contained in the virtual shopping cart  420 . For example, virtual shopping cart  420  may indicate a quantity  915  of two virtual items  320   f , to emulate the fact that customer  105  selected two physical items  315   f  from physical rack  210   a . Quantity  915  of each virtual item  320  may be increased in any suitable manner. For example, in certain embodiments, quantity  915  of virtual item  320   f  may be increased by dragging and dropping virtual item  320   f , corresponding to physical item  315   f , from virtual rack  230   a , displayed in region  905 , to virtual shopping cart  420  multiple times. As another example, in some embodiments, quantity  915  of virtual item  320   f  may be increased by a user  120  interacting with graphical user interface  700  through an addition button  925 . Similarly, quantity  915  of virtual item  320   f  may be decreased by user  120  interacting with graphical user interface  700  through a subtraction button  925 . User  120  may also remove virtual item  320   f  from virtual shopping cart  420  by interacting with graphical user interface  700  through a trash button  930 . 
     At the end of the shopping session of customer  105  in physical store  100  (i.e., when virtual store tool  405  determines that customer  105  has exited physical store  100 ), virtual shopping cart  420  may be used to charge customer  105  for physical items  315  selected by customer  105  during his/her shopping session, and to send a receipt to customer  105 . Additionally, virtual shopping cart  420  may be used to validate a determination made by an algorithm  488 , based on inputs received from sensors  498  located in physical store  100 , of the physical items  315  selected by customer  105  during his/her shopping session. These aspects of virtual store tool  405  will be described in further detail below, in the discussion of  FIGS. 13 through 16 . 
     d. Method for Virtually Emulating a Physical Shopping Session 
       FIG. 10  presents a flowchart illustrating the manner in which virtual store tool  405  emulates a shopping session of a customer  105  in a physical store  100 , using virtual layout  205  and camera feed segments  415  and/or  425  received from physical store  100 , and capturing the shopping session. In step  1005 , virtual store tool  405  displays virtual layout  205  of virtual store  110 . Virtual layout  205  is configured to emulate a physical layout  200  of physical store  100 . In particular, the arrangement of virtual racks  230  on virtual layout  205  is configured to emulate the physical layout  200  of physical racks  210  in physical store  100 . 
     In step  1010 , virtual store tool  405  determines whether the tool has received an indication of an event associated with a person  105  interacting with a physical rack  210  of physical store  100 , during a shopping session in physical store  100 . This event may include customer  105  approaching a physical rack  210  and/or selecting a physical item  315  from physical rack  210 . The indication of the event may include any suitable information that indicates that customer  105  interacted with physical rack  210 . For example, in certain embodiments, the indication of the event may include user  120  selecting virtual shelf  230  in virtual layout  205 , in response to viewing customer  105  approaching and/or selecting physical item  315  from physical rack  210  on a set of camera feed segments  415 , generated from camera feeds  605  received from layout cameras  490 , located in physical store  100  and capturing the shopping session of customer  105 . As another example, in certain embodiments, the indication of the event may include slider  710  on slider bar  705 , assigned to camera feed segments  415 , reaching a marker  715 . Marker  715  may include metadata  740  indicating the physical rack  210  associated with the event. As a further example, the indication of the event may include receiving information from an algorithm  488  configured to determine that customer  105  approached and/or selected an item  315  from physical rack  210 , based on inputs received from sensors  498  located in physical store  100 . 
     If, in step  1010 , virtual store tool  405  receives an indication of an event associated with person  105  interacting with physical rack  210 , in step  1015 , virtual store tool  405  displays the virtual rack  230  corresponding to physical rack  210  (i.e., configured to emulate physical rack  210 ), in region  905  of display  410 . Additionally, in step  1020 , virtual store tool  405  displays a rack camera segment  425  generated from a rack camera feed  620  received from a rack camera  495  assigned to physical rack  210 . Rack camera segment  425  depicts physical rack  210  during the time interval in which the event occurs. 
     In step  1025 , virtual store tool  405  determines whether the tool has received information identifying a first virtual item  320 . As an example, in certain embodiments, each physical shelf  305  of physical rack  210  includes a set of weight sensors  1300 , coupled to zones of the physical shelf  305 , as described below, in the discussion of  FIGS. 13B through 13D . When person  105  removes an item  315  from physical shelf  305 , the weight sensor  1300  coupled to the zone of physical shelf  305  on which the item  315  is located may send information to virtual store tool  405  (either directly, or through other components of system  400 , such as external system  485 ), indicating that the item  315  has been selected from physical shelf  305  of physical rack  210   a . As another example, in certain embodiments, the indication of the event may include slider  710  on slider bar  705  reaching marker  715   a  or  715   b . Markers  715   a  and  715   b  may include metadata  740 , as described above, in the discussion of  FIG. 7C . Metadata  740  may include information indicating an identification number  745  assigned to the physical item  315  selected by customer  105 , an identification number  750  assigned to the physical shelf  305  from which customer  105  selected the physical item  315 , and/or an identification number  755  assigned to the physical rack  210  that includes the physical shelf  305  from which customer  105  selected the physical item  315 . Accordingly, when slider  710  on slider bar  705  reaches a marker  715 , virtual store tool  405  may receive information identifying physical item  315 , by reading metadata  740  assigned to marker  715 , to identify that person  105  selected physical item  315  from physical shelf  305  of physical rack  210 . Markers  715  may be added to slider bar  705  in any suitable manner. For example, in certain embodiments, virtual display tool  405  adds markers  715  to slider bar  705  based on information received from an algorithm  488  configured to track customers  105  in physical store  100  and to determine the physical items  315  selected by each customer  105 , based on inputs received from sensors  498  located in physical store  100 . As a further example, receiving information identifying physical item  315 /virtual item  320  may include receiving information associated with dragging and dropping virtual item  320 , configured to emulate physical item  315 , from virtual rack  230 , displayed in region  905  of display  410 , to virtual shopping cart  420 . 
     If, in step  1025 , virtual store tool  405  determines that the tool has received information identifying first virtual item  320 /physical item  315 , in step  1030 , virtual store tool  405  stores first virtual item  320  in virtual shopping cart  420 . In step  1035 , virtual store tool  405  determines whether the shopping session of customer  105  has ended (i.e., whether customer  105  has left physical store  100 ). Virtual store tool  405  may determine that customer  105  has left physical store  100  in any suitable manner. As an example, in certain embodiments, virtual store tool  405  may determine that customer  105  has left physical store  100  based on input received from user  120 . For example, in embodiments in which camera feed segments  415  and/or  425  are displayed on a graphical user interface  700  on display  410 , graphical user interface  700  may additionally include an interactive button  730  (e.g., an exit customer button) through which user  120  may indicate that he/she observed customer  105  exiting physical store  100 , on one or more of camera feed segments  415  and/or  425 . As another example, virtual store tool  405  may determine that customer  105  has left physical store  100  based on information received from an algorithm  488  configured to track customers  105  within physical store  100 . As a further example, virtual store tool  405  may determine that customer  105  has left physical store  100  based on information received from physical store  100 . For example, physical store  100  may include a set of turnstiles  510  located near the exit of physical store  100 . In order to open a turnstile  510  and leave physical store  100 , a customer  105  may be asked to scan the same QR code that he/she used to enter physical store  100 . Scanning the QR code may then send a signal to virtual store tool  405 , indicating that customer  105  has exited physical store  100 . In certain embodiments, in response to determining that customer  105  has left physical store  100 , virtual store tool  105  sends a notification to a device  125  of customer  105 , indicating that customer  105  should expect to receive a receipt for his/her shopping session in physical store  105  within a set time period. 
     If, in step  1035 , virtual store tool  405  determines that the shopping session of customer  105  in physical store  100  has not ended, virtual store tool  405  returns to step  1010 , to determine whether customer  105  has selected any additional items  315  from physical racks  210 . Specifically, virtual store tool  405  determines whether the tool has received an indication of an event associated with customer  105  interacting with another physical rack  210 . Physical rack  210  may be the same or a different physical rack from the physical rack with which virtual store tool  405  previously determined that customer  105  interacted. In this manner, virtual store tool  405  may populate virtual cart  420  with any number of virtual items  320 . 
     On the other hand, if, in step  1035 , virtual store tool  405  determines that the shopping session has ended, then, in step  1040 , virtual store tool  405  charges customer  105  for the items  315  selected by customer  105  during the shopping session, based on the virtual items  320  stored in virtual cart  420 , and generates a receipt. The manner in which virtual store tool  405  generates the receipt is described in further detail below, in the discussion of  FIG. 14 . In order to charge customer  105 , this disclosure contemplates that virtual store tool  405  may store payment information for customer  105 , according to an identification number  455  assigned to customer  105 , in memory  440 . Next, in step  1045 , virtual store tool  405  sends the receipt to customer  105 . 
     Modifications, additions, or omissions may be made to method  1000  depicted in  FIG. 10 . Method  1000  may include more, fewer, or other steps. For example, steps may be performed in parallel or in any suitable order. While discussed as virtual store tool  405  (or components thereof) performing the steps, any suitable component of system  400 , such as device(s)  115  for example, may perform one or more steps of the method. 
     V. Virtual Layout Creation 
     In certain embodiments, layout creator  460  of virtual store tool  405  is configured to display a second graphical user interface  1100  through which a user  120  may generate a virtual layout  205  configured to emulate a physical layout  200  of a physical store  100 .  FIGS. 11A and 11B  illustrate an example embodiment of such a graphical user interface  1100 . 
     a. Placing Virtual Racks on Virtual Layout to Emulate the Physical Layout of Physical Racks 
     Layout creator  460  of virtual store tool  405  may generate a virtual layout  205  configured to emulate a physical layout  200  of a physical store, in response to receiving a set of positions and orientations associated with physical racks  210  located in physical store  100 . Layout creator  460  may receive the set of positions and orientations in any suitable manner. For example, virtual store tool  405  may receive the positions and orientations from user  120 , through graphical interface  1100 , by user  120  creating virtual racks  230  on graphical interface  1100  and then dragging and dropping the virtual racks  230  to given positions on virtual layout  205  and/or rotating virtual racks  230  to given orientations on virtual layout  205 . As another example, layout creator  460  may receive the positions and orientations from a file uploaded to virtual store tool  405 . For example, user  120  may upload a file including the positions and orientations using the “drop your file here” button  1150  on graphical user interface  1100 . The file may include a list including pairs of positions and angles. In certain embodiments, each position may specify the center of mass position of a physical shelf  210  in physical store  100 . In some embodiments, each position may specify the position of a given corner of a physical shelf  210  in physical store  100 . The positions may be specified in terms of any coordinate system superimposed on physical layout  200 . For example, each position may be specified as an (x,y) coordinate of a Cartesian coordinate system with an origin located in the middle of physical store  100 . In certain embodiments, each orientation may specify the angle of a physical shelf  210  relative to a given direction. For example, each orientation may specify the angle of a physical shelf  210  relative to the x-axis of the Cartesian coordinate system of the previous example. In certain embodiments, for each physical shelf  210 , the file may additionally include a length and width of the physical shelf  210 . 
     In response to receiving the positions and orientations, layout creator  460  places each virtual rack  230  at a virtual position and with a virtual orientation on virtual layout  205 . Here, the virtual position and the virtual orientation for a given virtual rack  230  on virtual layout  205  represents the physical location and the physical orientation of the corresponding physical rack  210  in physical layout  200 . While  FIG. 11A  illustrates an example including eleven virtual racks  230 , this disclosure contemplates that virtual layout  205  may include any number of virtual racks  230 . Additionally, while  FIG. 11A  illustrates racks  230   a  through  230   k  separated from one another on virtual layout  205 , in certain embodiments, two or more racks may be touching one another. For example, as illustrated in  FIG. 17B , a pair of racks  230   m  and  230  may be positioned back-to-back on virtual layout  205 . Similarly, as illustrated in  FIG. 17B , a pair of racks  230   b  and  230   c  may be positioned side-by-side on virtual layout  205 . In certain embodiments, virtual store tool stores the resulting virtual layout  205  in memory  440 , according to a store identification number  1105 . Additionally, layout creator  460  may store each virtual rack  230  of virtual layout  205  in memory  440  according to a rack identification number  755 . 
     Virtual layout tool  405  may also modify a given virtual layout  205 , in response to receiving a new position and/or orientation for any of virtual shelves  230  on virtual layout  205 . Modifying virtual layout  205  may be desirable in situations in which the physical layout  200  emulated by virtual layout  205  has changed. Layout creator  460  may receive new positions and/or new orientations for virtual shelves  230  in any suitable manner. For example, layout creator  460  may read the new positions and/or orientations from a file. The file may specify a new position and/or orientation for a virtual rack  230   a  using the identification number  755   a  assigned to virtual rack  230   a . For example, for each virtual rack  230 , the file may include the identification number  755  assigned to the virtual rack  230 , Cartesian coordinates (x,y) of the new position for the rack, and an angle measured relative to the x-axis, specifying the new orientation for the rack. As another example, layout creator  460  may receive a new positions and/or orientation for a virtual rack  230 , based on input received from graphical user interface  1100 . For example, as illustrated in  FIG. 11A , layout creator  460  may receive input representing a dragging of virtual rack  230   k  from a first position on virtual layout  205  to a new position  1130  on virtual layout  205 . In response to receiving such input, layout creator  460  may place virtual rack  230   k  at the new virtual position  1130 , as illustrated in  FIG. 11B . As another example, virtual store tool  205  may receive input representing a rotation of virtual rack  230  from a first orientation to a new orientation. In response to receiving such input, layout creator  460  may place virtual rack  230  on virtual layout  205  with this new orientation. 
     b. Placing Virtual Items on Virtual Racks to Emulate the Physical Items Located on Physical Racks 
     In addition to placing virtual racks  230  on virtual layout  205 , layout creator  460  is operable to populate virtual racks  230  with virtual items  320 . For example, layout creator  460  may receive a planogram specifying the physical items  315  to be placed on each physical rack  210  in physical store  100 . For example, for each physical rack  210 , the planogram may include a list of physical items  315  to be placed on the physical rack  210 . 
     For each physical item  315 , the list may specify the shelf  305  of physical rack  210  on which the physical item  315  is to be placed, as well as the zone  325  of each shelf  305  on which the physical item  315  is to be placed. In response to receiving the planogram, layout creator  460  may place corresponding virtual items  320  on virtual racks  230 . As another example, layout creator  460  may receive a list of virtual items  320  for each virtual rack  230 , with each virtual item  320  in the list associated with a physical item  315 . Such a list may specify a store identification number  1105 , a rack identification number  755 , a shelf identification number  750 , and/or a zone identification number  745  for each virtual item  320  emulating a physical item  315 . Here, store identification number  1105  identifies a physical store  100  storing physical item  315 , rack identification number  755  identifies a physical rack  210  in physical store  100  holding physical item  315 , shelf identification number  750  identifies a physical shelf  305  of physical rack  210 , on which physical item  315  is placed, and zone identification number  745  identifies a zone of physical shelf  305  housing physical item  315 . In certain embodiments, zone identification number  745  may correspond to a sensor identification number of a sensor  498  coupled to the zone of physical shelf  305  housing physical item  315 . Layout creator  460  may then store the virtual item  320  in memory  440  according to store identification number  1105 , rack identification number  755 , shelf identification number  750 , and zone identification number  745 , where layout creator  460  has assigned store identification number  1105  to virtual layout  205 , rack identification number  755  to virtual rack  230 , shelf identification number  750  to virtual shelf  310 , and zone identification number  745  to a virtual zone of virtual  310  configured to emulate the physical zone of physical shelf  305  housing physical item  315 . The division of physical shelves  305  and virtual shelves  310  into zones is described in further detail below, in the discussion of  FIGS. 13C and 13D . 
     As another example, layout creator  460  may receive virtual items  320  to store on a given virtual rack  230  from a drop-down-menu that includes a scrollable list of items. An example of such a drop-down-menu  1135  is illustrated in  FIG. 11B . As illustrated in  FIGS. 11A and 11B , user  120  may select a physical item name  1130  from drop-down-menu  1135  for a given virtual shelf  230 . In response, layout creator  460  may store the virtual item  320  associated with the physical item  315  having physical item name  1130  in virtual shelf  230 . 
     Second graphical user interface  1100  may also be used to assign rack cameras  495  to each of virtual racks  230  in virtual layout  205 . As illustrated in  FIGS. 11A and 11B , layout creator  460  may present a set of rack camera feed segments  425   a  through  425   f  to user  120 , through second graphical user interface  1100 . Each rack camera feed segment  425  is generated from a rack camera feed  620  received from a rack camera  495  located in physical store  100 . In certain embodiments, a user  120  may select a rack camera  495  to assign to a virtual rack  230 . User  120  may select a given rack camera  495  based on which of rack camera feed segments  425   a  through  425   f  provides user  120  with the best view of physical rack  210  (emulated by virtual rack  230 ), as determined by user  120 . User  120  may select rack camera  495  in any suitable manner. As an example, in certain embodiments, user  120  may assign a given rack camera  495  to virtual rack  230  by clicking on the rack camera segment  425  generated by rack camera  495  and displayed on second graphical user interface  1100 . For example, user  120  may click on rack camera segment  425   a  to assign rack camera  495   a , which generated rack camera segment  425   a , to virtual rack  230   a . In response to user  120  clicking on rack camera segment  425   a , layout creator  460  may associate a rack camera identification number  1125   a , assigned to rack camera  495   a , with virtual rack  230   a.    
     Second graphical user interface  1100  may be used to generate any number of virtual layouts  205 , which layout creator  460  may store in memory  440  according to store identification numbers  1105 . Virtual store tool  405  may later retrieve a given virtual layout  205  using the associated store identification number  1105  and display the virtual layout  205  on display  410 . 
     Layout creator  460  may be a software module stored in memory  440  and executed by processor  435 . An example of the operation of layout creator  460  is as follows: (1) receive a set of positions and orientations associated with physical racks  210  located in physical store  100 ; (2) for each received position and orientation, place a virtual rack  230  on virtual layout  205 , at a virtual position and with a virtual orientation representing the physical position and physical orientation of the corresponding physical rack  210  in physical layout  200 ; (3) if input is received, associated with a new position for a virtual rack  230 , place virtual rack  230  at the new position on virtual layout  205 ; (4) if input is received, associated with a new orientation for a virtual rack  230 , place virtual rack  230  on virtual layout  205 , with the new orientation; (5) for each virtual rack  230 , receive a set of virtual items  320 , and place the set of virtual items  320  on virtual rack  230 ; (6) for each virtual rack  230 , assign a rack camera  495  to the virtual rack. 
     c. Method for Generating a Virtual Layout 
       FIG. 12  presents a flowchart illustrating the manner in which virtual store tool  405  may generate a virtual layout  205  configured to emulate a physical layout  200  of a physical store  100 . In step  1205 , virtual store tool  405  places a set of virtual racks  230  at virtual positions and with virtual orientations on virtual layout  205 , where the virtual positions and the virtual orientations of virtual racks  230  are chosen to emulate the physical positions and physical orientations of physical racks  210  in physical store  100 . Virtual store tool  405  may receive the virtual positions and virtual orientations in any suitable manner. For example, virtual store tool  405  may receive the positions and orientation from user  120  through graphical user interface  1100 . As another example, virtual store tool  405  may receive the positions and orientations from a file uploaded to virtual store tool  405 . 
     In step  1210 , virtual store tool  405  determines whether input representing a dragging of a virtual rack  230  to a new virtual position was received. If, in step  1210 , virtual store tool  405  determines that input representing a dragging of a virtual rack  230  to a new virtual position was received, in step  1215 , virtual store tool  405  places virtual rack  230  at the new virtual position and proceeds to step  1220 . On the other hand, if, in step  1210 , virtual store tool  405  does not determine that input representing a dragging of a virtual rack  230  to a new virtual position was received, virtual store tool  405  simply proceeds to step  1220 . 
     In step  1220 , virtual store tool  405  determines whether input representing a rotation of a virtual rack  230  from an initial orientation to a new orientation was received. If, in step  1220 , virtual store tool  405  determines that input representing a rotation of a virtual rack  230  from an initial orientation to a new orientation was received, virtual store tool  405  adjusts the orientation of the virtual rack  230  from the initial orientation to the new orientation, in step  1225 , and proceeds to step  1230 . On the other hand, if, in step  1220 , virtual store tool  405  determines that input representing a rotation of a virtual rack  230  from an initial orientation to a new orientation was not received, virtual store tool  405  proceeds to step  1230 . 
     In step  1230 , virtual store tool  405  receives, for each virtual rack  230 , a set of virtual items  320  assigned to the virtual rack  230 . Virtual store tool  405  may receive the sets of virtual items  320  in any suitable manner. For example, virtual store tool  405  may receive a planogram, specifying the physical items  315  to be placed on each physical rack  210  in physical store  100 . For example, for each physical rack  210 , the planogram may include a list of physical items  315  to be placed on the physical rack. For each physical item  315 , the list may specify the shelf  305  of physical rack  210  on which the physical item  315  is to be placed, as well as the zone  325  of each shelf  305  on which the physical item  315  is to be placed. As another example, virtual store tool  405  may receive virtual items  320  from a drop-down-menu  1135  displayed on display  410 . The drop-down-menu  1135  may include a list of physical items  315  from which a user  120  may select one or more items to be placed on each virtual rack  230 . Drop-down-menu  1135  may include a scrollable list of any number of physical items  315 . In response to receiving a selection of a physical item  315  from drop-down-menu  1135 , virtual store tool  405  may identify the corresponding virtual item  320 . After virtual store tool  405  has received the sets of virtual items  320 , in step  1235 , virtual store tool  405  places each set of virtual items  320  on the corresponding virtual rack  230 . 
     In step  1240 , virtual store tool  405  assigns a rack camera  495  to each virtual rack  230 . Virtual store tool  405  may assign a rack camera  495  to each virtual rack  230  in any suitable manner. For example, in certain embodiments, a user  120  may select rack cameras  495  to assign to virtual racks  230 . User  120  may select a given rack camera  495  for a virtual rack  230  based on which of rack camera feed segments  425   a  through  425   f  provides user  120  with the best view of the corresponding physical rack  210 , as determined by user  120 . In step  1245 , virtual store tool  405  stores virtual layout  205  in memory  440 . In certain embodiments, virtual store tool  405  may store virtual layout  205  in memory  440  according to a store identification number  1105 . 
     Modifications, additions, or omissions may be made to method  1200  depicted in  FIG. 12 . Method  1200  may include more, fewer, or other steps. For example, steps may be performed in parallel or in any suitable order. While discussed as virtual store tool  405  (or components thereof) performing the steps, any suitable component of system  400 , such as device(s)  115  for example, may perform one or more steps of the method. 
     VI. Use in Conjunction with an External Algorithm Configured to Track Customers in the Physical Store 
     Virtual store tool  405  may be used in conjunction with an algorithm  488 , generated by external system  485 , and configured to track customers  105  and to determine items  315  selected by a given customer  105   a  during a shopping session of customer  105   a  in physical store  100 , based on inputs received from sensors  498  located in physical store  100 . For example, virtual store tool  405  may be used to validate the determinations made by algorithm  488  and/or to help improve the accuracy of algorithm  488 .  FIGS. 13 through 16  are used to describe this aspect of virtual store tool  405 . 
     a. Algorithm Input Sensors 
     As described above, external algorithm  488  is configured to track customers  105  and to determine items selected by a customer  105  during a shopping session in physical store  100 , based on inputs received from sensors  498  located in physical store  100 . This disclosure contemplates that physical store  100  may include any type of suitable sensors  498 . For example, physical store  100  may include cameras, light detection and range sensors, millimeter wave sensors, weight sensors, and/or any other appropriate sensors, operable to track a customer  105  in physical store  100  and detect information associated with customer  105  selecting one or more items from physical store  100 . 
       FIGS. 13A through 13D  present examples of an embodiment in which physical store  100  includes both cameras  1305  and weight sensors  1300  for sensors  498 . This disclosure contemplates that external system  485  may process position information received from the cameras  1305 , and weight information received from the weight sensors  1300 , using an algorithm  488 , to determine which customers  105  removed which items from physical display racks  210  located in physical store  100 . In this manner, external system  485  may generate an algorithmic shopping cart of items determined by the algorithm  488  to have been selected by a customer  105 , during a shopping session in physical store  100 . 
     As seen in  FIG. 13A , the interior of physical store  100  may include an array of cameras  1305  positioned on the ceiling of store  100 . In certain embodiments, this array of cameras  1305  may include layout cameras  490  and/or rack cameras  495 . In other embodiments, the array of cameras  1305  is separate from layout cameras  490  and rack cameras  495 . Generally, the array of cameras  1305  produces videos of portions of the interior of physical store  100 . These videos may include frames or images of customers  105  within the space. External system  485  processes these frames from array of cameras  1305  to detect customers  105  within the frames. 
     As illustrated in  FIG. 13A , the array of cameras  1305  may include cameras  1305  arranged in a grid pattern across the ceiling of physical store  100 . Although this disclosure shows the array of cameras  1305  including fifty cameras  1305 , the array of cameras  1305  may include any suitable number of cameras  1305 . Generally, cameras  1305  in the array of cameras  1305  are arranged to form a rectangular array. In the example of  FIG. 13A , the array of cameras  1305  is a 5×10 array of cameras  1305  (e.g., five rows and ten columns of cameras  1305 ). The array of cameras  1305  may be arranged in an array of any suitable dimensions. 
     Each camera  1305  is communicatively coupled to external system  485  and communicates captured video to external system  485 . Cameras  1305  are communicatively coupled to external system  485  in any suitable manner. For example, cameras  1305  may be hardwired to components of external system  485 . As another example, cameras  1305  may wirelessly couple to external system  485  using any suitable wireless protocol (e.g., WiFi). 
     Cameras  1305  may be any suitable devices for capturing videos of the interior space of physical store  100 . For example, cameras  1305  may be three-dimensional cameras that can capture two-dimensional video of the space (e.g., x-y plane) and also detect the heights of people and/or objects in the video. As another example, cameras  1305  may be two-dimensional cameras that capture two-dimensional videos of the space. The array of cameras  1305  may include a mixture of different types of cameras  1305 . 
       FIG. 13B  presents an example weight sensor  1300  that may be coupled to a shelf  305  of a physical rack  210  of physical store  100  to detect the weight of items  315  positioned on the shelf  305 . Weight sensor  1300  may then communicate this information to external system  485 . External system  485  tracks the weights detected by weight sensors  1300  to determine if, and when, items  315  are removed from the physical rack  210 . 
     As seen in  FIG. 13B , weight sensor  1300  includes plates  1315   a  and  1315   b , load cells  1310   a ,  1310   b ,  1310   c , and  1310   d , and wires  1320   a ,  1320   b ,  1320   c ,  1320   d , and  1325 . Generally, the components of weight sensor  1300  are assembled so that weight sensor  1300  can detect a weight of items  315  positioned above or near weight sensor  1300 . 
     Plates  1315  form surfaces that distribute the weight of items  315  across the surfaces. Plates  1315  may be made of any suitable material, such as, for example, metal and/or plastic. Items  315  may be positioned above or near plates  1315  and the weight of these items  315  may be distributed across plates  1315 . 
     Load cells  1310  are positioned between plates  1315   a  and  1315   b . Load cells  1310  produce electrical signals based on the weight experienced by the load cells  1310 . For example, load cells  1310  may be transducers that convert an input mechanical force (e.g., weight, tension, compression, pressure, or torque) into an output electrical signal (e.g., current or voltage). As the input force increase, the output electrical signal may increase proportionally. Load cells  1310  may be any suitable type of load cell (e.g., hydraulic, pneumatic, and strain gauge). Although load cells  1310  are illustrated as being cylindrical in shape, they may be any suitable size and shape that is appropriate for the particular implementation contemplated. 
     The signals from load cells  1310  may be analyzed to determine an overall weight of items  315  positioned above or near weight sensor  1300 . Load cells  1310  may be positioned such that the weight of items  315  positioned above or near weight sensor  1300  is evenly distributed to each load cell  1310 . In the example of  FIG. 13B , load cells  1310  are positioned substantially equidistant from corners of plates  1315   a  and  1315   b . For example, load cell  1310   a  is positioned a distance d 1  from a corner of plates  1315   a  and  1315   b . Load cell  1310   b  is positioned a distance d 2  from a corner of plates  1315   a  and  1315   b . Load cell  1310   c  is positioned a distance d 3  from a corner of plates  1315   a  and  1315   b . Load cell  1310   d  is positioned a distance d 4  from a corner of  1315   a  and  1315   b . Distances d 1 , d 2 , d 3  and d 4  may be substantially equal to each other. This disclosure contemplates distances differing by 5 to 10 millimeters and still being considered substantially equal to each other. By positioning load cells  1310  substantially equal distances from corners of plates  1315   a  and  1315   b , the weight of items positioned above or near weight sensor  1300  is evenly distributed across the load cells  1310 . As a result, the total weight of items positioned above or near weight sensor  1300  can be determined by summing the weights experienced by the individual load cells  1310 . 
     Load cells  1310  communicate electric signals that indicate a weight experienced by the load cells  1310 . For example, the load cells  1310  may produce an electric current that varies depending on the weight or force experienced by the load cells  1310 . Each load cell  1310  is coupled to a wire  1320  that carries the electric signal. In the example of  FIG. 13B , load cell  1310   a  is coupled to wire  1320   a ; load cell  1310   b  is coupled to wire  1320   b ; load cell  1310   c  is coupled to wire  1320   c ; and load cell  1310   d  is coupled to wire  1320   d . Wires  1320  are grouped together to form wire  1325  that extends away from weight sensor  1300 . Wire  1325  carries the electric signals produced by load cells  1310  to a circuit board that communicates the signals to external system  485 . 
     In certain embodiments, and as illustrated in  FIG. 13C , multiple weight sensors  1300  may be coupled to a given physical shelf  305  of physical rack  210 . For example, in the example illustrated in  FIG. 13C , physical shelf  305  includes four weight sensors  1300 . The locations of weight sensors  1300  in physical shelf  305  may define a set of zones of physical shelf  305 . For example, first weight sensor  1300   a  may define a first zone  325   a , second weight sensor  1300   b  may define a second zone  325   b , third weight sensor  1300   c  may define a third zone  325   c , and fourth weight sensor  1300   d  may define a fourth zone  325   d . In certain embodiments, each zone  325  may be associated with a different physical item  315 , such that each weight sensor  1300  is configured to detect weight changes associated with the removal of a specific item  315  from physical shelf  305 . Virtual shelves  310  may similarly be divided in a set of zones  330   a  through  330   d , with each virtual zone  330  associated with a given virtual item  320 , to emulate zones  325   a  through  325   d  of physical shelves  305 . In this manner, when a signal is received from a weight sensor  1300   a , indicating the removal of a physical item  315   a  stored in first physical zone  325   a  of physical shelf  305 , the signal may be used to identify virtual item  320   a , stored in first virtual zone  330   a , based on the correspondence between first physical zone  325   a  and first virtual zone  330   a.    
     b. Comparison Between Virtual Shopping Cart and Algorithmic Shopping Cart 
     In certain embodiments, virtual store tool  405  may be used in conjunction with an algorithm  488  trained to track customers  105  within physical store  100  and to determine the physical items  315  selected by a customer  105  during a shopping session in physical store  100 , based on inputs  498  received from sensors  498  located in physical store  100 . As described above, in the discussion of  FIGS. 13A through 13D , sensors  498  may include cameras  1305  and weight sensors  1300 . 
     Algorithm  488  may be programmed to determine the items  315  selected by customers  105  in physical store  100  in any suitable manner. For example, algorithm  488  may process video frames, received by external system  485  from the array of cameras  1305 , to determine coordinates for customers  105  detected in the frames. Algorithm  488  may then timestamp these coordinates based on when the frames were received. Based on the coordinates and the timestamps, algorithm  488  may determine the positions of customers  105  in physical store  100 . Algorithm  488  may also process signals received by external system  485  from weight sensors  1300 , to determine when items  315  were removed from physical shelves  305 . Using the positions of customers  105  in physical store  100 , and the determinations of when items  315  were removed from physical shelves  305 , algorithm  488  may determine which customers  105  took which items  315 . 
     As an example of the use of virtual store tool  105  in conjunction with algorithm  488 , virtual store tool  405  may be used to resolve discrepancies between the physical items  315  determined by algorithm  488  to have been selected by customer  105  during a shopping session in physical store  100  and the virtual items  320  determined by virtual store tool  405  to have been selected by customer  105  during the shopping session. When discrepancies exist between the physical items  315  determined by algorithm  488  to have been selected by customer  105  and the virtual items  320  determined by virtual store tool  405  to have been selected by customer  105 , the determination made by virtual store tool  405  may also be used to improve the future accuracy of algorithm  488 .  FIGS. 14 through 16  are used to describe these aspects of virtual store tool  405 . 
       FIG. 14  illustrates resolution component  475  of virtual store tool  405 . Resolution component  475  is configured to compare virtual shopping cart  420  to algorithmic shopping cart  1420 . This disclosure contemplates that virtual store tool  405  may receive algorithmic shopping cart  1420  from external system  485 . Algorithmic shopping cart  1420  may include physical items  315  determined by an algorithm  488  to have been selected by customer  105 , based on inputs received from sensors  498  (including cameras  1305  and weight sensors  1300 ) located in physical store  100 . For example, algorithmic shopping cart may include first physical item  315   l , second physical item  315   m , and third physical item  315   n . Each of physical items  315   l  through  3135   n  is associated with a given purchase price. For example, first physical item  315   l  is associated with a first physical price  1440 , second physical item  315   m  is associated with a second physical price  1450 , and third physical item  315   n  is associated with a third physical price  1460 . While illustrated in  FIG. 14  as including three physical items  315 , this disclosure contemplates that algorithmic shopping cart  1420  may include any number of physical items  315 . Virtual shopping cart  420  includes first virtual item  320   i , second virtual item  320   j , and third virtual item  320   k , each determined by virtual store tool  405  to have been selected by customer  105  during a shopping session in physical store  100 . Each of virtual items  320   i  through  320   k  is associated with a given purchase price. For example, first virtual item  320   i  is associated with a first virtual price  1410 , second virtual item  320   j  is associated with a second virtual price  1420 , and third virtual item  320   k  is associated with a third virtual price  1425 . While illustrated in  FIG. 14  as including three virtual items  320 , this disclosure contemplates that virtual shopping cart  420  may include any number of virtual items  320 . Furthermore, virtual shopping cart  420  need not include the same number of items as algorithmic shopping cart  1420 . 
     Resolution component  475  is configured to perform a comparison  1430  between the contents of virtual shopping cart  420  and the contents of algorithmic shopping cart  1420  to determine if any discrepancies  1435  exist between the two carts. Resolution component  475  may determine either that: (1) the two carts are consistent with one another; or (2) the two carts are inconsistent with one another. In certain embodiments, in response to determining that the two carts are inconsistent with one another, resolution component  475  may determine that (1) the two carts are inconsistent with one another because virtual cart  420  includes an error; or (2) the two carts are inconsistent with one another, because algorithmic cart  1420  includes an error. 
     Determining that the two carts are consistent with one another may include determining that first virtual item  320   i , present in virtual shopping cart  420 , is configured to emulate first physical item  315   l , which is present in algorithmic shopping cart  1420 , second virtual item  320   j , present in virtual shopping cart  420 , is configured to emulate second physical item  315   m , which is present in algorithmic shopping cart  1420 , and third virtual item  320   k , present in virtual shopping cart  420 , is configured to emulate third physical item  315   n , which is present in algorithmic shopping cart  1420 . On the other hand, determining that the two carts are inconsistent with one another may include: (1) determining that virtual shopping cart  420  includes more virtual items  320  than algorithmic shopping cart  1420  includes physical items  315 ; (2) determining that virtual shopping cart  420  includes fewer virtual items  320  than algorithmic shopping cart  1420  includes physical items  315 ; (3) determining that a virtual item  320 , present in virtual shopping cart  420 , is configured to emulate a physical item  315 , which is not present in algorithmic shopping cart  1420 ; or (4) determining that no virtual item  320 , present in virtual shopping cart  420 , is configured to emulate a physical item  315 , present in algorithmic shopping cart  1420 . 
     This disclosure contemplates that in embodiments in which resolution component  475  may determine that the two carts are inconsistent with one another because one of the two carts includes an error, resolution component  475  may determine that one of the two carts includes an error in any suitable manner. As an example, in certain embodiments, resolution component  475  may always determine that algorithmic shopping cart  1420  includes an error any time a discrepancy exists between virtual shopping cart  420  and algorithmic shopping cart  1420 . As another example, resolution component  475  may determine that one of the carts includes an error, based on the type of discrepancy  1435  that exists between virtual cart  420  and algorithmic cart  1420 . For example, resolution component  475  may be configured to determine that virtual shopping cart  420  includes an error when the discrepancy  1435  between the two carts is a result of differing quantities of a particular item between the two carts. For instance, virtual cart  420  may include one instance of first virtual item  320   i , configured to emulate first physical item  315   l , while algorithmic shopping cart  1420  may include two instances of first physical item  315   l . In such situations, it may be more likely that virtual shopping cart  420  includes an incorrect quantity of first virtual item  320   i , than algorithmic shopping cart  1420  includes an incorrect quantity of first physical item  315   l , as it may be difficult to tell from camera feed segments  415  and/or  425  that customer  105  selected more than one physical item  315   l  from a given physical shelf  305 . On the other hand, the information received from weight sensors  1300  in physical store  100 , may more accurately indicate that more than one physical item  315   l  was selected from physical shelf  305 . For discrepancies  1435  that do not include differing quantities of a particular item between the two carts, resolution component  475  may be configured to determine that algorithmic shopping cart  1420  includes an error, as a default. 
     As another example, resolution component  475  may be configured to determine that either virtual shopping cart  420  or algorithmic shopping cart  1420  includes an error based on input received from user  120 . For example, in response to determining that a discrepancy  1435  exists between virtual shopping cart  420  and algorithmic shopping cart  1420 , resolution component  475  may send a message to device  115 , advising user  120  of the discrepancy  1435 . User  120  may then send a response to virtual store tool  405  indicating either that virtual shopping cart  420  includes an error, or that algorithmic shopping cart  1420  includes an error. User  120  may determine that one of virtual shopping cart  420  and algorithmic shopping cart  1420  include an error in any suitable manner. As an example, user  120  may review camera feed segments  415  and/or  425  to either confirm the contents of virtual shopping cart  420  or determine that virtual shopping cart  420  includes an error. For example, if the discrepancy includes an absence of a physical item  315  from algorithmic shopping cart  1420 , where the corresponding virtual item  320  is present in virtual shopping cart  420 , user  120  may review camera feed segments  415  and/or  425  to confirm that the camera feed segments capture customer  105  selecting the physical item  315  from a physical rack  210 . As another example, if the discrepancy includes the presence of a physical item  315  in algorithmic shopping cart  1420 , where the corresponding virtual item  320  is absent from virtual shopping cart  420 , user  120  may review camera feed segments  415  and/or  425  to either (1) confirm that user  120  never observes customer  105  selecting the physical item  315  from a physical rack  210 ; or (2) confirm that while user  120  views customer  105  selecting the physical item  315  from a physical rack  210  in camera feed segments  415  and/or  425 , user  120  subsequently views the customer  105  setting down the physical item  315  and leaving the physical store  100  with the item  315 . 
     Resolution component  475  is also configured to generate a receipt  1465  for customer  105 . In certain embodiments, resolution component  475  generates receipt  1465  based on the contents of virtual shopping cart  420 . For example, resolution component  475  may generate receipt  1465  based on the contents of virtual shopping cart  420  before performing comparison  1430 . In other embodiments, resolution component  475  may generate receipt  1465  based on comparison  1430 . For example, if resolution component  475  determines that virtual shopping cart  420  is consistent with algorithmic shopping cart  1420 , resolution component  475  may generate receipt  1465   a  for customer  105 . Receipt  1465   a  may include the total cost  1475  of first virtual item  320   i , second virtual item  320   j , and third virtual item  320   k , as determined from first virtual price  1410 , second virtual price  1420 , and third virtual price  1425 . Here, since virtual cart  420  is consistent with algorithmic shopping cart  1420 , determining the total cost  1475  of first virtual item  320   i , second virtual item  320   j , and third virtual item  320   k  is equivalent to determining the total cost of first physical item  315   l , second physical item  315   m , and third physical item  315   n . As another example, if resolution component  475  determines that virtual shopping cart  420  includes an error, resolution component  475  may generate receipt  1465   b  for customer  105 . Receipt  1465   b  may include the total cost  1480  of first physical item  315   l , second physical item  315   m , and third physical item  315   n , as determined from first physical price  1440 , second physical price  1450 , and third physical price  1460 . As a further example, if resolution component  475  determines that algorithmic shopping cart  1420  includes an error, resolution component  475  may generate receipt  1465   c  for customer  105 . Receipt  1465   c  may include the total cost  1475  of first virtual item  320   i , second virtual item  320   j , and third virtual item  320   k , as determined from first virtual price  1410 , second virtual price  1420 , and third virtual price  1425 . Once resolution component  475  has generated a receipt  1465  for customer  105 , resolution component  475  may charge customer  105 , based on receipt  1465 , and/or send receipt  1465  to device  125 , belonging to customer  105 . 
     Resolution component  475  may be a software module stored in memory  440  and executed by processor  435 . An example of the operation of resolution component  475  is as follows: (1) receive virtual shopping cart  420  and algorithmic shopping cart  1420 ; (2) determine if the number of virtual items  320  in virtual shopping cart  420  is the same as the number of physical items  315  in algorithmic shopping cart  1420 ; (3) if the number of virtual items  320  in virtual shopping cart  420  is different from the number of physical items  315  in algorithmic shopping cart  1420 , label the two carts as inconsistent; (4) if the number of virtual items  320  in virtual shopping cart  420  is the same as the number of physical items  315  in algorithmic shopping cart  1420 , determine if virtual shopping cart  420  includes any virtual items  320  for which algorithmic shopping cart  1420  does not include a corresponding physical item  315 ; (5) if virtual shopping cart  420  includes any virtual items  320  for which algorithmic shopping cart  1420  does not include a corresponding physical item  315 , label the two carts as inconsistent; (6) if virtual shopping cart  420  does not include any virtual items  320  for which algorithmic shopping  1420  does not include a corresponding physical item  315 , label the two carts as consistent; (7) if the two carts are labelled as consistent generate receipt  1465   a ; (8) if the two carts are labelled as inconsistent, determine whether virtual cart  420  includes an error; (9) if virtual cart  420  includes an error, generate receipt  1465   b ; (10) if virtual cart  420  does not include an error, generate receipt  1465   c.    
     c. Algorithm Feedback 
     In certain embodiments, virtual store tool  405  may be used in conjunction with algorithm  488 , to improve the accuracy of the determinations made by algorithm  488 . Specifically, machine learning module  480  may provide feedback to algorithm  488 , based on a comparison of the contents of virtual shopping cart  420  to the contents of algorithmic shopping cart  1420 .  FIG. 15  illustrates the operation of machine learning module  480 . 
     As illustrated in  FIG. 15 , in certain embodiments, machine learning module  480  receives algorithmic shopping cart  1420  and virtual shopping cart  420 . Machine learning module  480  may then perform a comparison  1430  of the contents of virtual shopping cart  420  and the contents of algorithmic shopping cart  1420 , to determine if a discrepancy  1435  exists between the two carts. In certain other embodiments, machine learning module  480  may receive an indication that a discrepancy  1435  exists between virtual shopping cart  420  and algorithmic shopping cart  1420  directly from resolution component  475 . 
     Discrepancy  1435  may include any inconsistency between virtual shopping cart  420  and algorithmic shopping cart  1420 . For example, discrepancy  1435  may include an absence of a physical item  315   a  from algorithmic shopping cart  1420 , where the corresponding virtual item  320   a  is present in virtual shopping cart  420 . Such a discrepancy may occur when a weight sensor  1300  coupled to a physical shelf  305  on which physical item  315   a  is placed, failed to detect the selection of the physical item  315   a  from physical shelf  305 . As another example, discrepancy  1435  may include the presence of a physical item  315   b  in algorithmic shopping cart  1420 , where the corresponding virtual item  320   b  is absent from virtual shopping cart  420 . Such a discrepancy may arise from algorithm  488  failing to detect that a customer  105 , who initially selected physical item  315   b  from a physical rack  210 , put item  315   b  down and did not leave physical store  100  with the item  315   b . As a further example, discrepancy  1435  may include an identification swap between a first customer  105   a  and a second customer  105   b , such that a first item  315   a  selected by first customer  105   a  is absent from the algorithmic shopping cart  1420  assigned to first customer  105   a , and present in an algorithmic shopping cart  1420  assigned to second customer  105   b . Such an identification swap may occur in the customer tracking component of algorithm  488 . 
     In response to determining that a discrepancy exists between algorithmic shopping cart  1420  and virtual shopping cart  420 , machine learning module  480  may determine a subset  1500  of inputs received by sensors  498  (including cameras  1305  and weight sensors  1300 ) and associated with the discrepancy. As an example, machine learning module  480  may determine a timestamp range of camera feed segments  415  and/or  425  during which discrepancy  1435  occurred. For example, machine learning module  480  may determine that a virtual item  320   a  was added to virtual shopping cart  420 , based on a portion of customer  105 &#39;s shopping session captured between a first timestamp and a second timestamp of camera feed segments  415  and/or  425 , but that a corresponding physical item  315   a  was not added to algorithmic shopping cart  1420 . As a result, machine learning module  480  may determine a subset  1500  of inputs received from sensors  498  during the same time interval (i.e., the time interval occurring between the first timestamp and the second timestamp). Subset  1500  may include a subset  1505  of inputs received from cameras  1305  and/or a subset  1510  of inputs received from weight sensors  1300 . 
     In response to identifying subset  1500 , associated with discrepancy  1435 , machine learning module  480  may attach metadata  1540  to subset  1500 . This disclosure contemplates that metadata  1540  may include any information explaining and/or addressing discrepancy  1435 . For example, attaching metadata  1540  to subset  1500  may include attaching a label to one or more frames received from cameras  1305  indicating that the frames illustrate customer  105   a  selecting item  315 , rather than customer  105   b  selecting the item, as originally determined by algorithm  488 . In response to attaching metadata  1540  to subset  1500 , external system  485  may use subset  1500  to retrain algorithm  488 . In certain embodiments, retraining algorithm  488  may result in an improved accuracy of algorithm  488 . 
     Machine learning module  480  may be a software module stored in memory  440  and executed by processor  435 . An example of the operation of machine learning module  480  is as follows: (1) receive algorithmic shopping cart  1420 ; (2) receive virtual shopping cart  420 ; (3) compare the contents of virtual shopping cart  420  to the contents of algorithmic shopping cart  1420 ; (4) determine that discrepancy  1435  exists between virtual shopping cart  420  and algorithmic shopping cart  1420 ; (5) determine a subset  1500  of inputs received from sensors  498  (including cameras  1305  and weight sensors  1300 ); (6) attach metadata  1540  to subset  1500 , so that external system  485  may use subset  1500  to retrain algorithm  488 . 
       FIG. 16  presents a flowchart illustrating the manner by which virtual store tool  405  may use virtual shopping cart  420  to provide feedback to algorithm  488 . In step  1605 , resolution component  475  receives an algorithmic shopping cart  1420 . Algorithmic shopping cart  1420  includes a set of physical items  315 , determined by algorithm  488  to have been selected by a customer  105  during a shopping session in physical store  100 , based on inputs received from sensors  498  located in physical store  100 . In step  1610 , resolution component  475  receives a virtual shopping cart  420 . Virtual shopping cart  420  includes a set of virtual items  320 . In certain embodiments, virtual items  320  were determined by a user  120  to have been selected by customer  105  during a shopping session in physical store  100 , based on camera feed segments  415  and/or  425  capturing the shopping session of customer  105  in physical store  100 . 
     In step  1615 , resolution component  475  compares the contents of algorithmic shopping cart  1420  to the contents of virtual shopping cart  420 . In step  1620 , resolution component  475  determines whether a discrepancy  1435  exists between algorithmic shopping cart  1420  and virtual shopping cart  420 . If, in step  1620 , resolution component  475  determines that a discrepancy  1435  does not exist between algorithmic shopping cart  1420  and virtual shopping cart  420 , then, in step  1640 , resolution component  475  generates a receipt  1465  for the shopping session, based on the contents of virtual shopping cart  420 , and sends receipt  1465  to a device  125  of customer  105 . If, in step  1620 , resolution component  475  determines that a discrepancy  1435  exists between algorithmic shopping cart  1420  and virtual shopping cart  420 , then, in step  1625 , machine learning module  480  determines a subset  1500  of the set of inputs received from sensors  498  associated with the discrepancy. In step  1630 , machine learning module  480  attaches metadata  1540  to subset  1500 . Metadata  1540  may explain discrepancy  1435 . In step  1635 , external system  485  may use subset  1500  to retrain algorithm  488 . Additionally, in step  1640 , resolution component  475  generates a receipt  1465  for the shopping session, based on the contents of virtual shopping cart  420 , and sends receipt  1465  to a device  125  of customer  105 . 
     Modifications, additions, or omissions may be made to method  1600  depicted in  FIG. 16 . Method  1600  may include more, fewer, or other steps. For example, steps may be performed in parallel or in any suitable order. While discussed as virtual store tool  405  (or components thereof) performing the steps, any suitable component of system  400 , such as device(s)  115  for example, may perform one or more steps of the method. 
     VII. Increasing the Efficiency of the Virtual Emulation Process 
     As described above, virtual store tool  405  may be used to virtually emulate a shopping session occurring in a physical store  100  and captured by camera feed segments  415  and/or  425 . Using virtual store tool  405  in this manner may be a time-consuming process, especially if the tool is used to virtually emulate a large number of shopping sessions. Accordingly, virtual shopping tool  405  includes a number of features to increase the efficiency of the virtual emulation process. These may include: (1) providing suggestions of items that customer  105  may have selected during the shopping session, as determined by an external system  485 ; (2) enabling user  120  to efficiently navigate videos of the shopping session displayed on graphical user interface  700 ; and/or (3) providing an image of each customer  105  as he/she exited the physical store  100 . Each of these features is described in further detail in the discussion that follows. 
     a. Algorithmic Suggestions 
     As described above, in certain embodiments, virtual store tool  405  may be used to independently verify determinations made by algorithm  488 . For example, virtual store tool  405  may compare the contents of virtual shopping cart  420  to the contents of algorithmic cart  1420  to evaluate the accuracy of algorithmic cart  1420  and/or to provide feedback to algorithm  488 , for use in training algorithm  488 . In order to provide such an independent verification, in certain embodiments, virtual store tool  405  does not receive any information about the contents of algorithmic cart  1420  until after virtual shopping cart  420  has been generated. This may be desirable to prevent any of the determinations that have been made by algorithm  488  from biasing user  120 . Preventing the determinations of algorithm  488  from biasing user  120  may be especially important early on in the training process for algorithm  488 , when there exists a reasonable probability that the determinations made by algorithm  488  are incorrect, and/or when complex/unexpected scenarios arise within physical store  100 , which may prove challenging for algorithm  488  to accurately process. 
     On the other hand, in situations in which there exists a high probability that the determinations made by algorithm  488  are correct (e.g., after algorithm  488  has undergone suitable training), the risk of virtual cart errors arising due to a biasing of user  120  towards erroneous determinations made by algorithm  488  may be minimal. At the same time, efficiency gains may occur when user  120  uses virtual store tool  405  to generate virtual cart  420  by confirming suggestions provided by algorithm  488  of the items selected by customer  105  during a shopping session in physical store  100  (or a portion of a shopping session in a physical store  100 ), rather than independently identifying the items selected by customer  105 . For example, user  120  may be able to use virtual store tool  405  to generate virtual cart  420  more rapidly when aided by suggestions from algorithm  488 . 
     i. Presenting, to a User of the Virtual Store Tool, a List of Products that have been Identified by an Algorithm as Selected During a Shopping Session 
       FIGS. 17A and 17B  present a first example of an embodiment in which virtual store tool  102  presents suggestions received from algorithm  488  to user  120 . Specifically,  FIGS. 17A and 17B  present an example of an embodiment in which virtual store tool  102  presents a list  1704  of products that have been determined by algorithm  488  to have been selected by a customer  105   a  during a shopping session in physical store  100  to a user  120  who is using virtual store tool  405  to virtually emulate the shopping session. User  120  may use the products in list  1704  as suggestions/hints of the products user  120  should expect to view customer  105   a  selecting during his/her shopping session.  FIG. 17A  presents an example of the components of system  400  that may be involved in the process of virtual store tool  405  displaying product list  1704  on the graphical user interface  700  that is presented to user  120  on device  115 , and  FIG. 17B  presents an example embodiment of graphical user interface  700  that includes product list  1704 . 
     As illustrated in  FIG. 17A , in certain embodiments, virtual store tool  405  receives an algorithmic shopping cart  1420  that includes a set of physical items  315  determined by an algorithm  488  of external system  485  to have been selected by a customer  105   a  during a shopping session in physical store  100 . Algorithm  488  may have determined that customer  105   a  selected the set of physical items  315  based on inputs received from sensors  498  located in physical store  100 . As described above, in the discussion of  FIGS. 13A through 13D , sensors  498  may include cameras  1305  and weight sensors  1300  located in physical store  100 . In response to receiving algorithmic shopping cart  1420 , in certain embodiments, for each physical item  315   j/q  included in algorithmic shopping cart  1420 , virtual store tool  405  displays a corresponding virtual item  320   j/q  in a product list  1704  on graphical user interface  700 . For example, as illustrated in  FIGS. 17A and 17B , product list  1704  includes virtual item  320   j  and virtual item  320   q , indicating that algorithm  488  determined that customer  105   a  selected physical item  315   j  and physical item  315   q  during a shopping session in physical store  100 . In some embodiments, algorithmic shopping cart  1420  may be a partial shopping cart corresponding to a portion of customer  105   a &#39;s shopping session in physical store  100 . For example, algorithmic shopping cart  1420  may correspond to a portion of customer  105   a &#39;s shopping session for which the inputs received from sensors  498  indicate that verification of the algorithmic determination is desirable (e.g., the inputs indicate that there exists a probability that one or more items in algorithmic shopping cart  1420  is incorrect that is greater than a threshold). 
     A. Information Included in the Product List 
     Virtual store tool  405  may include any information received from algorithm  488  (e.g., algorithmic shopping cart  1420 ) in product list  1704 , and may display this information in any suitable manner. As an example, while  FIG. 17B  depicts product list  1704  as a region of graphical user interface  700  in which virtual items  320   j/q  are displayed as graphical representations of the corresponding physical items  315   j/q , virtual store tool  405  may present an identification of items  315   j/q  to user  120  in any suitable manner. For example, in certain embodiments, product list  1704  includes textual descriptions of physical items  315   j/q  determined by algorithm  488  to have been selected by customer  105   a.    
     As another example, product list  1704  may include additional information (other than an identification of physical items  315   j/q  determined by algorithm  488  to have been selected by customer  105   a ) that may be useful to user  120  in populating virtual shopping cart  420 . For example, in certain embodiments, product list  1704  may indicate a quantity of each item  320   j/q  that algorithm  488  determined was selected by customer  105   a  during his/her shopping session. As an example, product list  1704  may include a number to the left or right of each virtual item  320   j/q  displayed within the list, indicating the quantity of the corresponding physical item  315   j/q  that algorithm  488  determined was selected by customer  105   a . In some embodiments, product list  1704  does not include any indication of the quantity of each physical item  315  that algorithm  488  determined was selected by customer  105   a . For example, in such embodiments, a product list  1704 , as depicted in  FIG. 17B , may correspond to a situation in which algorithm  488  has determined that customer  105   a  selected a single physical item  315   j  and a single physical item  315   q  (e.g., virtual store tool  405  received an algorithmic shopping cart  1420  from external system  485  that included a single physical item  315   j  and a single physical item  315   q ), as well as a situation in which algorithm  488  has determined that customer  105   a  selected 10 physical items  315   j  and 2 physical items  315   q  (e.g., virtual store tool  405  received an algorithmic shopping cart  1420  from external system  485  that include 10 physical items  315   j  and 2 physical items  315   q ). 
     B. Timing of Displaying Items in the Product List 
     Virtual store tool  405  may add virtual products  320   j/q  to product list  1704  at any suitable point in time while user  120  is using graphical user interface  700  to virtually emulate a shopping session of a customer  105   a . For example, virtual store tool  405  may display a virtual item  320   j/q  in product list  1704  for each physical item  315   j/q  that is included in the algorithmic shopping cart  1420  that was received from external system  485 , at the start of the virtual emulation session. For instance, when graphical user interface  700  first displays product list  1704  on display  410 , product list  1704  may already include virtual items  320   j/q . This may occur, for example, in embodiments in which customer  105   a &#39;s shopping session (or the portion of customer  105   a &#39;s shopping session subject to virtual emulation) has already ended prior to the use of virtual store tool  405  to virtually emulate the shopping session (or the portion of the shopping session subject to virtual emulation). virtual store tool Specifically, in certain embodiments, the length of camera feed segments  415  may correspond to and/or exceed the length of customer  105   a &#39;s shopping session (or the length of the portion of the shopping session subject to virtual emulation), such that when virtual store tool  405  displays camera feed segments  415  on graphical interface  700 , the shopping session (or portion of the shopping session) has already ended. In such embodiments, algorithm  488  may have already used the information collected from sensors  498  during the shopping session (or the portion of the shopping session subject to virtual emulation) to populate algorithmic shopping cart  1420 , and subsequently provided the cart to virtual store tool  405  prior to virtual store tool  405  displaying graphical user interface  700 . Accordingly, virtual store tool  405  may display a virtual item  320   j/q  in product list  1704  for each physical item  315   j/q  included in algorithmic cart  1420 , when virtual store tool  405  first displays graphical user interface  700  at the beginning of the virtual emulation session. 
     Product list  1704  may also include one or more virtual items  320   j  when first displayed on graphical user interface  700  in embodiments in which virtual store tool  405  is being used to virtually emulate a shopping session (or a portion of a shopping session) that is in progress. Specifically, in certain embodiments, the length of camera feed segments  415  is less than the length of customer  105   a &#39;s shopping session (of the portion of the shopping session subject to virtual emulation), such that when virtual store tool  405  initially displays camera feed segments  415  on graphical interface  700 , the shopping session is still ongoing. In such embodiments, algorithm  488  may have already populated algorithmic shopping cart  1420  with one or more physical items  315   j  that it determined customer  105   a  selected during a first portion of the shopping session captured by camera feed segments  415 . Algorithm  488  may provide this partial algorithmic shopping cart  1420  to virtual store tool  405 , enabling the tool to display a virtual item  320   j  in product list  1704  for each physical item  315   j  included in partial algorithmic cart  1420 . In such embodiments, virtual store tool  405  may update product list  1704  in response to algorithm  488  adding additional physical items  315   q  to algorithmic shopping cart  1420 . For example, in certain embodiments, virtual store tool  405  may update product list  1704  in conjunction with displaying a new set of camera feed segments  415 , which correspond to a time interval immediately following the time interval associated with the previous set of camera feed segments  415 . The updated product list  1704  may include virtual items  320   q  corresponding to physical items  315   q  determined by algorithm  488  to have been selected by customer  105  during the time interval covered by the new camera feed segments  415 . In some embodiments, virtual store tool  405  may update product list  1704  in response to receiving an updated algorithmic shopping cart  1420  that includes a new physical item  315   q.    
     As another example of the timing at which virtual store tool  405  may display virtual items  320   j/q  in product list  1704 , in certain embodiments, when virtual store tool  405  first displays graphical user interface  700 , product list  1704  is empty. In such embodiments, virtual store tool  405  may add virtual items  320   j/q  to product list  1704  as the virtual emulation session progresses (e.g., as the playback of camera feed segments  415 , which captured the shopping session, progresses). As a specific example, in certain embodiments, virtual store tool  405  adds a virtual item  320   j  (corresponding to a physical item  315   j ) to product list  1704  when the playback progress of camera feed segments  415  and/or  425  reaches a specified time interval before the playback time at which camera feed segments  415  and/or  425  should have captured customer  105   a  selecting physical item  315   j , as determined by algorithm  488 . For example, consider a scenario in which the specified time interval is 15 seconds, and algorithm  488  has determined that customer  105   a  selected physical item  315   j  at 3:15:10 pm. In such embodiments, virtual cart tool  405  will then add virtual item  320   j  to product list  1704  when the playback progress of camera feed segments  415  and/or  425  reaches a playback time corresponding to 3:14:55 pm. 
     C. Use of the Product List 
     The virtual items  320   j/q  displayed in product list  1704  may aid user  120  in efficiently emulating a shopping session of a customer  105   a  in physical store  100 . In particular, because the virtual items  320   j/q  displayed in product list  1704  correspond to physical items  315   j/q  determined by algorithm  488  to have been selected by customer  105   a  during a shopping session in physical store  100 , the virtual items  320   j/q  displayed in product list  1704  may provide suggestions to user  120  of items  320   j/q  to consider adding to virtual shopping cart  420 . User  120  may use the suggestions provided by product list  1704  in any suitable manner. 
     As a first example, in certain embodiments, user  120  may select for consideration one of the virtual items  320   j/q  displayed in product list  1704  and determine whether customer  105   a  selected the corresponding physical item  315   j/q  during his/her shopping session in physical store  100 . User  120  may select for consideration a virtual item  320   j/q  from product list  1704  in any suitable manner. For example, user  120  may select virtual item  320   j  for consideration by clicking on the graphical icon corresponding to the virtual item, double-clicking on the graphical icon, and/or interacting with the graphical icon in any other suitable manner. 
     Graphical user interface  700  may include any of a number of features that may help user  120  in directing his/her focus towards a given virtual item  320   j/q  that is displayed in product list  1704  and that has been selected for consideration by user  120 . As an example, in response to selecting a first virtual item  320   j  displayed in product list  1704 , virtual store tool  405  may highlight, in virtual layout  205 , the virtual rack  230   m  on which virtual item  320   j  is stored. Highlighting virtual rack  230   m  may include any method of distinguishing virtual rack  230   m  from the other virtual racks  230 . For example, highlighting virtual rack  230   m  may include placing a frame around virtual rack  230   m , applying a color/shading to virtual rack  230   m  (as illustrated in  FIG. 17B ), and/or any other suitable method of distinguishing virtual rack  230   m  from the remaining virtual racks  230 . As another example, in certain embodiments, in response to selecting a first virtual item  320   j  displayed in product list  1704 , virtual store tool  405  may display, in region  905  of graphical user interface  700 , the virtual rack  230   m  on which virtual item  320   j  is stored. In some such embodiments, virtual store tool  405  may also highlight virtual item  320   j  on virtual rack  230   m . Highlighting virtual item  320   a  may include any method of distinguishing virtual item  320   j  from the remaining virtual items  320  on virtual rack  230   m . For example, highlighting virtual item  320   j  may include placing a frame around virtual item  320   j , enlarging virtual item  320   j  compared to the other virtual items  320 , changing a color of the background around virtual item  320   j , and/or any other suitable method of distinguishing virtual item  320   j  from the remaining virtual items  320 . As a further example, in certain embodiments, in response to selecting virtual item  320   j  displayed in product list  1704 , virtual store tool  405  may display camera feed segment  1702 , which includes video of the physical rack  210   m  in physical store  100  to which virtual rack  230   m  is assigned. For example, as illustrated in  FIG. 17A , camera feed segment  1702  may have been captured by a rack camera  495  directed at the physical rack  210   m  to which virtual rack  230   m  is assigned. As illustrated in  FIG. 17B , in certain embodiments, virtual store tool  405  displays camera feed segment  1702  on graphical user interface  700  in a separate region of display  410  from camera feed segments  415   a  through  415   f , and/or enlarged as compared to camera feed segments  415   a  through  415   f  This may aid user  120  in directing his/her attention towards camera feed segment  1702 . 
     As a second example of the manner by which user  120  may use the suggestions provided by product list  1704 , in certain embodiments, user  120  may add any of the virtual items  320   j/q  displayed in product list  1704  to virtual shopping cart  420 , while virtually emulating a shopping session of a customer  105   a  in physical store  100 . For example, user  120  may consider a first virtual item  320   j  displayed in product list  1704 . As described above, by displaying first virtual item  320   j  in product list  1704 , virtual store tool  405  may indicate to user  120  that an external system  485  has determined that customer  105   a  selected the corresponding physical item  315   j  during the shopping session. User  120  may then confirm that customer  105   a  selected the corresponding physical item  315   j  by observing customer  105   a  selecting physical item  315   j  on camera feed segment  1702  and/or any of camera feed segments  415   a  through  415   f , displayed on graphical user interface  700 . In response to confirming that customer  105   a  selected physical item  315   j , user  120  may add virtual item  320   j  to virtual shopping cart  420 , thereby virtually emulating customer  105   a &#39;s selecting of physical item  315   j . In certain embodiments, user  120  may add virtual item  320   j  to virtual shopping cart  420  by selecting virtual item  320   j  directly from product list  1704 . For example, user  120  may (1) drag virtual item  320   j  from product list  1704  to virtual shopping cart  420  and drop virtual item  320   j  in virtual shopping cart  420 , (2) double-click on virtual item  320   j  in product list  1704  to add virtual item  320   j  to virtual shopping cart  420 , and/or (3) interact with graphical user interface  700  in any other suitable way to indicate that virtual item  320   j  should be moved from product list  1704  to virtual shopping cart  420 . In certain embodiments, user  120  may also or alternatively add virtual item  320   j  to virtual shopping cart  420  by selecting virtual item  320   j  from virtual rack  230   m , as described in Part IV above. In certain embodiments, in response to user  120  placing virtual item  320   j  in virtual shopping cart  420 , virtual store tool  405  removes virtual item  320   j  from product list  1704 . 
     As a third example of the manner by which user  120  may use the suggestions provided by product list  1704 , in certain embodiments, user  120  may use product list  1704  to identify errors in algorithmic shopping cart  1420 . For example, user  120  may consider a second virtual item  320   q , corresponding to physical item  315   q , presented in product list  1704 . User  120  may then observe camera feed segment  1702  and/or any of camera feed segments  415   a  through  415   f  that include video of physical rack  210   m , on which physical item  315   q  is stored, to determine that customer  105   a  did not select physical item  315   q  during his/her shopping session in physical store  100 . Accordingly, because the virtual items  320   j/q  displayed in product list  1704  correspond to physical items  315   j/q  that algorithm  488  determined were selected by customer  105   a  during the shopping session, by determining that customer  105   a  did not select physical item  315   q , user  120  determined that the inclusion of physical item  315   q  in algorithmic shopping cart  1420  is an error. In certain embodiments, in response to determining that customer  105   a  did not select physical item  315   q , user  120  may instruct virtual store tool  405  to remove virtual item  320   q  from product list  1704 . In some embodiments, the removal of virtual item  320   q  from product list  1704  and/or the lack of inclusion of virtual item  320   q  in virtual shopping cart  420  may be used to provide feedback to algorithm  488 , in a similar manner as described above, in the discussion of  FIGS. 15 and 16 . 
     ii. Prepopulating a Virtual Shopping Cart with Products that have been Identified by an Algorithm as Selected During a Shopping Session, Prior to Virtual Emulation of that Shopping Session 
     In certain embodiments, virtual store tool  102  may present suggestions received from algorithm  488  to user  120  by placing these suggestions directly in virtual shopping cart  420 . For example, when graphical user interface  700  first displays virtual shopping cart  420  on display  410 , virtual shopping cart  420  may already include virtual items  320   j/q , where each virtual item  320   j/q  corresponds to a physical item  315   j/q  determined by algorithm  488  to have been selected by customer  105   a  during his/her shopping session in physical store  100 . User  120  may then view camera feed segments  1702  and/or  415   a  through  415   f  to determine whether the prepopulated virtual shopping cart  420  accurately reflects the physical items  315   j  selected by customer  105   a  during his/her shopping session. If user  120  determines that the prepopulated virtual shopping cart  420  does not accurately reflect the physical items  315   j  selected by customer  105   a  during his/her shopping session, user  120  may modify virtual shopping cart  420  by: (1) adjusting a quantity of a virtual item  320   j  in virtual shopping cart  420 ; (2) removing a virtual item  320   q  from virtual shopping cart  420 ; and/or (3) adding a virtual item  320  to virtual shopping cart  420 . 
     In a similar manner as described above for embodiments in which the algorithmic suggestions are displayed in product list  1704 , in certain embodiments in which virtual shopping cart  420  is prepopulated with algorithmic suggestions of virtual items  320   j/q , user  120  may interact with the graphical icons assigned to the virtual items  320   j/q  that are displayed in the prepopulated virtual shopping cart  420 . In particular, user  120  may interact with a graphical icon assigned to a virtual item  320   j/q  to cause virtual store tool  405  to display information that may aid user  120  in determining whether customer  105   a  actually selected the corresponding physical item  315   j/q  during his/her shopping session in physical store  100 , thereby evaluating the algorithmic suggestion of virtual item  302   j/q . For example, in certain embodiments, in response to selecting a first virtual item  320   j  displayed in virtual shopping cart  420  (e.g., clicking on the graphical icon corresponding to the virtual item, double-clicking on the graphical icon, and/or interacting with the graphical icon in any other suitable manner), virtual store tool  405  may: (1) highlight, in virtual layout  205 , the virtual rack  230   m  on which virtual item  320   j  is stored; (2) display, in region  905  of graphical user interface  700 , the virtual rack  230   m  on which virtual item  320   j  is stored; (3) highlight, on virtual rack  230   m , virtual item  320   j ; (4) display camera feed segment  1702 , which includes video of the physical rack  210   m  of physical store  100  to which virtual rack  230   m  is assigned; and/or (5) display any other suitable information that may aid user  120  in evaluating the accuracy of the contents of prepopulated virtual shopping cart  420 . As described above, highlighting virtual rack  230   m  in virtual layout  205  may include placing a frame around virtual rack  230   m , applying a color/shading to virtual rack  230   m , and/or any other suitable method of distinguishing virtual rack  230   m  from the remaining virtual racks  230 . Similarly, as described above, highlighting virtual item  320   j  on virtual rack  230   m  may include placing a frame around virtual item  320   j , enlarging virtual item  320   j  compared to the other virtual items  320 , changing a color of the background around virtual item  320   j , and/or any other suitable method of distinguishing virtual item  320   j  from the remaining virtual items  320 . 
     iii. Using Video Markers and Highlighting to Present Algorithmic Suggestions to a User 
     In addition to/instead of presenting algorithmic suggestions to user  120  as product list  1704  and/or in virtual shopping cart  420 , virtual store tool  405  may present algorithmic suggestions to user  120  in several different manners, some of which were presented in Section IV above. For example, as discussed in Section IV, in certain embodiments, virtual store tool  102  presents suggestions received from algorithm  488  to user  120  by displaying markers  715   a/b  on slider bar  705 , where each marker  715   a/b  indicates that an event occurred within physical store  100  at the marker playback time. Such events may include customer  105   a  approaching a physical rack  210   a  and/or selecting an item  305  from physical rack  210   a , where the occurrence of the event was detected by algorithm  488 , based on inputs received from sensors  498  located in physical store  100 . As another example, as discussed in Section IV above, in certain embodiments, virtual store tool  102  presents suggestions received from algorithm  488  to user  120  by highlighting a virtual rack  230  in virtual layout  205 , and/or highlighting a virtual item  320  on virtual rack  230 . For example, virtual store tool  102  may highlight virtual rack  230   a  in response to receiving an indication from algorithm  488  that an event associated with physical rack  210   a  occurred (e.g., customer  105   a  approaching physical rack  210   a  and/or selecting an item  305  from physical rack  210   a ). Similarly, virtual store tool  102  may highlight virtual item  320   f  on virtual rack  230   a  in response to receiving an indication from algorithm  488  that customer  105   a  selected physical item  315   f  from physical rack  210   a.    
     Virtual store tool  405  may also apply highlighting to virtual items  320   j/q  that are displayed on virtual rack  230   m  to distinguish between those items that are displayed on the rack and are also stored in algorithmic shopping cart  1420  and those items that are displayed on the rack and are also stored in virtual shopping cart  420 . As an example, in certain embodiments, virtual store tool  405  may display a first type of highlighting around each virtual item  320   j/q  displayed on virtual rack  230   m  (displayed in region  905  of graphical user interface  700 ) that corresponds to a physical item  315   j/q  that algorithm  488  determined customer  105  selected during a shopping session in physical store  100 . Virtual store tool  405  may also display a second type of highlighting around each virtual item  320   j  (displayed on virtual rack  230   m  in region  905  of graphical user interface  700 ) that is also present in virtual shopping cart  410 . Displaying the first and second types of highlighting around virtual items  320   j/q  may include placing frames around virtual items  320   j/q , changing the color of the background surrounding virtual items  320   j/q , and/or any other manner of distinguishing virtual items  320   j/q  from the remaining virtual items displayed on virtual rack  230   m  in region  905  of graphical user interface  700 . In certain embodiments, the first type of highlighting is different from the second type of highlighting. For example, the first type of highlighting may correspond to a first color frame and/or background around a virtual item  320   j , and the second type of highlighting may correspond to a second color frame and/or background around a virtual item  320   q . As a specific example of the use of these two types of highlighting, virtual store tool  405  may initially change the background around virtual items  320   j  and  320   q  (displayed on virtual rack  230  in region  905 ) to a first color (e.g., red), in response to receiving information indicating that the corresponding physical items  315   j  and  315   q  were added by algorithm  488  to algorithmic shopping cart  1420 . Then, in response to user  120  adding virtual item  320   j  to virtual shopping cart  420 , virtual store tool  405  may change the background around virtual item  320   j  from the first color to a second color (e.g., green). In this manner, when user  120  views virtual rack  230   m  (as displayed in region  905  of graphical user interface  700 ) he/she may easily see, based on the presence of the second type of highlighting around virtual item  320   j , that he/she has already considered virtual item  320   j  and determined that customer  105   a  selected the corresponding physical item  315   j  (e.g., user  120  has already added virtual item  320   j  to virtual shopping cart  420 ). Similarly, based on the presence of the first type of highlighting around virtual item  320   q , user  120  may easily determine that he/she has not yet considered the algorithmic suggestion of virtual item  320   q  (and/or that he/she may have already considered the algorithmic suggestion but determined that customer  105   a  did not select the corresponding physical item  315   q ). Accordingly, user  120  may direct his/her attention towards virtual item  320   q  in order to evaluate this algorithmic suggestion (and/or to confirm a previous determination that the algorithmic suggestion was incorrect). 
     Placing highlighting around a virtual item  320   j  may also include adding any suitable information to the highlighting. For example, placing the first type of highlighting around a virtual item  320   j  may include placing an indication of the quantity of the corresponding physical item  315   j  that is present in algorithmic shopping cart  1420 . Similarly, placing the second type of highlighting around a virtual item  320   q  may include placing an indication of the quantity of the virtual item in virtual shopping cart  420 . As a specific example of the use of these two types of highlighting, virtual store tool  405  may initially place frames of a first color (e.g., red) around virtual items  320   j  and  320   q  (displayed on virtual rack  230  in region  905 ), in response to receiving information indicating that the corresponding physical items  315   j  and  315   q  were added by algorithm  488  to algorithmic shopping cart  1420 . Virtual store tool  405  may also indicate within each frame a quantity of the corresponding physical item  315   j/q  that is present in algorithmic shopping cart  1420 . Then, in response to user  120  adding a different quantity of virtual item  320   j  to virtual shopping cart  420 , virtual store tool  405  may change the color of the frame around virtual item  320   j  from the first color to a second color (e.g., green), and may update the quantity indicated within the frame to correspond to the quantity of virtual item  320   j  included in virtual shopping cart  420 . The use of highlighting in this manner may help user  120  to easily identify virtual items  320   j  to which the user may wish to direct further attention. For example, prior to issuing a receipt to customer  105   a , based on virtual shopping cart  420 , user  120  may wish to double-check one or more of the decisions that he/she made while populating virtual shopping cart  420  that conflicted with determinations made by algorithm  488 . Accordingly, user  120  may use the second type of highlighting to easily identify those virtual items  320   j  for which the user&#39;s decisions conflicted with the algorithm&#39;s determinations. 
     Virtual store tool  405  may additionally apply highlighting to physical items  315   j/q  that are depicted in camera feed segments  415 / 1702 . As an example, in certain embodiments, virtual store stool  405  may place a bounding box around each physical item  315   j/q  depicted in camera feed segments  415 / 1702 . This bounding box may correspond to a bounding box that was used by algorithm  488  to track items selected by customer  105   a  in physical store  100 . In certain embodiments, the bounding box around a physical item  315   j/q  is displayed in camera feed segments  415 / 1702  using the same color as the highlighting applied to the corresponding virtual item  320   j/q.    
     b. Video Display and Control 
     While providing algorithmic suggestions to user  120  is one way in which virtual store tool  405  may aid user  120  in efficiently emulating a shopping session of customer  105 , graphical user interface  700  may include a number of additional features to help increase efficiency. As an example, in certain embodiments, virtual store tool  405  enables a user  120  to interact with camera feed segments  415 / 1702  to zoom in on an area of interest and/or pan over to an area of interest. As another example, in certain embodiments, virtual store tool  405  displays at least one camera feed segment  1702  in a somewhat central location on graphical user interface  700 , separate from the remaining camera feed segments  415   a  through  415   f . In some such embodiments, camera feed segment  1702  is enlarged as compared with the remaining camera feed segments  415   a  through  415   f . For example, as illustrated in  FIG. 17 , virtual store tool  405  may place enlarged camera feed segment  1702  near the upper center of graphical user interface  700 . Camera feed segment  1702  may correspond to the camera feed segment currently of interest to user  120 . Displaying camera feed segment  1702  separate from and/or enlarged as compared to camera feed segments  415  may aid user  120  in maintaining his/her focus on the camera feed segment. 
     Enlarged camera feed segment  1702  may correspond to any of the camera feeds received by virtual store tool  405  from layout cameras  490  and/or rack cameras  495 . As an example, in certain embodiments, and as illustrated in  FIG. 17B , camera feed segment  1702  may correspond to one of the camera feed segments  415   a  through  415   f  (e.g., camera feed segment  415   c ), which may also be displayed on graphical user interface  700 , for example, to the right of camera feed segment  1702 . In certain embodiments, user  120  may select one of camera feed segments  415   a  through  415   f  for display as camera feed segment  1702 . For example, virtual store tool  405  may display camera feed segment  415   c  as camera feed segment  1702 , in response to user  120  selecting camera feed segment  415   c  (e.g., clicking on camera feed segment  415   c , double-clicking on camera feed segment  415   c , and/or any other suitable manner of selecting camera feed segment  415   c  from the set of camera feed segments  415   a  through  415   f , displayed on graphical user interface  700 ). 
     As another example, in certain embodiments, camera feed segment  1702  may correspond to a camera feed segment received from a rack camera  495  located in physical store  100 . For example, in certain embodiments, virtual store tool  405  may display a camera feed segment received from a rack camera  495  directed at a physical rack  210   m  on which physical item  315   j  is stored as camera feed segment  1702 , in response to user  120  selecting a virtual item  320   j  (configured to emulate physical item  315   j ) from product list  1704 . In some embodiments, virtual store tool  405  may display a camera feed segment received from a rack camera  495  directed at a physical rack  210   m  as camera feed segment  1702 , in response to user  120  selecting virtual rack  230   m  (configured to emulate physical rack  210   m ) from virtual layout  205 . In certain embodiments multiple rack cameras  495  may be assigned to a given physical rack  210   m . In such embodiments, virtual store tool  405  may display icons  1706  on virtual layout  205 , where the locations of icons  1706  on virtual layout  205  emulate the physical locations of rack cameras  495  within physical layout  200 . In response to a user  120  selecting an icon  1706   a/b  (e.g., clicking on the icon, double-clicking on the icon, and/or any other suitable method of selecting the icon), virtual store tool  405  may display, as camera feed segment  1702 , a camera feed segment that was captured by the rack camera  495  corresponding to the icon  1706   a/b.    
     c. Images from Entrance and Exit Cameras 
     As another example of a way in which virtual store tool  405  may aid user  120  in efficiently emulating a shopping session of customer  105   a  in physical store  100 , in certain embodiments, virtual store tool  405  displays an image  1710  of customer  105   a , captured when the customer exited physical store  100 . For example, in certain embodiments in which physical store  100  includes turnstiles  510  to control the entry/exit of persons  105  into/out of the store (as depicted in  FIG. 5A ), physical store  100  may include a camera configured to take an image  1710  of customer  105   a  as customer  105   a  exits through a turnstile  510 . Displaying image  1710  may help user  120  to easily confirm the accuracy of virtual shopping cart  420 . For example, user  120  may use image  1710  to confirm that virtual shopping cart  420  is accurate, where virtual shopping cart  420  includes a single virtual item  320   j  and image  1710  depicts customer  105   a  exiting physical store  100  while carrying the corresponding physical item  315   j . Similarly, user  120  may use image  1710  to determine that virtual shopping cart  420  is inaccurate, where virtual shopping cart  410  includes a single virtual item  320   j  and image  1710  depicts customer  105   a  exiting physical store  100  without the corresponding physical item  315   j  and/or with a different physical item  315   a.    
     In addition to or instead of displaying image  1710  of customer  105   a , in certain embodiments, and as described above in the discussion of  FIG. 7B , virtual store tool  405  displays an image  725  of customer  105   a , captured when the customer entered physical store  100 . Displaying image  725  may help user  120  to easily identify the customer  105   a  whose shopping session virtual store tool  405  is being used to virtually emulate. This may be desirable, for example, in embodiments in which multiple customers are depicted in video segments  415   a  through  415   f  and/or  1702 . As a specific example, in certain embodiments in which virtual store tool  102  presents a list  1704  of products that have been determined by algorithm  488  to have been selected by a customer  105   a  during a shopping session in physical store  100 , algorithm  488  may have mistakenly tracked the wrong customer (i.e., a customer other than customer  105   a ). In such embodiments, video segments  415   a  through  415   f  and/or  1702  may indeed depict a customer selecting one or more of the items displayed in product list  1704 ; however, this customer is not the customer  105   a  to which algorithm  488  assigned the items. Accordingly, by enabling user  120  to identify the customer  105   a  for whom the virtual emulation is being performed, image  725  and/or  1710  may help user  120  to determine that customer  105   a  did not select the one or more items displayed in product list  1704  that were selected by the other customer. 
     d. Method for Virtually Emulating a Physical Shopping Session Using Algorithmic Suggestions 
       FIG. 18  presents a flowchart (described in conjunction with elements of  FIGS. 17A and 17B ) illustrating an example method  1800  by which virtual store tool  405  may present algorithmic suggestions to user  120 , and user  120  may use these suggestions while virtually emulating a shopping session of a customer  105   a  in physical store  100 . Specifically, method  1800  illustrates the use of algorithmic suggestions in the form of product list  1704 , where each virtual item  320  displayed in product list  1704  corresponds to a physical item  315  that algorithm  488  determined that customer  105   a  selected during the shopping session. 
     In step  1802  virtual store tool  405  receives algorithmic shopping cart  1420 . For example, virtual store tool  405  may receive algorithmic shopping cart  1420  from external system  485 . Algorithmic shopping cart  1420  may include a set of physical items  315  determined by algorithm  488  to have been selected by customer  105   a , based on inputs received from sensors  498  located in physical store  100 . In step  1804  virtual store tool  405  uses algorithmic shopping cart  1420  to display product list  1704 . For example, for each physical item  315  present in algorithmic shopping cart  1420 , virtual store tool  405  displays a corresponding virtual item  320  in product list  1704 . In certain embodiments, product list  1704  includes an indication of the quantity of each physical item  315 , correspond to a virtual item  320  displayed in product list  1704 , that algorithm  488  determined was selected by customer  105 . For example, in certain embodiments, product list  1704  may include a number to the left or right of each virtual item  320  displayed within the list, indicating the quantity of the corresponding physical item  315  that algorithm  488  determined was selected by customer  105   a.    
     In step  1806  virtual store tool  405  considers a first virtual item  320  from product list  1704 . For example, in certain embodiments, virtual store tool  405  receives an indication that user  120  has selected the virtual item  320  from product list  1704 . User  120  may have selected virtual item  320  from product list  1704  in any suitable manner. For example, in certain embodiments, selecting virtual item  320  from product list  1704  may include clicking on a graphical icon displayed in product list  1704  that corresponds to virtual item  320 , double-clicking on the graphical icon, and/or interacting with the graphical icon in any other suitable manner. In step  1808  virtual store tool  405  displays video segment  1702 . Video segment  1702  includes video of the physical rack  210  in physical store  100  on which the physical item  315  corresponding to the selected virtual item  320  resides. In certain embodiments, video segment  1702  is a camera feed segment captured by a rack camera  495  that was directed at the physical rack  210  on which the physical item  315  corresponding to the selected virtual item  320  resides. 
     In step  1810  virtual store tool  405  determines whether the tool has received information identifying the virtual item  320  selected from product list  1704 . This information may include any information that may indicate to virtual store tool  405  that the tool should store the selected virtual item  320  in virtual shopping cart  420 . As an example, in certain embodiments, receiving information identifying the selected virtual item  320  includes receiving information associated with dragging and dropping virtual item  320  from product list  1704  to virtual shopping cart  420 . As another example, in certain embodiments, receiving information identifying the selected virtual item  320  includes receiving information associated with dragging and dropping virtual item  320  from virtual rack  230 , displayed in region  905  of display  410 , to virtual shopping cart  420 . 
     If, in step  1810  virtual store tool  405  determines that the tool has received information identifying the selected virtual item  320 , in step  1820  virtual store tool  405  adds virtual item  320  to virtual shopping cart  420 . Method  1800  then proceeds to step  1822 . If, in step  1810  virtual store tool  405  determines that the tool has not received information identifying the selected virtual item  320 , in step  1812 , in certain embodiments, virtual store tool  405  removes virtual item  320  from product list  1704 . As an example, in certain embodiments, virtual store tool  405  receives an indication that customer  105   a  did not select the physical item  315  corresponding to virtual item  320  during the shopping session. For instance, virtual store tool  405  may receive an indication from user  120  that user  120  did not view customer  105   a  selecting the physical item  315  corresponding to virtual item  320  in camera segments  415 / 1702 . In response to receiving the indication that customer  105   a  did not select the physical item  315  corresponding to virtual item  320  during the shopping session, virtual store tool  405  removes virtual item  320  from product list  1704 . As another example, in certain embodiments, virtual store tool  405  removes virtual item  320  from product list  1704  if virtual store tool  405  does not receive information identifying virtual item  320  before: (1) playback of video segment  1702  completes, (2) virtual store tool  405  considers a next virtual item  320  from product list  1704 , and/or (3) virtual store tool  405  issues a receipt for the shopping session. 
     In step  1814  virtual store tool  405  determines whether the tool received information identifying a virtual item  320  that is not included in product list  1704 . As an example, in certain embodiments, receiving information identifying a virtual item  320  that is not included in product list  1704  includes receiving information associated with dragging and dropping the virtual item  320  from a virtual rack  230 , displayed in region  905  of display  410 , to virtual shopping cart  420 . For example, user  120  may drag and drop the virtual item  320  from virtual rack  230  to virtual shopping cart  420  in response to viewing, in camera segment  1702 , customer  105   a  selecting the virtual item  320 . If, in step  1814  virtual store tool  405  determines that the tool received information identifying a virtual item  320  that is not included in product list  1704 , in step  1816  virtual store tool  405  adds the virtual item  320  to virtual shopping cart  420 . Method  1800  then proceeds to step  1822 . If, in step  1814  virtual store tool  405  determines that the tool did not receive information identifying a virtual item  320  that is not included in product list  1704 , method  1800  proceeds directly to step  1822 . 
     In step  1822  virtual store tool  405  determines whether any additional virtual items  320  are present in product list  1704 . If, in step  1822  virtual store tool  405  determines that one or more additional virtual items  320  are present in product list  1704 , method  1800  returns to step  1806 . If, in step  1822  virtual store tool  405  determines that no additional virtual items  320  are present in product list  1704 , in step  1824  virtual store tool  405  determines whether the tool received information identifying a virtual item  320  that is not included in product list  1704 . As an example, in certain embodiments, receiving information identifying a virtual item  320  that is not included in product list  1704  includes receiving information associated with dragging and dropping the virtual item  320  from a virtual rack  230 , displayed in region  905  of display  410 , to virtual shopping cart  420 . For example, user  120  may drag and drop the virtual item  320  from virtual rack  230  to virtual shopping cart  420  in response to viewing, in camera segment  1702 , customer  105   a  selecting the virtual item  320 . If, in step  1824  virtual store tool  405  determines that the tool received information identifying a virtual item  320  that is not included in product list  1704 , in step  1826  virtual store tool  405  adds the virtual item  320  to virtual shopping cart  420 . Method  1800  then proceeds to step  1828 . If, in step  1824  virtual store tool  405  determines that the tool did not receive information identifying a virtual item  320  that is not included in product list  1704 , method  1800  proceeds directly to step  1828 . In step  1828  virtual store tool  405  determines whether the shopping session has ended. If, in step  1828  virtual store tool  405  determines that the shopping session has not ended, method  1800  returns to step  1824 . If, in step  1828  virtual store tool  405  determines that the shopping session has ended, method  1800  ends. 
     Modifications, additions, or omissions may be made to method  1800  depicted in  FIG. 18 . Method  1800  may include more, fewer, or other steps. For example, steps may be performed in parallel or in any suitable order. While discussed as virtual store tool  405  (or components thereof) performing the steps, any suitable component of system  400 , such as device(s)  115  for example, may perform one or more steps of the method. 
     VIII. Evaluation of a Refund Request through Virtual Emulation of a Prior Shopping Session 
     As described above, a customer  105  may be charged for items that he/she selected during a shopping session in a physical store  100  based on: (1) a virtual emulation of the shopping session, using virtual store tool  405 ; (2) an algorithmic determination, based on information gathered by sensors  498  in the physical store during the shopping session, of items selected by the customer; or (3) a combination of virtual emulation and algorithmic determinations. Regardless of the manner by which the charges are determined, in certain embodiments, customer  105  may receive a receipt  1465  detailing the charges that were applied to his/her account. Customer  105  may dispute one or more of these charges, for a variety of reasons. As an example, in certain embodiments where virtual store tool  405  was used to generate the charges, an error may have occurred in the virtual emulation process such that one or more of the items for which customer  105  was charged were not actually selected by the customer during his/her shopping session and/or customer  105  did not select the quantity of one of more of the items for which customer  105  was charged. As another example, in certain embodiments where algorithmic shopping cart  1420  was used to generate the charges, customer  105  may not have actually selected one or more of the items that algorithm  488  determined customer  105  selected, and/or a quantity that algorithm  488  assigned to one or more of the items included in algorithmic shopping cart  1420  may not be accurate. As a further example, in certain embodiments, the charges may be accurate but customer  105  may have misremembered the items that he/she selected during his/her shopping session. 
       FIGS. 19A through 19C  present an example illustrating the use of virtual store tool  405  to process a refund request  1902   a  submitted by a customer  105   a . As illustrated in  FIG. 19A , refund request  1902   a  is a request for a refund of the purchase price of physical item  315   w  that was charged to an account belonging to customer  105   a  in response to a prior shopping session in physical store  100 . While illustrated in  FIG. 19A  as corresponding to a request for the refund of the purchase price of a single physical item  315   w , virtual store tool  405  may be used to process requests for refunds of the purchase price of any number of physical items. 
     a. Receiving a Refund Request 
     Customer  105   a  may submit refund request  1902   a  to virtual store tool  405  in any suitable manner. As an example, in certain embodiments, customer  105   a  submits refund request  1902   a  to virtual store tool  405  through a webpage. As another example, in certain embodiments, customer  105   a  submits refund request  1902   a  to virtual store tool  405  using his/her mobile device  125   a . For example, in certain embodiments, receipt  1465   a  includes an interactive link through which customer  105   a  may submit refund request  1902   a . In certain such embodiments, in response to receiving receipt  1465   a  on device  125   a , customer  105   a  uses device  125   a  to interact with the link to submit refund request  1902   a . In some embodiments, customer  105   a  may use an application installed on device  125   a  to submit refund request  1465   a.    
     In response to receiving refund request  1465   a , virtual store tool  405  places refund request  1465   a  in queue  1906 , stored in memory  440 . Virtual store tool  405  uses queue  1906  to help ensure that the refund requests it receives are processed in a timely manner. In particular, as illustrated in  FIG. 19B , any number of customers  105   a  through  105   n  may submit refund requests  1902   a  through  1902   o  to virtual store tool  405 . In certain embodiments, there may not be any users  120   a  through  120   m  who are available to process the incoming refund requests  1902   a  through  1902   o  as they are received. For example, users  120   a  through  120   m  may not be available to process an incoming refund request  1902   a  because they are virtually emulating shopping sessions and/or processing earlier-received refund requests. Virtual store tool  405  uses queue  1906  to help ensure that when a user  120  becomes available, he/she is provided with the earliest-received refund request that has not yet been processed, thereby helping to ensure that refund requests  1902   a  through  1902   o  are processed in the order that they are received by virtual store tool  405 . 
     As an example of the manner by which virtual store tool  405  uses queue  1906  to assign refund requests  1902   a  through  1902   o  to users  120   a  through  120   m , as illustrated in  FIG. 19B , a first refund request  1902   a , submitted by customer  105   a , is stored in a first slot  1908   a  of queue  1906 , a second refund request  1902   c  is stored in a second slot  1908   b  of queue  1906 , and an n-th refund request  1902   n  is stored in an n-th slot  1908   n  of queue  1906 . In response to receiving refund request  1902   o  from customer  105   b , virtual store tool  405  stores refund request  1902   o  at the end of queue  1906 , in slot  19080 . In response to receiving indication  1909   a  from user  120   a , indicating that user  120   a  is available to process a refund request, virtual store tool  405  assigns the refund request  1902   a  that is stored in the first slot  1908   a  of queue  1906  to user  120   a . For example, virtual store tool  405  generates a graphical user interface on device  115   a  of user  120   a , for use by user  120   a  in processing refund request  1902   a , as described in further detail below, in the discussion of  FIG. 19C . Virtual store tool  405  then moves each refund request  1902   b  through  1902   o  that remains in queue  1906  up one slot, such that refund request  1902   b  will be the next refund request assigned to a user  120 , once a user  120  indicates that he/she is available to process a refund request. Each refund request  1902   a  through  1902   o  submitted by customers  105  may include any suitable information. For example, as illustrated in  FIG. 19A , in certain embodiments, in addition to an identification of the physical item(s)  315   w  for which customer  105   a  is submitting refund request  1902   a , the request may also include a description  1904  of the reason customer  105   a  submitted the refund request. For instance, description  1904  may indicate: (1) that the customer did not select a specific item  315   w ; (2) that the customer did not select a specific item  315   w  but did select a different item for which he/she was not charged; (3) that the customer was charged for a greater quantity of an item  315   w  than what he/she selected; and/or (4) any other suitable information that may aid virtual store tool  405  in processing the customer&#39;s refund request. In certain embodiments, description  1904  is a free-form textual description submitted by customer  105   a . For example, in some embodiments, customer  105   a  may enter description  1904  in a text box displayed on his/her mobile device  125   a . In certain embodiments, description  1904  is one of a number of standard statements that customer  105   a  may choose from amongst. For example, in some embodiments, customer  105   a  may enter description  1904  by selecting from a number of options displayed as a drop-down list on his/her mobile device  125   a.    
     In some embodiments, refund request  1902   a  submitted by customer  105   a  includes information identifying the shopping session associated with the refund request and/or a portion of the shopping session relevant to the refund request. As an example, in certain embodiments, the refund request includes the start and/or end times of the shopping session. For example, refund request  1902   a  may indicate that the shopping session began at 4:15:05 pm on Jun. 26, 2020 and lasted until 4:17:55 pm that same day. As another example, in certain embodiments, the refund request includes an identification number associated with the shopping session, which virtual store tool  405  may use to determine the start and/or end times of the shopping session. For example, virtual store tool  405  may use the identification number to look up the start and/or end times of the shopping session in the set of shopping session identification information  486  stored in database  482 . As a further example, in certain embodiments, refund request includes an identification number associated with the shopping session, which virtual store tool  405  may use, in conjunction with the items included in the refund request, to determine portions of the shopping session associated with the refund request. For example, virtual store tool  405  may use the identification number, along with the items included in the refund request, to look up the times of the shopping session associated with the items (e.g., the times at which the items were added to a virtual shopping cart during a virtual emulation of the shopping session and/or the times at which algorithm  488  determined that the items were selected during the shopping session) in the set of shopping session identification information  486  stored in database  482 . 
     b. Processing a Refund Request 
     In response to assigning a user  120   a  a refund request  1902   a , virtual store tool  405  may generate a graphical user interface for display on display  410  of device  115   a , which user  120   a  may use to process the refund request.  FIG. 19C  presents an example of a graphical user interface  1900  that may be used by user  120   a  to process refund request  1902   a . In certain embodiments, graphical user interface  1900  may be used by a user  120  to review a prior shopping session of customer  105  in physical store  100  and/or a portion of a prior shopping session of customer  105 , in order to process the refund request submitted by the customer. 
     i. Displaying Information Received in the Refund Request 
     As illustrated in  FIGS. 19A and 19C , in response to receiving a refund request  1902   a , virtual store tool  405  may display information associated with the request on graphical user interface  1900 . This information may aid user  120   a  in processing the refund request. For example, virtual store tool  405  may display description  1904  received from customer  105   a  in region  1910  of graphical user interface  1900  and/or an identification of the item(s)  320   w  for which customer  105   a  is requesting the refund in region  1914  of graphical user interface  1900 . As described above description  1904  may include text submitted by customer  105   a  detailing the reason that he/she submitted the refund request. 
     ii. Video-Based Review of the Shopping Session Associated with the Refund Request 
     A. Identifying and Displaying Video of the Shopping Session 
     In response to receiving refund request  1902   a , virtual store tool  405  additionally identifies and displays historical video segments  1922   a  through  1922   f  on graphical user interface  1900 . Historical video segments  1922   a  through  1922   f  correspond to segments of video captured by layout cameras  490  and/or rack cameras  495  during the shopping session of customer  105   a  that is associated with refund request  1902   a . In certain embodiments, historical video segments  1922   a  through  1922   f  correspond to segments of video captured by layout cameras  490  and/or rack cameras  495  during the full duration of the shopping session of customer  105   a . In some embodiments, historical video segments  1922   a  through  1922   f  correspond to segments of video captured by layout cameras  490  and/or rack cameras  495  during a portion of the shopping session of customer  105   a.    
     Virtual store tool  405  may obtain video segments  1922   a  through  1922   f  in any suitable manner. As an example, in certain embodiments virtual store tool  405  may use information provided in refund request  1902   a  to obtain video segments  1922   a  through  1922   f . As an example, in certain embodiments refund request  1902   a  includes the start and/or end times of the shopping session. In some embodiments, the refund request includes an identification number for the shopping session, which may be used to look up the start and/or end times of the shopping session in the set of shopping session identification information  486  stored in database  482 . Once virtual store tool  405  has obtained the start and/or end times of the shopping session, the tool may use these times to extract video segments  1922   a  through  1922   f  from videos  484  stored in database  482 . For example, virtual store tool  405  may store a portion of video  484   a  beginning at a timestamp corresponding to the start time and ending at a timestamp corresponding to the end time as video segment  1922   a . Virtual store tool  405  may generate each of video segments  1922   b  through  1922   f  in a similar manner. As another example, in certain embodiments, refund request  1902   a  includes an identification number for the shopping session, which virtual store tool  405  may use, in conjunction with the item(s)  315   w  for which refund request  1902   a  was submitted, to identify portion(s) of the shopping session relevant to evaluating whether or not customer  105  selected item(s)  315   w . For example, virtual store tool  405  may use the identification number, along with the item(s)  315   w  included in the refund request, to look up the time(s) of the shopping session associated with the item(s) (e.g., the time(s) at which the item(s) were added to a virtual shopping cart during a virtual emulation of the shopping session and/or the time(s) at which algorithm  488  determined that the item(s) were selected during the shopping session) in the set of shopping session identification information  486  stored in database  482 . Once virtual store tool  405  has obtained the time(s) of the shopping session, the tool may use these time(s) to extract video segments  1922   a  through  1922   f  from videos  484  stored in database  482 . For example, virtual store tool  405  may store, as video segment  1922   a , a portion of video  484   a  beginning at a timestamp occurring a set time interval before the time of the shopping session that is associated with customer  105   a  selecting item  315   w  (as determined by algorithm  488  and/or a virtual emulation of the customer&#39;s shopping session using virtual store tool  405 ) and ending at a timestamp occurring a set time interval after the time of the shopping session that associated with the customer selecting item  315   w  as video segment  1922   a . Virtual store tool  405  may generate each of video segments  1922   b  through  1922   f  in a similar manner. 
     B. Using Video of the Shopping Session to Process the Refund Request 
     User  120   a  may use graphical user interface  1900 , generated by virtual store tool  405 , to process a refund request  1902   a  submitted by a customer  105   a  by reviewing video segments  1922   a  through  1922   f  to determine whether any of these video segments include video of customer  105   a  selecting one or more physical items for which the customer submitted the refund request. For example, with respect to the example illustrated in  FIGS. 19A and 19C , user  120   a  may review video segments  1922   a  through  1922   f  to determine whether any of these video segments depict customer  105   a  selecting physical item  315   w  (which corresponds to virtual item  320   w ). 
     Virtual store tool  405  may provide graphical user interface  1900  with any of a number of features that may aid user  120   a  in processing refund request  1902   a . As a first example, in certain embodiments, and in a similar manner as that described in Section III above for camera feed segments  415 , virtual store tool  405  may assign a common slider bar  705  to each of video segments  1922   a  through  1922   f . Slider  710  on slider bar  705  is configured to control the playback process of the video segment. In certain embodiments, the playback of each video segment  1922   a  through  1922   f  is synchronized with that of the other video segments  1922   a  through  1922   f , such that an adjustment of the slider  710  on any of the copies of slider bar  705  leads to a corresponding adjustment of the playback progress of all of the displayed video segments  1922   a  through  1922   f.    
     In certain embodiments, in order to further aid user  120   a  in reviewing the shopping session associated with refund request  1902   a , slider bar  705  may include one or more markers  1916 . For example, as illustrated in  FIG. 19C , slider bar  705  may include marker  1916 , located at a marker position on slider bar  705  and corresponding to a marker playback time. Each marker  1916  may be associated with an event related to an item  315   w / 320   w  that is a subject of the refund request. For example, as illustrated in  FIG. 19C , marker  1916  may be associated with an event related to item  320   w . As an example of an event that marker  1916  may be associated with, in certain embodiments in which virtual store tool  405  was previously used to emulate the shopping session of customer  105   a  and generate the receipt  1465   a  associated with the customer&#39;s refund request, the marker playback time associated with marker  1916  may correspond to the playback time of camera segments captured by layout cameras  490  and/or rack cameras  495 , during the previous virtual emulation session, at which point a user added virtual item  320   w  to virtual shopping cart  420 . As another example, the marker playback time associated with marker  1916  may indicate the historical time at which algorithm  488  added physical item  315   w  to algorithmic shopping cart  1420  during customer  105 &#39;s previous shopping session. Accordingly, marker  1916  may indicate to user  120   a  the general time of video segments  1922   a  through  1922   f  around which time user  120   a  might expect to view customer  105   a  selecting item  315   w , if customer  105  did in fact select item  315   w.    
     As a second example of a feature that may aid user  120   a  in processing refund request  1902   a , in order to aid user  120   a  in observing customer  105   a  on video segments  1922   a  through  1922   f , in certain embodiments, user  120   a  can choose to display any of video segments  1922   a  through  1922   f  as enlarged video segment  1924 . For example, as illustrated in  FIG. 19C , user  120   a  may choose to display historical video segment  1922   c  as enlarged video segment  1924 . User  120   a  can select one of video segments  1922   a  through  1922   f  to display as enlarged video segment  1924  in any suitable manner. For example, in certain embodiments, user  120   a  can click on a given video segment  1922   a  through  1922   f  to instruct virtual store tool  405  to display the video segment as enlarged video segment  1924 . 
     As a third example of a feature that may aid user  120   a  in processing refund request  1902   a , in certain embodiments, in order to aid user  120   a  in observing customer  105   a &#39;s interactions with a given physical rack  215   a , virtual store tool  405  may display a video segment captured by a rack camera  495 , directed at the given physical rack  215   a , as enlarged video segment  1924 . As an example, in certain embodiments, virtual store tool  405  may display a video segment captured by a rack camera  495  directed at the physical rack  210   a  that stores a physical item  315   w  that is a subject of customer  105   a &#39;s refund request  1902   a . For instance, in certain embodiments, virtual store tool  405  may automatically display, as enlarged video segment  1924 , a video segment captured by a rack camera  495  directed at the physical rack  210   a  that stores physical item  315   w . In some embodiments, virtual store tool  405  may display, as enlarged video segment  1924 , a video segment captured by a rack camera  495  directed at the physical rack  210   a  that stores physical item  315   w , in response to user  120   a  selecting (e.g., clicking on, double-clicking on, and/or any other suitable method of selecting) the corresponding virtual item  320   w  from region  1914  of graphical user interface  1900 . 
     As a fourth example of a feature that may aid user  120   a  in processing refund request  1902   a , in certain embodiments, virtual store tool  405  may highlight a virtual rack  230   a , corresponding to a physical rack  210   a  that stores a first physical item  315   w  that is a subject of customer  105   a &#39;s refund request. Highlighting virtual rack  230   a  may aid user  120   a  in identifying which video segments of the shopping session he/she should review. For example, in response to observing that virtual rack  230   a  is highlighted, user  120   a  may choose to display a video segment captured by a rack camera  495  that is directed at the corresponding physical rack  210   a , by selecting from amongst the available rack cameras  495  that were directed at physical rack  210   a . For instance, in certain embodiments, virtual store tool  405  may display icons  1706   a/b  on virtual layout  205 , where the locations of icons  1706   a/b  on virtual layout  205  emulate the physical locations of rack cameras  495  within physical store  100 . In response to user  120   a  selecting an icon  1706   a/b  (e.g., clicking on the icon, double-clicking on the icon, and/or any other suitable method of selecting the icon), virtual store tool  405  may display, as enlarged video segment  1924 , a video segment captured by the rack camera  495  corresponding to the icon  1706   a/b . Virtual store tool  405  may highlight a virtual rack  230   a  that stores a virtual item  320   w  that is a subject of customer  105   a &#39;s refund request  1902   a  in any suitable manner. As an example, in certain embodiments, virtual store tool  405  may automatically highlight virtual rack  230   a  in response to displaying graphical user interface  1900  on display  410 . As another example, virtual store tool  405  may highlight virtual rack  230   a  in response to user  120   a  selecting (e.g., clicking on, double-clicking on, and/or any other suitable method of selecting) a virtual item  320   w  from region  1920  of graphical user interface  1900 , which is stored on virtual rack  230   a.    
     User  120   a  may accept or reject a customer&#39;s refund request  1902   a  based on the user&#39;s review of video segments  1922   a  through  1922   f  and/or  1924 . As an example, in certain embodiments, user  120   a  may observe, in video segments  1922   a  through  1922   f  and/or  1924 , customer  105   a  selecting a physical item  315   w  that is a subject of customer  105   a &#39;s refund request  1902   a . Accordingly, user  120   a  may decline customer  105   a &#39;s refund request for that physical item  315   w . User  120   a  may decline customer  105   a &#39;s refund request  1902   a  in any suitable manner. For example, in certain embodiments, user  120   a  may select decline button  1918  to decline the refund request. In response to user  120   a  declining the refund request, virtual store tool  405  may transmit a message  1926  (illustrated in  FIG. 19A ) to customer  105   a  indicating that his/her refund request  1902   a  has been denied. For example, in certain embodiments, virtual store tool  405  may transmit a message  1926  to device  125   a  indicating that refund request  1902   a  has been denied. In certain embodiments in which refund request  1902   a  includes a request for a refund of the purchase price of more than one item, user  120   a  may decline all of a portion of the refund request. For example, in response to reviewing customer  105   a  selecting physical item  315   w  in video segments  1922   a  through  1922   f  and/or  1924 , user  120   a  may decline a first portion of the refund request associated with a first item  315   w , but nevertheless accept a second portion of the refund request associated with a second item. 
     As another example, in some embodiments, user  120   a  may determine, by observing video segments  1922   a  through  1922   f  and/or  1924 , that customer  105   a  did not select a physical item  315   w  that is a subject of customer  105   a &#39;s refund request  1902   a . Accordingly, user  120   a  may accept customer  105   a &#39;s refund request for that physical item  315   w . User  120   a  may accept customer  105   a &#39;s refund request in any suitable manner. For example, in certain embodiments, user  120   a  may select accept button  1920  to accept the refund request. In response to user  120   a  accepting customer  105   a &#39;s refund request, virtual store tool  405  may credit an account belonging to customer  105   a  with the purchase price of the physical item  315   w . Virtual store tool  405  may also transmit a message  1926  (illustrated in  FIG. 19A ) to customer  105   a  indicating that his/her refund request has been accepted. For example, in certain embodiments, virtual store tool  405  may transmit a message  1926  to device  125   a  indicating that refund request  1902   a  has been accepted. 
     iii. Image-Based Review of the Shopping Session Associated with the Refund Request 
     In certain embodiments, in addition to or instead of reviewing video segments  1922   a  through  1922   f  and/or  1924 , user  120   a  may review an image  1710  of customer  105   a  that was captured as the customer exited physical store  100 , in order to process a refund request  1902   a  submitted by customer  105   s . Image  1710  may have been captured in any suitable manner. For example, in certain embodiments in which physical store  100  includes turnstiles  510  to control the entry/exit of persons  105  into/out of the store (as depicted in  FIG. 5A ), physical store  100  may include a camera configured to capture an image  1710  of customer  105   a  as customer  105   a  exits through a turnstile  510 . In certain embodiments, image  1710  is stored in shopping session identification information  486  in database  482 . In response to customer  105   a  submitting a refund request  1902   a  that includes information identifying the shopping session, virtual store tool  405  may access database  482  and use this identification information to locate image  1710 . Virtual store tool  405  may then display image  1710  on graphical user interface  1900 . User  120   a  may review image  1710  to quickly determine whether customer  105   a  exited physical store  100  with any of the physical items that are the subjects of the customer&#39;s refund request. For example, as illustrated in  FIG. 19 , user  120   a  may review image  1710  to determine that customer  105   a  exited physical store  100  with physical item  315   j  but not physical item  315   w . Accordingly, user  120   a  may accept customer  105   a &#39;s refund request for a refund of the purchase price of physical item  315   w.    
     c. Method for Processing a Refund Request 
       FIG. 20  presents a flowchart (described in conjunction with elements of  FIGS. 19A through 19C ) illustrating the manner by which virtual store tool  405  may be used to process a refund request  1902   a  submitted by a customer  105   a . In step  2002  virtual store tool  405  receives a request  1902   a  for a refund of the purchase price(s) of one or more physical items  315   w  that were charged to an account belonging to customer  105   a  in response to a prior shopping session conducted by customer  105   a  in physical store  100 . In step  2004  virtual store tool  405  identifies the shopping session associated with the refund request  1902   a . For example, in certain embodiments, the refund request submitted by customer  105   a  includes information identifying the shopping session associated with the refund request. Accordingly, virtual store tool  405  may access this information to identify the shopping session associated with the refund request. As an example, in certain embodiments, refund request  1902   a  includes the start and/or end times of the shopping session. For example, the refund request may indicate that the shopping session began at 4:15:05 pm on Jun. 26, 2020 and lasted until 4:17:55 pm that same day. As another example, in certain embodiments, refund request  1902   a  includes an identification number associated with the shopping session. Virtual store tool  405  may use this identification number to determine the start and/or end times of the shopping session. For example, virtual store tool  405  may use the identification number to look up the start and/or end times of the shopping session in the set of shopping session identification information  486  stored in database  482 . As a further example, in certain embodiments, refund request  1902   a  includes an identification number associated with the shopping session, which virtual store tool  405  may use, in conjunction with the items included in the refund request, to determine portions of the shopping session associated with the refund request. For example, virtual store tool  405  may use the identification number, along with the items included in the refund request, to look up the times of the shopping session associated with the items (e.g., the times at which the items were added to a virtual shopping cart during a virtual emulation of the shopping session and/or the times at which algorithm  488  determined that the items were selected during the shopping session) in the set of shopping session identification information  486  stored in database  482 . 
     In step  2006  virtual store tool  405  generates and displays historical video segments  1922   a  through  1922   f  and/or  1924  on graphical user interface  1900 . Historical video segments  1922   a  through  1922   f  and/or  1924  correspond to segments of video captured by layout cameras  490  and/or rack cameras  495  during the shopping session of customer  105   a  that is associated with the refund request. Virtual store tool  405  may obtain video segments  1922   a  through  1922   f  and/or  1924  in any suitable manner. As an example, in certain embodiments virtual store tool  405  uses the start and/or end times associated with the shopping session, which were obtained from the refund request, to extract video segments  1922   a  through  1922   f  and/or  1924  from videos  484   a  through  484   h  stored in database  482 . For example, virtual store tool  405  may store a portion of video  484   a  beginning at a timestamp corresponding to the start time and ending at a timestamp corresponding to the end time as video segment  1922   a . Virtual store tool  405  may generate each of video segments  1922   b  through  1922   f  and/or  1924  in a similar manner. As another example, in certain embodiments, virtual store tool  405  uses the time(s) of the shopping session associated with the item(s) included in refund request  1902   a  to extract video segments  1922   a  through  1922   f  and/or  1924  from videos  484  stored in database  482 . For example, virtual store tool  405  may store, as video segment  1922   a , a portion of video  484   a  beginning at a timestamp occurring a set time interval before the time of the shopping session that is associated with customer  105   a  selecting item  315   w  (as determined by algorithm  488  and/or a virtual emulation of the customer&#39;s shopping session using virtual store tool  405 ) and ending at a timestamp occurring a set time interval after the time of the shopping session that associated with the customer selecting item  315   w  as video segment  1922   a . Virtual store tool  405  may generate each of video segments  1922   b  through  1922   f  and/or  1924  in a similar manner. 
     In step  2008  virtual store tool  405  selects a first physical item  315   w  (corresponding to virtual item  320   w ) from the refund request. In step  2010  virtual store tool  405  determines whether customer  105   a  selected physical item  315   w  during the shopping session associated with the refund request. For example, in certain embodiments, virtual store tool  405  receives an indication from user  120   a  that user  120   a  either observed customer  105   a  selecting physical item  315   w  on video segments  1922   a  through  1922   f  and/or  1924  or did not observe customer  105   a  selecting physical item  315   w  on video segments  1922   a  through  1922   f  and/or  1924 . If, in step  2010  virtual store tool  405  determines that customer  105   a  selected physical item  315   w  during the shopping session, in step  2012  virtual store tool  405  declines to process the refund request associated with physical item  315   w . In certain embodiments, virtual store tool  405  may transmit a message  1926  to customer  105   a  informing customer  105   a  that his/her refund request has been denied. Method  2000  then proceeds to step  2016 . If, in step  2010  virtual store tool  405  determines that customer  105   a  did not select physical item  315   w  during the shopping session, in step  2014  virtual store tool  405  processes the refund request associated with physical item  315   w . For example, in certain embodiments, virtual store tool  405  may credit an account belonging to customer  105   a  with the purchase price of the physical item  315   w . In some embodiments, virtual store tool  405  may also transmit a message  1926  to customer  105   a  indicating that his/her refund request  1902   a  has been accepted. Method  2000  then proceeds to step  2016 . 
     In step  2016  virtual store tool  405  determines whether customer  105   a &#39;s refund request  1902   a  includes any additional items  315   w . If, in step  2016  virtual store tool  405  determines that customer  105   a &#39;s refund request includes one or more additional items, method  2000  returns to step  2008 . 
     Modifications, additions, or omissions may be made to method  2000  depicted in  FIG. 20 . Method  2000  may include more, fewer, or other steps. For example, steps may be performed in parallel or in any suitable order. While discussed as virtual store tool  405  (or components thereof) performing the steps, any suitable component of system  400 , such as device(s)  115  for example, may perform one or more steps of the method. 
     IX. Selective Use of Virtual Emulation as a Means for Verifying Algorithmic Shopping Carts 
     As described in Section VI above, in certain embodiments, virtual store tool  405  may be used in conjunction with an external algorithm  488  that is configured to model a customer&#39;s shopping session in physical store  100 , based on inputs received from sensors  498  located within the store. For example, virtual store tool  405  may be used to verify the determinations made by algorithm  488  of the items that customer  105  selected during the shopping session and/or to help improve the accuracy of algorithm  488  by providing feedback to algorithm  488 . In certain embodiments, using virtual store tool  405  to verify each determination made by algorithm  488  may not be feasible. For example, significant processing resources may be expended by verifying each determination made by algorithm  488 . Accordingly, rather than verifying each determination made by algorithm  488 , it may be desirable to selectively verify determinations made by algorithm  488 . For example, it may be desirable to verify those determinations made by algorithm  488  for which there exists a reasonable probability that the algorithmic determination is incorrect, while declining to verify those determinations made by algorithm  488  for which there exists a high probability that the algorithmic determination is correct. 
     a. Selective Verification System Overview 
       FIG. 21  presents an example system  2100  configured to use virtual store tool  405  to verify those determinations made by algorithm  488 , for which the probability that the algorithmic determination is incorrect is greater than a threshold. In particular, cart review assistant  2102  of system  2100  is configured to determine whether or not to invoke virtual store tool  405  to verify all or a portion of an algorithm shopping cart  1420  (which includes items that algorithm  488  determined that customer  105  selected during a shopping session in physical store  100 ), based on the probability that one or more of the items included in the algorithmic shopping cart  1420  is incorrect. As can be seen by a comparison between system  2100  presented in  FIG. 21  and system  400  presented in  FIG. 4 , system  2100  includes many of the same components as system  400 —namely virtual store tool  405 , network  430 , external system  485 , layout cameras  490 , rack cameras  495 , and sensors  498 . Accordingly, in the discussion that follows, it is assumed that the features and functions of these shared components include any of those features/functions presented in Sections I through VII above. 
     As illustrated in  FIG. 21 , in addition to virtual store tool  405 , network  430 , external system  485 , layout cameras  490 , rack cameras  495 , and sensors  498 , system  2100  includes cart review assistant  2102  and, in certain embodiments, database  2104 . Cart review assistant  2102  includes a processor  2108  and a memory  2110 . This disclosure contemplates processor  2108  and memory  2110  being configured to perform any of the functions of cart review assistant  2102  described herein. For example, memory  2110  may include a set of instructions  2124  that, when executed by processor  2108 , perform one or more of the functions of cart review assistant  2102  described herein. Generally, cart review assistant  2102  is configured to apply machine learning algorithm  2112  to sensor inputs  2122 , to determine whether or not all or a portion of algorithmic shopping cart  1420 , generated by external system  485 , is likely to include errors (i.e., likely to not accurately reflect the items actually selected by customer  105  during his/her shopping session) and is therefore a good candidate for verification by virtual store tool  405 . For example, machine learning algorithm  2112  may determine whether the probability that algorithmic shopping cart  1420  includes an error is greater than a threshold. In certain embodiments, cart review assistant  2102  is also configured use training data  2106 , stored in database  2104 , to train machine learning algorithm  2112  to identify virtual shopping carts  1420  as candidates for verification. In some embodiments, cart review assistant  2102  is further configured to update/refine machine learning algorithm  2112  based on feedback  2116  received from virtual store tool  405  for prior decisions made by the algorithm, in order to improve the accuracy of machine learning algorithm  2112 . These functions of cart review assistant  2102  are described in further detail below, and in particular, in the discussion of  FIGS. 22 and 23 . 
     Processor  2108  is any electronic circuitry, including, but not limited to central processing units (CPUs), graphics processing units (GPUs), microprocessors, application specific integrated circuits (ASIC), application specific instruction set processor (ASIP), and/or state machines, that communicatively couples to memory  2110  and controls the operation of cart review assistant  2102 . Processor  2108  may be 8-bit, 16-bit, 32-bit, 64-bit or of any other suitable architecture. Processor  2108  may include an arithmetic logic unit (ALU) for performing arithmetic and logic operations, processor registers that supply operands to the ALU and store the results of ALU operations, and a control unit that fetches instructions from memory and executes them by directing the coordinated operations of the ALU, registers and other components. Processor  2108  may include other hardware and software that operates to control and process information. Processor  2108  executes software stored on memory to perform any of the functions described herein. Processor  2108  controls the operation and administration of cart review assistant  2102  by processing information received from virtual store tool  405 , network  430 , external system  485 , layout cameras  490 , rack cameras  495 , sensors  498 , and/or database  2104 . Processor  2108  may be a programmable logic device, a microcontroller, a microprocessor, any suitable processing device, or any suitable combination of the preceding. Processor  2108  is not limited to a single processing device and may encompass multiple processing devices. 
     Memory  2110  may store, either permanently or temporarily, data, operational software, or other information for processor  2108 . Memory  2110  may include any one or a combination of volatile or non-volatile local or remote devices suitable for storing information. For example, memory  2110  may include random access memory (RAM), read only memory (ROM), magnetic storage devices, optical storage devices, or any other suitable information storage device or a combination of these devices. The software represents any suitable set of instructions, logic, or code embodied in a computer-readable storage medium. For example, the software may be embodied in memory  2110 , a disk, a CD, or a flash drive. In particular embodiments, the software may include an application executable by processor  2108  to perform one or more of the functions described herein. 
     Additionally, in certain embodiments, memory  2110  may store machine learning algorithm  2112 . Machine learning algorithm  2112  is any algorithm configured to determine whether algorithmic shopping cart  1420  is a good candidate for verification by virtual store tool  405  (e.g., whether algorithmic shopping cart  1420  likely includes errors). Machine learning algorithm  2112  may determine whether or not algorithmic shopping cart  1420  is a good candidate for verification based on sensor inputs  2122  that were received from sensors  498  located in physical store  100 , and which were used by algorithm  488  to generate algorithmic shopping cart  1420 . In certain embodiments, machine learning algorithm  2112  is configured to categorize an algorithmic shopping cart  1420  as either a good candidate for verification or not a good candidate for verification. Machine learning algorithm  2112  may base its categorization of an algorithmic shopping cart  1420  as either a good candidate or a bad candidate on the probability that the algorithmic shopping cart includes one or more errors. For instance, machine learning algorithm  2112  may categorize an algorithmic shopping cart  1420  as a good candidate for verification by virtual store tool  405  where the probability that the algorithmic shopping cart includes at least one error is greater than a certain threshold. 
     In some embodiments, machine learning algorithm  2112  may further categorize those algorithmic shopping carts  1420  that are good candidates for verification according to the probable type and/or cause of the error(s) likely present in the algorithmic shopping cart  1420 . As an example, machine learning algorithm  2112  may categorize an algorithmic shopping cart  1420  that is a good candidate for verification as likely: (1) including one or more physical items  315  that customer  105  did not select; (2) not including one or more physical items  315  that customer  105  did select; (3) including an incorrect quantity of one or more physical items  315  that customer  105  selected; and/or (4) including any other type of error that may be present in algorithmic shopping cart  1420 . As another example, machine learning algorithm  2112  may categorize an algorithmic shopping cart  1420  that is a good candidate for verification as likely including one or more errors because: (1) one or more servers within external system  485  likely was not functioning properly; (2) external system  485  likely was not properly recording information received from one or more weight sensors  1300  (illustrated in  FIGS. 13B through 13D ); (3) one or more weight sensors  1300  likely generated a false positive; (4) algorithm  488  likely generated one or more incorrect item counts; (5) algorithm  488  likely assigned one or more items  315  to the wrong customer  105 ; (6) algorithm  488  likely lost track of customer  105 ; and/or (7) any other likely cause of the error(s) within algorithmic shopping cart  1420 . 
     Machine learning algorithm  2112  may be configured to classify all or a portion of an algorithmic shopping cart  1420  as a good candidate for verification (e.g., as likely including one or more errors). As an example, consider an algorithmic shopping cart  1420  that includes two items—first item  315   a  and second item  315   b . Algorithm  488  may have added first item  315   a  to algorithmic shopping cart  1420  based on a first subset of sensor inputs  2122  received from sensors  498  during a first portion of a shopping session and added second item  315   b  to algorithmic shopping cart  1420  based on a second subset of sensor inputs  2122  received from sensors  498  during a second portion of the shopping session. In certain embodiments, machine learning algorithm  2112  may be configured to classify first item  315   a , based on the first subset of sensor inputs  2122 , as a good candidate for verification by virtual store tool  405  (e.g., likely incorrect) and to classify second item  315   b , based on the second subset of sensor inputs  2122 , as not a good candidate for verification by virtual store tool  405  (e.g., likely correct). In some embodiments, machine learning algorithm  2112  may be configured to classify the full algorithmic shopping cart  1420  (e.g., both first item  315   a  and second item  315   b ) as a good candidate for verification by virtual store tool  405  (e.g., likely including one or more errors), based on the full set of sensor inputs  2122 . Splitting an algorithmic shopping cart  1420  into portions and determining whether or not each portion is a good candidate for verification by virtual store tool  405  may be desirable to reduce the computational costs associated with using virtual store tool  405  to verify algorithmic shopping cart  1420 ; it may be more efficient to use virtual store tool  405  to review a portion of a shopping session in order to verify a portion of an algorithmic shopping cart  1420  rather than the reviewing the entire shopping session. 
     Machine learning algorithm  2112  may be any suitable machine learning algorithm. As a first example, in certain embodiments, machine learning algorithm  2112  is a supervised learning algorithm. For example, machine learning algorithm  2112  may be a supervised learning algorithm that has been trained, using training data  2106 , to determine whether or not an algorithmic shopping cart  1420  is a good candidate for verification based on sensor inputs  2122 . Sensor inputs  2122  correspond to inputs that were received from sensors  498  located in physical store  100  and were used by algorithm  488  to generate algorithmic shopping cart  1420 . As described in detail below, in certain embodiments, training data  2106  may include sets of historical sensor inputs  2118   a  through  2118   n , each of which is assigned a corresponding label  2120   a  through  2120   n  labeling whether or not an algorithmic shopping cart generated based on the historical sensor inputs was a good candidate for verification (e.g., whether or not the algorithmic shopping cart likely included one or more errors). For example, label  2120   a  may indicate that the algorithmic shopping cart generated using historical sensor inputs  2118   a  was inaccurate, and therefore was a good candidate for verification by virtual store tool  405 . Similarly, label  2120   b  may indicate that the algorithmic shopping cart generated using historical sensor inputs  2118   b  was accurate and therefore was not a good candidate for verification by virtual store tool  405 . Machine learning algorithm  2112  may be trained, using training data  2106 , to identify patterns within the sets of historical sensor inputs  2118   a  through  2118   n  and corresponding labels  2120   a  through  2120   n , such that machine learning algorithm  2112  may assign a label to new sensor inputs  2122 , based on these learned patterns. 
     As a specific example of a supervised machine learning algorithm  2112  that may be used by cart review assistant  2102  to identify those algorithmic shopping carts  1420  that are good candidates for verification by virtual store tool  405 , in certain embodiments, machine learning algorithm  2112  is a neural network algorithm. For example, machine learning algorithm  2112  may be a neural network that includes an input layer of nodes, one or more hidden layers of nodes, and an output layer of nodes. The input layer of nodes is configured to take, as input, sensor inputs  2122  that are associated with a given shopping session of a customer  105  within physical store  100 , and to transfer these inputs to the first hidden layer of nodes. Each node within the hidden layer(s) of the neural network receives a certain number of inputs from the previous layer of nodes and is associated with a set of weights, one for each received input. Each hidden layer node is configured to calculate a weighted sum of the inputs it receives, add a bias, and execute an activation function. The output of each hidden layer node is passed as input to the next layer of nodes. The output layer of nodes receives input from the last hidden layer and generates the result of the neural network. For example, in certain embodiments in which machine learning algorithm  2112  is configured to classify sensor inputs  2122  as either associated with an algorithmic cart  1420  that is a good candidate for verification (e.g., likely includes one or more errors) or an algorithmic cart  1420  that is not a good candidate for verification (e.g., likely does not include one or more errors), the output layer may include a single output node, where an output value of the node between 0.5 and 1.0 indicates that sensor inputs  2122  are associated with an algorithmic cart  1420  that is a good candidate for verification and an output value of the node less than 0.5 indicates that sensor inputs  2122  are associated with an algorithmic cart  1420  that is not a good candidate for verification. Alternatively, the output layer may include two nodes—a first node that is used to categorize sensor inputs  2122  as likely associated with an algorithmic cart  1420  that is a good candidate for verification, and a second node that is used to categorize sensor inputs  2122  as likely associated with an algorithmic cart  1420  that is not a good candidate for verification. Sensor inputs  2122  are assigned to one of these two categories according to which of the two output nodes has the largest value. 
     In embodiments in which machine learning algorithm  2112  is a neural network, the neural network may be trained to identify those algorithmic shopping carts  1420  that are good candidates for verification (e.g., those algorithmic shopping carts  1420  that likely include one or more errors) in any suitable manner. For example, in certain embodiments, machine learning algorithm  2112  is trained using training data  2106  by applying the algorithm to historical sensor inputs  2118 , for which the desired output of the neural network, indicated by labels  2120 , is known. Training the algorithm involves optimizing the values of the weights of the nodes within the network in order to maximize the accuracy of the neural network (e.g., maximize the likelihood that, when applied to a given set of historical sensor inputs  2118 , the output of the neural network will correspond to the label  2120  assigned to the given set of historical sensor inputs  2118 ). In certain embodiments, cart review assistant  2102  performs this training process. 
     As a second example of the type of machine learning algorithm  2112  that may be used by cart review assistant  2102  to identify those algorithmic shopping carts  1420  that are good candidates for verification by virtual store tool  405  (e.g., those algorithmic shopping carts  1420  that likely include one or more errors), in certain embodiments, machine learning algorithm  2112  is a reinforcement learning algorithm, that continues to learn over time. As a specific example, machine learning algorithm  2112  may correspond to a reinforcement learning agent. For each decision made by reinforcement learning agent  2112 , feedback  2116  may be provided to the agent, in the form of a reward/penalty, and the agent may use this feedback  2116  to refine itself in an attempt to maximize future rewards. Rewards/penalties may be provided to the agent as follows: (1) if the agent determines that an algorithmic shopping cart  1420  obtained from set of sensor inputs  2122  is a good candidate for verification (e.g., the cart is likely inaccurate) and it is subsequently determined that the algorithmic shopping cart  1420  does include one or more errors, a first reward value is provided to the reinforcement learning agent  2112 ; (2) if the agent determines that an algorithmic shopping cart  1420  obtained from set of sensor inputs  2122  is a good candidate for verification (e.g., the cart is likely inaccurate) and it is subsequently determined that the algorithmic shopping cart  1420  does not include any errors, a first penalty value (e.g., a first negative reward value) is provided to the reinforcement learning agent  2112 ; (3) if the agent determines that an algorithmic shopping cart  1420  obtained from set of sensor inputs  2122  is not a good candidate for verification (e.g., the cart is likely accurate) and it is subsequently determined that the algorithmic shopping cart  1420  does not include any errors, a second reward value is provided to the reinforcement learning agent  2112 ; and (4) if the agent determines that an algorithmic shopping cart  1420  obtained from set of sensor inputs  2122  is a not a good candidate for verification (e.g., the cart is likely accurate) and it is subsequently determined that the algorithmic shopping cart  1420  does not include one or errors, a second penalty value (e.g., a second negative reward value) is provided to the reinforcement learning agent  2112 . In certain embodiments, the reward/penalty values are determined using a reward function. In certain embodiments, the first and second reward values are the same and the first and second penalty values are the same. In some embodiments, the absolute value of the second penalty value is larger than the absolute value of the first penalty value (e.g., reinforcement learning agent  2112  is penalized more heavily for determinations that result in incorrect charges to customer  105  than for determinations that result in an unnecessary expenditure of computational resources). In certain embodiments, the values of one or more of the first reward, the second reward, the first penalty, and the second penalty, may change, depending on the situation under consideration by reinforcement learning agent  2112 . As an example, a larger reward value may be provided to reinforcement learning agent  2112  when the agent determines that a first algorithmic shopping cart  1420  is a good candidate for verification (e.g., the cart is likely inaccurate) and it is subsequently determined that the cart includes error(s) that would lead to under/overcharging customer  105  by at least twenty dollars, as compared to a situation in which the agent determines that a second algorithmic shopping cart  1420  is a good candidate for verification and it is subsequently determined that the cart includes error(s) that would lead to under/overcharging customer  105  by only a few cents. The process of rewarding/penalizing reinforcement learning agent  2112  is described in further detail below, in the discussion of  FIG. 22 . 
     Cart review assistant  2102  may include any suitable reinforcement learning agent  2112 . As an example, in certain embodiments, cart review assistant  2102  includes a tabular Q-Learning model that includes a set of state-action pairs, with a q-value assigned to each pair. Each state corresponds to a set of sensor inputs  2122  and each action corresponds to either sending the algorithmic shopping cart  1420  that is associated with the sensor inputs  2122  for verification by virtual store tool  405 , or not sending the algorithmic shopping cart  1420  for review. For a given state, the action with the highest q-value is the action that is chosen by reinforcement learning agent  2112 . For example, for a given set of sensor inputs  2122 , reinforcement learning agent  2112  makes the decision of whether or not to send the associated algorithmic shopping cart  1420  for review by virtual store tool  405  based on which action (sending the cart for review or not sending the cart for review) corresponds to the highest q-value. Feedback  2116  may be provided to agent  2112  in the form of the reward/penalty values described above. In response to receiving this feedback  2116 , agent  2112  may refine the Q-learning model by adjusting the q-values assigned to the state-action pairs in order to maximize the future rewards received (e.g., to maximize the Bellman equation). In certain embodiments, sensor inputs  2122  are discretized, such that a finite and computationally feasible number of states are possible. For example, in embodiments in which inputs  2122  include the positions of customer  105  within physical store  100 , those positions may be specified according to grid points on a discrete grid overlaying the floor of physical store  100 . 
     As another example of a reinforcement learning agent  2112  that may be used by cart review assistant  2102 , in certain embodiments, reinforcement learning agent  2112  is a deep Q network (DQN). For example, reinforcement learning agent  2112  may be a deep Q network that includes an input layer of nodes, one or more hidden layers of nodes, and an output layer of nodes. The input layer of nodes may be configured to provide, as input to the network, the set of sensor inputs  2122 . The output layer of nodes may be configured to provide, as output, q-values corresponding to the actions of sending the algorithmic shopping cart  1420  associated with the sensor inputs  2122  for review by virtual store tool  405  or not sensing algorithmic shopping cart  1420  for review by virtual store tool  405 . Feedback  2116  may be provided to the agent  2112  in the form of the reward/penalty values described above. In response to receiving this feedback  2116 , the agent may refine itself (e.g., by adjusting the values of weights within the network) in order to maximize the future rewards it receives (e.g., to maximize the Bellman equation). In certain embodiments, reinforcement learning agent  2112  is a variant of a deep Q network. For example, in some embodiments, machine learning agent  2112  corresponds to a double deep Q network (DDQN). The use of a DDQN algorithm may be desirable to reduce the impact of recency bias on the algorithm&#39;s determinations. 
     In certain embodiments, system  2100  includes database  2104 . Database  2104  stores training data  2106 . Training data  2106  includes any data that may be used to train machine learning algorithm  2112 . For example, in embodiments in which machine learning algorithm  2112  is a supervised learning algorithm, training data  2106  may include sets of historical sensor inputs  2118   a  through  2118   n  and labels  2120   a  through  2120   n.    
     Each set of historical sensor inputs  2118  includes inputs received from sensors  498  (including, for example, cameras  1305  and weight sensors  1300 ) located within physical store  100  that were captured during a shopping session of a customer  105  within physical store  100 . Sensors  498  may include any sensors located within physical store  100 . For example, in certain embodiments, sensors  498  may include cameras, light detection and range sensors, millimeter wave sensors, weight sensors, and/or any other appropriate sensors, operable to track a customer  105  in physical store  100  and to detect information associated with customer  105  selecting one or more physical items  315  from physical store  100 . 
     Each label  2120  of labels  2120   a  through  2120   n  is assigned to a corresponding set of historical sensor inputs  2118   a  through  2118   n , and labels whether the algorithmic shopping cart  1420 , generated by algorithm  488  based on the corresponding set of historical sensor inputs  2118 , included any errors (and, accordingly, whether algorithmic shopping cart  1420  is a good candidate for verification by virtual store tool  405 ). As an example, label  2120   a , assigned to set of historical sensor inputs  2118   a , may indicate that an algorithmic shopping cart  1420 , generated by algorithm  488  based on set of historical sensor inputs  2118   a , included one or more errors. As another example, label  2120   b , assigned to set of historical sensor inputs  2118   b , may indicate that an algorithmic shopping cart  1420 , generated by algorithm  488  based on set of historical sensor inputs  2118   b , did not include any errors. 
     In certain embodiments, in addition to labeling sets of historical sensor inputs  2118  according to whether an algorithmic shopping cart  1420 , generated by algorithm  488  based on the corresponding set of historical sensor inputs  2118 , included any errors, labels  2120  may further label sets of historical sensor inputs  2118  according to the probable type and/or cause of the error(s) likely present in the algorithmic shopping cart  1420 . As an example, label  2120   a  may label set of historical sensor inputs  2118   a  according to whether an algorithmic shopping cart  1420 , generated by algorithm  488  based on the set of historical sensor inputs  2118   a : (1) included one or more physical items  315  that customer  105  did not select; (2) did not include one or more physical items  315  that customer  105  did select; (3) included an incorrect quantity of one or more physical items  315  that customer  105  selected; and/or (4) included any other type of error. As another example, label  2120   a  may label set of historical sensor inputs  2118   a  according to whether an algorithmic shopping cart  1420 , generated by algorithm  488  based on the set of historical sensor inputs  2118  included one or more errors because: (1) one or more servers within external system  485  likely was not functioning properly; (2) external system  485  likely was not properly recording information received from one or more weight sensors  1300 ; (3) one or more weight sensors  1300  likely generated a false positive; (4) algorithm  488  likely generated one or more incorrect item counts; (5) algorithm  488  likely assigned one or more items  315  to the wrong customer  105 ; (6) algorithm  488  likely lost track of customer  105  and/or (7) any other likely cause of the error(s) within algorithmic shopping cart  1420 . 
     Labels  2120  may be generated in any suitable manner. As an example, in certain embodiments, virtual store tool  405  may generate a label  2120   a , corresponding to historical sensor inputs  2118   a  that were generated during a given shopping session in physical store  100 , in response to generating a virtual shopping cart  420  for that shopping session and comparing the virtual shopping cart  420  to an algorithmic shopping cart  1420 , generated by algorithm  488  based on the historical sensor inputs  2118   a . For example, for a given shopping session associated with sensor inputs  2118   a , in response to comparing virtual shopping cart  420  with algorithmic shopping cart  1420  and determining that the two carts do not match, virtual store tool  405  may generate label  2120   a , which indicates that the algorithmic shopping cart  1420  associated with sensor inputs  2118   a  is a good candidate for verification. Similarly, for a given shopping session associated with sensor inputs  2118   b , in response to comparing virtual shopping cart  420  with algorithmic shopping cart  1420  and determining that the two carts match, virtual store tool  405  may generate label  2120   b , which indicates that the algorithmic shopping cart  1420  associated with sensor inputs  2118   b  is not a good candidate for verification. As another example, in certain embodiments, a user  120  may generate labels  2120 . For example, user  120  may generate label  2120   c  based on an analysis of historical sensor inputs  2118   c.    
     Modifications, additions, or omissions may be made to system  2100  without departing from the scope of the invention. For example, system  2100  may include any number of users  120 , virtual store tools  405 , networks  430 , external systems  485 , layout cameras  490 , rack cameras  495 , sensors  498 , and databases  2104 . The components may be integrated or separated. Moreover, the operations may be performed by more, fewer, or other components. Additionally, the operations may be performed using any suitable logic comprising software, hardware, and/or other logic. 
     b. Operation of the Cart Review Assistant 
       FIG. 22  illustrates an example process by which machine learning algorithm  2112  of cart review assistant  2102  (1) determines whether or not virtual store tool  405  should be used to verify an algorithmic shopping cart  1420  (e.g., whether or not algorithmic shopping cart  1420  is likely accurate) and (2) receives feedback  2116  for its decision. As illustrated in  FIG. 22 , machine learning algorithm  2112  operates on sensor inputs  2122 . Sensor inputs  2122  include inputs received from sensors  498  located within physical store  100  and were used by algorithm  488  to generate algorithmic shopping cart  1420 . Sensors  498  may include any sensors located within physical store  100 . For example, in certain embodiments, sensors  498  may include cameras, light detection and range sensors, millimeter wave sensors, weight sensors, and/or any other appropriate sensors, operable to track a customer  105  in physical store  100  and to detect information associated with customer  105  selecting one or more physical items  315  from physical store  100 . 
     In response to receiving sensor inputs  2122 , machine learning algorithm  2112  uses these inputs to determine whether or not the algorithmic shopping cart  1420 , obtained by algorithm  488  using sensor inputs  2122 , is a good candidate for verification by virtual store tool  405 . As described above, determining whether or not algorithmic shopping cart  1420  is a good candidate for verification may include determining whether or not a probability that algorithmic shopping cart  1420  includes one or more errors is greater than a threshold. 
     i. Decision to Send an Algorithmic Shopping Cart to Virtual Store Tool for Review. 
     In response to determining that algorithmic shopping cart  1420  is a good candidate for verification, cart review assistant  2102  sends the shopping session associated with the algorithmic shopping cart  1420  to virtual store tool  405  for review. Virtual store tool  405  is then used to virtually emulate the shopping session associated with algorithmic shopping cart  1420 , as described in Section IV above. In response to virtually emulating the shopping session, virtual store tool  405  compares the virtual shopping cart  420  that was generated during the virtual emulation to algorithmic shopping cart  1420 , as described in Section VI. Virtual store tool  405  then provides feedback  2116  to cart review assistant  2102 , which indicates whether or not virtual shopping cart  1420  matched algorithmic shopping cart  420 . In certain embodiments, virtual store tool  405  additionally charges an account belonging to customer  105  for the purchase price of the items  320  in virtual shopping cart  420  and transmits a receipt  1465  for the purchase to customer  105 . 
     Cart review assistant  2102  may use the feedback  2116  received from virtual store tool  405  in any suitable manner. As an example, in certain embodiments in which machine learning algorithm  2112  is a reinforcement learning agent, in response to receiving feedback  2116  from virtual store tool  405 , cart review assistant  2102  uses this feedback to reward/punish agent  2112 . For instance, in response to receiving feedback  2116  indicating that virtual shopping cart  1420  and algorithmic shopping cart  420  did not match, cart review assistant  2102  provides reinforcement learning agent  2112  with a positive reward value, rewarding reinforcement learning agent  2112  for deciding to send the shopping session associated with algorithmic shopping cart  1420  to virtual store tool  405  for review, given that virtual store tool  405  determined that algorithmic shopping cart  1420  included at least one error. In a similar manner, in response to receiving feedback  2116  indicating that virtual shopping cart  1420  matched algorithmic shopping cart  420 , cart review assistant  2102  provides reinforcement learning agent  2112  with a penalty value (e.g., a negative reward value), penalizing reinforcement learning agent  2112  for deciding to send the shopping session associated with algorithmic shopping cart  1420  to virtual store tool  405  for review (and therefore causing the system to expend additional processing resources), given that virtual store tool  405  determined that algorithm shopping cart  1420  did not include any errors. 
     As another example of the use of feedback  2116  received from virtual store tool  405 , in certain embodiments in which machine learning algorithm  2112  is a supervised learning algorithm, in response to receiving feedback  2116  from virtual store tool  405 , cart review assistant  2102  may use this feedback to generate a label  2120  for sensor inputs  2122 . Label  2120  labels whether the algorithmic shopping cart  1420 , generated by algorithm  488  based on sensor inputs  2122 , included any errors (and, accordingly, whether algorithmic shopping cart  1420  was a good candidate for verification by virtual store tool  405 ). Cart review assistant  2102  may then store label  2120  and sensor inputs  2122  in database  2104 , thereby adding to training data  2106 . As an example, in response to receiving feedback  2116  indicating that virtual shopping cart  420  did not match algorithmic shopping cart  1420 , cart review assistant  2102  may generate a label  2120  for sensor inputs  2122  indicating that the algorithmic shopping cart  1420 , generated by algorithm  488  based on sensor inputs  2122 , included at least one error (and, accordingly is a good candidate for verification by virtual store tool  405 ). As another example, in response to receiving feedback  2116  indicating that virtual shopping cart  420  matched algorithmic shopping cart  1420 , cart review assistant  2102  may generate a label  2120  for sensor inputs  2122  indicating that the algorithmic shopping cart  1420 , generated by algorithm  488  based on sensor inputs  2122 , did not include any errors (and, accordingly is not a good candidate for verification by virtual store tool  405 ). In certain embodiments, cart review assistant  2102  may use training data  2106  to retrain machine learning algorithm  2112 . For example, in some embodiments, cart review assistant  2102  may use training data  2106  to retrain machine learning algorithm  2112  at regular intervals. 
     ii. Decision not to Send an Algorithmic Shopping Cart to Virtual Store Tool for Review. 
     In response to determining that algorithmic shopping cart  1420  is not a good candidate for verification, in certain embodiments, cart review assistant  2102  charges an account belonging to customer  105  for the purchase price of the items  320  in algorithmic shopping cart  1420  and transmits a receipt  1465  to customer  105 . In some embodiments, cart review assistant  2102  instructs another component of system  2100 , such as virtual store tool  405 , external system  485 , or any other suitable component, to perform such tasks. 
     Feedback  2116  for a decision by machine learning algorithm  2112  not to send the shopping session associated with algorithmic shopping cart  1420  to virtual store tool  405  may be generated in any suitable manner. As an example, in certain embodiments, the feedback  2116  for a decision by machine learning algorithm  2112  not to send the shopping session associated with algorithmic shopping cart  1420  to virtual store tool  405  for review may originate from customer  105 , in the form of customer feedback  2208 . For example, in certain embodiments, in response to receiving receipt  1465 , customer  105  may submit a refund request  2208  to virtual store tool  405 , disputing one or more charges, as described in Section VII above. In response to receiving the refund request, virtual store tool  405  may determine whether or not to issue a refund to an account belonging to customer  105 , as described in detail in Section VII above. If virtual store tool  405  determines to issue a refund to customer  105 , this may indicate that the algorithmic shopping cart  1420  that was used to charge the account belonging to customer  105 , included one or more errors. Accordingly, virtual store tool  405  may provide this information to cart review assistant  2102  as feedback  2116 . On the other hand, if virtual store tool  405  determines not to issue a refund to customer  105 , this may indicate that the algorithmic shopping cart  1420 , used to charge the account belonging to customer  105 , did not include any errors. Accordingly, virtual store tool  405  may provide this information to cart review assistant  2102  as feedback  2116 . 
     As another example of the manner by which feedback  2116  may be generated, in certain embodiments, the feedback  2116  for a decision by machine learning algorithm  2112  not to send the shopping session associated with algorithmic shopping cart  1420  to virtual store tool  405  for review may originate directly from virtual store tool  405 . For example, in certain embodiments, a customer  105  may be unlikely to submit a refund request  2208  when an error in algorithmic shopping cart  1420  results in system  2100  undercharging customer  105  for his/her shopping session. Accordingly, in order to obtain feedback  2116  related to such shopping sessions, in certain embodiments, cart review assistant  2102  may randomly decide to send a shopping session associated with an algorithmic shopping cart  1420  to virtual store tool  405  for review, even though machine learning algorithm  2112  determined that the shopping session was not a good candidate for review. Virtual store tool  405  may then be used to virtually emulate the shopping session associated with algorithmic shopping cart  1420 , as described in Section IV above. In response to virtually emulating the shopping session, virtual store tool  405  compares the virtual shopping cart  420  that was generated during the virtual emulation to algorithmic shopping cart  1420 , as described in Section VI. Virtual store tool  405  then provides feedback  2116  to cart review assistant  2102 , indicating whether or not virtual shopping cart  1420  matched algorithmic shopping cart  420 . In certain embodiments, virtual store tool  405  additionally charges an account belonging to customer  105  for the purchase price of the items  320  in virtual shopping cart  420  and transmits a receipt  1465  for the purchase to customer  105 . 
     Cart review assistant  2102  may use the feedback  2116  received from customer  105  and/or virtual store tool  405  in any suitable manner. As an example, in certain embodiments in which machine learning algorithm  2112  is a reinforcement learning agent, in response to receiving feedback  2116  from virtual store tool  405 , cart review assistant  2102  uses this feedback to reward/punish agent  2112 . As an example, in response to receiving feedback  2116  indicating that virtual shopping cart  1420  and algorithmic shopping cart  420  did not match, cart review assistant  2102  provides reinforcement learning agent  2112  with a punishment value (e.g., a negative reward value), punishing reinforcement learning agent  2112  for not deciding to send the shopping session associated with algorithmic shopping cart  1420  to virtual store tool  405  for review (and therefore relying on algorithmic shopping cart  1420  to generate receipt  1465 ), given that virtual store tool  405  determined that algorithmic shopping cart  1420  included at least one error. As another example, in response to receiving feedback  2116  indicating that virtual shopping cart  1420  matched algorithmic shopping cart  420 , cart review assistant  2102  provides reinforcement learning agent  2112  with a reward value, rewarding reinforcement learning agent  2112  for deciding not to send the shopping session associated with algorithmic shopping cart  1420  to virtual store tool  405  for review (and therefore conserving processing resources that would otherwise have been expended), given that virtual store tool  405  determined that algorithm shopping cart  1420  did not include any errors. 
     As another example of the use of feedback  2116  received from customer  105  and/or virtual store tool  405 , in certain embodiments in which machine learning algorithm  2112  is a supervised learning algorithm, in response to receiving feedback  2116  from virtual store tool  405 , cart review assistant  2102  may use this feedback to generate a label  2120  for sensor inputs  2122 . As an example, in response to receiving feedback  2116  indicating that virtual shopping cart  420  did not match algorithmic shopping cart  1420 , cart review assistant  2102  may generate a label  2120  for sensor inputs  2122  indicating that the algorithmic shopping cart  1420 , generated by algorithm  488  based on sensor inputs  2122 , included at least one error (and, accordingly is a good candidate for verification by virtual store tool  405 ). As another example, in response to receiving feedback  2116  indicating that virtual shopping cart  420  matched algorithmic shopping cart  1420 , cart review assistant  2102  may generate a label  2120  for sensor inputs  2122  indicating that the algorithmic shopping cart  1420 , generated by algorithm  488  based on sensor inputs  2122 , did not include any errors (and, accordingly is not a good candidate for verification by virtual store tool  405 ). As described above, in certain embodiments, cart review assistant  2102  may use training data  2106  to retrain machine learning algorithm  2112 . 
     c. Method for Selectively Validating Algorithmic Shopping Carts 
       FIG. 23  presents a flowchart (described in conjunction with elements of  FIGS. 21 and 22 ) illustrating the manner by which cart review assistant  2102  uses machine learning algorithm  2112  to determine whether or not virtual store tool  405  should be used to verify an algorithmic shopping cart  1420  (e.g., whether or not algorithmic shopping cart  1420  is likely accurate) and receives feedback  2116  for this decision. In step  2302  cart review assistant  2102  receives sensor inputs  2122  associated with a shopping session of a customer  105  in physical store  100 . In certain embodiments, sensor inputs  2122  were used by algorithm  488  to generate an algorithmic shopping cart  1420  for the shopping session of customer  105 . In step  2304  cart review assistant  2102  applies machine learning algorithm  2112  to sensor inputs  2122  to determine whether or not algorithmic shopping cart  1420  is a good candidate for review. 
     In step  2306  cart review assistant  2102  determines whether machine learning algorithm  2112  determined that algorithmic shopping cart  1420  is a good candidate for review (e.g., whether algorithmic shopping cart  1420  likely includes one or more errors). If, in step  2306  cart review assistant  2102  determines that machine learning algorithm  2112  determined that algorithmic shopping cart  1420  is a good candidate for review, in step  2308  cart review assistant  2102  instructs virtual store tool  405  to virtually emulate the shopping session of customer  105  that is associated with sensor inputs  2122 . This virtual emulation may include (1) generating a virtual shopping cart  420  associated with the shopping session, (2) using virtual shopping cart  420  to charge an account belonging to customer  105  for the selections he/she made during the shopping session, and (3) issuing a receipt  1465  to customer  105 . In step  2310  virtual store tool  405  determines whether the virtual shopping cart  420  matches the algorithmic shopping cart  1420 . If, in step  2310  virtual store tool  405  determines that virtual shopping cart  420  does not match algorithmic shopping cart  1420 , in step  2312  virtual store tool  405  provides feedback  2116  to cart review assistant  2102 , indicating that virtual shopping cart  420  does not match algorithmic shopping cart  1420 . In certain embodiments in which machine learning algorithm  2112  is a reinforcement learning agent, cart review assistant  2102  then uses this feedback to provide a reward to reinforcement learning agent  2112 . Method  2300  then proceeds to step  2326 . If, in step  2310  virtual store tool  405  determines that virtual shopping cart  420  matches algorithmic shopping cart  1420 , in step  2314  virtual store tool  405  provides feedback  2116  to cart review assistant  2102 , indicating that virtual shopping cart  420  matches algorithmic shopping cart  1420 . In certain embodiments in which machine learning algorithm  2112  is a reinforcement learning agent, cart review assistant  2102  then uses this feedback to provide a penalty to reinforcement learning agent  2112 . Method  2300  then proceeds to step  2326 . 
     If, in step  2306  cart review assistant  2102  determines that machine learning algorithm  2112  determined that algorithmic shopping cart  1420  is not a good candidate for review, in step  2316  cart review assistant  2102  uses algorithmic shopping cart  1420  to charge an account belonging to customer  105  for the selections he/she made during the shopping session and issue a corresponding receipt  1465  to customer  105 . In step  2318  cart review assistant  2102  receives feedback  2208  from customer  105 . In certain embodiments, feedback  2208  is a refund request submitted by customer  105  to virtual store tool  405 . Virtual store tool  405  then processes the refund request by virtually emulating the shopping session associated with the refund request. In step  2320  virtual store tool  405  determines whether the virtual cart  420  resulting from the virtual emulation of the shopping session associated with the refund request matches the algorithmic shopping cart  1420  that was used to charge customer  105 . If, in step  2320  virtual store tool  405  determines that virtual shopping cart  420  does not match algorithmic shopping cart  1420 , in step  2322  virtual store tool  405  provides feedback  2116  to cart review assistant  2102 , indicating that virtual shopping cart  420  does not match algorithmic shopping cart  1420 . In certain embodiments in which machine learning algorithm  2112  is a reinforcement learning agent  2112 , cart review assistant  2102  then uses this feedback to provide a penalty to reinforcement learning agent  2112 . Method  2300  then proceeds to step  2326 . If, in step  2320  virtual store tool  405  determines that virtual shopping cart  420  matches algorithmic shopping cart  1420 , in step  2324  virtual store tool  405  provides feedback  2116  to cart review assistant  2102 , indicating that virtual shopping cart  420  matches algorithmic shopping cart  1420 . In certain embodiments in which machine learning algorithm  2112  is a reinforcement learning agent, cart review assistant  2102  then uses this feedback to provide a reward to reinforcement learning agent  2112 . Method  2300  then proceeds to step  2326 . In step  2326  cart review assistant  2102  uses the punishment and reward values to refine machine learning algorithm,  2112 . 
     In certain embodiments, feedback  2208  received by cart review assistant  2102  at step  2318  includes the absence of a refund request submitted by customer  105  to virtual store tool  405 . For example, in certain embodiments, if virtual store tool  405  does not receive a refund request from customer  105  within a set period of time, cart review assistant  2102  may assume that customer  105  determined that algorithmic shopping cart  1402  was accurate. Accordingly, in certain embodiments, at step  2320  cart review assistant  2102  may assume that if virtual store tool  405  were to virtually emulate the corresponding shopping session, the resulting virtual shopping cart  420  would match algorithmic shopping cart  1420 . In some embodiments, even though virtual store tool  405  did not receive a refund request from customer  105  within a set period of time, cart review assistant  2102  may nevertheless randomly decide to instruct virtual store tool  405  to virtually emulate the shopping session of customer  105 , and to compare the resulting virtual shopping cart  420  to algorithmic shopping cart  1420  at step  2320 . This may be desirable in certain embodiments where errors in algorithmic shopping cart  1420  may result in customer  105  being undercharged. 
     Modifications, additions, or omissions may be made to method  2300  depicted in  FIG. 23 . Method  2300  may include more, fewer, or other steps. For example, steps may be performed in parallel or in any suitable order. While discussed as cart review assistant  2102  (or components thereof) and virtual store tool  405  (or components thereof) performing the steps, any suitable component of system  2100 , such as external system  485  for example, may perform one or more steps of the method. 
     While the preceding examples and explanations are described with respect to particular use cases within a retail environment, one of ordinary skill in the art would readily appreciate that the previously described configurations and techniques may also be applied to other applications and environments. Examples of other applications and environments include, but are not limited to, security applications, surveillance applications, object tracking applications, people tracking applications, occupancy detection applications, logistics applications, warehouse management applications, operations research applications, product loading applications, retail applications, robotics applications, computer vision applications, manufacturing applications, safety applications, quality control applications, food distributing applications, retail product tracking applications, mapping applications, simultaneous localization and mapping (SLAM) applications, 3D scanning applications, autonomous vehicle applications, virtual reality applications, augmented reality applications, or any other suitable type of application. 
     Although the present disclosure includes several embodiments, a myriad of changes, variations, alterations, transformations, and modifications may be suggested to one skilled in the art, and it is intended that the present disclosure encompass such changes, variations, alterations, transformations, and modifications as falling within the scope of the appended claims.