Authentication device, authentication method, and program
The authentication device addresses slow many-to-many facial recognition by approximating feature vectors to ternary values, enhancing computational efficiency and reducing memory needs, thus speeding up authentication processes.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- SOFTBANK CORPORATION
- Filing Date
- 2025-12-08
- Publication Date
- 2026-07-23
AI Technical Summary
Facial recognition systems face significant computational complexity and slow response times when performing high-speed many-to-many similarity calculations between numerous feature vectors.
An authentication device that approximates a first feature vector to a second ternary vector using elements {-1, 0, +1}, allowing for quick similarity calculations between the second feature vector and multiple fourth feature vectors, stored in a memory structure with separate areas for user identification and feature vectors, facilitating efficient authentication.
The authentication device significantly reduces computational cost and time by approximating feature vectors, enabling faster authentication and reducing memory storage requirements by about 99%, while maintaining high accuracy.
Smart Images

Figure JP2025042751_23072026_PF_FP_ABST
Abstract
Description
Authentication Device, Authentication Method, and Program
[0001] The present disclosure relates to an authentication device, an authentication method, and a program.
[0002] Conventionally, by inputting an image of an object into a machine learning model, a high-dimensional feature vector is output, and face authentication is performed by calculating the similarity between the feature vector and the feature vector of the image for collating with the object. For example, Patent Document 1 discloses an image search device capable of quickly extracting a desired image from a large volume of image groups using multi-dimensional feature data extracted from an image.
[0003] Japanese Patent Application Laid-Open No. 2007-172384
[0004] An authentication device according to one aspect of the present disclosure includes an acquisition unit that acquires an image of an object and detects a specific part of the object, a generation unit that generates a first feature vector based on the image of the specific part of the object detected by the acquisition unit, an approximation unit that approximates the first feature vector generated by the generation unit to a second feature vector composed of a ternary vector, and a calculation unit that calculates the similarity between the second feature vector approximated by the approximation unit and a plurality of fourth feature vectors obtained by approximating a plurality of third feature vectors corresponding to images of the specific parts of the other plurality of the objects for collating with the specific part of the object by the approximation unit, and an authentication unit that performs authentication of the image of the specific part of the object based on the similarity calculated by the calculation unit.
[0005] An authentication method according to one embodiment of the present disclosure includes: an acquisition step of acquiring an image of an object and detecting a specific part of the object; a generation step of generating a first feature vector based on the image of the specific part of the object detected in the acquisition step; an approximation step of approximating the first feature vector generated in the generation step to a second feature vector consisting of a trivalued vector; a calculation step of calculating the similarity between the second feature vector approximated in the approximation step and a plurality of fourth feature vectors obtained by approximating a plurality of third feature vectors corresponding to images of the specific part of other objects for comparison with the specific part of the object; and an authentication step of authenticating the image of the specific part of the object based on the similarity calculated in the calculation step.
[0006] This is a schematic diagram showing the configuration of the authentication system according to Embodiment 1 of this disclosure. This is a block diagram showing the configuration of the communication terminal according to Embodiment 1. This is a flowchart showing an example of the authentication process flow by the authentication device according to Embodiment 1. This is a flowchart showing an example of the approximation process flow in Figure 3. This is a flowchart showing an example of the calculation process flow in Figure 3. This is a schematic diagram showing the configuration of the authentication system according to Embodiment 2. This is a block diagram showing the configuration of the authentication device according to Embodiment 2. This is a block diagram showing the configuration of the access control device according to Embodiment 2. This is a flowchart showing an example of the authentication process flow by the authentication device according to Embodiment 2.
[0007] Traditionally, in facial recognition, when comparing the similarity of one-to-one or one-to-many facial images, it was possible to calculate the similarity quickly using a computer by employing methods such as cosine similarity.
[0008] In recent years, facial recognition applications have required high-speed comparison of many-to-many similarity. However, calculating the similarity between numerous feature vectors one by one results in enormous computational complexity and slow response times. This disclosure aims to provide a solution for high-speed many-to-many authentication.
[0009] The authentication device according to this disclosure includes: an acquisition unit that acquires an image of an object and detects a specific part of the object; a generation unit that generates a first feature vector based on the image of the specific part of the object detected by the acquisition unit; an approximation unit that approximates the first feature vector generated by the generation unit to a second feature vector consisting of a trivalued vector; a calculation unit that calculates the similarity between the second feature vector approximated by the approximation unit and a plurality of fourth feature vectors obtained by approximating a plurality of third feature vectors corresponding to images of other plurality of specific parts of the object for comparison with the specific part of the object using the approximation unit; and an authentication unit that authenticates the image of the specific part of the object based on the similarity calculated by the calculation unit.
[0010] According to the above configuration, the approximation unit approximates the first feature vector to a second feature vector consisting of a ternary vector. Then, the calculation unit calculates the similarity between the second feature vector and the fourth feature vector corresponding to the second feature vector, and the authentication unit authenticates the image of the target object based on the similarity. As a result, the calculation unit can calculate the similarity faster and more efficiently than if the approximation unit were not used, and the authentication unit can quickly authenticate the target object.
[0011] The calculation speed of the similarity between the second feature vector, which consists of the three-valued vector described above, and the fourth feature vector is determined by the access speed to the memory where multiple fourth feature vectors are stored. For this reason, it is important to use a memory structure with an easy-to-use cache.
[0012] As such a memory structure, it is preferable to use a memory structure having a first memory area that stores user identification information and a plurality of third feature vectors, and a second memory area that stores a plurality of fourth feature vectors. The calculation unit calculates the similarity between the second feature vector approximated by the approximation unit and the plurality of fourth feature vectors stored in the second memory area, in the order of the list in the second memory area. As a result, the calculation unit can calculate the similarity as quickly as possible by making full use of the memory structure of the storage unit and performing look-ahead reading.
[0013] [Embodiment 1] <Outline Configuration of Authentication System 1> Hereinafter, the authentication system 1 according to Embodiment 1 will be described with reference to Figure 1. Figure 1 is a block diagram showing the overall configuration of the authentication system 1. As shown in Figure 1, the authentication system 1 includes a communication terminal 100 and a server device 200.
[0014] The communication terminal 100 and the server device 200 are connected via a network N such as the Internet. The communication terminal 100 has a function to perform facial recognition of the user M using the communication terminal 100, as indicated by arrow R.
[0015] Network N may be other than the Internet, such as a LAN (Local Area Network), mobile communication systems such as 4G, 5G, and 6G, LTE (Long Term Evolution), or Wi-Fi (registered trademark).
[0016] [Configuration of Communication Terminal 100] Next, the configuration of the communication terminal 100 will be described with reference to Figure 2. Figure 2 is a block diagram showing the configuration of the communication terminal 100. As shown in Figure 2, it comprises an authentication device 10, a camera 20, a communication unit 30, an operation unit 40, and a display unit 50. The communication terminal 100 is a smartphone, tablet terminal, PC, etc., used by user M.
[0017] (Configuration of Authentication Device 10) Next, the configuration of the authentication device 10 will be explained in detail with reference to Figure 2. As shown in Figure 2, the authentication device 10 includes an acquisition unit 11, a generation unit 12, an approximation unit 13, a calculation unit 14, an authentication unit 15, a storage unit 16, and an output control unit 17.
[0018] The acquisition unit 11 acquires images of people captured by the camera 20 and detects human faces. A human face is an example of a specific part of an object. The images may be videos or still images.
[0019] The generation unit 12 analyzes the image of a person's face acquired by the acquisition unit 11 using a convolutional neural network (CNN) or the like to extract the features of the person's face and generate a first feature vector.
[0020] The convolutional neural network described above is assumed to be trained to take an image of a human face as input and output a first feature vector. The first feature vector consists of, for example, a 16-dimensional vector. Note that the number of dimensions of the first feature vector can be changed as appropriate, and may be, for example, 128 dimensions.
[0021] The facial features of a person that a convolutional neural network learns include, for example, the shape of the person's face, the distance between the eyes, the positional relationship between the eyes and nose, the positional relationship between the eyes and mouth, the position of the nose and mouth, the position of the eyes, nose, and mouth on the person's face, the position of fat, the thickness of the fat, and the shape of facial wrinkles. In addition, the generation unit 12 may analyze the acquired video or still image to determine whether the person's gender or age is a facial feature.
[0022] The approximation unit 13 approximates the first feature vector generated by the generation unit to a second feature vector consisting of a ternary vector with each element being one of {-1, 0, +1}. The detailed approximation method of the first feature vector by the approximation unit 13 will be described later. Also, for the sake of explanation, approximating to a ternary vector with each element being one of {-1, 0, +1} will be referred to as a 2-bit approximation below.
[0023] The calculation unit 14 calculates the similarity between the second feature vector approximated by the approximation unit 13 and a plurality of fourth feature vectors corresponding to the second feature vector. The plurality of fourth feature vectors are stored in the storage unit 16 and are obtained by approximating the third feature vector with two bits using the approximation unit 13, similar to the first feature vector. It is preferable that the approximation unit 13 estimates the parameters of the third feature vector before approximating the third feature vector with two bits.
[0024] The third feature vector consists of a 16-dimensional vector corresponding to the first feature vector and is extracted from the facial features of several other people in order to match it with the facial image of user M. The third feature vector is stored in the server device 200. The third feature vector may also include those generated by the generation unit 12 based on images captured by the camera 20.
[0025] The calculation unit 14 calculates the similarity between the second feature vector and the multiple fourth feature vectors, for example, by using cosine similarity or Euclidean distance.
[0026] The authentication unit 15 authenticates a human face image based on the similarity calculated by the calculation unit 14. Specifically, the authentication unit 15 authenticates a human face image by determining whether the similarity is above a predetermined threshold.
[0027] The memory unit 16 has a memory structure that includes a first memory area for storing user M's identification information and a plurality of third feature vectors, and a second memory area for storing a plurality of fourth feature vectors. The calculation unit 14 calculates the similarity between the second feature vector approximated by the approximation unit 13 and the plurality of fourth feature vectors stored in the second memory area, which is different from the first memory area, in the order in which they are stored in the second memory area. As a result, the calculation unit 14 can calculate the similarity as quickly as possible by making full use of the memory structure of the memory unit 16 and performing look-ahead reading.
[0028] The output control unit 17 outputs the authentication result from the authentication unit 15 to the display unit 50. The display unit 50 displays information based on the authentication result from the authentication unit 15.
[0029] (Configuration of Camera 20) Camera 20 is built into the communication terminal 100. Camera 20 has lenses on both the side of the communication terminal 100 that is on the same side as the operation unit 40 and on the side opposite to the operation unit 40. Camera 20 is configured to capture both video and still images.
[0030] The camera 20 may also have a depth sensor. The acquisition unit 11 may acquire an image from the camera 20 that includes depth information detected by the depth sensor of the camera 20.
[0031] (Configuration of the communication unit 30) The communication unit 30 is connected to the network N by wire or wireless connection and communicates with the server device 200 and other communication terminals via the network N. The communication unit 30 is composed of a NIC (Network Interface Card), an antenna, etc.
[0032] The communication unit 30 receives, for example, multiple third feature vectors corresponding to images of multiple people for matching with user M from the server device 200, and stores them in the storage unit 16.
[0033] The operation unit 40, for example, consists of a touch panel and accepts various operations from user M. The operation unit 40 may also have buttons for inputting characters, numbers, etc.
[0034] The display unit 50 is a display device for displaying various types of information, such as a liquid crystal display (LCD) or an organic electroluminescent display (OLED). The display unit 50 displays information related to the authentication result from the authentication device 10.
[0035] [Server device 200] The server device 200 shown in Figure 1 stores training data relating to images of multiple other people's faces for matching with the face of user M, which is the target object. For example, the server device 200 stores multiple third feature vectors generated from the feature quantities of multiple people's faces.
[0036] The communication terminal 100 obtains multiple third feature vectors from the server device 200 via the communication unit 30 and stores them in the storage unit 16 of the authentication device 10. Then, the approximation unit 13 generates multiple fourth feature vectors by approximating the obtained multiple third feature vectors as described later.
[0037] The authentication device 10 stores multiple fourth feature vectors in the storage unit 16. The user M may update the data related to the fourth feature vectors by arbitrarily setting hyperparameters.
[0038] Here, when the dimensionality of the fourth feature vector is d and the number of people's faces stored in the storage unit 16 is m [pieces], it is preferable that the following formula (1) be satisfied.
[0039] In Formula (1), m is preferably 10,000 [pieces] or more. Also, the probability distribution of the m [pieces] of fourth feature vectors is preferably a normal distribution (Gaussian distribution). In this case, for example, when d = 128 and m = 65536, it was confirmed that the probability of being erroneously authenticated by the authentication unit 15 can be suppressed to about 10 [%].
[0040] <Authentication process by authentication device 10> Next, the flow of the authentication process by the authentication device 10 will be described with reference to FIGS. 3 to 5. FIG. 3 is a flowchart showing an example of the flow of the authentication process by the authentication device 10.
[0041] In the flowchart shown in FIG. 3, the acquisition unit 11 of the authentication device 10 acquires an image of the user M captured by the camera 20 of the communication terminal 100 and detects the face of the user M (step S1: acquisition step).
[0042] After step S1, the generation unit 12 generates a first feature vector based on the image of the face of the user M detected by the acquisition unit 11 (step S2: generation step). In step S2, for example, the generation unit 12 inputs the image of the face of the user M into a convolutional neural network or the like to generate a first feature vector composed of a 16-dimensional vector shown in the following formula (2).
[0043]
[0044] Next, the approximation unit 13 executes an approximation process of approximating the first feature vector to a second feature vector composed of a ternary vector having either {−1, 0, +1} for each element (step S3: approximation step).
[0045] Here, the approximation process of step S3 will be described with reference to the flowchart of FIG. 4. FIG. 4 is a flowchart showing an example of the flow of the approximation process of step S3 in FIG. 3.
[0046] In the flowchart shown in FIG. 4, the approximation unit 13 rearranges, in ascending order, the absolute values of the elements of the first feature vector as shown in the following formula (3) (step S31).
[0047]
[0048] Subsequently, the approximation unit 13 sets, in formula (3), each of the elements from the 6th element with the smallest absolute value to "0" (step S32). Specifically, the approximation unit 13 sets the 6th element "28" from the smaller absolute value as the reference value. Then, the approximation unit 13 sets all of the elements {0, 2, 4, 6, 20, 28} that are less than or equal to the reference value "28" to "0".
[0049] Next, the approximation unit 13 sets the remaining elements of the first feature vector to "-1" or "+1" according to the sign (step S33). Specifically, the approximation unit 13 sets the elements with an absolute value greater than the reference value and positive to "+1", and sets the elements with an absolute value greater than the reference value and negative to "-1".
[0050] The reference value is set so that the number of elements of the second feature vector excluding "0" is a predetermined number, in this case 10. This enables the simplification of the calculation of the similarity described later.
[0051] Then, the approximation unit 13 approximately converts the first feature vector into a second feature vector consisting of a three-value vector having either "-1", "0", or "+1" for each element as shown in the following formula (4) (step S34).
[0052]
[0053] The elements of the second feature vector are ternarized into 6 "0"s and a total of 10 "-1"s or "1"s. In this way, by setting 6 of the elements of the 16-dimensional second feature vector to "0" and the other elements to "-1" or "1", the magnitude of the second feature vector can be set to a predetermined value, that is, the square root of 10.
[0054] After step S34, the approximation unit 13 approximates the plurality of third feature vectors stored in the first memory area of the memory unit 16 to a fourth feature vector consisting of a ternary vector having {-1, 0, +1} as each element, in the same manner as in steps S31 to S34.
[0055] In this case, the product of the magnitude of the second feature vector and the magnitude of the fourth feature vector is always "10". This makes it possible to simplify the calculation of the Euclidean distance or cosine similarity between the second and fourth feature vectors.
[0056] Furthermore, the server device 200 may pre-store data relating to multiple fourth feature vectors that approximate multiple third feature vectors in the server device 200 or the storage unit 16.
[0057] Returning to Figure 3, after step S3, the calculation unit 14 performs a calculation process to calculate the similarity between the second feature vector approximated by the approximation unit 13 and the fourth feature vector stored in a second memory area different from the first memory area of the memory unit 16 (step S4: calculation step).
[0058] Here, the calculation process in step S4 will be explained with reference to the flowchart in Figure 5. Figure 5 is a flowchart showing an example of the calculation process in Figure 3. In the flowchart shown in Figure 5, the calculation unit 14 separates the second feature vector into a first bit sequence and a second bit sequence (step S41).
[0059] The first bit sequence consists of a sequence of numbers obtained by extracting only positive values, i.e., "+1", from each element of the second feature vector, and is represented by the following equation (5).
[0060] The second bit sequence consists of a sequence of numbers obtained by extracting only negative values, i.e., "-1", from each element of the second feature vector, and is represented by the following equation (6).
[0061] After step S41, the calculation unit 14 separates the fourth feature vector into a third bit sequence and a fourth bit sequence (step S42). Now, consider the case where the third feature vector is shown in equation (7) below.
[0062] In this case, the fourth feature vector is approximated as shown in equation (8) below.
[0063] The third bit sequence consists of a sequence of numbers obtained by extracting only positive values, i.e., "+1", from each element of the fourth feature vector, and is represented by the following equation (9).
[0064] The fourth bit sequence consists of a sequence of numbers obtained by extracting only negative values, i.e., "-1", from each element of the fourth feature vector, and is represented by the following equation (10).
[0065] After step S42, the calculation unit 14 calculates the fifth bit sequence shown in the following equation (11) by performing an XOR operation on the first bit sequence and the third bit sequence (step S43). This makes it possible to identify different positions of each value in the first bit sequence and the third bit sequence.
[0066]
[0067] After step S43, the calculation unit 14 calculates the sixth bit string shown in the following equation (12) by performing an XOR operation on the second bit string and the fourth bit string (step S44). This makes it possible to identify different positions of each value in the second bit string and the fourth bit string.
[0068]
[0069] After step S44, the calculation unit 14 performs an OR operation and an AND operation on the fifth bit sequence and the sixth bit sequence (step S45). Specifically, when the calculation unit 14 performs the OR operation on the fifth bit sequence and the sixth bit sequence as described above, it obtains a sequence of numbers shown in the following equation (13).
[0070]
[0071] The OR operation result above allows us to identify all locations where the values of each element in the second feature vector and each element in the fourth feature vector differ. Each bit has a sum of either +1 or +4.
[0072] Furthermore, when the calculation unit 14 performs an AND operation between the fifth bit sequence and the sixth bit sequence described above, it obtains a sequence of numbers shown in the following equation (14). Each bit of the AND operation result indicates that the sum is +4.
[0073]
[0074] After step S45, the calculation unit 14 uses the Euclidean distance between the second feature vector and the fourth feature vector to calculate the similarity Sim between the second feature vector and the fourth feature vector based on the following equation (15) (step S46).
[0075]
[0076] The calculation unit 14 can quickly calculate the Euclidean distance by using equation (4) and equations (5) to (14) calculated in steps S41 to S45. In this case, the square of the Euclidean distance is 10 + 2 * 3 = 16.
[0077] Therefore, the similarity score Sim = 1 - 16 / 20 = 0.2. In this way, the calculation unit 14 can efficiently and quickly calculate the similarity score Sim.
[0078] In contrast, when the similarity between the first feature vector and the third feature vector is calculated using a standard method, the similarity is 0.213. Therefore, it can be seen that the accuracy of the similarity Sim between the second feature vector and the fourth feature vector, calculated by the approximation process S3 and calculation process S4 described above, is relatively good.
[0079] Furthermore, the similarity between the second feature vector and the fourth feature vector can also be calculated by the calculation unit 14 using the cosine similarity shown in the following formula (16).
[0080]
[0081] Even when calculating the similarity using the above-described formula (16) with the calculation unit 14, the approximation unit 13 approximates the second and fourth feature vectors to a 2-bit ternary vector consisting of either {-1, 0, or +1}, so the similarity can be calculated quickly by combining XOR, OR, and AND operations.
[0082] After step S46 in Figure 5, the process returns to Figure 3, and the authentication unit 15 authenticates the user M's facial image by determining whether the similarity Sim calculated in step S4 is equal to or greater than a threshold (step S5: authentication step).
[0083] If the similarity Sim is equal to or greater than the threshold (step S5: YES), the authentication unit 15 determines that authentication is successful, and the output control unit 17 displays an image and message indicating that authentication was successful on the display unit 50.
[0084] On the other hand, if the similarity score Sim is less than the threshold (step S5: NO), the authentication unit 15 determines that authentication has failed, and the output control unit 17 displays an image and message indicating that authentication has failed on the display unit 50. In this way, the authentication process by the authentication device 10 shown in Figure 3 is completed.
[0085] According to the authentication device 10 in Embodiment 1 described above, the approximation unit 13 approximates the first feature vector with a second feature vector consisting of a ternary vector having {-1, 0, +1} as each element using 2 bits. Then, the calculation unit 14 calculates the similarity Sim between the second feature vector and a plurality of fourth feature vectors corresponding to the second feature vector, and the authentication unit 15 authenticates the image of the target object.
[0086] As a result, the calculation unit 14 can efficiently and quickly calculate the similarity, and the authentication unit 15 can authenticate the object about three times faster than when approximation is not performed by the approximation unit 13.
[0087] Furthermore, since the multiple fourth feature vectors consist of ternary vectors with each element being one of {-1, 0, +1}, they can be stored in the memory unit 16 as bit strings. For this reason, the capacity of the memory unit 16 that stores the fourth feature vectors can be reduced to about 1% of the amount required when approximation by the approximation unit 13 is not performed. In other words, compared to the case where the third feature vector is stored, the capacity can be reduced by about 99% when the fourth feature vector is stored.
[0088] This allows, for example, the storage unit 16 to store a fourth feature vector corresponding to 100 million images of human faces, thereby reducing the computational cost of similarity calculation performed by the calculation unit 14. Furthermore, the authentication method using the authentication device 10 described above can also be applied to authentication using feature vectors of dimensions other than 16.
[0089] [Embodiment 2] <Outline Configuration of Authentication System 1A> Next, the authentication system 1A according to Embodiment 2 will be described with reference to Figures 6 to 9. For the sake of convenience of explanation, components having the same function as those described in Embodiment 1 will be denoted by the same reference numerals, and their descriptions will not be repeated.
[0090] Figure 6 is a schematic diagram showing the configuration of the authentication system 1A. As shown in Figure 6, the authentication system 1A comprises an authentication device 10A, cameras 20A and 20B, an access control device 100A, a server device 200A, and a gate G. The authentication system 1A is installed, for example, in a building such as a company and used to manage the entry and exit of company employees. Note that the gate G is optional. The authentication device 10A may also be used at an airport boarding gate to authenticate passengers.
[0091] The authentication device 10A, cameras 20A and 20B, access control device 100A, and server device 200A are connected via network N. Furthermore, the access control device 100A and gate G are connected by wired or wireless means.
[0092] The access control device 100A may also have an authentication device 10A built into it. Alternatively, the authentication device 10A and the server device 200A may be configured as a single information processing device.
[0093] [Configuration of Authentication Device 10A] Next, the configuration of the authentication device 10A will be explained with reference to Figures 6 and 7. As shown in Figure 6, the authentication device 10A is a device for authenticating the faces of multiple people M1, M2, and M3 passing through a gate G installed at the entrance of a company or the like.
[0094] Figure 7 is a block diagram showing the configuration of the authentication device 10A. As shown in Figure 7, the authentication device 10A includes an acquisition unit 11, a generation unit 12, an approximation unit 13, a calculation unit 14, an authentication unit 15, a storage unit 16, and a communication unit 18.
[0095] The acquisition unit 11 acquires images of multiple people M1, M2, and M3 captured by cameras 20A and 20B, and detects the faces of each of the multiple people M1, M2, and M3. The faces of people M1, M2, and M3 are examples of specific parts of the target object. The images may be videos or still images.
[0096] The generation unit 12 analyzes the facial images of multiple people M1, M2, and M3 acquired by the acquisition unit 11, extracts the facial features of each person M1, M2, and M3, and generates multiple first feature vectors consisting of, for example, 16-dimensional vectors.
[0097] The approximation unit 13 approximates the first feature vector generated by the generation unit 12 with a plurality of second feature vectors, each consisting of a ternary vector having {-1, 0, +1} as one of its elements.
[0098] The calculation unit 14 calculates the similarity between a plurality of second feature vectors approximated by the approximation unit 13 and a plurality of fourth feature vectors corresponding to each second feature vector. The fourth feature vectors are obtained by approximating the third feature vectors stored in the server device 200 using the approximation unit 13 in the same way as the first feature vectors.
[0099] The authentication unit 15 authenticates the image of a human face based on the similarity calculated by the calculation unit 14. The communication unit 18 opens the gate G by outputting a control signal based on the authentication result from the authentication unit 15.
[0100] The memory unit 16 has a first memory area in which a plurality of third feature vectors and identification information of an employee who is a user of the authentication device 10A are stored, and a second memory area in which a plurality of fourth feature vectors are stored.
[0101] (Configuration of cameras 20A and 20B) Cameras 20A and 20B can be installed near gate G, for example, above gate G. Camera 20A captures an image of the face of a person attempting to enter through gate G. Camera 20B captures an image of the face of a person attempting to exit through gate G. The placement locations and number of cameras 20A and 20B can be changed as appropriate.
[0102] Cameras 20A and 20B may be built into the authentication device 10A. Cameras 20A and 20B may also have zoom lenses. The acquisition unit 11 may acquire images from cameras 20A and 20B that have been magnified by the zoom lenses of the cameras 20A and 20B. This makes it possible to recognize the faces of people who are located far from gate G.
[0103] (Configuration of Access Control Device 100A) Figure 8 is a block diagram showing the configuration of the access control device 100A. As shown in Figure 8, the access control device 100A has a CPU (Central Processing Unit) 61, a ROM (Read Only Memory) 62, a RAM (Random Access Memory) 63, a communication unit 64, an input unit 65, and an output unit 66, which are connected by an internal bus.
[0104] The CPU 61 controls the overall operation of the access control device 100A. The ROM 62 stores programs and other data for the CPU 61 to control various operations. The RAM 63 is used as a storage area for temporarily recording data and signals used by the CPU 61 when executing the above programs, or as a work area for data processing. The CPU 61 controls the opening and closing operations of the gate G, etc., based on the programs read from the ROM 62.
[0105] The communication unit 64 communicates with the authentication device 10A via the network N. The communication unit 64 receives, for example, information regarding the results of the authentication process by the authentication device 10A. The input unit 65 is an input interface for receiving user input operations. The input unit 65 has a touch panel and buttons, etc. The output unit 66 outputs a signal to open and close the gate G based on control by the CPU 61.
[0106] [Server Device 200A] Server device 200A stores the third feature quantities of the faces of employees of a company, etc., which are the objects of authentication by authentication device 10A, associated with ID information, which is identification information that identifies each employee. Authentication device 10A obtains the ID information and multiple third feature quantities of each employee from server device 200A and stores them in the first memory area. Alternatively, multiple templates may be created that combine each employee's ID information, age, gender, and other information with the third feature quantities, and multiple templates may be stored in server device 200A.
[0107] The authentication device 10A obtains multiple third feature vectors from the server device 200A via the network N, and generates multiple fourth feature vectors by approximating the multiple third feature vectors with 2 bits using the approximation unit 13. The authentication device 10A stores the multiple fourth feature vectors in the second storage area of the storage unit 16.
[0108] <Authentication process by authentication device 10A> Next, the flow of the authentication process by authentication device 10A will be explained with reference to Figure 9. Figure 9 is a flowchart showing an example of the flow of the authentication process by authentication device 10A.
[0109] In the flowchart shown in Figure 9, the acquisition unit 11 of the authentication device 10A acquires images of multiple people M1, M2, and M3 captured by the camera 20A and detects each of the faces of the multiple people M1, M2, and M3 (step S21: acquisition step).
[0110] In step S21, camera 20A identifies and tracks the positions of multiple people's faces. Authentication device 10A performs facial recognition on the person closest to camera 20A, for example. In the example shown in Figure 6, authentication device 10A performs facial recognition on person M1.
[0111] After step S21, the generation unit 12 generates a first feature vector based on the image of person M1's face (step S22: generation step). In step S22, the generation unit 12 inputs the image of person M1's face into a convolutional neural network or the like to generate a first feature vector consisting of, for example, a 16-dimensional vector.
[0112] Next, the approximation unit 13 approximates the first feature vector in the same manner as in step S3 and generates a second feature vector consisting of a ternary vector with each element being one of {-1, 0, +1} (step S23: approximation step).
[0113] After step S23, the calculation unit 14 calculates the similarity between the second feature vector and the fourth feature vector approximated by the approximation unit 13 in the same manner as in step S4 (step S24: calculation step).
[0114] After step S24, the authentication unit 15 authenticates the image of person M1 by determining whether the similarity Sim calculated in step S24 is equal to or greater than a threshold (step S25: authentication step).
[0115] If the similarity Sim is greater than or equal to a threshold (step S25: YES), the authentication unit 15 determines that the authentication of person M1 has been successful and opens the gate G via the communication unit 18 (step S26). The authentication device 10A transmits the ID information of person M and information indicating that they have entered the room to the communication unit 64 of the access control device 100A via the communication unit 18 and stores it in the RAM 63.
[0116] On the other hand, if the similarity Sim is less than the threshold (step S25: NO), the authentication unit 15 determines that the authentication of person M1 has failed and does not open the gate G via the communication unit 18 (step S27). In this way, the authentication process by the authentication device 10 shown in Figure 9 is terminated.
[0117] The authentication device 10A in Embodiment 2 described above can quickly authenticate the face of person M1, similar to the authentication device 10 in Embodiment 1. Specifically, the approximation unit 13 approximates the first feature vector with a second feature vector consisting of a ternary vector having {-1, 0, +1} as each element by 2 bits, thereby enabling the calculation unit 14 to quickly calculate the similarity and allowing the authentication unit 15 to quickly perform authentication.
[0118] Furthermore, the authentication system 1A equipped with the authentication device 10A makes it possible to quickly and contactlessly authenticate multiple people, and to manage the entry and exit of company employees and others with a high level of security.
[0119] [Modification] In the authentication system 1A of the above-described embodiment 2, an authentication device 10A is used to authenticate the faces of multiple people M1, M2, and M3 passing through a gate G installed inside a building, but the system is not limited to this. For example, the authentication device 10A may be used in a vehicle license plate recognition system introduced in a parking lot or on a highway.
[0120] In this case, the authentication device 10A acquires an image of the vehicle using the acquisition unit 11, detects the vehicle's license plate, and generates a first feature vector using a convolutional neural network or the like. The convolutional neural network is trained to take the image of the vehicle's license plate as input and output a first feature vector.
[0121] Subsequently, the authentication device 10A approximates the first feature vector to the second feature vector using the approximation unit 13, and calculates the similarity between the second feature vector and the fourth feature vector using the calculation unit 14, thereby enabling rapid authentication of whether or not the license plate is registered with the server device 200A. Furthermore, by acquiring an image of the license plate and performing authentication, the authentication device 10A can also quickly obtain information about the owner of the authenticated vehicle from the storage unit 16 or the server device 200A.
[0122] [Other Embodiments] In the above-described embodiment 2, the authentication device 10A performs authentication using an image of a person's face as the object, but it is not limited to this. For example, the authentication device 10A may perform authentication using an image of a person's body as the object. In this case, the generation unit 12 generates a first feature vector based on the image of the person's body. Alternatively, the authentication device 10A may perform authentication using the movement of a person's body as the object. In this case, the generation unit 12 generates a first feature vector based on a video showing the movement of a person's body.
[0123] In the authentication device 10 of Embodiment 1 described above, a plurality of third feature vectors corresponding to the faces of multiple other people for matching with the face image of user M are obtained from the server device 200, but the device is not limited to this. For example, data relating to the plurality of third feature vectors may be obtained via a storage medium such as USB (Universal Serial Bus).
[0124] <Example of implementation using software> The functions of the authentication devices 10, 10A (hereinafter referred to as "devices") that constitute the authentication systems 1, 1A are programs that cause a computer to function as the device, and each control block of the device (particularly the acquisition unit 11, the generation unit 12, the approximation unit 13, the calculation unit 14, and the authentication unit 15) can be implemented by programs that cause a computer to function.
[0125] In this case, the device includes a computer having at least one control device (e.g., a processor) and at least one storage device (e.g., memory) as hardware for executing the program. By executing the program using this control device and storage device, the functions described in each of the embodiments are realized.
[0126] The above program may be recorded on one or more computer-readable recording media, not temporary ones. These recording media may or may not be provided by the above device. In the latter case, the program may be supplied to the above device via any wired or wireless transmission medium.
[0127] Furthermore, some or all of the functions of each of the above control blocks can also be realized by logic circuits. For example, an integrated circuit in which logic circuits functioning as each of the above control blocks are formed is also included in the scope of the present invention. In addition, it is also possible to realize the functions of each of the above control blocks by, for example, a quantum computer.
[0128] Furthermore, each process described in the above embodiments may be performed by AI (Artificial Intelligence). In this case, the AI may operate on the control device described above, or it may operate on another device (for example, an edge computer or a cloud server).
[0129] <Summary> This disclosure describes at least the following aspects. An authentication device according to aspect 1 of this disclosure includes: an acquisition unit that acquires an image of an object and detects a specific part of the object; a generation unit that generates a first feature vector based on the image of the specific part of the object detected by the acquisition unit; an approximation unit that approximates the first feature vector generated by the generation unit to a second feature vector consisting of a trivalued vector; a calculation unit that calculates the similarity between the second feature vector approximated by the approximation unit and a plurality of fourth feature vectors obtained by approximating a plurality of third feature vectors corresponding to images of other plurality of objects for comparison with the specific part of the object using the approximation unit; and an authentication unit that authenticates the image of the specific part of the object based on the similarity calculated by the calculation unit.
[0130] According to the above configuration, the authentication device according to Embodiment 1 of this disclosure approximates the first feature vector to a second feature vector consisting of a ternary vector using an approximation unit, then calculates the similarity between the second feature vector and the fourth feature vector corresponding to the second feature vector using a calculation unit, and then performs authentication of an image of a specific part of the object using an authentication unit based on the similarity. As a result, the similarity can be calculated by the calculation unit at a faster speed than when approximation is not performed by the approximation unit, and the authentication unit can perform authentication of the object more quickly.
[0131] In the authentication device according to Embodiment 2 of this disclosure, in Embodiment 1 described above, the second feature vector is the ternary vector having {-1, 0, +1} as each element.
[0132] With the above configuration, the approximation unit approximates the first feature vector with a second feature vector consisting of a ternary vector having {-1, 0, +1} as each element, thereby improving the efficiency of the similarity calculation by the calculation unit.
[0133] In the authentication device according to aspect 3 of the present disclosure, in aspect 1 or 2 described above, the approximation unit sets the elements in the sequence obtained by sorting the absolute values of each element of the first feature vector in ascending order as reference values, with elements whose absolute value is less than or equal to the reference value set to 0, elements whose absolute value is greater than the reference value and is positive set to +1, and elements whose absolute value is greater than the reference value and is negative set to -1, and the reference value is set such that the number of elements of the second feature vector, excluding 0, is a predetermined number.
[0134] According to the above configuration, the approximation unit approximates the first feature vector with a second feature vector in which the number of elements that are either +1 or -1 is set to a predetermined number. This simplifies the calculation of similarity by the calculation unit, enabling the authentication unit to authenticate the target object at high speed.
[0135] In the authentication device according to aspect 4 of the present disclosure, in aspects 1 to 3 described above, the calculation unit calculates the similarity using the cosine similarity between the second feature vector and the fourth feature vector.
[0136] With the above configuration, by using the second and fourth feature vectors approximated as ternary vectors by the approximation unit, the calculation of cosine similarity by the calculation unit can be simplified, and the similarity can be calculated at high speed.
[0137] In the authentication device according to aspect 5 of the present disclosure, in any of aspects 1 to 3, the calculation unit calculates the similarity using the Euclidean distance between the second feature vector and the fourth feature vector.
[0138] With the above configuration, by using the second and fourth feature vectors approximated as ternary vectors by the approximation unit, the calculation of the Euclidean distance by the calculation unit can be simplified, and the similarity can be calculated at high speed.
[0139] In the authentication device according to aspect 6 of the present disclosure, in aspect 5, the calculation unit separates each element of the second feature vector into a first bit sequence from which only positive values are extracted and a second bit sequence from which only negative values are extracted, separates each element of the fourth feature vector into a third bit sequence from which only positive values are extracted and a fourth bit sequence from which only negative values are extracted, calculates a fifth bit sequence by performing an XOR operation between the first bit sequence and the third bit sequence, calculates a sixth bit sequence by performing an XOR operation between the second bit sequence and the fourth bit sequence, and calculates the Euclidean distance by using the calculation results of OR and AND operations between the fifth bit sequence and the sixth bit sequence.
[0140] With the above configuration, the calculation unit can quickly calculate the Euclidean distance by first converting the second and fourth feature vectors into binary data, and then performing XOR, OR, and AND operations.
[0141] In the authentication device according to aspect 7 of the present disclosure, in any of aspects 1 to 6 above, the device further includes a storage unit that stores the plurality of third feature vectors and the plurality of fourth feature vectors obtained by approximating the plurality of third feature vectors with the approximation unit, the storage unit having a first storage area in which the plurality of third feature vectors and identification information of a user using the authentication device are stored, and a second storage area in which the plurality of fourth feature vectors are stored.
[0142] According to the above configuration, the calculation unit calculates the similarity between the second feature vector approximated by the approximation unit and multiple fourth feature vectors stored in a second memory area different from the first memory area where the third feature vector is stored, in the order in which they are stored in the second memory area. This allows the calculation unit to calculate the similarity as quickly as possible by making full use of the memory structure of the memory area and performing lookup. Since multiple fourth feature vectors are stored in the memory area of the authentication device, the authentication unit can quickly authenticate the image of the target object without connecting the authentication device to an external server or the like.
[0143] In the authentication device according to aspect 8 of this disclosure, in any of aspects 1 to 7, the specific part of the object is a human face, and the authentication unit authenticates the human face. With this configuration, security can be enhanced by performing authentication using an image of a human face by the authentication unit.
[0144] An authentication method according to aspect 9 of the present disclosure includes: an acquisition step of acquiring an image of an object and detecting a specific part of the object; a generation step of generating a first feature vector based on the image of the specific part of the object detected in the acquisition step; an approximation step of approximating the first feature vector generated in the generation step to a second feature vector consisting of a trivalued vector; a calculation step of calculating the similarity between the second feature vector approximated in the approximation step and a plurality of fourth feature vectors obtained by approximating a plurality of third feature vectors corresponding to images of the specific part of other objects for comparison with the specific part of the object; and an authentication step of authenticating the image of the specific part of the object based on the similarity calculated in the calculation step.
[0145] According to the above configuration, the authentication method according to aspect 9 of this disclosure approximates the first feature vector to a second feature vector consisting of a ternary vector in the approximation step, calculates the similarity between the second feature vector and the fourth feature vector corresponding to the second feature vector in the calculation step, and authenticates the image of a specific part of the object based on the similarity in the authentication step. As a result, the similarity can be calculated more efficiently and quickly than when the first feature vector is not approximated, and the authentication of the object can be performed quickly.
[0146] The program according to aspect 10 of this disclosure is a program for causing a computer to function as an authentication device according to aspect 1 above, and causes the computer to function as the acquisition unit, the generation unit, the approximation unit, the calculation unit, and the authentication unit. With the above configuration, the same effects as the authentication device according to aspect 1 above can be obtained.
[0147] (Additional Notes) This disclosure is not limited to the embodiments described above, and various modifications are possible within the scope of the claims. Embodiments obtained by appropriately combining the technical means disclosed in different embodiments are also included in the technical scope of this disclosure.
[0148] This disclosure demonstrates that by utilizing AI (Artificial Intelligence), it will be possible to perform high-speed authentication of human faces and other features, forming an innovative technological foundation for the telecommunications business and contributing to the achievement of Sustainable Development Goal 9, "Build resilient infrastructure, promote inclusive and sustainable industrialization and foster innovation."
[0149] 1, 1A Authentication system 10, 10A Authentication device 11 Acquisition unit 12 Generation unit 13 Approximation unit 14 Calculation unit 15 Authentication unit 16 Storage unit 17 Output control unit 18 Communication unit 20, 20A, 20B Camera 100 Communication terminal 100A Access control device 200, 200A Server device M User M1, M2, M3 Person
Claims
1. An authentication device comprising: an acquisition unit that acquires an image of an object and detects a specific part of the object; a generation unit that generates a first feature vector based on the image of the specific part of the object detected by the acquisition unit; an approximation unit that approximates the first feature vector generated by the generation unit to a second feature vector consisting of a trivalued vector; a calculation unit that calculates the similarity between the second feature vector approximated by the approximation unit and a plurality of fourth feature vectors obtained by approximating a plurality of third feature vectors corresponding to images of other plurality of objects for comparison with the specific part of the object using the approximation unit; and an authentication unit that authenticates the image of the specific part of the object based on the similarity calculated by the calculation unit.
2. The authentication device according to claim 1, wherein the second feature vector is the ternary vector having {-1, 0, +1} as each element.
3. The authentication device according to claim 2, wherein the approximation part is a sequence obtained by taking the absolute values of each element of the first feature vector and sorting them in ascending order, in which the elements in an order determined from the smallest absolute value of each element are set as reference values, elements whose absolute value is less than or equal to the reference value are set to 0, elements whose absolute value is greater than the reference value and is positive are set to +1, and elements whose absolute value is greater than the reference value and is negative are set to -1, and the reference value is set such that the number of each element of the second feature vector, excluding 0, is a predetermined number.
4. The authentication device according to claim 3, wherein the calculation unit calculates the similarity using the cosine similarity between the second feature vector and the fourth feature vector.
5. The authentication device according to claim 3, wherein the calculation unit calculates the similarity using the Euclidean distance between the second feature vector and the fourth feature vector.
6. The authentication device according to claim 5, wherein the calculation unit separates each element of the second feature vector into a first bit sequence from which only positive values are extracted and a second bit sequence from which only negative values are extracted; separates each element of the fourth feature vector into a third bit sequence from which only positive values are extracted and a fourth bit sequence from which only negative values are extracted; calculates a fifth bit sequence by performing an XOR operation between the first bit sequence and the third bit sequence; calculates a sixth bit sequence by performing an XOR operation between the second bit sequence and the fourth bit sequence; and calculates the Euclidean distance using the results of OR and AND operations between the fifth bit sequence and the sixth bit sequence.
7. The authentication device according to claim 1, further comprising a storage unit that stores the plurality of third feature vectors and the plurality of fourth feature vectors obtained by approximating the plurality of third feature vectors with the approximation unit, wherein the storage unit has a first storage area in which the plurality of third feature vectors and identification information of a user using the authentication device are stored, and a second storage area in which the plurality of fourth feature vectors are stored.
8. The authentication device according to any one of claims 1 to 7, wherein the specific part of the object is a human face, and the authentication unit performs authentication of the human face.
9. Authentication method comprising: an acquisition step of acquiring an image of an object and detecting a specific part of the object; a generation step of generating a first feature vector based on the image of the specific part of the object detected in the acquisition step; an approximation step of approximating the first feature vector generated in the generation step to a second feature vector consisting of a ternary vector; a calculation step of calculating the similarity between the second feature vector approximated in the approximation step and a plurality of fourth feature vectors obtained by approximating a plurality of third feature vectors corresponding to images of the specific part of other objects for comparison with the specific part of the object; and an authentication step of authenticating the image of the specific part of the object based on the similarity calculated in the calculation step.
10. A program for causing a computer to function as an authentication device according to claim 1, wherein the acquisition unit, the generation unit, the approximation unit, the calculation unit, and the authentication unit are the computer.