Method and server device for adaptively updating target entity identifiers stored in a database
Patent Information
- Application Number
- JP2023558247
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2021-03-29
- Filing Date
- 2022-02-24
- Publication Date
- 2025-03-05
- Estimated Expiration
- 2042-02-24
AI Technical Summary
【0011】 開示される実施形態のさらなる利点及び効果は、明細書及び図面によって明らかになるであろう。利点及び/又は効果は、明細書及び図面の様々な実施形態及び特徴から個々に得ることができ、そのような利点及び/又は効果を得るためにそれらの全てが提供される必要はない。
Smart Images

Figure 0007639935000001 
Figure 0007639935000002 
Figure 0007639935000003
Abstract
Description
[Technical field]
[0001] The present invention relates to a method for adaptively updating target entity identifiers stored in a server database, but is not limited thereto. [Background technology]
[0002] Facial recognition technology has been integrated into many modern solutions, such as online / brick-and-mortar transaction payments, building / door access control, and customs clearance, to achieve a better user experience. In recent years, video surveillance systems enabled with facial recognition have become more prevalent due to the availability of open source algorithms and affordable hardware. Facial recognition technology can help reduce manpower in real-time security monitoring, as well as speed up post-incident investigations.
[0003] By being able to identify subjects of interest by detecting appearances and receiving subject information from an image frame or video, facial recognition technology helps reduce manpower in video surveillance systems for public safety solutions such as real-time security monitoring and post-incident investigation.
[0004] Typically, facial recognition systems are utilized primarily to identify the appearance of subjects of interest at different venues or locations based on each subject's information obtained from one or more cameras in the system, which then stores the subject information in a database for further identification of the subject by the system.
[0005] As the technology becomes more commonplace, deployment sizes are simultaneously growing: for example, a shopping mall may have hundreds of surveillance cameras with one or more facial recognition systems, while a densely populated city could easily have 100,000 or more surveillance cameras with thousands of different facial recognition systems. Summary of the Invention [Problem to be solved by the invention]
[0006] While each facial recognition system may have its own database to store information about different subjects that have been identified, a server may be used to manage the database and to receive / provide the information stored in the database to / from other facial recognition systems. The difficulty of identifying the same subject across multiple cameras and / or multiple facial recognition systems increases with the number of cameras and systems deployed. [Means for solving the problem]
[0007] In a first aspect, the present disclosure discloses a server for adaptively updating a target subject identifier stored in a database, the target subject identifier associated with a target subject in a system including other servers configured to send requests, the server receiving the request from the other server (e.g., Server A) including target subject information related to the target subject, synchronizing the target subject identifier, and comparing the received target subject information with information stored in the database to determine whether to accept the request to synchronize the target subject identifier.
[0008] In a second aspect, the present disclosure discloses a server for adaptively updating a target subject identifier stored in a database, the target subject identifier associated with a target subject in a system including a plurality of servers, the server receiving target subject information, assigning a first target subject identifier to the target subject information, storing the first target subject identifier in a first database of the server, and sending requests to the plurality of servers to synchronize the target subject identifiers, the request including the target subject information associated with the target subject.
[0009] In a third aspect, the present disclosure discloses a method for adaptively updating a target subject identifier stored in a database by a server, the target subject identifier being associated with a target subject in a system including other servers configured to send requests, the method including receiving the request from the other servers including target subject information associated with the target subject, synchronizing the target subject identifier, and comparing the received target subject information with information stored in the database to determine whether to accept the request to synchronize the target subject identifier.
[0010] In a fourth aspect, the present disclosure discloses a method for adaptively updating, by a server, a target entity identifier stored in a database, the target entity identifier being associated with a target entity in a system including a plurality of servers, the method comprising: receiving target subject information; assigning a first target subject identifier to the target subject information and storing the first target subject identifier in a first database of the server; and sending a request to the plurality of servers to synchronize the target subject identifiers, the request including the target subject information associated with the target subject.
[0011] Further advantages and benefits of the disclosed embodiments will become apparent from the specification and drawings, in which: Advantages and / or benefits may be obtained individually from the various embodiments and features of the specification and drawings, and it is not necessary for all of them to be provided in order to obtain such advantages and / or benefits. [Brief description of the drawings]
[0012] Embodiments of the present invention will be better understood and become readily apparent to those skilled in the art from the following written description, by way of example, taken in conjunction with the drawings in which:
[0013] [Figure 1] FIG. 1 is an example of a system for identifying a target entity. [Diagram 2]FIG. 2 shows two example facial recognition systems that assign a subject identifier to information about a subject. [Diagram 3] FIG. 3 is a block diagram of a centralized shared person ID registry that aggregates three face recognition systems. [Figure 4] FIG. 4 is a block diagram illustrating three face recognition systems that constitute a distributed shared person identity registry. [Figure 5A] FIG. 5A is a block diagram illustrating a conventional system for updating a target entity ID associated with a target entity in a database of a server. [Figure 5B] FIG. 5B is a block diagram illustrating another conventional system for updating a target entity identifier associated with a target entity in a database of a server. [Figure 6A] FIG. 6A is a flow chart illustrating a method for adaptively updating target entity identifiers stored in a database according to the present disclosure. [Figure 6B] FIG. 6B is a flow chart illustrating another method for adaptively updating target entity identifiers stored in a database according to the present disclosure. [Figure 7] FIG. 7 is a block diagram illustrating a system including a server for adaptively updating target entity identifiers stored in a database in accordance with the present disclosure. [Figure 8A] FIG. 8A is a block diagram illustrating a three-server system for adaptively updating target entity identifiers stored in a database according to various embodiments of the present disclosure. [Figure 8B] FIG. 8B shows a block diagram illustrating a system including three servers for adaptively updating target entity identifiers stored in a database according to various embodiments of the present disclosure. [Figure 9] FIG. 9 is a flow diagram illustrating a process for receiving requests and sending responses for synchronizing target entity identities according to one embodiment. [Figure 10A]FIG. 10A shows a conceptual diagram illustrating three responses received from three servers (e.g., servers A to C) and a selection process for selecting one of three subject IDs in each of three embodiments of the present disclosure, where each response includes data and a target subject ID that identifies the target subject. [Figure 10B] FIG. 10B shows a conceptual diagram illustrating three responses received from three servers (e.g., servers A to C) and a selection process for selecting one of three subject IDs in each of three embodiments of the present disclosure, where each response includes data and a target subject ID that identifies the target subject. [Figure 10C] FIG. 10C shows a conceptual diagram illustrating three responses received from three servers (e.g., servers A to C) and a selection process for selecting one of the three subject IDs in each of three embodiments of the present disclosure, where each response includes data and a target subject ID that identifies the target subject. [Figure 11] FIG. 11 is a flowchart showing a process of comparing information stored in a database of a server according to an embodiment of the present disclosure with target subject information. [Figure 12A] FIG. 12A is a flowchart illustrating a process for adaptively updating a target entity identifier stored in a database of a server according to an embodiment of the present disclosure. [Figure 12B] FIG. 12B is a flowchart illustrating a process for adaptively updating a target entity identifier stored in a database of a server according to an embodiment of the present disclosure. [Figure 13A] FIG. 13A is a flowchart illustrating a process for adaptively updating a target entity identifier stored in a database of a server according to another embodiment of the present disclosure. [Figure 13B] FIG. 13B is a flowchart illustrating a process of adaptively updating a target entity identifier stored in a database of a server according to another embodiment of the present disclosure. [Figure 14]FIG. 14 is a schematic diagram of a computer system suitable for use as the system shown in FIG. 7 to implement the method shown in FIGS. 6A and 6B. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0014] Further advantages and benefits of the disclosed embodiments will become apparent from the specification and drawings. Advantages and / or benefits may be obtained individually from the various embodiments and features of the specification and drawings, and it is not necessary for all of them to be provided in order to obtain such advantages and / or benefits.
[0015] Hereinafter, an embodiment according to the present disclosure will be described with reference to the drawings. The same elements are designated by the same reference numerals throughout the drawings, and redundant explanations are omitted as necessary. Furthermore, unless otherwise specified, the predetermined information (e.g., a predetermined value or a predetermined threshold value) is stored in advance in a storage device accessible from a computer that uses the information.
[0016] Terminology
[0017] Server: A server or client hosts software application programs for receiving camera input, acquiring and processing information from data inputs (e.g., cameras), identifying subjects, transmitting information, and adaptively updating subject identifications stored in the server's database. In various embodiments below, a server may be referred to as a facial recognition system that is utilized to receive facial information, identify subjects based on their facial information (appearance), assign the facial information to a subject ID, store the facial information, manage its own subject ID registry (i.e., list of subject IDs) stored in its own database, and transmit the facial information and subject IDs to other servers and receive similar facial information and associated subject IDs from the other servers. The server communicates with the other servers to update the subject IDs associated with subjects stored in its own database so that the subject IDs are synchronized and consistent with the subject IDs stored in the other servers' databases.
[0018] Database: A database is a component associated with a server and may be configured to store information (data or data sets) and manage a subject ID registry (a list of subject IDs associated with a list of other subjects). Each data set stored in a server's database may be assigned a subject ID to identify the data set corresponding to a particular subject. In accordance with the present disclosure, subject IDs associated with subjects initially stored in a database may be adaptively updated to match subject IDs stored in other server's databases. It will be understood by those skilled in the art that information stored in (or retrieved from) a server's database may be interpreted as information stored in (or retrieved from) a server.
[0019] System: The system includes one or more servers (face recognition systems) and one or more databases, where each server receives data input (e.g., a camera) and manages its own subject ID registry corresponding to the subjects stored in the database. According to the present disclosure, each server (face recognition system) in the system can send requests to other servers to synchronize subject IDs, and can adaptively update the subject IDs stored in its corresponding database based on responses regarding subject IDs it receives from other devices.
[0020] Target subject: A target subject can be any suitable type of entity, which may include a person, a user, or a subject whose identification (ID) is adaptively updated. In various embodiments, a new subject that does not match any subject in the list of subjects known to the server (based on the corresponding list of subject information and IDs stored in the server's database) may be referred to as a target subject, and therefore a new subject ID (e.g., a target subject ID) is generated by the server to identify the target subject. In one embodiment, if the target subject is known to other servers (e.g., the other servers store the target subject's identifying information and ID in their respective databases), the subject ID generated by the server for the target subject may be updated in synchronization with the subject IDs in the other servers.
[0021] Target subject information: Information (data or data set) that identifies a target subject is called target subject information. In various embodiments below, facial information including the relative position, size, shape and / or contour of the target subject's eyes, nose, cheekbones, and chin, iris pattern, skin color and hair color of the subject, or combinations thereof, is called target subject information. Additionally or alternatively, feature information including physical feature information (height, body size, clothing, belongings, other similar features or combinations) and behavioral feature information (body movement, limb position, movement direction, subject's walking, standing, moving, speaking, other features or combinations) may be called target subject information. In various embodiments, the target subject information is received from image frames generated by a camera or sensor, from a database or storage element in a server, or through retrieval of information from another server. For simplicity, in various embodiments below, facial information (appearance) is utilized as subject information.
[0022] Information stored in a database: Information stored in a database may refer to existing information (data or data sets) relating to one or more subjects previously received by the server. Each data set stored in the server's database may be assigned a subject ID to identify the data set corresponding to a particular subject. Such existing information may be obtained for comparison with newly received information by the server (e.g., from cameras or databases of other servers) to determine whether the newly received information shows a certain degree of similarity to existing information stored in the database relating to a subject.
[0023] Target subject identifier (ID): A target subject ID is an ID assigned to information that identifies a target subject (i.e., the subject information of interest). In various embodiments, the system may include multiple servers, and each server may be configured to identify subjects based on the information received and store its own list of subject IDs in its database. In this manner, the same subject may correspond to different subject IDs stored in different servers of the system. In one embodiment, synchronization of target subject IDs may be initiated by a first server of the system sending a request to a second server of the system to synchronize a target subject ID associated with the target subject with information associated with the target subject stored in the first server's database. The second server, receiving the request and the information from the first server, may compare the received information with the information stored in its database and, based on the result of the comparison, send a response whether to accept the request.
[0024] In one embodiment, the second server may include its own target subject ID and the target subject information stored on the second server when returning a response accepting the request to synchronize the target subject ID to the first server. When multiple servers (e.g., the second server and the third server) send responses accepting the request to synchronize the target subject ID, the first server receiving the multiple responses (using the respective target subject information and IDs) may select one target subject ID from the multiple responses based on the reference information of each target subject information for synchronizing the target subject ID.
[0025] Similarity: Similarity indicates how similar two data sets (e.g., one received from a camera or database from another server and one stored in the server's database) are and corresponds to the likelihood that the two data sets relate to the same subject of interest. In various embodiments, the similarity resulting from a comparison of two data sets is scaled from 0% to 100%, with 0% similarity indicating that the two data sets do not contain similar data and 100% similarity indicating that the two data sets are identical and correspond to the same data set.
[0026] In one embodiment, when the server receives new information from the camera that is not assigned to a subject ID, it compares it to the information stored in its database, and if it shows a high similarity to the data set stored in the database (e.g., the similarity is greater than a threshold (e.g., greater than 80%)), the new information is then assigned to the subject ID associated with that data set and stored under that subject ID, indicating that a new data set for the subject with that subject ID has been identified. On the other hand, if it shows a low similarity to all information stored in the database (e.g., the similarities are all less than a threshold (e.g., less than 80%)), the new information is then assigned to a new subject ID, indicating that a new subject has been identified based on the new information.
[0027] In another embodiment, when a first server sends a request to synchronize target entity IDs and information about a target entity to a second server, the second server may compare the information received from the first server with information stored in its database, and if the two show high similarity (e.g., if the similarity is greater than a threshold (e.g., greater than 80%), send a response frame accepting the request to synchronize target entity IDs for the target entity. In contrast, if the information received from the first server shows low similarity with all information stored in its database (e.g., if all similarities are less than a threshold (e.g., less than 80%)), the second server sends a response frame refusing to synchronize target entity IDs because the first server does not store information or entity IDs about the target entity that the first server wants to synchronize.
[0028] Reference Information: Here, reference information refers to server-specific information that characterizes the server's target subject information. In various embodiments, the reference information may be utilized to determine the relevance and / or currency of the server's target subject information. The reference information may include, but is not limited to, a total number of target subject detections (under a target subject ID), a score for the target subject's facial orientation or degree of frontal face exposure in those detections, and a timestamp of when the target subject was detected.
[0029] During the target ID synchronization process, a target subject ID of a particular server may be selected if the target subject information received from that particular server provides greater relevance and freshness (e.g., if the reference information of that particular server has the highest number of target subject detections, the highest frontal face score, and / or the most recent detections of the target subject). The selected target subject ID is then synchronized between the servers that sent their respective response frames accepting the request to synchronize target subject IDs.
[0030] An embodiment of the present invention will now be described, by way of example only, with reference to the drawings in which like reference numbers and letters indicate similar elements or equivalents.
[0031] Some portions of the description which follow are explicitly or implicitly presented in terms of algorithms and functional or symbolic representations of operations on data within a computer memory. These algorithmic descriptions and functional or symbolic representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art, and an algorithm is here generally conceived to be a self-consistent sequence of steps leading to a desired result. The steps are those requiring physical manipulations of physical quantities, such as electrical, magnetic or optical signals that can be stored, transferred, combined, compared, and otherwise manipulated.
[0032] Unless otherwise indicated, and as will become apparent below, discussions throughout this specification using terms such as "receive," "calculate," "identify," "update," "generate," "initialize," "output," "receive," "acquire," "identify," "distribute," "authenticate," and the like, will be understood to refer to operations and processes of a computer system or similar electronic device or other information storage, transmission, or display device that manipulates and transforms data represented as physical quantities within the computer system into other data also represented as physical quantities within the computer system.
[0033] Apparatus for performing the operations of these methods is also disclosed herein. Such apparatus may be specially constructed for the required purposes, or may include a computer or other device selectively activated or reconfigured by a computer program stored in the computer. The algorithms and displays presented herein are not inherently related to any particular computer or other device. A variety of machines may be used with programs in accordance with the teachings set forth herein. Alternatively, the construction of more specialized apparatus to perform the requested method steps may be appropriate. The structure of the computer will emerge from the following description.
[0034] Moreover, this specification also implicitly discloses a computer program in that it is clear to one skilled in the art that the individual steps of the methods described herein may be implemented by computer code. The computer program is not intended to be limited to a specific programming language and its implementation. It will be understood that a variety of programming languages and their coding can be used to implement the teachings of the disclosure contained herein. Furthermore, the computer program is not intended to be limited to a specific control flow. There are many other variations of the computer program that can use different control flows without departing from the spirit or scope of the present invention.
[0035] Furthermore, one or more steps of a computer program may be executed in parallel rather than sequentially. Such a computer program may be stored on any computer readable medium. The computer readable medium may include storage devices such as magnetic or optical disks, memory chips, or other storage devices suitable for interfacing with a computer. The computer readable medium may also include wired media, such as exemplified in the Internet system, or wireless media, such as exemplified in the GSM mobile telephone system. Such a computer program loaded and executed on a computer effectively results in an apparatus implementing the steps of the preferred method.
[0036] Embodiment
[0037] Various embodiments of the present invention relate to methods and apparatus for estimating the occurrence of a first object in frames in which a second object is present and the first object is absent.
[0038] FIG. 1 illustrates an example system 100 used to identify a subject of interest 702. The system 100 can include one or more cameras (e.g., cameras 100a-c), each of which can be configured to generate an image frame of a location. As an image frame is generated by a camera (e.g., 100a-c), information identifying the subject (e.g., appearance or facial information) is extracted from the image frame and assigned to a subject ID associated with the subject by comparison with information stored in a database. Such subject ID is used by the camera to distinguish the subject from other subjects having information characterized by different subject IDs. The information, the subject's subject ID, and the correspondence between the two can then be stored in a database for further identifying the subject.
[0039] In a conventional setup, cameras 100a-c may be assigned subject IDs ID101, ID201, and ID301 to detected information and subjects in their respective databases. Thus, even if three cameras 100a-c detect a target subject 702 at respective locations 1-3 and receive the same target subject information (e.g., face information), camera 100a, which stores information under subject ID ID ID101, recognizes subject ID ID ID201 as referring to a different and not the same subject, since different IDs are stored in the different cameras. Thus, the difficulty of identifying the same subject across multiple cameras has increased in recent years with the number of cameras deployed in a system.
[0040] The above conventional system relates to a standalone person ID registry, where each facial recognition system (camera and database) in the conventional system manages its own subject ID registry stored in the database corresponding to the list of subjects detected by that facial recognition system (camera).
[0041] In particular, when each facial recognition system detects a new / unknown subject (e.g., when it compares information obtained from an image frame with all information stored in the facial recognition system's database and determines that there is no match associated with an existing subject ID registry), it automatically registers the new / unknown subject and assigns the new / unknown subject a unique subject ID for further identification. The same unregistered subject that appears on different facial recognition systems will have different subject IDs in each system's subject ID registry.
[0042] 2 illustrates two exemplary facial recognition systems 206, 216, each having a database 208, 218 and each having a standalone subject ID registry. In particular, the cameras 204, 214 may each generate image frames and detect a new / unknown subject 202. In response, the facial recognition systems 206, 216 process the information of the same new / unknown subject 202 obtained from the image frames, assign it a subject ID "PID_001" and "PID_0002", and store the subject ID and information in the databases 208, 218, respectively, for subsequent identification of the subject 202. As previously described, the facial recognition system 1 206 recognizes its own subject ID "PID_0001" and the subject ID "PID_0002" assigned by the facial recognition system 216 as corresponding to different subjects, even if the same or similar subject information is detected and used in the process of assigning the subject ID.
[0043] FIG. 3 is a block diagram showing a conventional system 300 having three facial recognition systems 306, 308, 310 along with a database 302 used as a centralized shared subject ID registry. Each facial recognition system 306, 308, 310 can query and update the centralized shared subject ID registry 304 in the database 302 to look up existing subject IDs and store new subject IDs. Since the same subject ID corresponding to the subject of interest is looked up from the database 30, this conventional system 300 can identify the same subject appearing across different facial recognition systems. However, such a conventional system having only a centralized subject ID registry shared across multiple servers, clients, or facial recognition systems may have low scalability in terms of the number of servers, clients, or facial recognition systems that can be implemented and supported in the conventional system. This is because there is a single point of failure in the entire deployment, i.e., if the centralized database fails, all facial recognition systems cannot function.
[0044] FIG. 4 shows a block diagram illustrating another conventional system 400 including three facial recognition systems 402, 406, 408 with respective databases 404, 408, 412 used as a distributed shared entity ID registry. Unlike the conventional system 300 of FIG. 3, every facial recognition system 402, 406, 410 is associated with a database 404, 408, 412, and every database 404, 408, 412 stores a full set of copies of data obtained by every facial recognition system 404, 408, 412 in the system 400. Each facial recognition system can broadcast new data changes to every other facial recognition system so that every data change is synchronized among every facial recognition system 402, 406, 408 and reflected in every database 404, 408, 412 in the system 400. Advantageously, the facial recognition systems under such a system 400 can function independently even when they are isolated from every other recognition system.
[0045] 5A is a block diagram illustrating a conventional system 500 for updating a target entity identifier associated with a target entity, the conventional system 500 includes three servers 504, 514, 524 and respective databases 506, 516, 526 used as a distributed shared entity ID registry. All data 502 received by server A 504 (e.g., from a camera) and stored in its database 506 is always sent to a data synchronization server 530, which then broadcasts it to server B 512 and server C 522 for synchronization. This flow also applies when server B 512 and server C 522 receive data 512, 522 (e.g., from a camera) and the data synchronization server 530 broadcasts the data 512, 522 to the remaining servers of the system 500. Once the data is fully synchronized and replicated between all of the servers 502 , 512 , 522 , each database 506 , 516 , 526 keeps a complete record of the data received by all of the servers 502 , 512 , 522 .
[0046] 5B is a block diagram illustrating another conventional system 540 for updating a subject identifier associated with a subject in a server's database, the conventional system 540 includes three servers 552, 562, 572 used as a distributed shared subject ID registry and respective databases 554, 564, 574. All data 542 received by the master server 544 (e.g., from a camera) is split into different partitions by a data splitting service 546 and sent to all the servers 552, 562, 572 and stored in the respective databases 554, 564, 574.
[0047] 6A shows a flow chart 600 illustrating a method for adaptively updating target subject identities stored in a database according to the present disclosure. In step 602, a step is performed of receiving a request including target subject information for a target subject to synchronize a target subject identifier (ID). In step 604, a step is performed of comparing the received target subject information stored in the database and determining whether to accept the target subject ID synchronization request.
[0048] 6B shows a flow chart 610 illustrating another method for adaptively updating target subject IDs stored in a database according to the present disclosure. In step 612, target subject information is received. In step 614, a first target subject is assigned to the target subject information. In step 616, storing the first target subject identifier in a first database on a server is performed. In step 618, sending a request including target subject information associated with the target subject to multiple servers to synchronize target subject IDs associated with the target subject is performed.
[0049] FIG. 7 is a block diagram illustrating a system including a server for adaptively updating target entity IDs stored in a database according to the present disclosure.
[0050] System 700 includes servers 740A to 740N and a service discovery server 702, each of which communicates with a subject identity standardization module 708A, hosts 750A to 750N, and cameras 742A to 742N. For simplicity, only components in communication with server 740A are shown.
[0051] Server 740A communicates with other servers 740B through 740N via connections 721B through 721N, respectively. Connections 721B through 721N may be wireless (e.g., via NFC communication, Bluetooth, etc.) or over a network (e.g., the Internet). Connections 721B through 721N and 722B through 722N may be network (e.g., local area network, wide area network, Internet, etc.) connections. Servers 740A through 740N are collectively referred to herein as servers 740, where server 740 refers to any of the multiple servers 740.
[0052] The server 740 is associated with an entity (e.g., a company, organization, or moderator of a service). The server 740A is in communication with a subject identity standardization module 708A. In one configuration, the subject identity standardization module 708 is owned and operated by the entity operating the server 708A. In one configuration, the subject identity standardization module 708A is implemented as part of the server 740 (e.g., a computer program module, a computing device, etc.). In such a configuration, the server 740A and the subject identity standardization module 708 are coupled and the connection 720 may be a bus connecting them together.
[0053] The subject ID standardization module 708A is as described above in the terminology section. The subject ID standardization module server 708 is configured to execute a process of adaptively updating the subject ID stored in the database 709.
[0054] The service discovery server 702 of the system 700 communicates with the subject identity standardization modules of all servers 740 (e.g., shown at 708 for server 740A) via respective connections 722A-722N. The connections 722A-722N may be wireless (e.g., via NFC communication, Bluetooth, etc.) or over a network (e.g., the Internet). The connections 722A-722N may be network (e.g., local area network, wide area network, Internet, etc.) connections.
[0055] Server 740 in turn communicates with hosts 750A through 750N over respective connections 722A through 722N. Connections 722A through 722N may be a network (eg, the Internet).
[0056] The hosts 750A to 750N are servers. The term host is used here to distinguish the hosts 750A to 750N from the server 740A. The hosts 750A to 750N are collectively referred to as hosts 750, and the host 750 refers to any one of the multiple hosts 750. The host 750 may be combined with the server 740.
[0057] Cameras 742A through 742N are connected to server 740 via respective connections 744A through 744N. Cameras 742A through 742N are collectively referred to herein as camera 742, where camera 742 refers to any of the multiple cameras 742. Connections 744A through 744N are collectively referred to herein as connection 744, where connection 744 refers to any of the multiple connections 744. Connection 744 may be wireless (e.g., via NFC communication, Bluetooth, etc.) or over a network (e.g., the Internet). Camera 744 may be any of an image capture device, a motion sensor, and an infrared sensor, and may be configured to transmit a signal to at least one of requesting devices 702 depending on the type of camera.
[0058] In an example embodiment, each of the servers 740A-740N, 750 and / or devices 708, 740 provides an interface to enable communication with other connected servers 740A-740N, 750 and / or devices 708 and 742 and / or servers 702, 740 and 750. Such communication is achieved by an application programming interface ("API"). Such an API may be part of a user interface, including a graphical user interface (GUI), a web-based interface, a programmatic interface such as a set of remote procedure calls (RPCs) corresponding to the application programming interface (API) and / or interface elements, a messaging interface where the interface elements correspond to messages of a communication protocol, and / or any suitable combination thereof. For example, each server 740A-740N may send an alert signal when a user presses a panic button on the GUI during execution. Similarly, a request may be made from server 740 to synchronize subject IDs across servers 740A-740N.
[0059] The server 740A, host 750 and / or subject ID standardization module communicate with a database 709. In one configuration, the server 740A and database 709 are combined, as shown in Figure 7. In another configuration, the server 740A and database 709 are separate and connected via an interconnected bus.
[0060] The term "server" as used herein can refer to a single computing device including a processor (e.g., processor 710 of server 740A) or to multiple interconnected computing devices operating together, each including a processor (e.g., processor 710 of server 740A) to perform a particular function. That is, a server may be contained within a single hardware unit or may be distributed among multiple or many different hardware units.
[0061] The server 740 is also configured to manage the registration of users. A registered user has a remote access account (see discussion above) with the user details stored in the database 709. The registration step is performed at onboarding. A user can onboard to the subject identity standardization module 702 and the service discovery server 702 using the host 750.
[0062] It is not necessary to have an account on server 740 to access the functionality of server 740; that is, in some embodiments, subject ID standardization module server 708 and service discovery server 702 can perform the functionality of server 740. However, there are functions available to registered users. For example, it is possible to send requests / responses to other servers in system 700 to synchronize subject IDs stored in database 709. These functions are described below.
[0063] The onboarding process for a user is performed by the user via the host 750. In one configuration, the user downloads an app (that includes an API for interacting with the server 740) onto the camera 742. In another configuration, the user accesses a website that includes an API for interacting with the server 740. The user can then interact with the server 740 via the camera 742 that is paired with the user.
[0064] The registration details include, for example, the user's name, the user's address, emergency contacts, and cameras that are allowed to be updated on the account. Once onboarded, the user has an account that stores all the details in the database 709.
[0065] Host 750
[0066] Host 750 is a server associated with an entity (e.g., a company or organization) or entity (requester) that manages (e.g., establishes, manages) resources related to an entity identity registry. Host 750 is a computing device such as a desktop computer, an interactive voice response (IVR) system, a smart phone, a laptop computer, a personal digital assistant computer (PDA), a mobile computer, a tablet computer, etc. In one example configuration, host 750 is a computing device in a watch or similar wearable and includes a wireless communication interface.
[0067] In one example configuration, the entity is a central security administrator. Thus, each entity operates a host 750 to manage resources through that entity. The host 750 may be a security monitoring system or a system that stores information related to entities and other operations. The host 702 is associated with an entity (or requester) that is the party to a request to adaptively update the entity ID stored in the database 709. In one example, the hosts 750 may be managed by the entity's security personnel, and the server 740 is a central server that manages the data from each host 750.
[0068] In one configuration, the subject IDs stored in database 709 may be automatically updated for accounts associated with all hosts 750. Advantageously, this causes the subject IDs stored in database 709 for all hosts 750A through 750N to all be adaptively updated and synchronized with the subject IDs stored in the respective databases of all other servers 740B through 740N in system 700.
[0069] Camera 742
[0070] Camera 742 is associated with a user that is associated with server 740A. Details of how the camera is utilized are presented in Figures 8A, 8B, and 11-13 and the accompanying description below.
[0071] In one embodiment, the camera is configured to capture target subject information.
[0072] Subject ID standardization module 708
[0073] The subject identity standardization modules 708A-708N are modules within a server 740 that are utilized to adaptively update and synchronize subject identity with other servers 740. The subject identity standardization modules 708A-780N within the system 700 communicate with each other through the service discovery server 702 over connections 722A-N, respectively. In one configuration, the subject identity standardization modules 708A-780N communicate directly over the server's main communications connections 721B-721N. The subject identity standardization modules 708A-708N are collectively referred to herein as subject identity standardization modules 708, and subject identity standardization module 708 refers to one of the plurality of subject identity standardization modules 708.
[0074] The subject ID standardization module 708 is configured to suitably perform subject ID synchronization processing by or between servers 740 in the system 700 by managing and directing requests and responses from one subject ID standardization module to another of the servers for synchronization of subject IDs stored in the database 709.
[0075] Service Discovery Server 702
[0076] In one embodiment, when server 740A initiates a subject ID standardization process to adaptively update its subject ID registry stored in database 709 and synchronize its subject IDs with those stored in the respective databases of other servers in system 700, server 740A may send a request to service discovery server 702 via subject ID standardization module 708 to obtain a list of connected subject ID standardization modules in the network (connected to servers 740B to 740N in system 700 via connections 722B to 722N, respectively). Once the list of connected subject ID standardization modules is obtained, server 740A may then send requests to the other servers 722B to 722N to synchronize subject IDs.
[0077] 8A and 8B depict block diagrams illustrating a system including three servers for adaptively updating target entity identifiers stored in a database according to various embodiments of the present disclosure.
[0078] According to the present disclosure, only a new set of data or information regarding a target subject received by a server is sent to an ID standardization module residing on the server and shared with ID standardization modules of other servers to synchronize the target subject IDs.
[0079] 8A illustrates a block diagram 800 depicting a system including three servers 802, 812, 822 for adaptively updating subject IDs stored in respective databases 806, 816, 826 in accordance with various embodiments of the present disclosure. The databases 806, 816, 826 of servers A through C 804, 814, 824 store respective lists of subject IDs based on sets of data received by servers A through C 804, 814, 824, respectively.
[0080] In this embodiment, servers A to C receive and store 333, 812 and 123 sets of data. Each data set can relate to the detection of a subject at a point in time using one or more cameras in communication with each of servers A to C, and is assigned a subject ID that identifies the subject. It is understood that a single subject ID stored in server 802, 812, 822 can be associated with two or more data sets when they exhibit a high degree of similarity, for example, when they are obtained from the same subject. In one example, such two or more data sets associated with a single subject ID can be grouped as a subject group or person group, or in some embodiments below, as a similar subject / person group.
[0081] Server A 804 may receive new data sets from data source 802 and compare them to each of the data sets stored in database 806 to determine whether the new data set matches any of the data sets stored in database 806. Server A 804 may determine that the new data set (hereafter referred to as "new data") sufficiently matches a matched data set (hereafter referred to as "matching data") associated with a subject ID stored in database 806, and therefore assign the new data set to the subject ID identifying the known subject. Similarly, Server B 814 and Server C 824 may receive new data from their respective data sources 812, 822, compare them to each of the data sets stored in their respective databases 816, 826, identify matching data stored in databases 816, 826, and assign the new data 812, 822 to the respective subject ID associated with the matching data.
[0082] Each of the servers A to C 804, 814, 824 may include an identity standardization module 808, 818, 828 that is utilized to update and synchronize entity identities stored in the databases 806, 816, 826. All identity standardization modules 808, 818, 823 in the system may further communicate with a service discovery server 832 via connections 810, 820, 830, respectively. Each identity standardization module 808, 818, 823 registers and updates its online and offline status with the service discovery server 832.
[0083] As mentioned above, the same data set identifying an entity received by different servers 802, 812, 822 may be assigned different entity IDs and stored in databases 806, 818, 828 in the different servers 802, 812, 822, respectively. Therefore, it is necessary to adaptively update entity IDs identifying the same entity across different servers 802, 812, 822 and synchronize them to a single entity ID used across the different servers 802, 812, 822.
[0084] According to the present disclosure, only new data or information received by the server regarding the target subject is sent to the ID standardization module resident on the server and shared with the ID standardization modules of other servers to synchronize the target subject ID.
[0085] If Server A 804 receives a new data set from a data source 802 that does not sufficiently match any data set stored in database 806, Server A 802 can identify the new data set to be associated with the subject and assign a subject ID to the new data set. The subject ID is available for assignment to any further new data sets that identify the subject, i.e., data sets that are sufficiently similar to the new data set received by Server A 802.
[0086] Such subject entity IDs created by Server A 804 to identify subject entities may be adaptively updated and synchronized with other servers 812, 822. Server A 804 may send a subject entity ID synchronization request by sending the subject entity ID along with associated data to its ID standardization module 808. In this manner, the ID standardization process is initiated.
[0087] The identity standardization module 808 of Server A 804 may obtain a list of connected (or online) identity standardization modules (e.g., identity standardization modules 818, 828 of Servers B and C 814, 824) via the service discovery server 832. The identity standardization module may then forward the request, including the target entity identity and data, to Server B 814 and Server C 824 via the service discovery server 832. Server B 814 and Server C 824 may compare the data set received from Server A 804 with the data set stored in the databases 816, 826, respectively, and then send a response to Server A via the same connections 810, 820, 830 to accept or reject such request. In one embodiment, both Server B and Server C 814, 824 may participate in the identity standardization process by accepting requests from Server A 804 and sending respective responses back to Server A 804. Such a response will include matching data that sufficiently matches the set of data sent by server A 804, and the corresponding target subject IDs stored in the databases 816, 826 of servers B and C 814, 824, respectively. Then, upon receiving the responses, matching data, and target subject IDs from participating servers B and C 814, 824, server A 804 will select one target subject ID from among the target subject IDs of all participating servers A to C 804, 814, 824, and synchronize the selected one target subject ID among all participating servers A to C 804, 814, 824 (i.e., the subject IDs previously stored in the databases of all participating servers A to C 804, 814, 824 to identify the target subject are replaced with the selected one target subject ID that is used for further identification of the target subject and assignment of target subject IDs thereafter).
[0088] 8B illustrates a block diagram 840 depicting a system including three servers 844, 854, 864 for adaptively updating target entity identities stored in databases 846, 856, 866, respectively, according to various embodiments of the present disclosure. The databases 846, 856, 866 of servers A through C 844, 854, 864 store respective lists of entity identities based on data sets received by servers A through C 846, 856, 866, respectively. The operation of servers A through C 844, 854, 864 of FIG. 8B is similar to servers A through C 804, 814, 824 of FIG. 8A, except that there is no service discovery server in communication with the ID standardization modules 848, 858, 868 provided in servers A through C 844, 854, 864 to track the online and offline status of each ID standardization module 848, 858, 868. Instead, each server communicates directly with the other servers via ID standardization modules 848, 858, 868 for operations of updating and synchronizing the entity IDs stored in databases 846, 856, 866, respectively.
[0089] In particular, if Server A 844 receives a new data set from a data source 842 (e.g., one or more cameras in communication with Server A) that does not sufficiently match any data set stored in database 846, Server A 844 may identify the new data set associated with the subject and assign a subject ID to the new data set. The subject ID may be used to assign to any further new data sets received by Server A 842 that identify the subject (i.e., are sufficiently similar to the new data set). The subject IDs created by Server A 842 for identifying the subject may be adaptively updated and synchronized with Servers B and C 854, 864. Server A 804 may send a request to synchronize the subject IDs by sending the subject IDs along with associated data to its ID standardization module 808, which is sent directly to the ID standardization modules 858, 868 of Servers B and C 854, 864 via connections 850, 860, respectively. In this manner, the ID standardization process is initiated.
[0090] Server B 854 and Server C 864 can then compare the data set received from Server A 844 with the data set stored in databases 856, 866, respectively, and then send a response over the same connection 850, 860 to Server A to accept or reject such request. If both Server B and Server C 814, 824 participate in the ID standardization process and accept the request from Server A 804, Server B and Server C 854, 864 will include in their sent response a data set that sufficiently matches the data set sent by Server A 804 and the corresponding target subject ID stored in databases 856, 866, respectively. Server A 844, having received the responses, matching data and target subject IDs from participating Servers B and C 854, 864, then selects one target subject ID among the target subject IDs of all participating Servers A to C 844, 854, 864 across all participating Servers A to C 844, 854, 864. The selected target subject ID replaces all subject IDs previously stored in the databases of servers A through C 804, 814, 824 identifying target subjects for further identification of the target subjects and assignment of target subject IDs.
[0091] FIG. 9 shows a flowchart 900 illustrating a process of receiving a request to synchronize target entity IDs and sending a response according to one embodiment. A request 902 for synchronizing target entity IDs is received from an ID standardization module of a server. This request 902 may include a target entity ID stored on the server and associated data identifying the target entity (hereinafter referred to as "new data"). Upon receiving this request, a decision is made as to whether or not to accept the request to synchronize target entity IDs, and the decision result (whether or not to accept the request) is returned to the server. A step of searching and comparing each data stored in a database 904 (hereinafter referred to as "stored data") to search for data similar to the new data. is executedIn this example, the database stores three principal groups with respective principal IDs that identify three different principals. The database stores five datasets (five detections of principal 1) under principal ID "PID_01", four datasets (four detections of principal 2) under principal ID "PID_02", and six datasets (six detections of principal 3) under principal ID "PID_03".
[0092] For each comparison, a match score is calculated that indicates the degree of similarity between the new data and the stored data. The match score is expressed as a percentage and is scaled from 0% to 100%. A similarity of 0% indicates that the new data and the stored data contain no similar data, while a similarity of 100% indicates that the new data is identical to the stored data and corresponds to the same data set.
[0093] In one example, a data set under a subject group is identified as the closest match (best match data set) to the received data set in the request 902 if any data set under the subject group has the highest match score. In another example, a data set under a subject group is identified as the closest match to the received data set in the request 902 if all data sets under the subject group show the highest match score on average.
[0094] In this embodiment, data under subject group 906 with subject ID "PID_02" (hereinafter referred to as "matching data", "matching group" and "matching target ID") is identified as the closest match to the received data set in request 902 with a match score of 69.23% and is retrieved for further consideration. According to the present disclosure, the match score of the matching data is checked against a predefined minimum similar data match score. If the match score is less than the predefined minimum score, step 912 is executed and a response is generated rejecting the request to synchronize target subject IDs 902. This eliminates matching data that does not reach a desired level of similarity and allows only matching data that is sufficiently similar to the received data in the subsequent selection process.
[0095] If the match score is greater than the predefined minimum score, step 908 is executed. A set of reference data of the match group, such as detection number, face frontal score, and last detection time, is obtained and checked for a corresponding set of data criteria. In this embodiment, the match data 906 is checked whether the reference data meets at least the following criteria: a minimum detection number of 2, a maximum face frontal score of 0.5, and a last detection time within 5 years. If the reference data does not meet at least one of the criteria, step 912 is executed, where a rejection response is generated.
[0096] In this embodiment, the matched data 906 has a total number of detections of 4, a maximum face frontal score of 0.82, and a last detection time of 1:06:43 PM on June 13, 2020. Since the set of reference data in the matched data 906 meets all criteria, the next step 910 can be performed.
[0097] Step 910 compares the current match data with historical data. is executedThe historical data may include sets of data identifying target subjects associated with all requests received from other servers to synchronize target subject identities, match data included in all responses to accept such requests, and selected target subject identities received as a result of all target subject identity selection processes prior to receiving request 902. In one embodiment, if no records of the historical data associated with the match group are found, step 910 is skipped to step 914. Details of the processing of step 910, including steps 918, 920, 922, 928, and 930, are shown in flowchart 911 and in the text below.
[0098] Referring to flowchart 911, in step 918 of step 910, historical data is obtained for the matching entity group and matching entity ID "PID_0002". Such historical data may be stored in a historical request and results database 924, separate from the database in which the entity IDs and associated data sets identifying the entities are stored. In step 920, it is determined whether there is a record of a previous request associated with the matching entity group and matching entity ID "PID_0002" that was accepted. If no record is found, step 912 is performed and a response is generated denying request 902.
[0099] If at least one record is found that accepts the previous request related to the match group and the matched subject ID, step 922 is performed. In step 922, the current match data 906 is compared to the historical data associated with the previous request. In one embodiment, the corresponding reference information of the match data and the historical data are used for compression. If the current match data is determined to be better than the historical data based on the reference information (e.g., more detections, higher face frontal score, and / or more recent detection time), step 930 is performed and a response 914 is performed that accepts the request 902. The response includes (i) the matched subject ID, (ii) either the matched data 908 or one of the data sets of the matched subject group with the highest match score, or (iii) the reference data of the matched data 908. Otherwise, step 912 is performed and a response is generated that rejects the request to synchronize the target subject ID 902.
[0100] In various embodiments, after the response and many responses from other servers in response to the same request 902 are sent back to the server, ,sa The server may initiate a subject ID selection process to select one subject ID from the subject IDs of the responses received from each server. In one embodiment, the selection result and the selected subject ID are then sent back to the ID standardization module 926 of all servers that accepted and responded to the request, and the selected subject ID is then used by the server to update and replace the matching ID stored in the server. In another embodiment, the selection result and the selected subject ID are sent to all connected servers in the system and stored in their respective historical request and result databases 924 for future comparison. According to one embodiment, the selection process may utilize corresponding reference information included in the response. Details of the selection process are described in FIG. 10 and the following description.
[0101] FIG. 10A shows a conceptual diagram 1000 illustrating three responses 1002, 1004, 1006 received from three servers (e.g., servers A to C) and a selection process for selecting one of the three subject IDs in an embodiment of the present disclosure, where each response includes data and a subject ID identifying the subject. In this embodiment, the selection of the subject ID is based on a reference regarding the maximum total number of subject detections, for example, by calculating the number of data sets in the subject group that are associated with the subject ID. The responses 1002, 1004, 1006 received from servers A to C have the number of subject detections of 34, 8, and 28, respectively. As a result, the data in response 1002 is selected and the corresponding subject ID 10010 stored in server A is used to synchronize the subject IDs between servers A to C. That is, the target subject IDs 22311 and 12314 identifying the target subject stored in servers B and C are replaced with the target subject ID 10010, and the target subject is represented by the target subject ID 10010 synchronously across servers A to C.
[0102] FIG. 10B shows a conceptual diagram 1010 illustrating three responses 1012, 1014, 1016 received from three servers (e.g., servers A to C) and a selection process for selecting one of the three subject IDs in another embodiment of the present disclosure, where each response includes data identifying a target subject and a target subject ID. In this embodiment, the selection of the target subject ID is based on a reference to a maximum frontal face score of a data set identifying the target subject. In one embodiment, the frontal face score is calculated based on the angle and orientation of the face relative to the angle toward the camera capturing the face information and / or the exposed area of the face. In this example, of all the data sets included in the responses received from servers A to C, the maximum frontal face scores of the data sets are 48.10%, 56.78% and 98.00%, respectively. As a result, the data in the response 1016 is selected and the corresponding target subject ID 31130 stored in server C is used for synchronization of target subject IDs between servers A to C. In other words, the target subject IDs 10010 and 20210 identifying the target subject stored in servers A and B are replaced with the target subject ID 10010, and the target subject is synchronously indicated by the target subject ID 10010 across servers A to C.
[0103] FIG. 10C shows a conceptual diagram 1020 illustrating three responses 1022, 1024, 1026 received from three servers (e.g., servers A to C) and a selection process for selecting one of the three subject IDs in yet another embodiment of the present disclosure, where each response includes data identifying a target subject and a target subject ID. In this embodiment, the selection of the target subject ID is based on reference information regarding the latest detection of the target subject. In the responses 1022, 1024, 1026, servers A to C last detected the target subject on January 1, 2020, February 1, 2020, and February 29, 2020, respectively. Thus, the data in response 1026 from server C indicates the latest detection of the target subject. As a result, the data in response 1026 is selected, and the corresponding target subject ID 9042 stored in server C is used to synchronize the target subject IDs between servers A to C. That is, the target subject IDs 2219 and 10010 identifying the target subject stored in servers A and B are replaced with the target subject ID 9042, and the target subject is indicated by the target subject ID 9042 synchronously across servers A to C.
[0104] FIG. 11 shows a flowchart 1100 illustrating a process of comparing received target subject information (data) with information stored in a database of a server according to an embodiment of the present disclosure. In this embodiment, the process is executed by a server A 1101. The process starts in step 1102, where video or image frames are received from a video source input (e.g., one or more cameras in communication with the server) in the form of a video file or a camera stream. In step 1104, a set of face information (hereinafter referred to as "new face information") that identifies a subject is detected from the image frames from the video source. Also, from the set of face information, criteria information of the face information such as a face quality score, a frontal face score, etc. may be calculated. In step 1106, the new face information is then compared with a list of face information stored in a local database 1107 of the server A to find a matching subject group (associated with a subject ID) (specifically, in this example, a similar person group (associated with a group ID)). In the list of face information, there are five sets of face information (five detections of subject 1) stored in database 1107 under group ID "PID_1001", six sets of face information (six detections of subject 2) stored under similar person group ID "PID_1002", and four sets of face information (four detections of subject 3) stored under group ID "PID_10003". In particular, in step 1106, each set of face information identifying a subject stored in the database is compared with the new face information in step 1104. For each comparison, a match score is calculated that represents the degree of similarity between the new face information and the set of face information stored in the database.
[0105] In step 1108, it is determined whether a match is found. In one embodiment of the present disclosure, a match is found when a match score of the set of face information stored in the database 1107 compared with the new face information is greater than a predefined minimum match score, and the match is a corresponding similar person group (and group ID) assigned to such face information. In another embodiment of the present disclosure, when a set of multiple face information stored in the database 1107 has a match score greater than a predefined minimum match score, the match is a target group associated with the set of face information showing the highest match score (hereinafter referred to as a "match group" and "match face information", respectively).
[0106] If a match is found in step 1108, step 1112 is performed. The new face information is assigned to the group ID corresponding to the match group and assigned to the matching face information with the highest match score. The new face information is stored in the database as part of the list of face information associated with the similar person group under the group ID. On the other hand, if no match is found, for example, if none of the set of face information has a match score greater than a predefined minimum match score, the ID standardization process is initiated in step 1110. Details of the ID standardization process are described in the following text and in steps 1214 to 1244 of FIG. 12 and steps 1322 to 1328 of FIG. 13, respectively.
[0107] 12 and 13 are continuations of FIG. 11 and show two flowcharts 1200, 1300 illustrating a process of adaptively updating a target subject identifier stored in a database of a server according to an embodiment of the present disclosure. Referring to the flowchart 1200 in FIG. 12, after step S1108 is executed and if it is determined that no match is found, in step 1214, an ID standardization process is initiated by server A by creating a new similar person group and a new group ID (target subject ID) and assigning it to the new face information extracted in step 1104, and in step S1216, sending new similar person loop information including the new face information and the new group ID to an ID standardization module of server A. In step 1218, sending the similar person group information including the new face information and the new group ID to other servers such as server B to synchronize the new group ID. For simplicity, only the process of one connected server, namely server B, is illustrated. In step 1222, it is determined whether a response is received from server B. If no response is received, step 1220 is executed to wait for a response.
[0108] Referring to Server B, in step 1232, a request is received from Server A, including new face information and similar person group information including a new group ID. Upon receiving the request, Server B determines whether to accept the request to synchronize the new group ID, and returns the determination result (accept or reject the request) to the server. In particular, in step 1234, the new face information is then compared with the list of face information stored in Server B's local database 1107, and in this example, specifically, finds a matching group (associated with the group ID). In step 1236, the list of face information stored in Server B's local database is obtained to determine whether there is a similar person group match in Server B. Steps 1234, 1236 performed in Server B are similar to steps 1106, 1108 performed in Server A, while the new face information is compared with Server B's local database, and a match score is calculated based on the configuration with the set of face information associated with similar person groups in Server B. If no match is found, e.g., none of the sets of face information in Server B's local database has a match score greater than a predefined minimum match score, step 1238 is executed and a response is generated rejecting the request received from Server A, as described in more detail in FIG.
[0109] If a match of the similar person group (with group ID) is found in server B, for example, if the set of face information of the similar person group has a match score greater than a predefined minimum match score, step 1240 is executed. In one embodiment, the step of determining whether a match is found includes a step of determining whether the reference information and history information of the set of face information associated with the similar person group meets a set of criteria, as described above and in steps 908, 910 of FIG. 9. In step 1240, the set of face information with the greatest relevance (the most similar face, e.g., the highest face frontal score) in the set of face information associated with the group ID is selected. In step 1241, a response with the most similar face is sent back to server A to accept the request sent by server A and participate in the synchronization of the group ID. Returning to the processing of server A, in step 1222, if it is determined that a response from server B (and other connected servers) is received, step 1224 is executed.
[0110] In step 1224, when the face information and the set of similar person groups received in the response of server B and other participating servers that accepted the request are received, a selection criterion is used to compare them and select the similar person group that has the greatest relevance to the most preferred set of face information. The above selection process and selection criterion are described above and illustrated in Fig. 10A to C. In step 1226, the selected group ID of the selected similar person group is broadcast to server B and all participating servers. In step 1228, the group ID of the similar person group of server A is updated to the selected group ID. The new face information associated with the updated group ID is then stored in the local database of server A. Similarly, in step 1244, the matching similar person group ID of server B and other participating servers (not shown) is updated to the selected group ID. The face information associated with the updated group ID is then stored in the local database of server B and other participating servers. The ID standardization process can be terminated.
[0111] 13 provides more detail on processing steps 1236 and 1238, particularly when it is determined that no match is found and a response is sent back to Server A rejecting the request received from Server A to synchronize group IDs. This indicates that Server B has determined that no new face information and similar information related to the subject's identification is stored in its local database and ID synchronization is not necessary.
[0112] Returning to the processing of server A, in step 1322 following step 1238, when it is determined that a response has been received from server B (and other connected servers), step 1324 is executed. In step 1324, when the sets of face information and similar person groups received in the responses of all participating servers that accepted the request are received, they are compared using the selection criteria, and the most preferred set of face information and the similar person group with the greatest relevance are selected.
[0113] In step 1328, the group ID of the similar person group of server A is updated to the selected group ID. After that, the new face information associated with the updated group ID is stored in the local database of server A. Since server B did not send a response accepting the group ID synchronization request, the result of the target subject ID is not sent to server B.
[0114] Figure 14 illustrates an example computing device 1400, hereinafter synonymous with computer system 1400. Such a computing device 1400 may be used to perform the methods illustrated in Figures 6A and 6B. The example computing device 1400 may be used to implement the system 700 illustrated in Figure 7. The following description of the computing device 1400 is intended to be illustrative and not limiting.
[0115] As shown in Figure 14, the exemplary computing device 1400 includes a processor 1404 for executing software routines. Although a single processor is shown for clarity, the computing device 1400 may also include a multi-processor system. The processor 1404 is connected to a communications infrastructure 7406 for communicating with other components of the computing device 1400. The communications infrastructure 1406 may include, for example, a communications bus, crossbar, or network.
[0116] The computing device 1400 further includes a primary memory element 1408, such as a random access memory (RAM), and a secondary memory element 1410. The secondary memory element 1410 may include a storage drive 1412, which may be, for example, a hard disk drive, a solid state drive, or a hybrid drive, and / or a removable storage drive 1414, which may include a magnetic tape drive, an optical disk drive, a solid state storage drive (USB flash drive, a flash memory device, a solid state drive, a memory card, etc.). The removable storage drive 1414 reads from and / or writes to the removable storage medium 1418 in a well-known manner. The removable storage medium 1418 may include a magnetic tape, an optical disk, a non-volatile memory storage medium, etc., which is read from and written to by the removable storage drive 1414. As will be appreciated by those skilled in the art, the removable storage medium 1418 may include a computer readable storage medium having computer executable program code instructions and / or data stored thereon.
[0117] In another embodiment, the secondary storage element 1410 may additionally or alternatively include other similar means for allowing computer programs or other instructions to be loaded into the computer device 1400. Such means may include, for example, a removable storage unit 1422 and an interface 1420. Examples of removable storage units 1422 and interfaces 1420 include program cartridges and cartridge interfaces (such as those found in video game console devices), removable storage chips (such as EPROMs or PROMs) and associated sockets, removable solid-state storage drives (such as USB flash drives, flash memory devices, solid-state drives, memory cards, etc.), and other removable storage units 1422 and interfaces 1420 that allow software and data to be transferred from the removable storage unit 1422 to the computer system 1400.
[0118] The computing device 1400 also includes at least one communication interface 1424. The communication interface 1424 allows software and data to be transferred between the computing device 1400 and external devices via the communication path 1424. In various embodiments of the invention, the communication interface 1424 allows data to be transferred between the computing device 1400 and a data communication network, such as a public or private data communication network. The communication interface 1424 may be used to exchange data between different computing devices 1400, where such computing devices 1400 form part of an interconnected computer network. Examples of the communication interface 1424 may include a modem, a network interface (e.g., an Ethernet card), a communication port (serial, parallel, printer, GPIB, IEEE 1394, RJ45, USB, etc.), an antenna with associated circuitry, etc. The communication interface 1424 may be wired or wireless. The software and data transferred via the communication interface 1424 are in the form of signals, which may be electronic, electromagnetic, optical, or other signals receivable by the communication interface 1424. These signals are provided to the communications interface via communications path 1424.
[0119] As shown in FIG. 14, the computing device 1400 further includes a display interface 1402 that performs operations to render images on an associated display 1430, and an audio interface 1432 that performs operations to play audio content via associated speakers 1434.
[0120] The term "computer program product" as used herein refers, in part, to software transported on removable storage medium 1418, removable storage unit 1422, a hard disk attached to storage drive 1412, or a carrier wave over communication path 1426 (wireless link or cable) to communication interface 1424. A computer readable storage medium refers to any non-transitory, non-volatile, tangible storage medium that provides recorded instructions and / or data to computing device 1400 for execution and / or processing. Examples of such storage media include magnetic tapes, CD-ROMs, DVDs, Blu-ray disks, hard disk drives, ROMs or integrated circuits, solid-state storage drives (such as USB flash drives, flash memory devices, solid-state drives, memory cards, etc.), hybrid drives, magneto-optical disks, or computer readable cards such as PCMCIA cards, whether these devices are internal or external to computing device 1400. Examples of transitory or non-tangible computer-readable transmission media that may also be involved in providing software, application programs, instructions and / or data to computing device 1400 include wireless or infrared transmission channels, network connections to other computers or networked devices, and the Internet or intranets, including e-mail transmissions and information stored on websites and the like.
[0121] Computer programs (also referred to as computer program code) are stored in the primary memory element 1408 and / or the secondary memory element 1410. Computer programs may also be received via communications interface 1424. When such computer programs are executed, they can cause the computing device 1400 to perform one or more features of the embodiments described herein. In various embodiments, when the computer programs are executed, they can cause the processor 1404 to perform the features of the above-described embodiments. Thus, such computer programs represent controllers of the computer system 1400.
[0122] The software may be stored in a computer program product and loaded into the computing device 1400 using the removable storage drive 1414, the storage drive 1412, or the interface 1420. The computer program product may be a non-transitory computer readable medium. Alternatively, the computer program product may be downloaded to the computer system 1400 via communication path 1426. The software, when executed by the processor 1404, causes the computing device 1400 to perform the operations necessary to execute the methods illustrated in Figures 6A and 6B.
[0123] It should be understood that the embodiment of Figure 14 is presented merely as an example to illustrate the operation and structure of system 400. Thus, in some embodiments, one or more features of computing device 1400 may be omitted. Also, in some embodiments, one or more features of computing device 1400 may be combined together. Furthermore, in some embodiments, one or more features of computing device 1400 may be split into one or more components.
[0124] It will be appreciated that the elements illustrated in FIG. 14 function to provide means for performing the various functions and operations of the server as described in the above embodiments.
[0125] When computing device 1400 is configured to optimize efficiency of a transport provider, computing system 1400 may have a non-transitory computer readable medium having an application stored thereon that, when executed, causes computing system 1400 to perform steps, including: receiving a first departure time of a vehicle managed by the transport provider at a first location; receiving a second departure time of the vehicle at a second location located after the first location; determining a difference between the first departure time and the second departure time; and updating a current schedule to provide an updated schedule in response to determining the difference, the updated schedule indicating an updated estimated arrival time of the vehicle at a location after the second location.
[0126] It will be understood by those skilled in the art that various changes and / or modifications may be made to the invention as illustrated in the specific embodiments without departing from the spirit or scope of the invention as broadly described, and the present embodiments are therefore considered in all respects to be illustrative and not restrictive.
[0127] The program can be stored and provided to the computer using various types of non-transitory computer readable media. The non-transitory computer readable media includes various types of tangible storage media. Examples of the non-transitory computer readable media include magnetic recording media (e.g., flexible disks, magnetic tapes, hard disk drives), magneto-optical recording media (e.g., magneto-optical disks), CD-ROMs, CD-Rs, CD-R / Ws, and semiconductor memories (e.g., mask ROMs, PROMs (Programmable ROMs), EPROMs (Erasable PROMs), flash ROMs, and RAMs). The program may also be provided to the computer by various types of temporary computer readable media. Examples of the temporary computer readable media include electrical signals, optical signals, and electromagnetic waves. The temporary computer readable media can provide the program to the computer via a wired communication path such as an electric wire and an optical fiber, or via a wireless communication path.
[0128] This application claims priority to Singapore Patent Application No. 10202103210R, filed on March 29, 2021, the disclosure of which is incorporated herein in its entirety.
Claims
1. A server device for adaptively updating a target entity identifier stored in a database, comprising: the target entity identifier is associated with a target entity in a system that includes other server devices configured to transmit requests; The server device includes: receiving the request including target subject information related to the target subject from the other server device, and synchronizing the target subject identifier; comparing the received target subject information with information stored in the database to determine whether to accept the request to synchronize the target subject identifiers; determining whether reference information within the information stored in the database satisfies one or more criteria; the reference information includes at least one of a number of detections of the target subject under the target subject identifier and a time of detection of the target subject; The comparison is based on a determination related to the reference information.
2. sending a response to the other server device accepting the request based on a result of the comparison; The server device of claim 1 , wherein the response includes the target entity identifier and the information stored in the database.
3. determining a similarity between the information stored in the database and the target subject information; The server device according to claim 1 , wherein the comparison is based on the degree of similarity.
4. The server device of claim 2 , further comprising: updating the target entity identifier in the database after sending the response accepting the request.
5. A server device for adaptively updating a target entity identifier stored in a database, comprising: The target entity identifier is associated with a target entity in a system including a plurality of server devices; The server device includes: Receive target subject information; assigning a first target subject identifier to the received target subject information and storing the first target subject identifier in a first database of the server device; Transmitting a request to the plurality of server devices to synchronize the target entity identifiers; the request includes the target subject information associated with the target subject; receiving one or more responses from one or more server devices included in the plurality of server devices; each of the one or more responses is received from one of the one or more server devices indicating that the one of the one or more server devices accepts the request to synchronize the target entity identifiers; each of the one or more responses includes information stored in a second database on the one of the one or more server devices and a second target entity identifier assigned to the stored information; comparing each reference to the information contained in the one or more responses received from the one or more server devices; The reference information includes at least one of a number of detections of the target subject under the target subject identifier and a time of detection of the target subject.
6. 6. The server device according to claim 5, further comprising: a target entity identifier selected from one of the one or more second target entity identifiers associated with the one or more responses or the first target entity identifier based on a result of the comparison.
7. 1. A method performed by a server device for adaptively updating target entity identifiers stored in a database, comprising: the target entity identifier is associated with a target entity in a system that includes other server devices configured to transmit requests; The method comprises: receiving the request from the other server device, the request including target subject information related to the target subject, and synchronizing the target subject identifier; comparing the received target subject information with information stored in the database to determine whether to accept the request to synchronize the target subject identifiers; determining whether reference information within the information stored in the database satisfies one or more criteria; the reference information includes at least one of a number of detections of the target subject under the target subject identifier and a time of detection of the target subject; The method, wherein the comparison is based on a determination related to the reference information.
Citation Information
Patent Citations
Method and system for synchronizing identity information
JP2007509421A
Data registration device, data registration method and data registration program
JP2019164660A
Data management device, data management method, program, and data management system
JP2020181469A
Image management device and program
JP2021033664A