Trajectory prediction using data normalization
Patent Information
- Application Number
- CN202180090559.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2020-12-14
- Filing Date
- 2021-12-07
- Publication Date
- 2026-10-30
- Estimated Expiration
- 2041-12-07
Smart Images

Figure CN116710731B_ABST
Abstract
Description
[0001] Priority application
[0002] This application claims priority to U.S. Provisional Patent Application No. 63 / 125,041, filed on December 14, 2020, the disclosure of which is incorporated herein by reference in its entirety. Background Technology
[0003] Trajectory prediction plays a crucial role in many tasks, such as intelligent access control systems. Trajectory prediction is generally defined as predicting the position of a mobile agent (e.g., a person, vehicle, or mobile device) at each time step within a predefined future time interval, based on partial trajectories observed over a certain period. Summary of the Invention
[0004] In some aspects, a method is provided, comprising: receiving, by one or more processors, a plurality of observed velocity points, each of the plurality of observed velocity points corresponding to a different slice of a plurality of slices of an observed trajectory; processing the plurality of observed velocity points corresponding to the observed trajectory using machine learning techniques to generate a plurality of predicted velocity points, the machine learning techniques being trained to establish a relationship between a plurality of trained observed velocity points and trained predicted velocity points; determining a future trajectory based on the plurality of predicted velocity points, each of the plurality of predicted velocity points corresponding to a different slice of a plurality of slices of the future trajectory; determining that a target access control device is within a threshold range of the future trajectory; and, in response to determining that the target access control device is within the threshold range of the future trajectory, performing an operation associated with the target access control device.
[0005] In some aspects, multiple observed velocity points include acceleration measurements, multiple predicted velocity points include multiple acceleration measurements, and the target access control device includes a lock associated with a door; and wherein performing an operation includes unlocking the door.
[0006] In some aspects, the method includes: establishing a wireless communication link between a user's mobile device and a target access control device; exchanging authorization information through the wireless communication link; and performing an operation after determining, based on the authorization information, that the user is authorized to access the target access control device.
[0007] In some aspects, the method includes: determining, before performing an operation, that a user is authorized to access a target access control device based on authorization information; and delaying the execution of the operation after determining that the user is authorized until it is determined that the target access control device is within a threshold range of a future trajectory.
[0008] In some aspects, the wireless communication link includes the Bluetooth Low Energy (BLE) communication protocol; and in which multiple observation speed points are received via the Ultra Wideband (UWB) communication protocol.
[0009] In some cases, the target access control device is located indoors.
[0010] In some aspects, the method includes: determining, before performing an operation, that a user is authorized to access a target access control device based on authorization information; and, after determining that the user is authorized, preventing the operation from being performed in response to determining that the target access control device is outside a threshold range of a future trajectory.
[0011] In some areas, machine learning techniques include neural networks.
[0012] In some aspects, the method includes receiving a plurality of observation velocity points by: receiving a first data point at a first time point representing a first two-dimensional (2D) or three-dimensional (3D) Cartesian coordinate; receiving a second data point at a second time point representing a second 2D or 3D Cartesian coordinate, each of the first and second data points corresponding to a first slice among a plurality of slices; and calculating a first observation velocity point among the plurality of observation velocity points based on the difference between the first 2D or 3D Cartesian coordinate and the second 2D or 3D Cartesian coordinate and the difference between the first time point and the second time point.
[0013] In some respects, machine learning techniques generate multiple predicted velocity points independently of the sampling rate of multiple observed velocity points.
[0014] In some aspects, the method includes determining a future trajectory based on a plurality of predicted velocity points by: determining a sampling rate for receiving the plurality of observed velocity points based on the difference between a first timestamp of a first observed velocity point and a second timestamp of a second observed velocity point; and calculating 2D or 3D Cartesian coordinates of the future trajectory based on the plurality of predicted velocity points, the user’s current location, and the sampling rate for receiving the plurality of observed velocity points.
[0015] In some aspects, the method includes training a machine learning technique by: obtaining a first batch of training data, the first batch of training data including a first set of multiple training observation velocity points and a corresponding first set of training predicted velocity points; processing the first set of training observation velocity points using a machine learning technique to generate multiple estimated velocity points; calculating a loss based on the deviation between the multiple estimated velocity points and the corresponding first set of training predicted velocity points based on a loss function; and updating the parameters of the machine learning technique based on the calculated loss function.
[0016] In some aspects, the first set of multiple training observation velocity points corresponds to a first sampling rate. The method further includes: obtaining a second batch of training data, the second batch of training data including a second set of multiple training observation velocity points, wherein the second set of multiple training observation velocity points corresponds to a second sampling rate; processing the second set of training observation velocity points using machine learning techniques to generate a second set of estimated velocity points; calculating a second loss based on a loss function, based on the deviation between the second set of estimated velocity points and the corresponding first set of training predicted velocity points; and updating the parameters of the machine learning techniques based on the second loss.
[0017] In some aspects, a system is provided comprising: one or more processors coupled to a memory including nontransitory computer instructions that, when executed by the one or more processors, perform operations including: receiving a plurality of observed velocity points, each of the plurality of observed velocity points corresponding to a different slice of a plurality of slices of an observed trajectory; processing the plurality of observed velocity points corresponding to the observed trajectory using machine learning techniques to generate a plurality of predicted velocity points, the machine learning techniques being trained to establish a relationship between a plurality of trained observed velocity points and trained predicted velocity points; determining a future trajectory based on the plurality of predicted velocity points, each of the plurality of predicted velocity points corresponding to a different slice of a plurality of slices of the future trajectory; determining that a target access control device is within a threshold range of the future trajectory; and, in response to determining that the target access control device is within the threshold range of the future trajectory, performing operations associated with the target access control device.
[0018] In some aspects, multiple observed velocity points include acceleration measurements, multiple predicted velocity points include multiple acceleration measurements, the target access control device includes a lock associated with the door; and the operation performed includes unlocking the door.
[0019] In some aspects, the operation also includes: establishing a wireless communication link between the user's mobile device and the target access control device; exchanging authorization information through the wireless communication link; and performing the operation after determining, based on the authorization information, that the user is authorized to access the target access control device.
[0020] In some aspects, the operation also includes: determining, based on authorization information, that a user is authorized to access the target access control device before performing the operation; and delaying the execution of the operation after determining that the user is authorized until it is determined that the target access control device is within a threshold range of the future trajectory.
[0021] In some aspects, a non-transitory computer-readable medium is provided, comprising non-transitory computer-readable instructions for performing operations, the operations including: receiving a plurality of observed velocity points, each of the plurality of observed velocity points corresponding to a different slice of a plurality of slices of an observed trajectory; processing the plurality of observed velocity points corresponding to the observed trajectory using machine learning techniques to generate a plurality of predicted velocity points, the machine learning techniques being trained to establish a relationship between a plurality of trained observed velocity points and trained predicted velocity points; determining a future trajectory based on the plurality of predicted velocity points, each of the plurality of predicted velocity points corresponding to a different slice of a plurality of slices of the future trajectory; determining that a target access control device is within a threshold range of the future trajectory; and, in response to determining that the target access control device is within the threshold range of the future trajectory, performing an operation associated with the target access control device.
[0022] In some aspects, multiple observed velocity points include acceleration measurements, multiple predicted velocity points include multiple acceleration measurements, the target access control device includes a lock associated with the door; and the operation performed includes unlocking the door.
[0023] In some aspects, the operation also includes: establishing a wireless communication link between the user's mobile device and the target access control device; exchanging authorization information through the wireless communication link; and performing the operation after determining, based on the authorization information, that the user is authorized to access the target access control device. Attached Figure Description
[0024] Figure 1 This is a block diagram of an example access control system according to some implementation methods.
[0025] Figure 2 An example of a trajectory prediction-based access control system according to an exemplary implementation is shown.
[0026] Figure 3 It can be deployed in some implementation methods Figure 1 A block diagram of an exemplary trajectory prediction system within an access control system.
[0027] Figure 4 It can be deployed in some implementation methods Figures 1 to 3 Example database within the system.
[0028] Figure 5 This is a flowchart illustrating an example operation of an access control system according to an example implementation.
[0029] Figure 6 This is a block diagram illustrating an example software architecture that can be used in conjunction with various hardware architectures described herein.
[0030] Figure 7 This is a block diagram illustrating the components of a machine according to some example embodiments. Detailed Implementation
[0031] Example methods and systems for trajectory prediction-based access control systems (e.g., physical or logical access control systems) are described. In the following description, numerous specific details are set forth for illustrative purposes to provide a thorough understanding of the example implementations. However, it will be apparent to those skilled in the art that implementations of this disclosure can be practiced without these specific details.
[0032] In typical access control systems, users carry a physical card or device containing a set of credentials (e.g., authorization information). When the physical card or device is brought within approximately 20 centimeters (very close) of the access control device (e.g., an electronic door lock, card reader, etc.), these credentials are exchanged with the access control device. The access control device then determines whether the credentials authorize the user to access the device; if so, access is granted (e.g., unlocking a door). While such systems generally function well, they require the user to be very close to the access control device to operate it. This can introduce various delays when operating the device and can be frustrating for the user.
[0033] As mobile devices become more common, they can be programmed to carry the same set of credentials as commonly used physical cards. These mobile devices can communicate with access control devices over longer distances, for example, using Bluetooth Low Energy (BLE) communication protocols. For instance, a mobile device can send and exchange credentials with an access control device within a range of up to 100 meters. In this scenario, the access control device can be operated even when the user is further away than when using a physical card or device. Thus, when the user finally arrives at the access control device, the device has already received and authorized the credentials, granting or denying the user's access. No further action from the user is required to operate the device upon arrival (e.g., the user does not need to bring the physical card very close to the access control device).
[0034] However, these other methods of exchanging credentials via BLE introduce another problem. That is, if multiple access control devices exist within the scope of the BLE communication protocol, credentials may be exchanged with devices the user does not intend to operate. For example, within the scope of a user's mobile device, there may be multiple access control devices that the user has credentials to access. However, the user may only intend to access one device. As another example, a user may pass through a given door or access control device that the user is authorized to access, but may not intend to pass through or operate that given door or access control device. In this case, determining the user's trajectory can play a crucial role in determining which of the multiple correct access control devices to operate and the user's intent regarding operating those devices.
[0035] Typical trajectory prediction systems take a few observed trajectories as input and generate a number of consecutive positions in a future timeline. These systems rely on data acquired at a specific, known sampling frequency. This limits their widespread applicability because real-world data is not ideal, as different types of position sensors transmit signals at different frequencies, and sensors may experience inconsistent sampling rates due to hardware and communication limitations. Some trajectory prediction systems can be trained on multiple sampling frequencies, but this further increases their complexity, making them unsuitable for applications on mobile devices and platforms.
[0036] The disclosed implementations provide an intelligent solution that accurately predicts a user's future location, enabling access control systems to provide a proactive and seamless experience while maintaining high security. The disclosed implementations provide a trajectory prediction system that predicts a user's trajectory regardless of incoming or observed data or the sampling rate of trajectory points. Based on the predicted trajectory, if a given access control device is within the trajectory's range and authorized user access is granted (e.g., determined via long-distance credential exchange, such as via BLE), the given access control device operates. As an example, a given access control device (e.g., a door lock) initially communicates with the user's mobile device via a communication protocol (e.g., BLE) to exchange authorization data (e.g., credentials). If it is subsequently determined that the given access control device is within the user's predicted trajectory range, the given access control device is instructed to operate (e.g., the door lock is opened). Thus, when the user arrives at the given access control device, the given access control device is ready to be operated, and the user does not need to bring their physical access control card very close to the given access control device.
[0037] In some embodiments, the disclosed embodiments provide systems and methods for performing remote access control based on trajectory prediction. According to the disclosed embodiments, a plurality of observed velocity points are received. The plurality of observed velocity points corresponding to the observed trajectory are processed by machine learning techniques to generate a plurality of predicted velocity points. The machine learning techniques are trained to establish relationships between a plurality of trained observed velocity points and trained predicted velocity points. The disclosed embodiments determine a future trajectory based on the plurality of predicted velocity points (where each of the plurality of predicted velocity points corresponds to a different slice among a plurality of slices of the future trajectory), and determine that the target access control device is within a threshold range of the future trajectory. In response to determining that the target access control device is within the threshold range of the future trajectory, the disclosed embodiments perform operations associated with the target access control device.
[0038] In some embodiments, the disclosed embodiments provide systems and methods for performing long-distance access control based on trajectory prediction. According to the disclosed embodiments, a plurality of observed acceleration points are received. The plurality of observed acceleration points corresponding to the observed trajectory are processed using machine learning techniques to generate a plurality of predicted acceleration points. The machine learning techniques are trained to establish relationships between a plurality of trained observed acceleration points and trained predicted acceleration points. The disclosed embodiments determine a future trajectory based on the plurality of predicted acceleration points (where each of the plurality of predicted acceleration points corresponds to a different slice among a plurality of slices of the future trajectory), and determine that the target access control device is within a threshold range of the future trajectory. In response to determining that the target access control device is within the threshold range of the future trajectory, the disclosed embodiments perform operations associated with the target access control device.
[0039] By training machine learning techniques at multiple velocity, acceleration, or rate points to predict velocity or rate, the disclosed implementation can predict future trajectories independently of the sampling rate of the location coordinates of the observed trajectory acquired or received. Specifically, the machine learning technique calculates the difference between the 3D coordinates of two three-dimensional (3D) locations acquired at different times and divides that difference by the difference in timestamps of the received 3D coordinates. This provides the overall velocity for a set of slices along a given observed trajectory. This velocity can then be processed to predict future velocities. Future trajectories can be determined by deriving future 3D coordinates based on the sampling rate of the estimated or known 3D locations. For example, each predicted velocity measurement can be multiplied by the sampling rate (e.g., the amount of time between measurements) to identify distances or predicted segments (e.g., corresponding to the difference between two predicted 3D coordinates). Predicted segments can be offset by the known current location of the user and can be combined or incorporated with additional predicted 3D coordinates to generate a predicted trajectory.
[0040] In an alternative implementation, the observed location and the future trajectory are in a two-dimensional space and represented by 2D coordinates. For example, machine learning techniques calculate the difference between the 2D coordinates of two 2D locations obtained at different times and divide this difference by the difference in the timestamps at which the 2D coordinates were received. This provides an overall velocity for a set of slices along a given observed trajectory. This velocity can then be processed to predict future velocities. The future trajectory can be determined by deriving the future 2D coordinates based on the sampling rate of the estimated or known 2D locations. For example, each predicted velocity measurement can be multiplied by the sampling rate (e.g., the amount of time between measurements) to identify a distance or predicted segment (e.g., corresponding to the difference between two predicted 2D coordinates). The predicted segment can be offset by the known current location of the user and can be combined or incorporated with additional predicted 2D coordinates to generate a predicted trajectory.
[0041] Figure 1 This is a block diagram illustrating an example system 100 according to various exemplary embodiments. System 100 may be an access control system including: a client device 120; one or more access control devices 110 that control access to protected assets or resources, for example, via lockable doors; and an authorization management system 140 communicatively coupled via a network 130 (e.g., the Internet, BLE, Ultra-Wideband (UWB) communication protocol, telephone network, or other wired or wireless communication protocol).
[0042] UWB is a radio frequency (RF) technology that uses short, low-power pulses over a wide frequency spectrum. The pulses are on the order of millions of individual pulses per second. The bandwidth of the spectrum is typically greater than 500 MHz or more than 20 percent of the arithmetic center frequency.
[0043] UWB can be used for communication, for example, by encoding data via time modulation (e.g., pulse position coding). Here, a symbol is specified by a pulse on a subset of time units from a set of available time units. Other examples of UWB encoding can include amplitude modulation and / or polarity modulation. Wideband transmission tends to be more robust to multipath fading compared to carrier-based transmission techniques. Furthermore, the lower power of the pulse at any given frequency tends to reduce interference with carrier-based communication techniques.
[0044] UWB can be used in radar operations, providing positioning accuracy on the order of tens of centimeters. Due to the potentially variable absorption and reflection at different frequencies within the pulse, both surface features and occlusion (e.g., coverage) features of an object can be detected. In some cases, positioning provides the angle of incidence in addition to distance.
[0045] Client device 120 and access control device 110 can be communicatively coupled via electronic messages (e.g., packets exchanged via the Internet, BLE, UWB, WiFi Direct, or any other protocol). Although Figure 1 A single access control device 110 and a single client device 120 are shown, but it will be understood that in other embodiments, multiple access control devices 110 and multiple client devices 120 may be included in system 100. As used herein, the term "client device" may refer to any machine that interfaces with a communication network (e.g., network 130) to exchange credentials with access control device 110, authorization management system 140, another client device 120, or any other component to obtain access to assets or resources protected by access control device 110. In some embodiments, client device 120 may use UWB to obtain location information and calculate velocity, rate, and / or acceleration information for the current trajectory of client device 120. Client device 120 may obtain location information and calculate velocity, rate, and / or acceleration information, and may provide such information to authorization management system 140. In some embodiments, access control device 110 may use UWB to obtain location information and calculate velocity, rate, and / or acceleration information for the current trajectory of a given client device 120 or a group of client devices 120. The access control device 110 can obtain location information and calculate speed, rate and / or acceleration information, and can provide this information to the authorization management system 140.
[0046] In some cases, some or all of the components and functions of the authorization management system 140 may be included in the client device 120 (e.g., any machine learning techniques discussed with respect to the authorization management system 140 may be implemented on the individual client devices 120). Any component performing trajectory prediction in system 100 may be implemented as an independent component of any of the authorization management system 140, client device 120, or access control device 110. The functionality of any component performing trajectory prediction in system 100 may be implemented in a distributed manner among any of the authorization management system 140, client device 120, and / or access control device 110.
[0047] Client device 120 may be, but is not limited to, mobile phones, desktop computers, laptop computers, portable digital assistants (PDAs), smartphones, wearable devices (e.g., smartwatches), tablets, ultrabooks, netbooks, laptops, multiprocessor systems, microprocessor-based or programmable consumer electronics, or any other communication device that a user can use to access the network.
[0048] Access control device 110 may include an access reader device connected to a resource (e.g., a door lock mechanism or a back-end server) that controls the resource (e.g., a door lock mechanism). The resource associated with access control device 110 may include a door lock, a vehicle's ignition system, or any other device that allows or denies access to a physical component and can be operated to allow or deny access to that physical component. For example, in the case of a door lock, access control device 110 may deny access, in which case the door lock remains locked and the door cannot be opened, or access control device 110 may allow access, in which case the door lock becomes unlocked to allow the door to be opened. As another example, in the case of an ignition system, access control device 110 may deny access, in which case the vehicle ignition system remains disabled and the vehicle cannot be started, or access control device 110 may allow access, in which case the vehicle ignition system becomes enabled and allows the vehicle to be started.
[0049] Physical access control encompasses a range of systems and methods for managing, for example, personnel access to secure areas or secure assets. Physical access control includes: identification of authorized users or devices (e.g., vehicles, drones, etc.); activation of gates, doors, or other facilities used to protect area security; or activation of control mechanisms (e.g., physical or electronic / software control mechanisms) to allow access to secure assets. Access control device 110 forms part of a physical access control system (PACS), which may include readers (e.g., online or offline readers) that can store authorization data and be able to determine whether credentials (e.g., credentials or key devices from cards, clips, or personal electronic devices such as mobile phones) are authorized for use with actuators or control mechanisms (e.g., door locks, door openers, software control mechanisms, alarm closing, etc.), or the PACS may include a host server, in which, in a centrally managed configuration, readers and actuators (e.g., via controllers) are connected to the host server. In a centrally managed configuration, the reader can obtain credentials from the credential or key device and pass these credentials to the PACS host server or front-end system. The host server then determines whether the credentials authorize access to a secure area or secure asset and commands the actuators or other control mechanisms accordingly. While this document uses examples of physical access control, this disclosure is equally applicable to logical access control system (LACS) use cases (e.g., logical access to personal electronic devices, rider identification in transportation services, access to unmanned stores, and asset control, etc.).
[0050] Wireless access control systems (e.g., systems utilizing wireless communication between a reader and a credential or key device) can use RFID or Personal Area Network (PAN) technologies such as IEEE 802.15.1, Bluetooth, BLE, Near Field Communication (NFC), ZigBee, GSM, CDMA, Wi-Fi, and so on. Many of these technologies have drawbacks that prevent them from providing a seamless user experience. For example, NFC has a very short range, meaning that credential exchange typically doesn't occur until the user is very close to the secure area or asset and attempts to gain access. Credential transmission to the reader and the response from the reader or host server can take several seconds, resulting in a frustrating user experience. Furthermore, users typically have to, for example, take the device out of their pocket and place it on or very close to the reader to initiate the process.
[0051] On the other hand, BLE devices have a range of tens of meters (e.g., ten to twenty meters). Therefore, credential exchange can be completed as the user approaches the reader. However, BLE, and many other PAN standards, do not provide accurate physical tracking of the device (e.g., ranging, positioning, etc.). Therefore, without some additional evidence of intent, the reader struggles to determine whether the user actually intends to gain access to a secure area or asset. For example, a problem arises if an authorized user simply walks past the reader in the lobby and the door is unlocked, or even opened. Evidence of intent can include events such as touching a doorknob or making gestures using a key device. However, this can be a less than ideal user experience compared to a user simply walking to the reader and gaining access to a secure area without any further action or interaction from the user.
[0052] To help address one or more of these or other problems, location technologies (e.g., using secure UWB ranging) can be used and combined with PAN discovery and key exchange. UWB location technologies can be more accurate than some traditional technologies, and can be accurate to, for example, tens of centimeters. UWB location technology can provide both the range and orientation of the credential or key device relative to the reader. This accuracy far surpasses, for example, the approximately ten-meter accuracy of BLE when the reader is not coordinated. The precision of UWB accuracy can be a useful tool for seamlessly determining user intent (e.g., whether the user is attempting to access a secure area or asset or is simply passing by) and the user's current or predicted trajectory. For example, several areas can be defined, such as near the reader, at the reader, etc., to provide different contexts for understanding user intent. Additionally or alternatively, the accuracy of tracking helps to provide an accurate model of user movement or the direction of user movement from which intent can be discerned. Thus, the reader can classify user actions as, for example, possibly approaching the reader or simply passing by.
[0053] Once an intent is triggered, the reader can take action based on credentials exchanged, for example, via PAN technology. For offline readers, such as those not connected to a control panel or host server, the reader can directly control actuators or other control mechanisms (e.g., disconnecting a lock on a connected door). In a centrally managed access control system, (online) readers can forward credentials to a control panel or host server for operation.
[0054] Typically, access control device 110 may include one or more of a memory, a processor, one or more antennas, a communication module, a network interface device, a user interface, and a power supply or power supply device.
[0055] The memory of access control device 110 can be used in conjunction with the execution of application programs or instructions by the processor of access control device 110, and is used for temporary or long-term storage of program instructions or instruction sets and / or credentials or authorization data, such as credential data, credential authorization data, or access control data or instructions. For example, the memory may contain executable instructions used by the processor to run other components of access control device 110 and / or for access determination based on credential or authorization data. The memory of access control device 110 may include a computer-readable medium, which can be any medium that can contain, store, transmit, or transfer data, program code, or instructions for use by or in conjunction with access control device 110. The computer-readable medium can be, for example, but not limited to, electronic, magnetic, optical, electromagnetic, infrared, or semiconductor systems, apparatuses, or devices. More specific examples of suitable computer-readable media include, but are not limited to, electrical connections or tangible storage media having one or more lines, such as portable computer floppy disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), dynamic RAM (DRAM), any solid-state storage device typically a compact disk read-only memory (CD-ROM), or other optical or magnetic storage devices. Computer-readable media includes computer-readable storage media but should not be confused with computer-readable storage media; it is intended to cover all physical, non-transitory, or similar embodiments of computer-readable media.
[0056] The processor of access control device 110 may correspond to one or more computer processing devices or resources. For example, the processor may be provided as silicon, as a field-programmable gate array (FPGA), an application-specific integrated circuit (ASIC), any other type of integrated circuit (IC) chip, a collection of IC chips, etc. As a more specific example, the processor may be provided as a microprocessor, a central processing unit (CPU), or multiple microprocessors or CPUs configured to execute instruction sets stored in the internal memory and / or memory of access control device 110.
[0057] The access control device 110 may have one or more antennas and may be configured to provide wireless communication between the access control device 110 and a credential or key device (e.g., client device 120). The antennas may be arranged to operate using one or more wireless communication protocols and operating frequencies, including but not limited to IEEE 802.15.1, Bluetooth, BLE, NFC, ZigBee, GSM, CDMA, Wi-Fi, RF, UWB, etc. By way of example, the antenna may be an RF antenna, and therefore, RF signals can be transmitted / received in free space for reception / transmission by a credential or key device with an RF transceiver. In some cases, at least one antenna is designed or configured to transmit and / or receive UWB signals (referred to herein as a "UWB antenna" for simplicity), enabling the reader to communicate with the client device 120 using UWB technology.
[0058] The communication module of the access control device 110 can be configured to communicate with one or more different systems or devices (e.g., one or more client devices 120 and / or authorization management system 140) remotely or locally according to any suitable communication protocol.
[0059] The network interface device of access control device 110 includes hardware for facilitating communication via a communication network (e.g., network 130) with other devices such as one or more client devices 120 and / or authorization management system 140, utilizing any of a number of transport protocols (e.g., Frame Relay, Internet Protocol (IP), Transmission Control Protocol (TCP), User Datagram Protocol (UDP), Hypertext Transfer Protocol (HTTP), etc.). Example communication networks may include local area networks (LANs), wide area networks (WANs), packet data networks (e.g., the Internet), mobile phone networks (e.g., cellular networks), conventional telephone (POTS) networks, wireless data networks (e.g., the IEEE 802.11 family of standards known as Wi-Fi, the IEEE 802.16 family of standards known as WiMax), the IEEE 802.15.4 family of standards, and peer-to-peer (P2P) networks, etc. In some examples, the network interface device may include an Ethernet port or other physical jack, a Wi-Fi card, a network interface card (NIC), a cellular interface (e.g., an antenna, a filter, and associated circuitry), etc. In some examples, the network interface device may include multiple antennas to perform wireless communication using at least one of single-input multiple-output (SIMO), multiple-input multiple-output (MIMO), or multiple-input single-output (MISO) technologies.
[0060] The user interface of access control device 110 may include one or more input devices and / or display devices. Examples of suitable user input devices that may be included in the user interface include, but are not limited to, one or more buttons, keyboards, mice, touch-sensitive surfaces, styluses, cameras, microphones, etc. Examples of suitable user output devices that may be included in the user interface include, but are not limited to, one or more LEDs, LCD panels, displays, touchscreens, one or more lights, speakers, etc. It should be understood that the user interface may also include combinations of user input devices and user output devices, such as touch-sensitive displays.
[0061] Network 130 may include or operate in combination with the following networks: ad hoc network, intranet, extranet, virtual private network (VPN), LAN, wireless network, wireless LAN (WLAN), wide local area network (WAN), wireless WAN (WWAN), metropolitan area network (MAN), BLE, UWB, the Internet, a part of the Internet, a part of the public switched telephone network (PSTN), ordinary old-style telephone service (POTS) network, cellular telephone network, wireless network, A network, another type of network, or a combination of two or more such networks. For example, a network or part of a network may include a wireless network or a cellular network, and the coupling may be a Code Division Multiple Access (CDMA) connection, a Global System for Mobile Communications (GSM) connection, or other types of cellular or wireless coupling. In this example, the coupling can implement any data transmission technology of various types, such as Single Carrier Radio Transmission (1xRTT), Evolved Data Optimization (EVDO), General Packet Radio Service (GPRS), Enhanced Data Rate Evolution of GSM (EDGE), the 3rd Generation Partnership Project (3GPP) including 3G, fourth-generation (4G) wireless networks, fifth-generation (5G) wireless networks, Universal Mobile Telecommunications System (UMTS), High-Speed Packet Access (HSPA), Global Microwave Access Interoperability (WiMAX), Long Term Evolution (LTE) standards, other data transmission technologies defined by various standards setting organizations, other long-distance protocols, or other data transmission technologies.
[0062] In the example, as client device 120 approaches access control device 110 (e.g., enters BLE communication protocol range), client device 120 sends its credentials over network 130. In some cases, credentials can be selected from multiple credentials based on the current geographic location of client device 120. For example, multiple credentials associated with different geographic locations can be stored on client device 120. When client device 120 comes within a certain distance (e.g., within 10 meters) of the geographic location associated with one of these credentials, client device 120 retrieves the associated credential from local storage.
[0063] In one example, client device 120 provides credentials directly to access control device 110. In this case, access control device 110 transmits credentials to authorization management system 140. Figure 1 The authorization management system 140 includes an authorization system 142 and a trajectory prediction system 144. The authorization management system 140 may also include information regarding... Figure 6 and Figure 7 The described elements, such as a memory and a processor on which instructions are stored, cause the processor to control the functions of the authorization management system 140 when executed by the processor.
[0064] The authorization management system 140 searches a list of credentials stored in the authorization system 142 to determine if the received credential matches a credential in the list of authorized credentials for accessing secure assets or resources (e.g., doors or secure areas) protected by the access control device 110. In response to determining that the received credential is authorized to access the access control device 110, the authorization management system 140 accesses the trajectory prediction system 144 to determine if the trajectory of the client device 120 is predicted to be within a specified range (e.g., 2 meters) of the access control device 110 (discussed in more detail below). Once the trajectory prediction system 144 indicates to the authorization management system 140 that the client device 120 is predicted to follow a trajectory within the specified range of the access control device 110, the authorization management system 140 instructs the access control device 110 to perform an operation that grants access to the client device 120 (e.g., instructing the access control device 110 to unlock a door).
[0065] In another example, client device 120 provides credentials to authorization management system 140. Authorization management system 140 searches a list of credentials stored in authorization system 142 to determine if the received credentials match any credentials in the list of authorized credentials for accessing secure assets or resources (e.g., doors or secure areas) protected by access control device 110. In response to determining that the received credentials are authorized to access access control device 110, authorization management system 140 accesses trajectory prediction system 144 to determine if the trajectory of client device 120 is predicted to be within a specified range (e.g., 2 meters) of access control device 110 (discussed in more detail below). Once trajectory prediction system 144 indicates to authorization management system 140 that client device 120 is predicted to follow a trajectory within the specified range of access control device 110, authorization management system 140 instructs access control device 110 (as associated with the received credentials and within geographical distance of client device 120) to perform an operation that grants access to client device 120 (e.g., instructing access control device 110 to unlock a door).
[0066] The trajectory prediction system 144 trains machine learning techniques implemented by the authorization management system 140 to predict the velocity, rate, and / or acceleration of the client device 120 based on a set of observed velocity, rate, and / or acceleration measurements. The trajectory prediction system 144 applies functions to the predicted velocity, rate, and / or acceleration to generate a predicted trajectory or path along which the client device 120 is predicted to travel.
[0067] The trajectory prediction system 144 receives multiple observed velocity, rate, and / or acceleration measurements for training and a corresponding set of predicted measurements for training (e.g., velocity, rate, and / or acceleration measurements observed after one or more velocity, rate, and / or acceleration measurements). (As combined...) Figure 3To illustrate in more detail, the trajectory prediction system 144 processes pairs of observed velocity, rate, and / or acceleration measurements and ground-based true velocity measurements (for positions following the observed velocity, rate, and / or acceleration measurements) for training to train machine learning techniques. For example, the machine learning technique (e.g., a neural network) estimates an estimated velocity, rate, and / or acceleration for a given observed velocity, rate, and / or acceleration. The neural network compares the estimated velocity, rate, and / or acceleration with the corresponding ground-based true velocity, rate, and / or acceleration measurements to generate an error. Using a loss function and based on the error, the neural network is updated and applied to another set of observed velocity measurements and ground-based true velocity measurements for training. The neural network parameters are again adjusted, and when the loss function meets a stopping criterion, the neural network is trained and utilized by the trajectory prediction system 144 to predict velocity, rate, and / or acceleration measurements for a given set of observed velocity, rate, and / or acceleration measurements. The machine learning techniques discussed in this paper include neural networks such as Long Short-Term Memory (LSTM) neural networks, autoencoders, variational autoencoders, conditional variational autoencoders, convolutional neural networks, radial basis function networks, deep feedforward networks, recurrent neural networks, gated recurrent units, denoising autoencoders, sparse autoencoders, Markov chains, Hopfield networks, Boltzmann machines, deep belief networks, deep convolutional networks, deconvolutional neural networks, generative adversarial networks, liquid machines, extreme learning machines, echo-state networks, deep residual networks, support vector machines, Korhonen networks, or any combination thereof.
[0068] For example, trajectory prediction system 144 receives one or more observed velocity, rate, and / or acceleration measurements from client device 120. For example, trajectory prediction system 144 receives observed velocity, rate, and / or acceleration at a previous time step: And predict the velocity, rate, and / or acceleration at each future time step: T and T' represent the sequence lengths (or slice lengths) of the past trajectory and the predicted trajectory, respectively. The velocity vectors of the observed input and predicted output at time step t in the 3D Cartesian coordinate system or space are characterized as follows: The original Cartesian coordinates are normalized to velocity, speed, and / or acceleration information:
[0069] In one example, client device 120 (or, alternatively, access device 110) uses UWB (optionally in combination with one or more other location measurement techniques) to calculate the current 3D coordinates of client device 120. In some cases, client device 120 (or, alternatively, access device 110) uses UWB to calculate the 3D coordinates. In some cases, after collecting the sequential 3D coordinates, client device 120 (or, alternatively, access device 110) applies denoising and / or smoothing techniques to the sequential 3D coordinates before converting them into velocity features. Such denoising and / or smoothing techniques may include: Kalman filtering, moving average, multinomial regression, locally weighted scatter plot smoothing, and / or Gaussian smoothing.
[0070] After collecting two sequential 3D coordinates (and optionally denoising and smoothing the 3D coordinates), each coordinate is associated with its respective timestamp. Client device 120 (or, alternatively, access device 110) calculates (e.g., along the x, y, and z axes) the difference between the two 3D coordinates. Client device 120 (or, alternatively, access device 110) divides this difference by the difference between the respective timestamps of the two 3D coordinates to determine the observation speed of client device 120 along a given path or trajectory (e.g., to calculate...). That is, the difference between two 3D coordinates provides the distance traveled in 3D along the observed trajectory, and this distance divided by the timestamp indicates the travel velocity. In some cases, the travel velocity measured at two specific points can be used to calculate acceleration measurements. For example, the difference between velocity measurements divided by the difference between timestamps can provide the acceleration at a specific point in time or segment.
[0071] Client device 120 calculates additional velocity, rate, and / or acceleration measurements for an additional set of sequential 3D coordinates of 3D coordinates and provides these velocity, rate, and / or acceleration measurements to trajectory prediction system 144 as observed velocity, rate, and / or acceleration along the observed trajectory. In some cases, client device 120 also provides the trajectory prediction system 144 with an average sampling rate (e.g., an average of the differences in timestamps of the individual velocity measurements). Trajectory prediction system 144 calculates additional velocity, rate, and / or acceleration measurements for a given set of observed velocity measurements (e.g., ...). Predicting future travel speed (e.g., The trajectory prediction and / or velocity, rate and / or acceleration prediction discussed herein can be performed at client device 120, access control device 110, authorization management system 140 or any combination thereof.
[0072] Once the trajectory prediction system 144 has predicted velocity, rate, and / or acceleration measurements, or a set of velocity, rate, and / or acceleration measurements, it obtains a sampling rate from the client device 120 (or, alternatively, the access device 110). The sampling rate indicates the length of time between the collection of each 3D coordinate observed by the client device 120. In some cases, the sampling rate is fixed and known, while in others, it is calculated in real time by the client device 120 as it collects the 3D coordinates. Based on the predicted velocity, rate, and / or acceleration measurements and the sampling rate obtained from the client device 120, the trajectory prediction system 144 calculates the corresponding future segments along the predicted path. For example, the trajectory prediction system 144 multiplies a first predicted velocity, rate, and / or acceleration measurement by the sampling rate to obtain a predicted 3D travel distance or a predicted segment or slice of the predicted trajectory. Then, the trajectory prediction system 144 multiplies a second predicted velocity measurement by the sampling rate to obtain a second predicted 3D travel distance or a predicted segment or slice of the predicted trajectory. The trajectory prediction system 144 combines the predicted segments or slices to form a predicted path or trajectory, along which the client device 120 is predicted to travel.
[0073] In an alternative implementation, once the trajectory prediction system 144 has predicted velocity, rate, and / or acceleration measurements or a set of velocity, rate, and / or acceleration measurements, the trajectory prediction system 144 obtains a sampling rate from the client device 120 (or, in an alternative, the access device 110). The sampling rate indicates the length of time between the collection of each 2D coordinate observed by the client device 120. In some cases, the sampling rate is fixed and known, while in others, the sampling rate is calculated in real time by the client device 120 as it collects the 2D coordinates. Based on the predicted velocity, rate, and / or acceleration measurements and the sampling rate obtained from the client device 120, the trajectory prediction system 144 calculates the corresponding future segments along the predicted path. For example, the trajectory prediction system 144 multiplies a first predicted velocity, rate, and / or acceleration measurement by the sampling rate to obtain a predicted 2D travel distance or a predicted segment or slice of the predicted trajectory. Then, the trajectory prediction system 144 multiplies a second predicted velocity measurement by the sampling rate to obtain a second predicted 2D travel distance or a predicted segment or slice of the predicted trajectory. The trajectory prediction system 144 combines the predicted segments or slices to form a predicted path or trajectory, along which the client device 120 is predicted to travel.
[0074] The trajectory prediction system 144 obtains a specified range of activation or operation of the access control device 110. In one example, where the trajectory prediction system 144 is implemented on a server remote from the access control device 110, the trajectory prediction system 144 obtains the unique identifier of the access control device 110 and searches the database 400 ( Figure 4 Access control device range 430 is used to identify and retrieve ranges associated with the unique identifier of access control device 110. Different access control devices 110 or different types of access control devices 110 may be associated with different activation or operation ranges, and each access control device 110 or each type of access control device 110 is stored in access control device range 430 along with its respective unique identifier. In some cases, access control device range 430 stores device types and corresponding ranges. In this case, the associated range is retrieved from access control device range 430 using the device type instead of the unique identifier. Trajectory prediction system 144 determines whether the predicted trajectory falls within a specified range of access control device 110. If so, trajectory prediction system 144 instructs authorization management system 140 to activate or operate access control device 110 to grant access to client device 120.
[0075] In another example, trajectory prediction system 144 is implemented locally on access control device 110. In this case, access control device 110 is hard-programmed to have a corresponding activation range (e.g., a range stored in access control device range 430 of access control device 110). Trajectory prediction system 144 implemented on access control device 110 determines whether the predicted trajectory falls within the hard-coded range. If so, trajectory prediction system 144 causes access control device 110 to grant access to client device 120. In another example, trajectory prediction system 144 is implemented on client device 120 and provides trajectory prediction to access control device 110. Access control device 110 then determines whether client device 120 is within the range associated with access control device 110 to grant / deny access to client device 120.
[0076] In some cases, the trajectory prediction system 144 does not access any range information, but simply provides the predicted trajectory or set of trajectories to the authorization management system 140, client device 120, and / or access control device 110. These devices then collectively or individually make a decision as to whether the predicted trajectory is within a threshold range.
[0077] Figure 2An example of a trajectory prediction-based access control system 200 according to an exemplary embodiment is shown. For example, user 210 may carry a client device 120 (not shown), such as a mobile device or a telephone. Client device 120 may collect a set of observed 3D coordinates 230. Client device 120 may calculate a respective velocity measurement for each pair of adjacent 3D coordinates based on the respective timestamps of the coordinates. In another embodiment, velocity information may be measured by access control device 110 instead of client device 120, or by access control device 110 in addition to client device 120.
[0078] Client device 120 can determine that two access control devices 220 and 222 are within a specified range of client device 120. For example, each access control device 220 and 222 is within range of BLE communication with client device 120. In response, client device 120 retrieves credentials for accessing the two control devices 220 and 222 and sends these credentials to authorization management system 140. Authorization management system 140 determines that client device 120 is authorized to access the two access control devices 220 and 222. In response, authorization management system 140 delays permission for access to a specific access control device 220 or 222 until client device 120 is determined to be traveling along a predicted trajectory within a specific range 250 of the corresponding access control device 220 or 222.
[0079] In another example, there may be a single access control device 110 that ensures access to an area protected by that single access control device 110. In this case, the user's intent to enter the secure area is determined before instructing access control device 110 to grant access to a given client device 120. Specifically, before instructing access control device 110 to grant access to client device 120, it is determined whether the user's predicted trajectory falls within the range of access control device 110.
[0080] For example, client device 120 provides observed velocity, rate, and / or acceleration measurements to trajectory prediction system 144. Trajectory prediction system 144 predicts velocity, rate, and / or acceleration measurements based on the observed velocity, rate, and / or acceleration measurements. Then, trajectory prediction system 144 calculates a predicted trajectory 240 based on the sampling rate or estimated sampling rate of client device 120 and / or access control device 110, along which client device 120 is predicted to travel. In response to determining that predicted trajectory 240 falls within the range of first access control device 220, trajectory prediction system 144 instructs authorization management system 140 to allow access to client device 120 by first access control device 220 (e.g., first access control device 220 is instructed to perform an operation, such as unlocking an electronic door lock). In response to determining that the predicted trajectory 240 fails to fall within the range of the second access control device 222, the trajectory prediction system 144 instructs the authorization management system 140 to cause the second access control device 222 to deny access to the client device 120 (e.g., instructing the second access control device 222 to remain locked, even if the client device 120's credentials are authorized to access the second access control device 222).
[0081] Figure 3 It can be deployed in some implementation methods Figure 1 The block diagram 300 of the example trajectory prediction system 144 within the system is shown. Training input 310 includes model parameters 312 and training data 320, which may include pairs of training datasets 322 (e.g., input-output training pairs) and constraints 326. Model parameters 312 store or provide parameters or coefficients of the corresponding model in the machine learning model. During training, these parameters 312 are tuned based on the input-output training pairs of the training data 320. After the parameters 312 are tuned (after training), they are used by the trained model 360 to implement the trained machine learning (ML) model on a new dataset 370.
[0082] Training data 320 includes constraints 326 that can define constraints on a given trajectory. Pairs of training data 320 can include a set of input-output pairs 322, such as pairs of observed velocity, rate, and / or acceleration measurements for training and corresponding future velocity, rate, and / or acceleration measurements (ground true velocity, rate, and / or acceleration measurements) for training. Ground true velocity, rate, and / or acceleration measurements represent actual measured velocities, rates, and / or accelerations at one or more future time points, following observed velocities, rates, and / or accelerations measured at earlier time points. For example, observed velocity measurements may be obtained at a first time point in a first segment of the path. Ground true velocity measurements represent actual observed velocities, rates, and / or accelerations measured at a second time point in a second segment following the first segment. Some components of training input 310 may be stored separately from other components of training input 310 at different off-site facilities or locations.
[0083] Machine learning model training 330 trains one or more machine learning techniques based on a set of input-output pairs of a training dataset 322. For example, model training 330 can train ML model parameters 312 by minimizing a loss function based on one or more ground-based true velocity measurements. Specifically, the ML model can be applied to a training set of observed velocity, rate, and / or acceleration measurements along an observed path or trajectory to estimate velocity measurements along future paths or trajectories. In some implementations, the derivative of the loss function is calculated based on a comparison of the estimated velocity measurements with ground-based true velocity measurements, and the parameters of the ML model are updated based on the calculated derivative of the loss function.
[0084] The model parameters 312 of the corresponding ML model are trained, tuned, or optimized based on the results of minimizing the loss function across multiple training datasets. In this way, the ML model is trained to establish relationships between multiple observed velocity, rate, and / or acceleration measurements used for training and corresponding multiple predicted velocity, rate, and / or acceleration measurements.
[0085] In one implementation, an ML model is trained using supervised learning techniques to estimate velocity measurements based on velocity measurements used for training. In this case, to train the ML model, multiple observed velocity, rate, and / or acceleration measurements used for training are retrieved along with their corresponding predicted or estimated velocity, rate, and / or acceleration measurements used for training. For example, from a database 400 ( Figure 4The observed velocity, rate, and / or acceleration measurements used for training are retrieved from the observed velocity points and predicted velocity points 410 used for training. The ML model is applied to a first batch of training velocity, rate, and / or acceleration measurements to estimate a given set of velocity, rate, and / or acceleration measurements. This batch of training velocity measurements can be used to train the ML model with the same parameters as the ML model, and the range can extend from one training velocity, rate, and / or acceleration measurement to all training velocity, rate, and / or acceleration measurements. In some implementations, the output or result of the ML model is used to calculate or predict the first velocity, rate, and / or acceleration measurements and the predicted 3D coordinates of the predicted trajectory based on a known or calculated sampling rate.
[0086] The estimated velocity, rate, and / or acceleration measurements are applied to a loss function, and the gradient or derivative of the loss function is calculated based on the expected or true ground velocity, rate, and / or acceleration measurements. Based on the gradient or derivative of the loss function, the updated parameters of the ML model are calculated. For example, the parameters of the ML model are stored in a trained machine learning technique 420 in a database 400. The ML model with the updated parameters is then applied to a second batch of training velocity measurements to re-estimate a given set of velocity, rate, and / or acceleration measurements, and the velocity, rate, and / or acceleration measurements are applied to the loss function to compare them with their corresponding true ground velocity, rate, and / or acceleration measurements. The parameters of the ML model are updated again, and this training process iterates for a specified number of iterations or periods, or until a given convergence criterion has been met.
[0087] After the machine learning model is trained, the model is demonstrated using 350 to apply the model to new data 370, which includes one or more velocity, rate, and / or acceleration measurements that can be received. The trained machine learning techniques can be applied to the new data 370 to generate a generated result 380, which includes predicted velocity, rate, and / or acceleration measurements along a predicted path or trajectory.
[0088] Figure 5 This is a flowchart illustrating an example process 500 of an access control system 100 according to an exemplary embodiment. Process 500 can be implemented with computer-readable instructions executable by one or more processors, such that the operation of process 500 can be performed partially or entirely by functional components of system 100; therefore, process 500 is described below by way of example with reference to access control system 100. However, in other embodiments, at least some operations of process 500 can be deployed on various other hardware configurations. Some or all operations of process 500 can be performed in parallel, out of order, or completely omitted.
[0089] At operation 501, the authorization management system 140 receives multiple observation velocity points, each of which corresponds to a different slice in a plurality of slices of the observation trajectory. For example, the authorization management system 140 receives a set of velocity points calculated by the client device 120. The client device 120 calculates each velocity point as the 3D difference between its respective adjacent 3D coordinates divided by the difference between their respective timestamps.
[0090] In some implementations, the client device 120 or the authorization management system 140 determines that a sequence of velocity, rate, or acceleration measurements is missing one or more data points. Specifically, the client device 120 or the authorization management system 140 may determine the average sampling interval used to generate the observed velocity points. For example, the client device 120 or the authorization management system 140 may determine that the observed velocity points comprise a sequence of seven observed velocity points. A subset of the observed velocity points (e.g., six out of seven) may be calculated based on a first sampling interval (e.g., the difference between two timestamps used to calculate the velocity measurement may be a first value), and another subset (e.g., one out of seven) may be calculated based on a second sampling interval that is greater than or twice the first sampling interval. In this case, the client device 120 or the authorization management system 140 may determine that a velocity point is missing from the sequence due to a missing timestamp that results in a larger sampling interval. In this scenario, the client device 120 or the authorization management system 140 can perform interpolation techniques (linear interpolation, polynomial interpolation, spline interpolation, Gaussian process, etc.) to fill in the missing data and increase the number of velocity measurements by one or more interpolated velocity measurements. This results in a sequence of velocity measurements comprising a total of eight measurements (when seven are observed) for predicting future trajectories. This sequence of interpolated velocity measurements can be provided to the authorization management system 140 for predicting velocity measurements. Similar techniques can be applied to generate sequences of rate or acceleration measurements.
[0091] At operation 502, the authorization management system 140 processes multiple observed speed points corresponding to the observed trajectory using machine learning technology to generate multiple predicted speed points. The machine learning technology is trained to establish relationships between the multiple observed speed points used for training and the predicted speed points used for training. For example, the trajectory prediction system 144 applies the trained machine learning model to a set of speed points received from the client device 120 to predict future speed points.
[0092] At operation 503, the authorization management system 140 determines the future trajectory based on multiple predicted velocity points, each of which corresponds to a different slice in a set of slices of the future trajectory. For example, the trajectory prediction system 144 multiplies the predicted velocity measurements by a calculated, estimated, or known sampling rate to derive the future 3D coordinates or set of 3D future slices of the predicted path.
[0093] At operation 504, the authorization management system 140 determines that the target access control device is within a threshold range of its future trajectory. For example, the authorization management system 140 obtains the range of access control devices 110 that are within a certain geographical distance of client device 120 (e.g., within BLE communication protocol range). The authorization management system 140 determines whether the future trajectory of client device 120 falls within the obtained range.
[0094] At operation 505, in response to determining that the target access control device is within a threshold range of a future trajectory, the authorization management system 140 performs an operation associated with the target access control device 110. For example, the authorization management system 140 instructs the access control device 110 to grant access to the client device 120 (e.g., by unlocking an electronic door lock). In some cases, the authorization management system 140 directly bypasses the access control device 110 to control locks or security resources.
[0095] Figure 6 This is a block diagram illustrating an example software architecture 606 that can be used in conjunction with various hardware architectures described herein. Figure 6 This is a non-limiting example of a software architecture, and it should be understood that many other architectures can be implemented to facilitate the functionality described herein. Software architecture 606 can be implemented in, for example... Figure 7 The execution is performed on the hardware of machine 700, which includes processor 704, memory 714, and input / output (I / O) components 718, etc. A representative hardware layer 652 is shown and can represent, for example... Figure 7 The machine 700. A representative hardware layer 652 includes a processing unit 654 having associated executable instructions 604. The executable instructions 604 represent executable instructions of the software architecture 606, including implementations of the methods, components, etc., described herein. Hardware layer 652 also includes a memory and / or storage device 656, which also has executable instructions 604. Hardware layer 652 may also include other hardware 658. Software architecture 606 can be deployed on... Figure 1 In any one or more of the components shown.
[0096] exist Figure 6In the example architecture, software architecture 606 can be conceptualized as a stack of layers, where each layer provides specific functionality. For example, software architecture 606 may include layers such as operating system 602, libraries 620, framework / middleware 618, applications 616, and presentation layer 614. Operationally, applications 616 and / or other components within a layer can activate API calls 608 via the software stack and receive messages 612 in response to API call 608. The layers shown are representative in nature, and not all software architectures have all layers. For example, some mobile operating systems or dedicated operating systems may not provide framework / middleware 618, while other operating systems may provide such a layer. Other software architectures may include additional or different layers.
[0097] Operating system 602 can manage hardware resources and provide public services. Operating system 602 may include, for example, a kernel 622, services 624, and drivers 626. Kernel 622 can act as an abstraction layer between hardware and other software layers. For example, kernel 622 can be responsible for memory management, processor management (e.g., scheduling), component management, networking, security settings, etc. Services 624 can provide other public services to other software layers. Drivers 626 are responsible for controlling or interfacing with the underlying hardware. For example, depending on the hardware configuration, drivers 626 may include display drivers, camera drivers, BLE drivers, UWB drivers, etc. Drivers, flash memory drivers, serial communication drivers (e.g., Universal Serial Bus (USB) drivers), Drivers, audio drivers, power management drivers, etc.
[0098] Library 620 provides common infrastructure used by application 616 and / or other components and / or layers. Library 620 provides functionality that allows other software components to perform tasks more easily than by directly interfacing with the underlying operating system 602 functions (e.g., kernel 622, services 624, and / or drivers 626). Library 620 may include system libraries 644 (e.g., the C standard library), which can provide functions such as memory allocation, string manipulation, and mathematical functions. Furthermore, library 620 may include API libraries 646, such as media libraries (e.g., libraries supporting the rendering and manipulation of various media formats such as MPREG4, H.264, MP3, AAC, AMR, JPG, and PNG), graphics libraries (e.g., OpenGL frameworks for rendering 2D and 3D graphical content on a display), database libraries (e.g., SQLite providing various relational database functionalities), web libraries (e.g., WebKit providing web browsing functionality), and so on. Library 620 may also include a wide variety of other libraries 648 to provide many other APIs to application 616 and other software components / devices.
[0099] The framework / middleware 618 (sometimes also called middleware) provides a higher level of common infrastructure that can be used by application 616 and / or other software components / devices. For example, the framework / middleware 618 can provide a variety of graphical user interface functions, advanced resource management, advanced location services, etc. The framework / middleware 618 can provide a wide range of other APIs that can be used by application 616 and / or other software components / devices, some of which may be specific to a particular operating system 602 or platform.
[0100] Application 616 includes built-in applications 638 and / or third-party applications 640. Examples of representative built-in applications 638 may include, but are not limited to: contact applications, browser applications, book reader applications, location applications, media applications, messaging applications, and / or game applications. Third-party applications 640 may include those used by entities other than the platform-specific vendor using Android. TM or iOS TM Applications developed using a Software Development Kit (SDK) can be used on platforms such as iOS. TM ANDROID TM , Mobile software running on the phone's mobile operating system or other mobile operating systems. Third-party application 640 may call API calls 608 provided by the mobile operating system (e.g., operating system 602) to facilitate the functions described herein.
[0101] Application 616 can use built-in operating system functions (e.g., kernel 622, services 624, and / or drivers 626), libraries 620, and frameworks / middleware 618 to create a UI for interacting with the system's user. Alternatively or additionally, in some systems, interaction with the user can be achieved through a presentation layer (such as presentation layer 614). In these systems, the application / component "logic" can be separated from the aspects of the application / component that interact with the user.
[0102] Figure 7 This is a block diagram illustrating components of a machine 700 according to some example embodiments, the machine 700 being capable of reading instructions from a machine-readable medium (e.g., a machine-readable storage medium) and executing any or more of the methods discussed herein. Specifically, Figure 7 A graphical representation of machine 700 is shown as an example of a computer system, in which instructions 710 (e.g., software, program, application, app, or other executable code) for causing machine 700 to perform any one or more of the methods discussed herein are executable.
[0103] Similarly, instruction 710 can be used to implement the devices or components described herein. Instruction 710 transforms a general, unprogrammed machine 700 into a specific machine 700 programmed to perform the described and illustrated functions in the described manner. In alternative embodiments, machine 700 operates as a standalone device or can be coupled (e.g., networked) to other machines. In a networked deployment, machine 700 can operate as a server machine or a client machine in a server-client network environment, or as a peer machine in a peer-to-peer (or distributed) network environment. Machine 700 can include, but is not limited to, server computers, client computers, personal computers (PCs), tablet computers, laptop computers, netbooks, STBs, PDAs, entertainment media systems, cellular phones, smartphones, mobile devices, wearable devices (e.g., smartwatches), smart home devices (e.g., smart home appliances), other smart devices, web devices, network routers, network switches, network bridges, or any machine capable of sequentially or otherwise executing instruction 710, which specifies the action to be taken by machine 700. Furthermore, although only a single machine 700 is shown, the term "machine" should also be considered to include a collection of machines that individually or jointly execute the instructions 710 to perform any or more of the methods discussed herein.
[0104] Machine 700 may include processor 704, memory / storage device 706, and I / O components 718, which may be configured to communicate with each other, for example, via bus 702. In an example embodiment, processor 704 (e.g., CPU, Reduced Instruction Set Computing (RISC) processor, Complex Instruction Set Computing (CISC) processor, Graphics Processing Unit (GPU), Digital Signal Processor (DSP), Application-Specific Integrated Circuit (ASIC), Radio Frequency Integrated Circuit (RFIC), another processor, or any suitable combination thereof) may include, for example, processor 708 and processor 712 capable of executing instruction 710. The term "processor" is intended to include multi-core processor 704, which may include two or more independent processors (sometimes referred to as "cores") capable of executing instructions simultaneously. Although Figure 7 Multiprocessor 704 is shown, but machine 700 may include a single processor with a single core, a single processor with multiple cores (e.g., a multi-core processor), multiple processors with a single core, multiple processors with multiple cores, or any combination thereof.
[0105] Memory / storage device 706 may include memory 714, database 710, and storage cells 716, such as main memory or other memory storage devices. Processor 704 is capable of accessing both memory 714 and storage cells 716, for example, via bus 702. Storage cells 716 and memory 714 store instructions 710 that implement any or more methods or functions described herein. Instructions 710 may also reside wholly or partially within memory 714, storage cells 716, at least one of processor 704 (e.g., the processor's cache memory), or any suitable combination thereof during execution by machine 700. Thus, memory 714, storage cells 716, and the memory of processor 704 are examples of machine-readable media.
[0106] I / O component 718 may include a wide variety of components for receiving input, providing output, generating output, transmitting information, exchanging information, capturing measurements, etc. The specific I / O component 718 included in a particular machine 700 will depend on the type of machine. For example, a portable machine such as a mobile phone is likely to include a touch input device or other such input mechanism, while a headless server machine is likely not to include such a touch input device. It should be recognized that I / O component 718 may include... Figure 7Many other components are not shown. The grouping of I / O components 718 according to function is merely for the sake of simplicity in the following discussion, and the grouping is by no means limiting. In various example embodiments, I / O components 718 may include output components 726 and input components 728. Output components 726 may include visual components (e.g., displays such as plasma display panels (PDPs), LED displays, LCDs, projectors, or cathode ray tube (CRTs), auditory components (e.g., speakers), haptic components (e.g., vibration motors, resistance mechanisms), other signal generators, etc. Input components 728 may include alphanumeric input components (e.g., keyboards, touchscreens configured to receive alphanumeric input, photoelectric keyboards, or other alphanumeric input components), point-based input components (e.g., mice, touchpads, trackballs, joysticks, motion sensors, or other pointing instruments), haptic input components (e.g., physical buttons, touchscreens or other haptic input components that provide position and / or force for touch or touch gestures), audio input components (e.g., microphones), etc.
[0107] In another example implementation, I / O component 718 may include various other components such as biometric component 739, motion component 734, environmental component 736, or position component 738. For example, biometric component 739 may include components for detecting expressions (e.g., hand gestures, facial expressions, vocal expressions, body posture, or eye tracking), measuring biosignals (e.g., blood pressure, heart rate, body temperature, sweating, or brain waves), and recognizing a person (e.g., voice recognition, retinal recognition, facial recognition, fingerprint recognition, or EEG-based recognition). Motion component 734 may include: accelerometer component (e.g., accelerometer), gravity sensor component, rotation sensor component (e.g., gyroscope), etc. Environmental component 736 may include, for example, a lighting sensor component (e.g., a photometer), a temperature sensor component (e.g., one or more thermometers that detect ambient temperature), a humidity sensor component, a pressure sensor component (e.g., a barometer), an hearing sensor component (e.g., one or more microphones that detect background noise), a proximity sensor component (e.g., an infrared sensor that detects nearby objects), a gas sensor (e.g., a gas detection sensor that detects the concentration of hazardous gases for safety purposes or measures pollutants in the atmosphere), or other components that can provide indications, measurements, or signals corresponding to the surrounding physical environment. Position component 738 may include a positioning sensor component (e.g., a GPS receiver component), an altitude sensor component (e.g., an altimeter or barometer from which air pressure can be used to determine altitude), an orientation sensor component (e.g., a magnetometer), etc.
[0108] A wide variety of technologies can be used to implement communication. I / O component 718 may include communication component 740, which is operable to couple machine 700 to network 737 or device 729 via coupling 724 and coupling 722, respectively. For example, communication component 740 may include network interface component or other suitable device to interface with network 737. In other examples, communication component 740 may include wired communication component, wireless communication component, cellular communication component, near field communication (NFC) component, etc. Components (e.g., low power) ), Components and other communication components that provide communication via other means. Device 729 can be any peripheral device from other machines or various peripheral devices (e.g., a peripheral device coupled via USB).
[0109] Furthermore, the communication component 740 can detect identifiers or may include components operable to detect identifiers. For example, the communication component 740 may include an RFID tag reader component, an NFC smart tag detection component, an optical reader component (e.g., an optical sensor for detecting one-dimensional barcodes such as Universal Product Code (UPC) barcodes, multi-dimensional barcodes such as Quick Response (QR) codes, Aztec codes, Data Matrix, Dataglyph, MaxiCode, PDF417, Ultra Code, UCC RSS-2D barcodes, and other optical codes) or an acoustic detection component (e.g., a microphone for identifying audio signals from tags). Additionally, various information can be obtained via the communication component 740, such as location via Internet Protocol (IP) geolocation, etc. Location can be obtained through signal triangulation or by detecting NFC beacon signals that indicate a specific location.
[0110] Glossary:
[0111] In this context, "carrier signal" refers to any intangible medium capable of storing, encoding, or carrying transient or non-transient instructions executed by a machine, and includes digital or analog communication signals or other intangible media to facilitate the communication of such instructions. Instructions can be sent or received over a network using transient or non-transient transmission media via network interface devices and using any of a number of well-known transmission protocols.
[0112] In this context, "client device" refers to any machine that interfaces with a communication network to obtain resources from one or more server systems or other client devices. Client devices can be, but are not limited to, mobile phones, desktop computers, laptop computers, PDAs, smartphones, tablet computers, ultrabooks, netbooks, laptops, multiprocessor systems, microprocessor-based or programmable consumer electronics, game consoles, set-top boxes, or any other communication device that a user can use to access the network.
[0113] In this context, "communication network" refers to one or more parts of a network, which can be an ad hoc network, intranet, extranet, VPN, LAN, BLE network, UWB network, WLAN, WAN, WWAN, metropolitan area network (MAN), the Internet, a part of the Internet, a part of PSTN, a common old-style telephone service (POTS) network, a cellular telephone network, a wireless network, etc. A network, another type of network, or a combination of two or more such networks. For example, a network or part of a network may include a wireless network or a cellular network, and the coupling may be a Code Division Multiple Access (CDMA) connection, a Global System for Mobile Communications (GSM) connection, or other types of cellular or wireless coupling. In this example, the coupling can implement any data transmission technology of various types, such as Single Carrier Radio Transmission (1xRTT), Evolved Data Optimized (EVDO) technology, General Packet Radio Service (GPRS) technology, Enhanced Data Rate Evolution of GSM (EDGE) technology, the 3rd Generation Partnership Project (3GPP) including 3G, fourth-generation wireless (4G) networks, Universal Mobile Telecommunications System (UMTS), High-Speed Packet Access (HSPA), Global Microwave Access Interoperability (WiMAX), Long Term Evolution (LTE) standards, other standards defined by various standards setting organizations, other telematics protocols, or other data transmission technologies.
[0114] In this context, "machine-readable medium" means a component, device, or other tangible medium capable of temporarily or permanently storing instructions and data, and may include, but is not limited to, RAM, ROM, buffer memory, flash memory, optical media, magnetic media, cache memory, other types of storage devices (e.g., erasable programmable read-only memory (EEPROM)) and / or any suitable combination thereof. The term "machine-readable medium" should be considered to include a single medium or multiple media capable of storing instructions (e.g., a centralized or distributed database or associated cache and server). The term "machine-readable medium" will also be considered to include any medium or combination of media capable of storing machine-executable instructions (e.g., code) such that, when executed by one or more processors of the machine, the instructions cause the machine to perform any or more methods described herein. Therefore, "machine-readable medium" refers to a single storage device or apparatus, and a "cloud-based" storage system or storage network comprising multiple storage devices or apparatuses. The term "machine-readable medium" does not include signals themselves.
[0115] In this context, a “component” refers to a device, physical entity, or logic having boundaries defined by functional or subroutine calls, branch points, APIs, or other technologies that provide partitioning or modularity for specific processing or control functions. Components can interface with other components via their interfaces to perform machine processing. A component can be part of a program that is an encapsulated functional hardware unit designed for use with other components and typically performs a specific function. Components can constitute software components (e.g., code implemented on a machine-readable medium) or hardware components. A “hardware component” is a tangible unit capable of performing certain operations and can be configured or arranged in some physical manner. In various example implementations, one or more computer systems (e.g., standalone computer systems, client computer systems, or server computer systems) or one or more hardware components (e.g., processors or processor groups) of a computer system can be configured by software (e.g., an application or application portion) to perform certain operations described herein.
[0116] Hardware components can also be implemented mechanically, electronically, or in any suitable combination thereof. For example, a hardware component may include dedicated circuitry or logic permanently configured to perform certain operations. A hardware component may be a dedicated processor, such as an FPGA or ASIC. A hardware component may also include programmable logic or circuitry that is temporarily configured by software to perform certain operations. For example, a hardware component may include software executed by a general-purpose processor or other programmable processor. Once configured by such software, the hardware component becomes a specific machine (or a specific part of a machine) uniquely tailored to perform the configured function, and is no longer a general-purpose processor. It will be understood that the decision to implement hardware components mechanically in dedicated and permanently configured circuitry or in temporarily configured (e.g., by software configuration) circuitry may be driven by cost and time considerations. Accordingly, the phrase “hardware component” (or “hardware-implemented component”) should be understood to include tangible entities, i.e., entities physically constructed, permanently configured (e.g., hardwired), or temporarily configured (e.g., programmed) to operate in a certain way or perform certain operations described herein. Consider implementations where hardware components are temporarily configured (e.g., programmed), eliminating the need to configure or instantiate each hardware component at any given time. For example, where the hardware components include a general-purpose processor configured by software to become a dedicated processor, this general-purpose processor can be configured as different dedicated processors (e.g., including different hardware components) at different times. The software accordingly configures one or more specific processors to constitute a specific hardware component at one time and different hardware components at different times.
[0117] Hardware components can provide information to and receive information from other hardware components. Therefore, the described hardware components can be considered communicatively coupled. In the presence of multiple hardware components, communication can be achieved through signal transmission between or among two or more hardware components (e.g., via appropriate circuitry and buses). In embodiments where multiple hardware components are configured or instantiated at different times, such communication between hardware components can be achieved, for example, by storing information in a memory structure accessible to the multiple hardware components and retrieving information from that memory structure. For example, a hardware component can perform an operation and store the output of that operation in a memory device to which it is communicatively coupled. Other hardware components can then access the memory device at a subsequent time to retrieve and process the stored output.
[0118] Hardware components can also initiate communication with input or output devices and operate on resources (e.g., collections of information). Various operations of the example methods described herein can be performed, at least in part, by one or more processors that are temporarily or permanently configured (e.g., via software) to perform the relevant operations. Whether temporarily or permanently configured, such processors can constitute processor-implemented components that operate to perform one or more operations or functions described herein. As used herein, "processor-implemented component" refers to a hardware component implemented using one or more processors. Similarly, the methods described herein can be implemented, at least in part, by processors, where a particular processor or one or more processors are examples of hardware. For example, at least some operations of the methods can be performed by one or more processors or processor-implemented components. Furthermore, one or more processors can also operate to support the execution of relevant operations in a "cloud computing" environment or as a "Software as a Service" (SaaS) operation. For example, at least some operations can be performed by a group of computers (as an example of a machine including processors), where these operations are accessible via a network (e.g., the Internet) and via one or more appropriate interfaces (e.g., APIs). The execution of certain operations can be distributed across processors, rather than residing within a single machine, but deployed across multiple machines. In some example implementations, the processor or processor-implemented components may reside in a single geographic location (e.g., in a home environment, office environment, or server cluster). In other example implementations, the processor or processor-implemented components may be distributed across several geographic locations.
[0119] In this context, "processor" refers to any circuit or virtual circuit (a physical circuit simulated by logic executed on an actual processor) that manipulates data values according to control signals (e.g., "commands," "opcodes," "machine codes," etc.) and generates corresponding output signals used to operate the machine. For example, a processor can be a CPU, a RISC processor, a CISC processor, a GPU, a DSP, an ASIC, an RFIC, or any combination thereof. A processor can also be a multi-core processor having two or more independent processors (sometimes called "cores") capable of executing instructions simultaneously.
[0120] In this context, a "timestamp" refers to a sequence of characters or encoded information that identifies when an event occurred (e.g., giving a date and time of day, sometimes accurate to a fraction of a second).
[0121] Changes and modifications may be made to the disclosed embodiments without departing from the scope of this disclosure. Such and other changes or modifications are intended to be included within the scope of this disclosure as set forth in the appended claims.
[0122] An abstract of this disclosure is provided to allow the reader to quickly determine the nature of the technical disclosure. This abstract is provided, but it should be understood that it is not intended to interpret or limit the scope or meaning of the claims. Furthermore, as can be seen in the foregoing detailed description, various features are combined in a single embodiment for the purpose of simplifying the disclosure. The approach of this disclosure is not to be construed as reflecting an intention that the claimed embodiment requires more features than expressly listed in each claim. Rather, as reflected in the appended claims, the inventive subject matter may lie in fewer than all features in a single disclosed embodiment. Therefore, the appended claims are thus incorporated into the detailed description, wherein each claim is itself an independent, separate embodiment.
Claims
1. A method comprising: Multiple observation velocity points are received from a client device by one or more processors, each of the multiple observation velocity points corresponding to a different slice of multiple slices of the observation trajectory; A first timestamp of a first observation speed point among the plurality of observation speed points is obtained, the first timestamp representing the time when the first observation speed point among the plurality of observation speed points is received from the client device; and a second timestamp of a second observation speed point among the plurality of observation speed points is obtained, the second timestamp representing the time when the second observation speed point among the plurality of observation speed points is received from the client device, wherein the first observation speed point and the second observation speed point are determined by the client device using a wireless communication antenna; The sampling rate of the client device is determined based on the difference between the first timestamp and the second timestamp; The machine learning technique is used to process the multiple observation speed points corresponding to the observation trajectory, and multiple predicted speed points are generated at a sampling rate independent of the multiple observation speed points. The machine learning technique is trained to establish a relationship between multiple training observation speed points and training predicted speed points. The future trajectory is determined based on the plurality of predicted velocity points and the sampling rate, wherein each of the plurality of predicted velocity points corresponds to a different slice among the plurality of slices of the future trajectory; Determine that the target access control device is within a threshold range of the future trajectory; and In response to determining that the target access control device is within a threshold range of the future trajectory, an operation associated with the target access control device is performed.
2. The method according to claim 1, wherein, The plurality of observed velocity points include acceleration measurements, wherein the plurality of predicted velocity points include a plurality of acceleration measurements, and wherein the target access control device includes a lock associated with a door; and The operation includes unlocking the door.
3. The method according to claim 2, further comprising: Establish a wireless communication link between the user's mobile device and the target access control device; Authorization information is exchanged via the wireless communication link; as well as The operation is performed after determining, based on the authorization information, that the user is authorized to access the target access control device.
4. The method according to claim 3, further comprising: Before performing the operation, it is determined, based on the authorization information, that the user is authorized to access the target access control device; as well as After determining that the user is authorized, the operation is delayed until the target access control device is determined to be within the threshold range of the future trajectory.
5. The method according to any one of claims 3 to 4, wherein, The wireless communication link includes the Bluetooth Low Energy communication protocol; and The multiple observation velocity points are received via an ultra-wideband communication protocol.
6. The method according to claim 5, wherein, The target access control device is located indoors.
7. The method according to any one of claims 3 to 6, further comprising: Before performing the operation, it is determined, based on the authorization information, that the user is authorized to access the target access control device; as well as After determining that the user is authorized, in response to determining that the target access control device is outside the threshold range of the future trajectory, the operation is prevented from being performed.
8. The method according to any one of claims 1 to 7, wherein, The machine learning techniques include neural networks.
9. The method according to any one of claims 1 to 8, wherein, Receiving the multiple observation velocity points includes: Receive the first data point representing the first two-dimensional or three-dimensional Cartesian coordinates at the first time point; At a second time point, a second data point representing a second two-dimensional or three-dimensional Cartesian coordinate is received, each of the first data point and the second data point corresponding to a first slice among the plurality of slices; and The first observation velocity point among the plurality of observation velocity points is calculated based on the difference between the first two-dimensional or three-dimensional Cartesian coordinates and the second two-dimensional or three-dimensional Cartesian coordinates, as well as the difference between the first time point and the second time point.
10. The method according to any one of claims 1 to 9, wherein, Determining the future trajectory based on the multiple predicted velocity points includes: Based on the difference between the first timestamp of the first observation velocity point and the second timestamp of the second observation velocity point, the sampling rate for receiving the multiple observation velocity points is determined; and Based on the multiple predicted velocity points, the user's current location, and the sampling rate of receiving the multiple observed velocity points, the three-dimensional Cartesian coordinates of the future trajectory are calculated.
11. The method according to any one of claims 1 to 10, further comprising training the machine learning technique by: Obtain the first batch of training data, which includes a first set of multiple training observation velocity points and a corresponding first set of training prediction velocity points; The machine learning technique is used to process the first set of training observation velocity points to generate multiple estimated velocity points; Based on the loss function, calculate the loss based on the deviation between the plurality of estimated velocity points and the corresponding first set of training predicted velocity points; as well as The parameters of the machine learning technique are updated based on a calculated loss function.
12. The method according to claim 11, wherein, The first group of multiple training observation velocity points corresponds to a first sampling rate, and the method further includes: Obtain a second batch of training data, which includes a second group of multiple training observation rate points, wherein the second group of multiple training observation rate points corresponds to a second sampling rate; The machine learning technique is used to process the second set of training observation velocity points to generate a second plurality of estimated velocity points; Based on the loss function, calculate a second loss based on the deviation between the second plurality of estimated velocity points and the corresponding first set of trained predicted velocity points; and The parameters of the machine learning technique are updated based on the second loss.
13. A system comprising: One or more processors coupled to memory, the memory including non-transitory computer instructions that, when executed by the one or more processors, perform operations including: Receive multiple observation speed points from the client device, each of the multiple observation speed points corresponding to a different slice among multiple slices of the observation trajectory; A first timestamp of a first observation speed point among the plurality of observation speed points is obtained, the first timestamp representing the time when the first observation speed point among the plurality of observation speed points is received from the client device; and a second timestamp of a second observation speed point among the plurality of observation speed points is obtained, the second timestamp representing the time when the second observation speed point among the plurality of observation speed points is received from the client device, wherein the first observation speed point and the second observation speed point are determined by the client device using a wireless communication antenna; The sampling rate of the client device is determined based on the difference between the first timestamp and the second timestamp; The machine learning technique is used to process the multiple observation speed points corresponding to the observation trajectory, and multiple predicted speed points are generated at a sampling rate independent of the multiple observation speed points. The machine learning technique is trained to establish a relationship between multiple training observation speed points and training predicted speed points. The future trajectory is determined based on the plurality of predicted velocity points and the sampling rate, wherein each of the plurality of predicted velocity points corresponds to a different slice among the plurality of slices of the future trajectory; Determine that the target access control device is within a threshold range of the future trajectory; and In response to determining that the target access control device is within a threshold range of the future trajectory, an operation associated with the target access control device is performed.
14. The system according to claim 13, wherein, The plurality of observed velocity points include acceleration measurements, wherein the plurality of predicted velocity points include a plurality of acceleration measurements, wherein the target access control device includes a lock associated with a door; and wherein performing the operation includes unlocking the door.
15. The system according to claim 14, wherein, The operation also includes: Establish a wireless communication link between the user's mobile device and the target access control device; Exchange authorization information through the wireless communication link; and The operation is performed after determining, based on the authorization information, that the user is authorized to access the target access control device.
16. The system according to claim 15, wherein, The operation also includes: Before performing the operation, it is determined, based on the authorization information, that the user is authorized to access the target access control device; and After determining that the user is authorized, the operation is delayed until the target access control device is determined to be within the threshold range of the future trajectory.
17. A non-transitory computer-readable medium, the non-transitory computer-readable medium comprising non-transitory computer-readable instructions for performing operations, the operations comprising: Receive multiple observation speed points from the client device, each of the multiple observation speed points corresponding to a different slice among multiple slices of the observation trajectory; A first timestamp of a first observation speed point among the plurality of observation speed points is obtained, the first timestamp representing the time when the first observation speed point among the plurality of observation speed points is received from the client device; and a second timestamp of a second observation speed point among the plurality of observation speed points is obtained, the second timestamp representing the time when the second observation speed point among the plurality of observation speed points is received from the client device, wherein the first observation speed point and the second observation speed point are determined by the client device using a wireless communication antenna; The sampling rate of the client device is determined based on the difference between the first timestamp and the second timestamp; The machine learning technique is used to process the multiple observation speed points corresponding to the observation trajectory, and multiple predicted speed points are generated at a sampling rate independent of the multiple observation speed points. The machine learning technique is trained to establish a relationship between multiple training observation speed points and training predicted speed points. The future trajectory is determined based on the plurality of predicted velocity points and the sampling rate, wherein each of the plurality of predicted velocity points corresponds to a different slice among the plurality of slices of the future trajectory; Determine that the target access control device is within a threshold range of the future trajectory; and In response to determining that the target access control device is within a threshold range of the future trajectory, an operation associated with the target access control device is performed.
18. The non-transitory computer-readable medium according to claim 17, wherein, The plurality of observed velocity points include acceleration measurements, wherein the plurality of predicted velocity points include a plurality of acceleration measurements, wherein the target access control device includes a lock associated with a door; and wherein performing the operation includes unlocking the door.
19. The non-transitory computer-readable medium according to claim 18, wherein, The operation also includes: Establish a wireless communication link between the user's mobile device and the target access control device; Exchange authorization information through the wireless communication link; and The operation is performed after determining, based on the authorization information, that the user is authorized to access the target access control device.
Citation Information
Patent Citations
UWB access rights update
WO2020083750A1
