WO2022225375A1 - 병렬처리 파이프라인을 이용한 다중 dnn 기반 얼굴 인식 방법 및 장치 - Google Patents

병렬처리 파이프라인을 이용한 다중 dnn 기반 얼굴 인식 방법 및 장치 Download PDF

Info

Publication number
WO2022225375A1
WO2022225375A1 PCT/KR2022/005815 KR2022005815W WO2022225375A1 WO 2022225375 A1 WO2022225375 A1 WO 2022225375A1 KR 2022005815 W KR2022005815 W KR 2022005815W WO 2022225375 A1 WO2022225375 A1 WO 2022225375A1
Authority
WO
WIPO (PCT)
Prior art keywords
face
recognition
face recognition
region
line
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
PCT/KR2022/005815
Other languages
English (en)
French (fr)
Inventor
이영기
이주헌
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SNU R&DB Foundation
Original Assignee
Seoul National University R&DB Foundation
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Seoul National University R&DB Foundation filed Critical Seoul National University R&DB Foundation
Priority to US18/033,185 priority Critical patent/US12525056B2/en
Priority claimed from KR1020220050391A external-priority patent/KR102832092B1/ko
Publication of WO2022225375A1 publication Critical patent/WO2022225375A1/ko
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/16Human faces, e.g. facial parts, sketches or expressions
    • G06V40/172Classification, e.g. identification
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/174Segmentation; Edge detection involving the use of two or more images
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/44Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/74Image or video pattern matching; Proximity measures in feature spaces
    • G06V10/75Organisation of the matching processes, e.g. simultaneous or sequential comparisons of image or video features; Coarse-fine approaches, e.g. multi-scale approaches; using context analysis; Selection of dictionaries
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/16Human faces, e.g. facial parts, sketches or expressions
    • G06V40/161Detection; Localisation; Normalisation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/16Human faces, e.g. facial parts, sketches or expressions
    • G06V40/172Classification, e.g. identification
    • G06V40/173Classification, e.g. identification face re-identification, e.g. recognising unknown faces across different face tracks

Definitions

  • the present invention relates to a multi-DNN-based face recognition method and apparatus, and a face recognition method using a content and resource adaptive parallel processing pipeline for optimal performance of a multi-deep neural network (DNN)-based face recognition algorithm; It's about the device.
  • DNN multi-deep neural network
  • the face recognition algorithm involves multiple DNN operations that perform DNN for face recognition per detected face after performing DNN for face detection on the input image.
  • An object of the present invention is to provide a face recognition method and apparatus capable of effectively performing multiple DNN operations in a resource-limited mobile device.
  • An object of the present invention is to provide a content-adaptive parallel processing pipeline for optimizing the processing speed of a face recognition algorithm that repeatedly performs multiple DNN operations on an input image.
  • An object of the present invention is to provide a face recognition method and apparatus for dynamically scheduling multiple DNN operations on an input image using a content and resource-adaptive parallel processing pipeline.
  • a face recognition method is a face recognition method using a pipeline including a detection line, a control line, and a plurality of recognition lines. detecting a face region in units of blocks; determining, by a control line, one face recognition model from among a plurality of face recognition models based on the difficulty of face recognition of the detected face region, by the control line; It may include distributing the detected face region to a recognition line associated with the determined face recognition model, and performing face recognition from the detected face region by the recognition line to which the detected face region is distributed. .
  • a face recognition apparatus is a face recognition apparatus using a pipeline including a detection line, a control line, and a plurality of recognition lines, and includes at least one processor, wherein the at least one processor includes: Execute a line to detect a face region in units of image blocks from an input image including a plurality of image blocks, and execute a control line to one of a plurality of face recognition models based on the face recognition difficulty of the detected face region. determines a face recognition model of , executes the control line, distributes the detected face region to a recognition line associated with the determined face recognition model, and executes a recognition line in which the detected face region is distributed, and may be configured to perform facial recognition from the detected facial region.
  • a face recognition system is a face recognition system using a pipeline including a detection line, a control line, and a plurality of recognition lines, wherein at least some of the detection line, the control line, and the plurality of recognition lines are disposed.
  • a face region is detected in units of blocks, and one of a plurality of face recognition models is determined based on the difficulty of face recognition of the detected face region by the control line, and the detection is performed by the control line.
  • the detected face region is distributed among the first face recognition device and the second face recognition device to a device in which a recognition line associated with the determined face recognition model is disposed, and the detected face region is detected by the distributed recognition line. and detect a face region for a next image block of the input image by the detection line while face recognition is performed for the selected face region.
  • a face recognition method executed by a face recognition apparatus including a processor using a pipeline including a detection line, a control line, and a plurality of recognition lines includes: by a detection line, an image block from an input image detecting at least one face region as a unit; determining, by a control line, an expected face recognition difficulty of the at least one face region; by the control line, based on the expected face recognition difficulty determining a recognition line on which face recognition is to be performed for each of the at least one face region among recognition lines, distributing the at least one face region to the determined recognition line by the control line, and the at least one
  • the method may include performing face recognition from each of the at least one face area by a recognition line in which the face areas of are distributed.
  • a face recognition apparatus using a pipeline including a detection line, a control line, and a plurality of recognition lines includes at least one processor, wherein the at least one processor executes a detection line, Detect at least one face region from an image in units of image blocks, execute a control line to determine an expected face recognition difficulty of the at least one face region, and execute the control line based on the expected face recognition difficulty level to determine a recognition line on which face recognition is to be performed for each of the at least one face region among the plurality of recognition lines, and execute the control line to distribute the at least one face region to the determined recognition line can be
  • a face recognition system using a pipeline including a detection line, a control line, and a plurality of recognition lines is a first face recognition device in which at least some of the detection line, the control line, and the plurality of recognition lines are disposed. and a second face recognition device on which the rest of the plurality of recognition lines are disposed, wherein the first face recognition device detects at least one face region from the input image in units of image blocks by the detection line, Determine, by the control line, the expected difficulty of face recognition of the at least one face region, and, by the control line, determine, by the control line, each of the at least one face region among the plurality of recognition lines based on the expected difficulty of face recognition.
  • the processing speed of multiple DNN operations is improved.
  • FIG. 1 is a schematic illustration of an operating environment of a face recognition system according to an embodiment.
  • FIG. 2 is a diagram for explaining an exemplary multiple deep neural network (DNN) executed in a face recognition process according to an embodiment.
  • DNN deep neural network
  • FIG. 3 is a block diagram of a face recognition apparatus according to an embodiment.
  • FIG. 4 is a diagram for explaining a face recognition process according to an embodiment.
  • FIG. 5 is a flowchart of a face recognition method according to an embodiment.
  • FIG. 6 is a diagram for explaining a pipeline used in a face recognition process according to an embodiment.
  • FIG. 7 is a diagram exemplarily illustrating background removal of a face recognition method according to an embodiment.
  • FIG. 8 is a diagram for explaining a face recognition model determination process of a face recognition method according to an embodiment.
  • FIG. 9 is a diagram for explaining parallel processing and pipelining for each region of the face recognition method according to the embodiment.
  • FIG. 10 is a graph showing performance of a face recognition method according to an embodiment.
  • FIG. 11 is a diagram for illustratively explaining an identity restoration model of a face recognition algorithm used in a face recognition method according to an embodiment.
  • FIG. 12 is a diagram for describing a content and resource adaptive parallel processing pipeline according to an embodiment.
  • FIG. 13 is a flowchart of a face recognition method according to an embodiment.
  • FIG. 14 is a diagram for explaining a motion tracking process of a face recognition process.
  • 15 is a diagram for explaining a process of determining an expected difficulty of face recognition according to an embodiment.
  • 16 is an exemplary diagram of landmark-based facial posture determination in face recognition difficulty determination according to an embodiment.
  • 17 is an exemplary diagram of determining face blur in determining the difficulty of face recognition according to an embodiment.
  • 18 is a diagram for explaining content and resource adaptive face recognition model selection and execution scheduling according to an embodiment.
  • 19 is an exemplary diagram of multi-processor parallel processing and pipelining for each region according to an embodiment.
  • FIG. 1 is a schematic illustration of an operating environment of a face recognition system according to an embodiment.
  • the face recognition system 1000 provides high-speed and high-precision face recognition (eg, finding missing children and tracking criminals) in a complex urban space.
  • the face recognition system 1000 performs a face recognition process on an input image in parallel by utilizing a mobile heterogeneous processor (eg, CPU and GPU) and a cloud, and displays the recognition result on a display in real time (for example, augmented It is displayed in Augmented Reality (AR) form) to help the user's perception.
  • a mobile heterogeneous processor eg, CPU and GPU
  • a cloud for example, augmented It is displayed in Augmented Reality (AR) form
  • AR Augmented Reality
  • the face recognition technology is a technology for high-precision face recognition in a space of high complexity, and may be applied to a deep neural network (DNN)-based face recognition algorithm to increase the processing speed of image-based face recognition.
  • a high-complexity space includes a crowded space, such as an urban space with a high flow of people, a transit station during rush hours, a sports stadium with a large number of spectators, and a shopping mall.
  • the face recognition process according to the embodiment is performed in a space with high complexity, for example, a plurality of remote It can quickly recognize small faces.
  • the face recognition system 1000 may include at least one face recognition apparatus.
  • the face recognition system 1000 may include the first face recognition apparatus 100 and the second face recognition apparatus 200 , and is not limited thereto.
  • the face recognition system 1000 may include one or more face recognition devices.
  • the first face recognition apparatus 100 and the second face recognition apparatus 200 may cooperate with each other to perform a face recognition operation on an input image.
  • the first face recognition apparatus 100 processes a face region having a relatively low difficulty in face recognition according to the difficulty of face recognition of a face region detected in the input image, and a face region having a relatively high difficulty in face recognition is processed by the first face recognition apparatus 100. 2 may be processed by the face recognition apparatus 200 . In this process, the first face recognition apparatus 100 and the second face recognition apparatus may execute different face recognition models.
  • the first face recognition apparatus 100 and the second face recognition apparatus 200 may recognize a face appearing in the input face image by executing the face recognition method according to the embodiment.
  • the first face recognition apparatus 100 and the second face recognition apparatus 200 may execute the face recognition method according to the embodiment by using the pre-learned face recognition model.
  • the first face recognition apparatus 100 and the second face recognition apparatus 200 may receive at least one pre-trained face recognition model through the network 400 .
  • the first face recognition apparatus 100 may receive the face recognition model learned by the second face recognition apparatus 200 through the network 300 .
  • the first face recognition apparatus 100 trains a face recognition model in an on-device manner, and connects the learned face recognition model through the network 300 to an external device, for example, the second face recognition apparatus 200 . can be sent to
  • the face recognition model may have a multiple DNN structure including a DNN for face detection, an Identity Clarification Network (ICN) for a detected face, and a face recognition DNN.
  • the face recognition model may include a plurality of face recognition models.
  • the first face recognition apparatus 100 may directly acquire the input image.
  • the first face recognition apparatus 100 may be implemented as a terminal including a camera.
  • the first face recognition apparatus 100 may obtain an input image from an external device through the network 300 .
  • the input image means a moving picture including a series of image frames, each frame of the moving picture, or a still image.
  • the first face recognition apparatus 100 may be implemented as a terminal.
  • the second face recognition apparatus 200 may be implemented as a server.
  • the terminal may be a desktop computer, a smartphone, a notebook computer, a tablet PC, a smart TV, a mobile phone, a personal digital assistant (PDA), a laptop, a digital camera, a home appliance and other mobile or non-mobile computing devices operated by the user, It is not limited thereto.
  • the terminal may be a wearable device such as a watch, glasses, a hair band, and a ring having a communication function and a data processing function.
  • the server may be an application server or a cloud server executing the face recognition method according to the embodiment, but is not limited thereto.
  • the first face recognition apparatus 100 and the second face recognition apparatus 200 may perform face recognition on an input image by executing an application or an app for executing the face recognition method according to the embodiment. have.
  • Network 300 is a wired and wireless network, such as a local area network (LAN), a wide area network (WAN), the Internet (internet), intranet (intranet) and extranet (extranet), and mobile networks, such as It may be any suitable communication network, including cellular, 3G, LTE, 5G, WiFi networks, ad hoc networks, and combinations thereof.
  • LAN local area network
  • WAN wide area network
  • Internet Internet
  • intranet intranet
  • extranet extranet
  • mobile networks such as It may be any suitable communication network, including cellular, 3G, LTE, 5G, WiFi networks, ad hoc networks, and combinations thereof.
  • Network 300 may include connections of network elements such as hubs, bridges, routers, switches, and gateways.
  • Network 300 may include one or more connected networks, eg, multiple network environments, including public networks such as the Internet and private networks such as secure enterprise private networks. Access to network 300 may be provided via one or more wired or wireless access networks.
  • FIG. 2 is a diagram for describing an exemplary multi-DNN that is executed in a face recognition process according to an embodiment.
  • Multiple deep neural networks executed in the face recognition process may include a face detection model, an identity clarification model, and a face recognition model.
  • the face detection model receives an image and outputs at least one face region included in the image.
  • the identity restoration model receives each face region of at least one face region, improves image quality, and outputs it.
  • the face recognition model receives each face region and outputs a feature vector.
  • the face detection model is executed on the input image, and the identity reconstruction model and the facial recognition model are executed for each face region included in the input image, the computational complexity of the multi-deep neural network increases as the face region included in the input image increases. .
  • the face recognition system may simultaneously and in parallel perform the face recognition process according to the embodiment in the resource-limited mobile device and the cloud.
  • the input image is divided into a plurality of image blocks, and face recognition is performed in units of image blocks.
  • the face recognition system adaptively determines a face recognition model to be applied to an individual face region according to the recognition difficulty of the face region of the input image. For example, as the difficulty of face recognition increases, a face recognition model with higher computational complexity may be selected.
  • FIG. 3 is a block diagram of a face recognition apparatus according to an embodiment.
  • the first face recognition apparatus 100 may include a memory 120 and a processor 110 . Such a configuration is exemplary, and the first face recognition apparatus 100 may include some of the configurations shown in FIG. 3 , or additionally include a configuration necessary for the operation of the device although not shown in FIG. 3 .
  • the processor 110 is a kind of central processing unit, and may execute one or more commands stored in the memory 120 to control the operation of the first face recognition apparatus 100 .
  • the processor 110 may include any type of device capable of processing data.
  • the processor 110 may refer to, for example, a data processing device embedded in hardware having a physically structured circuit to perform a function expressed as a code or an instruction included in a program.
  • a microprocessor As an example of the data processing device embedded in the hardware as described above, a microprocessor, a central processing unit (CPU), a processor core, a multiprocessor, and a graphic processing unit (Graphic Processing) Unit; GPU), an application-specific integrated circuit (ASIC), a processing device such as a field programmable gate array (FPGA) may be included, but is not limited thereto.
  • the processor 110 may include one or more processors.
  • the processor 110 may include heterogeneous processors, for example, a CPU and a GPU.
  • the memory 120 may store a program including one or more instructions for executing a face recognition process according to an embodiment.
  • the processor 110 may execute a face recognition process according to an embodiment based on a program and instructions stored in the memory 120 .
  • the memory 120 stores a DNN-based model (eg, a face detection model, an identity restoration model, and/or a plurality of face recognition models) executed for face recognition, and intermediate data generated in the operation process for face recognition and calculation results, etc. may be further stored.
  • a DNN-based model eg, a face detection model, an identity restoration model, and/or a plurality of face recognition models
  • the memory 120 may store a lightweight face recognition model, which will be described later with reference to FIGS. 4 and 8 .
  • Memory 120 may include internal memory and/or external memory, and may include volatile memory such as DRAM, SRAM, or SDRAM, one time programmable ROM (OTPROM), PROM, EPROM, EEPROM, mask ROM, flash ROM, NAND Flash memory or non-volatile memory such as NOR flash memory, SSD, compact flash (CF) card, SD card, Micro-SD card, Mini-SD card, Xd card, or flash drive such as a memory stick; Alternatively, it may include a storage device such as an HDD.
  • the memory 120 may include, but is not limited to, magnetic storage media or flash storage media.
  • the first face recognition apparatus 100 may further include a communication unit 130 .
  • the communication unit 130 includes a communication interface for transmitting and receiving data of the first face recognition apparatus 100 .
  • the communication unit 130 may connect the first face recognition apparatus 100 to the network 300 with reference to FIG. 1 by providing wired/wireless communication paths in various methods to the first face recognition apparatus 100 .
  • the first face recognition apparatus 100 may transmit/receive an input image, learning data, intermediate data, and a feature vector extracted as a result of face recognition through the communication unit 130 .
  • the communication unit 130 may be configured to include, for example, at least one of various wireless Internet modules, a short-range communication module, a GPS module, a modem for mobile communication, and the like.
  • the first face recognition apparatus 100 may further include a bus 140 that provides a physical/logical connection path between the processor 110 , the memory 120 , and the communication unit 130 .
  • the face recognition process according to the embodiment is processed in parallel using a pipeline.
  • the pipeline may include a detection line, a control line, and a plurality of recognition lines, and the pipeline will be described in detail with reference to FIG. 6 .
  • the first face recognition apparatus 100 may include at least one processor 110 .
  • the at least one processor 110 executes a detection line to detect a face region in units of image blocks from an input image including a plurality of image blocks, and executes a control line based on the difficulty of face recognition of the detected face region. to determine one face recognition model from among the plurality of face recognition models, execute a control line, distribute the detected face region to a recognition line associated with the determined face recognition model, and divide the recognition line to which the detected face region is distributed. and may be configured to perform facial recognition from the detected facial region. This will be described later with reference to FIG. 5 .
  • the at least one processor 110 may be configured to divide an input image into a plurality of image blocks and remove a background region from each image block based on an edge density of each image block in order to detect a face region. This will be described later with reference to FIG. 7 .
  • the at least one processor 110 is configured to determine one face recognition model from among a plurality of face recognition models based on the face recognition difficulty of the detected face region, based on the face quality and the face posture displayed in the detected face region. , may be configured to determine the difficulty of face recognition.
  • the at least one processor 110 may be configured to extract a facial landmark from a facial region and determine a facial posture based on a positional relationship between the facial landmarks in order to determine the difficulty of facial recognition. This will be described with reference to FIG. 8 .
  • the detection line, the control line, and the plurality of recognition lines may be disposed on the first face recognition apparatus 100 , and the rest of the plurality of recognition lines may be disposed on the second face recognition apparatus 200 .
  • the at least one processor 110 may be configured to offload facial recognition for the detected face region from the first face recognition device to the second face recognition device in order to distribute the detected face region.
  • a face recognition model associated with a recognition line disposed on the second face recognition apparatus 200 has a higher computational complexity than a face recognition model associated with a recognition line disposed on the first face recognition apparatus 100 . It may be a recognition model. This will be described later with reference to FIGS. 6, 8 and 9 .
  • the at least one processor 110 may be configured to extract a feature vector of a face that appears in a detected face region by executing the previously determined face recognition model in order to perform face recognition.
  • the at least one processor 110 is configured to detect a face region for a next image block of the input image by the detection line while face recognition is performed on the face region detected by the recognition line to detect the face region. can be configured. This will be described later with reference to FIGS. 6 and 9 .
  • the at least one processor 110 may be configured to determine a face region matching the search target based on the face recognition results of the plurality of recognition lines for the input image.
  • the second face recognition apparatus 200 may include a memory (not shown) and a processor (not shown).
  • the second face recognition apparatus 200 receives face region information from the first face recognition apparatus 100 , performs face recognition on the received face region information, and returns the face recognition result to the first face recognition apparatus 100 . can be sent to
  • the memory of the second face recognition apparatus 200 may store an identity reconstruction model (ICN) and a high complexity face recognition model (Heavy Face Recognition Model), which will be described later with reference to FIGS. 4 and 8 .
  • ICN identity reconstruction model
  • Heavy Face Recognition Model Heavy Face Recognition Model
  • the processor of the second face recognition apparatus 200 may perform face recognition on an individual face region offloaded from the first face recognition apparatus 100 .
  • the processor of the second face recognition device 200 executes an identity reconstruction model (ICN) and/or a high complexity face recognition model stored in the memory and receives from the first face recognition device 100 . It may be configured to perform face recognition on one face region information.
  • the processor of the second face recognition apparatus 200 may include a plurality of graphic processing units (GPUs).
  • At least one processor 110 is included, and the at least one processor 110 executes a detection line to obtain at least one image block unit from an input image.
  • Detect a face region of may be configured to determine a recognition line on which face recognition is to be performed for each of , execute a control line, and distribute at least one face region to the determined recognition line.
  • the at least one processor 110 is configured to determine each expected difficulty of face recognition of the at least one face region based on at least one of a face quality, a face posture, and a face blur of the face region, in order to determine the expected difficulty of face recognition. can be configured.
  • the at least one processor 110 may be configured to determine a recognition line of each face region of the at least one face region in an ascending order of the expected face recognition difficulty in order to determine the recognition line.
  • the at least one processor 110 selects a face recognition model and a face recognition model to be applied to the face region based on a predetermined target function according to the expected facial recognition accuracy and the expected operation delay time of the face region to determine the recognition line. and determine a combination of facial recognition devices to execute.
  • the detection line, the control line, and the plurality of recognition lines are disposed in the first face recognition apparatus 100 , and the rest of the plurality of recognition lines are disposed in the second face recognition apparatus 200 , the at least one processor 110 performs face recognition on at least a portion of the at least one face region from the first face recognition device 100 to the second face recognition device 200 in order to distribute the at least one face region. may be configured to offload.
  • the at least one processor 110 detects the face region for the next image block of the input image by the detection line while the face recognition for the at least one face region is performed by the recognition line to which the at least one face region is distributed. can be configured to detect.
  • the at least one processor 110 may be configured to determine a face region matching the search target based on the face recognition results of the plurality of recognition lines for the input image.
  • the input image includes a series of image frames
  • the at least one processor 110 is configured to perform pre-recognition corresponding to each of the at least one face region based on facial region movement information between successive image frames of the series of image frames. It may be configured to search for a face region and reuse face recognition information of a previously recognized face region according to a result of the search.
  • a face recognition system using a pipeline including a detection line, a control line, and a plurality of recognition lines is provided.
  • the face recognition system includes a first face recognition apparatus 100 in which at least some of a detection line, a control line, and a plurality of recognition lines are disposed, and a second face recognition apparatus 200 in which the rest of the plurality of recognition lines are disposed.
  • the first face recognition apparatus 100 detects at least one face region in units of image blocks from an input image by a detection line, and recognizes an expected face of the at least one facial region by a control line determine the difficulty level, determine, by the control line, a recognition line to perform face recognition for each of the at least one face region among the plurality of recognition lines based on the expected face recognition difficulty, and determine the recognition line determined by the control line distributes at least one face region to , and while facial recognition is performed on the face region detected by the recognition line in which the at least one face region is distributed, the face region for the next image block of the input image is determined by the detection line. It may be configured to detect.
  • FIG. 4 is a diagram for describing a face recognition process according to an embodiment.
  • the face recognition method according to the embodiment includes steps P1, P2, P3, P4, P5_1, P5_2, P5_3, P6 shown in FIG. 4 by the first face recognition apparatus 100 and the second face recognition apparatus 200 is performed by
  • All or part of the steps P1, P2, P3, P4, P5_1, P5_2, P5_3, and P6 shown in FIG. 4 may be performed in the face recognition process for the input frame.
  • the execution order of the steps P1, P2, P3, P4, P5_1, P5_2, P5_3, and P6 illustrated in FIG. 4 may be changed.
  • step P2 may be performed before step P1 or vice versa.
  • the first face recognition apparatus 100 acquires an input image (Input Frame).
  • an input image For example, AR glasses or a camera frame captured by a smartphone can be acquired in real time.
  • the first face recognition apparatus 100 divides an input image (Input frame) into a plurality of image blocks, and fetches them in a content-adaptive parallel processing pipeline (eg, a detection line) in units of image blocks. (fetch)
  • a content-adaptive parallel processing pipeline eg, a detection line
  • an input image can be partitioned into n x m image blocks, where n, m are positive integers.
  • step P2 the first face recognition apparatus 100 performs an edge detection algorithm before performing face detection DNN on the image block fetched in step P1 to remove a background region in which no face is present. (Edge-Based Background Filtering).
  • step P2 an edge (outline) is detected for each image block of an input frame, and an area with a low edge density is regarded as a background area and excluded from subsequent processing to reduce unnecessary operations.
  • step P2 may be executed prior to step P1 .
  • the first face recognition apparatus 100 performs an edge detection algorithm on the input image in step P2 and divides the remaining area from which the background area is removed into a plurality of image blocks in step P1 to pipeline (e.g. detection lines) can be fetched.
  • pipeline e.g. detection lines
  • the first face recognition apparatus 100 detects a face region by executing a face detection model on the image block from which the background region is removed.
  • the face detection model can utilize the RetinaFace structure.
  • step P3 may be executed in a detection line of a pipeline.
  • the detection line may be executed by a CPU among at least one processor 110 of the first face recognition apparatus 100 .
  • the face region detected in step P3 is transmitted to the control line of the pipeline in units of face regions.
  • step P4 the first face recognition apparatus 100 performs a face recognition operation on the detected face region according to the difficulty of face recognition (eg, prediction based on the image quality and posture of the detected face) with respect to the detected face region.
  • Determine a face recognition model to perform (Variation-Adaptive Face Recognition). Accordingly, the complexity of the face recognition DNN can be adaptively adjusted according to the face recognition difficulty, and the execution time can be optimized while achieving high face recognition accuracy.
  • step P4 may be executed in a control line of a pipeline.
  • the control line may be executed by a CPU among at least one processor 110 of the first face recognition apparatus 100 .
  • step P4 one of a plurality of face recognition models having different computational complexity is determined according to the difficulty of face recognition of the detected face region.
  • the pipeline includes a plurality of recognition lines, and each recognition line is assigned in association with each face recognition model.
  • the face region is distributed to the recognition line associated with the face recognition model determined in step P4.
  • a face region is distributed to a recognition line associated with one of steps P5_1, P5_2, and P5_3.
  • the heterogeneous processor eg, mobile CPU and GPU
  • the processor eg, of the second face recognition apparatus 200
  • steps P5_1 and P5_2 may be performed by the second face recognition apparatus 200 .
  • the first face recognition apparatus 200 transmits the face region distributed in the step P5_1 or P5_2 to the recognition line associated with the step P5_1 or the recognition line associated with the step P5_2.
  • the recognition line may be executed on the GPU of the face recognition device on which the recognition line is disposed.
  • Step P5_1 executes an identity restoration model for improving the image quality of a face region
  • step P5_2 executes a heavy face recognition model that processes a face region with high face recognition difficulty, respectively.
  • Step 5_3 executes a lightweight face recognition model that processes a face region having a low face recognition difficulty.
  • the identity restoration model may utilize the network structure shown in FIG. 11, which will be described later.
  • a heavy face recognition model can utilize a residual block-based ArcFace network structure.
  • a Lightweight Face Recognition Model can utilize the lightweight MobileFaceNets architecture.
  • the high-complexity face recognition model and the low-complexity recognition model show a difference in complexity of about 20 times (eg, 287 ms execution time for ArcFace model on LG V50, 14 ms execution time for MobileFaceNets) This takes).
  • step P6 the recognition results of each face recognition model are integrated, and a face region matching the search target and/or the degree of similarity between the search target and the face regions are rendered and displayed in an input frame.
  • FIG. 5 is a flowchart of a face recognition method according to an embodiment.
  • a face recognition method uses a pipeline including a detection line, a control line, and a plurality of recognition lines, and detects a face region in units of image blocks from an input image including a plurality of image blocks by the detection line (S1), by the control line, determining one of the plurality of face recognition models based on the face recognition difficulty of the face region detected in the step (S1) (S2), by the control line , distributing the face region detected in step S1 to the recognition line associated with the face recognition model determined in step S2 (S3) and from the detected face region by the recognition line to which the detected face region is distributed It may include performing face recognition (S4).
  • Steps S1 to S3 are executed by the first face recognition apparatus 100, and the first face recognition apparatus 100 executes at least a part of a detection line, a control line, and a plurality of recognition lines of a pipeline. and manage.
  • step S1 the first face recognition apparatus 100 detects a face region in units of image blocks from an input image including a plurality of image blocks by a detection line.
  • Step S1 corresponds to step P1 , step P2 and step P3 with reference to FIG. 4 .
  • Step S1 includes dividing the input image into a plurality of image blocks (step P1 with reference to FIG. 4 ) and removing a background area from each image block based on the edge density of each image block ( FIG. 4 ) step (P2)) of
  • FIG. 7 is a diagram exemplarily illustrating background removal of a face recognition method according to an embodiment.
  • a background area in which a face does not exist may be detected.
  • the input image is divided into blocks, a block having an edge density less than or equal to a reference is removed, and face detection is performed on the remaining area.
  • FIG. 7(a), (b), and (c) show exemplary results of edge detection and background region removal.
  • (a) shows the original input image
  • (b) shows the edge detection result image for (a)
  • (c) shows the image from which the background area is removed based on the edge detection result.
  • step S2 the first face recognition apparatus 100 recognizes one of a plurality of face recognition models based on the difficulty of face recognition of the face region detected in step S1 by the control line. determine the model.
  • Step S2 and step S3 to be described later correspond to step P4 with reference to FIG. 4 .
  • Step S2 includes determining the difficulty of face recognition based on the face resolution and the face posture displayed in the face region detected in step S1.
  • determining the difficulty of face recognition may include extracting a facial landmark from the detected face region and determining a facial posture based on a positional relationship between the extracted facial landmarks.
  • the facial landmark eg, eye, nose, and mouth position information
  • the facial landmark is extracted from the detected face region.
  • a face posture (eg, a front posture or a side posture) is determined according to the positional relationship between the landmarks.
  • step S2 face recognition difficulty is determined based on the face quality and face posture, and different face recognition DNN models are adaptively determined according to the determined face recognition difficulty. As a result, optimal face recognition accuracy and latency performance can be achieved.
  • step S2 will be exemplarily described with reference to FIG. 8 .
  • FIG. 8 is a diagram for explaining a face recognition model determination process of a face recognition method according to an embodiment.
  • a face recognition model is adaptively determined according to a face change in the detected face region (Variation-Adaptive Face Recognition).
  • the face recognition difficulty may be determined as 'high', and the identity restoration model P5_1 and the high complexity face recognition model P5_2 may be selected.
  • the difficulty of face recognition may be determined as 'medium' if the face posture is a side posture according to the face posture, and the high complexity face recognition model P5_2 may be selected.
  • the face recognition difficulty may be determined as 'low', and the low complexity face recognition model P5_3 may be selected.
  • the face posture is the size of the angle ⁇ formed by the line connecting the eye (number 2) and the mouth (number 5) and the line connecting the eye (number 2) and the nose (number 3) at the eye (number 2). may be determined as one of the front posture and the side posture according to the
  • step S3 the first face recognition apparatus 100 detects the face region detected in step S1 with a recognition line associated with the face recognition model determined in step S2 by the control line. distribute
  • the detection line, the control line, and the plurality of recognition lines are disposed in the first face recognition apparatus 100 , and the rest of the plurality of recognition lines are disposed in the second face recognition apparatus 200 .
  • the face recognition model associated with the recognition line disposed on the second face recognition apparatus 200 has a higher computational complexity than the face recognition model associated with the recognition line disposed on the first face recognition apparatus 100 .
  • the face recognition model associated with the recognition line disposed on the first face recognition apparatus 100 is a low-complexity face recognition model
  • the face recognition model associated with the recognition line disposed on the second face recognition apparatus 200 may be an identity reconstruction model and a high-complexity face recognition model.
  • Step S3 may include offloading face recognition for the detected face region from the first face recognition apparatus 100 to the second face recognition apparatus 200 .
  • the first face recognition device 100 is a resource-limited terminal
  • the second face recognition device 200 is a cloud server rich in computational resources
  • the first face recognition device 100 is a high-complexity face recognition model.
  • the face recognition operation may be transmitted so that the second face recognition apparatus 200 may perform face recognition on the corresponding face area by transmitting the face area requiring face recognition by ' to the second face recognition apparatus 200 .
  • Face recognition is performed from the detected face region by the recognition line in which the face region detected in step S4 is distributed.
  • step S4 the face recognition model determined in step S2 is executed with respect to the detected face region to extract a feature vector of a face appearing in the detected face region.
  • Step S4 corresponds to step P5_1 , step P5_1 and step P5_3 with reference to FIG. 4 .
  • the face recognition method includes the steps of detecting the face region for the next image block of the input image by the detection line while the face region detected by the recognition line is performed in step S4. may include more. That is, the detection line, the control line, and the plurality of recognition lines of the pipeline operate in parallel. Parallel processing of the pipeline will be described later with reference to FIGS. 6 and 9 .
  • the face recognition method may further include determining a face region matching the search target based on the face recognition results of a plurality of recognition lines for the input image ( S5 ).
  • Step S5 corresponds to step P6 with reference to FIG. 4 .
  • step S5 the recognition result integration and rendering by each face recognition model is performed.
  • the location of the face matching the search target may be rendered on the screen and shown to the user.
  • FIG. 6 is a diagram for explaining a pipeline used in a face recognition process according to an embodiment.
  • a content-adaptive parallel processing pipeline that adaptively selects various face recognition models according to the scene configuration of the input image and performs parallel processing in a mobile heterogeneous processor and cloud.
  • the pipeline includes a detection line (D) and a plurality of recognition lines (R_1, R_2, R_3; R).
  • the pipeline may further include a control line (C).
  • C control line
  • three recognition lines R_1 , R_2 , and R_3 are illustrated by way of example, and more or fewer recognition lines may be included depending on the type of the face recognition model.
  • a plurality of image blocks B1, B2, and B3 divided from the input image are fetched to the detection line D of the pipeline in units of image blocks.
  • the image block B1 is processed in the detection block D1 of the detection line D.
  • Image block B2 and image block B3 are processed in detection block D2 and detection block D3, respectively.
  • the detection block D1 of the detection line D executes a face detection model to detect a face region in the image block B1.
  • the detected face region is transmitted to the control line C to determine a face recognition model based on the face recognition difficulty in the control block C1, and a recognition line (one of R_1, R_2 and R_3) associated with the determined face recognition model. is transmitted to
  • the recognition line R_1 executes a low-complexity face recognition model for the face region (L)
  • the recognition line R_2 executes a high-complexity face recognition model (H)
  • the recognition line R_3 executes an identity Reconstructed models and high-complexity face recognition models can be executed (I+H).
  • the recognition line R_2 and the recognition line R_3 are integrated into one recognition line, and the execution of the identity reconstruction model and the high-complexity face recognition model (I+H) together with the execution of the high-complexity face recognition model (H) ) can be configured to
  • the number of recognition lines and the execution model can be configured in various combinations according to the execution environment.
  • the detection line D executes the detection block D2 for the image block B2 when the execution of the detection block D1 is completed. That is, the detection line D is the next image block D2 while the face recognition for the face region detected from the detection block D1 for the image block B1 in the recognition line R proceeds in the recognition line R ) to execute the detection block (D2).
  • the detection line (D), the control line (C) and the recognition line (R) form a parallel processing pipeline and process the face recognition for the input image in parallel.
  • the face recognition algorithm that has to repeatedly perform multiple DNN operations on high-definition camera input (face detection DNN on high-quality images, then face-quality improvement and face recognition DNN per low-quality face detected after performing face detection DNN) You can optimize the speed.
  • FIG. 9 is a diagram for explaining parallel processing and pipelining for each region of the face recognition method according to the embodiment.
  • the process of detecting and recognizing faces in each area in high-definition urban spatial images is independent of each other and can be optimized through parallel processing and pipelining.
  • Parallel processing and pipelining techniques by image region (per image block) optimize multi-DNN face recognition latency by simultaneously utilizing heterogeneous mobile processors (CPUs, GPUs) and cloud GPUs.
  • FIG. 9 shows an example of parallel processing and pipelining operations for each region. After face detection for one image area (image block) of the input image is performed by the mobile CPU, the face recognition DNN operation for at least one face detected in the corresponding area is performed in parallel on the mobile GPU and the cloud GPU.
  • face detection for the next image area is simultaneously performed on the mobile CPU, so that the mobile GPU and cloud GPU can continuously perform face recognition DNN operations.
  • the mobile CPU corresponds to the detection line D with reference to FIG. 6, the mobile GPU corresponds to the recognition line R_1, and the cloud GPU corresponds to the recognition line R_2 and the recognition line R_3. corresponds to the integrated recognition line.
  • the control line C of FIG. 6 may be executed by the mobile CPU.
  • the mobile CPU runs the face detection model for each image block along the detection line (D).
  • the image blocks 1 to 4 are illustrated as examples, and the face detection models are sequentially executed in the detection blocks 1 to 4 respectively.
  • the mobile GPU executes a low-complexity face recognition model on a face region in which the difficulty of face recognition in the detected face region is relatively low.
  • the cloud GPU executes a high-complexity face recognition model or an identity restoration model and a high-complexity face recognition model on a face region where the difficulty of face recognition in the detected face region is relatively high.
  • FIG. 10 is a graph showing performance of a face recognition method according to an embodiment.
  • FIG. 10 shows a comparison of the performance of the content adaptive parallel processing pipeline technique according to the embodiment compared to the existing on-device sequential execution technique.
  • the content-adaptive parallel processing pipeline performs parallel processing (Spatial Pipelining) of different regions within the image in the mobile CPU, GPU, and cloud to the mobile device-based sequential DNN operation execution technology. It can be seen that a significant decrease in latency performance is achieved compared to
  • FIG. 11 is a diagram for illustratively explaining an identity restoration model of a face recognition algorithm used in a face recognition method according to an embodiment.
  • DNN Deep Neural Network
  • ICN Identity Clarification Network
  • the identity reconstruction model includes a deep neural network based on a generative adversarial neural network structure.
  • the identity restoration model is a face image reconstructed from the input face image (LR). ) and the reconstructed face image (Reconstructed) generated by the generator (G) based on the correct answer face image (Ground Truth y) for the input face image (LR) ) includes a discriminator (D) that determines whether the correct answer corresponds to the face image (Ground Truth y).
  • the generator (G) and discriminator (D) are competing functions of a generative adversarial network (GAN), the GAN loss function (L GAN ) for the generator (G) and the GAN loss function (L Discriminator ) for the discriminator (D). ) is defined.
  • GAN generative adversarial network
  • L GAN GAN loss function
  • L Discriminator L Discriminator
  • the Generator (G) includes a Face Landmark Estimator (G_FLE).
  • the facial landmark predictor G_FLE is configured to generate at least one facial landmark from the low-quality facial image LR input to the generator G. ) can be extracted.
  • the face landmark includes face contour information and feature information.
  • a landmark accuracy function (L landmark ) to be described later is defined based on the facial landmark predicted by the face landmark predictor (G_FLE) and the facial landmark extracted from the correct face image.
  • a high-quality face image (Reconstructed ) can be improved in reconstruction accuracy.
  • the generator D includes a Face Upsampler (G_FUP).
  • the face upsampler (G_FUP) is a high-quality face image (Reconstructed) reconstructed from a low-quality face image (LR) based on at least one facial landmark extracted from the face landmark predictor (G_FLE). ) is created.
  • a pixel accuracy function (L pixel ), which will be described later, is defined based on the pixel values of the face image reconstructed by the face upsampler (G_FUP) and the correct face image.
  • the discriminator D may be configured to include a residual block-based structure for GAN learning.
  • the identity reconstruction model is a face feature extractor (Face Feature Extractor) ) is included.
  • facial feature extractor ( ) is the reconstructed face image (Reconstructed ) and a feature map of the correct answer face image (Ground Truth y) are extracted.
  • facial feature extractor ( ) is the reconstructed face image (Reconstructed ) and a feature map of the correct face image (Ground Truth y), a facial feature similarity function (L face ) to be described later is defined.
  • facial feature extractor ( ) may apply, for example, a face recognition network of a residual block-based ArcFace network structure, but is not limited thereto, and may include various neural network structures for face recognition.
  • a first objective function L total that allows the generator G to reconstruct a realistic face and a second objective function L total that allows the discriminator D to distinguish the face reconstructed by the generator G from the correct face By learning to alternately minimize the objective function (L Discriminator ), the identity reconstruction model can obtain high reconstruction accuracy.
  • FIG. 12 is a diagram for describing a content and resource adaptive parallel processing pipeline according to an embodiment.
  • the face recognition method and apparatus provide a face recognition algorithm that must repeatedly perform multiple DNN operations on a high-quality camera input (refer to FIG.
  • a content-adaptive parallel processing pipeline that adaptively selects various DNNs according to the scene configuration of the input video and performs parallel processing in mobile heterogeneous processors and the cloud.
  • the content-adaptive parallel processing pipeline provided in the embodiment (i) performs an edge detection algorithm before performing face detection DNN on a high-quality image to remove a background region in which faces do not exist (Edge-Based Background Filtering) (See Fig. 7), (ii) predicting the difficulty of face recognition based on the detected face quality, posture, and blur, and adaptively adjusting the complexity of the face recognition DNN (Variation-Adaptive Face recognition) ( 15), (iii) parallel processing (Spatial Pipelining) in the mobile CPU, GPU, and cloud for processing different regions in the image (see FIG. 12).
  • the face recognition method according to the embodiment includes steps (PP1, PP2, PP3, PP4, PP5, PP6_1, PP6_2, PP7) shown in FIG. 12 by the first face recognition apparatus 100 and the second face recognition apparatus 200 is performed by
  • All or part of steps PP1, PP2, PP3, PP4, PP5, PP6_1, PP6_2, and PP7 shown in FIG. 12 may be performed in the face recognition process for an input frame.
  • the execution order of the steps PP1, PP2, PP3, PP4, PP5, PP6_1, PP6_2, and PP7 illustrated in FIG. 12 may be changed.
  • step PP2 may be performed before step PP1 or vice versa.
  • Step PP1, step PP2 and step PP3 respectively correspond to step P1, step P2 and step P3 with reference to FIG.
  • Step PP7 corresponds to step P6 with reference to FIG. 4 .
  • step PP1 the first face recognition apparatus 100 acquires a camera frame input. For example, obtain real-time camera frame input from AR glasses or smartphone camera.
  • the first face recognition apparatus 100 removes the edge detection-based background area. For example, an input frame is divided into regions, edges (outlines) are detected for each region, and a background region with a low edge density is removed from processing to reduce unnecessary operations.
  • step PP3 the first face recognition apparatus 100 detects at least one face region in the image block of the input frame.
  • the first face recognition apparatus 100 may perform motion tracking-based recognition result caching to predict movements of faces in consecutive frames. For example, when it is determined that a face detected in the current frame corresponds to a face for which a recognition model has already been performed in the previous frame, the recognition result is cached and reused.
  • the first face recognition apparatus 100 predicts the difficulty of face recognition.
  • the first face recognition apparatus 100 performs face detection on the area filtered in step PP2 in step PP3, predicts the recognition difficulty of the detected individual faces, and sorts them by difficulty.
  • step PP5 the first face recognition apparatus 100 determines a resource adaptive face recognition model selection and execution schedule.
  • the first face recognition apparatus 100 predicts the recognition difficulty of the face analyzed in step PP4 and the available resource status of the first face recognition apparatus 100 and the second face recognition apparatus 200, A recognition model can be selected that can comprehensively optimize recognition accuracy and processing time.
  • the first face recognition apparatus 100 and the second face recognition apparatus 200 execute multiprocessor parallel processing and pipelining for each region.
  • the first face recognition device 100 and the second face recognition device 200 utilize the independence of the face detection and recognition task for each region within the image and the independence of the individual face recognition task to be allocated to the mobile CPU, GPU, and cloud GPU. Operations are processed in parallel.
  • step PP7 the first face recognition apparatus 100 provides a recognition result integration and rendering.
  • the individual faces recognized through step PP5 are compared with the search target, and the location of the face matching the search target is rendered on the screen of the user terminal, for example, the first face recognition apparatus 100 and shown to the user.
  • FIG. 13 is a flowchart of a face recognition method according to an embodiment.
  • a face recognition method is a face recognition method executed by a face recognition device including a processor using a pipeline including a detection line, a control line, and a plurality of recognition lines. Detecting at least one face region in units of blocks (SS1), determining an expected face recognition difficulty of the at least one face region by a control line (SS2), by a control line, based on the expected face recognition difficulty to determine a recognition line on which to perform face recognition for each of the at least one face region among the plurality of recognition lines (SS3), and distributing at least one face region to the determined recognition line by the control line (SS4) ) and performing face recognition from each of the at least one face area by a recognition line in which the at least one face area is distributed ( SS5 ).
  • SS1 Detecting at least one face region in units of blocks (SS1), determining an expected face recognition difficulty of the at least one face region by a control line (SS2), by a control line, based on the expected face recognition difficulty to determine a recognition line on which to perform
  • step SS1 the processor 110 of the face recognition apparatus 100 detects at least one face region from the input image in units of image blocks by the detection line.
  • Step SS1 corresponds to step S1 with reference to FIG. 5 .
  • the processor 110 may perform motion tracking-based recognition result caching to predict the motion of faces in consecutive frames. For example, when it is determined that a face detected in the current frame corresponds to a face for which a recognition model has already been performed in the previous frame, the recognition result is cached and reused. This will be described later with reference to FIG. 14 .
  • step SS2 the processor 110 determines the expected difficulty of face recognition of the at least one face region by the control line.
  • the processor 110 may determine each expected difficulty of face recognition of the at least one face region based on at least one of a face quality, a face posture, and a face blur of the face region. This will be described later with reference to FIG. 15 .
  • step SS3 the processor 110 determines, by the control line, a recognition line for performing face recognition on each of at least one face region among a plurality of recognition lines based on the expected difficulty of face recognition.
  • Step SS3 may include determining a recognition line of each face region of the at least one face region in an ascending order of the expected difficulty of face recognition.
  • Step SS3 is to determine a combination of a face recognition model to be applied to each face region and a face recognition device to execute the face recognition model based on a predetermined target function according to the expected facial recognition accuracy and the expected operation delay time of the face region. may include steps. This will be described later with reference to FIGS. 18 and 19 .
  • step SS4 the processor 110 distributes at least one face region to the recognition line determined by the control line.
  • the detection line, the control line, and the plurality of recognition lines are disposed in the first face recognition apparatus 100 , and the rest of the plurality of recognition lines are disposed in the second face recognition apparatus 200 ;
  • (SS4) may include offloading face recognition for at least a portion of the at least one face region from the first face recognition apparatus 100 to the second face recognition apparatus 200 . This corresponds to the offloading related contents of step S3 with reference to FIG. 5 .
  • step SS5 the processor 110 and/or the processor 210 performs face recognition from each of the at least one face region by a recognition line in which the at least one face region is distributed.
  • the face recognition method according to the embodiment may further include determining a face region matching the search target based on the face recognition results of the plurality of recognition lines for the input image (SS6).
  • Step SS6 corresponds to step S5 with reference to FIG. 5 .
  • the face recognition method includes a face region for a next image block of an input image by a detection line while facial recognition is performed on at least one face region by a recognition line in which at least one face region is distributed. It may further include the step of detecting. For this, an example will be described with reference to FIG. 19 .
  • FIG. 14 is a diagram for explaining a motion tracking process of a face recognition process.
  • step SS1 the processor 110 detects faces of people having various identities from video frames captured in urban space.
  • the face recognition apparatus 100 may receive a face frame sequence of a person having the same identity as an input. That is, a face is detected for each frame of the input video, but the face of a person with the same identity may appear at different positions over time due to camera movement or movement of an object in a scene between successive frames.
  • a pre-stored face recognition result may be reused. For example, with respect to a face image determined to have the same identity as a face image for which face recognition has already been completed, a pre-stored face recognition result may be reused and steps SS2 to SS6 may not be executed.
  • the face recognition method may use a feature point-based face tracking technique to map faces detected for each frame with the same identity in consideration of the movement of the face between consecutive frames of the input video after step SS1. have.
  • the face recognition method may include at least one facial region detected in step SS1 based on facial region movement information (ie, motion tracking information) between successive image frames of a series of image frames.
  • the method may further include searching for a pre-recognized face region corresponding to each and reusing face recognition information of a pre-recognized face region according to a result of the search.
  • a RetinaFace detector capable of simultaneously performing face detection and feature point extraction (J. Deng et al., "RetinaFace: Single-stage Dense Face Localization in the Wild," CVPR 2020.) may be used.
  • Step (iii) Step (TR3) - Optical Flow Tracking Then, calculate the Optical Flow to find the corresponding landmark between frame t and frame t+1.
  • a Lukas-Kanade Optical Flow Tracker B. D. Lucas, T. Kanade et al., "An iterative image registration technique with an application to stereo vision.” Vancouver, British Columbia, 1981.) can be used.
  • Step TR4 Motion Compensation: Obtain the average of the optical flows of feature points of landmarks (eg, eyes, nose, and mouth) calculated in step TR3. Assume that the average is the movement of the object between frames, and transform the face bounding box coordinates of frame t.
  • landmarks eg, eyes, nose, and mouth
  • Step (TR5) - IoU-based Bounding Box Matching The overlapping area by calculating IoU (Intersection over Union) between the bounding boxes of frame t and the bounding boxes of frame t+1 that have undergone the process of step (TR4) Calculate the area of When two bounding boxes with an IoU equal to or greater than a certain value are detected, the two faces are determined as the same identity.
  • IoU Intersection over Union
  • 15 is a diagram for describing a process of determining an expected difficulty of face recognition according to an embodiment.
  • MobileFaceNets Efficient CNNs for Accurate Real-Time Face Verification on Mobile Devices
  • CCBR 2018. MobileFaceNets: Efficient CNNs for Accurate Real-Time Face Verification on Mobile Devices
  • the recognition difficulty of a detected face is predicted, and an optimal recognition model is selected based on this.
  • FIG. 15 is a structural diagram of a face recognition difficulty analysis, in which various factors affecting recognition accuracy are widely considered in order to analyze the face recognition difficulty.
  • the Face Attribute Analyzer analyzes the following three elements for each detected face based on lightweight image processing techniques.
  • Pose Estimator P_E
  • the posture of the face can be analyzed through the detected positions of landmarks such as eyes, nose, and mouth.
  • the face posture may be determined according to the face angle ⁇ with reference to FIG. 16 . This will be described with reference to FIG. 16.
  • Resolution Estimator R_E: From the size of the detected face's bounding box, the face quality is predicted as in Equation (1).
  • the blur intensity of the face image is obtained. For example, it is predicted that the lower the blur intensity, the higher the expected face recognition difficulty. An example of this will be seen in FIG. 17 .
  • the recognition difficulty estimator calculates the final predicted recognition difficulty D by combining the above three factors as in Equation 4.
  • the difficulty prediction function f may utilize, but is not limited to, Support Vector Macnine (C. Cortes et al., "Support-vector networks.” Machine learning 20.3 (1995): 273-297.).
  • the detected faces are sorted according to the predicted difficulty of face recognition and used for resource adaptive face recognition model selection and execution scheduling.
  • 16 is an exemplary diagram of landmark-based facial posture determination in face recognition difficulty determination according to an embodiment.
  • the face angle ⁇ may be predicted as in [Equation 5]. For example, the more the face is profiled, the more negative ⁇ is.
  • 17 is an exemplary diagram of determining face blur in determining the difficulty of face recognition according to an embodiment.
  • 18 is a diagram for explaining content and resource adaptive face recognition model selection and execution scheduling according to an embodiment.
  • step PP5 the processor 110 of the face recognition apparatus 100 selects the currently available resources for faces sorted according to the predicted difficulty of face recognition (eg, sorted in ascending order of difficulty). Considering this, we proceed with the selection of a recognition model that can comprehensively optimize the recognition accuracy and delay time and the scheduling of execution. This corresponds to steps SS3 and SS4 described above with reference to FIG. 13 .
  • the face recognition accuracy ACC(M i ( fi )) is predicted.
  • the facial recognition accuracy of the model was measured on a face recognition benchmark dataset with varying difficulty (e.g., a Cross-Pose LFW dataset including various posture changes (T. Zheng et al., “Cross-Pose LFW: A Database for Studying Cross- Pose Face Recognition in Unconstrained Environments, “ Beijing University of Posts and Telecommunications, Tech. Rep 2018.), VGGFace2 dataset including various image quality changes (Q. Cao et al., “VGGFace2: A dataset for recognizing faces across pose and age,” F&G 2018.), and UHDB31 dataset (H.
  • a Cross-Pose LFW dataset including various posture changes T. Zheng et al., “Cross-Pose LFW: A Database for Studying Cross- Pose Face Recognition in Unconstrained Environments, “ Beijing University of Posts and Telecommunications, Tech. Rep 2018.
  • VGGFace2 dataset including various image quality changes Q. Cao et al., “VGGFace2:
  • the delay time L(M i , P i ) is predicted when the corresponding recognition model M i is performed by the processor P i .
  • the computational delay time can be predicted as the sum of the inference time of the model and the time when all tasks currently being performed by the processor are finished. That is, the operation delay time can be predicted as the sum of the inference time of the corresponding model in the processor P i and the time when all the tasks waiting in the work queue Q i of the processor P i are finished with reference to FIG. 18 , which will be described later.
  • an optimal ( fi , M i , P i ) combination is determined to maximize the target function [Equation 6] for the detected faces.
  • the scheduling is performed so that the total operation delay time does not exceed the application requirement L deadline of [Equation 7].
  • the recognition model set includes a high-computational recognition model (H), a low-computational recognition model (L) and a high-computational recognition model (ICN) and a high-computational recognition model (ICN).
  • the computational recognition model (H) may include an associated model (I+H).
  • a Residual block-based ArcFace network architecture for a heavy recognition model and a lightweight MobileFaceNets architecture for a lightweight recognition model (S. Chen et al., “MobileFaceNets: Efficient CNNs for Accurate Real-Time Face Verification on Mobile Devices,” CCBR 2018.), the ICN structure may be utilized with reference to FIG. 11 in the case of a low-quality face quality improvement model, but is not limited thereto.
  • the selectable processor set may include heterogeneous processors.
  • the selectable processor set may include a Mobile CPU (PU1), a Mobile GPU (PU2), and a Cloud GPU (PU3), but is not limited thereto, and may include processing units of various types and calculation methods. have.
  • Step SS3 described above with reference to FIG. 13 is a face recognition model to be applied to a face region and a face recognition model to be executed based on a predetermined target function according to the expected face recognition accuracy and the expected operation delay time of the face region.
  • determining a combination of devices That is, determining the recognition line means determining a face recognition model to be used for face recognition for a given face region and a face recognition device to execute the face recognition model.
  • Processors in the processor set each operate their own job queues (eg, Q1, Q2, and Q3), and fetch and execute jobs (tasks) from the job queues in a FIFO manner.
  • job queues eg, Q1, Q2, and Q3
  • the face recognition task of the corresponding face region is distributed along the recognition line determined in step SS3 .
  • the processor 110 may store a target face region and a face recognition model to be used (eg, L) in a work queue (eg, Q1) of a processor (eg, PU1) that will execute face recognition of the corresponding facial region.
  • Add job information including
  • 19 is an exemplary diagram of multi-processor parallel processing and pipelining for each region according to an embodiment.
  • the face recognition technology according to the embodiment (i) detects a face for each region in a high-definition urban spatial image, and (ii) recognizes individual faces are independent tasks, and are optimized through parallel processing and pipelining. it is possible to perform
  • FIG. 19 shows an example of parallel processing and pipelining for each region.
  • face detection for the first image area is performed by the mobile CPU (eg, Detection on 1)
  • face recognition DNN operations on faces detected in the first image area are performed in parallel on the mobile and cloud GPUs (eg, on the first image area) For example, Recognition on 1).
  • face detection for the second image region and the third image region, which are the next image regions is performed on the mobile CPU (eg, Detection on 2 and Detection on 3), so that the mobile and cloud GPUs continuously perform face recognition DNN Allows operations to be performed (eg, Recognition on 2).
  • the face recognition technique according to the embodiment is applicable to many useful mobile AR applications (eg, finding missing children, criminal tracking) based on face recognition, and for AR applications that need to simultaneously perform multiple DNN and rendering operations on a mobile device. It can be applied to mobile deep learning platforms.
  • the proposed mobile heterogeneous processor and cloud-based multi-DNN operation execution technique can be used not only in the face recognition field, but also in various mobile/embedded AI systems based on multi-DNN that are emerging recently, such as airport face recognition-based automatic immigration systems, IoT, and autonomous driving. .
  • the face recognition method according to the embodiment is implemented as Java-based software that can be performed on an Android device, and can be loaded and utilized in a number of commercial Android smartphones.
  • the DNN-based face recognition technology according to the embodiment may be implemented as Google TensorFlow, and may be converted into Google TensorFlow-Lite for Android and executed.
  • the method according to an embodiment of the present invention described above can be implemented as computer-readable code in a medium in which a program is recorded.
  • the computer-readable medium includes all kinds of recording devices in which data readable by a computer system is stored. Examples of computer-readable media include Hard Disk Drive (HDD), Solid State Disk (SSD), Silicon Disk Drive (SDD), ROM, RAM, CD-ROM, magnetic tape, floppy disk, optical data storage device, etc. There is this.
  • the face recognition method according to the embodiment may be stored in a computer-readable non-transitory recording medium in which a computer program including one or more instructions for executing the method is recorded.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Multimedia (AREA)
  • General Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Oral & Maxillofacial Surgery (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Human Computer Interaction (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (AREA)
  • Computational Linguistics (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • Molecular Biology (AREA)
  • Image Processing (AREA)
  • Image Analysis (AREA)

Abstract

본 발명은 얼굴 인식 방법 및 장치에 관한 것으로, 다중 딥 뉴럴 네트워크(Deep Neural Network; DNN) 기반 얼굴 인식 알고리즘의 최적 수행을 위하여 콘텐츠-자원 적응적 병렬처리 파이프라인을 이용하는 얼굴 인식 방법 및 장치를 제공한다.

Description

병렬처리 파이프라인을 이용한 다중 DNN 기반 얼굴 인식 방법 및 장치
본 발명은 다중 DNN 기반 얼굴 인식 방법 및 장치에 관한 것으로, 다중 딥 뉴럴 네트워크(Deep Neural Network; DNN) 기반 얼굴 인식 알고리즘의 최적 수행을 위하여 콘텐츠 및 자원 적응적 병렬처리 파이프라인을 이용하는 얼굴 인식 방법 및 장치에 관한 것이다.
이하에서 기술되는 내용은 본 발명의 실시예와 관련되는 배경 정보를 제공할 목적으로 기재된 것일 뿐이고, 기술되는 내용들이 당연하게 종래기술을 구성하는 것은 아니다.
얼굴 인식 알고리즘은 입력 이미지에서 얼굴 탐지를 위한 DNN 수행 후 탐지된 얼굴 당 얼굴 인식을 위한 DNN을 수행하는 다중 DNN 연산을 수반한다.
최근 모바일 기기에서 DNN 연산을 수행할 수 있는 플랫폼들이 개발되고 있다. 하지만 이와 같은 플랫폼들은 단일 DNN 연산을 실행하는 데에 머물러 복잡한 도심 공간 속 얼굴 인식에 요구되는 다중 DNN의 동시 수행을 효율적으로 지원하지 못한다. 또한, 다수의 작은 얼굴 인식에 긴 지연 시간이 소요됨에 따라 이동 중인 대상의 얼굴 인식을 제 때에 신속하게 수행하기 어려운 한계점이 있다.
특히 모바일 기기의 카메라로 도심 공간을 촬영 시 장면 내에 사람 수와 구성이 매우 동적으로 변화하므로 효과적인 얼굴 인식을 위해서는 탐지된 다수의 작은 얼굴 인식을 어떠한 얼굴 인식 알고리즘으로 어느 장치에서 실행할 것인지에 대한 동적 스케쥴링이 매우 중요하다.
자원 한정적인 모바일 기기에서 다수의 저화질 얼굴 인식을 위한 다중 DNN 연산을 효과적으로 수행할 수 있도록 하는 기술이 필요하다.
한편, 전술한 선행기술은 발명자가 본 발명의 도출을 위해 보유하고 있었거나, 본 발명의 도출 과정에서 습득한 기술 정보로서, 반드시 본 발명의 출원 전에 일반 공중에게 공개된 공지기술이라 할 수는 없다.
본 발명의 일 과제는 자원 한정적인 모바일 기기에서 다중 DNN 연산을 효과적으로 수행할 수 있는 얼굴 인식 방법 및 장치를 제공하는 것이다.
본 발명의 일 과제는 입력 이미지에 대한 다중 DNN 연산을 반복적으로 수행하는 얼굴 인식 알고리즘의 처리 속도를 최적화하기 위한 콘텐츠-적응적 병렬처리 파이프라인을 제공하는 것이다.
본 발명의 일 과제는 입력 이미지에 대한 다중 DNN 연산을 콘텐츠 및 자원 적응적(content and resource-adaptive) 병렬처리 파이프라인을 이용하여 동적으로 스케줄링하는 얼굴 인식 방법 및 장치를 제공하는 것이다.
본 발명의 목적은 이상에서 언급한 과제에 한정되지 않으며, 언급되지 않은 본 발명의 다른 목적 및 장점들은 하기의 설명에 의해서 이해될 수 있고, 본 발명의 실시 예에 의해 보다 분명하게 이해될 것이다. 또한, 본 발명의 목적 및 장점들은 청구범위에 나타낸 수단 및 그 조합에 의해 실현될 수 있음을 알 수 있을 것이다.
본 발명의 일 실시예에 따른 얼굴 인식 방법은, 탐지 라인, 제어 라인 및 복수 개의 인식 라인을 포함한 파이프라인을 이용한 얼굴 인식 방법으로서, 탐지 라인에 의해, 복수 개의 이미지 블록을 포함하는 입력 이미지로부터 이미지 블록 단위로 얼굴 영역을 탐지하는 단계, 제어 라인에 의해, 상기 탐지된 얼굴 영역의 얼굴 인식 난이도에 기반하여 복수 개의 얼굴 인식 모델 중 하나의 얼굴 인식 모델을 결정하는 단계, 상기 제어 라인에 의해, 상기 결정된 얼굴 인식 모델과 연계된 인식 라인으로 상기 탐지된 얼굴 영역을 분배하는 단계 및 상기 탐지된 얼굴 영역이 분배된 인식 라인에 의해, 상기 탐지된 얼굴 영역으로부터 얼굴 인식을 수행하는 단계를 포함할 수 있다.
본 발명의 일 실시예에 따른 얼굴 인식 장치는, 탐지 라인, 제어 라인 및 복수 개의 인식 라인을 포함한 파이프라인을 이용한 얼굴 인식 장치로서, 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는, 탐지 라인을 실행하여, 복수 개의 이미지 블록을 포함하는 입력 이미지로부터 이미지 블록 단위로 얼굴 영역을 탐지하고, 제어 라인을 실행하여, 상기 탐지된 얼굴 영역의 얼굴 인식 난이도에 기반하여 복수 개의 얼굴 인식 모델 중 하나의 얼굴 인식 모델을 결정하고, 상기 제어 라인을 실행하여, 상기 결정된 얼굴 인식 모델과 연계된 인식 라인으로 상기 탐지된 얼굴 영역을 분배하고, 상기 탐지된 얼굴 영역이 분배된 인식 라인을 실행하여, 상기 탐지된 얼굴 영역으로부터 얼굴 인식을 수행하도록 구성될 수 있다.
본 발명의 일 실시예에 따른 얼굴 인식 시스템은, 탐지 라인, 제어 라인 및 복수 개의 인식 라인을 포함한 파이프라인을 이용한 얼굴 인식 시스템으로서, 탐지 라인, 제어 라인 및 복수 개의 인식 라인 중 적어도 일부가 배치된 제 1 얼굴 인식 장치 및 상기 복수 개의 인식 라인 중 나머지가 배치된 제 2 얼굴 인식 장치를 포함하고, 상기 제 1 얼굴 인식 장치는, 상기 탐지 라인에 의해, 복수 개의 이미지 블록을 포함하는 입력 이미지로부터 이미지 블록 단위로 얼굴 영역을 탐지하고, 상기 제어 라인에 의해, 상기 탐지된 얼굴 영역의 얼굴 인식 난이도에 기반하여 복수 개의 얼굴 인식 모델 중 하나의 얼굴 인식 모델을 결정하고, 상기 제어 라인에 의해, 상기 탐지된 얼굴 영역을 상기 제 1 얼굴 인식 장치 및 상기 제 2 얼굴 인식 장치 중에서 상기 결정된 얼굴 인식 모델과 연계된 인식 라인이 배치된 장치로 분배하고, 상기 탐지된 얼굴 영역이 분배된 인식 라인에 의해 상기 탐지된 얼굴 영역에 대한 얼굴 인식이 수행되는 동안, 상기 탐지 라인에 의해 상기 입력 이미지의 다음 이미지 블록에 대한 얼굴 영역을 탐지하도록 구성될 수 있다.
본 발명의 일 실시예에 따른 탐지 라인, 제어 라인 및 복수 개의 인식 라인을 포함한 파이프라인을 이용하여 프로세서를 포함한 얼굴 인식 장치에 의해 실행되는 얼굴 인식 방법은, 탐지 라인에 의해, 입력 이미지로부터 이미지 블록 단위로 적어도 하나의 얼굴 영역을 탐지하는 단계, 제어 라인에 의해, 상기 적어도 하나의 얼굴 영역의 예상 얼굴 인식 난이도를 결정하는 단계, 상기 제어 라인에 의해, 상기 예상 얼굴 인식 난이도에 기반하여 상기 복수 개의 인식 라인 중 상기 적어도 하나의 얼굴 영역의 각각에 대한 얼굴 인식을 수행할 인식 라인을 결정하는 단계, 상기 제어 라인에 의해, 결정된 상기 인식 라인으로 상기 적어도 하나의 얼굴 영역을 분배하는 단계 및 상기 적어도 하나의 얼굴 영역이 분배된 인식 라인에 의해, 상기 적어도 하나의 얼굴 영역의 각각으로부터 얼굴 인식을 수행하는 단계를 포함할 수 있다.
본 발명의 일 실시예에 따른 탐지 라인, 제어 라인 및 복수 개의 인식 라인을 포함한 파이프라인을 이용한 얼굴 인식 장치는 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는, 탐지 라인을 실행하여, 입력 이미지로부터 이미지 블록 단위로 적어도 하나의 얼굴 영역을 탐지하고, 제어 라인을 실행하여, 상기 적어도 하나의 얼굴 영역의 예상 얼굴 인식 난이도를 결정하고, 상기 제어 라인을 실행하여, 상기 예상 얼굴 인식 난이도에 기반하여 상기 복수 개의 인식 라인 중 상기 적어도 하나의 얼굴 영역의 각각에 대한 얼굴 인식을 수행할 인식 라인을 결정하고, 상기 제어 라인을 실행하여, 결정된 상기 인식 라인으로 상기 적어도 하나의 얼굴 영역을 분배하도록 구성될 수 있다.
본 발명의 일 실시예에 따른 탐지 라인, 제어 라인 및 복수 개의 인식 라인을 포함한 파이프라인을 이용한 얼굴 인식 시스템은, 탐지 라인, 제어 라인 및 복수 개의 인식 라인 중 적어도 일부가 배치된 제 1 얼굴 인식 장치 및 상기 복수 개의 인식 라인 중 나머지가 배치된 제 2 얼굴 인식 장치를 포함하고, 상기 제 1 얼굴 인식 장치는, 상기 탐지 라인에 의해, 입력 이미지로부터 이미지 블록 단위로 적어도 하나의 얼굴 영역을 탐지하고, 상기 제어 라인에 의해, 상기 적어도 하나의 얼굴 영역의 예상 얼굴 인식 난이도를 결정하고, 상기 제어 라인에 의해, 상기 예상 얼굴 인식 난이도에 기반하여 상기 복수 개의 인식 라인 중 상기 적어도 하나의 얼굴 영역의 각각에 대한 얼굴 인식을 수행할 인식 라인을 결정하고, 상기 제어 라인에 의해, 결정된 상기 인식 라인으로 상기 적어도 하나의 얼굴 영역을 분배하고, 상기 적어도 하나의 얼굴 영역이 분배된 인식 라인에 의해 상기 탐지된 얼굴 영역에 대한 얼굴 인식이 수행되는 동안, 상기 탐지 라인에 의해 상기 입력 이미지의 다음 이미지 블록에 대한 얼굴 영역을 탐지하도록 구성될 수 있다.전술한 것 외의 다른 측면, 특징, 및 이점이 이하의 도면, 청구범위 및 발명의 상세한 설명으로부터 명확해질 것이다.
실시예에 의하면, 자원 한정적인 모바일 기기에서 고화질 입력 이미지로부터 얼굴 인식을 효과적으로 수행할 수 있다.
실시예에 의하면, 다중 DNN 연산의 처리 속도가 제고된다.
본 발명의 효과는 이상에서 언급된 것들에 한정되지 않으며, 언급되지 아니한 다른 효과들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
도 1은 실시예에 따른 얼굴 인식 시스템의 동작 환경의 개략적인 예시도이다.
도 2는 실시예에 따른 얼굴 인식 과정에서 실행되는 예시적인 다중 딥 뉴럴 네트워크(Deep Neural Network; DNN)를 설명하기 위한 도면이다.
도 3은 실시예에 따른 얼굴 인식 장치의 블록도이다.
도 4는 실시예에 따른 얼굴 인식 과정을 설명하기 위한 도면이다.
도 5는 실시예에 따른 얼굴 인식 방법의 흐름도이다.
도 6는 실시예에 따른 얼굴 인식 과정에서 이용하는 파이프라인을 설명하기 위한 도면이다.
도 7은 실시예에 따른 얼굴 인식 방법의 배경 제거를 예시적으로 보여주는 도면이다.
도 8은 실시예에 따른 얼굴 인식 방법의 얼굴 인식 모델 결정 과정을 설명하기 위한 도면이다.
도 9는 실시예에 따른 얼굴 인식 방법의 영역별 병렬처리 및 파이프라이닝 동작을 설명하기 위한 도면이다.
도 10은 실시예에 따른 얼굴 인식 방법의 성능을 보여주는 그래프이다.
도 11은 실시예에 따른 얼굴 인식 방법에서 사용하는 얼굴 인식 알고리즘의 신원 복원 모델을 예시적으로 설명하기 위한 도면이다.
도 12는 실시예에 따른 콘텐츠 및 자원 적응적 병렬처리 파이프라인을 설명하기 위한 도면이다.
도 13은 실시예에 따른 얼굴 인식 방법의 흐름도이다.
도 14는 얼굴 인식 과정의 모션 트래킹 과정을 설명하기 위한 도면이다.
도 15는 실시예에 따른 예상 얼굴 인식 난이도 결정 과정을 설명하기 위한 도면이다.
도 16은 실시예에 따른 얼굴 인식 난이도 결정에서 랜드마크 기반 얼굴 자세 결정의 예시도이다.
도 17은 실시예에 따른 얼굴 인식 난이도 결정에서 얼굴 블러 결정의 예시도이다.
도 18은 실시예에 따른 콘텐츠 및 자원 적응적 얼굴 인식 모델 선택 및 수행 스케줄링을 설명하기 위한 도면이다.
도 19는 실시예에 따른 다중 프로세서 병렬처리 및 영역별 파이프라이닝 동작의 예시도이다.
이하에서는 도면을 참조하여 본 발명을 보다 상세하게 설명한다. 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며, 여기에서 설명하는 실시 예들에 한정되지 않는다. 이하 실시 예에서는 본 발명을 명확하게 설명하기 위해서 설명과 직접적인 관계가 없는 부분을 생략하지만, 본 발명의 사상이 적용된 장치 또는 시스템을 구현함에 있어서, 이와 같이 생략된 구성이 불필요함을 의미하는 것은 아니다. 아울러, 명세서 전체를 통하여 동일 또는 유사한 구성요소에 대해서는 동일한 참조번호를 사용한다.
이하의 설명에서 제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 되며, 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 또한, 이하의 설명에서 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.
이하의 설명에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
이하 도면을 참고하여 본 발명을 상세히 설명하기로 한다.
도 1은 실시예에 따른 얼굴 인식 시스템의 동작 환경의 개략적인 예시도이다.
실시예에 따른 얼굴 인식 시스템(1000)은 복잡한 도심 공간에서의 고속, 고정밀 얼굴 인식(예: 실종 아동 찾기, 범인 추적)을 제공한다. 얼굴 인식 시스템(1000)은 모바일 이기종 프로세서(예를 들어 CPU 및 GPU) 및 클라우드를 활용하여 입력 이미지에 대한 얼굴 인식 과정을 병렬적으로 수행하고, 인식 결과를 실시간으로 디스플레이에 표시(예를 들어 증강 현실(Augmented Reality; AR) 형태로 표시)하여 사용자의 인지를 돕는다.
실시예에 따른 얼굴 인식 기술은 복잡도가 높은 공간에서 고정밀 얼굴 인식을 위한 기술로서, 딥 뉴럴 네트워크(DNN) 기반의 얼굴 인식 알고리즘에 적용되어, 이미지 기반 얼굴 인식의 처리 속도를 제고할 수 있다. 예를 들어 복잡도가 높은 공간은 많은 사람으로 붐비는 공간, 예를 들어 유동 인구가 많은 도심 공간, 출퇴근 시간의 환승역, 다수의 관중이 들어찬 스포츠 경기장 및 쇼핑몰 등을 포함한다.
실시예에 따른 얼굴 인식 과정은 복잡도가 높은 공간에서 예를 들어 스마트폰, 웨어러블 글래스(wearable glasses) 또는 CCTV(Closed Circuit Television)와 같은 단말의 카메라로 획득한 영상에 포함된 먼 거리에 있는 다수의 작은 얼굴을 신속하게 인식할 수 있다.
실시예에 따른 얼굴 인식 시스템(1000)은 적어도 하나의 얼굴 인식 장치를 포함할 수 있다. 예를 들어 얼굴 인식 시스템(1000)은 제 1 얼굴 인식 장치(100) 및 제 2 얼굴 인식 장치(200)를 포함할 수 있으며, 이제 제한되지 않는다. 얼굴 인식 시스템(1000)은 하나 이상의 얼굴 인식 장치를 포함할 수 있다.
제 1 얼굴 인식 장치(100)와 제 2 얼굴 인식 장치(200)는 서로 협업하여 입력 이미지에 대한 얼굴 인식 작업을 수행할 수 있다.
예를 들어, 입력 이미지에서 탐지된 얼굴 영역의 얼굴 인식 난이도에 따라 상대적으로 얼굴 인식 난이도가 낮은 얼굴 영역은 제 1 얼굴 인식 장치(100)에서 처리하고, 상대적으로 얼굴 인식 난이도가 높은 얼굴 영역은 제 2 얼굴 인식 장치(200)에서 처리할 수 있다. 이 과정에서 제 1 얼굴 인식 장치(100)와 제 2 얼굴 인식 장치는 서로 다른 얼굴 인식 모델을 실행할 수 있다.
제 1 얼굴 인식 장치(100) 및 제 2 얼굴 인식 장치(200)는 실시예에 따른 얼굴 인식 방법을 실행하여 입력 얼굴 이미지에 나타난 얼굴을 인식할 수 있다.
제 1 얼굴 인식 장치(100) 및 제 2 얼굴 인식 장치(200)는 기학습된 얼굴 인식 모델을 이용하여 실시예에 따른 얼굴 인식 방법을 실행할 수 있다. 제 1 얼굴 인식 장치(100) 및 제 2 얼굴 인식 장치(200)는 기학습된 적어도 하나의 얼굴 인식 모델을 네트워크(400)를 통해 수신할 수 있다.
예를 들어 제 1 얼굴 인식 장치(100)는 제 2 얼굴 인식 장치(200)에서 학습된 얼굴 인식 모델을 네트워크(300)를 통해 수신할 수 있다. 예를 들어 제 1 얼굴 인식 장치(100)는 온디바이스 방식으로 얼굴 인식 모델을 학습시키고, 학습된 얼굴 인식 모델을 네트워크(300)를 통해 연결된 외부 장치, 예를 들어 제 2 얼굴 인식 장치(200)로 전송할 수 있다.
여기서 얼굴 인식 모델은 얼굴 탐지를 위한 DNN, 탐지된 얼굴에 대한 신원 복원 모델(Identity Clarification Network; ICN) 및 얼굴 인식 DNN을 포함하는 다중 DNN 구조를 가질 수 있다. 얼굴 인식 모델은 복수의 얼굴 인식 모델을 포함할 수 있다.
제 1 얼굴 인식 장치(100)는 입력 이미지를 직접 획득할 수 있다. 예를 들어, 제 1 얼굴 인식 장치(100)는 카메라를 포함한 단말로 구현될 수 있다. 제 1 얼굴 인식 장치(100)는 네트워크(300)를 통해 외부 장치로부터 입력 이미지를 획득할 수 있다.
여기서 입력 이미지는 일련의 이미지 프레임을 포함하는 동영상, 동영상의 각 프레임 또는 정지 영상을 의미한다.
일 예에서, 제 1 얼굴 인식 장치(100)는 단말로 구현될 수 있다. 일 예에서, 제 2 얼굴 인식 장치(200)는 서버로 구현될 수 있다.
여기서 단말은 사용자가 조작하는 데스크 탑 컴퓨터, 스마트폰, 노트북, 태블릿 PC, 스마트 TV, 휴대폰, PDA(personal digital assistant), 랩톱, 디지털 카메라, 가전기기 및 기타 모바일 또는 비모바일 컴퓨팅 장치일 수 있으나, 이에 제한되지 않는다. 또한, 단말은 통신 기능 및 데이터 프로세싱 기능을 구비한 시계, 안경, 헤어 밴드 및 반지 등의 웨어러블 디바이스일 수 있다.
서버는 실시예에 따른 얼굴 인식 방법을 실행하는 어플리케이션 서버 또는 클라우드 서버일 수 있으나 이에 제한되지 않는다.
제 1 얼굴 인식 장치(100) 및 제 2 얼굴 인식 장치(200)는 실시예에 따른 얼굴 인식 방법을 실행하는 어플리케이션(application) 또는 앱(app)을 실행하여 입력 이미지에 대한 얼굴 인식을 수행할 수 있다.
네트워크(300)는 유선 및 무선 네트워크, 예를 들어 LAN(local area network), WAN(wide area network), 인터넷(internet), 인트라넷(intranet) 및 엑스트라넷(extranet), 그리고 모바일 네트워크, 예를 들어 셀룰러, 3G, LTE, 5G, WiFi 네트워크, 애드혹 네트워크 및 이들의 조합을 비롯한 임의의 적절한 통신 네트워크 일 수 있다.
네트워크(300)는 허브, 브리지, 라우터, 스위치 및 게이트웨이와 같은 네트워크 요소들의 연결을 포함할 수 있다. 네트워크(300)는 인터넷과 같은 공용 네트워크 및 안전한 기업 사설 네트워크와 같은 사설 네트워크를 비롯한 하나 이상의 연결된 네트워크들, 예컨대 다중 네트워크 환경을 포함할 수 있다. 네트워크(300)에의 액세스는 하나 이상의 유선 또는 무선 액세스 네트워크들을 통해 제공될 수 있다.
도 2는 실시예에 따른 얼굴 인식 과정에서 실행되는 예시적인 다중 딥 뉴럴 네트워크(Multi-DNN)를 설명하기 위한 도면이다.
얼굴 인식 과정에서 실행되는 다중 딥 뉴럴 네트워크는 얼굴 탐지(face detection) 모델, 신원 복원(identity clarification) 모델 및 얼굴 인식(face recognition) 모델을 포함할 수 있다.
얼굴 탐지 모델은 이미지를 입력받고, 이미지에 포함된 적어도 하나의 얼굴 영역을 출력한다. 신원 복원 모델은 적어도 하나의 얼굴 영역의 각 얼굴 영역을 입력받고, 화질을 개선하여 출력한다. 얼굴 인식 모델은 각 얼굴 영역을 입력받고, 특징 벡터를 출력한다.
얼굴 탐지 모델은 입력 이미지에 대하여 실행되고, 신원 복원 모델 및 얼굴 인식 모델은 입력 이미지에 포함된 얼굴 영역마다 실행되므로 입력 이미지에 포함된 얼굴 영역이 증가함에 따라 다중 딥 뉴럴 네트워크의 연산 복잡도가 높아지게 된다.
실시예에 따른 얼굴 인식 시스템은 자원 제한적인 모바일 기기와 클라우드에서 실시예에 따른 얼굴 인식 과정을 동시에 병렬적으로 수행할 수 있다. 이를 위하여 입력 이미지를 복수의 이미지 블록으로 분할하고, 이미지 블록 단위로 얼굴 인식을 수행한다.
또한, 실시예에 따른 얼굴 인식 시스템은 입력 이미지의 얼굴 영역의 인식 난이도에 따라 개별 얼굴 영역에 적용할 얼굴 인식 모델을 적응적으로 결정한다. 예를 들어, 얼굴 인식 난이도가 높을수록 연산 복잡도가 높은 얼굴 인식 모델을 선택할 수 있다.
도 3은 실시예에 따른 얼굴 인식 장치의 블록도이다.
실시예에 따른 제 1 얼굴 인식 장치(100)는 메모리(120) 및 프로세서(110)를 포함할 수 있다. 이와 같은 구성은 예시적인 것이고, 제 1 얼굴 인식 장치(100)는 도 3에 도시된 구성 중 일부를 포함하거나, 도 3에 도시되지 않았으나 장치의 작동을 위해 필요한 구성을 추가로 포함할 수 있다.
프로세서(110)는 일종의 중앙처리장치로서, 메모리(120)에 저장된 하나 이상의 명령어를 실행하여 제 1 얼굴 인식 장치(100)의 동작을 제어할 수 있다.
프로세서(110)는 데이터를 처리할 수 있는 모든 종류의 장치를 포함할 수 있다. 프로세서(110)는 예를 들어 프로그램 내에 포함된 코드 또는 명령으로 표현된 기능을 수행하기 위해 물리적으로 구조화된 회로를 갖는, 하드웨어에 내장된 데이터 처리 장치를 의미할 수 있다.
이와 같이 하드웨어에 내장된 데이터 처리 장치의 일 예로서, 마이크로프로세서(microprocessor), 중앙처리장치(central processing unit: CPU), 프로세서 코어(processor core), 멀티프로세서(multiprocessor), 그래픽 처리 유닛(Graphic Processing Unit; GPU), ASIC(application-specific integrated circuit), FPGA(field programmable gate array) 등의 처리 장치를 망라할 수 있으나, 이에 한정되는 것은 아니다. 프로세서(110)는 하나 이상의 프로세서를 포함할 수 있다. 프로세서(110)는 이기종 프로세서, 예를 들어 CPU 및 GPU를 포함할 수 있다.
메모리(120)는 실시예에 따른 얼굴 인식 과정을 실행하기 위한 하나 이상의 명령을 포함하는 프로그램을 저장할 수 있다. 프로세서(110)는 메모리(120)에 저장된 프로그램, 명령어들에 기반하여 실시예에 따른 얼굴 인식 과정을 실행할 수 있다.
메모리(120)는 얼굴 인식을 위해 실행되는 DNN 기반 모델(예를 들어, 얼굴 탐지 모델, 신원 복원 모델 및/또는 복수의 얼굴 인식 모델)을 저장하고, 얼굴 인식을 위한 연산 과정에서 발생하는 중간 데이터 및 연산 결과 등을 더 저장할 수 있다. 예를 들어 메모리(120)는 도 4 및 도 8을 참조하여 후술할 저복잡도 얼굴 인식 모델(Lightweight Face Recognition Model)을 저장할 수 있다.
메모리(120)는 내장 메모리 및/또는 외장 메모리를 포함할 수 있으며, DRAM, SRAM, 또는 SDRAM 등과 같은 휘발성 메모리, OTPROM(one time programmable ROM), PROM, EPROM, EEPROM, mask ROM, flash ROM, NAND 플래시 메모리, 또는 NOR 플래시 메모리 등과 같은 비휘발성 메모리, SSD, CF(compact flash) 카드, SD 카드, Micro-SD 카드, Mini-SD 카드, Xd 카드, 또는 메모리 스틱(memory stick) 등과 같은 플래시 드라이브, 또는 HDD와 같은 저장 장치를 포함할 수 있다. 메모리(120)는 자기 저장 매체(magnetic storage media) 또는 플래시 저장 매체(flash storage media)를 포함할 수 있으나, 이에 한정되는 것은 아니다.
실시예에 따른 제 1 얼굴 인식 장치(100)는 통신부(130)를 더 포함할 수 있다.
통신부(130)는 제 1 얼굴 인식 장치(100)의 데이터의 송신 및 수신을 위한 통신 인터페이스를 포함한다. 통신부(130)는 제 1 얼굴 인식 장치(100)에게 다양한 방식의 유무선 통신 경로를 제공하여 제 1 얼굴 인식 장치(100)를 도 1을 참조하여 네트워크(300)와 연결할 수 있다.
제 1 얼굴 인식 장치(100)는 통신부(130)를 통해 입력 이미지, 학습 데이터, 중간 데이터 및 얼굴 인식 결과 추출된 특징 벡터 등을 송/수신할 수 있다. 통신부(130)는 예를 들어 각종 무선 인터넷 모듈, 근거리 통신 모듈, GPS 모듈, 이동 통신을 위한 모뎀 등에서 적어도 하나 이상을 포함하도록 구성될 수 있다.
제 1 얼굴 인식 장치(100)는 프로세서(110), 메모리(120) 및 통신부(130) 간에 물리적/논리적 연결 경로를 제공하는 버스(140)를 더 포함할 수 있다.
실시예에 따른 얼굴 인식 과정은 파이프라인을 이용하여 병렬적으로 처리된다. 파이프라인은 탐지 라인, 제어 라인 및 복수 개의 인식 라인을 포함할 수 있으며, 도 6을 참조하여 파이프라인에 대하여 구체적으로 살펴본다.
제 1 얼굴 인식 장치(100)는 적어도 하나의 프로세서(110)를 포함할 수 있다. 적어도 하나의 프로세서(110)는 탐지 라인을 실행하여, 복수 개의 이미지 블록을 포함하는 입력 이미지로부터 이미지 블록 단위로 얼굴 영역을 탐지하고, 제어 라인을 실행하여, 탐지된 얼굴 영역의 얼굴 인식 난이도에 기반하여 복수 개의 얼굴 인식 모델 중 하나의 얼굴 인식 모델을 결정하고, 제어 라인을 실행하여, 결정된 얼굴 인식 모델과 연계된 인식 라인으로 탐지된 얼굴 영역을 분배하고, 탐지된 얼굴 영역이 분배된 인식 라인을 실행하여, 탐지된 얼굴 영역으로부터 얼굴 인식을 수행하도록 구성될 수 있다. 이에 대하여는 도 5를 참조하여 후술한다.
적어도 하나의 프로세서(110)는, 얼굴 영역을 탐지하기 위하여, 입력 이미지를 복수 개의 이미지 블록으로 분할하고, 각 이미지 블록의 엣지 밀도에 기반하여 각 이미지 블록에서 배경 영역을 제거하도록 구성될 수 있다. 이에 대하여는 도 7을 참조하여 후술한다.
적어도 하나의 프로세서(110)는, 탐지된 얼굴 영역의 얼굴 인식 난이도에 기반하여 복수 개의 얼굴 인식 모델 중에서 하나의 얼굴 인식 모델을 결정하기 위하여, 탐지된 얼굴 영역에 나타난 얼굴 화질 및 얼굴 자세에 기반하여, 얼굴 인식 난이도를 결정하도록 구성될 수 있다. 적어도 하나의 프로세서(110)는, 얼굴 인식 난이도를 결정하기 위하여, 얼굴 영역으로부터 얼굴 랜드마크를 추출하고, 얼굴 랜드마크 간의 위치 관계에 기반하여 얼굴 자세를 결정하도록 구성될 수 있다. 이에 대하여는 도 8을 참조하여 살펴본다.
일 예에서 탐지 라인, 제어 라인 및 복수 개의 인식 라인 중 적어도 일부는 제 1 얼굴 인식 장치(100)에 배치되고, 복수 개의 인식 라인 중 나머지는 제 2 얼굴 인식 장치(200)에 배치될 수 있다. 적어도 하나의 프로세서(110)는, 탐지된 얼굴 영역을 분배하기 위하여, 탐지된 얼굴 영역에 대한 얼굴 인식을 제 1 얼굴 인식 장치로부터 제 2 얼굴 인식 장치로 오프로딩(offloading)하도록 구성될 수 있다.
예를 들어, 제 2 얼굴 인식 장치(200)에 배치된 인식 라인과 연계된 얼굴 인식 모델은 제 1 얼굴 인식 장치(100)에 배치된 인식 라인과 연계된 얼굴 인식 모델 보다 연산 복잡도가 더 높은 얼굴 인식 모델일 수 있다. 이에 대하여는 도 6, 도 8 및 도 9를 참조하여 후술한다.
적어도 하나의 프로세서(110)는, 얼굴 인식을 수행하기 위하여, 앞서 결정된 얼굴 인식 모델을 실행하여 탐지된 얼굴 영역에 나타난 얼굴의 특징 벡터를 추출하도록 구성될 수 있다.
적어도 하나의 프로세서(110)는, 얼굴 영역을 탐지하기 위하여, 인식 라인에 의해 탐지된 얼굴 영역에 대한 얼굴 인식이 수행되는 동안, 탐지 라인에 의해 입력 이미지의 다음 이미지 블록에 대한 얼굴 영역을 탐지하도록 구성될 수 있다. 이에 대하여는 도 6 및 도 9를 참조하여 후술한다.
적어도 하나의 프로세서(110)는, 입력 이미지에 대한 복수 개의 인식 라인의 얼굴 인식 결과에 기반하여 탐색 대상과 매칭되는 얼굴 영역을 결정하도록 구성될 수 있다.
한편, 제 2 얼굴 인식 장치(200)는 메모리(미도시) 및 프로세서(미도시)를 포함할 수 있다.
제 2 얼굴 인식 장치(200)는 제 1 얼굴 인식 장치(100)로부터 얼굴 영역 정보를 수신하고, 수신된 얼굴 영역 정보에 대한 얼굴 인식을 수행하고, 얼굴 인식 결과를 제 1 얼굴 인식 장치(100)로 전송할 수 있다.
이를 위하여, 제 2 얼굴 인식 장치(200)의 메모리는 도 4 및 도 8을 참조하여 후술할 신원 복원 모델(ICN) 및 고복잡도 얼굴 인식 모델(Heavy Face Recognition Model)을 저장할 수 있다.
제 2 얼굴 인식 장치(200)의 프로세서는 제 1 얼굴 인식 장치(100)로부터 오프로딩(offloading)된 개별 얼굴 영역에 대한 얼굴 인식을 수행할 수 있다.
이를 위하여, 제 2 얼굴 인식 장치(200)의 프로세서는 메모리에 저장된 신원 복원 모델(ICN) 및/또는 고복잡도 얼굴 인식 모델(Heavy Face Recognition Model)을 실행하여 제 1 얼굴 인식 장치(100)로부터 수신한 얼굴 영역 정보에 대한 얼굴 인식을 수행하도록 구성될 수 있다. 일 예에서 제 2 얼굴 인식 장치(200)의 프로세서는 복수의 GPU(Graphic Processing Unit)를 포함할 수 있다.
실시예에 따른 제 1 얼굴 인식 장치(100)에 있어서, 적어도 하나의 프로세서(110)를 포함하고, 적어도 하나의 프로세서(110)는, 탐지 라인을 실행하여, 입력 이미지로부터 이미지 블록 단위로 적어도 하나의 얼굴 영역을 탐지하고, 제어 라인을 실행하여, 적어도 하나의 얼굴 영역의 예상 얼굴 인식 난이도를 결정하고, 제어 라인을 실행하여, 예상 얼굴 인식 난이도에 기반하여 복수 개의 인식 라인 중 적어도 하나의 얼굴 영역의 각각에 대한 얼굴 인식을 수행할 인식 라인을 결정하고, 제어 라인을 실행하여, 결정된 인식 라인으로 적어도 하나의 얼굴 영역을 분배하도록 구성될 수 있다.
적어도 하나의 프로세서(110)는, 예상 얼굴 인식 난이도를 결정하기 위하여, 얼굴 영역의 얼굴 화질, 얼굴 자세 및 얼굴 블러 중 적어도 하나에 기반하여 적어도 하나의 얼굴 영역의 각각의 예상 얼굴 인식 난이도를 결정하도록 구성될 수 있다.
적어도 하나의 프로세서(110)는, 인식 라인을 결정하기 위하여, 예상 얼굴 인식 난이도의 오름차순으로 적어도 하나의 얼굴 영역의 각 얼굴 영역의 인식 라인을 결정하도록 구성될 수 있다.
적어도 하나의 프로세서(110)는, 인식 라인을 결정하기 위하여, 얼굴 영역의 예상 얼굴 인식 정확도 및 예상 연산 지연 시간에 따른 소정의 목표 함수에 기반하여 얼굴 영역에 적용할 얼굴 인식 모델 및 얼굴 인식 모델을 실행할 얼굴 인식 장치의 조합을 결정하도록 구성될 수 있다.
일 예에서, 탐지 라인, 상기 제어 라인 및 상기 복수 개의 인식 라인 중 적어도 일부는 제 1 얼굴 인식 장치(100)에 배치되고, 복수 개의 인식 라인 중 나머지는 제 2 얼굴 인식 장치(200)에 배치되고, 적어도 하나의 프로세서(110)는, 적어도 하나의 얼굴 영역을 분배하기 위하여, 적어도 하나의 얼굴 영역 중 적어도 일부에 대한 얼굴 인식을 제 1 얼굴 인식 장치(100)로부터 제 2 얼굴 인식 장치(200)로 오프로딩(offloading)하도록 구성될 수 있다.
적어도 하나의 프로세서(110)는, 적어도 하나의 얼굴 영역이 분배된 인식 라인에 의해 적어도 하나의 얼굴 영역에 대한 얼굴 인식이 수행되는 동안, 탐지 라인에 의해 입력 이미지의 다음 이미지 블록에 대한 얼굴 영역을 탐지하도록 구성될 수 있다.
적어도 하나의 프로세서(110)는, 입력 이미지에 대한 복수 개의 인식 라인의 얼굴 인식 결과에 기반하여 탐색 대상과 매칭되는 얼굴 영역을 결정하도록 구성될 수 있다.
얼굴 인식 장치.
입력 이미지는 일련의 이미지 프레임을 포함하고, 적어도 하나의 프로세서는(110), 일련의 이미지 프레임의 연속한 이미지 프레임 간 얼굴 영역 이동 정보에 기반하여 적어도 하나의 얼굴 영역의 각각에 대응하는 기 인식 완료된 얼굴 영역을 탐색하고, 탐색의 결과에 따라 기 인식 완료된 얼굴 영역의 얼굴 인식 정보를 재사용하도록 구성될 수 있다.
실시예에 의하여, 탐지 라인, 제어 라인 및 복수 개의 인식 라인을 포함한 파이프라인을 이용한 얼굴 인식 시스템이 제공된다.
실시예에 따른 얼굴 인식 시스템은, 탐지 라인, 제어 라인 및 복수 개의 인식 라인 중 적어도 일부가 배치된 제 1 얼굴 인식 장치(100) 및 복수 개의 인식 라인 중 나머지가 배치된 제 2 얼굴 인식 장치(200)를 포함하고, 제 1 얼굴 인식 장치(100)는, 탐지 라인에 의해, 입력 이미지로부터 이미지 블록 단위로 적어도 하나의 얼굴 영역을 탐지하고, 제어 라인에 의해, 적어도 하나의 얼굴 영역의 예상 얼굴 인식 난이도를 결정하고, 제어 라인에 의해, 예상 얼굴 인식 난이도에 기반하여 복수 개의 인식 라인 중 적어도 하나의 얼굴 영역의 각각에 대한 얼굴 인식을 수행할 인식 라인을 결정하고, 제어 라인에 의해, 결정된 인식 라인으로 적어도 하나의 얼굴 영역을 분배하고, 적어도 하나의 얼굴 영역이 분배된 인식 라인에 의해 탐지된 얼굴 영역에 대한 얼굴 인식이 수행되는 동안, 탐지 라인에 의해 입력 이미지의 다음 이미지 블록에 대한 얼굴 영역을 탐지하도록 구성될 수 있다.도 4는 실시예에 따른 얼굴 인식 과정을 설명하기 위한 도면이다.
실시예에 따른 얼굴 인식 방법은 제 1 얼굴 인식 장치(100) 및 제 2 얼굴 인식 장치(200)에 의해 도 4에 도시된 단계(P1, P2, P3, P4, P5_1, P5_2, P5_3, P6)에 의하여 수행된다.
입력 이미지(Input frame)에 대한 얼굴 인식 과정에서 도 4에 도시된 단계(P1, P2, P3, P4, P5_1, P5_2, P5_3, P6)의 전부 또는 일부가 수행될 수 있다. 도 4에 도시된 단계(P1, P2, P3, P4, P5_1, P5_2, P5_3, P6)의 수행 순서는 변경될 수 있다. 예를 들어, 단계(P2)를 단계(P1) 보다 먼저 수행하거나 또는 반대일 수 있다.
단계(P1)에서 제 1 얼굴 인식 장치(100)는 입력 이미지(Input Frame)를 획득한다. 예를 들어 AR 글래스 또는 스마트폰이 촬영한 카메라 프레임 입력을 실시간으로 획득할 수 있다.
단계(P1)에서 제 1 얼굴 인식 장치(100)는 입력 이미지(Input frame)를 복수의 이미지 블록으로 분할하고, 이미지 블록 단위로 콘텐츠-적응적 병렬처리 파이프라인(예를 들어 탐지 라인)에 페치(fetch)한다. 예를 들어 입력 이미지를 n x m 개(n, m은 양의 정수)의 이미지 블록으로 분할할 수 있다. 예를 들어 입력 이미지를 동일한 폭과 너비의 이미지 블록으로 분할할 수 있다.
이에 따라 이미지 영역별 병렬처리 및 파이프라이닝이 시작되며, 입력 프레임을 이미지 블록별로 나누어 얼굴 탐지를 수행하고, 탐지된 얼굴 영역별로 모바일 CPU, GPU 및 클라우드 GPU를 활용한 병렬처리 및 파이프라이닝을 제공하여 얼굴 인식에 소요되는 시간을 최적화할 수 있게 된다.
단계(P2)에서 제 1 얼굴 인식 장치(100)는 단계(P1)에서 페치(fetch)된 이미지 블록에 대하여 얼굴 탐지 DNN을 수행하기 전 엣지 탐지 알고리즘을 수행하여 얼굴이 존재하지 않는 배경 영역을 제거(Edge-Based Background Filtering)한다.
단계(P2)는 입력 프레임의 이미지블록별로 엣지(윤곽선)를 탐지하여, 엣지 밀도가 낮은 영역은 배경 영역으로 간주 및 후속 처리에서 배제하여 불필요한 연산을 줄이도록 한다.
다른 예에서, 단계(P1)에 앞서 단계(P2)를 실행할 수 있다. 예를 들어, 제 1 얼굴 인식 장치(100)는 단계(P2)에서 입력 이미지에 대하여 엣지 탐지 알고리즘을 수행하여 배경 영역을 제거한 나머지 영역에 대하여 단계(P1)에서 복수의 이미지 블록으로 분할하여 파이프라인(예를 들어 탐지 라인)에 페치할 수 있다.
단계(P3)에서 제 1 얼굴 인식 장치(100)는 배경 영역이 제거된 이미지 블록에 대하여 얼굴 탐지 모델을 실행하여 얼굴 영역을 탐지한다. 여기서 얼굴 탐지 모델은 RetinaFace 구조를 활용할 수 있다.
일 예에서 단계(P3)는 파이프라인의 탐지 라인에서 실행될 수 있다. 예를 들어 탐지 라인은 제 1 얼굴 인식 장치(100)의 적어도 하나의 프로세서(110) 중 CPU에서 실행될 수 있다.
단계(P3)에서 탐지된 얼굴 영역은 얼굴 영역 단위로 파이프라인의 제어 라인으로 전달된다.
단계(P4)에서 제 1 얼굴 인식 장치(100)는 탐지된 얼굴 영역에 대하여 얼굴 인식 난이도(예를 들어 탐지된 얼굴의 화질 및 자세에 기반하여 예측)에 따라 탐지된 얼굴 영역에 대한 얼굴 인식 연산을 수행할 얼굴 인식 모델을 결정(Variation-Adaptive Face Recognition)한다. 이로써 얼굴 인식 난이도에 따라 얼굴 인식 DNN의 복잡도를 적응적으로 조절할 수 있고, 높은 얼굴 인식 정확도를 얻는 동시에 수행 시간을 최적화할 수 있다.
일 예에서 단계(P4)는 파이프라인의 제어 라인에서 실행될 수 있다. 예를 들어 제어 라인은 제 1 얼굴 인식 장치(100)의 적어도 하나의 프로세서(110) 중 CPU에서 실행될 수 있다.
단계(P4)는 탐지된 얼굴 영역의 얼굴 인식 난이도에 따라 연산복잡도를 달리하는 복수 개의 얼굴 인식 모델 중 하나를 결정한다. 파이프라인은 복수 개의 인식 라인을 포함하며, 각 인식 라인은 각 얼굴 인식 모델과 연계되어 할당된다.
단계(P4)에서 결정된 얼굴 인식 모델과 연계된 인식 라인으로 얼굴 영역을 분배한다. 예를 들어 단계(P4)에서 단계(P5_1), 단계(P5_2) 및 단계(P5_3) 중 하나와 연계된 인식 라인으로 얼굴 영역을 분배한다. 이로써, 입력 이미지의 서로 다른 영역에 대한 얼굴 인식 연산을 제 1 얼굴 인식 장치(100)의 이기종 프로세서(예를 들어, 모바일 CPU 및 GPU)와 제 2 얼굴 인식 장치(200)의 프로세서(예를 들어 클라우드 서버의 GPU)에서 병렬적으로 수행하게 된다.
한편, 단계(P5_1) 및 단계(P5_2)는 제 2 얼굴 인식 장치(200)에 의해 수행될 수 있다. 이를 위하여 제 1 얼굴 인식 장치(200)는 단계(P5_1) 또는 단계(P5_2)로 분배된 얼굴 영역을 단계(P5_1)과 연계된 인식 라인 또는 단계(P5_2)과 연계된 인식 라인으로 전송한다. 일 예에서 인식 라인은 인식 라인이 배치된 얼굴 인식 장치의 GPU에서 실행될 수 있다.
단계(P5_1)는 얼굴 영역의 화질을 개선하는 신원 복원 모델을 실행하고, 단계(P5_2)는 각각 얼굴 인식 난이도가 높은 얼굴 영역을 처리하는 고복잡도 얼굴 인식 모델(Heavy Face Recognition Model)을 실행한다. 단계(5_3)은 얼굴 인식 난이도가 낮은 얼굴 영역을 처리하는 저복잡도 얼굴 인식 모델(Lightweight Face Recognition Model)을 실행한다.
예를 들어 신원 복원 모델은 후술할 도 11에 도시된 네트워크 구조를 활용할 수 있다. 예를 들어, 고복잡도 얼굴 인식 모델(Heavy Face Recognition Model)은 잔차 블록(Residual block) 기반 ArcFace 네트워크 구조를 활용할 수 있다. 예를 들어, 저복잡도 얼굴 인식 모델(Lightweight Face Recognition Model)은 경량 MobileFaceNets 구조를 활용할 수 있다.
최신 스마트폰에서 고복잡도 얼굴 인식 모델과 저복잡도 인식 모델은 약 20배 정도의 복잡도 차이를 보인다(예: LG V50에서 ArcFace 모델의 경우 287 ms 수행 시간이 소요되며, MobileFaceNets의 경우 14 ms의 수행 시간이 소요된다).
단계(P6)에서 각 얼굴 인식 모델의 인식 결과를 통합하고 탐색 대상과 매칭되는 얼굴 영역 및/또는 탐색 대상과 얼굴 영역들 간의 유사도를 입력 이미지(Input Frame)에 렌더링하여 표시한다.
도 5는 실시예에 따른 얼굴 인식 방법의 흐름도이다.
실시예에 따른 얼굴 인식 방법은, 탐지 라인, 제어 라인 및 복수 개의 인식 라인을 포함한 파이프라인을 이용하고, 탐지 라인에 의해, 복수 개의 이미지 블록을 포함하는 입력 이미지로부터 이미지 블록 단위로 얼굴 영역을 탐지하는 단계(S1), 제어 라인에 의해, 단계(S1)에서 탐지된 얼굴 영역의 얼굴 인식 난이도에 기반하여 복수 개의 얼굴 인식 모델 중 하나의 얼굴 인식 모델을 결정하는 단계(S2), 제어 라인에 의해, 단계(S2)에서 결정된 얼굴 인식 모델과 연계된 인식 라인으로 단계(S1)에서 탐지된 얼굴 영역을 분배하는 단계(S3) 및 탐지된 얼굴 영역이 분배된 인식 라인에 의해, 탐지된 얼굴 영역으로부터 얼굴 인식을 수행하는 단계(S4)를 포함할 수 있다.
단계(S1) 내지 단계(S3)은 제 1 얼굴 인식 장치(100)에 의해 실행되고, 제 1 얼굴 인식 장치(100)는 파이프라인의 탐지 라인, 제어 라인 및 복수 개의 인식 라인 중 적어도 일부를 실행 및 관리한다.
단계(S1)에서 제 1 얼굴 인식 장치(100)는 탐지 라인에 의해, 복수 개의 이미지 블록을 포함하는 입력 이미지로부터 이미지 블록 단위로 얼굴 영역을 탐지한다. 단계(S1)은 도 4를 참조하여 단계(P1), 단계(P2) 및 단계(P3)에 대응한다.
단계(S1)은 입력 이미지를 복수 개의 이미지 블록으로 분할하는 단계(도 4를 참조하여 단계(P1)) 및 각 이미지 블록의 엣지 밀도에 기반하여 각 이미지 블록에서 배경 영역을 제거하는 단계(도 4의 단계(P2))를 포함할 수 있다.
이하에서 도 7을 참조하여 배경 영역 제거에 대하여 살펴본다.
도 7은 실시예에 따른 얼굴 인식 방법의 배경 제거를 예시적으로 보여주는 도면이다.
복잡한 도심 공간 이미지에 얼굴 탐지 DNN을 수행하는 경우, 고화질 이미지를 처리해야 하기 때문에 긴 지연 시간이 발생한다. 이를 최적화하기 위해, 이미지 내에서 얼굴이 존재하지 않는 영역을 걸러낸 후 나머지 영역에 대해 얼굴 탐지를 수행한다. 이미지 내에서 얼굴이 존재하지 않는 영역을 걸러내는 과정을 엣지 탐지 기반 배경 영역 제거(Edge-Based Background Filtering)이라고 한다.
입력 이미지에서 엣지 탐지를 수행하는 경우, 얼굴이 존재하지 않는 배경 영역을 탐지할 수 있다.
일 예에서, 입력 이미지를 블록 단위로 나누어, 엣지 밀도가 기준 이하인 블록은 제거하고, 나머지 영역에 대해 얼굴 탐지를 수행한다.
도 7(a), (b), (c)는 엣지 탐지 및 배경 영역 제거의 예시적인 결과를 보여준다. (a)는 원본 입력 이미지, (b)는 (a)에 대한 엣지 탐지 결과 이미지, (c)는 엣지 탐지 결과에 기반하여 배경 영역을 제거한 이미지를 나타낸다.
평균적으로, 엣지 탐지를 활용하여 얼굴 탐지 정확도를 8.7% 희생하여 속도를 1.76배 향상할 수 있음을 확인하였다.
도 5로 돌아와서, 단계(S2)에서 제 1 얼굴 인식 장치(100)는 제어 라인에 의해, 단계(S1)에서 탐지된 얼굴 영역의 얼굴 인식 난이도에 기반하여 복수 개의 얼굴 인식 모델 중 하나의 얼굴 인식 모델을 결정한다.
단계(S2) 및 후술할 단계(S3)는 도 4를 참조하여 단계(P4)에 대응한다.
단계(S2)는 단계(S1)에서 탐지된 얼굴 영역에 나타난 얼굴 화질(resolution) 및 얼굴 자세에 기반하여, 얼굴 인식 난이도를 결정하는 단계를 포함한다.
이를 위하여, 얼굴 인식 난이도를 결정하는 단계는, 탐지된 얼굴 영역으로부터 얼굴 랜드마크를 추출하는 단계 및 추출된 얼굴 랜드마크 간의 위치 관계에 기반하여 얼굴 자세를 결정하는 단계를 포함할 수 있다.
탐지된 얼굴 영역으로부터 얼굴 랜드마크를 추출하는 단계는 탐지된 얼굴 영역에서 얼굴 랜드마크(예를 들어 눈, 코, 입 위치 정보)를 추출한다.
추출된 얼굴 랜드마크 간의 위치 관계에 기반하여 얼굴 자세를 결정하는 단계는 랜드마크 간의 위치 관계에 따라 얼굴 자세(예를 들어 정면 자세 또는 측면 자세)를 결정한다.
단계(S2)는 얼굴 화질 및 얼굴 자세에 기반하여 얼굴 인식 난이도를 결정하고, 결정된 얼굴 인식 난이도에 따라 서로 다른 얼굴 인식 DNN 모델들을 적응적으로 결정한다. 이에 따라 최적의 얼굴 인식 정확도 및 지연 시간 성능을 달성할 수 있다.
이하에서 도 8을 참조하여 단계(S2)를 예시적으로 살펴본다.
도 8은 실시예에 따른 얼굴 인식 방법의 얼굴 인식 모델 결정 과정을 설명하기 위한 도면이다.
다수의 얼굴이 포함된 도심 공간 이미지에서 얼굴을 탐지하는 경우, 개별 얼굴이 캡처된 환경에 따른 얼굴 인식 난이도에 큰 편차가 발생한다. 일례로, 카메라와 가까이 있어 크게 찍힌 얼굴의 경우 가벼운 얼굴 인식 DNN으로도 정확한 인식이 가능한 반면, 멀리 있는 저화질 얼굴의 경우 신원 화질 개선(identity clarification)에 의한 신원 복원 후에 복잡한 얼굴 인식 DNN을 적용해야 정확한 인식이 가능하다.
따라서, 도 5의 단계(S2)는 탐지된 얼굴 영역의 얼굴 변화에 따라 적응적으로 얼굴 인식 모델을 결정한다(Variation-Adaptive Face Recognition).
예를 들어, 얼굴 화질(resolution)이 소정의 기준값보다 작은 경우 얼굴 인식 난이도를 '상'으로 결정하고, 신원 복원 모델(P5_1) 및 고복잡도 얼굴 인식 모델(P5_2)을 선택할 수 있다.
예를 들어, 얼굴 화질이 소정의 기준값 이상인 경우, 얼굴 자세에 따라 측면 자세이면 얼굴 인식 난이도를 '중'으로 결정하고, 고복잡도 얼굴 인식 모델(P5_2)를 선택할 수 있다.
예를 들어, 얼굴 화질이 소정의 기준값 이상이고, 얼굴 자세가 정면 자세이면 얼굴 인식 난이도를 '하'로 결정하고, 저복잡도 얼굴 인식 모델(P5_3)을 선택할 수 있다.
일 예에서 얼굴 자세는 눈(번호 2)과 입(번호 5)를 연결한 선과 눈(번호 2)와 코(번호 3)을 연결한 선이 눈(번호 2)에서 이루는 각도(θ)의 크기에 따라 정면 자세 및 측면 자세 중 하나로 결정될 수 있다.
다시 도 5로 돌아와서, 단계(S3)에서 제 1 얼굴 인식 장치(100)는 제어 라인에 의해, 단계(S2)에서 결정된 얼굴 인식 모델과 연계된 인식 라인으로 단계(S1)에서 탐지된 얼굴 영역을 분배한다.
일 예에서, 탐지 라인, 제어 라인 및 복수 개의 인식 라인 중 적어도 일부는 제 1 얼굴 인식 장치(100)에 배치되고, 복수 개의 인식 라인 중 나머지는 제 2 얼굴 인식 장치(200)에 배치된다.
일 예에서 제 2 얼굴 인식 장치(200)에 배치된 인식 라인과 연계된 얼굴 인식 모델은 제 1 얼굴 인식 장치(100)에 배치된 인식 라인과 연계된 얼굴 인식 모델 보다 연산 복잡도가 더 높은 얼굴 인식 모델일 수 있다.
예를 들어, 제 1 얼굴 인식 장치(100)에 배치된 인식 라인과 연계된 얼굴 인식 모델은 저복잡도 얼굴 인식 모델이고, 제 2 얼굴 인식 장치(200)에 배치된 인식 라인과 연계된 얼굴 인식 모델은 신원 복원 모델 및 고복잡도 얼굴 인식 모델일 수 있다.
단계(S3)는 탐지된 얼굴 영역에 대한 얼굴 인식을 제 1 얼굴 인식 장치(100)로부터 제 2 얼굴 인식 장치(200)로 오프로딩(offloading)하는 단계를 포함할 수 있다.
예를 들어, 제 1 얼굴 인식 장치(100)는 자원 제한적인 단말이고, 제 2 얼굴 인식 장치(200)는 연산 자원이 풍부한 클라우드 서버이고, 제 1 얼굴 인식 장치(100)는 고복잡도 얼굴 인식 모델에 의한 얼굴 인식이 필요한 얼굴 영역을 제 2 얼굴 인식 장치(200)로 전송하여 제 2 얼굴 인식 장치(200)가 해당 얼굴 영역에 대한 얼굴 인식을 수행하도록 얼굴 인식 작업을 전달할 수 있다.
단계(S4)에서 탐지된 얼굴 영역이 분배된 인식 라인에 의해, 탐지된 얼굴 영역으로부터 얼굴 인식을 수행한다.
단계(S4)는 탐지된 얼굴 영역에 대하여 단계(S2)에서 결정된 얼굴 인식 모델을 실행하여 탐지된 얼굴 영역에 나타난 얼굴의 특징 벡터(feature vector)를 추출한다.
단계(S4)는 도 4를 참조하여 단계(P5_1), 단계(P5_1) 및 단계(P5_3)에 대응한다.
실시예에 따른 얼굴 인식 방법은, 단계(S4)에서 인식 라인에 의해 탐지된 얼굴 영역에 대한 얼굴 인식이 수행되는 동안, 탐지 라인에 의해 입력 이미지의 다음 이미지 블록에 대한 얼굴 영역을 탐지하는 단계를 더 포함할 수 있다. 즉, 파이프 라인의 탐지 라인, 제어 라인 및 복수 개의 인식 라인은 병렬적으로 작동한다. 파이프라인의 병렬 처리는 도 6 및 도 9를 참조하여 후술한다.
실시예에 따른 얼굴 인식 방법은 입력 이미지에 대한 복수 개의 인식 라인의 얼굴 인식 결과에 기반하여 탐색 대상과 매칭되는 얼굴 영역을 결정하는 단계(S5)를 더 포함할 수 있다.
단계(S5)는 도 4를 참조하여 단계(P6)에 대응한다.
단계(S5)에서 각 얼굴 인식 모델에 의한 인식 결과 통합 및 렌더링이 수행된다. 단계(S5)에 의해 입력 이미지로부터 인식된 개별 얼굴들을 탐색 대상과 비교하여, 탐색 대상과 매칭되는 얼굴의 위치를 화면에 렌더링하여 사용자에게 보여줄 수 있다.
도 6는 실시예에 따른 얼굴 인식 과정에서 이용하는 파이프라인을 설명하기 위한 도면이다.
실시예에 따른 얼굴 인식을 위해 입력 이미지의 장면 구성에 따라 다양한 얼굴 인식 모델을 적응적으로 선택하여 모바일 이기종 프로세서 및 클라우드에서 병렬처리하는 콘텐츠-적응적 병렬처리 파이프라인을 개발하였다.
파이프라인은 탐지 라인(D) 및 복수의 인식 라인(R_1, R_2, R_3; R)을 포함한다. 파이프라인은 추가적으로 제어 라인(C)을 더 포함할 수 있다. 도 6에서 예시적으로 세 개의 인식 라인(R_1, R_2, R_3)을 도시하였고, 얼굴 인식 모델의 유형에 따라 더 많거나 더 적은 수의 인식 라인을 포함할 수 있다.
입력 이미지로부터 분할된 복수의 이미지 블록(B1, B2, B3)은 이미지 블록 단위로 파이프라인의 탐지 라인(D)에 페치된다. 예를 들어 이미지 블록(B1)은 탐지 라인(D)의 탐지 블록(D1)에서 처리된다. 이미지 블록(B2) 및 이미지 블록(B3)는 각각 탐지 블록(D2) 및 탐지 블록(D3)에서 처리된다.
탐지 라인(D)의 탐지 블록(D1)은 얼굴 탐지 모델을 실행하여 이미지 블록(B1)에서 얼굴 영역을 탐지한다. 탐지된 얼굴 영역은 제어 라인(C)으로 전달되어 제어 블록(C1)에서 얼굴 인식 난이도에 기반하여 얼굴 인식 모델을 결정하고, 결정된 얼굴 인식 모델과 연계된 인식 라인(R_1, R_2 및 R_3 중 하나)로 전달된다.
예를 들어 인식 라인(R_1)은 얼굴 영역에 대한 저복잡도 얼굴 인식 모델을 실행(L)하고, 인식 라인(R_2)는 고복잡도 얼굴 인식 모델을 실행(H)하고, 인식 라인(R_3)는 신원 복원 모델 및 고복잡도 얼굴 인식 모델을 실행(I+H)할 수 있다.
다른 예에서, 인식 라인(R_2) 및 인식 라인(R_3)는 하나의 인식 라인으로 통합되어 고복잡도 얼굴 인식 모델의 실행(H)과 함께 신원 복원 모델 및 고복잡도 얼굴 인식 모델의 실행(I+H)을 담당하도록 구성될 수 있다. 그밖에 실행 환경에 따라 다양한 조합으로 인식 라인의 개수 및 실행 모델을 구성할 수 있다.
탐지 라인(D)은 탐지 블록(D1)의 실행이 완료되면 이미지 블록(B2)에 대한 탐지 블록(D2)를 실행한다. 즉, 탐지 라인(D)은 인식 라인(R)에서 이미지 블록(B1)에 대한 탐지 블록(D1)으로부터 탐지된 얼굴 영역에 대한 얼굴 인식이 인식 라인(R)에서 진행되는 동안 다음 이미지 블록(D2)에 대한 탐지 블록(D2)를 실행한다. 이러한 방식으로 탐지 라인(D), 제어 라인(C) 및 인식 라인(R)은 병렬처리 파이프라인을 형성하고, 입력 이미지에 대한 얼굴 인식을 병렬적으로 처리한다.
이와 같은 파이프라인을 도입함으로써, 고화질 카메라 입력에 다중 DNN 연산을 반복적으로 수행해야 하는 얼굴 인식 알고리즘(고화질 이미지에 대한 얼굴 탐지 DNN 수행 후 탐지된 저화질 얼굴 당 얼굴 화질 개선 및 얼굴 인식 DNN 수행)의 처리 속도를 최적화할 수 있다.
도 9는 실시예에 따른 얼굴 인식 방법의 영역별 병렬처리 및 파이프라이닝 동작을 설명하기 위한 도면이다.
고화질 도심 공간 이미지에서 각 영역별로 얼굴을 탐지하고 인식하는 과정은 서로 간에 독립적인 작업으로, 병렬처리 및 파이프라이닝을 통해 최적화된 수행이 가능하다. 이미지 영역별(이미지 블록별) 병렬처리 및 파이프라이닝 기법은 이기종 모바일 프로세서(CPU, GPU) 및 클라우드 GPU를 동시 활용하여 다중 DNN 얼굴 인식 지연 시간을 최적화한다.
도 9는 영역별 병렬처리 및 파이프라이닝 동작의 예시를 나타낸다. 입력 이미지의 하나의 이미지 영역(이미지 블록)에 대한 얼굴 탐지를 모바일 CPU에서 수행한 후, 해당 영역에서 탐지된 적어도 하나의 얼굴에 대한 얼굴 인식 DNN 연산을 모바일 GPU 및 클라우드 GPU에서 병렬 수행한다.
이와 동시에, 다음 이미지 영역(이미지 블록)에 대한 얼굴 탐지를 모바일 CPU에서 동시 수행하여, 모바일 GPU 및 클라우드 GPU에서 연속적으로 얼굴 인식 DNN 연산을 수행할 수 있도록 한다.
도 9에 도시된 예에서 모바일 CPU는 도 6을 참조하여 탐지 라인(D)에 대응하고, 모바일 GPU는 인식 라인(R_1)에 대응하고, 클라우드 GPU는 인식 라인(R_2) 및 인식 라인(R_3)가 통합된 인식 라인에 대응한다. 도 6의 제어 라인(C)은 모바일 CPU에 의해 실행될 수 있다.
모바일 CPU는 탐지 라인(D)를 따라 이미지 블록별로 얼굴 탐지 모델을 실행한다. 이미지 블록 1 내지 이미지 블록 4가 예시적으로 도시되어 있고, 각각 탐지 블록 1 내지 탐지 블록 4에서 순차적으로 얼굴 탐지 모델을 실행하게 된다.
모바일 GPU는 탐지된 얼굴 영역의 얼굴 인식 난이도가 상대적으로 낮은 얼굴 영역에 대하여 저복잡도 얼굴 인식 모델을 실행한다. 클라우드 GPU는 탐지된 얼굴 영역의 얼굴 인식 난이도가 상대적으로 높은 얼굴 영역에 대하여 고복잡도 얼굴 인식 모델을 실행하거나 신원 복원 모델 및 고복잡도 얼굴 인식 모델을 실행한다.
도 10은 실시예에 따른 얼굴 인식 방법의 성능을 보여주는 그래프이다.
도 10은 기존 온-디바이스 순차적 수행 기법 대비 실시예에 따른 컨텐츠 적응적 병렬처리 파이프라인 기법의 성능을 비교하여 보여준다.
도 10의 그래프로부터 실시예에 따른 콘텐츠-적응적 병렬처리 파이프라인은 이미지 내 서로 다른 영역에 대한 처리를 모바일 CPU, GPU 및 클라우드에서 병렬처리(Spatial Pipelining)하여 모바일 기기 기반 순차적 DNN 연산 실행 기술에 비해 현저한 지연 시간 성능 감소를 달성함을 알 수 있다.
즉, 콘텐츠-적응적 병렬처리 파이프라인을 다수의 포함된 복잡한 도심 공간 이미지에 적용한 결과, 기존의 온-디바이스 순차적 DNN 연산 실행 기술 대비 약 9.07배의 지연 시간 가속 성능을 달성함을 확인하였다.
도 11은 실시예에 따른 얼굴 인식 방법에서 사용하는 얼굴 인식 알고리즘의 신원 복원 모델을 예시적으로 설명하기 위한 도면이다.
먼 거리에서 찍힌 작은 얼굴을 정확히 인식하기 위해 저화질 입력 얼굴의 화질을 개선하여 고화질 얼굴로 재구성하는 딥 뉴럴 네트워크(Deep Neural Network, DNN) 신원 복원 모델(Identity Clarification Network; ICN)을 설계하였다.
신원 복원 모델은 생성적 적대 신경망 구조에 기반한 딥 뉴럴 네트워크를 포함한다. 신원 복원 모델은 입력된 얼굴 이미지(LR)로부터 재구성된 얼굴 이미지(Reconstructed
Figure PCTKR2022005815-appb-I000001
)를 생성하는 생성기(G)와 입력된 얼굴 이미지(LR)에 대한 정답 얼굴 이미지(Ground Truth y)에 기초하여 생성기(G)가 생성한 재구성된 얼굴 이미지(Reconstructed
Figure PCTKR2022005815-appb-I000002
)가 정답 얼굴 이미지(Ground Truth y)에 대응하는 지 여부를 판별하는 판별기(D)를 포함한다.
생성기(G)와 판별기(D)는 생성적 적대 신경망(GAN)의 경쟁 함수로, 생성기(G)에 대한 GAN 손실 함수(LGAN) 및 판별기(D)에 대한 GAN 손실 함수(LDiscriminator)를 정의한다.
생성기(Generator)(G)는 얼굴 랜드마크 예측기(Face Landmark Estimator)(G_FLE)를 포함한다. 얼굴 랜드마크 예측기(G_FLE)는 생성기(G)에 입력되는 저화질 얼굴 이미지(LR)으로부터 적어도 하나의 얼굴 랜드마크(landmark
Figure PCTKR2022005815-appb-I000003
)를 추출할 수 있다. 여기서 예를 들어 얼굴 랜드마크는 얼굴의 윤곽 정보 및 이목구비 정보를 포함한다.
얼굴 랜드마크 예측기(G_FLE)가 예측한 얼굴 랜드마크와 정답 얼굴 이미지로부터 추출된 얼굴 랜드마크에 기반하여 후술할 랜드마크 정확도 함수(Llandmark)가 정의된다.
신원 복원 모델에 얼굴 랜드마크 예측기(G_FLE)를 도입함으로써 생성기(G)가 고화질 얼굴을 재구성하는 과정에서, 고화질 얼굴 이미지(Reconstructed
Figure PCTKR2022005815-appb-I000004
)의 재구성 정확도가 향상될 수 있다.
생성기(D)는 얼굴 업샘플러(Face Upsampler)(G_FUP)를 포함한다. 얼굴 업샘플러(G_FUP)는 얼굴 랜드마크 예측기(G_FLE)로부터 추출된 적어도 하나의 얼굴 랜드마크에 기초하여 저화질 얼굴 이미지(LR)로부터 재구성된 고화질 얼굴 이미지(Reconstructed
Figure PCTKR2022005815-appb-I000005
)를 생성한다.
얼굴 업샘플러(G_FUP)가 재구성한 얼굴 이미지와 정답 얼굴 이미지의 픽셀값에 기반하여 후술할 픽셀 정확도 함수(Lpixel)가 정의된다.
판별기(D)는 GAN 학습을 위한 잔차 블록(Residual block) 기반 구조를 포함하여 구성될 수 있다.
추가적으로 신원 복원 모델은 얼굴 특징 추출기(Face Feature Extractor)(
Figure PCTKR2022005815-appb-I000006
)를 포함한다. 얼굴 특징 추출기(
Figure PCTKR2022005815-appb-I000007
)는 재구성된 얼굴 이미지(Reconstructed
Figure PCTKR2022005815-appb-I000008
)의 특징맵(feature map) 및 정답 얼굴 이미지(Ground Truth y)의 특징맵을 추출한다.
얼굴 특징 추출기(
Figure PCTKR2022005815-appb-I000009
)는 재구성된 얼굴 이미지(Reconstructed
Figure PCTKR2022005815-appb-I000010
)의 특징맵(feature map) 및 정답 얼굴 이미지(Ground Truth y)의 특징맵에 기반하여 후술할 얼굴 특징 유사도 함수(Lface)가 정의된다.
얼굴 특징 추출기(
Figure PCTKR2022005815-appb-I000011
)는 예를 들어 잔차 블록 기반 ArcFace 네트워크 구조의 얼굴 인식 네트워크를 적용할 수 있으며, 이에 제한되지 않고 얼굴 인식을 위한 다양한 신경망 구조를 포함할 수 있다.
일 예에서, 생성기(G)가 사실적인 얼굴을 재구성하도록 하는 제 1 목표 함수(Ltotal)와 판별기(D)가 생성기(G)가 재구성한 얼굴과 정답 얼굴을 잘 구분할 수 있도록 하는 제 2 목표 함수(LDiscriminator)를 번갈아 최소화하도록 학습하여, 신원 복원 모델이 높은 재구성 정확도를 얻을 수 있도록 한다.
이하에서는 도 12 내지 도 19를 참조하여 실시예에 따른 콘텐츠 및 자원 적응적 병렬처리 파이프라인을 이용한 얼굴 인식 방법에 대하여 살펴본다.
도 12는 실시예에 따른 콘텐츠 및 자원 적응적 병렬처리 파이프라인을 설명하기 위한 도면이다.
실시예에 따른 얼굴 인식 방법 및 장치는 고화질 카메라 입력에 다중 DNN 연산을 반복적으로 수행해야 하는 얼굴 인식 알고리즘(도 2 참조, 고화질 이미지에 대한 얼굴 탐지 DNN 수행 후 탐지된 저화질 얼굴 당 얼굴 화질 개선 및 얼굴 인식 DNN 수행)의 처리 속도를 최적화하기 위해, 입력 비디오의 장면 구성에 따라 다양한 DNN을 적응적으로 선택하여 모바일 이기종 프로세서 및 클라우드에서 병렬처리하는 콘텐츠-적응적 병렬처리 파이프라인을 이용한다.
최근 모바일 기기에서 DNN 연산을 수행할 수 있는 플랫폼들이 개발되고 있으나, 단일 DNN 연산을 실행하는데 머물러 복잡한 도심 공간 속 얼굴 인식을 위한 다중 DNN 동시 수행을 지원하지 못한다.
실시예에서 제공하는 콘텐츠-적응적 병렬처리 파이프라인은 (i) 고화질 이미지에 얼굴 탐지 DNN을 수행하기 전 엣지 탐지 알고리즘을 수행하여 얼굴이 존재하지 않는 배경 영역을 제거하고(Edge-Based Background Filtering)(도 7 참조), (ii) 탐지된 얼굴의 화질, 자세 및 블러(blur)를 기반으로 얼굴 인식의 난이도를 예측하여 얼굴 인식 DNN의 복잡도를 적응적으로 조절하며(Variation-Adaptive Face recognition)(도 15 참조), (iii) 이미지 내 서로 다른 영역에 대한 처리를 모바일 CPU, GPU 및 클라우드에서 병렬처리(Spatial Pipelining)한다(도 12 참조).
실시예에 따른 얼굴 인식 방법은 제 1 얼굴 인식 장치(100) 및 제 2 얼굴 인식 장치(200)에 의해 도 12에 도시된 단계(PP1, PP2, PP3, PP4, PP5, PP6_1, PP6_2, PP7)에 의하여 수행된다.
입력 이미지(Input frame)에 대한 얼굴 인식 과정에서 도 12에 도시된 단계(PP1, PP2, PP3, PP4, PP5, PP6_1, PP6_2, PP7)의 전부 또는 일부가 수행될 수 있다. 도 12에 도시된 단계(PP1, PP2, PP3, PP4, PP5, PP6_1, PP6_2, PP7)의 수행 순서는 변경될 수 있다. 예를 들어, 단계(PP2)를 단계(PP1) 보다 먼저 수행하거나 또는 반대일 수 있다.
단계(PP1), 단계(PP2) 및 단계(PP3)는 도 4를 참조하여 단계(P1), 단계(P2) 및 단계(P3)에 각각 대응한다. 단계(PP7)은 도 4를 참조하여 단계(P6)에 대응한다.
단계(PP1)에서 제 1 얼굴 인식 장치(100)는 카메라 프레임 입력(Input frame)을 획득한다. 예를 들어, AR 글래스 또는 스마트폰 카메라로부터 실시간 카메라 프레임 입력을 획득한다.
단계(PP2)에서 제 1 얼굴 인식 장치(100)는 엣지 탐지 기반 배경 영역 제거한다. 예를 들어, 입력 프레임을 영역으로 나누고, 각 영역별로 엣지(윤곽선)을 탐지하여, 엣지 밀도가 낮은 배경 영역은 처리에서 제거하여 불필요한 연산을 줄이도록 한다.
단계(PP3)에서 제 1 얼굴 인식 장치(100)는 입력 프레임의 이미지 블록에서 적어도 하나의 얼굴 영역을 탐지한다.
추가적으로 단계(PP3)에서 제 1 얼굴 인식 장치(100)는 모션 트래킹 기반 인식 결과 캐싱을 수행하여 연속된 프레임 내 얼굴들의 움직임을 예측할 수 있다. 예를 들어, 현재 프레임에서 탐지된 얼굴이 이전 프레임에서 인식 모델을 이미 수행한 얼굴과 대응된다고 판단되는 경우, 인식 결과를 캐싱 및 재사용한다.
단계(PP4)에서 제 1 얼굴 인식 장치(100)는 얼굴 인식 난이도를 예측한다. 일 예에서 제 1 얼굴 인식 장치(100)는 단계(PP2)에서 필터링된 영역에 대해 단계(PP3)에서 얼굴 탐지를 수행 후, 탐지된 개별 얼굴의 인식 난이도를 예측 후, 난이도 별로 정렬한다.
단계(PP5)에서 제 1 얼굴 인식 장치(100)는 자원 적응적 얼굴 인식 모델 선택 및 수행 스케줄을 결정한다.
예를 들어 제 1 얼굴 인식 장치(100)는 단계(PP4)에서 분석된 얼굴의 인식 난이도 및 제 1 얼굴 인식 장치(100) 및 제 2 얼굴 인식 장치(200)의 가용 자원 현황을 예측하여, 얼굴 인식 정확도 및 처리 시간을 종합적으로 최적화할 수 있는 인식 모델을 선택할 수 있다.
단계(PP6_1) 및 단계(PP6_2)에 의해 제 1 얼굴 인식 장치(100) 및 제 2 얼굴 인식 장치(200)는 다중 프로세서 병렬처리 및 영역별 파이프라이닝을 실행한다. 제 1 얼굴 인식 장치(100) 및 제 2 얼굴 인식 장치(200)는 이미지 내 영역별 얼굴 탐지 및 인식 태스크의 독립성, 개별 얼굴별 인식 태스크의 독립성을 활용하여 모바일 CPU, GPU, 클라우드 GPU에 할당된 연산을 병렬적으로 처리한다.
단계(PP7)에서 제 1 얼굴 인식 장치(100)는 인식 결과 통합 및 렌더링을 제공한다. 단계(PP5)를 통해 인식된 개별 얼굴들을 탐색 대상과 비교하여, 탐색 대상과 일치하는 얼굴의 위치를 사용자 단말, 예를 들어 제 1 얼굴 인식 장치(100)의 화면에 렌더링하여 사용자에게 보여준다.
도 13은 실시예에 따른 얼굴 인식 방법의 흐름도이다.
실시예에 따른 얼굴 인식 방법은 탐지 라인, 제어 라인 및 복수 개의 인식 라인을 포함한 파이프라인을 이용하여 프로세서를 포함한 얼굴 인식 장치에 의해 실행되는 얼굴 인식 방법에 있어서, 탐지 라인에 의해, 입력 이미지로부터 이미지 블록 단위로 적어도 하나의 얼굴 영역을 탐지하는 단계(SS1), 제어 라인에 의해, 적어도 하나의 얼굴 영역의 예상 얼굴 인식 난이도를 결정하는 단계(SS2), 제어 라인에 의해, 예상 얼굴 인식 난이도에 기반하여 복수 개의 인식 라인 중 적어도 하나의 얼굴 영역의 각각에 대한 얼굴 인식을 수행할 인식 라인을 결정하는 단계(SS3), 제어 라인에 의해, 결정된 인식 라인으로 적어도 하나의 얼굴 영역을 분배하는 단계(SS4) 및 적어도 하나의 얼굴 영역이 분배된 인식 라인에 의해, 적어도 하나의 얼굴 영역의 각각으로부터 얼굴 인식을 수행하는 단계(SS5)를 포함할 수 있다.
단계(SS1)에서 얼굴 인식 장치(100)의 프로세서(110)는 탐지 라인에 의해, 입력 이미지로부터 이미지 블록 단위로 적어도 하나의 얼굴 영역을 탐지한다. 단계(SS1)은 도 5를 참조하여 단계(S1)에 대응한다.
단계(SS1) 이후에, 프로세서(110)는 모션 트래킹 기반 인식 결과 캐싱을 수행하여 연속된 프레임 내 얼굴들의 움직임을 예측할 수 있다. 예를 들어, 현재 프레임에서 탐지된 얼굴이 이전 프레임에서 인식 모델을 이미 수행한 얼굴과 대응된다고 판단되는 경우, 인식 결과를 캐싱 및 재사용한다. 이에 대하여는 도 14를 참조하여 후술한다.
단계(SS2)에서 프로세서(110)는 제어 라인에 의해, 적어도 하나의 얼굴 영역의 예상 얼굴 인식 난이도를 결정한다.
단계(SS2)에서 프로세서(110)는 얼굴 영역의 얼굴 화질, 얼굴 자세 및 얼굴 블러(blur) 중 적어도 하나에 기반하여 적어도 하나의 얼굴 영역의 각각의 예상 얼굴 인식 난이도를 결정할 수 있다. 이에 대하여는 도 15를 참조하여 후술한다.
단계(SS3)에서 프로세서(110)는 제어 라인에 의해, 예상 얼굴 인식 난이도에 기반하여 복수 개의 인식 라인 중 적어도 하나의 얼굴 영역의 각각에 대한 얼굴 인식을 수행할 인식 라인을 결정한다.
단계(SS3)은 예상 얼굴 인식 난이도의 오름차순으로 적어도 하나의 얼굴 영역의 각 얼굴 영역의 인식 라인을 결정하는 단계를 포함할 수 있다.
단계(SS3)은 얼굴 영역의 예상 얼굴 인식 정확도 및 예상 연산 지연 시간에 따른 소정의 목표 함수에 기반하여 각 얼굴 영역에 적용할 얼굴 인식 모델 및 해당 얼굴 인식 모델을 실행할 얼굴 인식 장치의 조합을 결정하는 단계를 포함할 수 있다. 이에 대하여는 도 18 및 19를 참조하여 후술한다.
단계(SS4)에서 프로세서(110)는 제어 라인에 의해, 결정된 인식 라인으로 적어도 하나의 얼굴 영역을 분배한다.
일 예에서, 탐지 라인, 제어 라인 및 복수 개의 인식 라인 중 적어도 일부는 제 1 얼굴 인식 장치(100)에 배치되고, 복수 개의 인식 라인 중 나머지는 제 2 얼굴 인식 장치(200)에 배치되고, 단계(SS4)는 적어도 하나의 얼굴 영역 중 적어도 일부에 대한 얼굴 인식을 제 1 얼굴 인식 장치(100)로부터 제 2 얼굴 인식 장치(200)로 오프로딩(offloading)하는 단계를 포함할 수 있다. 이는 도 5를 참조하여 단계(S3)의 오프로딩 관련 내용과 대응된다.
단계(SS5)에서 프로세서(110) 및/또는 프로세서(210)는 적어도 하나의 얼굴 영역이 분배된 인식 라인에 의해, 적어도 하나의 얼굴 영역의 각각으로부터 얼굴 인식을 수행한다.
추가적으로 실시예에 따른 얼굴 인식 방법은 입력 이미지에 대한 복수 개의 인식 라인의 얼굴 인식 결과에 기반하여 탐색 대상과 매칭되는 얼굴 영역을 결정하는 단계(SS6)를 더 포함할 수 있다. 단계(SS6)는 도 5를 참조하여 단계(S5)에 대응한다.
추가적으로 실시예에 다른 얼굴 인식 방법은 적어도 하나의 얼굴 영역이 분배된 인식 라인에 의해 적어도 하나의 얼굴 영역에 대한 얼굴 인식이 수행되는 동안, 탐지 라인에 의해 입력 이미지의 다음 이미지 블록에 대한 얼굴 영역을 탐지하는 단계를 더 포함할 수 있다. 이에 대하여는 도 19를 참조하여 예를 들어 살펴본다.
도 14는 얼굴 인식 과정의 모션 트래킹 과정을 설명하기 위한 도면이다.
단계(SS1)에서 프로세서(110)는 도심 공간을 캡쳐한 비디오 프레임들로부터 다양한 신원(identity)를 가진 사람들의 얼굴을 탐지한다.
입력 이미지가 일련의 프레임을 포함한 비디오인 경우, 얼굴 인식 장치(100)는 동일 신원을 가진 사람의 얼굴 프레임 시퀀스를 입력으로 받을 수 있다. 즉, 입력 비디오의 프레임별로 얼굴을 탐지하지만, 연속된 프레임 간에는 카메라 움직임, 장면 내 대상의 움직임 등으로 인해 동일 신원을 가진 사람의 얼굴이 시간에 따라 다른 위치에 나타날 수 있다.
여기서, 카메라 움직임, 장면 내 얼굴 움직임 등이 포함된 연속된 프레임들로부터 탐지된 얼굴 이미지들이 동일 신원으로 매핑되는 경우 기 저장된 얼굴 인식 결과를 재사용할 수 있다. 예를 들어, 얼굴 인식이 이미 완료된 얼굴 이미지와 동일 신원인 것으로 판단된 얼굴 이미지에 대하여는 기 저장된 얼굴 인식 결과를 재사용하고 단계(SS2) 내지 단계(SS6)을 실행하지 않을 수 있다.
이를 위하여 실시예에 따른 얼굴 인식 방법은 단계(SS1) 이후에 입력 비디오의 연속된 프레임 간 얼굴의 움직임을 고려하여 프레임별로 탐지된 얼굴들을 같은 신원끼리 매핑하기 위해, 특징점 기반 얼굴 트래킹 기법을 사용할 수 있다.
일 예에서, 실시예에 따른 얼굴 인식 방법은, 일련의 이미지 프레임의 연속한 이미지 프레임 간 얼굴 영역 이동 정보(즉, 모션 트래킹 정보)에 기반하여 단계(SS1)에서 탐지된 적어도 하나의 얼굴 영역의 각각에 대응하는 기 인식 완료된 얼굴 영역을 탐색하는 단계 및 이와 같은 탐색의 결과에 따라 기 인식 완료된 얼굴 영역의 얼굴 인식 정보를 재사용하는 단계를 더 포함할 수 있다.
비디오 컨텐츠의 연속된 프레임 간 시간적 연속성(temporal correlation)을 활용하여, 현재 프레임에서 탐지된 얼굴이 이전 프레임에서 이미 처리 완료된 경우 인식 모델 연산을 새로 수행하지 않고 이전 결과를 재사용한다. 연속된 프레임에서 탐지된 얼굴들 간 대응 관계를 파악하기 위해, 아래의 얼굴 트래킹 과정을 거친다.
(i) 단계(TR1) - 얼굴 탐지(Face Detection): 먼저, 연속된 두 입력 프레임(frame t, frame t+1)에서 각각 얼굴을 탐지한다.
(ii) 단계(TR2) - 랜드마크 추출(Landmark Estimation): 탐지된 개별 얼굴들로부터 랜드마크(예를 들어 눈, 코, 입의 위치)를 특징점으로 추출한다. 이를 위하여 예를 들어 얼굴 탐지 및 특징점 추출을 동시에 수행 가능한 RetinaFace detector(J. Deng et al., "RetinaFace: Single-stage Dense Face Localisation in the Wild," CVPR 2020.)를 사용할 수 있다.
(iii) 단계(TR3) - 광학 흐름 트래킹(Optical Flow Tracking): 이후, frame t와 frame t+1 사이에서 대응되는 랜드마크를 찾기 위해 광학 흐름(Optical Flow)을 계산한다. 예를 들어, Lukas-Kanade Optical Flow Tracker(B. D. Lucas, T. Kanade et al., "An iterative image registration technique with an application to stereo vision." Vancouver, British Columbia, 1981.)를 사용할 수 있다.
(iv) 단계(TR4) - 움직임 보상(Motion Compensation): 단계(TR3)에서 계산된 랜드마크(예를 들어 눈, 코, 입)의 특징점들의 광학 흐름(Optical Flow)의 평균을 구한다. 해당 평균을 프레임 간 물체의 움직임으로 가정하고, frame t의 얼굴 바운딩 박스(bounding box) 좌표들을 변환한다.
(v) 단계(TR5) - IoU-based Bounding Box Matching: 단계(TR4)의 과정을 거친 frame t의 바운딩 박스들과 frame t+1의 바운딩 박스들 간 IoU (Intersection over Union)를 계산하여 겹치는 영역의 면적을 계산한다. IoU가 일정 값 이상인 두 바운딩 박스가 탐지되는 경우, 해당 두 얼굴을 동일 신원으로 판단한다.
도 15는 실시예에 따른 예상 얼굴 인식 난이도 결정 과정을 설명하기 위한 도면이다.
다수의 얼굴이 포함된 도심 공간 이미지에서 얼굴을 탐지하는 경우, 개별 얼굴이 캡처된 환경에 따른 얼굴 인식 난이도에 큰 편차가 발생한다. 탐지된 얼굴의 인식 난이도를 분석하고, 이를 기반으로 최적의 인식 모델을 선택하는 경우 자원 소모 및 인식 지연시간을 최적화할 수 있다.
일례로, 카메라와 가까이 있어 크게 찍힌 얼굴의 경우 인식 난이도가 낮아 가벼운 얼굴 인식 DNN 모델을 선택하면 낮은 자원 소모로도 높은 정확도를 얻을 수 있다(예: Residual block (K. He et al., “Deep residual learning for image recognition,” CVPR 2016.) 기반 ArcFace 모델(J. Deng et al., “ArcFace: Additive Angular Margin Loss for Deep Face Recognition,” CVPR 2019.)과 경량 MobileFaceNets 모델(S. Chen et al., “MobileFaceNets: Efficient CNNs for Accurate Real-Time Face Verification on Mobile Devices,” CCBR 2018.)는 최신 LG V50 스마트폰에서 수행 시간이 20배 가량 차이나나(287 vs. 14 ms), 동일한 정확도를 가진다). 반면, 멀리 있는 저화질 얼굴의 경우 인식 난이도가 높아 정확한 인식을 위해서는 신원 화질 개선(identity clarification) 이후 복잡한 얼굴 인식 DNN 선택이 필수적이다.
실시예에서는 최적의 얼굴 인식 정확도 및 지연 시간 성능을 달성하기 위해, 탐지된 얼굴에 대한 인식 난이도를 예측하고, 이를 기반으로 최적의 인식 모델을 선택한다.
도 15는 얼굴 인식 난이도 분석 구조도로서, 얼굴 인식 난이도를 분석하기 위해 인식 정확도에 영향을 미치는 다양한 요소들을 폭넓게 고려한다.
구체적으로, 얼굴 특징 분석기(Face Attribute Analyzer)(FA_A)는 탐지된 얼굴별로 아래의 세 가지 요소들을 경량 이미지 처리 기법들을 기반으로 분석한다.
(i) 포즈 분석기(Pose Estimator)(P_E): 얼굴의 자세는 탐지된 얼굴의 눈, 코, 입과 같은 랜드마크 위치를 통해 분석 가능하다. 예를 들어 얼굴 자세는 도 16을 참조하여 얼굴 각도 θ에 따라 결정될 수 있다. 이에 대하여는 도 16을 참조하여 살펴본다.(ii) 화질 분석기(Resolution Estimator)(R_E): 탐지된 얼굴의 바운딩 박스 크기로부터, 얼굴 화질을 수학식 1과 같이 예측한다.
Figure PCTKR2022005815-appb-M000001
(
Figure PCTKR2022005815-appb-I000012
: 얼굴 화질,
Figure PCTKR2022005815-appb-I000013
: 바운딩 박스 height, width)
(iii) 움직임 블러 예측기(Motion Blur Estimator)(B_E): 얼굴 이미지의 움직임에 따른 블러를 탐지하기 위해, 입력 RGB 이미지를 Grayscale로 변환 후, 픽셀 값들의 2차 미분값을 얻을 수 있는 Laplacian filter L(수학식 2)를 적용한다. 이후, 변환된 이미지의 평균 intensity를 수학식 3과 같이 계산하여 blur intensity B를 얻는다.
Figure PCTKR2022005815-appb-M000002
Figure PCTKR2022005815-appb-M000003
X: Grayscale 변환 및 Laplacian filter 적용된 이미지
즉, 얼굴 이미지를 그레이 스케일 변환 및 라플라스 필터를 적용하여 얼굴 이미지의 블러 강도(blur intensity)를 획득한다. 예를 들어 블러 강도가 낮을수록 예상 얼굴 인식 난이도가 높아지도록 예측한다. 이에 대한 예시는 도 17에서 살펴본다.
(iv) 최종적으로, 인식 난이도 예측기(Recognition Diffculty Estimator)(RD_E)는 위 세 가지 요소를 결합하여 최종 예측된 인식 난이도 D를 수학식 4와 같이 계산한다.
Figure PCTKR2022005815-appb-M000004
예를 들어, 난이도 예측 함수 f는 Support Vector Macnine(C. Cortes et al., "Support-vector networks." Machine learning 20.3 (1995): 273-297.)을 활용할 수 있으며, 이에 제한되지 않는다.
이후, 탐지된 얼굴들을 예측된 얼굴 인식 난이도에 따라 정렬하여 자원 적응적 얼굴 인식 모델 선택 및 수행 스케줄링에 활용한다.
도 16은 실시예에 따른 얼굴 인식 난이도 결정에서 랜드마크 기반 얼굴 자세 결정의 예시도이다.
탐지된 얼굴 랜드마크가 도 16과 같이 주어졌을 때, 얼굴 각도 θ를 [수학식 5]와 같이 예측할 수 있다. 예를 들어, 얼굴이 옆모습일수록 θ가 음수가 된다.
Figure PCTKR2022005815-appb-M000005
도 17은 실시예에 따른 얼굴 인식 난이도 결정에서 얼굴 블러 결정의 예시도이다.
도 17은 전술한 Laplacian filtering 기반 blur estimation 동작 예시를 보여준다.
블러가 없는 얼굴 이미지(FACE1)의 변환 결과(T_FACE1)로부터 얻은 블러 강도 값이 블러가 있는 얼굴 이미지(FACE2)의 변환 결과(T_FACE2)에서 얻은 블러 강도 값보다 높게 나타난 예시를 보여준다.
도 18은 실시예에 따른 콘텐츠 및 자원 적응적 얼굴 인식 모델 선택 및 수행 스케줄링을 설명하기 위한 도면이다.
도 12를 참조하여 단계(PP5)에서 얼굴 인식 장치(100)의 프로세서(110)는 예측된 얼굴 인식 난이도에 따라 정렬(예를 들어 난이도의 오름차순으로 정렬)된 얼굴들에 대해, 현재 가용 자원을 고려하여 인식 정확도 및 지연 시간을 종합적으로 최적화할 수 있는 인식 모델 선택 및 수행 스케줄링을 진행한다. 이는 도 13을 참조하여 전술한 단계(SS3) 및 단계(SS4)에 대응한다.
구체적으로, 탐지된 얼굴 fi에 대해 인식 모델 Mi를 선택한다고 가정했을 때, 얼굴 인식 정확도 ACC(Mi(fi))를 예측한다.
모델의 얼굴 인식 정확도는 다양한 난이도를 가진 얼굴 인식 벤치마크 데이터셋(예: 다양한 자세 변화를 포함한 Cross-Pose LFW 데이터셋 (T. Zheng et al., “Cross-Pose LFW: A Database for Studying Cross-Pose Face Recognition in Unconstrained Environments,“ Beijing University of Posts and Telecommunications, Tech. Rep 2018.), 다양한 화질 변화를 포함하는 VGGFace2 데이터셋(Q. Cao et al., “VGGFace2: A dataset for recognising faces across pose and age,” F&G 2018.), 다양한 조명 환경 변화를 포함한 UHDB31 데이터셋(H. Le et al., “UHDB31: A Dataset for Better Understanding Face Recognition across Pose and Illumination Variation,“ ICCV 2017.))에 대하여 개별 얼굴별로 전술한 수학식 4를 통해 얼굴 인식 난이도를 예측하고, 얼굴 인식 모델을 활용하여 실제 인식 정확도를 측정한다. 이를 통해, <얼굴 인식 난이도, 인식 정확도> 간 매핑 테이블을 만들고, 실제 테스트 단계에서 입력으로 들어오는 얼굴 이미지의 인식 난이도를 예측 후, 매핑 테이블 상의 대응되는 값을 읽어 인식 정확도를 예측한다.
또한, 해당 인식 모델 Mi를 프로세서 Pi에서 수행하였을 때 지연 시간 L(Mi, Pi)를 예측한다. 예를 들어, 연산 지연 시간은 해당 모델의 추론 시간과 해당 프로세서에서 현재 수행 중인 태스크가 모두 끝나는 시간의 합으로 예측할 수 있다. 말하자면, 연산 지연 시간은 후술할 도 18을 참조하여 프로세서Pi에서의 해당 모델의 추론 시간과 프로세서 Pi의 작업 큐 Qi에 대기 중인 태스크가 모두 끝나는 시간의 합으로 예측할 수 있다.
위를 종합하여, 탐지된 얼굴들에 대해 목표 함수인 [수학식 6]를 최대화하도록 최적의 (fi, Mi, Pi) 조합을 결정한다. 이때, 전체 연산 지연 시간이 [수학식 7]의 응용 요구사항 Ldeadline을 넘지 않도록 스케줄링한다.
Figure PCTKR2022005815-appb-M000006
Figure PCTKR2022005815-appb-M000007
실시예에서, 인식 모델 집합(SET_MDL)은 고-연산 인식 모델(Heavy Recognition Model; H), 저-연산 인식 모델(Lightweight recognition model; L) 및 얼굴 화질 개선 모델(Identity Clarification Model; ICN)과 고-연산 인식 모델(H)이 연계된 모델(I+H)을 포함할 수 있다.
예를 들어, heavy recognition 모델의 경우 Residual block 기반 ArcFace 네트워크 구조, lightweight recognition 모델의 경우 경량 MobileFaceNets 구조(S. Chen et al., “MobileFaceNets: Efficient CNNs for Accurate Real-Time Face Verification on Mobile Devices,” CCBR 2018.), 저화질 얼굴 화질 개선 모델의 경우 도 11을 참조하여 ICN 구조를 활용할 수 있으며 이에 제한되는 것은 아니다.
실시예에서, 선택가능한 프로세서 집합(SET_PU)은 이기종 프로세서(heterogeneous processors)를 포함할 수 있다.
예를 들어 선택 가능한 프로세서 집합(SET_PU)는 Mobile CPU(PU1), Mobile GPU(PU2) 및 Cloud GPU(PU3)을 포함할 수 있으며, 이에 제한되지 않고 다양한 형태 및 연산 방식의 프로세싱 유닛을 포함할 수 있다.
도 13을 참조하여 전술한 단계(SS3)은 얼굴 영역의 예상 얼굴 인식 정확도 및 예상 연산 지연 시간에 따른 소정의 목표 함수에 기반하여 얼굴 영역에 적용할 얼굴 인식 모델 및 해당 얼굴 인식 모델을 실행할 얼굴 인식 장치의 조합을 결정하는 단계를 포함한다. 즉, 인식 라인을 결정한다는 것은 주어진 얼굴 영역에 대한 얼굴 인식에 사용할 얼굴 인식 모델과 해당 얼굴 인식 모델을 실행할 얼굴 인식 장치를 결정하는 것을 의미한다.
프로세서 집합(SET_PU)의 프로세서는 각각 자신의 작업 큐(예를 들어 Q1, Q2 및 Q3)를 운영하며, 작업 큐로부터 FIFO 방식으로 작업(태스크)를 페치(fetch) 및 실행한다.
단계(S33)에서 인식 라인이 결정되면, 도 13을 참조하여 전술한 단계(SS4)는 단계(SS3)에서 결정된 인식 라인을 따라 해당 얼굴 영역의 얼굴 인식 작업을 분배한다. 예를 들어, 프로세서(110)는 해당 얼굴 영역의 얼굴 인식을 실행할 프로세서(예를 들어 PU1이라고 하자)의 작업 큐(예를 들어 Q1)에 대상 얼굴 영역 및 사용할 얼굴 인식 모델(예를 들어 L)을 포함한 작업 정보를 추가한다.
도 19는 실시예에 따른 다중 프로세서 병렬처리 및 영역별 파이프라이닝 동작의 예시도이다.
실시예에 따른 얼굴 인식 기술은 (i) 고화질 도심 공간 이미지에서 각 영역별로 얼굴을 탐지하고, (ii) 개별 얼굴들을 인식하는 과정은 서로 간에 독립적인 작업으로, 병렬처리 및 파이프라이닝을 통해 최적화된 수행이 가능하다.
영역별 병렬처리 및 파이프라이닝 기법은 이기종 모바일 프로세서(CPU, GPU) 및 클라우드 GPU를 동시 활용하여 다중 DNN 얼굴 인식 지연 시간을 최적화한다.
구체적으로, 도 19는 영역별 병렬처리 및 파이프라이닝 동작 예시를 나타낸다. 제 1 이미지 영역에 대한 얼굴 탐지를 모바일 CPU에서 수행(예를 들어, Detection on 1)한 후, 제 1 이미지 영역에서 탐지된 얼굴들에 대한 얼굴 인식 DNN 연산을 모바일 및 클라우드 GPU에서 병렬 수행(예를 들어, Recognition on 1)한다.
이와 동시에, 다음 이미지 영역인 제 2 이미지 영역 및 제 3 이미지 영역에 대한 얼굴 탐지를 모바일 CPU에서 수행(예를 들어, Detection on 2 및 Detection on 3)하여, 모바일 및 클라우드 GPU에서 연속적으로 얼굴 인식 DNN 연산을 수행(예를 들어, Recognition on 2)할 수 있도록 한다.
실시예에 따른 얼굴 인식 기법은, 얼굴 인식 기반의 여러 유용한 모바일 AR 응용(예: 실종 아동 찾기, 범인 추적)에 적용가능하고, 모바일 기기에서 다중 DNN 및 렌더링 연산을 동시 수행해야 하는 AR 응용을 위한 모바일 딥러닝 플랫폼에 적용될 수 있다.
한편, 제안한 모바일 이기종 프로세서 및 클라우드 기반 다중 DNN 연산 수행 기법은 얼굴 인식 분야 뿐만 아니라 공항 얼굴 인식 기반 자동 출입국 시스템, IoT, 자율주행 등 최근 떠오르고 있는 다중 DNN 기반의 다양한 모바일/임베디드 AI 시스템에서도 활용할 수 있다.
실시예에 따른 얼굴 인식 방법은 안드로이드 기기에서 수행될 수 있는 Java 기반 소프트웨어로 구현되어, 다수의 상용 안드로이드 스마트폰에 탑재되어 활용될 수 있다. 실시예에 따른 DNN 기반 얼굴 인식 기술은 Google TensorFlow로 구현되어, 안드로이드용 Google TensorFlow-Lite로 변환하여 실행할 수 있다.
전술한 본 발명의 일 실시예에 따른 방법은 프로그램이 기록된 매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 매체는, 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 매체의 예로는, HDD(Hard Disk Drive), SSD(Solid State Disk), SDD(Silicon Disk Drive), ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있다.
실시예에 따른 얼굴 인식 방법은 이를 실행하기 위한 하나 이상의 명령어를 포함하는 컴퓨터 프로그램을 기록한 컴퓨터 판독가능한 비-일시적인 기록매체에 저장될 수 있다.
이상 설명된 본 발명의 실시 예에 대한 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시 예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 발명의 범위는 상기 상세한 설명보다는 후술하는 청구범위에 의하여 나타내어지며, 청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.

Claims (17)

  1. 탐지 라인, 제어 라인 및 복수 개의 인식 라인을 포함한 파이프라인을 이용하여 프로세서를 포함한 얼굴 인식 장치에 의해 실행되는 얼굴 인식 방법에 있어서,
    탐지 라인에 의해, 입력 이미지로부터 이미지 블록 단위로 적어도 하나의 얼굴 영역을 탐지하는 단계;
    제어 라인에 의해, 상기 적어도 하나의 얼굴 영역의 예상 얼굴 인식 난이도를 결정하는 단계;
    상기 제어 라인에 의해, 상기 예상 얼굴 인식 난이도에 기반하여 상기 복수 개의 인식 라인 중 상기 적어도 하나의 얼굴 영역의 각각에 대한 얼굴 인식을 수행할 인식 라인을 결정하는 단계;
    상기 제어 라인에 의해, 결정된 상기 인식 라인으로 상기 적어도 하나의 얼굴 영역을 분배하는 단계; 및
    상기 적어도 하나의 얼굴 영역이 분배된 인식 라인에 의해, 상기 적어도 하나의 얼굴 영역의 각각으로부터 얼굴 인식을 수행하는 단계를 포함하는,
    얼굴 인식 방법.
  2. 제 1 항에 있어서,
    상기 예상 얼굴 인식 난이도를 결정하는 단계는,
    얼굴 영역의 얼굴 화질, 얼굴 자세 및 얼굴 블러(blur) 중 적어도 하나에 기반하여 상기 적어도 하나의 얼굴 영역의 각각의 예상 얼굴 인식 난이도를 결정하는 단계
    를 포함하는,
    얼굴 인식 방법.
  3. 제 1 항에 있어서,
    상기 인식 라인을 결정하는 단계는, 상기 예상 얼굴 인식 난이도의 오름차순으로 상기 적어도 하나의 얼굴 영역의 각 얼굴 영역의 인식 라인을 결정하는 단계를 포함하는,
    얼굴 인식 방법.
  4. 제 1 항에 있어서,
    상기 인식 라인을 결정하는 단계는,
    얼굴 영역의 예상 얼굴 인식 정확도 및 예상 연산 지연 시간에 따른 소정의 목표 함수에 기반하여 상기 얼굴 영역에 적용할 얼굴 인식 모델 및 상기 얼굴 인식 모델을 실행할 얼굴 인식 장치의 조합을 결정하는 단계를 포함하는,
    얼굴 인식 방법.
  5. 제 1 항에 있어서,
    상기 탐지 라인, 상기 제어 라인 및 상기 복수 개의 인식 라인 중 적어도 일부는 제 1 얼굴 인식 장치에 배치되고,
    상기 복수 개의 인식 라인 중 나머지는 제 2 얼굴 인식 장치에 배치되고,
    상기 분배하는 단계는,
    상기 적어도 하나의 얼굴 영역 중 적어도 일부에 대한 얼굴 인식을 상기 제 1 얼굴 인식 장치로부터 상기 제 2 얼굴 인식 장치로 오프로딩(offloading)하는 단계
    를 포함하는,
    얼굴 인식 방법.
  6. 제 1 항에 있어서,
    상기 적어도 하나의 얼굴 영역이 분배된 인식 라인에 의해 상기 적어도 하나의 얼굴 영역에 대한 얼굴 인식이 수행되는 동안, 상기 탐지 라인에 의해 상기 입력 이미지의 다음 이미지 블록에 대한 얼굴 영역을 탐지하는 단계
    를 더 포함하는,
    얼굴 인식 방법.
  7. 제 1 항에 있어서,
    상기 입력 이미지에 대한 상기 복수 개의 인식 라인의 얼굴 인식 결과에 기반하여 탐색 대상과 매칭되는 얼굴 영역을 결정하는 단계
    를 더 포함하는,
    얼굴 인식 방법.
  8. 제 1 항에 있어서,
    상기 입력 이미지는 일련의 이미지 프레임을 포함하고,
    상기 일련의 이미지 프레임의 연속한 이미지 프레임 간 얼굴 영역 이동 정보에 기반하여 상기 적어도 하나의 얼굴 영역의 각각에 대응하는 기 인식 완료된 얼굴 영역을 탐색하는 단계; 및
    상기 탐색의 결과에 따라 상기 기 인식 완료된 얼굴 영역의 얼굴 인식 정보를 재사용하는 단계를 더 포함하는,
    얼굴 인식 방법.
  9. 탐지 라인, 제어 라인 및 복수 개의 인식 라인을 포함한 파이프라인을 이용한 얼굴 인식 장치에 있어서,
    적어도 하나의 프로세서
    를 포함하고,
    상기 적어도 하나의 프로세서는,
    탐지 라인을 실행하여, 입력 이미지로부터 이미지 블록 단위로 적어도 하나의 얼굴 영역을 탐지하고,
    제어 라인을 실행하여, 상기 적어도 하나의 얼굴 영역의 예상 얼굴 인식 난이도를 결정하고,
    상기 제어 라인을 실행하여, 상기 예상 얼굴 인식 난이도에 기반하여 상기 복수 개의 인식 라인 중 상기 적어도 하나의 얼굴 영역의 각각에 대한 얼굴 인식을 수행할 인식 라인을 결정하고,
    상기 제어 라인을 실행하여, 결정된 상기 인식 라인으로 상기 적어도 하나의 얼굴 영역을 분배하도록 구성되는,
    얼굴 인식 장치.
  10. 제 9 항에 있어서,
    상기 적어도 하나의 프로세서는, 상기 예상 얼굴 인식 난이도를 결정하기 위하여,
    얼굴 영역의 얼굴 화질, 얼굴 자세 및 얼굴 블러 중 적어도 하나에 기반하여 상기 적어도 하나의 얼굴 영역의 각각의 예상 얼굴 인식 난이도를 결정하도록 구성되는,
    얼굴 인식 장치.
  11. 제 9 항에 있어서,
    상기 적어도 하나의 프로세서는, 상기 인식 라인을 결정하기 위하여, 상기 예상 얼굴 인식 난이도의 오름차순으로 상기 적어도 하나의 얼굴 영역의 각 얼굴 영역의 인식 라인을 결정하도록 구성되는,
    얼굴 인식 장치.
  12. 제 9 항에 있어서,
    상기 적어도 하나의 프로세서는, 상기 인식 라인을 결정하기 위하여, 얼굴 영역의 예상 얼굴 인식 정확도 및 예상 연산 지연 시간에 따른 소정의 목표 함수에 기반하여 상기 얼굴 영역에 적용할 얼굴 인식 모델 및 상기 얼굴 인식 모델을 실행할 얼굴 인식 장치의 조합을 결정하도록 구성되는,
    얼굴 인식 장치.
  13. 제 9 항에 있어서,
    상기 탐지 라인, 상기 제어 라인 및 상기 복수 개의 인식 라인 중 적어도 일부는 상기 얼굴 인식 장치에 배치되고,
    상기 복수 개의 인식 라인 중 나머지는 제 2 얼굴 인식 장치에 배치되고,
    상기 적어도 하나의 프로세서는, 상기 적어도 하나의 얼굴 영역을 분배하기 위하여,
    상기 적어도 하나의 얼굴 영역 중 적어도 일부에 대한 얼굴 인식을 상기 얼굴 인식 장치로부터 상기 제 2 얼굴 인식 장치로 오프로딩(offloading)하도록 구성되는,
    얼굴 인식 장치.
  14. 제 9 항에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 적어도 하나의 얼굴 영역이 분배된 인식 라인에 의해 상기 적어도 하나의 얼굴 영역에 대한 얼굴 인식이 수행되는 동안, 상기 탐지 라인에 의해 상기 입력 이미지의 다음 이미지 블록에 대한 얼굴 영역을 탐지하도록 구성되는,
    얼굴 인식 장치.
  15. 제 9 항에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 입력 이미지에 대한 상기 복수 개의 인식 라인의 얼굴 인식 결과에 기반하여 탐색 대상과 매칭되는 얼굴 영역을 결정하도록 구성되는,
    얼굴 인식 장치.
  16. 제 9 항에 있어서,
    상기 입력 이미지는 일련의 이미지 프레임을 포함하고,
    상기 적어도 하나의 프로세서는,
    상기 일련의 이미지 프레임의 연속한 이미지 프레임 간 얼굴 영역 이동 정보에 기반하여 상기 적어도 하나의 얼굴 영역의 각각에 대응하는 기 인식 완료된 얼굴 영역을 탐색하고,
    상기 탐색의 결과에 따라 상기 기 인식 완료된 얼굴 영역의 얼굴 인식 정보를 재사용하도록 구성되는,
    얼굴 인식 장치.
  17. 탐지 라인, 제어 라인 및 복수 개의 인식 라인을 포함한 파이프라인을 이용한 얼굴 인식 시스템에 있어서,
    탐지 라인, 제어 라인 및 복수 개의 인식 라인 중 적어도 일부가 배치된 제 1 얼굴 인식 장치; 및
    상기 복수 개의 인식 라인 중 나머지가 배치된 제 2 얼굴 인식 장치
    를 포함하고,
    상기 제 1 얼굴 인식 장치는,
    상기 탐지 라인에 의해, 입력 이미지로부터 이미지 블록 단위로 적어도 하나의 얼굴 영역을 탐지하고,
    상기 제어 라인에 의해, 상기 적어도 하나의 얼굴 영역의 예상 얼굴 인식 난이도를 결정하고,
    상기 제어 라인에 의해, 상기 예상 얼굴 인식 난이도에 기반하여 상기 복수 개의 인식 라인 중 상기 적어도 하나의 얼굴 영역의 각각에 대한 얼굴 인식을 수행할 인식 라인을 결정하고,
    상기 제어 라인에 의해, 결정된 상기 인식 라인으로 상기 적어도 하나의 얼굴 영역을 분배하고,
    상기 적어도 하나의 얼굴 영역이 분배된 인식 라인에 의해 상기 탐지된 얼굴 영역에 대한 얼굴 인식이 수행되는 동안, 상기 탐지 라인에 의해 상기 입력 이미지의 다음 이미지 블록에 대한 얼굴 영역을 탐지하도록 구성되는,
    얼굴 인식 시스템.
PCT/KR2022/005815 2021-04-22 2022-04-22 병렬처리 파이프라인을 이용한 다중 dnn 기반 얼굴 인식 방법 및 장치 Ceased WO2022225375A1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US18/033,185 US12525056B2 (en) 2021-04-22 2022-04-22 Method and device for multi-DNN-based face recognition using parallel-processing pipelines

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR20210052382 2021-04-22
KR10-2021-0052382 2021-04-22
KR10-2022-0050391 2022-04-22
KR1020220050391A KR102832092B1 (ko) 2021-04-22 2022-04-22 병렬처리 파이프라인을 이용한 다중 dnn 기반 얼굴 인식 방법 및 장치

Publications (1)

Publication Number Publication Date
WO2022225375A1 true WO2022225375A1 (ko) 2022-10-27

Family

ID=83723007

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2022/005815 Ceased WO2022225375A1 (ko) 2021-04-22 2022-04-22 병렬처리 파이프라인을 이용한 다중 dnn 기반 얼굴 인식 방법 및 장치

Country Status (2)

Country Link
US (1) US12525056B2 (ko)
WO (1) WO2022225375A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12633091B2 (en) 2023-06-27 2026-05-19 Axis Ab Feature extraction for object re-identification or object classification using a composite image

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020263110A1 (en) * 2019-06-25 2020-12-30 Motorola Solutions, Inc System and method for saving bandwidth in performing facial recognition

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100134079A (ko) * 2008-03-31 2010-12-22 구글 인코포레이티드 이미지 내의 자동 얼굴 검출 및 식별 마스킹, 및 그 응용
KR20200046152A (ko) * 2018-10-16 2020-05-07 서울시립대학교 산학협력단 얼굴 인식 방법 및 얼굴 인식 장치
JP2020091559A (ja) * 2018-12-04 2020-06-11 株式会社デンソーアイティーラボラトリ 表情認識装置、表情認識方法、およびプログラム
US20200293803A1 (en) * 2019-03-15 2020-09-17 Scenera, Inc. Configuring data pipelines with image understanding

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9639740B2 (en) * 2007-12-31 2017-05-02 Applied Recognition Inc. Face detection and recognition
TWI625680B (zh) * 2017-12-15 2018-06-01 財團法人工業技術研究院 臉部表情辨識的方法及裝置
US11423694B2 (en) * 2019-06-19 2022-08-23 Samsung Electronics Company, Ltd. Methods and systems for dynamic and incremental face recognition
US12387481B2 (en) * 2020-08-11 2025-08-12 Nvidia Corporation Enhanced object identification using one or more neural networks
WO2022133883A1 (en) * 2020-12-24 2022-06-30 Nvidia Corporation Generation of moving three dimensional models using motion transfer
US12034967B2 (en) * 2021-04-05 2024-07-09 Nvidia Corporation Superpixel generation and use

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100134079A (ko) * 2008-03-31 2010-12-22 구글 인코포레이티드 이미지 내의 자동 얼굴 검출 및 식별 마스킹, 및 그 응용
KR20200046152A (ko) * 2018-10-16 2020-05-07 서울시립대학교 산학협력단 얼굴 인식 방법 및 얼굴 인식 장치
JP2020091559A (ja) * 2018-12-04 2020-06-11 株式会社デンソーアイティーラボラトリ 表情認識装置、表情認識方法、およびプログラム
US20200293803A1 (en) * 2019-03-15 2020-09-17 Scenera, Inc. Configuring data pipelines with image understanding

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
YI JUHEON JOHNYI0606@SNU.AC.KR; CHOI SUNGHYUN SUNGH.CHOI@SAMSUNG.COM; LEE YOUNGKI YOUNGKILEE@SNU.AC.KR: "EagleEye wearable camera-based person identification in crowded urban spaces", PROCEEDINGS OF THE 33RD ANNUAL ACM SYMPOSIUM ON USER INTERFACE SOFTWARE AND TECHNOLOGY, ACMPUB27, NEW YORK, NY, USA, 16 April 2020 (2020-04-16) - 23 October 2020 (2020-10-23), New York, NY, USA , pages 1 - 14, XP058727087, ISBN: 978-1-4503-7514-6, DOI: 10.1145/3372224.3380881 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12633091B2 (en) 2023-06-27 2026-05-19 Axis Ab Feature extraction for object re-identification or object classification using a composite image

Also Published As

Publication number Publication date
US20230394875A1 (en) 2023-12-07
US12525056B2 (en) 2026-01-13

Similar Documents

Publication Publication Date Title
WO2021167394A1 (en) Video processing method, apparatus, electronic device, and readable storage medium
WO2020138745A1 (en) Image processing method, apparatus, electronic device and computer readable storage medium
WO2021080158A1 (en) Image processing method, apparatus, electronic device and computer readable storage medium
WO2019151735A1 (en) Vision inspection management method and vision inspection system
WO2021101243A1 (en) Apparatus and method for using ai metadata related to image quality
EP4367628A1 (en) Image processing method and related device
WO2019124652A1 (en) Electronic apparatus and control method thereof
WO2022225374A2 (ko) 비디오 신원 복원 모델을 이용한 얼굴 이미지 재구성 방법 및 장치
EP4320472A1 (en) Device and method for predicted autofocus on an object
WO2020235852A1 (ko) 특정 순간에 관한 사진 또는 동영상을 자동으로 촬영하는 디바이스 및 그 동작 방법
WO2022114731A1 (ko) 딥러닝 기반 비정상 행동을 탐지하여 인식하는 비정상 행동 탐지 시스템 및 탐지 방법
WO2021256781A1 (ko) 영상을 처리하는 디바이스 및 그 동작 방법
WO2021085757A1 (ko) 예외적 움직임에 강인한 비디오 프레임 보간 방법 및 그 장치
WO2023085862A1 (en) Image processing method and related device
WO2023063679A1 (en) Device and method for predicted autofocus on an object
WO2022124865A1 (en) Method, device, and computer program for detecting boundary of object in image
EP4677536A1 (en) Method and apparatus for restoring a target restoration region in an image
WO2022045613A1 (ko) 비디오 품질 향상 방법 및 장치
WO2023068821A1 (ko) 자기-지도 학습 기반의 다중 객체 추적 장치 및 방법
WO2022092451A1 (ko) 딥러닝을 이용한 실내 위치 측위 방법
WO2019045521A1 (ko) 전자 장치 및 그 제어 방법
WO2024167173A1 (en) Full frame media stabilization in electronic devices
WO2022124607A1 (en) Depth estimation method, device, electronic equipment and computer readable storage medium
WO2025023401A1 (en) Method and apparatus for restoring a target restoration region in an image
WO2024181804A1 (ko) 선박의 안전 관제 방법 및 시스템

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22792073

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 22792073

Country of ref document: EP

Kind code of ref document: A1

WWG Wipo information: grant in national office

Ref document number: 18033185

Country of ref document: US